7.7.7 release

This commit is contained in:
Gaudenz Alder 2017-11-28 15:00:11 +01:00
parent d88e8fd7a3
commit 7e202a0c25
27 changed files with 6505 additions and 2130 deletions

View file

@ -1,3 +1,11 @@
28-NOV-2017: 7.7.7
- Adds Sitemap sidebar
- Moves double border shapes to Misc sidebar
- Enables custom libraries in Trello Power-Up
- Fixes resize vertex with touch events
- Uses mxGraph 3.7.7 beta 2
27-NOV-2017: 7.7.6
- Removes Trello option from splash screen (use Power-Up)

View file

@ -1 +1 @@
7.7.6
7.7.7

View file

@ -120,6 +120,7 @@
<file name="Sidebar-Office.js" />
<file name="Sidebar-PID.js" />
<file name="Sidebar-Rack.js" />
<file name="Sidebar-Sitemap.js" />
<file name="Sidebar-Sysml.js" />
<file name="Sidebar-Veeam.js" />
<file name="Sidebar-WebIcons.js" />

View file

@ -1276,8 +1276,8 @@ mxGraph.prototype.createEdgeHandler=function(a,b){return b==mxEdgeStyle.Loop||b=
mxGraph.prototype.addMouseListener=function(a){null==this.mouseListeners&&(this.mouseListeners=[]);this.mouseListeners.push(a)};mxGraph.prototype.removeMouseListener=function(a){if(null!=this.mouseListeners)for(var b=0;b<this.mouseListeners.length;b++)if(this.mouseListeners[b]==a){this.mouseListeners.splice(b,1);break}};
mxGraph.prototype.updateMouseEvent=function(a,b){if(null==a.graphX||null==a.graphY){var c=mxUtils.convertPoint(this.container,a.getX(),a.getY());a.graphX=c.x-this.panDx;a.graphY=c.y-this.panDy;null==a.getCell()&&this.isMouseDown&&b==mxEvent.MOUSE_MOVE&&(a.state=this.view.getState(this.getCellAt(c.x,c.y,null,null,null,function(a){return null==a.shape||a.shape.paintBackground!=mxRectangleShape.prototype.paintBackground||"1"==mxUtils.getValue(a.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=a.shape.fill&&
a.shape.fill!=mxConstants.NONE})))}return a};mxGraph.prototype.getStateForTouchEvent=function(a){var b=mxEvent.getClientX(a);a=mxEvent.getClientY(a);b=mxUtils.convertPoint(this.container,b,a);return this.view.getState(this.getCellAt(b.x,b.y))};
mxGraph.prototype.isEventIgnored=function(a,b,c){var d=mxEvent.isMouseEvent(b.getEvent()),e=!1;b.getEvent()==this.lastEvent?e=!0:this.lastEvent=b.getEvent();null!=this.eventSource&&a!=mxEvent.MOUSE_MOVE?(mxEvent.removeGestureListeners(this.eventSource,null,this.mouseMoveRedirect,this.mouseUpRedirect),this.eventSource=this.mouseUpRedirect=this.mouseMoveRedirect=null):null!=this.eventSource&&b.getSource()!=this.eventSource?e=!0:!mxClient.IS_TOUCH||a!=mxEvent.MOUSE_DOWN||d||mxEvent.isPenEvent(b.getEvent())||
(this.eventSource=b.getSource(),this.mouseMoveRedirect=mxUtils.bind(this,function(a){this.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(a,this.getStateForTouchEvent(a)))}),this.mouseUpRedirect=mxUtils.bind(this,function(a){this.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(a,this.getStateForTouchEvent(a)))}),mxEvent.addGestureListeners(this.eventSource,null,this.mouseMoveRedirect,this.mouseUpRedirect));this.isSyntheticEventIgnored(a,b,c)&&(e=!0);if(!mxEvent.isPopupTrigger(this.lastEvent)&&
mxGraph.prototype.isEventIgnored=function(a,b,c){var d=mxEvent.isMouseEvent(b.getEvent()),e=!1;b.getEvent()==this.lastEvent?e=!0:this.lastEvent=b.getEvent();null!=this.eventSource&&a!=mxEvent.MOUSE_MOVE?(mxEvent.removeGestureListeners(this.eventSource,null,this.mouseMoveRedirect,this.mouseUpRedirect),this.eventSource=this.mouseUpRedirect=this.mouseMoveRedirect=null):mxClient.IS_GC||null==this.eventSource||b.getSource()==this.eventSource?!mxClient.IS_TOUCH||a!=mxEvent.MOUSE_DOWN||d||mxEvent.isPenEvent(b.getEvent())||
(this.eventSource=b.getSource(),this.mouseMoveRedirect=mxUtils.bind(this,function(a){this.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(a,this.getStateForTouchEvent(a)))}),this.mouseUpRedirect=mxUtils.bind(this,function(a){this.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(a,this.getStateForTouchEvent(a)))}),mxEvent.addGestureListeners(this.eventSource,null,this.mouseMoveRedirect,this.mouseUpRedirect)):e=!0;this.isSyntheticEventIgnored(a,b,c)&&(e=!0);if(!mxEvent.isPopupTrigger(this.lastEvent)&&
a!=mxEvent.MOUSE_MOVE&&2==this.lastEvent.detail)return!0;a==mxEvent.MOUSE_UP&&this.isMouseDown?this.isMouseDown=!1:a!=mxEvent.MOUSE_DOWN||this.isMouseDown?!e&&((!mxClient.IS_FF||a!=mxEvent.MOUSE_MOVE)&&this.isMouseDown&&this.isMouseTrigger!=d||a==mxEvent.MOUSE_DOWN&&this.isMouseDown||a==mxEvent.MOUSE_UP&&!this.isMouseDown)&&(e=!0):(this.isMouseDown=!0,this.isMouseTrigger=d);e||a!=mxEvent.MOUSE_DOWN||(this.lastMouseX=b.getX(),this.lastMouseY=b.getY());return e};
mxGraph.prototype.isSyntheticEventIgnored=function(a,b,c){c=!1;b=mxEvent.isMouseEvent(b.getEvent());this.ignoreMouseEvents&&b&&a!=mxEvent.MOUSE_MOVE?(this.ignoreMouseEvents=a!=mxEvent.MOUSE_UP,c=!0):mxClient.IS_FF&&!b&&a==mxEvent.MOUSE_UP&&(this.ignoreMouseEvents=!0);return c};
mxGraph.prototype.isEventSourceIgnored=function(a,b){var c=b.getSource(),d=null!=c.nodeName?c.nodeName.toLowerCase():"",e=!mxEvent.isMouseEvent(b.getEvent())||mxEvent.isLeftMouseButton(b.getEvent());return a==mxEvent.MOUSE_DOWN&&e&&("select"==d||"option"==d||"input"==d&&"checkbox"!=c.type&&"radio"!=c.type&&"button"!=c.type&&"submit"!=c.type&&"file"!=c.type)};mxGraph.prototype.getEventState=function(a){return a};

View file

@ -1176,110 +1176,59 @@ com.gliffy.shape.network.network_v4.rack.rack=mxgraph.rackGeneral.container;cont
#
# SITEMAP v2
#
#composite
#com.gliffy.shape.sitemap.sitemap_v2.text=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.video=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.upload=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.slideshow=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.sitemap=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.shopping_cart=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.settings=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.search=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.script=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.print=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.pricing=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.photo=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.map=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.login=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.gliffy=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.game=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.gallery=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.form=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.download=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.document=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.chat=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.calendar=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.audio=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.profile=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.error=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.success=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.cloud=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.home=
#composite
#com.gliffy.shape.sitemap.sitemap_v2.page=
com.gliffy.shape.sitemap.sitemap_v2.text=mxgraph.sitemap.text
com.gliffy.shape.sitemap.sitemap_v2.video=mxgraph.sitemap.video
com.gliffy.shape.sitemap.sitemap_v2.upload=mxgraph.sitemap.upload
com.gliffy.shape.sitemap.sitemap_v2.slideshow=mxgraph.sitemap.slideshow
com.gliffy.shape.sitemap.sitemap_v2.sitemap=mxgraph.sitemap.sitemap
com.gliffy.shape.sitemap.sitemap_v2.shopping_cart=mxgraph.sitemap.shopping
com.gliffy.shape.sitemap.sitemap_v2.settings=mxgraph.sitemap.settings
com.gliffy.shape.sitemap.sitemap_v2.search=mxgraph.sitemap.search
com.gliffy.shape.sitemap.sitemap_v2.script=mxgraph.sitemap.script
com.gliffy.shape.sitemap.sitemap_v2.print=mxgraph.sitemap.print
com.gliffy.shape.sitemap.sitemap_v2.pricing=mxgraph.sitemap.pricing
com.gliffy.shape.sitemap.sitemap_v2.photo=mxgraph.sitemap.photo
com.gliffy.shape.sitemap.sitemap_v2.map=mxgraph.sitemap.map
com.gliffy.shape.sitemap.sitemap_v2.login=mxgraph.sitemap.login
com.gliffy.shape.sitemap.sitemap_v2.gliffy=mxgraph.sitemap.page
com.gliffy.shape.sitemap.sitemap_v2.game=mxgraph.sitemap.game
com.gliffy.shape.sitemap.sitemap_v2.gallery=mxgraph.sitemap.gallery
com.gliffy.shape.sitemap.sitemap_v2.form=mxgraph.sitemap.form
com.gliffy.shape.sitemap.sitemap_v2.download=mxgraph.sitemap.download
com.gliffy.shape.sitemap.sitemap_v2.document=mxgraph.sitemap.document
com.gliffy.shape.sitemap.sitemap_v2.chat=mxgraph.sitemap.chat
com.gliffy.shape.sitemap.sitemap_v2.calendar=mxgraph.sitemap.calendar
com.gliffy.shape.sitemap.sitemap_v2.audio=mxgraph.sitemap.audio
com.gliffy.shape.sitemap.sitemap_v2.profile=mxgraph.sitemap.profile
com.gliffy.shape.sitemap.sitemap_v2.error=mxgraph.sitemap.error
com.gliffy.shape.sitemap.sitemap_v2.success=mxgraph.sitemap.success
com.gliffy.shape.sitemap.sitemap_v2.cloud=mxgraph.sitemap.cloud
com.gliffy.shape.sitemap.sitemap_v2.home=mxgraph.sitemap.home
com.gliffy.shape.sitemap.sitemap_v2.page=mxgraph.sitemap.page
#
# SITEMAP v1
#
#composite
#com.gliffy.shape.sitemap.sitemap_v1.default.page=
#composite
#com.gliffy.shape.sitemap.sitemap_v1.default.home_page=
#composite
#com.gliffy.shape.sitemap.sitemap_v1.default.form=
#composite
#com.gliffy.shape.sitemap.sitemap_v1.default.login=
#composite
#com.gliffy.shape.sitemap.sitemap_v1.default.search=
#composite
#com.gliffy.shape.sitemap.sitemap_v1.default.site_map=
#composite
#com.gliffy.shape.sitemap.sitemap_v1.default.script=
#composite
#com.gliffy.shape.sitemap.sitemap_v1.default.flash=
#composite
#com.gliffy.shape.sitemap.sitemap_v1.default.video=
#composite
#com.gliffy.shape.sitemap.sitemap_v1.default.game=
#composite
#com.gliffy.shape.sitemap.sitemap_v1.default.document=
#composite
#com.gliffy.shape.sitemap.sitemap_v1.default.pdf=
#composite
#com.gliffy.shape.sitemap.sitemap_v1.default.word_document=
#composite
#com.gliffy.shape.sitemap.sitemap_v1.default.excel_document=
#composite
#com.gliffy.shape.sitemap.sitemap_v1.default.powerpoint_document=
#composite
#com.gliffy.shape.sitemap.sitemap_v1.default.chat=
#composite
#com.gliffy.shape.sitemap.sitemap_v1.default.gliffy=
#composite
#com.gliffy.shape.sitemap.sitemap_v1.default.print=
#composite
#com.gliffy.shape.sitemap.sitemap_v1.default.shopping_cart=
#composite
#com.gliffy.shape.sitemap.sitemap_v1.default.download=
#composite
com.gliffy.shape.sitemap.sitemap_v1.default.page=mxgraph.sitemap.page
com.gliffy.shape.sitemap.sitemap_v1.default.home_page=mxgraph.sitemap.home
com.gliffy.shape.sitemap.sitemap_v1.default.form=mxgraph.sitemap.form
com.gliffy.shape.sitemap.sitemap_v1.default.login=mxgraph.sitemap.login
com.gliffy.shape.sitemap.sitemap_v1.default.search=mxgraph.sitemap.search
com.gliffy.shape.sitemap.sitemap_v1.default.site_map=mxgraph.sitemap.sitemap
com.gliffy.shape.sitemap.sitemap_v1.default.script=mxgraph.sitemap.script
com.gliffy.shape.sitemap.sitemap_v1.default.flash=mxgraph.sitemap.page
com.gliffy.shape.sitemap.sitemap_v1.default.video=mxgraph.sitemap.video
com.gliffy.shape.sitemap.sitemap_v1.default.game=mxgraph.sitemap.game
com.gliffy.shape.sitemap.sitemap_v1.default.document=mxgraph.sitemap.document
com.gliffy.shape.sitemap.sitemap_v1.default.pdf=mxgraph.sitemap.page
com.gliffy.shape.sitemap.sitemap_v1.default.word_document=mxgraph.sitemap.page
com.gliffy.shape.sitemap.sitemap_v1.default.excel_document=mxgraph.sitemap.page
com.gliffy.shape.sitemap.sitemap_v1.default.powerpoint_document=mxgraph.sitemap.page
com.gliffy.shape.sitemap.sitemap_v1.default.chat=mxgraph.sitemap.chat
com.gliffy.shape.sitemap.sitemap_v1.default.gliffy=mxgraph.sitemap.page
com.gliffy.shape.sitemap.sitemap_v1.default.print=mxgraph.sitemap.print
com.gliffy.shape.sitemap.sitemap_v1.default.shopping_cart=mxgraph.sitemap.shopping
com.gliffy.shape.sitemap.sitemap_v1.default.download=mxgraph.sitemap.download
#com.gliffy.shape.sitemap.sitemap_v1.default.link=
#composite
#com.gliffy.shape.sitemap.sitemap_v1.default.share=
com.gliffy.shape.sitemap.sitemap_v1.default.database=mxgraph.networks.storage
com.gliffy.shape.sitemap.sitemap_v1.default.secure_https=mxgraph.networks.secured

View file

@ -1,7 +1,7 @@
CACHE MANIFEST
# THIS FILE WAS GENERATED. DO NOT MODIFY!
# 11/27/2017 05:36 PM
# 11/28/2017 02:53 PM
app.html
index.html?offline=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

512
war/js/app.min.js vendored
View file

@ -1382,8 +1382,8 @@ mxGraph.prototype.createEdgeHandler=function(a,b){return b==mxEdgeStyle.Loop||b=
mxGraph.prototype.addMouseListener=function(a){null==this.mouseListeners&&(this.mouseListeners=[]);this.mouseListeners.push(a)};mxGraph.prototype.removeMouseListener=function(a){if(null!=this.mouseListeners)for(var b=0;b<this.mouseListeners.length;b++)if(this.mouseListeners[b]==a){this.mouseListeners.splice(b,1);break}};
mxGraph.prototype.updateMouseEvent=function(a,b){if(null==a.graphX||null==a.graphY){var c=mxUtils.convertPoint(this.container,a.getX(),a.getY());a.graphX=c.x-this.panDx;a.graphY=c.y-this.panDy;null==a.getCell()&&this.isMouseDown&&b==mxEvent.MOUSE_MOVE&&(a.state=this.view.getState(this.getCellAt(c.x,c.y,null,null,null,function(a){return null==a.shape||a.shape.paintBackground!=mxRectangleShape.prototype.paintBackground||"1"==mxUtils.getValue(a.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=a.shape.fill&&
a.shape.fill!=mxConstants.NONE})))}return a};mxGraph.prototype.getStateForTouchEvent=function(a){var b=mxEvent.getClientX(a);a=mxEvent.getClientY(a);b=mxUtils.convertPoint(this.container,b,a);return this.view.getState(this.getCellAt(b.x,b.y))};
mxGraph.prototype.isEventIgnored=function(a,b,c){var d=mxEvent.isMouseEvent(b.getEvent()),e=!1;b.getEvent()==this.lastEvent?e=!0:this.lastEvent=b.getEvent();null!=this.eventSource&&a!=mxEvent.MOUSE_MOVE?(mxEvent.removeGestureListeners(this.eventSource,null,this.mouseMoveRedirect,this.mouseUpRedirect),this.eventSource=this.mouseUpRedirect=this.mouseMoveRedirect=null):null!=this.eventSource&&b.getSource()!=this.eventSource?e=!0:!mxClient.IS_TOUCH||a!=mxEvent.MOUSE_DOWN||d||mxEvent.isPenEvent(b.getEvent())||
(this.eventSource=b.getSource(),this.mouseMoveRedirect=mxUtils.bind(this,function(a){this.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(a,this.getStateForTouchEvent(a)))}),this.mouseUpRedirect=mxUtils.bind(this,function(a){this.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(a,this.getStateForTouchEvent(a)))}),mxEvent.addGestureListeners(this.eventSource,null,this.mouseMoveRedirect,this.mouseUpRedirect));this.isSyntheticEventIgnored(a,b,c)&&(e=!0);if(!mxEvent.isPopupTrigger(this.lastEvent)&&
mxGraph.prototype.isEventIgnored=function(a,b,c){var d=mxEvent.isMouseEvent(b.getEvent()),e=!1;b.getEvent()==this.lastEvent?e=!0:this.lastEvent=b.getEvent();null!=this.eventSource&&a!=mxEvent.MOUSE_MOVE?(mxEvent.removeGestureListeners(this.eventSource,null,this.mouseMoveRedirect,this.mouseUpRedirect),this.eventSource=this.mouseUpRedirect=this.mouseMoveRedirect=null):mxClient.IS_GC||null==this.eventSource||b.getSource()==this.eventSource?!mxClient.IS_TOUCH||a!=mxEvent.MOUSE_DOWN||d||mxEvent.isPenEvent(b.getEvent())||
(this.eventSource=b.getSource(),this.mouseMoveRedirect=mxUtils.bind(this,function(a){this.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(a,this.getStateForTouchEvent(a)))}),this.mouseUpRedirect=mxUtils.bind(this,function(a){this.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(a,this.getStateForTouchEvent(a)))}),mxEvent.addGestureListeners(this.eventSource,null,this.mouseMoveRedirect,this.mouseUpRedirect)):e=!0;this.isSyntheticEventIgnored(a,b,c)&&(e=!0);if(!mxEvent.isPopupTrigger(this.lastEvent)&&
a!=mxEvent.MOUSE_MOVE&&2==this.lastEvent.detail)return!0;a==mxEvent.MOUSE_UP&&this.isMouseDown?this.isMouseDown=!1:a!=mxEvent.MOUSE_DOWN||this.isMouseDown?!e&&((!mxClient.IS_FF||a!=mxEvent.MOUSE_MOVE)&&this.isMouseDown&&this.isMouseTrigger!=d||a==mxEvent.MOUSE_DOWN&&this.isMouseDown||a==mxEvent.MOUSE_UP&&!this.isMouseDown)&&(e=!0):(this.isMouseDown=!0,this.isMouseTrigger=d);e||a!=mxEvent.MOUSE_DOWN||(this.lastMouseX=b.getX(),this.lastMouseY=b.getY());return e};
mxGraph.prototype.isSyntheticEventIgnored=function(a,b,c){c=!1;b=mxEvent.isMouseEvent(b.getEvent());this.ignoreMouseEvents&&b&&a!=mxEvent.MOUSE_MOVE?(this.ignoreMouseEvents=a!=mxEvent.MOUSE_UP,c=!0):mxClient.IS_FF&&!b&&a==mxEvent.MOUSE_UP&&(this.ignoreMouseEvents=!0);return c};
mxGraph.prototype.isEventSourceIgnored=function(a,b){var c=b.getSource(),d=null!=c.nodeName?c.nodeName.toLowerCase():"",e=!mxEvent.isMouseEvent(b.getEvent())||mxEvent.isLeftMouseButton(b.getEvent());return a==mxEvent.MOUSE_DOWN&&e&&("select"==d||"option"==d||"input"==d&&"checkbox"!=c.type&&"radio"!=c.type&&"button"!=c.type&&"submit"!=c.type&&"file"!=c.type)};mxGraph.prototype.getEventState=function(a){return a};
@ -2193,14 +2193,15 @@ e);for(c=0;c<b.length;c++)e=b[c](),null==r[e.innerHTML]&&(r[e.innerHTML]="1",d.a
m||(h.style.display=n?"none":"")}));mxEvent.addListener(e,"mousedown",function(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=!0});mxEvent.addListener(e,"selectstart",function(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=!0});a=document.createElement("div");a.appendChild(d);this.container.appendChild(a);this.palettes.search=[c,a]};
Sidebar.prototype.insertSearchHint=function(a,c,d,b,e,f,k,g){0==e.length&&1==b&&(d=document.createElement("div"),d.className="geTitle",d.style.cssText="background-color:transparent;border-color:transparent;color:gray;padding:6px 0px 0px 0px !important;margin:4px 8px 4px 8px;text-align:center;cursor:default !important",mxUtils.write(d,mxResources.get("noResultsFor",[c])),a.appendChild(d))};
Sidebar.prototype.addGeneralPalette=function(a){var c=[this.createVertexTemplateEntry("rounded=0;whiteSpace=wrap;html=1;",120,60,"","Rectangle",null,null,"rect rectangle box"),this.createVertexTemplateEntry("rounded=1;whiteSpace=wrap;html=1;",120,60,"","Rounded Rectangle",null,null,"rounded rect rectangle box"),this.createVertexTemplateEntry("text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",40,20,"Text","Text",null,null,"text textbox textarea label"),
this.createVertexTemplateEntry("text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;",190,120,"<h1>Heading</h1><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>","Textbox",null,null,"text textbox textarea"),this.createVertexTemplateEntry("shape=ext;double=1;rounded=0;whiteSpace=wrap;html=1;",120,60,"","Double Rectangle",null,null,"rect rectangle box double"),
this.createVertexTemplateEntry("shape=ext;double=1;rounded=1;whiteSpace=wrap;html=1;",120,60,"","Double Rounded Rectangle",null,null,"rounded rect rectangle box double"),this.createVertexTemplateEntry("ellipse;whiteSpace=wrap;html=1;",120,80,"","Ellipse",null,null,"oval ellipse state"),this.createVertexTemplateEntry("ellipse;shape=doubleEllipse;whiteSpace=wrap;html=1;",120,80,"","Double Ellipse",null,null,"oval ellipse start end state double"),this.createVertexTemplateEntry("whiteSpace=wrap;html=1;aspect=fixed;",
80,80,"","Square",null,null,"square"),this.createVertexTemplateEntry("shape=ext;double=1;whiteSpace=wrap;html=1;aspect=fixed;",80,80,"","Double Square",null,null,"double square"),this.createVertexTemplateEntry("ellipse;whiteSpace=wrap;html=1;aspect=fixed;",80,80,"","Circle",null,null,"circle"),this.createVertexTemplateEntry("ellipse;shape=doubleEllipse;whiteSpace=wrap;html=1;aspect=fixed;",80,80,"","Double Circle",null,null,"double circle"),this.createVertexTemplateEntry("shape=process;whiteSpace=wrap;html=1;",
120,60,"","Process",null,null,"process task"),this.createVertexTemplateEntry("rhombus;whiteSpace=wrap;html=1;",80,80,"","Diamond",null,null,"diamond rhombus if condition decision conditional question test"),this.createVertexTemplateEntry("shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;",120,60,"","Parallelogram"),this.createVertexTemplateEntry("shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;",120,80,"","Hexagon",null,null,"hexagon preparation"),this.createVertexTemplateEntry("triangle;whiteSpace=wrap;html=1;",
60,80,"","Triangle",null,null,"triangle logic inverter buffer"),this.createVertexTemplateEntry("shape=cylinder;whiteSpace=wrap;html=1;boundedLbl=1;",60,80,"","Cylinder",null,null,"cylinder data database"),this.createVertexTemplateEntry("ellipse;shape=cloud;whiteSpace=wrap;html=1;",120,80,"","Cloud",null,null,"cloud network"),this.createVertexTemplateEntry("shape=document;whiteSpace=wrap;html=1;boundedLbl=1;",120,80,"","Document"),this.createVertexTemplateEntry("shape=internalStorage;whiteSpace=wrap;html=1;",
80,80,"","Internal Storage"),this.createVertexTemplateEntry("shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;",120,80,"","Cube"),this.createVertexTemplateEntry("shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;",120,80,"","Step"),this.createVertexTemplateEntry("shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;",120,60,"","Trapezoid"),this.createVertexTemplateEntry("shape=tape;whiteSpace=wrap;html=1;",120,100,"","Tape"),this.createVertexTemplateEntry("shape=note;whiteSpace=wrap;html=1;",
80,100,"","Note"),this.createVertexTemplateEntry("shape=card;whiteSpace=wrap;html=1;",80,100,"","Card"),this.createVertexTemplateEntry("shape=callout;whiteSpace=wrap;html=1;perimeter=calloutPerimeter;",120,80,"","Callout"),this.createEdgeTemplateEntry("endArrow=none;dashed=1;html=1;",50,50,"","Dashed Line",null,"line lines connector connectors connection connections arrow arrows dashed undirected no"),this.createEdgeTemplateEntry("endArrow=none;html=1;",50,50,"","Line",null,"line lines connector connectors connection connections arrow arrows simple undirected plain blank no"),
this.createEdgeTemplateEntry("endArrow=classic;startArrow=classic;html=1;",50,50,"","Bidirectional Connector",null,"line lines connector connectors connection connections arrow arrows bidirectional"),this.createEdgeTemplateEntry("endArrow=classic;html=1;",50,50,"","Directional Connector",null,"line lines connector connectors connection connections arrow arrows directional directed")];this.addPaletteFunctions("general",mxResources.get("general"),null!=a?a:!0,c)};
this.createVertexTemplateEntry("text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;",190,120,"<h1>Heading</h1><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>","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;",80,80,"","Circle",null,null,"circle"),this.createVertexTemplateEntry("shape=process;whiteSpace=wrap;html=1;",120,60,"","Process",null,null,"process task"),this.createVertexTemplateEntry("rhombus;whiteSpace=wrap;html=1;",80,80,"","Diamond",null,null,"diamond rhombus if condition decision conditional question test"),this.createVertexTemplateEntry("shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;",
120,60,"","Parallelogram"),this.createVertexTemplateEntry("shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;",120,80,"","Hexagon",null,null,"hexagon preparation"),this.createVertexTemplateEntry("triangle;whiteSpace=wrap;html=1;",60,80,"","Triangle",null,null,"triangle logic inverter buffer"),this.createVertexTemplateEntry("shape=cylinder;whiteSpace=wrap;html=1;boundedLbl=1;",60,80,"","Cylinder",null,null,"cylinder data database"),this.createVertexTemplateEntry("ellipse;shape=cloud;whiteSpace=wrap;html=1;",
120,80,"","Cloud",null,null,"cloud network"),this.createVertexTemplateEntry("shape=document;whiteSpace=wrap;html=1;boundedLbl=1;",120,80,"","Document"),this.createVertexTemplateEntry("shape=internalStorage;whiteSpace=wrap;html=1;",80,80,"","Internal Storage"),this.createVertexTemplateEntry("shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;",120,80,"","Cube"),this.createVertexTemplateEntry("shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,80,"","Step"),this.createVertexTemplateEntry("shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;",
120,60,"","Trapezoid"),this.createVertexTemplateEntry("shape=tape;whiteSpace=wrap;html=1;",120,100,"","Tape"),this.createVertexTemplateEntry("shape=note;whiteSpace=wrap;html=1;",80,100,"","Note"),this.createVertexTemplateEntry("shape=card;whiteSpace=wrap;html=1;",80,100,"","Card"),this.createVertexTemplateEntry("shape=callout;whiteSpace=wrap;html=1;perimeter=calloutPerimeter;",120,80,"","Callout"),this.createVertexTemplateEntry("shape=umlActor;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;html=1;",
30,60,"Actor","Actor",!1,null,"user person human stickman"),this.addEntry("curve",mxUtils.bind(this,function(){var a=new mxCell("",new mxGeometry(0,0,50,50),"curved=1;endArrow=classic;html=1;");a.geometry.setTerminalPoint(new mxPoint(0,50),!0);a.geometry.setTerminalPoint(new mxPoint(50,0),!1);a.geometry.points=[new mxPoint(50,50),new mxPoint(0,0)];a.geometry.relative=!0;a.edge=!0;return this.createEdgeTemplateFromCells([a],a.geometry.width,a.geometry.height,"Curve")})),this.createEdgeTemplateEntry("shape=flexArrow;endArrow=classic;startArrow=classic;html=1;fillColor=#ffffff;",
50,50,"","Bidirectional Arrow",null,"line lines connector connectors connection connections arrow arrows bidirectional"),this.createEdgeTemplateEntry("shape=flexArrow;endArrow=classic;html=1;fillColor=#ffffff;",50,50,"","Arrow",null,"line lines connector connectors connection connections arrow arrows directional directed"),this.createEdgeTemplateEntry("shape=link;html=1;",50,50,"","Link",null,"line lines connector connectors connection connections arrow arrows link"),this.createEdgeTemplateEntry("endArrow=none;dashed=1;html=1;",
50,50,"","Dashed Line",null,"line lines connector connectors connection connections arrow arrows dashed undirected no"),this.createEdgeTemplateEntry("endArrow=none;html=1;",50,50,"","Line",null,"line lines connector connectors connection connections arrow arrows simple undirected plain blank no"),this.createEdgeTemplateEntry("endArrow=classic;startArrow=classic;html=1;",50,50,"","Bidirectional Connector",null,"line lines connector connectors connection connections arrow arrows bidirectional"),this.createEdgeTemplateEntry("endArrow=classic;html=1;",
50,50,"","Directional Connector",null,"line lines connector connectors connection connections arrow arrows directional directed")];this.addPaletteFunctions("general",mxResources.get("general"),null!=a?a:!0,c)};
Sidebar.prototype.addBasicPalette=function(a){this.addStencilPalette("basic",mxResources.get("basic"),a+"/basic.xml",";whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=2",null,null,null,null,[this.createVertexTemplateEntry("shape=partialRectangle;whiteSpace=wrap;html=1;top=0;bottom=0;fillColor=none;",120,60,"","Partial Rectangle"),this.createVertexTemplateEntry("shape=partialRectangle;whiteSpace=wrap;html=1;right=0;top=0;bottom=0;fillColor=none;routingCenterX=-0.5;",120,60,
"","Partial Rectangle"),this.createVertexTemplateEntry("shape=partialRectangle;whiteSpace=wrap;html=1;bottom=0;right=0;fillColor=none;",120,60,"","Partial Rectangle"),this.createVertexTemplateEntry("shape=partialRectangle;whiteSpace=wrap;html=1;top=0;left=0;fillColor=none;",120,60,"","Partial Rectangle")])};
Sidebar.prototype.addMiscPalette=function(a){var c=[this.createVertexTemplateEntry("text;strokeColor=none;fillColor=none;html=1;fontSize=24;fontStyle=1;verticalAlign=middle;align=center;",100,40,"Title","Title",null,null,"text heading title"),this.createVertexTemplateEntry("text;strokeColor=none;fillColor=none;html=1;whiteSpace=wrap;verticalAlign=middle;overflow=hidden;",100,80,"<ul><li>Value 1</li><li>Value 2</li><li>Value 3</li></ul>","Unordered List"),this.createVertexTemplateEntry("text;strokeColor=none;fillColor=none;html=1;whiteSpace=wrap;verticalAlign=middle;overflow=hidden;",
@ -2210,29 +2211,28 @@ Sidebar.prototype.addMiscPalette=function(a){var c=[this.createVertexTemplateEnt
"Table 3"),this.createVertexTemplateEntry("text;html=1;strokeColor=none;fillColor=none;overflow=fill;",160,140,'<table border="1" width="100%" height="100%" cellpadding="4" style="width:100%;height:100%;border-collapse:collapse;"><tr><th align="center"><b>Title</b></th></tr><tr><td align="center">Section 1.1\nSection 1.2\nSection 1.3</td></tr><tr><td align="center">Section 2.1\nSection 2.2\nSection 2.3</td></tr></table>',"Table 4"),this.addEntry("link hyperlink",mxUtils.bind(this,function(){var a=
new mxCell("Link",new mxGeometry(0,0,60,40),"text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;align=center;verticalAlign=middle;fontColor=#0000EE;fontStyle=4;");a.vertex=!0;this.graph.setLinkForCell(a,"https://www.draw.io");return this.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Link")})),this.addEntry("timestamp date time text label",mxUtils.bind(this,function(){var a=new mxCell("%date{ddd mmm dd yyyy HH:MM:ss}%",new mxGeometry(0,0,160,20),"text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;");
a.vertex=!0;this.graph.setAttributeForCell(a,"placeholders","1");return this.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Timestamp")})),this.addEntry("variable placeholder metadata hello world text label",mxUtils.bind(this,function(){var a=new mxCell("%name% Text",new mxGeometry(0,0,80,20),"text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;");a.vertex=!0;this.graph.setAttributeForCell(a,"placeholders","1");this.graph.setAttributeForCell(a,
"name","Variable");return this.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Variable")})),this.createVertexTemplateEntry("shape=umlActor;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;html=1;",30,60,"Actor","Actor",!1,null,"user person human stickman"),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;comic=1;strokeWidth=2;fontFamily=Comic Sans MS;fontStyle=1;",120,60,"RECTANGLE","Comic Rectangle",!0,null,"comic rectangle rect box text retro"),
this.createVertexTemplateEntry("rhombus;html=1;align=center;whiteSpace=wrap;comic=1;strokeWidth=2;fontFamily=Comic Sans MS;fontStyle=1;",100,100,"DIAMOND","Comic Diamond",!0,null,"comic diamond rhombus if condition decision conditional question test retro"),this.createEdgeTemplateEntry("rounded=0;comic=1;strokeWidth=2;endArrow=blockThin;html=1;fontFamily=Comic Sans MS;fontStyle=1;",50,50,"","Comic Arrow"),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;aspect=fixed;shape=isoRectangle;",150,
90,"","Isometric Square",!0,null,"rectangle rect box iso isometric"),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;aspect=fixed;shape=isoCube;",90,100,"","Isometric Cube",!0,null,"cube box iso isometric"),this.createEdgeTemplateEntry("edgeStyle=isometricEdgeStyle;endArrow=none;html=1;",50,100,"","Isometric Edge 1"),this.createEdgeTemplateEntry("edgeStyle=isometricEdgeStyle;endArrow=none;html=1;elbow=vertical;",50,100,"","Isometric Edge 2"),this.createVertexTemplateEntry("line;strokeWidth=2;html=1;",
160,10,"","Horizontal Line"),this.createVertexTemplateEntry("line;strokeWidth=2;direction=south;html=1;",10,160,"","Vertical Line"),this.createVertexTemplateEntry("line;strokeWidth=4;html=1;perimeter=backbonePerimeter;points=[];outlineConnect=0;",160,10,"","Horizontal Backbone",!1,null,"backbone bus network"),this.createVertexTemplateEntry("line;strokeWidth=4;direction=south;html=1;perimeter=backbonePerimeter;points=[];outlineConnect=0;",10,160,"","Vertical Backbone",!1,null,"backbone bus network"),
this.createVertexTemplateEntry("shape=curlyBracket;whiteSpace=wrap;html=1;rounded=1;",20,120,"","Curly Bracket"),this.createVertexTemplateEntry("shape=crossbar;whiteSpace=wrap;html=1;rounded=1;",120,20,"","Crossbar",!1,null,"crossbar distance measure dimension unit"),this.createVertexTemplateEntry("shape=image;html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;imageAspect=1;aspect=fixed;image="+this.gearImage,52,61,"","Image (Fixed Aspect)",!1,null,"fixed image icon symbol"),
this.createVertexTemplateEntry("shape=image;html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;imageAspect=0;image="+this.gearImage,50,60,"","Image (Variable Aspect)",!1,null,"strechted image icon symbol"),this.createVertexTemplateEntry("icon;html=1;image="+this.gearImage,60,60,"Icon","Icon",!1,null,"icon image symbol"),this.createVertexTemplateEntry("label;whiteSpace=wrap;html=1;image="+this.gearImage,140,60,"Label","Label 1",null,null,"label image icon symbol"),this.createVertexTemplateEntry("label;whiteSpace=wrap;html=1;align=center;verticalAlign=bottom;spacingLeft=0;spacingBottom=4;imageAlign=center;imageVerticalAlign=top;image="+
"name","Variable");return this.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Variable")})),this.createVertexTemplateEntry("shape=ext;double=1;rounded=0;whiteSpace=wrap;html=1;",120,80,"","Double Rectangle",null,null,"rect rectangle box double"),this.createVertexTemplateEntry("shape=ext;double=1;rounded=1;whiteSpace=wrap;html=1;",120,80,"","Double Rounded Rectangle",null,null,"rounded rect rectangle box double"),this.createVertexTemplateEntry("ellipse;shape=doubleEllipse;whiteSpace=wrap;html=1;",
100,60,"","Double Ellipse",null,null,"oval ellipse start end state double"),this.createVertexTemplateEntry("shape=ext;double=1;whiteSpace=wrap;html=1;aspect=fixed;",80,80,"","Double Square",null,null,"double square"),this.createVertexTemplateEntry("ellipse;shape=doubleEllipse;whiteSpace=wrap;html=1;aspect=fixed;",80,80,"","Double Circle",null,null,"double circle"),this.createEdgeTemplateEntry("rounded=0;comic=1;strokeWidth=2;endArrow=blockThin;html=1;fontFamily=Comic Sans MS;fontStyle=1;",50,50,"",
"Comic Arrow"),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;comic=1;strokeWidth=2;fontFamily=Comic Sans MS;fontStyle=1;",120,60,"RECTANGLE","Comic Rectangle",!0,null,"comic rectangle rect box text retro"),this.createVertexTemplateEntry("rhombus;html=1;align=center;whiteSpace=wrap;comic=1;strokeWidth=2;fontFamily=Comic Sans MS;fontStyle=1;",100,100,"DIAMOND","Comic Diamond",!0,null,"comic diamond rhombus if condition decision conditional question test retro"),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;aspect=fixed;shape=isoRectangle;",
150,90,"","Isometric Square",!0,null,"rectangle rect box iso isometric"),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;aspect=fixed;shape=isoCube;",90,100,"","Isometric Cube",!0,null,"cube box iso isometric"),this.createEdgeTemplateEntry("edgeStyle=isometricEdgeStyle;endArrow=none;html=1;",50,100,"","Isometric Edge 1"),this.createEdgeTemplateEntry("edgeStyle=isometricEdgeStyle;endArrow=none;html=1;elbow=vertical;",50,100,"","Isometric Edge 2"),this.createVertexTemplateEntry("shape=curlyBracket;whiteSpace=wrap;html=1;rounded=1;",
20,120,"","Curly Bracket"),this.createVertexTemplateEntry("line;strokeWidth=2;html=1;",160,10,"","Horizontal Line"),this.createVertexTemplateEntry("line;strokeWidth=2;direction=south;html=1;",10,160,"","Vertical Line"),this.createVertexTemplateEntry("line;strokeWidth=4;html=1;perimeter=backbonePerimeter;points=[];outlineConnect=0;",160,10,"","Horizontal Backbone",!1,null,"backbone bus network"),this.createVertexTemplateEntry("line;strokeWidth=4;direction=south;html=1;perimeter=backbonePerimeter;points=[];outlineConnect=0;",
10,160,"","Vertical Backbone",!1,null,"backbone bus network"),this.createVertexTemplateEntry("shape=crossbar;whiteSpace=wrap;html=1;rounded=1;",120,20,"","Crossbar",!1,null,"crossbar distance measure dimension unit"),this.createVertexTemplateEntry("shape=image;html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;imageAspect=1;aspect=fixed;image="+this.gearImage,52,61,"","Image (Fixed Aspect)",!1,null,"fixed image icon symbol"),this.createVertexTemplateEntry("shape=image;html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;imageAspect=0;image="+
this.gearImage,50,60,"","Image (Variable Aspect)",!1,null,"strechted image icon symbol"),this.createVertexTemplateEntry("icon;html=1;image="+this.gearImage,60,60,"Icon","Icon",!1,null,"icon image symbol"),this.createVertexTemplateEntry("label;whiteSpace=wrap;html=1;image="+this.gearImage,140,60,"Label","Label 1",null,null,"label image icon symbol"),this.createVertexTemplateEntry("label;whiteSpace=wrap;html=1;align=center;verticalAlign=bottom;spacingLeft=0;spacingBottom=4;imageAlign=center;imageVerticalAlign=top;image="+
this.gearImage,120,80,"Label","Label 2",null,null,"label image icon symbol"),this.createVertexTemplateEntry("shape=partialRectangle;whiteSpace=wrap;html=1;left=0;right=0;fillColor=none;",120,60,"","Partial Rectangle"),this.createVertexTemplateEntry("shape=partialRectangle;whiteSpace=wrap;html=1;left=0;right=0;top=0;fillColor=none;routingCenterY=0.5;",120,60,"","Partial Rectangle"),this.createVertexTemplateEntry("shape=partialRectangle;whiteSpace=wrap;html=1;bottom=1;right=1;top=0;bottom=1;fillColor=none;routingCenterX=-0.5;",
120,60,"","Partial Rectangle"),this.createEdgeTemplateEntry("shape=flexArrow;endArrow=classic;html=1;fillColor=#ffffff;",50,50,"","Directional Arrow",null,"line lines connector connectors connection connections arrow arrows directional directed"),this.createEdgeTemplateEntry("shape=flexArrow;endArrow=classic;startArrow=classic;html=1;fillColor=#ffffff;",50,50,"","Bidirectional Arrow",null,"line lines connector connectors connection connections arrow arrows bidirectional"),this.createEdgeTemplateEntry("edgeStyle=segmentEdgeStyle;endArrow=classic;html=1;",
50,50,"","Manual Line",null,"line lines connector connectors connection connections arrow arrows manual"),this.createEdgeTemplateEntry("shape=filledEdge;rounded=0;fixDash=1;endArrow=none;strokeWidth=10;fillColor=#ffffff;edgeStyle=orthogonalEdgeStyle;",120,60,"","Filled Edge"),this.createEdgeTemplateEntry("edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;",50,50,"","Horizontal Elbow",null,"line lines connector connectors connection connections arrow arrows elbow horizontal"),this.createEdgeTemplateEntry("edgeStyle=elbowEdgeStyle;elbow=vertical;endArrow=classic;html=1;",
50,50,"","Vertical Elbow",null,"line lines connector connectors connection connections arrow arrows elbow vertical"),this.addEntry("curve",mxUtils.bind(this,function(){var a=new mxCell("",new mxGeometry(0,0,50,50),"curved=1;endArrow=classic;html=1;");a.geometry.setTerminalPoint(new mxPoint(0,50),!0);a.geometry.setTerminalPoint(new mxPoint(50,0),!1);a.geometry.points=[new mxPoint(50,50),new mxPoint(0,0)];a.geometry.relative=!0;a.edge=!0;return this.createEdgeTemplateFromCells([a],a.geometry.width,
a.geometry.height,"Bidirectional Curve")})),this.createEdgeTemplateEntry("shape=link;html=1;",50,50,"","Link",null,"line lines connector connectors connection connections arrow arrows link")];this.addPaletteFunctions("misc",mxResources.get("misc"),null!=a?a:!0,c)};Sidebar.prototype.addAdvancedPalette=function(a){this.addPaletteFunctions("advanced",mxResources.get("advanced"),null!=a?a:!1,this.createAdvancedShapes())};
120,60,"","Partial Rectangle"),this.createEdgeTemplateEntry("edgeStyle=segmentEdgeStyle;endArrow=classic;html=1;",50,50,"","Manual Line",null,"line lines connector connectors connection connections arrow arrows manual"),this.createEdgeTemplateEntry("shape=filledEdge;rounded=0;fixDash=1;endArrow=none;strokeWidth=10;fillColor=#ffffff;edgeStyle=orthogonalEdgeStyle;",60,40,"","Filled Edge"),this.createEdgeTemplateEntry("edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;",50,50,"","Horizontal Elbow",
null,"line lines connector connectors connection connections arrow arrows elbow horizontal"),this.createEdgeTemplateEntry("edgeStyle=elbowEdgeStyle;elbow=vertical;endArrow=classic;html=1;",50,50,"","Vertical Elbow",null,"line lines connector connectors connection connections arrow arrows elbow vertical")];this.addPaletteFunctions("misc",mxResources.get("misc"),null!=a?a:!0,c)};
Sidebar.prototype.addAdvancedPalette=function(a){this.addPaletteFunctions("advanced",mxResources.get("advanced"),null!=a?a:!1,this.createAdvancedShapes())};
Sidebar.prototype.createAdvancedShapes=function(){var a=this,c=new mxCell("List Item",new mxGeometry(0,0,60,26),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;");c.vertex=!0;return[this.createVertexTemplateEntry("shape=xor;whiteSpace=wrap;html=1;",60,80,"","Or",null,null,"logic or"),this.createVertexTemplateEntry("shape=or;whiteSpace=wrap;html=1;",60,80,"","And",null,null,
"logic and"),this.createVertexTemplateEntry("shape=dataStorage;whiteSpace=wrap;html=1;",100,80,"","Data Storage"),this.createVertexTemplateEntry("shape=tapeData;whiteSpace=wrap;html=1;perimeter=ellipsePerimeter;",80,80,"","Tape Data"),this.createVertexTemplateEntry("shape=manualInput;whiteSpace=wrap;html=1;",80,80,"","Manual Input"),this.createVertexTemplateEntry("shape=loopLimit;whiteSpace=wrap;html=1;",100,80,"","Loop Limit"),this.createVertexTemplateEntry("shape=offPageConnector;whiteSpace=wrap;html=1;",
80,80,"","Off Page Connector"),this.createVertexTemplateEntry("shape=delay;whiteSpace=wrap;html=1;",80,40,"","Delay"),this.createVertexTemplateEntry("shape=display;whiteSpace=wrap;html=1;",80,40,"","Display"),this.createVertexTemplateEntry("shape=singleArrow;direction=west;whiteSpace=wrap;html=1;",100,60,"","Arrow Left"),this.createVertexTemplateEntry("shape=singleArrow;whiteSpace=wrap;html=1;",100,60,"","Arrow Right"),this.createVertexTemplateEntry("shape=singleArrow;direction=north;whiteSpace=wrap;html=1;",
60,100,"","Arrow Up"),this.createVertexTemplateEntry("shape=singleArrow;direction=south;whiteSpace=wrap;html=1;",60,100,"","Arrow Down"),this.createVertexTemplateEntry("shape=doubleArrow;whiteSpace=wrap;html=1;",100,60,"","Double Arrow"),this.createVertexTemplateEntry("shape=doubleArrow;direction=south;whiteSpace=wrap;html=1;",60,100,"","Double Arrow Vertical",null,null,"double arrow"),this.createVertexTemplateEntry("shape=actor;whiteSpace=wrap;html=1;",40,60,"","User",null,null,"user person human"),
this.createVertexTemplateEntry("shape=cross;whiteSpace=wrap;html=1;",80,80,"","Cross"),this.createVertexTemplateEntry("shape=corner;whiteSpace=wrap;html=1;",80,80,"","Corner"),this.createVertexTemplateEntry("shape=tee;whiteSpace=wrap;html=1;",80,80,"","Tee"),this.createVertexTemplateEntry("shape=datastore;whiteSpace=wrap;html=1;",60,60,"","Data Store",null,null,"data store cylinder database"),this.createVertexTemplateEntry("shape=orEllipse;perimeter=ellipsePerimeter;whiteSpace=wrap;html=1;",80,80,
"","Or",null,null,"or circle oval ellipse"),this.createVertexTemplateEntry("shape=sumEllipse;perimeter=ellipsePerimeter;whiteSpace=wrap;html=1;",80,80,"","Sum",null,null,"sum circle oval ellipse"),this.createVertexTemplateEntry("shape=lineEllipse;perimeter=ellipsePerimeter;whiteSpace=wrap;html=1;",80,80,"","Ellipse with horizontal divider",null,null,"circle oval ellipse"),this.createVertexTemplateEntry("shape=lineEllipse;line=vertical;perimeter=ellipsePerimeter;whiteSpace=wrap;html=1;",80,80,"","Ellipse with vertical divider",
null,null,"circle oval ellipse"),this.createVertexTemplateEntry("shape=sortShape;perimeter=rhombusPerimeter;whiteSpace=wrap;html=1;",80,80,"","Sort",null,null,"sort"),this.createVertexTemplateEntry("shape=collate;whiteSpace=wrap;html=1;",80,80,"","Collate",null,null,"collate"),this.createVertexTemplateEntry("shape=switch;whiteSpace=wrap;html=1;",60,60,"","Switch",null,null,"switch router"),this.createVertexTemplateEntry("shape=dimension;whiteSpace=wrap;html=1;align=center;points=[];verticalAlign=bottom;spacingBottom=-5;labelBackgroundColor=#ffffff",
100,40,"Label","Horizontal Dimension",null,null,"horizontal dimension measure distance unit"),this.createVertexTemplateEntry("shape=dimension;direction=north;whiteSpace=wrap;html=1;align=right;points=[];verticalAlign=middle;labelBackgroundColor=#ffffff",40,100,"Label","Vertical Dimension",null,null,"vertical dimension measure distance unit"),this.createVertexTemplateEntry("swimlane;",200,200,"Container","Container",null,null,"container swimlane lane pool"),this.addEntry("list",function(){var d=new mxCell("List",
new mxGeometry(0,0,140,110),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;");d.vertex=!0;d.insert(a.cloneCell(c,"Item 1"));d.insert(a.cloneCell(c,"Item 2"));d.insert(a.cloneCell(c,"Item 3"));return a.createVertexTemplateFromCells([d],d.geometry.width,d.geometry.height,"List")}),this.addEntry("list item entry value",function(){return a.createVertexTemplateFromCells([a.cloneCell(c,
"List Item")],c.geometry.width,c.geometry.height,"List Item")})]};
Sidebar.prototype.addUmlPalette=function(a){var c=this,d=new mxCell("+ field: type",new mxGeometry(0,0,100,26),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;");d.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,40,8),"line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;");b.vertex=
!0;var e=[this.createVertexTemplateEntry("html=1;",110,50,"Object","Object",null,null,"uml static class object instance"),this.createVertexTemplateEntry("html=1;",110,50,"&laquo;interface&raquo;<br><b>Name</b>","Interface",null,null,"uml static class interface object instance annotated annotation"),this.addEntry("uml static class object instance",function(){var a=new mxCell("Classname",new mxGeometry(0,0,160,90),"swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;");
null,null,"circle oval ellipse"),this.createVertexTemplateEntry("shape=sortShape;perimeter=rhombusPerimeter;whiteSpace=wrap;html=1;",80,80,"","Sort",null,null,"sort"),this.createVertexTemplateEntry("shape=collate;whiteSpace=wrap;html=1;",80,80,"","Collate",null,null,"collate"),this.createVertexTemplateEntry("shape=switch;whiteSpace=wrap;html=1;",60,60,"","Switch",null,null,"switch router"),this.addEntry("process bar",function(){return a.createVertexTemplateFromData("zZXRaoMwFIafJpcDjbNrb2233rRQ8AkyPdPQaCRJV+3T7yTG2rUVBoOtgpDzn/xJzncCIdGyateKNeVW5iBI9EqipZLS9KOqXYIQhAY8J9GKUBrgT+jbRDZ02aBhCmrzEwPtDZ9MHKBXdkpmoDWKCVN9VptO+Kw+8kqwGqMkK7nIN6yTB7uTNizbD1FSSsVPsjYMC1qFKHxwIZZSSIVxLZ1/nJNar5+oQPMT7IYCrqUta1ENzuqGaeOFTArBGs3f3Vmtoo2Se7ja1h00kSoHK4bBIKUNy3hdoPYU0mF91i9mT8EEL2ocZ3gKa00ayWujLZY4IfHKFonVDLsRGgXuQ90zBmWgneyTk3yT1iArMKrDKUeem9L3ajHrbSXwohxsQd/ggOleKM7ese048J2/fwuim1uQGmhQCW8vQMkacP3GCQgBFMftHEsr7cYYe95CnmKTPMFbYD8CQ++DGQy+/M5X4ku5wHYmdIktfvk9tecpavThqS3m/0YtnqIWPTy1cD77K2wYjo+Ay317I74A",
296,100,"Process Bar")}),this.createVertexTemplateEntry("swimlane;",200,200,"Container","Container",null,null,"container swimlane lane pool"),this.addEntry("list",function(){var d=new mxCell("List",new mxGeometry(0,0,140,110),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;");d.vertex=!0;d.insert(a.cloneCell(c,"Item 1"));d.insert(a.cloneCell(c,
"Item 2"));d.insert(a.cloneCell(c,"Item 3"));return a.createVertexTemplateFromCells([d],d.geometry.width,d.geometry.height,"List")}),this.addEntry("list item entry value",function(){return a.createVertexTemplateFromCells([a.cloneCell(c,"List Item")],c.geometry.width,c.geometry.height,"List Item")})]};
Sidebar.prototype.addUmlPalette=function(a){var c=this,d=new mxCell("+ field: type",new mxGeometry(0,0,100,26),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;");d.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,40,8),"line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;");
b.vertex=!0;var e=[this.createVertexTemplateEntry("html=1;",110,50,"Object","Object",null,null,"uml static class object instance"),this.createVertexTemplateEntry("html=1;",110,50,"&laquo;interface&raquo;<br><b>Name</b>","Interface",null,null,"uml static class interface object instance annotated annotation"),this.addEntry("uml static class object instance",function(){var a=new mxCell("Classname",new mxGeometry(0,0,160,90),"swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;");
a.vertex=!0;a.insert(d.clone());a.insert(b.clone());a.insert(c.cloneCell(d,"+ method(type): type"));return c.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Class")}),this.addEntry("uml static class section subsection",function(){var a=new mxCell("Classname",new mxGeometry(0,0,140,110),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;");
a.vertex=!0;a.insert(d.clone());a.insert(d.clone());a.insert(d.clone());return c.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Class 2")}),this.addEntry("uml static class item member method function variable field attribute label",function(){return c.createVertexTemplateFromCells([c.cloneCell(d,"+ item: attribute")],d.geometry.width,d.geometry.height,"Item 1")}),this.addEntry("uml static class item member method function variable field attribute label",function(){var a=new mxCell("item: attribute",
new mxGeometry(0,0,120,d.geometry.height),"label;fontStyle=0;strokeColor=none;fillColor=none;align=left;verticalAlign=top;overflow=hidden;spacingLeft=28;spacingRight=4;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;imageWidth=16;imageHeight=16;image="+c.gearImage);a.vertex=!0;return c.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Item 2")}),this.addEntry("uml static class divider hline line separator",function(){return c.createVertexTemplateFromCells([b.clone()],
@ -2319,9 +2319,9 @@ arguments))};var t=null,w=null,u=null,v=!1,A=f(this.triangleUp,mxResources.get("
"none");this.previewElementWidth=b.style.width;this.previewElementHeight=b.style.height;return b};var N=r.dragEnter;r.dragEnter=function(a,b){null!=g.hoverIcons&&g.hoverIcons.setDisplay("none");N.apply(this,arguments)};var Q=r.dragExit;r.dragExit=function(a,b){null!=g.hoverIcons&&g.hoverIcons.setDisplay("");Q.apply(this,arguments)};r.dragOver=function(a,c){mxDragSource.prototype.dragOver.apply(this,arguments);null!=this.currentGuide&&null!=D&&this.currentGuide.hide();if(null!=this.previewElement){var d=
a.view;if(null!=u&&D==y)this.previewElement.style.display=a.model.isEdge(u.cell)?"none":"",this.previewElement.style.left=u.x+"px",this.previewElement.style.top=u.y+"px",this.previewElement.style.width=u.width+"px",this.previewElement.style.height=u.height+"px";else if(null!=t&&null!=D){var f=a.model.isEdge(t.cell)||null==l?m:l,g=n.getDropAndConnectGeometry(t.cell,b[f],H,b),h=a.model.isEdge(t.cell)?null:a.getCellGeometry(t.cell),k=a.getCellGeometry(b[f]),z=a.model.getParent(t.cell),E=d.translate.x*
d.scale,G=d.translate.y*d.scale;null!=h&&!h.relative&&a.model.isVertex(z)&&z!=d.currentRoot&&(G=d.getState(z),E=G.x,G=G.y);h=k.x;k=k.y;a.model.isEdge(b[f])&&(k=h=0);this.previewElement.style.left=(g.x-h)*d.scale+E+"px";this.previewElement.style.top=(g.y-k)*d.scale+G+"px";1==b.length&&(this.previewElement.style.width=g.width*d.scale+"px",this.previewElement.style.height=g.height*d.scale+"px");this.previewElement.style.display=""}else null!=r.currentHighlight.state&&a.model.isEdge(r.currentHighlight.state.cell)?
(this.previewElement.style.left=Math.round(parseInt(this.previewElement.style.left)-e.width*d.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-e.height*d.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};var O=(new Date).getTime(),F=0,E=null,G=this.editorUi.editor.graph.getCellStyle(b[0]);r.getDropTarget=mxUtils.bind(this,function(a,
c,d,f){var e=mxEvent.isAltDown(f)||null==b?null:a.getCellAt(c,d);if(null!=e&&!this.graph.isCellConnectable(e)){var g=this.graph.getModel().getParent(e);this.graph.getModel().isVertex(g)&&this.graph.isCellConnectable(g)&&(e=g)}a.isCellLocked(e)&&(e=null);var h=a.view.getState(e),g=D=null;E!=h?(E=h,O=(new Date).getTime(),F=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=h&&(this.updateThread=window.setTimeout(function(){null==D&&(E=h,r.getDropTarget(a,c,d,f))},this.dropTargetDelay+
10))):F=(new Date).getTime()-O;if(2500>F&&null!=h&&!mxEvent.isShiftDown(f)&&(mxUtils.getValue(h.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(G,mxConstants.STYLE_SHAPE)&&mxUtils.getValue(h.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||"image"==mxUtils.getValue(G,mxConstants.STYLE_SHAPE)||1500<F||a.model.isEdge(h.cell))&&F>this.dropTargetDelay&&(a.model.isVertex(h.cell)&&null!=m||a.model.isEdge(h.cell)&&a.model.isEdge(b[0]))){u=h;var l=a.model.isEdge(h.cell)?a.view.getPoint(h):
(this.previewElement.style.left=Math.round(parseInt(this.previewElement.style.left)-e.width*d.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-e.height*d.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};var P=(new Date).getTime(),F=0,E=null,G=this.editorUi.editor.graph.getCellStyle(b[0]);r.getDropTarget=mxUtils.bind(this,function(a,
c,d,f){var e=mxEvent.isAltDown(f)||null==b?null:a.getCellAt(c,d);if(null!=e&&!this.graph.isCellConnectable(e)){var g=this.graph.getModel().getParent(e);this.graph.getModel().isVertex(g)&&this.graph.isCellConnectable(g)&&(e=g)}a.isCellLocked(e)&&(e=null);var h=a.view.getState(e),g=D=null;E!=h?(E=h,P=(new Date).getTime(),F=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=h&&(this.updateThread=window.setTimeout(function(){null==D&&(E=h,r.getDropTarget(a,c,d,f))},this.dropTargetDelay+
10))):F=(new Date).getTime()-P;if(2500>F&&null!=h&&!mxEvent.isShiftDown(f)&&(mxUtils.getValue(h.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(G,mxConstants.STYLE_SHAPE)&&mxUtils.getValue(h.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||"image"==mxUtils.getValue(G,mxConstants.STYLE_SHAPE)||1500<F||a.model.isEdge(h.cell))&&F>this.dropTargetDelay&&(a.model.isVertex(h.cell)&&null!=m||a.model.isEdge(h.cell)&&a.model.isEdge(b[0]))){u=h;var l=a.model.isEdge(h.cell)?a.view.getPoint(h):
new mxPoint(h.getCenterX(),h.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height);y.style.left=Math.floor(l.x)+"px";y.style.top=Math.floor(l.y)+"px";null==I&&(a.container.appendChild(y),I=y.parentNode);k(c,d,l,y)}else null==u||!mxUtils.contains(u,c,d)||1500<F&&!mxEvent.isShiftDown(f)?(u=null,null!=I&&(y.parentNode.removeChild(y),I=null)):null!=u&&null!=I&&(l=a.model.isEdge(u.cell)?a.view.getPoint(u):new mxPoint(u.getCenterX(),
u.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height),k(c,d,l,y));if(v&&null!=t&&!mxEvent.isAltDown(f)&&null==D){g=mxRectangle.fromRectangle(t);if(a.model.isEdge(t.cell)){var z=t.absolutePoints;null!=L.parentNode&&(l=z[0],g.add(k(c,d,new mxRectangle(l.x-this.roundDrop.width/2,l.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),L)));null!=J.parentNode&&(z=z[z.length-1],g.add(k(c,d,new mxRectangle(z.x-
this.roundDrop.width/2,z.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),J)))}else l=mxRectangle.fromRectangle(t),null!=t.shape&&null!=t.shape.boundingBox&&(l=mxRectangle.fromRectangle(t.shape.boundingBox)),l.grow(this.graph.tolerance),l.grow(HoverIcons.prototype.arrowSpacing),z=this.graph.selectionCellsHandler.getHandler(t.cell),null!=z&&(l.x-=z.horizontalOffset/2,l.y-=z.verticalOffset/2,l.width+=z.horizontalOffset,l.height+=z.verticalOffset,null!=z.rotationShape&&null!=z.rotationShape.node&&
@ -2582,13 +2582,13 @@ var D=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHa
this.state.text?this.state.text.boundingBox:null;null==c&&(c=this.state);c=c.y+c.height;null!=b&&(c=Math.max(c,b.y+b.height));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(c+this.verticalOffset/2+6+this.state.view.graph.tolerance)+"px"}};var K=mxVertexHandler.prototype.reset;mxVertexHandler.prototype.reset=function(){K.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=
1==this.graph.getSelectionCount()?"":"none")};var N=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){N.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);null!=this.editingHandler&&
(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};var Q=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(Q.apply(this),null!=this.state&&null!=this.linkHint)){var a=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height),a.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=
Math.round(a.y+a.height+6+this.state.view.graph.tolerance)+"px"}};var O=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){O.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var F=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){F.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),
Math.round(a.y+a.height+6+this.state.view.graph.tolerance)+"px"}};var P=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){P.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var F=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){F.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),
this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function a(){mxCylinder.call(this)}function c(){mxActor.call(this)}function d(){mxCylinder.call(this)}function b(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function f(){mxActor.call(this)}function k(){mxCylinder.call(this)}function g(){mxActor.call(this)}function h(){mxActor.call(this)}function l(){mxActor.call(this)}function m(){mxActor.call(this)}function n(){mxActor.call(this)}function p(){mxActor.call(this)}function r(){mxActor.call(this)}function q(a,b){this.canvas=
a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=b;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,q.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,q.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,q.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,q.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;
this.canvas.curveTo=mxUtils.bind(this,q.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,q.prototype.arcTo)}function t(){mxRectangleShape.call(this)}function w(){mxRectangleShape.call(this)}function u(){mxActor.call(this)}function v(){mxActor.call(this)}function A(){mxActor.call(this)}function x(){mxRectangleShape.call(this)}function C(){mxRectangleShape.call(this)}function B(){mxCylinder.call(this)}function y(){mxShape.call(this)}function I(){mxShape.call(this)}
function L(){mxEllipse.call(this)}function J(){mxShape.call(this)}function H(){mxShape.call(this)}function D(){mxRectangleShape.call(this)}function K(){mxShape.call(this)}function N(){mxShape.call(this)}function Q(){mxShape.call(this)}function O(){mxCylinder.call(this)}function F(){mxDoubleEllipse.call(this)}function E(){mxDoubleEllipse.call(this)}function G(){mxArrowConnector.call(this);this.spacing=0}function z(){mxArrowConnector.call(this);this.spacing=0}function W(){mxActor.call(this)}function S(){mxRectangleShape.call(this)}
function L(){mxEllipse.call(this)}function J(){mxShape.call(this)}function H(){mxShape.call(this)}function D(){mxRectangleShape.call(this)}function K(){mxShape.call(this)}function N(){mxShape.call(this)}function Q(){mxShape.call(this)}function P(){mxCylinder.call(this)}function F(){mxDoubleEllipse.call(this)}function E(){mxDoubleEllipse.call(this)}function G(){mxArrowConnector.call(this);this.spacing=0}function z(){mxArrowConnector.call(this);this.spacing=0}function W(){mxActor.call(this)}function S(){mxRectangleShape.call(this)}
function T(){mxActor.call(this)}function ca(){mxActor.call(this)}function X(){mxActor.call(this)}function U(){mxActor.call(this)}function ja(){mxActor.call(this)}function da(){mxActor.call(this)}function ka(){mxActor.call(this)}function ea(){mxActor.call(this)}function Y(){mxActor.call(this)}function Z(){mxActor.call(this)}function fa(){mxEllipse.call(this)}function ga(){mxEllipse.call(this)}function ba(){mxEllipse.call(this)}function oa(){mxRhombus.call(this)}function V(){mxEllipse.call(this)}function la(){mxEllipse.call(this)}
function R(){mxEllipse.call(this)}function ua(){mxEllipse.call(this)}function va(){mxActor.call(this)}function pa(){mxActor.call(this)}function qa(){mxActor.call(this)}function ma(){mxConnector.call(this)}function Da(a,b,c,d,e,f,g,h,k,l){g+=k;var P=d.clone();d.x-=e*(2*g+k);d.y-=f*(2*g+k);e*=g+k;f*=g+k;return function(){a.ellipse(P.x-e-g,P.y-f-g,2*g,2*g);l?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,
function R(){mxEllipse.call(this)}function ua(){mxEllipse.call(this)}function va(){mxActor.call(this)}function pa(){mxActor.call(this)}function qa(){mxActor.call(this)}function ma(){mxConnector.call(this)}function Da(a,b,c,d,e,f,g,h,k,l){g+=k;var O=d.clone();d.x-=e*(2*g+k);d.y-=f*(2*g+k);e*=g+k;f*=g+k;return function(){a.ellipse(O.x-e-g,O.y-f-g,2*g,2*g);l?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,
Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f?(a.moveTo(b,e),a.lineTo(b,b),a.lineTo(0,0),a.moveTo(b,b),a.lineTo(d,b)):(a.moveTo(0,0),a.lineTo(d-b,0),a.lineTo(d,b),a.lineTo(d,e),a.lineTo(b,e),a.lineTo(0,e-b),a.lineTo(0,0),a.close());a.end()};a.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.prototype.defaultShapes.cube=
a;var Aa=Math.tan(mxUtils.toRadians(30)),na=(.5-Aa)/2;mxUtils.extend(c,mxActor);c.prototype.size=20;c.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/Aa);a.translate((d-b)/2,(e-b)/2+b/4);a.moveTo(0,.25*b);a.lineTo(.5*b,b*na);a.lineTo(b,.25*b);a.lineTo(.5*b,(.5-na)*b);a.lineTo(0,.25*b);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.isoRectangle=c;mxUtils.extend(d,mxCylinder);d.prototype.size=20;d.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(d,e/(.5+Aa));f?(a.moveTo(0,.25*
b),a.lineTo(.5*b,(.5-na)*b),a.lineTo(b,.25*b),a.moveTo(.5*b,(.5-na)*b),a.lineTo(.5*b,(1-na)*b)):(a.translate((d-b)/2,(e-b)/2),a.moveTo(0,.25*b),a.lineTo(.5*b,b*na),a.lineTo(b,.25*b),a.lineTo(b,.75*b),a.lineTo(.5*b,(1-na)*b),a.lineTo(0,.75*b),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.isoCube=d;mxUtils.extend(b,mxCylinder);b.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(e/2,Math.round(e/8)+this.strokewidth-1);if(f&&null!=this.fill||!f&&null==this.fill)a.moveTo(0,b),a.curveTo(0,
@ -2604,8 +2604,8 @@ mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPo
[new mxPoint(0,e),new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,e)],this.isRounded,c,!0)};mxCellRenderer.prototype.defaultShapes.trapezoid=n;mxUtils.extend(p,mxActor);p.prototype.size=.5;p.prototype.redrawPath=function(a,b,c,d,e){a.setFillColor(null);b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(b,0),new mxPoint(b,e/2),new mxPoint(0,
e/2),new mxPoint(b,e/2),new mxPoint(b,e),new mxPoint(d,e)],this.isRounded,c,!1);a.end()};mxCellRenderer.prototype.defaultShapes.curlyBracket=p;mxUtils.extend(r,mxActor);r.prototype.redrawPath=function(a,b,c,d,e){a.setStrokeWidth(1);a.setFillColor(this.stroke);b=d/5;a.rect(0,0,b,e);a.fillAndStroke();a.rect(2*b,0,b,e);a.fillAndStroke();a.rect(4*b,0,b,e);a.fillAndStroke()};mxCellRenderer.prototype.defaultShapes.parallelMarker=r;q.prototype.moveTo=function(a,b){this.originalMoveTo.apply(this.canvas,arguments);
this.lastX=a;this.lastY=b;this.firstX=a;this.firstY=b};q.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)};q.prototype.quadTo=function(a,b,c,d){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=d};q.prototype.curveTo=function(a,b,c,d,e,f){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=f};q.prototype.arcTo=
function(a,b,c,d,e,f,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=g};q.prototype.lineTo=function(a,b){if(null!=this.lastX&&null!=this.lastY){var c=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),e=Math.abs(b-this.lastY),f=Math.sqrt(d*d+e*e);if(2>f){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;return}var g=Math.round(f/10),h=this.defaultVariation;5>g&&(g=5,h/=3);for(var P=c(a-this.lastX)*d/g,c=c(b-
this.lastY)*e/g,d=d/f,e=e/f,f=0;f<g;f++){var k=(Math.random()-.5)*h;this.originalLineTo.call(this.canvas,P*f+this.lastX-k*e,c*f+this.lastY-k*d)}this.originalLineTo.call(this.canvas,a,b)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};q.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=
function(a,b,c,d,e,f,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=g};q.prototype.lineTo=function(a,b){if(null!=this.lastX&&null!=this.lastY){var c=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),e=Math.abs(b-this.lastY),f=Math.sqrt(d*d+e*e);if(2>f){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;return}var g=Math.round(f/10),h=this.defaultVariation;5>g&&(g=5,h/=3);for(var O=c(a-this.lastX)*d/g,c=c(b-
this.lastY)*e/g,d=d/f,e=e/f,f=0;f<g;f++){var k=(Math.random()-.5)*h;this.originalLineTo.call(this.canvas,O*f+this.lastX-k*e,c*f+this.lastY-k*d)}this.originalLineTo.call(this.canvas,a,b)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};q.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=
this.originalArcTo};var Ha=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new q(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Ha.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Ia=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=
function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Ia.apply(this,arguments)};var Ja=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle)Ja.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)f||null!=this.fill&&this.fill!=
mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?f=Math.min(d/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(d*f,e*f)),a.moveTo(b+f,c),a.lineTo(b+d-f,c),a.quadTo(b+d,c,b+d,c+f),a.lineTo(b+d,c+e-f),a.quadTo(b+d,c+e,b+d-f,c+e),a.lineTo(b+f,c+e),a.quadTo(b,
@ -2620,8 +2620,8 @@ parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(t
d/2,c+e-f);a.moveTo(b+f,c+e/2);a.lineTo(b+d-f,c+e/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.prototype.defaultShapes.plus=x;var Ea=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)}return a};mxRhombus.prototype.paintVertexShape=
function(a,b,c,d,e){Ea.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&(a.setShadow(!1),Ea.apply(this,[a,b,c,d,e]))}};mxUtils.extend(C,mxRectangleShape);C.prototype.isHtmlAllowed=function(){return!1};C.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;
return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)}return a};C.prototype.paintForeground=function(a,b,c,d,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var f=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var f=0,g;do{g=mxCellRenderer.prototype.defaultShapes[this.style["symbol"+f]];if(null!=g){var h=this.style["symbol"+
f+"Align"],k=this.style["symbol"+f+"VerticalAlign"],P=this.style["symbol"+f+"Width"],l=this.style["symbol"+f+"Height"],m=this.style["symbol"+f+"Spacing"]||0,za=this.style["symbol"+f+"VSpacing"]||m,aa=this.style["symbol"+f+"ArcSpacing"];null!=aa&&(aa*=this.getArcSize(d+this.strokewidth,e+this.strokewidth),m+=aa,za+=aa);var aa=b,ra=c,aa=h==mxConstants.ALIGN_CENTER?aa+(d-P)/2:h==mxConstants.ALIGN_RIGHT?aa+(d-P-m):aa+m,ra=k==mxConstants.ALIGN_MIDDLE?ra+(e-l)/2:k==mxConstants.ALIGN_BOTTOM?ra+(e-l-za):
ra+za;a.save();h=new g;h.style=this.style;g.prototype.paintVertexShape.call(h,a,aa,ra,P,l);a.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.prototype.defaultShapes.ext=C;mxUtils.extend(B,mxCylinder);B.prototype.redrawPath=function(a,b,c,d,e,f){f?(a.moveTo(0,0),a.lineTo(d/2,e/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(0,e),a.close())};mxCellRenderer.prototype.defaultShapes.message=B;mxUtils.extend(y,mxShape);
f+"Align"],k=this.style["symbol"+f+"VerticalAlign"],O=this.style["symbol"+f+"Width"],l=this.style["symbol"+f+"Height"],m=this.style["symbol"+f+"Spacing"]||0,za=this.style["symbol"+f+"VSpacing"]||m,aa=this.style["symbol"+f+"ArcSpacing"];null!=aa&&(aa*=this.getArcSize(d+this.strokewidth,e+this.strokewidth),m+=aa,za+=aa);var aa=b,ra=c,aa=h==mxConstants.ALIGN_CENTER?aa+(d-O)/2:h==mxConstants.ALIGN_RIGHT?aa+(d-O-m):aa+m,ra=k==mxConstants.ALIGN_MIDDLE?ra+(e-l)/2:k==mxConstants.ALIGN_BOTTOM?ra+(e-l-za):
ra+za;a.save();h=new g;h.style=this.style;g.prototype.paintVertexShape.call(h,a,aa,ra,O,l);a.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.prototype.defaultShapes.ext=C;mxUtils.extend(B,mxCylinder);B.prototype.redrawPath=function(a,b,c,d,e,f){f?(a.moveTo(0,0),a.lineTo(d/2,e/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(0,e),a.close())};mxCellRenderer.prototype.defaultShapes.message=B;mxUtils.extend(y,mxShape);
y.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.ellipse(d/4,0,d/2,e/4);a.fillAndStroke();a.begin();a.moveTo(d/2,e/4);a.lineTo(d/2,2*e/3);a.moveTo(d/2,e/3);a.lineTo(0,e/3);a.moveTo(d/2,e/3);a.lineTo(d,e/3);a.moveTo(d/2,2*e/3);a.lineTo(0,e);a.moveTo(d/2,2*e/3);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.umlActor=y;mxUtils.extend(I,mxShape);I.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};I.prototype.paintBackground=function(a,
b,c,d,e){a.translate(b,c);a.begin();a.moveTo(0,e/4);a.lineTo(0,3*e/4);a.end();a.stroke();a.begin();a.moveTo(0,e/2);a.lineTo(d/6,e/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,e);a.fillAndStroke()};mxCellRenderer.prototype.defaultShapes.umlBoundary=I;mxUtils.extend(L,mxEllipse);L.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(b+d/8,c+e);a.lineTo(b+7*d/8,c+e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.umlEntity=
L;mxUtils.extend(J,mxShape);J.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(d,0);a.lineTo(0,e);a.moveTo(0,0);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.umlDestroy=J;mxUtils.extend(H,mxShape);H.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};H.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(3*d/8,e/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,
@ -2636,14 +2636,14 @@ b,c,d)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter
h,g+k),new mxPoint(f,g+k-e),new mxPoint(f,g)]):(e=h*Math.max(0,Math.min(1,e)),g=[new mxPoint(f+e,g),new mxPoint(f+h,g),new mxPoint(f+h-e,g+k),new mxPoint(f,g+k),new mxPoint(f+e,g)]);k=a.getCenterX();a=a.getCenterY();a=new mxPoint(k,a);d&&(c.x<f||c.x>f+h?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(g,a,c)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,b,c,d){var e=n.prototype.size;null!=b&&(e=mxUtils.getValue(b.style,
"size",e));var f=a.x,g=a.y,h=a.width,k=a.height;b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_EAST?(e=h*Math.max(0,Math.min(1,e)),g=[new mxPoint(f+e,g),new mxPoint(f+h-e,g),new mxPoint(f+h,g+k),new mxPoint(f,g+k),new mxPoint(f+e,g)]):b==mxConstants.DIRECTION_WEST?(e=h*Math.max(0,Math.min(1,e)),g=[new mxPoint(f,g),new mxPoint(f+h,g),new mxPoint(f+h-e,g+k),new mxPoint(f+e,g+k),new mxPoint(f,g)]):b==mxConstants.DIRECTION_NORTH?
(e=k*Math.max(0,Math.min(1,e)),g=[new mxPoint(f,g+e),new mxPoint(f+h,g),new mxPoint(f+h,g+k),new mxPoint(f,g+k-e),new mxPoint(f,g+e)]):(e=k*Math.max(0,Math.min(1,e)),g=[new mxPoint(f,g),new mxPoint(f+h,g+e),new mxPoint(f+h,g+k-e),new mxPoint(f,g+k),new mxPoint(f,g)]);k=a.getCenterX();a=a.getCenterY();a=new mxPoint(k,a);d&&(c.x<f||c.x>f+h?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(g,a,c)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=
function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?v.prototype.fixedSize:v.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));var g=a.x,h=a.y,k=a.width,l=a.height,P=a.getCenterX();a=a.getCenterY();b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),h=[new mxPoint(g,h),new mxPoint(g+k-e,h),new mxPoint(g+k,a),new mxPoint(g+
k-e,h+l),new mxPoint(g,h+l),new mxPoint(g+e,a),new mxPoint(g,h)]):b==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),h=[new mxPoint(g+e,h),new mxPoint(g+k,h),new mxPoint(g+k-e,a),new mxPoint(g+k,h+l),new mxPoint(g+e,h+l),new mxPoint(g,a),new mxPoint(g+e,h)]):b==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(l,f)):l*Math.max(0,Math.min(1,f)),h=[new mxPoint(g,h+e),new mxPoint(P,h),new mxPoint(g+k,h+e),new mxPoint(g+k,h+l),new mxPoint(P,h+l-e),new mxPoint(g,
h+l),new mxPoint(g,h+e)]):(e=e?Math.max(0,Math.min(l,f)):l*Math.max(0,Math.min(1,f)),h=[new mxPoint(g,h),new mxPoint(P,h+e),new mxPoint(g+k,h),new mxPoint(g+k,h+l-e),new mxPoint(P,h+l),new mxPoint(g,h+l-e),new mxPoint(g,h)]);P=new mxPoint(P,a);d&&(c.x<g||c.x>g+k?P.y=c.y:P.x=c.x);return mxUtils.getPerimeterPoint(h,P,c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,b,c,d){var e=A.prototype.size;null!=b&&(e=mxUtils.getValue(b.style,"size",
function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?v.prototype.fixedSize:v.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));var g=a.x,h=a.y,k=a.width,l=a.height,O=a.getCenterX();a=a.getCenterY();b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),h=[new mxPoint(g,h),new mxPoint(g+k-e,h),new mxPoint(g+k,a),new mxPoint(g+
k-e,h+l),new mxPoint(g,h+l),new mxPoint(g+e,a),new mxPoint(g,h)]):b==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),h=[new mxPoint(g+e,h),new mxPoint(g+k,h),new mxPoint(g+k-e,a),new mxPoint(g+k,h+l),new mxPoint(g+e,h+l),new mxPoint(g,a),new mxPoint(g+e,h)]):b==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(l,f)):l*Math.max(0,Math.min(1,f)),h=[new mxPoint(g,h+e),new mxPoint(O,h),new mxPoint(g+k,h+e),new mxPoint(g+k,h+l),new mxPoint(O,h+l-e),new mxPoint(g,
h+l),new mxPoint(g,h+e)]):(e=e?Math.max(0,Math.min(l,f)):l*Math.max(0,Math.min(1,f)),h=[new mxPoint(g,h),new mxPoint(O,h+e),new mxPoint(g+k,h),new mxPoint(g+k,h+l-e),new mxPoint(O,h+l),new mxPoint(g,h+l-e),new mxPoint(g,h)]);O=new mxPoint(O,a);d&&(c.x<g||c.x>g+k?O.y=c.y:O.x=c.x);return mxUtils.getPerimeterPoint(h,O,c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,b,c,d){var e=A.prototype.size;null!=b&&(e=mxUtils.getValue(b.style,"size",
e));var f=a.x,g=a.y,h=a.width,k=a.height,l=a.getCenterX();a=a.getCenterY();b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH?(e=k*Math.max(0,Math.min(1,e)),g=[new mxPoint(l,g),new mxPoint(f+h,g+e),new mxPoint(f+h,g+k-e),new mxPoint(l,g+k),new mxPoint(f,g+k-e),new mxPoint(f,g+e),new mxPoint(l,g)]):(e=h*Math.max(0,Math.min(1,e)),g=[new mxPoint(f+e,g),new mxPoint(f+h-e,g),
new mxPoint(f+h,a),new mxPoint(f+h-e,g+k),new mxPoint(f+e,g+k),new mxPoint(f,a),new mxPoint(f+e,g)]);l=new mxPoint(l,a);d&&(c.x<f||c.x>f+h?l.y=c.y:l.x=c.x);return mxUtils.getPerimeterPoint(g,l,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(N,mxShape);N.prototype.size=10;N.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(b,c);a.ellipse((d-f)/2,0,f,f);a.fillAndStroke();a.begin();
a.moveTo(d/2,f);a.lineTo(d/2,e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.lollipop=N;mxUtils.extend(Q,mxShape);Q.prototype.size=10;Q.prototype.inset=2;Q.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.begin();a.moveTo(d/2,f+g);a.lineTo(d/2,e);a.end();a.stroke();a.begin();a.moveTo((d-f)/2-g,f/2);a.quadTo((d-f)/2-g,f+g,d/2,f+
g);a.quadTo((d+f)/2+g,f+g,(d+f)/2+g,f/2);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.requires=Q;mxUtils.extend(O,mxCylinder);O.prototype.jettyWidth=32;O.prototype.jettyHeight=12;O.prototype.redrawPath=function(a,b,c,d,e,f){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=g/2;var g=c+g/2,h=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,h),a.lineTo(g,h),a.lineTo(g,h+b),a.lineTo(c,h+b),a.moveTo(c,
k),a.lineTo(g,k),a.lineTo(g,k+b),a.lineTo(c,k+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,e),a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.lineTo(c,h+b),a.lineTo(0,h+b),a.lineTo(0,h),a.lineTo(c,h),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.component=O;mxUtils.extend(F,mxDoubleEllipse);F.prototype.outerStroke=!0;F.prototype.paintVertexShape=function(a,b,c,d,e){var f=Math.min(4,Math.min(d/5,e/5));0<d&&0<e&&(a.ellipse(b+f,c+f,d-2*f,e-2*f),a.fillAndStroke());
g);a.quadTo((d+f)/2+g,f+g,(d+f)/2+g,f/2);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.requires=Q;mxUtils.extend(P,mxCylinder);P.prototype.jettyWidth=32;P.prototype.jettyHeight=12;P.prototype.redrawPath=function(a,b,c,d,e,f){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=g/2;var g=c+g/2,h=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,h),a.lineTo(g,h),a.lineTo(g,h+b),a.lineTo(c,h+b),a.moveTo(c,
k),a.lineTo(g,k),a.lineTo(g,k+b),a.lineTo(c,k+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,e),a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.lineTo(c,h+b),a.lineTo(0,h+b),a.lineTo(0,h),a.lineTo(c,h),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.component=P;mxUtils.extend(F,mxDoubleEllipse);F.prototype.outerStroke=!0;F.prototype.paintVertexShape=function(a,b,c,d,e){var f=Math.min(4,Math.min(d/5,e/5));0<d&&0<e&&(a.ellipse(b+f,c+f,d-2*f,e-2*f),a.fillAndStroke());
a.setShadow(!1);this.outerStroke&&(a.ellipse(b,c,d,e),a.stroke())};mxCellRenderer.prototype.defaultShapes.endState=F;mxUtils.extend(E,F);E.prototype.outerStroke=!1;mxCellRenderer.prototype.defaultShapes.startState=E;mxUtils.extend(G,mxArrowConnector);G.prototype.defaultWidth=4;G.prototype.isOpenEnded=function(){return!0};G.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};G.prototype.isArrowRounded=function(){return this.isRounded};
mxCellRenderer.prototype.defaultShapes.link=G;mxUtils.extend(z,mxArrowConnector);z.prototype.defaultWidth=10;z.prototype.defaultArrowWidth=20;z.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};z.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};z.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+
Math.max(0,this.strokewidth-1)};mxCellRenderer.prototype.defaultShapes.flexArrow=z;mxUtils.extend(W,mxActor);W.prototype.size=30;W.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(0,b),new mxPoint(d,0),new mxPoint(d,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.prototype.defaultShapes.manualInput=W;mxUtils.extend(S,
@ -2667,66 +2667,66 @@ c+e/2),a.lineTo(b+d,c+e/2));a.end();a.stroke()};mxCellRenderer.prototype.default
"size",this.size))));b=(e-f)/2;c=b+f;var g=(d-f)/2,f=g+f;a.moveTo(0,b);a.lineTo(g,b);a.lineTo(g,0);a.lineTo(f,0);a.lineTo(f,b);a.lineTo(d,b);a.lineTo(d,c);a.lineTo(f,c);a.lineTo(f,e);a.lineTo(g,e);a.lineTo(g,c);a.lineTo(0,c);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.cross=pa;mxUtils.extend(qa,mxActor);qa.prototype.size=.25;qa.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/2);c=Math.min(d-b,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);a.moveTo(0,
e/2);a.lineTo(c,0);a.lineTo(d-b,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d-b,e);a.lineTo(c,e);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.display=qa;mxUtils.extend(ma,mxConnector);ma.prototype.origPaintEdgeShape=ma.prototype.paintEdgeShape;ma.prototype.paintEdgeShape=function(a,b,c){var d=a.state.dashed,e=a.state.fixDash;ma.prototype.origPaintEdgeShape.apply(this,arguments);if(3<=a.state.strokeWidth){var f=mxUtils.getValue(this.style,"fillColor",null);null!=f&&(a.setStrokeColor(f),a.setStrokeWidth(a.state.strokeWidth-
2),a.setDashed(d,e),ma.prototype.origPaintEdgeShape.apply(this,arguments))}};mxCellRenderer.prototype.defaultShapes.filledEdge=ma;mxMarker.addMarker("dash",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-3*n/2-m/2);a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-
3*n/2-m/2);a.moveTo(d.x-m/2+n/2,d.y-n/2-m/2);a.lineTo(d.x-n/2-3*m/2,d.y-3*n/2+m/2);a.stroke()}});mxMarker.addMarker("circle",Da);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var m=d.clone(),n=Da.apply(this,arguments),p=e*(g+2*k),q=f*(g+2*k);return function(){n.apply(this,arguments);a.begin();a.moveTo(m.x-e*k,m.y-f*k);a.lineTo(m.x-2*p+e*k,m.y-2*q+f*k);a.moveTo(m.x-p-q+f*k,m.y-q+p-e*k);a.lineTo(m.x+q-p-f*k,m.y-q-p+e*k);a.stroke()}});mxMarker.addMarker("async",function(a,b,c,d,e,f,g,
3*n/2-m/2);a.moveTo(d.x-m/2+n/2,d.y-n/2-m/2);a.lineTo(d.x-n/2-3*m/2,d.y-3*n/2+m/2);a.stroke()}});mxMarker.addMarker("circle",Da);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var m=d.clone(),n=Da.apply(this,arguments),p=e*(g+2*k),O=f*(g+2*k);return function(){n.apply(this,arguments);a.begin();a.moveTo(m.x-e*k,m.y-f*k);a.lineTo(m.x-2*p+e*k,m.y-2*O+f*k);a.moveTo(m.x-p-O+f*k,m.y-O+p-e*k);a.lineTo(m.x+O-p-f*k,m.y-O-p+e*k);a.stroke()}});mxMarker.addMarker("async",function(a,b,c,d,e,f,g,
h,k,l){b=e*k*1.118;c=f*k*1.118;e*=g+k;f*=g+k;var m=d.clone();m.x-=b;m.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(m.x,m.y);h?a.lineTo(m.x-e-f/2,m.y-f+e/2):a.lineTo(m.x+f/2-e,m.y-f-e/2);a.lineTo(m.x-e,m.y-f);a.close();l?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(b,c,d,e,f,g,h,k,l,m){f*=h+l;g*=h+l;var n=e.clone();return function(){b.begin();b.moveTo(n.x,n.y);k?b.lineTo(n.x-f-g/a,n.y-g+f/a):b.lineTo(n.x+g/a-f,n.y-g-f/
a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Fa=function(a,b,c){return sa(a,["width"],b,function(b,d,e,f,g){g=a.shape.getEdgeWidth()*a.view.scale+c;return new mxPoint(f.x+d*b/4+e*g/2,f.y+e*b/4-d*g/2)},function(b,d,e,f,g,h){b=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));a.style.width=Math.round(2*b)/a.view.scale-c})},sa=function(a,b,c,d,e){var f=a.absolutePoints,g=f.length-1,h=a.view.translate,k=a.view.scale,l=c?f[0]:f[g],m=c?f[1]:f[g-1],n=m.x-l.x,p=m.y-l.y,q=Math.sqrt(n*
n+p*p);return M(a,b,function(a){a=d.call(this,q,n/q,p/q,l,m);return new mxPoint(a.x/k-h.x,a.y/k-h.y)},function(a,b,c){a=Math.sqrt(n*n+p*p);b.x=(b.x+h.x)*k;b.y=(b.y+h.y)*k;e.call(this,a,n/a,p/a,l,m,b,c)})},ia=function(a){return function(b){return[M(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",U.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",U.prototype.arrowSize)));return new mxPoint(b.x+
(1-d)*b.width,b.y+(1-c)*b.height/2)},function(b,c){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(b.y+b.height/2-c.y)/b.height*2));this.state.style.arrowSize=Math.max(0,Math.min(a,(b.x+b.width-c.x)/b.width))})]}},Ba=function(a,b,c){return function(d){var e=[M(d,["size"],function(c){var d=Math.max(0,Math.min(c.width,Math.min(c.height,parseFloat(mxUtils.getValue(this.state.style,"size",b)))))*a;return new mxPoint(c.x+d,c.y+d)},function(b,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,
c.x-b.x),Math.min(b.height,c.y-b.y)))/a)})];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ha(d));return e}},wa=function(a,b,c,d,e){c=null!=c?c:1;return function(f){var g=[M(f,["size"],function(b){var c=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,"size",c?e:a));return new mxPoint(b.x+Math.max(0,Math.min(b.width,d*(c?1:b.width))),b.getCenterY())},function(a,b){var d=null!=e?"0"!=mxUtils.getValue(this.state.style,
"fixedSize","0"):null;this.state.style.size=d?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width))},null,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ha(f));return g}},Ga=function(a){return function(b){var c=[M(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",n.prototype.size))));return new mxPoint(b.x+c*b.width*.75,b.y+b.height/4)},function(b,c){this.state.style.size=Math.max(0,Math.min(a,(c.x-b.x)/(.75*b.width)))},null,
!0)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ha(b));return c}},ta=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ha(a));return b}},ha=function(a,b){return M(a,[mxConstants.STYLE_ARCSIZE],function(c){var d=null!=b?b:c.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(c.x+c.width-Math.min(c.width/
2,e),c.y+d)}e=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(c.x+c.width-Math.min(Math.max(c.width/2,c.height/2),Math.min(c.width,c.height)*e),c.y+d)},function(b,c,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(b.width,2*(b.x+b.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,
Math.max(0,100*(b.width-c.x+b.x)/Math.min(b.width,b.height))))})},M=function(a,b,c,d,e,f){var g=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);g.execute=function(){for(var a=0;a<b.length;a++)this.copyStyle(b[a])};g.getPosition=c;g.setPosition=d;g.ignoreGrid=null!=e?e:!0;if(f){var h=g.positionChanged;g.positionChanged=function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},Ca={link:function(a){return[Fa(a,!0,10),Fa(a,!1,10)]},flexArrow:function(a){var b=
a.view.graph.gridSize/a.view.scale,c=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(sa(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)-c*
b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<
b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),c.push(sa(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,f){b=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)-c*b/2)},function(c,d,e,f,g,h,k){c=
Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-
parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-parseFloat(a.style.endWidth))<b&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(sa(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,
mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=
a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),c.push(sa(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/
5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=
a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<b&&(a.style.endWidth=a.style.startWidth))})));return c},swimlane:function(a){var b=[M(a,[mxConstants.STYLE_STARTSIZE],function(b){var c=parseFloat(mxUtils.getValue(a.style,
mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(b.getCenterX(),b.y+Math.max(0,Math.min(b.height,c))):new mxPoint(b.x+Math.max(0,Math.min(b.width,c)),b.getCenterY())},function(b,c){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(b.height,c.y-b.y))):Math.round(Math.max(0,Math.min(b.width,c.x-b.x)))})];if(mxUtils.getValue(a.style,
mxConstants.STYLE_ROUNDED)){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));b.push(ha(a,c/2))}return b},label:ta(),ext:ta(),rectangle:ta(),triangle:ta(),rhombus:ta(),umlLifeline:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",D.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,
b.y-a.y)))},!1)]},umlFrame:function(a){return[M(a,["width","height"],function(a){var b=Math.max(K.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",K.prototype.width))),c=Math.max(1.5*K.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",K.prototype.height)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(K.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*K.prototype.corner,
Math.min(a.height,b.y-a.y)))},!1)]},process:function(a){var b=[M(a,["size"],function(a){var b=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size))));return new mxPoint(a.x+a.width*b,a.y+a.height/4)},function(a,b){this.state.style.size=Math.max(0,Math.min(.5,(b.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ha(a));return b},cross:function(a){return[M(a,["size"],function(a){var b=Math.min(a.width,a.height),b=Math.max(0,Math.min(1,
mxUtils.getValue(this.state.style,"size",pa.prototype.size)))*b/2;return new mxPoint(a.getCenterX()-b,a.getCenterY()-b)},function(a,b){var c=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-b.y)/c*2,Math.max(0,a.getCenterX()-b.x)/c*2)))})]},note:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",e.prototype.size)))));return new mxPoint(a.x+a.width-
b,a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},manualInput:function(a){var b=[M(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",W.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*b/4)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(b.y-a.y)/3)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ha(a));
return b},dataStorage:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",da.prototype.size))));return new mxPoint(a.x+(1-b)*a.width,a.getCenterY())},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width-b.x)/a.width))})]},callout:function(a){var b=[M(a,["size","position"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",u.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
"position",u.prototype.position)));mxUtils.getValue(this.state.style,"base",u.prototype.base);return new mxPoint(a.x+c*a.width,a.y+a.height-b)},function(a,b){mxUtils.getValue(this.state.style,"base",u.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-b.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100}),M(a,["position2"],function(a){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",u.prototype.position2)));
return new mxPoint(a.x+b*a.width,a.y+a.height)},function(a,b){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100}),M(a,["base"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",u.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",u.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",u.prototype.base)));return new mxPoint(a.x+Math.min(a.width,c*a.width+
d),a.y+a.height-b)},function(a,b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",u.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,b.x-a.x-c*a.width)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ha(a));return b},internalStorage:function(a){var b=[M(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",S.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
"dy",S.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ha(a));return b},corner:function(a){return[M(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",T.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
"dy",T.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},tee:function(a){return[M(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",X.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",X.prototype.dy)));return new mxPoint(a.x+(a.width+b)/2,a.y+c)},function(a,
b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},singleArrow:ia(1),doubleArrow:ia(.5),folder:function(a){return[M(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",k.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",k.prototype.tabHeight)));mxUtils.getValue(this.state.style,
"tabPosition",k.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=Math.max(0,Math.min(a.width,b.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",k.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},document:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,
"size",l.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},tape:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",h.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b*a.height/2)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(b.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[M(a,
["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",Z.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},step:wa(v.prototype.size,!0,null,!0,v.prototype.fixedSize),hexagon:wa(A.prototype.size,!0,.5,!0),curlyBracket:wa(p.prototype.size,!1),display:wa(qa.prototype.size,!1),cube:Ba(1,a.prototype.size,!1),card:Ba(.5,g.prototype.size,!0),loopLimit:Ba(.5,
Y.prototype.size,!0),trapezoid:Ga(.5),parallelogram:Ga(1)};Graph.createHandle=M;Graph.handleFactory=Ca;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=Ca[a];if(null!=a)return a(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=
function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);a=Ca[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var xa=new mxPoint(1,0),ya=new mxPoint(1,0),ia=mxUtils.toRadians(-30),xa=mxUtils.getRotatedPoint(xa,Math.cos(ia),Math.sin(ia)),ia=mxUtils.toRadians(-150),ya=mxUtils.getRotatedPoint(ya,
Math.cos(ia),Math.sin(ia));mxEdgeStyle.IsometricConnector=function(a,b,c,d,e){var f=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,h=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null==h&&null!=b&&(h=new mxPoint(b.getCenterX(),b.getCenterY()));null==g&&null!=c&&(g=new mxPoint(c.getCenterX(),c.getCenterY()));var k=xa.x,l=xa.y,m=ya.x,n=ya.y,p="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,b,c){a-=q.x;var d=b-q.y;b=(n*a-
m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);p?(c&&(q=new mxPoint(q.x+k*b,q.y+l*b),e.push(q)),q=new mxPoint(q.x+m*a,q.y+n*a)):(c&&(q=new mxPoint(q.x+m*a,q.y+n*a),e.push(q)),q=new mxPoint(q.x+k*b,q.y+l*b));e.push(q)};var q=h;null==d&&(d=new mxPoint(h.x+(g.x-h.x)/2,h.y+(g.y-h.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var La=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=
new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return La.apply(this,arguments)};c.prototype.constraints=[];d.prototype.constraints=[];u.prototype.constraints=[];mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),
!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,
1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=mxRectangleShape.prototype.constraints;e.prototype.constraints=
mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.constraints=mxRectangleShape.prototype.constraints;S.prototype.constraints=mxRectangleShape.prototype.constraints;da.prototype.constraints=mxRectangleShape.prototype.constraints;fa.prototype.constraints=mxEllipse.prototype.constraints;ga.prototype.constraints=mxEllipse.prototype.constraints;ba.prototype.constraints=mxEllipse.prototype.constraints;
ua.prototype.constraints=mxEllipse.prototype.constraints;W.prototype.constraints=mxRectangleShape.prototype.constraints;va.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=mxRectangleShape.prototype.constraints;Y.prototype.constraints=mxRectangleShape.prototype.constraints;Z.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)];y.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)];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,.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)];
f.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)];h.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)];v.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(.1,.25),!0),new mxConnectionConstraint(new mxPoint(.2,.5),!0),new mxConnectionConstraint(new mxPoint(.1,.75),!0),new mxConnectionConstraint(new mxPoint(.9,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.9,.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)];N.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(.125,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(.125,.75),!0),new mxConnectionConstraint(new mxPoint(.875,
.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.875,.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)];m.prototype.constraints=mxRectangleShape.prototype.constraints;n.prototype.constraints=
mxRectangleShape.prototype.constraints;l.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;X.prototype.constraints=null;T.prototype.constraints=null;ca.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,
.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];U.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ja.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];pa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,
1),!1)];D.prototype.constraints=null;ka.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)];ea.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)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Fa=function(a,b,c){return sa(a,["width"],b,function(b,d,e,f,g){g=a.shape.getEdgeWidth()*a.view.scale+c;return new mxPoint(f.x+d*b/4+e*g/2,f.y+e*b/4-d*g/2)},function(b,d,e,f,g,h){b=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));a.style.width=Math.round(2*b)/a.view.scale-c})},sa=function(a,b,c,d,e){return M(a,b,function(b){var e=a.absolutePoints,f=e.length-1;b=a.view.translate;var g=a.view.scale,h=c?e[0]:e[f],e=c?e[1]:e[f-1],
f=e.x-h.x,k=e.y-h.y,l=Math.sqrt(f*f+k*k),h=d.call(this,l,f/l,k/l,h,e);return new mxPoint(h.x/g-b.x,h.y/g-b.y)},function(b,d,f){var g=a.absolutePoints,h=g.length-1;b=a.view.translate;var k=a.view.scale,l=c?g[0]:g[h],g=c?g[1]:g[h-1],h=g.x-l.x,m=g.y-l.y,n=Math.sqrt(h*h+m*m);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,n,h/n,m/n,l,g,d,f)})},ia=function(a){return function(b){return[M(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",U.prototype.arrowWidth))),
d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",U.prototype.arrowSize)));return new mxPoint(b.x+(1-d)*b.width,b.y+(1-c)*b.height/2)},function(b,c){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(b.y+b.height/2-c.y)/b.height*2));this.state.style.arrowSize=Math.max(0,Math.min(a,(b.x+b.width-c.x)/b.width))})]}},Ba=function(a,b,c){return function(d){var e=[M(d,["size"],function(c){var d=Math.max(0,Math.min(c.width,Math.min(c.height,parseFloat(mxUtils.getValue(this.state.style,
"size",b)))))*a;return new mxPoint(c.x+d,c.y+d)},function(b,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,c.x-b.x),Math.min(b.height,c.y-b.y)))/a)})];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ha(d));return e}},wa=function(a,b,c,d,e){c=null!=c?c:1;return function(f){var g=[M(f,["size"],function(b){var c=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,"size",c?e:a));return new mxPoint(b.x+
Math.max(0,Math.min(b.width,d*(c?1:b.width))),b.getCenterY())},function(a,b,d){var g=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null;a=g?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width));g&&!mxEvent.isAltDown(d.getEvent())&&(a=f.view.graph.snap(a));this.state.style.size=a},null,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ha(f));return g}},Ga=function(a){return function(b){var c=[M(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,
"size",n.prototype.size))));return new mxPoint(b.x+c*b.width*.75,b.y+b.height/4)},function(b,c){this.state.style.size=Math.max(0,Math.min(a,(c.x-b.x)/(.75*b.width)))},null,!0)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ha(b));return c}},ta=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ha(a));return b}},ha=function(a,b){return M(a,[mxConstants.STYLE_ARCSIZE],function(c){var d=null!=b?b:c.height/8;if("1"==mxUtils.getValue(a.style,
mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(c.x+c.width-Math.min(c.width/2,e),c.y+d)}e=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(c.x+c.width-Math.min(Math.max(c.width/2,c.height/2),Math.min(c.width,c.height)*e),c.y+d)},function(b,c,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?
this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(b.width,2*(b.x+b.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(b.width-c.x+b.x)/Math.min(b.width,b.height))))})},M=function(a,b,c,d,e,f){var g=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);g.execute=function(){for(var a=0;a<b.length;a++)this.copyStyle(b[a])};g.getPosition=c;g.setPosition=d;g.ignoreGrid=null!=e?e:!0;if(f){var h=g.positionChanged;g.positionChanged=
function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},Ca={link:function(a){return[Fa(a,!0,10),Fa(a,!1,10)]},flexArrow:function(a){var b=a.view.graph.gridSize/a.view.scale,c=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(sa(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,
mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)-c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=
a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),c.push(sa(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,f){b=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/
5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)-c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=
a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-parseFloat(a.style.endWidth))<b&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(sa(a,
["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=
Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),c.push(sa(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
!1,function(b,c,d,e,f){b=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/
3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-
parseFloat(a.style.startWidth))<b&&(a.style.endWidth=a.style.startWidth))})));return c},swimlane:function(a){var b=[M(a,[mxConstants.STYLE_STARTSIZE],function(b){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(b.getCenterX(),b.y+Math.max(0,Math.min(b.height,c))):new mxPoint(b.x+Math.max(0,Math.min(b.width,c)),b.getCenterY())},function(b,c){a.style[mxConstants.STYLE_STARTSIZE]=
1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(b.height,c.y-b.y))):Math.round(Math.max(0,Math.min(b.width,c.x-b.x)))})];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));b.push(ha(a,c/2))}return b},label:ta(),ext:ta(),rectangle:ta(),triangle:ta(),rhombus:ta(),umlLifeline:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,
parseFloat(mxUtils.getValue(this.state.style,"size",D.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},umlFrame:function(a){return[M(a,["width","height"],function(a){var b=Math.max(K.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",K.prototype.width))),c=Math.max(1.5*K.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",K.prototype.height)));
return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(K.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*K.prototype.corner,Math.min(a.height,b.y-a.y)))},!1)]},process:function(a){var b=[M(a,["size"],function(a){var b=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size))));return new mxPoint(a.x+a.width*b,a.y+a.height/4)},function(a,b){this.state.style.size=Math.max(0,Math.min(.5,
(b.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ha(a));return b},cross:function(a){return[M(a,["size"],function(a){var b=Math.min(a.width,a.height),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",pa.prototype.size)))*b/2;return new mxPoint(a.getCenterX()-b,a.getCenterY()-b)},function(a,b){var c=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-b.y)/c*2,Math.max(0,a.getCenterX()-b.x)/c*2)))})]},
note:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",e.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},manualInput:function(a){var b=[M(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",W.prototype.size)));
return new mxPoint(a.x+a.width/4,a.y+3*b/4)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(b.y-a.y)/3)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ha(a));return b},dataStorage:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",da.prototype.size))));return new mxPoint(a.x+(1-b)*a.width,a.getCenterY())},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width-
b.x)/a.width))})]},callout:function(a){var b=[M(a,["size","position"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",u.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",u.prototype.position)));mxUtils.getValue(this.state.style,"base",u.prototype.base);return new mxPoint(a.x+c*a.width,a.y+a.height-b)},function(a,b){mxUtils.getValue(this.state.style,"base",u.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,
a.y+a.height-b.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100}),M(a,["position2"],function(a){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",u.prototype.position2)));return new mxPoint(a.x+b*a.width,a.y+a.height)},function(a,b){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100}),M(a,["base"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",u.prototype.size))),
c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",u.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",u.prototype.base)));return new mxPoint(a.x+Math.min(a.width,c*a.width+d),a.y+a.height-b)},function(a,b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",u.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,b.x-a.x-c*a.width)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,
!1)&&b.push(ha(a));return b},internalStorage:function(a){var b=[M(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",S.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",S.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,
!1)&&b.push(ha(a));return b},corner:function(a){return[M(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",T.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",T.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},tee:function(a){return[M(a,["dx","dy"],function(a){var b=
Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",X.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",X.prototype.dy)));return new mxPoint(a.x+(a.width+b)/2,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},singleArrow:ia(1),doubleArrow:ia(.5),folder:function(a){return[M(a,["tabWidth","tabHeight"],function(a){var b=
Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",k.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",k.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",k.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=Math.max(0,Math.min(a.width,b.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",k.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&
(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},document:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",l.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},tape:function(a){return[M(a,["size"],function(a){var b=Math.max(0,
Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",h.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b*a.height/2)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(b.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[M(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",Z.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+
a.height-b.y)/a.height))})]},step:wa(v.prototype.size,!0,null,!0,v.prototype.fixedSize),hexagon:wa(A.prototype.size,!0,.5,!0),curlyBracket:wa(p.prototype.size,!1),display:wa(qa.prototype.size,!1),cube:Ba(1,a.prototype.size,!1),card:Ba(.5,g.prototype.size,!0),loopLimit:Ba(.5,Y.prototype.size,!0),trapezoid:Ga(.5),parallelogram:Ga(1)};Graph.createHandle=M;Graph.handleFactory=Ca;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=
this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=Ca[a];if(null!=a)return a(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);a=Ca[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=
function(){},Graph.handleFactory={};var xa=new mxPoint(1,0),ya=new mxPoint(1,0),ia=mxUtils.toRadians(-30),xa=mxUtils.getRotatedPoint(xa,Math.cos(ia),Math.sin(ia)),ia=mxUtils.toRadians(-150),ya=mxUtils.getRotatedPoint(ya,Math.cos(ia),Math.sin(ia));mxEdgeStyle.IsometricConnector=function(a,b,c,d,e){var f=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,h=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null==h&&null!=b&&(h=new mxPoint(b.getCenterX(),b.getCenterY()));null==
g&&null!=c&&(g=new mxPoint(c.getCenterX(),c.getCenterY()));var k=xa.x,l=xa.y,m=ya.x,n=ya.y,p="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,b,c){a-=q.x;var d=b-q.y;b=(n*a-m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);p?(c&&(q=new mxPoint(q.x+k*b,q.y+l*b),e.push(q)),q=new mxPoint(q.x+m*a,q.y+n*a)):(c&&(q=new mxPoint(q.x+m*a,q.y+n*a),e.push(q)),q=new mxPoint(q.x+k*b,q.y+l*b));e.push(q)};var q=h;null==d&&(d=new mxPoint(h.x+(g.x-h.x)/2,h.y+(g.y-h.y)/2));a(d.x,d.y,
!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var La=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return La.apply(this,arguments)};c.prototype.constraints=[];d.prototype.constraints=[];u.prototype.constraints=[];mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,
0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];
mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=
mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=mxRectangleShape.prototype.constraints;e.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.constraints=mxRectangleShape.prototype.constraints;S.prototype.constraints=mxRectangleShape.prototype.constraints;da.prototype.constraints=
mxRectangleShape.prototype.constraints;fa.prototype.constraints=mxEllipse.prototype.constraints;ga.prototype.constraints=mxEllipse.prototype.constraints;ba.prototype.constraints=mxEllipse.prototype.constraints;ua.prototype.constraints=mxEllipse.prototype.constraints;W.prototype.constraints=mxRectangleShape.prototype.constraints;va.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=mxRectangleShape.prototype.constraints;Y.prototype.constraints=mxRectangleShape.prototype.constraints;
Z.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)];y.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)];P.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)];f.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)];h.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)];v.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)];N.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(.125,
.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(.125,.75),!0),new mxConnectionConstraint(new mxPoint(.875,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.875,.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)];m.prototype.constraints=mxRectangleShape.prototype.constraints;n.prototype.constraints=mxRectangleShape.prototype.constraints;l.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;X.prototype.constraints=null;T.prototype.constraints=null;ca.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,
.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];U.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ja.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];pa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];D.prototype.constraints=null;ka.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)];ea.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)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
Actions.prototype.init=function(){function a(a){b.escape();var c=b.getDeletableCells(b.getSelectionCells());if(null!=c&&0<c.length){var d=b.model.getParents(c);b.removeCells(c,a);if(null!=d){a=[];for(c=0;c<d.length;c++)b.model.contains(d[c])&&(b.model.isVertex(d[c])||b.model.isEdge(d[c]))&&a.push(d[c]);b.setSelectionCells(a)}}}var c=this.editorUi,d=c.editor,b=d.graph,e=function(){return Action.prototype.isEnabled.apply(this,arguments)&&b.isEnabled()};this.addAction("new...",function(){window.open(c.getUrl())});
this.addAction("open...",function(){window.openNew=!0;window.openKey="open";c.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){c.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var c=mxUtils.parseXml(a);d.graph.setSelectionCells(d.graph.importGraphModel(c.documentElement))}catch(m){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+m.message)}}));c.showDialog((new OpenDialog(this)).container,
320,220,!0,!0,function(){window.openFile=null})}).isEnabled=e;this.addAction("save",function(){c.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=e;this.addAction("saveAs...",function(){c.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=e;this.addAction("export...",function(){c.showDialog((new ExportDialog(c)).container,300,230,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(c);c.showDialog(a.container,620,420,!0,!1);a.init()});this.addAction("pageSetup...",
@ -2914,7 +2914,7 @@ t.style.height="40"),a.appendChild(t)):(m[2].style.marginRight="9px",q.style.mar
mxConstants.ALIGN_TOP,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM],top:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_TOP,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_BOTTOM],topRight:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_TOP,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM],left:[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE],center:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE],right:[mxConstants.ALIGN_RIGHT,
mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE],bottomLeft:[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_TOP],bottom:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_TOP],bottomRight:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP]},t=0;t<H.length;t++){var K=document.createElement("option");K.setAttribute("value",H[t]);mxUtils.write(K,mxResources.get(H[t]));
J.appendChild(K)}g.appendChild(J);H=f.cloneNode(!1);H.style.marginLeft="0px";H.style.paddingTop="4px";H.style.paddingBottom="4px";H.style.fontWeight="normal";mxUtils.write(H,mxResources.get("writingDirection"));var N=document.createElement("select");N.style.position="absolute";N.style.right="20px";N.style.width="97px";N.style.marginTop="-2px";for(var K=["automatic","leftToRight","rightToLeft"],Q={automatic:null,leftToRight:mxConstants.TEXT_DIRECTION_LTR,rightToLeft:mxConstants.TEXT_DIRECTION_RTL},
t=0;t<K.length;t++){var O=document.createElement("option");O.setAttribute("value",K[t]);mxUtils.write(O,mxResources.get(K[t]));N.appendChild(O)}H.appendChild(N);b.isEditing()||(a.appendChild(g),mxEvent.addListener(J,"change",function(a){b.getModel().beginUpdate();try{var c=D[J.value];null!=c&&(b.setCellStyles(mxConstants.STYLE_LABEL_POSITION,c[0],b.getSelectionCells()),b.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION,c[1],b.getSelectionCells()),b.setCellStyles(mxConstants.STYLE_ALIGN,c[2],
t=0;t<K.length;t++){var P=document.createElement("option");P.setAttribute("value",K[t]);mxUtils.write(P,mxResources.get(K[t]));N.appendChild(P)}H.appendChild(N);b.isEditing()||(a.appendChild(g),mxEvent.addListener(J,"change",function(a){b.getModel().beginUpdate();try{var c=D[J.value];null!=c&&(b.setCellStyles(mxConstants.STYLE_LABEL_POSITION,c[0],b.getSelectionCells()),b.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION,c[1],b.getSelectionCells()),b.setCellStyles(mxConstants.STYLE_ALIGN,c[2],
b.getSelectionCells()),b.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,c[3],b.getSelectionCells()))}finally{b.getModel().endUpdate()}mxEvent.consume(a)}),a.appendChild(H),mxEvent.addListener(N,"change",function(a){b.setCellStyles(mxConstants.STYLE_TEXT_DIRECTION,Q[N.value],b.getSelectionCells());mxEvent.consume(a)}));var F=document.createElement("input");F.style.textAlign="right";F.style.marginTop="4px";mxClient.IS_QUIRKS||(F.style.position="absolute",F.style.right="32px");F.style.width="46px";F.style.height=
mxClient.IS_QUIRKS?"21px":"17px";h.appendChild(F);var E=null,g=this.installInputHandler(F,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize,1,999," pt",function(a){E=a;document.execCommand("fontSize",!1,"4");a=b.cellEditor.textarea.getElementsByTagName("font");for(var c=0;c<a.length;c++)if("4"==a[c].getAttribute("size")){a[c].removeAttribute("size");a[c].style.fontSize=E+"px";window.setTimeout(function(){F.value=E+" pt";E=null},0);break}},!0),g=this.createStepper(F,g,1,10,!0,Menus.prototype.defaultFontSize);
g.style.display=F.style.display;g.style.marginTop="4px";mxClient.IS_QUIRKS||(g.style.right="20px");h.appendChild(g);h=l.getElementsByTagName("div")[0];h.style.cssFloat="right";var G=null,z="#ffffff",W=null,S="#000000",T=b.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),function(){return z},function(a){document.execCommand("backcolor",!1,a!=mxConstants.NONE?a:"transparent")},"#ffffff",{install:function(a){G=a},destroy:function(){G=null}},null,!0):this.createCellColorOption(mxResources.get("backgroundColor"),
@ -2995,17 +2995,17 @@ null,!1),this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"e
null,!1).setAttribute("title",mxResources.get("block"))}}));this.addArrow(t,8);this.addArrow(x);this.addArrow(C);this.addArrow(B);v=this.addArrow(l,9);v.className="geIcon";v.style.width="84px";A=this.addArrow(m,9);A.className="geIcon";A.style.width="22px";var y=document.createElement("div");y.style.width="85px";y.style.height="1px";y.style.borderBottom="1px solid black";y.style.marginBottom="9px";v.appendChild(y);var I=document.createElement("div");I.style.width="23px";I.style.height="1px";I.style.borderBottom=
"1px solid black";I.style.marginBottom="9px";A.appendChild(I);l.style.height="15px";m.style.height="15px";t.style.height="15px";x.style.height="17px";C.style.marginLeft="3px";C.style.height="17px";B.style.marginLeft="3px";B.style.height="17px";a.appendChild(k);a.appendChild(q);a.appendChild(p);l=p.cloneNode(!1);l.style.paddingBottom="6px";l.style.paddingTop="4px";l.style.fontWeight="normal";m=document.createElement("div");m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom="12px";
m.style.marginTop="2px";m.style.fontWeight="normal";m.style.width="76px";mxUtils.write(m,mxResources.get("lineend"));l.appendChild(m);var L,J,H=this.addUnitInput(l,"pt",74,33,function(){L.apply(this,arguments)}),D=this.addUnitInput(l,"pt",20,33,function(){J.apply(this,arguments)});mxUtils.br(l);v=document.createElement("div");v.style.height="8px";l.appendChild(v);m=m.cloneNode(!1);mxUtils.write(m,mxResources.get("linestart"));l.appendChild(m);var K,N,Q=this.addUnitInput(l,"pt",74,33,function(){K.apply(this,
arguments)}),O=this.addUnitInput(l,"pt",20,33,function(){N.apply(this,arguments)});mxUtils.br(l);this.addLabel(l,mxResources.get("spacing"),74,50);this.addLabel(l,mxResources.get("size"),20,50);mxUtils.br(l);k=k.cloneNode(!1);k.style.fontWeight="normal";k.style.position="relative";k.style.paddingLeft="16px";k.style.marginBottom="2px";k.style.marginTop="6px";k.style.borderWidth="0px";k.style.paddingBottom="18px";m=document.createElement("div");m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom=
arguments)}),P=this.addUnitInput(l,"pt",20,33,function(){N.apply(this,arguments)});mxUtils.br(l);this.addLabel(l,mxResources.get("spacing"),74,50);this.addLabel(l,mxResources.get("size"),20,50);mxUtils.br(l);k=k.cloneNode(!1);k.style.fontWeight="normal";k.style.position="relative";k.style.paddingLeft="16px";k.style.marginBottom="2px";k.style.marginTop="6px";k.style.borderWidth="0px";k.style.paddingBottom="18px";m=document.createElement("div");m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom=
"12px";m.style.marginTop="1px";m.style.fontWeight="normal";m.style.width="120px";mxUtils.write(m,mxResources.get("perimeter"));k.appendChild(m);var F,E=this.addUnitInput(k,"pt",20,41,function(){F.apply(this,arguments)});f.edges.length==e.getSelectionCount()?(a.appendChild(h),mxClient.IS_QUIRKS&&(mxUtils.br(a),mxUtils.br(a)),a.appendChild(l)):f.vertices.length==e.getSelectionCount()&&(mxClient.IS_QUIRKS&&mxUtils.br(a),a.appendChild(k));var G=mxUtils.bind(this,function(a,c,d){function h(a,c,d,e){d=
d.getElementsByTagName("div")[0];d.className=b.getCssClassForMarker(e,f.style.shape,a,c);"geSprite geSprite-noarrow"==d.className&&(d.innerHTML=mxUtils.htmlEntities(mxResources.get("none")),d.style.backgroundImage="none",d.style.verticalAlign="top",d.style.marginTop="5px",d.style.fontSize="10px",d.nextSibling.style.marginTop="0px");return d}f=this.format.getSelectionState();mxUtils.getValue(f.style,n,null);if(d||document.activeElement!=w)a=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_STROKEWIDTH,
1)),w.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=u)a=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_STROKEWIDTH,1)),u.value=isNaN(a)?"":a+" pt";g.style.visibility="connector"==f.style.shape||"filledEdge"==f.style.shape?"":"hidden";"1"==mxUtils.getValue(f.style,mxConstants.STYLE_CURVED,null)?g.value="curved":"1"==mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,null)&&(g.value="rounded");"1"==mxUtils.getValue(f.style,mxConstants.STYLE_DASHED,null)?null==mxUtils.getValue(f.style,
mxConstants.STYLE_DASH_PATTERN,null)?y.style.borderBottom="1px dashed black":y.style.borderBottom="1px dotted black":y.style.borderBottom="1px solid black";I.style.borderBottom=y.style.borderBottom;a=x.getElementsByTagName("div")[0];c=mxUtils.getValue(f.style,mxConstants.STYLE_EDGE,null);"1"==mxUtils.getValue(f.style,mxConstants.STYLE_NOEDGESTYLE,null)&&(c=null);"orthogonalEdgeStyle"==c&&"1"==mxUtils.getValue(f.style,mxConstants.STYLE_CURVED,null)?a.className="geSprite geSprite-curved":a.className=
"straight"==c||"none"==c||null==c?"geSprite geSprite-straight":"entityRelationEdgeStyle"==c?"geSprite geSprite-entity":"elbowEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(f.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalelbow":"geSprite-horizontalelbow"):"isometricEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(f.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalisometric":"geSprite-horizontalisometric"):"geSprite geSprite-orthogonal";t.getElementsByTagName("div")[0].className=
"link"==f.style.shape?"geSprite geSprite-linkedge":"flexArrow"==f.style.shape?"geSprite geSprite-arrow":"arrow"==f.style.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection";f.edges.length==e.getSelectionCount()?(q.style.display="",p.style.display="none"):(q.style.display="none",p.style.display="");a=h(mxUtils.getValue(f.style,mxConstants.STYLE_STARTARROW,null),mxUtils.getValue(f.style,"startFill","1"),C,"start");c=h(mxUtils.getValue(f.style,mxConstants.STYLE_ENDARROW,null),mxUtils.getValue(f.style,
"endFill","1"),B,"end");"arrow"==f.style.shape?(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-endblocktrans"):"link"==f.style.shape&&(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-noarrow");mxUtils.setOpacity(x,"arrow"==f.style.shape?30:100);"connector"!=f.style.shape&&"flexArrow"!=f.style.shape?(mxUtils.setOpacity(C,30),mxUtils.setOpacity(B,30)):(mxUtils.setOpacity(C,100),mxUtils.setOpacity(B,100));if(d||document.activeElement!=O)a=parseInt(mxUtils.getValue(f.style,
mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)),O.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=Q)a=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),Q.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=D)a=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),D.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=Q)a=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0)),
H.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=E)a=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_PERIMETER_SPACING,0)),E.value=isNaN(a)?"":a+" pt"});N=this.installInputHandler(O,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");K=this.installInputHandler(Q,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");J=this.installInputHandler(D,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");L=this.installInputHandler(H,mxConstants.STYLE_TARGET_PERIMETER_SPACING,
0,-999,999," pt");F=this.installInputHandler(E,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(w,G);this.addKeyHandler(O,G);this.addKeyHandler(Q,G);this.addKeyHandler(D,G);this.addKeyHandler(H,G);this.addKeyHandler(E,G);e.getModel().addListener(mxEvent.CHANGE,G);this.listeners.push({destroy:function(){e.getModel().removeListener(G)}});G();return a};
"endFill","1"),B,"end");"arrow"==f.style.shape?(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-endblocktrans"):"link"==f.style.shape&&(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-noarrow");mxUtils.setOpacity(x,"arrow"==f.style.shape?30:100);"connector"!=f.style.shape&&"flexArrow"!=f.style.shape?(mxUtils.setOpacity(C,30),mxUtils.setOpacity(B,30)):(mxUtils.setOpacity(C,100),mxUtils.setOpacity(B,100));if(d||document.activeElement!=P)a=parseInt(mxUtils.getValue(f.style,
mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)),P.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=Q)a=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),Q.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=D)a=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),D.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=Q)a=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0)),
H.value=isNaN(a)?"":a+" pt";if(d||document.activeElement!=E)a=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_PERIMETER_SPACING,0)),E.value=isNaN(a)?"":a+" pt"});N=this.installInputHandler(P,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");K=this.installInputHandler(Q,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");J=this.installInputHandler(D,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");L=this.installInputHandler(H,mxConstants.STYLE_TARGET_PERIMETER_SPACING,
0,-999,999," pt");F=this.installInputHandler(E,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(w,G);this.addKeyHandler(P,G);this.addKeyHandler(Q,G);this.addKeyHandler(D,G);this.addKeyHandler(H,G);this.addKeyHandler(E,G);e.getModel().addListener(mxEvent.CHANGE,G);this.listeners.push({destroy:function(){e.getModel().removeListener(G)}});G();return a};
StyleFormatPanel.prototype.addLineJumps=function(a){var c=this.format.getSelectionState();if(Graph.lineJumpsEnabled&&0<c.edges.length&&0==c.vertices.length&&c.lineJumps){a.style.padding="8px 0px 24px 18px";var d=this.editorUi,b=d.editor.graph,e=document.createElement("div");e.style.position="absolute";e.style.fontWeight="bold";e.style.width="80px";mxUtils.write(e,mxResources.get("lineJumps"));a.appendChild(e);var f=document.createElement("select");f.style.position="absolute";f.style.marginTop="-2px";
f.style.right="76px";f.style.width="62px";for(var e=["none","arc","gap","sharp"],k=0;k<e.length;k++){var g=document.createElement("option");g.setAttribute("value",e[k]);mxUtils.write(g,mxResources.get(e[k]));f.appendChild(g)}mxEvent.addListener(f,"change",function(a){b.getModel().beginUpdate();try{b.setCellStyles("jumpStyle",f.value,b.getSelectionCells()),d.fireEvent(new mxEventObject("styleChanged","keys",["jumpStyle"],"values",[f.value],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}mxEvent.consume(a)});
mxEvent.addListener(f,"click",function(a){mxEvent.consume(a)});a.appendChild(f);var h,l=this.addUnitInput(a,"pt",22,33,function(){h.apply(this,arguments)});h=this.installInputHandler(l,"jumpSize",Graph.defaultJumpSize,0,999," pt");var m=mxUtils.bind(this,function(a,b,d){c=this.format.getSelectionState();f.value=mxUtils.getValue(c.style,"jumpStyle","none");if(d||document.activeElement!=l)a=parseInt(mxUtils.getValue(c.style,"jumpSize",Graph.defaultJumpSize)),l.value=isNaN(a)?"":a+" pt"});this.addKeyHandler(l,
@ -3156,50 +3156,50 @@ Sidebar.prototype.cisco="Buildings;Computers and Peripherals;Controllers and Mod
Sidebar.prototype.gmdl="Bottom Navigation;Bottom Sheets;Buttons;Cards;Chips;Dialogs;Dividers;Grid Lists;Icons;Lists;Menus;Misc;Pickers;Selection Controls;Sliders;Steppers;Tabs;Text Fields".split(";");Sidebar.prototype.aws2="Analytics;Application Services;Compute;Database;Developer Tools;Enterprise Applications;Game Development;General;Internet of Things;Management Tools;Mobile Services;Networking;On-Demand Workforce;SDKs;Security and Identity;Storage and Content Delivery;Groups".split(";");Sidebar.prototype.aws3=
"Analytics;Application Services;Artificial Intelligence;Business Productivity;Compute;Contact Center;Database;Desktop and App Streaming;Developer Tools;Game Development;General;Groups;Internet of Things;Management Tools;Messaging;Migration;Mobile Services;Networking and Content Delivery;On Demand Workforce;SDKs;Security Identity and Compliance;Storage".split(";");Sidebar.prototype.office="Clouds Communications Concepts Databases Devices Security Servers Services Sites Users".split(" ");Sidebar.prototype.veeam=
["2D","3D"];Sidebar.prototype.archimate3="Application;Business;Composite;Implementation and Migration;Motivation;Physical;Relationships;Strategy;Technology".split(";");Sidebar.prototype.electrical="LogicGates Resistors Capacitors Inductors SwitchesRelays Diodes Sources Transistors Misc Audio PlcLadder Abstract Optical VacuumTubes Waveforms Instruments RotMech Transmission".split(" ");Sidebar.prototype.configuration=[{id:"general",libs:["general","misc","advanced"]},{id:"uml"},{id:"search"},{id:"er"},
{id:"ios",prefix:"ios",libs:["","7icons","7ui"]},{id:"android",prefix:"android",libs:[""]},{id:"aws3d"},{id:"flowchart"},{id:"basic"},{id:"arrows"},{id:"arrows2"},{id:"lean_mapping"},{id:"citrix"},{id:"azure"},{id:"network"},{id:"mscae",prefix:"mscae",libs:"Cloud;Enterprise;General;Intune;Other;System Center;Deprecated".split(";")},{id:"bpmn",prefix:"bpmn",libs:["","Gateways","Events"]},{id:"clipart",prefix:null,libs:"computer finance clipart networking people telco".split(" ")},{id:"ibm",prefix:"ibm",
libs:Sidebar.prototype.ibm},{id:"eip",prefix:"eip",libs:Sidebar.prototype.eip},{id:"mockups",prefix:"mockup",libs:"Buttons Containers Forms Graphics Markup Misc Navigation Text".split(" ")},{id:"pid2",prefix:"pid2",libs:"Agitators;Apparatus Elements;Centrifuges;Compressors;Compressors ISO;Crushers Grinding;Driers;Engines;Feeders;Filters;Fittings;Flow Sensors;Heat Exchangers;Instruments;Misc;Mixers;Piping;Pumps;Pumps DIN;Pumps ISO;Separators;Shaping Machines;Valves;Vessels".split(";")},{id:"signs",
prefix:"signs",libs:Sidebar.prototype.signs},{id:"gcp",prefix:"gcp",libs:Sidebar.prototype.gcp},{id:"rack",prefix:"rack",libs:Sidebar.prototype.rack},{id:"electrical",prefix:"electrical",libs:Sidebar.prototype.electrical},{id:"aws2",prefix:"aws2",libs:Sidebar.prototype.aws2},{id:"aws3",prefix:"aws3",libs:Sidebar.prototype.aws3},{id:"pid",prefix:"pid",libs:Sidebar.prototype.pids},{id:"cisco",prefix:"cisco",libs:Sidebar.prototype.cisco},{id:"office",prefix:"office",libs:Sidebar.prototype.office},{id:"veeam",
prefix:"veeam",libs:Sidebar.prototype.veeam},{id:"cabinets",libs:["cabinets"]},{id:"floorplan",libs:["floorplan"]},{id:"bootstrap",libs:["bootstrap"]},{id:"atlassian",libs:["atlassian"]},{id:"gmdl",prefix:"gmdl",libs:Sidebar.prototype.gmdl},{id:"archimate3",prefix:"archimate3",libs:Sidebar.prototype.archimate3},{id:"archimate",libs:["archimate"]},{id:"webicons",libs:["webicons","weblogos"]},{id:"sysml",prefix:"sysml",libs:Sidebar.prototype.sysml}];var a=Sidebar.prototype.insertSearchHint;Sidebar.prototype.insertSearchHint=
function(b,c,e,d,m,l,r,n){if(null!=n&&1==d){var h=null;if(0<=mxUtils.indexOf(n,"text"))h="Double click anywhere in the diagram to insert text.";else for(var f="line lines arrow arrows connect connection connections connector connectors curve curves link links directed directional bidirectional".split(" "),g=0;g<f.length;g++)if(0<=mxUtils.indexOf(n,f[g])){h="Need help with connections?";break}if(null!=h&&!this.hideSearchHint){var k=document.createElement("a");k.setAttribute("href","https://youtu.be/Z0D96ZikMkc");
k.setAttribute("target","_blank");k.className="geTitle";k.style.cssText="background-color:#ffd350;border-radius:6px;color:black;border:1px solid black !important;text-align:center;white-space:normal;padding:6px 0px 6px 0px !important;margin:4px 4px 8px 2px;";mxUtils.write(k,h);h=document.createElement("img");h.setAttribute("src",Dialog.prototype.closeImage);h.setAttribute("title",mxResources.get("hide"));h.className="geDialogClose";h.style.position="relative";h.style.cursor="default";h.style.top=
"1px";h.style.right="0px";mxEvent.addListener(h,"click",mxUtils.bind(this,function(b){k.parentNode.removeChild(k);this.hideSearchHint=!0;mxEvent.consume(b)}));k.appendChild(h);b.appendChild(k);this.hideSearchHint=!0}}a.apply(this,arguments)};Sidebar.prototype.togglePalettes=function(b,a){this.showPalettes(b,a)};Sidebar.prototype.togglePalette=function(b){this.showPalette(b)};Sidebar.prototype.showPalettes=function(b,a,c){for(var e=0;e<a.length;e++)this.showPalette(b+a[e],c)};Sidebar.prototype.showPalette=
function(b,a){var c=this.palettes[b];if(null!=c)for(var e=null!=a?a?"block":"none":"none"==c[0].style.display?"block":"none",d=0;d<c.length;d++)c[d].style.display=e};Sidebar.prototype.isEntryVisible=function(b){for(var a=0;a<this.configuration.length;a++)if(this.configuration[a].id==b){var c=this.palettes[null!=this.configuration[a].libs?(this.configuration[a].prefix||"")+this.configuration[a].libs[0]:b];if(null!=c)return"none"!=c[0].style.display}return!1};Sidebar.prototype.showEntries=function(b,
a,c){this.libs=null!=b&&(c||0<b.length)?b:null!=urlParams.libs&&0<urlParams.libs.length?decodeURIComponent(urlParams.libs):mxSettings.getLibraries();c=this.libs.split(";");for(var e=0;e<c.length;e++)c[e]=this.libAliases[c[e]]||c[e];for(e=0;e<this.configuration.length;e++)"search"!=this.configuration[e].id&&this.showPalettes(this.configuration[e].prefix||"",this.configuration[e].libs||[this.configuration[e].id],0<=mxUtils.indexOf(c,this.configuration[e].id));a&&(mxSettings.setLibraries(b),mxSettings.save())};
Sidebar.prototype.init=function(){this.entries=[{title:mxResources.get("standard"),entries:[{title:mxResources.get("general"),id:"general",image:IMAGE_PATH+"/sidebar-general.png"},{title:mxResources.get("arrows"),id:"arrows2",image:IMAGE_PATH+"/sidebar-arrows2.png"},{title:mxResources.get("basic"),id:"basic",image:IMAGE_PATH+"/sidebar-basic.png"},{title:mxResources.get("clipart"),id:"clipart",image:IMAGE_PATH+"/sidebar-clipart.png"},{title:mxResources.get("flowchart"),id:"flowchart",image:IMAGE_PATH+
"/sidebar-flowchart.png"}]},{title:mxResources.get("software"),entries:[{title:mxResources.get("android"),id:"android",image:IMAGE_PATH+"/sidebar-android.png"},{title:"Atlassian",id:"atlassian",image:IMAGE_PATH+"/sidebar-atlassian.png"},{title:mxResources.get("bootstrap"),id:"bootstrap",image:IMAGE_PATH+"/sidebar-bootstrap.png"},{title:mxResources.get("entityRelation"),id:"er",image:IMAGE_PATH+"/sidebar-er.png"},{title:mxResources.get("ios"),id:"ios",image:IMAGE_PATH+"/sidebar-ios.png"},{title:mxResources.get("mockups"),
id:"mockups",image:IMAGE_PATH+"/sidebar-mockups.png"},{title:mxResources.get("uml"),id:"uml",image:IMAGE_PATH+"/sidebar-uml.png"}]},{title:mxResources.get("networking"),entries:[{title:mxResources.get("aws"),id:"aws3",image:IMAGE_PATH+"/sidebar-aws3.png"},{title:mxResources.get("aws3d"),id:"aws3d",image:IMAGE_PATH+"/sidebar-aws3d.png"},{title:mxResources.get("azure"),id:"azure",image:IMAGE_PATH+"/sidebar-azure.png"},{title:"Cloud & Enterprise",id:"mscae",image:IMAGE_PATH+"/sidebar-mscae.png"},{title:mxResources.get("cisco"),
id:"cisco",image:IMAGE_PATH+"/sidebar-cisco.png"},{title:"Citrix",id:"citrix",image:IMAGE_PATH+"/sidebar-citrix.png"},{title:"Google Cloud Platform",id:"gcp",image:IMAGE_PATH+"/sidebar-gcp.png"},{title:"IBM",id:"ibm",image:IMAGE_PATH+"/sidebar-ibm.png"},{title:"Network",id:"network",image:IMAGE_PATH+"/sidebar-network.png"},{title:"Office",id:"office",image:IMAGE_PATH+"/sidebar-office.png"},{title:mxResources.get("rack"),id:"rack",image:IMAGE_PATH+"/sidebar-rack.png"},{title:"Veeam",id:"veeam",image:IMAGE_PATH+
"/sidebar-veeam.png"}]},{title:mxResources.get("business"),entries:[{title:"ArchiMate 3.0",id:"archimate3",image:IMAGE_PATH+"/sidebar-archimate3.png"},{title:mxResources.get("archiMate21"),id:"archimate",image:IMAGE_PATH+"/sidebar-archimate.png"},{title:mxResources.get("bpmn"),id:"bpmn",image:IMAGE_PATH+"/sidebar-bpmn.png"},{title:mxResources.get("leanMapping"),id:"lean_mapping",image:IMAGE_PATH+"/sidebar-leanmapping.png"},{title:mxResources.get("sysml"),id:"sysml",image:IMAGE_PATH+"/sidebar-sysml.png"}]},
{title:mxResources.get("other"),entries:[{title:mxResources.get("cabinets"),id:"cabinets",image:IMAGE_PATH+"/sidebar-cabinets.png"},{title:mxResources.get("eip"),id:"eip",image:IMAGE_PATH+"/sidebar-eip.png"},{title:mxResources.get("electrical"),id:"electrical",image:IMAGE_PATH+"/sidebar-electrical.png"},{title:mxResources.get("floorplans"),id:"floorplan",image:IMAGE_PATH+"/sidebar-floorplans.png"},{title:mxResources.get("gmdl"),id:"gmdl",image:IMAGE_PATH+"/sidebar-gmdl.png"},{title:mxResources.get("procEng"),
id:"pid",image:IMAGE_PATH+"/sidebar-pid.png"},{title:"Web Icons",id:"webicons",image:IMAGE_PATH+"/sidebar-webIcons.png"},{title:mxResources.get("signs"),id:"signs",image:IMAGE_PATH+"/sidebar-signs.png"}]}];this.addStencilsToIndex=!1;this.shapetags={};if(null!=this.tagIndex)for(var b=this.editorUi.editor.graph.decompress(this.tagIndex).split("\n"),a=0;a<b.length;a++)if(null!=b[a]){var c=b[a].split("\t");if(1<c.length){var e=c[0].toLowerCase().replace(" ","_"),c=mxUtils.trim(c.slice(1,c.length).join(" ").toLowerCase());
0<c.length&&(this.shapetags[e]=c)}}this.initPalettes();mxUtils.get(this.searchFileUrl,mxUtils.bind(this,function(b){b=b.getDocumentElement();if(null!=b){b=b.getElementsByTagName("shape");for(var a=0;a<b.length;a++){var c=b[a].getAttribute("style"),e=this.extractShapeStyle(c);if(null!=c&&null!=e){var d=e.lastIndexOf(".");if(0<d){var h=e.substring(0,d),e=e.substring(d+1,e.length),d=this.getTagsForStencil(h,e,b[a].getAttribute("tags"));if(null!=d){var f=c.indexOf(";"),c="shape="+h+"."+e.toLowerCase()+
";"+(0>f?"":c.substring(f+1));this.createVertexTemplateEntry(c,parseInt(b[a].getAttribute("w")),parseInt(b[a].getAttribute("h")),"",e.replace(/_/g," "),null,null,this.filterTags(d.join(" ")))}}}}}}))};"1"==urlParams.savesidebar&&(Sidebar.prototype.addFoldingHandler=function(b,a,c){var e=!1;if(!mxClient.IS_IE||8<=document.documentMode)b.style.backgroundImage="none"==a.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')";b.style.backgroundRepeat="no-repeat";b.style.backgroundPosition=
"0% 50%";var d=document.createElement("button");d.style.marginLeft="4px";mxUtils.write(d,"Save");mxEvent.addListener(b,"click",mxUtils.bind(this,function(h){if("BUTTON"==mxEvent.getSource(h).nodeName){var f=b.cloneNode(!0);f.style.backgroundImage="";f.style.textDecoration="none";f.style.fontWeight="bold";f.style.fontSize="14px";f.style.color="rgb(80, 80, 80)";f.style.width="456px";f.style.backgroundColor="#ffffff";f.style.paddingLeft="6px";h=f.getElementsByTagName("button")[0];h.parentNode.removeChild(h);
h=a.cloneNode(!0);h.style.backgroundColor="#ffffff";h.style.borderColor="transparent";h.style.width="456px";f='<!DOCTYPE html><html><head><link rel="stylesheet" type="text/css" href="https://www.draw.io/styles/grapheditor.css"></head><body style="background:#ffffff;font-family:Helvetica,Arial;">'+f.outerHTML+h.outerHTML+"</body></html>";h.style.position="absolute";window.document.body.appendChild(h);var g=h.clientHeight+18;h.parentNode.removeChild(h);(new mxXmlRequest(EXPORT_URL,"w=456&h="+g+"&html="+
encodeURIComponent(this.editorUi.editor.graph.compress(f)))).simulate(document,"_blank")}else{if("none"==a.style.display){if(e)b.appendChild(d);else if(e=!0,null!=c){null!=d.parentNode&&d.parentNode.removeChild(d);b.style.cursor="wait";var k=b.innerHTML;b.innerHTML=mxResources.get("loading")+"...";window.setTimeout(function(){c(a);b.style.cursor="";b.innerHTML=k;b.appendChild(d)},0)}else b.appendChild(d);b.style.backgroundImage="url('"+this.expandedImage+"')";a.style.display="block"}else b.style.backgroundImage=
"url('"+this.collapsedImage+"')",a.style.display="none",null!=d.parentNode&&d.parentNode.removeChild(d);mxEvent.consume(h)}}))});Sidebar.prototype.extractShapeStyle=function(b){if(null!=b&&"shape="==b.substring(0,6)){var a=b.indexOf(";");0>a&&(a=b.length);return b.substring(6,a)}return null};var e=Sidebar.prototype.getTagsForStencil;Sidebar.prototype.getTagsForStencil=function(b,a,c){var d=e.apply(this,arguments);null!=this.shapetags&&(b=b.toLowerCase(),a=a.toLowerCase(),null!=this.shapetags[b]&&
d.push(this.shapetags[b]),a=b+"."+a,null!=this.shapetags[a]&&d.push(this.shapetags[a]));return d};Sidebar.prototype.initPalettes=function(){var b=GRAPH_IMAGE_PATH,a=STENCIL_PATH,c=this.signs,e=this.gcp,d=this.rack,l=this.pids,r=this.cisco,n=this.sysml,p=this.eip,q=this.gmdl;"1"==urlParams.createindex&&(mxLog.show(),mxLog.textarea.value="");this.addSearchPalette(!0);this.addGeneralPalette(!0);this.addMiscPalette(!1);this.addAdvancedPalette(!1);this.addUmlPalette(!1);this.addErPalette();this.addBasicPalette();
this.addFlowchartPalette();this.addNetworkPalette();this.addAzurePalette();this.addCitrixPalette();this.addMSCAEPalette();this.addBpmnPalette(a,!1);this.addAWS3Palette();this.addAWS3DPalette();this.addLeanMappingPalette();this.addIos7Palette();this.addIosPalette();this.addAndroidPalette();this.addMockupPalette();this.addElectricalPalette();this.addOfficePalette();this.addVeeamPalette();this.addIBMPalette();this.addStencilPalette("arrows",mxResources.get("arrows"),a+"/arrows.xml",";html=1;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+
"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;"+mxConstants.STYLE_STROKEWIDTH+"=2;strokeColor=#000000;");this.addArrows2Palette();this.addImagePalette("computer","Clipart / Computer",b+"/lib/clip_art/computers/","_128x128.png","Antivirus Data_Filtering Database Database_Add Database_Minus Database_Move_Stack Database_Remove Fujitsu_Tablet Harddrive IBM_Tablet iMac iPad Laptop MacBook Mainframe Monitor Monitor_Tower Monitor_Tower_Behind Netbook Network Network_2 Printer Printer_Commercial Secure_System Server Server_Rack Server_Rack_Empty Server_Rack_Partial Server_Tower Software Stylus Touch USB_Hub Virtual_Application Virtual_Machine Virus Workstation".split(" "),
{id:"ios",prefix:"ios",libs:["","7icons","7ui"]},{id:"android",prefix:"android",libs:[""]},{id:"aws3d"},{id:"flowchart"},{id:"basic"},{id:"arrows"},{id:"arrows2"},{id:"lean_mapping"},{id:"citrix"},{id:"azure"},{id:"network"},{id:"sitemap"},{id:"mscae",prefix:"mscae",libs:"Cloud;Enterprise;General;Intune;Other;System Center;Deprecated".split(";")},{id:"bpmn",prefix:"bpmn",libs:["","Gateways","Events"]},{id:"clipart",prefix:null,libs:"computer finance clipart networking people telco".split(" ")},{id:"ibm",
prefix:"ibm",libs:Sidebar.prototype.ibm},{id:"eip",prefix:"eip",libs:Sidebar.prototype.eip},{id:"mockups",prefix:"mockup",libs:"Buttons Containers Forms Graphics Markup Misc Navigation Text".split(" ")},{id:"pid2",prefix:"pid2",libs:"Agitators;Apparatus Elements;Centrifuges;Compressors;Compressors ISO;Crushers Grinding;Driers;Engines;Feeders;Filters;Fittings;Flow Sensors;Heat Exchangers;Instruments;Misc;Mixers;Piping;Pumps;Pumps DIN;Pumps ISO;Separators;Shaping Machines;Valves;Vessels".split(";")},
{id:"signs",prefix:"signs",libs:Sidebar.prototype.signs},{id:"gcp",prefix:"gcp",libs:Sidebar.prototype.gcp},{id:"rack",prefix:"rack",libs:Sidebar.prototype.rack},{id:"electrical",prefix:"electrical",libs:Sidebar.prototype.electrical},{id:"aws2",prefix:"aws2",libs:Sidebar.prototype.aws2},{id:"aws3",prefix:"aws3",libs:Sidebar.prototype.aws3},{id:"pid",prefix:"pid",libs:Sidebar.prototype.pids},{id:"cisco",prefix:"cisco",libs:Sidebar.prototype.cisco},{id:"office",prefix:"office",libs:Sidebar.prototype.office},
{id:"veeam",prefix:"veeam",libs:Sidebar.prototype.veeam},{id:"cabinets",libs:["cabinets"]},{id:"floorplan",libs:["floorplan"]},{id:"bootstrap",libs:["bootstrap"]},{id:"atlassian",libs:["atlassian"]},{id:"gmdl",prefix:"gmdl",libs:Sidebar.prototype.gmdl},{id:"archimate3",prefix:"archimate3",libs:Sidebar.prototype.archimate3},{id:"archimate",libs:["archimate"]},{id:"webicons",libs:["webicons","weblogos"]},{id:"sysml",prefix:"sysml",libs:Sidebar.prototype.sysml}];var a=Sidebar.prototype.insertSearchHint;
Sidebar.prototype.insertSearchHint=function(b,c,d,e,m,l,r,n){if(null!=n&&1==e){var h=null;if(0<=mxUtils.indexOf(n,"text"))h="Double click anywhere in the diagram to insert text.";else for(var f="line lines arrow arrows connect connection connections connector connectors curve curves link links directed directional bidirectional".split(" "),g=0;g<f.length;g++)if(0<=mxUtils.indexOf(n,f[g])){h="Need help with connections?";break}if(null!=h&&!this.hideSearchHint){var k=document.createElement("a");k.setAttribute("href",
"https://youtu.be/Z0D96ZikMkc");k.setAttribute("target","_blank");k.className="geTitle";k.style.cssText="background-color:#ffd350;border-radius:6px;color:black;border:1px solid black !important;text-align:center;white-space:normal;padding:6px 0px 6px 0px !important;margin:4px 4px 8px 2px;";mxUtils.write(k,h);h=document.createElement("img");h.setAttribute("src",Dialog.prototype.closeImage);h.setAttribute("title",mxResources.get("hide"));h.className="geDialogClose";h.style.position="relative";h.style.cursor=
"default";h.style.top="1px";h.style.right="0px";mxEvent.addListener(h,"click",mxUtils.bind(this,function(b){k.parentNode.removeChild(k);this.hideSearchHint=!0;mxEvent.consume(b)}));k.appendChild(h);b.appendChild(k);this.hideSearchHint=!0}}a.apply(this,arguments)};Sidebar.prototype.togglePalettes=function(b,a){this.showPalettes(b,a)};Sidebar.prototype.togglePalette=function(b){this.showPalette(b)};Sidebar.prototype.showPalettes=function(b,a,c){for(var d=0;d<a.length;d++)this.showPalette(b+a[d],c)};
Sidebar.prototype.showPalette=function(b,a){var c=this.palettes[b];if(null!=c)for(var d=null!=a?a?"block":"none":"none"==c[0].style.display?"block":"none",e=0;e<c.length;e++)c[e].style.display=d};Sidebar.prototype.isEntryVisible=function(b){for(var a=0;a<this.configuration.length;a++)if(this.configuration[a].id==b){var c=this.palettes[null!=this.configuration[a].libs?(this.configuration[a].prefix||"")+this.configuration[a].libs[0]:b];if(null!=c)return"none"!=c[0].style.display}return!1};Sidebar.prototype.showEntries=
function(b,a,c){this.libs=null!=b&&(c||0<b.length)?b:null!=urlParams.libs&&0<urlParams.libs.length?decodeURIComponent(urlParams.libs):mxSettings.getLibraries();c=this.libs.split(";");for(var d=0;d<c.length;d++)c[d]=this.libAliases[c[d]]||c[d];for(d=0;d<this.configuration.length;d++)"search"!=this.configuration[d].id&&this.showPalettes(this.configuration[d].prefix||"",this.configuration[d].libs||[this.configuration[d].id],0<=mxUtils.indexOf(c,this.configuration[d].id));a&&(mxSettings.setLibraries(b),
mxSettings.save())};Sidebar.prototype.init=function(){this.entries=[{title:mxResources.get("standard"),entries:[{title:mxResources.get("general"),id:"general",image:IMAGE_PATH+"/sidebar-general.png"},{title:mxResources.get("arrows"),id:"arrows2",image:IMAGE_PATH+"/sidebar-arrows2.png"},{title:mxResources.get("basic"),id:"basic",image:IMAGE_PATH+"/sidebar-basic.png"},{title:mxResources.get("clipart"),id:"clipart",image:IMAGE_PATH+"/sidebar-clipart.png"},{title:mxResources.get("flowchart"),id:"flowchart",
image:IMAGE_PATH+"/sidebar-flowchart.png"}]},{title:mxResources.get("software"),entries:[{title:mxResources.get("android"),id:"android",image:IMAGE_PATH+"/sidebar-android.png"},{title:"Atlassian",id:"atlassian",image:IMAGE_PATH+"/sidebar-atlassian.png"},{title:mxResources.get("bootstrap"),id:"bootstrap",image:IMAGE_PATH+"/sidebar-bootstrap.png"},{title:mxResources.get("entityRelation"),id:"er",image:IMAGE_PATH+"/sidebar-er.png"},{title:mxResources.get("ios"),id:"ios",image:IMAGE_PATH+"/sidebar-ios.png"},
{title:mxResources.get("mockups"),id:"mockups",image:IMAGE_PATH+"/sidebar-mockups.png"},{title:"Sitemap",id:"sitemap",image:IMAGE_PATH+"/sidebar-sitemap.png"},{title:mxResources.get("uml"),id:"uml",image:IMAGE_PATH+"/sidebar-uml.png"}]},{title:mxResources.get("networking"),entries:[{title:mxResources.get("aws"),id:"aws3",image:IMAGE_PATH+"/sidebar-aws3.png"},{title:mxResources.get("aws3d"),id:"aws3d",image:IMAGE_PATH+"/sidebar-aws3d.png"},{title:mxResources.get("azure"),id:"azure",image:IMAGE_PATH+
"/sidebar-azure.png"},{title:"Cloud & Enterprise",id:"mscae",image:IMAGE_PATH+"/sidebar-mscae.png"},{title:mxResources.get("cisco"),id:"cisco",image:IMAGE_PATH+"/sidebar-cisco.png"},{title:"Citrix",id:"citrix",image:IMAGE_PATH+"/sidebar-citrix.png"},{title:"Google Cloud Platform",id:"gcp",image:IMAGE_PATH+"/sidebar-gcp.png"},{title:"IBM",id:"ibm",image:IMAGE_PATH+"/sidebar-ibm.png"},{title:"Network",id:"network",image:IMAGE_PATH+"/sidebar-network.png"},{title:"Office",id:"office",image:IMAGE_PATH+
"/sidebar-office.png"},{title:mxResources.get("rack"),id:"rack",image:IMAGE_PATH+"/sidebar-rack.png"},{title:"Veeam",id:"veeam",image:IMAGE_PATH+"/sidebar-veeam.png"}]},{title:mxResources.get("business"),entries:[{title:"ArchiMate 3.0",id:"archimate3",image:IMAGE_PATH+"/sidebar-archimate3.png"},{title:mxResources.get("archiMate21"),id:"archimate",image:IMAGE_PATH+"/sidebar-archimate.png"},{title:mxResources.get("bpmn"),id:"bpmn",image:IMAGE_PATH+"/sidebar-bpmn.png"},{title:mxResources.get("leanMapping"),
id:"lean_mapping",image:IMAGE_PATH+"/sidebar-leanmapping.png"},{title:mxResources.get("sysml"),id:"sysml",image:IMAGE_PATH+"/sidebar-sysml.png"}]},{title:mxResources.get("other"),entries:[{title:mxResources.get("cabinets"),id:"cabinets",image:IMAGE_PATH+"/sidebar-cabinets.png"},{title:mxResources.get("eip"),id:"eip",image:IMAGE_PATH+"/sidebar-eip.png"},{title:mxResources.get("electrical"),id:"electrical",image:IMAGE_PATH+"/sidebar-electrical.png"},{title:mxResources.get("floorplans"),id:"floorplan",
image:IMAGE_PATH+"/sidebar-floorplans.png"},{title:mxResources.get("gmdl"),id:"gmdl",image:IMAGE_PATH+"/sidebar-gmdl.png"},{title:mxResources.get("procEng"),id:"pid",image:IMAGE_PATH+"/sidebar-pid.png"},{title:"Web Icons",id:"webicons",image:IMAGE_PATH+"/sidebar-webIcons.png"},{title:mxResources.get("signs"),id:"signs",image:IMAGE_PATH+"/sidebar-signs.png"}]}];this.addStencilsToIndex=!1;this.shapetags={};if(null!=this.tagIndex)for(var b=this.editorUi.editor.graph.decompress(this.tagIndex).split("\n"),
a=0;a<b.length;a++)if(null!=b[a]){var c=b[a].split("\t");if(1<c.length){var d=c[0].toLowerCase().replace(" ","_"),c=mxUtils.trim(c.slice(1,c.length).join(" ").toLowerCase());0<c.length&&(this.shapetags[d]=c)}}this.initPalettes();mxUtils.get(this.searchFileUrl,mxUtils.bind(this,function(b){b=b.getDocumentElement();if(null!=b){b=b.getElementsByTagName("shape");for(var a=0;a<b.length;a++){var c=b[a].getAttribute("style"),d=this.extractShapeStyle(c);if(null!=c&&null!=d){var e=d.lastIndexOf(".");if(0<
e){var h=d.substring(0,e),d=d.substring(e+1,d.length),e=this.getTagsForStencil(h,d,b[a].getAttribute("tags"));if(null!=e){var f=c.indexOf(";"),c="shape="+h+"."+d.toLowerCase()+";"+(0>f?"":c.substring(f+1));this.createVertexTemplateEntry(c,parseInt(b[a].getAttribute("w")),parseInt(b[a].getAttribute("h")),"",d.replace(/_/g," "),null,null,this.filterTags(e.join(" ")))}}}}}}))};"1"==urlParams.savesidebar&&(Sidebar.prototype.addFoldingHandler=function(b,a,c){var d=!1;if(!mxClient.IS_IE||8<=document.documentMode)b.style.backgroundImage=
"none"==a.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')";b.style.backgroundRepeat="no-repeat";b.style.backgroundPosition="0% 50%";var e=document.createElement("button");e.style.marginLeft="4px";mxUtils.write(e,"Save");mxEvent.addListener(b,"click",mxUtils.bind(this,function(h){if("BUTTON"==mxEvent.getSource(h).nodeName){var f=b.cloneNode(!0);f.style.backgroundImage="";f.style.textDecoration="none";f.style.fontWeight="bold";f.style.fontSize="14px";f.style.color="rgb(80, 80, 80)";
f.style.width="456px";f.style.backgroundColor="#ffffff";f.style.paddingLeft="6px";h=f.getElementsByTagName("button")[0];h.parentNode.removeChild(h);h=a.cloneNode(!0);h.style.backgroundColor="#ffffff";h.style.borderColor="transparent";h.style.width="456px";f='<!DOCTYPE html><html><head><link rel="stylesheet" type="text/css" href="https://www.draw.io/styles/grapheditor.css"></head><body style="background:#ffffff;font-family:Helvetica,Arial;">'+f.outerHTML+h.outerHTML+"</body></html>";h.style.position=
"absolute";window.document.body.appendChild(h);var g=h.clientHeight+18;h.parentNode.removeChild(h);(new mxXmlRequest(EXPORT_URL,"w=456&h="+g+"&html="+encodeURIComponent(this.editorUi.editor.graph.compress(f)))).simulate(document,"_blank")}else{if("none"==a.style.display){if(d)b.appendChild(e);else if(d=!0,null!=c){null!=e.parentNode&&e.parentNode.removeChild(e);b.style.cursor="wait";var k=b.innerHTML;b.innerHTML=mxResources.get("loading")+"...";window.setTimeout(function(){c(a);b.style.cursor="";
b.innerHTML=k;b.appendChild(e)},0)}else b.appendChild(e);b.style.backgroundImage="url('"+this.expandedImage+"')";a.style.display="block"}else b.style.backgroundImage="url('"+this.collapsedImage+"')",a.style.display="none",null!=e.parentNode&&e.parentNode.removeChild(e);mxEvent.consume(h)}}))});Sidebar.prototype.extractShapeStyle=function(b){if(null!=b&&"shape="==b.substring(0,6)){var a=b.indexOf(";");0>a&&(a=b.length);return b.substring(6,a)}return null};var e=Sidebar.prototype.getTagsForStencil;
Sidebar.prototype.getTagsForStencil=function(b,a,c){var d=e.apply(this,arguments);null!=this.shapetags&&(b=b.toLowerCase(),a=a.toLowerCase(),null!=this.shapetags[b]&&d.push(this.shapetags[b]),a=b+"."+a,null!=this.shapetags[a]&&d.push(this.shapetags[a]));return d};Sidebar.prototype.initPalettes=function(){var b=GRAPH_IMAGE_PATH,a=STENCIL_PATH,c=this.signs,d=this.gcp,e=this.rack,l=this.pids,r=this.cisco,n=this.sysml,p=this.eip,q=this.gmdl;"1"==urlParams.createindex&&(mxLog.show(),mxLog.textarea.value=
"");this.addSearchPalette(!0);this.addGeneralPalette(!0);this.addMiscPalette(!1);this.addAdvancedPalette(!1);this.addUmlPalette(!1);this.addErPalette();this.addBasicPalette();this.addFlowchartPalette();this.addNetworkPalette();this.addAzurePalette();this.addCitrixPalette();this.addMSCAEPalette();this.addBpmnPalette(a,!1);this.addAWS3Palette();this.addAWS3DPalette();this.addLeanMappingPalette();this.addIos7Palette();this.addIosPalette();this.addAndroidPalette();this.addMockupPalette();this.addElectricalPalette();
this.addOfficePalette();this.addVeeamPalette();this.addIBMPalette();this.addSitemapPalette();this.addStencilPalette("arrows",mxResources.get("arrows"),a+"/arrows.xml",";html=1;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;"+mxConstants.STYLE_STROKEWIDTH+"=2;strokeColor=#000000;");this.addArrows2Palette();this.addImagePalette("computer","Clipart / Computer",b+"/lib/clip_art/computers/","_128x128.png","Antivirus Data_Filtering Database Database_Add Database_Minus Database_Move_Stack Database_Remove Fujitsu_Tablet Harddrive IBM_Tablet iMac iPad Laptop MacBook Mainframe Monitor Monitor_Tower Monitor_Tower_Behind Netbook Network Network_2 Printer Printer_Commercial Secure_System Server Server_Rack Server_Rack_Empty Server_Rack_Partial Server_Tower Software Stylus Touch USB_Hub Virtual_Application Virtual_Machine Virus Workstation".split(" "),
"Antivirus;Data Filtering;Database;Database Add;Database Minus;Database Move Stack;Database Remove;Fujitsu Tablet;Harddrive;IBMTablet;iMac;iPad;Laptop;MacBook;Mainframe;Monitor;Monitor Tower;Monitor Tower Behind;Netbook;Network;Network 2;Printer;Printer Commercial;Secure System;Server;Server Rack;Server Rack Empty;Server Rack Partial;Server Tower;Software;Stylus;Touch;USB Hub;Virtual Application;Virtual Machine;Virus;Workstation".split(";"));this.addImagePalette("finance","Clipart / Finance",b+"/lib/clip_art/finance/",
"_128x128.png","Arrow_Down Arrow_Up Coins Credit_Card Dollar Graph Pie_Chart Piggy_Bank Safe Shopping_Cart Stock_Down Stock_Up".split(" "),"Arrow_Down;Arrow Up;Coins;Credit Card;Dollar;Graph;Pie Chart;Piggy Bank;Safe;Shopping Basket;Stock Down;Stock Up".split(";"));this.addImagePalette("clipart","Clipart / Various",b+"/lib/clip_art/general/","_128x128.png","Battery_0 Battery_100 Battery_50 Battery_75 Battery_allstates Bluetooth Earth_globe Empty_Folder Full_Folder Gear Keys Lock Mouse_Pointer Plug Ships_Wheel Star Tire".split(" "),
"Battery 0%;Battery 100%;Battery 50%;Battery 75%;Battery;Bluetooth;Globe;Empty Folder;Full Folder;Gear;Keys;Lock;Mousepointer;Plug;Ships Wheel;Star;Tire".split(";"));this.addImagePalette("networking","Clipart / Networking",b+"/lib/clip_art/networking/","_128x128.png","Bridge Certificate Certificate_Off Cloud Cloud_Computer Cloud_Computer_Private Cloud_Rack Cloud_Rack_Private Cloud_Server Cloud_Server_Private Cloud_Storage Concentrator Email Firewall_02 Firewall Firewall-page1 Ip_Camera Modem power_distribution_unit Print_Server Print_Server_Wireless Repeater Router Router_Icon Switch UPS Wireless_Router Wireless_Router_N".split(" "),
"Bridge;Certificate;Certificate Off;Cloud;Cloud Computer;Cloud Computer Private;Cloud Rack;Cloud Rack Private;Cloud Server;Cloud Server Private;Cloud Storage;Concentrator;Email;Firewall 1;Firewall 2;Firewall;Camera;Modem;Power Distribution Unit;Print Server;Print Server Wireless;Repeater;Router;Router Icon;Switch;UPS;Wireless Router;Wireless Router N".split(";"),{Wireless_Router:"wireless router switch wap wifi access point wlan",Wireless_Router_N:"wireless router switch wap wifi access point wlan",
Router:"router switch",Router_Icon:"router switch"});this.addImagePalette("people","Clipart / People",b+"/lib/clip_art/people/","_128x128.png","Suit_Man Suit_Man_Black Suit_Man_Blue Suit_Man_Green Suit_Man_Green_Black Suit_Woman Suit_Woman_Black Suit_Woman_Blue Suit_Woman_Green Suit_Woman_Green_Black Construction_Worker_Man Construction_Worker_Man_Black Construction_Worker_Woman Construction_Worker_Woman_Black Doctor_Man Doctor_Man_Black Doctor_Woman Doctor_Woman_Black Farmer_Man Farmer_Man_Black Farmer_Woman Farmer_Woman_Black Nurse_Man Nurse_Man_Black Nurse_Woman Nurse_Woman_Black Military_Officer Military_Officer_Black Military_Officer_Woman Military_Officer_Woman_Black Pilot_Man Pilot_Man_Black Pilot_Woman Pilot_Woman_Black Scientist_Man Scientist_Man_Black Scientist_Woman Scientist_Woman_Black Security_Man Security_Man_Black Security_Woman Security_Woman_Black Tech_Man Tech_Man_Black Telesales_Man Telesales_Man_Black Telesales_Woman Telesales_Woman_Black Waiter Waiter_Black Waiter_Woman Waiter_Woman_Black Worker_Black Worker_Man Worker_Woman Worker_Woman_Black".split(" "));
this.addImagePalette("telco","Clipart / Telecommunication",b+"/lib/clip_art/telecommunication/","_128x128.png","BlackBerry Cellphone HTC_smartphone iPhone Palm_Treo Signal_tower_off Signal_tower_on".split(" "),"BlackBerry;Cellphone;HTC smartphone;iPhone;Palm Treo;Signaltower off;Signaltower on".split(";"));for(b=0;b<c.length;b++)this.addStencilPalette("signs"+c[b],"Signs / "+c[b],a+"/signs/"+c[b].toLowerCase()+".xml",";html=1;fillColor=#000000;strokeColor=none;verticalLabelPosition=bottom;verticalAlign=top;align=center;");
for(b=0;b<e.length;b++)"cards"===e[b].toLowerCase()?this.addGoogleCloudPlatformCardsPalette():this.addStencilPalette("gcp"+e[b],"GCP / "+e[b],a+"/gcp/"+e[b].toLowerCase().replace(/ /g,"_")+".xml",";html=1;fillColor=#4387FD;gradientColor=#4683EA;strokeColor=none;verticalLabelPosition=bottom;verticalAlign=top;align=center;");for(b=0;b<d.length;b++)"general"===d[b].toLowerCase()?this.addRackGeneralPalette():"f5"===d[b].toLowerCase()?this.addRackF5Palette():this.addStencilPalette("rack"+d[b],"Rack / "+
d[b],a+"/rack/"+d[b].toLowerCase()+".xml",";html=1;labelPosition=right;align=left;spacingLeft=15;dashed=0;shadow=0;fillColor=#ffffff;");for(b=0;b<l.length;b++)"Instruments"==l[b]?this.addPidInstrumentsPalette():"Misc"==l[b]?this.addPidMiscPalette():"Valves"==l[b]?this.addPidValvesPalette():"Compressors"==l[b]?this.addPidCompressorsPalette():"Engines"==l[b]?this.addPidEnginesPalette():"Filters"==l[b]?this.addPidFiltersPalette():"Flow Sensors"==l[b]?this.addPidFlowSensorsPalette():"Piping"==l[b]?this.addPidPipingPalette():
for(b=0;b<d.length;b++)"cards"===d[b].toLowerCase()?this.addGoogleCloudPlatformCardsPalette():this.addStencilPalette("gcp"+d[b],"GCP / "+d[b],a+"/gcp/"+d[b].toLowerCase().replace(/ /g,"_")+".xml",";html=1;fillColor=#4387FD;gradientColor=#4683EA;strokeColor=none;verticalLabelPosition=bottom;verticalAlign=top;align=center;");for(b=0;b<e.length;b++)"general"===e[b].toLowerCase()?this.addRackGeneralPalette():"f5"===e[b].toLowerCase()?this.addRackF5Palette():this.addStencilPalette("rack"+e[b],"Rack / "+
e[b],a+"/rack/"+e[b].toLowerCase()+".xml",";html=1;labelPosition=right;align=left;spacingLeft=15;dashed=0;shadow=0;fillColor=#ffffff;");for(b=0;b<l.length;b++)"Instruments"==l[b]?this.addPidInstrumentsPalette():"Misc"==l[b]?this.addPidMiscPalette():"Valves"==l[b]?this.addPidValvesPalette():"Compressors"==l[b]?this.addPidCompressorsPalette():"Engines"==l[b]?this.addPidEnginesPalette():"Filters"==l[b]?this.addPidFiltersPalette():"Flow Sensors"==l[b]?this.addPidFlowSensorsPalette():"Piping"==l[b]?this.addPidPipingPalette():
this.addStencilPalette("pid"+l[b],"Proc. Eng. / "+l[b],a+"/pid/"+l[b].toLowerCase().replace(" ","_")+".xml",";html=1;align=center;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;dashed=0;");for(b=0;b<n.length;b++)"Model Elements"==n[b]?this.addSysMLModelElementsPalette():"Blocks"==n[b]?this.addSysMLBlocksPalette():"Ports and Flows"==n[b]?this.addSysMLPortsAndFlowsPalette():"Constraint Blocks"==n[b]?this.addSysMLConstraintBlocksPalette():"Activities"==
n[b]?this.addSysMLActivitiesPalette():"Interactions"==n[b]?this.addSysMLInteractionsPalette():"State Machines"==n[b]?this.addSysMLStateMachinesPalette():"Use Cases"==n[b]?this.addSysMLUseCasesPalette():"Allocations"==n[b]?this.addSysMLAllocationsPalette():"Requirements"==n[b]?this.addSysMLRequirementsPalette():"Profiles"==n[b]?this.addSysMLProfilesPalette():"Stereotypes"==n[b]&&this.addSysMLStereotypesPalette();for(b=0;b<p.length;b++)"Message Construction"==p[b]?this.addEipMessageConstructionPalette():
"Message Routing"==p[b]?this.addEipMessageRoutingPalette():"Message Transformation"==p[b]?this.addEipMessageTransformationPalette():"Messaging Channels"==p[b]?this.addEipMessagingChannelsPalette():"Messaging Endpoints"==p[b]?this.addEipMessagingEndpointsPalette():"Messaging Systems"==p[b]?this.addEipMessagingSystemsPalette():"System Management"==p[b]&&this.addEipSystemManagementPalette();for(b=0;b<r.length;b++)this.addStencilPalette("cisco"+r[b],"Cisco / "+r[b],a+"/cisco/"+r[b].toLowerCase().replace(/ /g,
"_")+".xml",";html=1;dashed=0;fillColor=#036897;strokeColor=#ffffff;strokeWidth=2;verticalLabelPosition=bottom;verticalAlign=top",null,null,1.6);this.addFloorplanPalette();this.addAtlassianPalette();this.addBootstrapPalette();for(b=0;b<q.length;b++)"Bottom Navigation"==q[b]?this.addGMDLBottomNavigationPalette():"Bottom Sheets"==q[b]?this.addGMDLBottomSheetsPalette():"Buttons"==q[b]?this.addGMDLButtonsPalette():"Cards"==q[b]?this.addGMDLCardsPalette():"Chips"==q[b]?this.addGMDLChipsPalette():"Dialogs"==
q[b]?this.addGMDLDialogsPalette():"Dividers"==q[b]?this.addGMDLDividersPalette():"Grid Lists"==q[b]?this.addGMDLGridListsPalette():"Icons"==q[b]?this.addGMDLIconsPalette():"Lists"==q[b]?this.addGMDLListsPalette():"Menus"==q[b]?this.addGMDLMenusPalette():"Misc"==q[b]?this.addGMDLMiscPalette():"Pickers"==q[b]?this.addGMDLPickersPalette():"Selection Controls"==q[b]?this.addGMDLSelectionControlsPalette():"Sliders"==q[b]?this.addGMDLSlidersPalette():"Steppers"==q[b]?this.addGMDLSteppersPalette():"Tabs"==
q[b]?this.addGMDLTabsPalette():"Text Fields"==q[b]&&this.addGMDLTextFieldsPalette();this.addCabinetsPalette();this.addArchimate3Palette();this.addArchiMatePalette();this.addWebIconsPalette();this.addWebLogosPalette();this.showEntries()};if("1"==urlParams.createindex){var d=Sidebar.prototype.addStencilPalette;Sidebar.prototype.addStencilPalette=function(b,a,c,e,m,l,r,n){d.apply(this,arguments);r=null!=r?r:1;mxStencilRegistry.loadStencilSet(c,mxUtils.bind(this,function(b,a,c,d,h){if(null==m||0>mxUtils.indexOf(m,
a))c=null!=n?n[a]:null,mxLog.debug('<shape style="shape='+b+a+e+'" w="'+Math.round(d*r)+'" h="'+Math.round(h*r)+'"'+(null!=c?' tags="'+c+'"':"")+"/>")}),!0)}}var b=Sidebar.prototype.searchEntries;Sidebar.prototype.searchEntries=function(a,c,e,d,m){var h=d;this.editorUi.isOffline()||0!=e||this.editorUi.logEvent({category:"Sidebar",action:"search",label:a});d=mxUtils.bind(this,function(b,d,f,g){!this.editorUi.isOffline()&&b.length<=c/4?(f=e-Math.ceil((d-c/4)/c),mxUtils.get(ICONSEARCH_PATH+"?v=2&q="+
encodeURIComponent(a)+"&p="+f+"&c="+c,mxUtils.bind(this,function(a){try{if(200<=a.getStatus()&&299>=a.getStatus())try{var f=JSON.parse(a.getText());if(null==f||null==f.icons)h(b,d,!1,g),this.editorUi.handleError(f);else{for(a=0;a<f.icons.length;a++){for(var k=f.icons[a].raster_sizes,m=k.length-1;0<m&&128<k[m].size;)m--;var l=k[m].size,n=k[m].formats[0].preview_url;null!=l&&null!=n&&mxUtils.bind(this,function(a,c){b.push(mxUtils.bind(this,function(){return this.createVertexTemplate("shape=image;html=1;verticalAlign=top;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;imageAspect=0;aspect=fixed;image="+
c,a,a,"")}))})(l,n)}h(b,(e-1)*c+b.length,f.icons.length==c,g)}}catch(y){h(b,d,!1,g),this.editorUi.handleError(y)}else h(b,d,!1,g),this.editorUi.handleError({message:mxResources.get("unknownError")})}catch(y){h(b,d,!1,g),this.editorUi.handleError(y)}},function(){h(b,d,!1,g)}))):h(b,d,f||!this.editorUi.isOffline(),g)});b.apply(this,arguments)};var c=Sidebar.prototype.itemClicked;Sidebar.prototype.itemClicked=function(b,a,e){var d=this.editorUi.editor.graph,h=!1;if(null!=b&&1==d.getSelectionCount()&&
d.getModel().isVertex(b[0])){var f=d.cloneCells(b)[0];if(d.getModel().isEdge(d.getSelectionCell())&&null==d.getModel().getTerminal(d.getSelectionCell(),!1)&&d.getModel().isVertex(f)){d.getModel().beginUpdate();try{var g=d.view.getState(d.getSelectionCell());if(null!=g){var n=d.view.translate,p=d.view.scale,q=g.absolutePoints[g.absolutePoints.length-1];f.geometry.x=q.x/p-n.x-f.geometry.width/2;f.geometry.y=q.y/p-n.y-f.geometry.height/2}d.addCell(f);d.getModel().setTerminal(d.getSelectionCell(),f,!1)}finally{d.getModel().endUpdate()}d.scrollCellToVisible(f);
d.setSelectionCell(f);h=!0}}h||c.apply(this,arguments)}})();(function(){var a=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var e=a.apply(this,arguments),d=this,b=new mxCell("Vertical Flow Layout",new mxGeometry(0,0,270,280),"swimlane;html=1;startSize=20;horizontal=1;childLayout=flowLayout;flowOrientation=north;resizable=0;interRankCellSpacing=50;containerType=tree;");b.vertex=!0;var c=new mxCell("Start",new mxGeometry(20,20,100,40),"whiteSpace=wrap;html=1;");c.vertex=!0;b.insert(c);var h=new mxCell("Task",new mxGeometry(20,
a))c=null!=n?n[a]:null,mxLog.debug('<shape style="shape='+b+a+e+'" w="'+Math.round(d*r)+'" h="'+Math.round(h*r)+'"'+(null!=c?' tags="'+c+'"':"")+"/>")}),!0)}}var b=Sidebar.prototype.searchEntries;Sidebar.prototype.searchEntries=function(a,c,d,e,m){var h=e;this.editorUi.isOffline()||0!=d||this.editorUi.logEvent({category:"Sidebar",action:"search",label:a});e=mxUtils.bind(this,function(b,e,f,g){!this.editorUi.isOffline()&&b.length<=c/4?(f=d-Math.ceil((e-c/4)/c),mxUtils.get(ICONSEARCH_PATH+"?v=2&q="+
encodeURIComponent(a)+"&p="+f+"&c="+c,mxUtils.bind(this,function(a){try{if(200<=a.getStatus()&&299>=a.getStatus())try{var f=JSON.parse(a.getText());if(null==f||null==f.icons)h(b,e,!1,g),this.editorUi.handleError(f);else{for(a=0;a<f.icons.length;a++){for(var k=f.icons[a].raster_sizes,l=k.length-1;0<l&&128<k[l].size;)l--;var m=k[l].size,n=k[l].formats[0].preview_url;null!=m&&null!=n&&mxUtils.bind(this,function(a,c){b.push(mxUtils.bind(this,function(){return this.createVertexTemplate("shape=image;html=1;verticalAlign=top;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;imageAspect=0;aspect=fixed;image="+
c,a,a,"")}))})(m,n)}h(b,(d-1)*c+b.length,f.icons.length==c,g)}}catch(z){h(b,e,!1,g),this.editorUi.handleError(z)}else h(b,e,!1,g),this.editorUi.handleError({message:mxResources.get("unknownError")})}catch(z){h(b,e,!1,g),this.editorUi.handleError(z)}},function(){h(b,e,!1,g)}))):h(b,e,f||!this.editorUi.isOffline(),g)});b.apply(this,arguments)};var c=Sidebar.prototype.itemClicked;Sidebar.prototype.itemClicked=function(b,a,d){var e=this.editorUi.editor.graph,h=!1;if(null!=b&&1==e.getSelectionCount()&&
e.getModel().isVertex(b[0])){var f=e.cloneCells(b)[0];if(e.getModel().isEdge(e.getSelectionCell())&&null==e.getModel().getTerminal(e.getSelectionCell(),!1)&&e.getModel().isVertex(f)){e.getModel().beginUpdate();try{var g=e.view.getState(e.getSelectionCell());if(null!=g){var n=e.view.translate,p=e.view.scale,q=g.absolutePoints[g.absolutePoints.length-1];f.geometry.x=q.x/p-n.x-f.geometry.width/2;f.geometry.y=q.y/p-n.y-f.geometry.height/2}e.addCell(f);e.getModel().setTerminal(e.getSelectionCell(),f,!1)}finally{e.getModel().endUpdate()}e.scrollCellToVisible(f);
e.setSelectionCell(f);h=!0}}h||c.apply(this,arguments)}})();(function(){var a=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var e=a.apply(this,arguments),d=this,b=new mxCell("Vertical Flow Layout",new mxGeometry(0,0,270,280),"swimlane;html=1;startSize=20;horizontal=1;childLayout=flowLayout;flowOrientation=north;resizable=0;interRankCellSpacing=50;containerType=tree;");b.vertex=!0;var c=new mxCell("Start",new mxGeometry(20,20,100,40),"whiteSpace=wrap;html=1;");c.vertex=!0;b.insert(c);var h=new mxCell("Task",new mxGeometry(20,
20,100,40),"whiteSpace=wrap;html=1;");h.vertex=!0;b.insert(h);var f=new mxCell("",new mxGeometry(0,0,0,0),"html=1;curved=1;");f.geometry.relative=!0;f.edge=!0;c.insertEdge(f,!0);h.insertEdge(f,!1);b.insert(f);var g=new mxCell("Task",new mxGeometry(20,20,100,40),"whiteSpace=wrap;html=1;");g.vertex=!0;b.insert(g);f=f.clone();c.insertEdge(f,!0);g.insertEdge(f,!1);b.insert(f);c=new mxCell("End",new mxGeometry(20,20,100,40),"whiteSpace=wrap;html=1;");c.vertex=!0;b.insert(c);f=f.clone();h.insertEdge(f,
!0);c.insertEdge(f,!1);b.insert(f);f=f.clone();g.insertEdge(f,!0);c.insertEdge(f,!1);b.insert(f);return e.concat([this.addDataEntry("container swimlane pool horizontal",480,380,"Horizontal Pool 1","zZRLbsIwEIZP4709TlHXhJYNSEicwCIjbNWJkWNKwumZxA6IlrRUaisWlmb+eX8LM5mXzdyrnV66Ai2TL0zm3rkQrbLJ0VoG3BRMzhgAp8fgdSQq+ijfKY9VuKcAYsG7snuMyso5G8U6tDaJ9cGUVlXkTXUoacuZIHOjjS0WqnX7blYd1OZt8KYea3PE1bCI+CAtVUMq7/o5b46uCmroSn18WFMm+XCdse5GpLq0OPqAzejxvZQun6MrMfiWUg6mCDpmZM8RENdotjqVyUFUdRS259oLSzISztto5Se0i44gcHEn3i9A/IQB3GbQpmi69DskAn4BSTaGBB4Jicj+k8nTGBP5SExg8odMyL38eH3s6kM8AQ=="),
this.addDataEntry("container swimlane pool horizontal",480,360,"Horizontal Pool 2","zZTBbsIwDIafJvfU6dDOlI0LSEg8QUQtEi1tUBJGy9PPbcJQWTsxaZs4VLJ//07sT1WYKKpm6eRBrW2JhokXJgpnbYhR1RRoDAOuSyYWDIDTx+B1opr1VX6QDutwTwPEhndpjhiVjbUmij60Jon+pCsja8rmKlQ05SKjcKe0KVeytcfuLh/k7u2SzR16fcbNZZDsRlrLhlTenWedPts6SJMEOseFLTkph6Fj212RbGlwdAGbyeV7KW2+RFthcC1ZTroMKjry5wiIK9R7ldrELInSR2H/2XtlSUHCOY5WfEG76ggCz+7E+w2InzCAcQapIf0fAySzESQZ/AKSfAoJPCKS9mbzf0H0NIVIPDAiyP8QEaXX97CvDZ7LDw=="),this.addDataEntry("container swimlane pool horizontal",
@ -4261,7 +4261,7 @@ this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;v
150,90,"","Message Store",null,null,this.getTagsForStencil("mxgraph.eip","message_store","eip enterprise integration pattern system management ").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.eip.smart_proxy;fillColor=#c0f5a9;strokeColor=#000000;",70,90,"","Smart Proxy",null,null,this.getTagsForStencil("mxgraph.eip","smart_proxy","eip enterprise integration pattern system management ").join(" ")),
this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.eip.test_message;fillColor=#c0f5a9;strokeColor=#000000;",150,90,"","Test Message",null,null,this.getTagsForStencil("mxgraph.eip","test_message","eip enterprise integration pattern system management ").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;dashed=0;align=center;fontSize=8;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.eip.wire_tap;fillColor=#c0f5a9;strokeColor=#000000;",
150,90,"","Wire Tap",null,null,this.getTagsForStencil("mxgraph.eip","wire_tap","eip enterprise integration pattern system management ").join(" "))])}})();(function(){Sidebar.prototype.addElectricalPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;shadow=0;dashed=0;align=center;fillColor=#ffffff;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;strokeWidth=1;"+mxConstants.STYLE_SHAPE,e=a+"=mxgraph.electrical.abstract.",d=a+"=mxgraph.electrical.capacitors.",b="fillColor=#000000;"+a+"=mxgraph.electrical.diodes.",c=a+"=mxgraph.electrical.inductors.",h=a+"=mxgraph.electrical.miscellaneous.",f=a+"=mxgraph.electrical.electro-mechanical.",
g=a+"=mxgraph.electrical.logic_gates.",k=a+"=mxgraph.electrical.mosfets1.",m=a+"=mxgraph.electrical.transistors.",l=a+"=mxgraph.electrical.opto_electronics.",r=a+"=mxgraph.electrical.plc_ladder.",n=a+"=mxgraph.electrical.radio.",p=a+"=mxgraph.electrical.resistors.",q=a+"=mxgraph.electrical.signal_sources.",w=a+"=mxgraph.electrical.thermionic_devices.",v=a+"=mxgraph.electrical.waveforms.",z="perimeter=ellipsePerimeter;"+a+"=mxgraph.electrical.instruments.",x=a+"=mxgraph.electrical.iec_logic_gates.",
g=a+"=mxgraph.electrical.logic_gates.",k=a+"=mxgraph.electrical.mosfets1.",m=a+"=mxgraph.electrical.transistors.",l=a+"=mxgraph.electrical.opto_electronics.",r=a+"=mxgraph.electrical.plc_ladder.",n=a+"=mxgraph.electrical.radio.",p=a+"=mxgraph.electrical.resistors.",q=a+"=mxgraph.electrical.signal_sources.",w=a+"=mxgraph.electrical.thermionic_devices.",v=a+"=mxgraph.electrical.waveforms.",y="perimeter=ellipsePerimeter;"+a+"=mxgraph.electrical.instruments.",x=a+"=mxgraph.electrical.iec_logic_gates.",
u=a+"=mxgraph.electrical.rot_mech.",t=a+"=mxgraph.electrical.transmission.";this.addPaletteFunctions("electricalLogicGates","Electrical / Logic Gates",!1,[this.createVertexTemplateEntry(g+"and;",100,60,"","AND",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","and","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(g+"buffer;",100,60,"","Buffer",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","buffer","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(g+
"d_type_flip-flop;",100,80,"","D Type Flip-Flop",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","d_type_flip-flop","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(g+"d_type_flip-flop_with_clear;",100,90,"","D Type Flip-Flop With Clear",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","d_type_flip-flop_with_clear","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(g+"d_type_rs_flip-flop;",100,100,"","D Type RS Flip-Flop",null,
null,this.getTagsForStencil("mxgraph.electrical.logic_gates","d_type_rs_flip-flop","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(g+"inverter;",100,60,"","Inverter",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","inverter","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(g+"inverting_contact;",5,5,"","Inverting Contact",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","inverting_contact","electrical logic gate ").join(" ")),
@ -4338,8 +4338,8 @@ this.createVertexTemplateEntry(q+"dependent_source_1;",60,60,"","Dependent",null
95,100,"","NMOS",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","mosfet_ic_n","electrical transistor ").join(" ")),this.createVertexTemplateEntry(k+"mosfet_ic_p;",95,100,"","PMOS",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","mosfet_ic_p","electrical transistor ").join(" ")),this.createVertexTemplateEntry(k+"mosfet_n_no_bulk;",95,100,"","MOSFET No Bulk (N)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","mosfet_n_no_bulk","electrical transistor ").join(" ")),
this.createVertexTemplateEntry(k+"mosfet_p_no_bulk;",95,100,"","MOSFET No Bulk (P)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","mosfet_p_no_bulk","electrical transistor ").join(" ")),this.createVertexTemplateEntry(k+"dual_gate_mosfet_n;",95,100,"","Dual Gate MOSFET (N)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","dual_gate_mosfet_n","electrical transistor ").join(" ")),this.createVertexTemplateEntry(k+"dual_gate_mosfet_p;",95,100,"","Dual Gate MOSFET (P)",
null,null,this.getTagsForStencil("mxgraph.electrical.transistors","dual_gate_mosfet_p","electrical transistor ").join(" ")),this.createVertexTemplateEntry(m+"nmos;",60,100,"","NMOS",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","nmos","electrical transistor ").join(" ")),this.createVertexTemplateEntry(m+"pmos;",60,100,"","PMOS",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","pmos","electrical transistor ").join(" "))]);this.addPaletteFunctions("electricalInstruments",
"Electrical / Instruments",!1,[this.createVertexTemplateEntry(z+"ampermeter;",90,90,"","Ampermeter",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","ampermeter","electrical instrument ").join(" ")),this.createVertexTemplateEntry(z+"galvanometer;",90,90,"","Galvanometer",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","galvanometer","electrical instrument ").join(" ")),this.createVertexTemplateEntry(z+"oscilloscope;",90,90,"","Oscilloscope",null,null,this.getTagsForStencil("mxgraph.electrical.instruments",
"oscilloscope","electrical instrument ").join(" ")),this.createVertexTemplateEntry(z+"signal_generator;",90,90,"","Signal Generator",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","signal_generator","electrical instrument ").join(" ")),this.createVertexTemplateEntry(z+"voltmeter;",90,90,"","Voltmeter",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","voltmeter","electrical instrument ").join(" "))]);this.addPaletteFunctions("electricalMisc","Electrical / Misc",
"Electrical / Instruments",!1,[this.createVertexTemplateEntry(y+"ampermeter;",90,90,"","Ampermeter",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","ampermeter","electrical instrument ").join(" ")),this.createVertexTemplateEntry(y+"galvanometer;",90,90,"","Galvanometer",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","galvanometer","electrical instrument ").join(" ")),this.createVertexTemplateEntry(y+"oscilloscope;",90,90,"","Oscilloscope",null,null,this.getTagsForStencil("mxgraph.electrical.instruments",
"oscilloscope","electrical instrument ").join(" ")),this.createVertexTemplateEntry(y+"signal_generator;",90,90,"","Signal Generator",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","signal_generator","electrical instrument ").join(" ")),this.createVertexTemplateEntry(y+"voltmeter;",90,90,"","Voltmeter",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","voltmeter","electrical instrument ").join(" "))]);this.addPaletteFunctions("electricalMisc","Electrical / Misc",
!1,[this.createVertexTemplateEntry(n+"aerial_-_antenna_1;",80,100,"","Antenna",null,null,this.getTagsForStencil("mxgraph.electrical.radio","aerial_-_antenna_1","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(n+"aerial_-_antenna_2;",79,100,"","Antenna",null,null,this.getTagsForStencil("mxgraph.electrical.radio","aerial_-_antenna_2","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(n+"loop_antenna;",64.8,69.78,"","Loop Antenna",null,null,this.getTagsForStencil("mxgraph.electrical.radio",
"loop_antenna","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(h+"loop_antenna",100,100,"","Loop Antenna",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","loop antenna","electrical ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE+"=mxgraph.electrical.electro-mechanical.motor_1;html=1;shadow=0;dashed=0;fillColor=#ffffff;align=center;fontSize=30;strokeColor=#000000;strokeWidth=1;",100,60,"M","Electrical Motor",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical",
"motor_1","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE+"=mxgraph.electrical.electro-mechanical.motor_2;html=1;shadow=0;dashed=0;fillColor=#ffffff;align=center;fontSize=30;strokeColor=#000000;strokeWidth=1;",100,60,"","Motor Armature",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","motor_2","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(h+"co-ax;",40,60,"","Co-Ax",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous",
@ -4405,7 +4405,7 @@ this.createVertexTemplateEntry(u+"verticalLabelPosition=bottom;shadow=0;dashed=0
this.createVertexTemplateEntry(u+"clutch_2;",90,60,"","Clutch",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","clutch","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(u+"delayed_action;",72,50,"","Delayed Action",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","delayed action","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(u+"manual_control;",50,50,"","Manual Control",
null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","manual control","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(u+"blocking_device;",100,15,"","Blocking Device",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","blocking device","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(u+"latching_device;",100,22,"","Latching Device",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech",
"latching device","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(u+"mechanical_interlock;",100,30,"","Mechanical Interlock",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","mechanical interlock","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(u+"automatic_return;",100,12,"","Automatic Return",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","automatic_return",
"electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(u+"detent;",100,8,"","Detent",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","detent","electrical rotating equipment mechanical function functions").join(" "))]);var y=[this.createVertexTemplateEntry(t+"bus_width;",130,156,"","Bus Width",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","bus width","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+
"electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(u+"detent;",100,8,"","Detent",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","detent","electrical rotating equipment mechanical function functions").join(" "))]);var z=[this.createVertexTemplateEntry(t+"bus_width;",130,156,"","Bus Width",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","bus width","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+
"line_concentrator;",130,130,"","Line Concentrator",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","line concentrator","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+"cable_group;",130,130,"","Cable Group",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","cable group","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+"overground_enclosure;",130,136,"","Overground Enclosure",null,null,
this.getTagsForStencil("mxgraph.electrical.transmission","overground enclosure","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+"optical_fiber;",130,80,"","Optical Fiber",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","optical fiber","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#ffffff;strokeColor=#000000;html=1;verticalAlign=top;strokeWidth=1;shape=ellipse;",
10,10,"","Terminal",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","terminal","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+"terminal_3_phase;",43,10,"","Terminal 3 Phase",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","Terminal 3 Phase","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition=middle;shadow=0;dashed=0;align=center;fillColor=#ffffff;strokeColor=#000000;html=1;verticalAlign=middle;strokeWidth=1;shape=ellipse;fontColor=#000000;fontSize=50;fontStyle=1;perimeter=ellipsePerimeter;",
@ -4416,7 +4416,7 @@ this.getTagsForStencil("mxgraph.electrical.transmission","overground enclosure",
this.createVertexTemplateEntry(t+"2_line_bus;",130,25,"","2-Line Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","2 two line bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+"3_line_bus;",130,30,"","3-Line Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","3 three line bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+"4_line_bus;",130,75,"","4-Line Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission",
"3 three line bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+"8_line_bus;",130,180,"","8-Line Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","3 three line bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+"twoLineBusElbow;notch=25;",120,120,"","2-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","2 two line bus elbow","electrical transmission paths bus buses").join(" ")),
this.createVertexTemplateEntry(t+"threeLineBusElbow;notch=30;",120,120,"","3-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","3 two line bus elbow","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+"fourLineBusElbow;notch=75;",120,120,"","4-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","4 two line bus elbow","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(t+
"eightLineBusElbow;notch=180;",200,200,"","8-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","8 two line bus elbow","electrical transmission paths bus buses").join(" "))];this.addPalette("electricalTransmission","Electrical / Transmission Paths",!1,mxUtils.bind(this,function(b){for(var a=0;a<y.length;a++)b.appendChild(y[a](b))}))}})();(function(){Sidebar.prototype.addErPalette=function(){var a=this,e=new mxCell("Row",new mxGeometry(0,0,40,26),"text;strokeColor=none;fillColor=none;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;");e.vertex=!0;var d=[this.addEntry("er entity relation table",function(){var b=new mxCell("Table",new mxGeometry(0,0,160,110),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;");
"eightLineBusElbow;notch=180;",200,200,"","8-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","8 two line bus elbow","electrical transmission paths bus buses").join(" "))];this.addPalette("electricalTransmission","Electrical / Transmission Paths",!1,mxUtils.bind(this,function(b){for(var a=0;a<z.length;a++)b.appendChild(z[a](b))}))}})();(function(){Sidebar.prototype.addErPalette=function(){var a=this,e=new mxCell("Row",new mxGeometry(0,0,40,26),"text;strokeColor=none;fillColor=none;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;");e.vertex=!0;var d=[this.addEntry("er entity relation table",function(){var b=new mxCell("Table",new mxGeometry(0,0,160,110),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;");
b.vertex=!0;b.insert(a.cloneCell(e,"Row 1"));b.insert(a.cloneCell(e,"Row 2"));b.insert(a.cloneCell(e,"Row 3"));return a.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Table")}),this.addEntry("er entity relation table section subsection",function(){var b=new mxCell("Section",new mxGeometry(0,0,140,110),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=22;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;");
b.vertex=!0;b.insert(a.cloneCell(e,"Row 1"));b.insert(a.cloneCell(e,"Row 2"));b.insert(a.cloneCell(e,"Row 3"));return a.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Section")}),this.addDataEntry("er entity relation table section subsection",160,144,"ER Table 1","7Zhtb9owEMc/Td5OdkzoeLmkazWNSlXpF3ASk1h17MwxA/rpd06cAg0IVIJYq0CQ7DufH+53f0XYI1Gxute0zB9UyoRHfnok0kqZplWsIiaE5yOeeuTW830EP8+/O+DFtReVVDNpTgnwm4C/VCxYY3mmsWCNtTJr4azVkheCSuiFcyXNzHkQ9JOci3RK12phV6wMTV7aXpgrzV9hPIWD3WIwgFubGX+1wf7YzsaFiJRQul6HMGS/O5EzO6NbS7MKYh/b4+F3pge62hk4pZVpd6mEoGXF43rfNrCgOuMyVMaowg1qT3m3u6l5/QE/FTyTYEtgLQbO0GWPacNWBwnUJpf+e6YKZvQahix5anI3YtxQQjnjWd6GjUaNkVaNIXuL3QCFhmO6ny/p8F1I/mfBfqVdxDktbRO2bjgVTywxVGbWGxpVugwJNm8zqt1WbTtus4i3stSMDW12eELFD2cueJrWs26jl6quraqkCZfZtFmFjDamJ7eaNSmYci7UEro5TMak3Y0y1ND4rSpLxaWpExeE8EB+I/Qt8AI4aQR9vOnDY4drEylZGU15zY1B6SyZLZ8w1ap8hmJh7Wm3FRCcWgX+0SqY7CkCgs6vgVGnBh5/n00/3tbNHpKnFsEu8d6AH2Nqj+nK9SC9RElp0xC3OUJdquQoVXIhqkGHqoYE+QhfRtjoONN6ss+r6guqGN50Z/Med3hfW8MN708u4OBDAu4D6M0BAZ/PdRDw/yjg74OALyHgm6sJeHJAwGQQ8JcUMEaDgi+h4MnVFIxx/0QH7fatXdzDvyXcvegatNuDdvHxy6194v0AUuhurkVr386t6T8="),
this.addDataEntry("er entity relation table section subsection",160,112,"ER Table 2","7VfbbuIwEP2avK5yIXT3cROWPpRKVekPDIlJrDqeyHEL9Ot37DiFLETQUrStVAiSPTd75pwjFC9Kq/W1grq8xZwJL/rjRalC1O2qWqdMCC/0ee5FEy8Mffp54XTAG1ivX4NiUp+SELYJzyCeWGt5gIVgrbXRG+GszYpXAiTtkiVKPXcen/ZZyUU+gw0+mRMbDdljt0tKVPyF4oEamwRkILfSc/5iksOxqcaFSFGgsudEzDffXubcVHRnKdZQ7l3XXvCP6RbWvcAZNLq7JQoBdcMX9t4msQJVcJmg1li5oK7Laf9SS/shPwheSLJldBYjZ+Kmx5Rm60EErMmN/5phxbTaUMiK57p0EeMWJb9kvCi7tMCBA01rKF5zt4DSwmF6GN9oD1+FKzIE+wiXUJsl3VxzEPcs0yAL40001m5Agi27gSp3U7Ne7A6xG1Ibm5jh8AzEb2eueJ7bqrvIS7TUamrIuCxm7Sljf2u6d6eNyIRUcimojWhSUjEmzW1Qg4bFKylr5FLbucUJPTTe1P8RezF1mtI+2O7pMeFKpygbrYBb2BgxZ8UMe5JcYf1AXGFdt7sCiE8lQXiUBL8OcCDyz6fAaI8CdzfU/vTmTRzYbToY4kSPBwfwPZUafR6MPooGx5A2bbv2BjHNUEozlkU3M38f6+go1vH4MljHA3IPLyP34Fvun07u4yG5v4kD33I/Xe7xf5P71af7d7fFvq7WL6jtTpjn4P1zD++zgT5Twy3eX1zAV+8S8DsApe321c76em9+fwE="),
@ -4439,41 +4439,42 @@ this.createEdgeTemplateEntry("edgeStyle=entityRelationEdgeStyle;html=1;endArrow=
100,100,"","1 Optional to Many Optional",null,"er entity relation one optional many"),this.createEdgeTemplateEntry("edgeStyle=entityRelationEdgeStyle;html=1;endArrow=ERzeroToMany;startArrow=ERmandOne;",100,100,"","1 Mandatory to Many Optional",null,"er entity relation one mandatory many optional"),this.createEdgeTemplateEntry("edgeStyle=entityRelationEdgeStyle;html=1;endArrow=ERzeroToOne;startArrow=ERmandOne;",100,100,"","1 Mandatory to 1 Optional",null,"er entity relation one mandatory optional"),
this.createEdgeTemplateEntry("edgeStyle=entityRelationEdgeStyle;html=1;endArrow=ERoneToMany;startArrow=ERmandOne;",100,100,"","1 Mandatory to Many Mandatory",null,"er entity relation one mandatory many"),this.createEdgeTemplateEntry("edgeStyle=entityRelationEdgeStyle;html=1;endArrow=ERoneToMany;startArrow=ERzeroToOne;",100,100,"","1 Optional to Many Mandatory",null,"er entity relation one optional mandatory many"),this.createEdgeTemplateEntry("edgeStyle=entityRelationEdgeStyle;html=1;endArrow=ERoneToMany;startArrow=ERoneToMany;",
100,100,"","Many Mandatory to Many Mandatory",null,"er entity relation mandatory many"),this.createEdgeTemplateEntry("edgeStyle=entityRelationEdgeStyle;html=1;endArrow=ERoneToMany;startArrow=ERzeroToMany;",100,100,"","Many Optional to Many Mandatory",null,"er entity relation mandatory many optional"),this.createEdgeTemplateEntry("edgeStyle=entityRelationEdgeStyle;html=1;endArrow=ERzeroToMany;endFill=1;startArrow=ERzeroToMany;",100,100,"","Many Optional to Many Optional",null,"er entity relation many optional")];
this.addPaletteFunctions("er",mxResources.get("entityRelation"),!1,d)}})();(function(){Sidebar.prototype.addFloorplanPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;align=center;shape=mxgraph.floorplan.",e=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=center;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;align=center;shape=mxgraph.floorplan.",d=[this.createVertexTemplateEntry(a+"wall;fillColor=#000000;",100,10,"","Wall (Horizontal)",null,null,this.getTagsForStencil("mxgraph.floorplan","wall","floorplan ").join(" ")),
this.createVertexTemplateEntry(a+"wall;fillColor=#000000;direction=south;",10,100,"","Wall (Vertical)",null,null,this.getTagsForStencil("mxgraph.floorplan","wall","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"wallCorner;fillColor=#000000;",100,100,"","Wall (Corner NW)",null,null,this.getTagsForStencil("mxgraph.floorplan","wallCorner","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"wallCorner;fillColor=#000000;direction=south;",100,100,"","Wall (Corner NE)",null,null,this.getTagsForStencil("mxgraph.floorplan",
"wallCorner","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"wallCorner;fillColor=#000000;direction=west",100,100,"","Wall (Corner SE)",null,null,this.getTagsForStencil("mxgraph.floorplan","wallCorner","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"wallCorner;fillColor=#000000;direction=north",100,100,"","Wall (Corner SW)",null,null,this.getTagsForStencil("mxgraph.floorplan","wallCorner","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"wallU;fillColor=#000000;",100,
100,"","Wall (U)",null,null,this.getTagsForStencil("mxgraph.floorplan","wallU","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"room;fillColor=#000000;",100,100,"","Room",null,null,this.getTagsForStencil("mxgraph.floorplan","room","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"window;fillColor=#ffffff;",100,10,"","Window",null,null,this.getTagsForStencil("mxgraph.floorplan","window","floorplan ").join(" ")),this.createVertexTemplateEntry(e+"dimension;verticalAlign=top;",200,
40,"100","Dimension",null,null,this.getTagsForStencil("mxgraph.floorplan","dimension","floorplan ").join(" ")),this.createVertexTemplateEntry(e+"dimensionBottom;verticalAlign=bottom;",200,40,"100","Dimension",null,null,this.getTagsForStencil("mxgraph.floorplan","dimensionBottom","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"stairs;",300,100,"","Stairs",null,null,this.getTagsForStencil("mxgraph.floorplan","stairs","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"stairs;direction=south;",
100,300,"","Stairs",null,null,this.getTagsForStencil("mxgraph.floorplan","stairs","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"stairsRest;",300,200,"","Stairs",null,null,this.getTagsForStencil("mxgraph.floorplan","stairsRest","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"doorLeft;",80,85,"","Door",null,null,this.getTagsForStencil("mxgraph.floorplan","doorLeft","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"doorRight;",80,85,"","Door",null,null,this.getTagsForStencil("mxgraph.floorplan",
"doorRight","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"doorDouble;",160,85,"","Door, Double",null,null,this.getTagsForStencil("mxgraph.floorplan","doorDouble","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"bathtub;",180,60,"","Bathtub",null,null,this.getTagsForStencil("mxgraph.floorplan","bathtub","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"bed_double;",200,180,"","Bed, Double",null,null,this.getTagsForStencil("mxgraph.floorplan","bed_double","floorplan ").join(" ")),
this.createVertexTemplateEntry(a+"bed_single;",100,180,"","Bed Single",null,null,this.getTagsForStencil("mxgraph.floorplan","bed_single","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"bookcase;",120,30,"","Bookcase",null,null,this.getTagsForStencil("mxgraph.floorplan","bookcase","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"chair;",41,52,"","Chair",null,null,this.getTagsForStencil("mxgraph.floorplan","chair","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"copier;",
110,60,"","Copier",null,null,this.getTagsForStencil("mxgraph.floorplan","copier","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"couch;",150,80,"","Couch",null,null,this.getTagsForStencil("mxgraph.floorplan","couch","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"crt_tv;",60,40,"","CRT TV",null,null,this.getTagsForStencil("mxgraph.floorplan","crt_tv","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"desk_corner;",150,150,"","Desk Corner",null,null,this.getTagsForStencil("mxgraph.floorplan",
"desk_corner","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"desk_corner_2;",150,120,"","Desk Corner 2",null,null,this.getTagsForStencil("mxgraph.floorplan","desk_corner_2","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"dresser;",100,65,"","Dresser",null,null,this.getTagsForStencil("mxgraph.floorplan","dresser","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"elevator;",100,100,"","Elevator",null,null,this.getTagsForStencil("mxgraph.floorplan","elevator","floorplan ").join(" ")),
this.createVertexTemplateEntry(a+"fireplace;",304,200,"","Fireplace",null,null,this.getTagsForStencil("mxgraph.floorplan","fireplace","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"flat_tv;",70,10,"","Flat TV",null,null,this.getTagsForStencil("mxgraph.floorplan","flat_tv","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"floor_lamp;",50,50,"","Floor Lamp",null,null,this.getTagsForStencil("mxgraph.floorplan","floor_lamp","floorplan ").join(" ")),this.createVertexTemplateEntry(a+
"laptop;",40,35,"","Laptop",null,null,this.getTagsForStencil("mxgraph.floorplan","laptop","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"office_chair;",40,43,"","Office Chair",null,null,this.getTagsForStencil("mxgraph.floorplan","office_chair","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"piano;",135,143,"","Piano",null,null,this.getTagsForStencil("mxgraph.floorplan","piano","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"plant;",47,51,"","Plant",null,null,this.getTagsForStencil("mxgraph.floorplan",
"plant","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"printer;",40,47,"","Printer",null,null,this.getTagsForStencil("mxgraph.floorplan","printer","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"range_1;",50,62,"","Range 1",null,null,this.getTagsForStencil("mxgraph.floorplan","range_1","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"range_2;",75,62,"","Range 2",null,null,this.getTagsForStencil("mxgraph.floorplan","range_2","floorplan ").join(" ")),this.createVertexTemplateEntry(a+
"refrigerator;",60,62,"","Refrigerator",null,null,this.getTagsForStencil("mxgraph.floorplan","refrigerator","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"shower;",100,100,"","Shower",null,null,this.getTagsForStencil("mxgraph.floorplan","shower","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"sink_1;",40,35,"","Sink 1",null,null,this.getTagsForStencil("mxgraph.floorplan","sink_1","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"sink_2;",40,35,"","Sink 2",null,null,
this.getTagsForStencil("mxgraph.floorplan","sink_2","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"sink_double;",80,35,"","Sink Double",null,null,this.getTagsForStencil("mxgraph.floorplan","sink_double","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"sofa;",90,80,"","Sofa",null,null,this.getTagsForStencil("mxgraph.floorplan","sofa","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"spiral_stairs;",200,200,"","Spiral Stairs",null,null,this.getTagsForStencil("mxgraph.floorplan",
"spiral_stairs","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"table;",90,50,"","Table",null,null,this.getTagsForStencil("mxgraph.floorplan","table","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"toilet;",50,67,"","Toilet",null,null,this.getTagsForStencil("mxgraph.floorplan","toilet","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"water_cooler;",40,40,"","Water Cooler",null,null,this.getTagsForStencil("mxgraph.floorplan","water_cooler","floorplan ").join(" ")),this.createVertexTemplateEntry(a+
"workstation;",50,40,"","Workstation",null,null,this.getTagsForStencil("mxgraph.floorplan","workstation","floorplan ").join(" ")),this.addEntry("floorplan kitchen table small",function(){var b=new mxCell("",new mxGeometry(0,20,80,80),"shape=rect;shadow=0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(20,0,40,52),a+"chair;shadow=0;");c.vertex=!0;var e=new mxCell("",new mxGeometry(20,68,40,52),a+"chair;shadow=0;rotation=180;");e.vertex=!0;return sb.createVertexTemplateFromCells([c,e,b],80,120,"Small kitchen table")}),
this.addEntry("floorplan kitchen table",function(){var b=new mxCell("",new mxGeometry(20,20,100,100),"shape=rect;shadow=0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(50,0,40,52),a+"chair;shadow=0;");c.vertex=!0;var e=new mxCell("",new mxGeometry(50,88,40,52),a+"chair;shadow=0;direction=west;");e.vertex=!0;var d=new mxCell("",new mxGeometry(0,50,52,40),a+"chair;shadow=0;direction=north;");d.vertex=!0;var g=new mxCell("",new mxGeometry(88,50,52,40),a+"chair;shadow=0;direction=south");g.vertex=
!0;return sb.createVertexTemplateFromCells([c,e,d,g,b],140,140,"Kitchen table")}),this.addEntry("floorplan kitchen table",function(){var b=new mxCell("",new mxGeometry(20,20,100,100),"shape=ellipse;shadow=0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(50,0,40,52),a+"chair;shadow=0;");c.vertex=!0;var e=new mxCell("",new mxGeometry(50,88,40,52),a+"chair;shadow=0;direction=west;");e.vertex=!0;var d=new mxCell("",new mxGeometry(0,50,52,40),a+"chair;shadow=0;direction=north;");d.vertex=!0;var g=new mxCell("",
new mxGeometry(88,50,52,40),a+"chair;shadow=0;direction=south");g.vertex=!0;return sb.createVertexTemplateFromCells([c,e,d,g,b],140,140,"Round kitchen table")}),this.addEntry("floorplan kitchen table large",function(){var b=new mxCell("",new mxGeometry(20,20,160,100),"shape=rect;shadow=0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(50,0,40,52),a+"chair;shadow=0;");c.vertex=!0;var e=new mxCell("",new mxGeometry(50,88,40,52),a+"chair;shadow=0;direction=west;");e.vertex=!0;var d=new mxCell("",new mxGeometry(0,
50,52,40),a+"chair;shadow=0;direction=north;");d.vertex=!0;var g=new mxCell("",new mxGeometry(148,50,52,40),a+"chair;shadow=0;direction=south");g.vertex=!0;var k=new mxCell("",new mxGeometry(110,0,40,52),a+"chair;shadow=0;");k.vertex=!0;var m=new mxCell("",new mxGeometry(110,88,40,52),a+"chair;shadow=0;direction=west;");m.vertex=!0;return sb.createVertexTemplateFromCells([c,e,d,g,k,m,b],200,140,"Large kitchen table")}),this.addEntry("floorplan kitchen table large",function(){var b=new mxCell("",new mxGeometry(20,
20,160,100),"shape=ellipse;shadow=0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(50,0,40,52),a+"chair;shadow=0;");c.vertex=!0;var e=new mxCell("",new mxGeometry(50,88,40,52),a+"chair;shadow=0;direction=west;");e.vertex=!0;var d=new mxCell("",new mxGeometry(0,50,52,40),a+"chair;shadow=0;direction=north;");d.vertex=!0;var g=new mxCell("",new mxGeometry(148,50,52,40),a+"chair;shadow=0;direction=south");g.vertex=!0;var k=new mxCell("",new mxGeometry(110,0,40,52),a+"chair;shadow=0;");k.vertex=!0;
var m=new mxCell("",new mxGeometry(110,88,40,52),a+"chair;shadow=0;direction=west;");m.vertex=!0;return sb.createVertexTemplateFromCells([c,e,d,g,k,m,b],200,140,"Large kitchen table")}),this.addEntry("floorplan office table",function(){var b=new mxCell("",new mxGeometry(0,20,80,50),"shape=rect;shadow=0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(20,0,40,43),a+"office_chair;shadow=0;");c.vertex=!0;var e=new mxCell("",new mxGeometry(15,30,50,40),a+"workstation;shadow=0;flipV=1;");e.vertex=!0;
return sb.createVertexTemplateFromCells([c,b,e],80,70,"Office table")}),this.addEntry("floorplan office table",function(){var b=new mxCell("",new mxGeometry(20,20,100,100),"shape=rect;shadow=0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(50,0,40,43),a+"office_chair;shadow=0;");c.vertex=!0;var e=new mxCell("",new mxGeometry(50,97,40,43),a+"office_chair;shadow=0;direction=west;");e.vertex=!0;var d=new mxCell("",new mxGeometry(0,50,43,40),a+"office_chair;shadow=0;direction=north;");d.vertex=!0;
var g=new mxCell("",new mxGeometry(97,50,43,40),a+"office_chair;shadow=0;direction=south");g.vertex=!0;return sb.createVertexTemplateFromCells([c,e,d,g,b],140,140,"Office table")}),this.addEntry("floorplan office table large",function(){var b=new mxCell("",new mxGeometry(20,20,160,100),"shape=rect;shadow=0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(50,0,40,43),a+"office_chair;shadow=0;");c.vertex=!0;var e=new mxCell("",new mxGeometry(50,97,40,43),a+"office_chair;shadow=0;direction=west;");
e.vertex=!0;var d=new mxCell("",new mxGeometry(0,50,43,40),a+"office_chair;shadow=0;direction=north;");d.vertex=!0;var g=new mxCell("",new mxGeometry(157,50,43,40),a+"office_chair;shadow=0;direction=south");g.vertex=!0;var k=new mxCell("",new mxGeometry(110,0,40,43),a+"office_chair;shadow=0;");k.vertex=!0;var m=new mxCell("",new mxGeometry(110,97,40,43),a+"office_chair;shadow=0;direction=west;");m.vertex=!0;return sb.createVertexTemplateFromCells([c,e,d,g,k,m,b],200,140,"Large office table")}),this.addEntry("floorplan office table large",
function(){var b=new mxCell("",new mxGeometry(20,20,160,100),"shape=ellipse;shadow=0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(50,0,40,43),a+"office_chair;shadow=0;");c.vertex=!0;var e=new mxCell("",new mxGeometry(50,97,40,43),a+"office_chair;shadow=0;direction=west;");e.vertex=!0;var d=new mxCell("",new mxGeometry(0,50,43,40),a+"office_chair;shadow=0;direction=north;");d.vertex=!0;var g=new mxCell("",new mxGeometry(157,50,43,40),a+"office_chair;shadow=0;direction=south");g.vertex=!0;var k=
new mxCell("",new mxGeometry(110,0,40,43),a+"office_chair;shadow=0;");k.vertex=!0;var m=new mxCell("",new mxGeometry(110,97,40,43),a+"office_chair;shadow=0;direction=west;");m.vertex=!0;return sb.createVertexTemplateFromCells([c,e,d,g,k,m,b],200,140,"Large office table")}),this.addEntry("floorplan office table large",function(){var b=new mxCell("",new mxGeometry(20,20,280,100),"shape=ellipse;shadow=0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(50,0,40,43),a+"office_chair;shadow=0;");c.vertex=
!0;var e=new mxCell("",new mxGeometry(50,97,40,43),a+"office_chair;shadow=0;direction=west;");e.vertex=!0;var d=new mxCell("",new mxGeometry(0,50,43,40),a+"office_chair;shadow=0;direction=north;");d.vertex=!0;var g=new mxCell("",new mxGeometry(277,50,43,40),a+"office_chair;shadow=0;direction=south");g.vertex=!0;var k=new mxCell("",new mxGeometry(110,0,40,43),a+"office_chair;shadow=0;");k.vertex=!0;var m=new mxCell("",new mxGeometry(110,97,40,43),a+"office_chair;shadow=0;direction=west;");m.vertex=
!0;var l=new mxCell("",new mxGeometry(170,0,40,43),a+"office_chair;shadow=0;");l.vertex=!0;var r=new mxCell("",new mxGeometry(170,97,40,43),a+"office_chair;shadow=0;direction=west;");r.vertex=!0;var n=new mxCell("",new mxGeometry(230,0,40,43),a+"office_chair;shadow=0;");n.vertex=!0;var p=new mxCell("",new mxGeometry(230,97,40,43),a+"office_chair;shadow=0;direction=west;");p.vertex=!0;return sb.createVertexTemplateFromCells([c,e,d,g,k,m,l,r,n,p,b],320,140,"Large office table")}),this.addEntry("floorplan office table conference large huge",
function(){var b=new mxCell("",new mxGeometry(20,20,520,100),"shape=ellipse;shadow=0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(50,0,40,43),a+"office_chair;shadow=0;");c.vertex=!0;var e=new mxCell("",new mxGeometry(50,97,40,43),a+"office_chair;shadow=0;direction=west;");e.vertex=!0;var d=new mxCell("",new mxGeometry(0,50,43,40),a+"office_chair;shadow=0;direction=north;");d.vertex=!0;var g=new mxCell("",new mxGeometry(517,50,43,40),a+"office_chair;shadow=0;direction=south");g.vertex=!0;var k=
new mxCell("",new mxGeometry(110,0,40,43),a+"office_chair;shadow=0;");k.vertex=!0;var m=new mxCell("",new mxGeometry(110,97,40,43),a+"office_chair;shadow=0;direction=west;");m.vertex=!0;var l=new mxCell("",new mxGeometry(170,0,40,43),a+"office_chair;shadow=0;");l.vertex=!0;var r=new mxCell("",new mxGeometry(170,97,40,43),a+"office_chair;shadow=0;direction=west;");r.vertex=!0;var n=new mxCell("",new mxGeometry(230,0,40,43),a+"office_chair;shadow=0;");n.vertex=!0;var p=new mxCell("",new mxGeometry(230,
97,40,43),a+"office_chair;shadow=0;direction=west;");p.vertex=!0;var q=new mxCell("",new mxGeometry(290,0,40,43),a+"office_chair;shadow=0;");q.vertex=!0;var w=new mxCell("",new mxGeometry(290,97,40,43),a+"office_chair;shadow=0;direction=west;");w.vertex=!0;var v=new mxCell("",new mxGeometry(350,0,40,43),a+"office_chair;shadow=0;");v.vertex=!0;var z=new mxCell("",new mxGeometry(350,97,40,43),a+"office_chair;shadow=0;direction=west;");z.vertex=!0;var x=new mxCell("",new mxGeometry(410,0,40,43),a+"office_chair;shadow=0;");
x.vertex=!0;var u=new mxCell("",new mxGeometry(410,97,40,43),a+"office_chair;shadow=0;direction=west;");u.vertex=!0;var t=new mxCell("",new mxGeometry(470,0,40,43),a+"office_chair;shadow=0;");t.vertex=!0;var y=new mxCell("",new mxGeometry(470,97,40,43),a+"office_chair;shadow=0;direction=west;");y.vertex=!0;return sb.createVertexTemplateFromCells([c,e,d,g,k,m,l,r,n,p,q,w,v,z,x,u,t,y,b],560,140,"Conference table")})];this.addPalette("floorplan",mxResources.get("floorplans"),!1,mxUtils.bind(this,function(b){for(var a=
0;a<d.length;a++)b.appendChild(d[a](b))}))}})();(function(){Sidebar.prototype.addFlowchartPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;html=1;strokeWidth=2;shape=mxgraph.flowchart.";this.addPaletteFunctions("flowchart",mxResources.get("flowchart"),!1,[this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.annotation_1;align=left;",50,100,"","Annotation",null,null,this.getTagsForStencil("mxgraph.flowchart","annotation_1","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.annotation_2;align=left;",
this.addPaletteFunctions("er",mxResources.get("entityRelation"),!1,d)}})();(function(){Sidebar.prototype.addFloorplanPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;html=1;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;align=center;shape=mxgraph.floorplan.",e=[this.createVertexTemplateEntry(a+"wall;fillColor=#000000;",100,10,"","Wall (Horizontal)",null,null,this.getTagsForStencil("mxgraph.floorplan","wall","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"wall;fillColor=#000000;direction=south;",10,100,"","Wall (Vertical)",null,null,this.getTagsForStencil("mxgraph.floorplan",
"wall","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"wallCorner;fillColor=#000000;",100,100,"","Wall (Corner NW)",null,null,this.getTagsForStencil("mxgraph.floorplan","wallCorner","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"wallCorner;fillColor=#000000;direction=south;",100,100,"","Wall (Corner NE)",null,null,this.getTagsForStencil("mxgraph.floorplan","wallCorner","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"wallCorner;fillColor=#000000;direction=west",100,
100,"","Wall (Corner SE)",null,null,this.getTagsForStencil("mxgraph.floorplan","wallCorner","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"wallCorner;fillColor=#000000;direction=north",100,100,"","Wall (Corner SW)",null,null,this.getTagsForStencil("mxgraph.floorplan","wallCorner","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"wallU;fillColor=#000000;",100,100,"","Wall (U)",null,null,this.getTagsForStencil("mxgraph.floorplan","wallU","floorplan ").join(" ")),this.createVertexTemplateEntry(a+
"room;fillColor=#000000;",100,100,"","Room",null,null,this.getTagsForStencil("mxgraph.floorplan","room","floorplan ").join(" ")),this.createVertexTemplateEntry("shape=dimension;whiteSpace=wrap;html=1;align=center;points=[];verticalAlign=bottom;spacingBottom=-5;labelBackgroundColor=#ffffff",100,40,"Label","Horizontal Dimension",null,null,"horizontal dimension measure distance unit"),this.createVertexTemplateEntry("shape=dimension;direction=west;whiteSpace=wrap;html=1;align=center;points=[];verticalAlign=top;spacingTop=-8;labelBackgroundColor=#ffffff",
100,40,"Label","Vertical Dimension",null,null,"vertical dimension measure distance unit"),this.createVertexTemplateEntry("shape=dimension;direction=north;whiteSpace=wrap;html=1;align=right;points=[];verticalAlign=middle;labelBackgroundColor=#ffffff",40,100,"Label","Vertical Dimension",null,null,"vertical dimension measure distance unit"),this.createVertexTemplateEntry("shape=dimension;direction=south;whiteSpace=wrap;html=1;align=left;points=[];verticalAlign=middle;labelBackgroundColor=#ffffff",40,
100,"Label","Horizontal Dimension",null,null,"horizontal dimension measure distance unit"),this.createVertexTemplateEntry(a+"window;fillColor=#ffffff;",100,10,"","Window",null,null,this.getTagsForStencil("mxgraph.floorplan","window","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"stairs;",300,100,"","Stairs",null,null,this.getTagsForStencil("mxgraph.floorplan","stairs","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"stairs;direction=south;",100,300,"","Stairs",null,null,this.getTagsForStencil("mxgraph.floorplan",
"stairs","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"stairsRest;",300,200,"","Stairs",null,null,this.getTagsForStencil("mxgraph.floorplan","stairsRest","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"doorLeft;",80,85,"","Door",null,null,this.getTagsForStencil("mxgraph.floorplan","doorLeft","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"doorRight;",80,85,"","Door",null,null,this.getTagsForStencil("mxgraph.floorplan","doorRight","floorplan ").join(" ")),this.createVertexTemplateEntry(a+
"doorDouble;",160,85,"","Door, Double",null,null,this.getTagsForStencil("mxgraph.floorplan","doorDouble","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"bathtub;",180,60,"","Bathtub",null,null,this.getTagsForStencil("mxgraph.floorplan","bathtub","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"bed_double;",200,180,"","Bed, Double",null,null,this.getTagsForStencil("mxgraph.floorplan","bed_double","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"bed_single;",100,180,"",
"Bed Single",null,null,this.getTagsForStencil("mxgraph.floorplan","bed_single","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"bookcase;",120,30,"","Bookcase",null,null,this.getTagsForStencil("mxgraph.floorplan","bookcase","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"chair;",41,52,"","Chair",null,null,this.getTagsForStencil("mxgraph.floorplan","chair","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"copier;",110,60,"","Copier",null,null,this.getTagsForStencil("mxgraph.floorplan",
"copier","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"couch;",150,80,"","Couch",null,null,this.getTagsForStencil("mxgraph.floorplan","couch","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"crt_tv;",60,40,"","CRT TV",null,null,this.getTagsForStencil("mxgraph.floorplan","crt_tv","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"desk_corner;",150,150,"","Desk Corner",null,null,this.getTagsForStencil("mxgraph.floorplan","desk_corner","floorplan ").join(" ")),this.createVertexTemplateEntry(a+
"desk_corner_2;",150,120,"","Desk Corner 2",null,null,this.getTagsForStencil("mxgraph.floorplan","desk_corner_2","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"dresser;",100,65,"","Dresser",null,null,this.getTagsForStencil("mxgraph.floorplan","dresser","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"elevator;",100,100,"","Elevator",null,null,this.getTagsForStencil("mxgraph.floorplan","elevator","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"fireplace;",304,200,"",
"Fireplace",null,null,this.getTagsForStencil("mxgraph.floorplan","fireplace","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"flat_tv;",70,10,"","Flat TV",null,null,this.getTagsForStencil("mxgraph.floorplan","flat_tv","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"floor_lamp;",50,50,"","Floor Lamp",null,null,this.getTagsForStencil("mxgraph.floorplan","floor_lamp","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"laptop;",40,35,"","Laptop",null,null,this.getTagsForStencil("mxgraph.floorplan",
"laptop","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"office_chair;",40,43,"","Office Chair",null,null,this.getTagsForStencil("mxgraph.floorplan","office_chair","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"piano;",135,143,"","Piano",null,null,this.getTagsForStencil("mxgraph.floorplan","piano","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"plant;",47,51,"","Plant",null,null,this.getTagsForStencil("mxgraph.floorplan","plant","floorplan ").join(" ")),this.createVertexTemplateEntry(a+
"printer;",40,47,"","Printer",null,null,this.getTagsForStencil("mxgraph.floorplan","printer","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"range_1;",50,62,"","Range 1",null,null,this.getTagsForStencil("mxgraph.floorplan","range_1","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"range_2;",75,62,"","Range 2",null,null,this.getTagsForStencil("mxgraph.floorplan","range_2","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"refrigerator;",60,62,"","Refrigerator",null,null,
this.getTagsForStencil("mxgraph.floorplan","refrigerator","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"shower;",100,100,"","Shower",null,null,this.getTagsForStencil("mxgraph.floorplan","shower","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"sink_1;",40,35,"","Sink 1",null,null,this.getTagsForStencil("mxgraph.floorplan","sink_1","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"sink_2;",40,35,"","Sink 2",null,null,this.getTagsForStencil("mxgraph.floorplan","sink_2",
"floorplan ").join(" ")),this.createVertexTemplateEntry(a+"sink_double;",80,35,"","Sink Double",null,null,this.getTagsForStencil("mxgraph.floorplan","sink_double","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"sofa;",90,80,"","Sofa",null,null,this.getTagsForStencil("mxgraph.floorplan","sofa","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"spiral_stairs;",200,200,"","Spiral Stairs",null,null,this.getTagsForStencil("mxgraph.floorplan","spiral_stairs","floorplan ").join(" ")),
this.createVertexTemplateEntry(a+"table;",90,50,"","Table",null,null,this.getTagsForStencil("mxgraph.floorplan","table","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"toilet;",50,67,"","Toilet",null,null,this.getTagsForStencil("mxgraph.floorplan","toilet","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"water_cooler;",40,40,"","Water Cooler",null,null,this.getTagsForStencil("mxgraph.floorplan","water_cooler","floorplan ").join(" ")),this.createVertexTemplateEntry(a+"workstation;",
50,40,"","Workstation",null,null,this.getTagsForStencil("mxgraph.floorplan","workstation","floorplan ").join(" ")),this.addEntry("floorplan kitchen table small",function(){var e=new mxCell("",new mxGeometry(0,20,80,80),"shape=rect;shadow=0;");e.vertex=!0;var b=new mxCell("",new mxGeometry(20,0,40,52),a+"chair;shadow=0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(20,68,40,52),a+"chair;shadow=0;rotation=180;");c.vertex=!0;return sb.createVertexTemplateFromCells([b,c,e],80,120,"Small kitchen table")}),
this.addEntry("floorplan kitchen table",function(){var e=new mxCell("",new mxGeometry(20,20,100,100),"shape=rect;shadow=0;");e.vertex=!0;var b=new mxCell("",new mxGeometry(50,0,40,52),a+"chair;shadow=0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(50,88,40,52),a+"chair;shadow=0;direction=west;");c.vertex=!0;var h=new mxCell("",new mxGeometry(0,50,52,40),a+"chair;shadow=0;direction=north;");h.vertex=!0;var f=new mxCell("",new mxGeometry(88,50,52,40),a+"chair;shadow=0;direction=south");f.vertex=
!0;return sb.createVertexTemplateFromCells([b,c,h,f,e],140,140,"Kitchen table")}),this.addEntry("floorplan kitchen table",function(){var e=new mxCell("",new mxGeometry(20,20,100,100),"shape=ellipse;shadow=0;");e.vertex=!0;var b=new mxCell("",new mxGeometry(50,0,40,52),a+"chair;shadow=0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(50,88,40,52),a+"chair;shadow=0;direction=west;");c.vertex=!0;var h=new mxCell("",new mxGeometry(0,50,52,40),a+"chair;shadow=0;direction=north;");h.vertex=!0;var f=new mxCell("",
new mxGeometry(88,50,52,40),a+"chair;shadow=0;direction=south");f.vertex=!0;return sb.createVertexTemplateFromCells([b,c,h,f,e],140,140,"Round kitchen table")}),this.addEntry("floorplan kitchen table large",function(){var e=new mxCell("",new mxGeometry(20,20,160,100),"shape=rect;shadow=0;");e.vertex=!0;var b=new mxCell("",new mxGeometry(50,0,40,52),a+"chair;shadow=0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(50,88,40,52),a+"chair;shadow=0;direction=west;");c.vertex=!0;var h=new mxCell("",new mxGeometry(0,
50,52,40),a+"chair;shadow=0;direction=north;");h.vertex=!0;var f=new mxCell("",new mxGeometry(148,50,52,40),a+"chair;shadow=0;direction=south");f.vertex=!0;var g=new mxCell("",new mxGeometry(110,0,40,52),a+"chair;shadow=0;");g.vertex=!0;var k=new mxCell("",new mxGeometry(110,88,40,52),a+"chair;shadow=0;direction=west;");k.vertex=!0;return sb.createVertexTemplateFromCells([b,c,h,f,g,k,e],200,140,"Large kitchen table")}),this.addEntry("floorplan kitchen table large",function(){var e=new mxCell("",new mxGeometry(20,
20,160,100),"shape=ellipse;shadow=0;");e.vertex=!0;var b=new mxCell("",new mxGeometry(50,0,40,52),a+"chair;shadow=0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(50,88,40,52),a+"chair;shadow=0;direction=west;");c.vertex=!0;var h=new mxCell("",new mxGeometry(0,50,52,40),a+"chair;shadow=0;direction=north;");h.vertex=!0;var f=new mxCell("",new mxGeometry(148,50,52,40),a+"chair;shadow=0;direction=south");f.vertex=!0;var g=new mxCell("",new mxGeometry(110,0,40,52),a+"chair;shadow=0;");g.vertex=!0;
var k=new mxCell("",new mxGeometry(110,88,40,52),a+"chair;shadow=0;direction=west;");k.vertex=!0;return sb.createVertexTemplateFromCells([b,c,h,f,g,k,e],200,140,"Large kitchen table")}),this.addEntry("floorplan office table",function(){var e=new mxCell("",new mxGeometry(0,20,80,50),"shape=rect;shadow=0;");e.vertex=!0;var b=new mxCell("",new mxGeometry(20,0,40,43),a+"office_chair;shadow=0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(15,30,50,40),a+"workstation;shadow=0;flipV=1;");c.vertex=!0;
return sb.createVertexTemplateFromCells([b,e,c],80,70,"Office table")}),this.addEntry("floorplan office table",function(){var e=new mxCell("",new mxGeometry(20,20,100,100),"shape=rect;shadow=0;");e.vertex=!0;var b=new mxCell("",new mxGeometry(50,0,40,43),a+"office_chair;shadow=0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(50,97,40,43),a+"office_chair;shadow=0;direction=west;");c.vertex=!0;var h=new mxCell("",new mxGeometry(0,50,43,40),a+"office_chair;shadow=0;direction=north;");h.vertex=!0;
var f=new mxCell("",new mxGeometry(97,50,43,40),a+"office_chair;shadow=0;direction=south");f.vertex=!0;return sb.createVertexTemplateFromCells([b,c,h,f,e],140,140,"Office table")}),this.addEntry("floorplan office table large",function(){var e=new mxCell("",new mxGeometry(20,20,160,100),"shape=rect;shadow=0;");e.vertex=!0;var b=new mxCell("",new mxGeometry(50,0,40,43),a+"office_chair;shadow=0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(50,97,40,43),a+"office_chair;shadow=0;direction=west;");
c.vertex=!0;var h=new mxCell("",new mxGeometry(0,50,43,40),a+"office_chair;shadow=0;direction=north;");h.vertex=!0;var f=new mxCell("",new mxGeometry(157,50,43,40),a+"office_chair;shadow=0;direction=south");f.vertex=!0;var g=new mxCell("",new mxGeometry(110,0,40,43),a+"office_chair;shadow=0;");g.vertex=!0;var k=new mxCell("",new mxGeometry(110,97,40,43),a+"office_chair;shadow=0;direction=west;");k.vertex=!0;return sb.createVertexTemplateFromCells([b,c,h,f,g,k,e],200,140,"Large office table")}),this.addEntry("floorplan office table large",
function(){var e=new mxCell("",new mxGeometry(20,20,160,100),"shape=ellipse;shadow=0;");e.vertex=!0;var b=new mxCell("",new mxGeometry(50,0,40,43),a+"office_chair;shadow=0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(50,97,40,43),a+"office_chair;shadow=0;direction=west;");c.vertex=!0;var h=new mxCell("",new mxGeometry(0,50,43,40),a+"office_chair;shadow=0;direction=north;");h.vertex=!0;var f=new mxCell("",new mxGeometry(157,50,43,40),a+"office_chair;shadow=0;direction=south");f.vertex=!0;var g=
new mxCell("",new mxGeometry(110,0,40,43),a+"office_chair;shadow=0;");g.vertex=!0;var k=new mxCell("",new mxGeometry(110,97,40,43),a+"office_chair;shadow=0;direction=west;");k.vertex=!0;return sb.createVertexTemplateFromCells([b,c,h,f,g,k,e],200,140,"Large office table")}),this.addEntry("floorplan office table large",function(){var e=new mxCell("",new mxGeometry(20,20,280,100),"shape=ellipse;shadow=0;");e.vertex=!0;var b=new mxCell("",new mxGeometry(50,0,40,43),a+"office_chair;shadow=0;");b.vertex=
!0;var c=new mxCell("",new mxGeometry(50,97,40,43),a+"office_chair;shadow=0;direction=west;");c.vertex=!0;var h=new mxCell("",new mxGeometry(0,50,43,40),a+"office_chair;shadow=0;direction=north;");h.vertex=!0;var f=new mxCell("",new mxGeometry(277,50,43,40),a+"office_chair;shadow=0;direction=south");f.vertex=!0;var g=new mxCell("",new mxGeometry(110,0,40,43),a+"office_chair;shadow=0;");g.vertex=!0;var k=new mxCell("",new mxGeometry(110,97,40,43),a+"office_chair;shadow=0;direction=west;");k.vertex=
!0;var m=new mxCell("",new mxGeometry(170,0,40,43),a+"office_chair;shadow=0;");m.vertex=!0;var l=new mxCell("",new mxGeometry(170,97,40,43),a+"office_chair;shadow=0;direction=west;");l.vertex=!0;var r=new mxCell("",new mxGeometry(230,0,40,43),a+"office_chair;shadow=0;");r.vertex=!0;var n=new mxCell("",new mxGeometry(230,97,40,43),a+"office_chair;shadow=0;direction=west;");n.vertex=!0;return sb.createVertexTemplateFromCells([b,c,h,f,g,k,m,l,r,n,e],320,140,"Large office table")}),this.addEntry("floorplan office table conference large huge",
function(){var e=new mxCell("",new mxGeometry(20,20,520,100),"shape=ellipse;shadow=0;");e.vertex=!0;var b=new mxCell("",new mxGeometry(50,0,40,43),a+"office_chair;shadow=0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(50,97,40,43),a+"office_chair;shadow=0;direction=west;");c.vertex=!0;var h=new mxCell("",new mxGeometry(0,50,43,40),a+"office_chair;shadow=0;direction=north;");h.vertex=!0;var f=new mxCell("",new mxGeometry(517,50,43,40),a+"office_chair;shadow=0;direction=south");f.vertex=!0;var g=
new mxCell("",new mxGeometry(110,0,40,43),a+"office_chair;shadow=0;");g.vertex=!0;var k=new mxCell("",new mxGeometry(110,97,40,43),a+"office_chair;shadow=0;direction=west;");k.vertex=!0;var m=new mxCell("",new mxGeometry(170,0,40,43),a+"office_chair;shadow=0;");m.vertex=!0;var l=new mxCell("",new mxGeometry(170,97,40,43),a+"office_chair;shadow=0;direction=west;");l.vertex=!0;var r=new mxCell("",new mxGeometry(230,0,40,43),a+"office_chair;shadow=0;");r.vertex=!0;var n=new mxCell("",new mxGeometry(230,
97,40,43),a+"office_chair;shadow=0;direction=west;");n.vertex=!0;var p=new mxCell("",new mxGeometry(290,0,40,43),a+"office_chair;shadow=0;");p.vertex=!0;var q=new mxCell("",new mxGeometry(290,97,40,43),a+"office_chair;shadow=0;direction=west;");q.vertex=!0;var w=new mxCell("",new mxGeometry(350,0,40,43),a+"office_chair;shadow=0;");w.vertex=!0;var v=new mxCell("",new mxGeometry(350,97,40,43),a+"office_chair;shadow=0;direction=west;");v.vertex=!0;var y=new mxCell("",new mxGeometry(410,0,40,43),a+"office_chair;shadow=0;");
y.vertex=!0;var x=new mxCell("",new mxGeometry(410,97,40,43),a+"office_chair;shadow=0;direction=west;");x.vertex=!0;var u=new mxCell("",new mxGeometry(470,0,40,43),a+"office_chair;shadow=0;");u.vertex=!0;var t=new mxCell("",new mxGeometry(470,97,40,43),a+"office_chair;shadow=0;direction=west;");t.vertex=!0;return sb.createVertexTemplateFromCells([b,c,h,f,g,k,m,l,r,n,p,q,w,v,y,x,u,t,e],560,140,"Conference table")})];this.addPalette("floorplan",mxResources.get("floorplans"),!1,mxUtils.bind(this,function(a){for(var b=
0;b<e.length;b++)a.appendChild(e[b](a))}))}})();(function(){Sidebar.prototype.addFlowchartPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;html=1;strokeWidth=2;shape=mxgraph.flowchart.";this.addPaletteFunctions("flowchart",mxResources.get("flowchart"),!1,[this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.annotation_1;align=left;",50,100,"","Annotation",null,null,this.getTagsForStencil("mxgraph.flowchart","annotation_1","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.annotation_2;align=left;",
50,100,"","Annotation",null,null,this.getTagsForStencil("mxgraph.flowchart","annotation_2","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.card;whiteSpace=wrap;",100,60,"","Card",null,null,this.getTagsForStencil("mxgraph.flowchart","card","").join(" ")),this.createVertexTemplateEntry(a+"collate;",100,100,"","Collate",null,null,this.getTagsForStencil("mxgraph.flowchart","collate","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.data;whiteSpace=wrap;",
100,60,"","Data",null,null,this.getTagsForStencil("mxgraph.flowchart","data","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.database;whiteSpace=wrap;",60,60,"","Database",null,null,this.getTagsForStencil("mxgraph.flowchart","database","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.decision;whiteSpace=wrap;",100,100,"","Decision",null,null,this.getTagsForStencil("mxgraph.flowchart","decision","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.delay;whiteSpace=wrap;",
100,60,"","Delay",null,null,this.getTagsForStencil("mxgraph.flowchart","delay","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.direct_data;whiteSpace=wrap;",100,60,"","Direct Data",null,null,this.getTagsForStencil("mxgraph.flowchart","direct_data","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.display;whiteSpace=wrap;",100,60,"","Display",null,null,this.getTagsForStencil("mxgraph.flowchart","display","").join(" ")),
@ -4755,8 +4756,8 @@ d.vertex=!0;return e.createVertexTemplateFromCells([b,a,d],346,55,"Single-line t
a.vertex=!0;var d=new mxCell("",new mxGeometry(0,45,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#eeeeee;");d.vertex=!0;return e.createVertexTemplateFromCells([b,a,d],346,55,"Single-line text field (normal, light)")}),this.addEntry("gmdl google media design library text field single line text field focus light dark",function(){var b=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#999999;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;textOpacity=80;");
b.vertex=!0;var a=new mxCell("Input text",new mxGeometry(0,20,346,30),"text;fontColor=#999999;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;textOpacity=80;");a.vertex=!0;var d=new mxCell("",new mxGeometry(0,45,346,10),"shape=line;strokeWidth=1;noLabel=1;strokeColor=#999999;dashed=1;dashPattern=1 4;opacity=80;");d.vertex=!0;return e.createVertexTemplateFromCells([b,a,d],346,55,"Single-line text field (normal)")}),this.addEntry("gmdl google media design library text field single line text field focus dark",
function(){var b=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#1F9BFD;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("Input text",new mxGeometry(0,20,346,30),"text;fontColor=#ffffff;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var d=new mxCell("",new mxGeometry(0,45,346,10),"dashed=0;shape=line;strokeWidth=2;noLabel=1;strokeColor=#1F9BFD;");d.vertex=!0;return e.createVertexTemplateFromCells([b,
a,d],346,55,"Single-line text field (normal, dark)")}),this.addEntry("gmdl google media design library text field single line text field focus dark",function(){var b=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#999999;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");b.vertex=!0;var a=new mxCell("Input text",new mxGeometry(0,20,346,30),"text;fontColor=#cccccc;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var d=new mxCell("",
new mxGeometry(0,45,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#999999;");d.vertex=!0;return e.createVertexTemplateFromCells([b,a,d],346,55,"Single-line text field (normal, dark)")}),this.addDataEntry("gmdl google media design library text field full text field",362,56,"Full text field","vVTLboMwEPwaHxMRG2jPJW0urVQph56tsGCrBiPjJqRfX79CQJAKqVFXQvKOd9j1jGVEsqrbKdqwN5mDQOQZkUxJqf2q6jIQAuGI54hsEcaR+RB+ubG7cbtRQxXUegkBe8KRii/wyB6oOjAPt/osApzTloElRYg8tYw2Fldw0D7N5cnkG5toJT8hk0IqxyTgot/54LlmobbgQgwqCxcWl7Xe82/bwszh80Fd5sLgVPCyNpiAws3R0AOvy1eXbdPEQOF4oDR0NyVyUNBnB7ICrc6m5BQmNbskDUIx4CULtCT1GG19XvbUq+BmETSf159M9F+mfNWV9s6syyoX68vxR/riOS9SF0t1wfO6nMPFWieeMtBpk05lumAKBNX8CKN2c9qFju+Sm0FwFOa7KBO6rx7HP5BF0YKeSN+PvciN+B5udP9oxZjwmzHxjDHxXYxZkWTszMPfnTHp9Q305cMn8gc="),
a,d],346,55,"Single-line text field (normal, dark)")}),this.addEntry("gmdl google media design library text field single line text field focus dark",function(){var a=new mxCell("Label text",new mxGeometry(0,0,346,30),"text;fontColor=#999999;fontSize=12;verticalAlign=middle;strokeColor=none;fillColor=none;");a.vertex=!0;var c=new mxCell("Input text",new mxGeometry(0,20,346,30),"text;fontColor=#cccccc;fontSize=16;verticalAlign=middle;strokeColor=none;fillColor=none;");c.vertex=!0;var d=new mxCell("",
new mxGeometry(0,45,346,10),"dashed=0;shape=line;strokeWidth=1;noLabel=1;strokeColor=#999999;");d.vertex=!0;return e.createVertexTemplateFromCells([a,c,d],346,55,"Single-line text field (normal, dark)")}),this.addDataEntry("gmdl google media design library text field full text field",362,56,"Full text field","vVTLboMwEPwaHxMRG2jPJW0urVQph56tsGCrBiPjJqRfX79CQJAKqVFXQvKOd9j1jGVEsqrbKdqwN5mDQOQZkUxJqf2q6jIQAuGI54hsEcaR+RB+ubG7cbtRQxXUegkBe8KRii/wyB6oOjAPt/osApzTloElRYg8tYw2Fldw0D7N5cnkG5toJT8hk0IqxyTgot/54LlmobbgQgwqCxcWl7Xe82/bwszh80Fd5sLgVPCyNpiAws3R0AOvy1eXbdPEQOF4oDR0NyVyUNBnB7ICrc6m5BQmNbskDUIx4CULtCT1GG19XvbUq+BmETSf159M9F+mfNWV9s6syyoX68vxR/riOS9SF0t1wfO6nMPFWieeMtBpk05lumAKBNX8CKN2c9qFju+Sm0FwFOa7KBO6rx7HP5BF0YKeSN+PvciN+B5udP9oxZjwmzHxjDHxXYxZkWTszMPfnTHp9Q305cMn8gc="),
this.addDataEntry("gmdl google media design library text field full text field",362,294,"Full text field","7VjRbpswFP0aHhsZQ2jzmCZbX7ap0ibt2Q0XsGZsZLsp2dfPGJPAICpdoarWWIrEPb4XO+fkXCv2gk1e3klSZF9FDMwLPnnBRgqh66e83ABjHkY09oKthzEyHw9/PjPr21lUEAlcjynAdcGesEeoEVIjSh+YQ2KiMqjykRfcqowUFS5hp+swFk8m9qtAS/ELNoIJaSsDsOM485PGOnO5CWWslZnYUeGC6+/0d7WE2Ucdt/KQHQYnjKbcYAwSu4+C7ChPv9hoGy0NVG37nmgNkts1MQoNugep6Y6wtavXojiV/6iCbWQAR4tJhvIstRZyvN6ByEHLg0l5cl/TzAaRIzgDmmauDK/CGiSqBtJj7Ukp8+DEGhYu6Ak3Tre8TKsf2yLNY7ZoyOuog4eUjOwYSwx+lhg/6vPSYBIY0XQPndcPceVWuBfULIyR20/DxMGFqPsCkSQKdI/q4zZHsR9OwX75htR3C9pChANChJMIcRUsu0rgGZRY/qMSjPLhxnS+iUlQpjG1cycyw2CX8NHrRHCkh6sZSI96pK+JFNxAt8A5aP2yM6TDOBdWmPb54KC/Wn7rpPCj4SMg0zlzUr2teNE04i3DGcS7nqJ3PSqQY6R7cf+KxvQvRw9aLHv9LER9NcJXqtH0s0ZVt/zVLEfLTd9bDw9QcbDJJFUauAJ+8dck/vL9OQy2etcGu/noBmsO1rbDGKOVwQTnQqqLuaYx1/Uc5vL9d+2u+sf1oe3Vv1JYM8MYRt+AKXE5uqZxFw5mcdck1wrzuWvUv9v/yF0mPN0F1untq8I/"),
this.addDataEntry("gmdl google media design library text field inset text field",362,56,"Inset text field","rVTBboMwDP2aHFtB0qKdR7deNmlSDztHYEi0QFDIWtjXLyQphUIrpNYSUvxsY/OeCSJx0ewVrdinTEEg8oZIrKTU7lQ0MQiBcMBTRHYI48A8CL/fiIY2GlRUQamXFGBXcKTiFxxyAKoS5uBat8LDKa0ZdEUBIq81o1WHK0i0c1N5Mn7YOVrJH4ilkMpWErDWR755qpnPzbgQg8zMWofLUh/4X9fCzOH8QV5szeBU8Lw0mIDMzlHRhJf5h/V20dZA/vNAaWhuUmQhz88eZAFatSbl5Cc1URJ5ohjwnPmybeQwWjs/70svhJuD53yefzLhfxnzRZN3O7POi1SsayfZNcN4To3I2lJm8DwzrV+t9daVDJgKoylRZ0yBoJofYdRujj3f8UtyMwgO/Hxnbnz31cv4BTLLatAT8vuxF+mxeYYeR8mT6cLfl+PqV3iKTOOCe6LNbLe/OB4VbUU2Y9XC4HHZjHu5Il368Ab9Bw=="),
this.addDataEntry("gmdl google media design library text field focus card suggestion",362,246,"Focus card suggestions","7VfBjpswEP0ajl0ZA25y7CbtXlpppVbq2Q0DWDWYGieb9Os72CaBhmijLqSXWIrCPM/Y5r1hBoJoVe6fNK+LLyoFGUQfg2illTLuqtyvQMqAEpEG0TqglOAvoJ8uzIZ2ltRcQ2WuCaAuYMflFhySQtOANg5vzEF2OG8KaKNIED02Ba9bXMPGODNVL2iHrWG0+gkrJZW2kRHYcZz5LlJTeN9MSNnzzOxocVWZr+J3uwWew9k9P2IH4lyKvEJMQmbPUfONqPLP1lqzBKH22M/cGNCV3ZOSGNEd3qHYcPnBxxtVn8K/tcaaIeDJQWfYXyTYQp7dJ1AlGH1Alxd/mzgbMU9zASIvfBiNmQN544D8GHvSCy+8ZOPyRWfyXadbuc/blHvIy1Q+dOQN1KFjSjI7riWGvkpMyM556TANkhuxg8HyY1z5HZ6VwI0p8efpmDh4kwwXUFnWgDmj+njMq9iPp2B/f0PqhwF9IeIRIeJJhHgXJUMl6AxKJP+ohBTVeGG6XMQ0NFiY+r4TPQyjVSIkbxPBkx4vZyCdTdM7BkxXygrS7wse+qvU9zpEyMZLf2FK2fWZYf9Y2nFzMePFJGIm8Qxivr8sJqYgkx3naG6ORLJf2/ZF5fHUknsQy9v/H1x34XgEt4KbuWfJrFkSkjkK7WKmNGkKfOm658n/yJNkjlej5Ux5ghQbvtXcpsc9W26fLcvF27MFzdMXrnPvfwD/AQ==")];
@ -4789,7 +4790,7 @@ e).join(" "))];this.addPalette("ibmDevOps","IBM / DevOps",!1,mxUtils.bind(this,f
"interservice_communication.svg;",a,a,"","Interservice Communication",!1,null,this.getTagsForStencil("infrastructure","interservice communication",e).join(" ")),this.createVertexTemplateEntry(b+"load_balancing_routing.svg;",a,a,"","Load Balancing / Routing",!1,null,this.getTagsForStencil("infrastructure","load balancing routing",e).join(" ")),this.createVertexTemplateEntry(b+"microservices_mesh.svg;",a,a,"","Microservices Mesh",!1,null,this.getTagsForStencil("infrastructure","microservices mesh",
e).join(" ")),this.createVertexTemplateEntry(b+"mobile_backend.svg;",a,a,"","Mobile Backend",!1,null,this.getTagsForStencil("infrastructure","mobile backend",e).join(" ")),this.createVertexTemplateEntry(b+"mobile_provider_network.svg;",a,a,"","Mobile Provider Network",!1,null,this.getTagsForStencil("infrastructure","mobile provider network",e).join(" ")),this.createVertexTemplateEntry(b+"monitoring.svg;",a,a,"","Monitoring",!1,null,this.getTagsForStencil("infrastructure","monitoring",e).join(" ")),
this.createVertexTemplateEntry(b+"monitoring_logging.svg;",a,a,"","Monitoring & Logging",!1,null,this.getTagsForStencil("infrastructure","monitoring logging",e).join(" ")),this.createVertexTemplateEntry(b+"peer_services.svg;",a,a,"","Peer Services",!1,null,this.getTagsForStencil("infrastructure","peer services",e).join(" ")),this.createVertexTemplateEntry(b+"service_discovery_configuration.svg;",a,a,"","Service Discovery & Configuration",!1,null,this.getTagsForStencil("infrastructure","service discovery configuration",
e).join(" ")),this.createVertexTemplateEntry(b+"transformation_connectivity.svg;",a,a,"","Transformation & Connectivity",!1,null,this.getTagsForStencil("infrastructure","transformation connectivity",e).join(" "))];this.addPalette("ibmInfrastructure","IBM / Infrastructure",!1,mxUtils.bind(this,function(b){for(var a=0;a<c.length;a++)b.appendChild(c[a](b))}))};Sidebar.prototype.addIBMManagementPalette=function(a,e,d,b){b+="management/";var c=[this.createVertexTemplateEntry(b+"alert_notification.svg;",
e).join(" ")),this.createVertexTemplateEntry(b+"transformation_connectivity.svg;",a,a,"","Transformation & Connectivity",!1,null,this.getTagsForStencil("infrastructure","transformation connectivity",e).join(" "))];this.addPalette("ibmInfrastructure","IBM / Infrastructure",!1,mxUtils.bind(this,function(a){for(var b=0;b<c.length;b++)a.appendChild(c[b](a))}))};Sidebar.prototype.addIBMManagementPalette=function(a,e,d,b){b+="management/";var c=[this.createVertexTemplateEntry(b+"alert_notification.svg;",
a,a,"","Alert Notification",!1,null,this.getTagsForStencil("management","alert notification",e).join(" ")),this.createVertexTemplateEntry(b+"api_management.svg;",a,a,"","API Management",!1,null,this.getTagsForStencil("management","api management",e).join(" ")),this.createVertexTemplateEntry(b+"cloud_management.svg;",a,a,"","Cloud Management",!1,null,this.getTagsForStencil("management","cloud management",e).join(" ")),this.createVertexTemplateEntry(b+"cluster_management.svg;",a,a,"","Cluster Management",
!1,null,this.getTagsForStencil("management","cluster management",e).join(" ")),this.createVertexTemplateEntry(b+"content_management.svg;",a,a,"","Content Management",!1,null,this.getTagsForStencil("management","content management",e).join(" ")),this.createVertexTemplateEntry(b+"data_services.svg;",a,a,"","Data Services",!1,null,this.getTagsForStencil("management","data services",e).join(" ")),this.createVertexTemplateEntry(b+"device_management.svg;",a,a,"","Device Management",!1,null,this.getTagsForStencil("management",
"device management",e).join(" ")),this.createVertexTemplateEntry(b+"information_governance.svg;",a,a,"","Information Governance",!1,null,this.getTagsForStencil("management","information governance",e).join(" ")),this.createVertexTemplateEntry(b+"it_service_management.svg;",a,a,"","IT Service Management",!1,null,this.getTagsForStencil("management","it service management information technology",e).join(" ")),this.createVertexTemplateEntry(b+"management.svg;",a,a,"","Management",!1,null,this.getTagsForStencil("management",
@ -4799,7 +4800,7 @@ Sidebar.prototype.addIBMMiscPalette=function(a,e,d,b){b+="miscellaneous/";var c=
e).join(" ")),this.createVertexTemplateEntry(b+"ibm_containers.svg;",a,a,"","IBM Containers",!1,null,this.getTagsForStencil("miscellaneous","ibm containers",e).join(" ")),this.createVertexTemplateEntry(b+"ibm_public_cloud.svg;",a,.77*a,"","IBM Public Cloud",!1,null,this.getTagsForStencil("miscellaneous","ibm public cloud",e).join(" ")),this.createVertexTemplateEntry(b+"iot_cloud.svg;",a,.77*a,"","IoT Cloud",!1,null,this.getTagsForStencil("miscellaneous","iot cloud internet of things",e).join(" ")),
this.createVertexTemplateEntry(b+"microservices_application.svg;",a,a,"","Microservices Application",!1,null,this.getTagsForStencil("miscellaneous","microservices application",e).join(" ")),this.createVertexTemplateEntry(b+"object_storage.svg;",a,a,"","Object Storage",!1,null,this.getTagsForStencil("miscellaneous","object storage",e).join(" ")),this.createVertexTemplateEntry(b+"offline_capabilities.svg;",a,a,"","Offline Capabilities",!1,null,this.getTagsForStencil("miscellaneous","offline capabilities",
e).join(" ")),this.createVertexTemplateEntry(b+"openwhisk.svg;",a,a,"","Openwhisk",!1,null,this.getTagsForStencil("miscellaneous","openwhisk",e).join(" ")),this.createVertexTemplateEntry(b+"peer_cloud.svg;",a,.77*a,"","Peer Cloud",!1,null,this.getTagsForStencil("miscellaneous","peer cloud",e).join(" ")),this.createVertexTemplateEntry(b+"retrieve_rank.svg;",a,a,"","Retrieve Rank",!1,null,this.getTagsForStencil("miscellaneous","retrieve rank",e).join(" ")),this.createVertexTemplateEntry(b+"scalable.svg;",
.25*a,.25*a,"","Scalable",!1,null,this.getTagsForStencil("miscellaneous","scalable",e).join(" ")),this.createVertexTemplateEntry(b+"text_to_speech.svg;",a,a,"","Text to Speech",!1,null,this.getTagsForStencil("miscellaneous","text to speech",e).join(" "))];this.addPalette("ibmMiscellaneous","IBM / Miscellaneous",!1,mxUtils.bind(this,function(b){for(var a=0;a<c.length;a++)b.appendChild(c[a](b))}))};Sidebar.prototype.addIBMSecurityPalette=function(a,e,d,b){b+="security/";var c=[this.createVertexTemplateEntry(b+
.25*a,.25*a,"","Scalable",!1,null,this.getTagsForStencil("miscellaneous","scalable",e).join(" ")),this.createVertexTemplateEntry(b+"text_to_speech.svg;",a,a,"","Text to Speech",!1,null,this.getTagsForStencil("miscellaneous","text to speech",e).join(" "))];this.addPalette("ibmMiscellaneous","IBM / Miscellaneous",!1,mxUtils.bind(this,function(a){for(var b=0;b<c.length;b++)a.appendChild(c[b](a))}))};Sidebar.prototype.addIBMSecurityPalette=function(a,e,d,b){b+="security/";var c=[this.createVertexTemplateEntry(b+
"api_security.svg;",a,a,"","API Security",!1,null,this.getTagsForStencil("security","api security",e).join(" ")),this.createVertexTemplateEntry(b+"blockchain_security_service.svg;",a,a,"","Blockchain Security Service",!1,null,this.getTagsForStencil("security","blockchain security service",e).join(" ")),this.createVertexTemplateEntry(b+"data_security.svg;",a,a,"","Data Security",!1,null,this.getTagsForStencil("security","data security",e).join(" ")),this.createVertexTemplateEntry(b+"firewall.svg;",
a,a,"","Firewall",!1,null,this.getTagsForStencil("security","firewall",e).join(" ")),this.createVertexTemplateEntry(b+"gateway.svg;",a,a,"","Gateway",!1,null,this.getTagsForStencil("security","gateway",e).join(" ")),this.createVertexTemplateEntry(b+"governance_risk_compliance.svg;",a,a,"","Governance, Risk & Compliance",!1,null,this.getTagsForStencil("security","governance risk compliance",e).join(" ")),this.createVertexTemplateEntry(b+"identity_access_management.svg;",a,a,"","Identity & Access Management",
!1,null,this.getTagsForStencil("security","identity access management",e).join(" ")),this.createVertexTemplateEntry(b+"identity_provider.svg;",a,a,"","Identity Provider",!1,null,this.getTagsForStencil("security","identity provider",e).join(" ")),this.createVertexTemplateEntry(b+"infrastructure_security.svg;",a,a,"","Infrastructure Security",!1,null,this.getTagsForStencil("security","infrastructure security",e).join(" ")),this.createVertexTemplateEntry(b+"physical_security.svg;",a,a,"","Physical Security",
@ -5660,7 +5661,32 @@ this.createVertexTemplateEntry("strokeColor=#666666;html=1;labelPosition=right;a
168,40,"","BIG-IP 10x00",null,null,"rack equipment big ip"),this.createVertexTemplateEntry("strokeColor=#666666;html=1;labelPosition=right;align=left;spacingLeft=15;shadow=0;dashed=0;fillColor=#ffffff;shape=mxgraph.rack.f5.big_ip_110x0;",168,60,"","BIG-IP 110x0",null,null,"rack equipment big ip"),this.createVertexTemplateEntry("strokeColor=#666666;html=1;labelPosition=right;align=left;spacingLeft=15;shadow=0;dashed=0;fillColor=#ffffff;shape=mxgraph.rack.f5.em_4000;",168,20,"","EM 4000",null,null,
"rack equipment big ip"),this.createVertexTemplateEntry("strokeColor=#666666;html=1;labelPosition=right;align=left;spacingLeft=15;shadow=0;dashed=0;fillColor=#ffffff;shape=mxgraph.rack.f5.firepass_1200;",168,20,"","FirePass 1200",null,null,"rack equipment big ip"),this.createVertexTemplateEntry("strokeColor=#666666;html=1;labelPosition=right;align=left;spacingLeft=15;shadow=0;dashed=0;fillColor=#ffffff;shape=mxgraph.rack.f5.firepass_4100;",168,40,"","FirePass 4100",null,null,"rack equipment big ip"),
this.createVertexTemplateEntry("strokeColor=#666666;html=1;labelPosition=right;align=left;spacingLeft=15;shadow=0;dashed=0;fillColor=#ffffff;shape=mxgraph.rack.f5.viprion_2400;",168,60,"","VIPRION 2400",null,null,"rack equipment big ip"),this.createVertexTemplateEntry("strokeColor=#666666;html=1;labelPosition=right;align=left;spacingLeft=15;shadow=0;dashed=0;fillColor=#ffffff;shape=mxgraph.rack.f5.viprion_4400;",168,120,"","VIPRION 4400",null,null,"rack equipment big ip"),this.createVertexTemplateEntry("strokeColor=#666666;html=1;labelPosition=right;align=left;spacingLeft=15;shadow=0;dashed=0;fillColor=#ffffff;shape=mxgraph.rack.f5.viprion_4800;",
168,320,"","VIPRION 4800",null,null,"rack equipment big ip")])}})();(function(){Sidebar.prototype.addSysMLModelElementsPalette=function(a){var e=this,d=[this.addDataEntry("sysml model element comment",180,80,"Comment","1ZS7bsMgFIafhrXCOJGytk6bpZUqZWlHFE4NEgYLn8ROn74Hg5I4FylDlg6W///cgM8WrKyaYRVkqz+8AsvKV1ZWwXtMqhkqsJYJbhQrl0wITg8TbzeyxZjlrQzg8J4GkRp20m4hRSrfNLFZcIQBU7rDvc3pTss2SueRXi+d+Y2umJOW1tSOjIUfjKlWboyr30e3LDiFNDY2apK9NghrKontPZ2fYnkvEGjlm+cZQ/kwK/ANYNhTyT5lZ+m4vDcKdW6Y55gGU2uc1sku+fow6QiLROZ1nV15we6CFqga1tk67yIxcOo5BN+fRAaDX2T50yy77+hIK9lpUJnYCby0Thw+wdT5bdjA5MPeQW6KOoCVaHbTwdco5UGf3ow/S54izriiDDVgLjpDe9jDXbRnD6e9+Pe0i8WjcJM9Xjqp/PRO+gM="),
168,320,"","VIPRION 4800",null,null,"rack equipment big ip")])}})();(function(){Sidebar.prototype.addSitemapPalette=function(){var a=[this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.page;",120,70,"Page","Page",null,null,this.getTagsForStencil("mxgraph.sitemap","page","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.about_us;",
120,70,"About us","About us",null,null,this.getTagsForStencil("mxgraph.sitemap","about","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.audio;",120,70,"Audio","Audio",null,null,this.getTagsForStencil("mxgraph.sitemap","audio","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.biography;",
120,70,"Biography","Biography",null,null,this.getTagsForStencil("mxgraph.sitemap","biography","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.blog;",120,70,"Blog","Blog",null,null,this.getTagsForStencil("mxgraph.sitemap","blog","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.calendar;",
120,70,"Calendar","Calendar",null,null,this.getTagsForStencil("mxgraph.sitemap","calendar","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.chart;",120,70,"Chart","Chart",null,null,this.getTagsForStencil("mxgraph.sitemap","chart","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.chat;",
120,70,"Chat","Chat",null,null,this.getTagsForStencil("mxgraph.sitemap","chat","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.cloud;",120,70,"Cloud","Cloud",null,null,this.getTagsForStencil("mxgraph.sitemap","cloud","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.contact;",
120,70,"Contact","Contact",null,null,this.getTagsForStencil("mxgraph.sitemap","contact","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.contact_us;",120,70,"Contact us","Contact us",null,null,this.getTagsForStencil("mxgraph.sitemap","contact","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.document;",
120,70,"Document","Document",null,null,this.getTagsForStencil("mxgraph.sitemap","document","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.download;",120,70,"Download","Download",null,null,this.getTagsForStencil("mxgraph.sitemap","download","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.error;",
120,70,"Error","Error",null,null,this.getTagsForStencil("mxgraph.sitemap","error","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.faq;",120,70,"FAQ","FAQ",null,null,this.getTagsForStencil("mxgraph.sitemap","faq frequently asked questions","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.form;",
120,70,"Form","Form",null,null,this.getTagsForStencil("mxgraph.sitemap","form","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.gallery;",120,70,"Gallery","Gallery",null,null,this.getTagsForStencil("mxgraph.sitemap","gallery","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.game;",
120,70,"Game","Game",null,null,this.getTagsForStencil("mxgraph.sitemap","game","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.home;",120,70,"Home","Home",null,null,this.getTagsForStencil("mxgraph.sitemap","home","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.info;",
120,70,"Info","Info",null,null,this.getTagsForStencil("mxgraph.sitemap","info","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.jobs;",120,70,"Jobs","Jobs",null,null,this.getTagsForStencil("mxgraph.sitemap","jobs","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.log;",
120,70,"Log","Log",null,null,this.getTagsForStencil("mxgraph.sitemap","log","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.login;",120,70,"Login","Login",null,null,this.getTagsForStencil("mxgraph.sitemap","login","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.mail;",
120,70,"Mail","Mail",null,null,this.getTagsForStencil("mxgraph.sitemap","mail","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.map;",120,70,"Map","Map",null,null,this.getTagsForStencil("mxgraph.sitemap","map","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.news;",
120,70,"News","News",null,null,this.getTagsForStencil("mxgraph.sitemap","news","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.payment;",120,70,"Payment","Payment",null,null,this.getTagsForStencil("mxgraph.sitemap","payment","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.photo;",
120,70,"Photo","Photo",null,null,this.getTagsForStencil("mxgraph.sitemap","photo","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.portfolio;",120,70,"Portfolio","Portfolio",null,null,this.getTagsForStencil("mxgraph.sitemap","portfolio","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.post;",
120,70,"Post","Post",null,null,this.getTagsForStencil("mxgraph.sitemap","post","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.pricing;",120,70,"Pricing","Pricing",null,null,this.getTagsForStencil("mxgraph.sitemap","pricing","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.print;",
120,70,"Print","Print",null,null,this.getTagsForStencil("mxgraph.sitemap","print","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.products;",120,70,"Products","Products",null,null,this.getTagsForStencil("mxgraph.sitemap","products","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.profile;",
120,70,"Profile","Profile",null,null,this.getTagsForStencil("mxgraph.sitemap","profile","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.references;",120,70,"References","References",null,null,this.getTagsForStencil("mxgraph.sitemap","references","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.script;",
120,70,"Script","Script",null,null,this.getTagsForStencil("mxgraph.sitemap","script","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.search;",120,70,"Search","Search",null,null,this.getTagsForStencil("mxgraph.sitemap","search","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.security;",
120,70,"Security","Security",null,null,this.getTagsForStencil("mxgraph.sitemap","security","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.services;",120,70,"Services","Services",null,null,this.getTagsForStencil("mxgraph.sitemap","services","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.settings;",
120,70,"Settings","Settings",null,null,this.getTagsForStencil("mxgraph.sitemap","settings","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.shopping;",120,70,"Shopping","Shopping",null,null,this.getTagsForStencil("mxgraph.sitemap","shopping","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.sitemap;",
120,70,"Sitemap","Sitemap",null,null,this.getTagsForStencil("mxgraph.sitemap","sitemap","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.slideshow;",120,70,"Slideshow","Slideshow",null,null,this.getTagsForStencil("mxgraph.sitemap","slideshow","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.sports;",
120,70,"Sports","Sports",null,null,this.getTagsForStencil("mxgraph.sitemap","sports","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.success;",120,70,"Success","Success",null,null,this.getTagsForStencil("mxgraph.sitemap","success","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.text;",
120,70,"Text","Text",null,null,this.getTagsForStencil("mxgraph.sitemap","text","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.upload;",120,70,"Upload","Upload",null,null,this.getTagsForStencil("mxgraph.sitemap","upload","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.user;",
120,70,"User","User",null,null,this.getTagsForStencil("mxgraph.sitemap","user","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.video;",120,70,"Video","Video",null,null,this.getTagsForStencil("mxgraph.sitemap","video","").join(" ")),this.createVertexTemplateEntry("html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.warning;",
120,70,"Warning","Warning",null,null,this.getTagsForStencil("mxgraph.sitemap","warning","").join(" "))];this.addPalette("sitemap","Sitemap",!1,mxUtils.bind(this,function(e){for(var d=0;d<a.length;d++)e.appendChild(a[d](e))}))}})();(function(){Sidebar.prototype.addSysMLModelElementsPalette=function(a){var e=this,d=[this.addDataEntry("sysml model element comment",180,80,"Comment","1ZS7bsMgFIafhrXCOJGytk6bpZUqZWlHFE4NEgYLn8ROn74Hg5I4FylDlg6W///cgM8WrKyaYRVkqz+8AsvKV1ZWwXtMqhkqsJYJbhQrl0wITg8TbzeyxZjlrQzg8J4GkRp20m4hRSrfNLFZcIQBU7rDvc3pTss2SueRXi+d+Y2umJOW1tSOjIUfjKlWboyr30e3LDiFNDY2apK9NghrKontPZ2fYnkvEGjlm+cZQ/kwK/ANYNhTyT5lZ+m4vDcKdW6Y55gGU2uc1sku+fow6QiLROZ1nV15we6CFqga1tk67yIxcOo5BN+fRAaDX2T50yy77+hIK9lpUJnYCby0Thw+wdT5bdjA5MPeQW6KOoCVaHbTwdco5UGf3ow/S54izriiDDVgLjpDe9jDXbRnD6e9+Pe0i8WjcJM9Xjqp/PRO+gM="),
this.addDataEntry("sysml model element constraint note",180,80,"Constraint Note","1ZQxb8IwEIV/jVcUO1BYIaUsVKrE0o4WvsaWHDtyDEn663uOLSAUJAaWDlHuPd8921+kkLyouo3jtXy3AjTJ1yQvnLU+VlVXgNaEZUqQ/JUwluFD2NudVTqsZjV3YPwjAywOHLk+QHTIfFVQki/RxXJLyRzdbE0nXXDYS4m5q+CwST+shfnG9zrNN5LXoTTW42vVqJ+g6AxrrlVpUGj4DiFNzffKlNtBvdIMLekrHWosW6k87LAljLcIaNh2OCw4D93dCw9Wuu0GbAXe9djSx9Vp5JG1SniZBmbJk6BK6cd9vIm6PCWdaWKRgN6Gm/+Fe00LRAm7JI01gRgYsXTOthdOp/wnymwyTeorKKwFbySIROwCXtwnhI8wNfbg9jD68g+QG6N2oLlXx3HwLUop6MMqzD+lsCuunrsSfGq6Qns6w0O0p0+nvfj3tOniWbhRnv9Ksf3yp/UL"),
this.addDataEntry("sysml model element constraint textual note",160,60,"Constraint Textual Note","lVNNb8MgDP01SNuNgtSel6TrZZMm9bAzTdyASiAidEn362cCaZV+SN0ByX72g+dnQXjeDBsnWvlpK9CErwnPnbU+Rs2Qg9aEUVURXhDGKB7C3h9UF2OVtsKB8c8QWCT8CH2EiKw1NEjGm5aE8QUlPHsR5oRNdVCpShH4BsW+Rm7nTzpxOynaEDoo8fWs884e4FtVXiLIENlb47epf4G59I1OYS+Vh20rylDr8SnEhFa1wbREQeAQSGrBeRgeTjxCadwN2Aa8C/L7pCN0LKMrVIKqZaJNmOhiXp+pF/8wSBbet5Pf2ElWWWkNOiEU6mMUhXuyKm6sm0bVsPdzY8K0wfW31NGoqgqsTIsd6C/bKa9sKLg4y5nwcVWfEzNRHmpnj6bKrbZobmGsgWlH6ndcUbIEJzC4UrGb1NKnFsHuL2K4WsIpefd//zG9fJWxNvtJfw=="),
this.addDataEntry("sysml model element constraint textual note",160,0,"Constraint Textual Note","lVNBbsIwEHyNj5WMI5UzCS2nSpU49GySJVg4XuQsNPD6rmNDSBskerDkHc+s7RlbZEXTrbw+7D6wAiuyN5EVHpHirOkKsFYoaSqRLYVSkodQ7w9WZ/2qPGgPjp4RqCg4aXuEiIh5XqJryWvDLZQk6EjMl5HX0tkm3gk8mVLbhTW1Y2iDRNiILN9Rw9dYzngKrlp4j99cOnQQkKqGdWqSIKs3YHNd7muPR1cVaNEPq1t0tDaXwJ9JrvlguIcvU9GOIcVIPFlo/NCDHkoGrAAbIH9migeryZzGOt3Gsr7xbtJPjJZcKS0efQkJvTf5SuxS51c57k3a10B/hDy5O98A9ZlN55dN5adduF0dHlVIqDeD7ZoI0UNrLnrTl3KcnU65Wtiyi/nvuAkP/84ubs+vy0FJadfbC5VhB+geZqimM0yCl6R4OtKR54PBXA6fL+Zx/zd/AA=="),
@ -6275,8 +6301,8 @@ w);v.style.marginRight="20px";v.style.marginLeft="10px";v.style.width=b?"220px":
function(){var b=new FilenameDialog(a,"",mxResources.get("create"),function(b){null!=b&&0<b.length&&(b=a.getUrl(window.location.pathname+"?mode="+a.mode+"&title="+encodeURIComponent(v.value)+"&create="+encodeURIComponent(b)),null==a.getCurrentFile()?window.location.href=b:window.openWindow(b))},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()}),b.className="geBtn",k.appendChild(b));k.appendChild(E);a.editor.cancelFirst||null!=c||e&&null==f||k.appendChild(z);q.appendChild(k);
this.container=q},CreateDialog=function(a,b,d,c,e,f,h,l,m,g,k,n,p,u,t){function q(c,d,g,k){function e(){mxEvent.addListener(v,"click",function(){var c=g;if(h){var d=x.value,k=d.lastIndexOf(".");if(0>b.lastIndexOf(".")&&0>k){var c=null!=c?c:E.value,n="";c==App.MODE_GOOGLE?n=a.drive.extension:c==App.MODE_GITHUB?n=a.gitHub.extension:c==App.MODE_TRELLO?n=a.trello.extension:c==App.MODE_DROPBOX?n=a.dropbox.extension:c==App.MODE_ONEDRIVE?n=a.oneDrive.extension:c==App.MODE_DEVICE&&(n=".xml");0<=k&&(d=d.substring(0,
k));x.value=d+n}}z(g)})}var v=document.createElement("a");v.style.overflow="hidden";var f=document.createElement("img");f.src=c;f.setAttribute("border","0");f.setAttribute("align","absmiddle");f.style.width="60px";f.style.height="60px";f.style.paddingBottom="6px";v.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";v.className="geBaseButton";v.style.position="relative";v.style.margin="4px";v.style.padding="8px 8px 10px 8px";v.style.whiteSpace="nowrap";v.appendChild(f);mxClient.IS_QUIRKS&&(v.style.cssFloat=
"left",v.style.zoom="1");v.style.color="gray";v.style.fontSize="11px";var q=document.createElement("div");v.appendChild(q);mxUtils.write(q,d);if(null!=k&&null==a[k]){f.style.visibility="hidden";mxUtils.setOpacity(q,10);var p=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});p.spin(v);var u=window.setTimeout(function(){null==a[k]&&(p.stop(),v.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,
function(){null!=a[k]&&(window.clearTimeout(u),mxUtils.setOpacity(q,100),f.style.visibility="",p.stop(),e())}))}else e();y.appendChild(v);++A==n&&(mxUtils.br(y),A=0)}function z(b){var c=x.value;if(null==b||null!=c&&0<c.length)a.hideDialog(),d(c,b)}h=null!=h?h:!0;l=null!=l?l:!0;n=null!=n?n:3;var w=document.createElement("div");null==c&&a.addLanguageMenu(w);var v=document.createElement("h2");mxUtils.write(v,e||mxResources.get("create"));v.style.marginTop="0px";v.style.marginBottom="24px";w.appendChild(v);
"left",v.style.zoom="1");v.style.color="gray";v.style.fontSize="11px";var q=document.createElement("div");v.appendChild(q);mxUtils.write(q,d);if(null!=k&&null==a[k]){f.style.visibility="hidden";mxUtils.setOpacity(q,10);var p=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});p.spin(v);var l=window.setTimeout(function(){null==a[k]&&(p.stop(),v.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,
function(){null!=a[k]&&(window.clearTimeout(l),mxUtils.setOpacity(q,100),f.style.visibility="",p.stop(),e())}))}else e();y.appendChild(v);++A==n&&(mxUtils.br(y),A=0)}function z(b){var c=x.value;if(null==b||null!=c&&0<c.length)a.hideDialog(),d(c,b)}h=null!=h?h:!0;l=null!=l?l:!0;n=null!=n?n:3;var w=document.createElement("div");null==c&&a.addLanguageMenu(w);var v=document.createElement("h2");mxUtils.write(v,e||mxResources.get("create"));v.style.marginTop="0px";v.style.marginBottom="24px";w.appendChild(v);
mxUtils.write(w,mxResources.get("filename")+":");var x=document.createElement("input");x.setAttribute("value",b);x.style.width="280px";x.style.marginLeft="10px";x.style.marginBottom="20px";this.init=function(){x.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?x.select():document.execCommand("selectAll",!1,null)};w.appendChild(x);null!=p&&null!=u&&"image/"==u.substring(0,6)&&(x.style.width="160px",e=document.createElement("img"),e.setAttribute("src","data:"+u+(t?
";base64,":";utf8,")+p),e.style.position="absolute",e.style.top="70px",e.style.right="100px",e.style.maxWidth="120px",e.style.maxHeight="80px",mxUtils.setPrefixedStyle(e.style,"transform","translate(50%,-50%)"),w.appendChild(e),m&&(e.style.cursor="pointer",mxEvent.addListener(e,"click",function(){z("_blank")})));mxUtils.br(w);var y=document.createElement("div");y.style.textAlign="center";var A=0;y.style.marginTop="6px";w.appendChild(y);var E=document.createElement("select");E.style.marginLeft="10px";
a.isOfflineApp()||a.isOffline()||("function"===typeof window.DriveClient&&(p=document.createElement("option"),p.setAttribute("value",App.MODE_GOOGLE),mxUtils.write(p,mxResources.get("googleDrive")),E.appendChild(p),q(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive")),null!=a.gitHub&&(p=document.createElement("option"),p.setAttribute("value",App.MODE_GITHUB),mxUtils.write(p,mxResources.get("github")),E.appendChild(p),q(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),
@ -6487,7 +6513,7 @@ mxEvent.addListener(R,"focus",function(){O.checked=!0});mxEvent.addListener(V,"f
"12px";mxUtils.write(n,mxResources.get("paperSize"));h.appendChild(n);n=document.createElement("div");n.style.marginBottom="12px";var T=PageSetupDialog.addPageFormatPanel(n,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);h.appendChild(n);n=document.createElement("span");mxUtils.write(n,mxResources.get("pageScale"));h.appendChild(n);var S=document.createElement("input");S.style.cssText="margin:0 8px 0 8px;";S.setAttribute("value","100 %");S.style.width="60px";h.appendChild(S);
k.appendChild(h);n=document.createElement("div");n.style.cssText="text-align:right;margin:62px 0 0 0;";h=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});h.className="geBtn";a.editor.cancelFirst&&n.appendChild(h);a.isOffline()||(m=mxUtils.button(mxResources.get("help"),function(){window.open("https://desk.draw.io/support/solutions/articles/16000048947")}),m.className="geBtn",n.appendChild(m));PrintDialog.previewEnabled&&(m=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();
d(!1)}),m.className="geBtn",n.appendChild(m));m=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});m.className="geBtn gePrimaryBtn";n.appendChild(m);a.editor.cancelFirst||n.appendChild(h);k.appendChild(n);this.container=k}})();function ChangeShadow(a,b){this.ui=a;this.previous=this.visible=b}ChangeShadow.prototype.execute=function(){this.visible=this.previous;this.previous=this.ui.editor.graph.shadowVisible;this.ui.editor.graph.setShadowVisible(this.visible)};
(function(){var a=new mxObjectCodec(new ChangeShadow,["ui","previous"]);a.afterDecode=function(a,d,c){c.previous=c.visible;return c};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="7.7.6";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";
(function(){var a=new mxObjectCodec(new ChangeShadow,["ui","previous"]);a.afterDecode=function(a,d,c){c.previous=c.visible;return c};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="7.7.7";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";
EditorUi.prototype.mode=null;EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;";EditorUi.prototype.maxBackgroundSize=1600;
EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport=!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas"),b=new Image;b.onload=function(){try{a.getContext("2d").drawImage(b,
0,0);var c=a.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=c&&6<c.length}catch(u){}};b.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(p){}try{a=document.createElement("canvas");a.width=a.height=1;var c=
@ -6621,8 +6647,8 @@ c[k].indexOf(")");e.push('url("');e.push(g[b(c[k].substring(0,f))]);e.push('"'+c
function(a){d--;e()}),!0,null,"data:"+b+";charset=utf-8;base64,")}})(b(c[f].substring(0,h)),l)}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,f,h,l,m,v,x,y,A,E){f=null!=f?f:!0;y=null!=y?y:this.editor.graph;A=null!=A?A:0;var g=m?null:y.background;g==mxConstants.NONE&&(g=null);null==g&&(g=d);null==g&&0==m&&(g="#ffffff");this.convertImages(y.getSvg(g,null,null,E,null,null!=h?h:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){try{var k=document.createElement("canvas"),
n=parseInt(c.getAttribute("width")),h=parseInt(c.getAttribute("height"));l=null!=l?l:1;null!=b&&(l=f?Math.min(1,Math.min(3*b/(4*h),b/n)):b/n);n=Math.ceil(l*n)+2*A;h=Math.ceil(l*h)+2*A;k.setAttribute("width",n);k.setAttribute("height",h);var m=k.getContext("2d");null!=g&&(m.beginPath(),m.rect(0,0,n,h),m.fillStyle=g,m.fill());m.scale(l,l);m.drawImage(d,A/l,A/l);a(k)}catch(U){null!=e&&e(U)}});d.onerror=function(a){null!=e&&e(a)};try{v&&this.editor.graph.addSvgShadow(c);var k=mxUtils.bind(this,function(){if(null!=
this.editor.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.editor.resolvedFontCss;c.getElementsByTagName("defs")[0].appendChild(a)}this.convertMath(y,c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))});this.loadFonts(k)}catch(H){null!=e&&e(H)}}),c,x)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert;a.convert=function(c){null!=c&&("http://"!=
c.substring(0,7)&&"https://"!=c.substring(0,8)||c.substring(0,a.baseUrl.length)==a.baseUrl?"chrome-extension://"!=c.substring(0,19)&&(c=b.apply(this,arguments)):c=PROXY_URL+"?url="+encodeURIComponent(c));return c};return a};EditorUi.prototype.convertImages=function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var g=0,e=c||{};c=mxUtils.bind(this,function(c,k){for(var f=a.getElementsByTagName(c),n=0;n<f.length;n++)mxUtils.bind(this,function(c){var f=d.convert(c.getAttribute(k));if(null!=f&&
"data:"!=f.substring(0,5)){var n=e[f];null==n?(g++,this.convertImageToDataUri(f,function(d){null!=d&&(e[f]=d,c.setAttribute(k,d));g--;0==g&&b(a)})):c.setAttribute(k,n)}})(f[n])});c("image","xlink:href");c("img","src");0==g&&b(a)};EditorUi.prototype.loadUrl=function(a,b,c,d,e,f){try{var g=d||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a);e=null!=e?e:!0;var k=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=
c.substring(0,7)&&"https://"!=c.substring(0,8)||c.substring(0,a.baseUrl.length)==a.baseUrl?"chrome-extension://"!=c.substring(0,19)&&(c=b.apply(this,arguments)):c=PROXY_URL+"?url="+encodeURIComponent(c));return c};return a};EditorUi.prototype.convertImages=function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,g=c||{};c=mxUtils.bind(this,function(c,k){for(var f=a.getElementsByTagName(c),n=0;n<f.length;n++)mxUtils.bind(this,function(c){var f=d.convert(c.getAttribute(k));if(null!=f&&
"data:"!=f.substring(0,5)){var n=g[f];null==n?(e++,this.convertImageToDataUri(f,function(d){null!=d&&(g[f]=d,c.setAttribute(k,d));e--;0==e&&b(a)})):c.setAttribute(k,n)}})(f[n])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.loadUrl=function(a,b,c,d,e,f){try{var g=d||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a);e=null!=e?e:!0;var k=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=
b){var d=a.getText();if(g){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var d=Array(a.length),e=0;e<a.length;e++)d[e]=String.fromCharCode(a[e]);d=d.join("")}f=null!=f?f:"data:image/png;base64,";d=f+this.base64Encode(d)}b(d)}}else null!=c&&c({code:App.ERROR_UNKNOWN},a)}),function(){null!=c&&c({code:App.ERROR_UNKNOWN})},g,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,
retry:k})})});k()}catch(w){null!=c&&c(w)}};EditorUi.prototype.isCorsEnabledForUrl=function(a){return"https?://raw.githubusercontent.com/"===a.substring(0,34)||/^https?:\/\/.*\.github\.io\//.test(a)||/^https?:\/\/(.*\.)?rawgit\.com\//.test(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b()});else{var c=new Image;c.onload=function(){var a=document.createElement("canvas"),
d=a.getContext("2d");a.height=c.height;a.width=c.width;d.drawImage(c,0,0);b(a.toDataURL())};c.onerror=function(){b()};c.src=a}};EditorUi.prototype.importXml=function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var g=[];try{var k=this.editor.graph;if(null!=a&&0<a.length){var f=mxUtils.parseXml(a),n=this.editor.extractGraphModel(f.documentElement,null!=this.pages);if(null!=n&&"mxfile"==n.nodeName&&null!=this.pages){var h=n.getElementsByTagName("diagram");if(1==h.length)n=mxUtils.parseXml(k.decompress(mxUtils.getTextContent(h[0]))).documentElement;
@ -6690,8 +6716,8 @@ b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"drago
"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files,!0);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,
"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)?(c=this.extractGraphModelFromPng(c),null!=c&&0<c.length&&this.openLocalFile(c,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(c))).send(mxUtils.bind(this,
function(a){200<=a.getStatus()&&299>=a.getStatus()&&this.openLocalFile(a.getText(),null,!0)})):/^https?:\/\//.test(c)&&(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(c):window.openWindow((mxClient.IS_CHROMEAPP?"https://www.draw.io/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(c)))))}else this.openLocalFile(c,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d,e;if(null==a){e=document.body;
var g=document.documentElement;d=(e.clientWidth||g.clientWidth)-3;e=Math.max(e.clientHeight||0,g.clientHeight)-3}else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;g=document.createElement("div");g.style.zIndex=mxPopupMenu.prototype.zIndex+2;g.style.border="3px dotted rgb(254, 137, 12)";g.style.pointerEvents="none";g.style.position="absolute";g.style.top=b+"px";g.style.left=c+"px";g.style.width=Math.max(0,d-3)+"px";g.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?
this.editor.graph.container.appendChild(g):document.body.appendChild(g);return g};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFiles=function(a,b){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var c=
var f=document.documentElement;d=(e.clientWidth||f.clientWidth)-3;e=Math.max(e.clientHeight||0,f.clientHeight)-3}else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;f=document.createElement("div");f.style.zIndex=mxPopupMenu.prototype.zIndex+2;f.style.border="3px dotted rgb(254, 137, 12)";f.style.pointerEvents="none";f.style.position="absolute";f.style.top=b+"px";f.style.left=c+"px";f.style.width=Math.max(0,d-3)+"px";f.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?
this.editor.graph.container.appendChild(f):document.body.appendChild(f);return f};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFiles=function(a,b){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var c=
0;c<a.length;c++)mxUtils.bind(this,function(a){var c=new FileReader;c.onload=mxUtils.bind(this,function(c){var d=c.target.result,e=a.name;if(null!=e&&0<e.length)if(!this.useCanvasForExport&&/(\.png)$/i.test(e)&&(e=e.substring(0,e.length-4)+".xml"),Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,e))e=0<=e.lastIndexOf(".")?e.substring(0,e.lastIndexOf("."))+".xml":e+".xml",this.parseFile(a,mxUtils.bind(this,function(a){if(4==a.readyState)if(this.spinner.stop(),
200<=a.status&&299>=a.status)if(a=a.responseText,"<mxlibrary"==a.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);null!=e&&".vssx"==e.toLowerCase().substring(e.length-5)&&(e=e.substring(0,filename.length-5)+".xml");try{this.loadLibrary(new LocalLibrary(this,a,e))}catch(v){this.handleError(v,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a,e,b);else this.handleError({message:mxResources.get(413==a.status?
"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile"))}));else if('{"state":"{\\"Properties\\":'==d.substring(0,26))/(\.json)$/i.test(e)&&(e=e.substring(0,e.length-5)+".xml"),this.openLocalFile(this.emptyDiagramXml,e,b),this.importLucidChart(d,0,0,null,mxUtils.bind(this,function(){this.editor.undoManager.clear();this.spinner.stop()}));else if("<mxlibrary"==c.target.result.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,
@ -6748,8 +6774,8 @@ EditorUi.prototype.isDiagramActive=function(){var a=this.getCurrentFile();return
this.actions.get("editData").setEnabled(b);this.actions.get("shadowVisible").setEnabled(b);this.actions.get("connectionArrows").setEnabled(b);this.actions.get("connectionPoints").setEnabled(b);this.actions.get("copyStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("editGeometry").setEnabled(a.getModel().isVertex(a.getSelectionCell()));this.actions.get("createShape").setEnabled(b);this.actions.get("createRevision").setEnabled(b);
this.actions.get("moveToFolder").setEnabled(null!=c);this.actions.get("makeCopy").setEnabled(null!=c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(b&&(null==c||!c.isRestricted()));this.actions.get("publishLink").setEnabled(null!=c&&!c.isRestricted());this.actions.get("tags").setEnabled(b&&(null==c||!c.isRestricted()));this.actions.get("rename").setEnabled(null!=c&&c.isRenamable());this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=c&&!c.isRestricted());
a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(b&&null!=a&&null!=a.shape&&null!=a.shape.stencil)};var m=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);m.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,c,d,e,f){var g=a.editor.graph;if("xml"==
c)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==c)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(g.getSvg(d,e,f)),"image/svg+xml");else{var h=a.getFileData(!0,null,null,null,null,!0),k=g.getGraphBounds(),l=Math.floor(k.width*e/g.view.scale),m=Math.floor(k.height*e/g.view.scale);h.length<=MAX_REQUEST_SIZE&&l*m<MAX_AREA?(a.hideDialog(),a.saveRequest(b,c,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+c+"&base64="+(b||"0")+(null!=a?"&filename="+
encodeURIComponent(a):"")+"&bg="+(null!=d?d:"none")+"&w="+l+"&h="+m+"&border="+f+"&xml="+encodeURIComponent(h))})):mxUtils.alert(mxResources.get("drawingTooLarge"))}})})();var mxSettings={currentVersion:16,defaultFormatWidth:600>screen.width?"0":"240",key:".drawio-config",getLanguage:function(){return mxSettings.settings.language},setLanguage:function(a){mxSettings.settings.language=a},getUi:function(){return mxSettings.settings.ui},setUi:function(a){mxSettings.settings.ui=a},getShowStartScreen:function(){return mxSettings.settings.showStartScreen},setShowStartScreen:function(a){mxSettings.settings.showStartScreen=a},getGridColor:function(){return mxSettings.settings.gridColor},
c)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==c)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(g.getSvg(d,e,f)),"image/svg+xml");else{var h=a.getFileData(!0,null,null,null,null,!0),l=g.getGraphBounds(),k=Math.floor(l.width*e/g.view.scale),m=Math.floor(l.height*e/g.view.scale);h.length<=MAX_REQUEST_SIZE&&k*m<MAX_AREA?(a.hideDialog(),a.saveRequest(b,c,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+c+"&base64="+(b||"0")+(null!=a?"&filename="+
encodeURIComponent(a):"")+"&bg="+(null!=d?d:"none")+"&w="+k+"&h="+m+"&border="+f+"&xml="+encodeURIComponent(h))})):mxUtils.alert(mxResources.get("drawingTooLarge"))}})})();var mxSettings={currentVersion:16,defaultFormatWidth:600>screen.width?"0":"240",key:".drawio-config",getLanguage:function(){return mxSettings.settings.language},setLanguage:function(a){mxSettings.settings.language=a},getUi:function(){return mxSettings.settings.ui},setUi:function(a){mxSettings.settings.ui=a},getShowStartScreen:function(){return mxSettings.settings.showStartScreen},setShowStartScreen:function(a){mxSettings.settings.showStartScreen=a},getGridColor:function(){return mxSettings.settings.gridColor},
setGridColor:function(a){mxSettings.settings.gridColor=a},getAutosave:function(){return mxSettings.settings.autosave},setAutosave:function(a){mxSettings.settings.autosave=a},getResizeImages:function(){return mxSettings.settings.resizeImages},setResizeImages:function(a){mxSettings.settings.resizeImages=a},getOpenCounter:function(){return mxSettings.settings.openCounter},setOpenCounter:function(a){mxSettings.settings.openCounter=a},getLibraries:function(){return mxSettings.settings.libraries},setLibraries:function(a){mxSettings.settings.libraries=
a},addCustomLibrary:function(a){mxSettings.load();0>mxUtils.indexOf(mxSettings.settings.customLibraries,a)&&("L.scratchpad"===a?mxSettings.settings.customLibraries.splice(0,0,a):mxSettings.settings.customLibraries.push(a));mxSettings.save()},removeCustomLibrary:function(a){mxSettings.load();mxUtils.remove(a,mxSettings.settings.customLibraries);mxSettings.save()},getCustomLibraries:function(){return mxSettings.settings.customLibraries},getPlugins:function(){return mxSettings.settings.plugins},setPlugins:function(a){mxSettings.settings.plugins=
a},getRecentColors:function(){return mxSettings.settings.recentColors},setRecentColors:function(a){mxSettings.settings.recentColors=a},getFormatWidth:function(){return parseInt(mxSettings.settings.formatWidth)},setFormatWidth:function(a){mxSettings.settings.formatWidth=a},getCurrentEdgeStyle:function(){return mxSettings.settings.currentEdgeStyle},setCurrentEdgeStyle:function(a){mxSettings.settings.currentEdgeStyle=a},getCurrentVertexStyle:function(){return mxSettings.settings.currentVertexStyle},
@ -7056,8 +7082,8 @@ TrelloClient.prototype.writeFile=function(a,b,d,c,e){if(null!=a&&null!=b)if(b.le
a);var g=new XMLHttpRequest;g.responseType="json";g.onreadystatechange=mxUtils.bind(this,function(){if(4===g.readyState&&(window.clearTimeout(l),h))if(200==g.status){var a=g.response;a.compoundId=d+this.SEPARATOR+a.id;c(a)}else 401==g.status?this.authenticate(f,e,!0):e()});g.open("POST",this.baseUrl+"cards/"+d+"/attachments");g.send(m)});this.authenticate(f,e)}else e({message:mxResources.get("unknownError")})};TrelloClient.prototype.pickLibrary=function(a){this.pickFile(a)};
TrelloClient.prototype.pickFolder=function(a){this.authenticate(mxUtils.bind(this,function(){this.showTrelloDialog(!1,a)}),mxUtils.bind(this,function(a){this.ui.showError(mxResources.get("error"),a)}))};TrelloClient.prototype.pickFile=function(a,b){a=null!=a?a:mxUtils.bind(this,function(a){this.ui.loadFile("T"+encodeURIComponent(a))});this.authenticate(mxUtils.bind(this,function(){this.showTrelloDialog(!0,a)}),mxUtils.bind(this,function(a){this.ui.showError(mxResources.get("error"),a,mxResources.get("ok"))}))};
TrelloClient.prototype.showTrelloDialog=function(a,b){var d=null,c="@me",e=0,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.overflow="hidden";f.style.height="224px";var h=document.createElement("h3");mxUtils.write(h,a?mxResources.get("selectFile"):mxResources.get("selectCard"));h.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(h);var l=document.createElement("div");l.style.whiteSpace="nowrap";l.style.overflow="auto";l.style.height=
"194px";f.appendChild(l);f=new CustomDialog(this.ui,f);this.ui.showDialog(f.container,340,270,!0,!0);f.okButton.parentNode.removeChild(f.okButton);var m=mxUtils.bind(this,function(a,b,c){e++;var d=document.createElement("div");d.style="width:100%;text-overflow:ellipsis;overflow:hidden;vertical-align:middle;background:"+(0==e%2?"#eee":"#fff");var f=document.createElement("a");f.setAttribute("href","javascript:void(0);");if(null!=c){var g=document.createElement("img");g.src=c.url;g.width=c.width;g.height=
c.height;g.style="border: 1px solid black;margin:5px;vertical-align:middle";f.appendChild(g)}mxUtils.write(f,a);mxEvent.addListener(f,"click",b);d.appendChild(f);return d}),g=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();this.ui.hideDialog()}))}),k=mxUtils.bind(this,function(){e=0;l.innerHTML="";this.ui.spinner.spin(l,mxResources.get("loading"));var a=mxUtils.bind(this,function(){Trello.cards.get(d+"/attachments",{fields:"id,name,previews"},
"194px";f.appendChild(l);f=new CustomDialog(this.ui,f);this.ui.showDialog(f.container,340,270,!0,!0);f.okButton.parentNode.removeChild(f.okButton);var m=mxUtils.bind(this,function(a,b,c){e++;var d=document.createElement("div");d.style="width:100%;text-overflow:ellipsis;overflow:hidden;vertical-align:middle;background:"+(0==e%2?"#eee":"#fff");var f=document.createElement("a");f.setAttribute("href","javascript:void(0);");if(null!=c){var h=document.createElement("img");h.src=c.url;h.width=c.width;h.height=
c.height;h.style="border: 1px solid black;margin:5px;vertical-align:middle";f.appendChild(h)}mxUtils.write(f,a);mxEvent.addListener(f,"click",b);d.appendChild(f);return d}),g=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();this.ui.hideDialog()}))}),k=mxUtils.bind(this,function(){e=0;l.innerHTML="";this.ui.spinner.spin(l,mxResources.get("loading"));var a=mxUtils.bind(this,function(){Trello.cards.get(d+"/attachments",{fields:"id,name,previews"},
mxUtils.bind(this,function(a){this.ui.spinner.stop();l.appendChild(m("../ [Up]",mxUtils.bind(this,function(){u()})));mxUtils.br(l);null==a||0==a.length?mxUtils.write(l,mxResources.get("noFiles")):mxUtils.bind(this,function(){for(var c=0;c<a.length;c++)mxUtils.bind(this,function(a){l.appendChild(m(a.name,mxUtils.bind(this,function(){this.ui.hideDialog();b(d+this.SEPARATOR+a.id)}),null!=a.previews?a.previews[0]:null))})(a[c])})()}),mxUtils.bind(this,function(b){401==b.status?this.authenticate(a,g,!0):
null!=g&&g(b)}))});a()}),n=null,p=null,u=mxUtils.bind(this,function(f){null==f&&(e=0,l.innerHTML="",f=1);this.ui.spinner.spin(l,mxResources.get("loading"));null!=n&&null!=n.parentNode&&n.parentNode.removeChild(n);n=document.createElement("a");n.style.display="block";n.setAttribute("href","javascript:void(0);");mxUtils.write(n,mxResources.get("more")+"...");var h=mxUtils.bind(this,function(){mxEvent.removeListener(l,"scroll",p);u(f+1)});mxEvent.addListener(n,"click",h);var t=mxUtils.bind(this,function(){Trello.get("search",
{query:""==mxUtils.trim(c)?"is:open":c,cards_limit:100,cards_page:f-1},mxUtils.bind(this,function(e){this.ui.spinner.stop();e=null!=e?e.cards:null;if(null==e||0==e.length)mxUtils.write(l,mxResources.get("noFiles"));else{1==f&&(l.appendChild(m(mxResources.get("filterCards")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.ui,c,mxResources.get("ok"),mxUtils.bind(this,function(a){null!=a&&(c=a,u())}),mxResources.get("filterCards"),null,null,"http://help.trello.com/article/808-searching-for-cards-all-boards");
@ -7084,7 +7110,7 @@ App.getStoredMode=function(){var a=null;null==a&&isLocalStorage&&(a=localStorage
"#G"==window.location.hash.substring(0,2)?mxscript("https://apis.google.com/js/api.js"):"0"!=urlParams.chrome||null!=window.location.hash&&"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"===window.location.hash.substring(0,45)||(window.DriveClient=null):window.DriveClient=null),"function"===typeof window.DropboxClient&&("0"!=urlParams.db&&isSvgBrowser&&(null==document.documentMode||9<document.documentMode)?App.mode==App.MODE_DROPBOX||null!=window.location.hash&&"#D"==window.location.hash.substring(0,
2)?(mxscript(App.DROPBOX_URL),mxscript(App.DROPINS_URL,null,"dropboxjs",App.DROPBOX_APPKEY)):"0"==urlParams.chrome&&(window.DropboxClient=null):window.DropboxClient=null),"function"===typeof window.OneDriveClient&&("0"!=urlParams.od&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?App.mode==App.MODE_ONEDRIVE||null!=window.location.hash&&"#W"==window.location.hash.substring(0,2)?mxscript(App.ONEDRIVE_URL):"0"==urlParams.chrome&&(window.OneDriveClient=null):window.OneDriveClient=
null),"function"===typeof window.TrelloClient&&("0"!=urlParams.tr&&isSvgBrowser&&(null==document.documentMode||10<=document.documentMode)?App.mode==App.MODE_TRELLO||null!=window.location.hash&&"#T"==window.location.hash.substring(0,2)?(mxscript(App.TRELLO_JQUERY_URL),mxscript(App.TRELLO_URL)):"0"==urlParams.chrome&&(window.TrelloClient=null):window.TrelloClient=null)),"undefined"==typeof JSON&&mxscript("js/json/json2.min.js")))})();
App.main=function(a,b){var d=null;EditorUi.enableLogging&&(window.onerror=function(a,b,c,e,f){try{if(a!=d&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){d=a;var g=new Image,h=0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";g.src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity="+h+"&v="+encodeURIComponent(EditorUi.VERSION)+
App.main=function(a,b){var d=null;EditorUi.enableLogging&&(window.onerror=function(a,b,c,e,f){try{if(a!=d&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){d=a;var h=new Image,g=0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";h.src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity="+g+"&v="+encodeURIComponent(EditorUi.VERSION)+
"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(c)+(null!=e?":colno:"+encodeURIComponent(e):"")+(null!=f&&null!=f.stack?"&stack="+encodeURIComponent(f.stack):"")}}catch(q){}});"atlas"==uiTheme&&mxClient.link("stylesheet","styles/atlas.css");if(null!=window.mxscript){if("1"==urlParams.offline){mxscript("js/shapes.min.js");var c=document.createElement("iframe");c.setAttribute("width","0");c.setAttribute("height","0");c.setAttribute("src",
"offline.html");document.body.appendChild(c)}if("0"!=urlParams.plugins&&"1"!=urlParams.offline){var c=mxSettings.getPlugins(),e=urlParams.p;App.initPluginCallback();if(null!=e){var f="";"1"==urlParams.drawdev&&(f=document.location.protocol+"//drawhost.jgraph.com/");for(var h=e.split(";"),e=0;e<h.length;e++){var l=App.pluginRegistry[h[e]];null!=l?mxscript(f+l):null!=window.console&&console.log("Unknown plugin:",h[e])}}else"0"!=urlParams.chrome&&mxscript(App.FOOTER_PLUGIN_URL);if(null!=c&&0<c.length&&
"0"!=urlParams.plugins){f=window.location.protocol+"//"+window.location.host;h=!0;for(e=0;e<c.length&&h;e++)"/"!=c[e].charAt(0)&&c[e].substring(0,f.length)!=f&&(h=!1);if(h||mxUtils.confirm(mxResources.replacePlaceholders("The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n",[c.join("\n")]).replace(/\\n/g,"\n")))for(e=0;e<c.length;e++)try{mxscript(c[e])}catch(m){}}}"function"===
@ -7274,46 +7300,47 @@ new Menu(mxUtils.bind(this,function(b,c){if(!mxClient.IS_CHROMEAPP&&a.isOffline(
encodeURIComponent(b)),this.editorUi.logEvent({category:"Help",action:"search",label:b}),window.setTimeout(mxUtils.bind(this,function(){this.editorUi.menubar.hideMenu()}),0))}));e.firstChild.nextSibling.appendChild(f);mxEvent.addGestureListeners(f,function(a){document.activeElement!=f&&f.focus();mxEvent.consume(a)},function(a){mxEvent.consume(a)},function(a){mxEvent.consume(a)});window.setTimeout(function(){f.focus()},0);this.addMenuItems(b,["-","quickStart","userManual","keyboardShortcuts","-"]);
mxClient.IS_CHROMEAPP||this.addMenuItems(b,["feedback"]);this.addMenuItems(b,["support","-","about"])}"1"==urlParams.ruler&&(mxResources.parse("rulerInch=Ruler unit: Inches"),this.editorUi.actions.addAction("rulerInch",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.INCHES);this.editorUi.hRuler.setUnit(mxRuler.prototype.INCHES);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),mxResources.parse("rulerCM=Ruler unit: CMs"),this.editorUi.actions.addAction("rulerCM",
mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.CENTIMETER);this.editorUi.hRuler.setUnit(mxRuler.prototype.CENTIMETER);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),mxResources.parse("rulerPixel=Ruler unit: Pixels"),this.editorUi.actions.addAction("rulerPixel",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.PIXELS);this.editorUi.hRuler.setUnit(mxRuler.prototype.PIXELS);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),
this.addMenuItems(b,["-","rulerInch","rulerCM","rulerPixel"],c));"1"==urlParams.test&&(mxResources.parse("showBoundingBox=Show bounding box"),this.editorUi.actions.addAction("showBoundingBox",mxUtils.bind(this,function(){var a=d.getGraphBounds(),b=d.view.translate,e=d.view.scale;d.insertVertex(c,null,"",a.x/e-b.x,a.y/e-b.y,a.width/e,a.height/e,"fillColor=none;strokeColor=red;")})),this.addMenuItems(b,["-","showBoundingBox"],c),mxResources.parse("testXmlImageExport=XML Image Export"),this.editorUi.actions.addAction("testXmlImageExport",
mxUtils.bind(this,function(){var a=new mxImageExport,b=d.getGraphBounds(),c=d.view.scale,e=mxUtils.createXmlDocument(),f=e.createElement("output");e.appendChild(f);e=new mxXmlCanvas2D(f);e.translate(Math.floor((1-b.x)/c),Math.floor((1-b.y)/c));e.scale(1/c);var g=0,h=e.save;e.save=function(){g++;h.apply(this,arguments)};var k=e.restore;e.restore=function(){g--;k.apply(this,arguments)};var l=a.drawShape;a.drawShape=function(a){mxLog.debug("entering shape",a,g);l.apply(this,arguments);mxLog.debug("leaving shape",
a,g)};a.drawState(d.getView().getState(d.model.root),e);mxLog.show();mxLog.debug(mxUtils.getXml(f));mxLog.debug("stateCounter",g)})),this.addMenuItems(b,["testXmlImageExport"],c),mxResources.parse("testShowRtModel=Show RT model"),mxResources.parse("testDebugRtModel=Debug RT model"),mxResources.parse("testDownloadRtModel=Download RT model"),this.editorUi.actions.addAction("testShowRtModel",mxUtils.bind(this,function(){null!=this.editorUi.getCurrentFile()&&null!=this.editorUi.getCurrentFile().realtime&&
(console.log("bytesUsed",this.editorUi.getCurrentFile().realtime.rtModel.bytesUsed),console.log("root",this.editorUi.getCurrentFile().realtime.dumpRoot()),this.editorUi.getCurrentFile().realtime.check())})),this.editorUi.actions.addAction("testDebugRtModel",mxUtils.bind(this,function(){gapi.drive.realtime.debug()})),this.editorUi.actions.addAction("testDownloadRtModel",mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile();null!=b&&null!=b.realtime&&a.spinner.spin(document.body,mxResources.get("export"))&&
(b=new mxXmlRequest("https://www.googleapis.com/drive/v2/files/"+b.getHash().substring(1)+"/realtime",null,"GET"),b.setRequestHeaders=function(a){mxXmlRequest.prototype.setRequestHeaders.apply(this,arguments);var b=gapi.auth.getToken().access_token;a.setRequestHeader("authorization","Bearer "+b)},b.send(function(b){a.spinner.stop();200<=b.getStatus()&&299>=b.getStatus()&&a.saveLocalFile(b.getText(),"realtime.txt","text/plain")}))})),null!=this.editorUi.getCurrentFile()&&null!=this.editorUi.getCurrentFile().realtime&&
this.addMenuItems(b,["-","testShowRtModel","testDebugRtModel","testDownloadRtModel"],c),mxResources.parse("testShowConsole=Show Console"),this.editorUi.actions.addAction("testShowConsole",function(){mxLog.isVisible()?mxLog.window.fit():mxLog.show();mxLog.window.div.style.zIndex=mxPopupMenu.prototype.zIndex-1}),this.addMenuItems(b,["-","testShowConsole"]))})));a.actions.addAction("shapes...",function(){mxClient.IS_CHROMEAPP||!a.isOffline()?a.showDialog((new MoreShapesDialog(a,!0)).container,640,isLocalStorage?
mxClient.IS_IOS?480:460:440,!0,!0):a.showDialog((new MoreShapesDialog(a,!1)).container,360,isLocalStorage?mxClient.IS_IOS?300:280:260,!0,!0)});a.actions.addAction("createShape...",function(){a.getCurrentFile();if(d.isEnabled()){var b=new mxCell("",new mxGeometry(0,0,120,120),a.defaultCustomShapeStyle);b.vertex=!0;b=new EditShapeDialog(a,b,mxResources.get("editShape")+":",630,400);a.showDialog(b.container,640,480,!0,!1);b.init()}});a.actions.put("embedHtml",new Action(mxResources.get("html")+"...",
function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();a.showHtmlDialog(mxResources.get("create"),"https://desk.draw.io/support/solutions/articles/16000042542",b,function(b,c,d,e,f,g,h,k,l,m){a.createHtml(b,c,d,e,f,g,h,k,l,m,mxUtils.bind(this,function(b,c){var d=new EmbedDialog(a,b+"\n"+c,null,null,function(){var a=window.open(),d=a.document;"CSS1Compat"===document.compatMode&&d.writeln("<!DOCTYPE html>");d.writeln("<html>");
d.writeln("<head><title>"+encodeURIComponent(mxResources.get("preview"))+'</title><meta charset="utf-8"></head>');d.writeln("<body>");d.writeln(b);var e=mxClient.IS_IE||mxClient.IS_EDGE||null!=document.documentMode;e&&d.writeln(c);d.writeln("</body>");d.writeln("</html>");d.close();if(!e){var f=a.document.createElement("div");f.marginLeft="26px";f.marginTop="26px";mxUtils.write(f,mxResources.get("updatingDocument"));e=a.document.createElement("img");e.setAttribute("src",window.location.protocol+"//"+
window.location.hostname+"/"+IMAGE_PATH+"/spin.gif");e.style.marginLeft="6px";f.appendChild(e);a.document.body.insertBefore(f,a.document.body.firstChild);window.setTimeout(function(){var a=document.createElement("script");a.type="text/javascript";a.src=/<script.*?src="(.*?)"/.exec(c)[1];d.body.appendChild(a);f.parentNode.removeChild(f)},20)}});a.showDialog(d.container,440,240,!0,!0);d.init()}))})})}));a.actions.put("liveImage",new Action("Live image...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&
a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();null!=b?(b=encodeURIComponent(b),b=new EmbedDialog(a,EXPORT_URL+"?format=png&url="+b,0),a.showDialog(b.container,440,240,!0,!0),b.init()):a.handleError({message:mxResources.get("invalidPublicUrl")})})}));a.actions.put("embedImage",new Action(mxResources.get("image")+"...",function(){a.showEmbedImageDialog(function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.createEmbedImage(b,c,d,e,f,g,function(b){a.spinner.stop();
b=new EmbedDialog(a,b);a.showDialog(b.container,440,240,!0,!0);b.init()},function(b){a.spinner.stop();a.handleError(b)})},mxResources.get("image"),mxResources.get("retina"),a.isExportToCanvas())}));a.actions.put("embedSvg",new Action(mxResources.get("formatSvg")+"...",function(){a.showEmbedImageDialog(function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.createEmbedSvg(b,c,d,e,f,g,function(b){a.spinner.stop();b=new EmbedDialog(a,b);a.showDialog(b.container,440,240,!0,!0);
b.init()},function(b){a.spinner.stop();a.handleError(b)})},mxResources.get("formatSvg"),mxResources.get("image"),!0,"https://desk.draw.io/support/solutions/articles/16000042548")}));a.actions.put("embedIframe",new Action(mxResources.get("iframe")+"...",function(){var b=d.getGraphBounds();a.showPublishLinkDialog(mxResources.get("iframe"),null,"100%",Math.ceil((b.y+b.height-d.view.translate.y)/d.view.scale)+2,function(b,c,d,e,f,g,h,k){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),
function(l){a.spinner.stop();l=new EmbedDialog(a,'<iframe frameborder="0" style="width:'+h+";height:"+k+';" src="'+a.createLink(b,c,d,e,f,g,l)+'"></iframe>');a.showDialog(l.container,440,240,!0,!0);l.init()})},!0)}));a.actions.put("publishLink",new Action(mxResources.get("link")+"...",function(){a.showPublishLinkDialog(null,null,null,null,function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(h){a.spinner.stop();h=new EmbedDialog(a,
a.createLink(b,c,d,e,f,g,h));a.showDialog(h.container,440,240,!0,!0);h.init()})})}));a.actions.addAction("googleDocs...",function(){a.openLink("http://docsaddon.draw.io")});a.actions.addAction("googleSites...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();b=new GoogleSitesDialog(a,b);a.showDialog(b.container,420,256,!0,!0);b.init()})});if(isLocalStorage||mxClient.IS_CHROMEAPP)k=a.actions.addAction("scratchpad",function(){a.toggleScratchpad()}),
k.setToggleAction(!0),k.setSelectedCallback(function(){return null!=a.scratchpad}),a.actions.addAction("plugins...",function(){a.showDialog((new PluginsDialog(a)).container,360,156,!0,!1)});k=a.actions.addAction("search",function(){var b=a.sidebar.isEntryVisible("search");a.sidebar.showPalette("search",!b);isLocalStorage&&(mxSettings.settings.search=!b,mxSettings.save())});k.setToggleAction(!0);k.setSelectedCallback(function(){return a.sidebar.isEntryVisible("search")});"1"==urlParams.embed&&(a.actions.get("save").funct=
function(b){d.isEditing()&&d.stopEditing();var c="0"!=urlParams.pages||null!=a.pages&&1<a.pages.length?a.getFileData(!0):mxUtils.getXml(a.editor.getGraphXml());if("json"==urlParams.proto){var e=a.createLoadMessage("save");e.xml=c;b&&(e.exit=!0);c=JSON.stringify(e)}(window.opener||window.parent).postMessage(c,"*");"0"!=urlParams.modified&&"1"!=urlParams.keepmodified&&(a.editor.modified=!1,a.editor.setStatus(""));null!=a.getCurrentFile()&&a.saveFile()},a.actions.addAction("saveAndExit",function(){a.actions.get("save").funct(!0)}),
a.actions.addAction("exit",function(){var b=function(){a.editor.modified=!1;var b="json"==urlParams.proto?JSON.stringify({event:"exit",modified:a.editor.modified}):"";(window.opener||window.parent).postMessage(b,"*")};a.editor.modified?a.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}));this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){a.isExportToCanvas()?(this.addMenuItems(b,["exportPng"],c),a.jpgSupported&&b.addItem(mxResources.get("formatJpg")+
"...",null,mxUtils.bind(this,function(){a.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(a,b,c,d,e,f,g,h,k){a=parseInt(a);!isNaN(a)&&0<a&&this.editorUi.exportImage(a/100,!1,c,d,!1,g,!h,!1,"jpeg")}),!0,!1,"jpeg")}),c)):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||(this.addMenuItems(b,["exportPng"],c),b.addItem(mxResources.get("formatJpg")+"...",null,mxUtils.bind(this,function(){a.showRemoteExportDialog(mxResources.get("export"),
null,mxUtils.bind(this,function(b,c){a.downloadFile("jpeg",null,null,b)}),!0)}),c));this.addMenuItems(b,["exportSvg","-"],c);a.isOffline()||a.printPdfExport?this.addMenuItems(b,["exportPdf"],c):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["exportPdf"],c);this.addMenuItems(b,["exportHtml"],c);mxClient.IS_IE11||mxClient.IS_IE||"undefined"===typeof VsdxExport&&a.isOffline()||this.addMenuItems(b,["exportVsdx"],c);this.addMenuItems(b,["-","exportXml"],c);(mxClient.IS_CHROMEAPP||
EditorUi.isElectronApp||/.*\.draw\.io$/.test(window.location.hostname))&&b.addItem(mxResources.get("url")+"...",null,mxUtils.bind(this,function(){a.showPublishLinkDialog(mxResources.get("url"),!0,null,null,function(b,c,d,e,f,g){b=new EmbedDialog(a,a.createLink(b,c,d,e,f,g,null,!0));a.showDialog(b.container,440,240,!0,!0);b.init()})}),c);a.isOffline()||(b.addSeparator(c),this.addMenuItem(b,"export",c).firstChild.nextSibling.innerHTML=mxResources.get("advanced")+"...")})));this.editorUi.actions.addAction("chatWindowTitle...",
mxUtils.bind(this.editorUi,this.editorUi.toggleChat));this.put("importFrom",new Menu(function(b,c){function e(b){if(b&&Graph.fileSupport&&!mxClient.IS_IE&&!mxClient.IS_IE11){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,"change",function(){null!=c.files&&a.importFiles(c.files,null,null,a.maxImageSize)});c.click()}else{window.openNew=!1;window.openKey="import";var e=Editor.useLocalStorage;Editor.useLocalStorage=!b;window.openFile=new OpenFile(function(b){a.hideDialog(b)});
window.openFile.setConsumer(function(b,c){d.setSelectionCells(a.importXml(b))});a.showDialog((new OpenDialog(a)).container,360,220,!0,!0,function(){window.openFile=null});var f=a.dialog,g=f.close;a.dialog.close=function(b){Editor.useLocalStorage=e;g.apply(f,arguments);b&&null==a.getCurrentFile()&&"1"!=urlParams.embed&&a.showSplash()}}}function f(b){b.pickFile(function(c){a.spinner.spin(document.body,mxResources.get("loading"))&&b.getFile(c,function(b){var c=n(b.getTitle());/\.svg$/i.test(b.getTitle())&&
!a.editor.isDataSvg(b.getData())&&(b.setData(a.createSvgDataUri(b.getData())),c="image/svg+xml");k(b.getData(),c,b.getTitle())},function(b){a.handleError(b,null!=b?mxResources.get("errorLoadingFile"):null)},b==a.drive)},!0)}var k=mxUtils.bind(this,function(b,c,e){var f=d.view,g=d.getGraphBounds(),h=d.snap(Math.ceil(Math.max(0,g.x/f.scale-f.translate.x)+4*d.gridSize)),k=d.snap(Math.ceil(Math.max(0,(g.y+g.height)/f.scale-f.translate.y)+4*d.gridSize));"data:image/"==b.substring(0,11)?a.loadImage(b,mxUtils.bind(this,
function(f){var g=!0,l=mxUtils.bind(this,function(){a.resizeImage(f,b,mxUtils.bind(this,function(f,l,m){f=g?Math.min(1,Math.min(a.maxImageSize/l,a.maxImageSize/m)):1;a.importFile(b,c,h,k,Math.round(l*f),Math.round(m*f),e,function(b){a.spinner.stop();d.setSelectionCells(b);d.scrollCellToVisible(d.getSelectionCell())})}),g)});b.length>a.resampleThreshold?a.confirmImageResize(function(a){g=a;l()}):l()}),mxUtils.bind(this,function(){a.handleError({message:mxResources.get("cannotOpenFile")})})):a.importFile(b,
c,h,k,0,0,e,function(b){a.spinner.stop();d.setSelectionCells(b);d.scrollCellToVisible(d.getSelectionCell())})}),n=mxUtils.bind(this,function(a){var b="text/xml";/\.png$/i.test(a)?b="image/png":/\.jpe?g$/i.test(a)?b="image/jpg":/\.gif$/i.test(a)&&(b="image/gif");return b});"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){f(a.drive)},c):h&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+
"...)",null,function(){},c,null,!1));null!=a.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){f(a.gitHub)},c);null!=a.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){f(a.dropbox)},c):l&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",null,function(){f(a.oneDrive)},c):m&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",
null,function(){},c,null,!1);null!=a.trello?b.addItem(mxResources.get("trello")+"...",null,function(){f(a.trello)},c):g&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);b.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+"...",null,function(){e(!1)},c);mxClient.IS_IOS||b.addItem(mxResources.get("device")+"...",null,function(){e(!0)},c);a.isOffline()||(b.addSeparator(c),b.addItem(mxResources.get("url")+
"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("import"),function(b){if(null!=b&&0<b.length&&a.spinner.spin(document.body,mxResources.get("loading"))){var c=/(\.png)($|\?)/i.test(b)?"image/png":"text/xml";a.loadUrl(PROXY_URL+"?url="+encodeURIComponent(b),function(a){k(a,c,b)},function(){a.spinner.stop();a.handleError(null,mxResources.get("errorLoadingFile"))},"image/png"==c)}},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},c));b.addItem(mxResources.get("csv")+
"...",null,function(){a.showImportCsvDialog()},c)})).isEnabled=f;this.put("theme",new Menu(mxUtils.bind(this,function(b,c){var d=b.addItem(mxResources.get("kennedy"),null,function(){mxSettings.setUi("");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"atlas"!=uiTheme&&b.addCheckmark(d,Editor.checkmarkImage);d=b.addItem(mxResources.get("atlas"),null,function(){mxSettings.setUi("atlas");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"atlas"==uiTheme&&
b.addCheckmark(d,Editor.checkmarkImage)})));this.editorUi.actions.addAction("rename...",mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile();if(null!=b){var c=null!=b.getTitle()?b.getTitle():this.editorUi.defaultFilename,c=new FilenameDialog(this.editorUi,c,mxResources.get("rename"),mxUtils.bind(this,function(a){null!=a&&0<a.length&&null!=b&&this.editorUi.spinner.spin(document.body,mxResources.get("renaming"))&&b.rename(a,mxUtils.bind(this,function(a){this.editorUi.spinner.stop()}),mxUtils.bind(this,
function(a){this.editorUi.handleError(a,null!=a?mxResources.get("errorRenamingFile"):null)}))}),b.constructor==DriveFile||b.constructor==StorageFile?mxResources.get("diagramName"):null,function(b){if(null!=b&&0<b.length)return!0;a.showError(mxResources.get("error"),mxResources.get("invalidName"),mxResources.get("ok"));return!1});this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()}})).isEnabled=function(){return this.enabled&&f.apply(this,arguments)};a.actions.addAction("makeCopy...",mxUtils.bind(this,
function(){var b=a.getCurrentFile();if(null!=b){var c=null!=b.getTitle()?b.getTitle():a.defaultFilename,d="",e=c.lastIndexOf(".");0<=e&&(d=c.substring(e),c=c.substring(0,e));c=mxResources.get("copyOf",[c])+d;b.constructor==DriveFile?(c=new CreateDialog(a,c,mxUtils.bind(this,function(c,d){"download"==d&&(d=App.MODE_GOOGLE);null!=c&&0<c.length&&(d==App.MODE_GOOGLE?a.spinner.spin(document.body,mxResources.get("saving"))&&b.save(!1,mxUtils.bind(this,function(){b.saveAs(c,mxUtils.bind(this,function(b){a.spinner.stop();
var c=a.getUrl();window.openWindow(c+"#G"+b.id,null,mxUtils.bind(this,function(){window.location.hash="G"+b.id}))}),mxUtils.bind(this,function(b){a.handleError(b)}))}),mxUtils.bind(this,function(b){a.handleError(b)})):this.editorUi.createFile(c,this.editorUi.getFileData(!0),null,d))}),mxUtils.bind(this,function(){a.hideDialog()}),mxResources.get("makeCopy"),mxResources.get("create"),null,null,null,null,!0),a.showDialog(c.container,420,380,!0,!0),c.init()):a.editor.editAsNew(a.getEditBlankXml(),c)}}));
a.actions.addAction("moveToFolder...",mxUtils.bind(this,function(){var b=a.getCurrentFile();b.getMode()!=App.MODE_GOOGLE&&b.getMode()!=App.MODE_ONEDRIVE||a.pickFolder(b.getMode(),mxUtils.bind(this,function(c){a.spinner.spin(document.body,mxResources.get("moving"))&&b.move(c,mxUtils.bind(this,function(b){a.spinner.stop()}),mxUtils.bind(this,function(b){a.handleError(b)}))}))}));this.put("publish",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,["publishLink"],b)})));a.actions.put("offline",
new Action(mxResources.get("offline")+"...",function(){a.openLink("https://www.draw.io/app")}));a.actions.put("download",new Action(mxResources.get("download")+"...",function(){a.openLink("https://download.draw.io")}));this.editorUi.actions.addAction("share...",mxUtils.bind(this,function(){var a=this.editorUi.getCurrentFile();null!=a&&this.editorUi.drive.showPermissions(a.getId())}));this.put("embed",new Menu(mxUtils.bind(this,function(b,c){"1"==urlParams.test&&this.addMenuItems(b,["liveImage","-"],
c);this.addMenuItems(b,["embedImage","embedSvg","-","embedHtml"],c);navigator.standalone||a.isOffline()||this.addMenuItems(b,["embedIframe"],c);a.isOffline()||this.addMenuItems(b,["-","googleSites","googleDocs"],c)})));var q="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle - fromText".split(" "),z=function(b,c,d,e){b.addItem(d,null,mxUtils.bind(this,function(){if("fromText"==e){var b=new ParseDialog(a,d);a.showDialog(b.container,620,420,!0,!1);a.dialog.container.style.overflow=
"auto"}else b=new CreateGraphDialog(a,d,e),a.showDialog(b.container,620,420,!0,!1);b.init()}),c)},w=function(a,b,c,e){var f=d.isMouseInsertPoint()?d.getInsertPoint():d.getFreeInsertPoint();a=new mxCell(a,new mxGeometry(f.x,f.y,b,c),e);a.vertex=!0;d.getModel().beginUpdate();try{a=d.addCell(a),d.fireEvent(new mxEventObject("cellsInserted","cells",[a]))}finally{d.getModel().endUpdate()}d.setSelectionCell(a);d.scrollCellToVisible(a);return a};a.actions.addAction("insertText",function(){d.isEnabled()&&
!d.isCellLocked(d.getDefaultParent())&&d.startEditingAtCell(w("Text",40,20,"text;html=1;resizable=0;autosize=1;align=center;verticalAlign=middle;points=[];fillColor=none;strokeColor=none;rounded=0;"))},null,null,Editor.ctrlKey+"+Shift+X").isEnabled=f;a.actions.addAction("insertRectangle",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&w("",120,60,"whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+K").isEnabled=f;a.actions.addAction("insertEllipse",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&
w("",80,80,"ellipse;whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+Shift+K").isEnabled=f;a.actions.addAction("insertRhombus",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&w("",80,80,"rhombus;whiteSpace=wrap;html=1;")}).isEnabled=f;this.put("insert",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,"insertText insertRectangle - insertEllipse insertRhombus - insertLink insertImage".split(" "),b);a.addSeparator(b);for(var c=0;c<q.length;c++)"-"==q[c]?a.addSeparator(b):
this.addMenuItems(b,["-","rulerInch","rulerCM","rulerPixel"],c));"1"==urlParams.test&&(mxResources.parse("showBoundingBox=Show bounding box"),this.editorUi.actions.addAction("showBoundingBox",mxUtils.bind(this,function(){var a=d.getGraphBounds(),b=d.view.translate,e=d.view.scale;d.insertVertex(c,null,"",a.x/e-b.x,a.y/e-b.y,a.width/e,a.height/e,"fillColor=none;strokeColor=red;")})),mxResources.parse("createSidebarEntry=Create sidebar entry"),this.editorUi.actions.addAction("createSidebarEntry",mxUtils.bind(this,
function(){d.isSelectionEmpty()||(mxLog.show(),mxLog.debug("sb.createVertexTemplateFromData('"+d.compress(mxUtils.getXml(d.encodeCells(d.getSelectionCells())))+"', width, height, 'Title');"))})),this.addMenuItems(b,["-","createSidebarEntry","showBoundingBox"],c),mxResources.parse("testXmlImageExport=XML Image Export"),this.editorUi.actions.addAction("testXmlImageExport",mxUtils.bind(this,function(){var a=new mxImageExport,b=d.getGraphBounds(),c=d.view.scale,e=mxUtils.createXmlDocument(),f=e.createElement("output");
e.appendChild(f);e=new mxXmlCanvas2D(f);e.translate(Math.floor((1-b.x)/c),Math.floor((1-b.y)/c));e.scale(1/c);var g=0,h=e.save;e.save=function(){g++;h.apply(this,arguments)};var k=e.restore;e.restore=function(){g--;k.apply(this,arguments)};var l=a.drawShape;a.drawShape=function(a){mxLog.debug("entering shape",a,g);l.apply(this,arguments);mxLog.debug("leaving shape",a,g)};a.drawState(d.getView().getState(d.model.root),e);mxLog.show();mxLog.debug(mxUtils.getXml(f));mxLog.debug("stateCounter",g)})),
this.addMenuItems(b,["testXmlImageExport"],c),mxResources.parse("testShowRtModel=Show RT model"),mxResources.parse("testDebugRtModel=Debug RT model"),mxResources.parse("testDownloadRtModel=Download RT model"),this.editorUi.actions.addAction("testShowRtModel",mxUtils.bind(this,function(){null!=this.editorUi.getCurrentFile()&&null!=this.editorUi.getCurrentFile().realtime&&(console.log("bytesUsed",this.editorUi.getCurrentFile().realtime.rtModel.bytesUsed),console.log("root",this.editorUi.getCurrentFile().realtime.dumpRoot()),
this.editorUi.getCurrentFile().realtime.check())})),this.editorUi.actions.addAction("testDebugRtModel",mxUtils.bind(this,function(){gapi.drive.realtime.debug()})),this.editorUi.actions.addAction("testDownloadRtModel",mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile();null!=b&&null!=b.realtime&&a.spinner.spin(document.body,mxResources.get("export"))&&(b=new mxXmlRequest("https://www.googleapis.com/drive/v2/files/"+b.getHash().substring(1)+"/realtime",null,"GET"),b.setRequestHeaders=
function(a){mxXmlRequest.prototype.setRequestHeaders.apply(this,arguments);var b=gapi.auth.getToken().access_token;a.setRequestHeader("authorization","Bearer "+b)},b.send(function(b){a.spinner.stop();200<=b.getStatus()&&299>=b.getStatus()&&a.saveLocalFile(b.getText(),"realtime.txt","text/plain")}))})),null!=this.editorUi.getCurrentFile()&&null!=this.editorUi.getCurrentFile().realtime&&this.addMenuItems(b,["-","testShowRtModel","testDebugRtModel","testDownloadRtModel"],c),mxResources.parse("testShowConsole=Show Console"),
this.editorUi.actions.addAction("testShowConsole",function(){mxLog.isVisible()?mxLog.window.fit():mxLog.show();mxLog.window.div.style.zIndex=mxPopupMenu.prototype.zIndex-1}),this.addMenuItems(b,["-","testShowConsole"]))})));a.actions.addAction("shapes...",function(){mxClient.IS_CHROMEAPP||!a.isOffline()?a.showDialog((new MoreShapesDialog(a,!0)).container,640,isLocalStorage?mxClient.IS_IOS?480:460:440,!0,!0):a.showDialog((new MoreShapesDialog(a,!1)).container,360,isLocalStorage?mxClient.IS_IOS?300:
280:260,!0,!0)});a.actions.addAction("createShape...",function(){a.getCurrentFile();if(d.isEnabled()){var b=new mxCell("",new mxGeometry(0,0,120,120),a.defaultCustomShapeStyle);b.vertex=!0;b=new EditShapeDialog(a,b,mxResources.get("editShape")+":",630,400);a.showDialog(b.container,640,480,!0,!1);b.init()}});a.actions.put("embedHtml",new Action(mxResources.get("html")+"...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();
a.showHtmlDialog(mxResources.get("create"),"https://desk.draw.io/support/solutions/articles/16000042542",b,function(b,c,d,e,f,g,h,k,l,m){a.createHtml(b,c,d,e,f,g,h,k,l,m,mxUtils.bind(this,function(b,c){var d=new EmbedDialog(a,b+"\n"+c,null,null,function(){var a=window.open(),d=a.document;"CSS1Compat"===document.compatMode&&d.writeln("<!DOCTYPE html>");d.writeln("<html>");d.writeln("<head><title>"+encodeURIComponent(mxResources.get("preview"))+'</title><meta charset="utf-8"></head>');d.writeln("<body>");
d.writeln(b);var e=mxClient.IS_IE||mxClient.IS_EDGE||null!=document.documentMode;e&&d.writeln(c);d.writeln("</body>");d.writeln("</html>");d.close();if(!e){var f=a.document.createElement("div");f.marginLeft="26px";f.marginTop="26px";mxUtils.write(f,mxResources.get("updatingDocument"));e=a.document.createElement("img");e.setAttribute("src",window.location.protocol+"//"+window.location.hostname+"/"+IMAGE_PATH+"/spin.gif");e.style.marginLeft="6px";f.appendChild(e);a.document.body.insertBefore(f,a.document.body.firstChild);
window.setTimeout(function(){var a=document.createElement("script");a.type="text/javascript";a.src=/<script.*?src="(.*?)"/.exec(c)[1];d.body.appendChild(a);f.parentNode.removeChild(f)},20)}});a.showDialog(d.container,440,240,!0,!0);d.init()}))})})}));a.actions.put("liveImage",new Action("Live image...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();null!=b?(b=encodeURIComponent(b),b=new EmbedDialog(a,EXPORT_URL+"?format=png&url="+
b,0),a.showDialog(b.container,440,240,!0,!0),b.init()):a.handleError({message:mxResources.get("invalidPublicUrl")})})}));a.actions.put("embedImage",new Action(mxResources.get("image")+"...",function(){a.showEmbedImageDialog(function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.createEmbedImage(b,c,d,e,f,g,function(b){a.spinner.stop();b=new EmbedDialog(a,b);a.showDialog(b.container,440,240,!0,!0);b.init()},function(b){a.spinner.stop();a.handleError(b)})},mxResources.get("image"),
mxResources.get("retina"),a.isExportToCanvas())}));a.actions.put("embedSvg",new Action(mxResources.get("formatSvg")+"...",function(){a.showEmbedImageDialog(function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.createEmbedSvg(b,c,d,e,f,g,function(b){a.spinner.stop();b=new EmbedDialog(a,b);a.showDialog(b.container,440,240,!0,!0);b.init()},function(b){a.spinner.stop();a.handleError(b)})},mxResources.get("formatSvg"),mxResources.get("image"),!0,"https://desk.draw.io/support/solutions/articles/16000042548")}));
a.actions.put("embedIframe",new Action(mxResources.get("iframe")+"...",function(){var b=d.getGraphBounds();a.showPublishLinkDialog(mxResources.get("iframe"),null,"100%",Math.ceil((b.y+b.height-d.view.translate.y)/d.view.scale)+2,function(b,c,d,e,f,g,h,k){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(l){a.spinner.stop();l=new EmbedDialog(a,'<iframe frameborder="0" style="width:'+h+";height:"+k+';" src="'+a.createLink(b,c,d,e,f,g,l)+'"></iframe>');
a.showDialog(l.container,440,240,!0,!0);l.init()})},!0)}));a.actions.put("publishLink",new Action(mxResources.get("link")+"...",function(){a.showPublishLinkDialog(null,null,null,null,function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(h){a.spinner.stop();h=new EmbedDialog(a,a.createLink(b,c,d,e,f,g,h));a.showDialog(h.container,440,240,!0,!0);h.init()})})}));a.actions.addAction("googleDocs...",function(){a.openLink("http://docsaddon.draw.io")});
a.actions.addAction("googleSites...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();b=new GoogleSitesDialog(a,b);a.showDialog(b.container,420,256,!0,!0);b.init()})});if(isLocalStorage||mxClient.IS_CHROMEAPP)k=a.actions.addAction("scratchpad",function(){a.toggleScratchpad()}),k.setToggleAction(!0),k.setSelectedCallback(function(){return null!=a.scratchpad}),a.actions.addAction("plugins...",function(){a.showDialog((new PluginsDialog(a)).container,
360,156,!0,!1)});k=a.actions.addAction("search",function(){var b=a.sidebar.isEntryVisible("search");a.sidebar.showPalette("search",!b);isLocalStorage&&(mxSettings.settings.search=!b,mxSettings.save())});k.setToggleAction(!0);k.setSelectedCallback(function(){return a.sidebar.isEntryVisible("search")});"1"==urlParams.embed&&(a.actions.get("save").funct=function(b){d.isEditing()&&d.stopEditing();var c="0"!=urlParams.pages||null!=a.pages&&1<a.pages.length?a.getFileData(!0):mxUtils.getXml(a.editor.getGraphXml());
if("json"==urlParams.proto){var e=a.createLoadMessage("save");e.xml=c;b&&(e.exit=!0);c=JSON.stringify(e)}(window.opener||window.parent).postMessage(c,"*");"0"!=urlParams.modified&&"1"!=urlParams.keepmodified&&(a.editor.modified=!1,a.editor.setStatus(""));null!=a.getCurrentFile()&&a.saveFile()},a.actions.addAction("saveAndExit",function(){a.actions.get("save").funct(!0)}),a.actions.addAction("exit",function(){var b=function(){a.editor.modified=!1;var b="json"==urlParams.proto?JSON.stringify({event:"exit",
modified:a.editor.modified}):"";(window.opener||window.parent).postMessage(b,"*")};a.editor.modified?a.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}));this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){a.isExportToCanvas()?(this.addMenuItems(b,["exportPng"],c),a.jpgSupported&&b.addItem(mxResources.get("formatJpg")+"...",null,mxUtils.bind(this,function(){a.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),
"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(a,b,c,d,e,f,g,h,k){a=parseInt(a);!isNaN(a)&&0<a&&this.editorUi.exportImage(a/100,!1,c,d,!1,g,!h,!1,"jpeg")}),!0,!1,"jpeg")}),c)):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||(this.addMenuItems(b,["exportPng"],c),b.addItem(mxResources.get("formatJpg")+"...",null,mxUtils.bind(this,function(){a.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this,function(b,c){a.downloadFile("jpeg",null,null,b)}),
!0)}),c));this.addMenuItems(b,["exportSvg","-"],c);a.isOffline()||a.printPdfExport?this.addMenuItems(b,["exportPdf"],c):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["exportPdf"],c);this.addMenuItems(b,["exportHtml"],c);mxClient.IS_IE11||mxClient.IS_IE||"undefined"===typeof VsdxExport&&a.isOffline()||this.addMenuItems(b,["exportVsdx"],c);this.addMenuItems(b,["-","exportXml"],c);(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||/.*\.draw\.io$/.test(window.location.hostname))&&
b.addItem(mxResources.get("url")+"...",null,mxUtils.bind(this,function(){a.showPublishLinkDialog(mxResources.get("url"),!0,null,null,function(b,c,d,e,f,g){b=new EmbedDialog(a,a.createLink(b,c,d,e,f,g,null,!0));a.showDialog(b.container,440,240,!0,!0);b.init()})}),c);a.isOffline()||(b.addSeparator(c),this.addMenuItem(b,"export",c).firstChild.nextSibling.innerHTML=mxResources.get("advanced")+"...")})));this.editorUi.actions.addAction("chatWindowTitle...",mxUtils.bind(this.editorUi,this.editorUi.toggleChat));
this.put("importFrom",new Menu(function(b,c){function e(b){if(b&&Graph.fileSupport&&!mxClient.IS_IE&&!mxClient.IS_IE11){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,"change",function(){null!=c.files&&a.importFiles(c.files,null,null,a.maxImageSize)});c.click()}else{window.openNew=!1;window.openKey="import";var e=Editor.useLocalStorage;Editor.useLocalStorage=!b;window.openFile=new OpenFile(function(b){a.hideDialog(b)});window.openFile.setConsumer(function(b,
c){d.setSelectionCells(a.importXml(b))});a.showDialog((new OpenDialog(a)).container,360,220,!0,!0,function(){window.openFile=null});var f=a.dialog,g=f.close;a.dialog.close=function(b){Editor.useLocalStorage=e;g.apply(f,arguments);b&&null==a.getCurrentFile()&&"1"!=urlParams.embed&&a.showSplash()}}}function f(b){b.pickFile(function(c){a.spinner.spin(document.body,mxResources.get("loading"))&&b.getFile(c,function(b){var c=n(b.getTitle());/\.svg$/i.test(b.getTitle())&&!a.editor.isDataSvg(b.getData())&&
(b.setData(a.createSvgDataUri(b.getData())),c="image/svg+xml");k(b.getData(),c,b.getTitle())},function(b){a.handleError(b,null!=b?mxResources.get("errorLoadingFile"):null)},b==a.drive)},!0)}var k=mxUtils.bind(this,function(b,c,e){var f=d.view,g=d.getGraphBounds(),h=d.snap(Math.ceil(Math.max(0,g.x/f.scale-f.translate.x)+4*d.gridSize)),k=d.snap(Math.ceil(Math.max(0,(g.y+g.height)/f.scale-f.translate.y)+4*d.gridSize));"data:image/"==b.substring(0,11)?a.loadImage(b,mxUtils.bind(this,function(f){var g=
!0,l=mxUtils.bind(this,function(){a.resizeImage(f,b,mxUtils.bind(this,function(f,l,m){f=g?Math.min(1,Math.min(a.maxImageSize/l,a.maxImageSize/m)):1;a.importFile(b,c,h,k,Math.round(l*f),Math.round(m*f),e,function(b){a.spinner.stop();d.setSelectionCells(b);d.scrollCellToVisible(d.getSelectionCell())})}),g)});b.length>a.resampleThreshold?a.confirmImageResize(function(a){g=a;l()}):l()}),mxUtils.bind(this,function(){a.handleError({message:mxResources.get("cannotOpenFile")})})):a.importFile(b,c,h,k,0,0,
e,function(b){a.spinner.stop();d.setSelectionCells(b);d.scrollCellToVisible(d.getSelectionCell())})}),n=mxUtils.bind(this,function(a){var b="text/xml";/\.png$/i.test(a)?b="image/png":/\.jpe?g$/i.test(a)?b="image/jpg":/\.gif$/i.test(a)&&(b="image/gif");return b});"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){f(a.drive)},c):h&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",
null,function(){},c,null,!1));null!=a.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){f(a.gitHub)},c);null!=a.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){f(a.dropbox)},c):l&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",null,function(){f(a.oneDrive)},c):m&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},
c,null,!1);null!=a.trello?b.addItem(mxResources.get("trello")+"...",null,function(){f(a.trello)},c):g&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);b.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+"...",null,function(){e(!1)},c);mxClient.IS_IOS||b.addItem(mxResources.get("device")+"...",null,function(){e(!0)},c);a.isOffline()||(b.addSeparator(c),b.addItem(mxResources.get("url")+"...",null,function(){var b=
new FilenameDialog(a,"",mxResources.get("import"),function(b){if(null!=b&&0<b.length&&a.spinner.spin(document.body,mxResources.get("loading"))){var c=/(\.png)($|\?)/i.test(b)?"image/png":"text/xml";a.loadUrl(PROXY_URL+"?url="+encodeURIComponent(b),function(a){k(a,c,b)},function(){a.spinner.stop();a.handleError(null,mxResources.get("errorLoadingFile"))},"image/png"==c)}},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},c));b.addItem(mxResources.get("csv")+"...",null,function(){a.showImportCsvDialog()},
c)})).isEnabled=f;this.put("theme",new Menu(mxUtils.bind(this,function(b,c){var d=b.addItem(mxResources.get("kennedy"),null,function(){mxSettings.setUi("");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"atlas"!=uiTheme&&b.addCheckmark(d,Editor.checkmarkImage);d=b.addItem(mxResources.get("atlas"),null,function(){mxSettings.setUi("atlas");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"atlas"==uiTheme&&b.addCheckmark(d,Editor.checkmarkImage)})));
this.editorUi.actions.addAction("rename...",mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile();if(null!=b){var c=null!=b.getTitle()?b.getTitle():this.editorUi.defaultFilename,c=new FilenameDialog(this.editorUi,c,mxResources.get("rename"),mxUtils.bind(this,function(a){null!=a&&0<a.length&&null!=b&&this.editorUi.spinner.spin(document.body,mxResources.get("renaming"))&&b.rename(a,mxUtils.bind(this,function(a){this.editorUi.spinner.stop()}),mxUtils.bind(this,function(a){this.editorUi.handleError(a,
null!=a?mxResources.get("errorRenamingFile"):null)}))}),b.constructor==DriveFile||b.constructor==StorageFile?mxResources.get("diagramName"):null,function(b){if(null!=b&&0<b.length)return!0;a.showError(mxResources.get("error"),mxResources.get("invalidName"),mxResources.get("ok"));return!1});this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()}})).isEnabled=function(){return this.enabled&&f.apply(this,arguments)};a.actions.addAction("makeCopy...",mxUtils.bind(this,function(){var b=a.getCurrentFile();
if(null!=b){var c=null!=b.getTitle()?b.getTitle():a.defaultFilename,d="",e=c.lastIndexOf(".");0<=e&&(d=c.substring(e),c=c.substring(0,e));c=mxResources.get("copyOf",[c])+d;b.constructor==DriveFile?(c=new CreateDialog(a,c,mxUtils.bind(this,function(c,d){"download"==d&&(d=App.MODE_GOOGLE);null!=c&&0<c.length&&(d==App.MODE_GOOGLE?a.spinner.spin(document.body,mxResources.get("saving"))&&b.save(!1,mxUtils.bind(this,function(){b.saveAs(c,mxUtils.bind(this,function(b){a.spinner.stop();var c=a.getUrl();window.openWindow(c+
"#G"+b.id,null,mxUtils.bind(this,function(){window.location.hash="G"+b.id}))}),mxUtils.bind(this,function(b){a.handleError(b)}))}),mxUtils.bind(this,function(b){a.handleError(b)})):this.editorUi.createFile(c,this.editorUi.getFileData(!0),null,d))}),mxUtils.bind(this,function(){a.hideDialog()}),mxResources.get("makeCopy"),mxResources.get("create"),null,null,null,null,!0),a.showDialog(c.container,420,380,!0,!0),c.init()):a.editor.editAsNew(a.getEditBlankXml(),c)}}));a.actions.addAction("moveToFolder...",
mxUtils.bind(this,function(){var b=a.getCurrentFile();b.getMode()!=App.MODE_GOOGLE&&b.getMode()!=App.MODE_ONEDRIVE||a.pickFolder(b.getMode(),mxUtils.bind(this,function(c){a.spinner.spin(document.body,mxResources.get("moving"))&&b.move(c,mxUtils.bind(this,function(b){a.spinner.stop()}),mxUtils.bind(this,function(b){a.handleError(b)}))}))}));this.put("publish",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,["publishLink"],b)})));a.actions.put("offline",new Action(mxResources.get("offline")+
"...",function(){a.openLink("https://www.draw.io/app")}));a.actions.put("download",new Action(mxResources.get("download")+"...",function(){a.openLink("https://download.draw.io")}));this.editorUi.actions.addAction("share...",mxUtils.bind(this,function(){var a=this.editorUi.getCurrentFile();null!=a&&this.editorUi.drive.showPermissions(a.getId())}));this.put("embed",new Menu(mxUtils.bind(this,function(b,c){"1"==urlParams.test&&this.addMenuItems(b,["liveImage","-"],c);this.addMenuItems(b,["embedImage",
"embedSvg","-","embedHtml"],c);navigator.standalone||a.isOffline()||this.addMenuItems(b,["embedIframe"],c);a.isOffline()||this.addMenuItems(b,["-","googleSites","googleDocs"],c)})));var q="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle - fromText".split(" "),z=function(b,c,d,e){b.addItem(d,null,mxUtils.bind(this,function(){if("fromText"==e){var b=new ParseDialog(a,d);a.showDialog(b.container,620,420,!0,!1);a.dialog.container.style.overflow="auto"}else b=new CreateGraphDialog(a,
d,e),a.showDialog(b.container,620,420,!0,!1);b.init()}),c)},w=function(a,b,c,e){var f=d.isMouseInsertPoint()?d.getInsertPoint():d.getFreeInsertPoint();a=new mxCell(a,new mxGeometry(f.x,f.y,b,c),e);a.vertex=!0;d.getModel().beginUpdate();try{a=d.addCell(a),d.fireEvent(new mxEventObject("cellsInserted","cells",[a]))}finally{d.getModel().endUpdate()}d.setSelectionCell(a);d.scrollCellToVisible(a);return a};a.actions.addAction("insertText",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&
d.startEditingAtCell(w("Text",40,20,"text;html=1;resizable=0;autosize=1;align=center;verticalAlign=middle;points=[];fillColor=none;strokeColor=none;rounded=0;"))},null,null,Editor.ctrlKey+"+Shift+X").isEnabled=f;a.actions.addAction("insertRectangle",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&w("",120,60,"whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+K").isEnabled=f;a.actions.addAction("insertEllipse",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&w("",
80,80,"ellipse;whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+Shift+K").isEnabled=f;a.actions.addAction("insertRhombus",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&w("",80,80,"rhombus;whiteSpace=wrap;html=1;")}).isEnabled=f;this.put("insert",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,"insertText insertRectangle - insertEllipse insertRhombus - insertLink insertImage".split(" "),b);a.addSeparator(b);for(var c=0;c<q.length;c++)"-"==q[c]?a.addSeparator(b):
z(a,b,mxResources.get(q[c])+"...",q[c])})));this.put("openRecent",new Menu(function(b,c){var d=a.getRecent();if(null!=d){for(var e=0;e<d.length;e++)(function(d){var e=d.mode;e==App.MODE_GOOGLE?e="googleDrive":e==App.MODE_ONEDRIVE&&(e="oneDrive");b.addItem(d.title+" ("+mxResources.get(e)+")",null,function(){a.loadFile(d.id)},c)})(d[e]);b.addSeparator(c)}b.addItem(mxResources.get("reset"),null,function(){a.resetRecent()},c)}));this.put("openFrom",new Menu(function(b,c){null!=a.drive?b.addItem(mxResources.get("googleDrive")+
"...",null,function(){a.pickFile(App.MODE_GOOGLE)},c):h&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){a.pickFile(App.MODE_GITHUB)},c);null!=a.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){a.pickFile(App.MODE_DROPBOX)},c):l&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.oneDrive?
b.addItem(mxResources.get("oneDrive")+"...",null,function(){a.pickFile(App.MODE_ONEDRIVE)},c):m&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.trello?b.addItem(mxResources.get("trello")+"...",null,function(){a.pickFile(App.MODE_TRELLO)},c):g&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);b.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+
@ -7408,9 +7435,10 @@ I)}mxEvent.isConsumed(a)||F.apply(this,arguments)};var B=q.connectVertex;q.conne
q.graphHandler.getCells;q.graphHandler.getCells=function(a){for(var c=C.apply(this,arguments),e=c.slice(0),f=0;f<e.length;f++)if(b(e[f]))for(var g=q.getIncomingEdges(e[f]),h=0;h<g.length;h++)mxUtils.remove(g[h],c);for(f=0;f<e.length;f++)g=c[f],b(g)&&!d(g)&&q.traverse(g,!0,function(a,b){null!=b&&0>mxUtils.indexOf(c,b)&&c.push(b);0>mxUtils.indexOf(c,a)&&c.push(a);return!0});return c};u.prototype.destroy=function(){if(null!=this.images)for(var a=0;a<this.images.length;a++){var b=this.images[a];b.parentNode.removeChild(b)}this.images=
null};q.addMouseListener({currentState:null,currentIconSet:null,mouseDown:function(a,b){null!=this.currentState&&(this.dragLeave(b.getEvent(),this.currentState),this.currentState=null)},mouseMove:function(a,c){if(null!=this.currentState&&(c.getState()==this.currentState||null==c.getState())){var e=new mxRectangle(c.getGraphX()-20,c.getGraphY()-20,40,40);if(mxUtils.intersects(e,this.currentState))return}e=c.getState();if(q.isMouseDown&&!mxEvent.isTouchEvent(c.getEvent())||q.isEditing()||null!=e&&(!q.getModel().isVertex(e.cell)||
!b(c.getCell())||d(e.cell)))e=null;e!=this.currentState&&(null!=this.currentState&&this.dragLeave(c.getEvent(),this.currentState),this.currentState=e,null!=this.currentState&&this.dragEnter(c.getEvent(),this.currentState))},mouseUp:function(a,b){},dragEnter:function(a,b){null==this.currentIconSet&&(this.currentIconSet=new u(b))},dragLeave:function(a,b){null!=this.currentIconSet&&(this.currentIconSet.destroy(),this.currentIconSet=null)}})};if("undefined"!==typeof Sidebar){var c=Sidebar.prototype.createAdvancedShapes;
Sidebar.prototype.createAdvancedShapes=function(){var a=c.apply(this,arguments),b=this.editorUi.editor.graph;return a.concat([this.addEntry("tree mindmap central idea branch topic",function(){var a=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var b=new mxCell("Central Idea",new mxGeometry(160,60,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");b.vertex=!0;var c=new mxCell("Topic",
new mxGeometry(320,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!0);c.insertEdge(d,!1);var e=new mxCell("Branch",new mxGeometry(320,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");
e.vertex=!0;var f=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");f.geometry.relative=!0;f.edge=!0;b.insertEdge(f,!0);e.insertEdge(f,!1);var p=new mxCell("Topic",new mxGeometry(20,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");p.vertex=!0;var u=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
Sidebar.prototype.createAdvancedShapes=function(){var a=c.apply(this,arguments),b=this.editorUi.editor.graph;return a.concat([this.addEntry("tree container",function(){var a=new mxCell("Tree Container",new mxGeometry(0,0,220,160),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea branch topic",function(){var a=new mxCell("Mindmap",new mxGeometry(0,
0,420,126),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var b=new mxCell("Central Idea",new mxGeometry(160,60,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");b.vertex=!0;var c=new mxCell("Topic",new mxGeometry(320,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");c.vertex=!0;var d=new mxCell("",
new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!0);c.insertEdge(d,!1);var e=new mxCell("Branch",new mxGeometry(320,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");e.vertex=
!0;var f=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");f.geometry.relative=!0;f.edge=!0;b.insertEdge(f,!0);e.insertEdge(f,!1);var p=new mxCell("Topic",new mxGeometry(20,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");p.vertex=!0;var u=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
u.geometry.relative=!0;u.edge=!0;b.insertEdge(u,!0);p.insertEdge(u,!1);var t=new mxCell("Branch",new mxGeometry(20,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");t.vertex=!0;var q=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
q.geometry.relative=!0;q.edge=!0;b.insertEdge(q,!0);t.insertEdge(q,!1);a.insert(d);a.insert(f);a.insert(u);a.insert(q);a.insert(b);a.insert(c);a.insert(e);a.insert(p);a.insert(t);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea",function(){var a=new mxCell("Central Idea",new mxGeometry(0,0,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");a.vertex=!0;return sb.createVertexTemplateFromCells([a],
a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap branch",function(){var a=new mxCell("Branch",new mxGeometry(0,0,80,20),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");
@ -7418,7 +7446,7 @@ b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edg
0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree orgchart organization division",function(){var a=new mxCell("Orgchart",new mxGeometry(0,0,280,220),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var c=new mxCell("Organization",
new mxGeometry(80,40,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");b.setAttributeForCell(c,"treeRoot","1");c.vertex=!0;var d=new mxCell("Division",new mxGeometry(20,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");d.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");e.geometry.relative=!0;e.edge=!0;
c.insertEdge(e,!0);d.insertEdge(e,!1);var f=new mxCell("Division",new mxGeometry(160,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");f.vertex=!0;var n=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");n.geometry.relative=!0;n.edge=!0;c.insertEdge(n,!0);f.insertEdge(n,!1);a.insert(e);a.insert(n);a.insert(c);a.insert(d);a.insert(f);return sb.createVertexTemplateFromCells([a],
a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree container",function(){var a=new mxCell("Tree Container",new mxGeometry(0,0,220,160),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree root",function(){var a=new mxCell("Organization",new mxGeometry(0,0,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");b.setAttributeForCell(a,
"treeRoot","1");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree sub sections",function(){var a=new mxCell("Sub Section",new mxGeometry(0,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");
b.geometry.setTerminalPoint(new mxPoint(110,-40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);var c=new mxCell("Sub Section",new mxGeometry(120,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");d.geometry.setTerminalPoint(new mxPoint(110,
-40),!0);d.geometry.relative=!0;d.edge=!0;c.insertEdge(d,!1);return sb.createVertexTemplateFromCells([b,d,a,c],220,60,"Sub Sections")})])}}})();
a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree root",function(){var a=new mxCell("Organization",new mxGeometry(0,0,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");b.setAttributeForCell(a,"treeRoot","1");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree division",function(){var a=new mxCell("Division",new mxGeometry(20,40,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");
a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");b.geometry.setTerminalPoint(new mxPoint(0,0),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree sub sections",function(){var a=new mxCell("Sub Section",new mxGeometry(0,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");
a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");b.geometry.setTerminalPoint(new mxPoint(110,-40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);var c=new mxCell("Sub Section",new mxGeometry(120,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,
0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");d.geometry.setTerminalPoint(new mxPoint(110,-40),!0);d.geometry.relative=!0;d.edge=!0;c.insertEdge(d,!1);return sb.createVertexTemplateFromCells([b,d,a,c],220,60,"Sub Sections")})])}}})();

File diff suppressed because one or more lines are too long

690
war/js/atlas.min.js vendored

File diff suppressed because one or more lines are too long

View file

@ -59,6 +59,7 @@ mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-Network.js');
mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-Office.js');
mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-PID.js');
mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-Rack.js');
mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-Sitemap.js');
mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-Sysml.js');
mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-Veeam.js');
mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-WebIcons.js');

View file

@ -297,39 +297,39 @@
'ERDEntityBlock3' : cs,
'ERDEntityBlock4' : cs,
//Site Maps
'SMPage' : cs,
'SMHome' : cs,
// 'SMGallery' NA
// 'SMShopping' NA
// 'SMMap' NA
// 'SMAthletics' NA
// 'SMLogin' NA
'SMPrint' : cs,
// 'SMScript' NA
'SMSearch' : cs,
'SMSettings' : cs,
'SMSitemap' : cs,
'SMSuccess' : cs,
'SMVideo' : cs,
'SMAudio' : cs,
// 'SMBlog' NA
'SMCalendar' : cs,
'SMChart' : cs,
'SMCloud' : cs,
'SMDocument' : cs,
// 'SMDownload' NA
// 'SMError' NA
'SMForm' : cs,
'SMGame' : cs,
// 'SMJobs' NA
// 'SMLucid' NA
// 'SMNewspress' NA
// 'SMPhoto' NA
// 'SMPortfolio' NA
// 'SMPricing' NA
// 'SMProfile' NA
// 'SMSlideshow' NA
'SMUpload' : cs,
'SMPage' : 'shape=mxgraph.sitemap.page',
'SMHome' : 'shape=mxgraph.sitemap.home',
'SMGallery' : 'shape=mxgraph.sitemap.gallery',
'SMShopping' : 'shape=mxgraph.sitemap.shopping',
'SMMap' : 'shape=mxgraph.sitemap.map',
'SMAthletics' : 'shape=mxgraph.sitemap.sports',
'SMLogin' : 'shape=mxgraph.sitemap.login',
'SMPrint' : 'shape=mxgraph.sitemap.print',
'SMScript' : 'shape=mxgraph.sitemap.script',
'SMSearch' : 'shape=mxgraph.sitemap.search',
'SMSettings' : 'shape=mxgraph.sitemap.settings',
'SMSitemap' : 'shape=mxgraph.sitemap.sitemap',
'SMSuccess' : 'shape=mxgraph.sitemap.success',
'SMVideo' : 'shape=mxgraph.sitemap.video',
'SMAudio' : 'shape=mxgraph.sitemap.audio',
'SMBlog' : 'shape=mxgraph.sitemap.blog',
'SMCalendar' : 'shape=mxgraph.sitemap.calendar',
'SMChart' : 'shape=mxgraph.sitemap.chart',
'SMCloud' : 'shape=mxgraph.sitemap.cloud',
'SMDocument' : 'shape=mxgraph.sitemap.document',
'SMDownload' : 'shape=mxgraph.sitemap.download',
'SMError' : 'shape=mxgraph.sitemap.error',
'SMForm' : 'shape=mxgraph.sitemap.form',
'SMGame' : 'shape=mxgraph.sitemap.game',
'SMJobs' : 'shape=mxgraph.sitemap.jobs',
'SMLucid' : 'shape=mxgraph.sitemap.page',
'SMNewspress' : 'shape=mxgraph.sitemap.news',
'SMPhoto' : 'shape=mxgraph.sitemap.photo',
'SMPortfolio' : 'shape=mxgraph.sitemap.portfolio',
'SMPricing' : 'shape=mxgraph.sitemap.pricing',
'SMProfile' : 'shape=mxgraph.sitemap.profile',
'SMSlideshow' : 'shape=mxgraph.sitemap.slideshow',
'SMUpload' : 'shape=mxgraph.sitemap.upload',
//UML Class Diagram
'UMLClassBlock': cs,
'UMLActiveClassBlock': 'shape=process',

View file

@ -890,7 +890,20 @@
graph.insertVertex(parent, null, '', b.x / s - tr.x, b.y / s - tr.y, b.width / s, b.height / s, 'fillColor=none;strokeColor=red;');
}));
this.addMenuItems(menu, ['-', 'showBoundingBox'], parent);
mxResources.parse('createSidebarEntry=Create sidebar entry');
this.editorUi.actions.addAction('createSidebarEntry', mxUtils.bind(this, function()
{
if (!graph.isSelectionEmpty())
{
mxLog.show();
mxLog.debug('sb.createVertexTemplateFromData(\'' +
graph.compress(mxUtils.getXml(graph.encodeCells(graph.getSelectionCells()))) +
'\', width, height, \'Title\');');
}
}));
this.addMenuItems(menu, ['-', 'createSidebarEntry', 'showBoundingBox'], parent);
// For testing local XML export
mxResources.parse('testXmlImageExport=XML Image Export');

View file

@ -1287,6 +1287,15 @@
var graph = this.editorUi.editor.graph;
return result.concat([
this.addEntry('tree container', function()
{
var cell = new mxCell('Tree Container', new mxGeometry(0, 0, 220, 160),
'swimlane;html=1;startSize=20;horizontal=1;containerType=tree;');
cell.vertex = true;
return sb.createVertexTemplateFromCells([cell], cell.geometry.width,
cell.geometry.height, cell.value);
}),
this.addEntry('tree mindmap central idea branch topic', function()
{
var mindmap = new mxCell('Mindmap', new mxGeometry(0, 0, 420, 126),
@ -1461,15 +1470,6 @@
return sb.createVertexTemplateFromCells([orgchart], orgchart.geometry.width,
orgchart.geometry.height, orgchart.value);
}),
this.addEntry('tree container', function()
{
var cell = new mxCell('Tree Container', new mxGeometry(0, 0, 220, 160),
'swimlane;html=1;startSize=20;horizontal=1;containerType=tree;');
cell.vertex = true;
return sb.createVertexTemplateFromCells([cell], cell.geometry.width,
cell.geometry.height, cell.value);
}),
this.addEntry('tree root', function()
{
var cell = new mxCell('Organization', new mxGeometry(0, 0, 120, 60),
@ -1481,6 +1481,25 @@
return sb.createVertexTemplateFromCells([cell], cell.geometry.width,
cell.geometry.height, cell.value);
}),
this.addEntry('tree division', function()
{
var cell = new mxCell('Division', new mxGeometry(20, 40, 100, 60),
'whiteSpace=wrap;html=1;align=center;verticalAlign=middle;' +
'container=1;recursiveResize=0;treeFolding=1;');
cell.vertex = true;
var edge = new mxCell('', new mxGeometry(0, 0, 0, 0),
'edgeStyle=elbowEdgeStyle;elbow=vertical;' +
'startArrow=none;endArrow=none;rounded=0;');
edge.geometry.setTerminalPoint(new mxPoint(0, 0), true);
edge.geometry.relative = true;
edge.edge = true;
cell.insertEdge(edge, false);
return sb.createVertexTemplateFromCells([cell, edge], cell.geometry.width,
cell.geometry.height, cell.value);
}),
this.addEntry('tree sub sections', function()
{
var cell = new mxCell('Sub Section', new mxGeometry(0, 0, 100, 60),

View file

@ -28,12 +28,12 @@
w, h, '', 'Wall (U)', null, null, this.getTagsForStencil(gn, 'wallU', dt).join(' ')),
this.createVertexTemplateEntry(s + 'room;fillColor=#000000;',
w, h, '', 'Room', null, null, this.getTagsForStencil(gn, 'room', dt).join(' ')),
this.createVertexTemplateEntry(s + 'window;fillColor=#ffffff;',
this.createVertexTemplateEntry('shape=dimension;whiteSpace=wrap;html=1;align=center;points=[];verticalAlign=bottom;spacingBottom=-5;labelBackgroundColor=#ffffff', 100, 40, 'Label', 'Horizontal Dimension', null, null, 'horizontal dimension measure distance unit'),
this.createVertexTemplateEntry('shape=dimension;direction=west;whiteSpace=wrap;html=1;align=center;points=[];verticalAlign=top;spacingTop=-8;labelBackgroundColor=#ffffff', 100, 40, 'Label', 'Vertical Dimension', null, null, 'vertical dimension measure distance unit'),
this.createVertexTemplateEntry('shape=dimension;direction=north;whiteSpace=wrap;html=1;align=right;points=[];verticalAlign=middle;labelBackgroundColor=#ffffff', 40, 100, 'Label', 'Vertical Dimension', null, null, 'vertical dimension measure distance unit'),
this.createVertexTemplateEntry('shape=dimension;direction=south;whiteSpace=wrap;html=1;align=left;points=[];verticalAlign=middle;labelBackgroundColor=#ffffff', 40, 100, 'Label', 'Horizontal Dimension', null, null, 'horizontal dimension measure distance unit'),
this.createVertexTemplateEntry(s + 'window;fillColor=#ffffff;',
w, 10, '', 'Window', null, null, this.getTagsForStencil(gn, 'window', dt).join(' ')),
this.createVertexTemplateEntry(s2 + 'dimension;verticalAlign=top;',
w * 2, 40, '100', 'Dimension', null, null, this.getTagsForStencil(gn, 'dimension', dt).join(' ')),
this.createVertexTemplateEntry(s2 + 'dimensionBottom;verticalAlign=bottom;',
w * 2, 40, '100', 'Dimension', null, null, this.getTagsForStencil(gn, 'dimensionBottom', dt).join(' ')),
this.createVertexTemplateEntry(s + 'stairs;',
300, 100, '', 'Stairs', null, null, this.getTagsForStencil(gn, 'stairs', dt).join(' ')),
this.createVertexTemplateEntry(s + 'stairs;direction=south;',

View file

@ -0,0 +1,129 @@
(function()
{
// Adds Sitemap shapes
Sidebar.prototype.addSitemapPalette = function()
{
var s = 'html=1;strokeColor=none;fillColor=#0079D6;labelPosition=center;verticalLabelPosition=middle;verticalAlign=top;align=center;fontSize=12;spacingTop=-6;fontColor=#FFFFFF;shape=mxgraph.sitemap.';
// Space savers
var sb = this;
var gn = 'mxgraph.sitemap';
var dt = '';
var scale = 0.2;
var w = 600 * scale;
var h = 350 * scale;
var fns =
[
this.createVertexTemplateEntry(s + 'page;',
w, h, 'Page', 'Page', null, null, this.getTagsForStencil(gn, 'page', dt).join(' ')),
this.createVertexTemplateEntry(s + 'about_us;',
w, h, 'About us', 'About us', null, null, this.getTagsForStencil(gn, 'about', dt).join(' ')),
this.createVertexTemplateEntry(s + 'audio;',
w, h, 'Audio', 'Audio', null, null, this.getTagsForStencil(gn, 'audio', dt).join(' ')),
this.createVertexTemplateEntry(s + 'biography;',
w, h, 'Biography', 'Biography', null, null, this.getTagsForStencil(gn, 'biography', dt).join(' ')),
this.createVertexTemplateEntry(s + 'blog;',
w, h, 'Blog', 'Blog', null, null, this.getTagsForStencil(gn, 'blog', dt).join(' ')),
this.createVertexTemplateEntry(s + 'calendar;',
w, h, 'Calendar', 'Calendar', null, null, this.getTagsForStencil(gn, 'calendar', dt).join(' ')),
this.createVertexTemplateEntry(s + 'chart;',
w, h, 'Chart', 'Chart', null, null, this.getTagsForStencil(gn, 'chart', dt).join(' ')),
this.createVertexTemplateEntry(s + 'chat;',
w, h, 'Chat', 'Chat', null, null, this.getTagsForStencil(gn, 'chat', dt).join(' ')),
this.createVertexTemplateEntry(s + 'cloud;',
w, h, 'Cloud', 'Cloud', null, null, this.getTagsForStencil(gn, 'cloud', dt).join(' ')),
this.createVertexTemplateEntry(s + 'contact;',
w, h, 'Contact', 'Contact', null, null, this.getTagsForStencil(gn, 'contact', dt).join(' ')),
this.createVertexTemplateEntry(s + 'contact_us;',
w, h, 'Contact us', 'Contact us', null, null, this.getTagsForStencil(gn, 'contact', dt).join(' ')),
this.createVertexTemplateEntry(s + 'document;',
w, h, 'Document', 'Document', null, null, this.getTagsForStencil(gn, 'document', dt).join(' ')),
this.createVertexTemplateEntry(s + 'download;',
w, h, 'Download', 'Download', null, null, this.getTagsForStencil(gn, 'download', dt).join(' ')),
this.createVertexTemplateEntry(s + 'error;',
w, h, 'Error', 'Error', null, null, this.getTagsForStencil(gn, 'error', dt).join(' ')),
this.createVertexTemplateEntry(s + 'faq;',
w, h, 'FAQ', 'FAQ', null, null, this.getTagsForStencil(gn, 'faq frequently asked questions', dt).join(' ')),
this.createVertexTemplateEntry(s + 'form;',
w, h, 'Form', 'Form', null, null, this.getTagsForStencil(gn, 'form', dt).join(' ')),
this.createVertexTemplateEntry(s + 'gallery;',
w, h, 'Gallery', 'Gallery', null, null, this.getTagsForStencil(gn, 'gallery', dt).join(' ')),
this.createVertexTemplateEntry(s + 'game;',
w, h, 'Game', 'Game', null, null, this.getTagsForStencil(gn, 'game', dt).join(' ')),
this.createVertexTemplateEntry(s + 'home;',
w, h, 'Home', 'Home', null, null, this.getTagsForStencil(gn, 'home', dt).join(' ')),
this.createVertexTemplateEntry(s + 'info;',
w, h, 'Info', 'Info', null, null, this.getTagsForStencil(gn, 'info', dt).join(' ')),
this.createVertexTemplateEntry(s + 'jobs;',
w, h, 'Jobs', 'Jobs', null, null, this.getTagsForStencil(gn, 'jobs', dt).join(' ')),
this.createVertexTemplateEntry(s + 'log;',
w, h, 'Log', 'Log', null, null, this.getTagsForStencil(gn, 'log', dt).join(' ')),
this.createVertexTemplateEntry(s + 'login;',
w, h, 'Login', 'Login', null, null, this.getTagsForStencil(gn, 'login', dt).join(' ')),
this.createVertexTemplateEntry(s + 'mail;',
w, h, 'Mail', 'Mail', null, null, this.getTagsForStencil(gn, 'mail', dt).join(' ')),
this.createVertexTemplateEntry(s + 'map;',
w, h, 'Map', 'Map', null, null, this.getTagsForStencil(gn, 'map', dt).join(' ')),
this.createVertexTemplateEntry(s + 'news;',
w, h, 'News', 'News', null, null, this.getTagsForStencil(gn, 'news', dt).join(' ')),
this.createVertexTemplateEntry(s + 'payment;',
w, h, 'Payment', 'Payment', null, null, this.getTagsForStencil(gn, 'payment', dt).join(' ')),
this.createVertexTemplateEntry(s + 'photo;',
w, h, 'Photo', 'Photo', null, null, this.getTagsForStencil(gn, 'photo', dt).join(' ')),
this.createVertexTemplateEntry(s + 'portfolio;',
w, h, 'Portfolio', 'Portfolio', null, null, this.getTagsForStencil(gn, 'portfolio', dt).join(' ')),
this.createVertexTemplateEntry(s + 'post;',
w, h, 'Post', 'Post', null, null, this.getTagsForStencil(gn, 'post', dt).join(' ')),
this.createVertexTemplateEntry(s + 'pricing;',
w, h, 'Pricing', 'Pricing', null, null, this.getTagsForStencil(gn, 'pricing', dt).join(' ')),
this.createVertexTemplateEntry(s + 'print;',
w, h, 'Print', 'Print', null, null, this.getTagsForStencil(gn, 'print', dt).join(' ')),
this.createVertexTemplateEntry(s + 'products;',
w, h, 'Products', 'Products', null, null, this.getTagsForStencil(gn, 'products', dt).join(' ')),
this.createVertexTemplateEntry(s + 'profile;',
w, h, 'Profile', 'Profile', null, null, this.getTagsForStencil(gn, 'profile', dt).join(' ')),
this.createVertexTemplateEntry(s + 'references;',
w, h, 'References', 'References', null, null, this.getTagsForStencil(gn, 'references', dt).join(' ')),
this.createVertexTemplateEntry(s + 'script;',
w, h, 'Script', 'Script', null, null, this.getTagsForStencil(gn, 'script', dt).join(' ')),
this.createVertexTemplateEntry(s + 'search;',
w, h, 'Search', 'Search', null, null, this.getTagsForStencil(gn, 'search', dt).join(' ')),
this.createVertexTemplateEntry(s + 'security;',
w, h, 'Security', 'Security', null, null, this.getTagsForStencil(gn, 'security', dt).join(' ')),
this.createVertexTemplateEntry(s + 'services;',
w, h, 'Services', 'Services', null, null, this.getTagsForStencil(gn, 'services', dt).join(' ')),
this.createVertexTemplateEntry(s + 'settings;',
w, h, 'Settings', 'Settings', null, null, this.getTagsForStencil(gn, 'settings', dt).join(' ')),
this.createVertexTemplateEntry(s + 'shopping;',
w, h, 'Shopping', 'Shopping', null, null, this.getTagsForStencil(gn, 'shopping', dt).join(' ')),
this.createVertexTemplateEntry(s + 'sitemap;',
w, h, 'Sitemap', 'Sitemap', null, null, this.getTagsForStencil(gn, 'sitemap', dt).join(' ')),
this.createVertexTemplateEntry(s + 'slideshow;',
w, h, 'Slideshow', 'Slideshow', null, null, this.getTagsForStencil(gn, 'slideshow', dt).join(' ')),
this.createVertexTemplateEntry(s + 'sports;',
w, h, 'Sports', 'Sports', null, null, this.getTagsForStencil(gn, 'sports', dt).join(' ')),
this.createVertexTemplateEntry(s + 'success;',
w, h, 'Success', 'Success', null, null, this.getTagsForStencil(gn, 'success', dt).join(' ')),
this.createVertexTemplateEntry(s + 'text;',
w, h, 'Text', 'Text', null, null, this.getTagsForStencil(gn, 'text', dt).join(' ')),
this.createVertexTemplateEntry(s + 'upload;',
w, h, 'Upload', 'Upload', null, null, this.getTagsForStencil(gn, 'upload', dt).join(' ')),
this.createVertexTemplateEntry(s + 'user;',
w, h, 'User', 'User', null, null, this.getTagsForStencil(gn, 'user', dt).join(' ')),
this.createVertexTemplateEntry(s + 'video;',
w, h, 'Video', 'Video', null, null, this.getTagsForStencil(gn, 'video', dt).join(' ')),
this.createVertexTemplateEntry(s + 'warning;',
w, h, 'Warning', 'Warning', null, null, this.getTagsForStencil(gn, 'warning', dt).join(' '))
];
this.addPalette('sitemap', 'Sitemap', false, mxUtils.bind(this, function(content)
{
for (var i = 0; i < fns.length; i++)
{
content.appendChild(fns[i](content));
}
}));
};
})();

View file

@ -116,7 +116,7 @@
Sidebar.prototype.configuration = [{id: 'general', libs: ['general', 'misc', 'advanced']}, {id: 'uml'}, {id: 'search'}, {id: 'er'},
{id: 'ios', prefix: 'ios', libs: [''/*prefix is library*/, '7icons', '7ui']},
{id: 'android', prefix: 'android', libs: [''/*prefix is library*/]}, {id: 'aws3d'},
{id: 'flowchart'}, {id: 'basic'}, {id: 'arrows'}, {id: 'arrows2'}, {id: 'lean_mapping'}, {id: 'citrix'}, {id: 'azure'}, {id: 'network'},
{id: 'flowchart'}, {id: 'basic'}, {id: 'arrows'}, {id: 'arrows2'}, {id: 'lean_mapping'}, {id: 'citrix'}, {id: 'azure'}, {id: 'network'}, {id: 'sitemap'},
{id: 'mscae', prefix: 'mscae', libs: ['Cloud', 'Enterprise', 'General', 'Intune', 'Other', 'System Center', 'Deprecated']},
@ -341,6 +341,7 @@
{title: mxResources.get('entityRelation'), id: 'er', image: IMAGE_PATH + '/sidebar-er.png'},
{title: mxResources.get('ios'), id: 'ios', image: IMAGE_PATH + '/sidebar-ios.png'},
{title: mxResources.get('mockups'), id: 'mockups', image: IMAGE_PATH + '/sidebar-mockups.png'},
{title: 'Sitemap', id: 'sitemap', image: IMAGE_PATH + '/sidebar-sitemap.png'},
{title: mxResources.get('uml'), id: 'uml', image: IMAGE_PATH + '/sidebar-uml.png'}]},
{title: mxResources.get('networking'),
entries: [{title: mxResources.get('aws'), id: 'aws3', image: IMAGE_PATH + '/sidebar-aws3.png'},
@ -667,6 +668,7 @@
this.addOfficePalette();
this.addVeeamPalette();
this.addIBMPalette();
this.addSitemapPalette();
this.addStencilPalette('arrows', mxResources.get('arrows'), dir + '/arrows.xml',
';html=1;' + mxConstants.STYLE_VERTICAL_LABEL_POSITION + '=bottom;' + mxConstants.STYLE_VERTICAL_ALIGN + '=top;' + mxConstants.STYLE_STROKEWIDTH + '=2;strokeColor=#000000;');

View file

@ -184,7 +184,7 @@ f)+"\n"+t+"}":"{"+z.join(",")+"}";f=t;return l}}"function"!==typeof Date.prototy
e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});
"function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.prototype.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();"undefined"===typeof window.mxBasePath&&(window.mxBasePath="https://www.draw.io/mxgraph/");window.mxLoadStylesheets=window.mxLoadStylesheets||!1;window.mxLoadResources=window.mxLoadResources||!1;window.mxLanguage=window.mxLanguage||"en";window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";
window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"7.7.6",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"7.7.7",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT:0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&&
0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.indexOf("Firefox/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&
0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||
@ -1312,8 +1312,8 @@ mxGraph.prototype.createEdgeHandler=function(a,b){return b==mxEdgeStyle.Loop||b=
mxGraph.prototype.addMouseListener=function(a){null==this.mouseListeners&&(this.mouseListeners=[]);this.mouseListeners.push(a)};mxGraph.prototype.removeMouseListener=function(a){if(null!=this.mouseListeners)for(var b=0;b<this.mouseListeners.length;b++)if(this.mouseListeners[b]==a){this.mouseListeners.splice(b,1);break}};
mxGraph.prototype.updateMouseEvent=function(a,b){if(null==a.graphX||null==a.graphY){var c=mxUtils.convertPoint(this.container,a.getX(),a.getY());a.graphX=c.x-this.panDx;a.graphY=c.y-this.panDy;null==a.getCell()&&this.isMouseDown&&b==mxEvent.MOUSE_MOVE&&(a.state=this.view.getState(this.getCellAt(c.x,c.y,null,null,null,function(a){return null==a.shape||a.shape.paintBackground!=mxRectangleShape.prototype.paintBackground||"1"==mxUtils.getValue(a.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=a.shape.fill&&
a.shape.fill!=mxConstants.NONE})))}return a};mxGraph.prototype.getStateForTouchEvent=function(a){var b=mxEvent.getClientX(a);a=mxEvent.getClientY(a);b=mxUtils.convertPoint(this.container,b,a);return this.view.getState(this.getCellAt(b.x,b.y))};
mxGraph.prototype.isEventIgnored=function(a,b,c){var d=mxEvent.isMouseEvent(b.getEvent()),e=!1;b.getEvent()==this.lastEvent?e=!0:this.lastEvent=b.getEvent();null!=this.eventSource&&a!=mxEvent.MOUSE_MOVE?(mxEvent.removeGestureListeners(this.eventSource,null,this.mouseMoveRedirect,this.mouseUpRedirect),this.eventSource=this.mouseUpRedirect=this.mouseMoveRedirect=null):null!=this.eventSource&&b.getSource()!=this.eventSource?e=!0:!mxClient.IS_TOUCH||a!=mxEvent.MOUSE_DOWN||d||mxEvent.isPenEvent(b.getEvent())||
(this.eventSource=b.getSource(),this.mouseMoveRedirect=mxUtils.bind(this,function(a){this.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(a,this.getStateForTouchEvent(a)))}),this.mouseUpRedirect=mxUtils.bind(this,function(a){this.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(a,this.getStateForTouchEvent(a)))}),mxEvent.addGestureListeners(this.eventSource,null,this.mouseMoveRedirect,this.mouseUpRedirect));this.isSyntheticEventIgnored(a,b,c)&&(e=!0);if(!mxEvent.isPopupTrigger(this.lastEvent)&&
mxGraph.prototype.isEventIgnored=function(a,b,c){var d=mxEvent.isMouseEvent(b.getEvent()),e=!1;b.getEvent()==this.lastEvent?e=!0:this.lastEvent=b.getEvent();null!=this.eventSource&&a!=mxEvent.MOUSE_MOVE?(mxEvent.removeGestureListeners(this.eventSource,null,this.mouseMoveRedirect,this.mouseUpRedirect),this.eventSource=this.mouseUpRedirect=this.mouseMoveRedirect=null):mxClient.IS_GC||null==this.eventSource||b.getSource()==this.eventSource?!mxClient.IS_TOUCH||a!=mxEvent.MOUSE_DOWN||d||mxEvent.isPenEvent(b.getEvent())||
(this.eventSource=b.getSource(),this.mouseMoveRedirect=mxUtils.bind(this,function(a){this.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(a,this.getStateForTouchEvent(a)))}),this.mouseUpRedirect=mxUtils.bind(this,function(a){this.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(a,this.getStateForTouchEvent(a)))}),mxEvent.addGestureListeners(this.eventSource,null,this.mouseMoveRedirect,this.mouseUpRedirect)):e=!0;this.isSyntheticEventIgnored(a,b,c)&&(e=!0);if(!mxEvent.isPopupTrigger(this.lastEvent)&&
a!=mxEvent.MOUSE_MOVE&&2==this.lastEvent.detail)return!0;a==mxEvent.MOUSE_UP&&this.isMouseDown?this.isMouseDown=!1:a!=mxEvent.MOUSE_DOWN||this.isMouseDown?!e&&((!mxClient.IS_FF||a!=mxEvent.MOUSE_MOVE)&&this.isMouseDown&&this.isMouseTrigger!=d||a==mxEvent.MOUSE_DOWN&&this.isMouseDown||a==mxEvent.MOUSE_UP&&!this.isMouseDown)&&(e=!0):(this.isMouseDown=!0,this.isMouseTrigger=d);e||a!=mxEvent.MOUSE_DOWN||(this.lastMouseX=b.getX(),this.lastMouseY=b.getY());return e};
mxGraph.prototype.isSyntheticEventIgnored=function(a,b,c){c=!1;b=mxEvent.isMouseEvent(b.getEvent());this.ignoreMouseEvents&&b&&a!=mxEvent.MOUSE_MOVE?(this.ignoreMouseEvents=a!=mxEvent.MOUSE_UP,c=!0):mxClient.IS_FF&&!b&&a==mxEvent.MOUSE_UP&&(this.ignoreMouseEvents=!0);return c};
mxGraph.prototype.isEventSourceIgnored=function(a,b){var c=b.getSource(),d=null!=c.nodeName?c.nodeName.toLowerCase():"",e=!mxEvent.isMouseEvent(b.getEvent())||mxEvent.isLeftMouseButton(b.getEvent());return a==mxEvent.MOUSE_DOWN&&e&&("select"==d||"option"==d||"input"==d&&"checkbox"!=c.type&&"radio"!=c.type&&"button"!=c.type&&"submit"!=c.type&&"file"!=c.type)};mxGraph.prototype.getEventState=function(a){return a};
@ -1837,64 +1837,64 @@ e/2);a.lineTo(c,0);a.lineTo(d-b,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d-b,e);a.lin
2),a.setDashed(d,e),ja.prototype.origPaintEdgeShape.apply(this,arguments))}};mxCellRenderer.prototype.defaultShapes.filledEdge=ja;mxMarker.addMarker("dash",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-3*n/2-m/2);a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-
3*n/2-m/2);a.moveTo(d.x-m/2+n/2,d.y-n/2-m/2);a.lineTo(d.x-n/2-3*m/2,d.y-3*n/2+m/2);a.stroke()}});mxMarker.addMarker("circle",Aa);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var m=d.clone(),n=Aa.apply(this,arguments),p=e*(g+2*k),q=f*(g+2*k);return function(){n.apply(this,arguments);a.begin();a.moveTo(m.x-e*k,m.y-f*k);a.lineTo(m.x-2*p+e*k,m.y-2*q+f*k);a.moveTo(m.x-p-q+f*k,m.y-q+p-e*k);a.lineTo(m.x+q-p-f*k,m.y-q-p+e*k);a.stroke()}});mxMarker.addMarker("async",function(a,b,c,d,e,f,g,
h,k,l){b=e*k*1.118;c=f*k*1.118;e*=g+k;f*=g+k;var m=d.clone();m.x-=b;m.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(m.x,m.y);h?a.lineTo(m.x-e-f/2,m.y-f+e/2):a.lineTo(m.x+f/2-e,m.y-f-e/2);a.lineTo(m.x-e,m.y-f);a.close();l?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(b,c,d,e,f,g,h,k,l,m){f*=h+l;g*=h+l;var n=e.clone();return function(){b.begin();b.moveTo(n.x,n.y);k?b.lineTo(n.x-f-g/a,n.y-g+f/a):b.lineTo(n.x+g/a-f,n.y-g-f/
a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ca=function(a,b,c){return na(a,["width"],b,function(b,d,e,f,g){g=a.shape.getEdgeWidth()*a.view.scale+c;return new mxPoint(f.x+d*b/4+e*g/2,f.y+e*b/4-d*g/2)},function(b,d,e,f,g,h){b=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));a.style.width=Math.round(2*b)/a.view.scale-c})},na=function(a,b,c,d,e){var f=a.absolutePoints,g=f.length-1,h=a.view.translate,k=a.view.scale,l=c?f[0]:f[g],m=c?f[1]:f[g-1],n=m.x-l.x,p=m.y-l.y,q=Math.sqrt(n*
n+p*p);return da(a,b,function(a){a=d.call(this,q,n/q,p/q,l,m);return new mxPoint(a.x/k-h.x,a.y/k-h.y)},function(a,b,c){a=Math.sqrt(n*n+p*p);b.x=(b.x+h.x)*k;b.y=(b.y+h.y)*k;e.call(this,a,n/a,p/a,l,m,b,c)})},ha=function(a){return function(b){return[da(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",T.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",T.prototype.arrowSize)));return new mxPoint(b.x+
(1-d)*b.width,b.y+(1-c)*b.height/2)},function(b,c){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(b.y+b.height/2-c.y)/b.height*2));this.state.style.arrowSize=Math.max(0,Math.min(a,(b.x+b.width-c.x)/b.width))})]}},ya=function(a,b,c){return function(d){var e=[da(d,["size"],function(c){var d=Math.max(0,Math.min(c.width,Math.min(c.height,parseFloat(mxUtils.getValue(this.state.style,"size",b)))))*a;return new mxPoint(c.x+d,c.y+d)},function(b,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,
c.x-b.x),Math.min(b.height,c.y-b.y)))/a)})];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ga(d));return e}},la=function(a,b,c,d,e){c=null!=c?c:1;return function(f){var g=[da(f,["size"],function(b){var c=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,"size",c?e:a));return new mxPoint(b.x+Math.max(0,Math.min(b.width,d*(c?1:b.width))),b.getCenterY())},function(a,b){var d=null!=e?"0"!=mxUtils.getValue(this.state.style,
"fixedSize","0"):null;this.state.style.size=d?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width))},null,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ga(f));return g}},Da=function(a){return function(b){var c=[da(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",n.prototype.size))));return new mxPoint(b.x+c*b.width*.75,b.y+b.height/4)},function(b,c){this.state.style.size=Math.max(0,Math.min(a,(c.x-b.x)/(.75*b.width)))},null,
!0)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ga(b));return c}},oa=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b}},ga=function(a,b){return da(a,[mxConstants.STYLE_ARCSIZE],function(c){var d=null!=b?b:c.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(c.x+c.width-Math.min(c.width/
2,e),c.y+d)}e=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(c.x+c.width-Math.min(Math.max(c.width/2,c.height/2),Math.min(c.width,c.height)*e),c.y+d)},function(b,c,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(b.width,2*(b.x+b.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,
Math.max(0,100*(b.width-c.x+b.x)/Math.min(b.width,b.height))))})},da=function(a,b,c,d,e,f){var g=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);g.execute=function(){for(var a=0;a<b.length;a++)this.copyStyle(b[a])};g.getPosition=c;g.setPosition=d;g.ignoreGrid=null!=e?e:!0;if(f){var h=g.positionChanged;g.positionChanged=function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},za={link:function(a){return[Ca(a,!0,10),Ca(a,!1,10)]},flexArrow:function(a){var b=
a.view.graph.gridSize/a.view.scale,c=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(na(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)-c*
b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<
b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),c.push(na(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,f){b=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)-c*b/2)},function(c,d,e,f,g,h,k){c=
Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-
parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-parseFloat(a.style.endWidth))<b&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(na(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,
mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=
a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),c.push(na(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/
5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=
a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<b&&(a.style.endWidth=a.style.startWidth))})));return c},swimlane:function(a){var b=[da(a,[mxConstants.STYLE_STARTSIZE],function(b){var c=parseFloat(mxUtils.getValue(a.style,
mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(b.getCenterX(),b.y+Math.max(0,Math.min(b.height,c))):new mxPoint(b.x+Math.max(0,Math.min(b.width,c)),b.getCenterY())},function(b,c){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(b.height,c.y-b.y))):Math.round(Math.max(0,Math.min(b.width,c.x-b.x)))})];if(mxUtils.getValue(a.style,
mxConstants.STYLE_ROUNDED)){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));b.push(ga(a,c/2))}return b},label:oa(),ext:oa(),rectangle:oa(),triangle:oa(),rhombus:oa(),umlLifeline:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",K.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,
b.y-a.y)))},!1)]},umlFrame:function(a){return[da(a,["width","height"],function(a){var b=Math.max(H.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",H.prototype.width))),c=Math.max(1.5*H.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",H.prototype.height)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(H.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*H.prototype.corner,
Math.min(a.height,b.y-a.y)))},!1)]},process:function(a){var b=[da(a,["size"],function(a){var b=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size))));return new mxPoint(a.x+a.width*b,a.y+a.height/4)},function(a,b){this.state.style.size=Math.max(0,Math.min(.5,(b.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},cross:function(a){return[da(a,["size"],function(a){var b=Math.min(a.width,a.height),b=Math.max(0,Math.min(1,
mxUtils.getValue(this.state.style,"size",ma.prototype.size)))*b/2;return new mxPoint(a.getCenterX()-b,a.getCenterY()-b)},function(a,b){var c=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-b.y)/c*2,Math.max(0,a.getCenterX()-b.x)/c*2)))})]},note:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",e.prototype.size)))));return new mxPoint(a.x+a.width-
b,a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},manualInput:function(a){var b=[da(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",I.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*b/4)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(b.y-a.y)/3)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));
return b},dataStorage:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ea.prototype.size))));return new mxPoint(a.x+(1-b)*a.width,a.getCenterY())},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width-b.x)/a.width))})]},callout:function(a){var b=[da(a,["size","position"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",w.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
"position",w.prototype.position)));mxUtils.getValue(this.state.style,"base",w.prototype.base);return new mxPoint(a.x+c*a.width,a.y+a.height-b)},function(a,b){mxUtils.getValue(this.state.style,"base",w.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-b.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100}),da(a,["position2"],function(a){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",w.prototype.position2)));
return new mxPoint(a.x+b*a.width,a.y+a.height)},function(a,b){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100}),da(a,["base"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",w.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",w.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",w.prototype.base)));return new mxPoint(a.x+Math.min(a.width,c*
a.width+d),a.y+a.height-b)},function(a,b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",w.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,b.x-a.x-c*a.width)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},internalStorage:function(a){var b=[da(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ba.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
"dy",ba.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},corner:function(a){return[da(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",N.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
"dy",N.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},tee:function(a){return[da(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",X.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",X.prototype.dy)));return new mxPoint(a.x+(a.width+b)/2,a.y+c)},function(a,
b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},singleArrow:ha(1),doubleArrow:ha(.5),folder:function(a){return[da(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",g.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",g.prototype.tabHeight)));mxUtils.getValue(this.state.style,
"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=Math.max(0,Math.min(a.width,b.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},document:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,
"size",l.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},tape:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",k.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b*a.height/2)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(b.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[da(a,
["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",O.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},step:la(x.prototype.size,!0,null,!0,x.prototype.fixedSize),hexagon:la(y.prototype.size,!0,.5,!0),curlyBracket:la(p.prototype.size,!1),display:la(ia.prototype.size,!1),cube:ya(1,a.prototype.size,!1),card:ya(.5,h.prototype.size,!0),loopLimit:ya(.5,
W.prototype.size,!0),trapezoid:Da(.5),parallelogram:Da(1)};Graph.createHandle=da;Graph.handleFactory=za;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=za[a];if(null!=a)return a(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=
function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);a=za[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var sa=new mxPoint(1,0),ta=new mxPoint(1,0),ha=mxUtils.toRadians(-30),sa=mxUtils.getRotatedPoint(sa,Math.cos(ha),Math.sin(ha)),ha=mxUtils.toRadians(-150),ta=mxUtils.getRotatedPoint(ta,
Math.cos(ha),Math.sin(ha));mxEdgeStyle.IsometricConnector=function(a,b,c,d,e){var f=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,h=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null==h&&null!=b&&(h=new mxPoint(b.getCenterX(),b.getCenterY()));null==g&&null!=c&&(g=new mxPoint(c.getCenterX(),c.getCenterY()));var k=sa.x,l=sa.y,m=ta.x,n=ta.y,p="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,b,c){a-=q.x;var d=b-q.y;b=(n*a-
m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);p?(c&&(q=new mxPoint(q.x+k*b,q.y+l*b),e.push(q)),q=new mxPoint(q.x+m*a,q.y+n*a)):(c&&(q=new mxPoint(q.x+m*a,q.y+n*a),e.push(q)),q=new mxPoint(q.x+k*b,q.y+l*b));e.push(q)};var q=h;null==d&&(d=new mxPoint(h.x+(g.x-h.x)/2,h.y+(g.y-h.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Ia=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=
new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return Ia.apply(this,arguments)};b.prototype.constraints=[];c.prototype.constraints=[];w.prototype.constraints=[];mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),
!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,
1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;u.prototype.constraints=mxRectangleShape.prototype.constraints;e.prototype.constraints=
mxRectangleShape.prototype.constraints;h.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;ba.prototype.constraints=mxRectangleShape.prototype.constraints;ea.prototype.constraints=mxRectangleShape.prototype.constraints;Q.prototype.constraints=mxEllipse.prototype.constraints;fa.prototype.constraints=mxEllipse.prototype.constraints;Y.prototype.constraints=mxEllipse.prototype.constraints;
pa.prototype.constraints=mxEllipse.prototype.constraints;I.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=mxRectangleShape.prototype.constraints;ia.prototype.constraints=mxRectangleShape.prototype.constraints;W.prototype.constraints=mxRectangleShape.prototype.constraints;O.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)];E.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)];aa.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)];
f.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)];k.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)];x.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(.1,.25),!0),new mxConnectionConstraint(new mxPoint(.2,.5),!0),new mxConnectionConstraint(new mxPoint(.1,.75),!0),new mxConnectionConstraint(new mxPoint(.9,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.9,.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)];U.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(.125,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(.125,.75),!0),new mxConnectionConstraint(new mxPoint(.875,
.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.875,.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)];m.prototype.constraints=mxRectangleShape.prototype.constraints;n.prototype.constraints=
mxRectangleShape.prototype.constraints;l.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;X.prototype.constraints=null;N.prototype.constraints=null;J.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,
.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];T.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ca.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ma.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,
1),!1)];K.prototype.constraints=null;P.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)];V.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)]})();
a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ca=function(a,b,c){return na(a,["width"],b,function(b,d,e,f,g){g=a.shape.getEdgeWidth()*a.view.scale+c;return new mxPoint(f.x+d*b/4+e*g/2,f.y+e*b/4-d*g/2)},function(b,d,e,f,g,h){b=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));a.style.width=Math.round(2*b)/a.view.scale-c})},na=function(a,b,c,d,e){return da(a,b,function(b){var e=a.absolutePoints,f=e.length-1;b=a.view.translate;var g=a.view.scale,h=c?e[0]:e[f],e=c?e[1]:e[f-1],
f=e.x-h.x,k=e.y-h.y,l=Math.sqrt(f*f+k*k),h=d.call(this,l,f/l,k/l,h,e);return new mxPoint(h.x/g-b.x,h.y/g-b.y)},function(b,d,f){var g=a.absolutePoints,h=g.length-1;b=a.view.translate;var k=a.view.scale,l=c?g[0]:g[h],g=c?g[1]:g[h-1],h=g.x-l.x,m=g.y-l.y,n=Math.sqrt(h*h+m*m);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,n,h/n,m/n,l,g,d,f)})},ha=function(a){return function(b){return[da(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",T.prototype.arrowWidth))),
d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",T.prototype.arrowSize)));return new mxPoint(b.x+(1-d)*b.width,b.y+(1-c)*b.height/2)},function(b,c){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(b.y+b.height/2-c.y)/b.height*2));this.state.style.arrowSize=Math.max(0,Math.min(a,(b.x+b.width-c.x)/b.width))})]}},ya=function(a,b,c){return function(d){var e=[da(d,["size"],function(c){var d=Math.max(0,Math.min(c.width,Math.min(c.height,parseFloat(mxUtils.getValue(this.state.style,
"size",b)))))*a;return new mxPoint(c.x+d,c.y+d)},function(b,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,c.x-b.x),Math.min(b.height,c.y-b.y)))/a)})];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ga(d));return e}},la=function(a,b,c,d,e){c=null!=c?c:1;return function(f){var g=[da(f,["size"],function(b){var c=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,"size",c?e:a));return new mxPoint(b.x+
Math.max(0,Math.min(b.width,d*(c?1:b.width))),b.getCenterY())},function(a,b,d){var g=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null;a=g?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width));g&&!mxEvent.isAltDown(d.getEvent())&&(a=f.view.graph.snap(a));this.state.style.size=a},null,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ga(f));return g}},Da=function(a){return function(b){var c=[da(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,
"size",n.prototype.size))));return new mxPoint(b.x+c*b.width*.75,b.y+b.height/4)},function(b,c){this.state.style.size=Math.max(0,Math.min(a,(c.x-b.x)/(.75*b.width)))},null,!0)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ga(b));return c}},oa=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b}},ga=function(a,b){return da(a,[mxConstants.STYLE_ARCSIZE],function(c){var d=null!=b?b:c.height/8;if("1"==mxUtils.getValue(a.style,
mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(c.x+c.width-Math.min(c.width/2,e),c.y+d)}e=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(c.x+c.width-Math.min(Math.max(c.width/2,c.height/2),Math.min(c.width,c.height)*e),c.y+d)},function(b,c,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?
this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(b.width,2*(b.x+b.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(b.width-c.x+b.x)/Math.min(b.width,b.height))))})},da=function(a,b,c,d,e,f){var g=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);g.execute=function(){for(var a=0;a<b.length;a++)this.copyStyle(b[a])};g.getPosition=c;g.setPosition=d;g.ignoreGrid=null!=e?e:!0;if(f){var h=g.positionChanged;g.positionChanged=
function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},za={link:function(a){return[Ca(a,!0,10),Ca(a,!1,10)]},flexArrow:function(a){var b=a.view.graph.gridSize/a.view.scale,c=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(na(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,
mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)-c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=
a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),c.push(na(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,f){b=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/
5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)-c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=
a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-parseFloat(a.style.endWidth))<b&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(na(a,
["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=
Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),c.push(na(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
!1,function(b,c,d,e,f){b=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/
3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-
parseFloat(a.style.startWidth))<b&&(a.style.endWidth=a.style.startWidth))})));return c},swimlane:function(a){var b=[da(a,[mxConstants.STYLE_STARTSIZE],function(b){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(b.getCenterX(),b.y+Math.max(0,Math.min(b.height,c))):new mxPoint(b.x+Math.max(0,Math.min(b.width,c)),b.getCenterY())},function(b,c){a.style[mxConstants.STYLE_STARTSIZE]=
1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(b.height,c.y-b.y))):Math.round(Math.max(0,Math.min(b.width,c.x-b.x)))})];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));b.push(ga(a,c/2))}return b},label:oa(),ext:oa(),rectangle:oa(),triangle:oa(),rhombus:oa(),umlLifeline:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,
parseFloat(mxUtils.getValue(this.state.style,"size",K.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},umlFrame:function(a){return[da(a,["width","height"],function(a){var b=Math.max(H.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",H.prototype.width))),c=Math.max(1.5*H.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",H.prototype.height)));
return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(H.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*H.prototype.corner,Math.min(a.height,b.y-a.y)))},!1)]},process:function(a){var b=[da(a,["size"],function(a){var b=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size))));return new mxPoint(a.x+a.width*b,a.y+a.height/4)},function(a,b){this.state.style.size=Math.max(0,Math.min(.5,
(b.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},cross:function(a){return[da(a,["size"],function(a){var b=Math.min(a.width,a.height),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",ma.prototype.size)))*b/2;return new mxPoint(a.getCenterX()-b,a.getCenterY()-b)},function(a,b){var c=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-b.y)/c*2,Math.max(0,a.getCenterX()-b.x)/c*2)))})]},
note:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",e.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},manualInput:function(a){var b=[da(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",I.prototype.size)));
return new mxPoint(a.x+a.width/4,a.y+3*b/4)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(b.y-a.y)/3)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},dataStorage:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ea.prototype.size))));return new mxPoint(a.x+(1-b)*a.width,a.getCenterY())},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width-
b.x)/a.width))})]},callout:function(a){var b=[da(a,["size","position"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",w.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",w.prototype.position)));mxUtils.getValue(this.state.style,"base",w.prototype.base);return new mxPoint(a.x+c*a.width,a.y+a.height-b)},function(a,b){mxUtils.getValue(this.state.style,"base",w.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,
a.y+a.height-b.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100}),da(a,["position2"],function(a){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",w.prototype.position2)));return new mxPoint(a.x+b*a.width,a.y+a.height)},function(a,b){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100}),da(a,["base"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",w.prototype.size))),
c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",w.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",w.prototype.base)));return new mxPoint(a.x+Math.min(a.width,c*a.width+d),a.y+a.height-b)},function(a,b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",w.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,b.x-a.x-c*a.width)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,
!1)&&b.push(ga(a));return b},internalStorage:function(a){var b=[da(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ba.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ba.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,
!1)&&b.push(ga(a));return b},corner:function(a){return[da(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",N.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",N.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},tee:function(a){return[da(a,["dx","dy"],function(a){var b=
Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",X.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",X.prototype.dy)));return new mxPoint(a.x+(a.width+b)/2,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},singleArrow:ha(1),doubleArrow:ha(.5),folder:function(a){return[da(a,["tabWidth","tabHeight"],function(a){var b=
Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",g.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",g.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=Math.max(0,Math.min(a.width,b.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&
(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},document:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",l.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},tape:function(a){return[da(a,["size"],function(a){var b=Math.max(0,
Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",k.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b*a.height/2)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(b.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",O.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+
a.height-b.y)/a.height))})]},step:la(x.prototype.size,!0,null,!0,x.prototype.fixedSize),hexagon:la(y.prototype.size,!0,.5,!0),curlyBracket:la(p.prototype.size,!1),display:la(ia.prototype.size,!1),cube:ya(1,a.prototype.size,!1),card:ya(.5,h.prototype.size,!0),loopLimit:ya(.5,W.prototype.size,!0),trapezoid:Da(.5),parallelogram:Da(1)};Graph.createHandle=da;Graph.handleFactory=za;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=
this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=za[a];if(null!=a)return a(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);a=za[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=
function(){},Graph.handleFactory={};var sa=new mxPoint(1,0),ta=new mxPoint(1,0),ha=mxUtils.toRadians(-30),sa=mxUtils.getRotatedPoint(sa,Math.cos(ha),Math.sin(ha)),ha=mxUtils.toRadians(-150),ta=mxUtils.getRotatedPoint(ta,Math.cos(ha),Math.sin(ha));mxEdgeStyle.IsometricConnector=function(a,b,c,d,e){var f=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,h=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null==h&&null!=b&&(h=new mxPoint(b.getCenterX(),b.getCenterY()));null==
g&&null!=c&&(g=new mxPoint(c.getCenterX(),c.getCenterY()));var k=sa.x,l=sa.y,m=ta.x,n=ta.y,p="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,b,c){a-=q.x;var d=b-q.y;b=(n*a-m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);p?(c&&(q=new mxPoint(q.x+k*b,q.y+l*b),e.push(q)),q=new mxPoint(q.x+m*a,q.y+n*a)):(c&&(q=new mxPoint(q.x+m*a,q.y+n*a),e.push(q)),q=new mxPoint(q.x+k*b,q.y+l*b));e.push(q)};var q=h;null==d&&(d=new mxPoint(h.x+(g.x-h.x)/2,h.y+(g.y-h.y)/2));a(d.x,d.y,
!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Ia=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return Ia.apply(this,arguments)};b.prototype.constraints=[];c.prototype.constraints=[];w.prototype.constraints=[];mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,
0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];
mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=
mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;u.prototype.constraints=mxRectangleShape.prototype.constraints;e.prototype.constraints=mxRectangleShape.prototype.constraints;h.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;ba.prototype.constraints=mxRectangleShape.prototype.constraints;ea.prototype.constraints=
mxRectangleShape.prototype.constraints;Q.prototype.constraints=mxEllipse.prototype.constraints;fa.prototype.constraints=mxEllipse.prototype.constraints;Y.prototype.constraints=mxEllipse.prototype.constraints;pa.prototype.constraints=mxEllipse.prototype.constraints;I.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=mxRectangleShape.prototype.constraints;ia.prototype.constraints=mxRectangleShape.prototype.constraints;W.prototype.constraints=mxRectangleShape.prototype.constraints;
O.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)];E.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)];aa.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)];f.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)];k.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)];x.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)];U.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(.125,
.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(.125,.75),!0),new mxConnectionConstraint(new mxPoint(.875,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.875,.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)];m.prototype.constraints=mxRectangleShape.prototype.constraints;n.prototype.constraints=mxRectangleShape.prototype.constraints;l.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;X.prototype.constraints=null;N.prototype.constraints=null;J.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,
.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];T.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ca.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ma.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];K.prototype.constraints=null;P.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)];V.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)]})();
(function(x,r){function N(){if(!t){t=!0;window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config({"HTML-CSS":{availableFonts:[],webFont:"STIX-Web",imageFont:null}});MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<p.length;a++)MathJax.Hub.Queue(["Typeset",MathJax.Hub,p[a]])})}};var a=document.createElement("script");a.type="text/javascript";a.src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_HTMLorMML";
document.getElementsByTagName("head")[0].appendChild(a)}}function O(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?MathJax.Hub.Queue(["Typeset",MathJax.Hub,a.container]):p.push(a.container);a.addListener(mxEvent.SIZE,function(e,m){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a.container])})}mxStencilRegistry.dynamicLoading=!1;try{var e=document.createElement("style");e.type="text/css";e.innerHTML="div.mxTooltip {\n-webkit-box-shadow: 3px 3px 12px #C0C0C0;\n-moz-box-shadow: 3px 3px 12px #C0C0C0;\nbox-shadow: 3px 3px 12px #C0C0C0;\nbackground: #FFFFCC;\nborder-style: solid;\nborder-width: 1px;\nborder-color: black;\nfont-family: Arial;\nfont-size: 8pt;\nposition: absolute;\ncursor: default;\npadding: 4px;\ncolor: black;}";
document.getElementsByTagName("head")[0].appendChild(e)}catch(a){}var G=mxClient.NO_FO,t="undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub,p=[];mxGraph.prototype.getImageFromBundles=function(a){return null!=a?("http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&"data:image"!=a.substring(0,10)&&("/"==a.charAt(0)&&(a=a.substring(1,a.length)),a="https://www.draw.io/"+a),a):null};if(null!=r)for(e=0;e<r.length;e++){var y=mxUtils.parseXml(r[e]);mxStencilRegistry.parseStencilSet(y.documentElement)}mxClient.IS_TOUCH&&

View file

@ -227,20 +227,22 @@ AndroidCheckBox:"mxCompositeShape",AndroidToggle:"mxCompositeShape",AndroidSlide
AndroidIconSettings:"shape=mxgraph.ios7.icons.volume;direction=south",AndroidIconTrash:"shape=mxgraph.ios7.icons.trashcan",AndroidIconEmail:"shape=mxgraph.mockup.misc.mail2",AndroidIconNew:"shape=mxgraph.ios7.misc.flagged",iOSDeviceiPhoneSE:"shape=mxgraph.ios7.misc.iphone",iOSDeviceiPhone6s:"shape=mxgraph.ios7.misc.iphone",iOSDeviceiPhone6sPlus:"shape=mxgraph.ios7.misc.iphone",iOSDeviceiPadPortrait:"shape=mxgraph.ios7.misc.ipad7inch",iOSDeviceiPadLandscape:"shape=mxgraph.ios7.misc.ipad7inch",iOSDeviceiPadProPortrait:"shape=mxgraph.ios7.misc.ipad7inch",
iOSDeviceiPadProLandscape:"shape=mxgraph.ios7.misc.ipad10inch",iOSButton:"fillColor=none;strokeColor=none;",iOSSegmentedControl:"mxCompositeShape",iOSStepper:"shape=mxgraph.ios7.misc.adjust",iOSToggle:"shape=mxgraph.ios7ui.onOffButton;buttonState=on;strokeColor2=#aaaaaa;fillColor2=#ffffff",iOSSlider:"mxCompositeShape",iOSProgressBar:"mxCompositeShape",iOSPageControls:"mxCompositeShape",iOSStatusBar:"mxCompositeShape",iOSSearchBar:"mxCompositeShape",iOSNavBar:"mxCompositeShape",iOSTabs:"mxCompositeShape",
iOSUniversalKeyboard:"shape=mxgraph.ios.iKeybLett",iOSDatePicker:"mxCompositeShape",iOSTimePicker:"mxCompositeShape",iOSCountdownPicker:"mxCompositeShape",iOSBasicCell:"mxCompositeShape",iOSSubtitleCell:"mxCompositeShape",iOSRightDetailCell:"mxCompositeShape",iOSLeftDetailCell:"mxCompositeShape",iOSTableGroupedSectionBreak:"mxCompositeShape",iOSTablePlainHeaderFooter:"mxCompositeShape",MindMapBlock:"",MindMapStadiumBlock:"arcSize=50",MindMapCloud:"shape=cloud",MindMapCircle:"shape=ellipse",MindMapIsoscelesTriangleBlock:"shape=triangle;direction=north",
MindMapDiamondBlock:"shape=rhombus",MindMapPentagonBlock:"shape=mxgraph.basic.pentagon",MindMapHexagonBlock:"shape=hexagon",MindMapOctagonBlock:"shape=mxgraph.basic.octagon",MindMapCrossBlock:"shape=mxgraph.basic.cross2;dx=20",ERDEntityBlock:"mxCompositeShape",ERDEntityBlock2:"mxCompositeShape",ERDEntityBlock3:"mxCompositeShape",ERDEntityBlock4:"mxCompositeShape",SMPage:"mxCompositeShape",SMHome:"mxCompositeShape",SMPrint:"mxCompositeShape",SMSearch:"mxCompositeShape",SMSettings:"mxCompositeShape",
SMSitemap:"mxCompositeShape",SMSuccess:"mxCompositeShape",SMVideo:"mxCompositeShape",SMAudio:"mxCompositeShape",SMCalendar:"mxCompositeShape",SMChart:"mxCompositeShape",SMCloud:"mxCompositeShape",SMDocument:"mxCompositeShape",SMForm:"mxCompositeShape",SMGame:"mxCompositeShape",SMUpload:"mxCompositeShape",UMLClassBlock:"mxCompositeShape",UMLActiveClassBlock:"shape=process",UMLMultiplicityBlock:"mxCompositeShape",UMLPackageBlock:"shape=folder;tabPosition=left",UMLConstraintBlock:"mxCompositeShape",
UMLNoteBlock:"shape=note;size=15",UMLTextBlock:"mxCompositeShape",UMLActorBlock:"shape=umlActor;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;whiteSpace=nowrap",UMLUseCaseBlock:"shape=ellipse",UMLCircleContainerBlock:"shape=ellipse;container=1",UMLRectangleContainerBlock:"container=1",UMLOptionLoopBlock:"shape=mxgraph.sysml.package2;xSize=90;overflow=fill",UMLAlternativeBlock2:"shape=mxgraph.sysml.package2;xSize=90;overflow=fill",UMLStartBlock:"shape=ellipse;fillColor=#000000",
UMLStateBlock:"rounded=1;arcSize=20",UMLDecisionBlock:"shape=rhombus;",UMLHForkJoinBlock:"fillColor=#000000",UMLVForkJoinBlock:"fillColor=#000000",UMLFlowFinalBlock:"shape=mxgraph.flowchart.or",UMLHistoryStateBlock:"shape=ellipse",UMLEndBlock:"shape=mxgraph.bpmn.shape;outline=end;symbol=terminate;strokeColor=#000000;fillColor=#ffffff",UMLObjectBlock:"",UMLSendSignalBlock:"shape=mxgraph.sysml.sendSigAct",UMLReceiveSignalBlock:"shape=mxgraph.sysml.accEvent;flipH=1",UMLAcceptTimeEventActionBlock:"shape=mxgraph.sysml.timeEvent",
UMLOffPageLinkBlock:"shape=mxgraph.sysml.sendSigAct;direction=south",UMLMultiLanePoolBlock:"mxCompositeShape",UMLMultiLanePoolRotatedBlock:"mxCompositeShape",UMLMultidimensionalSwimlane:"mxCompositeShape",UMLActivationBlock:"",UMLDeletionBlock:"shape=mxgraph.sysml.x;strokeWidth=4",UMLSeqEntityBlock:"shape=mxgraph.electrical.radio.microphone_1;direction=north",UMLComponentBlock:"shape=component;align=left;spacingLeft=36",UMLNodeBlock:"shape=cube;size=12;flipH=1",UMLComponentInterfaceBlock:"shape=ellipse",
UMLComponentBoxBlock:"mxCompositeShape",UMLProvidedInterfaceBlock:"shape=lollipop;direction=south",UMLRequiredInterfaceBlock:"shape=requires;direction=north",UMLEntityBlock:"",UMLWeakEntityBlock:"shape=ext;double=1",UMLAttributeBlock:"shape=ellipse",UMLMultivaluedAttributeBlock:"shape=doubleEllipse",UMLRelationshipBlock:"shape=rhombus",UMLWeakRelationshipBlock:"shape=rhombus;double=1",BPMNActivity:"mxCompositeShape",BPMNEvent:"mxCompositeShape",BPMNChoreography:"mxCompositeShape",BPMNConversation:"mxCompositeShape",
BPMNGateway:"mxCompositeShape",BPMNData:"mxCompositeShape",BPMNDataStore:"shape=datastore",BPMNAdvancedPoolBlock:"mxCompositeShape",BPMNAdvancedPoolBlockRotated:"mxCompositeShape",BPMNBlackPool:"mxCompositeShape",DFDExternalEntityBlock:"mxCompositeShape",DFDExternalEntityBlock2:"",YDMDFDProcessBlock:"shape=ellipse",YDMDFDDataStoreBlock:"shape=partialRectangle;right=0;left=0",GSDFDProcessBlock:"shape=swimlane;rounded=1;arcSize=10",GSDFDProcessBlock2:"rounded=1;arcSize=10;",GSDFDDataStoreBlock:"mxCompositeShape",
GSDFDDataStoreBlock2:"shape=partialRectangle;right=0",OrgBlock:"",DefaultTableBlock:"mxCompositeShape",VSMCustomerSupplierBlock:"shape=mxgraph.lean_mapping.outside_sources",VSMDedicatedProcessBlock:"mxCompositeShape",VSMSharedProcessBlock:"mxCompositeShape",VSMWorkcellBlock:"mxCompositeShape",VSMDatacellBlock:"mxCompositeShape",VSMInventoryBlock:"mxCompositeShape",VSMSupermarketBlock:"mxCompositeShape",VSMPhysicalPullBlock:"shape=mxgraph.lean_mapping.physical_pull;direction=south",VSMFIFOLaneBlock:"mxCompositeShape",
VSMSafetyBufferStockBlock:"mxCompositeShape",VSMExternalShipmentAirplaneBlock:"shape=mxgraph.lean_mapping.airplane_7",VSMExternalShipmentForkliftBlock:"shape=mxgraph.lean_mapping.move_by_forklift",VSMExternalShipmentTruckBlock:"shape=mxgraph.lean_mapping.truck_shipment",VSMExternalShipmentBoatBlock:"shape=mxgraph.lean_mapping.boat_shipment",VSMProductionControlBlock:"mxCompositeShape",VSMOtherInformationBlock:"",VSMSequencedPullBallBlock:"shape=mxgraph.lean_mapping.sequenced_pull_ball",VSMMRPERPBlock:"shape=mxgraph.lean_mapping.mrp_erp;whiteSpace=wrap",
VSMLoadLevelingBlock:"shape=mxgraph.lean_mapping.load_leveling",VSMGoSeeBlock:"shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1",VSMGoSeeProductionBlock:"mxCompositeShape",VSMVerbalInfoBlock:"shape=mxgraph.lean_mapping.verbal",VSMKaizenBurstBlock:"shape=mxgraph.lean_mapping.kaizen_lightening_burst",VSMOperatorBlock:"shape=mxgraph.lean_mapping.operator;flipV=1",VSMTimelineBlock:"mxCompositeShape",VSMQualityProblemBlock:"shape=mxgraph.lean_mapping.quality_problem",VSMProductionKanbanSingleBlock:"shape=card;size=18;flipH=1;",
VSMProductionKanbanBatchBlock:"mxCompositeShape",VSMWithdrawalKanbanBlock:"shape=mxgraph.lean_mapping.withdrawal_kanban",VSMSignalKanbanBlock:"shape=triangle;direction=south",VSMKanbanPostBlock:"shape=mxgraph.lean_mapping.kanban_post",VSMShipmentArrow:"shape=singleArrow;arrowWidth=0.5;arrowSize=0.13",VSMPushArrow:"shape=mxgraph.lean_mapping.push_arrow",AWSElasticComputeCloudBlock2:"mxCompositeShape",AWSInstanceBlock2:"strokeColor=none;shape=mxgraph.aws3.instance",AWSInstancesBlock2:"strokeColor=none;shape=mxgraph.aws3.instances;verticalLabelPosition=bottom;align=center;verticalAlign=top",
AWSAMIBlock2:"strokeColor=none;shape=mxgraph.aws3.ami;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSDBonInstanceBlock2:"strokeColor=none;shape=mxgraph.aws3.db_on_instance;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSInstanceCloudWatchBlock2:"strokeColor=none;shape=mxgraph.aws3.instance_with_cloudwatch;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSElasticIPBlock2:"strokeColor=none;shape=mxgraph.aws3.elastic_ip;verticalLabelPosition=bottom;align=center;verticalAlign=top",
AWSHDFSClusterBlock2:"strokeColor=none;shape=mxgraph.aws3.hdfs_cluster;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSAutoScalingBlock2:"strokeColor=none;shape=mxgraph.aws3.auto_scaling;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSEC2OptimizedInstance2:"strokeColor=none;shape=mxgraph.aws3.optimized_instance;verticalLabelPosition=bottom;align=center;verticalAlign=top","AWSAmazonEC2(Spotinstance)":"strokeColor=none;shape=mxgraph.aws3.spot_instance;verticalLabelPosition=bottom;align=center;verticalAlign=top",
AWSAmazonECR:"strokeColor=none;shape=mxgraph.aws3.ecr;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSAmazonECS:"strokeColor=none;shape=mxgraph.aws3.ecs;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSLambda2:"strokeColor=none;shape=mxgraph.aws3.lambda;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSElasticLoadBalancing:"strokeColor=none;shape=mxgraph.aws3.elastic_load_balancing;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSElasticLoadBlock2:"strokeColor=none;shape=mxgraph.aws3.classic_load_balancer;verticalLabelPosition=bottom;align=center;verticalAlign=top",
MindMapDiamondBlock:"shape=rhombus",MindMapPentagonBlock:"shape=mxgraph.basic.pentagon",MindMapHexagonBlock:"shape=hexagon",MindMapOctagonBlock:"shape=mxgraph.basic.octagon",MindMapCrossBlock:"shape=mxgraph.basic.cross2;dx=20",ERDEntityBlock:"mxCompositeShape",ERDEntityBlock2:"mxCompositeShape",ERDEntityBlock3:"mxCompositeShape",ERDEntityBlock4:"mxCompositeShape",SMPage:"shape=mxgraph.sitemap.page",SMHome:"shape=mxgraph.sitemap.home",SMGallery:"shape=mxgraph.sitemap.gallery",SMShopping:"shape=mxgraph.sitemap.shopping",
SMMap:"shape=mxgraph.sitemap.map",SMAthletics:"shape=mxgraph.sitemap.sports",SMLogin:"shape=mxgraph.sitemap.login",SMPrint:"shape=mxgraph.sitemap.print",SMScript:"shape=mxgraph.sitemap.script",SMSearch:"shape=mxgraph.sitemap.search",SMSettings:"shape=mxgraph.sitemap.settings",SMSitemap:"shape=mxgraph.sitemap.sitemap",SMSuccess:"shape=mxgraph.sitemap.success",SMVideo:"shape=mxgraph.sitemap.video",SMAudio:"shape=mxgraph.sitemap.audio",SMBlog:"shape=mxgraph.sitemap.blog",SMCalendar:"shape=mxgraph.sitemap.calendar",
SMChart:"shape=mxgraph.sitemap.chart",SMCloud:"shape=mxgraph.sitemap.cloud",SMDocument:"shape=mxgraph.sitemap.document",SMDownload:"shape=mxgraph.sitemap.download",SMError:"shape=mxgraph.sitemap.error",SMForm:"shape=mxgraph.sitemap.form",SMGame:"shape=mxgraph.sitemap.game",SMJobs:"shape=mxgraph.sitemap.jobs",SMLucid:"shape=mxgraph.sitemap.page",SMNewspress:"shape=mxgraph.sitemap.news",SMPhoto:"shape=mxgraph.sitemap.photo",SMPortfolio:"shape=mxgraph.sitemap.portfolio",SMPricing:"shape=mxgraph.sitemap.pricing",
SMProfile:"shape=mxgraph.sitemap.profile",SMSlideshow:"shape=mxgraph.sitemap.slideshow",SMUpload:"shape=mxgraph.sitemap.upload",UMLClassBlock:"mxCompositeShape",UMLActiveClassBlock:"shape=process",UMLMultiplicityBlock:"mxCompositeShape",UMLPackageBlock:"shape=folder;tabPosition=left",UMLConstraintBlock:"mxCompositeShape",UMLNoteBlock:"shape=note;size=15",UMLTextBlock:"mxCompositeShape",UMLActorBlock:"shape=umlActor;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;whiteSpace=nowrap",
UMLUseCaseBlock:"shape=ellipse",UMLCircleContainerBlock:"shape=ellipse;container=1",UMLRectangleContainerBlock:"container=1",UMLOptionLoopBlock:"shape=mxgraph.sysml.package2;xSize=90;overflow=fill",UMLAlternativeBlock2:"shape=mxgraph.sysml.package2;xSize=90;overflow=fill",UMLStartBlock:"shape=ellipse;fillColor=#000000",UMLStateBlock:"rounded=1;arcSize=20",UMLDecisionBlock:"shape=rhombus;",UMLHForkJoinBlock:"fillColor=#000000",UMLVForkJoinBlock:"fillColor=#000000",UMLFlowFinalBlock:"shape=mxgraph.flowchart.or",
UMLHistoryStateBlock:"shape=ellipse",UMLEndBlock:"shape=mxgraph.bpmn.shape;outline=end;symbol=terminate;strokeColor=#000000;fillColor=#ffffff",UMLObjectBlock:"",UMLSendSignalBlock:"shape=mxgraph.sysml.sendSigAct",UMLReceiveSignalBlock:"shape=mxgraph.sysml.accEvent;flipH=1",UMLAcceptTimeEventActionBlock:"shape=mxgraph.sysml.timeEvent",UMLOffPageLinkBlock:"shape=mxgraph.sysml.sendSigAct;direction=south",UMLMultiLanePoolBlock:"mxCompositeShape",UMLMultiLanePoolRotatedBlock:"mxCompositeShape",UMLMultidimensionalSwimlane:"mxCompositeShape",
UMLActivationBlock:"",UMLDeletionBlock:"shape=mxgraph.sysml.x;strokeWidth=4",UMLSeqEntityBlock:"shape=mxgraph.electrical.radio.microphone_1;direction=north",UMLComponentBlock:"shape=component;align=left;spacingLeft=36",UMLNodeBlock:"shape=cube;size=12;flipH=1",UMLComponentInterfaceBlock:"shape=ellipse",UMLComponentBoxBlock:"mxCompositeShape",UMLProvidedInterfaceBlock:"shape=lollipop;direction=south",UMLRequiredInterfaceBlock:"shape=requires;direction=north",UMLEntityBlock:"",UMLWeakEntityBlock:"shape=ext;double=1",
UMLAttributeBlock:"shape=ellipse",UMLMultivaluedAttributeBlock:"shape=doubleEllipse",UMLRelationshipBlock:"shape=rhombus",UMLWeakRelationshipBlock:"shape=rhombus;double=1",BPMNActivity:"mxCompositeShape",BPMNEvent:"mxCompositeShape",BPMNChoreography:"mxCompositeShape",BPMNConversation:"mxCompositeShape",BPMNGateway:"mxCompositeShape",BPMNData:"mxCompositeShape",BPMNDataStore:"shape=datastore",BPMNAdvancedPoolBlock:"mxCompositeShape",BPMNAdvancedPoolBlockRotated:"mxCompositeShape",BPMNBlackPool:"mxCompositeShape",
DFDExternalEntityBlock:"mxCompositeShape",DFDExternalEntityBlock2:"",YDMDFDProcessBlock:"shape=ellipse",YDMDFDDataStoreBlock:"shape=partialRectangle;right=0;left=0",GSDFDProcessBlock:"shape=swimlane;rounded=1;arcSize=10",GSDFDProcessBlock2:"rounded=1;arcSize=10;",GSDFDDataStoreBlock:"mxCompositeShape",GSDFDDataStoreBlock2:"shape=partialRectangle;right=0",OrgBlock:"",DefaultTableBlock:"mxCompositeShape",VSMCustomerSupplierBlock:"shape=mxgraph.lean_mapping.outside_sources",VSMDedicatedProcessBlock:"mxCompositeShape",
VSMSharedProcessBlock:"mxCompositeShape",VSMWorkcellBlock:"mxCompositeShape",VSMDatacellBlock:"mxCompositeShape",VSMInventoryBlock:"mxCompositeShape",VSMSupermarketBlock:"mxCompositeShape",VSMPhysicalPullBlock:"shape=mxgraph.lean_mapping.physical_pull;direction=south",VSMFIFOLaneBlock:"mxCompositeShape",VSMSafetyBufferStockBlock:"mxCompositeShape",VSMExternalShipmentAirplaneBlock:"shape=mxgraph.lean_mapping.airplane_7",VSMExternalShipmentForkliftBlock:"shape=mxgraph.lean_mapping.move_by_forklift",
VSMExternalShipmentTruckBlock:"shape=mxgraph.lean_mapping.truck_shipment",VSMExternalShipmentBoatBlock:"shape=mxgraph.lean_mapping.boat_shipment",VSMProductionControlBlock:"mxCompositeShape",VSMOtherInformationBlock:"",VSMSequencedPullBallBlock:"shape=mxgraph.lean_mapping.sequenced_pull_ball",VSMMRPERPBlock:"shape=mxgraph.lean_mapping.mrp_erp;whiteSpace=wrap",VSMLoadLevelingBlock:"shape=mxgraph.lean_mapping.load_leveling",VSMGoSeeBlock:"shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1",
VSMGoSeeProductionBlock:"mxCompositeShape",VSMVerbalInfoBlock:"shape=mxgraph.lean_mapping.verbal",VSMKaizenBurstBlock:"shape=mxgraph.lean_mapping.kaizen_lightening_burst",VSMOperatorBlock:"shape=mxgraph.lean_mapping.operator;flipV=1",VSMTimelineBlock:"mxCompositeShape",VSMQualityProblemBlock:"shape=mxgraph.lean_mapping.quality_problem",VSMProductionKanbanSingleBlock:"shape=card;size=18;flipH=1;",VSMProductionKanbanBatchBlock:"mxCompositeShape",VSMWithdrawalKanbanBlock:"shape=mxgraph.lean_mapping.withdrawal_kanban",
VSMSignalKanbanBlock:"shape=triangle;direction=south",VSMKanbanPostBlock:"shape=mxgraph.lean_mapping.kanban_post",VSMShipmentArrow:"shape=singleArrow;arrowWidth=0.5;arrowSize=0.13",VSMPushArrow:"shape=mxgraph.lean_mapping.push_arrow",AWSElasticComputeCloudBlock2:"mxCompositeShape",AWSInstanceBlock2:"strokeColor=none;shape=mxgraph.aws3.instance",AWSInstancesBlock2:"strokeColor=none;shape=mxgraph.aws3.instances;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSAMIBlock2:"strokeColor=none;shape=mxgraph.aws3.ami;verticalLabelPosition=bottom;align=center;verticalAlign=top",
AWSDBonInstanceBlock2:"strokeColor=none;shape=mxgraph.aws3.db_on_instance;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSInstanceCloudWatchBlock2:"strokeColor=none;shape=mxgraph.aws3.instance_with_cloudwatch;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSElasticIPBlock2:"strokeColor=none;shape=mxgraph.aws3.elastic_ip;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSHDFSClusterBlock2:"strokeColor=none;shape=mxgraph.aws3.hdfs_cluster;verticalLabelPosition=bottom;align=center;verticalAlign=top",
AWSAutoScalingBlock2:"strokeColor=none;shape=mxgraph.aws3.auto_scaling;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSEC2OptimizedInstance2:"strokeColor=none;shape=mxgraph.aws3.optimized_instance;verticalLabelPosition=bottom;align=center;verticalAlign=top","AWSAmazonEC2(Spotinstance)":"strokeColor=none;shape=mxgraph.aws3.spot_instance;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSAmazonECR:"strokeColor=none;shape=mxgraph.aws3.ecr;verticalLabelPosition=bottom;align=center;verticalAlign=top",
AWSAmazonECS:"strokeColor=none;shape=mxgraph.aws3.ecs;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSLambda2:"strokeColor=none;shape=mxgraph.aws3.lambda;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSElasticLoadBalancing:"strokeColor=none;shape=mxgraph.aws3.elastic_load_balancing;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSElasticLoadBlock2:"strokeColor=none;shape=mxgraph.aws3.classic_load_balancer;verticalLabelPosition=bottom;align=center;verticalAlign=top",
AWSDirectConnectBlock3:"strokeColor=none;shape=mxgraph.aws3.direct_connect;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSElasticNetworkBlock2:"strokeColor=none;shape=mxgraph.aws3.elastic_network_interface;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSRoute53Block2:"mxCompositeShape",AWSHostedZoneBlock2:"strokeColor=none;shape=mxgraph.aws3.hosted_zone;fontColor=#FFFFFF;fontStyle=1",AWSRouteTableBlock2:"strokeColor=none;shape=mxgraph.aws3.route_table;verticalLabelPosition=bottom;align=center;verticalAlign=top",
AWSVPCBlock2:"strokeColor=none;shape=mxgraph.aws3.vpc;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSVPNConnectionBlock2:"strokeColor=none;shape=mxgraph.aws3.vpn_connection;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSVPNGatewayBlock2:"strokeColor=none;shape=mxgraph.aws3.vpn_gateway;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSCustomerGatewayBlock2:"strokeColor=none;shape=mxgraph.aws3.customer_gateway;verticalLabelPosition=bottom;align=center;verticalAlign=top",
AWSCustomerGatewayBlock3:"strokeColor=none;shape=mxgraph.aws3.customer_gateway;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSInternetGatewayBlock2:"strokeColor=none;shape=mxgraph.aws3.internet_gateway;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSRouterBlock2:"strokeColor=none;shape=mxgraph.aws3.router;verticalLabelPosition=bottom;align=center;verticalAlign=top",AWSRouterBlock3:"strokeColor=none;shape=mxgraph.aws3.router;verticalLabelPosition=bottom;align=center;verticalAlign=top",

View file

@ -2843,11 +2843,17 @@
var size = parseFloat(mxUtils.getValue(this.state.style, 'size', (fixed) ? fixedDefaultValue : defaultValue));
return new mxPoint(bounds.x + Math.max(0, Math.min(bounds.width, size * ((fixed) ? 1 : bounds.width))), bounds.getCenterY());
}, function(bounds, pt)
}, function(bounds, pt, me)
{
var fixed = (fixedDefaultValue != null) ? mxUtils.getValue(this.state.style, 'fixedSize', '0') != '0' : null;
var size = (fixed) ? (pt.x - bounds.x) : Math.max(0, Math.min(max, (pt.x - bounds.x) / bounds.width));
this.state.style['size'] = (fixed) ? (pt.x - bounds.x) : Math.max(0, Math.min(max, (pt.x - bounds.x) / bounds.width));
if (fixed && !mxEvent.isAltDown(me.getEvent()))
{
size = state.view.graph.snap(size);
}
this.state.style['size'] = size;
}, null, redrawEdges)];
if (allowArcHandle && mxUtils.getValue(state.style, mxConstants.STYLE_ROUNDED, false))
@ -2904,26 +2910,37 @@
function createEdgeHandle(state, keys, start, getPosition, setPosition)
{
var pts = state.absolutePoints;
var n = pts.length - 1;
var tr = state.view.translate;
var s = state.view.scale;
var p0 = (start) ? pts[0] : pts[n];
var p1 = (start) ? pts[1] : pts[n - 1];
var dx = (start) ? p1.x - p0.x : p1.x - p0.x;
var dy = (start) ? p1.y - p0.y : p1.y - p0.y;
var dist = Math.sqrt(dx * dx + dy * dy);
return createHandle(state, keys, function(bounds)
{
var pts = state.absolutePoints;
var n = pts.length - 1;
var tr = state.view.translate;
var s = state.view.scale;
var p0 = (start) ? pts[0] : pts[n];
var p1 = (start) ? pts[1] : pts[n - 1];
var dx = (start) ? p1.x - p0.x : p1.x - p0.x;
var dy = (start) ? p1.y - p0.y : p1.y - p0.y;
var dist = Math.sqrt(dx * dx + dy * dy);
var pt = getPosition.call(this, dist, dx / dist, dy / dist, p0, p1);
return new mxPoint(pt.x / s - tr.x, pt.y / s - tr.y);
}, function(bounds, pt, me)
{
var pts = state.absolutePoints;
var n = pts.length - 1;
var tr = state.view.translate;
var s = state.view.scale;
var p0 = (start) ? pts[0] : pts[n];
var p1 = (start) ? pts[1] : pts[n - 1];
var dx = (start) ? p1.x - p0.x : p1.x - p0.x;
var dy = (start) ? p1.y - p0.y : p1.y - p0.y;
var dist = Math.sqrt(dx * dx + dy * dy);
pt.x = (pt.x + tr.x) * s;
pt.y = (pt.y + tr.y) * s;
@ -3699,12 +3716,12 @@
new mxConnectionConstraint(new mxPoint(0.25, 1), true),
new mxConnectionConstraint(new mxPoint(0.5, 1), true),
new mxConnectionConstraint(new mxPoint(0.75, 1), true),
new mxConnectionConstraint(new mxPoint(0.1, 0.25), true),
new mxConnectionConstraint(new mxPoint(0.2, 0.5), true),
new mxConnectionConstraint(new mxPoint(0.1, 0.75), true),
new mxConnectionConstraint(new mxPoint(0.9, 0.25), true),
new mxConnectionConstraint(new mxPoint(0, 0.25), true),
new mxConnectionConstraint(new mxPoint(0, 0.5), true),
new mxConnectionConstraint(new mxPoint(0, 0.75), true),
new mxConnectionConstraint(new mxPoint(1, 0.25), true),
new mxConnectionConstraint(new mxPoint(1, 0.5), true),
new mxConnectionConstraint(new mxPoint(0.9, 0.75), true)];
new mxConnectionConstraint(new mxPoint(1, 0.75), true)];
mxLine.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0, 0.5), false),
new mxConnectionConstraint(new mxPoint(0.25, 0.5), false),
new mxConnectionConstraint(new mxPoint(0.75, 0.5), false),

View file

@ -932,14 +932,9 @@ Sidebar.prototype.addGeneralPalette = function(expand)
this.createVertexTemplateEntry('text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;', 190, 120,
'<h1>Heading</h1><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>',
'Textbox', null, null, 'text textbox textarea'),
this.createVertexTemplateEntry('shape=ext;double=1;rounded=0;whiteSpace=wrap;html=1;', 120, 60, '', 'Double Rectangle', null, null, 'rect rectangle box double'),
this.createVertexTemplateEntry('shape=ext;double=1;rounded=1;whiteSpace=wrap;html=1;', 120, 60, '', 'Double Rounded Rectangle', null, null, 'rounded rect rectangle box double'),
this.createVertexTemplateEntry('ellipse;whiteSpace=wrap;html=1;', 120, 80, '', 'Ellipse', null, null, 'oval ellipse state'),
this.createVertexTemplateEntry('ellipse;shape=doubleEllipse;whiteSpace=wrap;html=1;', 120, 80, '', 'Double Ellipse', null, null, 'oval ellipse start end state double'),
this.createVertexTemplateEntry('whiteSpace=wrap;html=1;aspect=fixed;', 80, 80, '', 'Square', null, null, 'square'),
this.createVertexTemplateEntry('shape=ext;double=1;whiteSpace=wrap;html=1;aspect=fixed;', 80, 80, '', 'Double Square', null, null, 'double square'),
this.createVertexTemplateEntry('ellipse;whiteSpace=wrap;html=1;aspect=fixed;', 80, 80, '', 'Circle', null, null, 'circle'),
this.createVertexTemplateEntry('ellipse;shape=doubleEllipse;whiteSpace=wrap;html=1;aspect=fixed;', 80, 80, '', 'Double Circle', null, null, 'double circle'),
this.createVertexTemplateEntry('shape=process;whiteSpace=wrap;html=1;', 120, 60, '', 'Process', null, null, 'process task'),
this.createVertexTemplateEntry('rhombus;whiteSpace=wrap;html=1;', 80, 80, '', 'Diamond', null, null, 'diamond rhombus if condition decision conditional question test'),
this.createVertexTemplateEntry('shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;', 120, 60, '', 'Parallelogram'),
@ -950,12 +945,27 @@ Sidebar.prototype.addGeneralPalette = function(expand)
this.createVertexTemplateEntry('shape=document;whiteSpace=wrap;html=1;boundedLbl=1;', 120, 80, '', 'Document'),
this.createVertexTemplateEntry('shape=internalStorage;whiteSpace=wrap;html=1;', 80, 80, '', 'Internal Storage'),
this.createVertexTemplateEntry('shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;', 120, 80, '', 'Cube'),
this.createVertexTemplateEntry('shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;', 120, 80, '', 'Step'),
this.createVertexTemplateEntry('shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;', 120, 80, '', 'Step'),
this.createVertexTemplateEntry('shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;', 120, 60, '', 'Trapezoid'),
this.createVertexTemplateEntry('shape=tape;whiteSpace=wrap;html=1;', 120, 100, '', 'Tape'),
this.createVertexTemplateEntry('shape=note;whiteSpace=wrap;html=1;', 80, 100, '', 'Note'),
this.createVertexTemplateEntry('shape=card;whiteSpace=wrap;html=1;', 80, 100, '', 'Card'),
this.createVertexTemplateEntry('shape=callout;whiteSpace=wrap;html=1;perimeter=calloutPerimeter;', 120, 80, '', 'Callout'),
this.createVertexTemplateEntry('shape=umlActor;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;html=1;', 30, 60, 'Actor', 'Actor', false, null, 'user person human stickman'),
this.addEntry('curve', mxUtils.bind(this, function()
{
var cell = new mxCell('', new mxGeometry(0, 0, 50, 50), 'curved=1;endArrow=classic;html=1;');
cell.geometry.setTerminalPoint(new mxPoint(0, 50), true);
cell.geometry.setTerminalPoint(new mxPoint(50, 0), false);
cell.geometry.points = [new mxPoint(50, 50), new mxPoint(0, 0)];
cell.geometry.relative = true;
cell.edge = true;
return this.createEdgeTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, 'Curve');
})),
this.createEdgeTemplateEntry('shape=flexArrow;endArrow=classic;startArrow=classic;html=1;fillColor=#ffffff;', 50, 50, '', 'Bidirectional Arrow', null, lineTags + 'bidirectional'),
this.createEdgeTemplateEntry('shape=flexArrow;endArrow=classic;html=1;fillColor=#ffffff;', 50, 50, '', 'Arrow', null, lineTags + 'directional directed'),
this.createEdgeTemplateEntry('shape=link;html=1;', 50, 50, '', 'Link', null, lineTags + 'link'),
this.createEdgeTemplateEntry('endArrow=none;dashed=1;html=1;', 50, 50, '', 'Dashed Line', null, lineTags + 'dashed undirected no'),
this.createEdgeTemplateEntry('endArrow=none;html=1;', 50, 50, '', 'Line', null, lineTags + 'simple undirected plain blank no'),
this.createEdgeTemplateEntry('endArrow=classic;startArrow=classic;html=1;', 50, 50, '', 'Bidirectional Connector', null, lineTags + 'bidirectional'),
@ -1040,19 +1050,23 @@ Sidebar.prototype.addMiscPalette = function(expand)
return this.createVertexTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, 'Variable');
})),
this.createVertexTemplateEntry('shape=umlActor;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;html=1;', 30, 60, 'Actor', 'Actor', false, null, 'user person human stickman'),
this.createVertexTemplateEntry('html=1;whiteSpace=wrap;comic=1;strokeWidth=2;fontFamily=Comic Sans MS;fontStyle=1;', 120, 60, 'RECTANGLE', 'Comic Rectangle', true, null, 'comic rectangle rect box text retro'),
this.createVertexTemplateEntry('rhombus;html=1;align=center;whiteSpace=wrap;comic=1;strokeWidth=2;fontFamily=Comic Sans MS;fontStyle=1;', 100, 100, 'DIAMOND', 'Comic Diamond', true, null, 'comic diamond rhombus if condition decision conditional question test retro'),
this.createVertexTemplateEntry('shape=ext;double=1;rounded=0;whiteSpace=wrap;html=1;', 120, 80, '', 'Double Rectangle', null, null, 'rect rectangle box double'),
this.createVertexTemplateEntry('shape=ext;double=1;rounded=1;whiteSpace=wrap;html=1;', 120, 80, '', 'Double Rounded Rectangle', null, null, 'rounded rect rectangle box double'),
this.createVertexTemplateEntry('ellipse;shape=doubleEllipse;whiteSpace=wrap;html=1;', 100, 60, '', 'Double Ellipse', null, null, 'oval ellipse start end state double'),
this.createVertexTemplateEntry('shape=ext;double=1;whiteSpace=wrap;html=1;aspect=fixed;', 80, 80, '', 'Double Square', null, null, 'double square'),
this.createVertexTemplateEntry('ellipse;shape=doubleEllipse;whiteSpace=wrap;html=1;aspect=fixed;', 80, 80, '', 'Double Circle', null, null, 'double circle'),
this.createEdgeTemplateEntry('rounded=0;comic=1;strokeWidth=2;endArrow=blockThin;html=1;fontFamily=Comic Sans MS;fontStyle=1;', 50, 50, '', 'Comic Arrow'),
this.createVertexTemplateEntry('html=1;whiteSpace=wrap;comic=1;strokeWidth=2;fontFamily=Comic Sans MS;fontStyle=1;', 120, 60, 'RECTANGLE', 'Comic Rectangle', true, null, 'comic rectangle rect box text retro'),
this.createVertexTemplateEntry('rhombus;html=1;align=center;whiteSpace=wrap;comic=1;strokeWidth=2;fontFamily=Comic Sans MS;fontStyle=1;', 100, 100, 'DIAMOND', 'Comic Diamond', true, null, 'comic diamond rhombus if condition decision conditional question test retro'),
this.createVertexTemplateEntry('html=1;whiteSpace=wrap;aspect=fixed;shape=isoRectangle;', 150, 90, '', 'Isometric Square', true, null, 'rectangle rect box iso isometric'),
this.createVertexTemplateEntry('html=1;whiteSpace=wrap;aspect=fixed;shape=isoCube;', 90, 100, '', 'Isometric Cube', true, null, 'cube box iso isometric'),
this.createEdgeTemplateEntry('edgeStyle=isometricEdgeStyle;endArrow=none;html=1;', 50, 100, '', 'Isometric Edge 1'),
this.createEdgeTemplateEntry('edgeStyle=isometricEdgeStyle;endArrow=none;html=1;elbow=vertical;', 50, 100, '', 'Isometric Edge 2'),
this.createVertexTemplateEntry('shape=curlyBracket;whiteSpace=wrap;html=1;rounded=1;', 20, 120, '', 'Curly Bracket'),
this.createVertexTemplateEntry('line;strokeWidth=2;html=1;', 160, 10, '', 'Horizontal Line'),
this.createVertexTemplateEntry('line;strokeWidth=2;direction=south;html=1;', 10, 160, '', 'Vertical Line'),
this.createVertexTemplateEntry('line;strokeWidth=4;html=1;perimeter=backbonePerimeter;points=[];outlineConnect=0;', 160, 10, '', 'Horizontal Backbone', false, null, 'backbone bus network'),
this.createVertexTemplateEntry('line;strokeWidth=4;direction=south;html=1;perimeter=backbonePerimeter;points=[];outlineConnect=0;', 10, 160, '', 'Vertical Backbone', false, null, 'backbone bus network'),
this.createVertexTemplateEntry('shape=curlyBracket;whiteSpace=wrap;html=1;rounded=1;', 20, 120, '', 'Curly Bracket'),
this.createVertexTemplateEntry('shape=crossbar;whiteSpace=wrap;html=1;rounded=1;', 120, 20, '', 'Crossbar', false, null, 'crossbar distance measure dimension unit'),
this.createVertexTemplateEntry('shape=image;html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;imageAspect=1;aspect=fixed;image=' + this.gearImage, 52, 61, '', 'Image (Fixed Aspect)', false, null, 'fixed image icon symbol'),
this.createVertexTemplateEntry('shape=image;html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;imageAspect=0;image=' + this.gearImage, 50, 60, '', 'Image (Variable Aspect)', false, null, 'strechted image icon symbol'),
@ -1062,24 +1076,10 @@ Sidebar.prototype.addMiscPalette = function(expand)
this.createVertexTemplateEntry('shape=partialRectangle;whiteSpace=wrap;html=1;left=0;right=0;fillColor=none;', 120, 60, '', 'Partial Rectangle'),
this.createVertexTemplateEntry('shape=partialRectangle;whiteSpace=wrap;html=1;left=0;right=0;top=0;fillColor=none;routingCenterY=0.5;', 120, 60, '', 'Partial Rectangle'),
this.createVertexTemplateEntry('shape=partialRectangle;whiteSpace=wrap;html=1;bottom=1;right=1;top=0;bottom=1;fillColor=none;routingCenterX=-0.5;', 120, 60, '', 'Partial Rectangle'),
this.createEdgeTemplateEntry('shape=flexArrow;endArrow=classic;html=1;fillColor=#ffffff;', 50, 50, '', 'Directional Arrow', null, lineTags + 'directional directed'),
this.createEdgeTemplateEntry('shape=flexArrow;endArrow=classic;startArrow=classic;html=1;fillColor=#ffffff;', 50, 50, '', 'Bidirectional Arrow', null, lineTags + 'bidirectional'),
this.createEdgeTemplateEntry('edgeStyle=segmentEdgeStyle;endArrow=classic;html=1;', 50, 50, '', 'Manual Line', null, lineTags + 'manual'),
this.createEdgeTemplateEntry('shape=filledEdge;rounded=0;fixDash=1;endArrow=none;strokeWidth=10;fillColor=#ffffff;edgeStyle=orthogonalEdgeStyle;', 120, 60, '', 'Filled Edge'),
this.createEdgeTemplateEntry('edgeStyle=segmentEdgeStyle;endArrow=classic;html=1;', 50, 50, '', 'Manual Line', null, lineTags + 'manual'),
this.createEdgeTemplateEntry('shape=filledEdge;rounded=0;fixDash=1;endArrow=none;strokeWidth=10;fillColor=#ffffff;edgeStyle=orthogonalEdgeStyle;', 60, 40, '', 'Filled Edge'),
this.createEdgeTemplateEntry('edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;', 50, 50, '', 'Horizontal Elbow', null, lineTags + 'elbow horizontal'),
this.createEdgeTemplateEntry('edgeStyle=elbowEdgeStyle;elbow=vertical;endArrow=classic;html=1;', 50, 50, '', 'Vertical Elbow', null, lineTags + 'elbow vertical'),
this.addEntry('curve', mxUtils.bind(this, function()
{
var cell = new mxCell('', new mxGeometry(0, 0, 50, 50), 'curved=1;endArrow=classic;html=1;');
cell.geometry.setTerminalPoint(new mxPoint(0, 50), true);
cell.geometry.setTerminalPoint(new mxPoint(50, 0), false);
cell.geometry.points = [new mxPoint(50, 50), new mxPoint(0, 0)];
cell.geometry.relative = true;
cell.edge = true;
return this.createEdgeTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, 'Bidirectional Curve');
})),
this.createEdgeTemplateEntry('shape=link;html=1;', 50, 50, '', 'Link', null, lineTags + 'link')
this.createEdgeTemplateEntry('edgeStyle=elbowEdgeStyle;elbow=vertical;endArrow=classic;html=1;', 50, 50, '', 'Vertical Elbow', null, lineTags + 'elbow vertical')
];
this.addPaletteFunctions('misc', mxResources.get('misc'), (expand != null) ? expand : true, fns);
@ -1132,8 +1132,10 @@ Sidebar.prototype.createAdvancedShapes = function()
this.createVertexTemplateEntry('shape=sortShape;perimeter=rhombusPerimeter;whiteSpace=wrap;html=1;', 80, 80, '', 'Sort', null, null, 'sort'),
this.createVertexTemplateEntry('shape=collate;whiteSpace=wrap;html=1;', 80, 80, '', 'Collate', null, null, 'collate'),
this.createVertexTemplateEntry('shape=switch;whiteSpace=wrap;html=1;', 60, 60, '', 'Switch', null, null, 'switch router'),
this.createVertexTemplateEntry('shape=dimension;whiteSpace=wrap;html=1;align=center;points=[];verticalAlign=bottom;spacingBottom=-5;labelBackgroundColor=#ffffff', 100, 40, 'Label', 'Horizontal Dimension', null, null, 'horizontal dimension measure distance unit'),
this.createVertexTemplateEntry('shape=dimension;direction=north;whiteSpace=wrap;html=1;align=right;points=[];verticalAlign=middle;labelBackgroundColor=#ffffff', 40, 100, 'Label', 'Vertical Dimension', null, null, 'vertical dimension measure distance unit'),
this.addEntry('process bar', function()
{
return sb.createVertexTemplateFromData('zZXRaoMwFIafJpcDjbNrb2233rRQ8AkyPdPQaCRJV+3T7yTG2rUVBoOtgpDzn/xJzncCIdGyateKNeVW5iBI9EqipZLS9KOqXYIQhAY8J9GKUBrgT+jbRDZ02aBhCmrzEwPtDZ9MHKBXdkpmoDWKCVN9VptO+Kw+8kqwGqMkK7nIN6yTB7uTNizbD1FSSsVPsjYMC1qFKHxwIZZSSIVxLZ1/nJNar5+oQPMT7IYCrqUta1ENzuqGaeOFTArBGs3f3Vmtoo2Se7ja1h00kSoHK4bBIKUNy3hdoPYU0mF91i9mT8EEL2ocZ3gKa00ayWujLZY4IfHKFonVDLsRGgXuQ90zBmWgneyTk3yT1iArMKrDKUeem9L3ajHrbSXwohxsQd/ggOleKM7ese048J2/fwuim1uQGmhQCW8vQMkacP3GCQgBFMftHEsr7cYYe95CnmKTPMFbYD8CQ++DGQy+/M5X4ku5wHYmdIktfvk9tecpavThqS3m/0YtnqIWPTy1cD77K2wYjo+Ay317I74A', 296, 100, 'Process Bar');
}),
this.createVertexTemplateEntry('swimlane;', 200, 200, 'Container', 'Container', null, null, 'container swimlane lane pool'),
this.addEntry('list', function()
{

122
war/js/reader.min.js vendored
View file

@ -184,7 +184,7 @@ f)+"\n"+t+"}":"{"+z.join(",")+"}";f=t;return l}}"function"!==typeof Date.prototy
e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});
"function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.prototype.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();"undefined"===typeof window.mxBasePath&&(window.mxBasePath="https://www.draw.io/mxgraph/");window.mxLoadStylesheets=window.mxLoadStylesheets||!1;window.mxLoadResources=window.mxLoadResources||!1;window.mxLanguage=window.mxLanguage||"en";window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";
window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"7.7.6",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"7.7.7",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT:0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&&
0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.indexOf("Firefox/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&
0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||
@ -1312,8 +1312,8 @@ mxGraph.prototype.createEdgeHandler=function(a,b){return b==mxEdgeStyle.Loop||b=
mxGraph.prototype.addMouseListener=function(a){null==this.mouseListeners&&(this.mouseListeners=[]);this.mouseListeners.push(a)};mxGraph.prototype.removeMouseListener=function(a){if(null!=this.mouseListeners)for(var b=0;b<this.mouseListeners.length;b++)if(this.mouseListeners[b]==a){this.mouseListeners.splice(b,1);break}};
mxGraph.prototype.updateMouseEvent=function(a,b){if(null==a.graphX||null==a.graphY){var c=mxUtils.convertPoint(this.container,a.getX(),a.getY());a.graphX=c.x-this.panDx;a.graphY=c.y-this.panDy;null==a.getCell()&&this.isMouseDown&&b==mxEvent.MOUSE_MOVE&&(a.state=this.view.getState(this.getCellAt(c.x,c.y,null,null,null,function(a){return null==a.shape||a.shape.paintBackground!=mxRectangleShape.prototype.paintBackground||"1"==mxUtils.getValue(a.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=a.shape.fill&&
a.shape.fill!=mxConstants.NONE})))}return a};mxGraph.prototype.getStateForTouchEvent=function(a){var b=mxEvent.getClientX(a);a=mxEvent.getClientY(a);b=mxUtils.convertPoint(this.container,b,a);return this.view.getState(this.getCellAt(b.x,b.y))};
mxGraph.prototype.isEventIgnored=function(a,b,c){var d=mxEvent.isMouseEvent(b.getEvent()),e=!1;b.getEvent()==this.lastEvent?e=!0:this.lastEvent=b.getEvent();null!=this.eventSource&&a!=mxEvent.MOUSE_MOVE?(mxEvent.removeGestureListeners(this.eventSource,null,this.mouseMoveRedirect,this.mouseUpRedirect),this.eventSource=this.mouseUpRedirect=this.mouseMoveRedirect=null):null!=this.eventSource&&b.getSource()!=this.eventSource?e=!0:!mxClient.IS_TOUCH||a!=mxEvent.MOUSE_DOWN||d||mxEvent.isPenEvent(b.getEvent())||
(this.eventSource=b.getSource(),this.mouseMoveRedirect=mxUtils.bind(this,function(a){this.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(a,this.getStateForTouchEvent(a)))}),this.mouseUpRedirect=mxUtils.bind(this,function(a){this.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(a,this.getStateForTouchEvent(a)))}),mxEvent.addGestureListeners(this.eventSource,null,this.mouseMoveRedirect,this.mouseUpRedirect));this.isSyntheticEventIgnored(a,b,c)&&(e=!0);if(!mxEvent.isPopupTrigger(this.lastEvent)&&
mxGraph.prototype.isEventIgnored=function(a,b,c){var d=mxEvent.isMouseEvent(b.getEvent()),e=!1;b.getEvent()==this.lastEvent?e=!0:this.lastEvent=b.getEvent();null!=this.eventSource&&a!=mxEvent.MOUSE_MOVE?(mxEvent.removeGestureListeners(this.eventSource,null,this.mouseMoveRedirect,this.mouseUpRedirect),this.eventSource=this.mouseUpRedirect=this.mouseMoveRedirect=null):mxClient.IS_GC||null==this.eventSource||b.getSource()==this.eventSource?!mxClient.IS_TOUCH||a!=mxEvent.MOUSE_DOWN||d||mxEvent.isPenEvent(b.getEvent())||
(this.eventSource=b.getSource(),this.mouseMoveRedirect=mxUtils.bind(this,function(a){this.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(a,this.getStateForTouchEvent(a)))}),this.mouseUpRedirect=mxUtils.bind(this,function(a){this.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(a,this.getStateForTouchEvent(a)))}),mxEvent.addGestureListeners(this.eventSource,null,this.mouseMoveRedirect,this.mouseUpRedirect)):e=!0;this.isSyntheticEventIgnored(a,b,c)&&(e=!0);if(!mxEvent.isPopupTrigger(this.lastEvent)&&
a!=mxEvent.MOUSE_MOVE&&2==this.lastEvent.detail)return!0;a==mxEvent.MOUSE_UP&&this.isMouseDown?this.isMouseDown=!1:a!=mxEvent.MOUSE_DOWN||this.isMouseDown?!e&&((!mxClient.IS_FF||a!=mxEvent.MOUSE_MOVE)&&this.isMouseDown&&this.isMouseTrigger!=d||a==mxEvent.MOUSE_DOWN&&this.isMouseDown||a==mxEvent.MOUSE_UP&&!this.isMouseDown)&&(e=!0):(this.isMouseDown=!0,this.isMouseTrigger=d);e||a!=mxEvent.MOUSE_DOWN||(this.lastMouseX=b.getX(),this.lastMouseY=b.getY());return e};
mxGraph.prototype.isSyntheticEventIgnored=function(a,b,c){c=!1;b=mxEvent.isMouseEvent(b.getEvent());this.ignoreMouseEvents&&b&&a!=mxEvent.MOUSE_MOVE?(this.ignoreMouseEvents=a!=mxEvent.MOUSE_UP,c=!0):mxClient.IS_FF&&!b&&a==mxEvent.MOUSE_UP&&(this.ignoreMouseEvents=!0);return c};
mxGraph.prototype.isEventSourceIgnored=function(a,b){var c=b.getSource(),d=null!=c.nodeName?c.nodeName.toLowerCase():"",e=!mxEvent.isMouseEvent(b.getEvent())||mxEvent.isLeftMouseButton(b.getEvent());return a==mxEvent.MOUSE_DOWN&&e&&("select"==d||"option"==d||"input"==d&&"checkbox"!=c.type&&"radio"!=c.type&&"button"!=c.type&&"submit"!=c.type&&"file"!=c.type)};mxGraph.prototype.getEventState=function(a){return a};
@ -1837,61 +1837,61 @@ e/2);a.lineTo(c,0);a.lineTo(d-b,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d-b,e);a.lin
2),a.setDashed(d,e),ja.prototype.origPaintEdgeShape.apply(this,arguments))}};mxCellRenderer.prototype.defaultShapes.filledEdge=ja;mxMarker.addMarker("dash",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-3*n/2-m/2);a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-n/2,d.y-n/2+m/2);a.lineTo(d.x+n/2-3*m/2,d.y-
3*n/2-m/2);a.moveTo(d.x-m/2+n/2,d.y-n/2-m/2);a.lineTo(d.x-n/2-3*m/2,d.y-3*n/2+m/2);a.stroke()}});mxMarker.addMarker("circle",Aa);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var m=d.clone(),n=Aa.apply(this,arguments),p=e*(g+2*k),q=f*(g+2*k);return function(){n.apply(this,arguments);a.begin();a.moveTo(m.x-e*k,m.y-f*k);a.lineTo(m.x-2*p+e*k,m.y-2*q+f*k);a.moveTo(m.x-p-q+f*k,m.y-q+p-e*k);a.lineTo(m.x+q-p-f*k,m.y-q-p+e*k);a.stroke()}});mxMarker.addMarker("async",function(a,b,c,d,e,f,g,
h,k,l){b=e*k*1.118;c=f*k*1.118;e*=g+k;f*=g+k;var m=d.clone();m.x-=b;m.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(m.x,m.y);h?a.lineTo(m.x-e-f/2,m.y-f+e/2):a.lineTo(m.x+f/2-e,m.y-f-e/2);a.lineTo(m.x-e,m.y-f);a.close();l?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(b,c,d,e,f,g,h,k,l,m){f*=h+l;g*=h+l;var n=e.clone();return function(){b.begin();b.moveTo(n.x,n.y);k?b.lineTo(n.x-f-g/a,n.y-g+f/a):b.lineTo(n.x+g/a-f,n.y-g-f/
a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ca=function(a,b,c){return na(a,["width"],b,function(b,d,e,f,g){g=a.shape.getEdgeWidth()*a.view.scale+c;return new mxPoint(f.x+d*b/4+e*g/2,f.y+e*b/4-d*g/2)},function(b,d,e,f,g,h){b=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));a.style.width=Math.round(2*b)/a.view.scale-c})},na=function(a,b,c,d,e){var f=a.absolutePoints,g=f.length-1,h=a.view.translate,k=a.view.scale,l=c?f[0]:f[g],m=c?f[1]:f[g-1],n=m.x-l.x,p=m.y-l.y,q=Math.sqrt(n*
n+p*p);return da(a,b,function(a){a=d.call(this,q,n/q,p/q,l,m);return new mxPoint(a.x/k-h.x,a.y/k-h.y)},function(a,b,c){a=Math.sqrt(n*n+p*p);b.x=(b.x+h.x)*k;b.y=(b.y+h.y)*k;e.call(this,a,n/a,p/a,l,m,b,c)})},ha=function(a){return function(b){return[da(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",T.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",T.prototype.arrowSize)));return new mxPoint(b.x+
(1-d)*b.width,b.y+(1-c)*b.height/2)},function(b,c){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(b.y+b.height/2-c.y)/b.height*2));this.state.style.arrowSize=Math.max(0,Math.min(a,(b.x+b.width-c.x)/b.width))})]}},ya=function(a,b,c){return function(d){var e=[da(d,["size"],function(c){var d=Math.max(0,Math.min(c.width,Math.min(c.height,parseFloat(mxUtils.getValue(this.state.style,"size",b)))))*a;return new mxPoint(c.x+d,c.y+d)},function(b,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,
c.x-b.x),Math.min(b.height,c.y-b.y)))/a)})];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ga(d));return e}},la=function(a,b,c,d,e){c=null!=c?c:1;return function(f){var g=[da(f,["size"],function(b){var c=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,"size",c?e:a));return new mxPoint(b.x+Math.max(0,Math.min(b.width,d*(c?1:b.width))),b.getCenterY())},function(a,b){var d=null!=e?"0"!=mxUtils.getValue(this.state.style,
"fixedSize","0"):null;this.state.style.size=d?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width))},null,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ga(f));return g}},Da=function(a){return function(b){var c=[da(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",n.prototype.size))));return new mxPoint(b.x+c*b.width*.75,b.y+b.height/4)},function(b,c){this.state.style.size=Math.max(0,Math.min(a,(c.x-b.x)/(.75*b.width)))},null,
!0)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ga(b));return c}},oa=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b}},ga=function(a,b){return da(a,[mxConstants.STYLE_ARCSIZE],function(c){var d=null!=b?b:c.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(c.x+c.width-Math.min(c.width/
2,e),c.y+d)}e=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(c.x+c.width-Math.min(Math.max(c.width/2,c.height/2),Math.min(c.width,c.height)*e),c.y+d)},function(b,c,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(b.width,2*(b.x+b.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,
Math.max(0,100*(b.width-c.x+b.x)/Math.min(b.width,b.height))))})},da=function(a,b,c,d,e,f){var g=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);g.execute=function(){for(var a=0;a<b.length;a++)this.copyStyle(b[a])};g.getPosition=c;g.setPosition=d;g.ignoreGrid=null!=e?e:!0;if(f){var h=g.positionChanged;g.positionChanged=function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},za={link:function(a){return[Ca(a,!0,10),Ca(a,!1,10)]},flexArrow:function(a){var b=
a.view.graph.gridSize/a.view.scale,c=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(na(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)-c*
b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<
b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),c.push(na(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,f){b=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)-c*b/2)},function(c,d,e,f,g,h,k){c=
Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-
parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-parseFloat(a.style.endWidth))<b&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(na(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,
mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=
a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),c.push(na(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/
5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=
a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<b&&(a.style.endWidth=a.style.startWidth))})));return c},swimlane:function(a){var b=[da(a,[mxConstants.STYLE_STARTSIZE],function(b){var c=parseFloat(mxUtils.getValue(a.style,
mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(b.getCenterX(),b.y+Math.max(0,Math.min(b.height,c))):new mxPoint(b.x+Math.max(0,Math.min(b.width,c)),b.getCenterY())},function(b,c){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(b.height,c.y-b.y))):Math.round(Math.max(0,Math.min(b.width,c.x-b.x)))})];if(mxUtils.getValue(a.style,
mxConstants.STYLE_ROUNDED)){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));b.push(ga(a,c/2))}return b},label:oa(),ext:oa(),rectangle:oa(),triangle:oa(),rhombus:oa(),umlLifeline:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",K.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,
b.y-a.y)))},!1)]},umlFrame:function(a){return[da(a,["width","height"],function(a){var b=Math.max(H.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",H.prototype.width))),c=Math.max(1.5*H.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",H.prototype.height)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(H.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*H.prototype.corner,
Math.min(a.height,b.y-a.y)))},!1)]},process:function(a){var b=[da(a,["size"],function(a){var b=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size))));return new mxPoint(a.x+a.width*b,a.y+a.height/4)},function(a,b){this.state.style.size=Math.max(0,Math.min(.5,(b.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},cross:function(a){return[da(a,["size"],function(a){var b=Math.min(a.width,a.height),b=Math.max(0,Math.min(1,
mxUtils.getValue(this.state.style,"size",ma.prototype.size)))*b/2;return new mxPoint(a.getCenterX()-b,a.getCenterY()-b)},function(a,b){var c=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-b.y)/c*2,Math.max(0,a.getCenterX()-b.x)/c*2)))})]},note:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",e.prototype.size)))));return new mxPoint(a.x+a.width-
b,a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},manualInput:function(a){var b=[da(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",I.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*b/4)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(b.y-a.y)/3)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));
return b},dataStorage:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ea.prototype.size))));return new mxPoint(a.x+(1-b)*a.width,a.getCenterY())},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width-b.x)/a.width))})]},callout:function(a){var b=[da(a,["size","position"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",w.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
"position",w.prototype.position)));mxUtils.getValue(this.state.style,"base",w.prototype.base);return new mxPoint(a.x+c*a.width,a.y+a.height-b)},function(a,b){mxUtils.getValue(this.state.style,"base",w.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-b.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100}),da(a,["position2"],function(a){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",w.prototype.position2)));
return new mxPoint(a.x+b*a.width,a.y+a.height)},function(a,b){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100}),da(a,["base"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",w.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",w.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",w.prototype.base)));return new mxPoint(a.x+Math.min(a.width,c*
a.width+d),a.y+a.height-b)},function(a,b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",w.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,b.x-a.x-c*a.width)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},internalStorage:function(a){var b=[da(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ba.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
"dy",ba.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},corner:function(a){return[da(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",N.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
"dy",N.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},tee:function(a){return[da(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",X.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",X.prototype.dy)));return new mxPoint(a.x+(a.width+b)/2,a.y+c)},function(a,
b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},singleArrow:ha(1),doubleArrow:ha(.5),folder:function(a){return[da(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",g.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",g.prototype.tabHeight)));mxUtils.getValue(this.state.style,
"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=Math.max(0,Math.min(a.width,b.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},document:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,
"size",l.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},tape:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",k.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b*a.height/2)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(b.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[da(a,
["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",O.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},step:la(x.prototype.size,!0,null,!0,x.prototype.fixedSize),hexagon:la(y.prototype.size,!0,.5,!0),curlyBracket:la(p.prototype.size,!1),display:la(ia.prototype.size,!1),cube:ya(1,a.prototype.size,!1),card:ya(.5,h.prototype.size,!0),loopLimit:ya(.5,
W.prototype.size,!0),trapezoid:Da(.5),parallelogram:Da(1)};Graph.createHandle=da;Graph.handleFactory=za;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=za[a];if(null!=a)return a(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=
function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);a=za[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var sa=new mxPoint(1,0),ta=new mxPoint(1,0),ha=mxUtils.toRadians(-30),sa=mxUtils.getRotatedPoint(sa,Math.cos(ha),Math.sin(ha)),ha=mxUtils.toRadians(-150),ta=mxUtils.getRotatedPoint(ta,
Math.cos(ha),Math.sin(ha));mxEdgeStyle.IsometricConnector=function(a,b,c,d,e){var f=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,h=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null==h&&null!=b&&(h=new mxPoint(b.getCenterX(),b.getCenterY()));null==g&&null!=c&&(g=new mxPoint(c.getCenterX(),c.getCenterY()));var k=sa.x,l=sa.y,m=ta.x,n=ta.y,p="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,b,c){a-=q.x;var d=b-q.y;b=(n*a-
m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);p?(c&&(q=new mxPoint(q.x+k*b,q.y+l*b),e.push(q)),q=new mxPoint(q.x+m*a,q.y+n*a)):(c&&(q=new mxPoint(q.x+m*a,q.y+n*a),e.push(q)),q=new mxPoint(q.x+k*b,q.y+l*b));e.push(q)};var q=h;null==d&&(d=new mxPoint(h.x+(g.x-h.x)/2,h.y+(g.y-h.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Ia=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=
new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return Ia.apply(this,arguments)};b.prototype.constraints=[];c.prototype.constraints=[];w.prototype.constraints=[];mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),
!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,
1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;u.prototype.constraints=mxRectangleShape.prototype.constraints;e.prototype.constraints=
mxRectangleShape.prototype.constraints;h.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;ba.prototype.constraints=mxRectangleShape.prototype.constraints;ea.prototype.constraints=mxRectangleShape.prototype.constraints;Q.prototype.constraints=mxEllipse.prototype.constraints;fa.prototype.constraints=mxEllipse.prototype.constraints;Y.prototype.constraints=mxEllipse.prototype.constraints;
pa.prototype.constraints=mxEllipse.prototype.constraints;I.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=mxRectangleShape.prototype.constraints;ia.prototype.constraints=mxRectangleShape.prototype.constraints;W.prototype.constraints=mxRectangleShape.prototype.constraints;O.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)];E.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)];aa.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)];
f.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)];k.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)];x.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(.1,.25),!0),new mxConnectionConstraint(new mxPoint(.2,.5),!0),new mxConnectionConstraint(new mxPoint(.1,.75),!0),new mxConnectionConstraint(new mxPoint(.9,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.9,.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)];U.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(.125,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(.125,.75),!0),new mxConnectionConstraint(new mxPoint(.875,
.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.875,.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)];m.prototype.constraints=mxRectangleShape.prototype.constraints;n.prototype.constraints=
mxRectangleShape.prototype.constraints;l.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;X.prototype.constraints=null;N.prototype.constraints=null;J.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,
.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];T.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ca.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ma.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,
1),!1)];K.prototype.constraints=null;P.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)];V.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)]})();
a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ca=function(a,b,c){return na(a,["width"],b,function(b,d,e,f,g){g=a.shape.getEdgeWidth()*a.view.scale+c;return new mxPoint(f.x+d*b/4+e*g/2,f.y+e*b/4-d*g/2)},function(b,d,e,f,g,h){b=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));a.style.width=Math.round(2*b)/a.view.scale-c})},na=function(a,b,c,d,e){return da(a,b,function(b){var e=a.absolutePoints,f=e.length-1;b=a.view.translate;var g=a.view.scale,h=c?e[0]:e[f],e=c?e[1]:e[f-1],
f=e.x-h.x,k=e.y-h.y,l=Math.sqrt(f*f+k*k),h=d.call(this,l,f/l,k/l,h,e);return new mxPoint(h.x/g-b.x,h.y/g-b.y)},function(b,d,f){var g=a.absolutePoints,h=g.length-1;b=a.view.translate;var k=a.view.scale,l=c?g[0]:g[h],g=c?g[1]:g[h-1],h=g.x-l.x,m=g.y-l.y,n=Math.sqrt(h*h+m*m);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,n,h/n,m/n,l,g,d,f)})},ha=function(a){return function(b){return[da(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",T.prototype.arrowWidth))),
d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",T.prototype.arrowSize)));return new mxPoint(b.x+(1-d)*b.width,b.y+(1-c)*b.height/2)},function(b,c){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(b.y+b.height/2-c.y)/b.height*2));this.state.style.arrowSize=Math.max(0,Math.min(a,(b.x+b.width-c.x)/b.width))})]}},ya=function(a,b,c){return function(d){var e=[da(d,["size"],function(c){var d=Math.max(0,Math.min(c.width,Math.min(c.height,parseFloat(mxUtils.getValue(this.state.style,
"size",b)))))*a;return new mxPoint(c.x+d,c.y+d)},function(b,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,c.x-b.x),Math.min(b.height,c.y-b.y)))/a)})];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ga(d));return e}},la=function(a,b,c,d,e){c=null!=c?c:1;return function(f){var g=[da(f,["size"],function(b){var c=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style,"size",c?e:a));return new mxPoint(b.x+
Math.max(0,Math.min(b.width,d*(c?1:b.width))),b.getCenterY())},function(a,b,d){var g=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null;a=g?b.x-a.x:Math.max(0,Math.min(c,(b.x-a.x)/a.width));g&&!mxEvent.isAltDown(d.getEvent())&&(a=f.view.graph.snap(a));this.state.style.size=a},null,d)];b&&mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ga(f));return g}},Da=function(a){return function(b){var c=[da(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,
"size",n.prototype.size))));return new mxPoint(b.x+c*b.width*.75,b.y+b.height/4)},function(b,c){this.state.style.size=Math.max(0,Math.min(a,(c.x-b.x)/(.75*b.width)))},null,!0)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ga(b));return c}},oa=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b}},ga=function(a,b){return da(a,[mxConstants.STYLE_ARCSIZE],function(c){var d=null!=b?b:c.height/8;if("1"==mxUtils.getValue(a.style,
mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(c.x+c.width-Math.min(c.width/2,e),c.y+d)}e=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(c.x+c.width-Math.min(Math.max(c.width/2,c.height/2),Math.min(c.width,c.height)*e),c.y+d)},function(b,c,d){"1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?
this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(b.width,2*(b.x+b.width-c.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(b.width-c.x+b.x)/Math.min(b.width,b.height))))})},da=function(a,b,c,d,e,f){var g=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);g.execute=function(){for(var a=0;a<b.length;a++)this.copyStyle(b[a])};g.getPosition=c;g.setPosition=d;g.ignoreGrid=null!=e?e:!0;if(f){var h=g.positionChanged;g.positionChanged=
function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},za={link:function(a){return[Ca(a,!0,10),Ca(a,!1,10)]},flexArrow:function(a){var b=a.view.graph.gridSize/a.view.scale,c=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(na(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,
mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)-c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=
a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),c.push(na(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,f){b=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/
5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)-c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=
a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-parseFloat(a.style.endWidth))<b&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(na(a,
["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=
Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),c.push(na(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
!1,function(b,c,d,e,f){b=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*a.view.scale)-d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)+c*b/2)},function(c,d,e,f,g,h,k){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/
3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<b/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-
parseFloat(a.style.startWidth))<b&&(a.style.endWidth=a.style.startWidth))})));return c},swimlane:function(a){var b=[da(a,[mxConstants.STYLE_STARTSIZE],function(b){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(b.getCenterX(),b.y+Math.max(0,Math.min(b.height,c))):new mxPoint(b.x+Math.max(0,Math.min(b.width,c)),b.getCenterY())},function(b,c){a.style[mxConstants.STYLE_STARTSIZE]=
1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(b.height,c.y-b.y))):Math.round(Math.max(0,Math.min(b.width,c.x-b.x)))})];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var c=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));b.push(ga(a,c/2))}return b},label:oa(),ext:oa(),rectangle:oa(),triangle:oa(),rhombus:oa(),umlLifeline:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,
parseFloat(mxUtils.getValue(this.state.style,"size",K.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))},!1)]},umlFrame:function(a){return[da(a,["width","height"],function(a){var b=Math.max(H.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",H.prototype.width))),c=Math.max(1.5*H.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",H.prototype.height)));
return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(H.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*H.prototype.corner,Math.min(a.height,b.y-a.y)))},!1)]},process:function(a){var b=[da(a,["size"],function(a){var b=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size))));return new mxPoint(a.x+a.width*b,a.y+a.height/4)},function(a,b){this.state.style.size=Math.max(0,Math.min(.5,
(b.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},cross:function(a){return[da(a,["size"],function(a){var b=Math.min(a.width,a.height),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",ma.prototype.size)))*b/2;return new mxPoint(a.getCenterX()-b,a.getCenterY()-b)},function(a,b){var c=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-b.y)/c*2,Math.max(0,a.getCenterX()-b.x)/c*2)))})]},
note:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",e.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},manualInput:function(a){var b=[da(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",I.prototype.size)));
return new mxPoint(a.x+a.width/4,a.y+3*b/4)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(b.y-a.y)/3)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ga(a));return b},dataStorage:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ea.prototype.size))));return new mxPoint(a.x+(1-b)*a.width,a.getCenterY())},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width-
b.x)/a.width))})]},callout:function(a){var b=[da(a,["size","position"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",w.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",w.prototype.position)));mxUtils.getValue(this.state.style,"base",w.prototype.base);return new mxPoint(a.x+c*a.width,a.y+a.height-b)},function(a,b){mxUtils.getValue(this.state.style,"base",w.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height,
a.y+a.height-b.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100}),da(a,["position2"],function(a){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",w.prototype.position2)));return new mxPoint(a.x+b*a.width,a.y+a.height)},function(a,b){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100}),da(a,["base"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",w.prototype.size))),
c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",w.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",w.prototype.base)));return new mxPoint(a.x+Math.min(a.width,c*a.width+d),a.y+a.height-b)},function(a,b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",w.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(a.width,b.x-a.x-c*a.width)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,
!1)&&b.push(ga(a));return b},internalStorage:function(a){var b=[da(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",ba.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",ba.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,
!1)&&b.push(ga(a));return b},corner:function(a){return[da(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",N.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",N.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},tee:function(a){return[da(a,["dx","dy"],function(a){var b=
Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",X.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",X.prototype.dy)));return new mxPoint(a.x+(a.width+b)/2,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},singleArrow:ha(1),doubleArrow:ha(.5),folder:function(a){return[da(a,["tabWidth","tabHeight"],function(a){var b=
Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",g.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",g.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=Math.max(0,Math.min(a.width,b.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&
(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},document:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",l.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},tape:function(a){return[da(a,["size"],function(a){var b=Math.max(0,
Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",k.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b*a.height/2)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(b.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[da(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",O.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+
a.height-b.y)/a.height))})]},step:la(x.prototype.size,!0,null,!0,x.prototype.fixedSize),hexagon:la(y.prototype.size,!0,.5,!0),curlyBracket:la(p.prototype.size,!1),display:la(ia.prototype.size,!1),cube:ya(1,a.prototype.size,!1),card:ya(.5,h.prototype.size,!0),loopLimit:ya(.5,W.prototype.size,!0),trapezoid:Da(.5),parallelogram:Da(1)};Graph.createHandle=da;Graph.handleFactory=za;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=
this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=za[a];if(null!=a)return a(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==this.state.view.graph.cellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_CONNECTOR);a=za[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=
function(){},Graph.handleFactory={};var sa=new mxPoint(1,0),ta=new mxPoint(1,0),ha=mxUtils.toRadians(-30),sa=mxUtils.getRotatedPoint(sa,Math.cos(ha),Math.sin(ha)),ha=mxUtils.toRadians(-150),ta=mxUtils.getRotatedPoint(ta,Math.cos(ha),Math.sin(ha));mxEdgeStyle.IsometricConnector=function(a,b,c,d,e){var f=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,h=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null==h&&null!=b&&(h=new mxPoint(b.getCenterX(),b.getCenterY()));null==
g&&null!=c&&(g=new mxPoint(c.getCenterX(),c.getCenterY()));var k=sa.x,l=sa.y,m=ta.x,n=ta.y,p="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,b,c){a-=q.x;var d=b-q.y;b=(n*a-m*d)/(k*n-l*m);a=(l*a-k*d)/(l*m-k*n);p?(c&&(q=new mxPoint(q.x+k*b,q.y+l*b),e.push(q)),q=new mxPoint(q.x+m*a,q.y+n*a)):(c&&(q=new mxPoint(q.x+m*a,q.y+n*a),e.push(q)),q=new mxPoint(q.x+k*b,q.y+l*b));e.push(q)};var q=h;null==d&&(d=new mxPoint(h.x+(g.x-h.x)/2,h.y+(g.y-h.y)/2));a(d.x,d.y,
!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Ia=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return Ia.apply(this,arguments)};b.prototype.constraints=[];c.prototype.constraints=[];w.prototype.constraints=[];mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,
0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];
mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=
mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;u.prototype.constraints=mxRectangleShape.prototype.constraints;e.prototype.constraints=mxRectangleShape.prototype.constraints;h.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;ba.prototype.constraints=mxRectangleShape.prototype.constraints;ea.prototype.constraints=
mxRectangleShape.prototype.constraints;Q.prototype.constraints=mxEllipse.prototype.constraints;fa.prototype.constraints=mxEllipse.prototype.constraints;Y.prototype.constraints=mxEllipse.prototype.constraints;pa.prototype.constraints=mxEllipse.prototype.constraints;I.prototype.constraints=mxRectangleShape.prototype.constraints;qa.prototype.constraints=mxRectangleShape.prototype.constraints;ia.prototype.constraints=mxRectangleShape.prototype.constraints;W.prototype.constraints=mxRectangleShape.prototype.constraints;
O.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)];E.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)];aa.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)];f.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)];k.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)];x.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)];U.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(.125,
.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(.125,.75),!0),new mxConnectionConstraint(new mxPoint(.875,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.875,.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)];m.prototype.constraints=mxRectangleShape.prototype.constraints;n.prototype.constraints=mxRectangleShape.prototype.constraints;l.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;X.prototype.constraints=null;N.prototype.constraints=null;J.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,
.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];T.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ca.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ma.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];K.prototype.constraints=null;P.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)];V.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)]})();

File diff suppressed because one or more lines are too long

1221
war/js/viewer.min.js vendored

File diff suppressed because one or more lines are too long

4171
war/stencils/sitemap.xml Normal file

File diff suppressed because it is too large Load diff