/**
 * Skipped minification because the original files appears to be already minified.
 * Original file: /npm/draw2d_pro@1.0.44/dist/draw2d_pro.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
/*! For license information please see draw2d_pro.js.LICENSE.txt */
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.draw2d_pro=e():t.draw2d_pro=e()}(self,(()=>(()=>{var __webpack_modules__={"./node_modules/canvg-browser/index.js":(t,e,n)=>{"use strict";var i=n("./node_modules/rgbcolor/index.js"),r=n("./node_modules/stackblur/index.js");n("./node_modules/xmldom/dom-parser.js");function a(t,e,n){if(null!=t||null!=e||null!=n){"string"==typeof t&&(t=document.getElementById(t)),null!=t.svg&&t.svg.stop();var o=function(t){var e={opts:t},n=function(){var t;void 0!==Element.prototype.matches?t=function(t,e){return t.matches(e)}:void 0!==Element.prototype.webkitMatchesSelector?t=function(t,e){return t.webkitMatchesSelector(e)}:void 0!==Element.prototype.mozMatchesSelector?t=function(t,e){return t.mozMatchesSelector(e)}:void 0!==Element.prototype.msMatchesSelector?t=function(t,e){return t.msMatchesSelector(e)}:void 0!==Element.prototype.oMatchesSelector?t=function(t,e){return t.oMatchesSelector(e)}:("function"!=typeof jQuery&&"function"!=typeof Zepto||(t=function(t,e){return $(t).is(e)}),void 0===t&&(t=Sizzle.matchesSelector));return t}();"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.drawSvg=function(t,e,n,i,r,s){var o={ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0,ignoreClear:!0,offsetX:e,offsetY:n,scaleWidth:i,scaleHeight:r};for(var l in s)s.hasOwnProperty(l)&&(o[l]=s[l]);a(this.canvas,t,o)});e.FRAMERATE=30,e.MAX_VIRTUAL_PIXELS=3e4,e.log=function(t){},1==e.opts.log&&"undefined"!=typeof console&&(e.log=function(t){console.log(t)});e.init=function(t){var n=0;e.UniqueId=function(){return"canvg"+ ++n},e.Definitions={},e.Styles={},e.StylesSpecificity={},e.Animations=[],e.Images=[],e.ctx=t,e.ViewPort=new function(){this.viewPorts=[],this.Clear=function(){this.viewPorts=[]},this.SetCurrent=function(t,e){this.viewPorts.push({width:t,height:e})},this.RemoveCurrent=function(){this.viewPorts.pop()},this.Current=function(){return this.viewPorts[this.viewPorts.length-1]},this.width=function(){return this.Current().width},this.height=function(){return this.Current().height},this.ComputeSize=function(t){return null!=t&&"number"==typeof t?t:"x"==t?this.width():"y"==t?this.height():Math.sqrt(Math.pow(this.width(),2)+Math.pow(this.height(),2))/Math.sqrt(2)}}},e.init(),e.ImagesLoaded=function(){for(var t=0;t<e.Images.length;t++)if(!e.Images[t].loaded)return!1;return!0},e.trim=function(t){return t.replace(/^\s+|\s+$/g,"")},e.compressSpaces=function(t){return t.replace(/[\s\r\t\n]+/gm," ")},e.ajax=function(t){var e;return(e=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP"))?(e.open("GET",t,!1),e.send(null),e.responseText):null},e.parseXml=function(t){if("undefined"!=typeof Windows&&void 0!==Windows.Data&&void 0!==Windows.Data.Xml){var e=new Windows.Data.Xml.Dom.XmlDocument,n=new Windows.Data.Xml.Dom.XmlLoadSettings;return n.prohibitDtd=!1,e.loadXml(t,n),e}return window.DOMParser?(new DOMParser).parseFromString(t,"text/xml"):(t=t.replace(/<!DOCTYPE svg[^>]*>/,""),(e=new ActiveXObject("Microsoft.XMLDOM")).async="false",e.loadXML(t),e)},e.Property=function(t,e){this.name=t,this.value=e},e.Property.prototype.getValue=function(){return this.value},e.Property.prototype.hasValue=function(){return null!=this.value&&""!=this.value},e.Property.prototype.numValue=function(){if(!this.hasValue())return 0;var t=parseFloat(this.value);return(this.value+"").match(/%$/)&&(t/=100),t},e.Property.prototype.valueOrDefault=function(t){return this.hasValue()?this.value:t},e.Property.prototype.numValueOrDefault=function(t){return this.hasValue()?this.numValue():t},e.Property.prototype.addOpacity=function(t){var n=this.value;if(null!=t.value&&""!=t.value&&"string"==typeof this.value){var r=new i(this.value);r.ok&&(n="rgba("+r.r+", "+r.g+", "+r.b+", "+t.numValue()+")")}return new e.Property(this.name,n)},e.Property.prototype.getDefinition=function(){var t=this.value.match(/#([^\)'"]+)/);return t&&(t=t[1]),t||(t=this.value),e.Definitions[t]},e.Property.prototype.isUrlDefinition=function(){return 0==this.value.indexOf("url(")},e.Property.prototype.getFillStyleDefinition=function(t,n){var i=this.getDefinition();if(null!=i&&i.createGradient)return i.createGradient(e.ctx,t,n);if(null!=i&&i.createPattern){if(i.getHrefAttribute().hasValue()){var r=i.attribute("patternTransform");i=i.getHrefAttribute().getDefinition(),r.hasValue()&&(i.attribute("patternTransform",!0).value=r.value)}return i.createPattern(e.ctx,t)}return null},e.Property.prototype.getDPI=function(t){return 96},e.Property.prototype.getEM=function(t){var n=12,i=new e.Property("fontSize",e.Font.Parse(e.ctx.font).fontSize);return i.hasValue()&&(n=i.toPixels(t)),n},e.Property.prototype.getUnits=function(){return(this.value+"").replace(/[0-9\.\-]/g,"")},e.Property.prototype.toPixels=function(t,n){if(!this.hasValue())return 0;var i=this.value+"";if(i.match(/em$/))return this.numValue()*this.getEM(t);if(i.match(/ex$/))return this.numValue()*this.getEM(t)/2;if(i.match(/px$/))return this.numValue();if(i.match(/pt$/))return this.numValue()*this.getDPI(t)*(1/72);if(i.match(/pc$/))return 15*this.numValue();if(i.match(/cm$/))return this.numValue()*this.getDPI(t)/2.54;if(i.match(/mm$/))return this.numValue()*this.getDPI(t)/25.4;if(i.match(/in$/))return this.numValue()*this.getDPI(t);if(i.match(/%$/))return this.numValue()*e.ViewPort.ComputeSize(t);var r=this.numValue();return n&&r<1?r*e.ViewPort.ComputeSize(t):r},e.Property.prototype.toMilliseconds=function(){if(!this.hasValue())return 0;var t=this.value+"";return t.match(/s$/)?1e3*this.numValue():(t.match(/ms$/),this.numValue())},e.Property.prototype.toRadians=function(){if(!this.hasValue())return 0;var t=this.value+"";return t.match(/deg$/)?this.numValue()*(Math.PI/180):t.match(/grad$/)?this.numValue()*(Math.PI/200):t.match(/rad$/)?this.numValue():this.numValue()*(Math.PI/180)};var o={baseline:"alphabetic","before-edge":"top","text-before-edge":"top",middle:"middle",central:"middle","after-edge":"bottom","text-after-edge":"bottom",ideographic:"ideographic",alphabetic:"alphabetic",hanging:"hanging",mathematical:"alphabetic"};return e.Property.prototype.toTextBaseline=function(){return this.hasValue()?o[this.value]:null},e.Font=new function(){this.Styles="normal|italic|oblique|inherit",this.Variants="normal|small-caps|inherit",this.Weights="normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit",this.CreateFont=function(t,n,i,r,a,s){var o=null!=s?this.Parse(s):this.CreateFont("","","","","",e.ctx.font);return{fontFamily:a||o.fontFamily,fontSize:r||o.fontSize,fontStyle:t||o.fontStyle,fontWeight:i||o.fontWeight,fontVariant:n||o.fontVariant,toString:function(){return[this.fontStyle,this.fontVariant,this.fontWeight,this.fontSize,this.fontFamily].join(" ")}}};var t=this;this.Parse=function(n){for(var i={},r=e.trim(e.compressSpaces(n||"")).split(" "),a={fontSize:!1,fontStyle:!1,fontWeight:!1,fontVariant:!1},s="",o=0;o<r.length;o++)a.fontStyle||-1==t.Styles.indexOf(r[o])?a.fontVariant||-1==t.Variants.indexOf(r[o])?a.fontWeight||-1==t.Weights.indexOf(r[o])?a.fontSize?"inherit"!=r[o]&&(s+=r[o]):("inherit"!=r[o]&&(i.fontSize=r[o].split("/")[0]),a.fontStyle=a.fontVariant=a.fontWeight=a.fontSize=!0):("inherit"!=r[o]&&(i.fontWeight=r[o]),a.fontStyle=a.fontVariant=a.fontWeight=!0):("inherit"!=r[o]&&(i.fontVariant=r[o]),a.fontStyle=a.fontVariant=!0):("inherit"!=r[o]&&(i.fontStyle=r[o]),a.fontStyle=!0);return""!=s&&(i.fontFamily=s),i}},e.ToNumberArray=function(t){for(var n=e.trim(e.compressSpaces((t||"").replace(/,/g," "))).split(" "),i=0;i<n.length;i++)n[i]=parseFloat(n[i]);return n},e.Point=function(t,e){this.x=t,this.y=e},e.Point.prototype.angleTo=function(t){return Math.atan2(t.y-this.y,t.x-this.x)},e.Point.prototype.applyTransform=function(t){var e=this.x*t[0]+this.y*t[2]+t[4],n=this.x*t[1]+this.y*t[3]+t[5];this.x=e,this.y=n},e.CreatePoint=function(t){var n=e.ToNumberArray(t);return new e.Point(n[0],n[1])},e.CreatePath=function(t){for(var n=e.ToNumberArray(t),i=[],r=0;r<n.length;r+=2)i.push(new e.Point(n[r],n[r+1]));return i},e.BoundingBox=function(t,e,n,i){this.x1=Number.NaN,this.y1=Number.NaN,this.x2=Number.NaN,this.y2=Number.NaN,this.x=function(){return this.x1},this.y=function(){return this.y1},this.width=function(){return this.x2-this.x1},this.height=function(){return this.y2-this.y1},this.addPoint=function(t,e){null!=t&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=t,this.x2=t),t<this.x1&&(this.x1=t),t>this.x2&&(this.x2=t)),null!=e&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=e,this.y2=e),e<this.y1&&(this.y1=e),e>this.y2&&(this.y2=e))},this.addX=function(t){this.addPoint(t,null)},this.addY=function(t){this.addPoint(null,t)},this.addBoundingBox=function(t){this.addPoint(t.x1,t.y1),this.addPoint(t.x2,t.y2)},this.addQuadraticCurve=function(t,e,n,i,r,a){var s=t+2/3*(n-t),o=e+2/3*(i-e),l=s+1/3*(r-t),c=o+1/3*(a-e);this.addBezierCurve(t,e,s,l,o,c,r,a)},this.addBezierCurve=function(t,e,n,i,r,a,s,o){var l=[t,e],c=[n,i],u=[r,a],h=[s,o];this.addPoint(l[0],l[1]),this.addPoint(h[0],h[1]);for(var d=0;d<=1;d++){var f=function(t){return Math.pow(1-t,3)*l[d]+3*Math.pow(1-t,2)*t*c[d]+3*(1-t)*Math.pow(t,2)*u[d]+Math.pow(t,3)*h[d]},p=6*l[d]-12*c[d]+6*u[d],g=-3*l[d]+9*c[d]-9*u[d]+3*h[d],m=3*c[d]-3*l[d];if(0!=g){var y=Math.pow(p,2)-4*m*g;if(!(y<0)){var v=(-p+Math.sqrt(y))/(2*g);0<v&&v<1&&(0==d&&this.addX(f(v)),1==d&&this.addY(f(v)));var b=(-p-Math.sqrt(y))/(2*g);0<b&&b<1&&(0==d&&this.addX(f(b)),1==d&&this.addY(f(b)))}}else{if(0==p)continue;var x=-m/p;0<x&&x<1&&(0==d&&this.addX(f(x)),1==d&&this.addY(f(x)))}}},this.isPointInBox=function(t,e){return this.x1<=t&&t<=this.x2&&this.y1<=e&&e<=this.y2},this.addPoint(t,e),this.addPoint(n,i)},e.Transform=function(t){var n=this;this.Type={},this.Type.translate=function(t){this.p=e.CreatePoint(t),this.apply=function(t){t.translate(this.p.x||0,this.p.y||0)},this.unapply=function(t){t.translate(-1*this.p.x||0,-1*this.p.y||0)},this.applyToPoint=function(t){t.applyTransform([1,0,0,1,this.p.x||0,this.p.y||0])}},this.Type.rotate=function(t){var n=e.ToNumberArray(t);this.angle=new e.Property("angle",n[0]),this.cx=n[1]||0,this.cy=n[2]||0,this.apply=function(t){t.translate(this.cx,this.cy),t.rotate(this.angle.toRadians()),t.translate(-this.cx,-this.cy)},this.unapply=function(t){t.translate(this.cx,this.cy),t.rotate(-1*this.angle.toRadians()),t.translate(-this.cx,-this.cy)},this.applyToPoint=function(t){var e=this.angle.toRadians();t.applyTransform([1,0,0,1,this.p.x||0,this.p.y||0]),t.applyTransform([Math.cos(e),Math.sin(e),-Math.sin(e),Math.cos(e),0,0]),t.applyTransform([1,0,0,1,-this.p.x||0,-this.p.y||0])}},this.Type.scale=function(t){this.p=e.CreatePoint(t),this.apply=function(t){t.scale(this.p.x||1,this.p.y||this.p.x||1)},this.unapply=function(t){t.scale(1/this.p.x||1,1/this.p.y||this.p.x||1)},this.applyToPoint=function(t){t.applyTransform([this.p.x||0,0,0,this.p.y||0,0,0])}},this.Type.matrix=function(t){this.m=e.ToNumberArray(t),this.apply=function(t){t.transform(this.m[0],this.m[1],this.m[2],this.m[3],this.m[4],this.m[5])},this.unapply=function(t){var e=this.m[0],n=this.m[2],i=this.m[4],r=this.m[1],a=this.m[3],s=this.m[5],o=0,l=0,c=1,u=1/(e*(a*c-s*l)-n*(r*c-s*o)+i*(r*l-a*o));t.transform(u*(a*c-s*l),u*(s*o-r*c),u*(i*l-n*c),u*(e*c-i*o),u*(n*s-i*a),u*(i*r-e*s))},this.applyToPoint=function(t){t.applyTransform(this.m)}},this.Type.SkewBase=function(t){this.base=n.Type.matrix,this.base(t),this.angle=new e.Property("angle",t)},this.Type.SkewBase.prototype=new this.Type.matrix,this.Type.skewX=function(t){this.base=n.Type.SkewBase,this.base(t),this.m=[1,0,Math.tan(this.angle.toRadians()),1,0,0]},this.Type.skewX.prototype=new this.Type.SkewBase,this.Type.skewY=function(t){this.base=n.Type.SkewBase,this.base(t),this.m=[1,Math.tan(this.angle.toRadians()),0,1,0,0]},this.Type.skewY.prototype=new this.Type.SkewBase,this.transforms=[],this.apply=function(t){for(var e=0;e<this.transforms.length;e++)this.transforms[e].apply(t)},this.unapply=function(t){for(var e=this.transforms.length-1;e>=0;e--)this.transforms[e].unapply(t)},this.applyToPoint=function(t){for(var e=0;e<this.transforms.length;e++)this.transforms[e].applyToPoint(t)};for(var i=e.trim(e.compressSpaces(t)).replace(/\)([a-zA-Z])/g,") $1").replace(/\)(\s?,\s?)/g,") ").split(/\s(?=[a-z])/),r=0;r<i.length;r++){var a=e.trim(i[r].split("(")[0]),s=i[r].split("(")[1].replace(")",""),o=this.Type[a];if(void 0!==o){var l=new o(s);l.type=a,this.transforms.push(l)}}},e.AspectRatio=function(t,n,i,r,a,s,o,l,c,u){var h=(n=(n=e.compressSpaces(n)).replace(/^defer\s/,"")).split(" ")[0]||"xMidYMid",d=n.split(" ")[1]||"meet",f=i/r,p=a/s,g=Math.min(f,p),m=Math.max(f,p);"meet"==d&&(r*=g,s*=g),"slice"==d&&(r*=m,s*=m),c=new e.Property("refX",c),u=new e.Property("refY",u),c.hasValue()&&u.hasValue()?t.translate(-g*c.toPixels("x"),-g*u.toPixels("y")):(h.match(/^xMid/)&&("meet"==d&&g==p||"slice"==d&&m==p)&&t.translate(i/2-r/2,0),h.match(/YMid$/)&&("meet"==d&&g==f||"slice"==d&&m==f)&&t.translate(0,a/2-s/2),h.match(/^xMax/)&&("meet"==d&&g==p||"slice"==d&&m==p)&&t.translate(i-r,0),h.match(/YMax$/)&&("meet"==d&&g==f||"slice"==d&&m==f)&&t.translate(0,a-s)),"none"==h?t.scale(f,p):"meet"==d?t.scale(g,g):"slice"==d&&t.scale(m,m),t.translate(null==o?0:-o,null==l?0:-l)},e.Element={},e.EmptyProperty=new e.Property("EMPTY",""),e.Element.ElementBase=function(t){if(this.attributes={},this.styles={},this.stylesSpecificity={},this.children=[],this.attribute=function(t,n){var i=this.attributes[t];return null!=i?i:(1==n&&(i=new e.Property(t,""),this.attributes[t]=i),i||e.EmptyProperty)},this.getHrefAttribute=function(){for(var t in this.attributes)if("href"==t||t.match(/:href$/))return this.attributes[t];return e.EmptyProperty},this.style=function(t,n,i){var r=this.styles[t];if(null!=r)return r;var a=this.attribute(t);if(null!=a&&a.hasValue())return this.styles[t]=a,a;if(1!=i){var s=this.parent;if(null!=s){var o=s.style(t);if(null!=o&&o.hasValue())return o}}return 1==n&&(r=new e.Property(t,""),this.styles[t]=r),r||e.EmptyProperty},this.render=function(t){if("none"!=this.style("display").value&&"hidden"!=this.style("visibility").value){if(t.save(),this.style("mask").hasValue()){var e=this.style("mask").getDefinition();null!=e&&e.apply(t,this)}else if(this.style("filter").hasValue()){var n=this.style("filter").getDefinition();null!=n&&n.apply(t,this)}else this.setContext(t),this.renderChildren(t),this.clearContext(t);t.restore()}},this.setContext=function(t){},this.clearContext=function(t){},this.renderChildren=function(t){for(var e=0;e<this.children.length;e++)this.children[e].render(t)},this.addChild=function(t,n){var i=t;n&&(i=e.CreateElement(t)),i.parent=this,"title"!=i.type&&this.children.push(i)},this.addStylesFromStyleDefinition=function(){for(var i in e.Styles)if("@"!=i[0]&&n(t,i)){var r=e.Styles[i],a=e.StylesSpecificity[i];if(null!=r)for(var s in r){var o=this.stylesSpecificity[s];void 0===o&&(o="000"),a>o&&(this.styles[s]=r[s],this.stylesSpecificity[s]=a)}}},null!=t&&1==t.nodeType){for(var i=0;i<t.attributes.length;i++){var r=t.attributes[i];this.attributes[r.nodeName]=new e.Property(r.nodeName,r.value)}if(this.addStylesFromStyleDefinition(),this.attribute("style").hasValue()){var a=this.attribute("style").value.split(";");for(i=0;i<a.length;i++)if(""!=e.trim(a[i])){var s=a[i].split(":"),o=e.trim(s[0]),l=e.trim(s[1]);this.styles[o]=new e.Property(o,l)}}this.attribute("id").hasValue()&&null==e.Definitions[this.attribute("id").value]&&(e.Definitions[this.attribute("id").value]=this);for(i=0;i<t.childNodes.length;i++){var c=t.childNodes[i];if(1==c.nodeType&&this.addChild(c,!0),this.captureTextNodes&&(3==c.nodeType||4==c.nodeType)){var u=c.value||c.text||c.textContent||"";""!=e.compressSpaces(u)&&this.addChild(new e.Element.tspan(c),!1)}}}},e.Element.RenderedElementBase=function(t){this.base=e.Element.ElementBase,this.base(t),this.setContext=function(t){var n;if(this.style("fill").isUrlDefinition())null!=(n=this.style("fill").getFillStyleDefinition(this,this.style("fill-opacity")))&&(t.fillStyle=n);else if(this.style("fill").hasValue()){var i;"currentColor"==(i=this.style("fill")).value&&(i.value=this.style("color").value),"inherit"!=i.value&&(t.fillStyle="none"==i.value?"rgba(0,0,0,0)":i.value)}this.style("fill-opacity").hasValue()&&(i=(i=new e.Property("fill",t.fillStyle)).addOpacity(this.style("fill-opacity")),t.fillStyle=i.value);if(this.style("stroke").isUrlDefinition())null!=(n=this.style("stroke").getFillStyleDefinition(this,this.style("stroke-opacity")))&&(t.strokeStyle=n);else if(this.style("stroke").hasValue()){var r;"currentColor"==(r=this.style("stroke")).value&&(r.value=this.style("color").value),"inherit"!=r.value&&(t.strokeStyle="none"==r.value?"rgba(0,0,0,0)":r.value)}this.style("stroke-opacity").hasValue()&&(r=(r=new e.Property("stroke",t.strokeStyle)).addOpacity(this.style("stroke-opacity")),t.strokeStyle=r.value);if(this.style("stroke-width").hasValue()){var a=this.style("stroke-width").toPixels();t.lineWidth=0==a?.001:a}if(this.style("stroke-linecap").hasValue()&&(t.lineCap=this.style("stroke-linecap").value),this.style("stroke-linejoin").hasValue()&&(t.lineJoin=this.style("stroke-linejoin").value),this.style("stroke-miterlimit").hasValue()&&(t.miterLimit=this.style("stroke-miterlimit").value),this.style("stroke-dasharray").hasValue()&&"none"!=this.style("stroke-dasharray").value){var s=e.ToNumberArray(this.style("stroke-dasharray").value);void 0!==t.setLineDash?t.setLineDash(s):void 0!==t.webkitLineDash?t.webkitLineDash=s:void 0===t.mozDash||1==s.length&&0==s[0]||(t.mozDash=s);var o=this.style("stroke-dashoffset").numValueOrDefault(1);void 0!==t.lineDashOffset?t.lineDashOffset=o:void 0!==t.webkitLineDashOffset?t.webkitLineDashOffset=o:void 0!==t.mozDashOffset&&(t.mozDashOffset=o)}(void 0!==t.font&&(t.font=e.Font.CreateFont(this.style("font-style").value,this.style("font-variant").value,this.style("font-weight").value,this.style("font-size").hasValue()?this.style("font-size").toPixels()+"px":"",this.style("font-family").value).toString()),this.style("transform",!1,!0).hasValue())&&new e.Transform(this.style("transform",!1,!0).value).apply(t);if(this.style("clip-path",!1,!0).hasValue()){var l=this.style("clip-path",!1,!0).getDefinition();null!=l&&l.apply(t)}this.style("opacity").hasValue()&&(t.globalAlpha=this.style("opacity").numValue())}},e.Element.RenderedElementBase.prototype=new e.Element.ElementBase,e.Element.PathElementBase=function(t){this.base=e.Element.RenderedElementBase,this.base(t),this.path=function(t){return null!=t&&t.beginPath(),new e.BoundingBox},this.renderChildren=function(t){this.path(t),e.Mouse.checkPath(this,t),""!=t.fillStyle&&("inherit"!=this.style("fill-rule").valueOrDefault("inherit")?t.fill(this.style("fill-rule").value):t.fill()),""!=t.strokeStyle&&t.stroke();var n=this.getMarkers();if(null!=n){if(this.style("marker-start").isUrlDefinition())(i=this.style("marker-start").getDefinition()).render(t,n[0][0],n[0][1]);if(this.style("marker-mid").isUrlDefinition())for(var i=this.style("marker-mid").getDefinition(),r=1;r<n.length-1;r++)i.render(t,n[r][0],n[r][1]);if(this.style("marker-end").isUrlDefinition())(i=this.style("marker-end").getDefinition()).render(t,n[n.length-1][0],n[n.length-1][1])}},this.getBoundingBox=function(){return this.path()},this.getMarkers=function(){return null}},e.Element.PathElementBase.prototype=new e.Element.RenderedElementBase,e.Element.svg=function(t){this.base=e.Element.RenderedElementBase,this.base(t),this.baseClearContext=this.clearContext,this.clearContext=function(t){this.baseClearContext(t),e.ViewPort.RemoveCurrent()},this.baseSetContext=this.setContext,this.setContext=function(t){t.strokeStyle="rgba(0,0,0,0)",t.lineCap="butt",t.lineJoin="miter",t.miterLimit=4,void 0!==t.font&&void 0!==window.getComputedStyle&&(t.font=window.getComputedStyle(t.canvas).getPropertyValue("font")),this.baseSetContext(t),this.attribute("x").hasValue()||(this.attribute("x",!0).value=0),this.attribute("y").hasValue()||(this.attribute("y",!0).value=0),t.translate(this.attribute("x").toPixels("x"),this.attribute("y").toPixels("y"));var n=e.ViewPort.width(),i=e.ViewPort.height();if(this.attribute("width").hasValue()||(this.attribute("width",!0).value="100%"),this.attribute("height").hasValue()||(this.attribute("height",!0).value="100%"),void 0===this.root){n=this.attribute("width").toPixels("x"),i=this.attribute("height").toPixels("y");var r=0,a=0;this.attribute("refX").hasValue()&&this.attribute("refY").hasValue()&&(r=-this.attribute("refX").toPixels("x"),a=-this.attribute("refY").toPixels("y")),"visible"!=this.attribute("overflow").valueOrDefault("hidden")&&(t.beginPath(),t.moveTo(r,a),t.lineTo(n,a),t.lineTo(n,i),t.lineTo(r,i),t.closePath(),t.clip())}if(e.ViewPort.SetCurrent(n,i),this.attribute("viewBox").hasValue()){var s=e.ToNumberArray(this.attribute("viewBox").value),o=s[0],l=s[1];n=s[2],i=s[3],e.AspectRatio(t,this.attribute("preserveAspectRatio").value,e.ViewPort.width(),n,e.ViewPort.height(),i,o,l,this.attribute("refX").value,this.attribute("refY").value),e.ViewPort.RemoveCurrent(),e.ViewPort.SetCurrent(s[2],s[3])}}},e.Element.svg.prototype=new e.Element.RenderedElementBase,e.Element.rect=function(t){this.base=e.Element.PathElementBase,this.base(t),this.path=function(t){var n=this.attribute("x").toPixels("x"),i=this.attribute("y").toPixels("y"),r=this.attribute("width").toPixels("x"),a=this.attribute("height").toPixels("y"),s=this.attribute("rx").toPixels("x"),o=this.attribute("ry").toPixels("y");return this.attribute("rx").hasValue()&&!this.attribute("ry").hasValue()&&(o=s),this.attribute("ry").hasValue()&&!this.attribute("rx").hasValue()&&(s=o),s=Math.min(s,r/2),o=Math.min(o,a/2),null!=t&&(t.beginPath(),t.moveTo(n+s,i),t.lineTo(n+r-s,i),t.quadraticCurveTo(n+r,i,n+r,i+o),t.lineTo(n+r,i+a-o),t.quadraticCurveTo(n+r,i+a,n+r-s,i+a),t.lineTo(n+s,i+a),t.quadraticCurveTo(n,i+a,n,i+a-o),t.lineTo(n,i+o),t.quadraticCurveTo(n,i,n+s,i),t.closePath()),new e.BoundingBox(n,i,n+r,i+a)}},e.Element.rect.prototype=new e.Element.PathElementBase,e.Element.circle=function(t){this.base=e.Element.PathElementBase,this.base(t),this.path=function(t){var n=this.attribute("cx").toPixels("x"),i=this.attribute("cy").toPixels("y"),r=this.attribute("r").toPixels();return null!=t&&(t.beginPath(),t.arc(n,i,r,0,2*Math.PI,!0),t.closePath()),new e.BoundingBox(n-r,i-r,n+r,i+r)}},e.Element.circle.prototype=new e.Element.PathElementBase,e.Element.ellipse=function(t){this.base=e.Element.PathElementBase,this.base(t),this.path=function(t){var n=(Math.sqrt(2)-1)/3*4,i=this.attribute("rx").toPixels("x"),r=this.attribute("ry").toPixels("y"),a=this.attribute("cx").toPixels("x"),s=this.attribute("cy").toPixels("y");return null!=t&&(t.beginPath(),t.moveTo(a,s-r),t.bezierCurveTo(a+n*i,s-r,a+i,s-n*r,a+i,s),t.bezierCurveTo(a+i,s+n*r,a+n*i,s+r,a,s+r),t.bezierCurveTo(a-n*i,s+r,a-i,s+n*r,a-i,s),t.bezierCurveTo(a-i,s-n*r,a-n*i,s-r,a,s-r),t.closePath()),new e.BoundingBox(a-i,s-r,a+i,s+r)}},e.Element.ellipse.prototype=new e.Element.PathElementBase,e.Element.line=function(t){this.base=e.Element.PathElementBase,this.base(t),this.getPoints=function(){return[new e.Point(this.attribute("x1").toPixels("x"),this.attribute("y1").toPixels("y")),new e.Point(this.attribute("x2").toPixels("x"),this.attribute("y2").toPixels("y"))]},this.path=function(t){var n=this.getPoints();return null!=t&&(t.beginPath(),t.moveTo(n[0].x,n[0].y),t.lineTo(n[1].x,n[1].y)),new e.BoundingBox(n[0].x,n[0].y,n[1].x,n[1].y)},this.getMarkers=function(){var t=this.getPoints(),e=t[0].angleTo(t[1]);return[[t[0],e],[t[1],e]]}},e.Element.line.prototype=new e.Element.PathElementBase,e.Element.polyline=function(t){this.base=e.Element.PathElementBase,this.base(t),this.points=e.CreatePath(this.attribute("points").value),this.path=function(t){var n=new e.BoundingBox(this.points[0].x,this.points[0].y);null!=t&&(t.beginPath(),t.moveTo(this.points[0].x,this.points[0].y));for(var i=1;i<this.points.length;i++)n.addPoint(this.points[i].x,this.points[i].y),null!=t&&t.lineTo(this.points[i].x,this.points[i].y);return n},this.getMarkers=function(){for(var t=[],e=0;e<this.points.length-1;e++)t.push([this.points[e],this.points[e].angleTo(this.points[e+1])]);return t.length>0&&t.push([this.points[this.points.length-1],t[t.length-1][1]]),t}},e.Element.polyline.prototype=new e.Element.PathElementBase,e.Element.polygon=function(t){this.base=e.Element.polyline,this.base(t),this.basePath=this.path,this.path=function(t){var e=this.basePath(t);return null!=t&&(t.lineTo(this.points[0].x,this.points[0].y),t.closePath()),e}},e.Element.polygon.prototype=new e.Element.polyline,e.Element.path=function(t){this.base=e.Element.PathElementBase,this.base(t);var n=this.attribute("d").value;n=n.replace(/,/gm," ");for(var i=0;i<2;i++)n=n.replace(/([MmZzLlHhVvCcSsQqTtAa])([^\s])/gm,"$1 $2");n=(n=n.replace(/([^\s])([MmZzLlHhVvCcSsQqTtAa])/gm,"$1 $2")).replace(/([0-9])([+\-])/gm,"$1 $2");for(i=0;i<2;i++)n=n.replace(/(\.[0-9]*)(\.)/gm,"$1 $2");n=n.replace(/([Aa](\s+[0-9]+){3})\s+([01])\s*([01])/gm,"$1 $3 $4 "),n=e.compressSpaces(n),n=e.trim(n),this.PathParser=new function(t){this.tokens=t.split(" "),this.reset=function(){this.i=-1,this.command="",this.previousCommand="",this.start=new e.Point(0,0),this.control=new e.Point(0,0),this.current=new e.Point(0,0),this.points=[],this.angles=[]},this.isEnd=function(){return this.i>=this.tokens.length-1},this.isCommandOrEnd=function(){return!!this.isEnd()||null!=this.tokens[this.i+1].match(/^[A-Za-z]$/)},this.isRelativeCommand=function(){switch(this.command){case"m":case"l":case"h":case"v":case"c":case"s":case"q":case"t":case"a":case"z":return!0}return!1},this.getToken=function(){return this.i++,this.tokens[this.i]},this.getScalar=function(){return parseFloat(this.getToken())},this.nextCommand=function(){this.previousCommand=this.command,this.command=this.getToken()},this.getPoint=function(){var t=new e.Point(this.getScalar(),this.getScalar());return this.makeAbsolute(t)},this.getAsControlPoint=function(){var t=this.getPoint();return this.control=t,t},this.getAsCurrentPoint=function(){var t=this.getPoint();return this.current=t,t},this.getReflectedControlPoint=function(){return"c"!=this.previousCommand.toLowerCase()&&"s"!=this.previousCommand.toLowerCase()&&"q"!=this.previousCommand.toLowerCase()&&"t"!=this.previousCommand.toLowerCase()?this.current:new e.Point(2*this.current.x-this.control.x,2*this.current.y-this.control.y)},this.makeAbsolute=function(t){return this.isRelativeCommand()&&(t.x+=this.current.x,t.y+=this.current.y),t},this.addMarker=function(t,e,n){null!=n&&this.angles.length>0&&null==this.angles[this.angles.length-1]&&(this.angles[this.angles.length-1]=this.points[this.points.length-1].angleTo(n)),this.addMarkerAngle(t,null==e?null:e.angleTo(t))},this.addMarkerAngle=function(t,e){this.points.push(t),this.angles.push(e)},this.getMarkerPoints=function(){return this.points},this.getMarkerAngles=function(){for(var t=0;t<this.angles.length;t++)if(null==this.angles[t])for(var e=t+1;e<this.angles.length;e++)if(null!=this.angles[e]){this.angles[t]=this.angles[e];break}return this.angles}}(n),this.path=function(t){var n=this.PathParser;n.reset();var i=new e.BoundingBox;for(null!=t&&t.beginPath();!n.isEnd();)switch(n.nextCommand(),n.command){case"M":case"m":var r=n.getAsCurrentPoint();for(n.addMarker(r),i.addPoint(r.x,r.y),null!=t&&t.moveTo(r.x,r.y),n.start=n.current;!n.isCommandOrEnd();){r=n.getAsCurrentPoint();n.addMarker(r,n.start),i.addPoint(r.x,r.y),null!=t&&t.lineTo(r.x,r.y)}break;case"L":case"l":for(;!n.isCommandOrEnd();){var a=n.current;r=n.getAsCurrentPoint();n.addMarker(r,a),i.addPoint(r.x,r.y),null!=t&&t.lineTo(r.x,r.y)}break;case"H":case"h":for(;!n.isCommandOrEnd();){var s=new e.Point((n.isRelativeCommand()?n.current.x:0)+n.getScalar(),n.current.y);n.addMarker(s,n.current),n.current=s,i.addPoint(n.current.x,n.current.y),null!=t&&t.lineTo(n.current.x,n.current.y)}break;case"V":case"v":for(;!n.isCommandOrEnd();){s=new e.Point(n.current.x,(n.isRelativeCommand()?n.current.y:0)+n.getScalar());n.addMarker(s,n.current),n.current=s,i.addPoint(n.current.x,n.current.y),null!=t&&t.lineTo(n.current.x,n.current.y)}break;case"C":case"c":for(;!n.isCommandOrEnd();){var o=n.current,l=n.getPoint(),c=n.getAsControlPoint(),u=n.getAsCurrentPoint();n.addMarker(u,c,l),i.addBezierCurve(o.x,o.y,l.x,l.y,c.x,c.y,u.x,u.y),null!=t&&t.bezierCurveTo(l.x,l.y,c.x,c.y,u.x,u.y)}break;case"S":case"s":for(;!n.isCommandOrEnd();){o=n.current,l=n.getReflectedControlPoint(),c=n.getAsControlPoint(),u=n.getAsCurrentPoint();n.addMarker(u,c,l),i.addBezierCurve(o.x,o.y,l.x,l.y,c.x,c.y,u.x,u.y),null!=t&&t.bezierCurveTo(l.x,l.y,c.x,c.y,u.x,u.y)}break;case"Q":case"q":for(;!n.isCommandOrEnd();){o=n.current,c=n.getAsControlPoint(),u=n.getAsCurrentPoint();n.addMarker(u,c,c),i.addQuadraticCurve(o.x,o.y,c.x,c.y,u.x,u.y),null!=t&&t.quadraticCurveTo(c.x,c.y,u.x,u.y)}break;case"T":case"t":for(;!n.isCommandOrEnd();){o=n.current,c=n.getReflectedControlPoint();n.control=c;u=n.getAsCurrentPoint();n.addMarker(u,c,c),i.addQuadraticCurve(o.x,o.y,c.x,c.y,u.x,u.y),null!=t&&t.quadraticCurveTo(c.x,c.y,u.x,u.y)}break;case"A":case"a":for(;!n.isCommandOrEnd();){o=n.current;var h=n.getScalar(),d=n.getScalar(),f=n.getScalar()*(Math.PI/180),p=n.getScalar(),g=n.getScalar(),m=(u=n.getAsCurrentPoint(),new e.Point(Math.cos(f)*(o.x-u.x)/2+Math.sin(f)*(o.y-u.y)/2,-Math.sin(f)*(o.x-u.x)/2+Math.cos(f)*(o.y-u.y)/2)),y=Math.pow(m.x,2)/Math.pow(h,2)+Math.pow(m.y,2)/Math.pow(d,2);y>1&&(h*=Math.sqrt(y),d*=Math.sqrt(y));var v=(p==g?-1:1)*Math.sqrt((Math.pow(h,2)*Math.pow(d,2)-Math.pow(h,2)*Math.pow(m.y,2)-Math.pow(d,2)*Math.pow(m.x,2))/(Math.pow(h,2)*Math.pow(m.y,2)+Math.pow(d,2)*Math.pow(m.x,2)));isNaN(v)&&(v=0);var b=new e.Point(v*h*m.y/d,v*-d*m.x/h),x=new e.Point((o.x+u.x)/2+Math.cos(f)*b.x-Math.sin(f)*b.y,(o.y+u.y)/2+Math.sin(f)*b.x+Math.cos(f)*b.y),w=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2))},S=function(t,e){return(t[0]*e[0]+t[1]*e[1])/(w(t)*w(e))},C=function(t,e){return(t[0]*e[1]<t[1]*e[0]?-1:1)*Math.acos(S(t,e))},_=C([1,0],[(m.x-b.x)/h,(m.y-b.y)/d]),P=[(m.x-b.x)/h,(m.y-b.y)/d],E=[(-m.x-b.x)/h,(-m.y-b.y)/d],k=C(P,E);S(P,E)<=-1&&(k=Math.PI),S(P,E)>=1&&(k=0);var A=1-g?1:-1,R=_+A*(k/2),j=new e.Point(x.x+h*Math.cos(R),x.y+d*Math.sin(R));if(n.addMarkerAngle(j,R-A*Math.PI/2),n.addMarkerAngle(u,R-A*Math.PI),i.addPoint(u.x,u.y),null!=t){S=h>d?h:d;var M=h>d?1:h/d,D=h>d?d/h:1;t.translate(x.x,x.y),t.rotate(f),t.scale(M,D),t.arc(0,0,S,_,_+k,1-g),t.scale(1/M,1/D),t.rotate(-f),t.translate(-x.x,-x.y)}}break;case"Z":case"z":null!=t&&t.closePath(),n.current=n.start}return i},this.getMarkers=function(){for(var t=this.PathParser.getMarkerPoints(),e=this.PathParser.getMarkerAngles(),n=[],i=0;i<t.length;i++)n.push([t[i],e[i]]);return n}},e.Element.path.prototype=new e.Element.PathElementBase,e.Element.pattern=function(t){this.base=e.Element.ElementBase,this.base(t),this.createPattern=function(t,n){var i=this.attribute("width").toPixels("x",!0),r=this.attribute("height").toPixels("y",!0),a=new e.Element.svg;a.attributes.viewBox=new e.Property("viewBox",this.attribute("viewBox").value),a.attributes.width=new e.Property("width",i+"px"),a.attributes.height=new e.Property("height",r+"px"),a.attributes.transform=new e.Property("transform",this.attribute("patternTransform").value),a.children=this.children;var s=document.createElement("canvas");s.width=i,s.height=r;var o=s.getContext("2d");this.attribute("x").hasValue()&&this.attribute("y").hasValue()&&o.translate(this.attribute("x").toPixels("x",!0),this.attribute("y").toPixels("y",!0));for(var l=-1;l<=1;l++)for(var c=-1;c<=1;c++)o.save(),a.attributes.x=new e.Property("x",l*s.width),a.attributes.y=new e.Property("y",c*s.height),a.render(o),o.restore();return t.createPattern(s,"repeat")}},e.Element.pattern.prototype=new e.Element.ElementBase,e.Element.marker=function(t){this.base=e.Element.ElementBase,this.base(t),this.baseRender=this.render,this.render=function(t,n,i){t.translate(n.x,n.y),"auto"==this.attribute("orient").valueOrDefault("auto")&&t.rotate(i),"strokeWidth"==this.attribute("markerUnits").valueOrDefault("strokeWidth")&&t.scale(t.lineWidth,t.lineWidth),t.save();var r=new e.Element.svg;r.attributes.viewBox=new e.Property("viewBox",this.attribute("viewBox").value),r.attributes.refX=new e.Property("refX",this.attribute("refX").value),r.attributes.refY=new e.Property("refY",this.attribute("refY").value),r.attributes.width=new e.Property("width",this.attribute("markerWidth").value),r.attributes.height=new e.Property("height",this.attribute("markerHeight").value),r.attributes.fill=new e.Property("fill",this.attribute("fill").valueOrDefault("black")),r.attributes.stroke=new e.Property("stroke",this.attribute("stroke").valueOrDefault("none")),r.children=this.children,r.render(t),t.restore(),"strokeWidth"==this.attribute("markerUnits").valueOrDefault("strokeWidth")&&t.scale(1/t.lineWidth,1/t.lineWidth),"auto"==this.attribute("orient").valueOrDefault("auto")&&t.rotate(-i),t.translate(-n.x,-n.y)}},e.Element.marker.prototype=new e.Element.ElementBase,e.Element.defs=function(t){this.base=e.Element.ElementBase,this.base(t),this.render=function(t){}},e.Element.defs.prototype=new e.Element.ElementBase,e.Element.GradientBase=function(t){this.base=e.Element.ElementBase,this.base(t),this.stops=[];for(var n=0;n<this.children.length;n++){var i=this.children[n];"stop"==i.type&&this.stops.push(i)}this.getGradient=function(){},this.gradientUnits=function(){return this.attribute("gradientUnits").valueOrDefault("objectBoundingBox")},this.attributesToInherit=["gradientUnits"],this.inheritStopContainer=function(t){for(var e=0;e<this.attributesToInherit.length;e++){var n=this.attributesToInherit[e];!this.attribute(n).hasValue()&&t.attribute(n).hasValue()&&(this.attribute(n,!0).value=t.attribute(n).value)}},this.createGradient=function(t,n,i){var r=this;this.getHrefAttribute().hasValue()&&(r=this.getHrefAttribute().getDefinition(),this.inheritStopContainer(r));var a=function(t){return i.hasValue()?new e.Property("color",t).addOpacity(i).value:t},s=this.getGradient(t,n);if(null==s)return a(r.stops[r.stops.length-1].color);for(var o=0;o<r.stops.length;o++)s.addColorStop(r.stops[o].offset,a(r.stops[o].color));if(this.attribute("gradientTransform").hasValue()){var l=e.ViewPort.viewPorts[0],c=new e.Element.rect;c.attributes.x=new e.Property("x",-e.MAX_VIRTUAL_PIXELS/3),c.attributes.y=new e.Property("y",-e.MAX_VIRTUAL_PIXELS/3),c.attributes.width=new e.Property("width",e.MAX_VIRTUAL_PIXELS),c.attributes.height=new e.Property("height",e.MAX_VIRTUAL_PIXELS);var u=new e.Element.g;u.attributes.transform=new e.Property("transform",this.attribute("gradientTransform").value),u.children=[c];var h=new e.Element.svg;h.attributes.x=new e.Property("x",0),h.attributes.y=new e.Property("y",0),h.attributes.width=new e.Property("width",l.width),h.attributes.height=new e.Property("height",l.height),h.children=[u];var d=document.createElement("canvas");d.width=l.width,d.height=l.height;var f=d.getContext("2d");return f.fillStyle=s,h.render(f),f.createPattern(d,"no-repeat")}return s}},e.Element.GradientBase.prototype=new e.Element.ElementBase,e.Element.linearGradient=function(t){this.base=e.Element.GradientBase,this.base(t),this.attributesToInherit.push("x1"),this.attributesToInherit.push("y1"),this.attributesToInherit.push("x2"),this.attributesToInherit.push("y2"),this.getGradient=function(t,e){var n="objectBoundingBox"==this.gradientUnits()?e.getBoundingBox():null;this.attribute("x1").hasValue()||this.attribute("y1").hasValue()||this.attribute("x2").hasValue()||this.attribute("y2").hasValue()||(this.attribute("x1",!0).value=0,this.attribute("y1",!0).value=0,this.attribute("x2",!0).value=1,this.attribute("y2",!0).value=0);var i="objectBoundingBox"==this.gradientUnits()?n.x()+n.width()*this.attribute("x1").numValue():this.attribute("x1").toPixels("x"),r="objectBoundingBox"==this.gradientUnits()?n.y()+n.height()*this.attribute("y1").numValue():this.attribute("y1").toPixels("y"),a="objectBoundingBox"==this.gradientUnits()?n.x()+n.width()*this.attribute("x2").numValue():this.attribute("x2").toPixels("x"),s="objectBoundingBox"==this.gradientUnits()?n.y()+n.height()*this.attribute("y2").numValue():this.attribute("y2").toPixels("y");return i==a&&r==s?null:t.createLinearGradient(i,r,a,s)}},e.Element.linearGradient.prototype=new e.Element.GradientBase,e.Element.radialGradient=function(t){this.base=e.Element.GradientBase,this.base(t),this.attributesToInherit.push("cx"),this.attributesToInherit.push("cy"),this.attributesToInherit.push("r"),this.attributesToInherit.push("fx"),this.attributesToInherit.push("fy"),this.getGradient=function(t,e){var n=e.getBoundingBox();this.attribute("cx").hasValue()||(this.attribute("cx",!0).value="50%"),this.attribute("cy").hasValue()||(this.attribute("cy",!0).value="50%"),this.attribute("r").hasValue()||(this.attribute("r",!0).value="50%");var i="objectBoundingBox"==this.gradientUnits()?n.x()+n.width()*this.attribute("cx").numValue():this.attribute("cx").toPixels("x"),r="objectBoundingBox"==this.gradientUnits()?n.y()+n.height()*this.attribute("cy").numValue():this.attribute("cy").toPixels("y"),a=i,s=r;this.attribute("fx").hasValue()&&(a="objectBoundingBox"==this.gradientUnits()?n.x()+n.width()*this.attribute("fx").numValue():this.attribute("fx").toPixels("x")),this.attribute("fy").hasValue()&&(s="objectBoundingBox"==this.gradientUnits()?n.y()+n.height()*this.attribute("fy").numValue():this.attribute("fy").toPixels("y"));var o="objectBoundingBox"==this.gradientUnits()?(n.width()+n.height())/2*this.attribute("r").numValue():this.attribute("r").toPixels();return t.createRadialGradient(a,s,0,i,r,o)}},e.Element.radialGradient.prototype=new e.Element.GradientBase,e.Element.stop=function(t){this.base=e.Element.ElementBase,this.base(t),this.offset=this.attribute("offset").numValue(),this.offset<0&&(this.offset=0),this.offset>1&&(this.offset=1);var n=this.style("stop-color",!0);""==n.value&&(n.value="#000"),this.style("stop-opacity").hasValue()&&(n=n.addOpacity(this.style("stop-opacity"))),this.color=n.value},e.Element.stop.prototype=new e.Element.ElementBase,e.Element.AnimateBase=function(t){this.base=e.Element.ElementBase,this.base(t),e.Animations.push(this),this.duration=0,this.begin=this.attribute("begin").toMilliseconds(),this.maxDuration=this.begin+this.attribute("dur").toMilliseconds(),this.getProperty=function(){var t=this.attribute("attributeType").value,e=this.attribute("attributeName").value;return"CSS"==t?this.parent.style(e,!0):this.parent.attribute(e,!0)},this.initialValue=null,this.initialUnits="",this.removed=!1,this.calcValue=function(){return""},this.update=function(t){if(null==this.initialValue&&(this.initialValue=this.getProperty().value,this.initialUnits=this.getProperty().getUnits()),this.duration>this.maxDuration){if("indefinite"==this.attribute("repeatCount").value||"indefinite"==this.attribute("repeatDur").value)this.duration=0;else if("freeze"!=this.attribute("fill").valueOrDefault("remove")||this.frozen){if("remove"==this.attribute("fill").valueOrDefault("remove")&&!this.removed)return this.removed=!0,this.getProperty().value=this.parent.animationFrozen?this.parent.animationFrozenValue:this.initialValue,!0}else this.frozen=!0,this.parent.animationFrozen=!0,this.parent.animationFrozenValue=this.getProperty().value;return!1}this.duration=this.duration+t;var e=!1;if(this.begin<this.duration){var n=this.calcValue();if(this.attribute("type").hasValue())n=this.attribute("type").value+"("+n+")";this.getProperty().value=n,e=!0}return e},this.from=this.attribute("from"),this.to=this.attribute("to"),this.values=this.attribute("values"),this.values.hasValue()&&(this.values.value=this.values.value.split(";")),this.progress=function(){var t={progress:(this.duration-this.begin)/(this.maxDuration-this.begin)};if(this.values.hasValue()){var n=t.progress*(this.values.value.length-1),i=Math.floor(n),r=Math.ceil(n);t.from=new e.Property("from",parseFloat(this.values.value[i])),t.to=new e.Property("to",parseFloat(this.values.value[r])),t.progress=(n-i)/(r-i)}else t.from=this.from,t.to=this.to;return t}},e.Element.AnimateBase.prototype=new e.Element.ElementBase,e.Element.animate=function(t){this.base=e.Element.AnimateBase,this.base(t),this.calcValue=function(){var t=this.progress();return t.from.numValue()+(t.to.numValue()-t.from.numValue())*t.progress+this.initialUnits}},e.Element.animate.prototype=new e.Element.AnimateBase,e.Element.animateColor=function(t){this.base=e.Element.AnimateBase,this.base(t),this.calcValue=function(){var t=this.progress(),e=new i(t.from.value),n=new i(t.to.value);if(e.ok&&n.ok){var r=e.r+(n.r-e.r)*t.progress,a=e.g+(n.g-e.g)*t.progress,s=e.b+(n.b-e.b)*t.progress;return"rgb("+parseInt(r,10)+","+parseInt(a,10)+","+parseInt(s,10)+")"}return this.attribute("from").value}},e.Element.animateColor.prototype=new e.Element.AnimateBase,e.Element.animateTransform=function(t){this.base=e.Element.AnimateBase,this.base(t),this.calcValue=function(){for(var t=this.progress(),n=e.ToNumberArray(t.from.value),i=e.ToNumberArray(t.to.value),r="",a=0;a<n.length;a++)r+=n[a]+(i[a]-n[a])*t.progress+" ";return r}},e.Element.animateTransform.prototype=new e.Element.animate,e.Element.font=function(t){this.base=e.Element.ElementBase,this.base(t),this.horizAdvX=this.attribute("horiz-adv-x").numValue(),this.isRTL=!1,this.isArabic=!1,this.fontFace=null,this.missingGlyph=null,this.glyphs=[];for(var n=0;n<this.children.length;n++){var i=this.children[n];"font-face"==i.type?(this.fontFace=i,i.style("font-family").hasValue()&&(e.Definitions[i.style("font-family").value]=this)):"missing-glyph"==i.type?this.missingGlyph=i:"glyph"==i.type&&(""!=i.arabicForm?(this.isRTL=!0,this.isArabic=!0,void 0===this.glyphs[i.unicode]&&(this.glyphs[i.unicode]=[]),this.glyphs[i.unicode][i.arabicForm]=i):this.glyphs[i.unicode]=i)}},e.Element.font.prototype=new e.Element.ElementBase,e.Element.fontface=function(t){this.base=e.Element.ElementBase,this.base(t),this.ascent=this.attribute("ascent").value,this.descent=this.attribute("descent").value,this.unitsPerEm=this.attribute("units-per-em").numValue()},e.Element.fontface.prototype=new e.Element.ElementBase,e.Element.missingglyph=function(t){this.base=e.Element.path,this.base(t),this.horizAdvX=0},e.Element.missingglyph.prototype=new e.Element.path,e.Element.glyph=function(t){this.base=e.Element.path,this.base(t),this.horizAdvX=this.attribute("horiz-adv-x").numValue(),this.unicode=this.attribute("unicode").value,this.arabicForm=this.attribute("arabic-form").value},e.Element.glyph.prototype=new e.Element.path,e.Element.text=function(t){this.captureTextNodes=!0,this.base=e.Element.RenderedElementBase,this.base(t),this.baseSetContext=this.setContext,this.setContext=function(t){this.baseSetContext(t);var e=this.style("dominant-baseline").toTextBaseline();null==e&&(e=this.style("alignment-baseline").toTextBaseline()),null!=e&&(t.textBaseline=e)},this.getBoundingBox=function(){var t=this.attribute("x").toPixels("x"),n=this.attribute("y").toPixels("y"),i=this.parent.style("font-size").numValueOrDefault(e.Font.Parse(e.ctx.font).fontSize);return new e.BoundingBox(t,n-i,t+Math.floor(2*i/3)*this.children[0].getText().length,n)},this.renderChildren=function(t){this.x=this.attribute("x").toPixels("x"),this.y=this.attribute("y").toPixels("y"),this.attribute("dx").hasValue()&&(this.x+=this.attribute("dx").toPixels("x")),this.attribute("dy").hasValue()&&(this.y+=this.attribute("dy").toPixels("y")),this.x+=this.getAnchorDelta(t,this,0);for(var e=0;e<this.children.length;e++)this.renderChild(t,this,this,e)},this.getAnchorDelta=function(t,e,n){var i=this.style("text-anchor").valueOrDefault("start");if("start"!=i){for(var r=0,a=n;a<e.children.length;a++){var s=e.children[a];if(a>n&&s.attribute("x").hasValue())break;r+=s.measureTextRecursive(t)}return-1*("end"==i?r:r/2)}return 0},this.renderChild=function(t,e,n,i){var r=n.children[i];r.attribute("x").hasValue()?(r.x=r.attribute("x").toPixels("x")+e.getAnchorDelta(t,n,i),r.attribute("dx").hasValue()&&(r.x+=r.attribute("dx").toPixels("x"))):(r.attribute("dx").hasValue()&&(e.x+=r.attribute("dx").toPixels("x")),r.x=e.x),e.x=r.x+r.measureText(t),r.attribute("y").hasValue()?(r.y=r.attribute("y").toPixels("y"),r.attribute("dy").hasValue()&&(r.y+=r.attribute("dy").toPixels("y"))):(r.attribute("dy").hasValue()&&(e.y+=r.attribute("dy").toPixels("y")),r.y=e.y),e.y=r.y,r.render(t);for(i=0;i<r.children.length;i++)e.renderChild(t,e,r,i)}},e.Element.text.prototype=new e.Element.RenderedElementBase,e.Element.TextElementBase=function(t){this.base=e.Element.RenderedElementBase,this.base(t),this.getGlyph=function(t,e,n){var i=e[n],r=null;if(t.isArabic){var a="isolated";(0==n||" "==e[n-1])&&n<e.length-2&&" "!=e[n+1]&&(a="terminal"),n>0&&" "!=e[n-1]&&n<e.length-2&&" "!=e[n+1]&&(a="medial"),n>0&&" "!=e[n-1]&&(n==e.length-1||" "==e[n+1])&&(a="initial"),void 0!==t.glyphs[i]&&null==(r=t.glyphs[i][a])&&"glyph"==t.glyphs[i].type&&(r=t.glyphs[i])}else r=t.glyphs[i];return null==r&&(r=t.missingGlyph),r},this.renderChildren=function(t){var n=this.parent.style("font-family").getDefinition();if(null==n)""!=t.fillStyle&&t.fillText(e.compressSpaces(this.getText()),this.x,this.y),""!=t.strokeStyle&&t.strokeText(e.compressSpaces(this.getText()),this.x,this.y);else{var i=this.parent.style("font-size").numValueOrDefault(e.Font.Parse(e.ctx.font).fontSize),r=this.parent.style("font-style").valueOrDefault(e.Font.Parse(e.ctx.font).fontStyle),a=this.getText();n.isRTL&&(a=a.split("").reverse().join(""));for(var s=e.ToNumberArray(this.parent.attribute("dx").value),o=0;o<a.length;o++){var l=this.getGlyph(n,a,o),c=i/n.fontFace.unitsPerEm;t.translate(this.x,this.y),t.scale(c,-c);var u=t.lineWidth;t.lineWidth=t.lineWidth*n.fontFace.unitsPerEm/i,"italic"==r&&t.transform(1,0,.4,1,0,0),l.render(t),"italic"==r&&t.transform(1,0,-.4,1,0,0),t.lineWidth=u,t.scale(1/c,-1/c),t.translate(-this.x,-this.y),this.x+=i*(l.horizAdvX||n.horizAdvX)/n.fontFace.unitsPerEm,void 0===s[o]||isNaN(s[o])||(this.x+=s[o])}}},this.getText=function(){},this.measureTextRecursive=function(t){for(var e=this.measureText(t),n=0;n<this.children.length;n++)e+=this.children[n].measureTextRecursive(t);return e},this.measureText=function(t){var n=this.parent.style("font-family").getDefinition();if(null!=n){var i=this.parent.style("font-size").numValueOrDefault(e.Font.Parse(e.ctx.font).fontSize),r=0,a=this.getText();n.isRTL&&(a=a.split("").reverse().join(""));for(var s=e.ToNumberArray(this.parent.attribute("dx").value),o=0;o<a.length;o++){r+=(this.getGlyph(n,a,o).horizAdvX||n.horizAdvX)*i/n.fontFace.unitsPerEm,void 0===s[o]||isNaN(s[o])||(r+=s[o])}return r}var l=e.compressSpaces(this.getText());if(!t.measureText)return 10*l.length;t.save(),this.setContext(t);var c=t.measureText(l).width;return t.restore(),c}},e.Element.TextElementBase.prototype=new e.Element.RenderedElementBase,e.Element.tspan=function(t){this.captureTextNodes=!0,this.base=e.Element.TextElementBase,this.base(t),this.text=e.compressSpaces(t.value||t.text||t.textContent||""),this.getText=function(){return this.children.length>0?"":this.text}},e.Element.tspan.prototype=new e.Element.TextElementBase,e.Element.tref=function(t){this.base=e.Element.TextElementBase,this.base(t),this.getText=function(){var t=this.getHrefAttribute().getDefinition();if(null!=t)return t.children[0].getText()}},e.Element.tref.prototype=new e.Element.TextElementBase,e.Element.a=function(t){this.base=e.Element.TextElementBase,this.base(t),this.hasText=t.childNodes.length>0;for(var n=0;n<t.childNodes.length;n++)3!=t.childNodes[n].nodeType&&(this.hasText=!1);this.text=this.hasText?t.childNodes[0].value:"",this.getText=function(){return this.text},this.baseRenderChildren=this.renderChildren,this.renderChildren=function(t){if(this.hasText){this.baseRenderChildren(t);var n=new e.Property("fontSize",e.Font.Parse(e.ctx.font).fontSize);e.Mouse.checkBoundingBox(this,new e.BoundingBox(this.x,this.y-n.toPixels("y"),this.x+this.measureText(t),this.y))}else if(this.children.length>0){var i=new e.Element.g;i.children=this.children,i.parent=this,i.render(t)}},this.onclick=function(){window.open(this.getHrefAttribute().value)},this.onmousemove=function(){e.ctx.canvas.style.cursor="pointer"}},e.Element.a.prototype=new e.Element.TextElementBase,e.Element.image=function(t){this.base=e.Element.RenderedElementBase,this.base(t);var n=this.getHrefAttribute().value;if(""!=n){var i=n.match(/\.svg$/);if(e.Images.push(this),this.loaded=!1,i)this.img=e.ajax(n),this.loaded=!0;else{this.img=document.createElement("img"),1==e.opts.useCORS&&(this.img.crossOrigin="Anonymous");var r=this;this.img.onload=function(){r.loaded=!0},this.img.onerror=function(){e.log('ERROR: image "'+n+'" not found'),r.loaded=!0},this.img.src=n}this.renderChildren=function(t){var n=this.attribute("x").toPixels("x"),r=this.attribute("y").toPixels("y"),a=this.attribute("width").toPixels("x"),s=this.attribute("height").toPixels("y");0!=a&&0!=s&&(t.save(),i?t.drawSvg(this.img,n,r,a,s):(t.translate(n,r),e.AspectRatio(t,this.attribute("preserveAspectRatio").value,a,this.img.width,s,this.img.height,0,0),t.drawImage(this.img,0,0)),t.restore())},this.getBoundingBox=function(){var t=this.attribute("x").toPixels("x"),n=this.attribute("y").toPixels("y"),i=this.attribute("width").toPixels("x"),r=this.attribute("height").toPixels("y");return new e.BoundingBox(t,n,t+i,n+r)}}},e.Element.image.prototype=new e.Element.RenderedElementBase,e.Element.g=function(t){this.base=e.Element.RenderedElementBase,this.base(t),this.getBoundingBox=function(){for(var t=new e.BoundingBox,n=0;n<this.children.length;n++)t.addBoundingBox(this.children[n].getBoundingBox());return t}},e.Element.g.prototype=new e.Element.RenderedElementBase,e.Element.symbol=function(t){this.base=e.Element.RenderedElementBase,this.base(t),this.render=function(t){}},e.Element.symbol.prototype=new e.Element.RenderedElementBase,e.Element.style=function(t){this.base=e.Element.ElementBase,this.base(t);for(var n="",i=0;i<t.childNodes.length;i++)n+=t.childNodes[i].data;n=n.replace(/(\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\/)|(^[\s]*\/\/.*)/gm,"");var r=(n=e.compressSpaces(n)).split("}");for(i=0;i<r.length;i++)if(""!=e.trim(r[i]))for(var a=r[i].split("{"),o=a[0].split(","),l=a[1].split(";"),c=0;c<o.length;c++){var u=e.trim(o[c]);if(""!=u){for(var h=e.Styles[u]||{},d=0;d<l.length;d++){var f=l[d].indexOf(":"),p=l[d].substr(0,f),g=l[d].substr(f+1,l[d].length-f);null!=p&&null!=g&&(h[e.trim(p)]=new e.Property(e.trim(p),e.trim(g)))}if(e.Styles[u]=h,e.StylesSpecificity[u]=s(u),"@font-face"==u)for(var m=h["font-family"].value.replace(/"/g,""),y=h.src.value.split(","),v=0;v<y.length;v++)if(y[v].indexOf('format("svg")')>0)for(var b=y[v].indexOf("url"),x=y[v].indexOf(")",b),w=y[v].substr(b+5,x-b-6),S=e.parseXml(e.ajax(w)).getElementsByTagName("font"),C=0;C<S.length;C++){var _=e.CreateElement(S[C]);e.Definitions[m]=_}}}},e.Element.style.prototype=new e.Element.ElementBase,e.Element.use=function(t){this.base=e.Element.RenderedElementBase,this.base(t),this.baseSetContext=this.setContext,this.setContext=function(t){this.baseSetContext(t),this.attribute("x").hasValue()&&t.translate(this.attribute("x").toPixels("x"),0),this.attribute("y").hasValue()&&t.translate(0,this.attribute("y").toPixels("y"))};var n=this.getHrefAttribute().getDefinition();this.path=function(t){null!=n&&n.path(t)},this.getBoundingBox=function(){if(null!=n)return n.getBoundingBox()},this.renderChildren=function(t){if(null!=n){var i=n;"symbol"==n.type&&((i=new e.Element.svg).type="svg",i.attributes.viewBox=new e.Property("viewBox",n.attribute("viewBox").value),i.attributes.preserveAspectRatio=new e.Property("preserveAspectRatio",n.attribute("preserveAspectRatio").value),i.attributes.overflow=new e.Property("overflow",n.attribute("overflow").value),i.children=n.children),"svg"==i.type&&(this.attribute("width").hasValue()&&(i.attributes.width=new e.Property("width",this.attribute("width").value)),this.attribute("height").hasValue()&&(i.attributes.height=new e.Property("height",this.attribute("height").value)));var r=i.parent;i.parent=null,i.render(t),i.parent=r}}},e.Element.use.prototype=new e.Element.RenderedElementBase,e.Element.mask=function(t){this.base=e.Element.ElementBase,this.base(t),this.apply=function(t,n){var i=this.attribute("x").toPixels("x"),r=this.attribute("y").toPixels("y"),a=this.attribute("width").toPixels("x"),s=this.attribute("height").toPixels("y");if(0==a&&0==s){for(var o=new e.BoundingBox,l=0;l<this.children.length;l++)o.addBoundingBox(this.children[l].getBoundingBox());i=Math.floor(o.x1),r=Math.floor(o.y1),a=Math.floor(o.width()),s=Math.floor(o.height())}var c=n.attribute("mask").value;n.attribute("mask").value="";var u=document.createElement("canvas");u.width=i+a,u.height=r+s;var h=u.getContext("2d");this.renderChildren(h);var d=document.createElement("canvas");d.width=i+a,d.height=r+s;var f=d.getContext("2d");n.render(f),f.globalCompositeOperation="destination-in",f.fillStyle=h.createPattern(u,"no-repeat"),f.fillRect(0,0,i+a,r+s),t.fillStyle=f.createPattern(d,"no-repeat"),t.fillRect(0,0,i+a,r+s),n.attribute("mask").value=c},this.render=function(t){}},e.Element.mask.prototype=new e.Element.ElementBase,e.Element.clipPath=function(t){this.base=e.Element.ElementBase,this.base(t),this.apply=function(t){var n=CanvasRenderingContext2D.prototype.beginPath;CanvasRenderingContext2D.prototype.beginPath=function(){};var i=CanvasRenderingContext2D.prototype.closePath;CanvasRenderingContext2D.prototype.closePath=function(){},n.call(t);for(var r=0;r<this.children.length;r++){var a=this.children[r];if(void 0!==a.path){var s=null;a.style("transform",!1,!0).hasValue()&&(s=new e.Transform(a.style("transform",!1,!0).value)).apply(t),a.path(t),CanvasRenderingContext2D.prototype.closePath=i,s&&s.unapply(t)}}i.call(t),t.clip(),CanvasRenderingContext2D.prototype.beginPath=n,CanvasRenderingContext2D.prototype.closePath=i},this.render=function(t){}},e.Element.clipPath.prototype=new e.Element.ElementBase,e.Element.filter=function(t){this.base=e.Element.ElementBase,this.base(t),this.apply=function(t,e){var n=e.getBoundingBox(),i=Math.floor(n.x1),r=Math.floor(n.y1),a=Math.floor(n.width()),s=Math.floor(n.height()),o=e.style("filter").value;e.style("filter").value="";for(var l=0,c=0,u=0;u<this.children.length;u++){var h=this.children[u].extraFilterDistance||0;l=Math.max(l,h),c=Math.max(c,h)}var d=document.createElement("canvas");d.width=a+2*l,d.height=s+2*c;var f=d.getContext("2d");f.translate(-i+l,-r+c),e.render(f);for(u=0;u<this.children.length;u++)"function"==typeof this.children[u].apply&&this.children[u].apply(f,0,0,a+2*l,s+2*c);t.drawImage(d,0,0,a+2*l,s+2*c,i-l,r-c,a+2*l,s+2*c),e.style("filter",!0).value=o},this.render=function(t){}},e.Element.filter.prototype=new e.Element.ElementBase,e.Element.feMorphology=function(t){this.base=e.Element.ElementBase,this.base(t),this.apply=function(t,e,n,i,r){}},e.Element.feMorphology.prototype=new e.Element.ElementBase,e.Element.feComposite=function(t){this.base=e.Element.ElementBase,this.base(t),this.apply=function(t,e,n,i,r){}},e.Element.feComposite.prototype=new e.Element.ElementBase,e.Element.feColorMatrix=function(t){this.base=e.Element.ElementBase,this.base(t);var n=e.ToNumberArray(this.attribute("values").value);switch(this.attribute("type").valueOrDefault("matrix")){case"saturate":var i=n[0];n=[.213+.787*i,.715-.715*i,.072-.072*i,0,0,.213-.213*i,.715+.285*i,.072-.072*i,0,0,.213-.213*i,.715-.715*i,.072+.928*i,0,0,0,0,0,1,0,0,0,0,0,1];break;case"hueRotate":var r=n[0]*Math.PI/180,a=function(t,e,n){return t+Math.cos(r)*e+Math.sin(r)*n};n=[a(.213,.787,-.213),a(.715,-.715,-.715),a(.072,-.072,.928),0,0,a(.213,-.213,.143),a(.715,.285,.14),a(.072,-.072,-.283),0,0,a(.213,-.213,-.787),a(.715,-.715,.715),a(.072,.928,.072),0,0,0,0,0,1,0,0,0,0,0,1];break;case"luminanceToAlpha":n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,.2125,.7154,.0721,0,0,0,0,0,0,1]}function s(t,e,n,i,r,a){return t[n*i*4+4*e+a]}function o(t,e,n,i,r,a,s){t[n*i*4+4*e+a]=s}function l(t,e){var i=n[t];return i*(i<0?e-255:e)}this.apply=function(t,e,n,i,r){var a=t.getImageData(0,0,i,r);for(n=0;n<r;n++)for(e=0;e<i;e++){var c=s(a.data,e,n,i,r,0),u=s(a.data,e,n,i,r,1),h=s(a.data,e,n,i,r,2),d=s(a.data,e,n,i,r,3);o(a.data,e,n,i,r,0,l(0,c)+l(1,u)+l(2,h)+l(3,d)+l(4,1)),o(a.data,e,n,i,r,1,l(5,c)+l(6,u)+l(7,h)+l(8,d)+l(9,1)),o(a.data,e,n,i,r,2,l(10,c)+l(11,u)+l(12,h)+l(13,d)+l(14,1)),o(a.data,e,n,i,r,3,l(15,c)+l(16,u)+l(17,h)+l(18,d)+l(19,1))}t.clearRect(0,0,i,r),t.putImageData(a,0,0)}},e.Element.feColorMatrix.prototype=new e.Element.ElementBase,e.Element.feGaussianBlur=function(t){this.base=e.Element.ElementBase,this.base(t),this.blurRadius=Math.floor(this.attribute("stdDeviation").numValue()),this.extraFilterDistance=this.blurRadius,this.apply=function(t,n,i,a,s){void 0!==r.canvasRGBA?(t.canvas.id=e.UniqueId(),t.canvas.style.display="none",document.body.appendChild(t.canvas),r.canvasRGBA(t.canvas.id,n,i,a,s,this.blurRadius),document.body.removeChild(t.canvas)):e.log("ERROR: StackBlur.js must be included for blur to work")}},e.Element.feGaussianBlur.prototype=new e.Element.ElementBase,e.Element.title=function(t){},e.Element.title.prototype=new e.Element.ElementBase,e.Element.desc=function(t){},e.Element.desc.prototype=new e.Element.ElementBase,e.Element.MISSING=function(t){e.log("ERROR: Element '"+t.nodeName+"' not yet implemented.")},e.Element.MISSING.prototype=new e.Element.ElementBase,e.CreateElement=function(t){var n=t.nodeName.replace(/^[^:]+:/,"");n=n.replace(/\-/g,"");var i=null;return(i=void 0!==e.Element[n]?new e.Element[n](t):new e.Element.MISSING(t)).type=t.nodeName,i},e.load=function(t,n){e.loadXml(t,e.ajax(n))},e.loadXml=function(t,n){e.loadXmlDoc(t,e.parseXml(n))},e.loadXmlDoc=function(t,n){e.init(t);var i=function(e){for(var n=t.canvas;n;)e.x-=n.offsetLeft,e.y-=n.offsetTop,n=n.offsetParent;return window.scrollX&&(e.x+=window.scrollX),window.scrollY&&(e.y+=window.scrollY),e};1!=e.opts.ignoreMouse&&(t.canvas.onclick=function(t){var n=i(new e.Point(null!=t?t.clientX:event.clientX,null!=t?t.clientY:event.clientY));e.Mouse.onclick(n.x,n.y)},t.canvas.onmousemove=function(t){var n=i(new e.Point(null!=t?t.clientX:event.clientX,null!=t?t.clientY:event.clientY));e.Mouse.onmousemove(n.x,n.y)});var r=e.CreateElement(n.documentElement);r.root=!0,r.addStylesFromStyleDefinition();var a=!0,s=function(){e.ViewPort.Clear(),t.canvas.parentNode&&e.ViewPort.SetCurrent(t.canvas.parentNode.clientWidth,t.canvas.parentNode.clientHeight),1!=e.opts.ignoreDimensions&&(r.style("width").hasValue()&&(t.canvas.width=r.style("width").toPixels("x"),t.canvas.style.width=t.canvas.width+"px"),r.style("height").hasValue()&&(t.canvas.height=r.style("height").toPixels("y"),t.canvas.style.height=t.canvas.height+"px"));var i=t.canvas.clientWidth||t.canvas.width,s=t.canvas.clientHeight||t.canvas.height;if(1==e.opts.ignoreDimensions&&r.style("width").hasValue()&&r.style("height").hasValue()&&(i=r.style("width").toPixels("x"),s=r.style("height").toPixels("y")),e.ViewPort.SetCurrent(i,s),null!=e.opts.offsetX&&(r.attribute("x",!0).value=e.opts.offsetX),null!=e.opts.offsetY&&(r.attribute("y",!0).value=e.opts.offsetY),null!=e.opts.scaleWidth||null!=e.opts.scaleHeight){var o=null,l=null,c=e.ToNumberArray(r.attribute("viewBox").value);null!=e.opts.scaleWidth&&(r.attribute("width").hasValue()?o=r.attribute("width").toPixels("x")/e.opts.scaleWidth:isNaN(c[2])||(o=c[2]/e.opts.scaleWidth)),null!=e.opts.scaleHeight&&(r.attribute("height").hasValue()?l=r.attribute("height").toPixels("y")/e.opts.scaleHeight:isNaN(c[3])||(l=c[3]/e.opts.scaleHeight)),null==o&&(o=l),null==l&&(l=o),r.attribute("width",!0).value=e.opts.scaleWidth,r.attribute("height",!0).value=e.opts.scaleHeight,r.style("transform",!0,!0).value+=" scale("+1/o+","+1/l+")"}1!=e.opts.ignoreClear&&t.clearRect(0,0,i,s),r.render(t),a&&(a=!1,"function"==typeof e.opts.renderCallback&&e.opts.renderCallback(n))},o=!0;e.ImagesLoaded()&&(o=!1,s()),e.intervalID=setInterval((function(){var t=!1;if(o&&e.ImagesLoaded()&&(o=!1,t=!0),1!=e.opts.ignoreMouse&&(t|=e.Mouse.hasEvents()),1!=e.opts.ignoreAnimation)for(var n=0;n<e.Animations.length;n++)t|=e.Animations[n].update(1e3/e.FRAMERATE);"function"==typeof e.opts.forceRedraw&&1==e.opts.forceRedraw()&&(t=!0),t&&(s(),e.Mouse.runEvents())}),1e3/e.FRAMERATE)},e.stop=function(){e.intervalID&&clearInterval(e.intervalID)},e.Mouse=new function(){this.events=[],this.hasEvents=function(){return 0!=this.events.length},this.onclick=function(t,e){this.events.push({type:"onclick",x:t,y:e,run:function(t){t.onclick&&t.onclick()}})},this.onmousemove=function(t,e){this.events.push({type:"onmousemove",x:t,y:e,run:function(t){t.onmousemove&&t.onmousemove()}})},this.eventElements=[],this.checkPath=function(t,e){for(var n=0;n<this.events.length;n++){var i=this.events[n];e.isPointInPath&&e.isPointInPath(i.x,i.y)&&(this.eventElements[n]=t)}},this.checkBoundingBox=function(t,e){for(var n=0;n<this.events.length;n++){var i=this.events[n];e.isPointInBox(i.x,i.y)&&(this.eventElements[n]=t)}},this.runEvents=function(){e.ctx.canvas.style.cursor="";for(var t=0;t<this.events.length;t++)for(var n=this.events[t],i=this.eventElements[t];i;)n.run(i),i=i.parent;this.events=[],this.eventElements=[]}},e}(n||{});1==t.childNodes.length&&"OBJECT"==t.childNodes[0].nodeName||(t.svg=o);var l=t.getContext("2d");void 0!==e.documentElement?o.loadXmlDoc(l,e):"<"==e.substr(0,1)?o.loadXml(l,e):o.load(l,e)}else for(var c=document.querySelectorAll("svg"),u=0;u<c.length;u++){var h=c[u],d=document.createElement("canvas");d.width=h.clientWidth,d.height=h.clientHeight,h.parentNode.insertBefore(d,h),h.parentNode.removeChild(h);var f=document.createElement("div");f.appendChild(h),a(d,f.innerHTML)}}function s(t){var e=[0,0,0],n=function(n,i){var r=t.match(n);null!=r&&(e[i]+=r.length,t=t.replace(n," "))};return t=(t=t.replace(/:not\(([^\)]*)\)/g,"     $1 ")).replace(/{[^]*/gm," "),n(/(\[[^\]]+\])/g,1),n(/(#[^\s\+>~\.\[:]+)/g,0),n(/(\.[^\s\+>~\.\[:]+)/g,1),n(/(::[^\s\+>~\.\[:]+|:first-line|:first-letter|:before|:after)/gi,2),n(/(:[\w-]+\([^\)]*\))/gi,1),n(/(:[^\s\+>~\.\[:]+)/g,1),t=(t=t.replace(/[\*\s\+>~]/g," ")).replace(/[#\.]/g," "),n(/([^\s\+>~\.\[:]+)/g,2),e.join("")}t.exports=a},"./node_modules/css-loader/dist/cjs.js!./src/css/contextMenuStyle.css":(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var i=n("./node_modules/css-loader/dist/runtime/sourceMaps.js"),r=n.n(i),a=n("./node_modules/css-loader/dist/runtime/api.js"),s=n.n(a)()(r());s.push([t.id,'.draw2d_menu_container {\n  position: fixed;\n  opacity: 0;\n  transform: scale(0);\n  transition: transform 0.1s;\n  transform-origin: top left;\n  padding: 0;\n}\n\n.draw2d_menu_container.display {\n  opacity: 1;\n  transform: scale(1);\n}\n.draw2d_menu_container .menu_sub_icon {\n  font-size: 14px;\n  color: #8894a8;\n}\n\n.draw2d_menu_container,\n.draw2d_menu_container * {\n  box-sizing: border-box;\n}\n\n.draw2d_menu_container * {\n  position: relative;\n}\n\n.draw2d_menu_container ul {\n  list-style-type: none;\n  padding: 6px 8px;\n  margin: 0;\n  background-color: #efefef !important;\n  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n  user-select: none;\n  border-radius: 6px;\n}\n\n.draw2d_menu_container li {\n  padding: 4px 8px;\n  padding-right: 1.7em;\n  min-width: 120px;\n  cursor: pointer;\n  white-space: nowrap;\n  color: #606266;\n  font-size: 14px;\n  border-radius: 4px;\n}\n\n.draw2d_menu_container li:hover {\n  /* background-color: #bbb; */\n  background: #1377eb;\n  color: #fff;\n}\n.draw2d_menu_container li:hover .menu_sub_icon {\n  color: #fff;\n}\n\n.draw2d_menu_container li .draw2d_menu_icon_span {\n  width: 1.5em;\n  height: 1.2em;\n  vertical-align: bottom;\n  display: inline-block;\n  /* border-right: 1px solid #E1E5EB; */\n  margin-right: 5px;\n  padding-right: 5px;\n  text-align: center;\n}\n\n.draw2d_menu_container li .draw2d_menu_sub_span {\n  width: 1em;\n  display: inline-block;\n  text-align: center;\n  position: absolute;\n  top: 50%;\n  right: 0;\n  transform: translateY(-50%);\n  /* color: #606266; */\n  /* background-color: #fff; */\n}\n\n.draw2d_menu_container li > ul {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  opacity: 0;\n  transition: opacity 0.2s;\n  visibility: hidden;\n  background-color: #fff;\n  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;\n  user-select: none;\n}\n\n.draw2d_menu_container li:hover > ul {\n  opacity: 1;\n  visibility: visible;\n}\n\n.draw2d_menu_container li:hover > .draw2d_menu_sub_span {\n  background: #1377eb;\n  color: #fff;\n}\n\n.draw2d_menu_container li.draw2d_menu_divider {\n  border-bottom: 1px solid #e1e5eb;\n  margin: 5px;\n  padding: 0;\n  cursor: default;\n}\n\n.draw2d_menu_container li.draw2d_menu_divider:hover {\n  background-color: inherit;\n}\n\n.draw2d_menu_container.draw2d_menu_border_right > ul ul {\n  left: unset;\n  right: 100%;\n}\n\n.draw2d_menu_container.draw2d_menu_border_bottom > ul ul {\n  top: unset;\n  bottom: 0;\n}\n\n.draw2d_menu_container li[disabled=""] {\n  color: #777;\n  cursor: default;\n}\n\n.draw2d_menu_container li[disabled=""]:hover {\n  background-color: inherit;\n}\n',"",{version:3,sources:["webpack://./src/css/contextMenuStyle.css"],names:[],mappings:"AAAA;EACE,eAAe;EACf,UAAU;EACV,mBAAmB;EACnB,0BAA0B;EAC1B,0BAA0B;EAC1B,UAAU;AACZ;;AAEA;EACE,UAAU;EACV,mBAAmB;AACrB;AACA;EACE,eAAe;EACf,cAAc;AAChB;;AAEA;;EAEE,sBAAsB;AACxB;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,qBAAqB;EACrB,gBAAgB;EAChB,SAAS;EACT,oCAAoC;EACpC,0CAA0C;EAC1C,iBAAiB;EACjB,kBAAkB;AACpB;;AAEA;EACE,gBAAgB;EAChB,oBAAoB;EACpB,gBAAgB;EAChB,eAAe;EACf,mBAAmB;EACnB,cAAc;EACd,eAAe;EACf,kBAAkB;AACpB;;AAEA;EACE,4BAA4B;EAC5B,mBAAmB;EACnB,WAAW;AACb;AACA;EACE,WAAW;AACb;;AAEA;EACE,YAAY;EACZ,aAAa;EACb,sBAAsB;EACtB,qBAAqB;EACrB,qCAAqC;EACrC,iBAAiB;EACjB,kBAAkB;EAClB,kBAAkB;AACpB;;AAEA;EACE,UAAU;EACV,qBAAqB;EACrB,kBAAkB;EAClB,kBAAkB;EAClB,QAAQ;EACR,QAAQ;EACR,2BAA2B;EAC3B,oBAAoB;EACpB,4BAA4B;AAC9B;;AAEA;EACE,kBAAkB;EAClB,MAAM;EACN,UAAU;EACV,UAAU;EACV,wBAAwB;EACxB,kBAAkB;EAClB,sBAAsB;EACtB,qDAAqD;EACrD,iBAAiB;AACnB;;AAEA;EACE,UAAU;EACV,mBAAmB;AACrB;;AAEA;EACE,mBAAmB;EACnB,WAAW;AACb;;AAEA;EACE,gCAAgC;EAChC,WAAW;EACX,UAAU;EACV,eAAe;AACjB;;AAEA;EACE,yBAAyB;AAC3B;;AAEA;EACE,WAAW;EACX,WAAW;AACb;;AAEA;EACE,UAAU;EACV,SAAS;AACX;;AAEA;EACE,WAAW;EACX,eAAe;AACjB;;AAEA;EACE,yBAAyB;AAC3B",sourceRoot:""}]);const o=s},"./node_modules/css-loader/dist/cjs.js!./src/css/draw2d.css":(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var i=n("./node_modules/css-loader/dist/runtime/sourceMaps.js"),r=n.n(i),a=n("./node_modules/css-loader/dist/runtime/api.js"),s=n.n(a)()(r());s.push([t.id,"\n.vertical-text {\n    transform: rotate(90deg);\n    transform-origin: left bottom;\n    white-space: nowrap;\n}\n.cursor-pointer{\n    cursor: pointer !important;\n}","",{version:3,sources:["webpack://./src/css/draw2d.css"],names:[],mappings:";AACA;IACI,wBAAwB;IACxB,6BAA6B;IAC7B,mBAAmB;AACvB;AACA;IACI,0BAA0B;AAC9B",sourceRoot:""}]);const o=s},"./node_modules/css-loader/dist/cjs.js!./src/css/tooltip.css":(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var i=n("./node_modules/css-loader/dist/runtime/sourceMaps.js"),r=n.n(i),a=n("./node_modules/css-loader/dist/runtime/api.js"),s=n.n(a)()(r());s.push([t.id,'\n.draw2d-tooltip {\n\tposition: absolute;\n\tpadding: 6px 12px;\n\tmax-width: 850px;\n\tborder-radius:6px;\n\tbackground: rgba(64,64,64,0.85);\n\tbox-shadow: 0 1px 4px 0 rgba(0,0,0,0.20);\n\tcolor: #FFFFFF;\n\tfont-size: 12px;\n\ttext-align: center;\n\tuser-select: none;\n}\n\n.draw2d-tooltip:after {\n\ttop: 100%;\n\tborder: solid transparent;\n\tcontent: " ";\n\theight: 0;\n\twidth: 0;\n\tposition: absolute;\n\tpointer-events: none;\n\tborder-top-color: rgba(64,64,64,0.85);\n\tborder-width: 4px;\n\tleft: 50%;\n\tmargin-left: -4px;\n}\n\n',"",{version:3,sources:["webpack://./src/css/tooltip.css"],names:[],mappings:";AACA;CACC,kBAAkB;CAClB,iBAAiB;CACjB,gBAAgB;CAChB,iBAAiB;CACjB,+BAA+B;CAC/B,wCAAwC;CACxC,cAAc;CACd,eAAe;CACf,kBAAkB;CAClB,iBAAiB;AAClB;;AAEA;CACC,SAAS;CACT,yBAAyB;CACzB,YAAY;CACZ,SAAS;CACT,QAAQ;CACR,kBAAkB;CAClB,oBAAoB;CACpB,qCAAqC;CACrC,iBAAiB;CACjB,SAAS;CACT,iBAAiB;AAClB",sourceRoot:""}]);const o=s},"./node_modules/css-loader/dist/runtime/api.js":t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n="",i=void 0!==e[5];return e[4]&&(n+="@supports (".concat(e[4],") {")),e[2]&&(n+="@media ".concat(e[2]," {")),i&&(n+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),n+=t(e),i&&(n+="}"),e[2]&&(n+="}"),e[4]&&(n+="}"),n})).join("")},e.i=function(t,n,i,r,a){"string"==typeof t&&(t=[[null,t,void 0]]);var s={};if(i)for(var o=0;o<this.length;o++){var l=this[o][0];null!=l&&(s[l]=!0)}for(var c=0;c<t.length;c++){var u=[].concat(t[c]);i&&s[u[0]]||(void 0!==a&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=a),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),r&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=r):u[4]="".concat(r)),e.push(u))}},e}},"./node_modules/css-loader/dist/runtime/sourceMaps.js":t=>{"use strict";t.exports=function(t){var e=t[1],n=t[3];if(!n)return e;if("function"==typeof btoa){var i=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(i),a="/*# ".concat(r," */");return[e].concat([a]).join("\n")}return[e].join("\n")}},"./node_modules/raw-loader/index.js!./src/lib/Class.exec.js":t=>{t.exports='/* \n * Simple JavaScript Inheritance \n * By John Resig http://ejohn.org/ \n * MIT Licensed. \n * \n ****************************************************** \n * Example Usage \n ****************************************************** \n var Person = Class.extend({ \n  init: function(isDancing){ \n    this.dancing = isDancing; \n  }, \n  dance: function(){ \n    return this.dancing; \n  } \n}); \n\nvar Ninja = Person.extend({ \n  init: function(){ \n    this._super( false ); \n  }, \n  dance: function(){ \n    // Call the inherited version of dance() \n    return this._super(); \n  }, \n  swingSword: function(){ \n    return true; \n  } \n}); \n\nvar p = new Person(true); \np.dance(); // => true \n\nvar n = new Ninja(); \nn.dance(); // => false \nn.swingSword(); // => true \n\n// Should all be true \np instanceof Person && p instanceof Class && \nn instanceof Ninja && n instanceof Person && n instanceof Class \n\n ****************************************************** \n */ \n  \n// Inspired by base2 and Prototype \n(function(){ \n  var fnTest = /xyz/.test(function(){xyz;}) ? /\\b_super\\b/ : /.*/; \n\n  // The base Class implementation (does nothing) \n  this.Class = function(){}; \n  \n\n  // Create a new Class that inherits from this class \n  Class.extend = function(prop) { \n    var _super = this.prototype; \n    \n    // Instantiate a base class (but only create the instance, \n    // don\'t run the init constructor) \n    initializing = true; \n    var prototype = new this(); \n    initializing = false; \n    \n     \n    // Copy the properties over onto the new prototype \n    for (var name in prop) { \n      // Check if we\'re overwriting an existing function \n      prototype[name] = typeof prop[name] == "function" && \n        typeof _super[name] == "function" && fnTest.test(prop[name]) ? \n        (function(name, fn){ \n          return function() { \n            var tmp = this._super; \n            \n            // Add a new ._super() method that is the same method \n            // but on the super-class \n            this._super = _super[name]; \n            \n            // The method only need to be bound temporarily, so we \n            // remove it when we\'re done executing \n            var ret = fn.apply(this, arguments);        \n            this._super = tmp; \n            \n            return ret; \n          }; \n        })(name, prop[name]) : \n        prop[name]; \n    } \n    \n    // The dummy class constructor \n    function Class() { \n      // All construction is actually done in the init method \n      if ( !initializing && this.init ) \n        this.init.apply(this, arguments); \n    } \n    \n    // Populate our constructed prototype object \n    Class.prototype = prototype; \n    \n    // Enforce the constructor to be what we expect \n    Class.prototype.constructor = Class; \n\n    // And make this class extendable \n    Class.extend = arguments.callee; \n    \n    // EXTENSION BY Draw2D.org to inject methods into an existing class to provide plugins or \n    // bugfixes for further releases \n    // \n    Class.inject = function (prop) { \n        var proto = this.prototype; \n        var parent = {}; \n        for (var name in prop) { \n            if (typeof (prop[name]) == "function" && typeof (proto[name]) == "function" && fnTest.test(prop[name])) { \n                parent[name] = proto[name]; \n                proto[name] = (function (name, fn) { \n                    return function () { \n                        var tmp = this.parent; \n                        this.parent = parent[name]; \n                        var ret = fn.apply(this, arguments); \n                        this.parent = tmp; \n                        return ret; \n                    }; \n                })(name, prop[name]); \n            } else { \n                proto[name] = prop[name]; \n            } \n        } \n    }; \n     \n    return Class; \n  }; \n})();\n \n'},"./node_modules/raw-loader/index.js!./src/lib/pathfinding.exec.js":t=>{t.exports='var PF=function(){var e=function(t,n){var r=e.resolve(t,n||"/"),i=e.modules[r];if(!i)throw new Error("Failed to resolve module "+t+", tried "+r);var s=i._cached?i._cached:i();return s};return e.paths=[],e.modules={},e.extensions=[".js",".coffee"],e._core={assert:!0,events:!0,fs:!0,path:!0,vm:!0},e.resolve=function(){return function(t,n){function u(t){if(e.modules[t])return t;for(var n=0;n<e.extensions.length;n++){var r=e.extensions[n];if(e.modules[t+r])return t+r}}function a(t){t=t.replace(/\\/+$/,"");var n=t+"/package.json";if(e.modules[n]){var i=e.modules[n](),s=i.browserify;if(typeof s=="object"&&s.main){var o=u(r.resolve(t,s.main));if(o)return o}else if(typeof s=="string"){var o=u(r.resolve(t,s));if(o)return o}else if(i.main){var o=u(r.resolve(t,i.main));if(o)return o}}return u(t+"/index")}function f(e,t){var n=l(t);for(var r=0;r<n.length;r++){var i=n[r],s=u(i+"/"+e);if(s)return s;var o=a(i+"/"+e);if(o)return o}var s=u(e);if(s)return s}function l(e){var t;e==="/"?t=[""]:t=r.normalize(e).split("/");var n=[];for(var i=t.length-1;i>=0;i--){if(t[i]==="node_modules")continue;var s=t.slice(0,i+1).join("/")+"/node_modules";n.push(s)}return n}n||(n="/");if(e._core[t])return t;var r=e.modules.path();n=r.resolve("/",n);var i=n||"/";if(t.match(/^(?:\\.\\.?\\/|\\/)/)){var s=u(r.resolve(i,t))||a(r.resolve(i,t));if(s)return s}var o=f(t,i);if(o)return o;throw new Error("Cannot find module \'"+t+"\'")}}(),e.alias=function(t,n){var r=e.modules.path(),i=null;try{i=e.resolve(t+"/package.json","/")}catch(s){i=e.resolve(t,"/")}var o=r.dirname(i),u=(Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t})(e.modules);for(var a=0;a<u.length;a++){var f=u[a];if(f.slice(0,o.length+1)===o+"/"){var l=f.slice(o.length);e.modules[n+l]=e.modules[o+l]}else f===o&&(e.modules[n]=e.modules[o])}},e.define=function(t,n){var r=e._core[t]?"":e.modules.path().dirname(t),i=function(t){return e(t,r)};i.resolve=function(t){return e.resolve(t,r)},i.modules=e.modules,i.define=e.define;var s={exports:{}};e.modules[t]=function(){return e.modules[t]._cached=s.exports,n.call(s.exports,i,s,s.exports,r,t),e.modules[t]._cached=s.exports,s.exports}},typeof process=="undefined"&&(process={}),process.nextTick||(process.nextTick=function(){var e=[],t=typeof window!="undefined"&&window.postMessage&&window.addEventListener;return t&&window.addEventListener("message",function(t){if(t.source===window&&t.data==="browserify-tick"){t.stopPropagation();if(e.length>0){var n=e.shift();n()}}},!0),function(n){t?(e.push(n),window.postMessage("browserify-tick","*")):setTimeout(n,0)}}()),process.title||(process.title="browser"),process.binding||(process.binding=function(t){if(t==="evals")return e("vm");throw new Error("No such module")}),process.cwd||(process.cwd=function(){return"."}),process.env||(process.env={}),process.argv||(process.argv=[]),e.define("path",function(e,t,n,r,i){function s(e,t){var n=[];for(var r=0;r<e.length;r++)t(e[r],r,e)&&n.push(e[r]);return n}function o(e,t){var n=0;for(var r=e.length;r>=0;r--){var i=e[r];i=="."?e.splice(r,1):i===".."?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}var u=/^(.+\\/(?!$)|\\/)?((?:.+?)?(\\.[^.]*)?)$/;n.resolve=function(){var e="",t=!1;for(var n=arguments.length;n>=-1&&!t;n--){var r=n>=0?arguments[n]:process.cwd();if(typeof r!="string"||!r)continue;e=r+"/"+e,t=r.charAt(0)==="/"}return e=o(s(e.split("/"),function(e){return!!e}),!t).join("/"),(t?"/":"")+e||"."},n.normalize=function(e){var t=e.charAt(0)==="/",n=e.slice(-1)==="/";return e=o(s(e.split("/"),function(e){return!!e}),!t).join("/"),!e&&!t&&(e="."),e&&n&&(e+="/"),(t?"/":"")+e},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(s(e,function(e,t){return e&&typeof e=="string"}).join("/"))},n.dirname=function(e){var t=u.exec(e)[1]||"",n=!1;return t?t.length===1||n&&t.length<=3&&t.charAt(1)===":"?t:t.substring(0,t.length-1):"."},n.basename=function(e,t){var n=u.exec(e)[2]||"";return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},n.extname=function(e){return u.exec(e)[3]||""}}),e.define("/core/Node.js",function(e,t,n,r,i){function s(e,t,n){this.x=e,this.y=t,this.walkable=n===undefined?!0:n}t.exports=s}),e.define("/core/Grid.js",function(e,t,n,r,i){function o(e,t,n){this.width=e,this.height=t,this.nodes=this._buildNodes(e,t,n)}var s=e("./Node");o.prototype._buildNodes=function(e,t,n){var r,i,o=new Array(t),u;for(r=0;r<t;++r){o[r]=new Array(e);for(i=0;i<e;++i)o[r][i]=new s(i,r)}if(n===undefined)return o;if(n.length!==t||n[0].length!==e)throw new Error("Matrix size does not fit");for(r=0;r<t;++r)for(i=0;i<e;++i)n[r][i]&&(o[r][i].walkable=!1);return o},o.prototype.getNodeAt=function(e,t){return this.nodes[t][e]},o.prototype.isWalkableAt=function(e,t){return this.isInside(e,t)&&this.nodes[t][e].walkable},o.prototype.isInside=function(e,t){return e>=0&&e<this.width&&t>=0&&t<this.height},o.prototype.setWalkableAt=function(e,t,n){this.nodes[t][e].walkable=n},o.prototype.getNeighbors=function(e,t,n){var r=e.x,i=e.y,s=[],o=!1,u=!1,a=!1,f=!1,l=!1,c=!1,h=!1,p=!1,d=this.nodes;return this.isWalkableAt(r,i-1)&&(s.push(d[i-1][r]),o=!0),this.isWalkableAt(r+1,i)&&(s.push(d[i][r+1]),a=!0),this.isWalkableAt(r,i+1)&&(s.push(d[i+1][r]),l=!0),this.isWalkableAt(r-1,i)&&(s.push(d[i][r-1]),h=!0),t?(n?(u=h&&o,f=o&&a,c=a&&l,p=l&&h):(u=h||o,f=o||a,c=a||l,p=l||h),u&&this.isWalkableAt(r-1,i-1)&&s.push(d[i-1][r-1]),f&&this.isWalkableAt(r+1,i-1)&&s.push(d[i-1][r+1]),c&&this.isWalkableAt(r+1,i+1)&&s.push(d[i+1][r+1]),p&&this.isWalkableAt(r-1,i+1)&&s.push(d[i+1][r-1]),s):s},o.prototype.clone=function(){var e,t,n=this.width,r=this.height,i=this.nodes,u=new o(n,r),a=new Array(r),f;for(e=0;e<r;++e){a[e]=new Array(n);for(t=0;t<n;++t)a[e][t]=new s(t,e,i[e][t].walkable)}return u.nodes=a,u},t.exports=o}),e.define("/core/Heap.js",function(e,t,n,r,i){(function(){var e,n,r,i,s,o,u,a,f,l,c,h,p,d,v;r=Math.floor,l=Math.min,n=function(e,t){return e<t?-1:e>t?1:0},f=function(e,t,i,s,o){var u;i==null&&(i=0),o==null&&(o=n);if(i<0)throw new Error("lo must be non-negative");s==null&&(s=e.length);while(o(i,s)<0)u=r((i+s)/2),o(t,e[u])<0?s=u:i=u+1;return[].splice.apply(e,[i,i-i].concat(t)),t},o=function(e,t,r){return r==null&&(r=n),e.push(t),d(e,0,e.length-1,r)},s=function(e,t){var r,i;return t==null&&(t=n),r=e.pop(),e.length?(i=e[0],e[0]=r,v(e,0,t)):i=r,i},a=function(e,t,r){var i;return r==null&&(r=n),i=e[0],e[0]=t,v(e,0,r),i},u=function(e,t,r){var i;return r==null&&(r=n),e.length&&r(e[0],t)<0&&(i=[e[0],t],t=i[0],e[0]=i[1],v(e,0,r)),t},i=function(e,t){var i,s,o,u,a,f,l,c;t==null&&(t=n),f=function(){c=[];for(var t=0,n=r(e.length/2);0<=n?t<n:t>n;0<=n?t++:t--)c.push(t);return c}.apply(this).reverse(),l=[];for(s=0,u=f.length;s<u;s++)i=f[s],l.push(v(e,i,t));return l},p=function(e,t,r){var i;return r==null&&(r=n),i=e.indexOf(t),d(e,0,i,r),v(e,i,r)},c=function(e,t,r){var s,o,a,f,l;r==null&&(r=n),o=e.slice(0,t);if(!o.length)return o;i(o,r),l=e.slice(t);for(a=0,f=l.length;a<f;a++)s=l[a],u(o,s,r);return o.sort(r).reverse()},h=function(e,t,r){var o,u,a,c,h,p,d,v,m,g;r==null&&(r=n);if(t*10<=e.length){c=e.slice(0,t).sort(r);if(!c.length)return c;a=c[c.length-1],v=e.slice(t);for(h=0,d=v.length;h<d;h++)o=v[h],r(o,a)<0&&(f(c,o,0,null,r),c.pop(),a=c[c.length-1]);return c}i(e,r),g=[];for(u=p=0,m=l(t,e.length);0<=m?p<m:p>m;u=0<=m?++p:--p)g.push(s(e,r));return g},d=function(e,t,r,i){var s,o,u;i==null&&(i=n),s=e[r];while(r>t){u=r-1>>1,o=e[u];if(i(s,o)<0){e[r]=o,r=u;continue}break}return e[r]=s},v=function(e,t,r){var i,s,o,u,a;r==null&&(r=n),s=e.length,a=t,o=e[t],i=2*t+1;while(i<s)u=i+1,u<s&&!(r(e[i],e[u])<0)&&(i=u),e[t]=e[i],t=i,i=2*t+1;return e[t]=o,d(e,a,t,r)},e=function(){function e(e){this.cmp=e!=null?e:n,this.nodes=[]}return e.name="Heap",e.push=o,e.pop=s,e.replace=a,e.pushpop=u,e.heapify=i,e.nlargest=c,e.nsmallest=h,e.prototype.push=function(e){return o(this.nodes,e,this.cmp)},e.prototype.pop=function(){return s(this.nodes,this.cmp)},e.prototype.peek=function(){return this.nodes[0]},e.prototype.contains=function(e){return this.nodes.indexOf(e)!==-1},e.prototype.replace=function(e){return a(this.nodes,e,this.cmp)},e.prototype.pushpop=function(e){return u(this.nodes,e,this.cmp)},e.prototype.heapify=function(){return i(this.nodes,this.cmp)},e.prototype.updateItem=function(e){return p(this.nodes,e,this.cmp)},e.prototype.clear=function(){return this.nodes=[]},e.prototype.empty=function(){return this.nodes.length===0},e.prototype.size=function(){return this.nodes.length},e.prototype.clone=function(){var t;return t=new e,t.nodes=this.nodes.slice(0),t},e.prototype.toArray=function(){return this.nodes.slice(0)},e.prototype.insert=e.prototype.push,e.prototype.remove=e.prototype.pop,e.prototype.top=e.prototype.peek,e.prototype.front=e.prototype.peek,e.prototype.has=e.prototype.contains,e.prototype.copy=e.prototype.clone,e}(),(typeof t!="undefined"&&t!==null?t.exports:void 0)?t.exports=e:window.Heap=e}).call(this)}),e.define("/core/Util.js",function(e,t,n,r,i){function s(e){var t=[[e.x,e.y]];while(e.parent)e=e.parent,t.push([e.x,e.y]);return t.reverse()}function o(e,t){var n=s(e),r=s(t);return n.concat(r.reverse())}function u(e){var t,n=0,r,i,s,o;for(t=1;t<e.length;++t)r=e[t-1],i=e[t],s=r[0]-i[0],o=r[1]-i[1],n+=Math.sqrt(s*s+o*o);return n}function a(e,t,n,r){var i=Math.abs,s=[],o,u,a,f,l,c;a=i(n-e),f=i(r-t),o=e<n?1:-1,u=t<r?1:-1,l=a-f;for(;;){s.push([e,t]);if(e===n&&t===r)break;c=2*l,c>-f&&(l-=f,e+=o),c<a&&(l+=a,t+=u)}return s}function f(e,t){var n=t.length,r=t[0][0],i=t[0][1],s=t[n-1][0],o=t[n-1][1],u,f,l,c,h,p,d,v,m,g,y,b,w;u=r,f=i,h=t[1][0],p=t[1][1],d=[[u,f]];for(v=2;v<n;++v){g=t[v],l=g[0],c=g[1],y=a(u,f,l,c),w=!1;for(m=1;m<y.length;++m){b=y[m];if(!e.isWalkableAt(b[0],b[1])){w=!0,d.push([h,p]),u=h,f=p;break}}w||(h=l,p=c)}return d.push([s,o]),d}n.backtrace=s,n.biBacktrace=o,n.pathLength=u,n.getLine=a,n.smoothenPath=f}),e.define("/core/Heuristic.js",function(e,t,n,r,i){t.exports={manhattan:function(e,t){return e+t},euclidean:function(e,t){return Math.sqrt(e*e+t*t)},chebyshev:function(e,t){return Math.max(e,t)}}}),e.define("/finders/AStarFinder.js",function(e,t,n,r,i){function a(e){e=e||{},this.allowDiagonal=e.allowDiagonal,this.dontCrossCorners=e.dontCrossCorners,this.heuristic=e.heuristic||u.manhattan}var s=e("../core/Heap"),o=e("../core/Util"),u=e("../core/Heuristic");a.prototype.findPath=function(e,t,n,r,i){var u=new s(function(e,t){return e.f-t.f}),a=i.getNodeAt(e,t),f=i.getNodeAt(n,r),l=this.heuristic,c=this.allowDiagonal,h=this.dontCrossCorners,p=Math.abs,d=Math.SQRT2,v,m,g,y,b,w,E,S;a.g=0,a.f=0,u.push(a),a.opened=!0;while(!u.empty()){v=u.pop(),v.closed=!0;if(v===f)return o.backtrace(f);m=i.getNeighbors(v,c,h);for(y=0,b=m.length;y<b;++y){g=m[y];if(g.closed)continue;w=g.x,E=g.y,S=v.g+(w-v.x===0||E-v.y===0?1:d);if(!g.opened||S<g.g)g.g=S,g.h=g.h||l(p(w-n),p(E-r)),g.f=g.g+g.h,g.parent=v,g.opened?u.updateItem(g):(u.push(g),g.opened=!0)}}return[]},t.exports=a}),e.define("/finders/BestFirstFinder.js",function(e,t,n,r,i){function o(e){s.call(this,e);var t=this.heuristic;this.heuristic=function(e,n){return t(e,n)*1e6}}var s=e("./AStarFinder");o.prototype=new s,o.prototype.constructor=o,t.exports=o}),e.define("/finders/BreadthFirstFinder.js",function(e,t,n,r,i){function o(e){e=e||{},this.allowDiagonal=e.allowDiagonal,this.dontCrossCorners=e.dontCrossCorners}var s=e("../core/Util");o.prototype.findPath=function(e,t,n,r,i){var o=[],u=this.allowDiagonal,a=this.dontCrossCorners,f=i.getNodeAt(e,t),l=i.getNodeAt(n,r),c,h,p,d,v;o.push(f),f.opened=!0;while(o.length){p=o.shift(),p.closed=!0;if(p===l)return s.backtrace(l);c=i.getNeighbors(p,u,a);for(d=0,v=c.length;d<v;++d){h=c[d];if(h.closed||h.opened)continue;o.push(h),h.opened=!0,h.parent=p}}return[]},t.exports=o}),e.define("/finders/DijkstraFinder.js",function(e,t,n,r,i){function o(e){s.call(this,e),this.heuristic=function(e,t){return 0}}var s=e("./AStarFinder");o.prototype=new s,o.prototype.constructor=o,t.exports=o}),e.define("/finders/BiAStarFinder.js",function(e,t,n,r,i){function a(e){e=e||{},this.allowDiagonal=e.allowDiagonal,this.dontCrossCorners=e.dontCrossCorners,this.heuristic=e.heuristic||u.manhattan}var s=e("../core/Heap"),o=e("../core/Util"),u=e("../core/Heuristic");a.prototype.findPath=function(e,t,n,r,i){var u=function(e,t){return e.f-t.f},a=new s(u),f=new s(u),l=i.getNodeAt(e,t),c=i.getNodeAt(n,r),h=this.heuristic,p=this.allowDiagonal,d=this.dontCrossCorners,v=Math.abs,m=Math.SQRT2,g,y,b,w,E,S,x,T,N=1,C=2;l.g=0,l.f=0,a.push(l),l.opened=N,c.g=0,c.f=0,f.push(c),c.opened=C;while(!a.empty()&&!f.empty()){g=a.pop(),g.closed=!0,y=i.getNeighbors(g,p,d);for(w=0,E=y.length;w<E;++w){b=y[w];if(b.closed)continue;if(b.opened===C)return o.biBacktrace(g,b);S=b.x,x=b.y,T=g.g+(S-g.x===0||x-g.y===0?1:m);if(!b.opened||T<b.g)b.g=T,b.h=b.h||h(v(S-n),v(x-r)),b.f=b.g+b.h,b.parent=g,b.opened?a.updateItem(b):(a.push(b),b.opened=N)}g=f.pop(),g.closed=!0,y=i.getNeighbors(g,p,d);for(w=0,E=y.length;w<E;++w){b=y[w];if(b.closed)continue;if(b.opened===N)return o.biBacktrace(b,g);S=b.x,x=b.y,T=g.g+(S-g.x===0||x-g.y===0?1:m);if(!b.opened||T<b.g)b.g=T,b.h=b.h||h(v(S-e),v(x-t)),b.f=b.g+b.h,b.parent=g,b.opened?f.updateItem(b):(f.push(b),b.opened=C)}}return[]},t.exports=a}),e.define("/finders/BiBestFirstFinder.js",function(e,t,n,r,i){function o(e){s.call(this,e);var t=this.heuristic;this.heuristic=function(e,n){return t(e,n)*1e6}}var s=e("./BiAStarFinder");o.prototype=new s,o.prototype.constructor=o,t.exports=o}),e.define("/finders/BiBreadthFirstFinder.js",function(e,t,n,r,i){function o(e){e=e||{},this.allowDiagonal=e.allowDiagonal,this.dontCrossCorners=e.dontCrossCorners}var s=e("../core/Util");o.prototype.findPath=function(e,t,n,r,i){var o=i.getNodeAt(e,t),u=i.getNodeAt(n,r),a=[],f=[],l,c,h,p=this.allowDiagonal,d=this.dontCrossCorners,v=0,m=1,g,y;a.push(o),o.opened=!0,o.by=v,f.push(u),u.opened=!0,u.by=m;while(a.length&&f.length){h=a.shift(),h.closed=!0,l=i.getNeighbors(h,p,d);for(g=0,y=l.length;g<y;++g){c=l[g];if(c.closed)continue;if(c.opened){if(c.by===m)return s.biBacktrace(h,c);continue}a.push(c),c.parent=h,c.opened=!0,c.by=v}h=f.shift(),h.closed=!0,l=i.getNeighbors(h,p,d);for(g=0,y=l.length;g<y;++g){c=l[g];if(c.closed)continue;if(c.opened){if(c.by===v)return s.biBacktrace(c,h);continue}f.push(c),c.parent=h,c.opened=!0,c.by=m}}return[]},t.exports=o}),e.define("/finders/BiDijkstraFinder.js",function(e,t,n,r,i){function o(e){s.call(this,e),this.heuristic=function(e,t){return 0}}var s=e("./BiAStarFinder");o.prototype=new s,o.prototype.constructor=o,t.exports=o}),e.define("/finders/JumpPointFinder.js",function(e,t,n,r,i){function a(e){e=e||{},this.heuristic=e.heuristic||u.manhattan}var s=e("../core/Heap"),o=e("../core/Util"),u=e("../core/Heuristic");a.prototype.findPath=function(e,t,n,r,i){var u=this.openList=new s(function(e,t){return e.f-t.f}),a=this.startNode=i.getNodeAt(e,t),f=this.endNode=i.getNodeAt(n,r),l;this.grid=i,a.g=0,a.f=0,u.push(a),a.opened=!0;while(!u.empty()){l=u.pop(),l.closed=!0;if(l===f)return o.backtrace(f);this._identifySuccessors(l)}return[]},a.prototype._identifySuccessors=function(e){var t=this.grid,n=this.heuristic,r=this.openList,i=this.endNode.x,s=this.endNode.y,o,a,f,l,c,h=e.x,p=e.y,d,v,m,g,y,b,w,E=Math.abs,S=Math.max;o=this._findNeighbors(e);for(l=0,c=o.length;l<c;++l){a=o[l],f=this._jump(a[0],a[1],h,p);if(f){d=f[0],v=f[1],w=t.getNodeAt(d,v);if(w.closed)continue;y=u.euclidean(E(d-h),E(v-p)),b=e.g+y;if(!w.opened||b<w.g)w.g=b,w.h=w.h||n(E(d-i),E(v-s)),w.f=w.g+w.h,w.parent=e,w.opened?r.updateItem(w):(r.push(w),w.opened=!0)}}},a.prototype._jump=function(e,t,n,r){var i=this.grid,s=e-n,o=t-r,u,a;if(!i.isWalkableAt(e,t))return null;if(i.getNodeAt(e,t)===this.endNode)return[e,t];if(s!==0&&o!==0){if(i.isWalkableAt(e-s,t+o)&&!i.isWalkableAt(e-s,t)||i.isWalkableAt(e+s,t-o)&&!i.isWalkableAt(e,t-o))return[e,t]}else if(s!==0){if(i.isWalkableAt(e+s,t+1)&&!i.isWalkableAt(e,t+1)||i.isWalkableAt(e+s,t-1)&&!i.isWalkableAt(e,t-1))return[e,t]}else if(i.isWalkableAt(e+1,t+o)&&!i.isWalkableAt(e+1,t)||i.isWalkableAt(e-1,t+o)&&!i.isWalkableAt(e-1,t))return[e,t];if(s!==0&&o!==0){u=this._jump(e+s,t,e,t),a=this._jump(e,t+o,e,t);if(u||a)return[e,t]}return i.isWalkableAt(e+s,t)||i.isWalkableAt(e,t+o)?this._jump(e+s,t+o,e,t):null},a.prototype._findNeighbors=function(e){var t=e.parent,n=e.x,r=e.y,i=this.grid,s,o,u,a,f,l,c=[],h,p,d,v;if(t)s=t.x,o=t.y,f=(n-s)/Math.max(Math.abs(n-s),1),l=(r-o)/Math.max(Math.abs(r-o),1),f!==0&&l!==0?(i.isWalkableAt(n,r+l)&&c.push([n,r+l]),i.isWalkableAt(n+f,r)&&c.push([n+f,r]),(i.isWalkableAt(n,r+l)||i.isWalkableAt(n+f,r))&&c.push([n+f,r+l]),!i.isWalkableAt(n-f,r)&&i.isWalkableAt(n,r+l)&&c.push([n-f,r+l]),!i.isWalkableAt(n,r-l)&&i.isWalkableAt(n+f,r)&&c.push([n+f,r-l])):f===0?i.isWalkableAt(n,r+l)&&(i.isWalkableAt(n,r+l)&&c.push([n,r+l]),i.isWalkableAt(n+1,r)||c.push([n+1,r+l]),i.isWalkableAt(n-1,r)||c.push([n-1,r+l])):i.isWalkableAt(n+f,r)&&(i.isWalkableAt(n+f,r)&&c.push([n+f,r]),i.isWalkableAt(n,r+1)||c.push([n+f,r+1]),i.isWalkableAt(n,r-1)||c.push([n+f,r-1]));else{h=i.getNeighbors(e,!0);for(d=0,v=h.length;d<v;++d)p=h[d],c.push([p.x,p.y])}return c},t.exports=a}),e.define("/PathFinding.js",function(e,t,n,r,i){t.exports={Node:e("./core/Node"),Grid:e("./core/Grid"),Heap:e("./core/Heap"),Util:e("./core/Util"),Heuristic:e("./core/Heuristic"),AStarFinder:e("./finders/AStarFinder"),BestFirstFinder:e("./finders/BestFirstFinder"),BreadthFirstFinder:e("./finders/BreadthFirstFinder"),DijkstraFinder:e("./finders/DijkstraFinder"),BiAStarFinder:e("./finders/BiAStarFinder"),BiBestFirstFinder:e("./finders/BiBestFirstFinder"),BiBreadthFirstFinder:e("./finders/BiBreadthFirstFinder"),BiDijkstraFinder:e("./finders/BiDijkstraFinder"),JumpPointFinder:e("./finders/JumpPointFinder")}}),e("/PathFinding.js"),e("/PathFinding")}()'},"./node_modules/raw-loader/index.js!./src/lib/raphael.exec.js":t=>{t.exports='// ┌────────────────────────────────────────────────────────────────────┐ \\\\// │ Raphaël 2.1.0 - JavaScript Vector Library                          │ \\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Copyright © 2008-2012 Dmitry Baranovskiy (http://raphaeljs.com)    │ \\\\\n// │ Copyright © 2008-2012 Sencha Labs (http://sencha.com)              │ \\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license.│ \\\\\n// └────────────────────────────────────────────────────────────────────┘ \\\\\n\n// ┌──────────────────────────────────────────────────────────────────────────────────────┐ \\\\\n// │ Eve 0.3.4 - JavaScript Events Library                                                │ \\\\\n// ├──────────────────────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Copyright (c) 2008-2011 Dmitry Baranovskiy (http://dmitry.baranovskiy.com/)          │ \\\\\n// │ Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license. │ \\\\\n// └──────────────────────────────────────────────────────────────────────────────────────┘ \\\\\n\n// THIS FILES IS PATCHED BY FREEGROUP\n// you can\'t replace this file with a new version without migrate all changes\n// tagged with "FREEGROUP"\n//\n// Licensed under the Apache License, Version 2.0 (the "License");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an "AS IS" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ┌────────────────────────────────────────────────────────────┐ \\\\\n// │ Eve 0.4.2 - JavaScript Events Library                      │ \\\\\n// ├────────────────────────────────────────────────────────────┤ \\\\\n// │ Author Dmitry Baranovskiy (http://dmitry.baranovskiy.com/) │ \\\\\n// └────────────────────────────────────────────────────────────┘ \\\\\n(function (glob, factory) {\n  if (typeof define === "function" && define.amd) {\n    define("eve", function () {\n      return factory();\n    });\n  } else if (typeof exports === "object") {\n    module.exports = factory();\n  } else {\n    glob.eve = factory();\n  }\n})(this, function () {\n  var version = "0.4.2",\n    has = "hasOwnProperty",\n    separator = /[\\.\\/]/,\n    wildcard = "*",\n    fun = function () {},\n    numsort = function (a, b) {\n      return a - b;\n    },\n    current_event,\n    stop,\n    events = { n: {} },\n    /*\\\n     * eve\n     [ method ]\n\n     * Fires event with given `name`, given scope and other parameters.\n\n     > Arguments\n\n     - name (string) name of the *event*, dot (`.`) or slash (`/`) separated\n     - scope (object) context for the event handlers\n     - varargs (...) the rest of arguments will be sent to event handlers\n\n     = (object) array of returned values from the listeners\n     \\*/\n    eve = function (name, scope) {\n      name = String(name);\n      var e = events,\n        oldstop = stop,\n        args = Array.prototype.slice.call(arguments, 2),\n        listeners = eve.listeners(name),\n        z = 0,\n        f = false,\n        l,\n        indexed = [],\n        queue = {},\n        out = [],\n        ce = current_event,\n        errors = [];\n      current_event = name;\n      stop = 0;\n      for (var i = 0, ii = listeners.length; i < ii; i++)\n        if ("zIndex" in listeners[i]) {\n          indexed.push(listeners[i].zIndex);\n          if (listeners[i].zIndex < 0) {\n            queue[listeners[i].zIndex] = listeners[i];\n          }\n        }\n      indexed.sort(numsort);\n      while (indexed[z] < 0) {\n        l = queue[indexed[z++]];\n        out.push(l.apply(scope, args));\n        if (stop) {\n          stop = oldstop;\n          return out;\n        }\n      }\n      for (i = 0; i < ii; i++) {\n        l = listeners[i];\n        if ("zIndex" in l) {\n          if (l.zIndex == indexed[z]) {\n            out.push(l.apply(scope, args));\n            if (stop) {\n              break;\n            }\n            do {\n              z++;\n              l = queue[indexed[z]];\n              l && out.push(l.apply(scope, args));\n              if (stop) {\n                break;\n              }\n            } while (l);\n          } else {\n            queue[l.zIndex] = l;\n          }\n        } else {\n          out.push(l.apply(scope, args));\n          if (stop) {\n            break;\n          }\n        }\n      }\n      stop = oldstop;\n      current_event = ce;\n      return out.length ? out : null;\n    };\n  // Undocumented. Debug only.\n  eve._events = events;\n  /*\\\n     * eve.listeners\n     [ method ]\n\n     * Internal method which gives you array of all event handlers that will be triggered by the given `name`.\n\n     > Arguments\n\n     - name (string) name of the event, dot (`.`) or slash (`/`) separated\n\n     = (array) array of event handlers\n     \\*/\n  eve.listeners = function (name) {\n    var names = name.split(separator),\n      e = events,\n      item,\n      items,\n      k,\n      i,\n      ii,\n      j,\n      jj,\n      nes,\n      es = [e],\n      out = [];\n    for (i = 0, ii = names.length; i < ii; i++) {\n      nes = [];\n      for (j = 0, jj = es.length; j < jj; j++) {\n        e = es[j].n;\n        items = [e[names[i]], e[wildcard]];\n        k = 2;\n        while (k--) {\n          item = items[k];\n          if (item) {\n            nes.push(item);\n            out = out.concat(item.f || []);\n          }\n        }\n      }\n      es = nes;\n    }\n    return out;\n  };\n\n  /*\\\n     * eve.on\n     [ method ]\n     **\n     * Binds given event handler with a given name. You can use wildcards “`*`” for the names:\n     | eve.on("*.under.*", f);\n     | eve("mouse.under.floor"); // triggers f\n     * Use @eve to trigger the listener.\n     **\n     > Arguments\n     **\n     - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n     - f (function) event handler function\n     **\n     = (function) returned function accepts a single numeric parameter that represents z-index of the handler. It is an optional feature and only used when you need to ensure that some subset of handlers will be invoked in a given order, despite of the order of assignment.\n     > Example:\n     | eve.on("mouse", eatIt)(2);\n     | eve.on("mouse", scream);\n     | eve.on("mouse", catchIt)(1);\n     * This will ensure that `catchIt()` function will be called before `eatIt()`.\n     *\n     * If you want to put your handler before non-indexed handlers, specify a negative value.\n     * Note: I assume most of the time you don’t need to worry about z-index, but it’s nice to have this feature “just in case”.\n     \\*/\n  eve.on = function (name, f) {\n    name = String(name);\n    if (typeof f != "function") {\n      return function () {};\n    }\n    var names = name.split(separator),\n      e = events;\n    for (var i = 0, ii = names.length; i < ii; i++) {\n      e = e.n;\n      e =\n        (e.hasOwnProperty(names[i]) && e[names[i]]) ||\n        (e[names[i]] = { n: {} });\n    }\n    e.f = e.f || [];\n    for (i = 0, ii = e.f.length; i < ii; i++)\n      if (e.f[i] == f) {\n        return fun;\n      }\n    e.f.push(f);\n    return function (zIndex) {\n      if (+zIndex == +zIndex) {\n        f.zIndex = +zIndex;\n      }\n    };\n  };\n  /*\\\n     * eve.f\n     [ method ]\n     **\n     * Returns function that will fire given event with optional arguments.\n     * Arguments that will be passed to the result function will be also\n     * concated to the list of final arguments.\n     | el.onclick = eve.f("click", 1, 2);\n     | eve.on("click", function (a, b, c) {\n     |     console.log(a, b, c); // 1, 2, [event object]\n     | });\n     > Arguments\n     - event (string) event name\n     - varargs (…) and any other arguments\n     = (function) possible event handler function\n     \\*/\n  eve.f = function (event) {\n    var attrs = [].slice.call(arguments, 1);\n    return function () {\n      eve.apply(\n        null,\n        [event, null].concat(attrs).concat([].slice.call(arguments, 0))\n      );\n    };\n  };\n  /*\\\n     * eve.stop\n     [ method ]\n     **\n     * Is used inside an event handler to stop the event, preventing any subsequent listeners from firing.\n     \\*/\n  eve.stop = function () {\n    stop = 1;\n  };\n  /*\\\n     * eve.nt\n     [ method ]\n     **\n     * Could be used inside event handler to figure out actual name of the event.\n     **\n     > Arguments\n     **\n     - subname (string) #optional subname of the event\n     **\n     = (string) name of the event, if `subname` is not specified\n     * or\n     = (boolean) `true`, if current event’s name contains `subname`\n     \\*/\n  eve.nt = function (subname) {\n    if (subname) {\n      return new RegExp("(?:\\\\.|\\\\/|^)" + subname + "(?:\\\\.|\\\\/|$)").test(\n        current_event\n      );\n    }\n    return current_event;\n  };\n  /*\\\n     * eve.nts\n     [ method ]\n     **\n     * Could be used inside event handler to figure out actual name of the event.\n     **\n     **\n     = (array) names of the event\n     \\*/\n  eve.nts = function () {\n    return current_event.split(separator);\n  };\n  /*\\\n     * eve.off\n     [ method ]\n     **\n     * Removes given function from the list of event listeners assigned to given name.\n     * If no arguments specified all the events will be cleared.\n     **\n     > Arguments\n     **\n     - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n     - f (function) event handler function\n     \\*/\n  /*\\\n     * eve.unbind\n     [ method ]\n     **\n     * See @eve.off\n     \\*/\n  eve.off = eve.unbind = function (name, f) {\n    if (!name) {\n      eve._events = events = { n: {} };\n      return;\n    }\n    var names = name.split(separator),\n      e,\n      key,\n      splice,\n      i,\n      ii,\n      j,\n      jj,\n      cur = [events];\n    for (i = 0, ii = names.length; i < ii; i++) {\n      for (j = 0; j < cur.length; j += splice.length - 2) {\n        splice = [j, 1];\n        e = cur[j].n;\n        if (names[i] != wildcard) {\n          if (e[names[i]]) {\n            splice.push(e[names[i]]);\n          }\n        } else {\n          for (key in e)\n            if (e[has](key)) {\n              splice.push(e[key]);\n            }\n        }\n        cur.splice.apply(cur, splice);\n      }\n    }\n    for (i = 0, ii = cur.length; i < ii; i++) {\n      e = cur[i];\n      while (e.n) {\n        if (f) {\n          if (e.f) {\n            for (j = 0, jj = e.f.length; j < jj; j++)\n              if (e.f[j] == f) {\n                e.f.splice(j, 1);\n                break;\n              }\n            !e.f.length && delete e.f;\n          }\n          for (key in e.n)\n            if (e.n[has](key) && e.n[key].f) {\n              var funcs = e.n[key].f;\n              for (j = 0, jj = funcs.length; j < jj; j++)\n                if (funcs[j] == f) {\n                  funcs.splice(j, 1);\n                  break;\n                }\n              !funcs.length && delete e.n[key].f;\n            }\n        } else {\n          delete e.f;\n          for (key in e.n)\n            if (e.n[has](key) && e.n[key].f) {\n              delete e.n[key].f;\n            }\n        }\n        e = e.n;\n      }\n    }\n  };\n  /*\\\n     * eve.once\n     [ method ]\n     **\n     * Binds given event handler with a given name to only run once then unbind itself.\n     | eve.once("login", f);\n     | eve("login"); // triggers f\n     | eve("login"); // no listeners\n     * Use @eve to trigger the listener.\n     **\n     > Arguments\n     **\n     - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n     - f (function) event handler function\n     **\n     = (function) same return function as @eve.on\n     \\*/\n  eve.once = function (name, f) {\n    var f2 = function () {\n      eve.unbind(name, f2);\n      return f.apply(this, arguments);\n    };\n    return eve.on(name, f2);\n  };\n  /*\\\n     * eve.version\n     [ property (string) ]\n     **\n     * Current version of the library.\n     \\*/\n  eve.version = version;\n  eve.toString = function () {\n    return "You are running Eve " + version;\n  };\n\n  return eve;\n});\n\n// ┌────────────────────────────────────────────────────────────────────┐ \\\\\n// │ Raphaël 2.1.4 - JavaScript Vector Library                      │ \\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Core Module                                                        │ \\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license.│ \\\\\n// └────────────────────────────────────────────────────────────────────┘ \\\\\n\n(function (glob, factory) {\n  if (typeof define === "function" && define.amd) {\n    define("raphael.core", ["eve"], function (eve) {\n      return factory(eve);\n    });\n  } else if (typeof exports === "object") {\n    module.exports = factory(require("eve"));\n  } else {\n    glob.Raphael = factory(glob.eve);\n  }\n})(this, function (eve) {\n  /*\\\n     * Raphael\n     [ method ]\n     **\n     * Creates a canvas object on which to draw.\n     * You must do this first, as all future calls to drawing methods\n     * from this instance will be bound to this canvas.\n     > Parameters\n     **\n     - container (HTMLElement|string) DOM element or its ID which is going to be a parent for drawing surface\n     - width (number)\n     - height (number)\n     - callback (function) #optional callback function which is going to be executed in the context of newly created paper\n     * or\n     - x (number)\n     - y (number)\n     - width (number)\n     - height (number)\n     - callback (function) #optional callback function which is going to be executed in the context of newly created paper\n     * or\n     - all (array) (first 3 or 4 elements in the array are equal to [containerID, width, height] or [x, y, width, height]. The rest are element descriptions in format {type: type, <attributes>}). See @Paper.add.\n     - callback (function) #optional callback function which is going to be executed in the context of newly created paper\n     * or\n     - onReadyCallback (function) function that is going to be called on DOM ready event. You can also subscribe to this event via Eve’s “DOMLoad” event. In this case method returns `undefined`.\n     = (object) @Paper\n     > Usage\n     | // Each of the following examples create a canvas\n     | // that is 320px wide by 200px high.\n     | // Canvas is created at the viewport’s 10,50 coordinate.\n     | var paper = Raphael(10, 50, 320, 200);\n     | // Canvas is created at the top left corner of the #notepad element\n     | // (or its top right corner in dir="rtl" elements)\n     | var paper = Raphael(document.getElementById("notepad"), 320, 200);\n     | // Same as above\n     | var paper = Raphael("notepad", 320, 200);\n     | // Image dump\n     | var set = Raphael(["notepad", 320, 200, {\n     |     type: "rect",\n     |     x: 10,\n     |     y: 10,\n     |     width: 25,\n     |     height: 25,\n     |     stroke: "#f00"\n     | }, {\n     |     type: "text",\n     |     x: 30,\n     |     y: 40,\n     |     text: "Dump"\n     | }]);\n     \\*/\n  function R(first) {\n    if (R.is(first, "function")) {\n      return loaded ? first() : eve.on("raphael.DOMload", first);\n    } else if (R.is(first, array)) {\n      return R._engine.create[apply](\n        R,\n        first.splice(0, 3 + R.is(first[0], nu))\n      ).add(first);\n    } else {\n      var args = Array.prototype.slice.call(arguments, 0);\n      if (R.is(args[args.length - 1], "function")) {\n        var f = args.pop();\n        return loaded\n          ? f.call(R._engine.create[apply](R, args))\n          : eve.on("raphael.DOMload", function () {\n              f.call(R._engine.create[apply](R, args));\n            });\n      } else {\n        return R._engine.create[apply](R, arguments);\n      }\n    }\n  }\n  R.version = "2.1.4";\n  R.eve = eve;\n  var loaded,\n    separator = /[, ]+/,\n    elements = { circle: 1, rect: 1, path: 1, ellipse: 1, text: 1, image: 1 },\n    formatrg = /\\{(\\d+)\\}/g,\n    proto = "prototype",\n    has = "hasOwnProperty",\n    g = {\n      doc: document,\n      win: window,\n    },\n    oldRaphael = {\n      was: Object.prototype[has].call(g.win, "Raphael"),\n      is: g.win.Raphael,\n    },\n    Paper = function () {\n      /*\\\n             * Paper.ca\n             [ property (object) ]\n             **\n             * Shortcut for @Paper.customAttributes\n             \\*/\n      /*\\\n             * Paper.customAttributes\n             [ property (object) ]\n             **\n             * If you have a set of attributes that you would like to represent\n             * as a function of some number you can do it easily with custom attributes:\n             > Usage\n             | paper.customAttributes.hue = function (num) {\n             |     num = num % 1;\n             |     return {fill: "hsb(" + num + ", 0.75, 1)"};\n             | };\n             | // Custom attribute “hue” will change fill\n             | // to be given hue with fixed saturation and brightness.\n             | // Now you can use it like this:\n             | var c = paper.circle(10, 10, 10).attr({hue: .45});\n             | // or even like this:\n             | c.animate({hue: 1}, 1e3);\n             |\n             | // You could also create custom attribute\n             | // with multiple parameters:\n             | paper.customAttributes.hsb = function (h, s, b) {\n             |     return {fill: "hsb(" + [h, s, b].join(",") + ")"};\n             | };\n             | c.attr({hsb: "0.5 .8 1"});\n             | c.animate({hsb: [1, 0, 0.5]}, 1e3);\n             \\*/\n      this.ca = this.customAttributes = {};\n    },\n    paperproto,\n    appendChild = "appendChild",\n    apply = "apply",\n    concat = "concat",\n    supportsTouch =\n      "ontouchstart" in g.win ||\n      (g.win.DocumentTouch && g.doc instanceof DocumentTouch), //taken from Modernizr touch test\n    E = "",\n    S = " ",\n    Str = String,\n    split = "split",\n    events =\n      "click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel"[\n        split\n      ](S),\n    touchMap = {\n      mousedown: "touchstart",\n      mousemove: "touchmove",\n      mouseup: "touchend",\n    },\n    lowerCase = Str.prototype.toLowerCase,\n    math = Math,\n    mmax = math.max,\n    mmin = math.min,\n    abs = math.abs,\n    pow = math.pow,\n    PI = math.PI,\n    nu = "number",\n    string = "string",\n    array = "array",\n    toString = "toString",\n    fillString = "fill",\n    objectToString = Object.prototype.toString,\n    paper = {},\n    push = "push",\n    ISURL = (R._ISURL = /^url\\([\'"]?(.+?)[\'"]?\\)$/i),\n    colourRegExp =\n      /^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|rgba?\\(\\s*([\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?(?:\\s*,\\s*[\\d\\.]+%?)?)\\s*\\)|hsba?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?)%?\\s*\\)|hsla?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?)%?\\s*\\))\\s*$/i,\n    isnan = { NaN: 1, Infinity: 1, "-Infinity": 1 },\n    bezierrg = /^(?:cubic-)?bezier\\(([^,]+),([^,]+),([^,]+),([^\\)]+)\\)/,\n    round = math.round,\n    setAttribute = "setAttribute",\n    toFloat = parseFloat,\n    toInt = parseInt,\n    upperCase = Str.prototype.toUpperCase,\n    availableAttrs = (R._availableAttrs = {\n      "arrow-end": "none",\n      "arrow-start": "none",\n      blur: 0,\n      "clip-rect": "0 0 1e9 1e9",\n      cursor: "default",\n      cx: 0,\n      cy: 0,\n      fill: "#fff",\n      "fill-opacity": 1,\n      font: \'10px "Arial"\',\n      "font-family": \'"Arial"\',\n      "font-size": "10",\n      "font-style": "normal",\n      "font-weight": 400,\n      gradient: 0,\n      height: 0,\n      href: "http://raphaeljs.com/",\n      "letter-spacing": 0,\n      opacity: 1,\n      path: "M0,0",\n      r: 0,\n      rx: 0,\n      ry: 0,\n      src: "",\n      stroke: "#000",\n      "stroke-dasharray": "",\n      "stroke-linecap": "butt",\n      "stroke-linejoin": "butt",\n      "stroke-miterlimit": 0,\n      "stroke-opacity": 1,\n      "stroke-width": 1,\n      "stroke-scale": false, // FreeGroup: draw2d enhancement\n      target: "_blank",\n      "text-anchor": "middle",\n      title: "Raphael",\n      transform: "",\n      width: 0,\n      x: 0,\n      y: 0,\n    }),\n    availableAnimAttrs = (R._availableAnimAttrs = {\n      blur: nu,\n      "clip-rect": "csv",\n      cx: nu,\n      cy: nu,\n      fill: "colour",\n      "fill-opacity": nu,\n      "font-size": nu,\n      height: nu,\n      opacity: nu,\n      path: "path",\n      r: nu,\n      rx: nu,\n      ry: nu,\n      stroke: "colour",\n      "stroke-opacity": nu,\n      "stroke-width": nu,\n      transform: "transform",\n      width: nu,\n      x: nu,\n      y: nu,\n    }),\n    whitespace =\n      /[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]/g,\n    commaSpaces =\n      /[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*/,\n    hsrg = { hs: 1, rg: 1 },\n    p2s = /,?([achlmqrstvxz]),?/gi,\n    pathCommand =\n      /([achlmrqstvz])[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)/gi,\n    tCommand =\n      /([rstm])[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)/gi,\n    pathValues =\n      /(-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*/gi,\n    radial_gradient = (R._radial_gradient =\n      /^r(?:\\(([^,]+?)[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*([^\\)]+?)\\))?/),\n    eldata = {},\n    sortByKey = function (a, b) {\n      return a.key - b.key;\n    },\n    sortByNumber = function (a, b) {\n      return toFloat(a) - toFloat(b);\n    },\n    fun = function () {},\n    pipe = function (x) {\n      return x;\n    },\n    rectPath = (R._rectPath = function (x, y, w, h, r) {\n      if (r) {\n        return [\n          ["M", x + r, y],\n          ["l", w - r * 2, 0],\n          ["a", r, r, 0, 0, 1, r, r],\n          ["l", 0, h - r * 2],\n          ["a", r, r, 0, 0, 1, -r, r],\n          ["l", r * 2 - w, 0],\n          ["a", r, r, 0, 0, 1, -r, -r],\n          ["l", 0, r * 2 - h],\n          ["a", r, r, 0, 0, 1, r, -r],\n          ["z"],\n        ];\n      }\n      return [["M", x, y], ["l", w, 0], ["l", 0, h], ["l", -w, 0], ["z"]];\n    }),\n    ellipsePath = function (x, y, rx, ry) {\n      if (ry == null) {\n        ry = rx;\n      }\n      return [\n        ["M", x, y],\n        ["m", 0, -ry],\n        ["a", rx, ry, 0, 1, 1, 0, 2 * ry],\n        ["a", rx, ry, 0, 1, 1, 0, -2 * ry],\n        ["z"],\n      ];\n    },\n    getPath = (R._getPath = {\n      path: function (el) {\n        return el.attr("path");\n      },\n      circle: function (el) {\n        var a = el.attrs;\n        return ellipsePath(a.cx, a.cy, a.r);\n      },\n      ellipse: function (el) {\n        var a = el.attrs;\n        return ellipsePath(a.cx, a.cy, a.rx, a.ry);\n      },\n      rect: function (el) {\n        var a = el.attrs;\n        return rectPath(a.x, a.y, a.width, a.height, a.r);\n      },\n      image: function (el) {\n        var a = el.attrs;\n        return rectPath(a.x, a.y, a.width, a.height);\n      },\n      text: function (el) {\n        var bbox = el._getBBox();\n        return rectPath(bbox.x, bbox.y, bbox.width, bbox.height);\n      },\n      set: function (el) {\n        var bbox = el._getBBox();\n        return rectPath(bbox.x, bbox.y, bbox.width, bbox.height);\n      },\n    }),\n    /*\\\n     * Raphael.mapPath\n     [ method ]\n     **\n     * Transform the path string with given matrix.\n     > Parameters\n     - path (string) path string\n     - matrix (object) see @Matrix\n     = (string) transformed path string\n     \\*/\n    mapPath = (R.mapPath = function (path, matrix) {\n      if (!matrix) {\n        return path;\n      }\n      var x, y, i, j, ii, jj, pathi;\n      path = path2curve(path);\n      for (i = 0, ii = path.length; i < ii; i++) {\n        pathi = path[i];\n        for (j = 1, jj = pathi.length; j < jj; j += 2) {\n          x = matrix.x(pathi[j], pathi[j + 1]);\n          y = matrix.y(pathi[j], pathi[j + 1]);\n          pathi[j] = x;\n          pathi[j + 1] = y;\n        }\n      }\n      return path;\n    });\n\n  R._g = g;\n  /*\\\n     * Raphael.type\n     [ property (string) ]\n     **\n     * Can be “SVG”, “VML” or empty, depending on browser support.\n     \\*/\n  R.type =\n    g.win.SVGAngle ||\n    g.doc.implementation.hasFeature(\n      "http://www.w3.org/TR/SVG11/feature#BasicStructure",\n      "1.1"\n    )\n      ? "SVG"\n      : "VML";\n  if (R.type == "VML") {\n    var d = g.doc.createElement("div"),\n      b;\n    d.innerHTML = \'<v:shape adj="1"/>\';\n    b = d.firstChild;\n    b.style.behavior = "url(#default#VML)";\n    if (!(b && typeof b.adj == "object")) {\n      return (R.type = E);\n    }\n    d = null;\n  }\n  /*\\\n     * Raphael.svg\n     [ property (boolean) ]\n     **\n     * `true` if browser supports SVG.\n     \\*/\n  /*\\\n     * Raphael.vml\n     [ property (boolean) ]\n     **\n     * `true` if browser supports VML.\n     \\*/\n  R.svg = !(R.vml = R.type == "VML");\n  R._Paper = Paper;\n  /*\\\n     * Raphael.fn\n     [ property (object) ]\n     **\n     * You can add your own method to the canvas. For example if you want to draw a pie chart,\n     * you can create your own pie chart function and ship it as a Raphaël plugin. To do this\n     * you need to extend the `Raphael.fn` object. You should modify the `fn` object before a\n     * Raphaël instance is created, otherwise it will take no effect. Please note that the\n     * ability for namespaced plugins was removed in Raphael 2.0. It is up to the plugin to\n     * ensure any namespacing ensures proper context.\n     > Usage\n     | Raphael.fn.arrow = function (x1, y1, x2, y2, size) {\n     |     return this.path( ... );\n     | };\n     | // or create namespace\n     | Raphael.fn.mystuff = {\n     |     arrow: function () {…},\n     |     star: function () {…},\n     |     // etc…\n     | };\n     | var paper = Raphael(10, 10, 630, 480);\n     | // then use it\n     | paper.arrow(10, 10, 30, 30, 5).attr({fill: "#f00"});\n     | paper.mystuff.arrow();\n     | paper.mystuff.star();\n     \\*/\n  R.fn = paperproto = Paper.prototype = R.prototype;\n  R._id = 0;\n  R._oid = 0;\n  /*\\\n     * Raphael.is\n     [ method ]\n     **\n     * Handful of replacements for `typeof` operator.\n     > Parameters\n     - o (…) any object or primitive\n     - type (string) name of the type, i.e. “string”, “function”, “number”, etc.\n     = (boolean) is given value is of given type\n     \\*/\n  R.is = function (o, type) {\n    type = lowerCase.call(type);\n    if (type == "finite") {\n      return !isnan[has](+o);\n    }\n    if (type == "array") {\n      return o instanceof Array;\n    }\n    return (\n      (type == "null" && o === null) ||\n      (type == typeof o && o !== null) ||\n      (type == "object" && o === Object(o)) ||\n      (type == "array" && Array.isArray && Array.isArray(o)) ||\n      objectToString.call(o).slice(8, -1).toLowerCase() == type\n    );\n  };\n\n  function clone(obj) {\n    if (typeof obj == "function" || Object(obj) !== obj) {\n      return obj;\n    }\n    var res = new obj.constructor();\n    for (var key in obj)\n      if (obj[has](key)) {\n        res[key] = clone(obj[key]);\n      }\n    return res;\n  }\n\n  /*\\\n     * Raphael.angle\n     [ method ]\n     **\n     * Returns angle between two or three points\n     > Parameters\n     - x1 (number) x coord of first point\n     - y1 (number) y coord of first point\n     - x2 (number) x coord of second point\n     - y2 (number) y coord of second point\n     - x3 (number) #optional x coord of third point\n     - y3 (number) #optional y coord of third point\n     = (number) angle in degrees.\n     \\*/\n  R.angle = function (x1, y1, x2, y2, x3, y3) {\n    if (x3 == null) {\n      var x = x1 - x2,\n        y = y1 - y2;\n      if (!x && !y) {\n        return 0;\n      }\n      return (180 + (math.atan2(-y, -x) * 180) / PI + 360) % 360;\n    } else {\n      return R.angle(x1, y1, x3, y3) - R.angle(x2, y2, x3, y3);\n    }\n  };\n  /*\\\n     * Raphael.rad\n     [ method ]\n     **\n     * Transform angle to radians\n     > Parameters\n     - deg (number) angle in degrees\n     = (number) angle in radians.\n     \\*/\n  R.rad = function (deg) {\n    return ((deg % 360) * PI) / 180;\n  };\n  /*\\\n     * Raphael.deg\n     [ method ]\n     **\n     * Transform angle to degrees\n     > Parameters\n     - rad (number) angle in radians\n     = (number) angle in degrees.\n     \\*/\n  R.deg = function (rad) {\n    return Math.round((((rad * 180) / PI) % 360) * 1000) / 1000;\n  };\n  /*\\\n     * Raphael.snapTo\n     [ method ]\n     **\n     * Snaps given value to given grid.\n     > Parameters\n     - values (array|number) given array of values or step of the grid\n     - value (number) value to adjust\n     - tolerance (number) #optional tolerance for snapping. Default is `10`.\n     = (number) adjusted value.\n     \\*/\n  R.snapTo = function (values, value, tolerance) {\n    tolerance = R.is(tolerance, "finite") ? tolerance : 10;\n    if (R.is(values, array)) {\n      var i = values.length;\n      while (i--)\n        if (abs(values[i] - value) <= tolerance) {\n          return values[i];\n        }\n    } else {\n      values = +values;\n      var rem = value % values;\n      if (rem < tolerance) {\n        return value - rem;\n      }\n      if (rem > values - tolerance) {\n        return value - rem + values;\n      }\n    }\n    return value;\n  };\n\n  /*\\\n     * Raphael.createUUID\n     [ method ]\n     **\n     * Returns RFC4122, version 4 ID\n     \\*/\n  var createUUID = (R.createUUID = (function (uuidRegEx, uuidReplacer) {\n    return function () {\n      return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"\n        .replace(uuidRegEx, uuidReplacer)\n        .toUpperCase();\n    };\n  })(/[xy]/g, function (c) {\n    var r = (math.random() * 16) | 0,\n      v = c == "x" ? r : (r & 3) | 8;\n    return v.toString(16);\n  }));\n\n  /*\\\n     * Raphael.setWindow\n     [ method ]\n     **\n     * Used when you need to draw in `&lt;iframe>`. Switched window to the iframe one.\n     > Parameters\n     - newwin (window) new window object\n     \\*/\n  R.setWindow = function (newwin) {\n    eve("raphael.setWindow", R, g.win, newwin);\n    g.win = newwin;\n    g.doc = g.win.document;\n    if (R._engine.initWin) {\n      R._engine.initWin(g.win);\n    }\n  };\n  var toHex = function (color) {\n      if (R.vml) {\n        // http://dean.edwards.name/weblog/2009/10/convert-any-colour-value-to-hex-in-msie/\n        var trim = /^\\s+|\\s+$/g;\n        var bod;\n        try {\n          var docum = new ActiveXObject("htmlfile");\n          docum.write("<body>");\n          docum.close();\n          bod = docum.body;\n        } catch (e) {\n          bod = createPopup().document.body;\n        }\n        var range = bod.createTextRange();\n        toHex = cacher(function (color) {\n          try {\n            bod.style.color = Str(color).replace(trim, E);\n            var value = range.queryCommandValue("ForeColor");\n            value =\n              ((value & 255) << 16) |\n              (value & 65280) |\n              ((value & 16711680) >>> 16);\n            return "#" + ("000000" + value.toString(16)).slice(-6);\n          } catch (e) {\n            return "none";\n          }\n        });\n      } else {\n        var i = g.doc.createElement("i");\n        i.title = "Rapha\\xebl Colour Picker";\n        i.style.display = "none";\n        g.doc.body.appendChild(i);\n        toHex = cacher(function (color) {\n          i.style.color = color;\n          return g.doc.defaultView\n            .getComputedStyle(i, E)\n            .getPropertyValue("color");\n        });\n      }\n      return toHex(color);\n    },\n    hsbtoString = function () {\n      return "hsb(" + [this.h, this.s, this.b] + ")";\n    },\n    hsltoString = function () {\n      return "hsl(" + [this.h, this.s, this.l] + ")";\n    },\n    rgbtoString = function () {\n      return this.hex;\n    },\n    prepareRGB = function (r, g, b) {\n      if (g == null && R.is(r, "object") && "r" in r && "g" in r && "b" in r) {\n        b = r.b;\n        g = r.g;\n        r = r.r;\n      }\n      if (g == null && R.is(r, string)) {\n        var clr = R.getRGB(r);\n        r = clr.r;\n        g = clr.g;\n        b = clr.b;\n      }\n      if (r > 1 || g > 1 || b > 1) {\n        r /= 255;\n        g /= 255;\n        b /= 255;\n      }\n\n      return [r, g, b];\n    },\n    packageRGB = function (r, g, b, o) {\n      r *= 255;\n      g *= 255;\n      b *= 255;\n      var rgb = {\n        r: r,\n        g: g,\n        b: b,\n        hex: R.rgb(r, g, b),\n        toString: rgbtoString,\n      };\n      R.is(o, "finite") && (rgb.opacity = o);\n      return rgb;\n    };\n\n  /*\\\n     * Raphael.color\n     [ method ]\n     **\n     * Parses the color string and returns object with all values for the given color.\n     > Parameters\n     - clr (string) color string in one of the supported formats (see @Raphael.getRGB)\n     = (object) Combined RGB & HSB object in format:\n     o {\n     o     r (number) red,\n     o     g (number) green,\n     o     b (number) blue,\n     o     hex (string) color in HTML/CSS format: #••••••,\n     o     error (boolean) `true` if string can’t be parsed,\n     o     h (number) hue,\n     o     s (number) saturation,\n     o     v (number) value (brightness),\n     o     l (number) lightness\n     o }\n     \\*/\n  R.color = function (clr) {\n    var rgb;\n    if (R.is(clr, "object") && "h" in clr && "s" in clr && "b" in clr) {\n      rgb = R.hsb2rgb(clr);\n      clr.r = rgb.r;\n      clr.g = rgb.g;\n      clr.b = rgb.b;\n      clr.hex = rgb.hex;\n    } else if (R.is(clr, "object") && "h" in clr && "s" in clr && "l" in clr) {\n      rgb = R.hsl2rgb(clr);\n      clr.r = rgb.r;\n      clr.g = rgb.g;\n      clr.b = rgb.b;\n      clr.hex = rgb.hex;\n    } else {\n      if (R.is(clr, "string")) {\n        clr = R.getRGB(clr);\n      }\n      if (R.is(clr, "object") && "r" in clr && "g" in clr && "b" in clr) {\n        rgb = R.rgb2hsl(clr);\n        clr.h = rgb.h;\n        clr.s = rgb.s;\n        clr.l = rgb.l;\n        rgb = R.rgb2hsb(clr);\n        clr.v = rgb.b;\n      } else {\n        clr = { hex: "none" };\n        clr.r = clr.g = clr.b = clr.h = clr.s = clr.v = clr.l = -1;\n      }\n    }\n    clr.toString = rgbtoString;\n    return clr;\n  };\n  /*\\\n     * Raphael.hsb2rgb\n     [ method ]\n     **\n     * Converts HSB values to RGB object.\n     > Parameters\n     - h (number) hue\n     - s (number) saturation\n     - v (number) value or brightness\n     = (object) RGB object in format:\n     o {\n     o     r (number) red,\n     o     g (number) green,\n     o     b (number) blue,\n     o     hex (string) color in HTML/CSS format: #••••••\n     o }\n     \\*/\n  R.hsb2rgb = function (h, s, v, o) {\n    if (this.is(h, "object") && "h" in h && "s" in h && "b" in h) {\n      v = h.b;\n      s = h.s;\n      o = h.o;\n      h = h.h;\n    }\n    h *= 360;\n    var R, G, B, X, C;\n    h = (h % 360) / 60;\n    C = v * s;\n    X = C * (1 - abs((h % 2) - 1));\n    R = G = B = v - C;\n\n    h = ~~h;\n    R += [C, X, 0, 0, X, C][h];\n    G += [X, C, C, X, 0, 0][h];\n    B += [0, 0, X, C, C, X][h];\n    return packageRGB(R, G, B, o);\n  };\n  /*\\\n     * Raphael.hsl2rgb\n     [ method ]\n     **\n     * Converts HSL values to RGB object.\n     > Parameters\n     - h (number) hue\n     - s (number) saturation\n     - l (number) luminosity\n     = (object) RGB object in format:\n     o {\n     o     r (number) red,\n     o     g (number) green,\n     o     b (number) blue,\n     o     hex (string) color in HTML/CSS format: #••••••\n     o }\n     \\*/\n  R.hsl2rgb = function (h, s, l, o) {\n    if (this.is(h, "object") && "h" in h && "s" in h && "l" in h) {\n      l = h.l;\n      s = h.s;\n      h = h.h;\n    }\n    if (h > 1 || s > 1 || l > 1) {\n      h /= 360;\n      s /= 100;\n      l /= 100;\n    }\n    h *= 360;\n    var R, G, B, X, C;\n    h = (h % 360) / 60;\n    C = 2 * s * (l < 0.5 ? l : 1 - l);\n    X = C * (1 - abs((h % 2) - 1));\n    R = G = B = l - C / 2;\n\n    h = ~~h;\n    R += [C, X, 0, 0, X, C][h];\n    G += [X, C, C, X, 0, 0][h];\n    B += [0, 0, X, C, C, X][h];\n    return packageRGB(R, G, B, o);\n  };\n  /*\\\n     * Raphael.rgb2hsb\n     [ method ]\n     **\n     * Converts RGB values to HSB object.\n     > Parameters\n     - r (number) red\n     - g (number) green\n     - b (number) blue\n     = (object) HSB object in format:\n     o {\n     o     h (number) hue\n     o     s (number) saturation\n     o     b (number) brightness\n     o }\n     \\*/\n  R.rgb2hsb = function (r, g, b) {\n    b = prepareRGB(r, g, b);\n    r = b[0];\n    g = b[1];\n    b = b[2];\n\n    var H, S, V, C;\n    V = mmax(r, g, b);\n    C = V - mmin(r, g, b);\n    H =\n      C == 0\n        ? null\n        : V == r\n        ? (g - b) / C\n        : V == g\n        ? (b - r) / C + 2\n        : (r - g) / C + 4;\n    H = (((H + 360) % 6) * 60) / 360;\n    S = C == 0 ? 0 : C / V;\n    return { h: H, s: S, b: V, toString: hsbtoString };\n  };\n  /*\\\n     * Raphael.rgb2hsl\n     [ method ]\n     **\n     * Converts RGB values to HSL object.\n     > Parameters\n     - r (number) red\n     - g (number) green\n     - b (number) blue\n     = (object) HSL object in format:\n     o {\n     o     h (number) hue\n     o     s (number) saturation\n     o     l (number) luminosity\n     o }\n     \\*/\n  R.rgb2hsl = function (r, g, b) {\n    b = prepareRGB(r, g, b);\n    r = b[0];\n    g = b[1];\n    b = b[2];\n\n    var H, S, L, M, m, C;\n    M = mmax(r, g, b);\n    m = mmin(r, g, b);\n    C = M - m;\n    H =\n      C == 0\n        ? null\n        : M == r\n        ? (g - b) / C\n        : M == g\n        ? (b - r) / C + 2\n        : (r - g) / C + 4;\n    H = (((H + 360) % 6) * 60) / 360;\n    L = (M + m) / 2;\n    S = C == 0 ? 0 : L < 0.5 ? C / (2 * L) : C / (2 - 2 * L);\n    return { h: H, s: S, l: L, toString: hsltoString };\n  };\n  R._path2string = function () {\n    return this.join(",").replace(p2s, "$1");\n  };\n  function repush(array, item) {\n    for (var i = 0, ii = array.length; i < ii; i++)\n      if (array[i] === item) {\n        return array.push(array.splice(i, 1)[0]);\n      }\n  }\n  function cacher(f, scope, postprocessor) {\n    function newf() {\n      var arg = Array.prototype.slice.call(arguments, 0),\n        args = arg.join("\\u2400"),\n        cache = (newf.cache = newf.cache || {}),\n        count = (newf.count = newf.count || []);\n      if (cache[has](args)) {\n        repush(count, args);\n        return postprocessor ? postprocessor(cache[args]) : cache[args];\n      }\n      count.length >= 1e3 && delete cache[count.shift()];\n      count.push(args);\n      cache[args] = f[apply](scope, arg);\n      return postprocessor ? postprocessor(cache[args]) : cache[args];\n    }\n    return newf;\n  }\n\n  var preload = (R._preload = function (src, f) {\n    var img = g.doc.createElement("img");\n    img.style.cssText = "position:absolute;left:-9999em;top:-9999em";\n    img.onload = function () {\n      f.call(this);\n      this.onload = null;\n      g.doc.body.removeChild(this);\n    };\n    img.onerror = function () {\n      g.doc.body.removeChild(this);\n    };\n    g.doc.body.appendChild(img);\n    img.src = src;\n  });\n\n  function clrToString() {\n    return this.hex;\n  }\n\n  /*\\\n     * Raphael.getRGB\n     [ method ]\n     **\n     * Parses colour string as RGB object\n     > Parameters\n     - colour (string) colour string in one of formats:\n     # <ul>\n     #     <li>Colour name (“<code>red</code>”, “<code>green</code>”, “<code>cornflowerblue</code>”, etc)</li>\n     #     <li>#••• — shortened HTML colour: (“<code>#000</code>”, “<code>#fc0</code>”, etc)</li>\n     #     <li>#•••••• — full length HTML colour: (“<code>#000000</code>”, “<code>#bd2300</code>”)</li>\n     #     <li>rgb(•••, •••, •••) — red, green and blue channels’ values: (“<code>rgb(200,&nbsp;100,&nbsp;0)</code>”)</li>\n     #     <li>rgb(•••%, •••%, •••%) — same as above, but in %: (“<code>rgb(100%,&nbsp;175%,&nbsp;0%)</code>”)</li>\n     #     <li>hsb(•••, •••, •••) — hue, saturation and brightness values: (“<code>hsb(0.5,&nbsp;0.25,&nbsp;1)</code>”)</li>\n     #     <li>hsb(•••%, •••%, •••%) — same as above, but in %</li>\n     #     <li>hsl(•••, •••, •••) — same as hsb</li>\n     #     <li>hsl(•••%, •••%, •••%) — same as hsb</li>\n     # </ul>\n     = (object) RGB object in format:\n     o {\n     o     r (number) red,\n     o     g (number) green,\n     o     b (number) blue\n     o     hex (string) color in HTML/CSS format: #••••••,\n     o     error (boolean) true if string can’t be parsed\n     o }\n     \\*/\n  R.getRGB = cacher(function (colour) {\n    if (!colour || !!((colour = Str(colour)).indexOf("-") + 1)) {\n      return {\n        r: -1,\n        g: -1,\n        b: -1,\n        hex: "none",\n        error: 1,\n        toString: clrToString,\n      };\n    }\n    if (colour == "none") {\n      return { r: -1, g: -1, b: -1, hex: "none", toString: clrToString };\n    }\n    !(\n      hsrg[has](colour.toLowerCase().substring(0, 2)) || colour.charAt() == "#"\n    ) && (colour = toHex(colour));\n    var res,\n      red,\n      green,\n      blue,\n      opacity,\n      t,\n      values,\n      rgb = colour.match(colourRegExp);\n    if (rgb) {\n      if (rgb[2]) {\n        blue = toInt(rgb[2].substring(5), 16);\n        green = toInt(rgb[2].substring(3, 5), 16);\n        red = toInt(rgb[2].substring(1, 3), 16);\n      }\n      if (rgb[3]) {\n        blue = toInt((t = rgb[3].charAt(3)) + t, 16);\n        green = toInt((t = rgb[3].charAt(2)) + t, 16);\n        red = toInt((t = rgb[3].charAt(1)) + t, 16);\n      }\n      if (rgb[4]) {\n        values = rgb[4][split](commaSpaces);\n        red = toFloat(values[0]);\n        values[0].slice(-1) == "%" && (red *= 2.55);\n        green = toFloat(values[1]);\n        values[1].slice(-1) == "%" && (green *= 2.55);\n        blue = toFloat(values[2]);\n        values[2].slice(-1) == "%" && (blue *= 2.55);\n        rgb[1].toLowerCase().slice(0, 4) == "rgba" &&\n          (opacity = toFloat(values[3]));\n        values[3] && values[3].slice(-1) == "%" && (opacity /= 100);\n      }\n      if (rgb[5]) {\n        values = rgb[5][split](commaSpaces);\n        red = toFloat(values[0]);\n        values[0].slice(-1) == "%" && (red *= 2.55);\n        green = toFloat(values[1]);\n        values[1].slice(-1) == "%" && (green *= 2.55);\n        blue = toFloat(values[2]);\n        values[2].slice(-1) == "%" && (blue *= 2.55);\n        (values[0].slice(-3) == "deg" || values[0].slice(-1) == "\\xb0") &&\n          (red /= 360);\n        rgb[1].toLowerCase().slice(0, 4) == "hsba" &&\n          (opacity = toFloat(values[3]));\n        values[3] && values[3].slice(-1) == "%" && (opacity /= 100);\n        return R.hsb2rgb(red, green, blue, opacity);\n      }\n      if (rgb[6]) {\n        values = rgb[6][split](commaSpaces);\n        red = toFloat(values[0]);\n        values[0].slice(-1) == "%" && (red *= 2.55);\n        green = toFloat(values[1]);\n        values[1].slice(-1) == "%" && (green *= 2.55);\n        blue = toFloat(values[2]);\n        values[2].slice(-1) == "%" && (blue *= 2.55);\n        (values[0].slice(-3) == "deg" || values[0].slice(-1) == "\\xb0") &&\n          (red /= 360);\n        rgb[1].toLowerCase().slice(0, 4) == "hsla" &&\n          (opacity = toFloat(values[3]));\n        values[3] && values[3].slice(-1) == "%" && (opacity /= 100);\n        return R.hsl2rgb(red, green, blue, opacity);\n      }\n      rgb = { r: red, g: green, b: blue, toString: clrToString };\n      rgb.hex =\n        "#" +\n        (16777216 | blue | (green << 8) | (red << 16)).toString(16).slice(1);\n      R.is(opacity, "finite") && (rgb.opacity = opacity);\n      return rgb;\n    }\n    return {\n      r: -1,\n      g: -1,\n      b: -1,\n      hex: "none",\n      error: 1,\n      toString: clrToString,\n    };\n  }, R);\n  /*\\\n     * Raphael.hsb\n     [ method ]\n     **\n     * Converts HSB values to hex representation of the colour.\n     > Parameters\n     - h (number) hue\n     - s (number) saturation\n     - b (number) value or brightness\n     = (string) hex representation of the colour.\n     \\*/\n  R.hsb = cacher(function (h, s, b) {\n    return R.hsb2rgb(h, s, b).hex;\n  });\n  /*\\\n     * Raphael.hsl\n     [ method ]\n     **\n     * Converts HSL values to hex representation of the colour.\n     > Parameters\n     - h (number) hue\n     - s (number) saturation\n     - l (number) luminosity\n     = (string) hex representation of the colour.\n     \\*/\n  R.hsl = cacher(function (h, s, l) {\n    return R.hsl2rgb(h, s, l).hex;\n  });\n  /*\\\n     * Raphael.rgb\n     [ method ]\n     **\n     * Converts RGB values to hex representation of the colour.\n     > Parameters\n     - r (number) red\n     - g (number) green\n     - b (number) blue\n     = (string) hex representation of the colour.\n     \\*/\n  R.rgb = cacher(function (r, g, b) {\n    function round(x) {\n      return (x + 0.5) | 0;\n    }\n    return (\n      "#" +\n      (16777216 | round(b) | (round(g) << 8) | (round(r) << 16))\n        .toString(16)\n        .slice(1)\n    );\n  });\n  /*\\\n     * Raphael.getColor\n     [ method ]\n     **\n     * On each call returns next colour in the spectrum. To reset it back to red call @Raphael.getColor.reset\n     > Parameters\n     - value (number) #optional brightness, default is `0.75`\n     = (string) hex representation of the colour.\n     \\*/\n  R.getColor = function (value) {\n    var start = (this.getColor.start = this.getColor.start || {\n        h: 0,\n        s: 1,\n        b: value || 0.75,\n      }),\n      rgb = this.hsb2rgb(start.h, start.s, start.b);\n    start.h += 0.075;\n    if (start.h > 1) {\n      start.h = 0;\n      start.s -= 0.2;\n      start.s <= 0 && (this.getColor.start = { h: 0, s: 1, b: start.b });\n    }\n    return rgb.hex;\n  };\n  /*\\\n     * Raphael.getColor.reset\n     [ method ]\n     **\n     * Resets spectrum position for @Raphael.getColor back to red.\n     \\*/\n  R.getColor.reset = function () {\n    delete this.start;\n  };\n\n  // http://schepers.cc/getting-to-the-point\n  function catmullRom2bezier(crp, z) {\n    var d = [];\n    for (var i = 0, iLen = crp.length; iLen - 2 * !z > i; i += 2) {\n      var p = [\n        { x: +crp[i - 2], y: +crp[i - 1] },\n        { x: +crp[i], y: +crp[i + 1] },\n        { x: +crp[i + 2], y: +crp[i + 3] },\n        { x: +crp[i + 4], y: +crp[i + 5] },\n      ];\n      if (z) {\n        if (!i) {\n          p[0] = { x: +crp[iLen - 2], y: +crp[iLen - 1] };\n        } else if (iLen - 4 == i) {\n          p[3] = { x: +crp[0], y: +crp[1] };\n        } else if (iLen - 2 == i) {\n          p[2] = { x: +crp[0], y: +crp[1] };\n          p[3] = { x: +crp[2], y: +crp[3] };\n        }\n      } else {\n        if (iLen - 4 == i) {\n          p[3] = p[2];\n        } else if (!i) {\n          p[0] = { x: +crp[i], y: +crp[i + 1] };\n        }\n      }\n      d.push([\n        "C",\n        (-p[0].x + 6 * p[1].x + p[2].x) / 6,\n        (-p[0].y + 6 * p[1].y + p[2].y) / 6,\n        (p[1].x + 6 * p[2].x - p[3].x) / 6,\n        (p[1].y + 6 * p[2].y - p[3].y) / 6,\n        p[2].x,\n        p[2].y,\n      ]);\n    }\n\n    return d;\n  }\n  /*\\\n     * Raphael.parsePathString\n     [ method ]\n     **\n     * Utility method\n     **\n     * Parses given path string into an array of arrays of path segments.\n     > Parameters\n     - pathString (string|array) path string or array of segments (in the last case it will be returned straight away)\n     = (array) array of segments.\n     \\*/\n  R.parsePathString = function (pathString) {\n    if (!pathString) {\n      return null;\n    }\n    var pth = paths(pathString);\n    if (pth.arr) {\n      return pathClone(pth.arr);\n    }\n\n    var paramCounts = {\n        a: 7,\n        c: 6,\n        h: 1,\n        l: 2,\n        m: 2,\n        r: 4,\n        q: 4,\n        s: 4,\n        t: 2,\n        v: 1,\n        z: 0,\n      },\n      data = [];\n    if (R.is(pathString, array) && R.is(pathString[0], array)) {\n      // rough assumption\n      data = pathClone(pathString);\n    }\n    if (!data.length) {\n      Str(pathString).replace(pathCommand, function (a, b, c) {\n        var params = [],\n          name = b.toLowerCase();\n        c.replace(pathValues, function (a, b) {\n          b && params.push(+b);\n        });\n        if (name == "m" && params.length > 2) {\n          data.push([b][concat](params.splice(0, 2)));\n          name = "l";\n          b = b == "m" ? "l" : "L";\n        }\n        if (name == "r") {\n          data.push([b][concat](params));\n        } else\n          while (params.length >= paramCounts[name]) {\n            data.push([b][concat](params.splice(0, paramCounts[name])));\n            if (!paramCounts[name]) {\n              break;\n            }\n          }\n      });\n    }\n    data.toString = R._path2string;\n    pth.arr = pathClone(data);\n    return data;\n  };\n  /*\\\n     * Raphael.parseTransformString\n     [ method ]\n     **\n     * Utility method\n     **\n     * Parses given path string into an array of transformations.\n     > Parameters\n     - TString (string|array) transform string or array of transformations (in the last case it will be returned straight away)\n     = (array) array of transformations.\n     \\*/\n  R.parseTransformString = cacher(function (TString) {\n    if (!TString) {\n      return null;\n    }\n    var paramCounts = { r: 3, s: 4, t: 2, m: 6 },\n      data = [];\n    if (R.is(TString, array) && R.is(TString[0], array)) {\n      // rough assumption\n      data = pathClone(TString);\n    }\n    if (!data.length) {\n      Str(TString).replace(tCommand, function (a, b, c) {\n        var params = [],\n          name = lowerCase.call(b);\n        c.replace(pathValues, function (a, b) {\n          b && params.push(+b);\n        });\n        data.push([b][concat](params));\n      });\n    }\n    data.toString = R._path2string;\n    return data;\n  });\n  // PATHS\n  var paths = function (ps) {\n    var p = (paths.ps = paths.ps || {});\n    if (p[ps]) {\n      p[ps].sleep = 100;\n    } else {\n      p[ps] = {\n        sleep: 100,\n      };\n    }\n    setTimeout(function () {\n      for (var key in p)\n        if (p[has](key) && key != ps) {\n          p[key].sleep--;\n          !p[key].sleep && delete p[key];\n        }\n    });\n    return p[ps];\n  };\n  /*\\\n     * Raphael.findDotsAtSegment\n     [ method ]\n     **\n     * Utility method\n     **\n     * Find dot coordinates on the given cubic bezier curve at the given t.\n     > Parameters\n     - p1x (number) x of the first point of the curve\n     - p1y (number) y of the first point of the curve\n     - c1x (number) x of the first anchor of the curve\n     - c1y (number) y of the first anchor of the curve\n     - c2x (number) x of the second anchor of the curve\n     - c2y (number) y of the second anchor of the curve\n     - p2x (number) x of the second point of the curve\n     - p2y (number) y of the second point of the curve\n     - t (number) position on the curve (0..1)\n     = (object) point information in format:\n     o {\n     o     x: (number) x coordinate of the point\n     o     y: (number) y coordinate of the point\n     o     m: {\n     o         x: (number) x coordinate of the left anchor\n     o         y: (number) y coordinate of the left anchor\n     o     }\n     o     n: {\n     o         x: (number) x coordinate of the right anchor\n     o         y: (number) y coordinate of the right anchor\n     o     }\n     o     start: {\n     o         x: (number) x coordinate of the start of the curve\n     o         y: (number) y coordinate of the start of the curve\n     o     }\n     o     end: {\n     o         x: (number) x coordinate of the end of the curve\n     o         y: (number) y coordinate of the end of the curve\n     o     }\n     o     alpha: (number) angle of the curve derivative at the point\n     o }\n     \\*/\n  R.findDotsAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\n    var t1 = 1 - t,\n      t13 = pow(t1, 3),\n      t12 = pow(t1, 2),\n      t2 = t * t,\n      t3 = t2 * t,\n      x = t13 * p1x + t12 * 3 * t * c1x + t1 * 3 * t * t * c2x + t3 * p2x,\n      y = t13 * p1y + t12 * 3 * t * c1y + t1 * 3 * t * t * c2y + t3 * p2y,\n      mx = p1x + 2 * t * (c1x - p1x) + t2 * (c2x - 2 * c1x + p1x),\n      my = p1y + 2 * t * (c1y - p1y) + t2 * (c2y - 2 * c1y + p1y),\n      nx = c1x + 2 * t * (c2x - c1x) + t2 * (p2x - 2 * c2x + c1x),\n      ny = c1y + 2 * t * (c2y - c1y) + t2 * (p2y - 2 * c2y + c1y),\n      ax = t1 * p1x + t * c1x,\n      ay = t1 * p1y + t * c1y,\n      cx = t1 * c2x + t * p2x,\n      cy = t1 * c2y + t * p2y,\n      alpha = 90 - (math.atan2(mx - nx, my - ny) * 180) / PI;\n    (mx > nx || my < ny) && (alpha += 180);\n    return {\n      x: x,\n      y: y,\n      m: { x: mx, y: my },\n      n: { x: nx, y: ny },\n      start: { x: ax, y: ay },\n      end: { x: cx, y: cy },\n      alpha: alpha,\n    };\n  };\n  /*\\\n     * Raphael.bezierBBox\n     [ method ]\n     **\n     * Utility method\n     **\n     * Return bounding box of a given cubic bezier curve\n     > Parameters\n     - p1x (number) x of the first point of the curve\n     - p1y (number) y of the first point of the curve\n     - c1x (number) x of the first anchor of the curve\n     - c1y (number) y of the first anchor of the curve\n     - c2x (number) x of the second anchor of the curve\n     - c2y (number) y of the second anchor of the curve\n     - p2x (number) x of the second point of the curve\n     - p2y (number) y of the second point of the curve\n     * or\n     - bez (array) array of six points for bezier curve\n     = (object) point information in format:\n     o {\n     o     min: {\n     o         x: (number) x coordinate of the left point\n     o         y: (number) y coordinate of the top point\n     o     }\n     o     max: {\n     o         x: (number) x coordinate of the right point\n     o         y: (number) y coordinate of the bottom point\n     o     }\n     o }\n     \\*/\n  R.bezierBBox = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\n    if (!R.is(p1x, "array")) {\n      p1x = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y];\n    }\n    var bbox = curveDim.apply(null, p1x);\n    return {\n      x: bbox.min.x,\n      y: bbox.min.y,\n      x2: bbox.max.x,\n      y2: bbox.max.y,\n      width: bbox.max.x - bbox.min.x,\n      height: bbox.max.y - bbox.min.y,\n    };\n  };\n  /*\\\n     * Raphael.isPointInsideBBox\n     [ method ]\n     **\n     * Utility method\n     **\n     * Returns `true` if given point is inside bounding boxes.\n     > Parameters\n     - bbox (string) bounding box\n     - x (string) x coordinate of the point\n     - y (string) y coordinate of the point\n     = (boolean) `true` if point inside\n     \\*/\n  R.isPointInsideBBox = function (bbox, x, y) {\n    return x >= bbox.x && x <= bbox.x2 && y >= bbox.y && y <= bbox.y2;\n  };\n  /*\\\n     * Raphael.isBBoxIntersect\n     [ method ]\n     **\n     * Utility method\n     **\n     * Returns `true` if two bounding boxes intersect\n     > Parameters\n     - bbox1 (string) first bounding box\n     - bbox2 (string) second bounding box\n     = (boolean) `true` if they intersect\n     \\*/\n  R.isBBoxIntersect = function (bbox1, bbox2) {\n    var i = R.isPointInsideBBox;\n    return (\n      i(bbox2, bbox1.x, bbox1.y) ||\n      i(bbox2, bbox1.x2, bbox1.y) ||\n      i(bbox2, bbox1.x, bbox1.y2) ||\n      i(bbox2, bbox1.x2, bbox1.y2) ||\n      i(bbox1, bbox2.x, bbox2.y) ||\n      i(bbox1, bbox2.x2, bbox2.y) ||\n      i(bbox1, bbox2.x, bbox2.y2) ||\n      i(bbox1, bbox2.x2, bbox2.y2) ||\n      (((bbox1.x < bbox2.x2 && bbox1.x > bbox2.x) ||\n        (bbox2.x < bbox1.x2 && bbox2.x > bbox1.x)) &&\n        ((bbox1.y < bbox2.y2 && bbox1.y > bbox2.y) ||\n          (bbox2.y < bbox1.y2 && bbox2.y > bbox1.y)))\n    );\n  };\n  function base3(t, p1, p2, p3, p4) {\n    var t1 = -3 * p1 + 9 * p2 - 9 * p3 + 3 * p4,\n      t2 = t * t1 + 6 * p1 - 12 * p2 + 6 * p3;\n    return t * t2 - 3 * p1 + 3 * p2;\n  }\n  function bezlen(x1, y1, x2, y2, x3, y3, x4, y4, z) {\n    if (z == null) {\n      z = 1;\n    }\n    z = z > 1 ? 1 : z < 0 ? 0 : z;\n    var z2 = z / 2,\n      n = 12,\n      Tvalues = [\n        -0.1252, 0.1252, -0.3678, 0.3678, -0.5873, 0.5873, -0.7699, 0.7699,\n        -0.9041, 0.9041, -0.9816, 0.9816,\n      ],\n      Cvalues = [\n        0.2491, 0.2491, 0.2335, 0.2335, 0.2032, 0.2032, 0.1601, 0.1601, 0.1069,\n        0.1069, 0.0472, 0.0472,\n      ],\n      sum = 0;\n    for (var i = 0; i < n; i++) {\n      var ct = z2 * Tvalues[i] + z2,\n        xbase = base3(ct, x1, x2, x3, x4),\n        ybase = base3(ct, y1, y2, y3, y4),\n        comb = xbase * xbase + ybase * ybase;\n      sum += Cvalues[i] * math.sqrt(comb);\n    }\n    return z2 * sum;\n  }\n  function getTatLen(x1, y1, x2, y2, x3, y3, x4, y4, ll) {\n    if (ll < 0 || bezlen(x1, y1, x2, y2, x3, y3, x4, y4) < ll) {\n      return;\n    }\n    var t = 1,\n      step = t / 2,\n      t2 = t - step,\n      l,\n      e = 0.01;\n    l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\n    while (abs(l - ll) > e) {\n      step /= 2;\n      t2 += (l < ll ? 1 : -1) * step;\n      l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\n    }\n    return t2;\n  }\n  function intersect(x1, y1, x2, y2, x3, y3, x4, y4) {\n    if (\n      mmax(x1, x2) < mmin(x3, x4) ||\n      mmin(x1, x2) > mmax(x3, x4) ||\n      mmax(y1, y2) < mmin(y3, y4) ||\n      mmin(y1, y2) > mmax(y3, y4)\n    ) {\n      return;\n    }\n    var nx = (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4),\n      ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4),\n      denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);\n\n    if (!denominator) {\n      return;\n    }\n    var px = nx / denominator,\n      py = ny / denominator,\n      px2 = +px.toFixed(2),\n      py2 = +py.toFixed(2);\n    if (\n      px2 < +mmin(x1, x2).toFixed(2) ||\n      px2 > +mmax(x1, x2).toFixed(2) ||\n      px2 < +mmin(x3, x4).toFixed(2) ||\n      px2 > +mmax(x3, x4).toFixed(2) ||\n      py2 < +mmin(y1, y2).toFixed(2) ||\n      py2 > +mmax(y1, y2).toFixed(2) ||\n      py2 < +mmin(y3, y4).toFixed(2) ||\n      py2 > +mmax(y3, y4).toFixed(2)\n    ) {\n      return;\n    }\n    return { x: px, y: py };\n  }\n  function inter(bez1, bez2) {\n    return interHelper(bez1, bez2);\n  }\n  function interCount(bez1, bez2) {\n    return interHelper(bez1, bez2, 1);\n  }\n  function interHelper(bez1, bez2, justCount) {\n    var bbox1 = R.bezierBBox(bez1),\n      bbox2 = R.bezierBBox(bez2);\n    if (!R.isBBoxIntersect(bbox1, bbox2)) {\n      return justCount ? 0 : [];\n    }\n    var l1 = bezlen.apply(0, bez1),\n      l2 = bezlen.apply(0, bez2),\n      n1 = mmax(~~(l1 / 5), 1),\n      n2 = mmax(~~(l2 / 5), 1),\n      dots1 = [],\n      dots2 = [],\n      xy = {},\n      res = justCount ? 0 : [];\n    for (var i = 0; i < n1 + 1; i++) {\n      var p = R.findDotsAtSegment.apply(R, bez1.concat(i / n1));\n      dots1.push({ x: p.x, y: p.y, t: i / n1 });\n    }\n    for (i = 0; i < n2 + 1; i++) {\n      p = R.findDotsAtSegment.apply(R, bez2.concat(i / n2));\n      dots2.push({ x: p.x, y: p.y, t: i / n2 });\n    }\n    for (i = 0; i < n1; i++) {\n      for (var j = 0; j < n2; j++) {\n        var di = dots1[i],\n          di1 = dots1[i + 1],\n          dj = dots2[j],\n          dj1 = dots2[j + 1],\n          ci = abs(di1.x - di.x) < 0.001 ? "y" : "x",\n          cj = abs(dj1.x - dj.x) < 0.001 ? "y" : "x",\n          is = intersect(di.x, di.y, di1.x, di1.y, dj.x, dj.y, dj1.x, dj1.y);\n        if (is) {\n          if (xy[is.x.toFixed(4)] == is.y.toFixed(4)) {\n            continue;\n          }\n          xy[is.x.toFixed(4)] = is.y.toFixed(4);\n          var t1 =\n              di.t +\n              abs((is[ci] - di[ci]) / (di1[ci] - di[ci])) * (di1.t - di.t),\n            t2 =\n              dj.t +\n              abs((is[cj] - dj[cj]) / (dj1[cj] - dj[cj])) * (dj1.t - dj.t);\n          if (t1 >= 0 && t1 <= 1.001 && t2 >= 0 && t2 <= 1.001) {\n            if (justCount) {\n              res++;\n            } else {\n              res.push({\n                x: is.x,\n                y: is.y,\n                t1: mmin(t1, 1),\n                t2: mmin(t2, 1),\n              });\n            }\n          }\n        }\n      }\n    }\n    return res;\n  }\n  /*\\\n     * Raphael.pathIntersection\n     [ method ]\n     **\n     * Utility method\n     **\n     * Finds intersections of two paths\n     > Parameters\n     - path1 (string) path string\n     - path2 (string) path string\n     = (array) dots of intersection\n     o [\n     o     {\n     o         x: (number) x coordinate of the point\n     o         y: (number) y coordinate of the point\n     o         t1: (number) t value for segment of path1\n     o         t2: (number) t value for segment of path2\n     o         segment1: (number) order number for segment of path1\n     o         segment2: (number) order number for segment of path2\n     o         bez1: (array) eight coordinates representing beziér curve for the segment of path1\n     o         bez2: (array) eight coordinates representing beziér curve for the segment of path2\n     o     }\n     o ]\n     \\*/\n  R.pathIntersection = function (path1, path2) {\n    return interPathHelper(path1, path2);\n  };\n  R.pathIntersectionNumber = function (path1, path2) {\n    return interPathHelper(path1, path2, 1);\n  };\n  function interPathHelper(path1, path2, justCount) {\n    path1 = R._path2curve(path1);\n    path2 = R._path2curve(path2);\n    var x1,\n      y1,\n      x2,\n      y2,\n      x1m,\n      y1m,\n      x2m,\n      y2m,\n      bez1,\n      bez2,\n      res = justCount ? 0 : [];\n    for (var i = 0, ii = path1.length; i < ii; i++) {\n      var pi = path1[i];\n      if (pi[0] == "M") {\n        x1 = x1m = pi[1];\n        y1 = y1m = pi[2];\n      } else {\n        if (pi[0] == "C") {\n          bez1 = [x1, y1].concat(pi.slice(1));\n          x1 = bez1[6];\n          y1 = bez1[7];\n        } else {\n          bez1 = [x1, y1, x1, y1, x1m, y1m, x1m, y1m];\n          x1 = x1m;\n          y1 = y1m;\n        }\n        for (var j = 0, jj = path2.length; j < jj; j++) {\n          var pj = path2[j];\n          if (pj[0] == "M") {\n            x2 = x2m = pj[1];\n            y2 = y2m = pj[2];\n          } else {\n            if (pj[0] == "C") {\n              bez2 = [x2, y2].concat(pj.slice(1));\n              x2 = bez2[6];\n              y2 = bez2[7];\n            } else {\n              bez2 = [x2, y2, x2, y2, x2m, y2m, x2m, y2m];\n              x2 = x2m;\n              y2 = y2m;\n            }\n            var intr = interHelper(bez1, bez2, justCount);\n            if (justCount) {\n              res += intr;\n            } else {\n              for (var k = 0, kk = intr.length; k < kk; k++) {\n                intr[k].segment1 = i;\n                intr[k].segment2 = j;\n                intr[k].bez1 = bez1;\n                intr[k].bez2 = bez2;\n              }\n              res = res.concat(intr);\n            }\n          }\n        }\n      }\n    }\n    return res;\n  }\n  /*\\\n     * Raphael.isPointInsidePath\n     [ method ]\n     **\n     * Utility method\n     **\n     * Returns `true` if given point is inside a given closed path.\n     > Parameters\n     - path (string) path string\n     - x (number) x of the point\n     - y (number) y of the point\n     = (boolean) true, if point is inside the path\n     \\*/\n  R.isPointInsidePath = function (path, x, y) {\n    var bbox = R.pathBBox(path);\n    return (\n      R.isPointInsideBBox(bbox, x, y) &&\n      interPathHelper(\n        path,\n        [\n          ["M", x, y],\n          ["H", bbox.x2 + 10],\n        ],\n        1\n      ) %\n        2 ==\n        1\n    );\n  };\n  R._removedFactory = function (methodname) {\n    return function () {\n      eve(\n        "raphael.log",\n        null,\n        "Rapha\\xebl: you are calling to method \\u201c" +\n          methodname +\n          "\\u201d of removed object",\n        methodname\n      );\n    };\n  };\n  /*\\\n     * Raphael.pathBBox\n     [ method ]\n     **\n     * Utility method\n     **\n     * Return bounding box of a given path\n     > Parameters\n     - path (string) path string\n     = (object) bounding box\n     o {\n     o     x: (number) x coordinate of the left top point of the box\n     o     y: (number) y coordinate of the left top point of the box\n     o     x2: (number) x coordinate of the right bottom point of the box\n     o     y2: (number) y coordinate of the right bottom point of the box\n     o     width: (number) width of the box\n     o     height: (number) height of the box\n     o     cx: (number) x coordinate of the center of the box\n     o     cy: (number) y coordinate of the center of the box\n     o }\n     \\*/\n  var pathDimensions = (R.pathBBox = function (path) {\n      var pth = paths(path);\n      if (pth.bbox) {\n        var b = pth.bbox;\n        return {\n          x: b.x,\n          y: b.y,\n          width: b.width,\n          height: b.height,\n          x2: b.x2,\n          y2: b.y2,\n        }; // FREEGROUP FIX!!!!!!\n        // raphael reuse the returned bbox. You must clone it here if the caller need the bbxo for\n        //further calculation\n      }\n      if (!path) {\n        return { x: 0, y: 0, width: 0, height: 0, x2: 0, y2: 0 };\n      }\n      path = path2curve(path);\n      var x = 0,\n        y = 0,\n        X = [],\n        Y = [],\n        p;\n      for (var i = 0, ii = path.length; i < ii; i++) {\n        p = path[i];\n        if (p[0] == "M") {\n          x = p[1];\n          y = p[2];\n          X.push(x);\n          Y.push(y);\n        } else {\n          var dim = curveDim(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);\n          X = X[concat](dim.min.x, dim.max.x);\n          Y = Y[concat](dim.min.y, dim.max.y);\n          x = p[5];\n          y = p[6];\n        }\n      }\n      var xmin = mmin[apply](0, X),\n        ymin = mmin[apply](0, Y),\n        xmax = mmax[apply](0, X),\n        ymax = mmax[apply](0, Y),\n        width = xmax - xmin,\n        height = ymax - ymin,\n        bb = {\n          x: xmin,\n          y: ymin,\n          x2: xmax,\n          y2: ymax,\n          width: width,\n          height: height,\n          cx: xmin + width / 2,\n          cy: ymin + height / 2,\n        };\n      pth.bbox = clone(bb);\n      return bb;\n    }),\n    pathClone = function (pathArray) {\n      var res = clone(pathArray);\n      res.toString = R._path2string;\n      return res;\n    },\n    pathToRelative = (R._pathToRelative = function (pathArray) {\n      var pth = paths(pathArray);\n      if (pth.rel) {\n        return pathClone(pth.rel);\n      }\n      if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) {\n        // rough assumption\n        pathArray = R.parsePathString(pathArray);\n      }\n      var res = [],\n        x = 0,\n        y = 0,\n        mx = 0,\n        my = 0,\n        start = 0;\n      if (pathArray[0][0] == "M") {\n        x = pathArray[0][1];\n        y = pathArray[0][2];\n        mx = x;\n        my = y;\n        start++;\n        res.push(["M", x, y]);\n      }\n      for (var i = start, ii = pathArray.length; i < ii; i++) {\n        var r = (res[i] = []),\n          pa = pathArray[i];\n        if (pa[0] != lowerCase.call(pa[0])) {\n          r[0] = lowerCase.call(pa[0]);\n          switch (r[0]) {\n            case "a":\n              r[1] = pa[1];\n              r[2] = pa[2];\n              r[3] = pa[3];\n              r[4] = pa[4];\n              r[5] = pa[5];\n              r[6] = +(pa[6] - x).toFixed(3);\n              r[7] = +(pa[7] - y).toFixed(3);\n              break;\n            case "v":\n              r[1] = +(pa[1] - y).toFixed(3);\n              break;\n            case "m":\n              mx = pa[1];\n              my = pa[2];\n            default:\n              for (var j = 1, jj = pa.length; j < jj; j++) {\n                r[j] = +(pa[j] - (j % 2 ? x : y)).toFixed(3);\n              }\n          }\n        } else {\n          r = res[i] = [];\n          if (pa[0] == "m") {\n            mx = pa[1] + x;\n            my = pa[2] + y;\n          }\n          for (var k = 0, kk = pa.length; k < kk; k++) {\n            res[i][k] = pa[k];\n          }\n        }\n        var len = res[i].length;\n        switch (res[i][0]) {\n          case "z":\n            x = mx;\n            y = my;\n            break;\n          case "h":\n            x += +res[i][len - 1];\n            break;\n          case "v":\n            y += +res[i][len - 1];\n            break;\n          default:\n            x += +res[i][len - 2];\n            y += +res[i][len - 1];\n        }\n      }\n      res.toString = R._path2string;\n      pth.rel = pathClone(res);\n      return res;\n    }),\n    pathToAbsolute = (R._pathToAbsolute = function (pathArray) {\n      var pth = paths(pathArray);\n      if (pth.abs) {\n        return pathClone(pth.abs);\n      }\n      if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) {\n        // rough assumption\n        pathArray = R.parsePathString(pathArray);\n      }\n      if (!pathArray || !pathArray.length) {\n        return [["M", 0, 0]];\n      }\n      var res = [],\n        x = 0,\n        y = 0,\n        mx = 0,\n        my = 0,\n        start = 0;\n      if (pathArray[0][0] == "M") {\n        x = +pathArray[0][1];\n        y = +pathArray[0][2];\n        mx = x;\n        my = y;\n        start++;\n        res[0] = ["M", x, y];\n      }\n      var crz =\n        pathArray.length == 3 &&\n        pathArray[0][0] == "M" &&\n        pathArray[1][0].toUpperCase() == "R" &&\n        pathArray[2][0].toUpperCase() == "Z";\n      for (var r, pa, i = start, ii = pathArray.length; i < ii; i++) {\n        res.push((r = []));\n        pa = pathArray[i];\n        if (pa[0] != upperCase.call(pa[0])) {\n          r[0] = upperCase.call(pa[0]);\n          switch (r[0]) {\n            case "A":\n              r[1] = pa[1];\n              r[2] = pa[2];\n              r[3] = pa[3];\n              r[4] = pa[4];\n              r[5] = pa[5];\n              r[6] = +(pa[6] + x);\n              r[7] = +(pa[7] + y);\n              break;\n            case "V":\n              r[1] = +pa[1] + y;\n              break;\n            case "H":\n              r[1] = +pa[1] + x;\n              break;\n            case "R":\n              var dots = [x, y][concat](pa.slice(1));\n              for (var j = 2, jj = dots.length; j < jj; j++) {\n                dots[j] = +dots[j] + x;\n                dots[++j] = +dots[j] + y;\n              }\n              res.pop();\n              res = res[concat](catmullRom2bezier(dots, crz));\n              break;\n            case "M":\n              mx = +pa[1] + x;\n              my = +pa[2] + y;\n            default:\n              for (j = 1, jj = pa.length; j < jj; j++) {\n                r[j] = +pa[j] + (j % 2 ? x : y);\n              }\n          }\n        } else if (pa[0] == "R") {\n          dots = [x, y][concat](pa.slice(1));\n          res.pop();\n          res = res[concat](catmullRom2bezier(dots, crz));\n          r = ["R"][concat](pa.slice(-2));\n        } else {\n          for (var k = 0, kk = pa.length; k < kk; k++) {\n            r[k] = pa[k];\n          }\n        }\n        switch (r[0]) {\n          case "Z":\n            x = mx;\n            y = my;\n            break;\n          case "H":\n            x = r[1];\n            break;\n          case "V":\n            y = r[1];\n            break;\n          case "M":\n            mx = r[r.length - 2];\n            my = r[r.length - 1];\n          default:\n            x = r[r.length - 2];\n            y = r[r.length - 1];\n        }\n      }\n      res.toString = R._path2string;\n      pth.abs = pathClone(res);\n      return res;\n    }),\n    l2c = function (x1, y1, x2, y2) {\n      return [x1, y1, x2, y2, x2, y2];\n    },\n    q2c = function (x1, y1, ax, ay, x2, y2) {\n      var _13 = 1 / 3,\n        _23 = 2 / 3;\n      return [\n        _13 * x1 + _23 * ax,\n        _13 * y1 + _23 * ay,\n        _13 * x2 + _23 * ax,\n        _13 * y2 + _23 * ay,\n        x2,\n        y2,\n      ];\n    },\n    a2c = function (\n      x1,\n      y1,\n      rx,\n      ry,\n      angle,\n      large_arc_flag,\n      sweep_flag,\n      x2,\n      y2,\n      recursive\n    ) {\n      // for more information of where this math came from visit:\n      // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n      var _120 = (PI * 120) / 180,\n        rad = (PI / 180) * (+angle || 0),\n        res = [],\n        xy,\n        rotate = cacher(function (x, y, rad) {\n          var X = x * math.cos(rad) - y * math.sin(rad),\n            Y = x * math.sin(rad) + y * math.cos(rad);\n          return { x: X, y: Y };\n        });\n      if (!recursive) {\n        xy = rotate(x1, y1, -rad);\n        x1 = xy.x;\n        y1 = xy.y;\n        xy = rotate(x2, y2, -rad);\n        x2 = xy.x;\n        y2 = xy.y;\n        var cos = math.cos((PI / 180) * angle),\n          sin = math.sin((PI / 180) * angle),\n          x = (x1 - x2) / 2,\n          y = (y1 - y2) / 2;\n        var h = (x * x) / (rx * rx) + (y * y) / (ry * ry);\n        if (h > 1) {\n          h = math.sqrt(h);\n          rx = h * rx;\n          ry = h * ry;\n        }\n        var rx2 = rx * rx,\n          ry2 = ry * ry,\n          k =\n            (large_arc_flag == sweep_flag ? -1 : 1) *\n            math.sqrt(\n              abs(\n                (rx2 * ry2 - rx2 * y * y - ry2 * x * x) /\n                  (rx2 * y * y + ry2 * x * x)\n              )\n            ),\n          cx = (k * rx * y) / ry + (x1 + x2) / 2,\n          cy = (k * -ry * x) / rx + (y1 + y2) / 2,\n          f1 = math.asin(((y1 - cy) / ry).toFixed(9)),\n          f2 = math.asin(((y2 - cy) / ry).toFixed(9));\n\n        f1 = x1 < cx ? PI - f1 : f1;\n        f2 = x2 < cx ? PI - f2 : f2;\n        f1 < 0 && (f1 = PI * 2 + f1);\n        f2 < 0 && (f2 = PI * 2 + f2);\n        if (sweep_flag && f1 > f2) {\n          f1 = f1 - PI * 2;\n        }\n        if (!sweep_flag && f2 > f1) {\n          f2 = f2 - PI * 2;\n        }\n      } else {\n        f1 = recursive[0];\n        f2 = recursive[1];\n        cx = recursive[2];\n        cy = recursive[3];\n      }\n      var df = f2 - f1;\n      if (abs(df) > _120) {\n        var f2old = f2,\n          x2old = x2,\n          y2old = y2;\n        f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1);\n        x2 = cx + rx * math.cos(f2);\n        y2 = cy + ry * math.sin(f2);\n        res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [\n          f2,\n          f2old,\n          cx,\n          cy,\n        ]);\n      }\n      df = f2 - f1;\n      var c1 = math.cos(f1),\n        s1 = math.sin(f1),\n        c2 = math.cos(f2),\n        s2 = math.sin(f2),\n        t = math.tan(df / 4),\n        hx = (4 / 3) * rx * t,\n        hy = (4 / 3) * ry * t,\n        m1 = [x1, y1],\n        m2 = [x1 + hx * s1, y1 - hy * c1],\n        m3 = [x2 + hx * s2, y2 - hy * c2],\n        m4 = [x2, y2];\n      m2[0] = 2 * m1[0] - m2[0];\n      m2[1] = 2 * m1[1] - m2[1];\n      if (recursive) {\n        return [m2, m3, m4][concat](res);\n      } else {\n        res = [m2, m3, m4][concat](res).join()[split](",");\n        var newres = [];\n        for (var i = 0, ii = res.length; i < ii; i++) {\n          newres[i] =\n            i % 2\n              ? rotate(res[i - 1], res[i], rad).y\n              : rotate(res[i], res[i + 1], rad).x;\n        }\n        return newres;\n      }\n    },\n    findDotAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\n      var t1 = 1 - t;\n      return {\n        x:\n          pow(t1, 3) * p1x +\n          pow(t1, 2) * 3 * t * c1x +\n          t1 * 3 * t * t * c2x +\n          pow(t, 3) * p2x,\n        y:\n          pow(t1, 3) * p1y +\n          pow(t1, 2) * 3 * t * c1y +\n          t1 * 3 * t * t * c2y +\n          pow(t, 3) * p2y,\n      };\n    },\n    curveDim = cacher(function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\n      var a = c2x - 2 * c1x + p1x - (p2x - 2 * c2x + c1x),\n        b = 2 * (c1x - p1x) - 2 * (c2x - c1x),\n        c = p1x - c1x,\n        t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a,\n        t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a,\n        y = [p1y, p2y],\n        x = [p1x, p2x],\n        dot;\n      abs(t1) > "1e12" && (t1 = 0.5);\n      abs(t2) > "1e12" && (t2 = 0.5);\n      if (t1 > 0 && t1 < 1) {\n        dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1);\n        x.push(dot.x);\n        y.push(dot.y);\n      }\n      if (t2 > 0 && t2 < 1) {\n        dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2);\n        x.push(dot.x);\n        y.push(dot.y);\n      }\n      a = c2y - 2 * c1y + p1y - (p2y - 2 * c2y + c1y);\n      b = 2 * (c1y - p1y) - 2 * (c2y - c1y);\n      c = p1y - c1y;\n      t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a;\n      t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a;\n      abs(t1) > "1e12" && (t1 = 0.5);\n      abs(t2) > "1e12" && (t2 = 0.5);\n      if (t1 > 0 && t1 < 1) {\n        dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1);\n        x.push(dot.x);\n        y.push(dot.y);\n      }\n      if (t2 > 0 && t2 < 1) {\n        dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2);\n        x.push(dot.x);\n        y.push(dot.y);\n      }\n      return {\n        min: { x: mmin[apply](0, x), y: mmin[apply](0, y) },\n        max: { x: mmax[apply](0, x), y: mmax[apply](0, y) },\n      };\n    }),\n    path2curve = (R._path2curve = cacher(\n      function (path, path2) {\n        var pth = !path2 && paths(path);\n        if (!path2 && pth.curve) {\n          return pathClone(pth.curve);\n        }\n        var p = pathToAbsolute(path),\n          p2 = path2 && pathToAbsolute(path2),\n          attrs = { x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null },\n          attrs2 = { x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null },\n          processPath = function (path, d, pcom) {\n            var nx,\n              ny,\n              tq = { T: 1, Q: 1 };\n            if (!path) {\n              return ["C", d.x, d.y, d.x, d.y, d.x, d.y];\n            }\n            !(path[0] in tq) && (d.qx = d.qy = null);\n            switch (path[0]) {\n              case "M":\n                d.X = path[1];\n                d.Y = path[2];\n                break;\n              case "A":\n                path = ["C"][concat](\n                  a2c[apply](0, [d.x, d.y][concat](path.slice(1)))\n                );\n                break;\n              case "S":\n                if (pcom == "C" || pcom == "S") {\n                  // In "S" case we have to take into account, if the previous command is C/S.\n                  nx = d.x * 2 - d.bx; // And reflect the previous\n                  ny = d.y * 2 - d.by; // command\'s control point relative to the current point.\n                } else {\n                  // or some else or nothing\n                  nx = d.x;\n                  ny = d.y;\n                }\n                path = ["C", nx, ny][concat](path.slice(1));\n                break;\n              case "T":\n                if (pcom == "Q" || pcom == "T") {\n                  // In "T" case we have to take into account, if the previous command is Q/T.\n                  d.qx = d.x * 2 - d.qx; // And make a reflection similar\n                  d.qy = d.y * 2 - d.qy; // to case "S".\n                } else {\n                  // or something else or nothing\n                  d.qx = d.x;\n                  d.qy = d.y;\n                }\n                path = ["C"][concat](\n                  q2c(d.x, d.y, d.qx, d.qy, path[1], path[2])\n                );\n                break;\n              case "Q":\n                d.qx = path[1];\n                d.qy = path[2];\n                path = ["C"][concat](\n                  q2c(d.x, d.y, path[1], path[2], path[3], path[4])\n                );\n                break;\n              case "L":\n                path = ["C"][concat](l2c(d.x, d.y, path[1], path[2]));\n                break;\n              case "H":\n                path = ["C"][concat](l2c(d.x, d.y, path[1], d.y));\n                break;\n              case "V":\n                path = ["C"][concat](l2c(d.x, d.y, d.x, path[1]));\n                break;\n              case "Z":\n                path = ["C"][concat](l2c(d.x, d.y, d.X, d.Y));\n                break;\n            }\n            return path;\n          },\n          fixArc = function (pp, i) {\n            if (pp[i].length > 7) {\n              pp[i].shift();\n              var pi = pp[i];\n              while (pi.length) {\n                pcoms1[i] = "A"; // if created multiple C:s, their original seg is saved\n                p2 && (pcoms2[i] = "A"); // the same as above\n                pp.splice(i++, 0, ["C"][concat](pi.splice(0, 6)));\n              }\n              pp.splice(i, 1);\n              ii = mmax(p.length, (p2 && p2.length) || 0);\n            }\n          },\n          fixM = function (path1, path2, a1, a2, i) {\n            if (path1 && path2 && path1[i][0] == "M" && path2[i][0] != "M") {\n              path2.splice(i, 0, ["M", a2.x, a2.y]);\n              a1.bx = 0;\n              a1.by = 0;\n              a1.x = path1[i][1];\n              a1.y = path1[i][2];\n              ii = mmax(p.length, (p2 && p2.length) || 0);\n            }\n          },\n          pcoms1 = [], // path commands of original path p\n          pcoms2 = [], // path commands of original path p2\n          pfirst = "", // temporary holder for original path command\n          pcom = ""; // holder for previous path command of original path\n        for (\n          var i = 0, ii = mmax(p.length, (p2 && p2.length) || 0);\n          i < ii;\n          i++\n        ) {\n          p[i] && (pfirst = p[i][0]); // save current path command\n\n          if (pfirst != "C") {\n            // C is not saved yet, because it may be result of conversion\n            pcoms1[i] = pfirst; // Save current path command\n            i && (pcom = pcoms1[i - 1]); // Get previous path command pcom\n          }\n          p[i] = processPath(p[i], attrs, pcom); // Previous path command is inputted to processPath\n\n          if (pcoms1[i] != "A" && pfirst == "C") pcoms1[i] = "C"; // A is the only command\n          // which may produce multiple C:s\n          // so we have to make sure that C is also C in original path\n\n          fixArc(p, i); // fixArc adds also the right amount of A:s to pcoms1\n\n          if (p2) {\n            // the same procedures is done to p2\n            p2[i] && (pfirst = p2[i][0]);\n            if (pfirst != "C") {\n              pcoms2[i] = pfirst;\n              i && (pcom = pcoms2[i - 1]);\n            }\n            p2[i] = processPath(p2[i], attrs2, pcom);\n\n            if (pcoms2[i] != "A" && pfirst == "C") pcoms2[i] = "C";\n\n            fixArc(p2, i);\n          }\n          fixM(p, p2, attrs, attrs2, i);\n          fixM(p2, p, attrs2, attrs, i);\n          var seg = p[i],\n            seg2 = p2 && p2[i],\n            seglen = seg.length,\n            seg2len = p2 && seg2.length;\n          attrs.x = seg[seglen - 2];\n          attrs.y = seg[seglen - 1];\n          attrs.bx = toFloat(seg[seglen - 4]) || attrs.x;\n          attrs.by = toFloat(seg[seglen - 3]) || attrs.y;\n          attrs2.bx = p2 && (toFloat(seg2[seg2len - 4]) || attrs2.x);\n          attrs2.by = p2 && (toFloat(seg2[seg2len - 3]) || attrs2.y);\n          attrs2.x = p2 && seg2[seg2len - 2];\n          attrs2.y = p2 && seg2[seg2len - 1];\n        }\n        if (!p2) {\n          pth.curve = pathClone(p);\n        }\n        return p2 ? [p, p2] : p;\n      },\n      null,\n      pathClone\n    )),\n    parseDots = (R._parseDots = cacher(function (gradient) {\n      var dots = [];\n      for (var i = 0, ii = gradient.length; i < ii; i++) {\n        var dot = {},\n          par = gradient[i].match(/^([^:]*):?([\\d\\.]*)/);\n        dot.color = R.getRGB(par[1]);\n        if (dot.color.error) {\n          return null;\n        }\n        dot.opacity = dot.color.opacity;\n        dot.color = dot.color.hex;\n        par[2] && (dot.offset = par[2] + "%");\n        dots.push(dot);\n      }\n      for (i = 1, ii = dots.length - 1; i < ii; i++) {\n        if (!dots[i].offset) {\n          var start = toFloat(dots[i - 1].offset || 0),\n            end = 0;\n          for (var j = i + 1; j < ii; j++) {\n            if (dots[j].offset) {\n              end = dots[j].offset;\n              break;\n            }\n          }\n          if (!end) {\n            end = 100;\n            j = ii;\n          }\n          end = toFloat(end);\n          var d = (end - start) / (j - i + 1);\n          for (; i < j; i++) {\n            start += d;\n            dots[i].offset = start + "%";\n          }\n        }\n      }\n      return dots;\n    })),\n    tear = (R._tear = function (el, paper) {\n      el == paper.top && (paper.top = el.prev);\n      el == paper.bottom && (paper.bottom = el.next);\n      el.next && (el.next.prev = el.prev);\n      el.prev && (el.prev.next = el.next);\n    }),\n    tofront = (R._tofront = function (el, paper) {\n      if (paper.top === el) {\n        return;\n      }\n      tear(el, paper);\n      el.next = null;\n      el.prev = paper.top;\n      paper.top.next = el;\n      paper.top = el;\n    }),\n    toback = (R._toback = function (el, paper) {\n      if (paper.bottom === el) {\n        return;\n      }\n      tear(el, paper);\n      el.next = paper.bottom;\n      el.prev = null;\n      paper.bottom.prev = el;\n      paper.bottom = el;\n    }),\n    insertafter = (R._insertafter = function (el, el2, paper) {\n      tear(el, paper);\n      el2 == paper.top && (paper.top = el);\n      el2.next && (el2.next.prev = el);\n      el.next = el2.next;\n      el.prev = el2;\n      el2.next = el;\n    }),\n    insertbefore = (R._insertbefore = function (el, el2, paper) {\n      tear(el, paper);\n      el2 == paper.bottom && (paper.bottom = el);\n      el2.prev && (el2.prev.next = el);\n      el.prev = el2.prev;\n      el2.prev = el;\n      el.next = el2;\n    }),\n    /*\\\n     * Raphael.toMatrix\n     [ method ]\n     **\n     * Utility method\n     **\n     * Returns matrix of transformations applied to a given path\n     > Parameters\n     - path (string) path string\n     - transform (string|array) transformation string\n     = (object) @Matrix\n     \\*/\n    toMatrix = (R.toMatrix = function (path, transform) {\n      var bb = pathDimensions(path),\n        el = {\n          _: {\n            transform: E,\n          },\n          getBBox: function () {\n            return bb;\n          },\n        };\n      extractTransform(el, transform);\n      return el.matrix;\n    }),\n    /*\\\n     * Raphael.transformPath\n     [ method ]\n     **\n     * Utility method\n     **\n     * Returns path transformed by a given transformation\n     > Parameters\n     - path (string) path string\n     - transform (string|array) transformation string\n     = (string) path\n     \\*/\n    transformPath = (R.transformPath = function (path, transform) {\n      return mapPath(path, toMatrix(path, transform));\n    }),\n    extractTransform = (R._extractTransform = function (el, tstr) {\n      if (tstr == null) {\n        return el._.transform;\n      }\n      tstr = Str(tstr).replace(/\\.{3}|\\u2026/g, el._.transform || E);\n      var tdata = R.parseTransformString(tstr),\n        deg = 0,\n        dx = 0,\n        dy = 0,\n        sx = 1,\n        sy = 1,\n        _ = el._,\n        m = new Matrix();\n      _.transform = tdata || [];\n      if (tdata) {\n        for (var i = 0, ii = tdata.length; i < ii; i++) {\n          var t = tdata[i],\n            tlen = t.length,\n            command = Str(t[0]).toLowerCase(),\n            absolute = t[0] != command,\n            inver = absolute ? m.invert() : 0,\n            x1,\n            y1,\n            x2,\n            y2,\n            bb;\n          if (command == "t" && tlen == 3) {\n            if (absolute) {\n              x1 = inver.x(0, 0);\n              y1 = inver.y(0, 0);\n              x2 = inver.x(t[1], t[2]);\n              y2 = inver.y(t[1], t[2]);\n              m.translate(x2 - x1, y2 - y1);\n            } else {\n              m.translate(t[1], t[2]);\n            }\n          } else if (command == "r") {\n            if (tlen == 2) {\n              bb = bb || el.getBBox(1);\n              m.rotate(t[1], bb.x + bb.width / 2, bb.y + bb.height / 2);\n              deg += t[1];\n            } else if (tlen == 4) {\n              if (absolute) {\n                x2 = inver.x(t[2], t[3]);\n                y2 = inver.y(t[2], t[3]);\n                m.rotate(t[1], x2, y2);\n              } else {\n                m.rotate(t[1], t[2], t[3]);\n              }\n              deg += t[1];\n            }\n          } else if (command == "s") {\n            if (tlen == 2 || tlen == 3) {\n              bb = bb || el.getBBox(1);\n              m.scale(\n                t[1],\n                t[tlen - 1],\n                bb.x + bb.width / 2,\n                bb.y + bb.height / 2\n              );\n              sx *= t[1];\n              sy *= t[tlen - 1];\n            } else if (tlen == 5) {\n              if (absolute) {\n                x2 = inver.x(t[3], t[4]);\n                y2 = inver.y(t[3], t[4]);\n                m.scale(t[1], t[2], x2, y2);\n              } else {\n                m.scale(t[1], t[2], t[3], t[4]);\n              }\n              sx *= t[1];\n              sy *= t[2];\n            }\n          } else if (command == "m" && tlen == 7) {\n            m.add(t[1], t[2], t[3], t[4], t[5], t[6]);\n          }\n          _.dirtyT = 1;\n          el.matrix = m;\n        }\n      }\n\n      /*\\\n             * Element.matrix\n             [ property (object) ]\n             **\n             * Keeps @Matrix object, which represents element transformation\n             \\*/\n      el.matrix = m;\n\n      _.sx = sx;\n      _.sy = sy;\n      _.deg = deg;\n      _.dx = dx = m.e;\n      _.dy = dy = m.f;\n\n      if (sx == 1 && sy == 1 && !deg && _.bbox) {\n        _.bbox.x += +dx;\n        _.bbox.y += +dy;\n      } else {\n        _.dirtyT = 1;\n      }\n    }),\n    getEmpty = function (item) {\n      var l = item[0];\n      switch (l.toLowerCase()) {\n        case "t":\n          return [l, 0, 0];\n        case "m":\n          return [l, 1, 0, 0, 1, 0, 0];\n        case "r":\n          if (item.length == 4) {\n            return [l, 0, item[2], item[3]];\n          } else {\n            return [l, 0];\n          }\n        case "s":\n          if (item.length == 5) {\n            return [l, 1, 1, item[3], item[4]];\n          } else if (item.length == 3) {\n            return [l, 1, 1];\n          } else {\n            return [l, 1];\n          }\n      }\n    },\n    equaliseTransform = (R._equaliseTransform = function (t1, t2) {\n      t2 = Str(t2).replace(/\\.{3}|\\u2026/g, t1);\n      t1 = R.parseTransformString(t1) || [];\n      t2 = R.parseTransformString(t2) || [];\n      var maxlength = mmax(t1.length, t2.length),\n        from = [],\n        to = [],\n        i = 0,\n        j,\n        jj,\n        tt1,\n        tt2;\n      for (; i < maxlength; i++) {\n        tt1 = t1[i] || getEmpty(t2[i]);\n        tt2 = t2[i] || getEmpty(tt1);\n        if (\n          tt1[0] != tt2[0] ||\n          (tt1[0].toLowerCase() == "r" &&\n            (tt1[2] != tt2[2] || tt1[3] != tt2[3])) ||\n          (tt1[0].toLowerCase() == "s" &&\n            (tt1[3] != tt2[3] || tt1[4] != tt2[4]))\n        ) {\n          return;\n        }\n        from[i] = [];\n        to[i] = [];\n        for (j = 0, jj = mmax(tt1.length, tt2.length); j < jj; j++) {\n          j in tt1 && (from[i][j] = tt1[j]);\n          j in tt2 && (to[i][j] = tt2[j]);\n        }\n      }\n      return {\n        from: from,\n        to: to,\n      };\n    });\n  R._getContainer = function (x, y, w, h) {\n    var container;\n    container = h == null && !R.is(x, "object") ? g.doc.getElementById(x) : x;\n    if (container == null) {\n      return;\n    }\n    if (container.tagName) {\n      if (y == null) {\n        return {\n          container: container,\n          width: container.style.pixelWidth || container.offsetWidth,\n          height: container.style.pixelHeight || container.offsetHeight,\n        };\n      } else {\n        return {\n          container: container,\n          width: y,\n          height: w,\n        };\n      }\n    }\n    return {\n      container: 1,\n      x: x,\n      y: y,\n      width: w,\n      height: h,\n    };\n  };\n  /*\\\n     * Raphael.pathToRelative\n     [ method ]\n     **\n     * Utility method\n     **\n     * Converts path to relative form\n     > Parameters\n     - pathString (string|array) path string or array of segments\n     = (array) array of segments.\n     \\*/\n  R.pathToRelative = pathToRelative;\n  R._engine = {};\n  /*\\\n     * Raphael.path2curve\n     [ method ]\n     **\n     * Utility method\n     **\n     * Converts path to a new path where all segments are cubic bezier curves.\n     > Parameters\n     - pathString (string|array) path string or array of segments\n     = (array) array of segments.\n     \\*/\n  R.path2curve = path2curve;\n  /*\\\n     * Raphael.matrix\n     [ method ]\n     **\n     * Utility method\n     **\n     * Returns matrix based on given parameters.\n     > Parameters\n     - a (number)\n     - b (number)\n     - c (number)\n     - d (number)\n     - e (number)\n     - f (number)\n     = (object) @Matrix\n     \\*/\n  R.matrix = function (a, b, c, d, e, f) {\n    return new Matrix(a, b, c, d, e, f);\n  };\n  function Matrix(a, b, c, d, e, f) {\n    if (a != null) {\n      this.a = +a;\n      this.b = +b;\n      this.c = +c;\n      this.d = +d;\n      this.e = +e;\n      this.f = +f;\n    } else {\n      this.a = 1;\n      this.b = 0;\n      this.c = 0;\n      this.d = 1;\n      this.e = 0;\n      this.f = 0;\n    }\n  }\n  (function (matrixproto) {\n    /*\\\n         * Matrix.add\n         [ method ]\n         **\n         * Adds given matrix to existing one.\n         > Parameters\n         - a (number)\n         - b (number)\n         - c (number)\n         - d (number)\n         - e (number)\n         - f (number)\n         or\n         - matrix (object) @Matrix\n         \\*/\n    matrixproto.add = function (a, b, c, d, e, f) {\n      var out = [[], [], []],\n        m = [\n          [this.a, this.c, this.e],\n          [this.b, this.d, this.f],\n          [0, 0, 1],\n        ],\n        matrix = [\n          [a, c, e],\n          [b, d, f],\n          [0, 0, 1],\n        ],\n        x,\n        y,\n        z,\n        res;\n\n      if (a && a instanceof Matrix) {\n        matrix = [\n          [a.a, a.c, a.e],\n          [a.b, a.d, a.f],\n          [0, 0, 1],\n        ];\n      }\n\n      for (x = 0; x < 3; x++) {\n        for (y = 0; y < 3; y++) {\n          res = 0;\n          for (z = 0; z < 3; z++) {\n            res += m[x][z] * matrix[z][y];\n          }\n          out[x][y] = res;\n        }\n      }\n      this.a = out[0][0];\n      this.b = out[1][0];\n      this.c = out[0][1];\n      this.d = out[1][1];\n      this.e = out[0][2];\n      this.f = out[1][2];\n    };\n    /*\\\n         * Matrix.invert\n         [ method ]\n         **\n         * Returns inverted version of the matrix\n         = (object) @Matrix\n         \\*/\n    matrixproto.invert = function () {\n      var me = this,\n        x = me.a * me.d - me.b * me.c;\n      return new Matrix(\n        me.d / x,\n        -me.b / x,\n        -me.c / x,\n        me.a / x,\n        (me.c * me.f - me.d * me.e) / x,\n        (me.b * me.e - me.a * me.f) / x\n      );\n    };\n    /*\\\n         * Matrix.clone\n         [ method ]\n         **\n         * Returns copy of the matrix\n         = (object) @Matrix\n         \\*/\n    matrixproto.clone = function () {\n      return new Matrix(this.a, this.b, this.c, this.d, this.e, this.f);\n    };\n    /*\\\n         * Matrix.translate\n         [ method ]\n         **\n         * Translate the matrix\n         > Parameters\n         - x (number)\n         - y (number)\n         \\*/\n    matrixproto.translate = function (x, y) {\n      this.add(1, 0, 0, 1, x, y);\n    };\n    /*\\\n         * Matrix.scale\n         [ method ]\n         **\n         * Scales the matrix\n         > Parameters\n         - x (number)\n         - y (number) #optional\n         - cx (number) #optional\n         - cy (number) #optional\n         \\*/\n    matrixproto.scale = function (x, y, cx, cy) {\n      y == null && (y = x);\n      (cx || cy) && this.add(1, 0, 0, 1, cx, cy);\n      this.add(x, 0, 0, y, 0, 0);\n      (cx || cy) && this.add(1, 0, 0, 1, -cx, -cy);\n    };\n    /*\\\n         * Matrix.rotate\n         [ method ]\n         **\n         * Rotates the matrix\n         > Parameters\n         - a (number)\n         - x (number)\n         - y (number)\n         \\*/\n    matrixproto.rotate = function (a, x, y) {\n      a = R.rad(a);\n      x = x || 0;\n      y = y || 0;\n      var cos = +math.cos(a).toFixed(9),\n        sin = +math.sin(a).toFixed(9);\n      this.add(cos, sin, -sin, cos, x, y);\n      this.add(1, 0, 0, 1, -x, -y);\n    };\n    /*\\\n         * Matrix.x\n         [ method ]\n         **\n         * Return x coordinate for given point after transformation described by the matrix. See also @Matrix.y\n         > Parameters\n         - x (number)\n         - y (number)\n         = (number) x\n         \\*/\n    matrixproto.x = function (x, y) {\n      return x * this.a + y * this.c + this.e;\n    };\n    /*\\\n         * Matrix.y\n         [ method ]\n         **\n         * Return y coordinate for given point after transformation described by the matrix. See also @Matrix.x\n         > Parameters\n         - x (number)\n         - y (number)\n         = (number) y\n         \\*/\n    matrixproto.y = function (x, y) {\n      return x * this.b + y * this.d + this.f;\n    };\n    matrixproto.get = function (i) {\n      return +this[Str.fromCharCode(97 + i)].toFixed(4);\n    };\n    matrixproto.toString = function () {\n      return R.svg\n        ? "matrix(" +\n            [\n              this.get(0),\n              this.get(1),\n              this.get(2),\n              this.get(3),\n              this.get(4),\n              this.get(5),\n            ].join() +\n            ")"\n        : [this.get(0), this.get(2), this.get(1), this.get(3), 0, 0].join();\n    };\n    matrixproto.toFilter = function () {\n      return (\n        "progid:DXImageTransform.Microsoft.Matrix(M11=" +\n        this.get(0) +\n        ", M12=" +\n        this.get(2) +\n        ", M21=" +\n        this.get(1) +\n        ", M22=" +\n        this.get(3) +\n        ", Dx=" +\n        this.get(4) +\n        ", Dy=" +\n        this.get(5) +\n        ", sizingmethod=\'auto expand\')"\n      );\n    };\n    matrixproto.offset = function () {\n      return [this.e.toFixed(4), this.f.toFixed(4)];\n    };\n    function norm(a) {\n      return a[0] * a[0] + a[1] * a[1];\n    }\n    function normalize(a) {\n      var mag = math.sqrt(norm(a));\n      a[0] && (a[0] /= mag);\n      a[1] && (a[1] /= mag);\n    }\n    /*\\\n         * Matrix.split\n         [ method ]\n         **\n         * Splits matrix into primitive transformations\n         = (object) in format:\n         o dx (number) translation by x\n         o dy (number) translation by y\n         o scalex (number) scale by x\n         o scaley (number) scale by y\n         o shear (number) shear\n         o rotate (number) rotation in deg\n         o isSimple (boolean) could it be represented via simple transformations\n         \\*/\n    matrixproto.split = function () {\n      var out = {};\n      // translation\n      out.dx = this.e;\n      out.dy = this.f;\n\n      // scale and shear\n      var row = [\n        [this.a, this.c],\n        [this.b, this.d],\n      ];\n      out.scalex = math.sqrt(norm(row[0]));\n      normalize(row[0]);\n\n      out.shear = row[0][0] * row[1][0] + row[0][1] * row[1][1];\n      row[1] = [\n        row[1][0] - row[0][0] * out.shear,\n        row[1][1] - row[0][1] * out.shear,\n      ];\n\n      out.scaley = math.sqrt(norm(row[1]));\n      normalize(row[1]);\n      out.shear /= out.scaley;\n\n      // rotation\n      var sin = -row[0][1],\n        cos = row[1][1];\n      if (cos < 0) {\n        out.rotate = R.deg(math.acos(cos));\n        if (sin < 0) {\n          out.rotate = 360 - out.rotate;\n        }\n      } else {\n        out.rotate = R.deg(math.asin(sin));\n      }\n\n      out.isSimple =\n        !+out.shear.toFixed(9) &&\n        (out.scalex.toFixed(9) == out.scaley.toFixed(9) || !out.rotate);\n      out.isSuperSimple =\n        !+out.shear.toFixed(9) &&\n        out.scalex.toFixed(9) == out.scaley.toFixed(9) &&\n        !out.rotate;\n      out.noRotation = !+out.shear.toFixed(9) && !out.rotate;\n      return out;\n    };\n    /*\\\n         * Matrix.toTransformString\n         [ method ]\n         **\n         * Return transform string that represents given matrix\n         = (string) transform string\n         \\*/\n    matrixproto.toTransformString = function (shorter) {\n      var s = shorter || this[split]();\n      if (s.isSimple) {\n        s.scalex = +s.scalex.toFixed(4);\n        s.scaley = +s.scaley.toFixed(4);\n        s.rotate = +s.rotate.toFixed(4);\n        return (\n          (s.dx || s.dy ? "t" + [s.dx, s.dy] : E) +\n          (s.scalex != 1 || s.scaley != 1\n            ? "s" + [s.scalex, s.scaley, 0, 0]\n            : E) +\n          (s.rotate ? "r" + [s.rotate, 0, 0] : E)\n        );\n      } else {\n        return (\n          "m" +\n          [\n            this.get(0),\n            this.get(1),\n            this.get(2),\n            this.get(3),\n            this.get(4),\n            this.get(5),\n          ]\n        );\n      }\n    };\n  })(Matrix.prototype);\n\n  var preventDefault = function () {\n      this.returnValue = false;\n    },\n    preventTouch = function () {\n      return this.originalEvent.preventDefault();\n    },\n    stopPropagation = function () {\n      this.cancelBubble = true;\n    },\n    stopTouch = function () {\n      return this.originalEvent.stopPropagation();\n    },\n    getEventPosition = function (e) {\n      var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\n        scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft;\n\n      return {\n        x: e.clientX + scrollX,\n        y: e.clientY + scrollY,\n      };\n    },\n    addEvent = (function () {\n      if (g.doc.addEventListener) {\n        return function (obj, type, fn, element) {\n          var f = function (e) {\n            var pos = getEventPosition(e);\n            return fn.call(element, e, pos.x, pos.y);\n          };\n          obj.addEventListener(type, f, false);\n\n          if (supportsTouch && touchMap[type]) {\n            var _f = function (e) {\n              var pos = getEventPosition(e),\n                olde = e;\n\n              for (\n                var i = 0, ii = e.targetTouches && e.targetTouches.length;\n                i < ii;\n                i++\n              ) {\n                if (e.targetTouches[i].target == obj) {\n                  e = e.targetTouches[i];\n                  e.originalEvent = olde;\n                  e.preventDefault = preventTouch;\n                  e.stopPropagation = stopTouch;\n                  break;\n                }\n              }\n\n              return fn.call(element, e, pos.x, pos.y);\n            };\n            obj.addEventListener(touchMap[type], _f, false);\n          }\n\n          return function () {\n            obj.removeEventListener(type, f, false);\n\n            if (supportsTouch && touchMap[type])\n              obj.removeEventListener(touchMap[type], _f, false);\n\n            return true;\n          };\n        };\n      } else if (g.doc.attachEvent) {\n        return function (obj, type, fn, element) {\n          var f = function (e) {\n            e = e || g.win.event;\n            var scrollY =\n                g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\n              scrollX =\n                g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft,\n              x = e.clientX + scrollX,\n              y = e.clientY + scrollY;\n            e.preventDefault = e.preventDefault || preventDefault;\n            e.stopPropagation = e.stopPropagation || stopPropagation;\n            return fn.call(element, e, x, y);\n          };\n          obj.attachEvent("on" + type, f);\n          var detacher = function () {\n            obj.detachEvent("on" + type, f);\n            return true;\n          };\n          return detacher;\n        };\n      }\n    })(),\n    drag = [],\n    dragMove = function (e) {\n      var x = e.clientX,\n        y = e.clientY,\n        scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\n        scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft,\n        dragi,\n        j = drag.length;\n      while (j--) {\n        dragi = drag[j];\n        if (supportsTouch && e.touches) {\n          var i = e.touches.length,\n            touch;\n          while (i--) {\n            touch = e.touches[i];\n            if (touch.identifier == dragi.el._drag.id) {\n              x = touch.clientX;\n              y = touch.clientY;\n              (e.originalEvent ? e.originalEvent : e).preventDefault();\n              break;\n            }\n          }\n        } else {\n          e.preventDefault();\n        }\n        var node = dragi.el.node,\n          o,\n          next = node.nextSibling,\n          parent = node.parentNode,\n          display = node.style.display;\n        g.win.opera && parent.removeChild(node);\n        node.style.display = "none";\n        o = dragi.el.paper.getElementByPoint(x, y);\n        node.style.display = display;\n        g.win.opera &&\n          (next ? parent.insertBefore(node, next) : parent.appendChild(node));\n        o && eve("raphael.drag.over." + dragi.el.id, dragi.el, o);\n        x += scrollX;\n        y += scrollY;\n        eve(\n          "raphael.drag.move." + dragi.el.id,\n          dragi.move_scope || dragi.el,\n          x - dragi.el._drag.x,\n          y - dragi.el._drag.y,\n          x,\n          y,\n          e\n        );\n      }\n    },\n    dragUp = function (e) {\n      R.unmousemove(dragMove).unmouseup(dragUp);\n      var i = drag.length,\n        dragi;\n      while (i--) {\n        dragi = drag[i];\n        dragi.el._drag = {};\n        eve(\n          "raphael.drag.end." + dragi.el.id,\n          dragi.end_scope || dragi.start_scope || dragi.move_scope || dragi.el,\n          e\n        );\n      }\n      drag = [];\n    },\n    /*\\\n     * Raphael.el\n     [ property (object) ]\n     **\n     * You can add your own method to elements. This is usefull when you want to hack default functionality or\n     * want to wrap some common transformation or attributes in one method. In difference to canvas methods,\n     * you can redefine element method at any time. Expending element methods wouldn’t affect set.\n     > Usage\n     | Raphael.el.red = function () {\n     |     this.attr({fill: "#f00"});\n     | };\n     | // then use it\n     | paper.circle(100, 100, 20).red();\n     \\*/\n    elproto = (R.el = {});\n  /*\\\n     * Element.click\n     [ method ]\n     **\n     * Adds event handler for click for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n  /*\\\n     * Element.unclick\n     [ method ]\n     **\n     * Removes event handler for click for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n\n  /*\\\n     * Element.dblclick\n     [ method ]\n     **\n     * Adds event handler for double click for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n  /*\\\n     * Element.undblclick\n     [ method ]\n     **\n     * Removes event handler for double click for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n\n  /*\\\n     * Element.mousedown\n     [ method ]\n     **\n     * Adds event handler for mousedown for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n  /*\\\n     * Element.unmousedown\n     [ method ]\n     **\n     * Removes event handler for mousedown for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n\n  /*\\\n     * Element.mousemove\n     [ method ]\n     **\n     * Adds event handler for mousemove for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n  /*\\\n     * Element.unmousemove\n     [ method ]\n     **\n     * Removes event handler for mousemove for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n\n  /*\\\n     * Element.mouseout\n     [ method ]\n     **\n     * Adds event handler for mouseout for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n  /*\\\n     * Element.unmouseout\n     [ method ]\n     **\n     * Removes event handler for mouseout for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n\n  /*\\\n     * Element.mouseover\n     [ method ]\n     **\n     * Adds event handler for mouseover for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n  /*\\\n     * Element.unmouseover\n     [ method ]\n     **\n     * Removes event handler for mouseover for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n\n  /*\\\n     * Element.mouseup\n     [ method ]\n     **\n     * Adds event handler for mouseup for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n  /*\\\n     * Element.unmouseup\n     [ method ]\n     **\n     * Removes event handler for mouseup for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n\n  /*\\\n     * Element.touchstart\n     [ method ]\n     **\n     * Adds event handler for touchstart for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n  /*\\\n     * Element.untouchstart\n     [ method ]\n     **\n     * Removes event handler for touchstart for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n\n  /*\\\n     * Element.touchmove\n     [ method ]\n     **\n     * Adds event handler for touchmove for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n  /*\\\n     * Element.untouchmove\n     [ method ]\n     **\n     * Removes event handler for touchmove for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n\n  /*\\\n     * Element.touchend\n     [ method ]\n     **\n     * Adds event handler for touchend for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n  /*\\\n     * Element.untouchend\n     [ method ]\n     **\n     * Removes event handler for touchend for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n\n  /*\\\n     * Element.touchcancel\n     [ method ]\n     **\n     * Adds event handler for touchcancel for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n  /*\\\n     * Element.untouchcancel\n     [ method ]\n     **\n     * Removes event handler for touchcancel for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n  for (var i = events.length; i--; ) {\n    (function (eventName) {\n      R[eventName] = elproto[eventName] = function (fn, scope) {\n        if (R.is(fn, "function")) {\n          this.events = this.events || [];\n          this.events.push({\n            name: eventName,\n            f: fn,\n            unbind: addEvent(\n              this.shape || this.node || g.doc,\n              eventName,\n              fn,\n              scope || this\n            ),\n          });\n        }\n        return this;\n      };\n      R["un" + eventName] = elproto["un" + eventName] = function (fn) {\n        var events = this.events || [],\n          l = events.length;\n        while (l--) {\n          if (\n            events[l].name == eventName &&\n            (R.is(fn, "undefined") || events[l].f == fn)\n          ) {\n            events[l].unbind();\n            events.splice(l, 1);\n            !events.length && delete this.events;\n          }\n        }\n        return this;\n      };\n    })(events[i]);\n  }\n\n  /*\\\n     * Element.data\n     [ method ]\n     **\n     * Adds or retrieves given value asociated with given key.\n     **\n     * See also @Element.removeData\n     > Parameters\n     - key (string) key to store data\n     - value (any) #optional value to store\n     = (object) @Element\n     * or, if value is not specified:\n     = (any) value\n     * or, if key and value are not specified:\n     = (object) Key/value pairs for all the data associated with the element.\n     > Usage\n     | for (var i = 0, i < 5, i++) {\n     |     paper.circle(10 + 15 * i, 10, 10)\n     |          .attr({fill: "#000"})\n     |          .data("i", i)\n     |          .click(function () {\n     |             alert(this.data("i"));\n     |          });\n     | }\n     \\*/\n  elproto.data = function (key, value) {\n    var data = (eldata[this.id] = eldata[this.id] || {});\n    if (arguments.length == 0) {\n      return data;\n    }\n    if (arguments.length == 1) {\n      if (R.is(key, "object")) {\n        for (var i in key)\n          if (key[has](i)) {\n            this.data(i, key[i]);\n          }\n        return this;\n      }\n      eve("raphael.data.get." + this.id, this, data[key], key);\n      return data[key];\n    }\n    data[key] = value;\n    eve("raphael.data.set." + this.id, this, value, key);\n    return this;\n  };\n  /*\\\n     * Element.removeData\n     [ method ]\n     **\n     * Removes value associated with an element by given key.\n     * If key is not provided, removes all the data of the element.\n     > Parameters\n     - key (string) #optional key\n     = (object) @Element\n     \\*/\n  elproto.removeData = function (key) {\n    if (key == null) {\n      eldata[this.id] = {};\n    } else {\n      eldata[this.id] && delete eldata[this.id][key];\n    }\n    return this;\n  };\n  /*\\\n     * Element.getData\n     [ method ]\n     **\n     * Retrieves the element data\n     = (object) data\n     \\*/\n  elproto.getData = function () {\n    return clone(eldata[this.id] || {});\n  };\n  /*\\\n     * Element.hover\n     [ method ]\n     **\n     * Adds event handlers for hover for the element.\n     > Parameters\n     - f_in (function) handler for hover in\n     - f_out (function) handler for hover out\n     - icontext (object) #optional context for hover in handler\n     - ocontext (object) #optional context for hover out handler\n     = (object) @Element\n     \\*/\n  elproto.hover = function (f_in, f_out, scope_in, scope_out) {\n    return this.mouseover(f_in, scope_in).mouseout(\n      f_out,\n      scope_out || scope_in\n    );\n  };\n  /*\\\n     * Element.unhover\n     [ method ]\n     **\n     * Removes event handlers for hover for the element.\n     > Parameters\n     - f_in (function) handler for hover in\n     - f_out (function) handler for hover out\n     = (object) @Element\n     \\*/\n  elproto.unhover = function (f_in, f_out) {\n    return this.unmouseover(f_in).unmouseout(f_out);\n  };\n  var draggable = [];\n  /*\\\n     * Element.drag\n     [ method ]\n     **\n     * Adds event handlers for drag of the element.\n     > Parameters\n     - onmove (function) handler for moving\n     - onstart (function) handler for drag start\n     - onend (function) handler for drag end\n     - mcontext (object) #optional context for moving handler\n     - scontext (object) #optional context for drag start handler\n     - econtext (object) #optional context for drag end handler\n     * Additionaly following `drag` events will be triggered: `drag.start.<id>` on start,\n     * `drag.end.<id>` on end and `drag.move.<id>` on every move. When element will be dragged over another element\n     * `drag.over.<id>` will be fired as well.\n     *\n     * Start event and start handler will be called in specified context or in context of the element with following parameters:\n     o x (number) x position of the mouse\n     o y (number) y position of the mouse\n     o event (object) DOM event object\n     * Move event and move handler will be called in specified context or in context of the element with following parameters:\n     o dx (number) shift by x from the start point\n     o dy (number) shift by y from the start point\n     o x (number) x position of the mouse\n     o y (number) y position of the mouse\n     o event (object) DOM event object\n     * End event and end handler will be called in specified context or in context of the element with following parameters:\n     o event (object) DOM event object\n     = (object) @Element\n     \\*/\n  elproto.drag = function (\n    onmove,\n    onstart,\n    onend,\n    move_scope,\n    start_scope,\n    end_scope\n  ) {\n    function start(e) {\n      (e.originalEvent || e).preventDefault();\n      var x = e.clientX,\n        y = e.clientY,\n        scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\n        scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft;\n      this._drag.id = e.identifier;\n      if (supportsTouch && e.touches) {\n        var i = e.touches.length,\n          touch;\n        while (i--) {\n          touch = e.touches[i];\n          this._drag.id = touch.identifier;\n          if (touch.identifier == this._drag.id) {\n            x = touch.clientX;\n            y = touch.clientY;\n            break;\n          }\n        }\n      }\n      this._drag.x = x + scrollX;\n      this._drag.y = y + scrollY;\n      !drag.length && R.mousemove(dragMove).mouseup(dragUp);\n      drag.push({\n        el: this,\n        move_scope: move_scope,\n        start_scope: start_scope,\n        end_scope: end_scope,\n      });\n      onstart && eve.on("raphael.drag.start." + this.id, onstart);\n      onmove && eve.on("raphael.drag.move." + this.id, onmove);\n      onend && eve.on("raphael.drag.end." + this.id, onend);\n      eve(\n        "raphael.drag.start." + this.id,\n        start_scope || move_scope || this,\n        e.clientX + scrollX,\n        e.clientY + scrollY,\n        e\n      );\n    }\n    this._drag = {};\n    draggable.push({ el: this, start: start });\n    this.mousedown(start);\n    return this;\n  };\n  /*\\\n     * Element.onDragOver\n     [ method ]\n     **\n     * Shortcut for assigning event handler for `drag.over.<id>` event, where id is id of the element (see @Element.id).\n     > Parameters\n     - f (function) handler for event, first argument would be the element you are dragging over\n     \\*/\n  elproto.onDragOver = function (f) {\n    f\n      ? eve.on("raphael.drag.over." + this.id, f)\n      : eve.unbind("raphael.drag.over." + this.id);\n  };\n  /*\\\n     * Element.undrag\n     [ method ]\n     **\n     * Removes all drag event handlers from given element.\n     \\*/\n  elproto.undrag = function () {\n    var i = draggable.length;\n    while (i--)\n      if (draggable[i].el == this) {\n        this.unmousedown(draggable[i].start);\n        draggable.splice(i, 1);\n        eve.unbind("raphael.drag.*." + this.id);\n      }\n    !draggable.length && R.unmousemove(dragMove).unmouseup(dragUp);\n    drag = [];\n  };\n  paperproto.group = function () {\n    var out = R._engine.group(this);\n    this.__set__ && this.__set__.push(out);\n    out.canvas = out.node; //节点添加方法，都是在canvas属性的结点上添加，所以增加属性，指向自己的结点\n    var t = "circle,ellipse,image,path,print,rect,text".split(","); //"circle,ellipse,image,path,print,rect,text"方法扩展\n    for (var i = 0, len = t.length; i < len; i++) {\n      out[t[i]] = (function (key) {\n        return function () {\n          return paperproto[key].apply(this, arguments);\n        };\n      })(t[i]);\n    }\n    return out;\n  };\n  /*\\\n     * Paper.circle\n     [ method ]\n     **\n     * Draws a circle.\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the centre\n     - y (number) y coordinate of the centre\n     - r (number) radius\n     = (object) Raphaël element object with type “circle”\n     **\n     > Usage\n     | var c = paper.circle(50, 50, 40);\n     \\*/\n  paperproto.circle = function (x, y, r) {\n    var out = R._engine.circle(this, x || 0, y || 0, r || 0);\n    this.__set__ && this.__set__.push(out);\n    return out;\n  };\n  /*\\\n     * Paper.rect\n     [ method ]\n     *\n     * Draws a rectangle.\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the top left corner\n     - y (number) y coordinate of the top left corner\n     - width (number) width\n     - height (number) height\n     - r (number) #optional radius for rounded corners, default is 0\n     = (object) Raphaël element object with type “rect”\n     **\n     > Usage\n     | // regular rectangle\n     | var c = paper.rect(10, 10, 50, 50);\n     | // rectangle with rounded corners\n     | var c = paper.rect(40, 40, 50, 50, 10);\n     \\*/\n  paperproto.rect = function (x, y, w, h, r) {\n    var out = R._engine.rect(this, x || 0, y || 0, w || 0, h || 0, r || 0);\n    this.__set__ && this.__set__.push(out);\n    return out;\n  };\n  /*\\\n     * Paper.ellipse\n     [ method ]\n     **\n     * Draws an ellipse.\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the centre\n     - y (number) y coordinate of the centre\n     - rx (number) horizontal radius\n     - ry (number) vertical radius\n     = (object) Raphaël element object with type “ellipse”\n     **\n     > Usage\n     | var c = paper.ellipse(50, 50, 40, 20);\n     \\*/\n  paperproto.ellipse = function (x, y, rx, ry) {\n    var out = R._engine.ellipse(this, x || 0, y || 0, rx || 0, ry || 0);\n    this.__set__ && this.__set__.push(out);\n    return out;\n  };\n  /*\\\n     * Paper.path\n     [ method ]\n     **\n     * Creates a path element by given path data string.\n     > Parameters\n     - pathString (string) #optional path string in SVG format.\n     * Path string consists of one-letter commands, followed by comma seprarated arguments in numercal form. Example:\n     | "M10,20L30,40"\n     * Here we can see two commands: “M”, with arguments `(10, 20)` and “L” with arguments `(30, 40)`. Upper case letter mean command is absolute, lower case—relative.\n     *\n     # <p>Here is short list of commands available, for more details see <a href="http://www.w3.org/TR/SVG/paths.html#PathData" title="Details of a path\'s data attribute\'s format are described in the SVG specification.">SVG path string format</a>.</p>\n     # <table><thead><tr><th>Command</th><th>Name</th><th>Parameters</th></tr></thead><tbody>\n     # <tr><td>M</td><td>moveto</td><td>(x y)+</td></tr>\n     # <tr><td>Z</td><td>closepath</td><td>(none)</td></tr>\n     # <tr><td>L</td><td>lineto</td><td>(x y)+</td></tr>\n     # <tr><td>H</td><td>horizontal lineto</td><td>x+</td></tr>\n     # <tr><td>V</td><td>vertical lineto</td><td>y+</td></tr>\n     # <tr><td>C</td><td>curveto</td><td>(x1 y1 x2 y2 x y)+</td></tr>\n     # <tr><td>S</td><td>smooth curveto</td><td>(x2 y2 x y)+</td></tr>\n     # <tr><td>Q</td><td>quadratic Bézier curveto</td><td>(x1 y1 x y)+</td></tr>\n     # <tr><td>T</td><td>smooth quadratic Bézier curveto</td><td>(x y)+</td></tr>\n     # <tr><td>A</td><td>elliptical arc</td><td>(rx ry x-axis-rotation large-arc-flag sweep-flag x y)+</td></tr>\n     # <tr><td>R</td><td><a href="http://en.wikipedia.org/wiki/Catmull–Rom_spline#Catmull.E2.80.93Rom_spline">Catmull-Rom curveto</a>*</td><td>x1 y1 (x y)+</td></tr></tbody></table>\n     * * “Catmull-Rom curveto” is a not standard SVG command and added in 2.0 to make life easier.\n     * Note: there is a special case when path consist of just three commands: “M10,10R…z”. In this case path will smoothly connects to its beginning.\n     > Usage\n     | var c = paper.path("M10 10L90 90");\n     | // draw a diagonal line:\n     | // move to 10,10, line to 90,90\n     * For example of path strings, check out these icons: http://raphaeljs.com/icons/\n     \\*/\n  paperproto.path = function (pathString) {\n    pathString &&\n      !R.is(pathString, string) &&\n      !R.is(pathString[0], array) &&\n      (pathString += E);\n    var out = R._engine.path(R.format[apply](R, arguments), this);\n    this.__set__ && this.__set__.push(out);\n    return out;\n  };\n  /*\\\n     * Paper.image\n     [ method ]\n     **\n     * Embeds an image into the surface.\n     **\n     > Parameters\n     **\n     - src (string) URI of the source image\n     - x (number) x coordinate position\n     - y (number) y coordinate position\n     - width (number) width of the image\n     - height (number) height of the image\n     = (object) Raphaël element object with type “image”\n     **\n     > Usage\n     | var c = paper.image("apple.png", 10, 10, 80, 80);\n     \\*/\n  paperproto.image = function (src, x, y, w, h) {\n    var out = R._engine.image(\n      this,\n      src || "about:blank",\n      x || 0,\n      y || 0,\n      w || 0,\n      h || 0\n    );\n    this.__set__ && this.__set__.push(out);\n    return out;\n  };\n  /*\\\n     * Paper.text\n     [ method ]\n     **\n     * Draws a text string. If you need line breaks, put “\\n” in the string.\n     **\n     > Parameters\n     **\n     - x (number) x coordinate position\n     - y (number) y coordinate position\n     - text (string) The text string to draw\n     = (object) Raphaël element object with type “text”\n     **\n     > Usage\n     | var t = paper.text(50, 50, "Raphaël\\nkicks\\nbutt!");\n     \\*/\n  paperproto.text = function (x, y, text) {\n    var out = R._engine.text(this, x || 0, y || 0, Str(text));\n    this.__set__ && this.__set__.push(out);\n    return out;\n  };\n  /*\\\n     * Paper.set\n     [ method ]\n     **\n     * Creates array-like object to keep and operate several elements at once.\n     * Warning: it doesn’t create any elements for itself in the page, it just groups existing elements.\n     * Sets act as pseudo elements — all methods available to an element can be used on a set.\n     = (object) array-like object that represents set of elements\n     **\n     > Usage\n     | var st = paper.set();\n     | st.push(\n     |     paper.circle(10, 10, 5),\n     |     paper.circle(30, 10, 5)\n     | );\n     | st.attr({fill: "red"}); // changes the fill of both circles\n     \\*/\n  paperproto.set = function (itemsArray) {\n    !R.is(itemsArray, "array") &&\n      (itemsArray = Array.prototype.splice.call(\n        arguments,\n        0,\n        arguments.length\n      ));\n    var out = new Set(itemsArray);\n    this.__set__ && this.__set__.push(out);\n    out["paper"] = this;\n    out["type"] = "set";\n    return out;\n  };\n  /*\\\n     * Paper.setStart\n     [ method ]\n     **\n     * Creates @Paper.set. All elements that will be created after calling this method and before calling\n     * @Paper.setFinish will be added to the set.\n     **\n     > Usage\n     | paper.setStart();\n     | paper.circle(10, 10, 5),\n     | paper.circle(30, 10, 5)\n     | var st = paper.setFinish();\n     | st.attr({fill: "red"}); // changes the fill of both circles\n     \\*/\n  paperproto.setStart = function (set) {\n    this.__set__ = set || this.set();\n  };\n  /*\\\n     * Paper.setFinish\n     [ method ]\n     **\n     * See @Paper.setStart. This method finishes catching and returns resulting set.\n     **\n     = (object) set\n     \\*/\n  paperproto.setFinish = function (set) {\n    var out = this.__set__;\n    delete this.__set__;\n    return out;\n  };\n  /*\\\n     * Paper.getSize\n     [ method ]\n     **\n     * Obtains current paper actual size.\n     **\n     = (object)\n     \\*/\n  paperproto.getSize = function () {\n    var container = this.canvas.parentNode;\n    return {\n      width: container.offsetWidth,\n      height: container.offsetHeight,\n    };\n  };\n  /*\\\n     * Paper.setSize\n     [ method ]\n     **\n     * If you need to change dimensions of the canvas call this method\n     **\n     > Parameters\n     **\n     - width (number) new width of the canvas\n     - height (number) new height of the canvas\n     \\*/\n  paperproto.setSize = function (width, height) {\n    return R._engine.setSize.call(this, width, height);\n  };\n  /*\\\n     * Paper.setViewBox\n     [ method ]\n     **\n     * Sets the view box of the paper. Practically it gives you ability to zoom and pan whole paper surface by\n     * specifying new boundaries.\n     **\n     > Parameters\n     **\n     - x (number) new x position, default is `0`\n     - y (number) new y position, default is `0`\n     - w (number) new width of the canvas\n     - h (number) new height of the canvas\n     - fit (boolean) `true` if you want graphics to fit into new boundary box\n     \\*/\n  paperproto.setViewBox = function (x, y, w, h, fit) {\n    return R._engine.setViewBox.call(this, x, y, w, h, fit);\n  };\n  /*\\\n     * Paper.top\n     [ property ]\n     **\n     * Points to the topmost element on the paper\n     \\*/\n  /*\\\n     * Paper.bottom\n     [ property ]\n     **\n     * Points to the bottom element on the paper\n     \\*/\n  paperproto.top = paperproto.bottom = null;\n  /*\\\n     * Paper.raphael\n     [ property ]\n     **\n     * Points to the @Raphael object/function\n     \\*/\n  paperproto.raphael = R;\n  var getOffset = function (elem) {\n    var box = elem.getBoundingClientRect(),\n      doc = elem.ownerDocument,\n      body = doc.body,\n      docElem = doc.documentElement,\n      clientTop = docElem.clientTop || body.clientTop || 0,\n      clientLeft = docElem.clientLeft || body.clientLeft || 0,\n      top =\n        box.top +\n        (g.win.pageYOffset || docElem.scrollTop || body.scrollTop) -\n        clientTop,\n      left =\n        box.left +\n        (g.win.pageXOffset || docElem.scrollLeft || body.scrollLeft) -\n        clientLeft;\n    return {\n      y: top,\n      x: left,\n    };\n  };\n  /*\\\n     * Paper.getElementByPoint\n     [ method ]\n     **\n     * Returns you topmost element under given point.\n     **\n     = (object) Raphaël element object\n     > Parameters\n     **\n     - x (number) x coordinate from the top left corner of the window\n     - y (number) y coordinate from the top left corner of the window\n     > Usage\n     | paper.getElementByPoint(mouseX, mouseY).attr({stroke: "#f00"});\n     \\*/\n  paperproto.getElementByPoint = function (x, y) {\n    var paper = this,\n      svg = paper.canvas,\n      target = g.doc.elementFromPoint(x, y);\n    if (g.win.opera && target.tagName == "svg") {\n      var so = getOffset(svg),\n        sr = svg.createSVGRect();\n      sr.x = x - so.x;\n      sr.y = y - so.y;\n      sr.width = sr.height = 1;\n      var hits = svg.getIntersectionList(sr, null);\n      if (hits.length) {\n        target = hits[hits.length - 1];\n      }\n    }\n    if (!target) {\n      return null;\n    }\n    while (target.parentNode && target != svg.parentNode && !target.raphael) {\n      target = target.parentNode;\n    }\n    target == paper.canvas.parentNode && (target = svg);\n    target = target && target.raphael ? paper.getById(target.raphaelid) : null;\n    return target;\n  };\n\n  /*\\\n     * Paper.getElementsByBBox\n     [ method ]\n     **\n     * Returns set of elements that have an intersecting bounding box\n     **\n     > Parameters\n     **\n     - bbox (object) bbox to check with\n     = (object) @Set\n     \\*/\n  paperproto.getElementsByBBox = function (bbox) {\n    var set = this.set();\n    this.forEach(function (el) {\n      if (R.isBBoxIntersect(el.getBBox(), bbox)) {\n        set.push(el);\n      }\n    });\n    return set;\n  };\n\n  /*\\\n     * Paper.getById\n     [ method ]\n     **\n     * Returns you element by its internal ID.\n     **\n     > Parameters\n     **\n     - id (number) id\n     = (object) Raphaël element object\n     \\*/\n  paperproto.getById = function (id) {\n    var bot = this.bottom;\n    while (bot) {\n      if (bot.id == id) {\n        return bot;\n      }\n      bot = bot.next;\n    }\n    return null;\n  };\n  /*\\\n     * Paper.forEach\n     [ method ]\n     **\n     * Executes given function for each element on the paper\n     *\n     * If callback function returns `false` it will stop loop running.\n     **\n     > Parameters\n     **\n     - callback (function) function to run\n     - thisArg (object) context object for the callback\n     = (object) Paper object\n     > Usage\n     | paper.forEach(function (el) {\n     |     el.attr({ stroke: "blue" });\n     | });\n     \\*/\n  paperproto.forEach = function (callback, thisArg) {\n    var bot = this.bottom;\n    while (bot) {\n      if (callback.call(thisArg, bot) === false) {\n        return this;\n      }\n      bot = bot.next;\n    }\n    return this;\n  };\n  /*\\\n     * Paper.getElementsByPoint\n     [ method ]\n     **\n     * Returns set of elements that have common point inside\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the point\n     - y (number) y coordinate of the point\n     = (object) @Set\n     \\*/\n  paperproto.getElementsByPoint = function (x, y) {\n    var set = this.set();\n    this.forEach(function (el) {\n      if (el.isPointInside(x, y)) {\n        set.push(el);\n      }\n    });\n    return set;\n  };\n  function x_y() {\n    return this.x + S + this.y;\n  }\n  function x_y_w_h() {\n    return this.x + S + this.y + S + this.width + " \\xd7 " + this.height;\n  }\n  /*\\\n     * Element.isPointInside\n     [ method ]\n     **\n     * Determine if given point is inside this element’s shape\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the point\n     - y (number) y coordinate of the point\n     = (boolean) `true` if point inside the shape\n     \\*/\n  elproto.isPointInside = function (x, y) {\n    var rp = (this.realPath = getPath[this.type](this));\n    if (this.attr("transform") && this.attr("transform").length) {\n      rp = R.transformPath(rp, this.attr("transform"));\n    }\n    return R.isPointInsidePath(rp, x, y);\n  };\n  /*\\\n     * Element.getBBox\n     [ method ]\n     **\n     * Return bounding box for a given element\n     **\n     > Parameters\n     **\n     - isWithoutTransform (boolean) flag, `true` if you want to have bounding box before transformations. Default is `false`.\n     = (object) Bounding box object:\n     o {\n     o     x: (number) top left corner x\n     o     y: (number) top left corner y\n     o     x2: (number) bottom right corner x\n     o     y2: (number) bottom right corner y\n     o     width: (number) width\n     o     height: (number) height\n     o }\n     \\*/\n  elproto.getBBox = function (isWithoutTransform) {\n    if (this.removed) {\n      return {};\n    }\n    var _ = this._;\n    if (isWithoutTransform) {\n      if (_.dirty || !_.bboxwt) {\n        this.realPath = getPath[this.type](this);\n        _.bboxwt = pathDimensions(this.realPath);\n        _.bboxwt.toString = x_y_w_h;\n        _.dirty = 0;\n      }\n      return _.bboxwt;\n    }\n    if (_.dirty || _.dirtyT || !_.bbox) {\n      if (_.dirty || !this.realPath) {\n        _.bboxwt = 0;\n        this.realPath = getPath[this.type](this);\n      }\n      _.bbox = pathDimensions(mapPath(this.realPath, this.matrix));\n      _.bbox.toString = x_y_w_h;\n      _.dirty = _.dirtyT = 0;\n    }\n    return _.bbox;\n  };\n  /*\\\n     * Element.clone\n     [ method ]\n     **\n     = (object) clone of a given element\n     **\n     \\*/\n  elproto.clone = function () {\n    if (this.removed) {\n      return null;\n    }\n    var out = this.paper[this.type]().attr(this.attr());\n    this.__set__ && this.__set__.push(out);\n    return out;\n  };\n  /*\\\n     * Element.glow\n     [ method ]\n     **\n     * Return set of elements that create glow-like effect around given element. See @Paper.set.\n     *\n     * Note: Glow is not connected to the element. If you change element attributes it won’t adjust itself.\n     **\n     > Parameters\n     **\n     - glow (object) #optional parameters object with all properties optional:\n     o {\n     o     width (number) size of the glow, default is `10`\n     o     fill (boolean) will it be filled, default is `false`\n     o     opacity (number) opacity, default is `0.5`\n     o     offsetx (number) horizontal offset, default is `0`\n     o     offsety (number) vertical offset, default is `0`\n     o     color (string) glow colour, default is `black`\n     o }\n     = (object) @Paper.set of elements that represents glow\n     \\*/\n  elproto.glow = function (glow) {\n    if (this.type == "text") {\n      return null;\n    }\n    glow = glow || {};\n    var s = {\n        width: (glow.width || 10) + (+this.attr("stroke-width") || 1),\n        fill: glow.fill || false,\n        opacity: glow.opacity == null ? 0.5 : glow.opacity,\n        offsetx: glow.offsetx || 0,\n        offsety: glow.offsety || 0,\n        color: glow.color || "#000",\n      },\n      c = s.width / 2,\n      r = this.paper,\n      out = r.set(),\n      path = this.realPath || getPath[this.type](this);\n    path = this.matrix ? mapPath(path, this.matrix) : path;\n    for (var i = 1; i < c + 1; i++) {\n      out.push(\n        r.path(path).attr({\n          stroke: s.color,\n          fill: s.fill ? s.color : "none",\n          "stroke-linejoin": "round",\n          "stroke-linecap": "round",\n          "stroke-width": +((s.width / c) * i).toFixed(3),\n          opacity: +(s.opacity / c).toFixed(3),\n        })\n      );\n    }\n    return out.insertBefore(this).translate(s.offsetx, s.offsety);\n  };\n  var curveslengths = {},\n    getPointAtSegmentLength = function (\n      p1x,\n      p1y,\n      c1x,\n      c1y,\n      c2x,\n      c2y,\n      p2x,\n      p2y,\n      length\n    ) {\n      if (length == null) {\n        return bezlen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y);\n      } else {\n        return R.findDotsAtSegment(\n          p1x,\n          p1y,\n          c1x,\n          c1y,\n          c2x,\n          c2y,\n          p2x,\n          p2y,\n          getTatLen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length)\n        );\n      }\n    },\n    getLengthFactory = function (istotal, subpath) {\n      return function (path, length, onlystart) {\n        path = path2curve(path);\n        var x,\n          y,\n          p,\n          l,\n          sp = "",\n          subpaths = {},\n          point,\n          len = 0;\n        for (var i = 0, ii = path.length; i < ii; i++) {\n          p = path[i];\n          if (p[0] == "M") {\n            x = +p[1];\n            y = +p[2];\n          } else {\n            l = getPointAtSegmentLength(\n              x,\n              y,\n              p[1],\n              p[2],\n              p[3],\n              p[4],\n              p[5],\n              p[6]\n            );\n            if (len + l > length) {\n              if (subpath && !subpaths.start) {\n                point = getPointAtSegmentLength(\n                  x,\n                  y,\n                  p[1],\n                  p[2],\n                  p[3],\n                  p[4],\n                  p[5],\n                  p[6],\n                  length - len\n                );\n                sp += [\n                  "C" + point.start.x,\n                  point.start.y,\n                  point.m.x,\n                  point.m.y,\n                  point.x,\n                  point.y,\n                ];\n                if (onlystart) {\n                  return sp;\n                }\n                subpaths.start = sp;\n                sp = [\n                  "M" + point.x,\n                  point.y + "C" + point.n.x,\n                  point.n.y,\n                  point.end.x,\n                  point.end.y,\n                  p[5],\n                  p[6],\n                ].join();\n                len += l;\n                x = +p[5];\n                y = +p[6];\n                continue;\n              }\n              if (!istotal && !subpath) {\n                point = getPointAtSegmentLength(\n                  x,\n                  y,\n                  p[1],\n                  p[2],\n                  p[3],\n                  p[4],\n                  p[5],\n                  p[6],\n                  length - len\n                );\n                return { x: point.x, y: point.y, alpha: point.alpha };\n              }\n            }\n            len += l;\n            x = +p[5];\n            y = +p[6];\n          }\n          sp += p.shift() + p;\n        }\n        subpaths.end = sp;\n        point = istotal\n          ? len\n          : subpath\n          ? subpaths\n          : R.findDotsAtSegment(x, y, p[0], p[1], p[2], p[3], p[4], p[5], 1);\n        point.alpha && (point = { x: point.x, y: point.y, alpha: point.alpha });\n        return point;\n      };\n    };\n  var getTotalLength = getLengthFactory(1),\n    getPointAtLength = getLengthFactory(),\n    getSubpathsAtLength = getLengthFactory(0, 1);\n  /*\\\n     * Raphael.getTotalLength\n     [ method ]\n     **\n     * Returns length of the given path in pixels.\n     **\n     > Parameters\n     **\n     - path (string) SVG path string.\n     **\n     = (number) length.\n     \\*/\n  R.getTotalLength = getTotalLength;\n  /*\\\n     * Raphael.getPointAtLength\n     [ method ]\n     **\n     * Return coordinates of the point located at the given length on the given path.\n     **\n     > Parameters\n     **\n     - path (string) SVG path string\n     - length (number)\n     **\n     = (object) representation of the point:\n     o {\n     o     x: (number) x coordinate\n     o     y: (number) y coordinate\n     o     alpha: (number) angle of derivative\n     o }\n     \\*/\n  R.getPointAtLength = getPointAtLength;\n  /*\\\n     * Raphael.getSubpath\n     [ method ]\n     **\n     * Return subpath of a given path from given length to given length.\n     **\n     > Parameters\n     **\n     - path (string) SVG path string\n     - from (number) position of the start of the segment\n     - to (number) position of the end of the segment\n     **\n     = (string) pathstring for the segment\n     \\*/\n  R.getSubpath = function (path, from, to) {\n    if (this.getTotalLength(path) - to < 1e-6) {\n      return getSubpathsAtLength(path, from).end;\n    }\n    var a = getSubpathsAtLength(path, to, 1);\n    return from ? getSubpathsAtLength(a, from).end : a;\n  };\n  /*\\\n     * Element.getTotalLength\n     [ method ]\n     **\n     * Returns length of the path in pixels. Only works for element of “path” type.\n     = (number) length.\n     \\*/\n  elproto.getTotalLength = function () {\n    var path = this.getPath();\n    if (!path) {\n      return;\n    }\n\n    if (this.node.getTotalLength) {\n      return this.node.getTotalLength();\n    }\n\n    return getTotalLength(path);\n  };\n  /*\\\n     * Element.getPointAtLength\n     [ method ]\n     **\n     * Return coordinates of the point located at the given length on the given path. Only works for element of “path” type.\n     **\n     > Parameters\n     **\n     - length (number)\n     **\n     = (object) representation of the point:\n     o {\n     o     x: (number) x coordinate\n     o     y: (number) y coordinate\n     o     alpha: (number) angle of derivative\n     o }\n     \\*/\n  elproto.getPointAtLength = function (length) {\n    var path = this.getPath();\n    if (!path) {\n      return;\n    }\n\n    return getPointAtLength(path, length);\n  };\n  /*\\\n     * Element.getPath\n     [ method ]\n     **\n     * Returns path of the element. Only works for elements of “path” type and simple elements like circle.\n     = (object) path\n     **\n     \\*/\n  elproto.getPath = function () {\n    var path,\n      getPath = R._getPath[this.type];\n\n    if (this.type == "text" || this.type == "set") {\n      return;\n    }\n\n    if (getPath) {\n      path = getPath(this);\n    }\n\n    return path;\n  };\n  /*\\\n     * Element.getSubpath\n     [ method ]\n     **\n     * Return subpath of a given element from given length to given length. Only works for element of “path” type.\n     **\n     > Parameters\n     **\n     - from (number) position of the start of the segment\n     - to (number) position of the end of the segment\n     **\n     = (string) pathstring for the segment\n     \\*/\n  elproto.getSubpath = function (from, to) {\n    var path = this.getPath();\n    if (!path) {\n      return;\n    }\n\n    return R.getSubpath(path, from, to);\n  };\n  /*\\\n     * Raphael.easing_formulas\n     [ property ]\n     **\n     * Object that contains easing formulas for animation. You could extend it with your own. By default it has following list of easing:\n     # <ul>\n     #     <li>“linear”</li>\n     #     <li>“&lt;” or “easeIn” or “ease-in”</li>\n     #     <li>“>” or “easeOut” or “ease-out”</li>\n     #     <li>“&lt;>” or “easeInOut” or “ease-in-out”</li>\n     #     <li>“backIn” or “back-in”</li>\n     #     <li>“backOut” or “back-out”</li>\n     #     <li>“elastic”</li>\n     #     <li>“bounce”</li>\n     # </ul>\n     # <p>See also <a href="http://raphaeljs.com/easing.html">Easing demo</a>.</p>\n     \\*/\n  var ef = (R.easing_formulas = {\n    linear: function (n) {\n      return n;\n    },\n    "<": function (n) {\n      return pow(n, 1.7);\n    },\n    ">": function (n) {\n      return pow(n, 0.48);\n    },\n    "<>": function (n) {\n      var q = 0.48 - n / 1.04,\n        Q = math.sqrt(0.1734 + q * q),\n        x = Q - q,\n        X = pow(abs(x), 1 / 3) * (x < 0 ? -1 : 1),\n        y = -Q - q,\n        Y = pow(abs(y), 1 / 3) * (y < 0 ? -1 : 1),\n        t = X + Y + 0.5;\n      return (1 - t) * 3 * t * t + t * t * t;\n    },\n    backIn: function (n) {\n      var s = 1.70158;\n      return n * n * ((s + 1) * n - s);\n    },\n    backOut: function (n) {\n      n = n - 1;\n      var s = 1.70158;\n      return n * n * ((s + 1) * n + s) + 1;\n    },\n    elastic: function (n) {\n      if (n == !!n) {\n        return n;\n      }\n      return pow(2, -10 * n) * math.sin(((n - 0.075) * (2 * PI)) / 0.3) + 1;\n    },\n    bounce: function (n) {\n      var s = 7.5625,\n        p = 2.75,\n        l;\n      if (n < 1 / p) {\n        l = s * n * n;\n      } else {\n        if (n < 2 / p) {\n          n -= 1.5 / p;\n          l = s * n * n + 0.75;\n        } else {\n          if (n < 2.5 / p) {\n            n -= 2.25 / p;\n            l = s * n * n + 0.9375;\n          } else {\n            n -= 2.625 / p;\n            l = s * n * n + 0.984375;\n          }\n        }\n      }\n      return l;\n    },\n  });\n  ef.easeIn = ef["ease-in"] = ef["<"];\n  ef.easeOut = ef["ease-out"] = ef[">"];\n  ef.easeInOut = ef["ease-in-out"] = ef["<>"];\n  ef["back-in"] = ef.backIn;\n  ef["back-out"] = ef.backOut;\n\n  var animationElements = [],\n    requestAnimFrame =\n      window.requestAnimationFrame ||\n      window.webkitRequestAnimationFrame ||\n      window.mozRequestAnimationFrame ||\n      window.oRequestAnimationFrame ||\n      window.msRequestAnimationFrame ||\n      function (callback) {\n        setTimeout(callback, 16);\n      },\n    animation = function () {\n      var Now = +new Date(),\n        l = 0;\n      for (; l < animationElements.length; l++) {\n        var e = animationElements[l];\n        if (e.el.removed || e.paused) {\n          continue;\n        }\n        var time = Now - e.start,\n          ms = e.ms,\n          easing = e.easing,\n          from = e.from,\n          diff = e.diff,\n          to = e.to,\n          t = e.t,\n          that = e.el,\n          set = {},\n          now,\n          init = {},\n          key;\n        if (e.initstatus) {\n          time =\n            ((e.initstatus * e.anim.top - e.prev) / (e.percent - e.prev)) * ms;\n          e.status = e.initstatus;\n          delete e.initstatus;\n          e.stop && animationElements.splice(l--, 1);\n        } else {\n          e.status = (e.prev + (e.percent - e.prev) * (time / ms)) / e.anim.top;\n        }\n        if (time < 0) {\n          continue;\n        }\n        if (time < ms) {\n          var pos = easing(time / ms);\n          for (var attr in from)\n            if (from[has](attr)) {\n              switch (availableAnimAttrs[attr]) {\n                case nu:\n                  now = +from[attr] + pos * ms * diff[attr];\n                  break;\n                case "colour":\n                  now =\n                    "rgb(" +\n                    [\n                      upto255(round(from[attr].r + pos * ms * diff[attr].r)),\n                      upto255(round(from[attr].g + pos * ms * diff[attr].g)),\n                      upto255(round(from[attr].b + pos * ms * diff[attr].b)),\n                    ].join(",") +\n                    ")";\n                  break;\n                case "path":\n                  now = [];\n                  for (var i = 0, ii = from[attr].length; i < ii; i++) {\n                    now[i] = [from[attr][i][0]];\n                    for (var j = 1, jj = from[attr][i].length; j < jj; j++) {\n                      now[i][j] =\n                        +from[attr][i][j] + pos * ms * diff[attr][i][j];\n                    }\n                    now[i] = now[i].join(S);\n                  }\n                  now = now.join(S);\n                  break;\n                case "transform":\n                  if (diff[attr].real) {\n                    now = [];\n                    for (i = 0, ii = from[attr].length; i < ii; i++) {\n                      now[i] = [from[attr][i][0]];\n                      for (j = 1, jj = from[attr][i].length; j < jj; j++) {\n                        now[i][j] =\n                          from[attr][i][j] + pos * ms * diff[attr][i][j];\n                      }\n                    }\n                  } else {\n                    var get = function (i) {\n                      return +from[attr][i] + pos * ms * diff[attr][i];\n                    };\n                    // now = [["r", get(2), 0, 0], ["t", get(3), get(4)], ["s", get(0), get(1), 0, 0]];\n                    now = [\n                      ["m", get(0), get(1), get(2), get(3), get(4), get(5)],\n                    ];\n                  }\n                  break;\n                case "csv":\n                  if (attr == "clip-rect") {\n                    now = [];\n                    i = 4;\n                    while (i--) {\n                      now[i] = +from[attr][i] + pos * ms * diff[attr][i];\n                    }\n                  }\n                  break;\n                default:\n                  var from2 = [][concat](from[attr]);\n                  now = [];\n                  i = that.paper.customAttributes[attr].length;\n                  while (i--) {\n                    now[i] = +from2[i] + pos * ms * diff[attr][i];\n                  }\n                  break;\n              }\n              set[attr] = now;\n            }\n          that.attr(set);\n          (function (id, that, anim) {\n            setTimeout(function () {\n              eve("raphael.anim.frame." + id, that, anim);\n            });\n          })(that.id, that, e.anim);\n        } else {\n          (function (f, el, a) {\n            setTimeout(function () {\n              eve("raphael.anim.frame." + el.id, el, a);\n              eve("raphael.anim.finish." + el.id, el, a);\n              R.is(f, "function") && f.call(el);\n            });\n          })(e.callback, that, e.anim);\n          that.attr(to);\n          animationElements.splice(l--, 1);\n          if (e.repeat > 1 && !e.next) {\n            for (key in to)\n              if (to[has](key)) {\n                init[key] = e.totalOrigin[key];\n              }\n            e.el.attr(init);\n            runAnimation(\n              e.anim,\n              e.el,\n              e.anim.percents[0],\n              null,\n              e.totalOrigin,\n              e.repeat - 1\n            );\n          }\n          if (e.next && !e.stop) {\n            runAnimation(e.anim, e.el, e.next, null, e.totalOrigin, e.repeat);\n          }\n        }\n      }\n      animationElements.length && requestAnimFrame(animation);\n    },\n    upto255 = function (color) {\n      return color > 255 ? 255 : color < 0 ? 0 : color;\n    };\n  /*\\\n     * Element.animateWith\n     [ method ]\n     **\n     * Acts similar to @Element.animate, but ensure that given animation runs in sync with another given element.\n     **\n     > Parameters\n     **\n     - el (object) element to sync with\n     - anim (object) animation to sync with\n     - params (object) #optional final attributes for the element, see also @Element.attr\n     - ms (number) #optional number of milliseconds for animation to run\n     - easing (string) #optional easing type. Accept on of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)`\n     - callback (function) #optional callback function. Will be called at the end of animation.\n     * or\n     - element (object) element to sync with\n     - anim (object) animation to sync with\n     - animation (object) #optional animation object, see @Raphael.animation\n     **\n     = (object) original element\n     \\*/\n  elproto.animateWith = function (el, anim, params, ms, easing, callback) {\n    var element = this;\n    if (element.removed) {\n      callback && callback.call(element);\n      return element;\n    }\n    var a =\n        params instanceof Animation\n          ? params\n          : R.animation(params, ms, easing, callback),\n      x,\n      y;\n    runAnimation(a, element, a.percents[0], null, element.attr());\n    for (var i = 0, ii = animationElements.length; i < ii; i++) {\n      if (animationElements[i].anim == anim && animationElements[i].el == el) {\n        animationElements[ii - 1].start = animationElements[i].start;\n        break;\n      }\n    }\n    return element;\n    //\n    //\n    // var a = params ? R.animation(params, ms, easing, callback) : anim,\n    //     status = element.status(anim);\n    // return this.animate(a).status(a, status * anim.ms / a.ms);\n  };\n  function CubicBezierAtTime(t, p1x, p1y, p2x, p2y, duration) {\n    var cx = 3 * p1x,\n      bx = 3 * (p2x - p1x) - cx,\n      ax = 1 - cx - bx,\n      cy = 3 * p1y,\n      by = 3 * (p2y - p1y) - cy,\n      ay = 1 - cy - by;\n    function sampleCurveX(t) {\n      return ((ax * t + bx) * t + cx) * t;\n    }\n    function solve(x, epsilon) {\n      var t = solveCurveX(x, epsilon);\n      return ((ay * t + by) * t + cy) * t;\n    }\n    function solveCurveX(x, epsilon) {\n      var t0, t1, t2, x2, d2, i;\n      for (t2 = x, i = 0; i < 8; i++) {\n        x2 = sampleCurveX(t2) - x;\n        if (abs(x2) < epsilon) {\n          return t2;\n        }\n        d2 = (3 * ax * t2 + 2 * bx) * t2 + cx;\n        if (abs(d2) < 1e-6) {\n          break;\n        }\n        t2 = t2 - x2 / d2;\n      }\n      t0 = 0;\n      t1 = 1;\n      t2 = x;\n      if (t2 < t0) {\n        return t0;\n      }\n      if (t2 > t1) {\n        return t1;\n      }\n      while (t0 < t1) {\n        x2 = sampleCurveX(t2);\n        if (abs(x2 - x) < epsilon) {\n          return t2;\n        }\n        if (x > x2) {\n          t0 = t2;\n        } else {\n          t1 = t2;\n        }\n        t2 = (t1 - t0) / 2 + t0;\n      }\n      return t2;\n    }\n    return solve(t, 1 / (200 * duration));\n  }\n  elproto.onAnimation = function (f) {\n    f\n      ? eve.on("raphael.anim.frame." + this.id, f)\n      : eve.unbind("raphael.anim.frame." + this.id);\n    return this;\n  };\n  function Animation(anim, ms) {\n    var percents = [],\n      newAnim = {};\n    this.ms = ms;\n    this.times = 1;\n    if (anim) {\n      for (var attr in anim)\n        if (anim[has](attr)) {\n          newAnim[toFloat(attr)] = anim[attr];\n          percents.push(toFloat(attr));\n        }\n      percents.sort(sortByNumber);\n    }\n    this.anim = newAnim;\n    this.top = percents[percents.length - 1];\n    this.percents = percents;\n  }\n  /*\\\n     * Animation.delay\n     [ method ]\n     **\n     * Creates a copy of existing animation object with given delay.\n     **\n     > Parameters\n     **\n     - delay (number) number of ms to pass between animation start and actual animation\n     **\n     = (object) new altered Animation object\n     | var anim = Raphael.animation({cx: 10, cy: 20}, 2e3);\n     | circle1.animate(anim); // run the given animation immediately\n     | circle2.animate(anim.delay(500)); // run the given animation after 500 ms\n     \\*/\n  Animation.prototype.delay = function (delay) {\n    var a = new Animation(this.anim, this.ms);\n    a.times = this.times;\n    a.del = +delay || 0;\n    return a;\n  };\n  /*\\\n     * Animation.repeat\n     [ method ]\n     **\n     * Creates a copy of existing animation object with given repetition.\n     **\n     > Parameters\n     **\n     - repeat (number) number iterations of animation. For infinite animation pass `Infinity`\n     **\n     = (object) new altered Animation object\n     \\*/\n  Animation.prototype.repeat = function (times) {\n    var a = new Animation(this.anim, this.ms);\n    a.del = this.del;\n    a.times = math.floor(mmax(times, 0)) || 1;\n    return a;\n  };\n  function runAnimation(anim, element, percent, status, totalOrigin, times) {\n    percent = toFloat(percent);\n    var params,\n      isInAnim,\n      isInAnimSet,\n      percents = [],\n      next,\n      prev,\n      timestamp,\n      ms = anim.ms,\n      from = {},\n      to = {},\n      diff = {};\n    if (status) {\n      for (i = 0, ii = animationElements.length; i < ii; i++) {\n        var e = animationElements[i];\n        if (e.el.id == element.id && e.anim == anim) {\n          if (e.percent != percent) {\n            animationElements.splice(i, 1);\n            isInAnimSet = 1;\n          } else {\n            isInAnim = e;\n          }\n          element.attr(e.totalOrigin);\n          break;\n        }\n      }\n    } else {\n      status = +to; // NaN\n    }\n    for (var i = 0, ii = anim.percents.length; i < ii; i++) {\n      if (anim.percents[i] == percent || anim.percents[i] > status * anim.top) {\n        percent = anim.percents[i];\n        prev = anim.percents[i - 1] || 0;\n        ms = (ms / anim.top) * (percent - prev);\n        next = anim.percents[i + 1];\n        params = anim.anim[percent];\n        break;\n      } else if (status) {\n        element.attr(anim.anim[anim.percents[i]]);\n      }\n    }\n    if (!params) {\n      return;\n    }\n    if (!isInAnim) {\n      for (var attr in params)\n        if (params[has](attr)) {\n          if (\n            availableAnimAttrs[has](attr) ||\n            element.paper.customAttributes[has](attr)\n          ) {\n            from[attr] = element.attr(attr);\n            from[attr] == null && (from[attr] = availableAttrs[attr]);\n            to[attr] = params[attr];\n            switch (availableAnimAttrs[attr]) {\n              case nu:\n                diff[attr] = (to[attr] - from[attr]) / ms;\n                break;\n              case "colour":\n                from[attr] = R.getRGB(from[attr]);\n                var toColour = R.getRGB(to[attr]);\n                diff[attr] = {\n                  r: (toColour.r - from[attr].r) / ms,\n                  g: (toColour.g - from[attr].g) / ms,\n                  b: (toColour.b - from[attr].b) / ms,\n                };\n                break;\n              case "path":\n                var pathes = path2curve(from[attr], to[attr]),\n                  toPath = pathes[1];\n                from[attr] = pathes[0];\n                diff[attr] = [];\n                for (i = 0, ii = from[attr].length; i < ii; i++) {\n                  diff[attr][i] = [0];\n                  for (var j = 1, jj = from[attr][i].length; j < jj; j++) {\n                    diff[attr][i][j] = (toPath[i][j] - from[attr][i][j]) / ms;\n                  }\n                }\n                break;\n              case "transform":\n                var _ = element._,\n                  eq = equaliseTransform(_[attr], to[attr]);\n                if (eq) {\n                  from[attr] = eq.from;\n                  to[attr] = eq.to;\n                  diff[attr] = [];\n                  diff[attr].real = true;\n                  for (i = 0, ii = from[attr].length; i < ii; i++) {\n                    diff[attr][i] = [from[attr][i][0]];\n                    for (j = 1, jj = from[attr][i].length; j < jj; j++) {\n                      diff[attr][i][j] =\n                        (to[attr][i][j] - from[attr][i][j]) / ms;\n                    }\n                  }\n                } else {\n                  var m = element.matrix || new Matrix(),\n                    to2 = {\n                      _: { transform: _.transform },\n                      getBBox: function () {\n                        return element.getBBox(1);\n                      },\n                    };\n                  from[attr] = [m.a, m.b, m.c, m.d, m.e, m.f];\n                  extractTransform(to2, to[attr]);\n                  to[attr] = to2._.transform;\n                  diff[attr] = [\n                    (to2.matrix.a - m.a) / ms,\n                    (to2.matrix.b - m.b) / ms,\n                    (to2.matrix.c - m.c) / ms,\n                    (to2.matrix.d - m.d) / ms,\n                    (to2.matrix.e - m.e) / ms,\n                    (to2.matrix.f - m.f) / ms,\n                  ];\n                  // from[attr] = [_.sx, _.sy, _.deg, _.dx, _.dy];\n                  // var to2 = {_:{}, getBBox: function () { return element.getBBox(); }};\n                  // extractTransform(to2, to[attr]);\n                  // diff[attr] = [\n                  //     (to2._.sx - _.sx) / ms,\n                  //     (to2._.sy - _.sy) / ms,\n                  //     (to2._.deg - _.deg) / ms,\n                  //     (to2._.dx - _.dx) / ms,\n                  //     (to2._.dy - _.dy) / ms\n                  // ];\n                }\n                break;\n              case "csv":\n                var values = Str(params[attr])[split](separator),\n                  from2 = Str(from[attr])[split](separator);\n                if (attr == "clip-rect") {\n                  from[attr] = from2;\n                  diff[attr] = [];\n                  i = from2.length;\n                  while (i--) {\n                    diff[attr][i] = (values[i] - from[attr][i]) / ms;\n                  }\n                }\n                to[attr] = values;\n                break;\n              default:\n                values = [][concat](params[attr]);\n                from2 = [][concat](from[attr]);\n                diff[attr] = [];\n                i = element.paper.customAttributes[attr].length;\n                while (i--) {\n                  diff[attr][i] = ((values[i] || 0) - (from2[i] || 0)) / ms;\n                }\n                break;\n            }\n          }\n        }\n      var easing = params.easing,\n        easyeasy = R.easing_formulas[easing];\n      if (!easyeasy) {\n        easyeasy = Str(easing).match(bezierrg);\n        if (easyeasy && easyeasy.length == 5) {\n          var curve = easyeasy;\n          easyeasy = function (t) {\n            return CubicBezierAtTime(\n              t,\n              +curve[1],\n              +curve[2],\n              +curve[3],\n              +curve[4],\n              ms\n            );\n          };\n        } else {\n          easyeasy = pipe;\n        }\n      }\n      timestamp = params.start || anim.start || +new Date();\n      e = {\n        anim: anim,\n        percent: percent,\n        timestamp: timestamp,\n        start: timestamp + (anim.del || 0),\n        status: 0,\n        initstatus: status || 0,\n        stop: false,\n        ms: ms,\n        easing: easyeasy,\n        from: from,\n        diff: diff,\n        to: to,\n        el: element,\n        callback: params.callback,\n        prev: prev,\n        next: next,\n        repeat: times || anim.times,\n        origin: element.attr(),\n        totalOrigin: totalOrigin,\n      };\n      animationElements.push(e);\n      if (status && !isInAnim && !isInAnimSet) {\n        e.stop = true;\n        e.start = new Date() - ms * status;\n        if (animationElements.length == 1) {\n          return animation();\n        }\n      }\n      if (isInAnimSet) {\n        e.start = new Date() - e.ms * status;\n      }\n      animationElements.length == 1 && requestAnimFrame(animation);\n    } else {\n      isInAnim.initstatus = status;\n      isInAnim.start = new Date() - isInAnim.ms * status;\n    }\n    eve("raphael.anim.start." + element.id, element, anim);\n  }\n  /*\\\n     * Raphael.animation\n     [ method ]\n     **\n     * Creates an animation object that can be passed to the @Element.animate or @Element.animateWith methods.\n     * See also @Animation.delay and @Animation.repeat methods.\n     **\n     > Parameters\n     **\n     - params (object) final attributes for the element, see also @Element.attr\n     - ms (number) number of milliseconds for animation to run\n     - easing (string) #optional easing type. Accept one of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)`\n     - callback (function) #optional callback function. Will be called at the end of animation.\n     **\n     = (object) @Animation\n     \\*/\n  R.animation = function (params, ms, easing, callback) {\n    if (params instanceof Animation) {\n      return params;\n    }\n    if (R.is(easing, "function") || !easing) {\n      callback = callback || easing || null;\n      easing = null;\n    }\n    params = Object(params);\n    ms = +ms || 0;\n    var p = {},\n      json,\n      attr;\n    for (attr in params)\n      if (\n        params[has](attr) &&\n        toFloat(attr) != attr &&\n        toFloat(attr) + "%" != attr\n      ) {\n        json = true;\n        p[attr] = params[attr];\n      }\n    if (!json) {\n      // if percent-like syntax is used and end-of-all animation callback used\n      if (callback) {\n        // find the last one\n        var lastKey = 0;\n        for (var i in params) {\n          var percent = toInt(i);\n          if (params[has](i) && percent > lastKey) {\n            lastKey = percent;\n          }\n        }\n        lastKey += "%";\n        // if already defined callback in the last keyframe, skip\n        !params[lastKey].callback && (params[lastKey].callback = callback);\n      }\n      return new Animation(params, ms);\n    } else {\n      easing && (p.easing = easing);\n      callback && (p.callback = callback);\n      return new Animation({ 100: p }, ms);\n    }\n  };\n  /*\\\n     * Element.animate\n     [ method ]\n     **\n     * Creates and starts animation for given element.\n     **\n     > Parameters\n     **\n     - params (object) final attributes for the element, see also @Element.attr\n     - ms (number) number of milliseconds for animation to run\n     - easing (string) #optional easing type. Accept one of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)`\n     - callback (function) #optional callback function. Will be called at the end of animation.\n     * or\n     - animation (object) animation object, see @Raphael.animation\n     **\n     = (object) original element\n     \\*/\n  elproto.animate = function (params, ms, easing, callback) {\n    var element = this;\n    if (element.removed) {\n      callback && callback.call(element);\n      return element;\n    }\n    var anim =\n      params instanceof Animation\n        ? params\n        : R.animation(params, ms, easing, callback);\n    runAnimation(anim, element, anim.percents[0], null, element.attr());\n    return element;\n  };\n  /*\\\n     * Element.setTime\n     [ method ]\n     **\n     * Sets the status of animation of the element in milliseconds. Similar to @Element.status method.\n     **\n     > Parameters\n     **\n     - anim (object) animation object\n     - value (number) number of milliseconds from the beginning of the animation\n     **\n     = (object) original element if `value` is specified\n     * Note, that during animation following events are triggered:\n     *\n     * On each animation frame event `anim.frame.<id>`, on start `anim.start.<id>` and on end `anim.finish.<id>`.\n     \\*/\n  elproto.setTime = function (anim, value) {\n    if (anim && value != null) {\n      this.status(anim, mmin(value, anim.ms) / anim.ms);\n    }\n    return this;\n  };\n  /*\\\n     * Element.status\n     [ method ]\n     **\n     * Gets or sets the status of animation of the element.\n     **\n     > Parameters\n     **\n     - anim (object) #optional animation object\n     - value (number) #optional 0 – 1. If specified, method works like a setter and sets the status of a given animation to the value. This will cause animation to jump to the given position.\n     **\n     = (number) status\n     * or\n     = (array) status if `anim` is not specified. Array of objects in format:\n     o {\n     o     anim: (object) animation object\n     o     status: (number) status\n     o }\n     * or\n     = (object) original element if `value` is specified\n     \\*/\n  elproto.status = function (anim, value) {\n    var out = [],\n      i = 0,\n      len,\n      e;\n    if (value != null) {\n      runAnimation(anim, this, -1, mmin(value, 1));\n      return this;\n    } else {\n      len = animationElements.length;\n      for (; i < len; i++) {\n        e = animationElements[i];\n        if (e.el.id == this.id && (!anim || e.anim == anim)) {\n          if (anim) {\n            return e.status;\n          }\n          out.push({\n            anim: e.anim,\n            status: e.status,\n          });\n        }\n      }\n      if (anim) {\n        return 0;\n      }\n      return out;\n    }\n  };\n  /*\\\n     * Element.pause\n     [ method ]\n     **\n     * Stops animation of the element with ability to resume it later on.\n     **\n     > Parameters\n     **\n     - anim (object) #optional animation object\n     **\n     = (object) original element\n     \\*/\n  elproto.pause = function (anim) {\n    for (var i = 0; i < animationElements.length; i++)\n      if (\n        animationElements[i].el.id == this.id &&\n        (!anim || animationElements[i].anim == anim)\n      ) {\n        if (\n          eve(\n            "raphael.anim.pause." + this.id,\n            this,\n            animationElements[i].anim\n          ) !== false\n        ) {\n          animationElements[i].paused = true;\n        }\n      }\n    return this;\n  };\n  /*\\\n     * Element.resume\n     [ method ]\n     **\n     * Resumes animation if it was paused with @Element.pause method.\n     **\n     > Parameters\n     **\n     - anim (object) #optional animation object\n     **\n     = (object) original element\n     \\*/\n  elproto.resume = function (anim) {\n    for (var i = 0; i < animationElements.length; i++)\n      if (\n        animationElements[i].el.id == this.id &&\n        (!anim || animationElements[i].anim == anim)\n      ) {\n        var e = animationElements[i];\n        if (eve("raphael.anim.resume." + this.id, this, e.anim) !== false) {\n          delete e.paused;\n          this.status(e.anim, e.status);\n        }\n      }\n    return this;\n  };\n  /*\\\n     * Element.stop\n     [ method ]\n     **\n     * Stops animation of the element.\n     **\n     > Parameters\n     **\n     - anim (object) #optional animation object\n     **\n     = (object) original element\n     \\*/\n  elproto.stop = function (anim) {\n    for (var i = 0; i < animationElements.length; i++)\n      if (\n        animationElements[i].el.id == this.id &&\n        (!anim || animationElements[i].anim == anim)\n      ) {\n        if (\n          eve(\n            "raphael.anim.stop." + this.id,\n            this,\n            animationElements[i].anim\n          ) !== false\n        ) {\n          animationElements.splice(i--, 1);\n        }\n      }\n    return this;\n  };\n  function stopAnimation(paper) {\n    for (var i = 0; i < animationElements.length; i++)\n      if (animationElements[i].el.paper == paper) {\n        animationElements.splice(i--, 1);\n      }\n  }\n  eve.on("raphael.remove", stopAnimation);\n  eve.on("raphael.clear", stopAnimation);\n  elproto.toString = function () {\n    return "Rapha\\xebl\\u2019s object";\n  };\n\n  // Set\n  var Set = function (items) {\n      this.items = [];\n      this.length = 0;\n      this.type = "set";\n      if (items) {\n        for (var i = 0, ii = items.length; i < ii; i++) {\n          if (\n            items[i] &&\n            (items[i].constructor == elproto.constructor ||\n              items[i].constructor == Set)\n          ) {\n            this[this.items.length] = this.items[this.items.length] = items[i];\n            this.length++;\n          }\n        }\n      }\n    },\n    setproto = Set.prototype;\n  /*\\\n     * Set.push\n     [ method ]\n     **\n     * Adds each argument to the current set.\n     = (object) original element\n     \\*/\n  setproto.push = function () {\n    var item, len;\n    for (var i = 0, ii = arguments.length; i < ii; i++) {\n      item = arguments[i];\n      if (\n        item &&\n        (item.constructor == elproto.constructor || item.constructor == Set)\n      ) {\n        len = this.items.length;\n        this[len] = this.items[len] = item;\n        this.length++;\n      }\n    }\n    return this;\n  };\n  /*\\\n     * Set.pop\n     [ method ]\n     **\n     * Removes last element and returns it.\n     = (object) element\n     \\*/\n  setproto.pop = function () {\n    this.length && delete this[this.length--];\n    return this.items.pop();\n  };\n  /*\\\n     * Set.forEach\n     [ method ]\n     **\n     * Executes given function for each element in the set.\n     *\n     * If function returns `false` it will stop loop running.\n     **\n     > Parameters\n     **\n     - callback (function) function to run\n     - thisArg (object) context object for the callback\n     = (object) Set object\n     \\*/\n  setproto.forEach = function (callback, thisArg) {\n    for (var i = 0, ii = this.items.length; i < ii; i++) {\n      if (callback.call(thisArg, this.items[i], i) === false) {\n        return this;\n      }\n    }\n    return this;\n  };\n  for (var method in elproto)\n    if (elproto[has](method)) {\n      setproto[method] = (function (methodname) {\n        return function () {\n          var arg = arguments;\n          return this.forEach(function (el) {\n            el[methodname][apply](el, arg);\n          });\n        };\n      })(method);\n    }\n  setproto.attr = function (name, value) {\n    if (name && R.is(name, array) && R.is(name[0], "object")) {\n      for (var j = 0, jj = name.length; j < jj; j++) {\n        this.items[j].attr(name[j]);\n      }\n    } else {\n      for (var i = 0, ii = this.items.length; i < ii; i++) {\n        this.items[i].attr(name, value);\n      }\n    }\n    return this;\n  };\n  /*\\\n     * Set.clear\n     [ method ]\n     **\n     * Removes all elements from the set\n     \\*/\n  setproto.clear = function () {\n    while (this.length) {\n      this.pop();\n    }\n  };\n  /*\\\n     * Set.splice\n     [ method ]\n     **\n     * Removes given element from the set\n     **\n     > Parameters\n     **\n     - index (number) position of the deletion\n     - count (number) number of element to remove\n     - insertion… (object) #optional elements to insert\n     = (object) set elements that were deleted\n     \\*/\n  setproto.splice = function (index, count, insertion) {\n    index = index < 0 ? mmax(this.length + index, 0) : index;\n    count = mmax(0, mmin(this.length - index, count));\n    var tail = [],\n      todel = [],\n      args = [],\n      i;\n    for (i = 2; i < arguments.length; i++) {\n      args.push(arguments[i]);\n    }\n    for (i = 0; i < count; i++) {\n      todel.push(this[index + i]);\n    }\n    for (; i < this.length - index; i++) {\n      tail.push(this[index + i]);\n    }\n    var arglen = args.length;\n    for (i = 0; i < arglen + tail.length; i++) {\n      this.items[index + i] = this[index + i] =\n        i < arglen ? args[i] : tail[i - arglen];\n    }\n    i = this.items.length = this.length -= count - arglen;\n    while (this[i]) {\n      delete this[i++];\n    }\n    return new Set(todel);\n  };\n  /*\\\n     * Set.exclude\n     [ method ]\n     **\n     * Removes given element from the set\n     **\n     > Parameters\n     **\n     - element (object) element to remove\n     = (boolean) `true` if object was found & removed from the set\n     \\*/\n  setproto.exclude = function (el) {\n    for (var i = 0, ii = this.length; i < ii; i++)\n      if (this[i] == el) {\n        this.splice(i, 1);\n        return true;\n      }\n  };\n  setproto.animate = function (params, ms, easing, callback) {\n    (R.is(easing, "function") || !easing) && (callback = easing || null);\n    var len = this.items.length,\n      i = len,\n      item,\n      set = this,\n      collector;\n    if (!len) {\n      return this;\n    }\n    callback &&\n      (collector = function () {\n        !--len && callback.call(set);\n      });\n    easing = R.is(easing, string) ? easing : collector;\n    var anim = R.animation(params, ms, easing, collector);\n    item = this.items[--i].animate(anim);\n    while (i--) {\n      this.items[i] &&\n        !this.items[i].removed &&\n        this.items[i].animateWith(item, anim, anim);\n      (this.items[i] && !this.items[i].removed) || len--;\n    }\n    return this;\n  };\n  setproto.insertAfter = function (el) {\n    var i = this.items.length;\n    while (i--) {\n      this.items[i].insertAfter(el);\n    }\n    return this;\n  };\n\n  // FREEGROUP Fix: RaphaelJS changes the order of the elements of the \'set\' by calling the toBack method.\n  //                "toBack" must be called reverse to care about the rendering order. In this case we override\n  //                the buggy default implementation here.\n  //\n  setproto.toBack = function () {\n    var i = this.items.length;\n    while (i--) {\n      this.items[i].toBack();\n    }\n    return this;\n  };\n\n  // FREEGROUP Fix: Unfortunately raphael didn\'T expose the "set.prototype". In this case\n  //                I must add all extension to the raphael implementation itself.\n  //                Provide support method for easy check if the elements are visible.\n  setproto.isVisible = function () {\n    var i = this.items.length;\n    var visible = false;\n    while (i--) {\n      visible = visible || this.items[i].isVisible();\n    }\n    return visible;\n  };\n\n  // FREEGROUP FIX: Adding "isWithoutTransform" to the function and redirect them to the elements\n  setproto.getBBox = function (isWithoutTransform) {\n    var x = [],\n      y = [],\n      x2 = [],\n      y2 = [];\n    for (var i = this.items.length; i--; )\n      if (!this.items[i].removed) {\n        var box = this.items[i].getBBox(isWithoutTransform);\n        x.push(box.x);\n        y.push(box.y);\n        x2.push(box.x + box.width);\n        y2.push(box.y + box.height);\n      }\n    x = mmin[apply](0, x);\n    y = mmin[apply](0, y);\n    x2 = mmax[apply](0, x2);\n    y2 = mmax[apply](0, y2);\n    return {\n      x: x,\n      y: y,\n      x2: x2,\n      y2: y2,\n      width: x2 - x,\n      height: y2 - y,\n    };\n  };\n  setproto.clone = function (s) {\n    s = this.paper.set();\n    for (var i = 0, ii = this.items.length; i < ii; i++) {\n      s.push(this.items[i].clone());\n    }\n    return s;\n  };\n  setproto.toString = function () {\n    return "Rapha\\xebl\\u2018s set";\n  };\n\n  setproto.glow = function (glowConfig) {\n    var ret = this.paper.set();\n    this.forEach(function (shape, index) {\n      var g = shape.glow(glowConfig);\n      if (g != null) {\n        g.forEach(function (shape2, index2) {\n          ret.push(shape2);\n        });\n      }\n    });\n    return ret;\n  };\n\n  /*\\\n     * Set.isPointInside\n     [ method ]\n     **\n     * Determine if given point is inside this set’s elements\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the point\n     - y (number) y coordinate of the point\n     = (boolean) `true` if point is inside any of the set\'s elements\n     \\*/\n  setproto.isPointInside = function (x, y) {\n    var isPointInside = false;\n    this.forEach(function (el) {\n      if (el.isPointInside(x, y)) {\n        isPointInside = true;\n        return false; // stop loop\n      }\n    });\n    return isPointInside;\n  };\n\n  /*\\\n     * Raphael.registerFont\n     [ method ]\n     **\n     * Adds given font to the registered set of fonts for Raphaël. Should be used as an internal call from within Cufón’s font file.\n     * Returns original parameter, so it could be used with chaining.\n     # <a href="http://wiki.github.com/sorccu/cufon/about">More about Cufón and how to convert your font form TTF, OTF, etc to JavaScript file.</a>\n     **\n     > Parameters\n     **\n     - font (object) the font to register\n     = (object) the font you passed in\n     > Usage\n     | Cufon.registerFont(Raphael.registerFont({…}));\n     \\*/\n  R.registerFont = function (font) {\n    if (!font.face) {\n      return font;\n    }\n    this.fonts = this.fonts || {};\n    var fontcopy = {\n        w: font.w,\n        face: {},\n        glyphs: {},\n      },\n      family = font.face["font-family"];\n    for (var prop in font.face)\n      if (font.face[has](prop)) {\n        fontcopy.face[prop] = font.face[prop];\n      }\n    if (this.fonts[family]) {\n      this.fonts[family].push(fontcopy);\n    } else {\n      this.fonts[family] = [fontcopy];\n    }\n    if (!font.svg) {\n      fontcopy.face["units-per-em"] = toInt(font.face["units-per-em"], 10);\n      for (var glyph in font.glyphs)\n        if (font.glyphs[has](glyph)) {\n          var path = font.glyphs[glyph];\n          fontcopy.glyphs[glyph] = {\n            w: path.w,\n            k: {},\n            d:\n              path.d &&\n              "M" +\n                path.d.replace(/[mlcxtrv]/g, function (command) {\n                  return (\n                    { l: "L", c: "C", x: "z", t: "m", r: "l", v: "c" }[\n                      command\n                    ] || "M"\n                  );\n                }) +\n                "z",\n          };\n          if (path.k) {\n            for (var k in path.k)\n              if (path[has](k)) {\n                fontcopy.glyphs[glyph].k[k] = path.k[k];\n              }\n          }\n        }\n    }\n    return font;\n  };\n  /*\\\n     * Paper.getFont\n     [ method ]\n     **\n     * Finds font object in the registered fonts by given parameters. You could specify only one word from the font name, like “Myriad” for “Myriad Pro”.\n     **\n     > Parameters\n     **\n     - family (string) font family name or any word from it\n     - weight (string) #optional font weight\n     - style (string) #optional font style\n     - stretch (string) #optional font stretch\n     = (object) the font object\n     > Usage\n     | paper.print(100, 100, "Test string", paper.getFont("Times", 800), 30);\n     \\*/\n  paperproto.getFont = function (family, weight, style, stretch) {\n    stretch = stretch || "normal";\n    style = style || "normal";\n    weight =\n      +weight ||\n      { normal: 400, bold: 700, lighter: 300, bolder: 800 }[weight] ||\n      400;\n    if (!R.fonts) {\n      return;\n    }\n    var font = R.fonts[family];\n    if (!font) {\n      var name = new RegExp(\n        "(^|\\\\s)" + family.replace(/[^\\w\\d\\s+!~.:_-]/g, E) + "(\\\\s|$)",\n        "i"\n      );\n      for (var fontName in R.fonts)\n        if (R.fonts[has](fontName)) {\n          if (name.test(fontName)) {\n            font = R.fonts[fontName];\n            break;\n          }\n        }\n    }\n    var thefont;\n    if (font) {\n      for (var i = 0, ii = font.length; i < ii; i++) {\n        thefont = font[i];\n        if (\n          thefont.face["font-weight"] == weight &&\n          (thefont.face["font-style"] == style ||\n            !thefont.face["font-style"]) &&\n          thefont.face["font-stretch"] == stretch\n        ) {\n          break;\n        }\n      }\n    }\n    return thefont;\n  };\n  /*\\\n     * Paper.print\n     [ method ]\n     **\n     * Creates path that represent given text written using given font at given position with given size.\n     * Result of the method is path element that contains whole text as a separate path.\n     **\n     > Parameters\n     **\n     - x (number) x position of the text\n     - y (number) y position of the text\n     - string (string) text to print\n     - font (object) font object, see @Paper.getFont\n     - size (number) #optional size of the font, default is `16`\n     - origin (string) #optional could be `"baseline"` or `"middle"`, default is `"middle"`\n     - letter_spacing (number) #optional number in range `-1..1`, default is `0`\n     - line_spacing (number) #optional number in range `1..3`, default is `1`\n     = (object) resulting path element, which consist of all letters\n     > Usage\n     | var txt = r.print(10, 50, "print", r.getFont("Museo"), 30).attr({fill: "#fff"});\n     \\*/\n  paperproto.print = function (\n    x,\n    y,\n    string,\n    font,\n    size,\n    origin,\n    letter_spacing,\n    line_spacing\n  ) {\n    origin = origin || "middle"; // baseline|middle\n    letter_spacing = mmax(mmin(letter_spacing || 0, 1), -1);\n    line_spacing = mmax(mmin(line_spacing || 1, 3), 1);\n    var letters = Str(string)[split](E),\n      shift = 0,\n      notfirst = 0,\n      path = E,\n      scale;\n    R.is(font, "string") && (font = this.getFont(font));\n    if (font) {\n      scale = (size || 16) / font.face["units-per-em"];\n      var bb = font.face.bbox[split](separator),\n        top = +bb[0],\n        lineHeight = bb[3] - bb[1],\n        shifty = 0,\n        height =\n          +bb[1] +\n          (origin == "baseline"\n            ? lineHeight + +font.face.descent\n            : lineHeight / 2);\n      for (var i = 0, ii = letters.length; i < ii; i++) {\n        if (letters[i] == "\\n") {\n          shift = 0;\n          curr = 0;\n          notfirst = 0;\n          shifty += lineHeight * line_spacing;\n        } else {\n          var prev = (notfirst && font.glyphs[letters[i - 1]]) || {},\n            curr = font.glyphs[letters[i]];\n          shift += notfirst\n            ? (prev.w || font.w) +\n              ((prev.k && prev.k[letters[i]]) || 0) +\n              font.w * letter_spacing\n            : 0;\n          notfirst = 1;\n        }\n        if (curr && curr.d) {\n          path += R.transformPath(curr.d, [\n            "t",\n            shift * scale,\n            shifty * scale,\n            "s",\n            scale,\n            scale,\n            top,\n            height,\n            "t",\n            (x - top) / scale,\n            (y - height) / scale,\n          ]);\n        }\n      }\n    }\n    return this.path(path).attr({\n      fill: "#000",\n      stroke: "none",\n    });\n  };\n\n  /*\\\n     * Paper.add\n     [ method ]\n     **\n     * Imports elements in JSON array in format `{type: type, <attributes>}`\n     **\n     > Parameters\n     **\n     - json (array)\n     = (object) resulting set of imported elements\n     > Usage\n     | paper.add([\n     |     {\n     |         type: "circle",\n     |         cx: 10,\n     |         cy: 10,\n     |         r: 5\n     |     },\n     |     {\n     |         type: "rect",\n     |         x: 10,\n     |         y: 10,\n     |         width: 10,\n     |         height: 10,\n     |         fill: "#fc0"\n     |     }\n     | ]);\n     \\*/\n  paperproto.add = function (json) {\n    if (R.is(json, "array")) {\n      var res = this.set(),\n        i = 0,\n        ii = json.length,\n        j;\n      for (; i < ii; i++) {\n        j = json[i] || {};\n        elements[has](j.type) && res.push(this[j.type]().attr(j));\n      }\n    }\n    return res;\n  };\n\n  /*\\\n     * Raphael.format\n     [ method ]\n     **\n     * Simple format function. Replaces construction of type “`{<number>}`” to the corresponding argument.\n     **\n     > Parameters\n     **\n     - token (string) string to format\n     - … (string) rest of arguments will be treated as parameters for replacement\n     = (string) formated string\n     > Usage\n     | var x = 10,\n     |     y = 20,\n     |     width = 40,\n     |     height = 50;\n     | // this will draw a rectangular shape equivalent to "M10,20h40v50h-40z"\n     | paper.path(Raphael.format("M{0},{1}h{2}v{3}h{4}z", x, y, width, height, -width));\n     \\*/\n  R.format = function (token, params) {\n    var args = R.is(params, array) ? [0][concat](params) : arguments;\n    token &&\n      R.is(token, string) &&\n      args.length - 1 &&\n      (token = token.replace(formatrg, function (str, i) {\n        return args[++i] == null ? E : args[i];\n      }));\n    return token || E;\n  };\n  /*\\\n     * Raphael.fullfill\n     [ method ]\n     **\n     * A little bit more advanced format function than @Raphael.format. Replaces construction of type “`{<name>}`” to the corresponding argument.\n     **\n     > Parameters\n     **\n     - token (string) string to format\n     - json (object) object which properties will be used as a replacement\n     = (string) formated string\n     > Usage\n     | // this will draw a rectangular shape equivalent to "M10,20h40v50h-40z"\n     | paper.path(Raphael.fullfill("M{x},{y}h{dim.width}v{dim.height}h{dim[\'negative width\']}z", {\n     |     x: 10,\n     |     y: 20,\n     |     dim: {\n     |         width: 40,\n     |         height: 50,\n     |         "negative width": -40\n     |     }\n     | }));\n     \\*/\n  R.fullfill = (function () {\n    var tokenRegex = /\\{([^\\}]+)\\}/g,\n      objNotationRegex =\n        /(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[(\'|")(.+?)\\2\\])(\\(\\))?/g, // matches .xxxxx or ["xxxxx"] to run over object properties\n      replacer = function (all, key, obj) {\n        var res = obj;\n        key.replace(\n          objNotationRegex,\n          function (all, name, quote, quotedName, isFunc) {\n            name = name || quotedName;\n            if (res) {\n              if (name in res) {\n                res = res[name];\n              }\n              typeof res == "function" && isFunc && (res = res());\n            }\n          }\n        );\n        res = (res == null || res == obj ? all : res) + "";\n        return res;\n      };\n    return function (str, obj) {\n      return String(str).replace(tokenRegex, function (all, key) {\n        return replacer(all, key, obj);\n      });\n    };\n  })();\n  /*\\\n     * Raphael.ninja\n     [ method ]\n     **\n     * If you want to leave no trace of Raphaël (Well, Raphaël creates only one global variable `Raphael`, but anyway.) You can use `ninja` method.\n     * Beware, that in this case plugins could stop working, because they are depending on global variable existence.\n     **\n     = (object) Raphael object\n     > Usage\n     | (function (local_raphael) {\n     |     var paper = local_raphael(10, 10, 320, 200);\n     |     …\n     | })(Raphael.ninja());\n     \\*/\n  R.ninja = function () {\n    oldRaphael.was ? (g.win.Raphael = oldRaphael.is) : delete Raphael;\n    return R;\n  };\n  /*\\\n     * Raphael.st\n     [ property (object) ]\n     **\n     * You can add your own method to elements and sets. It is wise to add a set method for each element method\n     * you added, so you will be able to call the same method on sets too.\n     **\n     * See also @Raphael.el.\n     > Usage\n     | Raphael.el.red = function () {\n     |     this.attr({fill: "#f00"});\n     | };\n     | Raphael.st.red = function () {\n     |     this.forEach(function (el) {\n     |         el.red();\n     |     });\n     | };\n     | // then use it\n     | paper.set(paper.circle(100, 100, 20), paper.circle(110, 100, 20)).red();\n     \\*/\n  R.st = setproto;\n\n  eve.on("raphael.DOMload", function () {\n    loaded = true;\n  });\n\n  // Firefox <3.6 fix: http://webreflection.blogspot.com/2009/11/195-chars-to-help-lazy-loading.html\n  (function (doc, loaded, f) {\n    if (doc.readyState == null && doc.addEventListener) {\n      doc.addEventListener(\n        loaded,\n        (f = function () {\n          doc.removeEventListener(loaded, f, false);\n          doc.readyState = "complete";\n        }),\n        false\n      );\n      doc.readyState = "loading";\n    }\n    function isLoaded() {\n      /in/.test(doc.readyState)\n        ? setTimeout(isLoaded, 9)\n        : R.eve("raphael.DOMload");\n    }\n    isLoaded();\n  })(document, "DOMContentLoaded");\n\n  return R;\n});\n\n// ┌─────────────────────────────────────────────────────────────────────┐ \\\\\n// │ Raphaël 2.1.4 - JavaScript Vector Library                       │ \\\\\n// ├─────────────────────────────────────────────────────────────────────┤ \\\\\n// │ SVG Module                                                          │ \\\\\n// ├─────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Copyright (c) 2008-2011 Dmitry Baranovskiy (http://raphaeljs.com)   │ \\\\\n// │ Copyright (c) 2008-2011 Sencha Labs (http://sencha.com)             │ \\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license. │ \\\\\n// └─────────────────────────────────────────────────────────────────────┘ \\\\\n\n(function (glob, factory) {\n  if (typeof define === "function" && define.amd) {\n    define("raphael.svg", ["raphael.core"], function (raphael) {\n      return factory(raphael);\n    });\n  } else if (typeof exports === "object") {\n    factory(require("./raphael.core"));\n  } else {\n    factory(glob.Raphael);\n  }\n})(this, function (R) {\n  if (R && !R.svg) {\n    return;\n  }\n\n  var has = "hasOwnProperty",\n    Str = String,\n    toFloat = parseFloat,\n    toInt = parseInt,\n    math = Math,\n    mmax = math.max,\n    abs = math.abs,\n    pow = math.pow,\n    separator = /[, ]+/,\n    eve = R.eve,\n    E = "",\n    S = " ";\n  var xlink = "http://www.w3.org/1999/xlink",\n    markers = {\n      block: "M5,0 0,2.5 5,5z",\n      classic: "M5,0 0,2.5 5,5 3.5,3 3.5,2z",\n      diamond: "M2.5,0 5,2.5 2.5,5 0,2.5z",\n      open: "M6,1 1,3.5 6,6",\n      oval: "M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z",\n    },\n    markerCounter = {};\n  R.toString = function () {\n    return (\n      "Your browser supports SVG.\\nYou are running Rapha\\xebl " + this.version\n    );\n  };\n  var $ = function (el, attr) {\n      if (attr) {\n        if (typeof el == "string") {\n          el = $(el);\n        }\n        for (var key in attr)\n          if (attr[has](key)) {\n            if (key.substring(0, 6) == "xlink:") {\n              el.setAttributeNS(xlink, key.substring(6), Str(attr[key]));\n            } else {\n              try {\n                el.setAttribute(key, Str(attr[key]));\n              } catch (e) {}\n            }\n          }\n      } else {\n        el = R._g.doc.createElementNS("http://www.w3.org/2000/svg", el);\n        el.style && (el.style.webkitTapHighlightColor = "rgba(0,0,0,0)");\n      }\n      return el;\n    },\n    addGradientFill = function (element, gradient) {\n      var type = "linear",\n        id = element.id + gradient,\n        fx = 0.5,\n        fy = 0.5,\n        o = element.node,\n        SVG = element.paper,\n        s = o.style,\n        el = R._g.doc.getElementById(id);\n      if (!el) {\n        gradient = Str(gradient).replace(\n          R._radial_gradient,\n          function (all, _fx, _fy) {\n            type = "radial";\n            if (_fx && _fy) {\n              fx = toFloat(_fx);\n              fy = toFloat(_fy);\n              var dir = (fy > 0.5) * 2 - 1;\n              pow(fx - 0.5, 2) + pow(fy - 0.5, 2) > 0.25 &&\n                (fy = math.sqrt(0.25 - pow(fx - 0.5, 2)) * dir + 0.5) &&\n                fy != 0.5 &&\n                (fy = fy.toFixed(5) - 1e-5 * dir);\n            }\n            return E;\n          }\n        );\n        gradient = gradient.split(/\\s*\\-\\s*/);\n        if (type == "linear") {\n          var angle = gradient.shift();\n          angle = -toFloat(angle);\n          if (isNaN(angle)) {\n            return null;\n          }\n          var vector = [0, 0, math.cos(R.rad(angle)), math.sin(R.rad(angle))],\n            max = 1 / (mmax(abs(vector[2]), abs(vector[3])) || 1);\n          vector[2] *= max;\n          vector[3] *= max;\n          if (vector[2] < 0) {\n            vector[0] = -vector[2];\n            vector[2] = 0;\n          }\n          if (vector[3] < 0) {\n            vector[1] = -vector[3];\n            vector[3] = 0;\n          }\n        }\n        var dots = R._parseDots(gradient);\n        if (!dots) {\n          return null;\n        }\n        id = id.replace(/[\\(\\)\\s,\\xb0#]/g, "_");\n\n        if (element.gradient && id != element.gradient.id) {\n          SVG.defs.removeChild(element.gradient);\n          delete element.gradient;\n        }\n\n        if (!element.gradient) {\n          el = $(type + "Gradient", { id: id });\n          element.gradient = el;\n          $(\n            el,\n            type == "radial"\n              ? {\n                  fx: fx,\n                  fy: fy,\n                }\n              : {\n                  x1: vector[0],\n                  y1: vector[1],\n                  x2: vector[2],\n                  y2: vector[3],\n                  gradientTransform: element.matrix.invert(),\n                }\n          );\n          SVG.defs.appendChild(el);\n          for (var i = 0, ii = dots.length; i < ii; i++) {\n            el.appendChild(\n              $("stop", {\n                offset: dots[i].offset ? dots[i].offset : i ? "100%" : "0%",\n                "stop-color": dots[i].color || "#fff",\n                "stop-opacity": isFinite(dots[i].opacity) ? dots[i].opacity : 1,\n              })\n            );\n          }\n        }\n      }\n      /* FREEGROUP: don\'t push URL parameter into the drawing. This will break Apps with "?" in the URL\n       * see: https://github.com/DmitryBaranovskiy/raphael/issues/693\n       **/\n      var url = ""; //document.location.protocol + "//" + document.location.host  + document.location.pathname;\n      $(o, {\n        fill: "url(\'" + url + "#" + id + "\')",\n        opacity: 1,\n        "fill-opacity": 1,\n      });\n\n      s.fill = E;\n      s.opacity = 1;\n      s.fillOpacity = 1;\n      return 1;\n    },\n    updatePosition = function (o) {\n      var bbox = o.getBBox(1);\n      $(o.pattern, {\n        patternTransform:\n          o.matrix.invert() + " translate(" + bbox.x + "," + bbox.y + ")",\n      });\n    },\n    addArrow = function (o, value, isEnd) {\n      if (o.type == "path") {\n        var values = Str(value).toLowerCase().split("-"),\n          p = o.paper,\n          se = isEnd ? "end" : "start",\n          node = o.node,\n          attrs = o.attrs,\n          stroke = attrs["stroke-width"],\n          i = values.length,\n          type = "classic",\n          from,\n          to,\n          dx,\n          refX,\n          attr,\n          w = 3,\n          h = 3,\n          t = 5;\n        while (i--) {\n          switch (values[i]) {\n            case "block":\n            case "classic":\n            case "oval":\n            case "diamond":\n            case "open":\n            case "none":\n              type = values[i];\n              break;\n            case "wide":\n              h = 5;\n              break;\n            case "narrow":\n              h = 2;\n              break;\n            case "long":\n              w = 5;\n              break;\n            case "short":\n              w = 2;\n              break;\n          }\n        }\n        if (type == "open") {\n          w += 2;\n          h += 2;\n          t += 2;\n          dx = 1;\n          refX = isEnd ? 4 : 1;\n          attr = {\n            fill: "none",\n            stroke: attrs.stroke,\n          };\n        } else {\n          refX = dx = w / 2;\n          attr = {\n            fill: attrs.stroke,\n            stroke: "none",\n          };\n        }\n        if (o._.arrows) {\n          if (isEnd) {\n            o._.arrows.endPath && markerCounter[o._.arrows.endPath]--;\n            o._.arrows.endMarker && markerCounter[o._.arrows.endMarker]--;\n          } else {\n            o._.arrows.startPath && markerCounter[o._.arrows.startPath]--;\n            o._.arrows.startMarker && markerCounter[o._.arrows.startMarker]--;\n          }\n        } else {\n          o._.arrows = {};\n        }\n        if (type != "none") {\n          var pathId = "raphael-marker-" + type,\n            markerId = "raphael-marker-" + se + type + w + h + "-obj" + o.id;\n          if (!R._g.doc.getElementById(pathId)) {\n            p.defs.appendChild(\n              $($("path"), {\n                "stroke-linecap": "round",\n                d: markers[type],\n                id: pathId,\n              })\n            );\n            markerCounter[pathId] = 1;\n          } else {\n            markerCounter[pathId]++;\n          }\n          var marker = R._g.doc.getElementById(markerId),\n            use;\n          if (!marker) {\n            marker = $($("marker"), {\n              id: markerId,\n              markerHeight: h,\n              markerWidth: w,\n              orient: "auto",\n              refX: refX,\n              refY: h / 2,\n            });\n            use = $($("use"), {\n              "xlink:href": "#" + pathId,\n              transform:\n                (isEnd ? "rotate(180 " + w / 2 + " " + h / 2 + ") " : E) +\n                "scale(" +\n                w / t +\n                "," +\n                h / t +\n                ")",\n              "stroke-width": (1 / ((w / t + h / t) / 2)).toFixed(4),\n            });\n            marker.appendChild(use);\n            p.defs.appendChild(marker);\n            markerCounter[markerId] = 1;\n          } else {\n            markerCounter[markerId]++;\n            use = marker.getElementsByTagName("use")[0];\n          }\n          $(use, attr);\n          var delta = dx * (type != "diamond" && type != "oval");\n          if (isEnd) {\n            from = o._.arrows.startdx * stroke || 0;\n            to = R.getTotalLength(attrs.path) - delta * stroke;\n          } else {\n            from = delta * stroke;\n            to =\n              R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0);\n          }\n          attr = {};\n          attr["marker-" + se] = "url(#" + markerId + ")";\n          if (to || from) {\n            attr.d = R.getSubpath(attrs.path, from, to);\n          }\n          $(node, attr);\n          o._.arrows[se + "Path"] = pathId;\n          o._.arrows[se + "Marker"] = markerId;\n          o._.arrows[se + "dx"] = delta;\n          o._.arrows[se + "Type"] = type;\n          o._.arrows[se + "String"] = value;\n        } else {\n          if (isEnd) {\n            from = o._.arrows.startdx * stroke || 0;\n            to = R.getTotalLength(attrs.path) - from;\n          } else {\n            from = 0;\n            to =\n              R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0);\n          }\n          o._.arrows[se + "Path"] &&\n            $(node, { d: R.getSubpath(attrs.path, from, to) });\n          delete o._.arrows[se + "Path"];\n          delete o._.arrows[se + "Marker"];\n          delete o._.arrows[se + "dx"];\n          delete o._.arrows[se + "Type"];\n          delete o._.arrows[se + "String"];\n        }\n        for (attr in markerCounter)\n          if (markerCounter[has](attr) && !markerCounter[attr]) {\n            var item = R._g.doc.getElementById(attr);\n            item && item.parentNode.removeChild(item);\n          }\n      }\n    },\n    dasharray = {\n      "-": [3, 1],\n      ".": [1, 1],\n      "-.": [3, 1, 1, 1],\n      "-..": [3, 1, 1, 1, 1, 1],\n      ". ": [1, 3],\n      "- ": [4, 3],\n      "--": [8, 3],\n      "- .": [4, 3, 1, 3],\n      "--.": [8, 3, 1, 3],\n      "--..": [8, 3, 1, 3, 1, 3],\n    },\n    addDashes = function (o, value, params) {\n      value = dasharray[Str(value).toLowerCase()];\n      if (value) {\n        var width = o.attrs["stroke-width"] || "1",\n          butt =\n            { round: width, square: width, butt: 0 }[\n              o.attrs["stroke-linecap"] || params["stroke-linecap"]\n            ] || 0,\n          dashes = [],\n          i = value.length;\n        while (i--) {\n          dashes[i] = value[i] * width + (i % 2 ? 1 : -1) * butt;\n        }\n        $(o.node, { "stroke-dasharray": dashes.join(",") });\n      } else {\n        $(o.node, { "stroke-dasharray": "none" });\n      }\n    },\n    setFillAndStroke = function (o, params) {\n      var node = o.node,\n        attrs = o.attrs,\n        vis = node.style.visibility;\n      node.style.visibility = "hidden";\n      for (var att in params) {\n        if (params[has](att)) {\n          if (!R._availableAttrs[has](att)) {\n            continue;\n          }\n          var value = params[att];\n          attrs[att] = value;\n          switch (att) {\n            case "blur":\n              o.blur(value);\n              break;\n            case "title":\n              var title = node.getElementsByTagName("title");\n\n              // Use the existing <title>.\n              if (title.length && (title = title[0])) {\n                title.firstChild.nodeValue = value;\n              } else {\n                title = $("title");\n                var val = R._g.doc.createTextNode(value);\n                title.appendChild(val);\n                node.appendChild(title);\n              }\n              break;\n            case "href":\n            case "target":\n              var pn = node.parentNode;\n              if (pn.tagName.toLowerCase() != "a") {\n                var hl = $("a");\n                pn.insertBefore(hl, node);\n                hl.appendChild(node);\n                pn = hl;\n              }\n              if (att == "target") {\n                pn.setAttributeNS(\n                  xlink,\n                  "show",\n                  value == "blank" ? "new" : value\n                );\n              } else {\n                pn.setAttributeNS(xlink, att, value);\n              }\n              break;\n            case "cursor":\n              node.style.cursor = value;\n              break;\n            case "transform":\n              o.transform(value);\n              break;\n            case "arrow-start":\n              addArrow(o, value);\n              break;\n            case "arrow-end":\n              addArrow(o, value, 1);\n              break;\n            case "clip-rect":\n              var rect = Str(value).split(separator);\n              if (rect.length == 4) {\n                o.clip &&\n                  o.clip.parentNode.parentNode.removeChild(o.clip.parentNode);\n                var el = $("clipPath"),\n                  rc = $("rect");\n                el.id = R.createUUID();\n                $(rc, {\n                  x: rect[0],\n                  y: rect[1],\n                  width: rect[2],\n                  height: rect[3],\n                });\n                el.appendChild(rc);\n                o.paper.defs.appendChild(el);\n                $(node, { "clip-path": "url(#" + el.id + ")" });\n                o.clip = rc;\n              }\n              if (!value) {\n                var path = node.getAttribute("clip-path");\n                if (path) {\n                  var clip = R._g.doc.getElementById(\n                    path.replace(/(^url\\(#|\\)$)/g, E)\n                  );\n                  clip && clip.parentNode.removeChild(clip);\n                  $(node, { "clip-path": E });\n                  delete o.clip;\n                }\n              }\n              break;\n            case "path":\n              if (o.type == "path") {\n                $(node, {\n                  d: value ? (attrs.path = R._pathToAbsolute(value)) : "M0,0",\n                });\n                o._.dirty = 1;\n                if (o._.arrows) {\n                  "startString" in o._.arrows &&\n                    addArrow(o, o._.arrows.startString);\n                  "endString" in o._.arrows &&\n                    addArrow(o, o._.arrows.endString, 1);\n                }\n              }\n              break;\n            case "width":\n              node.setAttribute(att, value);\n              o._.dirty = 1;\n              if (attrs.fx) {\n                att = "x";\n                value = attrs.x;\n              } else {\n                break;\n              }\n            case "x":\n              if (attrs.fx) {\n                value = -attrs.x - (attrs.width || 0);\n              }\n            case "rx":\n              if (att == "rx" && o.type == "rect") {\n                break;\n              }\n            case "cx":\n              node.setAttribute(att, value);\n              o.pattern && updatePosition(o);\n              o._.dirty = 1;\n              break;\n            case "height":\n              node.setAttribute(att, value);\n              o._.dirty = 1;\n              if (attrs.fy) {\n                att = "y";\n                value = attrs.y;\n              } else {\n                break;\n              }\n            case "y":\n              if (attrs.fy) {\n                value = -attrs.y - (attrs.height || 0);\n              }\n            case "ry":\n              if (att == "ry" && o.type == "rect") {\n                break;\n              }\n            case "cy":\n              node.setAttribute(att, value);\n              o.pattern && updatePosition(o);\n              o._.dirty = 1;\n              break;\n            case "r":\n              if (o.type == "rect") {\n                $(node, { rx: value, ry: value });\n              } else {\n                node.setAttribute(att, value);\n              }\n              o._.dirty = 1;\n              break;\n            case "src":\n              if (o.type == "image") {\n                node.setAttributeNS(xlink, "href", value);\n              }\n              break;\n            case "stroke-width":\n              /* FREEGROUP fix\n               * draw2d version 3.0.3\n               *\n               * don\'t scale the line width if the user resize an shape/element.\n               * Obscure stroke-width in case of "Draw2D touch" usage\n               */\n              if (!attrs["stroke-scale"]) {\n                if (o._.sx != 1 || o._.sy != 1) {\n                  value /= mmax(abs(o._.sx), abs(o._.sy)) || 1;\n                }\n                if (o.paper._vbSize) {\n                  //    value *= o.paper._vbSize;\n                }\n              }\n\n              node.setAttribute(att, value);\n              if (attrs["stroke-dasharray"]) {\n                addDashes(o, attrs["stroke-dasharray"], params);\n              }\n              if (o._.arrows) {\n                "startString" in o._.arrows &&\n                  addArrow(o, o._.arrows.startString);\n                "endString" in o._.arrows &&\n                  addArrow(o, o._.arrows.endString, 1);\n              }\n              break;\n            case "stroke-dasharray":\n              addDashes(o, value, params);\n              break;\n            case "fill":\n              var isURL = Str(value).match(R._ISURL);\n              if (isURL) {\n                el = $("pattern");\n                var ig = $("image");\n                el.id = R.createUUID();\n                $(el, {\n                  x: 0,\n                  y: 0,\n                  patternUnits: "userSpaceOnUse",\n                  height: 1,\n                  width: 1,\n                });\n                $(ig, { x: 0, y: 0, "xlink:href": isURL[1] });\n                el.appendChild(ig);\n\n                (function (el) {\n                  R._preload(isURL[1], function () {\n                    var w = this.offsetWidth,\n                      h = this.offsetHeight;\n                    $(el, { width: w, height: h });\n                    $(ig, { width: w, height: h });\n                  });\n                })(el);\n                o.paper.defs.appendChild(el);\n                $(node, { fill: "url(#" + el.id + ")" });\n                o.pattern = el;\n                o.pattern && updatePosition(o);\n                break;\n              }\n              var clr = R.getRGB(value);\n              if (!clr.error) {\n                delete params.gradient;\n                delete attrs.gradient;\n                !R.is(attrs.opacity, "undefined") &&\n                  R.is(params.opacity, "undefined") &&\n                  $(node, { opacity: attrs.opacity });\n                !R.is(attrs["fill-opacity"], "undefined") &&\n                  R.is(params["fill-opacity"], "undefined") &&\n                  $(node, { "fill-opacity": attrs["fill-opacity"] });\n              } else if (\n                (o.type == "circle" ||\n                  o.type == "ellipse" ||\n                  Str(value).charAt() != "r") &&\n                addGradientFill(o, value)\n              ) {\n                if ("opacity" in attrs || "fill-opacity" in attrs) {\n                  var gradient = R._g.doc.getElementById(\n                    node.getAttribute("fill").replace(/^url\\(#|\\)$/g, E)\n                  );\n                  if (gradient) {\n                    var stops = gradient.getElementsByTagName("stop");\n                    $(stops[stops.length - 1], {\n                      "stop-opacity":\n                        ("opacity" in attrs ? attrs.opacity : 1) *\n                        ("fill-opacity" in attrs ? attrs["fill-opacity"] : 1),\n                    });\n                  }\n                }\n                attrs.gradient = value;\n                attrs.fill = "none";\n                break;\n              }\n              clr[has]("opacity") &&\n                $(node, {\n                  "fill-opacity":\n                    clr.opacity > 1 ? clr.opacity / 100 : clr.opacity,\n                });\n            case "stroke":\n              clr = R.getRGB(value);\n              node.setAttribute(att, clr.hex);\n              att == "stroke" &&\n                clr[has]("opacity") &&\n                $(node, {\n                  "stroke-opacity":\n                    clr.opacity > 1 ? clr.opacity / 100 : clr.opacity,\n                });\n              if (att == "stroke" && o._.arrows) {\n                "startString" in o._.arrows &&\n                  addArrow(o, o._.arrows.startString);\n                "endString" in o._.arrows &&\n                  addArrow(o, o._.arrows.endString, 1);\n              }\n              break;\n            case "gradient":\n              (o.type == "circle" ||\n                o.type == "ellipse" ||\n                Str(value).charAt() != "r") &&\n                addGradientFill(o, value);\n              break;\n            case "opacity":\n              if (attrs.gradient && !attrs[has]("stroke-opacity")) {\n                $(node, { "stroke-opacity": value > 1 ? value / 100 : value });\n              }\n            // fall\n            case "fill-opacity":\n              if (attrs.gradient) {\n                gradient = R._g.doc.getElementById(\n                  node.getAttribute("fill").replace(/^url\\(#|\\)$/g, E)\n                );\n                if (gradient) {\n                  stops = gradient.getElementsByTagName("stop");\n                  // FREEGROUP FIX\n                  for (gri = 0, grii = stops.length; gri < grii; gri++) {\n                    $(stops[gri], { "stop-opacity": value });\n                  }\n                  // END FIX\n                }\n                break;\n              }\n            default:\n              att == "font-size" && (value = toInt(value, 10) + "px");\n              var cssrule = att.replace(/(\\-.)/g, function (w) {\n                return w.substring(1).toUpperCase();\n              });\n              node.style[cssrule] = value;\n              o._.dirty = 1;\n              node.setAttribute(att, value);\n              break;\n          }\n        }\n      }\n\n      tuneText(o, params);\n      node.style.visibility = vis;\n    },\n    leading = 1.2,\n    tuneText = function (el, params) {\n      if (\n        el.type != "text" ||\n        !(\n          params[has]("text") ||\n          params[has]("font") ||\n          params[has]("font-size") ||\n          params[has]("x") ||\n          params[has]("y")\n        )\n      ) {\n        return;\n      }\n      var a = el.attrs,\n        node = el.node,\n        fontSize = node.firstChild\n          ? toInt(\n              R._g.doc.defaultView\n                .getComputedStyle(node.firstChild, E)\n                .getPropertyValue("font-size"),\n              10\n            )\n          : 10;\n\n      if (params[has]("text")) {\n        a.text = params.text;\n        while (node.firstChild) {\n          node.removeChild(node.firstChild);\n        }\n        var texts = Str(params.text).split("\\n"),\n          tspans = [],\n          tspan;\n        for (var i = 0, ii = texts.length; i < ii; i++) {\n          tspan = $("tspan");\n          i && $(tspan, { dy: fontSize * leading, x: a.x });\n          tspan.appendChild(R._g.doc.createTextNode(texts[i]));\n          node.appendChild(tspan);\n          tspans[i] = tspan;\n        }\n      } else {\n        tspans = node.getElementsByTagName("tspan");\n        for (i = 0, ii = tspans.length; i < ii; i++)\n          if (i) {\n            $(tspans[i], { dy: fontSize * leading, x: a.x });\n          } else {\n            $(tspans[0], { dy: 0 });\n          }\n      }\n      $(node, { x: a.x, y: a.y });\n      el._.dirty = 1;\n      var bb = el._getBBox(),\n        dif = a.y - (bb.y + bb.height / 2);\n      dif && R.is(dif, "finite") && $(tspans[0], { dy: dif });\n    },\n    getRealNode = function (node) {\n      if (node.parentNode && node.parentNode.tagName.toLowerCase() === "a") {\n        return node.parentNode;\n      } else {\n        return node;\n      }\n    },\n    Element = function (node, svg) {\n      var X = 0,\n        Y = 0;\n      /*\\\n             * Element.node\n             [ property (object) ]\n             **\n             * Gives you a reference to the DOM object, so you can assign event handlers or just mess around.\n             **\n             * Note: Don’t mess with it.\n             > Usage\n             | // draw a circle at coordinate 10,10 with radius of 10\n             | var c = paper.circle(10, 10, 10);\n             | c.node.onclick = function () {\n             |     c.attr("fill", "red");\n             | };\n             \\*/\n      this[0] = this.node = node;\n      /*\\\n             * Element.raphael\n             [ property (object) ]\n             **\n             * Internal reference to @Raphael object. In case it is not available.\n             > Usage\n             | Raphael.el.red = function () {\n             |     var hsb = this.paper.raphael.rgb2hsb(this.attr("fill"));\n             |     hsb.h = 1;\n             |     this.attr({fill: this.paper.raphael.hsb2rgb(hsb).hex});\n             | }\n             \\*/\n      node.raphael = true;\n      /*\\\n             * Element.id\n             [ property (number) ]\n             **\n             * Unique id of the element. Especially useful when you want to listen to events of the element,\n             * because all events are fired in format `<module>.<action>.<id>`. Also useful for @Paper.getById method.\n             \\*/\n      this.id = R._oid++;\n      node.raphaelid = this.id;\n      this.matrix = R.matrix();\n      this.realPath = null;\n      /*\\\n             * Element.paper\n             [ property (object) ]\n             **\n             * Internal reference to “paper” where object drawn. Mainly for use in plugins and element extensions.\n             > Usage\n             | Raphael.el.cross = function () {\n             |     this.attr({fill: "red"});\n             |     this.paper.path("M10,10L50,50M50,10L10,50")\n             |         .attr({stroke: "red"});\n             | }\n             \\*/\n      // 此修复可避免 TypeError: element.paper.customAttributes is undefined 错误\n      //   this.paper = svg;\n      var t = svg;\n      while (t.paper) {\n        t = t.paper;\n      }\n      this.paper = t; // 确保指向顶层画布\n      this.attrs = this.attrs || {};\n      this._ = {\n        transform: [],\n        sx: 1,\n        sy: 1,\n        deg: 0,\n        dx: 0,\n        dy: 0,\n        dirty: 1,\n      };\n      !svg.bottom && (svg.bottom = this);\n      /*\\\n             * Element.prev\n             [ property (object) ]\n             **\n             * Reference to the previous element in the hierarchy.\n             \\*/\n      this.prev = svg.top;\n      svg.top && (svg.top.next = this);\n      svg.top = this;\n      /*\\\n             * Element.next\n             [ property (object) ]\n             **\n             * Reference to the next element in the hierarchy.\n             \\*/\n      this.next = null;\n    },\n    elproto = R.el;\n\n  Element.prototype = elproto;\n  elproto.constructor = Element;\n\n  R._engine.path = function (pathString, SVG) {\n    var el = $("path");\n    SVG.canvas && SVG.canvas.appendChild(el);\n    var p = new Element(el, SVG);\n    p.type = "path";\n    setFillAndStroke(p, {\n      fill: "none",\n      stroke: "#000",\n      path: pathString,\n    });\n    return p;\n  };\n  /*\\\n     * Element.rotate\n     [ method ]\n     **\n     * Deprecated! Use @Element.transform instead.\n     * Adds rotation by given angle around given point to the list of\n     * transformations of the element.\n     > Parameters\n     - deg (number) angle in degrees\n     - cx (number) #optional x coordinate of the centre of rotation\n     - cy (number) #optional y coordinate of the centre of rotation\n     * If cx & cy aren’t specified centre of the shape is used as a point of rotation.\n     = (object) @Element\n     \\*/\n  elproto.rotate = function (deg, cx, cy) {\n    if (this.removed) {\n      return this;\n    }\n    deg = Str(deg).split(separator);\n    if (deg.length - 1) {\n      cx = toFloat(deg[1]);\n      cy = toFloat(deg[2]);\n    }\n    deg = toFloat(deg[0]);\n    cy == null && (cx = cy);\n    if (cx == null || cy == null) {\n      var bbox = this.getBBox(1);\n      cx = bbox.x + bbox.width / 2;\n      cy = bbox.y + bbox.height / 2;\n    }\n    this.transform(this._.transform.concat([["r", deg, cx, cy]]));\n    return this;\n  };\n  /*\\\n     * Element.scale\n     [ method ]\n     **\n     * Deprecated! Use @Element.transform instead.\n     * Adds scale by given amount relative to given point to the list of\n     * transformations of the element.\n     > Parameters\n     - sx (number) horisontal scale amount\n     - sy (number) vertical scale amount\n     - cx (number) #optional x coordinate of the centre of scale\n     - cy (number) #optional y coordinate of the centre of scale\n     * If cx & cy aren’t specified centre of the shape is used instead.\n     = (object) @Element\n     \\*/\n  elproto.scale = function (sx, sy, cx, cy) {\n    if (this.removed) {\n      return this;\n    }\n    sx = Str(sx).split(separator);\n    if (sx.length - 1) {\n      sy = toFloat(sx[1]);\n      cx = toFloat(sx[2]);\n      cy = toFloat(sx[3]);\n    }\n    sx = toFloat(sx[0]);\n    sy == null && (sy = sx);\n    cy == null && (cx = cy);\n    if (cx == null || cy == null) {\n      var bbox = this.getBBox(1);\n    }\n    cx = cx == null ? bbox.x + bbox.width / 2 : cx;\n    cy = cy == null ? bbox.y + bbox.height / 2 : cy;\n    this.transform(this._.transform.concat([["s", sx, sy, cx, cy]]));\n    return this;\n  };\n  /*\\\n     * Element.translate\n     [ method ]\n     **\n     * Deprecated! Use @Element.transform instead.\n     * Adds translation by given amount to the list of transformations of the element.\n     > Parameters\n     - dx (number) horisontal shift\n     - dy (number) vertical shift\n     = (object) @Element\n     \\*/\n  elproto.translate = function (dx, dy) {\n    if (this.removed) {\n      return this;\n    }\n    dx = Str(dx).split(separator);\n    if (dx.length - 1) {\n      dy = toFloat(dx[1]);\n    }\n    dx = toFloat(dx[0]) || 0;\n    dy = +dy || 0;\n    this.transform(this._.transform.concat([["t", dx, dy]]));\n    return this;\n  };\n  /*\\\n     * Element.transform\n     [ method ]\n     **\n     * Adds transformation to the element which is separate to other attributes,\n     * i.e. translation doesn’t change `x` or `y` of the rectange. The format\n     * of transformation string is similar to the path string syntax:\n     | "t100,100r30,100,100s2,2,100,100r45s1.5"\n     * Each letter is a command. There are four commands: `t` is for translate, `r` is for rotate, `s` is for\n     * scale and `m` is for matrix.\n     *\n     * There are also alternative “absolute” translation, rotation and scale: `T`, `R` and `S`. They will not take previous transformation into account. For example, `...T100,0` will always move element 100 px horisontally, while `...t100,0` could move it vertically if there is `r90` before. Just compare results of `r90t100,0` and `r90T100,0`.\n     *\n     * So, the example line above could be read like “translate by 100, 100; rotate 30° around 100, 100; scale twice around 100, 100;\n     * rotate 45° around centre; scale 1.5 times relative to centre”. As you can see rotate and scale commands have origin\n     * coordinates as optional parameters, the default is the centre point of the element.\n     * Matrix accepts six parameters.\n     > Usage\n     | var el = paper.rect(10, 20, 300, 200);\n     | // translate 100, 100, rotate 45°, translate -100, 0\n     | el.transform("t100,100r45t-100,0");\n     | // if you want you can append or prepend transformations\n     | el.transform("...t50,50");\n     | el.transform("s2...");\n     | // or even wrap\n     | el.transform("t50,50...t-50-50");\n     | // to reset transformation call method with empty string\n     | el.transform("");\n     | // to get current value call it without parameters\n     | console.log(el.transform());\n     > Parameters\n     - tstr (string) #optional transformation string\n     * If tstr isn’t specified\n     = (string) current transformation string\n     * else\n     = (object) @Element\n     \\*/\n  elproto.transform = function (tstr) {\n    var _ = this._;\n    if (tstr == null) {\n      return _.transform;\n    }\n    R._extractTransform(this, tstr);\n\n    this.clip && $(this.clip, { transform: this.matrix.invert() });\n    this.pattern && updatePosition(this);\n    this.node && $(this.node, { transform: this.matrix });\n\n    if (_.sx != 1 || _.sy != 1) {\n      var sw = this.attrs[has]("stroke-width") ? this.attrs["stroke-width"] : 1;\n      this.attr({ "stroke-width": sw });\n    }\n\n    //Reduce transform string\n    _.transform = this.matrix.toTransformString();\n\n    return this;\n  };\n  /*\\\n     * Element.hide\n     [ method ]\n     **\n     * Makes element invisible. See @Element.show.\n     = (object) @Element\n     \\*/\n  elproto.hide = function () {\n    if (!this.removed) this.node.style.display = "none";\n    return this;\n  };\n  /*\\\n     * Element.show\n     [ method ]\n     **\n     * Makes element visible. See @Element.hide.\n     = (object) @Element\n     \\*/\n  elproto.show = function () {\n    if (!this.removed) this.node.style.display = "";\n    return this;\n  };\n  /*\\\n     * Element.remove\n     [ method ]\n     **\n     * Removes element from the paper.\n     \\*/\n  elproto.remove = function () {\n    var node = getRealNode(this.node);\n    if (this.removed || !node.parentNode) {\n      return;\n    }\n    var paper = this.paper;\n    paper.__set__ && paper.__set__.exclude(this);\n    eve.unbind("raphael.*.*." + this.id);\n    if (this.gradient) {\n      paper.defs.removeChild(this.gradient);\n    }\n    R._tear(this, paper);\n\n    node.parentNode.removeChild(node);\n\n    // Remove custom data for element\n    this.removeData();\n\n    for (var i in this) {\n      this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null;\n    }\n    this.removed = true;\n  };\n  elproto._getBBox = function () {\n    if (this.node.style.display == "none") {\n      this.show();\n      var hide = true;\n    }\n    var canvasHidden = false,\n      containerStyle;\n    if (this.paper.canvas.parentElement) {\n      containerStyle = this.paper.canvas.parentElement.style;\n    } //IE10+ can\'t find parentElement\n    else if (this.paper.canvas.parentNode) {\n      containerStyle = this.paper.canvas.parentNode.style;\n    }\n\n    if (containerStyle && containerStyle.display == "none") {\n      canvasHidden = true;\n      containerStyle.display = "";\n    }\n    var bbox = {};\n    try {\n      bbox = this.node.getBBox();\n    } catch (e) {\n      // Firefox 3.0.x, 25.0.1 (probably more versions affected) play badly here - possible fix\n      bbox = {\n        x: this.node.clientLeft,\n        y: this.node.clientTop,\n        width: this.node.clientWidth,\n        height: this.node.clientHeight,\n      };\n    } finally {\n      bbox = bbox || {};\n      if (canvasHidden) {\n        containerStyle.display = "none";\n      }\n    }\n    hide && this.hide();\n    return bbox;\n  };\n  /*\\\n     * Element.attr\n     [ method ]\n     **\n     * Sets the attributes of the element.\n     > Parameters\n     - attrName (string) attribute’s name\n     - value (string) value\n     * or\n     - params (object) object of name/value pairs\n     * or\n     - attrName (string) attribute’s name\n     * or\n     - attrNames (array) in this case method returns array of current values for given attribute names\n     = (object) @Element if attrsName & value or params are passed in.\n     = (...) value of the attribute if only attrsName is passed in.\n     = (array) array of values of the attribute if attrsNames is passed in.\n     = (object) object of attributes if nothing is passed in.\n     > Possible parameters\n     # <p>Please refer to the <a href="http://www.w3.org/TR/SVG/" title="The W3C Recommendation for the SVG language describes these properties in detail.">SVG specification</a> for an explanation of these parameters.</p>\n     o arrow-end (string) arrowhead on the end of the path. The format for string is `<type>[-<width>[-<length>]]`. Possible types: `classic`, `block`, `open`, `oval`, `diamond`, `none`, width: `wide`, `narrow`, `medium`, length: `long`, `short`, `midium`.\n     o clip-rect (string) comma or space separated values: x, y, width and height\n     o cursor (string) CSS type of the cursor\n     o cx (number) the x-axis coordinate of the center of the circle, or ellipse\n     o cy (number) the y-axis coordinate of the center of the circle, or ellipse\n     o fill (string) colour, gradient or image\n     o fill-opacity (number)\n     o font (string)\n     o font-family (string)\n     o font-size (number) font size in pixels\n     o font-weight (string)\n     o height (number)\n     o href (string) URL, if specified element behaves as hyperlink\n     o opacity (number)\n     o path (string) SVG path string format\n     o r (number) radius of the circle, ellipse or rounded corner on the rect\n     o rx (number) horisontal radius of the ellipse\n     o ry (number) vertical radius of the ellipse\n     o src (string) image URL, only works for @Element.image element\n     o stroke (string) stroke colour\n     o stroke-dasharray (string) [“”, “none”, “`-`”, “`.`”, “`-.`”, “`-..`”, “`. `”, “`- `”, “`--`”, “`- .`”, “`--.`”, “`--..`”]\n     o stroke-linecap (string) [“`butt`”, “`square`”, “`round`”]\n     o stroke-linejoin (string) [“`bevel`”, “`round`”, “`miter`”]\n     o stroke-miterlimit (number)\n     o stroke-opacity (number)\n     o stroke-width (number) stroke width in pixels, default is \'1\'\n     o target (string) used with href\n     o text (string) contents of the text element. Use `\\n` for multiline text\n     o text-anchor (string) [“`start`”, “`middle`”, “`end`”], default is “`middle`”\n     o title (string) will create tooltip with a given text\n     o transform (string) see @Element.transform\n     o width (number)\n     o x (number)\n     o y (number)\n     > Gradients\n     * Linear gradient format: “`‹angle›-‹colour›[-‹colour›[:‹offset›]]*-‹colour›`”, example: “`90-#fff-#000`” – 90°\n     * gradient from white to black or “`0-#fff-#f00:20-#000`” – 0° gradient from white via red (at 20%) to black.\n     *\n     * radial gradient: “`r[(‹fx›, ‹fy›)]‹colour›[-‹colour›[:‹offset›]]*-‹colour›`”, example: “`r#fff-#000`” –\n     * gradient from white to black or “`r(0.25, 0.75)#fff-#000`” – gradient from white to black with focus point\n     * at 0.25, 0.75. Focus point coordinates are in 0..1 range. Radial gradients can only be applied to circles and ellipses.\n     > Path String\n     # <p>Please refer to <a href="http://www.w3.org/TR/SVG/paths.html#PathData" title="Details of a path’s data attribute’s format are described in the SVG specification.">SVG documentation regarding path string</a>. Raphaël fully supports it.</p>\n     > Colour Parsing\n     # <ul>\n     #     <li>Colour name (“<code>red</code>”, “<code>green</code>”, “<code>cornflowerblue</code>”, etc)</li>\n     #     <li>#••• — shortened HTML colour: (“<code>#000</code>”, “<code>#fc0</code>”, etc)</li>\n     #     <li>#•••••• — full length HTML colour: (“<code>#000000</code>”, “<code>#bd2300</code>”)</li>\n     #     <li>rgb(•••, •••, •••) — red, green and blue channels’ values: (“<code>rgb(200,&nbsp;100,&nbsp;0)</code>”)</li>\n     #     <li>rgb(•••%, •••%, •••%) — same as above, but in %: (“<code>rgb(100%,&nbsp;175%,&nbsp;0%)</code>”)</li>\n     #     <li>rgba(•••, •••, •••, •••) — red, green and blue channels’ values: (“<code>rgba(200,&nbsp;100,&nbsp;0, .5)</code>”)</li>\n     #     <li>rgba(•••%, •••%, •••%, •••%) — same as above, but in %: (“<code>rgba(100%,&nbsp;175%,&nbsp;0%, 50%)</code>”)</li>\n     #     <li>hsb(•••, •••, •••) — hue, saturation and brightness values: (“<code>hsb(0.5,&nbsp;0.25,&nbsp;1)</code>”)</li>\n     #     <li>hsb(•••%, •••%, •••%) — same as above, but in %</li>\n     #     <li>hsba(•••, •••, •••, •••) — same as above, but with opacity</li>\n     #     <li>hsl(•••, •••, •••) — almost the same as hsb, see <a href="http://en.wikipedia.org/wiki/HSL_and_HSV" title="HSL and HSV - Wikipedia, the free encyclopedia">Wikipedia page</a></li>\n     #     <li>hsl(•••%, •••%, •••%) — same as above, but in %</li>\n     #     <li>hsla(•••, •••, •••, •••) — same as above, but with opacity</li>\n     #     <li>Optionally for hsb and hsl you could specify hue as a degree: “<code>hsl(240deg,&nbsp;1,&nbsp;.5)</code>” or, if you want to go fancy, “<code>hsl(240°,&nbsp;1,&nbsp;.5)</code>”</li>\n     # </ul>\n     \\*/\n  elproto.attr = function (name, value) {\n    if (this.removed) {\n      return this;\n    }\n    if (name == null) {\n      var res = {};\n      for (var a in this.attrs)\n        if (this.attrs[has](a)) {\n          res[a] = this.attrs[a];\n        }\n      res.gradient &&\n        res.fill == "none" &&\n        (res.fill = res.gradient) &&\n        delete res.gradient;\n      res.transform = this._.transform;\n      return res;\n    }\n    if (value == null && R.is(name, "string")) {\n      if (name == "fill" && this.attrs.fill == "none" && this.attrs.gradient) {\n        return this.attrs.gradient;\n      }\n      if (name == "transform") {\n        return this._.transform;\n      }\n      var names = name.split(separator),\n        out = {};\n      for (var i = 0, ii = names.length; i < ii; i++) {\n        name = names[i];\n        if (name in this.attrs) {\n          out[name] = this.attrs[name];\n        } else if (R.is(this.paper.customAttributes[name], "function")) {\n          out[name] = this.paper.customAttributes[name].def;\n        } else {\n          out[name] = R._availableAttrs[name];\n        }\n      }\n      return ii - 1 ? out : out[names[0]];\n    }\n    if (value == null && R.is(name, "array")) {\n      out = {};\n      for (i = 0, ii = name.length; i < ii; i++) {\n        out[name[i]] = this.attr(name[i]);\n      }\n      return out;\n    }\n    if (value != null) {\n      var params = {};\n      params[name] = value;\n    } else if (name != null && R.is(name, "object")) {\n      params = name;\n    }\n    for (var key in params) {\n      eve("raphael.attr." + key + "." + this.id, this, params[key]);\n    }\n    for (key in this.paper.customAttributes)\n      if (\n        this.paper.customAttributes[has](key) &&\n        params[has](key) &&\n        R.is(this.paper.customAttributes[key], "function")\n      ) {\n        var par = this.paper.customAttributes[key].apply(\n          this,\n          [].concat(params[key])\n        );\n        this.attrs[key] = params[key];\n        for (var subkey in par)\n          if (par[has](subkey)) {\n            params[subkey] = par[subkey];\n          }\n      }\n    setFillAndStroke(this, params);\n    return this;\n  };\n  /*\\\n     * Element.toFront\n     [ method ]\n     **\n     * Moves the element so it is the closest to the viewer’s eyes, on top of other elements.\n     = (object) @Element\n     \\*/\n  elproto.toFront = function () {\n    if (this.removed) {\n      return this;\n    }\n    var node = getRealNode(this.node);\n    node.parentNode.appendChild(node);\n    var svg = this.paper;\n    svg.top != this && R._tofront(this, svg);\n    return this;\n  };\n  /*\\\n     * Element.toBack\n     [ method ]\n     **\n     * Moves the element so it is the furthest from the viewer’s eyes, behind other elements.\n     = (object) @Element\n     \\*/\n  elproto.toBack = function () {\n    if (this.removed) {\n      return this;\n    }\n    var node = getRealNode(this.node);\n    var parentNode = node.parentNode;\n    parentNode.insertBefore(node, parentNode.firstChild);\n    R._toback(this, this.paper);\n    var svg = this.paper;\n    return this;\n  };\n  /*\\\n     * Element.insertAfter\n     [ method ]\n     **\n     * Inserts current object after the given one.\n     = (object) @Element\n     \\*/\n  elproto.insertAfter = function (element) {\n    if (this.removed || !element) {\n      return this;\n    }\n\n    var node = getRealNode(this.node);\n    var afterNode = getRealNode(\n      element.node || element[element.length - 1].node\n    );\n    if (afterNode.nextSibling) {\n      afterNode.parentNode.insertBefore(node, afterNode.nextSibling);\n    } else {\n      afterNode.parentNode.appendChild(node);\n    }\n    R._insertafter(this, element, this.paper);\n    return this;\n  };\n  /*\\\n     * Element.insertBefore\n     [ method ]\n     **\n     * Inserts current object before the given one.\n     = (object) @Element\n     \\*/\n  elproto.insertBefore = function (element) {\n    if (this.removed || !element) {\n      return this;\n    }\n\n    var node = getRealNode(this.node);\n    var beforeNode = getRealNode(element.node || element[0].node);\n    beforeNode.parentNode.insertBefore(node, beforeNode);\n    R._insertbefore(this, element, this.paper);\n    return this;\n  };\n  elproto.blur = function (size) {\n    // Experimental. No Safari support. Use it on your own risk.\n    var t = this;\n    if (+size !== 0) {\n      var fltr = $("filter"),\n        blur = $("feGaussianBlur");\n      t.attrs.blur = size;\n      fltr.id = R.createUUID();\n      $(blur, { stdDeviation: +size || 1.5 });\n      fltr.appendChild(blur);\n      t.paper.defs.appendChild(fltr);\n      t._blur = fltr;\n      $(t.node, { filter: "url(#" + fltr.id + ")" });\n    } else {\n      if (t._blur) {\n        t._blur.parentNode.removeChild(t._blur);\n        delete t._blur;\n        delete t.attrs.blur;\n      }\n      t.node.removeAttribute("filter");\n    }\n    return t;\n  };\n  R._engine.group = function (svg) {\n    // var el = svg.canvas.createElement("g")\n    var el = $("g");\n    svg.canvas && svg.canvas.appendChild(el);\n    var res = new Element(el, svg);\n    res.type = "g";\n    return res;\n  };\n  R._engine.circle = function (svg, x, y, r) {\n    var el = $("circle");\n    svg.canvas && svg.canvas.appendChild(el);\n    var res = new Element(el, svg);\n    res.attrs = { cx: x, cy: y, r: r, fill: "none", stroke: "#000" };\n    res.type = "circle";\n    $(el, res.attrs);\n    return res;\n  };\n  R._engine.rect = function (svg, x, y, w, h, r) {\n    var el = $("rect");\n    svg.canvas && svg.canvas.appendChild(el);\n    var res = new Element(el, svg);\n    res.attrs = {\n      x: x,\n      y: y,\n      width: w,\n      height: h,\n      rx: r || 0,\n      ry: r || 0,\n      fill: "none",\n      stroke: "#000",\n    };\n    res.type = "rect";\n    $(el, res.attrs);\n    return res;\n  };\n  R._engine.ellipse = function (svg, x, y, rx, ry) {\n    var el = $("ellipse");\n    svg.canvas && svg.canvas.appendChild(el);\n    var res = new Element(el, svg);\n    res.attrs = { cx: x, cy: y, rx: rx, ry: ry, fill: "none", stroke: "#000" };\n    res.type = "ellipse";\n    $(el, res.attrs);\n    return res;\n  };\n  R._engine.image = function (svg, src, x, y, w, h) {\n    var el = $("image");\n    $(el, { x: x, y: y, width: w, height: h, preserveAspectRatio: "none" });\n    el.setAttributeNS(xlink, "href", src);\n    svg.canvas && svg.canvas.appendChild(el);\n    var res = new Element(el, svg);\n    res.attrs = { x: x, y: y, width: w, height: h, src: src };\n    res.type = "image";\n    return res;\n  };\n  R._engine.text = function (svg, x, y, text) {\n    var el = $("text");\n    svg.canvas && svg.canvas.appendChild(el);\n    var res = new Element(el, svg);\n    res.attrs = {\n      x: x,\n      y: y,\n      "text-anchor": "middle",\n      text: text,\n      "font-family": R._availableAttrs["font-family"],\n      "font-size": R._availableAttrs["font-size"],\n      stroke: "none",\n      fill: "#000",\n    };\n    res.type = "text";\n    setFillAndStroke(res, res.attrs);\n    return res;\n  };\n  R._engine.setSize = function (width, height) {\n    this.width = width || this.width;\n    this.height = height || this.height;\n    this.canvas.setAttribute("width", this.width);\n    this.canvas.setAttribute("height", this.height);\n    if (this._viewBox) {\n      this.setViewBox.apply(this, this._viewBox);\n    }\n    return this;\n  };\n  R._engine.create = function () {\n    var con = R._getContainer.apply(0, arguments),\n      container = con && con.container,\n      x = con.x,\n      y = con.y,\n      width = con.width,\n      height = con.height;\n    if (!container) {\n      throw new Error("SVG container not found.");\n    }\n    var cnvs = $("svg"),\n      css = "overflow:hidden;",\n      isFloating;\n    x = x || 0;\n    y = y || 0;\n    width = width || 512;\n    height = height || 342;\n    $(cnvs, {\n      height: height,\n      version: 1.1,\n      width: width,\n      xmlns: "http://www.w3.org/2000/svg",\n      "xmlns:xlink": "http://www.w3.org/1999/xlink",\n    });\n    if (container == 1) {\n      cnvs.style.cssText =\n        css + "position:absolute;left:" + x + "px;top:" + y + "px";\n      R._g.doc.body.appendChild(cnvs);\n      isFloating = 1;\n    } else {\n      cnvs.style.cssText = css + "position:relative";\n      if (container.firstChild) {\n        container.insertBefore(cnvs, container.firstChild);\n      } else {\n        container.appendChild(cnvs);\n      }\n    }\n    container = new R._Paper();\n    container.width = width;\n    container.height = height;\n    container.canvas = cnvs;\n    container.clear();\n    container._left = container._top = 0;\n    isFloating && (container.renderfix = function () {});\n    container.renderfix();\n    return container;\n  };\n  R._engine.setViewBox = function (x, y, w, h, fit) {\n    eve("raphael.setViewBox", this, this._viewBox, [x, y, w, h, fit]);\n    var paperSize = this.getSize(),\n      size = mmax(w / paperSize.width, h / paperSize.height),\n      top = this.top,\n      aspectRatio = fit ? "xMidYMid meet" : "xMinYMin",\n      vb,\n      sw;\n    if (x == null) {\n      if (this._vbSize) {\n        size = 1;\n      }\n      delete this._vbSize;\n      vb = "0 0 " + this.width + S + this.height;\n    } else {\n      this._vbSize = size;\n      vb = x + S + y + S + w + S + h;\n    }\n    $(this.canvas, {\n      viewBox: vb,\n      preserveAspectRatio: aspectRatio,\n    });\n    while (size && top) {\n      sw = "stroke-width" in top.attrs ? top.attrs["stroke-width"] : 1;\n      top.attr({ "stroke-width": sw });\n      top._.dirty = 1;\n      top._.dirtyT = 1;\n      top = top.prev;\n    }\n    this._viewBox = [x, y, w, h, !!fit];\n    return this;\n  };\n  /*\\\n     * Paper.renderfix\n     [ method ]\n     **\n     * Fixes the issue of Firefox and IE9 regarding subpixel rendering. If paper is dependant\n     * on other elements after reflow it could shift half pixel which cause for lines to lost their crispness.\n     * This method fixes the issue.\n     **\n     Special thanks to Mariusz Nowak (http://www.medikoo.com/) for this method.\n     \\*/\n  R.prototype.renderfix = function () {\n    var cnvs = this.canvas,\n      s = cnvs.style,\n      pos;\n    try {\n      pos = cnvs.getScreenCTM() || cnvs.createSVGMatrix();\n    } catch (e) {\n      pos = cnvs.createSVGMatrix();\n    }\n    var left = -pos.e % 1,\n      top = -pos.f % 1;\n    if (left || top) {\n      if (left) {\n        this._left = (this._left + left) % 1;\n        s.left = this._left + "px";\n      }\n      if (top) {\n        this._top = (this._top + top) % 1;\n        s.top = this._top + "px";\n      }\n    }\n  };\n  /*\\\n     * Paper.clear\n     [ method ]\n     **\n     * Clears the paper, i.e. removes all the elements.\n     \\*/\n  R.prototype.clear = function () {\n    R.eve("raphael.clear", this);\n    var c = this.canvas;\n    while (c.firstChild) {\n      c.removeChild(c.firstChild);\n    }\n    this.bottom = this.top = null;\n    (this.desc = $("desc")).appendChild(\n      R._g.doc.createTextNode("Created with Rapha\\xebl " + R.version)\n    );\n    c.appendChild(this.desc);\n    c.appendChild((this.defs = $("defs")));\n  };\n  /*\\\n     * Paper.remove\n     [ method ]\n     **\n     * Removes the paper from the DOM.\n     \\*/\n  R.prototype.remove = function () {\n    eve("raphael.remove", this);\n    this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas);\n    for (var i in this) {\n      this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null;\n    }\n  };\n  var setproto = R.st;\n  for (var method in elproto)\n    if (elproto[has](method) && !setproto[has](method)) {\n      setproto[method] = (function (methodname) {\n        return function () {\n          var arg = arguments;\n          return this.forEach(function (el) {\n            el[methodname].apply(el, arg);\n          });\n        };\n      })(method);\n    }\n});\n\n// ┌─────────────────────────────────────────────────────────────────────┐ \\\\\n// │ Raphaël 2.1.4 - JavaScript Vector Library                       │ \\\\\n// ├─────────────────────────────────────────────────────────────────────┤ \\\\\n// │ VML Module                                                          │ \\\\\n// ├─────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Copyright (c) 2008-2011 Dmitry Baranovskiy (http://raphaeljs.com)   │ \\\\\n// │ Copyright (c) 2008-2011 Sencha Labs (http://sencha.com)             │ \\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license. │ \\\\\n// └─────────────────────────────────────────────────────────────────────┘ \\\\\n\n(function (glob, factory) {\n  if (typeof define === "function" && define.amd) {\n    define("raphael.vml", ["raphael.core"], function (raphael) {\n      return factory(raphael);\n    });\n  } else if (typeof exports === "object") {\n    factory(require("./raphael.core"));\n  } else {\n    factory(glob.Raphael);\n  }\n})(this, function (R) {\n  if (R && !R.vml) {\n    return;\n  }\n\n  var has = "hasOwnProperty",\n    Str = String,\n    toFloat = parseFloat,\n    math = Math,\n    round = math.round,\n    mmax = math.max,\n    mmin = math.min,\n    abs = math.abs,\n    fillString = "fill",\n    separator = /[, ]+/,\n    eve = R.eve,\n    ms = " progid:DXImageTransform.Microsoft",\n    S = " ",\n    E = "",\n    map = { M: "m", L: "l", C: "c", Z: "x", m: "t", l: "r", c: "v", z: "x" },\n    bites = /([clmz]),?([^clmz]*)/gi,\n    blurregexp = / progid:\\S+Blur\\([^\\)]+\\)/g,\n    val = /-?[^,\\s-]+/g,\n    cssDot =\n      "position:absolute;left:0;top:0;width:1px;height:1px;behavior:url(#default#VML)",\n    zoom = 21600,\n    pathTypes = { path: 1, rect: 1, image: 1 },\n    ovalTypes = { circle: 1, ellipse: 1 },\n    path2vml = function (path) {\n      var total = /[ahqstv]/gi,\n        command = R._pathToAbsolute;\n      Str(path).match(total) && (command = R._path2curve);\n      total = /[clmz]/g;\n      if (command == R._pathToAbsolute && !Str(path).match(total)) {\n        var res = Str(path).replace(bites, function (all, command, args) {\n          var vals = [],\n            isMove = command.toLowerCase() == "m",\n            res = map[command];\n          args.replace(val, function (value) {\n            if (isMove && vals.length == 2) {\n              res += vals + map[command == "m" ? "l" : "L"];\n              vals = [];\n            }\n            vals.push(round(value * zoom));\n          });\n          return res + vals;\n        });\n        return res;\n      }\n      var pa = command(path),\n        p,\n        r;\n      res = [];\n      for (var i = 0, ii = pa.length; i < ii; i++) {\n        p = pa[i];\n        r = pa[i][0].toLowerCase();\n        r == "z" && (r = "x");\n        for (var j = 1, jj = p.length; j < jj; j++) {\n          r += round(p[j] * zoom) + (j != jj - 1 ? "," : E);\n        }\n        res.push(r);\n      }\n      return res.join(S);\n    },\n    compensation = function (deg, dx, dy) {\n      var m = R.matrix();\n      m.rotate(-deg, 0.5, 0.5);\n      return {\n        dx: m.x(dx, dy),\n        dy: m.y(dx, dy),\n      };\n    },\n    setCoords = function (p, sx, sy, dx, dy, deg) {\n      var _ = p._,\n        m = p.matrix,\n        fillpos = _.fillpos,\n        o = p.node,\n        s = o.style,\n        y = 1,\n        flip = "",\n        dxdy,\n        kx = zoom / sx,\n        ky = zoom / sy;\n      s.visibility = "hidden";\n      if (!sx || !sy) {\n        return;\n      }\n      o.coordsize = abs(kx) + S + abs(ky);\n      s.rotation = deg * (sx * sy < 0 ? -1 : 1);\n      if (deg) {\n        var c = compensation(deg, dx, dy);\n        dx = c.dx;\n        dy = c.dy;\n      }\n      sx < 0 && (flip += "x");\n      sy < 0 && (flip += " y") && (y = -1);\n      s.flip = flip;\n      o.coordorigin = dx * -kx + S + dy * -ky;\n      if (fillpos || _.fillsize) {\n        var fill = o.getElementsByTagName(fillString);\n        fill = fill && fill[0];\n        o.removeChild(fill);\n        if (fillpos) {\n          c = compensation(\n            deg,\n            m.x(fillpos[0], fillpos[1]),\n            m.y(fillpos[0], fillpos[1])\n          );\n          fill.position = c.dx * y + S + c.dy * y;\n        }\n        if (_.fillsize) {\n          fill.size = _.fillsize[0] * abs(sx) + S + _.fillsize[1] * abs(sy);\n        }\n        o.appendChild(fill);\n      }\n      s.visibility = "visible";\n    };\n  R.toString = function () {\n    return (\n      "Your browser doesn\\u2019t support SVG. Falling down to VML.\\nYou are running Rapha\\xebl " +\n      this.version\n    );\n  };\n  var addArrow = function (o, value, isEnd) {\n      var values = Str(value).toLowerCase().split("-"),\n        se = isEnd ? "end" : "start",\n        i = values.length,\n        type = "classic",\n        w = "medium",\n        h = "medium";\n      while (i--) {\n        switch (values[i]) {\n          case "block":\n          case "classic":\n          case "oval":\n          case "diamond":\n          case "open":\n          case "none":\n            type = values[i];\n            break;\n          case "wide":\n          case "narrow":\n            h = values[i];\n            break;\n          case "long":\n          case "short":\n            w = values[i];\n            break;\n        }\n      }\n      var stroke = o.node.getElementsByTagName("stroke")[0];\n      stroke[se + "arrow"] = type;\n      stroke[se + "arrowlength"] = w;\n      stroke[se + "arrowwidth"] = h;\n    },\n    setFillAndStroke = function (o, params) {\n      // o.paper.canvas.style.display = "none";\n      o.attrs = o.attrs || {};\n      var node = o.node,\n        a = o.attrs,\n        s = node.style,\n        xy,\n        newpath =\n          pathTypes[o.type] &&\n          (params.x != a.x ||\n            params.y != a.y ||\n            params.width != a.width ||\n            params.height != a.height ||\n            params.cx != a.cx ||\n            params.cy != a.cy ||\n            params.rx != a.rx ||\n            params.ry != a.ry ||\n            params.r != a.r),\n        isOval =\n          ovalTypes[o.type] &&\n          (a.cx != params.cx ||\n            a.cy != params.cy ||\n            a.r != params.r ||\n            a.rx != params.rx ||\n            a.ry != params.ry),\n        res = o;\n\n      for (var par in params)\n        if (params[has](par)) {\n          a[par] = params[par];\n        }\n      if (newpath) {\n        a.path = R._getPath[o.type](o);\n        o._.dirty = 1;\n      }\n      params.href && (node.href = params.href);\n      params.title && (node.title = params.title);\n      params.target && (node.target = params.target);\n      params.cursor && (s.cursor = params.cursor);\n      "blur" in params && o.blur(params.blur);\n      if ((params.path && o.type == "path") || newpath) {\n        node.path = path2vml(\n          ~Str(a.path).toLowerCase().indexOf("r")\n            ? R._pathToAbsolute(a.path)\n            : a.path\n        );\n        o._.dirty = 1;\n        if (o.type == "image") {\n          o._.fillpos = [a.x, a.y];\n          o._.fillsize = [a.width, a.height];\n          setCoords(o, 1, 1, 0, 0, 0);\n        }\n      }\n      "transform" in params && o.transform(params.transform);\n      if (isOval) {\n        var cx = +a.cx,\n          cy = +a.cy,\n          rx = +a.rx || +a.r || 0,\n          ry = +a.ry || +a.r || 0;\n        node.path = R.format(\n          "ar{0},{1},{2},{3},{4},{1},{4},{1}x",\n          round((cx - rx) * zoom),\n          round((cy - ry) * zoom),\n          round((cx + rx) * zoom),\n          round((cy + ry) * zoom),\n          round(cx * zoom)\n        );\n        o._.dirty = 1;\n      }\n      if ("clip-rect" in params) {\n        var rect = Str(params["clip-rect"]).split(separator);\n        if (rect.length == 4) {\n          rect[2] = +rect[2] + +rect[0];\n          rect[3] = +rect[3] + +rect[1];\n          var div = node.clipRect || R._g.doc.createElement("div"),\n            dstyle = div.style;\n          dstyle.clip = R.format("rect({1}px {2}px {3}px {0}px)", rect);\n          if (!node.clipRect) {\n            dstyle.position = "absolute";\n            dstyle.top = 0;\n            dstyle.left = 0;\n            dstyle.width = o.paper.width + "px";\n            dstyle.height = o.paper.height + "px";\n            node.parentNode.insertBefore(div, node);\n            div.appendChild(node);\n            node.clipRect = div;\n          }\n        }\n        if (!params["clip-rect"]) {\n          node.clipRect && (node.clipRect.style.clip = "auto");\n        }\n      }\n      if (o.textpath) {\n        var textpathStyle = o.textpath.style;\n        params.font && (textpathStyle.font = params.font);\n        params["font-family"] &&\n          (textpathStyle.fontFamily =\n            \'"\' +\n            params["font-family"].split(",")[0].replace(/^[\'"]+|[\'"]+$/g, E) +\n            \'"\');\n        params["font-size"] && (textpathStyle.fontSize = params["font-size"]);\n        params["font-weight"] &&\n          (textpathStyle.fontWeight = params["font-weight"]);\n        params["font-style"] &&\n          (textpathStyle.fontStyle = params["font-style"]);\n      }\n      if ("arrow-start" in params) {\n        addArrow(res, params["arrow-start"]);\n      }\n      if ("arrow-end" in params) {\n        addArrow(res, params["arrow-end"], 1);\n      }\n      if (\n        params.opacity != null ||\n        params["stroke-width"] != null ||\n        params.fill != null ||\n        params.src != null ||\n        params.stroke != null ||\n        params["stroke-width"] != null ||\n        params["stroke-opacity"] != null ||\n        params["fill-opacity"] != null ||\n        params["stroke-dasharray"] != null ||\n        params["stroke-miterlimit"] != null ||\n        params["stroke-linejoin"] != null ||\n        params["stroke-linecap"] != null\n      ) {\n        var fill = node.getElementsByTagName(fillString),\n          newfill = false;\n        fill = fill && fill[0];\n        !fill && (newfill = fill = createNode(fillString));\n        if (o.type == "image" && params.src) {\n          fill.src = params.src;\n        }\n        params.fill && (fill.on = true);\n        if (fill.on == null || params.fill == "none" || params.fill === null) {\n          fill.on = false;\n        }\n        if (fill.on && params.fill) {\n          var isURL = Str(params.fill).match(R._ISURL);\n          if (isURL) {\n            fill.parentNode == node && node.removeChild(fill);\n            fill.rotate = true;\n            fill.src = isURL[1];\n            fill.type = "tile";\n            var bbox = o.getBBox(1);\n            fill.position = bbox.x + S + bbox.y;\n            o._.fillpos = [bbox.x, bbox.y];\n\n            R._preload(isURL[1], function () {\n              o._.fillsize = [this.offsetWidth, this.offsetHeight];\n            });\n          } else {\n            fill.color = R.getRGB(params.fill).hex;\n            fill.src = E;\n            fill.type = "solid";\n            if (\n              R.getRGB(params.fill).error &&\n              (res.type in { circle: 1, ellipse: 1 } ||\n                Str(params.fill).charAt() != "r") &&\n              addGradientFill(res, params.fill, fill)\n            ) {\n              a.fill = "none";\n              a.gradient = params.fill;\n              fill.rotate = false;\n            }\n          }\n        }\n        if ("fill-opacity" in params || "opacity" in params) {\n          var opacity =\n            ((+a["fill-opacity"] + 1 || 2) - 1) *\n            ((+a.opacity + 1 || 2) - 1) *\n            ((+R.getRGB(params.fill).o + 1 || 2) - 1);\n          opacity = mmin(mmax(opacity, 0), 1);\n          fill.opacity = opacity;\n          if (fill.src) {\n            fill.color = "none";\n          }\n        }\n        node.appendChild(fill);\n        var stroke =\n            node.getElementsByTagName("stroke") &&\n            node.getElementsByTagName("stroke")[0],\n          newstroke = false;\n        !stroke && (newstroke = stroke = createNode("stroke"));\n        if (\n          (params.stroke && params.stroke != "none") ||\n          params["stroke-width"] ||\n          params["stroke-opacity"] != null ||\n          params["stroke-dasharray"] ||\n          params["stroke-miterlimit"] ||\n          params["stroke-linejoin"] ||\n          params["stroke-linecap"]\n        ) {\n          stroke.on = true;\n        }\n        (params.stroke == "none" ||\n          params.stroke === null ||\n          stroke.on == null ||\n          params.stroke == 0 ||\n          params["stroke-width"] == 0) &&\n          (stroke.on = false);\n        var strokeColor = R.getRGB(params.stroke);\n        stroke.on && params.stroke && (stroke.color = strokeColor.hex);\n        opacity =\n          ((+a["stroke-opacity"] + 1 || 2) - 1) *\n          ((+a.opacity + 1 || 2) - 1) *\n          ((+strokeColor.o + 1 || 2) - 1);\n        var width = (toFloat(params["stroke-width"]) || 1) * 0.75;\n        opacity = mmin(mmax(opacity, 0), 1);\n        params["stroke-width"] == null && (width = a["stroke-width"]);\n        params["stroke-width"] && (stroke.weight = width);\n        width && width < 1 && (opacity *= width) && (stroke.weight = 1);\n        stroke.opacity = opacity;\n\n        params["stroke-linejoin"] &&\n          (stroke.joinstyle = params["stroke-linejoin"] || "miter");\n        stroke.miterlimit = params["stroke-miterlimit"] || 8;\n        params["stroke-linecap"] &&\n          (stroke.endcap =\n            params["stroke-linecap"] == "butt"\n              ? "flat"\n              : params["stroke-linecap"] == "square"\n              ? "square"\n              : "round");\n        if ("stroke-dasharray" in params) {\n          var dasharray = {\n            "-": "shortdash",\n            ".": "shortdot",\n            "-.": "shortdashdot",\n            "-..": "shortdashdotdot",\n            ". ": "dot",\n            "- ": "dash",\n            "--": "longdash",\n            "- .": "dashdot",\n            "--.": "longdashdot",\n            "--..": "longdashdotdot",\n          };\n          stroke.dashstyle = dasharray[has](params["stroke-dasharray"])\n            ? dasharray[params["stroke-dasharray"]]\n            : E;\n        }\n        newstroke && node.appendChild(stroke);\n      }\n      if (res.type == "text") {\n        res.paper.canvas.style.display = E;\n        var span = res.paper.span,\n          m = 100,\n          fontSize = a.font && a.font.match(/\\d+(?:\\.\\d*)?(?=px)/);\n        s = span.style;\n        a.font && (s.font = a.font);\n        a["font-family"] && (s.fontFamily = a["font-family"]);\n        a["font-weight"] && (s.fontWeight = a["font-weight"]);\n        a["font-style"] && (s.fontStyle = a["font-style"]);\n        fontSize = toFloat(a["font-size"] || (fontSize && fontSize[0])) || 10;\n        s.fontSize = fontSize * m + "px";\n        res.textpath.string &&\n          (span.innerHTML = Str(res.textpath.string)\n            .replace(/</g, "&#60;")\n            .replace(/&/g, "&#38;")\n            .replace(/\\n/g, "<br>"));\n        var brect = span.getBoundingClientRect();\n        res.W = a.w = (brect.right - brect.left) / m;\n        res.H = a.h = (brect.bottom - brect.top) / m;\n        // res.paper.canvas.style.display = "none";\n        res.X = a.x;\n        res.Y = a.y + res.H / 2;\n\n        ("x" in params || "y" in params) &&\n          (res.path.v = R.format(\n            "m{0},{1}l{2},{1}",\n            round(a.x * zoom),\n            round(a.y * zoom),\n            round(a.x * zoom) + 1\n          ));\n        var dirtyattrs = [\n          "x",\n          "y",\n          "text",\n          "font",\n          "font-family",\n          "font-weight",\n          "font-style",\n          "font-size",\n        ];\n        for (var d = 0, dd = dirtyattrs.length; d < dd; d++)\n          if (dirtyattrs[d] in params) {\n            res._.dirty = 1;\n            break;\n          }\n\n        // text-anchor emulation\n        switch (a["text-anchor"]) {\n          case "start":\n            res.textpath.style["v-text-align"] = "left";\n            res.bbx = res.W / 2;\n            break;\n          case "end":\n            res.textpath.style["v-text-align"] = "right";\n            res.bbx = -res.W / 2;\n            break;\n          default:\n            res.textpath.style["v-text-align"] = "center";\n            res.bbx = 0;\n            break;\n        }\n        res.textpath.style["v-text-kern"] = true;\n      }\n      // res.paper.canvas.style.display = E;\n    },\n    addGradientFill = function (o, gradient, fill) {\n      o.attrs = o.attrs || {};\n      var attrs = o.attrs,\n        pow = Math.pow,\n        opacity,\n        oindex,\n        type = "linear",\n        fxfy = ".5 .5";\n      o.attrs.gradient = gradient;\n      gradient = Str(gradient).replace(\n        R._radial_gradient,\n        function (all, fx, fy) {\n          type = "radial";\n          if (fx && fy) {\n            fx = toFloat(fx);\n            fy = toFloat(fy);\n            pow(fx - 0.5, 2) + pow(fy - 0.5, 2) > 0.25 &&\n              (fy =\n                math.sqrt(0.25 - pow(fx - 0.5, 2)) * ((fy > 0.5) * 2 - 1) +\n                0.5);\n            fxfy = fx + S + fy;\n          }\n          return E;\n        }\n      );\n      gradient = gradient.split(/\\s*\\-\\s*/);\n      if (type == "linear") {\n        var angle = gradient.shift();\n        angle = -toFloat(angle);\n        if (isNaN(angle)) {\n          return null;\n        }\n      }\n      var dots = R._parseDots(gradient);\n      if (!dots) {\n        return null;\n      }\n      o = o.shape || o.node;\n      if (dots.length) {\n        o.removeChild(fill);\n        fill.on = true;\n        fill.method = "none";\n        fill.color = dots[0].color;\n        fill.color2 = dots[dots.length - 1].color;\n        var clrs = [];\n        for (var i = 0, ii = dots.length; i < ii; i++) {\n          dots[i].offset && clrs.push(dots[i].offset + S + dots[i].color);\n        }\n        fill.colors = clrs.length ? clrs.join() : "0% " + fill.color;\n        if (type == "radial") {\n          fill.type = "gradientTitle";\n          fill.focus = "100%";\n          fill.focussize = "0 0";\n          fill.focusposition = fxfy;\n          fill.angle = 0;\n        } else {\n          // fill.rotate= true;\n          fill.type = "gradient";\n          fill.angle = (270 - angle) % 360;\n        }\n        o.appendChild(fill);\n      }\n      return 1;\n    },\n    Element = function (node, vml) {\n      this[0] = this.node = node;\n      node.raphael = true;\n      this.id = R._oid++;\n      node.raphaelid = this.id;\n      this.X = 0;\n      this.Y = 0;\n      this.attrs = {};\n      // 此修复可避免 TypeError: element.paper.customAttributes is undefined 错误\n      // this.paper = vml;\n      var t = vml;\n      while (t.paper) {\n        t = t.paper;\n      }\n      this.paper = t;\n      this.matrix = R.matrix();\n      this._ = {\n        transform: [],\n        sx: 1,\n        sy: 1,\n        dx: 0,\n        dy: 0,\n        deg: 0,\n        dirty: 1,\n        dirtyT: 1,\n      };\n      !vml.bottom && (vml.bottom = this);\n      this.prev = vml.top;\n      vml.top && (vml.top.next = this);\n      vml.top = this;\n      this.next = null;\n    };\n  var elproto = R.el;\n\n  Element.prototype = elproto;\n  elproto.constructor = Element;\n  elproto.transform = function (tstr) {\n    if (tstr == null) {\n      return this._.transform;\n    }\n    var vbs = this.paper._viewBoxShift,\n      vbt = vbs ? "s" + [vbs.scale, vbs.scale] + "-1-1t" + [vbs.dx, vbs.dy] : E,\n      oldt;\n    if (vbs) {\n      oldt = tstr = Str(tstr).replace(/\\.{3}|\\u2026/g, this._.transform || E);\n    }\n    R._extractTransform(this, vbt + tstr);\n    var matrix = this.matrix.clone(),\n      skew = this.skew,\n      o = this.node,\n      split,\n      isGrad = ~Str(this.attrs.fill).indexOf("-"),\n      isPatt = !Str(this.attrs.fill).indexOf("url(");\n    matrix.translate(1, 1);\n    if (isPatt || isGrad || this.type == "image") {\n      skew.matrix = "1 0 0 1";\n      skew.offset = "0 0";\n      split = matrix.split();\n      if ((isGrad && split.noRotation) || !split.isSimple) {\n        o.style.filter = matrix.toFilter();\n        var bb = this.getBBox(),\n          bbt = this.getBBox(1),\n          dx = bb.x - bbt.x,\n          dy = bb.y - bbt.y;\n        o.coordorigin = dx * -zoom + S + dy * -zoom;\n        setCoords(this, 1, 1, dx, dy, 0);\n      } else {\n        o.style.filter = E;\n        setCoords(\n          this,\n          split.scalex,\n          split.scaley,\n          split.dx,\n          split.dy,\n          split.rotate\n        );\n      }\n    } else {\n      o.style.filter = E;\n      skew.matrix = Str(matrix);\n      skew.offset = matrix.offset();\n    }\n    if (oldt !== null) {\n      // empty string value is true as well\n      this._.transform = oldt;\n      R._extractTransform(this, oldt);\n    }\n    return this;\n  };\n  elproto.rotate = function (deg, cx, cy) {\n    if (this.removed) {\n      return this;\n    }\n    if (deg == null) {\n      return;\n    }\n    deg = Str(deg).split(separator);\n    if (deg.length - 1) {\n      cx = toFloat(deg[1]);\n      cy = toFloat(deg[2]);\n    }\n    deg = toFloat(deg[0]);\n    cy == null && (cx = cy);\n    if (cx == null || cy == null) {\n      var bbox = this.getBBox(1);\n      cx = bbox.x + bbox.width / 2;\n      cy = bbox.y + bbox.height / 2;\n    }\n    this._.dirtyT = 1;\n    this.transform(this._.transform.concat([["r", deg, cx, cy]]));\n    return this;\n  };\n  elproto.translate = function (dx, dy) {\n    if (this.removed) {\n      return this;\n    }\n    dx = Str(dx).split(separator);\n    if (dx.length - 1) {\n      dy = toFloat(dx[1]);\n    }\n    dx = toFloat(dx[0]) || 0;\n    dy = +dy || 0;\n    if (this._.bbox) {\n      this._.bbox.x += dx;\n      this._.bbox.y += dy;\n    }\n    this.transform(this._.transform.concat([["t", dx, dy]]));\n    return this;\n  };\n  elproto.scale = function (sx, sy, cx, cy) {\n    if (this.removed) {\n      return this;\n    }\n    sx = Str(sx).split(separator);\n    if (sx.length - 1) {\n      sy = toFloat(sx[1]);\n      cx = toFloat(sx[2]);\n      cy = toFloat(sx[3]);\n      isNaN(cx) && (cx = null);\n      isNaN(cy) && (cy = null);\n    }\n    sx = toFloat(sx[0]);\n    sy == null && (sy = sx);\n    cy == null && (cx = cy);\n    if (cx == null || cy == null) {\n      var bbox = this.getBBox(1);\n    }\n    cx = cx == null ? bbox.x + bbox.width / 2 : cx;\n    cy = cy == null ? bbox.y + bbox.height / 2 : cy;\n\n    this.transform(this._.transform.concat([["s", sx, sy, cx, cy]]));\n    this._.dirtyT = 1;\n    return this;\n  };\n  elproto.hide = function () {\n    !this.removed && (this.node.style.display = "none");\n    return this;\n  };\n  elproto.show = function () {\n    !this.removed && (this.node.style.display = E);\n    return this;\n  };\n  // Needed to fix the vml setViewBox issues\n  elproto.auxGetBBox = R.el.getBBox;\n  elproto.getBBox = function () {\n    var b = this.auxGetBBox();\n    if (this.paper && this.paper._viewBoxShift) {\n      var c = {};\n      var z = 1 / this.paper._viewBoxShift.scale;\n      c.x = b.x - this.paper._viewBoxShift.dx;\n      c.x *= z;\n      c.y = b.y - this.paper._viewBoxShift.dy;\n      c.y *= z;\n      c.width = b.width * z;\n      c.height = b.height * z;\n      c.x2 = c.x + c.width;\n      c.y2 = c.y + c.height;\n      return c;\n    }\n    return b;\n  };\n  elproto._getBBox = function () {\n    if (this.removed) {\n      return {};\n    }\n    return {\n      x: this.X + (this.bbx || 0) - this.W / 2,\n      y: this.Y - this.H,\n      width: this.W,\n      height: this.H,\n    };\n  };\n  elproto.remove = function () {\n    if (this.removed || !this.node.parentNode) {\n      return;\n    }\n    this.paper.__set__ && this.paper.__set__.exclude(this);\n    R.eve.unbind("raphael.*.*." + this.id);\n    R._tear(this, this.paper);\n    this.node.parentNode.removeChild(this.node);\n    this.shape && this.shape.parentNode.removeChild(this.shape);\n    for (var i in this) {\n      this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null;\n    }\n    this.removed = true;\n  };\n  elproto.attr = function (name, value) {\n    if (this.removed) {\n      return this;\n    }\n    if (name == null) {\n      var res = {};\n      for (var a in this.attrs)\n        if (this.attrs[has](a)) {\n          res[a] = this.attrs[a];\n        }\n      res.gradient &&\n        res.fill == "none" &&\n        (res.fill = res.gradient) &&\n        delete res.gradient;\n      res.transform = this._.transform;\n      return res;\n    }\n    if (value == null && R.is(name, "string")) {\n      if (\n        name == fillString &&\n        this.attrs.fill == "none" &&\n        this.attrs.gradient\n      ) {\n        return this.attrs.gradient;\n      }\n      var names = name.split(separator),\n        out = {};\n      for (var i = 0, ii = names.length; i < ii; i++) {\n        name = names[i];\n        if (name in this.attrs) {\n          out[name] = this.attrs[name];\n        } else if (R.is(this.paper.customAttributes[name], "function")) {\n          out[name] = this.paper.customAttributes[name].def;\n        } else {\n          out[name] = R._availableAttrs[name];\n        }\n      }\n      return ii - 1 ? out : out[names[0]];\n    }\n    if (this.attrs && value == null && R.is(name, "array")) {\n      out = {};\n      for (i = 0, ii = name.length; i < ii; i++) {\n        out[name[i]] = this.attr(name[i]);\n      }\n      return out;\n    }\n    var params;\n    if (value != null) {\n      params = {};\n      params[name] = value;\n    }\n    value == null && R.is(name, "object") && (params = name);\n    for (var key in params) {\n      eve("raphael.attr." + key + "." + this.id, this, params[key]);\n    }\n    if (params) {\n      for (key in this.paper.customAttributes)\n        if (\n          this.paper.customAttributes[has](key) &&\n          params[has](key) &&\n          R.is(this.paper.customAttributes[key], "function")\n        ) {\n          var par = this.paper.customAttributes[key].apply(\n            this,\n            [].concat(params[key])\n          );\n          this.attrs[key] = params[key];\n          for (var subkey in par)\n            if (par[has](subkey)) {\n              params[subkey] = par[subkey];\n            }\n        }\n      // this.paper.canvas.style.display = "none";\n      if (params.text && this.type == "text") {\n        this.textpath.string = params.text;\n      }\n      setFillAndStroke(this, params);\n      // this.paper.canvas.style.display = E;\n    }\n    return this;\n  };\n  elproto.toFront = function () {\n    !this.removed && this.node.parentNode.appendChild(this.node);\n    this.paper && this.paper.top != this && R._tofront(this, this.paper);\n    return this;\n  };\n  elproto.toBack = function () {\n    if (this.removed) {\n      return this;\n    }\n    if (this.node.parentNode.firstChild != this.node) {\n      this.node.parentNode.insertBefore(\n        this.node,\n        this.node.parentNode.firstChild\n      );\n      R._toback(this, this.paper);\n    }\n    return this;\n  };\n  elproto.insertAfter = function (element) {\n    if (this.removed) {\n      return this;\n    }\n    if (element.constructor == R.st.constructor) {\n      element = element[element.length - 1];\n    }\n    if (element.node.nextSibling) {\n      element.node.parentNode.insertBefore(this.node, element.node.nextSibling);\n    } else {\n      element.node.parentNode.appendChild(this.node);\n    }\n    R._insertafter(this, element, this.paper);\n    return this;\n  };\n  elproto.insertBefore = function (element) {\n    if (this.removed) {\n      return this;\n    }\n    if (element.constructor == R.st.constructor) {\n      element = element[0];\n    }\n    element.node.parentNode.insertBefore(this.node, element.node);\n    R._insertbefore(this, element, this.paper);\n    return this;\n  };\n  elproto.blur = function (size) {\n    var s = this.node.runtimeStyle,\n      f = s.filter;\n    f = f.replace(blurregexp, E);\n    if (+size !== 0) {\n      this.attrs.blur = size;\n      s.filter = f + S + ms + ".Blur(pixelradius=" + (+size || 1.5) + ")";\n      s.margin = R.format("-{0}px 0 0 -{0}px", round(+size || 1.5));\n    } else {\n      s.filter = f;\n      s.margin = 0;\n      delete this.attrs.blur;\n    }\n    return this;\n  };\n\n  R._engine.path = function (pathString, vml) {\n    var el = createNode("shape");\n    el.style.cssText = cssDot;\n    el.coordsize = zoom + S + zoom;\n    el.coordorigin = vml.coordorigin;\n    var p = new Element(el, vml),\n      attr = { fill: "none", stroke: "#000" };\n    pathString && (attr.path = pathString);\n    p.type = "path";\n    p.path = [];\n    p.Path = E;\n    setFillAndStroke(p, attr);\n    vml.canvas.appendChild(el);\n    var skew = createNode("skew");\n    skew.on = true;\n    el.appendChild(skew);\n    p.skew = skew;\n    p.transform(E);\n    return p;\n  };\n  R._engine.rect = function (vml, x, y, w, h, r) {\n    var path = R._rectPath(x, y, w, h, r),\n      res = vml.path(path),\n      a = res.attrs;\n    res.X = a.x = x;\n    res.Y = a.y = y;\n    res.W = a.width = w;\n    res.H = a.height = h;\n    a.r = r;\n    a.path = path;\n    res.type = "rect";\n    return res;\n  };\n  R._engine.ellipse = function (vml, x, y, rx, ry) {\n    var res = vml.path(),\n      a = res.attrs;\n    res.X = x - rx;\n    res.Y = y - ry;\n    res.W = rx * 2;\n    res.H = ry * 2;\n    res.type = "ellipse";\n    setFillAndStroke(res, {\n      cx: x,\n      cy: y,\n      rx: rx,\n      ry: ry,\n    });\n    return res;\n  };\n  R._engine.group = function (vml) {\n    var el = createNode("group");\n    var res = new Element(el, vml);\n    vml.canvas && vml.canvas.appendChild(el);\n    return res;\n  };\n  R._engine.circle = function (vml, x, y, r) {\n    var res = vml.path(),\n      a = res.attrs;\n    res.X = x - r;\n    res.Y = y - r;\n    res.W = res.H = r * 2;\n    res.type = "circle";\n    setFillAndStroke(res, {\n      cx: x,\n      cy: y,\n      r: r,\n    });\n    return res;\n  };\n  R._engine.image = function (vml, src, x, y, w, h) {\n    var path = R._rectPath(x, y, w, h),\n      res = vml.path(path).attr({ stroke: "none" }),\n      a = res.attrs,\n      node = res.node,\n      fill = node.getElementsByTagName(fillString)[0];\n    a.src = src;\n    res.X = a.x = x;\n    res.Y = a.y = y;\n    res.W = a.width = w;\n    res.H = a.height = h;\n    a.path = path;\n    res.type = "image";\n    fill.parentNode == node && node.removeChild(fill);\n    fill.rotate = true;\n    fill.src = src;\n    fill.type = "tile";\n    res._.fillpos = [x, y];\n    res._.fillsize = [w, h];\n    node.appendChild(fill);\n    setCoords(res, 1, 1, 0, 0, 0);\n    return res;\n  };\n  R._engine.text = function (vml, x, y, text) {\n    var el = createNode("shape"),\n      path = createNode("path"),\n      o = createNode("textpath");\n    x = x || 0;\n    y = y || 0;\n    text = text || "";\n    path.v = R.format(\n      "m{0},{1}l{2},{1}",\n      round(x * zoom),\n      round(y * zoom),\n      round(x * zoom) + 1\n    );\n    path.textpathok = true;\n    o.string = Str(text);\n    o.on = true;\n    el.style.cssText = cssDot;\n    el.coordsize = zoom + S + zoom;\n    el.coordorigin = "0 0";\n    var p = new Element(el, vml),\n      attr = {\n        fill: "#000",\n        stroke: "none",\n        font: R._availableAttrs.font,\n        text: text,\n      };\n    p.shape = el;\n    p.path = path;\n    p.textpath = o;\n    p.type = "text";\n    p.attrs.text = Str(text);\n    p.attrs.x = x;\n    p.attrs.y = y;\n    p.attrs.w = 1;\n    p.attrs.h = 1;\n    setFillAndStroke(p, attr);\n    el.appendChild(o);\n    el.appendChild(path);\n    vml.canvas.appendChild(el);\n    var skew = createNode("skew");\n    skew.on = true;\n    el.appendChild(skew);\n    p.skew = skew;\n    p.transform(E);\n    return p;\n  };\n  R._engine.setSize = function (width, height) {\n    var cs = this.canvas.style;\n    this.width = width;\n    this.height = height;\n    width == +width && (width += "px");\n    height == +height && (height += "px");\n    cs.width = width;\n    cs.height = height;\n    cs.clip = "rect(0 " + width + " " + height + " 0)";\n    if (this._viewBox) {\n      R._engine.setViewBox.apply(this, this._viewBox);\n    }\n    return this;\n  };\n  R._engine.setViewBox = function (x, y, w, h, fit) {\n    R.eve("raphael.setViewBox", this, this._viewBox, [x, y, w, h, fit]);\n    var paperSize = this.getSize(),\n      width = paperSize.width,\n      height = paperSize.height,\n      H,\n      W;\n    if (fit) {\n      H = height / h;\n      W = width / w;\n      if (w * H < width) {\n        x -= (width - w * H) / 2 / H;\n      }\n      if (h * W < height) {\n        y -= (height - h * W) / 2 / W;\n      }\n    }\n    this._viewBox = [x, y, w, h, !!fit];\n    this._viewBoxShift = {\n      dx: -x,\n      dy: -y,\n      scale: paperSize,\n    };\n    this.forEach(function (el) {\n      el.transform("...");\n    });\n    return this;\n  };\n  var createNode;\n  R._engine.initWin = function (win) {\n    var doc = win.document;\n    if (doc.styleSheets.length < 31) {\n      doc.createStyleSheet().addRule(".rvml", "behavior:url(#default#VML)");\n    } else {\n      // no more room, add to the existing one\n      // http://msdn.microsoft.com/en-us/library/ms531194%28VS.85%29.aspx\n      doc.styleSheets[0].addRule(".rvml", "behavior:url(#default#VML)");\n    }\n    try {\n      !doc.namespaces.rvml &&\n        doc.namespaces.add("rvml", "urn:schemas-microsoft-com:vml");\n      createNode = function (tagName) {\n        return doc.createElement("<rvml:" + tagName + \' class="rvml">\');\n      };\n    } catch (e) {\n      createNode = function (tagName) {\n        return doc.createElement(\n          "<" + tagName + \' xmlns="urn:schemas-microsoft.com:vml" class="rvml">\'\n        );\n      };\n    }\n  };\n  R._engine.initWin(R._g.win);\n  R._engine.create = function () {\n    var con = R._getContainer.apply(0, arguments),\n      container = con.container,\n      height = con.height,\n      s,\n      width = con.width,\n      x = con.x,\n      y = con.y;\n    if (!container) {\n      throw new Error("VML container not found.");\n    }\n    var res = new R._Paper(),\n      c = (res.canvas = R._g.doc.createElement("div")),\n      cs = c.style;\n    x = x || 0;\n    y = y || 0;\n    width = width || 512;\n    height = height || 342;\n    res.width = width;\n    res.height = height;\n    width == +width && (width += "px");\n    height == +height && (height += "px");\n    res.coordsize = zoom * 1e3 + S + zoom * 1e3;\n    res.coordorigin = "0 0";\n    res.span = R._g.doc.createElement("span");\n    res.span.style.cssText =\n      "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;";\n    c.appendChild(res.span);\n    cs.cssText = R.format(\n      "top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden",\n      width,\n      height\n    );\n    if (container == 1) {\n      R._g.doc.body.appendChild(c);\n      cs.left = x + "px";\n      cs.top = y + "px";\n      cs.position = "absolute";\n    } else {\n      if (container.firstChild) {\n        container.insertBefore(c, container.firstChild);\n      } else {\n        container.appendChild(c);\n      }\n    }\n    res.renderfix = function () {};\n    return res;\n  };\n  R.prototype.clear = function () {\n    R.eve("raphael.clear", this);\n    this.canvas.innerHTML = E;\n    this.span = R._g.doc.createElement("span");\n    this.span.style.cssText =\n      "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;";\n    this.canvas.appendChild(this.span);\n    this.bottom = this.top = null;\n  };\n  R.prototype.remove = function () {\n    R.eve("raphael.remove", this);\n    this.canvas.parentNode.removeChild(this.canvas);\n    for (var i in this) {\n      this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null;\n    }\n    return true;\n  };\n\n  var setproto = R.st;\n  for (var method in elproto)\n    if (elproto[has](method) && !setproto[has](method)) {\n      setproto[method] = (function (methodname) {\n        return function () {\n          var arg = arguments;\n          return this.forEach(function (el) {\n            el[methodname].apply(el, arg);\n          });\n        };\n      })(method);\n    }\n});\n\n// ┌────────────────────────────────────────────────────────────────────┐ \\\\\n// │ Raphaël @VERSION - JavaScript Vector Library                       │ \\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Copyright © 2008-2012 Dmitry Baranovskiy (http://raphaeljs.com)    │ \\\\\n// │ Copyright © 2008-2012 Sencha Labs (http://sencha.com)              │ \\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license.│ \\\\\n// └────────────────────────────────────────────────────────────────────┘ \\\\\n\n(function (glob, factory) {\n  if (typeof define === "function" && define.amd) {\n    define("raphael", ["raphael.core", "raphael.svg", "raphael.vml"], function (\n      Raphael\n    ) {\n      return (glob.Raphael = factory(Raphael));\n    });\n  } else if (typeof exports === "object") {\n    var raphael = require("raphael.core");\n\n    require("raphael.svg");\n    require("raphael.vml");\n\n    module.exports = factory(raphael);\n  } else {\n    glob.Raphael = factory(glob.Raphael);\n  }\n})(this, function (Raphael) {\n  return Raphael.ninja();\n});\n\n/**\n * FRaphael\n * \tAn extension for Raphael.js to make it easier to work with Filter Effects\n *\n * Copyright © 2013 Chris Scott <chris.scott@factmint.com>\n * Delivered with and licensed under the MIT licence\n *\n */\n\n// Create the global FRaphael object\n(function (scope) {\n  var version = "0.0.1",\n    license = "MIT";\n\n  var ns = "http://www.w3.org/2000/svg",\n    idCounter = 0;\n\n  var FR = {\n    // Object prototype for a filter\n    Filter: function (id) {\n      if (id == undefined) {\n        id = "filter-" + idCounter++;\n        while (FR.filters[id] != undefined) {\n          id = "filter-" + idCounter++;\n        }\n      }\n\n      if (FR.filters[id] != undefined) {\n        throw "A filter with id " + id + " already exists";\n      }\n\n      this.element = document.createElementNS(ns, "filter");\n      this.element.setAttribute("id", id);\n      this.element.setAttribute("x", "-25%");\n      this.element.setAttribute("y", "-25%");\n      this.element.setAttribute("width", "150%");\n      this.element.setAttribute("height", "150%");\n\n      this.lastFEResult = null;\n\n      FR.filters[id] = this;\n      this.id = id;\n    },\n\n    // Object prototype for an effect\n    FilterEffect: function (type, attributes) {\n      this.element = document.createElementNS(ns, type);\n      for (var key in attributes) {\n        this.element.setAttribute(key, attributes[key]);\n      }\n    },\n\n    // Return the filter applied to an element or a new filter if none are currently applied\n    getFilter: function (element) {\n      var filterId = element.data("filterId");\n      var filter = null;\n\n      if (filterId == undefined) {\n        filterId = "element-filter-" + element.id;\n        filter = element.paper.createFilter(filterId);\n        element.filter(filterId);\n      } else {\n        filter = FR.filters[filterId];\n      }\n\n      return filter;\n    },\n\n    // maintain a list of filters by id\n    filters: {},\n  };\n\n  FR.Filter.prototype = {\n    addEffect: function (type, attributes, children) {\n      var effect = new FR.FilterEffect(type, attributes);\n\n      if (children) {\n        if (children instanceof Array) {\n          for (var x in children) {\n            if (!children.hasOwnProperty(x)) continue;\n\n            effect.element.appendChild(children[x].element);\n          }\n        } else {\n          effect.element.appendChild(children.element);\n        }\n      }\n\n      this.element.appendChild(effect.element);\n\n      return this;\n    },\n\n    chainEffect: function (type, attributes, children) {\n      if (attributes == undefined) {\n        attributes = {};\n      }\n\n      var inId;\n      var outId;\n      if (attributes.in == undefined) {\n        inId = this.getLastResult();\n      } else {\n        inId = attributes.in;\n      }\n      if (attributes.result == undefined) {\n        outId = idCounter++;\n      } else {\n        outId = attributes.result;\n      }\n\n      this.lastFEResult = outId;\n\n      attributes.in = inId;\n      attributes.result = outId;\n\n      this.addEffect(type, attributes, children);\n\n      return this;\n    },\n\n    getLastResult: function () {\n      return this.lastFEResult == undefined\n        ? "SourceGraphic"\n        : this.lastFEResult;\n    },\n\n    merge: function (in1, in2, attributes) {\n      var mergeNode1 = new FR.FilterEffect("feMergeNode", {\n        in: in1,\n      });\n      var mergeNode2 = new FR.FilterEffect("feMergeNode", {\n        in: in2,\n      });\n\n      this.chainEffect("feMerge", attributes, [mergeNode1, mergeNode2]);\n\n      return this;\n    },\n\n    compose: function (in1, in2, operator, attributes) {\n      if (attributes == undefined) {\n        attributes = {};\n      }\n\n      if (operator == undefined) {\n        operator = "over";\n      }\n\n      attributes.in = in1;\n      attributes.in2 = in2;\n      attributes.operator = operator;\n\n      this.chainEffect("feComposite", attributes);\n\n      return this;\n    },\n\n    arithmeticCompose: function (in1, in2, k1, k2, k3, k4) {\n      if (k1 == undefined) {\n        k1 = 0;\n      }\n      if (k2 == undefined) {\n        k2 = 0;\n      }\n      if (k3 == undefined) {\n        k3 = 0;\n      }\n      if (k4 == undefined) {\n        k4 = 0;\n      }\n\n      this.compose(in1, in2, "arithmetic", {\n        k1: k1,\n        k2: k2,\n        k3: k3,\n        k4: k4,\n      });\n\n      return this;\n    },\n\n    addBlur: function (stdDeviation, attributes) {\n      if (!stdDeviation) {\n        throw "Standard deviation is required to perform a blur filter";\n      }\n\n      if (attributes == undefined) {\n        attributes = {};\n      }\n      attributes.stdDeviation = stdDeviation;\n\n      this.chainEffect("feGaussianBlur", attributes);\n\n      return this;\n    },\n\n    addOffset: function (dx, dy, attributes) {\n      if ((dx == undefined) | (dy == undefined)) {\n        throw "dx and dy values are required to perform an offset FE";\n      }\n\n      if (attributes == undefined) {\n        attributes = {};\n      }\n      attributes.dx = dx;\n      attributes.dy = dy;\n\n      this.chainEffect("feOffset", attributes);\n\n      return this;\n    },\n\n    addLighting: function (x, y, z, color, type, attributes) {\n      if ((x == undefined) | (y == undefined) | (z == undefined)) {\n        throw "Three co-ordinates are required to create a light source";\n      }\n\n      var previousResult = this.getLastResult();\n\n      var id = idCounter++;\n\n      if (attributes == undefined) {\n        attributes = {};\n      }\n\n      attributes.result = id;\n      if (color != undefined) {\n        attributes["lighting-color"] = color;\n      }\n\n      if (type == undefined || type == "diffuse") {\n        type = "feDiffuseLighting";\n      } else if (type == "specular") {\n        type = "feSpecularLighting";\n      }\n\n      var lightSource = new FR.FilterEffect("fePointLight", {\n        x: x,\n        y: y,\n        z: z,\n      });\n\n      this.chainEffect(type, attributes, lightSource).arithmeticCompose(\n        previousResult,\n        id,\n        3,\n        0.2,\n        0,\n        0\n      );\n\n      return this;\n    },\n\n    addShiftToColor: function (color, moveBy, attributes) {\n      if (color == undefined) {\n        throw "A colour string is a required argument to create a colorMatrix";\n      }\n      if (moveBy == undefined) {\n        moveBy = 0.5;\n      }\n\n      var remainingColor = 1 - moveBy,\n        x = remainingColor;\n\n      if (attributes == undefined) {\n        attributes = {};\n      }\n\n      var colorObject = Raphael.color(color);\n      var r = (colorObject.r * moveBy) / 255,\n        g = (colorObject.g * moveBy) / 255,\n        b = (colorObject.b * moveBy) / 255;\n\n      /**\n       * r\'\tx 0 0 0 r\t\tr\n       * g\'\t0 x 0 0 g\t\tg\n       * b\' =\t0 0 x 0 b\t.\tb\n       * a\'\t0 0 0 1 0\t\to\n       * 1\t\t\t\t\t1\n       */\n      attributes.values =\n        x +\n        " 0 0 0 " +\n        r +\n        " 0 " +\n        x +\n        " 0 0 " +\n        g +\n        " 0 0 " +\n        x +\n        " 0 " +\n        b +\n        " 0 0 0 1 0 ";\n\n      this.chainEffect("feColorMatrix", attributes);\n\n      return this;\n    },\n\n    addRecolor: function (color, opacity, attributes) {\n      if (color == undefined) {\n        throw "A colour string is a required argument to create a colorMatrix";\n      }\n      if (opacity == undefined) {\n        opacity = 1;\n      }\n\n      if (attributes == undefined) {\n        attributes = {};\n      }\n\n      var colorObject = Raphael.color(color);\n      var r = colorObject.r / 255,\n        g = colorObject.g / 255,\n        b = colorObject.b / 255;\n\n      /**\n       * r\'\t0 0 0 0 r\t\tr\n       * g\'\t0 0 0 0 g\t\tg\n       * b\' =\t0 0 0 0 b\t.\tb\n       * a\'\t0 0 0 a 0\t\ta\n       * 1\t\t\t\t\t1\n       */\n      attributes.values =\n        "0 0 0 0 " +\n        r +\n        " 0 0 0 0 " +\n        g +\n        " 0 0 0 0 " +\n        b +\n        " 0 0 0 " +\n        opacity +\n        " 0 ";\n\n      this.chainEffect("feColorMatrix", attributes);\n\n      return this;\n    },\n\n    addDesaturate: function (saturation, attributes) {\n      if (saturation == undefined) {\n        saturnation = 0;\n      }\n\n      if (attributes == undefined) {\n        attributes = {};\n      }\n\n      attributes.values = saturation;\n      attributes.type = "saturate";\n\n      this.chainEffect("feColorMatrix", attributes);\n\n      return this;\n    },\n\n    addConvolveMatrix: function (matrix, attributes) {\n      if (matrix == undefined) {\n        throw "A matrix (usually 9 numbers) must be provided to apply a convolve matrix transform";\n      }\n\n      if (attributes == undefined) {\n        attributes = {};\n      }\n\n      attributes.kernelMatrix = matrix;\n\n      this.chainEffect("feConvolveMatrix", attributes);\n\n      return this;\n    },\n\n    createShadow: function (dx, dy, blur, opacity, color) {\n      if (dx == undefined) {\n        throw "dx is required for the shadow effect";\n      }\n      if (dy == undefined) {\n        throw "dy is required for the shadow effect";\n      }\n      if (blur == undefined) {\n        throw "blur (stdDeviation) is required for the shadow effect";\n      }\n\n      if (opacity == undefined) {\n        opacity = 0.6;\n      }\n\n      var previousResult = this.getLastResult();\n\n      if (color == undefined) {\n        color = "#000000";\n      }\n\n      this.addOffset(dx, dy, {\n        in: "SourceAlpha",\n      });\n\n      this.addRecolor(color, opacity);\n\n      this.addBlur(blur);\n\n      this.merge(this.getLastResult(), previousResult);\n\n      return this;\n    },\n\n    createEmboss: function (height, x, y, z) {\n      if (height == undefined) {\n        height = 2;\n      }\n      if (x == undefined) {\n        x = -1000;\n      }\n      if (y == undefined) {\n        y = -5000;\n      }\n      if (z == undefined) {\n        z = 300;\n      }\n\n      // Create the highlight\n\n      this.addOffset((height * x) / (x + y), (height * y) / (x + y), {\n        in: "SourceAlpha",\n      });\n\n      this.addBlur(height * 0.5);\n\n      var whiteLightSource = new FR.FilterEffect("fePointLight", {\n        x: x,\n        y: y,\n        z: z,\n      });\n\n      this.chainEffect(\n        "feSpecularLighting",\n        {\n          surfaceScale: height,\n          specularConstant: 0.8,\n          specularExponent: 15,\n        },\n        whiteLightSource\n      );\n\n      this.compose(this.getLastResult(), "SourceAlpha", "in");\n      var whiteLight = this.getLastResult();\n\n      // Create the lowlight\n\n      this.addOffset((height * -1 * x) / (x + y), (height * -1 * y) / (x + y), {\n        in: "SourceAlpha",\n      });\n\n      this.addBlur(height * 0.5);\n\n      var darkLightSource = new FR.FilterEffect("fePointLight", {\n        x: -1 * x,\n        y: -1 * y,\n        z: z,\n      });\n\n      this.chainEffect(\n        "feSpecularLighting",\n        {\n          surfaceScale: height,\n          specularConstant: 1.8,\n          specularExponent: 6,\n        },\n        darkLightSource\n      );\n\n      this.compose(this.getLastResult(), "SourceAlpha", "in");\n      this.chainEffect("feColorMatrix", {\n        values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0",\n      });\n      var darkLight = this.getLastResult();\n\n      this.arithmeticCompose(whiteLight, darkLight, 0, 0.8, 0.5, 0);\n\n      this.merge("SourceGraphic", this.getLastResult());\n\n      return this;\n    },\n  };\n\n  scope.FRaphael = FR;\n})(this);\n\n/**\n * add a filter to the paper by id\n */\nRaphael.fn.createFilter = function (id) {\n  var paper = this;\n  var filter = new FRaphael.Filter(id);\n  paper.defs.appendChild(filter.element);\n\n  return filter;\n};\n\n/**\n * Apply a filter to an element by id\n */\nRaphael.el.filter = function (filter) {\n  var id = filter instanceof FRaphael.Filter ? filter.id : filter;\n\n  this.node.setAttribute("filter", "url(#" + id + ")");\n  this.data("filterId", id);\n\n  return this;\n};\n\n/**\n * Get the current filter for an element or a new one if not\n */\nRaphael.el.getFilter = function () {\n  return FRaphael.getFilter(this);\n};\n\n/**\n * A shorthand method for applying blur\n */\nRaphael.el.blur = function (stdDeviation) {\n  if (stdDeviation == undefined) {\n    stdDeviation = 3;\n  }\n\n  this.getFilter().addBlur(stdDeviation);\n\n  return this;\n};\n\n/**\n * A shorthand method for applying a drop shadow\n */\nRaphael.el.shadow = function (dx, dy, blur, opacity, color) {\n  if (dx == undefined) {\n    dx = 3;\n  }\n  if (dy == undefined) {\n    dy = 3;\n  }\n  if (blur == undefined) {\n    blur = 3;\n  }\n\n  this.getFilter().createShadow(dx, dy, blur, opacity, color);\n\n  return this;\n};\n\n/**\n * A shorthand method for applying lighting\n */\nRaphael.el.light = function (x, y, z, color, type) {\n  if (x == undefined) {\n    x = this.paper.width;\n  }\n  if (y == undefined) {\n    y = 0;\n  }\n  if (z == undefined) {\n    z = 20;\n  }\n\n  this.getFilter().addLighting(x, y, z, color, type);\n\n  return this;\n};\n\n/**\n * A shorthand method for applying a colour shift\n */\nRaphael.el.colorShift = function (color, shift) {\n  if (color == undefined) {\n    color = "black";\n  }\n  if (shift == undefined) {\n    shift = 0.5;\n  }\n\n  this.getFilter().addShiftToColor(color, shift);\n\n  return this;\n};\n\n/**\n * A shorthand method for embossing\n */\nRaphael.el.emboss = function (height) {\n  this.getFilter().createEmboss(height);\n\n  return this;\n};\n\n/**\n * A shorthand method for desaturating\n */\nRaphael.el.desaturate = function (saturation) {\n  this.getFilter().addDesaturate(saturation);\n\n  return this;\n};\n\n/**\n * A shorthand method for complete desaturation\n */\nRaphael.el.greyScale = function () {\n  this.getFilter().addDesaturate(0);\n\n  return this;\n};\n'},"./node_modules/rgbcolor/index.js":t=>{t.exports=function(t){this.ok=!1,this.alpha=1,"#"==t.charAt(0)&&(t=t.substr(1,6)),t=(t=t.replace(/ /g,"")).toLowerCase();var e={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dodgerblue:"1e90ff",feldspar:"d19275",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgrey:"d3d3d3",lightgreen:"90ee90",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslateblue:"8470ff",lightslategray:"778899",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"00ff00",limegreen:"32cd32",linen:"faf0e6",magenta:"ff00ff",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370d8",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"d87093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",red:"ff0000",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",violetred:"d02090",wheat:"f5deb3",white:"ffffff",whitesmoke:"f5f5f5",yellow:"ffff00",yellowgreen:"9acd32"};t=e[t]||t;for(var n=[{re:/^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*((?:\d?\.)?\d)\)$/,example:["rgba(123, 234, 45, 0.8)","rgba(255,234,245,1.0)"],process:function(t){return[parseInt(t[1]),parseInt(t[2]),parseInt(t[3]),parseFloat(t[4])]}},{re:/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,example:["rgb(123, 234, 45)","rgb(255,234,245)"],process:function(t){return[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]}},{re:/^(\w{2})(\w{2})(\w{2})$/,example:["#00ff00","336699"],process:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/^(\w{1})(\w{1})(\w{1})$/,example:["#fb0","f0f"],process:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}}],i=0;i<n.length;i++){var r=n[i].re,a=n[i].process,s=r.exec(t);if(s){var o=a(s);this.r=o[0],this.g=o[1],this.b=o[2],o.length>3&&(this.alpha=o[3]),this.ok=!0}}this.r=this.r<0||isNaN(this.r)?0:this.r>255?255:this.r,this.g=this.g<0||isNaN(this.g)?0:this.g>255?255:this.g,this.b=this.b<0||isNaN(this.b)?0:this.b>255?255:this.b,this.alpha=this.alpha<0?0:this.alpha>1||isNaN(this.alpha)?1:this.alpha,this.toRGB=function(){return"rgb("+this.r+", "+this.g+", "+this.b+")"},this.toRGBA=function(){return"rgba("+this.r+", "+this.g+", "+this.b+", "+this.alpha+")"},this.toHex=function(){var t=this.r.toString(16),e=this.g.toString(16),n=this.b.toString(16);return 1==t.length&&(t="0"+t),1==e.length&&(e="0"+e),1==n.length&&(n="0"+n),"#"+t+e+n},this.getHelpXML=function(){for(var t=new Array,i=0;i<n.length;i++)for(var r=n[i].example,a=0;a<r.length;a++)t[t.length]=r[a];for(var s in e)t[t.length]=s;var o=document.createElement("ul");o.setAttribute("id","rgbcolor-examples");for(i=0;i<t.length;i++)try{var l=document.createElement("li"),c=new RGBColor(t[i]),u=document.createElement("div");u.style.cssText="margin: 3px; border: 1px solid black; background:"+c.toHex()+"; color:"+c.toHex(),u.appendChild(document.createTextNode("test"));var h=document.createTextNode(" "+t[i]+" -> "+c.toRGB()+" -> "+c.toHex());l.appendChild(u),l.appendChild(h),o.appendChild(l)}catch(t){}return o}}},"./node_modules/script-loader/addScript.js":t=>{t.exports=function(t){function e(t){"undefined"!=typeof console&&(console.error||console.log)("[Script Loader]",t)}try{"undefined"!=typeof execScript&&"undefined"!=typeof attachEvent&&"undefined"==typeof addEventListener?execScript(t):"undefined"!=typeof eval?eval.call(null,t):e("EvalError: No eval function available")}catch(t){e(t)}}},"./node_modules/shifty/dist/shifty.js":function(t){t.exports=function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/assets/",e(e.s=6)}([function(t,e,n){"use strict";(function(t){function i(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=new w,n=e.tween(t);return n.tweenable=e,n}Object.defineProperty(e,"__esModule",{value:!0}),e.Tweenable=e.composeEasingObject=e.tweenProps=e.clone=e.each=void 0;var s=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};e.tween=a;var l=i(n(5)),c=function(t){return t&&t.__esModule?t:{default:t}}(n(1)),u=i(n(7)),h="undefined"!=typeof window?window:t,d=h.cancelAnimationFrame||h.webkitCancelAnimationFrame||h.oCancelAnimationFrame||h.msCancelAnimationFrame||h.mozCancelRequestAnimationFrame||h.clearTimeout,f=h.requestAnimationFrame||h.webkitRequestAnimationFrame||h.oRequestAnimationFrame||h.msRequestAnimationFrame||h.mozCancelRequestAnimationFrame&&h.mozRequestAnimationFrame||setTimeout,p=function(){},g=e.each=function(t,e){return Object.keys(t).forEach(e)},m=e.clone=function(t){return(0,c.default)({},t)},y=m(l),v=function(t,e,n,i){return t+(e-t)*n(i)},b=e.tweenProps=function(t,e,n,i,r,a,s){var o=t<a?0:(t-a)/r;return g(e,(function(t){var r=s[t],a="function"==typeof r?r:y[r];e[t]=v(n[t],i[t],a,o)})),e},x=e.composeEasingObject=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"linear",n={},i=void 0===e?"undefined":o(e);return g(t,"string"===i||"function"===i?function(t){return n[t]=e}:function(t){return n[t]=n[t]||e[t]||"linear"}),n},w=e.Tweenable=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;r(this,t),this._currentState=e,this._configured=!1,this._scheduleFunction=f,void 0!==n&&this.setConfig(n)}return s(t,[{key:"_applyFilter",value:function(e){var n=this,i=t.filters,r=this._filterArgs;g(i,(function(t){var a=i[t][e];void 0!==a&&a.apply(n,r)}))}},{key:"_timeoutHandler",value:function(e){var n=this,i=arguments,r=this._currentState,a=this._delay,s=this._duration,o=this._step,l=this._targetState,c=this._timestamp,u=c+a+s,d=Math.min(e||t.now(),u),f=d>=u,p=s-(u-d);this.isPlaying()&&(f?(o(l,this._attachment,p),this.stop(!0)):(this._scheduleId=this._scheduleFunction.call(h,(function(){return n._timeoutHandler.apply(n,i)}),1e3/60),this._applyFilter("beforeTween"),d<c+a?(d=1,s=1,c=1):c+=a,b(d,r,this._originalState,l,s,c,this._easing),this._applyFilter("afterTween"),o(r,this._attachment,p)))}},{key:"tween",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,n=this._attachment,i=this._configured;return this._isTweening?this:(void 0===e&&i||this.setConfig(e),this._timestamp=t.now(),this._start(this.get(),n),this.resume())}},{key:"setConfig",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._configured=!0,this._attachment=e.attachment,(0,c.default)(this,{_pausedAtTime:null,_scheduleId:null,_delay:e.delay||0,_start:e.start||p,_step:e.step||p,_duration:e.duration||500,_currentState:m(e.from||this.get())}),(0,c.default)(this,{_originalState:this.get(),_targetState:m(e.to||this.get())});var n=this._currentState;this._targetState=(0,c.default)({},n,this._targetState),this._easing=x(n,e.easing),this._filterArgs=[n,this._originalState,this._targetState,this._easing],this._applyFilter("tweenCreated");var i=e.promise||Promise;return this._promise=new i((function(e,n){t._resolve=e,t._reject=n})),this._promise.catch(p),this}},{key:"get",value:function(){return m(this._currentState)}},{key:"set",value:function(t){this._currentState=t}},{key:"pause",value:function(){return this._pausedAtTime=t.now(),this._isPaused=!0,this}},{key:"resume",value:function(){return this._isPaused&&(this._timestamp+=t.now()-this._pausedAtTime),this._isPaused=!1,this._isTweening=!0,this._timeoutHandler(),this._promise}},{key:"seek",value:function(e){e=Math.max(e,0);var n=t.now();return this._timestamp+e===0||(this._timestamp=n-e,this.isPlaying()||(this._isTweening=!0,this._isPaused=!1,this._timeoutHandler(n),this.pause())),this}},{key:"stop",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this._attachment,n=this._currentState,i=this._easing,r=this._originalState,a=this._targetState;return this._isTweening=!1,this._isPaused=!1,d(this._scheduleId),t?(this._applyFilter("beforeTween"),b(1,n,r,a,1,0,i),this._applyFilter("afterTween"),this._applyFilter("afterTweenEnd"),this._resolve(n,e)):this._reject(n,e),this}},{key:"isPlaying",value:function(){return this._isTweening&&!this._isPaused}},{key:"setScheduleFunction",value:function(t){this._scheduleFunction=t}},{key:"dispose",value:function(){var t=this;g(this,(function(e){return delete t[e]}))}}]),t}();(0,c.default)(w,{formulas:y,filters:{token:u},now:Date.now||function(t){return+new Date}})}).call(e,n(4))},function(t,e,n){"use strict";function i(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}var r=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable;t.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map((function(t){return e[t]})).join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach((function(t){i[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},i)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var n,o,l=i(t),c=1;c<arguments.length;c++){for(var u in n=Object(arguments[c]))a.call(n,u)&&(l[u]=n[u]);if(r){o=r(n);for(var h=0;h<o.length;h++)s.call(n,o[h])&&(l[o[h]]=n[o[h]])}}return l}},function(t,e,n){"use strict";function i(t,e,n,i,r,a){var s=0,o=0,l=0,c=0,u=0,h=0,d=function(t){return((s*t+o)*t+l)*t},f=function(t){return((c*t+u)*t+h)*t},p=function(t){return(3*s*t+2*o)*t+l},g=function(t){return t>=0?t:0-t},m=function(t,e){var n=void 0,i=void 0,r=void 0,a=void 0,s=void 0,o=void 0;for(r=t,o=0;o<8;o++){if(a=d(r)-t,g(a)<e)return r;if(s=p(r),g(s)<1e-6)break;r-=a/s}if((r=t)<(n=0))return n;if(r>(i=1))return i;for(;n<i;){if(a=d(r),g(a-t)<e)return r;t>a?n=r:i=r,r=.5*(i-n)+n}return r};return s=1-(l=3*e)-(o=3*(i-e)-l),c=1-(h=3*n)-(u=3*(r-n)-h),function(t,e){return f(m(t,e))}(t,function(t){return 1/(200*t)}(a))}Object.defineProperty(e,"__esModule",{value:!0}),e.unsetBezierFunction=e.setBezierFunction=void 0;var r=n(0),a=function(t){return t&&t.__esModule?t:{default:t}}(n(1)),s=function(t,e,n,r){return function(a){return i(a,t,e,n,r,1)}};e.setBezierFunction=function(t,e,n,i,o){return r.Tweenable.formulas[t]=(0,a.default)(s(e,n,i,o),{displayName:t,x1:e,y1:n,x2:i,y2:o})},e.unsetBezierFunction=function(t){return delete r.Tweenable.formulas[t]}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.interpolate=void 0;var i=n(0),r=new i.Tweenable;r._filterArgs=[],e.interpolate=function(t,e,n,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,o=(0,i.clone)(t),l=(0,i.composeEasingObject)(t,a);r.set({}),r._filterArgs=[o,t,e,l],r._applyFilter("tweenCreated"),r._applyFilter("beforeTween");var c=(0,i.tweenProps)(n,o,t,e,1,s,l);return r._applyFilter("afterTween"),c}},function(t,e,n){"use strict";var i,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};i=function(){return this}();try{i=i||Function("return this")()||(0,eval)("this")}catch(t){"object"===("undefined"==typeof window?"undefined":r(window))&&(i=window)}t.exports=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.linear=function(t){return t},e.easeInQuad=function(t){return Math.pow(t,2)},e.easeOutQuad=function(t){return-(Math.pow(t-1,2)-1)},e.easeInOutQuad=function(t){return(t/=.5)<1?.5*Math.pow(t,2):-.5*((t-=2)*t-2)},e.easeInCubic=function(t){return Math.pow(t,3)},e.easeOutCubic=function(t){return Math.pow(t-1,3)+1},e.easeInOutCubic=function(t){return(t/=.5)<1?.5*Math.pow(t,3):.5*(Math.pow(t-2,3)+2)},e.easeInQuart=function(t){return Math.pow(t,4)},e.easeOutQuart=function(t){return-(Math.pow(t-1,4)-1)},e.easeInOutQuart=function(t){return(t/=.5)<1?.5*Math.pow(t,4):-.5*((t-=2)*Math.pow(t,3)-2)},e.easeInQuint=function(t){return Math.pow(t,5)},e.easeOutQuint=function(t){return Math.pow(t-1,5)+1},e.easeInOutQuint=function(t){return(t/=.5)<1?.5*Math.pow(t,5):.5*(Math.pow(t-2,5)+2)},e.easeInSine=function(t){return 1-Math.cos(t*(Math.PI/2))},e.easeOutSine=function(t){return Math.sin(t*(Math.PI/2))},e.easeInOutSine=function(t){return-.5*(Math.cos(Math.PI*t)-1)},e.easeInExpo=function(t){return 0===t?0:Math.pow(2,10*(t-1))},e.easeOutExpo=function(t){return 1===t?1:1-Math.pow(2,-10*t)},e.easeInOutExpo=function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},e.easeInCirc=function(t){return-(Math.sqrt(1-t*t)-1)},e.easeOutCirc=function(t){return Math.sqrt(1-Math.pow(t-1,2))},e.easeInOutCirc=function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},e.easeOutBounce=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},e.easeInBack=function(t){var e=1.70158;return t*t*((e+1)*t-e)},e.easeOutBack=function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},e.easeInOutBack=function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},e.elastic=function(t){return-1*Math.pow(4,-8*t)*Math.sin((6*t-1)*(2*Math.PI)/2)+1},e.swingFromTo=function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},e.swingFrom=function(t){var e=1.70158;return t*t*((e+1)*t-e)},e.swingTo=function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},e.bounce=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},e.bouncePast=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?2-(7.5625*(t-=1.5/2.75)*t+.75):t<2.5/2.75?2-(7.5625*(t-=2.25/2.75)*t+.9375):2-(7.5625*(t-=2.625/2.75)*t+.984375)},e.easeFromTo=function(t){return(t/=.5)<1?.5*Math.pow(t,4):-.5*((t-=2)*Math.pow(t,3)-2)},e.easeFrom=function(t){return Math.pow(t,4)},e.easeTo=function(t){return Math.pow(t,.25)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(0);Object.defineProperty(e,"Tweenable",{enumerable:!0,get:function(){return i.Tweenable}}),Object.defineProperty(e,"tween",{enumerable:!0,get:function(){return i.tween}});var r=n(3);Object.defineProperty(e,"interpolate",{enumerable:!0,get:function(){return r.interpolate}});var a=n(2);Object.defineProperty(e,"setBezierFunction",{enumerable:!0,get:function(){return a.setBezierFunction}}),Object.defineProperty(e,"unsetBezierFunction",{enumerable:!0,get:function(){return a.unsetBezierFunction}})},function(t,e,n){"use strict";function i(t){return parseInt(t,16)}function r(t,e,n){[t,e,n].forEach(m),this._tokenData=x(t)}function a(t,e,n,i){var r=this._tokenData;E(i,r),[t,e,n].forEach((function(t){return w(t,r)}))}function s(t,e,n,i){var r=this._tokenData;[t,e,n].forEach((function(t){return P(t,r)})),k(i,r)}Object.defineProperty(e,"__esModule",{value:!0}),e.tweenCreated=r,e.beforeTween=a,e.afterTween=s;var o=n(0),l=function(){var t=/[0-9.\-]+/g.source,e=/,\s*/.source;return new RegExp("rgb\\("+t+e+t+e+t+"\\)","g")}(),c=/#([0-9]|[a-f]){3,6}/gi,u=function(t,e){return t.map((function(t,n){return"_"+e+"_"+n}))},h=function(t){var e=t.match(/([^\-0-9\.]+)/g);return e?(1===e.length||t.charAt(0).match(/(\d|\-|\.)/))&&e.unshift(""):e=["",""],e.join("VAL")},d=function(t){return 3===(t=t.replace(/#/,"")).length&&(t=(t=t.split(""))[0]+t[0]+t[1]+t[1]+t[2]+t[2]),[i(t.substr(0,2)),i(t.substr(2,2)),i(t.substr(4,2))]},f=function(t){return"rgb("+d(t).join(",")+")"},p=function(t,e,n){var i=e.match(t),r=e.replace(t,"VAL");return i&&i.forEach((function(t){return r=r.replace("VAL",n(t))})),r},g=function(t){return p(c,t,f)},m=function(t){(0,o.each)(t,(function(e){var n=t[e];"string"==typeof n&&n.match(c)&&(t[e]=g(n))}))},y=function(t){var e=t.match(/[0-9.\-]+/g).map(Math.floor);return""+t.match(/^.*\(/)[0]+e.join(",")+")"},v=function(t){return p(l,t,y)},b=function(t){return t.match(/[0-9.\-]+/g)},x=function(t){var e={};return(0,o.each)(t,(function(n){var i=t[n];"string"==typeof i&&(e[n]={formatString:h(i),chunkNames:u(b(i),n)})})),e},w=function(t,e){(0,o.each)(e,(function(n){b(t[n]).forEach((function(i,r){return t[e[n].chunkNames[r]]=+i})),delete t[n]}))},S=function(t,e){var n={};return e.forEach((function(e){n[e]=t[e],delete t[e]})),n},C=function(t,e){return e.map((function(e){return t[e]}))},_=function(t,e){return e.forEach((function(e){return t=t.replace("VAL",+e.toFixed(4))})),t},P=function(t,e){(0,o.each)(e,(function(n){var i=e[n],r=i.chunkNames,a=i.formatString,s=_(a,C(S(t,r),r));t[n]=v(s)}))},E=function(t,e){(0,o.each)(e,(function(n){var i=e[n].chunkNames,r=t[n];"string"==typeof r?function(){var e=r.split(" "),n=e[e.length-1];i.forEach((function(i,r){return t[i]=e[r]||n}))}():i.forEach((function(e){return t[e]=r})),delete t[n]}))},k=function(t,e){(0,o.each)(e,(function(n){var i=e[n].chunkNames,r=(i.length,t[i[0]]);t[n]="string"==typeof r?i.map((function(e){var n=t[e];return delete t[e],n})).join(" "):r}))}}])},"./node_modules/stackblur/index.js":t=>{var e=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259],n=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];function i(){this.r=0,this.g=0,this.b=0,this.a=0,this.next=null}t.exports=function(t,r,a,s){if(!(isNaN(s)||s<1)){var o,l,c,u,h,d,f,p,g,m,y,v,b,x,w,S,C,_,P,E,k,A,R,j,M=(s|=0)+s+1,D=r-1,T=a-1,L=s+1,B=L*(L+1)/2,F=new i,N=F;for(c=1;c<M;c++)if(N=N.next=new i,c==L)var I=N;N.next=F;var O=null,z=null;f=d=0;var H=e[s],V=n[s];for(l=0;l<a;l++){for(S=C=_=P=p=g=m=y=0,v=L*(E=t[d]),b=L*(k=t[d+1]),x=L*(A=t[d+2]),w=L*(R=t[d+3]),p+=B*E,g+=B*k,m+=B*A,y+=B*R,N=F,c=0;c<L;c++)N.r=E,N.g=k,N.b=A,N.a=R,N=N.next;for(c=1;c<L;c++)u=d+((D<c?D:c)<<2),p+=(N.r=E=t[u])*(j=L-c),g+=(N.g=k=t[u+1])*j,m+=(N.b=A=t[u+2])*j,y+=(N.a=R=t[u+3])*j,S+=E,C+=k,_+=A,P+=R,N=N.next;for(O=F,z=I,o=0;o<r;o++)t[d+3]=R=y*H>>V,0!=R?(R=255/R,t[d]=(p*H>>V)*R,t[d+1]=(g*H>>V)*R,t[d+2]=(m*H>>V)*R):t[d]=t[d+1]=t[d+2]=0,p-=v,g-=b,m-=x,y-=w,v-=O.r,b-=O.g,x-=O.b,w-=O.a,u=f+((u=o+s+1)<D?u:D)<<2,p+=S+=O.r=t[u],g+=C+=O.g=t[u+1],m+=_+=O.b=t[u+2],y+=P+=O.a=t[u+3],O=O.next,v+=E=z.r,b+=k=z.g,x+=A=z.b,w+=R=z.a,S-=E,C-=k,_-=A,P-=R,z=z.next,d+=4;f+=r}for(o=0;o<r;o++){for(C=_=P=S=g=m=y=p=0,v=L*(E=t[d=o<<2]),b=L*(k=t[d+1]),x=L*(A=t[d+2]),w=L*(R=t[d+3]),p+=B*E,g+=B*k,m+=B*A,y+=B*R,N=F,c=0;c<L;c++)N.r=E,N.g=k,N.b=A,N.a=R,N=N.next;for(h=r,c=1;c<=s;c++)d=h+o<<2,p+=(N.r=E=t[d])*(j=L-c),g+=(N.g=k=t[d+1])*j,m+=(N.b=A=t[d+2])*j,y+=(N.a=R=t[d+3])*j,S+=E,C+=k,_+=A,P+=R,N=N.next,c<T&&(h+=r);for(d=o,O=F,z=I,l=0;l<a;l++)t[(u=d<<2)+3]=R=y*H>>V,R>0?(R=255/R,t[u]=(p*H>>V)*R,t[u+1]=(g*H>>V)*R,t[u+2]=(m*H>>V)*R):t[u]=t[u+1]=t[u+2]=0,p-=v,g-=b,m-=x,y-=w,v-=O.r,b-=O.g,x-=O.b,w-=O.a,u=o+((u=l+L)<T?u:T)*r<<2,p+=S+=O.r=t[u],g+=C+=O.g=t[u+1],m+=_+=O.b=t[u+2],y+=P+=O.a=t[u+3],O=O.next,v+=E=z.r,b+=k=z.g,x+=A=z.b,w+=R=z.a,S-=E,C-=k,_-=A,P-=R,z=z.next,d+=r}}}},"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":t=>{"use strict";var e=[];function n(t){for(var n=-1,i=0;i<e.length;i++)if(e[i].identifier===t){n=i;break}return n}function i(t,i){for(var a={},s=[],o=0;o<t.length;o++){var l=t[o],c=i.base?l[0]+i.base:l[0],u=a[c]||0,h="".concat(c," ").concat(u);a[c]=u+1;var d=n(h),f={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==d)e[d].references++,e[d].updater(f);else{var p=r(f,i);i.byIndex=o,e.splice(o,0,{identifier:h,updater:p,references:1})}s.push(h)}return s}function r(t,e){var n=e.domAPI(e);n.update(t);return function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap&&e.supports===t.supports&&e.layer===t.layer)return;n.update(t=e)}else n.remove()}}t.exports=function(t,r){var a=i(t=t||[],r=r||{});return function(t){t=t||[];for(var s=0;s<a.length;s++){var o=n(a[s]);e[o].references--}for(var l=i(t,r),c=0;c<a.length;c++){var u=n(a[c]);0===e[u].references&&(e[u].updater(),e.splice(u,1))}a=l}}},"./node_modules/style-loader/dist/runtime/insertBySelector.js":t=>{"use strict";var e={};t.exports=function(t,n){var i=function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}(t);if(!i)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");i.appendChild(n)}},"./node_modules/style-loader/dist/runtime/insertStyleElement.js":t=>{"use strict";t.exports=function(t){var e=document.createElement("style");return t.setAttributes(e,t.attributes),t.insert(e,t.options),e}},"./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":(t,e,n)=>{"use strict";t.exports=function(t){var e=n.nc;e&&t.setAttribute("nonce",e)}},"./node_modules/style-loader/dist/runtime/styleDomAPI.js":t=>{"use strict";t.exports=function(t){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var e=t.insertStyleElement(t);return{update:function(n){!function(t,e,n){var i="";n.supports&&(i+="@supports (".concat(n.supports,") {")),n.media&&(i+="@media ".concat(n.media," {"));var r=void 0!==n.layer;r&&(i+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),i+=n.css,r&&(i+="}"),n.media&&(i+="}"),n.supports&&(i+="}");var a=n.sourceMap;a&&"undefined"!=typeof btoa&&(i+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),e.styleTagTransform(i,t,e.options)}(e,t,n)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(e)}}}},"./node_modules/style-loader/dist/runtime/styleTagTransform.js":t=>{"use strict";t.exports=function(t,e){if(e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}},"./node_modules/xmldom/dom-parser.js":(t,e,n)=>{function i(t){this.options=t||{locator:{}}}function r(){this.cdata=!1}function a(t,e){e.lineNumber=t.lineNumber,e.columnNumber=t.columnNumber}function s(t){if(t)return"\n@"+(t.systemId||"")+"#[line:"+t.lineNumber+",col:"+t.columnNumber+"]"}function o(t,e,n){return"string"==typeof t?t.substr(e,n):t.length>=e+n||e?new java.lang.String(t,e,n)+"":t}function l(t,e){t.currentElement?t.currentElement.appendChild(e):t.doc.appendChild(e)}i.prototype.parseFromString=function(t,e){var n=this.options,i=new c,a=n.domBuilder||new r,o=n.errorHandler,l=n.locator,u=n.xmlns||{},h={lt:"<",gt:">",amp:"&",quot:'"',apos:"'"};return l&&a.setDocumentLocator(l),i.errorHandler=function(t,e,n){if(!t){if(e instanceof r)return e;t=e}var i={},a=t instanceof Function;function o(e){var r=t[e];!r&&a&&(r=2==t.length?function(n){t(e,n)}:t),i[e]=r&&function(t){r("[xmldom "+e+"]\t"+t+s(n))}||function(){}}return n=n||{},o("warning"),o("error"),o("fatalError"),i}(o,a,l),i.domBuilder=n.domBuilder||a,/\/x?html?$/.test(e)&&(h.nbsp=" ",h.copy="©",u[""]="http://www.w3.org/1999/xhtml"),u.xml=u.xml||"http://www.w3.org/XML/1998/namespace",t?i.parse(t,u,h):i.errorHandler.error("invalid doc source"),a.doc},r.prototype={startDocument:function(){this.doc=(new u).createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(t,e,n,i){var r=this.doc,s=r.createElementNS(t,n||e),o=i.length;l(this,s),this.currentElement=s,this.locator&&a(this.locator,s);for(var c=0;c<o;c++){t=i.getURI(c);var u=i.getValue(c),h=(n=i.getQName(c),r.createAttributeNS(t,n));this.locator&&a(i.getLocator(c),h),h.value=h.nodeValue=u,s.setAttributeNode(h)}},endElement:function(t,e,n){var i=this.currentElement;i.tagName;this.currentElement=i.parentNode},startPrefixMapping:function(t,e){},endPrefixMapping:function(t){},processingInstruction:function(t,e){var n=this.doc.createProcessingInstruction(t,e);this.locator&&a(this.locator,n),l(this,n)},ignorableWhitespace:function(t,e,n){},characters:function(t,e,n){if(t=o.apply(this,arguments)){if(this.cdata)var i=this.doc.createCDATASection(t);else i=this.doc.createTextNode(t);this.currentElement?this.currentElement.appendChild(i):/^\s*$/.test(t)&&this.doc.appendChild(i),this.locator&&a(this.locator,i)}},skippedEntity:function(t){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(t){(this.locator=t)&&(t.lineNumber=0)},comment:function(t,e,n){t=o.apply(this,arguments);var i=this.doc.createComment(t);this.locator&&a(this.locator,i),l(this,i)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(t,e,n){var i=this.doc.implementation;if(i&&i.createDocumentType){var r=i.createDocumentType(t,e,n);this.locator&&a(this.locator,r),l(this,r)}},warning:function(t){console.warn("[xmldom warning]\t"+t,s(this.locator))},error:function(t){console.error("[xmldom error]\t"+t,s(this.locator))},fatalError:function(t){throw console.error("[xmldom fatalError]\t"+t,s(this.locator)),t}},"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,(function(t){r.prototype[t]=function(){return null}}));var c=n("./node_modules/xmldom/sax.js").XMLReader,u=e.DOMImplementation=n("./node_modules/xmldom/dom.js").DOMImplementation;e.XMLSerializer=n("./node_modules/xmldom/dom.js").XMLSerializer,e.DOMParser=i},"./node_modules/xmldom/dom.js":(t,e)=>{function n(t,e){for(var n in t)e[n]=t[n]}function i(t,e){var i=t.prototype;if(Object.create){var r=Object.create(e.prototype);i.__proto__=r}if(!(i instanceof e)){function a(){}a.prototype=e.prototype,n(i,a=new a),t.prototype=i=a}i.constructor!=t&&("function"!=typeof t&&console.error("unknow Class:"+t),i.constructor=t)}var r={},a=r.ELEMENT_NODE=1,s=r.ATTRIBUTE_NODE=2,o=r.TEXT_NODE=3,l=r.CDATA_SECTION_NODE=4,c=r.ENTITY_REFERENCE_NODE=5,u=r.ENTITY_NODE=6,h=r.PROCESSING_INSTRUCTION_NODE=7,d=r.COMMENT_NODE=8,f=r.DOCUMENT_NODE=9,p=r.DOCUMENT_TYPE_NODE=10,g=r.DOCUMENT_FRAGMENT_NODE=11,m=r.NOTATION_NODE=12,y={},v={},b=(y.INDEX_SIZE_ERR=(v[1]="Index size error",1),y.DOMSTRING_SIZE_ERR=(v[2]="DOMString size error",2),y.HIERARCHY_REQUEST_ERR=(v[3]="Hierarchy request error",3)),x=(y.WRONG_DOCUMENT_ERR=(v[4]="Wrong document",4),y.INVALID_CHARACTER_ERR=(v[5]="Invalid character",5),y.NO_DATA_ALLOWED_ERR=(v[6]="No data allowed",6),y.NO_MODIFICATION_ALLOWED_ERR=(v[7]="No modification allowed",7),y.NOT_FOUND_ERR=(v[8]="Not found",8)),w=(y.NOT_SUPPORTED_ERR=(v[9]="Not supported",9),y.INUSE_ATTRIBUTE_ERR=(v[10]="Attribute in use",10));y.INVALID_STATE_ERR=(v[11]="Invalid state",11),y.SYNTAX_ERR=(v[12]="Syntax error",12),y.INVALID_MODIFICATION_ERR=(v[13]="Invalid modification",13),y.NAMESPACE_ERR=(v[14]="Invalid namespace",14),y.INVALID_ACCESS_ERR=(v[15]="Invalid access",15);function S(t,e){if(e instanceof Error)var n=e;else n=this,Error.call(this,v[t]),this.message=v[t],Error.captureStackTrace&&Error.captureStackTrace(this,S);return n.code=t,e&&(this.message=this.message+": "+e),n}function C(){}function _(t,e){this._node=t,this._refresh=e,P(this)}function P(t){var e=t._node._inc||t._node.ownerDocument._inc;if(t._inc!=e){var i=t._refresh(t._node);it(t,"length",i.length),n(i,t),t._inc=e}}function E(){}function k(t,e){for(var n=t.length;n--;)if(t[n]===e)return n}function A(t,e,n,i){if(i?e[k(e,i)]=n:e[e.length++]=n,t){n.ownerElement=t;var r=t.ownerDocument;r&&(i&&B(r,t,i),function(t,e,n){t&&t._inc++;var i=n.namespaceURI;"http://www.w3.org/2000/xmlns/"==i&&(e._nsMap[n.prefix?n.localName:""]=n.value)}(r,t,n))}}function R(t,e,n){var i=k(e,n);if(!(i>=0))throw S(x,new Error(t.tagName+"@"+n));for(var r=e.length-1;i<r;)e[i]=e[++i];if(e.length=r,t){var a=t.ownerDocument;a&&(B(a,t,n),n.ownerElement=null)}}function j(t){if(this._features={},t)for(var e in t)this._features=t[e]}function M(){}function D(t){return("<"==t?"&lt;":">"==t&&"&gt;")||"&"==t&&"&amp;"||'"'==t&&"&quot;"||"&#"+t.charCodeAt()+";"}function T(t,e){if(e(t))return!0;if(t=t.firstChild)do{if(T(t,e))return!0}while(t=t.nextSibling)}function L(){}function B(t,e,n,i){t&&t._inc++,"http://www.w3.org/2000/xmlns/"==n.namespaceURI&&delete e._nsMap[n.prefix?n.localName:""]}function F(t,e,n){if(t&&t._inc){t._inc++;var i=e.childNodes;if(n)i[i.length++]=n;else{for(var r=e.firstChild,a=0;r;)i[a++]=r,r=r.nextSibling;i.length=a}}}function N(t,e){var n=e.previousSibling,i=e.nextSibling;return n?n.nextSibling=i:t.firstChild=i,i?i.previousSibling=n:t.lastChild=n,F(t.ownerDocument,t),e}function I(t,e,n){var i=e.parentNode;if(i&&i.removeChild(e),e.nodeType===g){var r=e.firstChild;if(null==r)return e;var a=e.lastChild}else r=a=e;var s=n?n.previousSibling:t.lastChild;r.previousSibling=s,a.nextSibling=n,s?s.nextSibling=r:t.firstChild=r,null==n?t.lastChild=a:n.previousSibling=a;do{r.parentNode=t}while(r!==a&&(r=r.nextSibling));return F(t.ownerDocument||t,t),e.nodeType==g&&(e.firstChild=e.lastChild=null),e}function O(){this._nsMap={}}function z(){}function H(){}function V(){}function G(){}function W(){}function U(){}function X(){}function q(){}function Y(){}function $(){}function K(){}function Z(){}function J(t,e){var n=[],i=9==this.nodeType?this.documentElement:this,r=i.prefix,a=i.namespaceURI;if(a&&null==r&&null==(r=i.lookupPrefix(a)))var s=[{namespace:a,prefix:null}];return tt(this,n,t,e,s),n.join("")}function Q(t,e,n){var i=t.prefix||"",r=t.namespaceURI;if(!i&&!r)return!1;if("xml"===i&&"http://www.w3.org/XML/1998/namespace"===r||"http://www.w3.org/2000/xmlns/"==r)return!1;for(var a=n.length;a--;){var s=n[a];if(s.prefix==i)return s.namespace!=r}return!0}function tt(t,e,n,i,r){if(i){if(!(t=i(t)))return;if("string"==typeof t)return void e.push(t)}switch(t.nodeType){case a:r||(r=[]);r.length;var u=t.attributes,m=u.length,y=t.firstChild,v=t.tagName;n="http://www.w3.org/1999/xhtml"===t.namespaceURI||n,e.push("<",v);for(var b=0;b<m;b++){"xmlns"==(x=u.item(b)).prefix?r.push({prefix:x.localName,namespace:x.value}):"xmlns"==x.nodeName&&r.push({prefix:"",namespace:x.value})}for(b=0;b<m;b++){var x;if(Q(x=u.item(b),0,r)){var w=x.prefix||"",S=x.namespaceURI,C=w?" xmlns:"+w:" xmlns";e.push(C,'="',S,'"'),r.push({prefix:w,namespace:S})}tt(x,e,n,i,r)}if(Q(t,0,r)){w=t.prefix||"",S=t.namespaceURI,C=w?" xmlns:"+w:" xmlns";e.push(C,'="',S,'"'),r.push({prefix:w,namespace:S})}if(y||n&&!/^(?:meta|link|img|br|hr|input)$/i.test(v)){if(e.push(">"),n&&/^script$/i.test(v))for(;y;)y.data?e.push(y.data):tt(y,e,n,i,r),y=y.nextSibling;else for(;y;)tt(y,e,n,i,r),y=y.nextSibling;e.push("</",v,">")}else e.push("/>");return;case f:case g:for(y=t.firstChild;y;)tt(y,e,n,i,r),y=y.nextSibling;return;case s:return e.push(" ",t.name,'="',t.value.replace(/[<&"]/g,D),'"');case o:return e.push(t.data.replace(/[<&]/g,D));case l:return e.push("<![CDATA[",t.data,"]]>");case d:return e.push("\x3c!--",t.data,"--\x3e");case p:var _=t.publicId,P=t.systemId;if(e.push("<!DOCTYPE ",t.name),_)e.push(' PUBLIC "',_),P&&"."!=P&&e.push('" "',P),e.push('">');else if(P&&"."!=P)e.push(' SYSTEM "',P,'">');else{var E=t.internalSubset;E&&e.push(" [",E,"]"),e.push(">")}return;case h:return e.push("<?",t.target," ",t.data,"?>");case c:return e.push("&",t.nodeName,";");default:e.push("??",t.nodeName)}}function et(t,e,n){var i;switch(e.nodeType){case a:(i=e.cloneNode(!1)).ownerDocument=t;case g:break;case s:n=!0}if(i||(i=e.cloneNode(!1)),i.ownerDocument=t,i.parentNode=null,n)for(var r=e.firstChild;r;)i.appendChild(et(t,r,n)),r=r.nextSibling;return i}function nt(t,e,n){var i=new e.constructor;for(var r in e){var o=e[r];"object"!=typeof o&&o!=i[r]&&(i[r]=o)}switch(e.childNodes&&(i.childNodes=new C),i.ownerDocument=t,i.nodeType){case a:var l=e.attributes,c=i.attributes=new E,u=l.length;c._ownerElement=i;for(var h=0;h<u;h++)i.setAttributeNode(nt(t,l.item(h),!0));break;case s:n=!0}if(n)for(var d=e.firstChild;d;)i.appendChild(nt(t,d,n)),d=d.nextSibling;return i}function it(t,e,n){t[e]=n}S.prototype=Error.prototype,n(y,S),C.prototype={length:0,item:function(t){return this[t]||null},toString:function(t,e){for(var n=[],i=0;i<this.length;i++)tt(this[i],n,t,e);return n.join("")}},_.prototype.item=function(t){return P(this),this[t]},i(_,C),E.prototype={length:0,item:C.prototype.item,getNamedItem:function(t){for(var e=this.length;e--;){var n=this[e];if(n.nodeName==t)return n}},setNamedItem:function(t){var e=t.ownerElement;if(e&&e!=this._ownerElement)throw new S(w);var n=this.getNamedItem(t.nodeName);return A(this._ownerElement,this,t,n),n},setNamedItemNS:function(t){var e,n=t.ownerElement;if(n&&n!=this._ownerElement)throw new S(w);return e=this.getNamedItemNS(t.namespaceURI,t.localName),A(this._ownerElement,this,t,e),e},removeNamedItem:function(t){var e=this.getNamedItem(t);return R(this._ownerElement,this,e),e},removeNamedItemNS:function(t,e){var n=this.getNamedItemNS(t,e);return R(this._ownerElement,this,n),n},getNamedItemNS:function(t,e){for(var n=this.length;n--;){var i=this[n];if(i.localName==e&&i.namespaceURI==t)return i}return null}},j.prototype={hasFeature:function(t,e){var n=this._features[t.toLowerCase()];return!(!n||e&&!(e in n))},createDocument:function(t,e,n){var i=new L;if(i.implementation=this,i.childNodes=new C,i.doctype=n,n&&i.appendChild(n),e){var r=i.createElementNS(t,e);i.appendChild(r)}return i},createDocumentType:function(t,e,n){var i=new U;return i.name=t,i.nodeName=t,i.publicId=e,i.systemId=n,i}},M.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(t,e){return I(this,t,e)},replaceChild:function(t,e){this.insertBefore(t,e),e&&this.removeChild(e)},removeChild:function(t){return N(this,t)},appendChild:function(t){return this.insertBefore(t,null)},hasChildNodes:function(){return null!=this.firstChild},cloneNode:function(t){return nt(this.ownerDocument||this,this,t)},normalize:function(){for(var t=this.firstChild;t;){var e=t.nextSibling;e&&e.nodeType==o&&t.nodeType==o?(this.removeChild(e),t.appendData(e.data)):(t.normalize(),t=e)}},isSupported:function(t,e){return this.ownerDocument.implementation.hasFeature(t,e)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(t){for(var e=this;e;){var n=e._nsMap;if(n)for(var i in n)if(n[i]==t)return i;e=e.nodeType==s?e.ownerDocument:e.parentNode}return null},lookupNamespaceURI:function(t){for(var e=this;e;){var n=e._nsMap;if(n&&t in n)return n[t];e=e.nodeType==s?e.ownerDocument:e.parentNode}return null},isDefaultNamespace:function(t){return null==this.lookupPrefix(t)}},n(r,M),n(r,M.prototype),L.prototype={nodeName:"#document",nodeType:f,doctype:null,documentElement:null,_inc:1,insertBefore:function(t,e){if(t.nodeType==g){for(var n=t.firstChild;n;){var i=n.nextSibling;this.insertBefore(n,e),n=i}return t}return null==this.documentElement&&t.nodeType==a&&(this.documentElement=t),I(this,t,e),t.ownerDocument=this,t},removeChild:function(t){return this.documentElement==t&&(this.documentElement=null),N(this,t)},importNode:function(t,e){return et(this,t,e)},getElementById:function(t){var e=null;return T(this.documentElement,(function(n){if(n.nodeType==a&&n.getAttribute("id")==t)return e=n,!0})),e},createElement:function(t){var e=new O;return e.ownerDocument=this,e.nodeName=t,e.tagName=t,e.childNodes=new C,(e.attributes=new E)._ownerElement=e,e},createDocumentFragment:function(){var t=new $;return t.ownerDocument=this,t.childNodes=new C,t},createTextNode:function(t){var e=new V;return e.ownerDocument=this,e.appendData(t),e},createComment:function(t){var e=new G;return e.ownerDocument=this,e.appendData(t),e},createCDATASection:function(t){var e=new W;return e.ownerDocument=this,e.appendData(t),e},createProcessingInstruction:function(t,e){var n=new K;return n.ownerDocument=this,n.tagName=n.target=t,n.nodeValue=n.data=e,n},createAttribute:function(t){var e=new z;return e.ownerDocument=this,e.name=t,e.nodeName=t,e.localName=t,e.specified=!0,e},createEntityReference:function(t){var e=new Y;return e.ownerDocument=this,e.nodeName=t,e},createElementNS:function(t,e){var n=new O,i=e.split(":"),r=n.attributes=new E;return n.childNodes=new C,n.ownerDocument=this,n.nodeName=e,n.tagName=e,n.namespaceURI=t,2==i.length?(n.prefix=i[0],n.localName=i[1]):n.localName=e,r._ownerElement=n,n},createAttributeNS:function(t,e){var n=new z,i=e.split(":");return n.ownerDocument=this,n.nodeName=e,n.name=e,n.namespaceURI=t,n.specified=!0,2==i.length?(n.prefix=i[0],n.localName=i[1]):n.localName=e,n}},i(L,M),O.prototype={nodeType:a,hasAttribute:function(t){return null!=this.getAttributeNode(t)},getAttribute:function(t){var e=this.getAttributeNode(t);return e&&e.value||""},getAttributeNode:function(t){return this.attributes.getNamedItem(t)},setAttribute:function(t,e){var n=this.ownerDocument.createAttribute(t);n.value=n.nodeValue=""+e,this.setAttributeNode(n)},removeAttribute:function(t){var e=this.getAttributeNode(t);e&&this.removeAttributeNode(e)},appendChild:function(t){return t.nodeType===g?this.insertBefore(t,null):function(t,e){var n=e.parentNode;if(n){var i=t.lastChild;n.removeChild(e),i=t.lastChild}return i=t.lastChild,e.parentNode=t,e.previousSibling=i,e.nextSibling=null,i?i.nextSibling=e:t.firstChild=e,t.lastChild=e,F(t.ownerDocument,t,e),e}(this,t)},setAttributeNode:function(t){return this.attributes.setNamedItem(t)},setAttributeNodeNS:function(t){return this.attributes.setNamedItemNS(t)},removeAttributeNode:function(t){return this.attributes.removeNamedItem(t.nodeName)},removeAttributeNS:function(t,e){var n=this.getAttributeNodeNS(t,e);n&&this.removeAttributeNode(n)},hasAttributeNS:function(t,e){return null!=this.getAttributeNodeNS(t,e)},getAttributeNS:function(t,e){var n=this.getAttributeNodeNS(t,e);return n&&n.value||""},setAttributeNS:function(t,e,n){var i=this.ownerDocument.createAttributeNS(t,e);i.value=i.nodeValue=""+n,this.setAttributeNode(i)},getAttributeNodeNS:function(t,e){return this.attributes.getNamedItemNS(t,e)},getElementsByTagName:function(t){return new _(this,(function(e){var n=[];return T(e,(function(i){i===e||i.nodeType!=a||"*"!==t&&i.tagName!=t||n.push(i)})),n}))},getElementsByTagNameNS:function(t,e){return new _(this,(function(n){var i=[];return T(n,(function(r){r===n||r.nodeType!==a||"*"!==t&&r.namespaceURI!==t||"*"!==e&&r.localName!=e||i.push(r)})),i}))}},L.prototype.getElementsByTagName=O.prototype.getElementsByTagName,L.prototype.getElementsByTagNameNS=O.prototype.getElementsByTagNameNS,i(O,M),z.prototype.nodeType=s,i(z,M),H.prototype={data:"",substringData:function(t,e){return this.data.substring(t,t+e)},appendData:function(t){t=this.data+t,this.nodeValue=this.data=t,this.length=t.length},insertData:function(t,e){this.replaceData(t,0,e)},appendChild:function(t){throw new Error(v[b])},deleteData:function(t,e){this.replaceData(t,e,"")},replaceData:function(t,e,n){n=this.data.substring(0,t)+n+this.data.substring(t+e),this.nodeValue=this.data=n,this.length=n.length}},i(H,M),V.prototype={nodeName:"#text",nodeType:o,splitText:function(t){var e=this.data,n=e.substring(t);e=e.substring(0,t),this.data=this.nodeValue=e,this.length=e.length;var i=this.ownerDocument.createTextNode(n);return this.parentNode&&this.parentNode.insertBefore(i,this.nextSibling),i}},i(V,H),G.prototype={nodeName:"#comment",nodeType:d},i(G,H),W.prototype={nodeName:"#cdata-section",nodeType:l},i(W,H),U.prototype.nodeType=p,i(U,M),X.prototype.nodeType=m,i(X,M),q.prototype.nodeType=u,i(q,M),Y.prototype.nodeType=c,i(Y,M),$.prototype.nodeName="#document-fragment",$.prototype.nodeType=g,i($,M),K.prototype.nodeType=h,i(K,M),Z.prototype.serializeToString=function(t,e,n){return J.call(t,e,n)},M.prototype.toString=J;try{if(Object.defineProperty){function rt(t){switch(t.nodeType){case a:case g:var e=[];for(t=t.firstChild;t;)7!==t.nodeType&&8!==t.nodeType&&e.push(rt(t)),t=t.nextSibling;return e.join("");default:return t.nodeValue}}Object.defineProperty(_.prototype,"length",{get:function(){return P(this),this.$$length}}),Object.defineProperty(M.prototype,"textContent",{get:function(){return rt(this)},set:function(t){switch(this.nodeType){case a:case g:for(;this.firstChild;)this.removeChild(this.firstChild);(t||String(t))&&this.appendChild(this.ownerDocument.createTextNode(t));break;default:this.data=t,this.value=t,this.nodeValue=t}}}),it=function(t,e,n){t["$$"+e]=n}}}catch(at){}e.DOMImplementation=j,e.XMLSerializer=Z},"./node_modules/xmldom/sax.js":(t,e)=>{var n=/[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,i=new RegExp("[\\-\\.0-9"+n.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),r=new RegExp("^"+n.source+i.source+"*(?::"+n.source+i.source+"*)?$");function a(){}function s(t,e){return e.lineNumber=t.lineNumber,e.columnNumber=t.columnNumber,e}function o(t,e,n,i,r,a){for(var s,o=++e,l=0;;){var c=t.charAt(o);switch(c){case"=":if(1===l)s=t.slice(e,o),l=3;else{if(2!==l)throw new Error("attribute equal must after attrName");l=3}break;case"'":case'"':if(3===l||1===l){if(1===l&&(a.warning('attribute value must after "="'),s=t.slice(e,o)),e=o+1,!((o=t.indexOf(c,e))>0))throw new Error("attribute value no end '"+c+"' match");u=t.slice(e,o).replace(/&#?\w+;/g,r),n.add(s,u,e-1),l=5}else{if(4!=l)throw new Error('attribute value must after "="');u=t.slice(e,o).replace(/&#?\w+;/g,r),n.add(s,u,e),a.warning('attribute "'+s+'" missed start quot('+c+")!!"),e=o+1,l=5}break;case"/":switch(l){case 0:n.setTagName(t.slice(e,o));case 5:case 6:case 7:l=7,n.closed=!0;case 4:case 1:case 2:break;default:throw new Error("attribute invalid close char('/')")}break;case"":return a.error("unexpected end of input"),0==l&&n.setTagName(t.slice(e,o)),o;case">":switch(l){case 0:n.setTagName(t.slice(e,o));case 5:case 6:case 7:break;case 4:case 1:"/"===(u=t.slice(e,o)).slice(-1)&&(n.closed=!0,u=u.slice(0,-1));case 2:2===l&&(u=s),4==l?(a.warning('attribute "'+u+'" missed quot(")!!'),n.add(s,u.replace(/&#?\w+;/g,r),e)):("http://www.w3.org/1999/xhtml"===i[""]&&u.match(/^(?:disabled|checked|selected)$/i)||a.warning('attribute "'+u+'" missed value!! "'+u+'" instead!!'),n.add(u,u,e));break;case 3:throw new Error("attribute value missed!!")}return o;case"":c=" ";default:if(c<=" ")switch(l){case 0:n.setTagName(t.slice(e,o)),l=6;break;case 1:s=t.slice(e,o),l=2;break;case 4:var u=t.slice(e,o).replace(/&#?\w+;/g,r);a.warning('attribute "'+u+'" missed quot(")!!'),n.add(s,u,e);case 5:l=6}else switch(l){case 2:n.tagName;"http://www.w3.org/1999/xhtml"===i[""]&&s.match(/^(?:disabled|checked|selected)$/i)||a.warning('attribute "'+s+'" missed value!! "'+s+'" instead2!!'),n.add(s,s,e),e=o,l=1;break;case 5:a.warning('attribute space is required"'+s+'"!!');case 6:l=1,e=o;break;case 3:l=4,e=o;break;case 7:throw new Error("elements closed character '/' and '>' must be connected to")}}o++}}function l(t,e,n){for(var i=t.tagName,r=null,a=t.length;a--;){var s=t[a],o=s.qName,l=s.value;if((f=o.indexOf(":"))>0)var c=s.prefix=o.slice(0,f),u=o.slice(f+1),d="xmlns"===c&&u;else u=o,c=null,d="xmlns"===o&&"";s.localName=u,!1!==d&&(null==r&&(r={},h(n,n={})),n[d]=r[d]=l,s.uri="http://www.w3.org/2000/xmlns/",e.startPrefixMapping(d,l))}for(a=t.length;a--;){(c=(s=t[a]).prefix)&&("xml"===c&&(s.uri="http://www.w3.org/XML/1998/namespace"),"xmlns"!==c&&(s.uri=n[c||""]))}var f;(f=i.indexOf(":"))>0?(c=t.prefix=i.slice(0,f),u=t.localName=i.slice(f+1)):(c=null,u=t.localName=i);var p=t.uri=n[c||""];if(e.startElement(p,u,i,t),!t.closed)return t.currentNSMap=n,t.localNSMap=r,!0;if(e.endElement(p,u,i),r)for(c in r)e.endPrefixMapping(c)}function c(t,e,n,i,r){if(/^(?:script|textarea)$/i.test(n)){var a=t.indexOf("</"+n+">",e),s=t.substring(e+1,a);if(/[&<]/.test(s))return/^script$/i.test(n)?(r.characters(s,0,s.length),a):(s=s.replace(/&#?\w+;/g,i),r.characters(s,0,s.length),a)}return e+1}function u(t,e,n,i){var r=i[n];return null==r&&((r=t.lastIndexOf("</"+n+">"))<e&&(r=t.lastIndexOf("</"+n)),i[n]=r),r<e}function h(t,e){for(var n in t)e[n]=t[n]}function d(t,e,n,i){if("-"===t.charAt(e+2))return"-"===t.charAt(e+3)?(r=t.indexOf("--\x3e",e+4))>e?(n.comment(t,e+4,r-e-4),r+3):(i.error("Unclosed comment"),-1):-1;if("CDATA["==t.substr(e+3,6)){var r=t.indexOf("]]>",e+9);return n.startCDATA(),n.characters(t,e+9,r-e-9),n.endCDATA(),r+3}var a=function(t,e){var n,i=[],r=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;r.lastIndex=e,r.exec(t);for(;n=r.exec(t);)if(i.push(n),n[1])return i}(t,e),s=a.length;if(s>1&&/!doctype/i.test(a[0][0])){var o=a[1][0],l=s>3&&/^public$/i.test(a[2][0])&&a[3][0],c=s>4&&a[4][0],u=a[s-1];return n.startDTD(o,l&&l.replace(/^(['"])(.*?)\1$/,"$2"),c&&c.replace(/^(['"])(.*?)\1$/,"$2")),n.endDTD(),u.index+u[0].length}return-1}function f(t,e,n){var i=t.indexOf("?>",e);if(i){var r=t.substring(e,i).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(r){r[0].length;return n.processingInstruction(r[1],r[2]),i+2}return-1}return-1}function p(t){}function g(t,e){return t.__proto__=e,t}a.prototype={parse:function(t,e,n){var i=this.domBuilder;i.startDocument(),h(e,e={}),function(t,e,n,i,r){function a(t){if(t>65535){var e=55296+((t-=65536)>>10),n=56320+(1023&t);return String.fromCharCode(e,n)}return String.fromCharCode(t)}function h(t){var e=t.slice(1,-1);return e in n?n[e]:"#"===e.charAt(0)?a(parseInt(e.substr(1).replace("x","0x"))):(r.error("entity not found:"+t),t)}function g(e){if(e>C){var n=t.substring(C,e).replace(/&#?\w+;/g,h);x&&m(C),i.characters(n,0,e-C),C=e}}function m(e,n){for(;e>=v&&(n=b.exec(t));)y=n.index,v=y+n[0].length,x.lineNumber++;x.columnNumber=e-y+1}var y=0,v=0,b=/.*(?:\r\n?|\n)|.*$/g,x=i.locator,w=[{currentNSMap:e}],S={},C=0;for(;;){try{var _=t.indexOf("<",C);if(_<0){if(!t.substr(C).match(/^\s*$/)){var P=i.doc,E=P.createTextNode(t.substr(C));P.appendChild(E),i.currentElement=E}return}switch(_>C&&g(_),t.charAt(_+1)){case"/":var k=t.indexOf(">",_+3),A=t.substring(_+2,k),R=w.pop();k<0?(A=t.substring(_+2).replace(/[\s<].*/,""),r.error("end tag name: "+A+" is not complete:"+R.tagName),k=_+1+A.length):A.match(/\s</)&&(A=A.replace(/[\s<].*/,""),r.error("end tag name: "+A+" maybe not complete"),k=_+1+A.length);var j=R.localNSMap,M=R.tagName==A;if(M||R.tagName&&R.tagName.toLowerCase()==A.toLowerCase()){if(i.endElement(R.uri,R.localName,A),j)for(var D in j)i.endPrefixMapping(D);M||r.fatalError("end tag name: "+A+" is not match the current start tagName:"+R.tagName)}else w.push(R);k++;break;case"?":x&&m(_),k=f(t,_,i);break;case"!":x&&m(_),k=d(t,_,i,r);break;default:x&&m(_);var T=new p,L=w[w.length-1].currentNSMap,B=(k=o(t,_,T,L,h,r),T.length);if(!T.closed&&u(t,k,T.tagName,S)&&(T.closed=!0,n.nbsp||r.warning("unclosed xml attribute")),x&&B){for(var F=s(x,{}),N=0;N<B;N++){var I=T[N];m(I.offset),I.locator=s(x,{})}i.locator=F,l(T,i,L)&&w.push(T),i.locator=x}else l(T,i,L)&&w.push(T);"http://www.w3.org/1999/xhtml"!==T.uri||T.closed?k++:k=c(t,k,T.tagName,h,i)}}catch(t){r.error("element parse error: "+t),k=-1}k>C?C=k:g(Math.max(_,C)+1)}}(t,e,n,i,this.errorHandler),i.endDocument()}},p.prototype={setTagName:function(t){if(!r.test(t))throw new Error("invalid tagName:"+t);this.tagName=t},add:function(t,e,n){if(!r.test(t))throw new Error("invalid attribute:"+t);this[this.length++]={qName:t,value:e,offset:n}},length:0,getLocalName:function(t){return this[t].localName},getLocator:function(t){return this[t].locator},getQName:function(t){return this[t].qName},getURI:function(t){return this[t].uri},getValue:function(t){return this[t].value}},g({},g.prototype)instanceof g||(g=function(t,e){function n(){}for(e in n.prototype=e,n=new n,t)n[e]=t[e];return n}),e.XMLReader=a},"./src/Canvas.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};function s(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}n("./src/css/draw2d.css"),a.default.Canvas=Class.extend({NAME:"draw2d.Canvas",init:function(t,e,n){var i=this;this.setScrollArea(document.body),this.canvasId=t,this.html=$("#"+t),this.html.css({cursor:"default"}),isNaN(parseFloat(e))||isNaN(parseFloat(n))?(this.initialWidth=this.getWidth(),this.initialHeight=this.getHeight()):(this.initialWidth=parseInt(e),this.initialHeight=parseInt(n),this.html.height(this.initialHeight).width(this.initialWidth)),this.html.css({"-webkit-tap-highlight-color":"rgba(0,0,0,0)"}),$(this.html).droppable&&$(this.html).droppable({accept:".draw2d_droppable",over:function(t,e){i.onDragEnter(e.draggable)},out:function(t,e){i.onDragLeave(e.draggable)},drop:function(t,e){t=i._getEvent(t);var n=$(e.helper).position(),r=i.fromDocumentToCanvasCoordinate(t.clientX,t.clientY);i.onDrop(e.draggable,r.getX()-(t.clientX-n.left)+5,r.getY()-(t.clientY-n.top)+5,t.shiftKey,t.ctrlKey)}}),$(".draw2d_droppable")&&$(".draw2d_droppable").draggable&&$(".draw2d_droppable").draggable({appendTo:"body",stack:"body",zIndex:27e3,helper:"clone",drag:function(t,e){t=i._getEvent(t);var n=i.fromDocumentToCanvasCoordinate(t.clientX,t.clientY);i.onDrag(e.draggable,n.getX(),n.getY(),t.shiftKey,t.ctrlKey,t)},stop:function(t,e){},start:function(t,e){$(e.helper).addClass("shadow")}}),isNaN(parseFloat(n))?this.paper=Raphael(t,this.getWidth(),this.getHeight()):this.paper=Raphael(t,e,n),this.paper.canvas.style.position="absolute",this.zoomPolicy=null,this.zoomFactor=1,this.selection=new a.default.Selection,this.currentDropTarget=null,this.currentHoverFigure=null,this.regionDragDropConstraint=new a.default.policy.figure.RegionEditPolicy(0,0,this.getWidth(),this.getHeight()),this.eventSubscriptions={},this.editPolicy=new a.default.util.ArrayList,this.figures=new a.default.util.ArrayList,this.lines=new a.default.util.ArrayList,this.commonPorts=new a.default.util.ArrayList,this.resizeHandles=new a.default.util.ArrayList,this.commandStack=new a.default.command.CommandStack,this.linesToRepaintAfterDragDrop=new a.default.util.ArrayList,this.lineIntersections=new a.default.util.ArrayList,this.installEditPolicy(new a.default.policy.canvas.WheelZoomPolicy),this.installEditPolicy(new a.default.policy.canvas.DefaultKeyboardPolicy),this.installEditPolicy(new a.default.policy.canvas.BoundingboxSelectionPolicy),this.installEditPolicy(new a.default.policy.canvas.DropInterceptorPolicy),this.installEditPolicy(new a.default.policy.connection.ComposedConnectionCreatePolicy([new a.default.policy.connection.DragConnectionCreatePolicy,new a.default.policy.connection.ClickConnectionCreatePolicy])),this.commandStack.addEventListener((function(t){!0===t.isPostChangeEvent()&&(i.calculateConnectionIntersection(),i.linesToRepaintAfterDragDrop.each((function(t,e){e.svgPathString=null,e.repaint()})),i.linesToRepaintAfterDragDrop=new a.default.util.ArrayList)})),this.mouseDown=!1,this.mouseDownX=0,this.mouseDownY=0,this.mouseDragDiffX=0,this.mouseDragDiffY=0,this.html.bind("mouseup touchend",(function(t){if(!1!==i.mouseDown){t=i._getEvent(t),i.calculateConnectionIntersection(),i.mouseDown=!1;var e=i.fromDocumentToCanvasCoordinate(t.clientX,t.clientY);i.editPolicy.each((function(n,r){r.onMouseUp(i,e.x,e.y,t.shiftKey,t.ctrlKey,t)})),i.mouseDragDiffX=0,i.mouseDragDiffY=0}})),this.html.bind("mousemove touchmove",(function(t){t=i._getEvent(t);var e=i.fromDocumentToCanvasCoordinate(t.clientX,t.clientY);if(!1===i.mouseDown){try{var n=i.getBestFigure(e.x,e.y);n!==i.currentHoverFigure&&null!==i.currentHoverFigure&&(i.currentHoverFigure.onMouseLeave(),i.currentHoverFigure.fireEvent("mouseleave"),i.fireEvent("mouseleave",{figure:i.currentHoverFigure,event:t})),n!==i.currentHoverFigure&&null!==n&&(n.onMouseEnter(),n.fireEvent("mouseenter",{event:t}),i.fireEvent("mouseenter",{figure:n,event:t})),i.currentHoverFigure=n}catch(t){console.log(t)}i.editPolicy.each((function(n,r){r.onMouseMove(i,e.x,e.y,t.shiftKey,t.ctrlKey,t)})),i.fireEvent("mousemove",{x:e.x,y:e.y,shiftKey:t.shiftKey,ctrlKey:t.ctrlKey,hoverFigure:i.currentHoverFigure,event:t})}else{var r=(t.clientX-i.mouseDownX)*i.zoomFactor,a=(t.clientY-i.mouseDownY)*i.zoomFactor;i.editPolicy.each((function(e,n){n.onMouseDrag(i,r,a,r-i.mouseDragDiffX,a-i.mouseDragDiffY,t.shiftKey,t.ctrlKey,t)})),i.mouseDragDiffX=r,i.mouseDragDiffY=a,i.fireEvent("mousemove",{x:e.x,y:e.y,shiftKey:t.shiftKey,ctrlKey:t.ctrlKey,hoverFigure:i.currentHoverFigure,event:t})}})),this.html.bind("mousedown",(function(t){try{var e=null;switch(t.which){case 1:case 0:try{t.preventDefault(),t=i._getEvent(t),i.mouseDownX=t.clientX,i.mouseDownY=t.clientY,i.mouseDragDiffX=0,i.mouseDragDiffY=0,e=i.fromDocumentToCanvasCoordinate(t.clientX,t.clientY),i.mouseDown=!0,i.editPolicy.each((function(n,r){r.onMouseDown(i,e.x,e.y,t.shiftKey,t.ctrlKey,t)}))}catch(t){console.log(t)}break;case 3:return t.preventDefault(),void 0!==t.stopPropagation&&t.stopPropagation(),t=i._getEvent(t),e=i.fromDocumentToCanvasCoordinate(t.clientX,t.clientY),i.onRightMouseDown(e.x,e.y,t.shiftKey,t.ctrlKey,t),!1}}catch(t){console.log(t)}})),this.html.on("dblclick",(function(t){t=i._getEvent(t),i.mouseDownX=t.clientX,i.mouseDownY=t.clientY;var e=i.fromDocumentToCanvasCoordinate(t.clientX,t.clientY);i.onDoubleClick(e.x,e.y,t.shiftKey,t.ctrlKey,t)})),this.html.on("click",(function(t){if(t=i._getEvent(t),i.mouseDownX===t.clientX||i.mouseDownY===t.clientY){var e=i.fromDocumentToCanvasCoordinate(t.clientX,t.clientY);i.onClick(e.x,e.y,t.shiftKey,t.ctrlKey,t)}})),this.html.on("MozMousePixelScroll DOMMouseScroll mousewheel",(function(t){var e=i._getEvent(t),n=i.fromDocumentToCanvasCoordinate(e.originalEvent.clientX,e.originalEvent.clientY),r=0;"mousewheel"===t.type?r=-1*t.originalEvent.wheelDelta:"DOMMouseScroll"===t.type&&(r=40*t.originalEvent.detail),!1===i.onMouseWheel(r,n.x,n.y,e.shiftKey,e.ctrlKey,e)&&t.preventDefault()})),this.keyupCallback=function(t){var e=$(t.target);e.is("input")||e.is("textarea")||i.editPolicy.each((function(e,n){n instanceof a.default.policy.canvas.KeyboardPolicy&&n.onKeyUp(i,t.keyCode,t.shiftKey,t.ctrlKey,t)}))},$(document).bind("keyup",this.keyupCallback),this.keydownCallback=function(t){var e=$(t.target);e.is("input")||e.is("textarea")||i.editPolicy.each((function(e,n){n instanceof a.default.policy.canvas.KeyboardPolicy&&n.onKeyDown(i,t.keyCode,t.shiftKey,t.ctrlKey,t)}))},$(document).bind("keydown",this.keydownCallback)},destroy:function(){this.clear(),$(document).unbind("keydown",this.keydownCallback),$(document).unbind("keyup",this.keyupCallback),this.eventSubscriptions={};try{this.paper.remove()}catch(t){}},clear:function(){this.fireEvent("clear");var t=this;return this.lines.clone().each((function(e,n){t.remove(n)})),this.figures.clone().each((function(e,n){t.remove(n)})),this.zoomFactor=1,this.selection.clear(),this.currentDropTarget=null,this.figures=new a.default.util.ArrayList,this.lines=new a.default.util.ArrayList,this.commonPorts=new a.default.util.ArrayList,this.commandStack.markSaveLocation(),this.linesToRepaintAfterDragDrop=new a.default.util.ArrayList,this.lineIntersections=new a.default.util.ArrayList,this},hideDecoration:function(){},showDecoration:function(){},calculateConnectionIntersection:function(){var t=this;this.lineIntersections=new a.default.util.ArrayList;for(var e=this.getLines().clone(),n=function(){var n=e.removeElementAt(0);e.each((function(e,i){var r=n.intersection(i);r.getSize()>0&&(t.lineIntersections.add({line:n,other:i,intersection:r}),t.lineIntersections.add({line:i,other:n,intersection:r}))}))};e.getSize()>0;)n();return this},installEditPolicy:function(t){var e=this;if(t)return t instanceof a.default.policy.canvas.SelectionPolicy?(this.getSelection().getAll().each((function(t,e){e.unselect()})),this.editPolicy.grep((function(t){var n=!(t instanceof a.default.policy.canvas.SelectionPolicy);return!1===n&&t.onUninstall(e),n}))):t instanceof a.default.policy.canvas.ZoomPolicy?(this.editPolicy.grep((function(t){var n=!(t instanceof a.default.policy.canvas.ZoomPolicy);return!1===n&&t.onUninstall(e),n})),this.zoomPolicy=t):t instanceof a.default.policy.connection.ConnectionCreatePolicy?this.editPolicy.grep((function(t){var n=!(t instanceof a.default.policy.connection.ConnectionCreatePolicy);return!1===n&&t.onUninstall(e),n})):a.default.policy.canvas.DropInterceptorPolicy,t.NAME&&this.uninstallEditPolicy(t.NAME),t.onInstall(this),this.editPolicy.add(t),this},uninstallEditPolicy:function(t){if(t){var e=this.editPolicy.remove(t);if(null!==e)e.onUninstall(this),e instanceof a.default.policy.canvas.ZoomPolicy&&(this.zoomPolicy=null);else{var n=this,i="string"==typeof t?t:t.NAME;this.editPolicy.grep((function(t){return t.NAME!==i||(t.onUninstall(n),t instanceof a.default.policy.canvas.ZoomPolicy&&(n.zoomPolicy=null),!1)}))}return this}},getDropInterceptorPolicies:function(){return this.editPolicy.clone().grep((function(t){return t instanceof a.default.policy.canvas.DropInterceptorPolicy}))},setZoom:function(t,e){this.zoomPolicy&&this.zoomPolicy.setZoom(t,e)},getZoom:function(){return this.zoomFactor},getDimension:function(){return new a.default.geo.Rectangle(0,0,this.initialWidth,this.initialHeight)},setDimension:function(t,e){if(void 0===t){var n=this.getFigures().clone().map((function(t){return t.getAbsoluteX()+t.getWidth()})),i=this.getFigures().clone().map((function(t){return t.getAbsoluteY()+t.getHeight()}));this.initialHeight=Math.max.apply(Math,s(i.asArray())),this.initialWidth=Math.max.apply(Math,s(n.asArray()))}else t instanceof a.default.geo.Rectangle?(this.initialWidth=t.w,this.initialHeight=t.h):"number"==typeof t.width&&"number"==typeof t.height?(this.initialWidth=t.width,this.initialHeight=t.height):"number"==typeof t&&"number"==typeof e&&(this.initialWidth=t,this.initialHeight=e);return this.html.css({width:this.initialWidth+"px",height:this.initialHeight+"px"}),this.paper.setSize(this.initialWidth,this.initialHeight),this.setZoom(this.zoomFactor,!1),this},fromDocumentToCanvasCoordinate:function(t,e){return new a.default.geo.Point((t-this.getAbsoluteX()+this.getScrollLeft())*this.zoomFactor,(e-this.getAbsoluteY()+this.getScrollTop())*this.zoomFactor)},fromCanvasToDocumentCoordinate:function(t,e){return new a.default.geo.Point(t*(1/this.zoomFactor)+this.getAbsoluteX()-this.getScrollLeft(),e*(1/this.zoomFactor)+this.getAbsoluteY()-this.getScrollTop())},getHtmlContainer:function(){return this.html},_getEvent:function(t){if(void 0!==t.originalEvent){if(t.originalEvent.touches&&t.originalEvent.touches.length)return t.originalEvent.touches[0];if(t.originalEvent.changedTouches&&t.originalEvent.changedTouches.length)return t.originalEvent.changedTouches[0]}return t},setScrollArea:function(t){return this.scrollArea=$(t),this},getScrollArea:function(){return this.scrollArea},getScrollLeft:function(){return this.getScrollArea().scrollLeft()},getScrollTop:function(){return this.getScrollArea().scrollTop()},setScrollLeft:function(t){return this.getScrollArea().scrollLeft(t),this},setScrollTop:function(t){return this.getScrollArea().scrollTop(t),this},scrollTo:function(t,e){return this.getScrollArea().scrollTop(t).scrollLeft(e),this},getAbsoluteX:function(){return this.html.offset().left},getAbsoluteY:function(){return this.html.offset().top},getWidth:function(){return this.html.width()},getHeight:function(){return this.html.height()},add:function(t,e,n){if(t.getCanvas()!==this)return t instanceof a.default.shape.basic.Line?(this.lines.add(t),this.linesToRepaintAfterDragDrop=this.lines):(this.figures.add(t),void 0!==n?t.setPosition(e,n):void 0!==e&&t.setPosition(e)),t.setCanvas(this),t.installEditPolicy(this.regionDragDropConstraint),t.getShapeElement(),t.repaint(),this.fireEvent("figure:add",{figure:t,canvas:this}),t.fireEvent("added",{figure:t,canvas:this}),t.fireEvent("move",{figure:t,x:t.getX(),y:t.getY(),dx:0,dy:0}),t instanceof a.default.shape.basic.PolyLine&&(this.calculateConnectionIntersection(),this.linesToRepaintAfterDragDrop.each((function(t,e){e.svgPathString=null,e.repaint()})),this.linesToRepaintAfterDragDrop=new a.default.util.ArrayList),this},remove:function(t){var e=this;return t.getCanvas()!==this||(this.getSelection().contains(t)&&this.editPolicy.each((function(n,i){"function"==typeof i.unselect&&i.unselect(e,t)})),t instanceof a.default.shape.basic.Line?this.lines.remove(t):this.figures.remove(t),t.setCanvas(null),t instanceof a.default.Connection&&t.disconnect(),this.fireEvent("figure:remove",{figure:t}),t.fireEvent("removed",{figure:t,canvas:this})),this},getLines:function(){return this.lines},getFigures:function(){return this.figures},getLine:function(t){for(var e=this.lines.getSize(),n=0;n<e;n++){var i=this.lines.get(n);if(i.getId()===t)return i}return null},getFigure:function(t){var e=null;return this.figures.each((function(n,i){if(i.id===t)return e=i,!1})),e},getIntersection:function(t){var e=new a.default.util.ArrayList;return this.lineIntersections.each((function(n,i){i.line===t&&i.intersection.each((function(t,n){e.add({x:n.x,y:n.y,justTouching:n.justTouching,other:i.other})}))})),e},snapToHelper:function(t,e){var n=this;if(this.getSelection().getSize()>1)return e;var i=e.clone();return this.editPolicy.each((function(r,s){s instanceof a.default.policy.canvas.SnapToEditPolicy&&(e=s.snap(n,t,e,i))})),e},registerPort:function(t){return this.commonPorts.contains(t)||this.commonPorts.add(t),this},unregisterPort:function(t){return this.commonPorts.remove(t),this},getAllPorts:function(){return this.commonPorts},getCommandStack:function(){return this.commandStack},getPrimarySelection:function(){return this.selection.getPrimary()},getSelection:function(){return this.selection},setCurrentSelection:function(t){var e=this;return this.selection.getAll().each((function(t,n){e.editPolicy.each((function(t,i){"function"==typeof i.unselect&&i.unselect(e,n)}))})),this.addSelection(t),this},addSelection:function(t){var e=this,n=function(t,n){e.editPolicy.each((function(t,i){"function"==typeof i.select&&i.select(e,n)}))};return t instanceof a.default.util.ArrayList||t instanceof a.default.Selection?t.each(n):n(0,t),this},getBestFigure:function(t,e,n,i){Array.isArray(n)||(n=n?[n]:[]),Array.isArray(i)||(i=i?[i]:[]);for(var r=null,a=null,s=function(t,e){for(var n=0,i=e.length;n<i;n++){var r=e[n];if("function"==typeof r){if(t instanceof r)return!0}else if(r===t||r.contains(t))return!0}return!1},o=function(t){return s(t,n)},l=0===i.length?function(){return!0}:function(t){return s(t,i)},c=function n(i){i.each((function(i,a){var s=a.figure;return n(s.children),null===r&&s.isVisible()&&s.hitTest(t,e)&&!o(s)&&l(s)&&(r=s),null===r}))},u=0,h=this.resizeHandles.getSize();u<h;u++)if((a=this.resizeHandles.get(u)).isVisible()&&a.hitTest(t,e)&&!o(a)&&l(a))return a;for(var d=0,f=this.commonPorts.getSize();d<f;d++){var p=this.commonPorts.get(d);if(c(p.children),null===r&&p.isVisible()&&p.hitTest(t,e)&&!o(p)&&l(p)&&(r=p),null!==r)return r}for(var g=this.figures.getSize()-1;g>=0;g--){var m=this.figures.get(g);if(c(m.children),null===r&&m.isVisible()&&m.hitTest(t,e)&&!o(m)&&l(m)){r=m;break}}var y=r,v=null,b=this.getBestLine(t,e,n,i);r=null;for(var x=this.lines.getSize(),w=0;w<x;w++){if(c(this.lines.get(w).children),null!==r){v=r;break}}var S=[{i:null!==y?$(y.shape.node).index():-1,f:y},{i:null!==v?$(v.shape.node).index():-1,f:v},{i:null!==b?$(b.shape.node).index():-1,f:b}];return(S=(S=S.filter((function(t){return-1!==t.i}))).sort((function(t,e){return e.i-t.i}))).length>0&&(r=S[0].f),r},getBestLine:function(t,e,n){Array.isArray(n)||(n=n instanceof a.default.Figure?[n]:[]);for(var i=this.lines.getSize(),r=0;r<i;r++){var s=this.lines.get(r);if(!0===s.isVisible()&&!0===s.hitTest(t,e)&&-1===$.inArray(s,n))return s}return null},onDragEnter:function(t){},onDrag:function(t,e,n){},onDragLeave:function(t){},onDrop:function(t,e,n,i,r,a){},onDoubleClick:function(t,e,n,i,r){var a=this.getBestFigure(t,e);null===a&&(a=this.getBestLine(t,e)),this.fireEvent("dblclick",{figure:a,x:t,y:e,shiftKey:n,ctrlKey:i,event:r}),this.editPolicy.each((function(s,o){o.onDoubleClick(a,t,e,n,i,r)}))},onClick:function(t,e,n,i,r){var a=this.getBestFigure(t,e);this.fireEvent("click",{figure:a,x:t,y:e,relX:null!==a?t-a.getAbsoluteX():0,relY:null!==a?e-a.getAbsoluteY():0,shiftKey:n,ctrlKey:i}),this.editPolicy.each((function(s,o){o.onClick(a,t,e,n,i,r)}))},onRightMouseDown:function(t,e,n,i,r){var a=this.getBestFigure(t,e);this.fireEvent("contextmenu",{figure:a,x:t,y:e,shiftKey:n,ctrlKey:i,event:r}),null!==a&&(a.fireEvent("contextmenu",{figure:a,x:t,y:e,shiftKey:n,ctrlKey:i,event:r}),a.onContextMenu(t,e),a.editPolicy.each((function(s,o){o.onRightMouseDown(a,t,e,n,i,r)}))),this.editPolicy.each((function(s,o){o.onRightMouseDown(a,t,e,n,i,r)}))},onMouseWheel:function(t,e,n,i,r,a){var s=!0;return this.fireEvent("wheel",{wheelDelta:t,x:e,y:n,shiftKey:i,ctrlKey:r,event:a}),this.editPolicy.each((function(o,l){s=l.onMouseWheel(t,e,n,i,r,a)&&s})),s},fireEvent:function(t,e){if(void 0!==this.eventSubscriptions[t])for(var n=this.eventSubscriptions[t],i=0;i<n.length;i++)try{n[i](this,e)}catch(t){console.log(t),console.log(n[i])}},on:function(t,e){for(var n=t.split(" "),i=0;i<n.length;i++)void 0===this.eventSubscriptions[n[i]]&&(this.eventSubscriptions[n[i]]=[]),this.eventSubscriptions[n[i]].push(e);return this},off:function(t){if(void 0===t)this.eventSubscriptions={};else if("string"==typeof t)this.eventSubscriptions[t]=[];else for(var e in this.eventSubscriptions)this.eventSubscriptions[e]=this.eventSubscriptions[e].filter((function(e){return e!==t}));return this}})},"./src/Configuration.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.Configuration={version:"@VERSION@",i18n:{command:{move:"Move Shape",assignShape:"Add Shapes to Composite",groupShapes:"Group Shapes",ungroupShapes:"Ungroup Shapes",deleteShape:"Delete Shape",moveShape:"Move Shape",moveLine:"Move Line",addShape:"Add Shape",moveVertex:"Move Vertex",moveVertices:"Move Vertices",deleteVertex:"Delete Vertex",resizeShape:"Resize Shape",rotateShape:"Rotate Shape",collection:"Execute Commands",addVertex:"Add Vertex",changeAttributes:"Change Attributes",connectPorts:"Connect Ports"},menu:{deleteSegment:"Delete Segment",addSegment:"Add Segment"},dialog:{filenamePrompt:"Enter Filename:"}},factory:{createResizeHandle:function(t,e,n,i){return console.log("deprecated call factory.createResizeHandle"),new a.default.ResizeHandle({owner:t,type:e,width:n,height:i})},createConnection:function(t,e,n,i){return console.log("deprecated call factory.createConnection"),new a.default.Connection},createInputPort:function(t,e){return new a.default.InputPort(e)},createOutputPort:function(t,e){return new a.default.OutputPort(e)},createHybridPort:function(t,e){return new a.default.HybridPort(e)}},custom:{arrowMenuHoverTime:800,portAttr:{diameter:6},AntSelection:{boxAttr:{opacity:.8,bgColor:null,dasharray:"--",stroke:1.5,color:"#1DC2FE"},lineAttr:{opacity:.5,bgColor:null,dasharray:"--",color:"#2C70FF"}},LineSelection:{sourceNodeTypes:["ExclusiveGateway"]},RectangleSelection:{margin:4,boxAttr:{bgColor:null,dasharray:"--",color:"#1DC2FE",stroke:1.5}},ResizeHandle:{rh_1:{},rh_2:{},rh_3:{},rh_4:{},rh_5:{},rh_6:{},rh_7:{},rh_8:{}}}}},"./src/Connection.js":(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{"use strict";var _packages=__webpack_require__("./src/packages.js"),_packages2=_interopRequireDefault(_packages),_extend=__webpack_require__("./src/util/extend.js"),_extend2=_interopRequireDefault(_extend);function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}_packages2.default.Connection=_packages2.default.shape.basic.PolyLine.extend({NAME:"draw2d.Connection",init:function(t,e,n){this.sourcePort=null,this.targetPort=null,this.oldPoint=null,this.sourceDecorator=null,this.targetDecorator=null,this.sourceDecoratorNode=null,this.targetDecoratorNode=null,this.isMoving=!1;var i=this;this.moveListener=function(t){t===i.sourcePort?i.setStartPoint(i.sourcePort.getAbsoluteX(),i.sourcePort.getAbsoluteY()):i.setEndPoint(i.targetPort.getAbsoluteX(),i.targetPort.getAbsoluteY())},this._super((0,_extend2.default)({color:"#129CE4",stroke:2,radius:3},t),(0,_extend2.default)({sourceDecorator:this.setSourceDecorator,targetDecorator:this.setTargetDecorator,source:this.setSource,target:this.setTarget},e),(0,_extend2.default)({sourceDecorator:this.getSourceDecorator,targetDecorator:this.getTargetDecorator,source:this.getSource,target:this.getTarget},n))},disconnect:function(){null!==this.sourcePort&&(this.sourcePort.off(this.moveListener),this.sourcePort.connections.remove(this),this.sourcePort.fireEvent("disconnect",{port:this.sourcePort,connection:this}),null!==this.canvas&&this.canvas.fireEvent("disconnect",{port:this.sourcePort,connection:this}),this.sourcePort.onDisconnect(this),this.fireSourcePortRouteEvent()),null!==this.targetPort&&(this.targetPort.off(this.moveListener),this.targetPort.connections.remove(this),this.targetPort.fireEvent("disconnect",{port:this.targetPort,connection:this}),null!==this.canvas&&this.canvas.fireEvent("disconnect",{port:this.targetPort,connection:this}),this.targetPort.onDisconnect(this),this.fireTargetPortRouteEvent())},reconnect:function(){null!==this.sourcePort&&(this.sourcePort.on("move",this.moveListener),this.sourcePort.connections.add(this),this.sourcePort.fireEvent("connect",{port:this.sourcePort,connection:this}),null!==this.canvas&&this.canvas.fireEvent("connect",{port:this.sourcePort,connection:this}),this.sourcePort.onConnect(this),this.fireSourcePortRouteEvent()),null!==this.targetPort&&(this.targetPort.on("move",this.moveListener),this.targetPort.connections.add(this),this.targetPort.fireEvent("connect",{port:this.targetPort,connection:this}),null!==this.canvas&&this.canvas.fireEvent("connect",{port:this.targetPort,connection:this}),this.targetPort.onConnect(this),this.fireTargetPortRouteEvent()),this.routingRequired=!0,this.repaint()},isResizeable:function(){return this.isDraggable()},add:function(t,e,n){if(!(e instanceof _packages2.default.layout.locator.ConnectionLocator))throw"Locator must implement the class draw2d.layout.locator.ConnectionLocator";this._super(t,e,n)},setSourceDecorator:function(t){return this.sourceDecorator&&this.sourceDecorator.setParent(null),this.sourceDecorator=t,this.routingRequired=!0,this.sourceDecorator.setParent(this),null!==this.sourceDecoratorNode&&(this.sourceDecoratorNode.remove(),this.sourceDecoratorNode=null),this.repaint(),this},getSourceDecorator:function(){return this.sourceDecorator},setTargetDecorator:function(t){return this.targetDecorator&&this.targetDecorator.setParent(null),this.targetDecorator=t,this.routingRequired=!0,this.targetDecorator.setParent(this),null!==this.targetDecoratorNode&&(this.targetDecoratorNode.remove(),this.targetDecoratorNode=null),this.repaint(),this},getTargetDecorator:function(){return this.targetDecorator},calculatePath:function(t){if(null===this.sourcePort||null===this.targetPort)return this;(this._super(t),null!==this.shape)&&(this.sourcePort.getZOrder()<this.targetPort.getZOrder()?this.toBack(this.sourcePort):this.toBack(this.targetPort));return this},repaint:function(t){var e=this;if(!0!==this.repaintBlocked&&null!==this.shape&&null!==this.sourcePort&&null!==this.targetPort){if(this._super(t),null!==this.targetDecorator&&null===this.targetDecoratorNode&&(this.targetDecoratorNode=this.targetDecorator.paint(this.getCanvas().paper)),null!==this.sourceDecorator&&null===this.sourceDecoratorNode&&(this.sourceDecoratorNode=this.sourceDecorator.paint(this.getCanvas().paper)),null!==this.sourceDecoratorNode){var n=this.getVertices().first();this.sourceDecoratorNode.transform("r"+this.getStartAngle()+","+n.x+","+n.y+" t"+n.x+","+n.y),this.sourceDecoratorNode.attr({opacity:this.alpha}),null===this.sourceDecorator.getColor()?this.sourceDecoratorNode.attr({stroke:"#"+this.lineColor.hex()}):this.sourceDecoratorNode.attr({stroke:"#"+this.sourceDecorator.getColor().hex()}),this.sourceDecoratorNode.forEach((function(t){t.node.setAttribute("class",null!==e.cssClass?e.cssClass:"")}))}if(null!==this.targetDecoratorNode){var i=this.getVertices().last();this.targetDecoratorNode.transform("r"+this.getEndAngle()+","+i.x+","+i.y+" t"+i.x+","+i.y),this.targetDecoratorNode.attr({opacity:this.alpha}),null===this.targetDecorator.getColor()?this.targetDecoratorNode.attr({stroke:"#"+this.lineColor.hex()}):this.targetDecoratorNode.attr({stroke:"#"+this.targetDecorator.getColor().hex()}),this.targetDecoratorNode.forEach((function(t){t.node.setAttribute("class",null!==e.cssClass?e.cssClass:"")}))}}},getAbsoluteX:function(){return 0},getAbsoluteY:function(){return 0},postProcess:function(t){this.router.postProcess(this,this.getCanvas(),t)},onDrag:function(t,e,n,i){var r=this;null!==this.command&&(this.router.onDrag(this,t,e,n,i),this.command.updateVertices(this.getVertices().clone()),this.editPolicy.each((function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.onDrag(r.canvas,r)})),this.svgPathString=null,this.repaint(),this.editPolicy.each((function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(r.canvas,r)})),this.fireEvent("move",{figure:this,dx:t,dy:t}))},toFront:function(t){return this._super(t),null!==this.shape&&(null!==this.targetDecoratorNode&&this.targetDecoratorNode.insertAfter(this.shape),null!==this.sourceDecoratorNode&&this.sourceDecoratorNode.insertAfter(this.shape)),this},toBack:function(t){return this._super(t),null!==this.shape&&(null!==this.targetDecoratorNode&&this.targetDecoratorNode.insertAfter(this.shape),null!==this.sourceDecoratorNode&&this.sourceDecoratorNode.insertAfter(this.shape)),this},getStartPoint:function(t){return this.getStartPosition(t)},getStartPosition:function(t){return!1===this.isMoving?t?this.sourcePort.getConnectionAnchorLocation(t,this):this.sourcePort.getConnectionAnchorLocation(this.targetPort.getConnectionAnchorReferencePoint(this),this):this._super()},getEndPoint:function(t){return this.getEndPosition(t)},getEndPosition:function(t){return!1===this.isMoving?t?this.targetPort.getConnectionAnchorLocation(t,this):this.targetPort.getConnectionAnchorLocation(this.sourcePort.getConnectionAnchorReferencePoint(this),this):this._super()},setSource:function(t){null!==this.sourcePort&&(this.sourcePort.off(this.moveListener),this.sourcePort.connections.remove(this),this.sourcePort.fireEvent("disconnect",{port:this.sourcePort,connection:this}),null!==this.canvas&&this.canvas.fireEvent("disconnect",{port:this.sourcePort,connection:this}),this.sourcePort.onDisconnect(this)),this.sourcePort=t,null!==this.sourcePort&&(this.routingRequired=!0,this.fireSourcePortRouteEvent(),this.sourcePort.connections.add(this),this.sourcePort.on("move",this.moveListener),null!==this.canvas&&this.canvas.fireEvent("connect",{port:this.sourcePort,connection:this}),this.sourcePort.fireEvent("connect",{port:this.sourcePort,connection:this}),this.sourcePort.onConnect(this),this.setStartPoint(t.getAbsoluteX(),t.getAbsoluteY()),this.fireEvent("connect",{port:this.sourcePort,connection:this}))},getSource:function(){return this.sourcePort},setTarget:function(t){null!==this.targetPort&&(this.targetPort.off(this.moveListener),this.targetPort.connections.remove(this),this.targetPort.fireEvent("disconnect",{port:this.targetPort,connection:this}),null!==this.canvas&&this.canvas.fireEvent("disconnect",{port:this.targetPort,connection:this}),this.targetPort.onDisconnect(this)),this.targetPort=t,null!==this.targetPort&&(this.routingRequired=!0,this.fireTargetPortRouteEvent(),this.targetPort.connections.add(this),this.targetPort.on("move",this.moveListener),null!==this.canvas&&this.canvas.fireEvent("connect",{port:this.targetPort,connection:this}),this.targetPort.fireEvent("connect",{port:this.targetPort,connection:this}),this.targetPort.onConnect(this),this.setEndPoint(t.getAbsoluteX(),t.getAbsoluteY()),this.fireEvent("connect",{port:this.targetPort,connection:this}))},getTarget:function(){return this.targetPort},sharingPorts:function(t){return this.sourcePort==t.sourcePort||this.sourcePort==t.targetPort||this.targetPort==t.sourcePort||this.targetPort==t.targetPort},setCanvas:function(t){if(this.canvas!==t){var e=null==this.canvas?t:this.canvas;this._super(t),null!==this.sourceDecoratorNode&&(this.sourceDecoratorNode.remove(),this.sourceDecoratorNode=null),null!==this.targetDecoratorNode&&(this.targetDecoratorNode.remove(),this.targetDecoratorNode=null),null===this.canvas?(null!==this.sourcePort&&(this.sourcePort.off(this.moveListener),e.fireEvent("disconnect",{port:this.sourcePort,connection:this}),this.sourcePort.onDisconnect(this)),null!==this.targetPort&&(this.targetPort.off(this.moveListener),e.fireEvent("disconnect",{port:this.targetPort,connection:this}),this.targetPort.onDisconnect(this))):(null!==this.sourcePort&&(this.sourcePort.on("move",this.moveListener),this.canvas.fireEvent("connect",{port:this.sourcePort,connection:this}),this.sourcePort.onConnect(this)),null!==this.targetPort&&(this.targetPort.on("move",this.moveListener),this.canvas.fireEvent("connect",{port:this.targetPort,connection:this}),this.targetPort.onConnect(this)))}},getStartAngle:function(){if(0===this.lineSegments.getSize())return 0;var t=this.lineSegments.get(0).start,e=this.lineSegments.get(0).end;this.router instanceof _packages2.default.layout.connection.SplineConnectionRouter&&(e=this.lineSegments.get(5).end);var n=Math.sqrt((t.x-e.x)*(t.x-e.x)+(t.y-e.y)*(t.y-e.y)),i=-180/Math.PI*Math.asin((t.y-e.y)/n);return i<0?i=e.x<t.x?Math.abs(i)+180:360-Math.abs(i):e.x<t.x&&(i=180-i),i},getEndAngle:function(){if(0===this.lineSegments.getSize())return 90;var t=this.lineSegments.get(this.lineSegments.getSize()-1).end,e=this.lineSegments.get(this.lineSegments.getSize()-1).start;this.router instanceof _packages2.default.layout.connection.SplineConnectionRouter&&(e=this.lineSegments.get(this.lineSegments.getSize()-5).end);var n=Math.sqrt((t.x-e.x)*(t.x-e.x)+(t.y-e.y)*(t.y-e.y)),i=-180/Math.PI*Math.asin((t.y-e.y)/n);return i<0?i=e.x<t.x?Math.abs(i)+180:360-Math.abs(i):e.x<t.x&&(i=180-i),i},fireSourcePortRouteEvent:function(){this.sourcePort.getConnections().each((function(t,e){e.routingRequired=!0,e.repaint()}))},fireTargetPortRouteEvent:function(){this.targetPort.getConnections().each((function(t,e){e.routingRequired=!0,e.repaint()}))},createCommand:function(t){return t.getPolicy()===_packages2.default.command.CommandType.MOVE&&this.isDraggable()?new _packages2.default.command.CommandMoveVertices(this):t.getPolicy()===_packages2.default.command.CommandType.MOVE_BASEPOINT?new _packages2.default.command.CommandReconnect(this):this._super(t)},getPersistentAttributes:function(){for(var t=this._super(),e=this.getSource().getParent();null!==e.getParent();)e=e.getParent();for(t.source={node:e.getId(),port:this.getSource().getName()},e=this.getTarget().getParent();null!==e.getParent();)e=e.getParent();return t.target={node:e.getId(),port:this.getTarget().getName()},null!==this.sourceDecorator&&(t.source.decoration=this.sourceDecorator.NAME),null!==this.targetDecorator&&(t.target.decoration=this.targetDecorator.NAME),t},setPersistentAttributes:function setPersistentAttributes(memento){return this._super(memento),void 0!==memento.target.decoration&&null!=memento.target.decoration&&this.setTargetDecorator(eval("new "+memento.target.decoration)),void 0!==memento.source.decoration&&null!=memento.source.decoration&&this.setSourceDecorator(eval("new "+memento.source.decoration)),this}})},"./src/ContextMenu.js":(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContextUtil=void 0;var i,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a=n("./src/packages.js"),s=(i=a)&&i.__esModule?i:{default:i};function o(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.onlyOne,i=void 0===n||n,a=e.options,s=this,c=i?0:o.count++;if(this.menu=t,this.contextTarget=null,!(t instanceof Array))throw new Error("Parameter 1 must be of type Array");if(void 0!==a){if("object"!==(void 0===a?"undefined":r(a)))throw new Error("Parameter 2 must be of type object")}else a={};function u(t){var e=document.createElement("ul");return t.forEach((function(t){var n=document.createElement("li");if(n.menu=s,void 0===t.type){var i,c=l.getProperty(t,"icon","");""!=c&&((i=document.createElement("span")).className="draw2d_menu_icon_span",i.innerHTML=c);var h=document.createElement("span");h.className="draw2d_menu_text",""!=l.getProperty(t,"label","")?h.innerHTML=l.getProperty(t,"label",""):h.innerHTML=l.getProperty(a,"default_label","item");var d=document.createElement("span");if(d.className="draw2d_menu_sub_span",void 0!==t.children)if(""!=l.getProperty(a,"sub_icon",""))d.innerHTML=l.getProperty(a,"sub_icon","");else{d.innerHTML='<svg t="1715766199125" class="menu_sub_icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="246583" width="12" height="12"><path d="M711.552 458.56c38.08 25.6 38.016 81.536 0 107.008-151.488 101.504-240.192 198.976-280.576 346.944a64.448 64.448 0 1 1-124.352-33.92c41.6-152.192 122.56-259.648 248-358.4L565.12 512l-10.624-8.128C435.648 410.112 356.8 308.864 313.536 169.088l-6.912-23.68a64.448 64.448 0 1 1 124.352-33.92c40.384 147.968 128.96 245.248 280.576 347.072z" p-id="246584" fill="#8894A8"></path></svg>'}if(i&&n.appendChild(i),n.appendChild(h),d&&n.appendChild(d),l.getProperty(t,"enabled",!0)){if("object"===r(t.events))for(var f=Object.keys(t.events),p=0;p<f.length;p++)n.addEventListener(f[p],t.events[f[p]]);void 0!==t.children&&n.appendChild(u(t.children))}else n.setAttribute("disabled","")}else t.type==o.DIVIDER&&(n.className="draw2d_menu_divider");e.appendChild(n)})),e}function h(){s.hide()}window.addEventListener("resize",(function(){l.getProperty(a,"close_on_resize",!0)&&s.hide()})),this.setOptions=function(t){if("object"!==(void 0===t?"undefined":r(t)))throw new Error("Parameter 1 must be of type object");a=t},this.changeOption=function(t,e){if("string"!=typeof t)throw new Error("Parameter 1 must be of type string");if(void 0===e)throw new Error("Parameter 2 must be set");a[t]=e},this.getOptions=function(){return a},this.reload=function(){var e=this;if(null==document.getElementById("draw2d_menu_"+c)){var n=document.createElement("div");n.className="draw2d_menu_container",n.id="draw2d_menu_"+c,document.body.appendChild(n),n.addEventListener("mouseleave",(function(){e.hide()}))}var i=document.getElementById("draw2d_menu_"+c);i.innerHTML="",i.appendChild(u(t))},this.display=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{zIndex:10};if(void 0!==e)s.contextTarget=e;else{var i=(t||{}).target;s.contextTarget=i}var r=document.getElementById("draw2d_menu_"+c),o={x:t.clientX+8,y:t.clientY},u=o.x,d=o.y,f=r.offsetWidth+4,p=r.offsetHeight+4,g=window.innerWidth,m=window.innerHeight,y=parseInt(l.getProperty(a,"mouse_offset",2));r.style.left=g-u<f?g-f+"px":u+y+"px",r.style.top=m-d<p?m-p+"px":d+y+"px",n&&function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t.style[n]=e[n])}(r,n);var v=l.getSizes(r);g-u<v.width?r.classList.add("draw2d_menu_border_right"):r.classList.remove("draw2d_menu_border_right"),m-d<v.height?r.classList.add("draw2d_menu_border_bottom"):r.classList.remove("draw2d_menu_border_bottom"),r.classList.add("display"),l.getProperty(a,"close_on_click",!0)&&window.addEventListener("click",h),t&&t.preventDefault&&t.preventDefault()},this.hide=function(){document.getElementById("draw2d_menu_"+c).classList.remove("display"),window.removeEventListener("click",h)},this.reload()}n("./src/css/contextMenuStyle.css"),o.count=0,o.DIVIDER="draw2d_menu_divider";var l={getProperty:function(t,e,n){return void 0!==t[e]?t[e]:n},getSizes:function(t){for(var e=t.getElementsByTagName("li"),n=0,i=0,r=0;r<e.length;r++){(o=e[r]).offsetWidth>n&&(n=o.offsetWidth),o.offsetHeight>i&&(i=o.offsetHeight)}var a=n,s=i;for(r=0;r<e.length;r++){var o,c=(o=e[r]).getElementsByTagName("ul");if(void 0!==c[0]){var u=l.getSizes(c[0]);n+u.width>a&&(a=n+u.width),i+u.height>s&&(s=i+u.height)}}return{width:a,height:s}}};s.default.contextmenu=o,e.ContextUtil=l,e.default=o},"./src/Figure.js":(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{"use strict";var _packages=__webpack_require__("./src/packages.js"),_packages2=_interopRequireDefault(_packages),_JSONUtil=__webpack_require__("./src/util/JSONUtil.js"),_JSONUtil2=_interopRequireDefault(_JSONUtil),_UUID=__webpack_require__("./src/util/UUID.js"),_UUID2=_interopRequireDefault(_UUID),_extend=__webpack_require__("./src/util/extend.js"),_extend2=_interopRequireDefault(_extend);function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _defineProperty(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function _toConsumableArray(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}_packages2.default.Figure=Class.extend({NAME:"draw2d.Figure",MIN_TIMER_INTERVAL:50,init:function(t,e,n){var i=this;this.setterWhitelist=(0,_extend2.default)({id:this.setId,x:this.setX,y:this.setY,width:this.setWidth,height:this.setHeight,boundingBox:this.setBoundingBox,minWidth:this.setMinWidth,minHeight:this.setMinHeight,cssClass:this.setCssClass,userData:this.setUserData,draggable:this.setDraggable,resizeable:this.setResizeable,selectable:this.setSelectable,angle:this.setRotationAngle,alpha:this.setAlpha,opacity:this.setAlpha,glow:this.setGlow,visible:this.setVisible,keepAspectRatio:this.setKeepAspectRatio},e),this.getterWhitelist=(0,_extend2.default)({id:this.getId,visible:this.isVisible,angle:this.getRotationAngle,x:this.getX,y:this.getY,userData:this.getUserData,width:this.getWidth,height:this.getHeight,draggable:this.isDraggable,resizeable:this.isResizeable,selectable:this.isSelectable,alpha:this.getAlpha,opacity:this.getAlpha},n),this.id=_UUID2.default.create(),this.isResizeHandle=!1,this.command=null,this.canvas=null,this.shape=null,this.children=new _packages2.default.util.ArrayList,this.selectable=!0,this.deleteable=!0,this.resizeable=!0,this.draggable=!0,this.visible=!0,this.keepAspectRatio=!1,this.canSnapToHelper=!0,this.snapToGridAnchor=new _packages2.default.geo.Point(0,0),this.editPolicy=new _packages2.default.util.ArrayList,this.timerId=-1,this.timerInterval=0,this.parent=null,this.composite=null,this.userData=null,this.x=0,this.y=0,this.minHeight=5,this.minWidth=5,this.rotationAngle=0,this.cssClass=this.NAME.replace(new RegExp("[.]","g"),"_"),this.width=this.getMinWidth(),this.height=this.getMinHeight(),this.alpha=1,this.isInDragDrop=!1,this.ox=0,this.oy=0,this.repaintBlocked=!1,this.lastAppliedAttributes={},this.selectionHandles=new _packages2.default.util.ArrayList,this.panningDelegate=null,this.eventSubscriptions={},this.relocateChildrenEventCallback=function(){i.children.each((function(t,e){e.locator.relocate(t,e.figure)}))},this.defaultSelectionAdapter=this.selectionAdapter=function(){return i},this.installEditPolicy(new _packages2.default.policy.figure.RectangleSelectionFeedbackPolicy),this.attr(t)},attr:function(t,e){var n=this,i=this.repaintBlocked;try{if($.isPlainObject(t))for(var r in t)if("userData."===r.substring(0,9))null===this.userData&&(this.userData={}),_JSONUtil2.default.set({userData:this.userData},r,t[r]),this.fireEvent("change:"+r,{value:t[r]});else{var a=this.setterWhitelist[r],s=t[r];a&&void 0!==s?a.call(this,s):"function"==typeof t[r]&&(this[r]=s.bind(this))}else if("string"==typeof t){if(void 0===e){var o=this.getterWhitelist[t];if("function"==typeof o)return o.call(this);if("userData."===t.substring(0,9)){var l={userData:this.userData};return _JSONUtil2.default.get(l,t)}return}if("function"==typeof e&&(e=e()),"userData."===t.substring(0,9))null===this.userData&&(this.userData={}),_JSONUtil2.default.set({userData:this.userData},t,e),this.fireEvent("change:"+t,{value:e});else{var c=this.setterWhitelist[t];c&&c.call(this,e)}}else{if(Array.isArray(t))return Object.assign.apply(Object,[{}].concat(_toConsumableArray(Object.keys(t).map((function(t){return _defineProperty({},t,n.attr(t))})))));if(void 0===t){var u={};for(var h in this.getterWhitelist)u[h]=this.getterWhitelist[h].call(this);return u}}}finally{this.repaintBlocked=i}return this},pick:function(t,e){var n="string"!=typeof arguments[1]?arguments[1]:Array.prototype.slice.call(arguments,1),i={},r=void 0;for(r in n)void 0!==t[r]&&(i[r]=t[r]);return i},select:function(t){void 0===t&&(t=!0);var e=this;return this.editPolicy.each((function(n,i){i instanceof _packages2.default.policy.figure.SelectionPolicy&&i.onSelect(e.canvas,e,t)})),null!==this.canvas&&this.canvas.getSelection().add(this),this.fireEvent("select",{figure:this}),this},unselect:function(){var t=this;return this.editPolicy.each((function(e,n){n instanceof _packages2.default.policy.figure.SelectionPolicy&&n.onUnselect(t.canvas,t)})),null!==this.canvas&&this.canvas.getSelection().remove(this),this.fireEvent("unselect",{figure:this}),this},setSelectionAdapter:function(t){return this.selectionAdapter=null==t?this.defaultSelectionAdapter:t,this},getSelectionAdapter:function(){return this.selectionAdapter},isSelected:function(){return null!==this.canvas&&this.canvas.getSelection().contains(this)},setUserData:function(t){return this.userData=t,this.fireEvent("change:userData",{value:t}),this},getUserData:function(){return this.userData},getId:function(){return this.id},setId:function(t){return this.id=t,this},getCssClass:function(){return this.cssClass},setCssClass:function(t){return this.cssClass=null===t?null:t.trim(),null===this.shape||(null===this.cssClass?this.shape.node.removeAttribute("class"):this.shape.node.setAttribute("class",this.cssClass),this.fireEvent("change:cssClass",{value:this.cssClass})),this},hasCssClass:function(t){return null!==this.cssClass&&new RegExp(" "+t.trim()+" ").test(" "+this.cssClass+" ")},addCssClass:function(t){return t=t.trim(),this.hasCssClass(t)||(null===this.cssClass?this.setCssClass(t):this.setCssClass(this.cssClass+" "+t),this.fireEvent("change:cssClass",{value:this.cssClass})),this},removeCssClass:function(t){t=t.trim();var e=" "+this.cssClass.replace(/[\t\r\n]/g," ")+" ";if(this.hasCssClass(t)){for(;e.indexOf(" "+t+" ")>=0;)e=e.replace(" "+t+" "," ");this.setCssClass(e.replace(/^\s+|\s+$/g,"")),this.fireEvent("change:cssClass",{value:this.cssClass})}return this},toggleCssClass:function(t){t=t.trim();var e=" "+this.cssClass.replace(/[\t\r\n]/g," ")+" ";if(this.hasCssClass(t)){for(;e.indexOf(" "+t+" ")>=0;)e=e.replace(" "+t+" "," ");this.setCssClass(e.replace(/^\s+|\s+$/g,""))}else this.setCssClass(this.cssClass+" "+t);return this.fireEvent("change:cssClass",{value:this.cssClass}),this},setCanvas:function(t){return null===t&&null!==this.shape&&(this.isSelected()&&this.unselect(),this.shape.remove(),this.shape=null),this.canvas=t,null!==this.canvas&&this.getShapeElement(),this.lastAppliedAttributes={},null===t?this.stopTimer():this.timerInterval>=this.MIN_TIMER_INTERVAL&&this.startTimer(this.timerInterval),this.children.each((function(e,n){n.figure.setCanvas(t)})),this},getCanvas:function(){return this.canvas},startTimer:function(t){var e=this;return this.stopTimer(),this.timerInterval=Math.max(this.MIN_TIMER_INTERVAL,t),null!==this.canvas&&(this.timerId=window.setInterval((function(){e.onTimer(),e.fireEvent("timer")}),this.timerInterval)),this},stopTimer:function(){return this.timerId>=0&&(window.clearInterval(this.timerId),this.timerId=-1),this},onTimer:function(){},toFront:function(t){var e=this;this.composite instanceof _packages2.default.shape.composite.StrongComposite&&void 0!==t&&(t.getZOrder()<this.composite.getZOrder()&&(t=this.composite));if(void 0===t){if(this.getShapeElement().toFront(),null!==this.canvas){var n=this.canvas.getFigures(),i=this.canvas.getLines();null!==n.remove(this)?n.add(this):null!==i.remove(this)&&i.add(this)}}else if(this.getShapeElement().insertAfter(t.getTopLevelShapeElement()),null!==this.canvas){var r=this.canvas.getFigures(),a=this.canvas.getLines();if(null!==r.remove(this)){var s=r.indexOf(t);r.insertElementAt(this,s+1)}else null!==a.remove(this)&&a.add(this)}return this.children.each((function(t,n){n.figure.toFront(e)})),this.selectionHandles.each((function(t,e){e.toFront()})),this},toBack:function(t){if(!(this.composite instanceof _packages2.default.shape.composite.StrongComposite)){if(null!==this.canvas){var e=this.canvas.getFigures(),n=this.canvas.getLines();null!==e.remove(this)?e.insertElementAt(this,0):null!==n.remove(this)&&n.insertElementAt(this,0),void 0!==t?this.getShapeElement().insertBefore(t.getShapeElement()):this.getShapeElement().toBack()}var i=this;return this.children.each((function(t,e){e.figure.toFront(i)}),!0),this}this.toFront(this.composite)},installEditPolicy:function(t){var e=this;return t instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy&&this.editPolicy.grep((function(t){var n=!(t instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy);return n||t.onUninstall(e),n})),this.editPolicy.grep((function(n){var i=n.__proto__!==t.__proto__;return i||n.onUninstall(e),i})),t.onInstall(this),this.editPolicy.add(t),this},uninstallEditPolicy:function(t){if(t){var e=this.editPolicy.remove(t);if(null===e){var n=this,i="string"==typeof t?t:t.NAME;this.editPolicy.grep((function(t){return t.NAME!==i||(t.onUninstall(n),!1)}))}else e.onUninstall(this)}},add:function(t,e,n){if(null==e)throw"Second parameter 'locator' is required for method 'Figure#add'";return t.setParent(this),e.bind(this,t),t.on("resize",this.relocateChildrenEventCallback),isNaN(parseInt(n))?this.children.add({figure:t,locator:e}):this.children.insertElementAt({figure:t,locator:e},n),null!==this.canvas&&t.setCanvas(this.canvas),this.repaint(),this},remove:function(t){if(null==t)return debug.warn("The parameter child is required for Figure.remove"),null;var e=null;return this.children.grep((function(n){var i=n.figure!==t;return i||(e=n),i})),null!==e?(t.setParent(null),t.setCanvas(null),e.locator.unbind(this,t),t.off(this.relocateChildrenEventCallback),this.repaint(),e):null},getChildren:function(){return this.children.clone().map((function(t){return t.figure}))},resetChildren:function(){return this.children.each((function(t,e){e.figure.setCanvas(null)})),this.children=new _packages2.default.util.ArrayList,this.repaint(),this},getShapeElement:function(){return null!==this.shape||(this.shape=this.createShapeElement(),this.isVisible()||this.shape.hide(),null!==this.cssClass&&this.shape.node.setAttribute("class",this.cssClass)),this.shape},getTopLevelShapeElement:function(){return this.getShapeElement()},createShapeElement:function(){throw"Inherited class ["+this.NAME+"] must override the abstract method createShapeElement"},repaint:function(t){if(!0===this.repaintBlocked||null===this.shape)return this;var e=this;return t=t||{},!0!==this.visible?(!0===this.shape.isVisible()&&(isNaN(parseFloat(t.visibleDuration))?this.shape.hide():$(this.shape.node).fadeOut(t.visibleDuration,(function(){e.shape.hide()}))),this):(!1===this.shape.isVisible()&&(isNaN(parseFloat(t.visibleDuration))?this.shape.show():$(this.shape.node).fadeIn(t.visibleDuration,(function(){e.shape.show()}))),t.opacity=this.alpha,t=_JSONUtil2.default.flatDiff(t,this.lastAppliedAttributes),this.lastAppliedAttributes=t,Object.getOwnPropertyNames(t).length>0&&this.shape.attr(t),this.applyTransformation(),("x"in t||"width"in t||"cx"in t||"path"in t)&&this.children.each((function(t,e){e.locator.relocate(t,e.figure)})),this)},applyTransformation:function(){return this},setGlow:function(t){return this},getHandleBBox:function(){return null},onDragStart:function(t,e,n,i,r){this.isInDragDrop=!1;var a=this.getHandleBBox();if(null!==a&&!1===a.translate(this.getAbsolutePosition().scale(-1)).hitTest(t,e))return this.panningDelegate=this.getBestChild(this.getX()+t,this.getY()+e),null!==this.panningDelegate&&this.panningDelegate.onDragStart(t-this.panningDelegate.x,e-this.panningDelegate.y,n,i,r),!1;if(this.command=this.createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.MOVE)),null!==this.command){this.ox=this.getX(),this.oy=this.getY(),this.isInDragDrop=!0;var s=this,o=!0;return this.editPolicy.each((function(a,l){l instanceof _packages2.default.policy.figure.DragDropEditPolicy&&(o=o&&l.onDragStart(s.canvas,s,t,e,n,i,r))})),o&&this.fireEvent("dragstart",{x:t,y:e,shiftKey:n,ctrlKey:i,event:r}),o}return!1},onDrag:function(t,e,n,i,r,a,s){var o=this;this.editPolicy.each((function(n,i){if(i instanceof _packages2.default.policy.figure.DragDropEditPolicy){var r=i.adjustPosition(o,o.ox+t,o.oy+e);r&&(t=r.x-o.ox,e=r.y-o.oy)}}));var l=new _packages2.default.geo.Point(this.ox+t,this.oy+e);this.getCanSnapToHelper()&&(l=this.getCanvas().snapToHelper(this,l)),this.setPosition(l),this.editPolicy.each((function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.onDrag(o.canvas,o)})),this.fireEvent("drag",{dx:t,dy:e,dx2:n,dy2:i,shiftKey:r,ctrlKey:a,event:s})},onPanning:function(t,e,n,i,r,a,s){},onPanningEnd:function(){},onDragEnd:function(t,e,n,i,r){var a=this;null!==this.command&&(this.command.setPosition(this.x,this.y),this.canvas.getCommandStack().execute(this.command),this.command=null),this.isInDragDrop=!1,this.panningDelegate=null,this.editPolicy.each((function(s,o){o instanceof _packages2.default.policy.figure.DragDropEditPolicy&&o.onDragEnd(a.canvas,a,t,e,n,i,r)})),this.fireEvent("move",{x:this.getX(),y:this.getY(),dx:0,dy:0}),this.fireEvent("change:x",{x:this.getX(),dx:0}),this.fireEvent("change:y",{y:this.getY(),dy:0}),this.fireEvent("dragend",{x:t,y:e,shiftKey:n,ctrlKey:i,event:r})},delegateTarget:function(t){var e=this,n=t;return this.getCanvas().getDropInterceptorPolicies().each((function(i,r){if(null!==(n=r.delegateTarget(t,e)))return!1})),n},onDragEnter:function(t){},onDragLeave:function(t){},onDrop:function(t,e,n,i,r,a){},onCatch:function(t,e,n,i,r,a){},onMouseEnter:function(){},onMouseLeave:function(){},onDoubleClick:function(){},onClick:function(){},onContextMenu:function(t,e){},setAlpha:function(t){if((t=Math.min(1,Math.max(0,parseFloat(t))))!==this.alpha)return this.alpha=t,this.repaint(),this.fireEvent("change:opacity",{value:this.alpha}),this},getAlpha:function(){return this.alpha},setRotationAngle:function(t){var e=this;return this.rotationAngle=t,this.editPolicy.each((function(t,n){n instanceof _packages2.default.policy.figure.DragDropEditPolicy&&n.moved(e.canvas,e)})),this.fireEvent("change:angle",{value:this.rotationAngle}),this.repaint(),this},getRotationAngle:function(){return this.rotationAngle},setVisible:function(t,e){if((t=!!t)!==this.visible)return this.visible=t,this.repaint({visibleDuration:e}),this.visible?this.fireEvent("show"):this.fireEvent("hide"),this.fireEvent("change:visibility",{value:this.visible}),this},isVisible:function(){return this.visible&&null!==this.shape},setKeepAspectRatio:function(t){return this.keepAspectRatio=t,this},getKeepAspectRatio:function(){return this.keepAspectRatio},getZOrder:function(){if(null===this.shape)return-1;for(var t=0,e=this.shape.node;null!==(e=e.previousSibling);)t++;return t},setCanSnapToHelper:function(t){return this.canSnapToHelper=!!t,this},getCanSnapToHelper:function(){return this.canSnapToHelper},getSnapToGridAnchor:function(){return this.snapToGridAnchor},setSnapToGridAnchor:function(t){return this.snapToGridAnchor=t,this},setWidth:function(t){return this.setDimension(parseFloat(t),this.getHeight()),this.fireEvent("change:width",{value:this.width}),this},getWidth:function(){return this.width},setHeight:function(t){return this.setDimension(this.getWidth(),parseFloat(t)),this.fireEvent("change:height",{value:this.height}),this},getHeight:function(){return this.height},getMinWidth:function(){return this.minWidth},setMinWidth:function(t){return this.minWidth=parseFloat(t),this.fireEvent("change:minWidth",{value:this.minWidth}),this.setWidth(this.getWidth()),this},getMinHeight:function(){return this.minHeight},setMinHeight:function(t){return this.minHeight=parseFloat(t),this.fireEvent("change:minHeight",{value:this.minHeight}),this.setHeight(this.getHeight()),this},setX:function(t){return this.setPosition(parseFloat(t),this.y),this},getX:function(){return this.x},setY:function(t){return this.setPosition(this.x,parseFloat(t)),this},getY:function(){return this.y},getAbsoluteX:function(){return this.parent?this.getX()+this.parent.getAbsoluteX():this.getX()},getAbsoluteY:function(){return this.parent?this.getY()+this.parent.getAbsoluteY():this.getY()},getAbsolutePosition:function(){return new _packages2.default.geo.Point(this.getAbsoluteX(),this.getAbsoluteY())},getAbsoluteBounds:function(){return new _packages2.default.geo.Rectangle(this.getAbsoluteX(),this.getAbsoluteY(),this.getWidth(),this.getHeight())},setPosition:function(t,e){var n=this,i=this.x,r=this.y;t instanceof _packages2.default.geo.Point?(this.x=t.x,this.y=t.y):(this.x=t,this.y=e),this.editPolicy.each((function(t,e){if(e instanceof _packages2.default.policy.figure.DragDropEditPolicy){var i=e.adjustPosition(n,n.x,n.y);n.x=i.x,n.y=i.y}})),this.repaint(),this.editPolicy.each((function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(n.canvas,n)}));var a={x:this.x,y:this.y,dx:this.x-i,dy:this.y-r};return this.fireEvent("move",a),this.fireEvent("change:x",a),this.fireEvent("change:y",a),this},getPosition:function(){return new _packages2.default.geo.Point(this.getX(),this.getY())},translate:function(t,e){return this.setPosition(this.getX()+t,this.getY()+e),this},setDimension:function(t,e){var n=this,i={width:this.width,height:this.height};return t=Math.max(this.getMinWidth(),t),e=Math.max(this.getMinHeight(),e),this.width===t&&this.height===e?(this.editPolicy.each((function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(n.canvas,n)})),this):(this.editPolicy.each((function(i,r){if(r instanceof _packages2.default.policy.figure.DragDropEditPolicy){var a=r.adjustDimension(n,t,e);t=a.w,e=a.h}})),!0===this.keepAspectRatio?t>=this.getMinWidth()&&(e=this.getHeight()*(t/this.getWidth()))>=this.getMinHeight()&&(this.width=t,this.height=e):(this.width=Math.max(this.getMinWidth(),t),this.height=Math.max(this.getMinHeight(),e)),this.repaint(),this.fireEvent("resize"),this.fireEvent("change:dimension",{height:this.height,width:this.width,old:i}),this.editPolicy.each((function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(n.canvas,n)})),this)},setBoundingBox:function(t){t=new _packages2.default.geo.Rectangle(t);var e=this.repaintBlocked;return this.repaintBlocked=!0,this.setPosition(t.x,t.y),this.repaintBlocked=e,this.setDimension(t.w,t.h),this},getBoundingBox:function(){return new _packages2.default.geo.Rectangle(this.getAbsoluteX(),this.getAbsoluteY(),this.getWidth(),this.getHeight())},getOuterBoundingBox:function(){var t=new _packages2.default.geo.Rectangle(this.getAbsoluteX(),this.getAbsoluteY(),this.getWidth(),this.getHeight());return this.getChildren().each((function(e,n){var i=n.getOuterBoundingBox();t.merge(i)})),t},hitTest:function(t,e,n){return"number"==typeof n?this.getBoundingBox().scale(n,n).hitTest(t,e):this.getBoundingBox().hitTest(t,e)},setDraggable:function(t){return this.draggable=!!t,this},isDraggable:function(){return null!==this.composite?this.composite.isMemberDraggable(this,this.draggable):this.draggable},isResizeable:function(){return this.resizeable},setResizeable:function(t){return this.resizeable=!!t,this.fireEvent("change:resizeable",{value:this.resizeable}),this},isSelectable:function(){return null!==this.composite?this.composite.isMemberSelectable(this,this.selectable):this.selectable},setSelectable:function(t){return this.selectable=!!t,this.fireEvent("change:selectable",{value:this.selectable}),this},isStrechable:function(){return!this.getKeepAspectRatio()},isDeleteable:function(){return this.deleteable},setDeleteable:function(t){return this.deleteable=!!t,this.fireEvent("change:deleteable",{value:this.deleteable}),this},setParent:function(t){return this.parent=t,null!==t?this.setSelectionAdapter(t.getSelectionAdapter()):this.setSelectionAdapter(null),this},getParent:function(){return this.parent},contains:function(t){if(t.getParent()===this)return!0;for(var e=0,n=this.children.getSize();e<n;e++){if(this.children.get(e).figure.contains(t))return!0}return!1},getRoot:function(){for(var t=this.parent;null!==t&&null!==t.parent;)t=t.parent;return t},setComposite:function(t){if(null!==t&&!(t instanceof _packages2.default.shape.composite.StrongComposite))throw"'composite must inherit from 'draw2d.shape.composite.StrongComposite'";return this.composite=t,this},getComposite:function(){return this.composite},fireEvent:function(t,e){try{if(void 0===this.eventSubscriptions[t])return;if(!0===this._inEvent)return;this._inEvent=!0;for(var n=this.eventSubscriptions[t],i=0;i<n.length;i++)n[i](this,e)}catch(t){throw console.log(t),t}finally{this._inEvent=!1,"change:"===t.substring(0,7)&&this.fireEvent("change",t.substring(7))}},on:function(t,e,n){var i=t.split(" ");n&&((e=e.bind(n)).___originalCallback=e);for(var r=0;r<i.length;r++)void 0===this.eventSubscriptions[i[r]]&&(this.eventSubscriptions[i[r]]=[]),-1!==$.inArray(e,this.eventSubscriptions[i[r]])||this.eventSubscriptions[i[r]].push(e);return this},off:function(t){if(void 0===t)this.eventSubscriptions={};else if("string"==typeof t)this.eventSubscriptions[t]=[];else for(var e in this.eventSubscriptions)this.eventSubscriptions[e]=this.eventSubscriptions[e].filter((function(e){return void 0!==e.___originalCallback?e.___originalCallback!==t:e!==t}));return this},getBestChild:function(t,e,n){Array.isArray(n)||(n=n instanceof _packages2.default.Figure?[n]:[]);var i=null;return function r(a){a.each((function(a,s){var o=s.figure;return r(o.children),null===i&&!0===o.isVisible()&&!0===o.hitTest(t,e)&&-1===$.inArray(o,n)&&(i=o),null===i}))}(this.children),i},createCommand:function(t){return null===t?null:t.getPolicy()===_packages2.default.command.CommandType.MOVE?this.isDraggable()?new _packages2.default.command.CommandMove(this):null:t.getPolicy()===_packages2.default.command.CommandType.DELETE?this.isDeleteable()?new _packages2.default.command.CommandDelete(this):null:t.getPolicy()===_packages2.default.command.CommandType.RESIZE&&this.isResizeable()?new _packages2.default.command.CommandResize(this):null},clone:function clone(cloneMetaData){cloneMetaData=(0,_extend2.default)({excludeChildren:!1},cloneMetaData);var clone=eval("new "+this.NAME+"();"),initialId=clone.id;return clone.setPersistentAttributes(this.getPersistentAttributes()),clone.id=initialId,!1===cloneMetaData.excludeChildren&&(clone.resetChildren(),this.children.each((function(i,entry){var child=entry.figure.clone(),locator=entry.locator.NAME?eval("new "+entry.locator.NAME+"();"):null;clone.add(child,locator)}))),clone},getPersistentAttributes:function(){var t={type:this.NAME,id:this.id,x:this.getX(),y:this.getY(),width:this.width,height:this.height,alpha:this.alpha,selectable:this.selectable,draggable:this.draggable,angle:this.rotationAngle,userData:(0,_extend2.default)(!0,{},this.userData)};return null!==this.cssClass&&(t.cssClass=this.cssClass),null!==this.composite&&(t.composite=this.composite.getId()),t},setPersistentAttributes:function(t){return this.id=t.id,this.setPosition(parseFloat(t.x),parseFloat(t.y)),void 0!==t.width&&(this.width=parseFloat(t.width)),void 0!==t.height&&(this.height=parseFloat(t.height)),void 0!==t.userData&&(this.userData=t.userData),void 0!==t.selectable&&(this.selectable=t.selectable),void 0!==t.draggable&&(this.draggable=t.draggable),void 0!==t.cssClass&&this.setCssClass(t.cssClass),void 0!==t.alpha&&this.setAlpha(parseFloat(t.alpha)),void 0!==t.angle&&(this.rotationAngle=parseFloat(t.angle)),this}})},"./src/HeadlessCanvas.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.HeadlessCanvas=Class.extend({NAME:"draw2d.HeadlessCanvas",init:function(){this.figures=new a.default.util.ArrayList,this.lines=new a.default.util.ArrayList,this.commonPorts=new a.default.util.ArrayList,this.eventSubscriptions={},this.commandStack=new a.default.command.CommandStack},clear:function(){return this.figures=new a.default.util.ArrayList,this.lines=new a.default.util.ArrayList,this.commonPorts=new a.default.util.ArrayList,this.commandStack.markSaveLocation(),this},calculateConnectionIntersection:function(){},hideDecoration:function(){},showDecoration:function(){},add:function(t,e,n){if(t.getCanvas()!==this)return t instanceof a.default.shape.basic.Line?this.lines.add(t):this.figures.add(t),t.canvas=this,this},getLines:function(){return this.lines},getFigures:function(){return this.figures},getLine:function(t){for(var e=this.lines.getSize(),n=0;n<e;n++){var i=this.lines.get(n);if(i.getId()===t)return i}return null},getFigure:function(t){var e=null;return this.figures.each((function(n,i){if(i.id===t)return e=i,!1})),e},registerPort:function(t){return this.commonPorts.contains(t)||this.commonPorts.add(t),this},getAllPorts:function(){return this.commonPorts},getCommandStack:function(){return this.commandStack},fireEvent:function(t,e){if(void 0!==this.eventSubscriptions[t])for(var n=this.eventSubscriptions[t],i=0;i<n.length;i++)try{n[i](this,e)}catch(t){console.log(t),console.log(n[i])}},on:function(t,e){for(var n=t.split(" "),i=0;i<n.length;i++)void 0===this.eventSubscriptions[n[i]]&&(this.eventSubscriptions[n[i]]=[]),this.eventSubscriptions[n[i]].push(e);return this},off:function(t){if(void 0===t)this.eventSubscriptions={};else if("string"==typeof t)this.eventSubscriptions[t]=[];else for(var e in this.eventSubscriptions)this.eventSubscriptions[e]=this.eventSubscriptions[e].filter((function(e){return e!==t}));return this}})},"./src/HybridPort.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.HybridPort=a.default.Port.extend({NAME:"draw2d.HybridPort",init:function(t,e,n){this._super(t,e,n),this.locator=new a.default.layout.locator.InputPortLocator},createCommand:function(t){return t.getPolicy()===a.default.command.CommandType.CONNECT?t.source.getParent().getId()===t.target.getParent().getId()?null:t.source instanceof a.default.InputPort?new a.default.command.CommandConnect(t.target,t.source,t.source):t.source instanceof a.default.OutputPort?new a.default.command.CommandConnect(t.source,t.target,t.source):t.source instanceof a.default.HybridPort?new a.default.command.CommandConnect(t.target,t.source,t.source):null:this._super(t)}})},"./src/InputPort.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.InputPort=a.default.Port.extend({NAME:"draw2d.InputPort",init:function(t,e,n){this._super(t,e,n),this.locator=new a.default.layout.locator.InputPortLocator},createCommand:function(t){return t.getPolicy()===a.default.command.CommandType.CONNECT?new a.default.command.CommandConnect(t.source,t.target,t.source):this._super(t)}})},"./src/OutputPort.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.OutputPort=a.default.Port.extend({NAME:"draw2d.OutputPort",init:function(t,e,n){this._super(t,e,n),this.locator=new a.default.layout.locator.OutputPortLocator},createCommand:function(t){return t.getPolicy()===a.default.command.CommandType.CONNECT?new a.default.command.CommandConnect(t.target,t.source,t.source):this._super(t)}})},"./src/Port.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.Port=i.default.shape.basic.Circle.extend({NAME:"draw2d.Port",DEFAULT_BORDER_COLOR:new i.default.util.Color("#1B1B1B"),init:function(t,e,n){var a=this;this.locator=null,this.lighterBgColor=null,this.name=null,this.coronaWidth=5,this._super((0,r.default)({bgColor:"#4f6870",stroke:1,diameter:10,color:"#1B1B1B",selectable:!1},t),(0,r.default)({coronaWidth:this.setCoronaWidth,semanticGroup:this.setSemanticGroup},e),(0,r.default)({coronaWidth:this.getCoronaWidth,semanticGroup:this.getSemanticGroup},n)),this.ox=this.x,this.oy=this.y,this.corona=null,this.useGradient=!0,this.preferredConnectionDirection=null,this.connections=new i.default.util.ArrayList,this.moveListener=function(t,e){a.repaint(),a.fireEvent("move",{figure:a,dx:0,dy:0})},this.connectionAnchor=new i.default.layout.anchor.ConnectionAnchor(this),this.value=null,this.maxFanOut=Number.MAX_SAFE_INTEGER,this.semanticGroup="global",this.setCanSnapToHelper(!1),this.editPolicy.each((function(t,e){return a.uninstallEditPolicy(e)})),this.installEditPolicy(new i.default.policy.port.IntrusivePortsFeedbackPolicy),this.portSelectionAdapter=function(){return a}},getSelectionAdapter:function(){return this.portSelectionAdapter},setMaxFanOut:function(t){return this.maxFanOut=Math.max(1,t),this.fireEvent("change:maxFanOut",{value:this.maxFanOut}),this},getMaxFanOut:function(){return this.maxFanOut},setSemanticGroup:function(t){return this.semanticGroup=t,this.fireEvent("change:semanticGroup",{value:this.semanticGroup}),this},getSemanticGroup:function(){return this.semanticGroup},setConnectionAnchor:function(t){return null==t&&(t=new i.default.layout.anchor.ConnectionAnchor),this.connectionAnchor=t,this.connectionAnchor.setOwner(this),this.fireEvent("move",{figure:this,dx:0,dy:0}),this},getConnectionAnchorLocation:function(t,e){return this.connectionAnchor.getLocation(t,e)},getConnectionAnchorReferencePoint:function(t){return this.connectionAnchor.getReferencePoint(t)},getConnectionDirection:function(t){return void 0===this.preferredConnectionDirection||null===this.preferredConnectionDirection?this.getParent().getBoundingBox().getDirection(this.getAbsolutePosition()):this.preferredConnectionDirection},setConnectionDirection:function(t){return this.preferredConnectionDirection=t,this.fireEvent("move",{figure:this,dx:0,dy:0}),this},setLocator:function(t){return this.locator=t,this},getLocator:function(){return this.locator},setBackgroundColor:function(t){return this.lighterBgColor=new i.default.util.Color(t).lighter(.3).rgba(),this._super(t),this},setValue:function(t){if(t===this.value)return this;var e=this.value;return this.value=t,null!==this.getParent()&&this.getParent().onPortValueChanged(this),this.fireEvent("change:value",{value:this.value,old:e}),this},getValue:function(){return this.value},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&((t=t||{}).cx=this.getAbsoluteX(),t.cy=this.getAbsoluteY(),t.rx=this.width/2,t.ry=t.rx,t.cursor="move",this.getAlpha()<.9||!1===this.useGradient?t.fill=this.bgColor.rgba():t.fill=["90",this.bgColor.hash(),this.lighterBgColor].join("-"),this._super(t))},onMouseEnter:function(){this._oldstroke=this.getStroke(),this.setStroke(2)},onMouseLeave:function(){this.setStroke(this._oldstroke)},getConnections:function(){return this.connections},setParent:function(t){null!==this.parent&&this.parent.off(this.moveListener),this._super(t),null!==this.parent&&this.parent.on("move",this.moveListener)},getCoronaWidth:function(){return this.coronaWidth},setCoronaWidth:function(t){return this.coronaWidth=t,this},onDragStart:function(t,e,n,r,a){if(this.getConnections().getSize()>=this.maxFanOut)return!1;var s=this;this.ox=this.x,this.oy=this.y;var o=!0;return this.editPolicy.each((function(l,c){c instanceof i.default.policy.figure.DragDropEditPolicy&&(o=o&&c.onDragStart(s.canvas,s,t,e,n,r,a))})),o},onDrag:function(t,e,n,i,r,a,s){this._super(t,e)},onDragEnd:function(t,e,n,i,r){this.setAlpha(1),this.setPosition(this.ox,this.oy)},onDrop:function(t,e,n,i,r,a){},onConnect:function(t){},onDisconnect:function(t){},getName:function(){return this.name},setName:function(t){return this.name=t,this},hitTest:function(t,e,n){var i=this.getAbsoluteX()-this.coronaWidth-this.getWidth()/2,r=this.getAbsoluteY()-this.coronaWidth-this.getHeight()/2,a=i+this.getWidth()+2*this.coronaWidth,s=r+this.getHeight()+2*this.coronaWidth;return t>=i&&t<=a&&e>=r&&e<=s},setGlow:function(t){return!0===t&&null===this.corona?(this.corona=new i.default.Corona,this.corona.setDimension(this.getWidth()+2*this.getCoronaWidth(),this.getWidth()+2*this.getCoronaWidth()),this.corona.setPosition(this.getAbsoluteX()-this.getCoronaWidth()-this.getWidth()/2,this.getAbsoluteY()-this.getCoronaWidth()-this.getHeight()/2),this.corona.setCanvas(this.getCanvas()),this.corona.getShapeElement(),this.corona.repaint()):!1===t&&null!==this.corona&&(this.corona.setCanvas(null),this.corona=null),this},setDiameter:function(t){return this.setDimension(t,t),this.fireEvent("change:diameter",{value:t}),this},createCommand:function(t){return t.getPolicy()===i.default.command.CommandType.MOVE&&this.isDraggable()?new i.default.command.CommandMovePort(this):null},fireEvent:function(t,e){!0===this.isInDragDrop&&"drag"!==t||this._super(t,e)},getPersistentAttributes:function(){var t=this._super();return t.maxFanOut=this.maxFanOut,t.name=this.name,t.semanticGroup=this.semanticGroup,delete t.x,delete t.y,delete t.ports,t},setPersistentAttributes:function(t){return this._super(t),void 0!==t.maxFanOut&&("number"==typeof t.maxFanOut?this.maxFanOut=t.maxFanOut:this.maxFanOut=Math.max(1,parseInt(t.maxFanOut))),void 0!==t.name&&this.setName(t.name),void 0!==t.semanticGroup&&this.setSemanticGroup(t.semanticGroup),this}}),i.default.Corona=i.default.shape.basic.Circle.extend({init:function(){this._super(),this.setAlpha(.3),this.setBackgroundColor(new i.default.util.Color(178,225,255)),this.setColor(new i.default.util.Color(102,182,252))},setAlpha:function(t){return this._super(Math.min(.3,t)),this.setDeleteable(!1),this.setDraggable(!1),this.setResizeable(!1),this.setSelectable(!1),this}})},"./src/ResizeHandle.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.ResizeHandle=i.default.shape.basic.Rectangle.extend({NAME:"draw2d.ResizeHandle",init:function(t,e,n){var i=this;this.zoomCallback=function(){i.attr({width:i.origWidth*i.getCanvas().getZoom(),height:i.origHeight*i.getCanvas().getZoom(),radius:i.origRadius*i.getCanvas().getZoom(),stroke:i.origStroke*i.getCanvas().getZoom()}),i.blockEvent||i.owner.fireEvent("move",{})},this._super((0,r.default)({bgColor:"#FDFDFD",stroke:.5,width:10,height:10,minWidth:.3,minHeight:.3,color:"#edf1f7",radius:1,selectable:!1},t),(0,r.default)({owner:this.setOwner,type:this.setType},e),(0,r.default)({owner:this.getOwner,type:this.getType},n)),this.isResizeHandle=!0,this.command=null,this.commandMove=null,this.commandResize=null,this.useGradient=!0,this.origRadius=this.radius,this.origWidth=this.width,this.origHeight=this.height,this.origStroke=this.stroke},getSnapToDirection:function(){switch(this.type){case 1:return i.default.SnapToHelper.NORTH_WEST;case 2:return i.default.SnapToHelper.NORTH;case 3:return i.default.SnapToHelper.NORTH_EAST;case 4:default:return i.default.SnapToHelper.EAST;case 5:return i.default.SnapToHelper.SOUTH_EAST;case 6:return i.default.SnapToHelper.SOUTH;case 7:return i.default.SnapToHelper.SOUTH_WEST;case 8:return i.default.SnapToHelper.WEST;case 9:return i.default.SnapToHelper.NSEW}},createShapeElement:function(){return this.shape=this._super(),this.shape.node.setAttribute("type",this.type),this.updateCursor(this.shape),this.shape},getOwner:function(){return this.owner},setOwner:function(t){return this.owner=t,this},getType:function(){return this.type},setType:function(t){return this.type=t,this},updateCursor:function(t){if(null===t)return this;if(!1===this.isDraggable())return t.attr({cursor:"default"}),this;switch(this.type){case 1:t.attr({cursor:"nw-resize"});break;case 2:t.attr({cursor:"n-resize"});break;case 3:t.attr({cursor:"ne-resize"});break;case 4:t.attr({cursor:"e-resize"});break;case 5:t.attr({cursor:"se-resize"});break;case 6:t.attr({cursor:"s-resize"});break;case 7:t.attr({cursor:"sw-resize"});break;case 8:t.attr({cursor:"w-resize"});break;default:t.attr({cursor:"move"})}return this},setDraggable:function(t){return this._super(t),this.updateCursor(this.shape),this},onDragStart:function(t,e,n,r,a){return!!this.isDraggable()&&(this.ox=this.getAbsoluteX(),this.oy=this.getAbsoluteY(),this.commandMove=this.owner.createCommand(new i.default.command.CommandType(i.default.command.CommandType.MOVE)),this.commandResize=this.owner.createCommand(new i.default.command.CommandType(i.default.command.CommandType.RESIZE)),!0)},onDrag:function(t,e,n,i){if(!1!==this.isDraggable()){var r=this.getAbsoluteX(),a=this.getAbsoluteY();this._super(t,e,n,i);var s=this.getAbsoluteX()-r,o=this.getAbsoluteY()-a,l=this.owner,c=l.getAbsoluteX(),u=l.getAbsoluteY(),h=l.getWidth(),d=l.getHeight(),f=null,p=null,g=null;switch(this.type){case 1:l.setDimension(h-s,d-o),f=c+(h-l.getWidth()),p=u+(d-l.getHeight()),l.setPosition(f,p);break;case 2:l.setDimension(h,d-o),f=c,p=u+(d-l.getHeight()),l.setPosition(f,p);break;case 3:l.setDimension(h+s,d-o),f=c,p=u+(d-l.getHeight()),l.setPosition(f,p);break;case 4:l.setDimension(h+s,d);break;case 5:l.setDimension(h+s,d+o);break;case 6:l.setDimension(h,d+o);break;case 7:l.setDimension(h-s,d+o),f=c+(h-l.getWidth()),p=u,l.setPosition(f,p);break;case 8:l.setDimension(h-s,d),f=c+(h-l.getWidth()),p=u,l.setPosition(f,p)}null!==f&&((g=l.getPosition()).x===f&&g.y===p||l.setDimension(l.getWidth()-(g.x-f),l.getHeight()-(g.y-p)))}},onDragEnd:function(t,e,n,i,r){this.isDraggable()&&(null!==this.commandMove&&(this.commandMove.setPosition(this.owner.getX(),this.owner.getY()),this.canvas.getCommandStack().execute(this.commandMove),this.commandMove=null),null!==this.commandResize&&(this.commandResize.setDimension(this.owner.getWidth(),this.owner.getHeight()),this.canvas.getCommandStack().execute(this.commandResize),this.commandResize=null))},setPosition:function(t,e){if(t instanceof i.default.geo.Point?(this.x=t.x,this.y=t.y):(this.x=t,this.y=e),!0===this.repaintBlocked||null===this.shape)return this;this.shape.attr({x:this.x,y:this.y}),this.applyTransformation()},setDimension:function(t,e){void 0!==e?this._super(t,e):i.default.isTouchDevice?this._super(15,15):this._super(8,8);var n=this.getWidth(),r=n/2;switch(this.type){case 1:this.setSnapToGridAnchor(new i.default.geo.Point(n,n));break;case 2:this.setSnapToGridAnchor(new i.default.geo.Point(r,n));break;case 3:this.setSnapToGridAnchor(new i.default.geo.Point(0,n));break;case 4:this.setSnapToGridAnchor(new i.default.geo.Point(0,r));break;case 5:this.setSnapToGridAnchor(new i.default.geo.Point(0,0));break;case 6:this.setSnapToGridAnchor(new i.default.geo.Point(r,0));break;case 7:this.setSnapToGridAnchor(new i.default.geo.Point(n,0));break;case 8:this.setSnapToGridAnchor(new i.default.geo.Point(n,r));break;case 9:this.setSnapToGridAnchor(new i.default.geo.Point(r,r))}return this},show:function(t){this.setCanvas(t),this.canvas.resizeHandles.add(this),this.shape.insertAfter(this.owner.getShapeElement());try{this.blockEvent=!0,this.zoomCallback()}finally{this.blockEvent=!1}return this.repaint(),this},hide:function(){if(null!==this.shape)return this.canvas.resizeHandles.remove(this),this.setCanvas(null),this},setCanvas:function(t){null!==this.canvas&&this.canvas.off(this.zoomCallback),this._super(t),null!==this.canvas&&this.canvas.on("zoom",this.zoomCallback)},setBackgroundColor:function(t){return t=new i.default.util.Color(t),this.bgGradient="90-"+t.darker(.2).hash()+"-"+t.hash(),this._super(t),this},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(t=t||{},"none"===this.bgColor.hash()?t.fill="none":this.getAlpha()<.9||!1===this.useGradient?t.fill=this.bgColor.rgba():t.fill=this.bgGradient,this._super(t))},supportsSnapToHelper:function(){return!0},onKeyDown:function(t,e){this.canvas.onKeyDown(t,e)},fireEvent:function(t,e){}})},"./src/SVGFigure.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.SVGFigure=i.default.SetFigure.extend({NAME:"draw2d.SVGFigure",init:function(t,e,n){this.svg=null,this._super((0,r.default)({},t),(0,r.default)({svg:this.setSVG},e),(0,r.default)({svg:this.getSVG},n))},createSet:function(){return null===this.svg&&(this.svg=this.getSVG()),this.importSVG(this.canvas,this.svg)},getSVG:function(){return this.svg},setSVG:function(t,e){if(this.svg=t,null!==this.canvas&&null!==this.svgNodes){var n=this.createSet();if(isNaN(parseFloat(e)))n.insertAfter(this.svgNodes),this.svgNodes.remove(),this.svgNodes=n,this.applyTransformation();else{n.hide(),n.insertAfter(this.svgNodes);var i=this.svgNodes;this.svgNodes=n,this.applyTransformation(),i.forEach((function(t){$(t.node).fadeOut(e,(function(){t.remove()}))})),n.forEach((function(t){$(t.node).fadeIn(e)}))}}return this},importSVG:function(t,e){var n=t.paper.set();try{if(void 0===e)throw"No data was provided.";var i=$(e);void 0===this._dimensionReadFromJSON&&(i.attr("width")&&i.attr("height")&&this.setDimension(parseFloat(i.attr("width")),parseFloat(i.attr("height"))),delete this._dimensionReadFromJSON);var r=new RegExp("([a-z0-9-]+) ?: ?([^ ;]+)[ ;]?","gi");i.children().each((function(e,i){var a=null,s=null,o={},l=i.tagName,c=l.indexOf(":");if(-1!=c&&(l=l.substr(c+1)),$(i.attributes).each((function(){switch(this.nodeName){case"stroke-dasharray":o[this.nodeName]="- ";break;case"style":s=this.nodeValue;break;case"id":case"xml:space":break;default:this.value?o[this.nodeName]=this.value:o[this.nodeName]=this.nodeValue}})),null!==s)for(;r.exec(s);)o[RegExp.$1]=RegExp.$2;switch(void 0===o["stroke-width"]&&(o["stroke-width"]=void 0===o.stroke?0:1.2),l){case"rect":a=t.paper.rect(),void 0!==o.rx&&(o.r=parseInt(o.rx),delete o.rx);break;case"circle":a=t.paper.circle();break;case"ellipse":a=t.paper.ellipse();break;case"path":o.fill="none",a=t.paper.path(o.d);break;case"line":o.d="M "+o.x1+" "+o.y1+"L"+o.x2+" "+o.y2,o.fill="none",a=t.paper.path(o.d);break;case"polyline":var u=o.points;o.d="M "+u.replace(" "," L"),a=t.paper.path(o.d);break;case"polygon":a=t.paper.polygon(o.points);break;case"image":a=t.paper.image();break;case"tspan":case"text":if(i.childNodes.length>0){var h=i.firstChild;do{switch(h.nodeType){case 2:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:return;case 3:h=i}var d=t.paper.text(0,0,$(h).text()),f={x:parseFloat(h.attributes.x.value),y:parseFloat(h.attributes.y.value),"text-anchor":"start"};void 0!==h.attributes["text-anchor"]?f["text-anchor"]=h.attributes["text-anchor"].value:void 0!==o["text-anchor"]&&(f["text-anchor"]=o["text-anchor"]),void 0!==h.attributes["font-size"]?f["font-size"]=parseInt(h.attributes["font-size"].value):void 0!==o["font-size"]&&(f["font-size"]=parseInt(o["font-size"])),void 0!==h.attributes["font-family"]?f["font-family"]=h.attributes["font-family"].value:void 0!==o["font-family"]&&(f["font-family"]=o["font-family"]),f.fill="#000000",void 0!==h.attributes.fill?f.fill=h.attributes.fill.value:void 0!==o.fill&&(f.fill=o.fill),f.y=f.y+d.getBBox().height/2,d.attr(f),n.push(d),h=h.nextSibling}while(h&&3===h.nodeType)}else a=t.paper.text(0,0,$(i).html()),void 0===o.fill&&(o.fill="#000000"),void 0===o["text-anchor"]&&(o["text-anchor"]="start"),void 0!==o["font-size"]&&(o["font-size"]=parseInt(o["font-size"])),void 0!==o["font-family"]&&(o["font-family"]=parseInt(o["font-family"])),o.y=parseFloat(o.y)+a.getBBox().height/2}null!==a&&(a.attr(o),n.push(a))}))}catch(t){alert("The SVG data you entered was invalid! ("+t+")")}return n},setPersistentAttributes:function(t){return this._super(t),(void 0!==t.width||void 0!==t.height)&&(this._dimensionReadFromJSON=!0),this}})},"./src/Selection.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.Selection=Class.extend({NAME:"draw2d.Selection",init:function(){this.primary=null,this.all=new a.default.util.ArrayList},clear:function(){return this.primary=null,this.all=new a.default.util.ArrayList,this},getPrimary:function(){return this.primary},setPrimary:function(t){return this.primary=t,this.add(t),this},remove:function(t){return this.all.remove(t),this.primary===t&&(this.primary=null),this},add:function(t){return null===t||this.all.contains(t)||this.all.add(t),this},contains:function(t,e){if(e){for(var n=0;n<this.all.getSize();n++){var i=this.all.get(n);if(i===t||i.contains(t))return!0}return!1}return this.all.contains(t)},getSize:function(){return this.all.getSize()},getAll:function(t){if(!0===t){var e=new a.default.util.ArrayList;return function t(n){e.addAll(n,!0),n.each((function(e,n){n instanceof a.default.shape.composite.StrongComposite&&t(n.getAssignedFigures())}))}(this.all),e}return this.all.clone()},each:function(t,e){return this.all.each(t,e),this}})},"./src/SetFigure.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.SetFigure=i.default.shape.basic.Rectangle.extend({NAME:"draw2d.SetFigure",init:function(t,e,n){this.svgNodes=null,this.originalWidth=null,this.originalHeight=null,this.scaleX=1,this.scaleY=1,this.strokeScale=!0,this._super((0,r.default)({stroke:0,bgColor:null},t),e,n)},setCanvas:function(t){null===t&&null!==this.svgNodes&&(this.svgNodes.remove(),this.svgNodes=null),this._super(t)},setCssClass:function(t){return this._super(t),null===this.svgNodes||(null===this.cssClass?this.svgNodes.forEach((function(t){t.node.removeAttribute("class")})):this.svgNodes.forEach((function(e){e.node.setAttribute("class",t)}))),this},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(null!==this.originalWidth&&(this.scaleX=this.width/this.originalWidth,this.scaleY=this.height/this.originalHeight),t=t||{},this.applyAlpha(),this._super(t))},setVisible:function(t,e){this._super(t,e),null!==this.svgNodes&&(e?!0===this.visible?this.svgNodes.forEach((function(t){$(t.node).fadeIn(e,(function(){return t.show()}))})):this.svgNodes.forEach((function(t){$(t.node).fadeOut(e,(function(){return t.hide()}))})):!0===this.visible?this.svgNodes.show():this.svgNodes.hide())},applyAlpha:function(){this.svgNodes.attr({opacity:this.alpha})},applyTransformation:function(){var t="S"+this.scaleX+","+this.scaleY+",0,0 R"+this.rotationAngle+","+(this.getWidth()/2|0)+","+(this.getHeight()/2|0)+"T"+this.getAbsoluteX()+","+this.getAbsoluteY();if(this.svgNodes.transform(t),90===this.rotationAngle||270===this.rotationAngle){var e=this.svgNodes.getBBox(!0),n="...S"+e.height/e.width+","+e.width/e.height+","+(this.getAbsoluteX()+this.getWidth()/2)+","+(this.getAbsoluteY()+this.getHeight()/2);this.svgNodes.transform(n)}return this},toFront:function(t){this.composite instanceof i.default.shape.composite.StrongComposite&&void 0!==t&&(t.getZOrder()<this.composite.getZOrder()&&(t=this.composite));if(void 0===t){if(this.getShapeElement().toFront(),null!==this.svgNodes&&this.svgNodes.toFront(),null!==this.canvas){var e=this.canvas.getFigures(),n=this.canvas.getLines();null!==e.remove(this)?e.add(this):null!==n.remove(this)&&n.add(this)}}else if(null!==this.svgNodes&&this.svgNodes.insertAfter(t.getTopLevelShapeElement()),this.getShapeElement().insertAfter(t.getTopLevelShapeElement()),null!==this.canvas){var r=this.canvas.getFigures(),a=this.canvas.getLines();if(null!==r.remove(this)){var s=r.indexOf(t);r.insertElementAt(this,s+1)}else null!==a.remove(this)&&a.add(this)}this.children.each((function(e,n){n.figure.toFront(t)}));var o=this;return this.getPorts().each((function(e,n){n.getConnections().each((function(e,n){n.toFront(t)})),n.toFront(o)})),this.selectionHandles.each((function(t,e){e.toFront()})),this},toBack:function(t){if(!(this.composite instanceof i.default.shape.composite.StrongComposite)){if(null!==this.canvas){var e=this.canvas.getFigures(),n=this.canvas.getLines();null!==e.remove(this)?e.insertElementAt(this,0):null!==n.remove(this)&&n.insertElementAt(this,0)}this.children.each((function(e,n){n.figure.toBack(t)}),!0),null!==this.svgNodes&&(void 0!==t?this.svgNodes.insertBefore(t.getShapeElement()):this.svgNodes.toBack()),null!==this.canvas&&(void 0!==t?this.getShapeElement().insertBefore(t.getShapeElement()):this.getShapeElement().toBack());var r=this;return this.getPorts().each((function(t,e){e.getConnections().each((function(t,e){e.toFront(r)})),e.toFront(r)})),this}this.toFront(this.composite)},getTopLevelShapeElement:function(){return 0===this.svgNodes.length?this.shape:this.svgNodes},createShapeElement:function(){var t=this.canvas.paper.rect(this.getX(),this.getY(),this.getWidth(),this.getHeight());if(this.svgNodes=this.createSet(),void 0===this.svgNodes.forEach){var e=this.canvas.paper.set();e.push(this.svgNodes),this.svgNodes=e}this.svgNodes.attr({"stroke-scale":this.strokeScale}),this.setVisible(this.visible),this.setCssClass(this.cssClass);var n=this.svgNodes.getBBox();return this.originalWidth=n.width,this.originalHeight=n.height,t},createSet:function(){return this.canvas.paper.set()}})},"./src/VectorFigure.js":(t,e,n)=>{"use strict";var i=s(n("./src/packages.js")),r=s(n("./src/util/JSONUtil.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}i.default.VectorFigure=i.default.shape.node.Node.extend({NAME:"draw2d.VectorFigure",init:function(t,e,n){this.stroke=1,this.radius=0,this.bgColor=new i.default.util.Color("#ffffff"),this.color=new i.default.util.Color("#303030"),this.dasharray=null,this.strokeBeforeGlow=this.stroke,this.glowIsActive=!1,this._super(t,(0,a.default)({dasharray:this.setDashArray,radius:this.setRadius,bgColor:this.setBackgroundColor,color:this.setColor,stroke:this.setStroke},e),(0,a.default)({dasharray:this.getDashArray,radius:this.getRadius,bgColor:this.getBackgroundColor,color:this.getColor,stroke:this.getStroke},n))},setRadius:function(t){return this.radius=t,this.repaint(),this.fireEvent("change:radius",{value:this.radius}),this},getRadius:function(){return this.radius},setDashArray:function(t){return this.dasharray=t,this.repaint(),this.fireEvent("change:dashArray",{value:this.dasharray}),this},getDashArray:function(){return this.dasharray},setGlow:function(t){return t===this.glowIsActive||(this.glowIsActive=t,!0===t?(this.strokeBeforeGlow=this.getStroke(),this.setStroke(2.5*this.strokeBeforeGlow)):this.setStroke(this.strokeBeforeGlow)),this},repaint:function(t){if(!0!==this.repaintBlocked&&null!==this.shape)return(t=t||{}).x=this.getAbsoluteX(),t.y=this.getAbsoluteY(),void 0===t.stroke&&(null===this.color||0===this.stroke?t.stroke="none":t.stroke=this.color.rgba()),r.default.ensureDefault(t,"stroke-width",this.stroke),r.default.ensureDefault(t,"fill",this.bgColor.rgba()),r.default.ensureDefault(t,"dasharray",this.dasharray),r.default.ensureDefault(t,"stroke-dasharray",this.dasharray),this._super(t),this},setBackgroundColor:function(t){return this.bgColor=new i.default.util.Color(t),this.repaint(),this.fireEvent("change:bgColor",{value:this.bgColor}),this},getBackgroundColor:function(){return this.bgColor},setStroke:function(t){return this.stroke=t,this.repaint(),this.fireEvent("change:stroke",{value:this.stroke}),this},getStroke:function(){return this.stroke},setColor:function(t){return this.color=new i.default.util.Color(t),this.repaint(),this.fireEvent("change:color",{value:this.color}),this},getColor:function(){return this.color},getPersistentAttributes:function(){return(0,a.default)(this._super(),{bgColor:this.bgColor.rgba(),color:this.color.rgba(),stroke:this.stroke,radius:this.radius,dasharray:this.dasharray})},setPersistentAttributes:function(t){return this._super(t),void 0!==t.radius&&this.setRadius(t.radius),void 0!==t.bgColor&&this.setBackgroundColor(t.bgColor),void 0!==t.color&&this.setColor(t.color),void 0!==t.stroke&&this.setStroke(null===t.stroke?0:parseFloat(t.stroke)),"string"==typeof t.dasharray&&(this.dasharray=t.dasharray),this}})},"./src/command/Command.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js");((i=r)&&i.__esModule?i:{default:i}).default.command.Command=Class.extend({NAME:"draw2d.command.Command",init:function(t){this.label=t},getLabel:function(){return this.label},canExecute:function(){return!0},execute:function(){},cancel:function(){},undo:function(){},redo:function(){}})},"./src/command/CommandAdd.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandAdd=a.default.command.Command.extend({NAME:"draw2d.command.CommandAdd",init:function(t,e,n,i){this._super(a.default.Configuration.i18n.command.addShape),this.figure=e,this.canvas=t,this.pos=new a.default.geo.Point(n,i)},canExecute:function(){return null===this.figure.getCanvas()},execute:function(){this.canvas.add(this.figure,this.pos.x,this.pos.y)},redo:function(){this.execute()},undo:function(){this.canvas.remove(this.figure)}})},"./src/command/CommandAddVertex.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandAddVertex=a.default.command.Command.extend({NAME:"draw2d.command.CommandAddVertex",init:function(t,e,n,i){this._super(a.default.Configuration.i18n.command.addVertex),this.line=t,this.index=e,this.newPoint=new a.default.geo.Point(n,i)},canExecute:function(){return!0},execute:function(){this.redo()},undo:function(){this.line.removeVertexAt(this.index)},redo:function(){this.line.insertVertexAt(this.index,this.newPoint.x,this.newPoint.y)}})},"./src/command/CommandAssignFigure.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandAssignFigure=a.default.command.Command.extend({NAME:"draw2d.command.CommandAssignFigure",init:function(t,e){this._super(a.default.Configuration.i18n.command.assignShape),this.figure=t,this.composite=e,this.assignedConnections=new a.default.util.ArrayList,this.isNode=this.figure instanceof a.default.shape.node.Node,this.oldBoundingBox=e.getBoundingBox()},canExecute:function(){return!0},execute:function(){if(this.composite.assignFigure(this.figure),!0===this.isNode){var t=this.figure.getConnections(),e=this;t.each((function(t,n){n.getSource().getParent().getComposite()===e.composite&&n.getTarget().getParent().getComposite()===e.composite&&n.getComposite()!==e.composite&&(e.assignedConnections.add({oldComposite:n.getComposite(),connection:n}),e.composite.assignFigure(n))}))}},undo:function(){this.composite.unassignFigure(this.figure),this.assignedConnections.each((function(t,e){null!==e.oldComposite?e.oldComposite.assignFigure(e.connection):e.connection.getComposite().unassignFigure(e.connection)})),this.composite.stickFigures=!0,this.composite.setBoundingBox(this.oldBoundingBox),this.composite.stickFigures=!1},redo:function(){var t=this;this.composite.setBoundingBox(this.oldBoundingBox),this.composite.assignFigure(this.figure),this.assignedConnections.each((function(e,n){return t.composite.assignFigure(n.connection)}))}})},"./src/command/CommandAttr.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandAttr=a.default.command.Command.extend({NAME:"draw2d.command.CommandAttr",init:function(t,e){var n=this;this._super(a.default.Configuration.i18n.command.changeAttributes),this.figure=t,this.newAttributes=e,this.oldAttributes={},Object.keys(e).forEach((function(e){n.oldAttributes[e]=t.attr(e)}))},canExecute:function(){return!0},execute:function(){this.redo()},undo:function(){this.figure.attr(this.oldAttributes)},redo:function(){this.figure.attr(this.newAttributes)}})},"./src/command/CommandBoundingBox.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandBoundingBox=a.default.command.Command.extend({NAME:"draw2d.command.CommandResize",init:function(t,e){this._super(a.default.Configuration.i18n.command.resizeShape),this.figure=t,this.oldBoundingBox=this.figure.getBoundingBox(),this.newBoundingBox=e},canExecute:function(){return!this.oldBoundingBox.equals(this.newBoundingBox)},execute:function(){this.redo()},undo:function(){this.figure.setBoundingBox(this.oldBoundingBox)},redo:function(){this.figure.setBoundingBox(this.newBoundingBox)}})},"./src/command/CommandCollection.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandCollection=a.default.command.Command.extend({NAME:"draw2d.command.CommandCollection",init:function(t){this._super(void 0===t?a.default.Configuration.i18n.command.collection:t),this.commands=new a.default.util.ArrayList},getLabel:function(){if(1===this.commands.getSize())return this.commands.first().getLabel();if(this.commands.getSize()>1){var t=this.commands.clone().map((function(t){return t.getLabel()}));if(t.unique(),1===t.getSize())return t.first()}return this._super()},add:function(t){this.commands.add(t)},canExecute:function(){var t=!1;return this.commands.each((function(e,n){t=t||n.canExecute()})),t},execute:function(){this.commands.each((function(t,e){e.execute()}))},redo:function(){this.commands.each((function(t,e){e.redo()}))},undo:function(){this.commands.reverse(),this.commands.each((function(t,e){e.undo()})),this.commands.reverse()}})},"./src/command/CommandConnect.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandConnect=a.default.command.Command.extend({NAME:"draw2d.command.CommandConnect",init:function(t,e,n){this._super(a.default.Configuration.i18n.command.connectPorts),this.canvas=e.getCanvas(),this.source=t,this.target=e,this.connection=null,this.dropTarget=n},setConnection:function(t){this.connection=t},getConnection:function(){return this.connection},execute:function(){var t=this,e=function(e){t.connection=e,t.connection.setSource(t.source),t.connection.setTarget(t.target),t.canvas.add(t.connection)};if(null===this.connection){var n=a.default.Configuration.factory.createConnection(this.source,this.target,e,this.dropTarget);if(void 0===n)return;this.connection=n}e(this.connection)},redo:function(){this.canvas.add(this.connection),this.connection.reconnect()},undo:function(){this.canvas.remove(this.connection)}})},"./src/command/CommandDelete.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandDelete=a.default.command.Command.extend({NAME:"draw2d.command.CommandDelete",init:function(t){this._super(a.default.Configuration.i18n.command.deleteShape),this.parent=t.getParent(),this.figure=t,this.canvas=t.getCanvas(),this.connections=null,this.removedParentEntry=null,this.indexOfChild=-1},canExecute:function(){return null!==this.figure.getCanvas()},execute:function(){this.redo()},undo:function(){null!==this.parent?(this.parent.add(this.removedParentEntry.figure,this.removedParentEntry.locator,this.indexOfChild),this.canvas.setCurrentSelection(this.parent)):(this.canvas.add(this.figure),this.canvas.setCurrentSelection(this.figure)),this.figure instanceof a.default.Connection&&this.figure.reconnect();for(var t=0;t<this.connections.getSize();++t)this.canvas.add(this.connections.get(t)),this.connections.get(t).reconnect()},redo:function(){this.canvas.setCurrentSelection(null),null===this.connections&&(this.figure instanceof a.default.shape.node.Node?this.connections=this.figure.getConnections():this.connections=new a.default.util.ArrayList);for(var t=0;t<this.connections.getSize();++t)this.canvas.remove(this.connections.get(t));null!==this.parent?(this.indexOfChild=this.parent.getChildren().indexOf(this.figure),this.removedParentEntry=this.parent.remove(this.figure)):this.canvas.remove(this.figure)}})},"./src/command/CommandDeleteGroup.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandDeleteGroup=a.default.command.Command.extend({NAME:"draw2d.command.CommandDeleteGroup",init:function(t){this._super(a.default.Configuration.i18n.command.deleteShape),this.parent=t.getParent(),this.group=t,this.canvas=t.getCanvas(),this.batchDelete=null},canExecute:function(){for(var t=this.group.getAssignedFigures(),e=0;e<t.getSize();e++)if(!1===t.get(e).isDeleteable())return!1;return null!==this.group.getCanvas()},execute:function(){this.redo()},undo:function(){this.batchDelete.undo(),this.canvas.setCurrentSelection(this.group)},redo:function(){if(null===this.batchDelete){this.batchDelete=new a.default.command.CommandCollection,this.batchDelete.add(new a.default.command.CommandUngroup(this.canvas,this.group));for(var t=this.group.getAssignedFigures(),e=0;e<t.getSize();e++){var n=t.get(e).createCommand(new a.default.command.CommandType(a.default.command.CommandType.DELETE));this.batchDelete.add(n)}}this.batchDelete.execute()}})},"./src/command/CommandGroup.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandGroup=a.default.command.Command.extend({NAME:"draw2d.command.CommandGroup",init:function(t,e){this._super(a.default.Configuration.i18n.command.groupShapes),e instanceof a.default.Selection?this.figures=e.getAll():this.figures=e,this.figures.grep((function(t){return null===t.getComposite()})),this.canvas=t,this.group=new a.default.shape.composite.Group},canExecute:function(){return!this.figures.isEmpty()},execute:function(){this.redo()},undo:function(){var t=this;this.figures.each((function(e,n){t.group.unassignFigure(n)})),this.canvas.remove(this.group),this.canvas.setCurrentSelection(this.figures)},redo:function(){var t=this;this.figures.each((function(e,n){t.group.assignFigure(n)})),this.canvas.add(this.group),this.canvas.setCurrentSelection(this.group)}})},"./src/command/CommandMove.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandMove=a.default.command.Command.extend({NAME:"draw2d.command.CommandMove",init:function(t,e,n){this._super(a.default.Configuration.i18n.command.moveShape),this.figure=t,void 0===e?(this.oldX=t.getX(),this.oldY=t.getY()):(this.oldX=e,this.oldY=n)},setStartPosition:function(t,e){this.oldX=t,this.oldY=e},setPosition:function(t,e){this.newX=t,this.newY=e},canExecute:function(){return this.newX!==this.oldX||this.newY!==this.oldY},execute:function(){this.redo()},undo:function(){this.figure.setPosition(this.oldX,this.oldY)},redo:function(){this.figure.setPosition(this.newX,this.newY)}})},"./src/command/CommandMoveConnection.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandMoveConnection=a.default.command.Command.extend({NAME:"draw2d.command.CommandMoveConnection",init:function(t){this._super(a.default.Configuration.i18n.command.moveLine),this.line=t,this.dx=0,this.dy=0},setTranslation:function(t,e){this.dx=t,this.dy=e},canExecute:function(){return 0!==this.dx&&0!==this.dy},execute:function(){this.redo()},undo:function(){var t=this;this.line.getVertices().each((function(e,n){n.translate(-t.dx,-t.dy)})),this.line.svgPathString=null,this.line.setPosition(this.line.getStartPosition())},redo:function(){var t=this;this.line.getVertices().each((function(e,n){n.translate(t.dx,t.dy)})),this.line.svgPathString=null,this.line.setPosition(this.line.getStartPosition())}})},"./src/command/CommandMoveLine.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandMoveLine=a.default.command.Command.extend({NAME:"draw2d.command.CommandMoveLine",init:function(t){this._super(a.default.Configuration.i18n.command.moveLine),this.line=t,this.dx=0,this.dy=0},setTranslation:function(t,e){this.dx=t,this.dy=e},canExecute:function(){return 0!==this.dx&&0!==this.dy},execute:function(){this.redo()},undo:function(){var t=this;this.line.getVertices().each((function(e,n){n.translate(-t.dx,-t.dy)})),this.line.svgPathString=null,this.line.setPosition(this.line.getStartPosition())},redo:function(){var t=this;this.line.getVertices().each((function(e,n){n.translate(t.dx,t.dy)})),this.line.svgPathString=null,this.line.setPosition(this.line.getStartPosition())}})},"./src/command/CommandMoveVertex.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandMoveVertex=a.default.command.Command.extend({NAME:"draw2d.command.CommandMoveVertex",init:function(t){this._super(a.default.Configuration.i18n.command.moveVertex),this.line=t,this.index=-1,this.newPoint=null},setIndex:function(t){this.index=t,this.origPoint=this.line.getVertices().get(this.index).clone()},updatePosition:function(t,e){this.newPoint=new a.default.geo.Point(t,e)},canExecute:function(){return-1!==this.index&&null!==this.newPoint},execute:function(){this.redo()},undo:function(){this.line.setVertex(this.index,this.origPoint.x,this.origPoint.y)},redo:function(){this.line.setVertex(this.index,this.newPoint.x,this.newPoint.y)}})},"./src/command/CommandMoveVertices.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandMoveVertices=a.default.command.Command.extend({NAME:"draw2d.command.CommandMoveVertices",init:function(t){this._super(a.default.Configuration.i18n.command.moveVertices),this.line=t,this.oldVertices=t.getVertices().clone(!0),this.newVertices=null},updateVertices:function(t){this.newVertices=t},canExecute:function(){return null!==this.newVertices},execute:function(){this.redo()},undo:function(){this.line.setVertices(this.oldVertices)},redo:function(){this.line.setVertices(this.newVertices)}})},"./src/command/CommandReconnect.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandReconnect=a.default.command.Command.extend({NAME:"draw2d.command.CommandReconnect",init:function(t){this._super(a.default.Configuration.i18n.command.connectPorts),this.con=t,this.oldSourcePort=t.getSource(),this.oldTargetPort=t.getTarget()},canExecute:function(){return!0},setNewPorts:function(t,e){this.newSourcePort=t,this.newTargetPort=e},setIndex:function(t){},updatePosition:function(t,e){},execute:function(){this.redo()},cancel:function(){this.con.setSource(this.oldSourcePort),this.con.setTarget(this.oldTargetPort),this.con.routingRequired=!0,this.con.repaint()},undo:function(){this.con.setSource(this.oldSourcePort),this.con.setTarget(this.oldTargetPort),this.con.routingRequired=!0,this.con.repaint()},redo:function(){this.con.setSource(this.newSourcePort),this.con.setTarget(this.newTargetPort),this.con.routingRequired=!0,this.con.repaint()}})},"./src/command/CommandRemoveVertex.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandRemoveVertex=a.default.command.Command.extend({NAME:"draw2d.command.CommandRemoveVertex",init:function(t,e){this._super(a.default.Configuration.i18n.command.deleteVertex),this.line=t,this.index=e,this.oldPoint=t.getVertices().get(e).clone()},canExecute:function(){return!0},execute:function(){this.redo()},undo:function(){this.line.insertVertexAt(this.index,this.oldPoint.x,this.oldPoint.y)},redo:function(){this.line.removeVertexAt(this.index)}})},"./src/command/CommandReplaceVertices.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandReplaceVertices=a.default.command.Command.extend({NAME:"draw2d.command.CommandReplaceVertices",init:function(t,e,n){this._super(a.default.Configuration.i18n.command.addSegment),this.line=t,this.originalVertices=e,this.newVertices=n},canExecute:function(){return!0},execute:function(){this.redo()},undo:function(){this.line.setVertices(this.originalVertices)},redo:function(){this.line.setVertices(this.newVertices)}})},"./src/command/CommandResize.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandResize=a.default.command.Command.extend({NAME:"draw2d.command.CommandResize",init:function(t,e,n){this._super(a.default.Configuration.i18n.command.resizeShape),this.figure=t,void 0===e?(this.oldWidth=t.getWidth(),this.oldHeight=t.getHeight()):(this.oldWidth=e,this.oldHeight=n)},setDimension:function(t,e){this.newWidth=0|t,this.newHeight=0|e},canExecute:function(){return this.newWidth!==this.oldWidth||this.newHeight!==this.oldHeight},execute:function(){this.redo()},undo:function(){this.figure.setDimension(this.oldWidth,this.oldHeight)},redo:function(){this.figure.setDimension(this.newWidth,this.newHeight)}})},"./src/command/CommandRotate.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandRotate=a.default.command.Command.extend({NAME:"draw2d.command.CommandRotate",init:function(t,e){this._super(a.default.Configuration.i18n.command.rotateShape),this.figure=t,this.oldAngle=t.getRotationAngle(),this.newAngle=e},canExecute:function(){return this.oldAngle!==this.newAngle},execute:function(){this.redo()},undo:function(){this.rotate(this.oldAngle)},redo:function(){this.rotate(this.newAngle)},rotate:function(t){var e=this.figure.getWidth(),n=this.figure.getHeight();this.figure.setRotationAngle(t),this.figure.setDimension(n,e),this.figure.portRelayoutRequired=!0}})},"./src/command/CommandStack.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandStack=Class.extend({NAME:"draw2d.command.CommandStack",init:function(){this.undostack=[],this.redostack=[],this.maxundo=50,this.transactionCommand=null,this.eventListeners=new a.default.util.ArrayList},setUndoLimit:function(t){return this.maxundo=t,this},markSaveLocation:function(){return this.undostack=[],this.redostack=[],this.notifyListeners(new a.default.command.Command,a.default.command.CommandStack.POST_EXECUTE),this},execute:function(t){if(void 0===t)throw"Missing parameter [command] for method call CommandStack.execute";return null===t||!1===t.canExecute()?this:null!==this.transactionCommand?(this.transactionCommand.add(t),this):(this.notifyListeners(t,a.default.command.CommandStack.PRE_EXECUTE,"PRE_EXECUTE"),this.undostack.push(t),t.execute(),this.redostack=[],this.undostack.length>this.maxundo&&(this.undostack=this.undostack.slice(this.undostack.length-this.maxundo)),this.notifyListeners(t,a.default.command.CommandStack.POST_EXECUTE,"POST_EXECUTE"),this)},startTransaction:function(t){if(null!==this.transactionCommand)throw"CommandStack is already within transactional mode. Don't call 'startTransaction";return this.transactionCommand=new a.default.command.CommandCollection(t),this},isInTransaction:function(){return null!==this.transactionCommand},commitTransaction:function(){if(null===this.transactionCommand)return this;var t=this.transactionCommand;return this.transactionCommand=null,1===t.commands.getSize()?this.execute(t.commands.first()):this.execute(t),this},undo:function(){var t=this.undostack.pop();return t&&(this.notifyListeners(t,a.default.command.CommandStack.PRE_UNDO),this.redostack.push(t),t.undo(),this.notifyListeners(t,a.default.command.CommandStack.POST_UNDO)),this},redo:function(){var t=this.redostack.pop();return t&&(this.notifyListeners(t,a.default.command.CommandStack.PRE_REDO),this.undostack.push(t),t.redo(),this.notifyListeners(t,a.default.command.CommandStack.POST_REDO)),this},getRedoLabel:function(){if(0===this.redostack.length)return"";var t=this.redostack[this.redostack.length-1];return t?t.getLabel():""},getUndoLabel:function(){if(0===this.undostack.length)return"";var t=this.undostack[this.undostack.length-1];return t?t.getLabel():""},canRedo:function(){return this.redostack.length>0},canUndo:function(){return this.undostack.length>0},addEventListener:function(t){return this.on("change",t)},on:function(t,e){if("change"!==t)throw"only event of kind 'change' is supported";if(e instanceof a.default.command.CommandStackEventListener)this.eventListeners.add(e);else if("function"==typeof e.stackChanged)this.eventListeners.add(e);else{if("function"!=typeof e)throw"Object doesn't implement required callback interface [draw2d.command.CommandStackListener]";this.eventListeners.add({stackChanged:e})}return this},removeEventListener:function(t){return this.off(t),this},off:function(t){return this.eventListeners.grep((function(e){return e===t||e.stackChanged===t})),this},notifyListeners:function(t,e,n){for(var i=new a.default.command.CommandStackEvent(this,t,e,n),r=this.eventListeners.getSize(),s=0;s<r;s++)this.eventListeners.get(s).stackChanged(i)}}),a.default.command.CommandStack.PRE_EXECUTE=1,a.default.command.CommandStack.PRE_REDO=2,a.default.command.CommandStack.PRE_UNDO=4,a.default.command.CommandStack.POST_EXECUTE=8,a.default.command.CommandStack.POST_REDO=16,a.default.command.CommandStack.POST_UNDO=32,a.default.command.CommandStack.POST_INIT=64,a.default.command.CommandStack.POST_MASK=a.default.command.CommandStack.POST_EXECUTE|a.default.command.CommandStack.POST_UNDO|a.default.command.CommandStack.POST_REDO,a.default.command.CommandStack.PRE_MASK=a.default.command.CommandStack.PRE_EXECUTE|a.default.command.CommandStack.PRE_UNDO|a.default.command.CommandStack.PRE_REDO},"./src/command/CommandStackEvent.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandStackEvent=Class.extend({NAME:"draw2d.command.CommandStackEvent",init:function(t,e,n,i){this.stack=t,this.command=e,this.details=n,this.action=i},getStack:function(){return this.stack},getCommand:function(){return this.command},getDetails:function(){return this.details},isPostChangeEvent:function(){return!!(this.getDetails()&a.default.command.CommandStack.POST_MASK)},isPreChangeEvent:function(){return!!(this.getDetails()&a.default.command.CommandStack.PRE_MASK)}})},"./src/command/CommandStackEventListener.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js");((i=r)&&i.__esModule?i:{default:i}).default.command.CommandStackEventListener=Class.extend({NAME:"draw2d.command.CommandStackEventListener",init:function(){},stackChanged:function(t){}})},"./src/command/CommandType.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandType=Class.extend({NAME:"draw2d.command.CommandType",init:function(t){this.policy=t},getPolicy:function(){return this.policy}}),a.default.command.CommandType.DELETE="DELETE",a.default.command.CommandType.MOVE="MOVE",a.default.command.CommandType.CONNECT="CONNECT",a.default.command.CommandType.MOVE_BASEPOINT="MOVE_BASEPOINT",a.default.command.CommandType.MOVE_VERTEX="MOVE_VERTEX",a.default.command.CommandType.MOVE_VERTICES="MOVE_VERTICES",a.default.command.CommandType.MOVE_GHOST_VERTEX="MOVE_GHOST_VERTEX",a.default.command.CommandType.RESIZE="RESIZE",a.default.command.CommandType.RESET="RESET",a.default.command.CommandType.ROTATE="ROTATE"},"./src/command/CommandUngroup.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.command.CommandUngroup=a.default.command.Command.extend({NAME:"draw2d.command.CommandUngroup",init:function(t,e){this._super(a.default.Configuration.i18n.command.ungroupShapes),e instanceof a.default.Selection?this.group=e.getAll().first():this.group=e,this.canvas=t,this.figures=this.group.getAssignedFigures().clone()},canExecute:function(){return!this.figures.isEmpty()},execute:function(){this.redo()},undo:function(){var t=this;this.figures.each((function(e,n){t.group.assignFigure(n)})),this.canvas.add(this.group),this.canvas.setCurrentSelection(this.group)},redo:function(){var t=this;this.figures.each((function(e,n){t.group.unassignFigure(n)})),this.canvas.setCurrentSelection(this.figures),this.canvas.remove(this.group)}})},"./src/css/contextMenuStyle.css":(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>y});var i=n("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),r=n.n(i),a=n("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),s=n.n(a),o=n("./node_modules/style-loader/dist/runtime/insertBySelector.js"),l=n.n(o),c=n("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),u=n.n(c),h=n("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),d=n.n(h),f=n("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),p=n.n(f),g=n("./node_modules/css-loader/dist/cjs.js!./src/css/contextMenuStyle.css"),m={};m.styleTagTransform=p(),m.setAttributes=u(),m.insert=l().bind(null,"head"),m.domAPI=s(),m.insertStyleElement=d();r()(g.default,m);const y=g.default&&g.default.locals?g.default.locals:void 0},"./src/css/draw2d.css":(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>y});var i=n("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),r=n.n(i),a=n("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),s=n.n(a),o=n("./node_modules/style-loader/dist/runtime/insertBySelector.js"),l=n.n(o),c=n("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),u=n.n(c),h=n("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),d=n.n(h),f=n("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),p=n.n(f),g=n("./node_modules/css-loader/dist/cjs.js!./src/css/draw2d.css"),m={};m.styleTagTransform=p(),m.setAttributes=u(),m.insert=l().bind(null,"head"),m.domAPI=s(),m.insertStyleElement=d();r()(g.default,m);const y=g.default&&g.default.locals?g.default.locals:void 0},"./src/css/tooltip.css":(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>y});var i=n("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),r=n.n(i),a=n("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),s=n.n(a),o=n("./node_modules/style-loader/dist/runtime/insertBySelector.js"),l=n.n(o),c=n("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),u=n.n(c),h=n("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),d=n.n(h),f=n("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),p=n.n(f),g=n("./node_modules/css-loader/dist/cjs.js!./src/css/tooltip.css"),m={};m.styleTagTransform=p(),m.setAttributes=u(),m.insert=l().bind(null,"head"),m.domAPI=s(),m.insertStyleElement=d();r()(g.default,m);const y=g.default&&g.default.locals?g.default.locals:void 0},"./src/decoration/connection/ArrowDecorator.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.decoration.connection.ArrowDecorator=a.default.decoration.connection.Decorator.extend({NAME:"draw2d.decoration.connection.ArrowDecorator",init:function(t,e){this._super(t,e)},paint:function(t){var e=t.set();return e.push(t.path(["M0 0","L",this.width," ",-this.height/2,"L",this.width," ",this.height/2,"L0 0"].join(""))),e.attr({fill:this.backgroundColor.rgba()}),e}})},"./src/decoration/connection/BarDecorator.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.decoration.connection.BarDecorator=a.default.decoration.connection.Decorator.extend({NAME:"draw2d.decoration.connection.BarDecorator",init:function(t,e){this._super(t,e)},paint:function(t){var e=t.set(),n=["M",this.width/2," ",-this.height/2];return n.push("L",this.width/2," ",this.height/2),e.push(t.path(n.join(""))),e.attr({fill:this.backgroundColor.rgba()}),e}})},"./src/decoration/connection/CircleDecorator.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.decoration.connection.CircleDecorator=a.default.decoration.connection.Decorator.extend({NAME:"draw2d.decoration.connection.CircleDecorator",init:function(t,e){this._super(t,e)},paint:function(t){var e=t.set();return e.push(t.circle(0,0,this.width/2)),e.attr({fill:this.backgroundColor.rgba()}),e}})},"./src/decoration/connection/CustomArrowDecorator.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.decoration.connection.CustomArrowDecorator=a.default.decoration.connection.Decorator.extend({NAME:"draw2d.decoration.connection.CustomArrowDecorator",init:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5;this._super(t,e),this.depressions=n},paint:function(t){var e=t.set();return e.push(t.path(["M0 0","L",this.width," ",-this.height/2,"L",this.width-this.depressions," ",0,"L",this.width," ",this.height/2,"Z"].join(""))),e.attr({fill:this.backgroundColor.rgba()}),e}})},"./src/decoration/connection/Decorator.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/Color.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.decoration.connection.Decorator=Class.extend({NAME:"draw2d.decoration.connection.Decorator",init:function(t,e){this.width=void 0===t||t<1?20:t,this.height=void 0===e||e<1?15:e,this.parent=null,this.color=null,this.backgroundColor=new r.default(250,250,250)},paint:function(t){},setParent:function(t){this.parent=t},setColor:function(t){return this.color=new r.default(t),null!==this.parent&&this.parent.repaint(),this},getColor:function(){return this.color},setBackgroundColor:function(t){return this.backgroundColor=new r.default(t),null!==this.parent&&this.parent.repaint(),this},getBackgroundColor:function(){return this.backgroundColor},setDimension:function(t,e){return this.width=t,this.height=e,this}})},"./src/decoration/connection/DiamondDecorator.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.decoration.connection.DiamondDecorator=a.default.decoration.connection.Decorator.extend({NAME:"draw2d.decoration.connection.DiamondDecorator",init:function(t,e){this._super(t,e)},paint:function(t){var e=t.set();return e.push(t.path(["M",this.width/2," ",-this.height/2,"L",this.width," ",0,"L",this.width/2," ",this.height/2,"L",0," ",0,"L",this.width/2," ",-this.height/2,"Z"].join(""))),e.attr({fill:this.backgroundColor.rgba()}),e}})},"./src/diyShape/basic/BaseContainer.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.basic.BaseContainer=r.default.shape.composite.Raft.extend({NAME:"draw2d.diyShape.basic.BaseContainer",init:function(t,e,n){var i=t||{},s=i.text,o=i.stroke,l=void 0===o?2:o,c=i.fontColor,u=void 0===c?"#4E5D78":c,h=i.color,d=void 0===h?"#8894A8":h,f=i.resizeable,p=void 0===f||f,g=i.bgColor,m=void 0===g?"none":g,y=i.alpha,v=void 0===y?1:y,b=i.width,x=void 0===b?250:b,w=i.height,S=void 0===w?450:w,C=i.dasharray,_=i.extraParam||{},P=_.titleBgColor,E=void 0===P?"#fff":P,k=_.dfSize,A=_.layout,R=void 0===A?"vertical":A,j=_.defaultSpace,M=_.firstSpace;this.defaultSpace=j||50,this.firstSpace=M||10,this.dfSize=k||26,this.layout=R,this.iconPath=null,this.variables=new r.default.util.ArrayList,this.type=null,this.title=null,this.dom=null,this.documentation=null,this.asynchronous=null,this.exclusive=!0,this.isSequential=!1,this._loopCardinality=null,this._collection=null,this._elementVariable=null,this._completionCondition=null,this._super((0,a.default)({fontColor:u,color:d,alpha:v,resizeable:p},t),(0,a.default)({type:this.setType,title:this.setTitle,iconPath:this.setIconPath},e),(0,a.default)({type:this.getType,title:this.getTitle,iconPath:this.getIconPath},n)),this.setBackgroundColor(m),this.setColor(d),this.setStroke(l),this.setRadius(2),this.setDimension(x,S),this.setResizeable(p),"vertical"===R?this.containerNameLabel=new r.default.shape.node.HorizontalBus({userData:{layout:R},width:x,height:this.dfSize,stroke:l,color:d,alpha:v,dasharray:C,fontColor:u,bgColor:E,label:s}):(this.containerNameLabel=new r.default.diyShape.basic.VerticalBusExtra({userData:{layout:R},width:this.dfSize,height:S,stroke:l,color:d,alpha:v,dasharray:C,fontColor:u,bgColor:E,label:this.getVerticalLabel(s)}),this.containerNameLabel.label.setRotationAngle(0)),this.add(this.containerNameLabel,new r.default.layout.locator.XYRelPortLocator(0,0)),this.containerNameLabel.label&&(this.containerNameLabel.label.setFontSize(14),this.containerNameLabel.label.setStroke(0),this.containerNameLabel.label.setBold(!1),this.containerNameLabel.label.setFontColor(new r.default.util.Color(u||"#1A253B")),this.containerNameLabel.setWidth(20)),this.installEditPolicy(new r.default.policy.figure.CustomRectangleSelectionFeedbackPolicy)},getUserData:function(){return{text:this.containerNameLabel?this.containerNameLabel.label.getText():"",shapeAttr:this.getShapeAttr()}},toFront:function(t){this._super(t);var e=this.getAboardFigures().clone();e.sort((function(t,e){return t.getZOrder()>e.getZOrder()?-1:1}));var n=this;return e.each((function(t,e){e.toFront(n)})),this},toBack:function(t){this._super(t);var e=this.getAboardFigures().clone();e.sort((function(t,e){return t.getZOrder()>e.getZOrder()?1:-1}));var n=this;return e.each((function(t,e){e.toBack(n)})),this},getLabelText:function(){return this.containerNameLabel.label.getText().replace(/\n+/g,"")},getVerticalLabel:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if(!t)return"";for(var e="",n=0;n<t.length;n++)e+=t.charAt(n)+"\n";return e="vertical"===this.layout?e.replace(/\n+/g,""):e.replace(/\n+/g,"\n")},setText:function(t){t?t&&!this.containerNameLabel.isVisible()&&this.containerNameLabel.setVisible(!0):this.containerNameLabel.setVisible(!1),this.containerNameLabel.label.setText(this.getVerticalLabel(t))},getType:function(){return this.iconPath},setType:function(t){return this.type=t,this.fireEvent("change:type",{value:this.type}),this},getTitle:function(){return this.title},setTitle:function(t){return this.title=t,this.fireEvent("change:title",{value:this.title}),this},getIconPath:function(){return this.iconPath},setIconPath:function(t){return this.iconPath=t,this.fireEvent("change:iconPath",{value:this.iconPath}),this},setContainerName:function(t){this.containerNameLabel.setText(t)},getVariable:function(t){for(var e=0;e<this.variables.getSize();e++){var n=this.variables.get(e);if(n.id===t)return n}},deleteVariable:function(t){var e=this.getVariable(t);this.variables.remove(e)},addVariable:function(t){this.variables.add(t)},getVariablesJSONObject:function(){return JSON.stringify(this.variables.data)},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(null!==this.originalWidth&&(this.scaleX=this.width/this.originalWidth,this.scaleY=this.height/this.originalHeight),t=t||{},this.applyAlpha(),this._super(t),"vertical"===this.layout?(this.containerNameLabel.setWidth(this.width),this.containerNameLabel.setHeight(this.dfSize)):(this.containerNameLabel.setWidth(this.dfSize),this.containerNameLabel.setHeight(this.height)))},alignVerticalCenter:function(t,e){var n=this.getBoundingBox(),i=0,r=0;t.forEach((function(t){i+=t.getHeight()/2,r+=t.getX()+t.getWidth()/2})),r=this.x+this.width/2;var a="vertical"===this.layout?this.containerNameLabel.getHeight():0,s=(n.h-a-this.defaultSpace-i)/t.length;e||(s=s>this.defaultSpace?this.defaultSpace:s);var o=n.y+a+this.firstSpace;try{t.sort((function(t,e){return t.y-e.y}))}catch(t){console.error(t)}t.forEach((function(t){t.setPosition(r-t.getWidth()/2,o),t.repaint(),o+=t.getHeight()+s}))},alignHorizontalCenter:function(t,e){var n=this.getBoundingBox(),i=0,r=0;t.forEach((function(t){i+=t.getWidth()/2,r+=t.getY()+t.getHeight()/2})),r=this.y+this.height/2;var a="vertical"===this.layout?0:this.containerNameLabel.getWidth(),s=(n.w-a-this.defaultSpace-i)/t.length;e||(s=s>this.defaultSpace?this.defaultSpace:s);var o=n.x+a+this.firstSpace;try{t.sort((function(t,e){return t.x-e.x}))}catch(t){console.error(t)}t.forEach((function(t){t.setPosition(o,r-t.getHeight()/2),t.repaint(),o+=t.getWidth()+s}))},layoutBy:function(t,e){var n=this.getAboardFigures(!0),i=n&&n.data||[];i.length<2||("horizontal"===t?this.alignHorizontalCenter(i,e):this.alignVerticalCenter(i,e))},getShapeAttr:function(){var t=this||{},e=t.bgColor,n=t.stroke,i=t.alpha,r=t.color,a=t.width,s=t.height,o=t.dasharray,l=(this.containerNameLabel||{}).bgColor,c=this.containerNameLabel.label||{},u=c.bold,h=c.fontSize,d=c.fontColor;return{config:{},text:this.getLabelText(),width:a,height:s,fontSize:h,stroke:n,bold:u,alpha:i,dasharray:o,fontColor:d.hashString||d.rgba(),color:r.hashString||r.rgba(),bgColor:e.hashString||e.rgba(),titleBgColor:l.hashString||l.rgba()}},setShapeAttr:function(t){var e=t||{},n=e.width,r=e.height,a=e.text,s=e.fontSize,o=e.bold,l=e.fontColor,c=e.bgColor,u=e.titleBgColor,h=function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}(e,["width","height","text","fontSize","bold","fontColor","bgColor","titleBgColor"]);this.attr(i({width:n,height:r,text:a,fontSize:s,bold:o,fontColor:l,bgColor:c},h)),this.containerNameLabel.attr(i({text:a,fontSize:s,bold:o,fontColor:l,bgColor:u},h||{})),this.setText(this.getVerticalLabel(a)),this.containerNameLabel.label.attr({fontSize:s,bold:o,fontColor:l})}})},"./src/diyShape/basic/BaseEvent.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.basic.BaseEvent=r.default.shape.icon.Icon.extend(i({NAME:"draw2d.diyShape.basic.BaseEvent",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2],i=t||{},s=i.name,o=i.extraParam,l=o||{},c=l.showIconLabel,u=(l.showArrow,l.labelLocator),h=void 0===u?"BottomLocator":u;this.extraParam=o,this.name=s||null,this._super((0,a.default)({width:30,height:30,stroke:1,radius:"50%",icon:""},t),e,n),this.addCssClass("cursor-pointer"),c&&(this.label=new r.default.shape.basic.Label({text:s,stroke:0,bold:!0,fontColor:"#1A253B",fontSize:14}),this.add(this.label,new r.default.layout.locator[h]))}},r.default.diyShape.common.iconCommFunction))},"./src/diyShape/basic/BaseGateWay.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.basic.BaseGateWay=r.default.shape.icon.Icon.extend(i({NAME:"draw2d.diyShape.basic.BaseGateWay",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2],i=t||{},s=i.name,o=i.extraParam,l=o||{},c=l.showIconLabel,u=(l.showArrow,l.labelLocator),h=void 0===u?"BottomLocator":u;this.extraParam=o,this.name=s||null,this._super((0,a.default)({width:42,height:42,icon:""},t),e,n),this.addCssClass("cursor-pointer"),c&&(this.label=new r.default.shape.basic.Label({text:s,stroke:0,bold:!0,fontColor:"#1A253B",fontSize:14}),this.add(this.label,new r.default.layout.locator[h]))}},r.default.diyShape.common.iconCommFunction))},"./src/diyShape/basic/FlowText.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}n("./src/css/tooltip.css"),r.default.diyShape.basic.FlowText=r.default.shape.basic.Label.extend({NAME:"draw2d.diyShape.basic.FlowText",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this,n=arguments[1],r=arguments[2];this.tooltip=null,this.tooltipTimer=-1;var s=(t||{}).text,o=void 0===s?"":s;this._super((0,a.default)({userData:{text:o},fontSize:14,bold:!1,stroke:0,fontColor:"#1A253B",bgColor:"rgba(0,0,0,0)"},t),n,r),this.setResizeable(!0),this.setPadding(5),this.setRadius(5),this.on("dragstart",(function(){e.hideTooltip(!0)})),this.on("mouseenter",(function(){e.tooltipTimer=window.setTimeout((function(){e.tooltipTimer=-1,e.showTooltip()}),500)})),this.on("mouseleave",(function(){e.hideTooltip()})),this.on("move",(function(){e.positionTooltip()})),this.on("change:text",(function(t){var e=t.getUserData()||{};t.setUserData(i({},e,{text:t.getText()}))}))},getUserData:function(){return{text:this.getText(),shapeAttr:this.getShapeAttr()}},setCanvas:function(t){null!==this.canvas&&this.canvas.off(this.zoomCallback),this._super(t),null!==this.canvas&&this.canvas.on("zoom",this.zoomCallback)},hideTooltip:function(t){-1!==this.tooltipTimer?(window.clearTimeout(this.tooltipTimer),this.tooltipTimer=-1):null!==this.tooltip&&(t?this.tooltip.remove():this.tooltip.fadeOut(500,(function(){$(this).remove()})),this.tooltip=null)},showTooltip:function(){this.tooltip=$('<div class="draw2d-tooltip">双击编辑，右键菜单可删除</div>').appendTo("body").hide().fadeIn(500),this.positionTooltip()},positionTooltip:function(){if(null!==this.tooltip){var t=this.tooltip.outerWidth(!0),e=this.canvas.fromCanvasToDocumentCoordinate(this.getAbsoluteX()+this.getWidth()/2-t/2,this.getAbsoluteY()-this.getHeight()-10);e.x+=this.canvas.getScrollLeft(),e.y+=this.canvas.getScrollTop(),this.tooltip.css({top:e.y,left:e.x})}},getShapeAttr:function(){var t=this||{},e=t.bold,n=t.fontSize,i=t.fontColor,r=t.text,a=t.bgColor,s=t.dasharray,o=t.stroke,l=t.alpha,c=t.color;return{config:{text:{rules:[{required:!0,message:"必填"}]},fontSize:{rules:[{required:!0,message:"必填"}]}},text:r,fontSize:n,stroke:o,bold:e,alpha:l,fontColor:i.hashString||i.rgba(),color:c.hashString||c.rgba(),bgColor:a.hashString||a.rgba(),dasharray:s}},setShapeAttr:function(t){this.attr(t)}})},"./src/diyShape/basic/Group.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.basic.Group=i.default.shape.composite.Raft.extend({NAME:"draw2d.diyShape.basic.Group",init:function(t,e,n){var a=this,s=t||{},o=s.name,l=void 0===o?"分组":o,c=s.color,u=void 0===c?"#1A253B":c,h=s.bgColor,d=void 0===h?"#EBF8EC":h,f=s.stroke,p=void 0===f?1:f,g=s.radius,m=void 0===g?2:g,y=s.fontSize,v=void 0===y?14:y,b=s.fontColor,x=void 0===b?"#1A253B":b,w=(s.draggable,s.resizeable,s.width),S=void 0===w?500:w,C=s.height,_=void 0===C?250:C;this.name=l,this.iconPath=null,this.listeners=new i.default.util.ArrayList,this.variables=new i.default.util.ArrayList,this.title=null,this.type=null;var P=this;this.expanded=!0,this.collapsedWidth=100,this.collapsedHeight=28,this.cacheAboardFigures=new i.default.util.ArrayList,this._super((0,r.default)({dasharray:"- "},t),(0,r.default)({type:this.setType,title:this.setTitle,iconPath:this.setIconPath},e),(0,r.default)({type:this.getType,title:this.getTitle,iconPath:this.getIconPath},n)),this.setBackgroundColor(d),this.setColor(u),this.setStroke(p),this.setRadius(m),this.setDimension(S,_),this.containerNameLabel=new i.default.shape.basic.Label({fontSize:v,fontColor:x}),this.containerNameLabel.setText(l),this.containerNameLabel.setStroke(0),this.add(this.containerNameLabel,new i.default.layout.locator.XYAbsPortLocator({x:24,y:2}));var E=new i.default.layout.locator.XYAbsPortLocator({x:8,y:7}),k=new i.default.shape.icon.Contract({width:14,height:14,color:"#1A253B"}),A=new i.default.shape.icon.Expand({width:14,height:14,visible:!1,color:"#1A253B"});k.disableClick=!0,A.disableClick=!0,k.addCssClass("cursor-pointer"),A.addCssClass("cursor-pointer"),this.add(k,E),this.add(A,E);var R=function(){P.expanded=!P.expanded,k.setVisible(P.expanded),A.setVisible(!P.expanded),P.expanded?(P.setDraggable(!0),P.setResizeable(!0),P.cacheAboardFigures.each((function(t,e){e.setVisible(!0),e.getPorts().each((function(t,e){e.setLocator(e._originalLocator),e.setConnectionDirection(e._originalDirection)})),e.portRelayoutRequired=!0,e.layoutPorts()})),P.attr(a.oldDim),a.installEditPolicy(new i.default.policy.figure.CustomRectangleSelectionFeedbackPolicy)):(P.setDraggable(!1),P.setResizeable(!1),P.oldDim={width:P.getWidth(),height:P.getHeight()},P.cacheAboardFigures=P.aboardFigures,P.aboardFigures.each((function(t,e){var n=e.getAbsolutePosition().subtract(P.getAbsolutePosition());e.setVisible(!1),e.getPorts().each((function(t,e){e._originalLocator=e.getLocator(),e._originalDirection=e.preferredConnectionDirection,e.setConnectionDirection(e.getConnectionDirection()),e.getConnectionDirection()===i.default.geo.Rectangle.DIRECTION_RIGHT?e.setLocator({relocate:function(t,e){e.setPosition(-n.x+P.collapsedWidth+1,-n.y+P.collapsedHeight/2)},NAME:e._originalLocator.NAME}):e.setLocator({relocate:function(t,e){e.setPosition(-n.x-1,-n.y+P.collapsedHeight/2)},NAME:e._originalLocator.NAME})})),e.portRelayoutRequired=!0,e.layoutPorts()})),P.attr({boundingBox:{x:P.getX(),y:P.getY(),minWidth:P.getCollapsedWidth(),minHeight:P.getCollapsedHeight(),width:P.getCollapsedWidth(),height:P.getCollapsedHeight()}}),P.installEditPolicy(new i.default.policy.figure.CustomAntSelectionFeedbackPolicy))};this.installEditPolicy(new i.default.policy.figure.CustomRectangleSelectionFeedbackPolicy),k.on("click",R),A.on("click",R)},getCollapsedWidth:function(){var t=this.containerNameLabel?this.containerNameLabel.getWidth():0;return t>this.collapsedWidth?t+28:this.collapsedWidth},getCollapsedHeight:function(){var t=this.containerNameLabel?this.containerNameLabel.getHeight():0;return t>this.collapsedHeight?t+4:this.collapsedHeight},getType:function(){return this.iconPath},setType:function(t){return this.type=t,this.fireEvent("change:type",{value:this.type}),this},getTitle:function(){return this.title},setTitle:function(t){return this.title=t,this.fireEvent("change:title",{value:this.title}),this},getIconPath:function(){return this.iconPath},setIconPath:function(t){return this.iconPath=t,this.fireEvent("change:iconPath",{value:this.iconPath}),this},setContainerName:function(t){this.containerNameLabel.setText(t),this.name=t},getListener:function(t){for(var e=0;e<this.listeners.getSize();e++){var n=this.listeners.get(e);if(n.getId()===t)return n}},deleteListener:function(t){var e=this.getListener(t);this.listeners.remove(e)},addListener:function(t){this.listeners.add(t)},setListeners:function(t){this.listeners=t},getVariable:function(t){for(var e=0;e<this.variables.getSize();e++){var n=this.variables.get(e);if(n.id===t)return n}},deleteVariable:function(t){var e=this.getVariable(t);this.variables.remove(e)},addVariable:function(t){this.variables.add(t)},getVariablesJSONObject:function(){return JSON.stringify(this.variables.data)},getUserData:function(){return{text:this.containerNameLabel?this.containerNameLabel.getText():this.name,shapeAttr:this.getShapeAttr()}},getShapeAttr:function(){var t=this||{},e=t.bgColor,n=t.stroke,i=t.alpha,r=t.color,a=t.dasharray,s=this.containerNameLabel||{},o=s.bold,l=s.fontSize,c=s.fontColor;return{config:{},text:s.text,fontSize:l,stroke:n,bold:o,alpha:i,dasharray:a,fontColor:c.hashString||c.rgba(),color:r.hashString||r.rgba(),bgColor:e.hashString||e.rgba()}},setShapeAttr:function(t){var e=t||{},n=e.text,i=e.fontSize,r=e.bold,a=e.fontColor;e.iconColor,function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i])}(e,["text","fontSize","bold","fontColor","iconColor"]);this.attr(t),this.containerNameLabel.attr({text:n,fontSize:i,bold:r,fontColor:a})}})},"./src/diyShape/basic/HorizontalLane.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.basic.HorizontalLane=i.default.diyShape.basic.BaseContainer.extend({NAME:"draw2d.diyShape.basic.HorizontalLane",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({text:"水平泳道",width:600,height:250,extraParam:{layout:"horizontal"}},t),e,n)}})},"./src/diyShape/basic/HorizontalLine.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.basic.HorizontalLine=i.default.diyShape.icon.HLine.extend({NAME:"draw2d.diyShape.basic.HorizontalLine",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({name:"水平分割线",width:500,stroke:0,height:1,minHeight:1,color:"#4E5D78",bgColor:"#4E5D78"},t),e,n),this.installEditPolicy(new i.default.policy.figure.CustomHorizontalResizeSelectionFeedbackPolicy),this.on("added",(function(t,e){e.figure.setHeight(1)}))},getUserData:function(){return{text:this.name,shapeAttr:this.getShapeAttr()}},getShapeAttr:function(){var t=this||{},e=t.width,n=t.height,i=t.color;return{config:{},width:e,height:n,color:i.hashString||i.rgba()}},setShapeAttr:function(t){var e=t||{},n=e.width,i=e.height,r=e.color;this.attr({width:n,height:i,color:r})}})},"./src/diyShape/basic/HorizontalPool.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.basic.HorizontalPool=i.default.diyShape.basic.BaseContainer.extend({NAME:"draw2d.diyShape.basic.HorizontalPool",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({name:"水平泳池",text:"水平泳池",width:700,height:300,extraParam:{layout:"horizontal"}},t),e,n)},addLane:function(){},removeLane:function(){},getLane:function(){}})},"./src/diyShape/basic/HtmlTask.js":(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.basic.HtmlTask=r.default.shape.basic.HtmlNode.extend(i({NAME:"draw2d.diyShape.basic.HtmlTask",init:function(t,e,n){this._super((0,a.default)({width:100,height:36,cssClass:"html-node"},t),e,n),this.candidateGroups=new r.default.util.ArrayList,this.formProperties=new r.default.util.ArrayList,this.taskListeners=new r.default.util.ArrayList;var i=t||{},s=i.nodeType,o=i.isNoneBiz,l=i.extraParam;this.nodeType=s,this.extraParam=l,this.multiPorts=!0,!o&&this.initPorts()},addCandidateGroup:function(t){this.candidateGroups.contains(t)||this.candidateGroups.add(t)},addFormProperties:function(t){this.formProperties.add(t)},deleteCandidateGroup:function(t){var e=this.getCandidateGroup(t);this.candidateGroups.remove(e)},deleteFormProperties:function(t){var e=this.getFormProperties(t);this.formProperties.remove(e)},setFormProperties:function(t){this.formProperties=t},setTaskListeners:function(t){this.taskListeners=t},getCandidateGroup:function(t){for(var e=0;e<this.candidateGroups.getSize();e++){var n=this.candidateGroups.get(e);if(n===t)return n}return null},getFormProperties:function(t){for(var e=0;e<this.formProperties.getSize();e++){var n=this.formProperties.get(e);if(n.id==t)return n}}},r.default.diyShape.common.shapeCommFunction)),e.default=r.default.diyShape.basic.HtmlTask,t.exports=e.default},"./src/diyShape/basic/Remarks.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}n("./src/css/tooltip.css"),i.default.diyShape.basic.Remarks=i.default.shape.basic.Label.extend({NAME:"draw2d.diyShape.basic.Remarks",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this.tooltip=null,this.tooltipTimer=-1;var a=t||{},s=a.resizeable,o=void 0===s||s,l=a.text,c=void 0===l?"":l;this._super((0,r.default)({userData:{text:c},bold:!1,stroke:0,fontColor:"#1A253B",fontSize:12,bgColor:"#ffdc80",resizeable:o,repaintBlocked:!0,width:120,height:60},t),e,n),this.setResizeable(o),this.setPadding(8),this.setRadius(4),this.installEditPolicy(new i.default.policy.figure.CustomRectangleSelectionFeedbackPolicy)},getUserData:function(){return{text:this.getText(),shapeAttr:this.getShapeAttr()}},getMinWidth:function(){return null===this.shape?0:(this.cachedMinWidth=this.svgNodes.getBBox(!0).width+this.padding.left+this.padding.right+2*this.getStroke(),this.cachedMinWidth)},getMinHeight:function(){return null===this.shape?0:(this.cachedMinHeight=this.svgNodes.getBBox(!0).height+this.padding.top+this.padding.bottom+2*this.getStroke(),this.cachedMinHeight)},getWidth:function(){return this.cachedWidth=Math.max(this.width,this.getMinWidth()),this.cachedWidth},getHeight:function(){return this.cachedHeight=Math.max(this.height,this.getMinHeight()),this.cachedHeight},setCanvas:function(t){null!==this.canvas&&this.canvas.off(this.zoomCallback),this._super(t),null!==this.canvas&&this.canvas.on("zoom",this.zoomCallback)},hideTooltip:function(t){-1!==this.tooltipTimer?(window.clearTimeout(this.tooltipTimer),this.tooltipTimer=-1):null!==this.tooltip&&(t?this.tooltip.remove():this.tooltip.fadeOut(500,(function(){$(this).remove()})),this.tooltip=null)},showTooltip:function(){this.tooltip=$('<div class="draw2d-tooltip">双击编辑，右键菜单可删除</div>').appendTo("body").hide().fadeIn(500),this.positionTooltip()},positionTooltip:function(){if(null!==this.tooltip){var t=this.tooltip.outerWidth(!0),e=this.canvas.fromCanvasToDocumentCoordinate(this.getAbsoluteX()+this.getWidth()/2-t/2,this.getAbsoluteY()-this.getHeight()-10);e.x+=this.canvas.getScrollLeft(),e.y+=this.canvas.getScrollTop(),this.tooltip.css({top:e.y,left:e.x})}},getShapeAttr:function(){var t=this||{},e=t.bold,n=t.fontSize,i=t.fontColor,r=t.text,a=t.width,s=t.height,o=t.bgColor,l=t.dasharray,c=t.stroke,u=t.alpha,h=t.color;return{config:{text:{rules:[{required:!0,message:"必填"}]},fontSize:{rules:[{required:!0,message:"必填"}]}},text:r,width:a,height:s,fontSize:n,stroke:c,bold:e,alpha:u,fontColor:i.hashString||i.rgba(),color:h.hashString||h.rgba(),bgColor:o.hashString||o.rgba(),dasharray:l}},setShapeAttr:function(t){this.attr(t)}})},"./src/diyShape/basic/VerticalBusExtra.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.basic.VerticalBusExtra=i.default.shape.node.VerticalBus.extend({NAME:"draw2d.diyShape.basic.VerticalBusExtra",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({},t),e,n)},getMinWidth:function(){return 20}})},"./src/diyShape/basic/VerticalLane.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.basic.VerticalLane=i.default.diyShape.basic.BaseContainer.extend({NAME:"draw2d.diyShape.basic.VerticalLane",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({text:"垂直泳道",width:300,height:550,extraParam:{layout:"vertical"}},t),e,n)}})},"./src/diyShape/basic/VerticalLine.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.basic.VerticalLine=i.default.diyShape.icon.VLine.extend({NAME:"draw2d.diyShape.basic.VerticalLine",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({name:"垂直分割线",width:1,minWidth:1,stroke:0,height:500,color:"#4E5D78",bgColor:"#4E5D78"},t),e,n),this.installEditPolicy(new i.default.policy.figure.CustomVerticalResizeSelectionFeedbackPolicy),this.on("added",(function(t,e){e.figure.setWidth(1)}))},getUserData:function(){return{text:this.name,shapeAttr:this.getShapeAttr()}},getShapeAttr:function(){var t=this||{},e=t.width,n=t.height,i=t.color;return{config:{},width:e,height:n,color:i.hashString||i.rgba()}},setShapeAttr:function(t){var e=t||{},n=e.width,i=e.height,r=e.color;this.attr({width:n,height:i,color:r})}})},"./src/diyShape/basic/VerticalPool.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.basic.VerticalPool=i.default.diyShape.basic.BaseContainer.extend({NAME:"draw2d.diyShape.basic.VerticalPool",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({name:"垂直泳池",text:"垂直泳池",width:300,height:550,extraParam:{layout:"vertical"}},t),e,n)},addLane:function(){},removeLane:function(){},getLane:function(){}})},"./src/diyShape/common.js":(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.iconCommFunction=e.shapeCommFunction=e.commFunction=e.nodeStyleEnum=void 0;var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}var o={LINE:"line",FILL:"fill"},l={setShapeText:function(t,e,n){this.name=t,this.label&&this.label.setText(t),this.label&&this.adjustSizeToFitContents&&this.adjustSizeToFitContents({minWidth:e,minHeight:n})},shapeFilter:function(t){var e=this.getFilter(t);this.shape&&this.shape.filter&&this.shape.filter(e)},getShapeText:function(){return this.label?this.label.getText():this.name},getTextSize:function(t){var e=t.getText(),n=t.getFontSize(),i=t.getFontFamily(),r=document.createElement("div");r.style.position="absolute",r.style.visibility="hidden",r.style.fontSize=n,r.style.fontFamily=i,r.style.fontWeight=t.isBold()?"bold":"",r.innerHTML=e,document.body.appendChild(r);var a=r.clientWidth,s=r.clientHeight;return document.body.removeChild(r),{width:a,height:s}},getLightenColor:function(t,e){var n=new r.default.util.Color(t),i=n.getRed(),a=n.getGreen(),s=n.getBlue();return i=Math.min(255,i+e/100*255),a=Math.min(255,a+e/100*255),s=Math.min(255,s+e/100*255),new r.default.util.Color(i,a,s)},getFilter:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.x,i=void 0===n?"-50%":n,r=e.y,a=void 0===r?"-50%":r,s=e.width,o=void 0===s?"200%":s,l=e.height,c=void 0===l?"200%":l,u=t||this.getColor().hash(),h=this.canvas.paper.createFilter();return h.createShadow(0,0,10,1,u),h.element.setAttribute("x",i),h.element.setAttribute("y",a),h.element.setAttribute("width",o),h.element.setAttribute("height",c),h},initPorts:function(){this.space=8,this.port={};var t=(r.default.Configuration.custom||{}).arrowMenuHoverTime,e=void 0===t?800:t,n=(r.default.Configuration.custom||{}).portAttr,a=void 0===n?{}:n;this.port.top=this.createPort("hybrid",new r.default.layout.locator.TopLocator,a),this.port.bottom=this.createPort("hybrid",new r.default.layout.locator.BottomLocator,a),this.port.left=this.createPort("hybrid",new r.default.layout.locator.LeftLocator,a),this.port.right=this.createPort("hybrid",new r.default.layout.locator.RightLocator,a),this.multiPorts=!0;var s=this.extraParam||{},o=s.showArrow,l=s.arrowAttr;if(o){this.decoration={top:new r.default.diyShape.icon.Arrow2Top(i({},l||{},{visible:!1})),right:new r.default.diyShape.icon.Arrow2Right(i({},l||{},{visible:!1})),bottom:new r.default.diyShape.icon.Arrow2Bottom(i({},l||{},{visible:!1})),left:new r.default.diyShape.icon.Arrow2Left(i({},l||{},{visible:!1}))},this.port.top.add(this.decoration.top,new r.default.layout.locator.XYAbsPortLocator({x:-this.decoration.top.width/2,y:-this.decoration.top.height-this.space})),this.port.right.add(this.decoration.right,new r.default.layout.locator.XYAbsPortLocator({x:this.space,y:-this.decoration.right.height/2})),this.port.bottom.add(this.decoration.bottom,new r.default.layout.locator.XYAbsPortLocator({x:-this.decoration.bottom.width/2,y:this.space})),this.port.left.add(this.decoration.left,new r.default.layout.locator.XYAbsPortLocator({x:-this.decoration.left.width-this.space,y:-this.decoration.left.height/2}));var c=this;this.port.top.on("mouseenter",(function(t,e){c.decoration.top.setVisible(!0),c.decoration.top.toFront&&c.decoration.top.toFront(),c.decoration.top.setAlpha(.4),t.canvas.hideArrowMenu("top",t,e.event)})).on("mouseleave",(function(t,e){})),this.port.right.on("mouseenter",(function(t,e){c.decoration.right.setVisible(!0),c.decoration.right.toFront&&c.decoration.right.toFront(),c.decoration.right.setAlpha(.4),t.canvas.hideArrowMenu("right",t,e.event)})).on("mouseleave",(function(t,e){})),this.port.bottom.on("mouseenter",(function(t,e){c.decoration.bottom.setVisible(!0),c.decoration.bottom.toFront&&c.decoration.bottom.toFront(),c.decoration.bottom.setAlpha(.4),t.canvas.hideArrowMenu("bottom",t,e.event)})).on("mouseleave",(function(t,e){})),this.port.left.on("mouseenter",(function(t,e){c.decoration.left.setVisible(!0),c.decoration.left.toFront&&c.decoration.left.toFront(),c.decoration.left.setAlpha(.4),t.canvas.hideArrowMenu("left",t,e.event)})).on("mouseleave",(function(t,e){})),this.decoration.top.on("mouseenter",(function(t,n){t.setAlpha(1),c.hoverTimeout=setTimeout((function(){t.canvas.addShapeByArrow("top",c,n.event)}),e)})).on("mouseleave",(function(t,e){clearTimeout(c.hoverTimeout),c.hoverTimeout=null,t.setVisible(!1)})),this.decoration.right.on("mouseenter",(function(t,n){t.setAlpha(1),c.hoverTimeout=setTimeout((function(){t.canvas.addShapeByArrow("right",c,n.event)}),e)})).on("mouseleave",(function(t,e){clearTimeout(c.hoverTimeout),c.hoverTimeout=null,t.setVisible(!1)})),this.decoration.bottom.on("mouseenter",(function(t,n){t.setAlpha(1),c.hoverTimeout=setTimeout((function(){t.canvas.addShapeByArrow("bottom",c,n.event)}),e)})).on("mouseleave",(function(t,e){clearTimeout(c.hoverTimeout),c.hoverTimeout=null,t.setVisible(!1)})),this.decoration.left.on("mouseenter",(function(t,n){t.setAlpha(1),c.hoverTimeout=setTimeout((function(){t.canvas.addShapeByArrow("left",c,n.event)}),e)})).on("mouseleave",(function(t,e){clearTimeout(c.hoverTimeout),c.hoverTimeout=null,t.setVisible(!1)}))}},initBottomPort:function(){this.space=8;var t=(r.default.Configuration.custom||{}).arrowMenuHoverTime,e=void 0===t?800:t,n=(r.default.Configuration.custom||{}).portAttr,a=void 0===n?{}:n;this.port=this.createPort("output",new r.default.layout.locator.BottomLocator,a),this.multiPorts=!1;var s=this.extraParam||{},o=s.showArrow,l=s.arrowAttr;if(o){this.decoration={bottom:new r.default.diyShape.icon.Arrow2Bottom(i({},l||{},{visible:!1}))},this.port.add(this.decoration.bottom,new r.default.layout.locator.XYAbsPortLocator({x:-this.decoration.bottom.width/2,y:this.space}));var c=this;this.port.on("mouseenter",(function(t,e){c.decoration.bottom.setVisible(!0),c.decoration.bottom.toFront&&c.decoration.bottom.toFront(),c.decoration.bottom.setAlpha(.4),t.canvas.hideArrowMenu("bottom",t,e.event)})).on("mouseleave",(function(t,e){})),this.decoration.bottom.on("mouseenter",(function(t,n){t.setAlpha(1),c.hoverTimeout=setTimeout((function(){t.canvas.addShapeByArrow("bottom",c,n.event)}),e)})).on("mouseleave",(function(t,e){clearTimeout(c.hoverTimeout),c.hoverTimeout=null,t.setVisible(!1)}))}},initTopPort:function(){this.space=8;var t=(r.default.Configuration.custom||{}).arrowMenuHoverTime,e=void 0===t?800:t,n=(r.default.Configuration.custom||{}).portAttr,a=void 0===n?{}:n;this.port=this.createPort("output",new r.default.layout.locator.TopLocator,a),this.multiPorts=!1;var s=this.extraParam||{},o=s.showArrow,l=s.arrowAttr;if(o){this.decoration={bottom:new r.default.diyShape.icon.Arrow2Bottom(i({},l||{},{visible:!1}))},this.port.add(this.decoration.bottom,new r.default.layout.locator.XYAbsPortLocator({x:-this.decoration.bottom.width/2,y:this.space}));var c=this;this.port.on("mouseenter",(function(t,e){c.decoration.bottom.setVisible(!0),c.decoration.bottom.toFront&&c.decoration.bottom.toFront(),c.decoration.bottom.setAlpha(.4),t.canvas.hideArrowMenu("bottom",t,e.event)})).on("mouseleave",(function(t,e){})),this.decoration.bottom.on("mouseenter",(function(t,n){t.setAlpha(1),c.hoverTimeout=setTimeout((function(){t.canvas.addShapeByArrow("bottom",c,n.event)}),e)})).on("mouseleave",(function(t,e){clearTimeout(c.hoverTimeout),c.hoverTimeout=null,t.setVisible(!1)}))}}},c=(0,a.default)({adjustSizeToFitContents:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.minWidth,n=void 0===e?110:e,i=t.minHeight,a=void 0===i?36:i,s=0,o=0;this.children.each((function(t,e){if(e instanceof r.default.shape.basic.Label){var n=e.width||0,i=e.height||0;s=Math.max(s,n),o=Math.max(o,i)}})),s=s>n?s:n,o=o>a?o:a,this.setBoundingBox(new r.default.geo.Rectangle(this.x,this.y,s,o)),this.repaint()},setNodeStyle:function(t,e){var n=this;if(t===r.default.diyShape.common.nodeStyleEnum.LINE){var i=e||this.attr||{},a=i.radius,s=void 0===a?4:a,o=i.stroke,l=void 0===o?3:o,c=i.color,u=i.fontColor,h=void 0===u?"#1A253B":u,d=i.fontSize,f=void 0===d?14:d,p=i.extraParam||{},g=p.icon,m=p.iconSvg,y=p.iconPaneBgColor,v=void 0===y?"none":y,b=p.iconPaneShow,x=p.iconWidth,w=void 0===x?14:x;this.setStroke(l);var S=v||this.getLightenColor(c,65);this.icon=m?new m({color:c,stroke:0,width:w,height:w}):this.getIcon(g,{type:t,attr:{color:c,stroke:0,width:w,height:w}}),this.iconPane=new r.default.shape.basic.Rectangle({bgColor:b?S:"none",color:c,stroke:b?l:0,radius:s,selectable:!1}),this.iconPane.add(this.icon,new r.default.layout.locator.CenterLocator),this.label=new r.default.shape.basic.Label({color:c,bold:!0,fontSize:f,fontColor:h,padding:{top:4,bottom:4,left:8,right:12},bgColor:"none",resizeable:!1,selectable:!1,radius:s,stroke:0}),this.add(this.label,{row:0,col:1,align:"left",valign:"middle"}),this.add(this.iconPane,{row:0,col:0}),this.setBackgroundColor("#FFFFFF"),this.icon.on("mouseenter",(function(t,e){n.fireEvent("mouseenter")})),this.iconPane.on("mouseenter",(function(t,e){n.fireEvent("mouseenter")})),this.label.on("mouseenter",(function(t,e){n.fireEvent("mouseenter")}))}else{var C=e||this.attr||{},_=C.color,P=C.fontSize,E=void 0===P?14:P,k=C.bgColor,A=C.fontColor,R=void 0===A?"#FFFFFF":A,j=C.extraParam||{},M=j.iconWidth,D=void 0===M?14:M,T=j.icon,L=j.iconSvg;this.setStroke(1),this.icon=L?new L({color:"#FFFFFF",stroke:0,width:D,height:D}):this.getIcon(T,{type:t,attr:{color:"#FFFFFF",stroke:0,width:D,height:D}}),this.iconPane=new r.default.shape.basic.Label({color:_,stroke:0,radius:0,selectable:!1}),this.iconPane.add(this.icon,new r.default.layout.locator.CenterLocator),this.label=new r.default.shape.basic.Label({color:_,bold:!0,fontSize:E,fontColor:R,padding:{top:4,bottom:4,left:0,right:12},bgColor:"none",resizeable:!1,selectable:!1,radius:0,stroke:0}),this.add(this.label,{row:0,col:1,align:"left",valign:"middle"}),this.add(this.iconPane,{row:0,col:0,align:"center",valign:"middle"}),this.setBackgroundColor(k),this.icon.on("mouseenter",(function(t,e){n.fireEvent("mouseenter")})),this.iconPane.on("mouseenter",(function(t,e){n.fireEvent("mouseenter")})),this.label.on("mouseenter",(function(t,e){n.fireEvent("mouseenter")}))}this.icon.addCssClass("cursor-pointer"),this.iconPane.addCssClass("cursor-pointer"),this.label.addCssClass("cursor-pointer"),this.repaintAllChildren()},repaintAllChildren:function(t){this.iconPane&&this.iconPane.repaint(),this.icon&&this.icon.repaint(),this.label&&this.label.repaint(),this.repaint()},getIcon:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.type,i=void 0===n?r.default.diyShape.common.nodeStyleEnum.FILL:n,a=e.attr,s=((a||{}).extraParam||{}).getIconFun;if(i===r.default.diyShape.common.nodeStyleEnum.FILL)switch(t){case"Start":return new r.default.diyShape.icon.StartFill(a);case"End":return new r.default.diyShape.icon.EndFill(a);case"User":return new r.default.diyShape.icon.ApproveFill(a);case"DataRule":return new r.default.diyShape.icon.DataRuleFill(a);case"ServiceTask":return new r.default.diyShape.icon.ServiceFill(a);default:return s?s(t,i,a):new r.default.diyShape.icon.ApproveFill(a)}else switch(t){case"Start":return new r.default.diyShape.icon.Start(a);case"End":return new r.default.diyShape.icon.End(a);case"User":return new r.default.diyShape.icon.Approve(a);case"DataRule":return new r.default.diyShape.icon.DataRule(a);case"ServiceTask":return new r.default.diyShape.icon.Service(a);default:return s?s(t,i,a):new r.default.diyShape.icon.Approve(a)}}},l),u=(0,a.default)({setShapeAttr:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attr(t)},getShapeAttr:function(){var t=this||{},e=t.bgColor,n=t.width,i=t.height,r=(t.alpha,t.color);return{config:{},width:n,height:i,color:r.hashString||r.rgba(),bgColor:e.hashString||e.rgba()}}},l);r.default.diyShape.common.nodeStyleEnum=o,r.default.diyShape.common.commFunction=l,r.default.diyShape.common.shapeCommFunction=c,r.default.diyShape.common.iconCommFunction=u,e.nodeStyleEnum=o,e.commFunction=l,e.shapeCommFunction=c,e.iconCommFunction=u},"./src/diyShape/icon/Approve.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.Approve=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.Approve",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#4E5D78"},t),e,n)},createSet:function(){return this.canvas.paper.path("M591.616 623.104c-16.896 0-30.72-13.824-30.72-30.72 0-88.064 87.808-227.072 104.96-253.184 6.912-17.92 10.24-36.608 10.24-55.808v-3.84c0-88.832-72.448-161.28-161.28-161.28s-161.28 72.448-161.28 161.28v3.072c0 19.712 3.584 38.656 10.496 57.088 17.152 25.856 104.704 162.816 104.704 252.672 0 16.896-13.824 30.72-30.72 30.72s-30.72-13.824-30.72-30.72c0-64-69.376-181.248-96.256-221.184l-1.792-2.56-1.28-3.072c-10.752-26.368-16.128-54.272-16.128-82.944v-3.072c0-122.88 99.84-222.72 222.72-222.72s222.72 99.84 222.72 222.72v3.84c0 28.16-5.376 55.552-15.872 81.664l-1.28 2.816-1.792 2.56c-26.88 40.704-96.512 159.488-96.512 221.952 0.512 16.896-13.312 30.72-30.208 30.72z M871.168 829.44h-716.8c-22.528 0-40.96-18.432-40.96-40.96v-116.224c0-60.672 49.152-109.824 109.824-109.824H435.2c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72H223.232c-26.624 0-48.384 21.76-48.384 48.384V768h675.84v-95.744c0-26.624-21.76-48.384-48.384-48.384h-202.24c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h202.24c60.672 0 109.824 49.152 109.824 109.824V788.48c0 22.784-18.432 40.96-40.96 40.96zM144.128 952.832c-16.896 0-30.72-13.824-30.72-30.72s13.568-30.72 30.72-30.72l735.232-2.048c16.896 0 30.72 13.824 30.72 30.72s-13.568 30.72-30.72 30.72l-735.232 2.048z")}})},"./src/diyShape/icon/ApproveFill.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.ApproveFill=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.ApproveFill",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#4E5D78"},t),e,n)},createSet:function(){return this.canvas.paper.path("M422.399 601.6V493.323c-79.111-34.622-134.4-113.655-134.4-205.323 0-123.711 100.54-224 224-224 123.711 0 224 100.545 224 224 0 91.814-55.379 170.725-134.4 205.313V601.6h201.472c61.925 0 112.128 49.716 112.128 112.003V825.6H108.801V713.598c0-61.855 50.444-111.998 112.126-111.998h201.472zM153.601 870.4h716.793V960H153.6v-89.6z")}})},"./src/diyShape/icon/Arrow2Bottom.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.Arrow2Bottom=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.Arrow2Bottom",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:16,height:32,color:"#4CCDFE"},t),e,n),this.addCssClass("cursor-pointer")},createSet:function(){return this.canvas.paper.path("M564.224 44.032q43.008 0 58.368 20.48t15.36 65.536q0 20.48 0.512 64.512t0.512 93.696 0.512 96.768 0.512 74.752q0 38.912 7.68 61.952t35.328 22.016q19.456 0 48.128 1.024t49.152 1.024q35.84 0 45.568 18.944t-13.824 49.664q-24.576 30.72-57.344 72.704t-68.096 86.016-69.12 86.528-59.392 75.264q-23.552 29.696-45.568 30.72t-45.568-27.648q-24.576-29.696-57.344-69.632t-67.072-82.432-67.584-83.968-59.904-74.24q-29.696-35.84-22.528-58.88t44.032-23.04l24.576 0q14.336 0 29.696-0.512t30.208-1.536 26.112-1.024q26.624 0 32.768-15.36t6.144-41.984q0-29.696-0.512-77.824t-0.512-100.352-0.512-101.376-0.512-79.872q0-13.312 2.048-27.648t9.728-26.112 20.992-19.456 36.864-7.68q27.648 0 53.248-0.512t57.344-0.512z")}})},"./src/diyShape/icon/Arrow2Left.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.Arrow2Left=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.Arrow2Left",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:32,height:16,color:"#4CCDFE"},t),e,n),this.addCssClass("cursor-pointer")},createSet:function(){return this.canvas.paper.path("M966.656 567.296q0 43.008-20.48 58.368t-65.536 15.36l-64.512 0q-44.032 0-93.696 0.512t-96.768 0.512l-74.752 0q-38.912 0-61.952 7.68t-22.016 35.328q0 20.48-1.024 48.64t-1.024 49.664q0 35.84-19.456 45.568t-50.176-13.824q-30.72-24.576-72.704-57.856t-85.504-68.096-86.016-68.608-75.264-59.392q-30.72-24.576-31.232-46.592t28.16-45.568q28.672-24.576 68.608-56.832t82.944-66.56 84.48-68.096 74.24-60.416q35.84-28.672 58.88-22.016t23.04 43.52l0 25.6q0 14.336 0.512 29.696t1.024 30.208 0.512 26.112q1.024 25.6 16.384 32.256t41.984 6.656q29.696 0 77.824-0.512t100.352-0.512 101.376-0.512 79.872-0.512q13.312 0 27.648 2.048t26.112 9.728 19.456 21.504 7.68 36.352q0 27.648 0.512 53.248t0.512 57.344z")}})},"./src/diyShape/icon/Arrow2Right.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.Arrow2Right=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.Arrow2Right",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:32,height:16,color:"#4CCDFE"},t),e,n),this.addCssClass("cursor-pointer")},createSet:function(){return this.canvas.paper.path("M47.104 453.632q0-43.008 20.992-57.856t66.048-14.848q20.48 0 64.512 0.512t93.696 0.512 96.768 0.512 74.752 0.512q38.912 1.024 61.44-6.656t22.528-35.328q0-20.48 1.536-48.64t1.536-48.64q1.024-35.84 20.48-45.568t49.152 14.848q30.72 24.576 71.68 58.368t84.992 69.12 86.016 69.632 74.752 59.904q29.696 24.576 30.208 46.592t-28.16 45.568q-29.696 24.576-70.144 56.32t-83.968 65.536-85.504 67.072-74.752 58.88q-35.84 28.672-58.88 21.504t-22.016-44.032l0-24.576 0-29.696q0-15.36-0.512-30.208t-0.512-27.136q0-25.6-15.36-32.256t-41.984-6.656q-29.696 0-77.824-0.512t-100.352-0.512-101.376-0.512-79.872-0.512q-13.312 0-27.648-2.56t-26.112-9.728-18.944-20.992-7.168-37.376q0-27.648-0.512-53.248t0.512-57.344z")}})},"./src/diyShape/icon/Arrow2Top.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.Arrow2Top=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.Arrow2Top",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:16,height:32,color:"#4CCDFE"},t),e,n),this.addCssClass("cursor-pointer")},createSet:function(){return this.canvas.paper.path("M470.016 976.896q-44.032 0-59.392-20.48t-15.36-65.536q0-20.48-0.512-64.512t-1.024-93.696-1.536-96.768-1.024-74.752q0-39.936-7.68-62.464t-35.328-21.504q-20.48 0-48.64-1.024t-49.664 0q-35.84 0-45.568-19.456t13.824-50.176q24.576-30.72 57.344-72.704t67.584-86.016 68.096-87.04 58.88-75.776q23.552-29.696 45.568-30.72t46.592 26.624q24.576 29.696 56.832 69.632t67.072 82.432 68.608 83.968 60.416 73.216q29.696 35.84 23.04 58.88t-43.52 23.04q-11.264 0-25.088 0.512t-29.184 1.024-30.208 1.024-27.136 0.512q-25.6 1.024-32.256 16.384t-5.632 41.984q0 29.696 0.512 77.824t1.024 100.352 1.536 101.376 1.024 79.872q0 13.312-2.048 27.648t-9.728 26.112-21.504 19.968-36.352 8.192q-27.648 0-52.736 0.512t-56.832 1.536z")}})},"./src/diyShape/icon/ArrowBottom.js":(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}e.default=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.ArrowBottom",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:16,height:42,color:"#4CCDFE"},t),e,n),this.addCssClass("cursor-pointer")},createSet:function(){return this.canvas.paper.path("M619.632 629.997l117.047-41.421c33.793-11.959 46.378 3.298 26.573 34.626l-216.011 341.656c-19.567 30.944-51.915 31.326-71.719 0l-216.011-341.656c-19.567-30.944-7.908-46.824 26.573-34.626l117.047 41.421 87.55-549.428c11.433-71.744 29.952-71.852 41.401 0l87.55 549.428z")}}),t.exports=e.default},"./src/diyShape/icon/ArrowLeft.js":(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}e.default=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.ArrowLeft",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:42,height:16,color:"#4CCDFE"},t),e,n),this.addCssClass("cursor-pointer")},createSet:function(){return this.canvas.paper.path("M394.003 619.632l41.421 117.047c11.959 33.793-3.298 46.378-34.626 26.573l-341.656-216.011c-30.944-19.567-31.326-51.915 0-71.719l341.656-216.011c30.944-19.567 46.824-7.908 34.626 26.573l-41.421 117.047 549.428 87.55c71.744 11.433 71.852 29.952 0 41.401l-549.428 87.55z")}}),t.exports=e.default},"./src/diyShape/icon/ArrowRight.js":(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}e.default=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.ArrowRight",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:42,height:16,color:"#4CCDFE"},t),e,n),this.addCssClass("cursor-pointer")},createSet:function(){return this.canvas.paper.path("M642.83201411 408.4262486L599.76785636 286.73535162C587.33467244 251.60180336 603.1979746 238.51654409 635.76509105 259.10710537L990.97816585 483.6905654C1023.15192871 504.03244661 1023.54528281 537.66502927 990.97816638 558.25558427L635.76509157 782.83903802C603.59132871 803.18090668 587.08144511 791.06000554 599.76785636 755.21078499L642.83201465 633.51992619 71.60105035 542.49487944C-2.99098321 530.60872192-3.1025673 511.35524846 71.60105087 499.45131419L642.83201411 408.4262486Z")}}),t.exports=e.default},"./src/diyShape/icon/ArrowTop.js":(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}e.default=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.ArrowTop",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:16,height:42,color:"#4CCDFE"},t),e,n),this.addCssClass("cursor-pointer")},createSet:function(){return this.canvas.paper.path("M410.64189977 383.96700356l-119.08809566 42.14356416c-34.38165302 12.16718638-47.18594262-3.35663589-27.03693488-35.22664563l219.7801013-347.61652206c19.9064701-31.48605075 52.82087655-31.87213106 72.96917717 0l219.78010131 347.61652206c19.9064701 31.48605075 8.04546096 47.64202649-27.03693489 35.22664563l-119.08809566-42.14356416-89.07777676 559.01245825c-11.63190655 72.99746145-30.47347384 73.10494168-42.12235096 0l-89.07777676-559.01245825z")}}),t.exports=e.default},"./src/diyShape/icon/BusinessRule.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.BusinessRule=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.BusinessRule",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#4E5D78"},t),e,n)},createSet:function(){return this.canvas.paper.path("M91.18976 196.096v631.808h841.62048V196.096H91.18976z m35.84 214.016H289.28v176.351232H127.02976V410.112zM325.12 410.112h571.85024v176.351232H325.12V410.112z m-198.09024 212.191232H289.28V792.064H127.02976v-169.760768z m198.09024 0h571.85024V792.064H325.12v-169.760768z")}})},"./src/diyShape/icon/CallActivity.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.CallActivity=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.CallActivity",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#7F94AF"},t),e,n)},createSet:function(){return this.canvas.paper.path("M236.205056 107.52C118.185984 107.52 20.48 202.960384 20.48 320.512v382.976c0 117.55008 97.705984 212.992 215.725056 212.992h551.589888c118.019072 0 215.725056-95.44192 215.725056-212.992V320.512c0-117.551104-97.705984-212.992-215.725056-212.992H236.205056z m0 112.64h551.589888C846.396416 220.16 890.88 264.468992 890.88 320.512v382.976c0 56.041472-44.483584 100.352-103.085056 100.352H236.205056C177.603584 803.84 133.12 759.52896 133.12 703.488V320.512c0-56.042496 44.483584-100.352 103.085056-100.352z")}})},"./src/diyShape/icon/DashAdd.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.DashAdd=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.DashAdd",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#4E5D78"},t),e,n)},createSet:function(){return this.canvas.paper.path("M934.950293 956.242803 813.230196 956.242803c-11.211802 0-20.28583-9.112542-20.28583-20.286022 0-11.212366 9.074028-20.286022 20.28583-20.286022l101.433243 0 0-101.429087c0-11.211343 9.074028-20.284999 20.286853-20.284999 11.173938 0 20.286853 9.073656 20.286853 20.284999L955.237146 935.956781C955.237146 947.130262 946.124231 956.242803 934.950293 956.242803zM934.950293 712.812585c-11.212825 0-20.286853-9.113565-20.286853-20.286022L914.663439 570.810431c0-11.211343 9.074028-20.284999 20.286853-20.284999 11.173938 0 20.286853 9.073656 20.286853 20.284999l0 121.716132C955.237146 703.69902 946.124231 712.812585 934.950293 712.812585zM934.950293 469.382367c-11.212825 0-20.286853-9.113565-20.286853-20.286022L914.663439 327.380212c0-11.212366 9.074028-20.284999 20.286853-20.284999 11.173938 0 20.286853 9.072633 20.286853 20.284999l0 121.715109C955.237146 460.268802 946.124231 469.382367 934.950293 469.382367zM934.950293 225.952148c-11.212825 0-20.286853-9.112542-20.286853-20.286022l0-101.429087-101.433243 0c-11.211802 0-20.28583-9.112542-20.28583-20.286022 0-11.212366 9.074028-20.286022 20.28583-20.286022l121.720096 0c11.173938 0 20.286853 9.073656 20.286853 20.286022l0 121.714086C955.237146 216.838583 946.124231 225.952148 934.950293 225.952148zM691.5101 956.242803 569.78898 956.242803c-11.211802 0-20.284807-9.112542-20.284807-20.286022 0-11.212366 9.073004-20.286022 20.284807-20.286022l121.72112 0c11.172915 0 20.286853 9.073656 20.286853 20.286022C711.797977 947.130262 702.683015 956.242803 691.5101 956.242803zM691.5101 104.237039 569.78898 104.237039c-11.211802 0-20.284807-9.112542-20.284807-20.286022 0-11.212366 9.073004-20.286022 20.284807-20.286022l121.72112 0c11.172915 0 20.286853 9.073656 20.286853 20.286022C711.797977 95.124498 702.683015 104.237039 691.5101 104.237039zM668.68739 469.382367c22.386764 0 40.573707 18.146289 40.573707 40.571021 0 22.385846-18.186943 40.571021-40.573707 40.571021L546.967294 550.524408l0 121.716132c0 22.385846-18.186943 40.571021-40.573707 40.571021-22.425651 0-40.572683-18.185174-40.572683-40.571021L465.820904 550.524408 344.100808 550.524408c-22.426674 0-40.572683-18.185174-40.572683-40.571021 0-22.424732 18.147032-40.571021 40.572683-40.571021l121.720096 0L465.820904 347.667258c0-22.424732 18.147032-40.571021 40.572683-40.571021 22.386764 0 40.573707 18.146289 40.573707 40.571021l0 121.715109L668.68739 469.382367zM448.069907 104.237039 326.349811 104.237039c-11.212825 0-20.28583-9.112542-20.28583-20.286022 0-11.212366 9.073004-20.286022 20.28583-20.286022l121.720096 0c11.172915 0 20.286853 9.073656 20.286853 20.286022C468.356761 95.124498 459.243846 104.237039 448.069907 104.237039zM204.630738 956.242803 82.910642 956.242803c-11.213849 0-20.286853-9.112542-20.286853-20.286022L62.623789 814.240649c0-11.211343 9.073004-20.284999 20.286853-20.284999 11.192358 0 20.28583 9.073656 20.28583 20.284999l0 101.429087 101.434266 0c11.193382 0 20.28583 9.073656 20.28583 20.286022C224.916568 947.130262 215.82412 956.242803 204.630738 956.242803zM204.630738 104.237039l-101.434266 0 0 101.429087c0 11.17348-9.093471 20.286022-20.28583 20.286022-11.213849 0-20.286853-9.112542-20.286853-20.286022L62.623789 83.951017c0-11.212366 9.073004-20.286022 20.286853-20.286022l121.720096 0c11.193382 0 20.28583 9.073656 20.28583 20.286022C224.916568 95.124498 215.82412 104.237039 204.630738 104.237039zM82.910642 307.095213c11.192358 0 20.28583 9.072633 20.28583 20.284999l0 121.715109c0 11.172457-9.093471 20.286022-20.28583 20.286022-11.213849 0-20.286853-9.113565-20.286853-20.286022L62.623789 327.380212C62.623789 316.167846 71.696793 307.095213 82.910642 307.095213zM82.910642 550.524408c11.192358 0 20.28583 9.073656 20.28583 20.284999l0 121.716132c0 11.172457-9.093471 20.286022-20.28583 20.286022-11.213849 0-20.286853-9.113565-20.286853-20.286022L62.623789 570.810431C62.623789 559.599088 71.696793 550.524408 82.910642 550.524408zM326.349811 915.669736l121.720096 0c11.172915 0 20.286853 9.073656 20.286853 20.286022 0 11.17348-9.112915 20.286022-20.286853 20.286022L326.349811 956.24178c-11.212825 0-20.28583-9.112542-20.28583-20.286022C306.063981 924.744415 315.136986 915.669736 326.349811 915.669736z")}})},"./src/diyShape/icon/DataRule.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.DataRule=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.DataRule",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#4E5D78"},t),e,n)},createSet:function(){return this.canvas.paper.path("M1007.82110341-5.80236325H55.01504475c-22.91332741 0-41.39933392 18.48600652-41.39933393 41.39933392v952.80605866c0 22.91332741 18.48600652 41.39933392 41.39933393 41.39933392h952.80605866c22.91332741 0 41.39933392-18.48600652 41.39933392-41.39933392V35.59697067c0-22.91332741-18.48600652-41.39933392-41.39933392-41.39933392z m-51.80742163 942.39797095H106.82246637V87.4043923h849.19121541v849.1912154zM263.17679882 527.53445925h65.63309036c4.81568237 0 8.81580563-3.88361482 8.81580564-8.81580562v-102.13906963c0-25.47651318 20.58315852-46.0596717 45.94316326-46.0596717h266.29946784v69.1283437c0 7.37886815 8.42744415 11.37899141 14.09752178 6.83516208l141.24707082-110.91603911a8.73813333 8.73813333 0 0 0 0-13.86450489l-141.24707082-110.95487526a8.73813333 8.73813333 0 0 0-14.09752178 6.87399821v69.12834372h-266.41597629a129.28553718 129.28553718 0 0 0-129.0525203 129.59622636v102.13906964c0 5.1652077 3.88361482 9.04882252 8.77696949 9.0488225z m-5.43706074 174.64615823l141.24707081 110.91603911c5.70891378 4.54382933 14.09752178 0.38836148 14.09752178-6.83516207v-69.1283437h266.29946785a129.28553718 129.28553718 0 0 0 129.0525203-129.59622637v-102.13906963c0-4.77684622-3.88361482-8.81580563-8.77696949-8.81580564h-65.63309036c-4.81568237 0-8.81580563 3.88361482-8.81580564 8.81580564v102.13906963c0 25.51534933-20.58315852 46.09850785-45.94316325 46.09850785h-266.18295941v-69.12834371a8.69929718 8.69929718 0 0 0-14.09752178-6.87399822l-141.24707081 110.95487526a8.50511645 8.50511645 0 0 0 0 13.59265185z")}})},"./src/diyShape/icon/DataRuleFill.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.DataRuleFill=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.DataRuleFill",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#4E5D78"},t),e,n)},createSet:function(){return this.canvas.paper.path("M988.40302933-5.80236325H35.59697067c-22.91332741 0-41.39933392 18.48600652-41.39933392 41.39933392v952.80605866c0 22.91332741 18.48600652 41.39933392 41.39933392 41.39933392h952.80605866c22.91332741 0 41.39933392-18.48600652 41.39933392-41.39933392V35.59697067c0-22.91332741-18.48600652-41.39933392-41.39933392-41.39933392z m-199.38478458 613.22277925a129.36320948 129.36320948 0 0 1-129.0525203 129.55739022h-266.29946786v69.1283437c0 7.37886815-8.388608 11.41782755-14.09752177 6.87399823l-141.24707082-110.95487526a8.73813333 8.73813333 0 0 1 0-13.82566874l141.24707082-110.95487526a8.73813333 8.73813333 0 0 1 14.09752177 6.87399822v69.12834371h266.29946786c25.36000475 0 45.94316325-20.73850311 45.94316325-46.09850785v-102.13906964c0-4.77684622 3.88361482-8.81580563 8.81580563-8.81580563h65.63309037c4.77684622 0 8.81580563 3.88361482 8.81580563 8.81580563v102.41092267h-0.15534458z m-3.33990875-271.73652859l-141.24707082 110.95487526a8.73813333 8.73813333 0 0 1-14.09752177-6.87399822v-69.1283437H364.03427555c-25.36000475 0-45.94316325 20.69966697-45.94316325 46.09850784v102.13906963c0 4.77684622-3.88361482 8.77696948-8.81580563 8.77696948H243.6422163a8.81580563 8.81580563 0 0 1-8.81580563-8.77696948v-102.13906963a129.36320948 129.36320948 0 0 1 129.09135644-129.59622637h266.26063171V218.01035852c0-7.37886815 8.42744415-11.37899141 14.13635793-6.87399822l141.20823466 110.95487525c4.66033778 3.2234003 4.66033778 10.09739852 0.15534459 13.59265186z")}})},"./src/diyShape/icon/Else.js":(t,e,n)=>{"use strict";var i=r(n("./src/packages.js"));r(n("./src/util/extend.js"));function r(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.Else=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.Else",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super(Object.assign({width:30,height:16,color:"#7F94AF"},t),e,n)},createSet:function(){return this.canvas.paper.path("M130.56 783.36c20.03968 0 38.08256-3.39456 54.1184-10.17856 16.0256-6.78912 29.7728-16.12288 41.22624-28.00128C249.37984 721.99168 261.12 691.456 261.12 653.55264H173.50656c-1.14688 9.61536-4.43904 19.23072-9.8816 28.84608-5.43744 9.61536-16.4608 14.42304-33.06496 14.42304-13.16864 0-23.61856-3.67616-31.34976-11.02848-7.7312-7.35232-11.5968-17.8176-11.5968-31.3856V595.8656H261.12V477.0816c0-38.46144-11.45344-70.41536-34.3552-95.86688-11.45344-11.8784-25.344-21.21216-41.66144-28.00128C168.7808 346.43456 150.59968 343.04 130.56 343.04c-27.48416 0-50.82112 5.6576-70.00576 16.96768-19.17952 11.3152-33.92512 26.30144-44.2368 44.96384-6.2976 11.3152-10.59328 24.32-12.88192 39.02976C1.14688 458.7008 0 474.82368 0 492.35968v141.68064c0 17.536 1.14688 33.65376 3.43552 48.3584 2.28864 14.70976 6.58432 27.71456 12.88704 39.02976 10.30656 18.6624 25.05216 33.65376 44.2368 44.96384C79.73376 777.70752 103.07072 783.36 130.56 783.36z m48.64-250.88H92.16v-48.64c0-16.21504 3.9168-28.37504 11.7504-36.48C111.744 439.25504 122.33216 435.2 135.68 435.2s23.936 4.05504 31.7696 12.16C175.2832 455.46496 179.2 467.62496 179.2 483.84v48.64z m261.12 250.88v-81.4592c-16.2816-1.69984-27.3664-5.51936-33.26464-11.45856-5.89312-5.9392-8.84224-17.11616-8.84224-33.52064V174.08H312.32v488.7808c0 25.45664 2.94912 45.96736 8.84224 61.52192 5.89312 15.55968 14.45376 27.58144 25.68192 36.06528 11.22816 9.05216 24.704 15.13472 40.4224 18.24256 15.7184 3.11296 33.40288 4.66944 53.05344 4.66944z m145.92 0c18.8928 0 36.36224-3.39456 52.39808-10.17856 16.03072-6.78912 29.7728-16.12288 41.22624-28.00128 11.45344-11.8784 20.47488-25.58976 27.0592-41.14432 6.58432-15.55456 9.87648-32.384 9.87648-50.4832 0-25.4464-6.15424-48.9216-18.46784-70.41536-12.3136-21.49376-34.78528-38.46144-67.4304-50.90304l-51.5328-20.36224c-16.60928-6.2208-26.91584-13.14816-30.9248-20.7872-4.00384-7.63392-6.01088-15.4112-6.01088-23.33184 0-11.31008 3.72224-21.3504 11.16672-30.11584 7.44448-8.76544 18.03776-13.14816 31.77984-13.14816 11.45344 0 21.61664 3.67616 30.49472 11.02848 8.87296 7.35232 13.59872 18.3808 14.17216 33.08544h82.4576c0-17.53088-3.1488-34.07872-9.4464-49.63328-6.2976-15.54944-14.88896-28.98432-25.76896-40.2944-10.88-11.3152-23.9104-20.08064-39.08096-26.30144-15.17568-6.2208-31.6416-9.33376-49.39264-9.33376-17.75104 0-34.3552 2.9696-49.8176 8.9088-15.4624 5.9392-28.91776 14.56128-40.3712 25.87648-12.02688 11.3152-21.47328 24.74496-28.34432 40.2944-6.87104 15.55968-10.30656 32.384-10.30656 50.4832 0 28.84608 7.87456 53.30944 23.61856 73.38496 15.74912 20.08064 37.36576 35.21024 64.84992 45.39392l42.0864 15.26784c16.60928 6.2208 28.06272 13.57312 34.36032 22.05696 6.2976 8.48896 9.45152 18.66752 9.45152 30.54592 0 14.70464-5.01248 26.15808-15.03232 34.3552-10.01984 8.20736-21.32992 12.30336-33.93024 12.30336-16.60416 0-28.20096-5.08928-34.78528-15.26784a81.8176 81.8176 0 0 1-12.45696-33.09056H455.68c0.57344 21.49376 4.5824 40.29952 12.02688 56.4224 7.44448 16.11776 17.1776 29.55264 29.20448 40.2944C520.96 772.33664 550.73792 783.36 586.24 783.36z m307.2 0c20.03968 0 38.08256-3.39456 54.1184-10.17856 16.0256-6.78912 29.7728-16.12288 41.22624-28.00128 23.4752-23.18848 35.21536-53.72928 35.21536-91.62752h-87.61344c-1.14688 9.61536-4.43904 19.23072-9.8816 28.84608-5.43744 9.61536-16.4608 14.42304-33.06496 14.42304-13.16864 0-23.61856-3.67616-31.34976-11.02848-7.7312-7.35232-11.5968-17.8176-11.5968-31.3856V595.8656H1024V477.0816c0-38.46144-11.45344-70.41536-34.3552-95.86688-11.45344-11.8784-25.344-21.21216-41.66144-28.00128C931.6608 346.43456 913.47968 343.04 893.44 343.04c-27.48416 0-50.82112 5.6576-70.00576 16.96768-19.17952 11.3152-33.92512 26.30144-44.2368 44.96384-6.2976 11.3152-10.59328 24.32-12.88192 39.02976-2.28864 14.70464-3.43552 30.8224-3.43552 48.3584v141.68064c0 17.536 1.14688 33.65376 3.43552 48.3584 2.28864 14.70976 6.58432 27.71456 12.88704 39.02976 10.30656 18.6624 25.05216 33.65376 44.2368 44.96384 19.17952 11.3152 42.51648 16.96768 70.00064 16.96768z m48.64-250.88h-87.04v-48.64c0-16.21504 3.9168-28.37504 11.7504-36.48 7.8336-8.10496 18.42176-12.16 31.7696-12.16s23.936 4.05504 31.7696 12.16c7.8336 8.10496 11.7504 20.26496 11.7504 36.48v48.64z")}})},"./src/diyShape/icon/End.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.End=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.End",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#FF8A65"},t),e,n)},createSet:function(){return this.canvas.paper.path("M512 938.666667C276.352 938.666667 85.333333 747.648 85.333333 512S276.352 85.333333 512 85.333333s426.666667 191.018667 426.666667 426.666667-191.018667 426.666667-426.666667 426.666667z m0-85.333334a341.333333 341.333333 0 1 0 0-682.666666 341.333333 341.333333 0 0 0 0 682.666666zM384 384h256v256H384V384z")}})},"./src/diyShape/icon/EndFill.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.EndFill=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.EndFill",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#FF8A65"},t),e,n)},createSet:function(){return this.canvas.paper.path("M512 938.666667C276.352 938.666667 85.333333 747.648 85.333333 512S276.352 85.333333 512 85.333333s426.666667 191.018667 426.666667 426.666667-191.018667 426.666667-426.666667 426.666667zM384 384v256h256V384H384z")}})},"./src/diyShape/icon/EndNode.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.EndNode=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.EndNode",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#FF8A65"},t),e,n)},createSet:function(){return this.canvas.paper.path("M64 260.266667L503.808 0l439.850667 260.266667v509.312l-230.869334 106.325333-241.92-150.272V608h65.92v84.736l175.914667 106.282667 168.576-73.301334V289.536l-377.472-212.608L126.293333 289.536v439.893333l388.522667 227.242667-21.973333 51.328L64 762.410667V260.224z M352 320m64 0l192 0q64 0 64 64l0 192q0 64-64 64l-192 0q-64 0-64-64l0-192q0-64 64-64Z")}})},"./src/diyShape/icon/Error.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.Error=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.Error",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#FF8A65"},t),e,n)},createSet:function(){return this.canvas.paper.path("M851.2 172.8C664.32-14.08 359.68-14.08 172.16 172.8A477.376 477.376 0 0 0 32 512c0 128 49.92 248.96 140.8 339.2 93.44 93.44 216.32 140.8 339.2 140.8s245.76-46.72 339.2-140.16c90.88-90.88 140.8-211.2 140.8-339.2 0-128.64-49.92-249.6-140.8-339.84z m-90.24 588.16c-136.96 136.96-360.32 136.96-497.92 0A349.44 349.44 0 0 1 160 512c0-94.08 36.48-182.4 103.04-248.96C331.52 194.56 421.76 160 512 160s180.48 34.56 248.96 103.04A349.44 349.44 0 0 1 864 512c0 94.08-36.48 182.4-103.04 248.96z M553.6 444.16l25.6-236.8c0-1.92-0.64-3.84-1.92-5.12-0.64-1.28-1.92-1.92-3.84-1.92h-7.04c-1.92 0-3.84 1.28-5.12 2.56L316.8 565.12c-1.28 1.92-1.28 4.48-0.64 6.4 1.28 1.92 3.2 3.2 5.76 3.2H448l-33.92 241.28c0 1.92 0 3.84 1.28 5.12 1.28 1.28 3.2 1.92 5.12 1.92h4.48c1.92 0 3.84-1.28 5.12-2.56l256.64-366.72c1.28-1.92 1.28-4.48 0.64-6.4a6.72 6.72 0 0 0-5.76-3.2h-128z")}})},"./src/diyShape/icon/ErrorFill.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.ErrorFill=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.ErrorFill",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#FF8A65"},t),e,n)},createSet:function(){return this.canvas.paper.path("M512 32c-262.4 0-480 217.6-480 480s217.6 480 480 480 480-217.6 480-480-217.6-480-480-480z m-76.8 819.2l51.2-288H320l262.4-384-44.8 288h166.4l-268.8 384z")}})},"./src/diyShape/icon/GatewayComplex.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.GatewayComplex=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.GatewayComplex",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#6F84A8"},t),e,n)},createSet:function(){return this.canvas.paper.path("M485.871492 47.174338c-9.168729-0.008066-18.33651 3.392487-25.137616 10.224908L57.381424 460.755494c-13.603161 13.602212-13.540056 36.674443 0.062631 50.276655l403.288872 403.286025c13.603161 13.606956 36.673969 13.66674 50.276655 0l403.352926-403.350079c13.602686-13.601737 13.539581-36.674918-0.064054-50.27713L511.009107 57.399246c-6.801106-6.801106-15.969361-10.217316-25.137615-10.224908z m-0.030841 59.805036l378.943153 378.946-378.943153 378.94173-378.943153-378.94173 378.943153-378.946z m-8.957589 186.164969l-0.000949 0.197381c0 0.004745-3.969921 0.735434-3.971345 0.735435-0.004745 0-3.251568 2.203456-3.25394 2.203455-0.004745 0-2.260393 3.350733-2.262291 3.350734 0 0.004745-0.763903 3.994119-0.765326 3.994119V439.440713l-96.147347-96.147348h0.004745c-0.004745 0-3.414787-2.203456-3.416211-2.203456-0.005694 0-3.803856-0.771969-3.832798-0.777188-0.037009 0.005694-3.945249 0.732113-3.947147 0.732113-0.004745-0.004745-3.352157 2.249005-3.35358 2.249006l-12.636658 12.629066-2.306416 3.397231c-0.004745 0-0.713608 3.901597-0.713609 3.901597 0 0.004745 0.765801 3.856048 0.766275 3.856048 0 0.004745 2.188747 3.397232 2.189696 3.397232l96.099901 96.101323H303.419279l-0.026571-0.032264c0 0.004745-3.953315 0.871608-3.955212 0.871608-0.004745 0.004745-3.250619 2.20393-3.252992 2.20393v-0.023249c-0.004745 0.004745-2.259918 3.352157-2.261816 3.352157-0.004745 0-0.764852 3.993171-0.766275 3.99317v17.871526s0.759158 4.040143 0.786677 4.040143c0 0.009489 2.251378 3.259634 2.251852 3.259635 0.004745 0 3.271022 2.203456 3.271971 2.203455 0.004745 0.009489 3.970396 0.872083 3.971819 0.872083h135.870285L343.2912 601.205873v-0.03606c-0.004745 0.004745-2.305942 3.397232-2.306891 3.397231-0.004745 0.004745-0.714557 3.901597-0.714557 3.901597 0 0.009015 0.767224 3.856048 0.767698 3.856048 0 0 2.196813 3.397232 2.189696 3.397232l12.638556 12.629066c0.004745 0.004745 3.453219 2.249005 3.454168 2.249005l3.847033 0.780509c0.005694 0 3.896852-0.734011 3.89875-0.734011 0 0 3.402451-2.295504 3.403874-2.295503l96.160633-96.160633v136.107996l-0.025147-0.026571c0 0.004745 0.787626 4.039194 0.786677 4.039195 0 0.004745 2.251378 3.259634 2.251378 3.259634 0.004745 0.004745 3.271022 2.203456 3.271971 2.203456 0 0 3.942402 0.826059 3.971819 0.872082l17.865832-0.004745c0.004745 0 4.048209-0.825584 4.050582-0.825584 0 0 3.250619-2.20393 3.252991-2.20393 0.004745-0.004745 2.24948-3.25916 2.251853-3.25916 0 0 0.774816-4.040143 0.776713-4.040143v-136.030657l96.091834 96.087564c-0.004745 0.009489 3.452271 2.249005 3.454168 2.249005 0.004745 0.004745 3.846084 0.735434 3.847508 0.735435 0.005694 0 3.896378-0.735434 3.89875-0.735435 0 0 3.401976-2.295504 3.404823-2.295503l12.632862-12.637132c0.004745 0 2.239041-3.352157 2.26751-3.352157 0-0.009489 0.778137-3.947621 0.759157-3.99317 0-0.004745-0.767698-3.856997-0.768647-3.856997-0.005694 0.004745-2.236194-3.442781-2.265612-3.442781l-95.851276-95.857444h135.679072c0.004745 0.004745 4.048209-0.826533 4.049633-0.826533 0.004745 0 3.251568-2.20393 3.252991-2.203931 0.004745-0.009015 2.249005-3.25916 2.251852-3.259159 0 0 0.774816-4.039194 0.776714-4.039195v-17.867255c0-0.004745-0.771494-3.947621-0.770071-3.99412-0.004745-0.004745-2.240465-3.350733-2.267984-3.350733-0.004745-0.004745-3.271496-2.20393-3.27292-2.20393 0 0.004745-4.036822-0.871608-4.03872-0.825584h-136.09044l96.283047-96.280201c0.004745-0.004745 2.238092-3.351682 2.266561-3.351682 0-0.009489 0.77956-3.947621 0.77956-3.947621 0-0.004745-0.766749-3.856522-0.767224-3.856522-0.004745-0.004745-2.299299-3.397232-2.300248-3.397231l-12.635709-12.638082c-0.004745 0-3.341244-2.249005-3.342667-2.249005-0.004745-0.004745-3.846084-0.734485-3.848456-0.734485-0.005694 0-3.960432 0.734011-3.961855 0.734011-0.004745 0.004745-3.352631 2.249005-3.35358 2.249005l-96.162531 96.161582V303.47838c0-0.004745-0.771494-3.948096-0.770071-3.994119-0.004745-0.009489-2.239516-3.351208-2.239516-3.351208-0.004745-0.004745-3.271496-2.203456-3.272445-2.203456-0.004745 0-4.048209-0.780509-4.049158-0.780509l-17.868679-0.004745z m-113.645937 47.167429l0.016132-0.002372h-0.029892l0.014235 0.002847z")}})},"./src/diyShape/icon/GatewayEvent.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.GatewayEvent=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.GatewayEvent",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#6F84A8"},t),e,n)},createSet:function(){return this.canvas.paper.path("M546.27156422 4.46502456c-10.43197611-0.00917731-20.8628736 3.85989632-28.60102087 11.63367311L58.74508685 475.02847317c-15.47737429 15.47629454-15.40557483 41.72736626 0.07126016 57.2036608l458.85311659 458.84987733c15.47737429 15.48169216 41.72682695 15.54971307 57.2036608 0l458.9259958-458.92275655c15.47683385-15.4757541 15.40503438-41.7279067-0.07287922-57.20420124L574.87258396 16.09869767c-7.73814727-7.73814727-18.16958407-11.62503509-28.60101974-11.63367311z m-0.0350902 68.04484096l431.15309852 431.15633778-431.15309852 431.15147947-431.15309853-431.15147947 431.15309853-431.15633778z m0.02429269 183.30727766l-7.93735054 5.76123221-230.12538823 167.0568448 90.93159594 279.62221341h294.26012729l90.93159481-279.62221341-238.06057927-172.81807701z m-0.0021595 33.34896298l206.31711744 149.77476722-78.8050432 242.33885582H418.74869247L339.94364927 438.94087338l206.31495794-149.77476722z")}})},"./src/diyShape/icon/GatewayExclusive.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.GatewayExclusive=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.GatewayExclusive",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#6F84A8"},t),e,n)},createSet:function(){return this.canvas.paper.path("M485.871492 47.174338c-9.168729-0.008066-18.33651 3.392487-25.137616 10.224908L57.381424 460.755494c-13.603161 13.602212-13.540056 36.674443 0.062631 50.276655l403.288872 403.286025c13.603161 13.606956 36.673969 13.66674 50.276655 0l403.352926-403.350079c13.602686-13.601737 13.539581-36.674918-0.064054-50.27713L511.009107 57.399246c-6.801106-6.801106-15.969361-10.217316-25.137615-10.224908z m-0.030841 59.805036l378.943153 378.946-378.943153 378.94173-378.943153-378.94173 378.943153-378.946zM344.31891 317.829311c-0.006643 0-4.560641 0.872083-4.564436 0.872083-0.004745 0-3.864114 2.615773-3.866961 2.615773l-14.581525 14.584847c-0.004745 0-2.661797 3.902546-2.663696 3.94857 0 0.004745-0.824161 4.498011-0.823686 4.498011 0 0.004745 0.886317 4.452936 0.88774 4.452935 0 0.004745 2.532741 3.94857 2.535588 3.94857l133.188084 133.184763-133.12403 133.12498v-0.041754c0 0.004745-2.661797 3.947621-2.663696 3.947621 0 0.004745-0.823686 4.499434-0.823686 4.499434 0 0.009489 0.886317 4.452936 0.88774 4.452936 0 0 2.533215 3.901597 2.535588 3.947621l14.582474 14.579627c0.004745 0.004745 3.990798 2.617197 3.994119 2.617197 0.004745 0 4.434431 0.872083 4.438227 0.872083 0.004745 0 4.497536-0.825584 4.500858-0.825584 0.004745 0 3.928642-2.663695 3.931014-2.663696l133.125929-133.128775 133.154871 133.156769c0.004745 0.004745 3.991273 2.617197 3.99412 2.617197 0.004745 0 4.434431 0.872083 4.438226 0.872083 0.004745 0 4.498011-0.827008 4.501807-0.827008 0.004745 0 3.926744-2.661797 3.929116-2.661797l14.582949-14.580577c0.004745-0.004745 2.597743-3.855573 2.600116-3.855573 0-0.004745 0.88774-4.545458 0.88774-4.591007 0-0.004745-0.886791-4.452936-0.888689-4.452936 0 0-2.59632-3.994119-2.599167-3.994119l-133.140163-133.142535 133.141112-133.139214c0.004745 0 2.596794-3.856048 2.599167-3.856048 0-0.004745 0.88774-4.544509 0.88774-4.544509 0-0.009489-0.886317-4.452936-0.887266-4.452935 0-0.004745-2.659899-3.94857-2.662746-3.94857l-14.582949-14.584372c-0.004745 0-3.863639-2.616248-3.86696-2.616248-0.004745 0-4.433957-0.873032-4.437753-0.873032-0.004745 0-4.561116 0.873032-4.564436 0.873032-0.004745 0-3.864588 2.616248-3.866961 2.616248l-133.143484 133.143484-133.203268-133.207538v-0.041754c-0.004745 0-3.927693-2.5242-3.931014-2.5242-0.004745 0-4.431584-0.871608-4.436804-0.872083h-0.000949z")}})},"./src/diyShape/icon/GatewayInclusive.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.GatewayInclusive=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.GatewayInclusive",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#6F84A8"},t),e,n)},createSet:function(){return this.canvas.paper.path("M485.871492 47.174338c-9.168729-0.008066-18.33651 3.392487-25.137616 10.224908L57.381424 460.755494c-13.603161 13.602212-13.540056 36.674443 0.062631 50.276655l403.288872 403.286025c13.603161 13.606956 36.673969 13.66674 50.276655 0l403.352926-403.350079c13.602686-13.601737 13.539581-36.674918-0.064054-50.27713L511.009107 57.399246c-6.801106-6.801106-15.969361-10.217316-25.137615-10.224908z m-0.030841 59.805036l378.943153 378.946-378.943153 378.94173-378.943153-378.94173 378.943153-378.946z m0.020402 174.891c-112.560341 0-204.023684 91.469037-204.023684 204.02748 0 112.558443 91.463343 204.023684 204.023684 204.023685s204.023684-91.465241 204.023685-204.023685c0-112.558918-91.463343-204.02748-204.023685-204.02748z m0 22.62765c100.307533 0 181.402203 81.093246 181.402203 181.39983 0 100.306109-81.09467 181.405524-181.402203 181.405524-100.307058 0-181.401728-81.099415-181.401728-181.405524 0-100.306584 81.09467-181.400305 181.401728-181.400304z")}})},"./src/diyShape/icon/GatewayNone.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.GatewayNone=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.GatewayNone",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#6F84A8"},t),e,n)},createSet:function(){return this.canvas.paper.path("M57.382328 460.752186c-13.6029 13.602426-13.539794 36.675496 0.063581 50.277447l403.294754 403.292382c13.603375 13.606696 36.674547 13.666481 50.277447 0l403.358809-403.356437c13.603375-13.602426 13.539794-36.675496-0.064055-50.277922l-403.295228-403.296651c-13.603375-13.602426-36.674547-13.666481-50.277448 0l-403.358809 403.361181z m49.516855 25.171225l378.949125-378.952446 378.949125 378.951972-378.949125 378.947702-378.949125-378.947702z")}})},"./src/diyShape/icon/GatewayParallel.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.GatewayParallel=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.GatewayParallel",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#6F84A8"},t),e,n)},createSet:function(){return this.canvas.paper.path("M546.27156422 4.46502456c-10.43197611-0.00917731-20.8628736 3.85989632-28.60102087 11.63367311L58.74508685 475.02847317c-15.47737429 15.47629454-15.40557483 41.72736626 0.07126016 57.2036608l458.85311659 458.84987733c15.47737429 15.48169216 41.72682695 15.54971307 57.2036608 0l458.9259958-458.92275655c15.47683385-15.4757541 15.40503438-41.7279067-0.07287922-57.20420124L574.87258396 16.09869767c-7.73814727-7.73814727-18.16958407-11.62503509-28.60101974-11.63367311z m-0.0350902 68.04484096l431.15309852 431.15633778-431.15309852 431.15147947-431.15309853-431.15147947 431.15309853-431.15633778z m-11.77025422 178.05188096c0 0.00539875-5.21328867 0.99223666-5.21598863 0.99223552-0.00539875 0-4.26909923 2.87359773-4.27233735 2.87359887-0.00539875 0.00539875-2.96753152 4.38732573-2.97023146 4.38732459 0 0.00539875-1.00411278 5.22300643-1.00573184 5.22300643V478.27672405H306.669725l-0.03616995-0.04210802c0 0.00539875-5.19223523 1.14933077-5.19493405 1.14933191-0.00539875 0.00539875-4.26855879 2.87305842-4.27125874 2.87305842l0.00431901-0.05290553c-0.00539875 0.00539875-2.96753152 4.38732573-2.97023033 4.38732573-0.00539875 0-1.00465323 5.22354574-1.00681159 5.22354574v23.46708878s0.99763427 5.28130958 1.03326379 5.31747954c0 0.00539875 2.95727445 4.28313486 2.95727445 4.28313486 0.00539875 0.00539875 4.29555143 2.87305842 4.29717163 2.87305842 0.00539875 0.00539875 5.21274937 1.14825216 5.21490773 1.14825216h214.30683307v214.2026422l-0.03401046-0.03131164c0 0.00539875 1.03434467 5.31747954 1.03380424 5.31747954 0 0.00539875 2.9561947 4.28259555 2.9561947 4.28259555 0.00539875 0.00539875 4.29717163 2.87197867 4.29771093 2.87197867 0 0 5.17711986 1.09696683 5.21598862 1.14987122l23.46222933-0.00539876c0.00593806 0 5.31532003-1.09696683 5.3185593-1.09696682 0 0 4.26909923-2.87197867 4.27233848-2.87197867 0.00539875-0.00539875 2.95295545-4.28421461 2.9561947-4.28421461 0 0 1.01868885-5.30128441 1.02030792-5.30128328V528.9250395h214.25392754c0.00593806 0.00539875 5.31585934-1.09642638 5.31801884-1.09642638 0.00539875 0 4.27017899-2.87305842 4.27233849-2.87305842 0.00539875-0.00539875 2.95349589-4.28313486 2.95673401-4.28313486 0 0 1.01814841-5.30128441 1.02030904-5.30128441v-23.46222933c0-0.00539875-1.0132901-5.1717211-1.01167104-5.22354688-0.00539875-0.00539875-2.94215907-4.38732573-2.97886833-4.38732459-0.00539875-0.00539875-4.29609187-2.87197867-4.29717049-2.87197867 0 0.00539875-5.30128441-1.14987122-5.30398322-1.09750613h-214.2312539V264.09513642c0-0.00539875-1.01383054-5.17010091-1.01221035-5.22246712-0.00539875-0.00539875-2.94215907-4.38840547-2.94215907-4.38840434-0.00539875-0.00539875-4.29501213-2.87197867-4.29609188-2.87197867-0.00539875 0-5.31639979-1.04514105-5.31855815-1.04514219l-23.46654947-0.00539762z")}})},"./src/diyShape/icon/Group.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.Group=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.Group",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#4E5D78"},t),e,n)},createSet:function(){return this.canvas.paper.path("M917.333333 42.666667c36.224 0 64 30.293333 64 65.92v209.493333C981.333333 353.706667 953.557333 384 917.333333 384H341.333333v85.504l384 0.213333a42.666667 42.666667 0 0 1 42.368 37.674667l0.298667 4.992V640h149.333333c34.218667 0 60.885333 27.050667 63.744 60.074667l0.256 5.845333v209.493333C981.333333 951.04 953.557333 981.333333 917.333333 981.333333h-810.666666c-36.224 0-64-30.293333-64-65.92v-209.493333C42.666667 670.293333 70.442667 640 106.666667 640H682.666667v-84.992l-384-0.170667a42.666667 42.666667 0 0 1-42.368-37.674666L256 512.170667V384H106.666667c-34.218667 0-60.885333-27.050667-63.744-60.074667L42.666667 318.08v-209.493333C42.666667 72.96 70.442667 42.666667 106.666667 42.666667zM896 725.333333H128v170.666667h768v-170.666667z m-256 42.666667a42.666667 42.666667 0 0 1 4.992 85.034667L640 853.333333H384a42.666667 42.666667 0 0 1-4.992-85.034666L384 768h256z m256-640H128v170.666667h768V128z m-256 42.666667a42.666667 42.666667 0 0 1 4.992 85.034666L640 256H384a42.666667 42.666667 0 0 1-4.992-85.034667L384 170.666667h256z")}})},"./src/diyShape/icon/HLine.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.HLine=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.HLine",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#4E5D78"},t),e,n)},createSet:function(){return this.canvas.paper.path("M63.6 489.6h896.7v44.8H63.6z")}})},"./src/diyShape/icon/If.js":(t,e,n)=>{"use strict";var i=r(n("./src/packages.js"));r(n("./src/util/extend.js"));function r(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.If=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.If",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super(Object.assign({width:12,height:16,color:"#7F94AF"},t),e,n)},createSet:function(){return this.canvas.paper.path("M520 483v359c0 8.837 7.163 16 16 16h56c8.837 0 16-7.163 16-16V483h96c8.837 0 16-7.163 16-16v-56c0-8.837-7.163-16-16-16h-96v-58.377q0-34.63 24.506-59.121Q657.023 253 691.701 253q34.679 0 59.196 24.502l62.206-62.244Q789.36 191.529 758.54 178.5 726.6 165 691.701 165q-34.898 0-66.838 13.501-30.82 13.028-54.563 36.757-23.746 23.731-36.785 54.539Q520 301.731 520 336.623V395h-76c-8.837 0-16 7.163-16 16v56c0 8.837 7.163 16 16 16h76zM312 323c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56 25.072 56 56 56z m-44 88v431c0 8.837 7.163 16 16 16h56c8.837 0 16-7.163 16-16V411c0-8.837-7.163-16-16-16h-56c-8.837 0-16 7.163-16 16z")}})},"./src/diyShape/icon/Mail.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.Mail=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.Mail",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#7F94AF"},t),e,n)},createSet:function(){return this.canvas.paper.path("M480 405.333333V183.893333L406.613333 257.28a32 32 0 0 1-45.226666-45.226667l128-128a31.914667 31.914667 0 0 1 45.226666 0l128 128a32 32 0 0 1-45.226666 45.226667l-73.386667-73.386667V405.333333a32 32 0 0 1-64 0z M53.333333 320A32.085333 32.085333 0 0 1 85.333333 288h170.666667a32 32 0 0 1 0 64H181.333333L512 600.021333l330.666667-248.021333H768a32 32 0 0 1 0-64h170.666667c-0.042667 0 0 0 0 0a32 32 0 0 1 32 32.469333V874.666667a32 32 0 0 1-32 32H85.333333a32 32 0 0 1-32-32v-554.666667c0-0.042667 0 0 0 0zM117.333333 384v458.666667h789.333334V384l-375.466667 281.6a32 32 0 0 1-38.4 0L117.333333 384z")}})},"./src/diyShape/icon/Manual.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.Manual=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.Manual",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#7F94AF"},t),e,n)},createSet:function(){return this.canvas.paper.path("M470.722 196.09c-11.418 0.003-21.992 4.228-31.01 10.043l-0.015 0.009-0.014 0.01c-48.483 31.396-214.46 146.58-250.945 171.623l-0.001 0.001h-0.001c-32.958 22.628-55.16 56.783-67.923 97.247l-0.002 0.008-0.002 0.007c-13.287 42.248-11.583 88.27-11.454 126.815l0.001 0.01v0.01c0.13 29.023 0.822 54.351 8.35 85.068l0.002 0.008c10.943 44.954 32.137 77.484 62.07 97.426 29.931 19.941 66.874 27.017 108.326 27.145 149.65 0.562 299.387 0.763 449.117 0h0.026c16.491-0.108 32.235-7.041 42.053-19.291 9.817-12.249 13.833-28.091 14.044-45.47 0.148-11.658-1.49-22.676-5.277-32.519h16.576c16.144 0 30.942-4.6 41.55-14.293 10.604-9.69 16.028-22.845 18.846-36.7v-0.004c3.934-19.271 2.076-38.3-5.59-54.27 16.87-1.363 31.762-7.732 41.34-19.408 10.764-13.121 13.9-29.801 13.955-47.473 0.059-18.45-4.418-36.055-14.752-50.056s-27.531-23.53-46.882-23.557h-0.01c-7.046-0.006-13.394 0.004-21.392 0 3.848-9.597 5.54-20.39 5.505-31.747v-0.058c-0.117-18.315-4.737-35.816-15.122-49.729-10.386-13.913-27.55-23.426-46.892-23.426-114.903-0.453-228.481 1.104-325.07 0.616 5.032-5.061 9.92-9.997 15.293-15.34 16.631-16.54 32.615-32.124 40.872-42.809 19.74-25.407 22.685-59.828 6.067-85.148-8.762-13.385-21.61-22.442-35.405-24.327a45.846 45.846 0 0 0-5.126-0.41v0.002a46.154 46.154 0 0 0-1.107-0.013z m0.28 35.854a8.863 8.863 0 0 1 1.1 0.078c2.716 0.371 5.625 1.341 10.276 8.451l0.009 0.013 0.008 0.013c6.498 9.895 6.211 29.852-4.415 43.516l-0.018 0.023-0.018 0.023c-3.864 5.002-21.225 22.844-37.795 39.323-16.57 16.48-32.325 31.69-40.119 41.186-7.453 9.08-4.718 16.715-2.697 21.495 2.021 4.78 4.334 10.361 14.642 12.81 3.087 0.733 3.256 0.522 4.244 0.59 0.988 0.068 2.009 0.115 3.209 0.158 2.4 0.087 5.472 0.152 9.264 0.208 115.95 0.707 230.617-0.635 346.475-0.471h0.032c8.812 0 13.597 2.896 18.172 9.025 4.572 6.125 7.92 16.288 8.002 28.494 0.034 12.662-2.999 20.388-6.685 24.644-3.686 4.256-8.625 6.922-19.187 6.957H527.36v35.84h248.213c34.037 0.003 51.988-0.022 77.498 0 8.862 0.015 13.583 2.899 18.086 9 4.505 6.104 7.787 16.295 7.748 28.66-0.041 13.221-2.737 21.093-5.824 24.855-3.087 3.763-7.495 6.519-20.215 6.606-4.316 0.03-35.23 0.007-48.058 0.022-0.203-0.003-0.402-0.021-0.606-0.022-92.276-0.435-184.553-0.001-276.83-0.001h-0.012l-0.013 35.84h0.013c0.022 0 195.849 0.122 277.161 0.024 10.086 0.143 16.134 4.204 20.958 12.084 4.896 7.998 7.334 20.536 4.444 34.69v0.015c-1.913 9.41-4.82 14.578-7.903 17.396-3.084 2.818-7.34 4.911-17.374 4.911-92.428-0.044-184.855-0.231-277.283 0h-0.047l0.047 35.84h209.62c7.53 0.05 10.879 2.052 14.316 6.644 3.438 4.592 6.369 13.129 6.211 25.422v0.013c-0.145 11.987-3.047 19.595-6.173 23.495-3.126 3.9-6.351 5.815-14.322 5.867-149.567 0.762-299.19 0.562-448.773 0h-0.013c-37.403-0.114-66.794-6.621-88.576-21.133-21.786-14.512-37.687-37.309-47.124-76.082l-0.004-0.015-0.003-0.015c-6.59-26.876-7.198-48.133-7.327-76.703v-0.02c-0.131-39.205-0.883-81.946 9.803-115.922 10.952-34.714 28.666-61.057 54.022-78.467h0.002c36.928-25.347 203.894-141.139 250.112-171.07h0.002c4.34-2.799 7.936-3.99 10.608-4.252 0.446-0.044 0.865-0.062 1.258-0.058z")}})},"./src/diyShape/icon/Receive.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.Receive=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.Receive",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#7F94AF"},t),e,n)},createSet:function(){return this.canvas.paper.path("M48 170.666667a5.333333 5.333333 0 0 0-5.333333 5.333333v672a5.333333 5.333333 0 0 0 5.333333 5.333333h928a5.333333 5.333333 0 0 0 5.333333-5.333333V176a5.333333 5.333333 0 0 0-5.333333-5.333333z m762.666667 84.16l-295.466667 240a5.333333 5.333333 0 0 1-6.72 0L213.333333 254.826667a5.333333 5.333333 0 0 1 3.2-9.493334h590.933334a5.333333 5.333333 0 0 1 3.2 9.493334zM901.333333 778.666667H122.666667a5.333333 5.333333 0 0 1-5.333334-5.333334V284.426667a5.333333 5.333333 0 0 1 8.746667-4.16l382.56 310.826666a5.333333 5.333333 0 0 0 6.72 0l382.56-310.826666a5.333333 5.333333 0 0 1 8.746667 4.16V773.333333a5.333333 5.333333 0 0 1-5.333334 5.333334z")}})},"./src/diyShape/icon/Script.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.Script=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.Script",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#4E5D78"},t),e,n)},createSet:function(){return this.canvas.paper.path("M597.344 853.344A85.344 85.344 0 0 0 682.688 768V213.344h-298.656c-23.552 0-42.656 19.104-42.656 42.656v426.656h-128V213.312a128 128 0 0 1 128-128h469.344a128 128 0 0 1 128 128v42.656h-170.656v554.656a128 128 0 0 1-128 128H213.408a128 128 0 0 1-128-128v-42.656h426.656a85.344 85.344 0 0 0 85.344 85.344z")}})},"./src/diyShape/icon/ScriptFill.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.ScriptFill=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.ScriptFill",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#4E5D78"},t),e,n)},createSet:function(){return this.canvas.paper.path("M759.466667 853.333333c-17.066667 51.2-64 85.333333-119.466667 85.333334H213.333333c-72.533333 0-128-55.466667-128-128v-42.666667h520.533334c17.066667 51.2 64 85.333333 119.466666 85.333333h34.133334zM810.666667 85.333333H341.333333C268.8 85.333333 213.333333 140.8 213.333333 213.333333v469.333334h469.333334v42.666666c0 25.6 17.066667 42.666667 42.666666 42.666667h42.666667V213.333333c0-25.6 17.066667-42.666667 42.666667-42.666666s42.666667 17.066667 42.666666 42.666666v42.666667h85.333334V213.333333c0-72.533333-55.466667-128-128-128z")}})},"./src/diyShape/icon/Service.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.Service=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.Service",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#4E5D78"},t),e,n)},createSet:function(){return this.canvas.paper.path("M512.45511147 720.6684448a211.62666667 211.62666667 0 0 0 150.41422186-62.57777813c40.27733333-40.27733333 62.57777813-93.75288853 62.57777814-150.41422187s-22.3004448-110.13688853-62.57777814-150.41422293-93.75288853-62.57777813-150.41422186-62.57777707-110.13688853 22.3004448-150.41422294 62.57777707c-40.27733333 40.27733333-62.57777813 93.75288853-62.57777706 150.41422293s22.3004448 110.13688853 62.57777706 150.41422187a211.62666667 211.62666667 0 0 0 150.41422294 62.57777813z m-129.70666667-212.992c0-71.4524448 58.25422187-129.70666667 129.70666667-129.70666667s129.70666667 58.25422187 129.70666666 129.70666667-58.25422187 129.70666667-129.70666666 129.70666667-129.70666667-58.25422187-129.70666667-129.70666667z m592.3271104 83.968l-78.0515552-59.1644448c0.68266667-7.50933333 1.36533333-15.92888853 1.36533333-24.8035552s-0.68266667-17.29422187-1.36533333-24.80355627l78.0515552-59.16444373c25.48622187-19.56977813 31.85777813-53.4755552 15.70133333-82.37511147l-90.79466666-153.3724448a65.64977813 65.64977813 0 0 0-56.88888854-32.768c-8.192 0-15.01866667 1.13777813-22.3004448 3.8684448l-93.07022186 36.18133334c-14.1084448-9.32977813-29.12711147-17.74933333-44.8284448-25.03111147l-13.88088854-94.4355552c-4.77866667-31.85777813-32.08533333-55.0684448-64.62577813-55.0684448h-183.18222187c-32.5404448 0-59.84711147 22.7555552-64.62577813 54.15822293l-13.19822187 95.57333334c-13.88088853 6.59911147-28.21688853 14.5635552-44.60088853 25.0311104l-93.29777813-36.40888854c-7.05422187-2.73066667-14.5635552-3.8684448-23.21066667-3.8684448-24.12088853 0-45.73866667 12.288-56.20622187 32.08533334l-91.47733333 153.82755626c-7.9644448 13.19822187-10.69511147 28.8995552-7.9644448 44.14577707 2.95822187 15.24622187 11.15022187 28.8995552 23.43822187 38.4568896l78.05155626 59.16444373c-0.68266667 8.87466667-1.36533333 17.06666667-1.36533333 24.80355627s0 15.92888853 1.13777707 25.0311104l-77.824 59.1644448c-25.48622187 19.56977813-31.85777813 53.4755552-15.70133334 82.37511147L125.1555552 827.6195552c11.60533333 20.2524448 33.45066667 32.768 56.8888896 32.768 8.192 0 15.01866667-1.13777813 22.30044373-3.86844373l93.07022294-36.18133334c14.1084448 9.32977813 29.12711147 17.74933333 44.82844373 25.0311104l13.8808896 94.43555627c1.8204448 15.01866667 9.55733333 29.12711147 21.61777707 39.3671104 12.0604448 10.24 27.30666667 15.92888853 43.008 15.9288896h183.18222293c32.5404448 0 59.84711147-22.7555552 64.62577707-54.15822293l13.8808896-95.34577707c13.88088853-6.59911147 28.21688853-14.5635552 44.60088853-25.03111147l93.29777813 36.40888854c7.05422187 2.73066667 14.5635552 3.8684448 23.21066667 3.8684448 24.12088853 0 45.73866667-12.288 56.20622187-32.08533334l91.47733333-154.96533333c15.47377813-28.21688853 8.4195552-62.35022187-16.6115552-81.46488853z m-793.0311104 4.77866667l33.2231104-25.71377814-3.86844373-41.64266666c-0.91022187-7.50933333-0.91022187-15.01866667-0.91022294-21.61777814s0-14.1084448 0.91022294-21.39022186l3.86844373-41.87022187-33.2231104-25.71377813-66.67377813-50.74488854 73.9555552-125.15555626 82.37511146 32.08533333 36.864 14.1084448 33.22311147-21.84533333c13.19822187-9.10222187 26.624-16.83911147 39.82222187-22.528l37.0915552-17.06666667 17.74933333-123.56266667h151.552l11.8328896 82.60266667 5.68888853 40.7324448 36.864 17.06666667c11.83288853 5.9164448 26.8515552 13.65333333 40.27733334 22.528l33.22311146 21.84533333 37.0915552-14.336 81.46488854-31.85777813 74.86577813 125.1555552-66.67377813 50.7448896-33.2231104 25.71377706 3.86844373 41.64266667c0.91022187 7.50933333 0.91022187 15.01866667 0.91022293 21.61777813s0 14.1084448-0.91022293 21.39022187l-3.86844373 41.87022293 33.2231104 25.71377707 66.67377813 50.7448896-73.9555552 125.1555552-82.37511147-32.08533333-36.864-14.1084448-33.22311146 21.84533333c-13.19822187 9.10222187-26.624 16.83911147-39.82222187 22.528l-37.0915552 17.06666667-17.74933333 123.56266666h-151.552l-11.8328896-82.60266666-5.68888854-40.73244374-36.864-17.06666666c-11.83288853-5.9164448-27.07911147-13.88088853-40.27733333-22.528l-33.22311147-21.84533334-36.864 14.336-81.46488853 31.85777707-74.86577813-125.1555552 66.67377813-50.74488853z")}})},"./src/diyShape/icon/ServiceFill.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.ServiceFill=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.ServiceFill",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#4E5D78"},t),e,n)},createSet:function(){return this.canvas.paper.path("M866.88024688 556.59682438c1.98241406-15.27564469 3.26498719-30.55035187 3.26498718-46.87435219 0-16.20782906-1.51585313-31.48347281-3.26498719-46.87435219l100.74523969-78.82344937c9.09512156-7.11364406 11.54409656-20.056485 5.71396219-30.55128844l-95.49783844-165.22616625c-5.71396219-10.49292938-18.65680312-14.34158625-29.15067-10.49292938l-118.93548281 47.80653657c-24.83638969-19.1224275-51.65519344-34.86369562-80.68875469-46.87435219L630.87646062 52.05554844C629.36154313 40.51238937 619.44947281 32 607.43975281 32H416.32696719c-11.89354875 0-21.92272781 8.62856063-23.43764438 20.05554844l-18.19024312 126.6309225c-29.15067 11.89354875-55.852365 28.21848562-80.68875469 46.87435218l-118.93548281-47.80747312c-11.07659906-4.31428031-23.43670781 0-29.15067 10.49480344L50.42727031 353.47431875c-6.29575781 10.49386688-3.26405062 23.43670781 5.71396219 30.55035187l100.74524063 78.82344938c-1.98241406 15.27470719-3.26498719 31.01597531-3.26498719 46.87435219 0 15.85743937 1.51585313 31.48253625 3.26498719 46.87435218L56.02506125 635.42027375C46.92900313 642.53298031 44.48096469 655.47582219 50.31109906 665.96968813l95.49783844 165.22616625c5.71302562 10.49480344 18.65680312 14.34252281 29.15067 10.49480343l118.93548281-47.80841062c24.83638969 19.12336406 51.65425687 34.86556875 80.68875469 46.87528968l18.18930562 126.6309225c1.51585313 11.42698781 11.42792437 20.05554844 23.43764438 20.05554844h191.11184906c11.89354875 0 21.92179125-8.62856063 23.43764438-20.05554844l18.18930562-126.6309225c29.15067-11.89354875 55.85330156-28.21848562 80.68969219-46.87435312l118.93548281 47.80747406c11.07659906 4.31428031 23.43670781 0 29.14973344-10.49480344L973.22234 665.96968813c5.71396219-10.49386688 3.26498719-23.43670781-5.71302469-30.54941438l-100.62906843-78.82344937zM511.94191437 677.04722375c-92.23285125 0-167.20858031-74.97572906-167.20858031-167.20858031s74.97572906-167.20858031 167.20858032-167.20857938S679.15049469 417.60579312 679.15049469 509.83864344s-74.97572906 167.20858031-167.20858032 167.20858031z m0 0")}})},"./src/diyShape/icon/Start.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.Start=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.Start",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#17C0A4"},t),e,n)},createSet:function(){return this.canvas.paper.path("M512 938.666667C276.352 938.666667 85.333333 747.648 85.333333 512S276.352 85.333333 512 85.333333s426.666667 191.018667 426.666667 426.666667-191.018667 426.666667-426.666667 426.666667z m0-85.333334a341.333333 341.333333 0 1 0 0-682.666666 341.333333 341.333333 0 0 0 0 682.666666zM453.205333 359.04l208.170667 138.752a17.066667 17.066667 0 0 1 0 28.416l-208.213333 138.752a17.066667 17.066667 0 0 1-26.496-14.165333V373.205333a17.066667 17.066667 0 0 1 26.538666-14.165333z")}})},"./src/diyShape/icon/StartFill.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.StartFill=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.StartFill",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#17C0A4"},t),e,n)},createSet:function(){return this.canvas.paper.path("M512 938.666667C276.352 938.666667 85.333333 747.648 85.333333 512S276.352 85.333333 512 85.333333s426.666667 191.018667 426.666667 426.666667-191.018667 426.666667-426.666667 426.666667zM453.205333 359.04a17.066667 17.066667 0 0 0-26.538666 14.165333v277.589334a17.066667 17.066667 0 0 0 26.538666 14.165333l208.170667-138.752a17.066667 17.066667 0 0 0 0-28.416l-208.213333-138.752z")}})},"./src/diyShape/icon/StartNode.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.StartNode=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.StartNode",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#17C0A4"},t),e,n)},createSet:function(){return this.canvas.paper.path("M503.765333 0L64 260.266667v502.144l428.8 245.589333 22.016-51.328-388.522667-227.242667V289.536l377.472-212.608 377.514667 212.608V725.76l-168.576 73.301333-175.914667-106.282666v-122.794667l157.568-78.805333c7.296-3.712 14.634667-11.008 14.634667-18.346667 11.008-18.346667 3.712-40.32-14.634667-47.658667l-249.216-124.586666c-3.626667-3.669333-7.338667-3.669333-14.677333-3.669334-21.973333 0-36.608 14.634667-36.608 36.608v249.258667c0 3.669333 0 11.008 3.712 18.346667 7.296 14.634667 29.269333 21.930667 47.616 14.634666l25.685333-12.842666v122.752l241.92 150.272 230.826667-106.325334V260.266667L503.808 0z")}})},"./src/diyShape/icon/SubProcess.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.SubProcess=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.SubProcess",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#17C0A4"},t),e,n)},createSet:function(){return this.canvas.paper.path("M238.837 148.48c-87.363 0-158.452 71.084-158.452 158.447v433.501c0 87.363 71.09 158.452 158.452 158.452h582.786c87.363 0 158.452-71.089 158.452-158.452v-433.5c0-87.364-71.09-158.448-158.452-158.448z m0 49.982h582.786c60.528 0 108.468 47.941 108.468 108.465v433.501c0 60.529-47.94 108.47-108.468 108.47H238.837c-60.527 0-108.468-47.941-108.468-108.47v-433.5c0-60.525 47.94-108.466 108.468-108.466z M703.848 852.666V537.293H357.39v315.373c31.736-0.653 314.72-0.653 346.457 0z m-314.72-283.637H672.11v282.984H389.127zM506.88 609.28v78.85h-78.852v47.482h78.852v78.851h47.479v-78.851h78.852v-47.481H554.36V609.28z")}})},"./src/diyShape/icon/Timer.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.Timer=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.Timer",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#FF8A65"},t),e,n)},createSet:function(){return this.canvas.paper.path("M514.966783 224.827301c-127.283974 0-244.897211 66.64276-308.55342 174.812806a343.993829 343.993829 0 0 0 0 349.654055c63.627765 108.170046 181.269445 174.812806 308.55342 174.812806 196.742626 0 356.252911-156.552178 356.252912-349.654055 0-193.073434-159.510286-349.625612-356.252912-349.625612zM56.886692 574.452913C56.886692 413.890224 144.207765 265.472843 285.912516 185.148833a465.617578 465.617578 0 0 1 458.080091 0c141.733194 80.32401 229.025824 228.712947 229.025824 389.30408C973.046874 822.763326 767.970348 1024 514.966783 1024 261.963219 1024 56.886692 822.734882 56.886692 574.452913zM731.107771 17.133987a51.5109 51.5109 0 0 1 71.876336-4.750038l203.569029 174.841249c21.16185 18.146855 23.323544 49.718969 4.835369 70.482612-18.516618 20.763643-50.686043 22.896894-71.847893 4.721595L735.94314 87.645043a49.292319 49.292319 0 0 1-4.835369-70.482612z M292.226939 16.821111A51.482457 51.482457 0 0 0 257.355397 0.15331c-13.425259-0.8533-26.708302 3.441645-36.834134 12.031535L17.350441 183.783553a47.898595 47.898595 0 0 0-4.778482 69.202661 52.051324 52.051324 0 0 0 71.677232 4.636266l203.142379-171.627151a47.870152 47.870152 0 0 0 4.835369-69.202662z m215.685894 301.983006c28.045139 0 50.799816 21.958263 50.799817 49.036329v169.92055l129.758545 83.509665c23.323544 15.04653 29.637967 45.509354 14.079457 68.008041-15.586954 22.555574-47.130625 28.614006-70.454169 13.595919l-152.371006-98.072658a48.609679 48.609679 0 0 1-22.584017-40.816201v-196.145316c0-27.078066 22.754677-49.036329 50.771373-49.036329z")}})},"./src/diyShape/icon/TimerFill.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.TimerFill=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.TimerFill",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#FF8A65"},t),e,n)},createSet:function(){return this.canvas.paper.path("M56.886692 574.452913C56.886692 413.890224 144.207765 265.472843 285.912516 185.148833a465.617578 465.617578 0 0 1 458.080091 0c141.733194 80.32401 229.025824 228.712947 229.025824 389.30408C973.046874 822.763326 767.970348 1024 514.966783 1024 261.963219 1024 56.886692 822.734882 56.886692 574.452913zM292.226939 16.821111a47.870152 47.870152 0 0 1-4.835369 69.202661L84.249191 257.650923a52.051324 52.051324 0 0 1-71.677232-4.636266A47.898595 47.898595 0 0 1 17.350441 183.811996L220.521263 12.184845A51.93755 51.93755 0 0 1 257.355397 0.15331c13.453703 0.8533 25.997218 6.88329 34.871542 16.667801z m215.685894 301.983006c-28.045139 0-50.771373 21.958263-50.771373 49.036329v196.145316c0 16.411811 8.476117 31.714331 22.584017 40.816201l152.371006 98.072658c23.323544 15.018087 54.895658 8.959654 70.454169-13.595919 15.55851-22.52713 9.244088-52.961511-14.079457-67.979598l-129.758545-83.538108v-169.92055c0-27.078066-22.754677-49.036329-50.799817-49.036329zM731.107771 17.133987a51.5109 51.5109 0 0 1 71.876336-4.750038l203.569029 174.841249c21.16185 18.146855 23.323544 49.718969 4.835369 70.482612-18.516618 20.763643-50.686043 22.896894-71.847893 4.721595L735.94314 87.645043a49.292319 49.292319 0 0 1-4.835369-70.482612z")}})},"./src/diyShape/icon/VLine.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.icon.VLine=i.default.shape.icon.Icon.extend({NAME:"draw2d.diyShape.icon.VLine",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2];this._super((0,r.default)({width:14,height:14,color:"#4E5D78"},t),e,n)},createSet:function(){return this.canvas.paper.path("M474.91 67h74.19v890h-74.19z")}})},"./src/diyShape/shapeUtil.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/policy/custom/commonResizeHandle.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.diyShape.shapeUtil={createShape:function(t,e,n,r){var a=((e||{}).extraParam||{}).nodeStyle,s=void 0;if(!t||"string"!=typeof t)return s;var o=t.toUpperCase().trim();if(!(s=o.indexOf("TASK")>-1?a===i.default.diyShape.common.nodeStyleEnum.FILL?i.default.diyShape.styleFill.taskUtil.get(t,e,n,r):i.default.diyShape.styleLine.taskUtil.get(t,e,n,r):o.indexOf("GATEWAY")>-1?a===i.default.diyShape.common.nodeStyleEnum.FILL?i.default.diyShape.styleFill.gatewayUtil.get(t,e,n,r):i.default.diyShape.styleLine.gatewayUtil.get(t,e,n,r):a===i.default.diyShape.common.nodeStyleEnum.FILL?i.default.diyShape.styleFill.eventUtil.get(t,e,n,r):i.default.diyShape.styleLine.eventUtil.get(t,e,n,r)))switch(o){case"HORIZONTALLANE":s=new i.default.diyShape.basic.HorizontalLane(e,n,r);break;case"VERTICALLANE":s=new i.default.diyShape.basic.VerticalLane(e,n,r);break;case"FLOWTEXT":s=new i.default.diyShape.basic.FlowText(e,n,r);break;case"REMARKS":s=new i.default.diyShape.basic.Remarks(e,n,r);break;case"GROUP":s=new i.default.diyShape.basic.Group(e,n,r)}return s},createResizeHandle:r.default}},"./src/diyShape/styleFill/event/End.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleFill.event.End=r.default.diyShape.icon.EndFill.extend(i({NAME:"draw2d.diyShape.styleFill.event.End",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2],i=t||{},s=i.name,o=i.isNoneBiz,l=i.extraParam,c=l||{},u=c.showIconLabel,h=(c.showArrow,c.labelLocator),d=void 0===h?"BottomLocator":h;this.extraParam=l,this.name=s||null,this.extraParam=l,this._super((0,a.default)({width:30,height:30,stroke:1,radius:"50%",icon:"End"},t),e,n),this.addCssClass("cursor-pointer"),u&&(this.label=new r.default.shape.basic.Label({text:s,stroke:0,bold:!0,fontColor:"#1A253B",fontSize:14}),this.add(this.label,new r.default.layout.locator[d])),!o&&this.initTopPort()}},r.default.diyShape.common.iconCommFunction))},"./src/diyShape/styleFill/event/ErrorBoundary.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleFill.event.ErrorBoundary=r.default.diyShape.icon.ErrorFill.extend(i({NAME:"draw2d.diyShape.styleFill.event.ErrorBoundary",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2],i=t||{},s=i.name,o=i.isNoneBiz,l=i.extraParam,c=l||{},u=c.showIconLabel,h=(c.showArrow,c.labelLocator),d=void 0===h?"BottomLocator":h;this.extraParam=l,this.name=s||null,this._super((0,a.default)({width:30,height:30,stroke:1,radius:"50%",icon:"End"},t),e,n),this.addCssClass("cursor-pointer"),u&&(this.label=new r.default.shape.basic.Label({text:s,stroke:0,bold:!0,fontColor:"#1A253B",fontSize:14}),this.add(this.label,new r.default.layout.locator[d])),!o&&this.initTopPort()}},r.default.diyShape.common.iconCommFunction))},"./src/diyShape/styleFill/event/Start.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleFill.event.Start=r.default.diyShape.icon.StartFill.extend(i({NAME:"draw2d.diyShape.styleFill.event.Start",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2],i=t||{},s=i.name,o=i.isNoneBiz,l=i.extraParam,c=l||{},u=c.showIconLabel,h=(c.showArrow,c.labelLocator),d=void 0===h?"BottomLocator":h;this.extraParam=l,this.name=s||null,this._super((0,a.default)({width:30,height:30,stroke:1,radius:"50%",icon:"Start"},t),e,n),this.addCssClass("cursor-pointer"),u&&(this.label=new r.default.shape.basic.Label({text:s,stroke:0,bold:!0,fontColor:"#1A253B",fontSize:14}),this.add(this.label,new r.default.layout.locator[d])),!o&&this.initBottomPort()}},r.default.diyShape.common.iconCommFunction))},"./src/diyShape/styleFill/event/TimerBoundary.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleFill.event.TimerBoundary=r.default.diyShape.icon.TimerFill.extend(i({NAME:"draw2d.diyShape.styleFill.event.TimerBoundary",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2],i=t||{},s=i.name,o=i.extraParam,l=o||{},c=l.showIconLabel,u=(l.showArrow,l.labelLocator),h=void 0===u?"BottomLocator":u;this.extraParam=o,this.name=s||null,this._super((0,a.default)({width:30,height:30,stroke:1,radius:"50%",icon:"End"},t),e,n),this.addCssClass("cursor-pointer"),c&&(this.label=new r.default.shape.basic.Label({text:s,stroke:0,bold:!0,fontColor:"#1A253B",fontSize:14}),this.add(this.label,new r.default.layout.locator[h]))}},r.default.diyShape.common.iconCommFunction))},"./src/diyShape/styleFill/event/index.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.diyShape.styleFill.eventUtil={get:function(t,e,n,i){var r=void 0,s=e||{};return void 0!==a.default.diyShape.styleFill.event[t]?r=new a.default.diyShape.styleFill.event[t](s,n,i):r}}},"./src/diyShape/styleFill/gateway/EventGateway.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleFill.gateway.EventGateway=r.default.diyShape.icon.GatewayEvent.extend(i({NAME:"draw2d.diyShape.styleFill.gateway.EventGateway",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2],i=t||{},s=i.name,o=i.isNoneBiz,l=i.extraParam,c=l||{},u=c.showIconLabel,h=(c.showArrow,c.labelLocator),d=void 0===h?"BottomLocator":h;this.extraParam=l,this.name=s||null,this._super((0,a.default)({width:42,height:42,icon:""},t),e,n),this.addCssClass("cursor-pointer"),u&&(this.label=new r.default.shape.basic.Label({text:s,stroke:0,bold:!0,fontColor:"#1A253B",fontSize:14}),this.add(this.label,new r.default.layout.locator[d])),!o&&this.initPorts()}},r.default.diyShape.common.iconCommFunction))},"./src/diyShape/styleFill/gateway/ExclusiveGateway.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleFill.gateway.ExclusiveGateway=r.default.diyShape.icon.GatewayExclusive.extend(i({NAME:"draw2d.diyShape.styleFill.gateway.ExclusiveGateway",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2],i=t||{},s=i.name,o=i.isNoneBiz,l=i.extraParam,c=l||{},u=c.showIconLabel,h=(c.showArrow,c.labelLocator),d=void 0===h?"BottomLocator":h;this.extraParam=l,this.name=s||null,this._super((0,a.default)({width:42,height:42,icon:""},t),e,n),this.addCssClass("cursor-pointer"),u&&(this.label=new r.default.shape.basic.Label({text:s,stroke:0,bold:!0,fontColor:"#1A253B",fontSize:14}),this.add(this.label,new r.default.layout.locator[d])),!o&&this.initPorts()}},r.default.diyShape.common.iconCommFunction))},"./src/diyShape/styleFill/gateway/InclusiveGateway.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleFill.gateway.InclusiveGateway=r.default.diyShape.icon.GatewayInclusive.extend(i({NAME:"draw2d.diyShape.styleFill.gateway.InclusiveGateway",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2],i=t||{},s=i.name,o=i.isNoneBiz,l=i.extraParam,c=l||{},u=c.showIconLabel,h=(c.showArrow,c.labelLocator),d=void 0===h?"BottomLocator":h;this.extraParam=l,this.name=s||null,this._super((0,a.default)({width:42,height:42,icon:""},t),e,n),this.addCssClass("cursor-pointer"),u&&(this.label=new r.default.shape.basic.Label({text:s,stroke:0,bold:!0,fontColor:"#1A253B",fontSize:14}),this.add(this.label,new r.default.layout.locator[d])),!o&&this.initPorts()}},r.default.diyShape.common.iconCommFunction))},"./src/diyShape/styleFill/gateway/ParallelGateway.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleFill.gateway.ParallelGateway=r.default.diyShape.icon.GatewayParallel.extend(i({NAME:"draw2d.diyShape.styleFill.gateway.ParallelGateway",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2],i=t||{},s=i.name,o=i.isNoneBiz,l=i.extraParam,c=l||{},u=c.showIconLabel,h=(c.showArrow,c.labelLocator),d=void 0===h?"BottomLocator":h;this.extraParam=l,this.name=s||null,this._super((0,a.default)({width:42,height:42,icon:""},t),e,n),this.addCssClass("cursor-pointer"),u&&(this.label=new r.default.shape.basic.Label({text:s,stroke:0,bold:!0,fontColor:"#1A253B",fontSize:14}),this.add(this.label,new r.default.layout.locator[d])),!o&&this.initPorts()}},r.default.diyShape.common.iconCommFunction))},"./src/diyShape/styleFill/gateway/index.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.diyShape.styleFill.gatewayUtil={get:function(t,e,n,i){var r=void 0,s=e||{};return void 0!==a.default.diyShape.styleFill.gateway[t]?r=new a.default.diyShape.styleFill.gateway[t](s,n,i):r}}},"./src/diyShape/styleFill/index.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.diyShape.styleFill.shapeUtil={get:function(t,e,n,i){e=e||{};var r=void 0;if(!t||"string"!=typeof t)return r;var s=t.toUpperCase().trim();return r=s.indexOf("TASK")>-1?a.default.diyShape.styleFill.taskUtil.get(t,e,n,i):s.indexOf("GATEWAY")>-1?a.default.diyShape.styleFill.gatewayUtil.get(t,e,n,i):a.default.diyShape.styleFill.eventUtil.get(t,e,n,i)}}},"./src/diyShape/styleFill/task/BaseTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleFill.task.BaseTask=r.default.shape.layout.FlexGridLayout.extend(i({NAME:"draw2d.diyShape.styleFill.task.BaseTask",init:function(t,e,n){var i=t||{},s=i.radius,o=void 0===s?4:s,l=i.stroke,c=void 0===l?0:l,u=i.color,h=i.bgColor,d=i.height,f=void 0===d?36:d,p=i.width,g=void 0===p?108:p,m=i.draggable,y=void 0===m||m,v=i.name,b=i.minWidth,x=i.minHeight,w=i.extraParam,S=i.nodeType,C=i.isNoneBiz;this._super((0,a.default)({columns:"40px, grow",rows:"grow",color:u,selectable:!0,resizeable:!1,width:g,height:f,radius:o,draggable:y,stroke:c},t),e,n),this.nodeType=S,this.multiPorts=!0,this.candidateGroups=new r.default.util.ArrayList,this.formProperties=new r.default.util.ArrayList,this.taskListeners=new r.default.util.ArrayList,this.extraParam=w,this.name=v||null,this.setNodeStyle(r.default.diyShape.common.nodeStyleEnum.FILL,t),this.setBackgroundColor(h),this.addCssClass("cursor-pointer"),this.on("added",(function(e,n){n.figure.setShapeText(t.name,b,x)})),this.on("dragend",(function(t){t.repaint()})),!C&&this.initPorts()},addCandidateGroup:function(t){this.candidateGroups.contains(t)||this.candidateGroups.add(t)},addFormProperties:function(t){this.formProperties.add(t)},deleteCandidateGroup:function(t){var e=this.getCandidateGroup(t);this.candidateGroups.remove(e)},deleteFormProperties:function(t){var e=this.getFormProperties(t);this.formProperties.remove(e)},setFormProperties:function(t){this.formProperties=t},setTaskListeners:function(t){this.taskListeners=t},getCandidateGroup:function(t){for(var e=0;e<this.candidateGroups.getSize();e++){var n=this.candidateGroups.get(e);if(n===t)return n}return null},getFormProperties:function(t){for(var e=0;e<this.formProperties.getSize();e++){var n=this.formProperties.get(e);if(n.id==t)return n}}},r.default.diyShape.common.shapeCommFunction))},"./src/diyShape/styleFill/task/BusinessRuleTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleFill.task.BusinessRuleTask=r.default.diyShape.styleFill.task.BaseTask.extend({NAME:"draw2d.diyShape.styleFill.task.BusinessRuleTask",init:function(t,e,n){var s=t||{},o=s.extraParam,l=function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}(s,["extraParam"]);this._super((0,a.default)({color:"#0AAFEE",bgColor:"#0AAFEE",extraParam:i({iconSvg:r.default.diyShape.icon.BusinessRule},o||{})},l),e,n)},getIconClassName:function(){return"business-rule-icon"}})},"./src/diyShape/styleFill/task/CallActivityTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleFill.task.CallActivityTask=r.default.diyShape.styleFill.task.BaseTask.extend({NAME:"draw2d.diyShape.styleFill.task.CallActivityTask",init:function(t,e,n){var s=t||{},o=s.extraParam,l=function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}(s,["extraParam"]);this._super((0,a.default)({color:"#0AAFEE",bgColor:"#0AAFEE",extraParam:i({iconSvg:r.default.diyShape.icon.CallActivity},o||{})},l),e,n)},getIconClassName:function(){return"call-activity-icon"}})},"./src/diyShape/styleFill/task/DataConversionTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleFill.task.DataConversionTask=r.default.diyShape.styleFill.task.BaseTask.extend({NAME:"draw2d.diyShape.styleFill.task.DataConversionTask",init:function(t,e,n){var s=t||{},o=s.extraParam,l=function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}(s,["extraParam"]);this._super((0,a.default)({color:"#0AAFEE",bgColor:"#0AAFEE",extraParam:i({iconSvg:r.default.diyShape.icon.DataRuleFill},o||{})},l),e,n)},getIconClassName:function(){return"data-rule-icon"}})},"./src/diyShape/styleFill/task/MailTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleFill.task.MailTask=r.default.diyShape.styleFill.task.BaseTask.extend({NAME:"draw2d.diyShape.styleFill.task.MailTask",init:function(t,e,n){var s=t||{},o=s.extraParam,l=function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}(s,["extraParam"]);this._super((0,a.default)({color:"#0AAFEE",bgColor:"#0AAFEE",extraParam:i({iconSvg:r.default.diyShape.icon.Mail},o||{})},l),e,n)},getIconClassName:function(){return"mail-task-icon"}})},"./src/diyShape/styleFill/task/ManualTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleFill.task.ManualTask=r.default.diyShape.styleFill.task.BaseTask.extend({NAME:"draw2d.diyShape.styleFill.task.ManualTask",init:function(t,e,n){var s=t||{},o=s.extraParam,l=function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}(s,["extraParam"]);this._super((0,a.default)({color:"#0AAFEE",bgColor:"#0AAFEE",extraParam:i({iconSvg:r.default.diyShape.icon.Manual},o||{})},l),e,n)},getIconClassName:function(){return"manual-task-icon"}})},"./src/diyShape/styleFill/task/ReceiveTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleFill.task.ReceiveTask=r.default.diyShape.styleFill.task.BaseTask.extend({NAME:"draw2d.diyShape.styleFill.task.ReceiveTask",init:function(t,e,n){var s=t||{},o=s.extraParam,l=function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}(s,["extraParam"]);this._super((0,a.default)({color:"#0AAFEE",bgColor:"#0AAFEE",extraParam:i({iconSvg:r.default.diyShape.icon.Receive},o||{})},l),e,n)},getIconClassName:function(){return"receive-task-icon"}})},"./src/diyShape/styleFill/task/ScriptTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleFill.task.ScriptTask=r.default.diyShape.styleFill.task.BaseTask.extend({NAME:"draw2d.diyShape.styleFill.task.ScriptTask",init:function(t,e,n){var s=t||{},o=s.extraParam,l=function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}(s,["extraParam"]);this._super((0,a.default)({color:"#0AAFEE",bgColor:"#0AAFEE",extraParam:i({iconSvg:r.default.diyShape.icon.ScriptFill},o||{})},l),e,n)},getIconClassName:function(){return"script-task-icon"}})},"./src/diyShape/styleFill/task/ServiceTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleFill.task.ServiceTask=r.default.diyShape.styleFill.task.BaseTask.extend({NAME:"draw2d.diyShape.styleFill.task.ServiceTask",init:function(t,e,n){var s=t||{},o=s.extraParam,l=function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}(s,["extraParam"]);this._super((0,a.default)({color:"#0AAFEE",bgColor:"#0AAFEE",extraParam:i({iconSvg:r.default.diyShape.icon.ServiceFill},o||{})},l),e,n)},getIconClassName:function(){return"service-task-icon"}})},"./src/diyShape/styleFill/task/SubProcessTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleFill.task.SubProcessTask=r.default.diyShape.styleFill.task.BaseTask.extend({NAME:"draw2d.diyShape.styleFill.task.SubProcessTask",init:function(t,e,n){var s=t||{},o=s.extraParam,l=function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}(s,["extraParam"]);this._super((0,a.default)({color:"#0AAFEE",bgColor:"#0AAFEE",extraParam:i({iconSvg:r.default.diyShape.icon.SubProcess},o||{})},l),e,n)},getIconClassName:function(){return"sub-process-icon"}})},"./src/diyShape/styleFill/task/UserTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleFill.task.UserTask=r.default.diyShape.styleFill.task.BaseTask.extend({NAME:"draw2d.diyShape.styleFill.task.UserTask",init:function(t,e,n){var s=t||{},o=s.extraParam,l=function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}(s,["extraParam"]);this._super((0,a.default)({color:"#0AAFEE",bgColor:"#0AAFEE",extraParam:i({iconSvg:r.default.diyShape.icon.ApproveFill},o||{})},l),e,n)},getIconClassName:function(){return"user-task-icon"}})},"./src/diyShape/styleFill/task/index.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.diyShape.styleFill.taskUtil={get:function(t,e,n,i){var r=void 0,s=e||{};return void 0!==a.default.diyShape.styleFill.task[t]?r=new a.default.diyShape.styleFill.task[t](s,n,i):("HtmlTask"===t&&(r=new a.default.diyShape.basic.HtmlTask(s,n,i)),r)}}},"./src/diyShape/styleLine/event/End.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleLine.event.End=r.default.diyShape.icon.End.extend(i({NAME:"draw2d.diyShape.styleLine.event.End",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2],i=t||{},s=i.name,o=i.isNoneBiz,l=i.extraParam,c=l||{},u=c.showIconLabel,h=(c.showArrow,c.labelLocator),d=void 0===h?"BottomLocator":h;this.extraParam=l,this.name=s||null,this._super((0,a.default)({width:30,height:30,stroke:1,radius:"50%",icon:"End"},t),e,n),this.addCssClass("cursor-pointer"),u&&(this.label=new r.default.shape.basic.Label({text:s,stroke:0,bold:!0,fontColor:"#1A253B",fontSize:14}),this.add(this.label,new r.default.layout.locator[d])),!o&&this.initTopPort()}},r.default.diyShape.common.iconCommFunction))},"./src/diyShape/styleLine/event/EndEvent.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleLine.event.EndEvent=r.default.diyShape.icon.EndNode.extend(i({NAME:"draw2d.diyShape.styleLine.event.EndEvent",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2],i=t||{},s=i.name,o=i.isNoneBiz,l=i.extraParam,c=l||{},u=c.showIconLabel,h=(c.showArrow,c.labelLocator),d=void 0===h?"BottomLocator":h;this.extraParam=l,this.name=s||null,this._super((0,a.default)({width:30,height:30,stroke:1,radius:"50%",icon:"End"},t),e,n),this.addCssClass("cursor-pointer"),u&&(this.label=new r.default.shape.basic.Label({text:s,stroke:0,bold:!0,fontColor:"#1A253B",fontSize:14}),this.add(this.label,new r.default.layout.locator[d])),!o&&this.initTopPort()}},r.default.diyShape.common.iconCommFunction))},"./src/diyShape/styleLine/event/ErrorBoundary.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleLine.event.ErrorBoundary=r.default.diyShape.icon.Error.extend(i({NAME:"draw2d.diyShape.styleLine.event.ErrorBoundary",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2],i=t||{},s=i.name,o=i.isNoneBiz,l=i.extraParam,c=l||{},u=c.showIconLabel,h=(c.showArrow,c.labelLocator),d=void 0===h?"BottomLocator":h;this.extraParam=l,this.name=s||null,this._super((0,a.default)({width:30,height:30,stroke:1,radius:"50%",icon:""},t),e,n),this.addCssClass("cursor-pointer"),u&&(this.label=new r.default.shape.basic.Label({text:s,stroke:0,bold:!0,fontColor:"#1A253B",fontSize:14}),this.add(this.label,new r.default.layout.locator[d])),!o&&this.initTopPort()}},r.default.diyShape.common.iconCommFunction))},"./src/diyShape/styleLine/event/Start.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleLine.event.Start=r.default.diyShape.icon.Start.extend(i({NAME:"draw2d.diyShape.styleLine.event.Start",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2],i=t||{},s=i.name,o=i.isNoneBiz,l=i.extraParam,c=l||{},u=c.showIconLabel,h=(c.showArrow,c.labelLocator),d=void 0===h?"BottomLocator":h;this.extraParam=l,this.name=s||null,this._super((0,a.default)({width:30,height:30,stroke:1,radius:"50%",icon:"Start"},t),e,n),this.addCssClass("cursor-pointer"),u&&(this.label=new r.default.shape.basic.Label({text:s,stroke:0,bold:!0,fontColor:"#1A253B",fontSize:14}),this.add(this.label,new r.default.layout.locator[d])),!o&&this.initBottomPort()}},r.default.diyShape.common.iconCommFunction))},"./src/diyShape/styleLine/event/StartEvent.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleLine.event.StartEvent=r.default.diyShape.icon.StartNode.extend(i({NAME:"draw2d.diyShape.styleLine.event.StartEvent",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2],i=t||{},s=i.name,o=i.isNoneBiz,l=i.extraParam,c=l||{},u=c.showIconLabel,h=(c.showArrow,c.labelLocator),d=void 0===h?"BottomLocator":h;this.extraParam=l,this.name=s||null,this._super((0,a.default)({width:30,height:30,stroke:1,radius:"50%",icon:"Start"},t),e,n),this.addCssClass("cursor-pointer"),u&&(this.label=new r.default.shape.basic.Label({text:s,stroke:0,bold:!0,fontColor:"#1A253B",fontSize:14}),this.add(this.label,new r.default.layout.locator[d])),!o&&this.initBottomPort()}},r.default.diyShape.common.iconCommFunction))},"./src/diyShape/styleLine/event/TimerBoundary.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleLine.event.TimerBoundary=r.default.diyShape.icon.Timer.extend(i({NAME:"draw2d.diyShape.styleLine.event.TimerBoundary",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2],i=t||{},s=i.name,o=i.extraParam,l=o||{},c=l.showIconLabel,u=(l.showArrow,l.labelLocator),h=void 0===u?"BottomLocator":u;this.extraParam=o,this.name=s||null,this._super((0,a.default)({width:30,height:30,stroke:1,radius:"50%",icon:""},t),e,n),this.addCssClass("cursor-pointer"),c&&(this.label=new r.default.shape.basic.Label({text:s,stroke:0,bold:!0,fontColor:"#1A253B",fontSize:14}),this.add(this.label,new r.default.layout.locator[h]))}},r.default.diyShape.common.iconCommFunction))},"./src/diyShape/styleLine/event/index.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.diyShape.styleLine.eventUtil={get:function(t,e,n,i){var r=void 0,s=e||{};return void 0!==a.default.diyShape.styleLine.event[t]?r=new a.default.diyShape.styleLine.event[t](s,n,i):r}}},"./src/diyShape/styleLine/gateway/EventGateway.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleLine.gateway.EventGateway=r.default.diyShape.icon.GatewayEvent.extend(i({NAME:"draw2d.diyShape.styleLine.gateway.EventGateway",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2],i=t||{},s=i.name,o=i.isNoneBiz,l=i.extraParam,c=l||{},u=c.showIconLabel,h=(c.showArrow,c.labelLocator),d=void 0===h?"BottomLocator":h;this.extraParam=l,this.name=s||null,this._super((0,a.default)({width:42,height:42,icon:""},t),e,n),this.addCssClass("cursor-pointer"),u&&(this.label=new r.default.shape.basic.Label({text:s,stroke:0,bold:!0,fontColor:"#1A253B",fontSize:14}),this.add(this.label,new r.default.layout.locator[d])),!o&&this.initPorts()}},r.default.diyShape.common.iconCommFunction))},"./src/diyShape/styleLine/gateway/ExclusiveGateway.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleLine.gateway.ExclusiveGateway=r.default.diyShape.icon.GatewayExclusive.extend(i({NAME:"draw2d.diyShape.styleLine.gateway.ExclusiveGateway",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2],i=t||{},s=i.name,o=i.isNoneBiz,l=i.extraParam,c=l||{},u=c.showIconLabel,h=(c.showArrow,c.labelLocator),d=void 0===h?"BottomLocator":h;this.extraParam=l,this.name=s||null,this._super((0,a.default)({width:42,height:42,icon:""},t),e,n),this.addCssClass("cursor-pointer"),u&&(this.label=new r.default.shape.basic.Label({text:s,stroke:0,bold:!0,fontColor:"#1A253B",fontSize:14}),this.add(this.label,new r.default.layout.locator[d])),!o&&this.initPorts()}},r.default.diyShape.common.iconCommFunction))},"./src/diyShape/styleLine/gateway/InclusiveGateway.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleLine.gateway.InclusiveGateway=r.default.diyShape.icon.GatewayInclusive.extend(i({NAME:"draw2d.diyShape.styleLine.gateway.InclusiveGateway",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2],i=t||{},s=i.name,o=i.isNoneBiz,l=i.extraParam,c=l||{},u=c.showIconLabel,h=(c.showArrow,c.labelLocator),d=void 0===h?"BottomLocator":h;this.extraParam=l,this.name=s||null,this._super((0,a.default)({width:42,height:42,icon:""},t),e,n),this.addCssClass("cursor-pointer"),u&&(this.label=new r.default.shape.basic.Label({text:s,stroke:0,bold:!0,fontColor:"#1A253B",fontSize:14}),this.add(this.label,new r.default.layout.locator[d])),!o&&this.initPorts()}},r.default.diyShape.common.iconCommFunction))},"./src/diyShape/styleLine/gateway/ParallelGateway.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleLine.gateway.ParallelGateway=r.default.diyShape.icon.GatewayParallel.extend(i({NAME:"draw2d.diyShape.styleLine.gateway.ParallelGateway",init:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1],n=arguments[2],i=t||{},s=i.name,o=i.isNoneBiz,l=i.extraParam,c=l||{},u=c.showIconLabel,h=(c.showArrow,c.labelLocator),d=void 0===h?"BottomLocator":h;this.extraParam=l,this.name=s||null,this._super((0,a.default)({width:42,height:42,icon:""},t),e,n),this.addCssClass("cursor-pointer"),u&&(this.label=new r.default.shape.basic.Label({text:s,stroke:0,bold:!0,fontColor:"#1A253B",fontSize:14}),this.add(this.label,new r.default.layout.locator[d])),!o&&this.initPorts()}},r.default.diyShape.common.iconCommFunction))},"./src/diyShape/styleLine/gateway/index.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.diyShape.styleLine.gatewayUtil={get:function(t,e,n,i){var r=void 0,s=e||{};return void 0!==a.default.diyShape.styleLine.gateway[t]?r=new a.default.diyShape.styleLine.gateway[t](s,n,i):r}}},"./src/diyShape/styleLine/index.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.diyShape.styleLine.shapeUtil={get:function(t,e,n,i){e=e||{};var r=void 0;if(!t||"string"!=typeof t)return r;var s=t.toUpperCase().trim();return r=s.indexOf("TASK")>-1?a.default.diyShape.styleLine.taskUtil.get(t,e,n,i):s.indexOf("GATEWAY")>-1?a.default.diyShape.styleLine.gatewayUtil.get(t,e,n,i):a.default.diyShape.styleLine.eventUtil.get(t,e,n,i)}}},"./src/diyShape/styleLine/task/BaseTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleLine.task.BaseTask=r.default.shape.layout.FlexGridLayout.extend(i({NAME:"draw2d.diyShape.styleLine.task.BaseTask",init:function(t,e,n){var i=t||{},s=i.radius,o=void 0===s?4:s,l=i.stroke,c=void 0===l?2:l,u=i.color,h=i.height,d=void 0===h?36:h,f=i.width,p=void 0===f?108:f,g=i.draggable,m=void 0===g||g,y=i.name,v=i.minWidth,b=i.minHeight,x=i.extraParam,w=i.nodeType,S=i.isNoneBiz;this._super((0,a.default)({columns:"30px, grow",rows:"grow",color:u,width:p,height:d,radius:o,bgColor:"#FFFFFF",selectable:!0,resizeable:!1,draggable:m,stroke:c},t),e,n),this.nodeType=w,this.multiPorts=!0,this.candidateGroups=new r.default.util.ArrayList,this.formProperties=new r.default.util.ArrayList,this.taskListeners=new r.default.util.ArrayList,this.extraParam=x,this.name=y||null,this.isTaskMoving=!1,this.setNodeStyle(r.default.diyShape.common.nodeStyleEnum.LINE,t),this.addCssClass("cursor-pointer"),this.on("added",(function(e,n){n.figure.setShapeText(t.name,v,b)})),this.on("drag",(function(t){!1===t.isTaskMoving&&(t.isTaskMoving=!0,t.icon&&t.icon.setAlpha(.4),t.label&&t.label.setAlpha(.4))})).on("dragend",(function(t){t.isTaskMoving&&(t.isTaskMoving=!1),t.repaint(),t.icon&&t.icon.setAlpha(1),t.label&&t.label.setAlpha(1)})),this.on("dragend",(function(t){t.repaint()})),!S&&this.initPorts()},addCandidateGroup:function(t){this.candidateGroups.contains(t)||this.candidateGroups.add(t)},addFormProperties:function(t){this.formProperties.add(t)},deleteCandidateGroup:function(t){var e=this.getCandidateGroup(t);this.candidateGroups.remove(e)},deleteFormProperties:function(t){var e=this.getFormProperties(t);this.formProperties.remove(e)},setFormProperties:function(t){this.formProperties=t},setTaskListeners:function(t){this.taskListeners=t},getCandidateGroup:function(t){for(var e=0;e<this.candidateGroups.getSize();e++){var n=this.candidateGroups.get(e);if(n===t)return n}return null},getFormProperties:function(t){for(var e=0;e<this.formProperties.getSize();e++){var n=this.formProperties.get(e);if(n.id==t)return n}}},r.default.diyShape.common.shapeCommFunction))},"./src/diyShape/styleLine/task/BusinessRuleTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleLine.task.BusinessRuleTask=r.default.diyShape.styleLine.task.BaseTask.extend({NAME:"draw2d.diyShape.styleLine.task.BusinessRuleTask",init:function(t,e,n){var s=t||{},o=s.extraParam,l=function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}(s,["extraParam"]);this._super((0,a.default)({color:"#3B99F7",bgColor:"#3B99F7",extraParam:i({iconSvg:r.default.diyShape.icon.BusinessRule},o||{})},l),e,n)},getIconClassName:function(){return"business-rule-task-icon"}})},"./src/diyShape/styleLine/task/CallActivityTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleLine.task.CallActivityTask=r.default.diyShape.styleLine.task.BaseTask.extend({NAME:"draw2d.diyShape.styleLine.task.CallActivityTask",init:function(t,e,n){var s=t||{},o=s.extraParam,l=function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}(s,["extraParam"]);this._super((0,a.default)({color:"#3B99F7",bgColor:"#3B99F7",extraParam:i({iconSvg:r.default.diyShape.icon.CallActivity},o||{})},l),e,n)},getIconClassName:function(){return"call-activity-icon"}})},"./src/diyShape/styleLine/task/DataConversionTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleLine.task.DataConversionTask=r.default.diyShape.styleLine.task.BaseTask.extend({NAME:"draw2d.diyShape.styleLine.task.DataConversionTask",init:function(t,e,n){var s=t||{},o=s.extraParam,l=function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}(s,["extraParam"]);this._super((0,a.default)({color:"#3B99F7",bgColor:"#3B99F7",extraParam:i({iconSvg:r.default.diyShape.icon.DataRule},o||{})},l),e,n)},getIconClassName:function(){return"data-rule-icon"}})},"./src/diyShape/styleLine/task/MailTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleLine.task.MailTask=r.default.diyShape.styleLine.task.BaseTask.extend({NAME:"draw2d.diyShape.styleLine.task.MailTask",init:function(t,e,n){var s=t||{},o=s.extraParam,l=function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}(s,["extraParam"]);this._super((0,a.default)({color:"#3B99F7",bgColor:"#3B99F7",extraParam:i({iconSvg:r.default.diyShape.icon.Mail},o||{})},l),e,n)},getIconClassName:function(){return"mail-task-icon"}})},"./src/diyShape/styleLine/task/ManualTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleLine.task.ManualTask=r.default.diyShape.styleLine.task.BaseTask.extend({NAME:"draw2d.diyShape.styleLine.task.ManualTask",init:function(t,e,n){var s=t||{},o=s.extraParam,l=function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}(s,["extraParam"]);this._super((0,a.default)({color:"#3B99F7",bgColor:"#3B99F7",extraParam:i({iconSvg:r.default.diyShape.icon.Manual},o||{})},l),e,n)},getIconClassName:function(){return"manual-task-icon"}})},"./src/diyShape/styleLine/task/ReceiveTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleLine.task.ReceiveTask=r.default.diyShape.styleLine.task.BaseTask.extend({NAME:"draw2d.diyShape.styleLine.task.ReceiveTask",init:function(t,e,n){var s=t||{},o=s.extraParam,l=function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}(s,["extraParam"]);this._super((0,a.default)({color:"#3B99F7",bgColor:"#3B99F7",extraParam:i({iconSvg:r.default.diyShape.icon.Receive},o||{})},l),e,n)},getIconClassName:function(){return"receive-task-icon"}})},"./src/diyShape/styleLine/task/ScriptTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleLine.task.ScriptTask=r.default.diyShape.styleLine.task.BaseTask.extend({NAME:"draw2d.diyShape.styleLine.task.ScriptTask",init:function(t,e,n){var s=t||{},o=s.extraParam,l=function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}(s,["extraParam"]);this._super((0,a.default)({color:"#3B99F7",bgColor:"#3B99F7",extraParam:i({iconSvg:r.default.diyShape.icon.Script},o||{})},l),e,n)},getIconClassName:function(){return"script-task-icon"}})},"./src/diyShape/styleLine/task/ServiceTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleLine.task.ServiceTask=r.default.diyShape.styleLine.task.BaseTask.extend({NAME:"draw2d.diyShape.styleLine.task.ServiceTask",init:function(t,e,n){var s=t||{},o=s.extraParam,l=function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}(s,["extraParam"]);this._super((0,a.default)({color:"#3B99F7",bgColor:"#3B99F7",extraParam:i({iconSvg:r.default.diyShape.icon.Service},o||{})},l),e,n)},getIconClassName:function(){return"service-task-icon"}})},"./src/diyShape/styleLine/task/SubProcessTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleLine.task.SubProcessTask=r.default.diyShape.styleLine.task.BaseTask.extend({NAME:"draw2d.diyShape.styleLine.task.SubProcessTask",init:function(t,e,n){var s=t||{},o=s.extraParam,l=function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}(s,["extraParam"]);this._super((0,a.default)({color:"#3B99F7",bgColor:"#3B99F7",extraParam:i({iconSvg:r.default.diyShape.icon.SubProcess},o||{})},l),e,n)},getIconClassName:function(){return"sub-process-icon"}})},"./src/diyShape/styleLine/task/UserTask.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/util/extend.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.diyShape.styleLine.task.UserTask=r.default.diyShape.styleLine.task.BaseTask.extend({NAME:"draw2d.diyShape.styleLine.task.UserTask",init:function(t,e,n){var s=t||{},o=s.extraParam,l=function(t,e){var n={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(n[i]=t[i]);return n}(s,["extraParam"]);this._super((0,a.default)({color:"#3B99F7",bgColor:"#3B99F7",extraParam:i({iconSvg:r.default.diyShape.icon.Approve},o||{})},l),e,n)},getIconClassName:function(){return"user-task-icon"}})},"./src/diyShape/styleLine/task/index.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.diyShape.styleLine.taskUtil={get:function(t,e,n,i){var r=void 0,s=e||{};return void 0!==a.default.diyShape.styleLine.task[t]?r=new a.default.diyShape.styleLine.task[t](s,n,i):("HtmlTask"===t&&(r=new a.default.diyShape.basic.HtmlTask(s,n,i)),r)}}},"./src/diyShape/utils.js":(t,e,n)=>{"use strict";var i,r=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},a=n("./src/packages.js"),s=(i=a)&&i.__esModule?i:{default:i};function o(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}s.default.diyShape.toolUtil={stackChanged:function(t){this.canUndo=t.getStack().canUndo(),this.canRedo=t.getStack().canRedo()},undo:function(){this.getCommandStack().undo(),this.handelDelete&&this.handelDelete()},redo:function(){this.getCommandStack().redo(),this.handelDelete&&this.handelDelete()},delete:function(){this.getCommandStack().startTransaction(s.default.Configuration.i18n.command.deleteShape);var t=this;this.getSelection().each((function(e,n){var i=n.createCommand(new s.default.command.CommandType(s.default.command.CommandType.DELETE));t.getCommandStack().execute(i)})),this.getCommandStack().commitTransaction()},downloadFile:function(t,e){var n=document.createElement("a"),i=this.base64ToBlob(e);document.createEvent("HTMLEvents").initEvent("click",!0,!0),n.download=t,n.href=URL.createObjectURL(i),n.click()},base64ToBlob:function(t){for(var e=t.split(";base64,"),n=e[0].split(":")[1],i=window.atob(e[1]),r=i.length,a=new Uint8Array(r),s=0;s<r;++s)a[s]=i.charCodeAt(s);return new Blob([a],{type:n})},svgToCanvas:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.width,i=e.height,r=e.bgColor,a=void 0===r?"":r;return new Promise((function(e,r){var s=new Image,o=(new XMLSerializer).serializeToString(t),l=new Blob([o],{type:"image/svg+xml;charset=utf-8"}),c=URL.createObjectURL(l);s.onload=function(){var t=document.createElement("canvas");t.width=n||s.width,t.height=i||s.height;var r=t.getContext("2d");a&&(r.fillStyle=a,r.fillRect(0,0,t.width,t.height)),r.drawImage(s,0,0),URL.revokeObjectURL(c),e(t)},s.onerror=function(t){r(t)},s.src=c}))},svgToCanvasCrop:function(t,e){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).bgColor,i=void 0===n?"":n;return e=e||this,new Promise((function(n,r){var a=new Image,o=(new XMLSerializer).serializeToString(t),l=new Blob([o],{type:"image/svg+xml;charset=utf-8"}),c=URL.createObjectURL(l),u=[],h=[];e.getFigures().each((function(t,e){var n=e.getBoundingBox();u.push(n.x,n.x+n.w),h.push(n.y,n.y+n.h)})),e.getLines().each((function(t,e){var n=e.getBoundingBox(),i=e.getChildren(),r=i&&i.find((function(t){return"Collapsible"===t.NAME}));if(r){var a=r.getBoundingBox();u.push(a.x,a.x+a.w),h.push(a.y,a.y+a.h)}u.push(n.x,n.x+n.w),h.push(n.y,n.y+n.h)}));var d=Math.min.apply(Math,u)-20,f=Math.min.apply(Math,h)-20,p=Math.max.apply(Math,u)-d+20,g=Math.max.apply(Math,h)-f+20,m=new s.default.geo.Rectangle(d,f,p,g),y=m.x,v=m.y,b=m.w,x=m.h;a.onload=function(){var t=document.createElement("canvas");t.width=b||a.width,t.height=x||a.height;var e=t.getContext("2d");i&&(e.fillStyle=i,e.fillRect(0,0,t.width,t.height)),e.drawImage(a,y,v,b,x,0,0,b,x),URL.revokeObjectURL(c),n(t)},a.onerror=function(t){r(t)},a.src=c}))},downloadImage:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.fileName,i=void 0===n?"download":n,r=e.imgType,a=void 0===r?"image/png":r,s=t.toDataURL(a),o=document.createElement("a");o.download=i,o.href=s,o.click()},shapeFilter:function(t,e){if(t&&t.shape.filter){var n=this.paper.createFilter();n.createShadow(1.7,1.7,2,.5,e||"#8894A8"),n.element.setAttribute("x","-55%"),n.element.setAttribute("y","-55%"),n.element.setAttribute("width","400%"),n.element.setAttribute("height","400%"),t.shape.filter(n)}},getConnectionsBySTPorts:function(t,e){return this.getLines().data.filter((function(n){return n.getSource().getParent().id===t.id&&n.getTarget().getParent().id===e.id}))||[]},setLinesRouter:function(t){t&&(this.routerClass=t,this.getLines().each((function(e,n){n.canvas&&n.canvas.setLineRouter(n,t)})))},setLineRouter:function(t,e){if(e){var n=new s.default.layout.connection[e];t.setRouter(n),setTimeout((function(){t.innerCoon&&t.innerCoon.repaint(),t.installEditPolicy(new s.default.policy.line.CustomLineSelectionFeedbackPolicy)}),100)}},getSelectedFigures:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.key,n=void 0===e?"nodeType":e,i=t.sortType,r=t.figures||(n?(this.getSelection().all.data||[]).filter((function(t){return t[n]})):this.getSelection().all.data||[]);if(i){try{r.sort((function(t,e){return t[i]-e[i]}))}catch(t){console.error(t)}return r}return r},getAlignOffsetX:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.figure,n=t.preFigure,i=t.defaultSpace,r=void 0===i?45:i,a=e.getX()-n.getX()-n.getWidth();return a>0&&a<r?r:r-a},getAlignOffsetY:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.figure,n=t.preFigure,i=t.defaultSpace,r=void 0===i?45:i,a=e.getY()-n.getY()-n.getHeight();return a>0&&a<r?r:r-a},autoAlign:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.key,i=void 0===n?"nodeType":n,r=e.sortType,a=void 0===r?"y":r,s=e.figures,o=this.getSelectedFigures({key:i,figures:s,sortType:a});if(!(o.length<2)){var l=o.filter((function(t){return!t.getInputPorts().data.length}));this.alignTop({figures:l}),l.forEach((function(e){t.alignFigure(e)}))}},alignFigure:function(t){var e=this;t.getOutputPorts().data.forEach((function(n){var i=n.getConnections().data||[];i.forEach((function(n,r){var a=n.getTarget().getParent(),s=0,o=t.getY()+t.getHeight()+50;s=0===r?t.getX()-a.getWidth()-50:i[r-1].getX()+i[r-1].getWidth()-50,a.setPosition(s,o),a.repaint(),e.alignFigure(a)}))}))},alignLeft:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.key,i=void 0===n?"nodeType":n,r=e.sortType,a=void 0===r?"y":r,s=e.figures,o=this.getSelectedFigures({key:i,figures:s,sortType:a});if(!(o.length<2)){var l=o[0].getX();o.forEach((function(t){l=Math.min(l,t.getX())})),o.forEach((function(e,n){var i=0;n>0&&(i=t.getAlignOffsetY({figure:e,preFigure:o[n-1]})),e.translate(l-e.getX(),i),e.repaint()}))}},alignRight:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.key,i=void 0===n?"nodeType":n,r=e.sortType,a=void 0===r?"y":r,s=e.figures,o=this.getSelectedFigures({key:i,figures:s,sortType:a});if(!(o.length<2)){var l=o[0].getX()+o[0].getWidth();o.forEach((function(t){l=Math.max(l,t.getX()+t.getWidth())})),o.forEach((function(e,n){var i=0;n>0&&(i=t.getAlignOffsetY({figure:e,preFigure:o[n-1]})),e.translate(l-e.getX()-e.getWidth(),i),e.repaint()}))}},alignVerticalCenter:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.key,i=void 0===n?"nodeType":n,r=e.sortType,a=void 0===r?"y":r,s=e.figures,o=e.defaultSpace,l=void 0===o?45:o;a=a||"y";var c=this.getSelectedFigures({key:i,figures:s,sortType:a});if(!(c.length<2)){var u=c[0].getX()+c[0].getWidth()/2,h=c[0].getX()+c[0].getWidth()/2;c.forEach((function(t){u=Math.min(u,t.getX()+t.getWidth()/2),h=Math.max(h,t.getX()+t.getWidth()/2)}));try{c.sort((function(t,e){return t[a]-e[a]}))}catch(t){console.error(t)}c.forEach((function(e,n){var i=0;n>0&&(i=t.getAlignOffsetY({figure:e,preFigure:c[n-1],defaultSpace:l})),e.translate((u+h)/2-e.getX()-e.getWidth()/2,i),e.repaint()}))}},alignHorizontalCenter:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.key,i=void 0===n?"nodeType":n,r=e.sortType,a=void 0===r?"x":r,s=e.figures,o=e.defaultSpace,l=void 0===o?45:o;a=a||"y";var c=this.getSelectedFigures({key:i,figures:s,sortType:a});if(!(c.length<2)){var u=c[0].getY()+c[0].getHeight()/2,h=c[0].getY()+c[0].getHeight()/2;c.forEach((function(t){u=Math.min(u,t.getY()+t.getHeight()/2),h=Math.max(h,t.getY()+t.getHeight()/2)}));try{c.sort((function(t,e){return t[a]-e[a]}))}catch(t){console.error(t)}c.forEach((function(e,n){var i=0;n>0&&(i=t.getAlignOffsetX({figure:e,preFigure:c[n-1],defaultSpace:l})),e.translate(i,(u+h)/2-e.getY()-e.getHeight()/2),e.repaint()}))}},alignTop:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.key,i=void 0===n?"nodeType":n,r=e.sortType,a=void 0===r?"x":r,s=e.figures,o=this.getSelectedFigures({key:i,figures:s,sortType:a});if(!(o.length<2)){var l=o[0].getY();o.forEach((function(t){l=Math.min(l,t.getY())})),o.forEach((function(e,n){var i=0;n>0&&(i=t.getAlignOffsetX({figure:e,preFigure:o[n-1]})),e.translate(i,l-e.getY()),e.repaint()}))}},alignBottom:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.key,i=void 0===n?"nodeType":n,r=e.sortType,a=void 0===r?"x":r,s=e.figures,o=this.getSelectedFigures({key:i,figures:s,sortType:a});if(!(o.length<2)){var l=o[0].getY();o.forEach((function(t){l=Math.max(l,t.getY()+t.getHeight())})),o.forEach((function(e,n){var i=0;n>0&&(i=t.getAlignOffsetX({figure:e,preFigure:o[n-1]})),e.translate(i,l-e.getY()-e.getHeight()),e.repaint()}))}},getNodeConnections:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all";if(!t)return{inflows:[],outflows:[]};var n=[];"out"!==e&&t.getInputPorts().each((function(t,e){e.getConnections().each((function(t,e){n.push(e)}))}));var i=[];return"in"!==e&&t.getOutputPorts().each((function(t,e){e.getConnections().each((function(t,e){i.push(e)}))})),{inflows:n,outflows:i}}},s.default.diyShape.zoomUtil={setZoomExt:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"canvas",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:8e3,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:8e3,r=this.getBoundingBoxExt().getCenter(),a=$("#"+e);this.pantograph=parseInt(1/t*100),this.pantograph>=this.maxPantograph&&(this.pantograph=this.maxPantograph,t=100/this.maxPantograph),this.pantograph<=this.minPantograph&&(this.pantograph=this.minPantograph,t=100/this.minPantograph),this.setZoom(t,!0),a.scrollTop(r.y/t-a.height()/2),a.scrollLeft(r.x/t-a.width()/2),a.css({width:(this.initialWidth||n)/t+"px",height:(this.initialHeight||i)/t+"px"})},getZoomExt:function(){return 100/this.pantograph},getFiguresExt:function(){var t=this.getFigures().clone();t.grep((function(t){return void 0!==t.isExtFigure}));var e=this.getLines().clone();return e.grep((function(t){return void 0!==t.isExtFigure})),t.addAll(e),t},getBoundingBoxExt:function(){var t=[],e=[];this.getFiguresExt().each((function(n,i){var r=i.getBoundingBox();t.push(r.x,r.x+r.w),e.push(r.y,r.y+r.h)}));var n=Math.min.apply(Math,t),i=Math.min.apply(Math,e),r=Math.max(10,Math.max.apply(Math,t)-n),a=Math.max(10,Math.max.apply(Math,e)-i);return new s.default.geo.Rectangle(n,i,r,a)},hideDecoration:function(){this.uninstallEditPolicy(this.grid),this.getFigures().each((function(t,e){e.unselect()}))},showDecoration:function(){this.installEditPolicy(this.grid)},handleDecoration:function(t){t?this.showDecoration():this.hideDecoration()}},s.default.diyShape.commonUtil={getRandomInt:function(t,e){return t=Math.ceil(t),e=Math.floor(e),Math.floor(Math.random()*(e-t+1))+t},getRandomNumberFromArray:function(t){return t[Math.floor(Math.random()*t.length)]},getItemByStatus:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return Array.isArray(t)?t.filter((function(t){return t.status===e})).map((function(t){return n?t:t.objectId})):t.status===e?n?t:t.objectId:void 0},splitStr:function(t,e){var n=new RegExp(e,"g");return t.replace(n,"")},getObjectValues:function(t){var e=[];return Object.values(t).forEach((function(t){e=[].concat(o(e),o(t))})),e},getCheckedNodes:function(t){function e(e){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}((function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return Array.isArray(t)&&t.length>0&&t.forEach((function(t){Array.isArray(e)&&e.includes(t.key)&&n.push(t),getCheckedNodes(t.children,e,n)})),n})),getSelectedNodes:function(t){function e(e){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}((function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return Array.isArray(t)&&t.length>0&&t.forEach((function(t){Array.isArray(e)&&e.includes(t.key)&&n.push(t),getSelectedNodes(t.children,e,n)})),n})),getTreeKeys:function(t){function e(){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}((function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(Array.isArray(t))return t.map((function(t){e.push(t.key),getTreeKeys(t.children,e)})),e})),objArrSort:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments[2];if(!e.length)return t;var i=e,a=!0;"string"!=typeof e[0]&&(a=!1,i=e.map((function(t){return t[n]})));for(var s=[],o=t.filter((function(t){return i.includes(t[n])})),l=i.length-1;l>-1;l--){for(var c=-1,u=0;u<o.length;u++)if(i[l]===o[u][n]){a||(o[u]=r({},o[u],e[l])),c=u,s.unshift(o[u]);break}c>-1?o.unshift(o.splice(c,1)[0]):s.unshift(e[l])}return s},getTabFields:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"sysFields",n=new Array;if(!Array.isArray(t))return n;switch(e){case"sysFields":t.forEach((function(t){n=n.concat(t.sysFileds||[])}));break;case"customFields":t.forEach((function(t){n=n.concat(t.customFileds||[])}));break;default:t.forEach((function(t){n=n.concat(t.sysFileds||[]).concat(t.customFileds||[])}))}return n},groupArrayByKey:function(){var t=arguments[1];return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).reduce((function(e,n){return!e[n[t]]&&(e[n[t]]=[]),e[n[t]].push(n),e}),{})},curry:function(t){return function e(){for(var n=arguments.length,i=Array(n),r=0;r<n;r++)i[r]=arguments[r];return i.length>=t.length?t.apply(this,i):function(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return e.apply(this,i.concat(n))}}},deepEqual:function(t){function e(e,n){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}((function(t,e){if(t===e)return!0;if(null==t||null==e)return t===e;var n=Object.prototype.toString.call(t);if(n!==Object.prototype.toString.call(e))return!1;if("[object Date]"===n)return t.getTime()===e.getTime();if("[object RegExp]"===n)return t.toString()===e.toString();if(Array.isArray(t)){if(t.length!==e.length)return!1;for(var i=0;i<t.length;i++)if(!deepEqual(t[i],e[i]))return!1;return!0}if("[object Object]"===n){var r=Object.keys(t),a=Object.keys(e);if(r.length!==a.length)return!1;var s=!0,o=!1,l=void 0;try{for(var c,u=r[Symbol.iterator]();!(s=(c=u.next()).done);s=!0){var h=c.value;if(!Object.prototype.hasOwnProperty.call(e,h))return!1;if(!deepEqual(t[h],e[h]))return!1}}catch(t){o=!0,l=t}finally{try{!s&&u.return&&u.return()}finally{if(o)throw l}}return!0}return!1})),deepArrayEqual:function(t,e){if(t.length!==e.length)return!1;for(var n=0;n<t.length;n++)if(!deepEqual(t[n],e[n]))return!1;return!0},deepUnorderedArrayEqual:function(t,e){if(t.length!==e.length)return!1;var n=[].concat(o(e));return t.every((function(t){var e=n.findIndex((function(e){return deepEqual(t,e)}));return-1!==e&&(n.splice(e,1),!0)}))},objectFieldsSort:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"y";return(t||[]).sort((function(t,n){return n[e]-t[e]}))},findKey:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(t,e){return t===e};return Object.keys(t).find((function(i){return n(t[i],e)}))},findAllPaths:function(t){var e=[],n=[];return function t(i){n.push(i);var r=i.getOutputPorts();if(0===r.getSize())return e.push(n.slice()),void n.pop();var a=0;if(r.each((function(e,n){n.getConnections().each((function(e,i){var r=i.getTarget();n.id!==r.id&&(t(r.getParent()),a++)}))})),0===a)return e.push(n.slice()),void n.pop();n.pop()}(t),e},renderBatch:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.startIndex,i=void 0===n?0:n,r=e.batchSize,a=void 0===r?30:r,s=e.delay,o=void 0===s?10:s,l=e.data,c=e.renderData,u=Math.min(i+a,l.length);return new Promise((function(t){setTimeout((function(){for(var e=i;e<u;e++)c(l[e]);t()}),o)})).then((function(){if(u<l.length)return t.renderBatch({startIndex:u,batchSize:a,delay:o,data:l,renderData:c})}))},chunkArray:function(t,e){for(var n=[],i=0;i<t.length;i+=e)n.push(t.slice(i,i+e));return n},inBatchesChunk:function(t,e,n){var i,r,a=this,s=this.chunkArray(t,e);return Promise.all(s.map((i=regeneratorRuntime.mark((function t(e){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",new Promise((function(t){setTimeout((function(){n(e),t()}),0)})));case 1:case"end":return t.stop()}}),t,a)})),r=function(){var t=i.apply(this,arguments);return new Promise((function(e,n){return function i(r,a){try{var s=t[r](a),o=s.value}catch(t){return void n(t)}if(!s.done)return Promise.resolve(o).then((function(t){i("next",t)}),(function(t){i("throw",t)}));e(o)}("next")}))},function(t){return r.apply(this,arguments)})))}}},"./src/geo/Line.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.geo.Line={inverseLerp:function(t,e,n,i,r,a){var s=Math.abs(n-t),o=Math.abs(n-r);return 0===s&&(s=Math.abs(i-e),o=Math.abs(i-a),0===s)?1:o/s},pointProjection:function(t,e,n,i,r,s){var o=new a.default.geo.Point(0,0);t===n&&e===i&&(t-=1e-5);var l=(r-t)*(n-t)+(s-e)*(i-e);l/=Math.pow(n-t,2)+Math.pow(i-e,2),o.x=t+l*(n-t),o.y=e+l*(i-e);var c,u,h,d;return c=Math.min(t,n),u=Math.max(t,n),h=Math.min(e,i),d=Math.max(e,i),o.x>=c&&o.x<=u&&o.y>=h&&o.y<=d?o:null},distance:function(t,e,n,i,r,a){var s=(r-=t)*(n-=t)+(a-=e)*(i-=e),o=void 0;o=s<=0||(s=(r=n-r)*n+(a=i-a)*i)<=0?0:s*s/(n*n+i*i);var l=r*r+a*a-o;return l<0&&(l=0),Math.sqrt(l)}}},"./src/geo/Point.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.geo.Point=Class.extend({NAME:"draw2d.geo.Point",init:function(t,e){t instanceof a.default.geo.Point?(this.x=t.x,this.y=t.y):isNaN(parseFloat(t.x))||isNaN(parseFloat(t.y))?(this.x=t,this.y=e):(this.x=t.x,this.y=t.y),this.bx=null,this.by=null,this.bw=null,this.bh=null},setBoundary:function(t,e,n,i){return t instanceof a.default.geo.Rectangle?(this.bx=t.x,this.by=t.y,this.bw=t.w,this.bh=t.h):(this.bx=t,this.by=e,this.bw=n,this.bh=i),this.adjustBoundary(),this},adjustBoundary:function(){return null===this.bx||(this.x=Math.min(Math.max(this.bx,this.x),this.bw),this.y=Math.min(Math.max(this.by,this.y),this.bh)),this},translate:function(t,e){return this.x+=t,this.y+=e,this.adjustBoundary(),this},getX:function(){return this.x},getY:function(){return this.y},setX:function(t){return this.x=t,this.adjustBoundary(),this},setY:function(t){return this.y=t,this.adjustBoundary(),this},setPosition:function(t,e){return t instanceof a.default.geo.Point?(this.x=t.x,this.y=t.y):(this.x=t,this.y=e),this.adjustBoundary(),this},getPosition:function(t){var e=t.x-this.x,n=t.y-this.y;return Math.abs(e)>Math.abs(n)?e<0?a.default.geo.PositionConstants.WEST:a.default.geo.PositionConstants.EAST:n<0?a.default.geo.PositionConstants.NORTH:a.default.geo.PositionConstants.SOUTH},equals:function(t){return this.x===t.x&&this.y===t.y},distance:function(t){return Math.sqrt((this.x-t.x)*(this.x-t.x)+(this.y-t.y)*(this.y-t.y))},getDistance:function(t){return this.distance(t)},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},translated:function(t,e){var n=new a.default.geo.Point(t,e);return new a.default.geo.Point(this.x+n.x,this.y+n.y)},scale:function(t){return this.x*=t,this.y*=t,this.adjustBoundary(),this},scaled:function(t){return new a.default.geo.Point(this.x*t,this.y*t)},getScaled:function(t){return this.scaled(t)},getPersistentAttributes:function(){return{x:this.x,y:this.y}},setPersistentAttributes:function(t){return this.x=t.x,this.y=t.y,this},subtract:function(t){return new a.default.geo.Point(this.x-t.x,this.y-t.y)},dot:function(t){return this.x*t.x+this.y*t.y},cross:function(t){return this.x*t.y-this.y*t.x},lerp:function(t,e){return new a.default.geo.Point(this.x+(t.x-this.x)*e,this.y+(t.y-this.y)*e)},clone:function(){return new a.default.geo.Point(this.x,this.y)}})},"./src/geo/PositionConstants.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js");((i=r)&&i.__esModule?i:{default:i}).default.geo.PositionConstants={NORTH:1,SOUTH:4,WEST:8,EAST:16}},"./src/geo/Ray.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.geo.Ray=a.default.geo.Point.extend({NAME:"draw2d.geo.Ray",init:function(t,e){this._super(t,e)},isHorizontal:function(){return 0!=this.x},similarity:function(t){return Math.abs(this.dot(t))},getAveraged:function(t){return new a.default.geo.Ray((this.x+t.x)/2,(this.y+t.y)/2)}})},"./src/geo/Rectangle.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.geo.Rectangle=a.default.geo.Point.extend({NAME:"draw2d.geo.Rectangle",init:function(t,e,n,i){t instanceof a.default.geo.Rectangle?(e=t.y,n=t.w,i=t.h,t=t.x):"number"==typeof t.x&&"number"==typeof t.y?(e=t.y,n=t.w|t.width,i=t.h|t.height,t=t.x):"number"==typeof t.top&&"number"==typeof t.left&&(e=t.top,n=t.w|t.width,i=t.h|t.height,t=t.left),this._super(t,e),this.w=n,this.h=i},adjustBoundary:function(){null!==this.bx&&(this.x=Math.min(Math.max(this.bx,this.x),this.bw-this.w),this.y=Math.min(Math.max(this.by,this.y),this.bh-this.h),this.w=Math.min(this.w,this.bw),this.h=Math.min(this.h,this.bh))},resize:function(t,e){return this.w+=t,this.h+=e,this.adjustBoundary(),this},scale:function(t,e){return this.w+=t,this.h+=e,this.x-=t/2,this.y-=e/2,this.adjustBoundary(),this},translate:function(t,e){var n=new a.default.geo.Point(t,e);return this.x+=n.x,this.y+=n.y,this.adjustBoundary(),this},translated:function(t,e){var n=new a.default.geo.Point(t,e);return new a.default.geo.Rectangle(this.x+n.x,this.y+n.y,this.w,this.h)},setBounds:function(t){return this.setPosition(t.x,t.y),this.w=t.w,this.h=t.h,this},isEmpty:function(){return this.w<=0||this.h<=0},getWidth:function(){return this.w},setWidth:function(t){return this.w=t,this.adjustBoundary(),this},getHeight:function(){return this.h},setHeight:function(t){return this.h=t,this.adjustBoundary(),this},getLeft:function(){return this.x},getRight:function(){return this.x+this.w},getTop:function(){return this.y},getBottom:function(){return this.y+this.h},getTopLeft:function(){return new a.default.geo.Point(this.x,this.y)},getTopCenter:function(){return new a.default.geo.Point(this.x+this.w/2,this.y)},getTopRight:function(){return new a.default.geo.Point(this.x+this.w,this.y)},getCenterLeft:function(){return new a.default.geo.Point(this.x,this.y+this.h/2)},getCenterRight:function(){return new a.default.geo.Point(this.x+this.w,this.y+this.h/2)},getBottomLeft:function(){return new a.default.geo.Point(this.x,this.y+this.h)},getBottomCenter:function(){return new a.default.geo.Point(this.x+this.w/2,this.y+this.h)},getCenter:function(){return new a.default.geo.Point(this.x+this.w/2,this.y+this.h/2)},getBottomRight:function(){return new a.default.geo.Point(this.x+this.w,this.y+this.h)},getVertices:function(){var t=new a.default.util.ArrayList;return t.add(this.getTopLeft()),t.add(this.getTopRight()),t.add(this.getBottomRight()),t.add(this.getBottomLeft()),t},moveInside:function(t){var e=new a.default.geo.Rectangle(t.x,t.y,t.w,t.h);return e.x=Math.max(e.x,this.x),e.y=Math.max(e.y,this.y),e.w<this.w?e.x=Math.min(e.x+e.w,this.x+this.w)-e.w:e.x=this.x,e.h<this.h?e.y=Math.min(e.y+e.h,this.y+this.h)-e.h:e.y=this.y,e},getDistance:function(t){var e=this.x,n=this.y,i=this.w,r=this.h,s=t.getX(),o=t.getY(),l=1,c=1;t instanceof a.default.geo.Rectangle&&(l=t.getWidth(),c=t.getHeight());var u=9;if(e+i<=s)u=n+r<=o?0:n>=o+c?6:7;else if(e>=s+l)u=n+r<=o?2:n>=o+c?4:3;else if(n+r<=o)u=1;else{if(!(n>=o+c))return 0;u=5}switch(u){case 0:return-((e=e+i-s)+(n=n+r-o));case 1:return-(n+r-o);case 2:return-((e=s+l-e)+(n=n+r-o));case 3:return-(s+l-e);case 4:return-((e=s+l-e)+(n=o+c-n));case 5:return-(o+c-n);case 6:return-((e=e+i-s)+(n=o+c-n));case 7:return-(e+i-s)}throw"Unknown data type of parameter for distance calculation in draw2d.geo.Rectangle.getDistance(..)"},determineOctant:function(t){var e=this.x+3,n=this.y+3,i=this.w-6,r=this.h-6,s=t.x,o=t.y,l=2,c=2;t instanceof a.default.geo.Rectangle&&(l=t.w,c=t.h);return s+l<=e?o+c<=n?0:o>=n+r?6:7:s>=e+i?o+c<=n?2:o>=n+r?4:3:o+c<=n?1:o>=n+r?5:8},getDirection:function(t){var e=this.getTopLeft();switch(this.determineOctant(t)){case 0:return e.x-t.x<e.y-t.y?a.default.geo.Rectangle.DIRECTION_UP:a.default.geo.Rectangle.DIRECTION_LEFT;case 1:return a.default.geo.Rectangle.DIRECTION_UP;case 2:return e=this.getTopRight(),t.x-e.x<e.y-t.y?a.default.geo.Rectangle.DIRECTION_UP:a.default.geo.Rectangle.DIRECTION_RIGHT;case 3:return a.default.geo.Rectangle.DIRECTION_RIGHT;case 4:return e=this.getBottomRight(),t.x-e.x<t.y-e.y?a.default.geo.Rectangle.DIRECTION_DOWN:a.default.geo.Rectangle.DIRECTION_RIGHT;case 5:return a.default.geo.Rectangle.DIRECTION_DOWN;case 6:return(e=this.getBottomLeft()).x-t.x<t.y-e.y?a.default.geo.Rectangle.DIRECTION_DOWN:a.default.geo.Rectangle.DIRECTION_LEFT;case 7:return a.default.geo.Rectangle.DIRECTION_LEFT;case 8:return t.y>this.y?a.default.geo.Rectangle.DIRECTION_DOWN:a.default.geo.Rectangle.DIRECTION_UP}return a.default.geo.Rectangle.DIRECTION_UP},equals:function(t){return this.x==t.x&&this.y==t.y&&this.w==t.w&&this.h==t.h},hitTest:function(t,e){t instanceof a.default.geo.Point&&(e=t.y,t=t.x);var n=this.x+this.getWidth(),i=this.y+this.getHeight();return t>=this.x&&t<=n&&e>=this.y&&e<=i},isInside:function(t){return t.hitTest(this.getTopLeft())&&t.hitTest(this.getTopRight())&&t.hitTest(this.getBottomLeft())&&t.hitTest(this.getBottomRight())},contains:function(t){return this.hitTest(t.getTopLeft())&&this.hitTest(t.getTopRight())&&this.hitTest(t.getBottomLeft())&&this.hitTest(t.getBottomRight())},intersects:function(t){var e=t.x,n=t.y,i=t.x+t.w,r=t.y+t.h,a=this.x,s=this.y,o=this.x+this.w,l=this.y+this.h;return Math.max(0,Math.min(i,o)-Math.max(e,a))*Math.max(0,Math.min(r,l)-Math.max(n,s))!=0},merge:function(t){var e=Math.max(t.getRight(),this.getRight()),n=Math.max(t.getBottom(),this.getBottom());return this.setPosition(Math.min(this.x,t.x),Math.min(this.y,t.y)),this.w=e-this.x,this.h=n-this.y,this},intersectionWithLine:function(t,e){var n=new a.default.util.ArrayList,i=this.getVertices();i.add(i.first());for(var r=i.first(),s=null,o=1;o<5;o++)s=i.get(o),null!==(r=a.default.shape.basic.Line.intersection(t,e,r,s))&&n.add(r),r=s;return n},clone:function(){return new a.default.geo.Rectangle(this.x,this.y,this.w,this.h)},toJSON:function(){return{width:this.w,height:this.h,x:this.x,y:this.y}}}),a.default.geo.Rectangle.DIRECTION_UP=0,a.default.geo.Rectangle.DIRECTION_RIGHT=1,a.default.geo.Rectangle.DIRECTION_DOWN=2,a.default.geo.Rectangle.DIRECTION_LEFT=3},"./src/geo/Util.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js");((i=r)&&i.__esModule?i:{default:i}).default.geo.Util={insetPoint:function(t,e,n){if(t.equals(e))return t;var i=t.x-e.x,r=t.y-e.y,a=Math.sqrt(i*i+r*r),s=Math.min(a/2,n);return{x:e.x+i/a*(a-s),y:e.y+r/a*(a-s)}}}},"./src/index.js":(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContextMenu=e.path=e.cl=e.raph=void 0;var i=l(n("./src/packages.js")),r=l(n("./src/lib/raphael.exec.js")),a=l(n("./src/lib/Class.exec.js")),s=l(n("./src/lib/pathfinding.exec.js")),o=l(n("./src/ContextMenu.js"));function l(t){return t&&t.__esModule?t:{default:t}}n("./src/css/contextMenuStyle.css"),t.exports=i.default,e.raph=r.default,e.cl=a.default,e.path=s.default,e.ContextMenu=o.default,n("./src/ContextMenu.js"),n("./src/util/raphael_ext.js"),n("./src/util/Polyfill.js"),n("./src/util/Base64.js"),n("./src/util/Debug.js"),n("./src/util/Color.js"),n("./src/util/JqueryUtil.js"),n("./src/util/ArrayList.js"),n("./src/util/SVGUtil.js"),n("./src/util/JSONUtil.js"),n("./src/util/UUID.js"),n("./src/util/spline/Spline.js"),n("./src/util/spline/CubicSpline.js"),n("./src/util/spline/CatmullRomSpline.js"),n("./src/util/spline/BezierSpline.js"),n("./src/geo/PositionConstants.js"),n("./src/geo/Point.js"),n("./src/geo/Rectangle.js"),n("./src/geo/Util.js"),n("./src/geo/Ray.js"),n("./src/geo/Line.js"),n("./src/command/CommandType.js"),n("./src/command/Command.js"),n("./src/command/CommandCollection.js"),n("./src/command/CommandStack.js"),n("./src/command/CommandStackEvent.js"),n("./src/command/CommandStackEventListener.js"),n("./src/command/CommandMove.js"),n("./src/command/CommandAttr.js"),n("./src/command/CommandMoveLine.js"),n("./src/command/CommandMoveConnection.js"),n("./src/command/CommandMoveVertex.js"),n("./src/command/CommandMoveVertices.js"),n("./src/command/CommandResize.js"),n("./src/command/CommandRotate.js"),n("./src/command/CommandConnect.js"),n("./src/command/CommandReconnect.js"),n("./src/command/CommandDelete.js"),n("./src/command/CommandDeleteGroup.js"),n("./src/command/CommandAdd.js"),n("./src/command/CommandGroup.js"),n("./src/command/CommandUngroup.js"),n("./src/command/CommandAddVertex.js"),n("./src/command/CommandAssignFigure.js"),n("./src/command/CommandBoundingBox.js"),n("./src/command/CommandRemoveVertex.js"),n("./src/command/CommandReplaceVertices.js"),n("./src/layout/connection/ConnectionRouter.js"),n("./src/layout/connection/DirectRouter.js"),n("./src/layout/connection/RubberbandRouter.js"),n("./src/layout/connection/VertexRouter.js"),n("./src/layout/connection/ManhattanConnectionRouter.js"),n("./src/layout/connection/ManhattanBridgedConnectionRouter.js"),n("./src/layout/connection/InteractiveManhattanConnectionRouter.js"),n("./src/layout/connection/CircuitConnectionRouter.js"),n("./src/layout/connection/SplineConnectionRouter.js"),n("./src/layout/connection/FanConnectionRouter.js"),n("./src/layout/connection/MazeConnectionRouter.js"),n("./src/layout/connection/MuteableManhattanConnectionRouter.js"),n("./src/layout/connection/SketchConnectionRouter.js"),n("./src/layout/mesh/MeshLayouter.js"),n("./src/layout/mesh/ExplodeLayouter.js"),n("./src/layout/mesh/ProposedMeshChange.js"),n("./src/layout/locator/Locator.js"),n("./src/layout/locator/PortLocator.js"),n("./src/layout/locator/DraggableLocator.js"),n("./src/layout/locator/SmartDraggableLocator.js"),n("./src/layout/locator/XYAbsPortLocator.js"),n("./src/layout/locator/XYRelPortLocator.js"),n("./src/layout/locator/InputPortLocator.js"),n("./src/layout/locator/OutputPortLocator.js"),n("./src/layout/locator/ConnectionLocator.js"),n("./src/layout/locator/ManhattanMidpointLocator.js"),n("./src/layout/locator/PolylineMidpointLocator.js"),n("./src/layout/locator/ParallelMidpointLocator.js"),n("./src/layout/locator/TopLocator.js"),n("./src/layout/locator/BottomLocator.js"),n("./src/layout/locator/LeftLocator.js"),n("./src/layout/locator/RightLocator.js"),n("./src/layout/locator/CenterLocator.js"),n("./src/policy/EditPolicy.js"),n("./src/policy/canvas/CanvasPolicy.js"),n("./src/policy/canvas/ZoomPolicy.js"),n("./src/policy/canvas/WheelZoomPolicy.js"),n("./src/policy/canvas/KeyboardPolicy.js"),n("./src/policy/canvas/DefaultKeyboardPolicy.js"),n("./src/policy/canvas/ExtendedKeyboardPolicy.js"),n("./src/policy/canvas/SelectionPolicy.js"),n("./src/policy/canvas/SingleSelectionPolicy.js"),n("./src/policy/canvas/GhostMoveSelectionPolicy.js"),n("./src/policy/canvas/PanningSelectionPolicy.js"),n("./src/policy/canvas/BoundingboxSelectionPolicy.js"),n("./src/policy/canvas/ReadOnlySelectionPolicy.js"),n("./src/policy/canvas/DecorationPolicy.js"),n("./src/policy/canvas/FadeoutDecorationPolicy.js"),n("./src/policy/canvas/CoronaDecorationPolicy.js"),n("./src/policy/canvas/SnapToEditPolicy.js"),n("./src/policy/canvas/ShowDimetricGridEditPolicy.js"),n("./src/policy/canvas/SnapToDimetricGridEditPolicy.js"),n("./src/policy/canvas/ShowGridEditPolicy.js"),n("./src/policy/canvas/SnapToGridEditPolicy.js"),n("./src/policy/canvas/ShowDotEditPolicy.js"),n("./src/policy/canvas/ShowChessboardEditPolicy.js"),n("./src/policy/canvas/SnapToGeometryEditPolicy.js"),n("./src/policy/canvas/SnapToVerticesEditPolicy.js"),n("./src/policy/canvas/SnapToInBetweenEditPolicy.js"),n("./src/policy/canvas/SnapToCenterEditPolicy.js"),n("./src/policy/canvas/DropInterceptorPolicy.js"),n("./src/policy/connection/ConnectionCreatePolicy.js"),n("./src/policy/connection/ComposedConnectionCreatePolicy.js"),n("./src/policy/connection/ClickConnectionCreatePolicy.js"),n("./src/policy/connection/OrthogonalConnectionCreatePolicy.js"),n("./src/policy/connection/DragConnectionCreatePolicy.js"),n("./src/policy/figure/FigureEditPolicy.js"),n("./src/policy/figure/DragDropEditPolicy.js"),n("./src/policy/figure/RegionEditPolicy.js"),n("./src/policy/figure/HorizontalEditPolicy.js"),n("./src/policy/figure/VerticalEditPolicy.js"),n("./src/policy/figure/SelectionPolicy.js"),n("./src/policy/figure/SelectionFeedbackPolicy.js"),n("./src/policy/figure/ResizeSelectionFeedbackPolicy.js"),n("./src/policy/figure/RectangleSelectionFeedbackPolicy.js"),n("./src/policy/figure/BigRectangleSelectionFeedbackPolicy.js"),n("./src/policy/figure/RoundRectangleSelectionFeedbackPolicy.js"),n("./src/policy/figure/BusSelectionFeedbackPolicy.js"),n("./src/policy/figure/WidthSelectionFeedbackPolicy.js"),n("./src/policy/figure/VBusSelectionFeedbackPolicy.js"),n("./src/policy/figure/HBusSelectionFeedbackPolicy.js"),n("./src/policy/figure/AntSelectionFeedbackPolicy.js"),n("./src/policy/figure/GlowSelectionFeedbackPolicy.js"),n("./src/policy/figure/SlimSelectionFeedbackPolicy.js"),n("./src/policy/figure/VertexSelectionFeedbackPolicy.js"),n("./src/policy/line/LineSelectionFeedbackPolicy.js"),n("./src/policy/line/VertexSelectionFeedbackPolicy.js"),n("./src/policy/line/OrthogonalSelectionFeedbackPolicy.js"),n("./src/policy/port/PortFeedbackPolicy.js"),n("./src/policy/port/ElasticStrapFeedbackPolicy.js"),n("./src/policy/port/IntrusivePortsFeedbackPolicy.js"),n("./src/Configuration.js"),n("./src/HeadlessCanvas.js"),n("./src/Canvas.js"),n("./src/Selection.js"),n("./src/Figure.js"),n("./src/shape/node/Node.js"),n("./src/VectorFigure.js"),n("./src/shape/basic/Rectangle.js"),n("./src/SetFigure.js"),n("./src/SVGFigure.js"),n("./src/shape/node/Hub.js"),n("./src/shape/node/HorizontalBus.js"),n("./src/shape/node/VerticalBus.js"),n("./src/shape/node/Fulcrum.js"),n("./src/shape/basic/Arc.js"),n("./src/shape/basic/HtmlNode.js"),n("./src/shape/basic/Oval.js"),n("./src/shape/basic/Circle.js"),n("./src/shape/basic/Label.js"),n("./src/shape/basic/Text.js"),n("./src/shape/basic/Line.js"),n("./src/shape/basic/PolyLine.js"),n("./src/shape/basic/Image.js"),n("./src/shape/basic/Polygon.js"),n("./src/shape/basic/Diamond.js"),n("./src/shape/dimetric/Rectangle.js"),n("./src/shape/composite/Composite.js"),n("./src/shape/composite/StrongComposite.js"),n("./src/shape/composite/Group.js"),n("./src/shape/composite/Jailhouse.js"),n("./src/shape/composite/WeakComposite.js"),n("./src/shape/composite/Raft.js"),n("./src/Connection.js"),n("./src/VectorFigure.js"),n("./src/ResizeHandle.js"),n("./src/shape/basic/LineResizeHandle.js"),n("./src/shape/basic/LineStartResizeHandle.js"),n("./src/shape/basic/LineEndResizeHandle.js"),n("./src/shape/basic/VertexResizeHandle.js"),n("./src/shape/basic/GhostVertexResizeHandle.js"),n("./src/Port.js"),n("./src/InputPort.js"),n("./src/OutputPort.js"),n("./src/HybridPort.js"),n("./src/layout/anchor/ConnectionAnchor.js"),n("./src/layout/anchor/ChopboxConnectionAnchor.js"),n("./src/layout/anchor/FanConnectionAnchor.js"),n("./src/layout/anchor/ShortesPathConnectionAnchor.js"),n("./src/layout/anchor/CenterEdgeConnectionAnchor.js"),n("./src/shape/arrow/CalligrapherArrowLeft.js"),n("./src/shape/arrow/CalligrapherArrowDownLeft.js"),n("./src/shape/node/Start.js"),n("./src/shape/node/End.js"),n("./src/shape/node/Between.js"),n("./src/shape/note/PostIt.js"),n("./src/shape/flowchart/Document.js"),n("./src/shape/widget/Widget.js"),n("./src/shape/widget/Slider.js"),n("./src/shape/diagram/Diagram.js"),n("./src/shape/diagram/Pie.js"),n("./src/shape/diagram/Sparkline.js"),n("./src/shape/analog/OpAmp.js"),n("./src/shape/analog/ResistorBridge.js"),n("./src/shape/analog/ResistorVertical.js"),n("./src/shape/analog/VoltageSupplyHorizontal.js"),n("./src/shape/analog/VoltageSupplyVertical.js"),n("./src/shape/layout/Layout.js"),n("./src/shape/layout/HorizontalLayout.js"),n("./src/shape/layout/VerticalLayout.js"),n("./src/shape/layout/TableLayout.js"),n("./src/shape/layout/FlexGridLayout.js"),n("./src/shape/layout/StackLayout.js"),n("./src/shape/icon/Icon.js"),n("./src/shape/icon/Contract.js"),n("./src/shape/icon/Expand.js"),n("./src/shape/pert/Activity.js"),n("./src/shape/pert/Start.js"),n("./src/shape/state/Start.js"),n("./src/shape/state/End.js"),n("./src/shape/state/State.js"),n("./src/shape/state/Connection.js"),n("./src/ui/LabelEditor.js"),n("./src/ui/LabelInplaceEditor.js"),n("./src/decoration/connection/Decorator.js"),n("./src/decoration/connection/ArrowDecorator.js"),n("./src/decoration/connection/DiamondDecorator.js"),n("./src/decoration/connection/CircleDecorator.js"),n("./src/decoration/connection/BarDecorator.js"),n("./src/io/Reader.js"),n("./src/io/Writer.js"),n("./src/io/svg/Writer.js"),n("./src/io/png/Writer.js"),n("./src/io/json/Writer.js"),n("./src/io/json/Reader.js"),n("./src/diyShape/common.js"),n("./src/diyShape/icon/Approve.js"),n("./src/diyShape/icon/ApproveFill.js"),n("./src/diyShape/icon/Arrow2Bottom.js"),n("./src/diyShape/icon/Arrow2Left.js"),n("./src/diyShape/icon/Arrow2Right.js"),n("./src/diyShape/icon/Arrow2Top.js"),n("./src/diyShape/icon/ArrowBottom.js"),n("./src/diyShape/icon/ArrowLeft.js"),n("./src/diyShape/icon/ArrowRight.js"),n("./src/diyShape/icon/ArrowTop.js"),n("./src/diyShape/icon/BusinessRule.js"),n("./src/diyShape/icon/CallActivity.js"),n("./src/diyShape/icon/DashAdd.js"),n("./src/diyShape/icon/DataRule.js"),n("./src/diyShape/icon/DataRuleFill.js"),n("./src/diyShape/icon/Else.js"),n("./src/diyShape/icon/End.js"),n("./src/diyShape/icon/EndFill.js"),n("./src/diyShape/icon/EndNode.js"),n("./src/diyShape/icon/Error.js"),n("./src/diyShape/icon/ErrorFill.js"),n("./src/diyShape/icon/GatewayComplex.js"),n("./src/diyShape/icon/GatewayEvent.js"),n("./src/diyShape/icon/GatewayExclusive.js"),n("./src/diyShape/icon/GatewayInclusive.js"),n("./src/diyShape/icon/GatewayNone.js"),n("./src/diyShape/icon/GatewayParallel.js"),n("./src/diyShape/icon/Group.js"),n("./src/diyShape/icon/HLine.js"),n("./src/diyShape/icon/If.js"),n("./src/diyShape/icon/Mail.js"),n("./src/diyShape/icon/Manual.js"),n("./src/diyShape/icon/Receive.js"),n("./src/diyShape/icon/Script.js"),n("./src/diyShape/icon/ScriptFill.js"),n("./src/diyShape/icon/Service.js"),n("./src/diyShape/icon/ServiceFill.js"),n("./src/diyShape/icon/Start.js"),n("./src/diyShape/icon/StartFill.js"),n("./src/diyShape/icon/StartNode.js"),n("./src/diyShape/icon/SubProcess.js"),n("./src/diyShape/icon/Timer.js"),n("./src/diyShape/icon/TimerFill.js"),n("./src/diyShape/icon/VLine.js"),n("./src/policy/custom/CustomAntSelectionFeedbackPolicy.js"),n("./src/policy/custom/CustomHorizontalResizeSelectionFeedbackPolicy.js"),n("./src/policy/custom/CustomLineSelectionFeedbackPolicy.js"),n("./src/policy/custom/CustomPanningSelectionPolicy.js"),n("./src/policy/custom/CustomRectangleSelectionFeedbackPolicy.js"),n("./src/policy/custom/CustomVerticalResizeSelectionFeedbackPolicy.js"),n("./src/decoration/connection/CustomArrowDecorator.js"),n("./src/decoration/connection/CustomArrowDecorator.js"),n("./src/diyShape/basic/VerticalBusExtra.js"),n("./src/diyShape/basic/Group.js"),n("./src/diyShape/basic/BaseContainer.js"),n("./src/diyShape/basic/BaseEvent.js"),n("./src/diyShape/basic/BaseGateWay.js"),n("./src/diyShape/basic/FlowText.js"),n("./src/diyShape/basic/HtmlTask.js"),n("./src/diyShape/basic/Remarks.js"),n("./src/diyShape/basic/HorizontalLane.js"),n("./src/diyShape/basic/HorizontalLine.js"),n("./src/diyShape/basic/VerticalLane.js"),n("./src/diyShape/basic/VerticalLine.js"),n("./src/diyShape/basic/HorizontalPool.js"),n("./src/diyShape/basic/VerticalPool.js"),n("./src/diyShape/styleFill/index.js"),n("./src/diyShape/styleLine/index.js"),n("./src/diyShape/styleFill/event/End.js"),n("./src/diyShape/styleLine/event/End.js"),n("./src/diyShape/styleLine/event/EndEvent.js"),n("./src/diyShape/styleFill/event/ErrorBoundary.js"),n("./src/diyShape/styleLine/event/ErrorBoundary.js"),n("./src/diyShape/styleFill/event/index.js"),n("./src/diyShape/styleLine/event/index.js"),n("./src/diyShape/styleFill/event/Start.js"),n("./src/diyShape/styleLine/event/Start.js"),n("./src/diyShape/styleLine/event/StartEvent.js"),n("./src/diyShape/styleFill/event/TimerBoundary.js"),n("./src/diyShape/styleLine/event/TimerBoundary.js"),n("./src/diyShape/styleFill/gateway/index.js"),n("./src/diyShape/styleLine/gateway/index.js"),n("./src/diyShape/styleFill/gateway/EventGateway.js"),n("./src/diyShape/styleLine/gateway/EventGateway.js"),n("./src/diyShape/styleFill/gateway/ExclusiveGateway.js"),n("./src/diyShape/styleLine/gateway/ExclusiveGateway.js"),n("./src/diyShape/styleFill/gateway/InclusiveGateway.js"),n("./src/diyShape/styleLine/gateway/InclusiveGateway.js"),n("./src/diyShape/styleFill/gateway/ParallelGateway.js"),n("./src/diyShape/styleLine/gateway/ParallelGateway.js"),n("./src/diyShape/styleFill/task/index.js"),n("./src/diyShape/styleLine/task/index.js"),n("./src/diyShape/styleFill/task/BaseTask.js"),n("./src/diyShape/styleLine/task/BaseTask.js"),n("./src/diyShape/styleFill/task/BusinessRuleTask.js"),n("./src/diyShape/styleLine/task/BusinessRuleTask.js"),n("./src/diyShape/styleFill/task/CallActivityTask.js"),n("./src/diyShape/styleLine/task/CallActivityTask.js"),n("./src/diyShape/styleFill/task/DataConversionTask.js"),n("./src/diyShape/styleLine/task/DataConversionTask.js"),n("./src/diyShape/styleLine/task/MailTask.js"),n("./src/diyShape/styleFill/task/MailTask.js"),n("./src/diyShape/styleFill/task/ManualTask.js"),n("./src/diyShape/styleLine/task/ManualTask.js"),n("./src/diyShape/styleFill/task/ReceiveTask.js"),n("./src/diyShape/styleLine/task/ReceiveTask.js"),n("./src/diyShape/styleLine/task/ScriptTask.js"),n("./src/diyShape/styleFill/task/ScriptTask.js"),n("./src/diyShape/styleFill/task/ServiceTask.js"),n("./src/diyShape/styleLine/task/ServiceTask.js"),n("./src/diyShape/styleFill/task/SubProcessTask.js"),n("./src/diyShape/styleLine/task/SubProcessTask.js"),n("./src/diyShape/styleLine/task/UserTask.js"),n("./src/diyShape/styleFill/task/UserTask.js"),n("./src/diyShape/utils.js"),n("./src/diyShape/shapeUtil.js")},"./src/io/Reader.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js");((i=r)&&i.__esModule?i:{default:i}).default.io.Reader=Class.extend({init:function(){},unmarshal:function(t,e){}})},"./src/io/Writer.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js");((i=r)&&i.__esModule?i:{default:i}).default.io.Writer=Class.extend({init:function(){},marshal:function(t,e){if("function"!=typeof e)throw"Writer.marshal method signature has been change from version 2.10.1 to version 3.0.0. Please consult the API documentation about this issue.";e("","")},formatXml:function(t){var e="",n=new RegExp("(>)(<)(/*)","g");t=t.replace(n,"$1\r\n$2$3");var i=0;return t.split("\r\n").forEach((function(t){var n=0;t.match(new RegExp(".+</w[^>]*>$"))?n=0:t.match(new RegExp("^</w"))?0!=i&&(i-=1):n=t.match(new RegExp("^<w[^>]*[^/]>.*$"))?1:0;for(var r="",a=0;a<i;a++)r+="  ";e+=r+t+"\r\n",i+=n})),e}})},"./src/io/json/Reader.js":(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{"use strict";var _packages=__webpack_require__("./src/packages.js"),_packages2=_interopRequireDefault(_packages);function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}_packages2.default.io.json.Reader=_packages2.default.io.Reader.extend({NAME:"draw2d.io.json.Reader",init:function(){this._super()},unmarshal:function(t,e){var n=this,i=new _packages2.default.util.ArrayList;"string"==typeof e&&(e=JSON.parse(e));var r=null;return e.forEach((function(e){try{var a=n.createFigureFromElement(e)||n.createFigureFromType(e.type),s=null,o=null;for(var l in e){var c=e[l];if("source"===l){if(null===(r=t.getFigure(c.node)))throw"Source figure with id '"+c.node+"' not found";if(null===(s=r.getPort(c.port)))throw"Unable to find source port '"+c.port+"' at figure '"+c.node+"' to unmarschal '"+e.type+"'"}else if("target"===l){if(null===(r=t.getFigure(c.node)))throw"Target figure with id '"+c.node+"' not found";if(null===(o=r.getPort(c.port)))throw"Unable to find target port '"+c.port+"' at figure '"+c.node+"' to unmarschal '"+e.type+"'"}}null!==s&&null!==o&&(a.setSource(s),a.setTarget(o)),a.setPersistentAttributes(e),t.add(a),i.add(a)}catch(t){debug.error(e,"Unable to instantiate figure type '"+e.type+"' with id '"+e.id+"' during unmarshal by "+n.NAME+". Skipping figure.."),debug.error(t),debug.warn(e)}})),e.forEach((function(e){if(void 0!==e.composite){var n=t.getFigure(e.id);null===n&&(n=t.getLine(e.id)),t.getFigure(e.composite).assignFigure(n)}})),t.calculateConnectionIntersection(),t.getLines().each((function(t,e){e.svgPathString=null,e.repaint()})),t.linesToRepaintAfterDragDrop=t.getLines().clone(),t.showDecoration(),i},createFigureFromType:function createFigureFromType(type){return eval("new "+type+"()")},createFigureFromElement:function(t){return null}})},"./src/io/json/Writer.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.io.json.Writer=a.default.io.Writer.extend({init:function(){this._super()},marshal:function(t,e){if("function"!=typeof e)throw"Writer.marshal method signature has been change from version 2.10.1 to version 3.0.0. Please consult the API documentation about this issue.";var n=[];t.getFigures().each((function(t,e){n.push(e.getPersistentAttributes())})),t.getLines().each((function(t,e){n.push(e.getPersistentAttributes())}));var i=a.default.util.Base64.encode(JSON.stringify(n,null,2));e(n,i)}})},"./src/io/png/Writer.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};var s=n("./node_modules/canvg-browser/index.js");a.default.io.png.Writer=a.default.io.Writer.extend({init:function(){this._super()},marshal:function(t,e,n){if("function"!=typeof e)throw"Writer.marshal method signature has been change from version 2.10.1 to version 3.0.0. Please consult the API documentation about this issue.";var i="image/png",r="",o=!1;if(t instanceof a.default.Figure){var l=t,c=l.getPosition();l.setPosition(1,1),r='<svg xmlns:xlink="http://www.w3.org/1999/xlink" >'+l.shape.node.outerHTML+"</svg>",l.setPosition(c),l.initialWidth=l.getWidth()+2,l.initialHeight=l.getHeight()+2}else o={zoom:t.getZoom(),scrollLeft:t.getScrollLeft(),scrollTop:t.getScrollTop()},t.setZoom(1),t.hideDecoration(),r=(new XMLSerializer).serializeToString(t.getHtmlContainer().find("svg")[0]);var u=$('<canvas id="canvas_png_export_for_draw2d"></canvas>');$("body").append(u);var h=$("#canvas_png_export_for_draw2d")[0];h.width=t.initialWidth,h.height=t.initialHeight,s("canvas_png_export_for_draw2d",r,{ignoreMouse:!0,ignoreAnimation:!0,renderCallback:function(){try{if(t instanceof a.default.Canvas&&(o&&(t.setZoom(o.zoom),t.setScrollLeft(o.scrollLeft),t.setScrollTop(o.scrollTop)),t.showDecoration()),void 0!==n){var r=n.x,s=n.y,l=n.w,c=n.h,d=document.createElement("canvas");d.width=l,d.height=c,d.getContext("2d").drawImage(h,r,s,l,c,0,0,l,c);var f=d.toDataURL(i),p=f.replace("data:"+i+";base64,","");e(f,p)}else{var g=h.toDataURL(i);e(g,g.replace("data:"+i+";base64,",""))}}finally{u.remove()}}})}})},"./src/io/svg/Writer.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.io.svg.Writer=a.default.io.Writer.extend({init:function(){this._super()},marshal:function(t,e){if("function"!=typeof e)throw"Writer.marshal method signature has been change from version 2.10.1 to version 3.0.0. Please consult the API documentation about this issue.";var n=t.getPrimarySelection();t.setCurrentSelection(null);var i=t.getHtmlContainer().html().replace(/>\s+/g,">").replace(/\s+</g,"<");i=(i=this.formatXml(i)).replace(/<desc>.*<\/desc>/g,"<desc>Create with draw2d JS graph library and RaphaelJS</desc>"),t.setCurrentSelection(n),e(i,a.default.util.Base64.encode(i))}})},"./src/layout/anchor/CenterEdgeConnectionAnchor.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.anchor.CenterEdgeConnectionAnchor=a.default.layout.anchor.ConnectionAnchor.extend({NAME:"draw2d.layout.anchor.CenterEdgeConnectionAnchor",init:function(t){this._super(t)},getLocation:function(t,e){var n=this.getOwner().getParent().getBoundingBox(),i=n.getDirection(t),r=n.getCenter();switch(i){case 0:r.y=n.y;break;case 1:r.x=n.x+n.w;break;case 2:r.y=n.y+n.h;break;case 3:r.x=n.x}return r},getBox:function(){return this.getOwner().getParent().getBoundingBox()},getReferencePoint:function(t){return this.getBox().getCenter()}})},"./src/layout/anchor/ChopboxConnectionAnchor.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.anchor.ChopboxConnectionAnchor=a.default.layout.anchor.ConnectionAnchor.extend({NAME:"draw2d.layout.anchor.ChopboxConnectionAnchor",init:function(t){this._super(t)},getLocation:function(t,e){var n=new a.default.geo.Rectangle(0,0);n.setBounds(this.getBox()),n.translate(-1,-1),n.resize(1,1);var i=n.getCenter();if(n.isEmpty()||t.x===i.x&&t.y===i.y)return i;var r=t.x-i.x,s=t.y-i.y,o=.5/Math.max(Math.abs(r)/n.w,Math.abs(s)/n.h);return r*=o,s*=o,i.translate(r,s),i},getBox:function(){return this.getOwner().getParent().getBoundingBox()},getReferencePoint:function(t){return this.getBox().getCenter()}})},"./src/layout/anchor/ConnectionAnchor.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js");((i=r)&&i.__esModule?i:{default:i}).default.layout.anchor.ConnectionAnchor=Class.extend({NAME:"draw2d.layout.anchor.ConnectionAnchor",init:function(t){this.owner=t},getLocation:function(t,e){return this.getReferencePoint(e)},getOwner:function(){return this.owner},setOwner:function(t){if(void 0===t)throw"Missing parameter for 'owner' in ConnectionAnchor.setOwner";this.owner=t},getBox:function(){return this.getOwner().getAbsoluteBounds()},getReferencePoint:function(t){return this.getOwner().getAbsolutePosition()}})},"./src/layout/anchor/FanConnectionAnchor.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.anchor.FanConnectionAnchor=a.default.layout.anchor.ConnectionAnchor.extend({NAME:"draw2d.layout.anchor.FanConnectionAnchor",init:function(t,e){this._super(t),this.separation=e?parseInt(e):10},getLocation:function(t,e){var n=new a.default.geo.Rectangle(0,0);n.setBounds(this.getBox()),n.translate(-1,-1),n.resize(1,1);var i=n.getCenter();if(n.isEmpty()||t.x===i.x&&t.y===i.y)return i;var r=e.getSource(),s=e.getTarget(),o=this.getOwner().getConnections().clone();o.grep((function(t){return t.getTarget()===s&&t.getSource()===r||t.getTarget()===r&&t.getSource()===s}));var l=o.indexOf(e)+1,c=i.getPosition(t),u=void 0;u=c===a.default.geo.PositionConstants.SOUTH||c===a.default.geo.PositionConstants.EAST?new a.default.geo.Point(t.x-i.x,t.y-i.y):new a.default.geo.Point(i.x-t.x,i.y-t.y);var h=Math.sqrt(u.x*u.x+u.y*u.y);l<=2&&(h*=1.5);var d=this.separation*u.x/h,f=this.separation*u.y/h;i=l%2==0?new a.default.geo.Point(i.x+l/2*(-1*f),i.y+l/2*d):new a.default.geo.Point(i.x+l/2*f,i.y+l/2*(-1*d));var p=this.getBox().intersectionWithLine(i,t);switch(p.getSize()){case 0:var g=this.getBox().getVertices(),m=g.first();return m.distance=t.distance(m),g.asArray().reduce((function(e,n){return n.distance=t.distance(n),n.distance<e.distance?n:e}));case 1:return p.get(0);case 2:var y=p.get(0),v=p.get(1);return t.distance(y)<t.distance(v)?y:v}},getBox:function(){return this.getOwner().getParent().getBoundingBox()},getReferencePoint:function(t){return this.getBox().getCenter()}})},"./src/layout/anchor/ShortesPathConnectionAnchor.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.anchor.ShortesPathConnectionAnchor=a.default.layout.anchor.ConnectionAnchor.extend({NAME:"draw2d.layout.anchor.ShortesPathConnectionAnchor",init:function(t){this._super(t)},getLocation:function(t,e){var n=this.getOwner().getParent().getBoundingBox(),i=n.getCenter();if(this.getOwner().getParent()instanceof a.default.shape.basic.Oval){var r=this.getOwner().getParent().intersectionWithLine(t,i);if(1===r.getSize())return r.get(0)}switch(n.determineOctant(new a.default.geo.Rectangle(t.x,t.y,2,2))){case 0:return n.getTopLeft();case 1:return new a.default.geo.Point(t.x,n.getTop());case 2:return n.getTopRight();case 3:return new a.default.geo.Point(n.getRight(),t.y);case 4:return n.getBottomRight();case 5:return new a.default.geo.Point(t.x,n.getBottom());case 6:return n.getBottomLeft();case 7:return new a.default.geo.Point(n.getLeft(),t.y)}return n.getTopLeft()},getBox:function(){return this.getOwner().getParent().getBoundingBox()},getReferencePoint:function(t){return this.getBox().getCenter()}})},"./src/layout/connection/CircuitConnectionRouter.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.connection.CircuitConnectionRouter=a.default.layout.connection.ManhattanConnectionRouter.extend({NAME:"draw2d.layout.connection.CircuitConnectionRouter",init:function(){this._super(),this.setBridgeRadius(4),this.setVertexRadius(2),this.abortRoutingOnFirstVertexNode=!1},onInstall:function(t){t.installEditPolicy(new a.default.policy.line.LineSelectionFeedbackPolicy)},onUninstall:function(t){void 0!==t.vertexNodes&&null!==t.vertexNodes&&(t.vertexNodes.remove(),t.vertexNodes=null)},setVertexRadius:function(t){return this.vertexRadius=t,this},setJunctionRadius:function(t){this.vertexRadius=t},setBridgeRadius:function(t){return this.bridgeRadius=t,this.bridge_LR=[" r",.5,-.5,t-t/2,-(t-t/4),t,-t,t+t/2,-(t-t/4),2*t,"0 "].join(" "),this.bridge_RL=[" r",-.5,-.5,-(t-t/2),-(t-t/4),-t,-t,-(t+t/2),-(t-t/4),2*-t,"0 "].join(" "),this},route:function(t,e){var n=this,i=t.getStartPoint(),r=t.getSource().getConnectionDirection(t.getTarget()),s=t.getEndPoint(),o=t.getTarget().getConnectionDirection(t.getSource());this._route(t,s,o,i,r);var l=t.getCanvas().getIntersection(t).sort("x"),c=l.clone().reverse(),u=l;void 0!==t.vertexNodes&&null!==t.vertexNodes&&t.vertexNodes.remove(),t.vertexNodes=t.canvas.paper.set();for(var h=t.getVertices(),d=h.get(0),f=["M",.5+(0|d.x)," ",.5+(0|d.y)],p=d,g=null,m=null,y=null,v=1;v<h.getSize();v++)d=h.get(v),p.x>d.x?(u=c,m=this.bridge_RL,g=-this.bridgeRadius):(u=l,m=this.bridge_LR,g=this.bridgeRadius),u.each((function(e,i){if(!0===a.default.shape.basic.Line.hit(1,p.x,p.y,d.x,d.y,i.x,i.y))if(t.sharingPorts(i.other)){var r=i.other,s=r.getZOrder();if(t.getZOrder()<s){var o=t.canvas.paper.ellipse(i.x,i.y,n.vertexRadius,n.vertexRadius).attr({fill:t.lineColor.rgba()});t.vertexNodes.push(o),!0===n.abortRoutingOnFirstVertexNode&&(t.getSource()!==r.getSource()&&t.getSource()!==r.getTarget()||(f=["M",.5+(0|i.x)," ",.5+(0|i.y)],null!==y&&(y.remove(),t.vertexNodes.exclude(y))),y=o)}}else d.y===i.y&&(f.push(" L",.5+(i.x-g|0)," ",.5+(0|i.y)),f.push(m))})),f.push(" L",.5+(0|d.x)," ",.5+(0|d.y)),p=d;t.svgPathString=f.join("")}})},"./src/layout/connection/ConnectionRouter.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.connection.ConnectionRouter=Class.extend({NAME:"draw2d.layout.connection.ConnectionRouter",init:function(){},route:function(t,e){throw"subclasses must implement the method [ConnectionRouter.route]"},_paint:function(t){var e=t.getVertices(),n=e.get(0),i=t.getRadius(),r=["M",n.x," ",n.y],s=1,o=void 0,l=void 0,c=void 0;if(i>0){var u=n;for(o=e.getSize()-1;s<o;s++)n=e.get(s),l=a.default.geo.Util.insetPoint(n,u,i),r.push("L",l.x,",",l.y),c=e.get(s+1),l=a.default.geo.Util.insetPoint(n,c,i),r.push("Q",n.x,",",n.y," ",l.x,", ",l.y),u=n;n=e.get(s),r.push("L",n.x,",",n.y)}else for(o=e.getSize();s<o;s++)n=e.get(s),r.push("L",n.x,",",n.y);t.svgPathString=r.join("")},onInstall:function(t){},onUninstall:function(t){},canRemoveVertexAt:function(t){return!1},canRemoveSegmentAt:function(t){return!1},getPersistentAttributes:function(t,e){return e},setPersistentAttributes:function(t,e){},onDrag:function(t,e,n,i,r){},verticesSet:function(t){}})},"./src/layout/connection/DirectRouter.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.connection.DirectRouter=a.default.layout.connection.ConnectionRouter.extend({NAME:"draw2d.layout.connection.DirectRouter",init:function(){this._super()},onInstall:function(t){t.installEditPolicy(new a.default.policy.line.LineSelectionFeedbackPolicy)},invalidate:function(){},route:function(t,e){var n=t.getStartPosition(),i=t.getEndPosition();t.addPoint(n),t.addPoint(i);var r=["M",n.x," ",n.y];r.push("L",i.x," ",i.y),t.svgPathString=r.join("")}})},"./src/layout/connection/FanConnectionRouter.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.connection.FanConnectionRouter=a.default.layout.connection.DirectRouter.extend({NAME:"draw2d.layout.connection.FanConnectionRouter",init:function(){this._super()},onInstall:function(t){t.installEditPolicy(new a.default.policy.line.LineSelectionFeedbackPolicy)},route:function(t,e){var n=t.getSource().getConnections().clone();n.grep((function(e){return e.getTarget()===t.getTarget()||e.getSource()===t.getTarget()})),n.getSize()>1?this.routeCollision(t,n.indexOf(t)):this._super(t,e)},routeCollision:function(t,e){e+=1;var n=t.getStartPoint(),i=t.getEndPoint(),r=new a.default.geo.Point((i.x+n.x)/2,(i.y+n.y)/2),s=i.getPosition(n),o=void 0;o=s===a.default.geo.PositionConstants.SOUTH||s===a.default.geo.PositionConstants.EAST?new a.default.geo.Point(i.x-n.x,i.y-n.y):new a.default.geo.Point(n.x-i.x,n.y-i.y);var l=Math.sqrt(o.x*o.x+o.y*o.y),c=15*o.x/l,u=15*o.y/l,h=void 0;h=e%2==0?new a.default.geo.Point(r.x+e/2*(-1*u),r.y+e/2*c):new a.default.geo.Point(r.x+e/2*u,r.y+e/2*(-1*c)),t.addPoint(n),t.addPoint(h),t.addPoint(i),this._paint(t)}})},"./src/layout/connection/InteractiveManhattanConnectionRouter.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.layout.connection.InteractiveManhattanConnectionRouter=i.default.layout.connection.ManhattanConnectionRouter.extend({NAME:"draw2d.layout.connection.InteractiveManhattanConnectionRouter",init:function(){this._super()},onInstall:function(t){t.installEditPolicy(new i.default.policy.line.OrthogonalSelectionFeedbackPolicy),t._routingMetaData||(t._routingMetaData={routedByUserInteraction:!1,fromDir:-1,toDir:-1})},onUninstall:function(t){delete t._routingMetaData},route:function(t,e){e.oldVertices,0===e.oldVertices.getSize()||!1===t._routingMetaData.routedByUserInteraction?(this._super(t,e),t._routingMetaData.fromDir=t.getSource().getConnectionDirection(t.getTarget()),t._routingMetaData.toDir=t.getTarget().getConnectionDirection(t.getSource())):(this.halfRoute(t,e),this._paint(t))},halfRoute:function(t,e){var n=this.MINDIST,r=Math.max,a=Math.min,s=(e=e||{oldVertices:new i.default.util.ArrayList}).oldVertices,o=s.getSize(),l=t.getStartPosition(),c=t.getSource().getConnectionDirection(t.getTarget()),u=t.getEndPosition(),h=t.getTarget().getConnectionDirection(t.getSource());if(t._routingMetaData.fromDir===c&&t._routingMetaData.toDir===h||(t._routingMetaData.routedByUserInteraction=!1,this.route(t,e)),(c===i.default.geo.Rectangle.DIRECTION_RIGHT&&h===i.default.geo.Rectangle.DIRECTION_LEFT&&l.x>u.x&&o<=4||2===t.getVertices().getSize()&&!0===t._routingMetaData.routedByUserInteraction)&&(t._routingMetaData.routedByUserInteraction=!1,this.route(t,e)),s.each((function(e,n){t.addPoint(n)})),!t.isInDragDrop){if(e.startMoved||!l.equals(s.get(0))){var d=s.get(1),f=s.get(2);switch(t.setVertex(0,l),c){case i.default.geo.Rectangle.DIRECTION_RIGHT:t.setVertex(1,r(l.x+n,d.x),l.y),f&&t.setVertex(2,r(l.x+n,d.x),f.y);break;case i.default.geo.Rectangle.DIRECTION_LEFT:t.setVertex(1,a(l.x-n,d.x),l.y),f&&t.setVertex(2,a(l.x-n,d.x),f.y);break;case i.default.geo.Rectangle.DIRECTION_UP:t.setVertex(1,l.x,a(l.y-n,d.y)),f&&t.setVertex(2,f.x,a(l.y-n,d.y));break;case i.default.geo.Rectangle.DIRECTION_DOWN:t.setVertex(1,l.x,r(l.y+n,d.y)),f&&t.setVertex(2,f.x,r(l.y+n,d.y))}}if(e.endMoved||!u.equals(s.get(o-1))){var p=s.get(o-2),g=s.get(o-3);switch(t.setVertex(o-1,u),h){case i.default.geo.Rectangle.DIRECTION_RIGHT:t.setVertex(o-2,r(u.x+n,p.x),u.y),g&&t.setVertex(o-3,r(u.x+n,p.x),g.y);break;case i.default.geo.Rectangle.DIRECTION_LEFT:t.setVertex(o-2,a(u.x-n,p.x),u.y),g&&t.setVertex(o-3,a(u.x-n,p.x),g.y);break;case i.default.geo.Rectangle.DIRECTION_UP:t.setVertex(o-2,u.x,a(u.y-n,p.y)),g&&t.setVertex(o-3,g.x,a(u.y-n,p.y));break;case i.default.geo.Rectangle.DIRECTION_DOWN:t.setVertex(o-2,u.x,r(u.y+n,p.y)),g&&t.setVertex(o-3,g.x,r(u.y+n,p.y))}}}},canRemoveSegmentAt:function(t,e){var n=t.getVertices().getSize()-1;if(e<=0||e+1>=n)return!1;if(n<4)return!1;var r=t.getStartPosition(),a=t.getSource().getConnectionDirection(t.getTarget()),s=t.getEndPosition(),o=t.getTarget().getConnectionDirection(t.getSource());if(n<=5){if(a===i.default.geo.Rectangle.DIRECTION_RIGHT&&o===i.default.geo.Rectangle.DIRECTION_LEFT&&r.x>=s.x)return!1;if(a==i.default.geo.Rectangle.DIRECTION_LEFT&o==i.default.geo.Rectangle.DIRECTION_RIGHT&&r.x<=s.x)return!1;if(a==i.default.geo.Rectangle.DIRECTION_UP&o==i.default.geo.Rectangle.DIRECTION_DOWN&&r.y<=s.y)return!1;if(a==i.default.geo.Rectangle.DIRECTION_DOWN&o==i.default.geo.Rectangle.DIRECTION_UP&&r.y>=s.y)return!1;var l=new i.default.Connection;if(l.lineSegments=new i.default.util.ArrayList,l.vertices=new i.default.util.ArrayList,l.sourcePort=t.sourcePort,l.targetPort=t.targetPort,l._routingMetaData={routedByUserInteraction:!1,fromDir:-1,toDir:-1},this.route(l,{oldVertices:new i.default.util.ArrayList}),t.getVertices().getSize()-1<=l.getVertices().getSize()-1)return!1}return!0},onDrag:function(t,e,n,i,r){var a=0;if(null!==t.draggedSegment){if(0!==t.draggedSegment.index&&t.draggedSegment.index!==t.getSegments().getSize()-1){t._routingMetaData.routedByUserInteraction=!0;var s=t.draggedSegment.start,o=t.draggedSegment.end;a=t.draggedSegment.index;var l=t.getVertices().first(),c=t.getVertices().last(),u=0;s.y===o.y?(1===a&&(u=s.y-l.y),a===t.getSegments().getSize()-2&&(u=o.y-c.y),u<0&&r>0?r=Math.min(r,-u-this.MINDIST):u>0&&r<0&&(r=-Math.min(-r,u-this.MINDIST)),t.getVertex(a).translate(0,r),t.getVertex(a+1).translate(0,r)):s.x===o.x&&(1===a&&((u=s.x-l.x)<0&&i>0?i=Math.min(i,-u-this.MINDIST):u>0&&i<0&&(i=-Math.min(-i,u-this.MINDIST))),a===t.getSegments().getSize()-2&&((u=o.x-c.x)<0&&i>0?i=Math.min(i,-u-this.MINDIST):u>0&&i<0&&(i=-Math.min(-i,u-this.MINDIST))),t.getVertex(a).translate(i,0),t.getVertex(a+1).translate(i,0))}}else{var h=t.getVertices().getSize()-1;for(a=1;a<h;a++)t.getVertex(a).translate(i,r)}},verticesSet:function(t){t._routingMetaData.routedByUserInteraction=!0,null!==t.getSource()&&null!==t.getTarget()&&(t._routingMetaData.fromDir=t.getSource().getConnectionDirection(t.getTarget()),t._routingMetaData.toDir=t.getTarget().getConnectionDirection(t.getSource()))},getPersistentAttributes:function(t,e){return e.vertex=[],t.getVertices().each((function(t,n){e.vertex.push({x:n.x,y:n.y})})),e.routingMetaData=(0,r.default)({},t._routingMetaData),e},setPersistentAttributes:function(t,e){Array.isArray(e.vertex)&&(t.oldPoint=null,t.lineSegments=new i.default.util.ArrayList,t.setVertices(e.vertex)),void 0!==e.routingMetaData&&(t._routingMetaData=(0,r.default)({},e.routingMetaData))}})},"./src/layout/connection/ManhattanBridgedConnectionRouter.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.connection.ManhattanBridgedConnectionRouter=a.default.layout.connection.ManhattanConnectionRouter.extend({NAME:"draw2d.layout.connection.ManhattanBridgedConnectionRouter",BRIDGE_HORIZONTAL_LR:" r 0 0 3 -4 7 -4 10 0 13 0 ",BRIDGE_HORIZONTAL_RL:" r 0 0 -3 -4 -7 -4 -10 0 -13 0 ",init:function(){this._super()},onInstall:function(t){t.installEditPolicy(new a.default.policy.line.LineSelectionFeedbackPolicy)},route:function(t,e){var n=this,i=t.getStartPoint(),r=t.getSource().getConnectionDirection(t.getTarget()),s=t.getEndPoint(),o=t.getTarget().getConnectionDirection(t.getSource());this._route(t,s,o,i,r);for(var l=t.getCanvas().getIntersection(t).sort("x"),c=l.clone().reverse(),u=l,h=t.getVertices(),d=h.get(0),f=["M",.5+(0|d.x)," ",.5+(0|d.y)],p=d,g=function(t){d=h.get(t);var e=5,i=n.BRIDGE_HORIZONTAL_LR;p.x>d.x&&(u=c,i=n.BRIDGE_HORIZONTAL_RL,e=-e),u.each((function(t,n){!1===n.justTouching&&!0===a.default.shape.basic.Line.hit(1,p.x,p.y,d.x,d.y,n.x,n.y)&&d.y===n.y&&(f.push(" L",.5+(n.x-e|0)," ",.5+(0|n.y)),f.push(i))})),f.push(" L",.5+(0|d.x)," ",.5+(0|d.y)),p=d},m=1;m<h.getSize();m++)g(m);t.svgPathString=f.join("")}})},"./src/layout/connection/ManhattanConnectionRouter.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.connection.ManhattanConnectionRouter=a.default.layout.connection.ConnectionRouter.extend({NAME:"draw2d.layout.connection.ManhattanConnectionRouter",MINDIST:20,TOL:.1,TOLxTOL:.01,TOGGLE_DIST:20,init:function(){this._super()},onInstall:function(t){t.installEditPolicy(new a.default.policy.line.LineSelectionFeedbackPolicy)},route:function(t,e){var n=t.getStartPosition(),i=t.getSource().getConnectionDirection(t.getTarget()),r=t.getEndPosition(),a=t.getTarget().getConnectionDirection(t.getSource());this._route(t,r,a,n,i),this._paint(t)},_route:function(t,e,n,i,r){var s=a.default.geo.Rectangle.DIRECTION_UP,o=a.default.geo.Rectangle.DIRECTION_RIGHT,l=a.default.geo.Rectangle.DIRECTION_DOWN,c=a.default.geo.Rectangle.DIRECTION_LEFT,u=e.x-i.x,h=e.y-i.y,d=void 0,f=void 0,p=void 0;u*u<this.TOLxTOL&&h*h<this.TOLxTOL?t.addPoint(new a.default.geo.Point(i.x,i.y)):(n===c?u>0&&h*h<this.TOL&&r===o?(d=i,f=r):(u<0?d=new a.default.geo.Point(e.x-this.MINDIST,e.y):h>0&&r===l||h<0&&r===s?d=new a.default.geo.Point(i.x,e.y):n===r?(p=Math.min(e.x,i.x)-this.MINDIST,d=new a.default.geo.Point(p,e.y)):d=new a.default.geo.Point(e.x-u/2,e.y),f=h>0?s:l):n===o?u<0&&h*h<this.TOL&&r===c?(d=i,f=r):(u>0?d=new a.default.geo.Point(e.x+this.MINDIST,e.y):h>0&&r===l||h<0&&r===s?d=new a.default.geo.Point(i.x,e.y):n===r?(p=Math.max(e.x,i.x)+this.MINDIST,d=new a.default.geo.Point(p,e.y)):d=new a.default.geo.Point(e.x-u/2,e.y),f=h>0?s:l):n===l?u*u<this.TOL&&h<0&&r===s?(d=i,f=r):(h>0?d=new a.default.geo.Point(e.x,e.y+this.MINDIST):u>0&&r===o||u<0&&r===c?d=new a.default.geo.Point(e.x,i.y):n===r?(p=Math.max(e.y,i.y)+this.MINDIST,d=new a.default.geo.Point(e.x,p)):d=new a.default.geo.Point(e.x,e.y-h/2),f=u>0?c:o):n===s&&(u*u<this.TOL&&h>0&&r===l?(d=i,f=r):(h<0?d=new a.default.geo.Point(e.x,e.y-this.MINDIST):u>0&&r===o||u<0&&r===c?d=new a.default.geo.Point(e.x,i.y):n===r?(p=Math.min(e.y,i.y)-this.MINDIST,d=new a.default.geo.Point(e.x,p)):d=new a.default.geo.Point(e.x,e.y-h/2),f=u>0?c:o)),this._route(t,d,f,i,r),t.addPoint(e))}})},"./src/layout/connection/MazeConnectionRouter.js":(t,e,n)=>{"use strict";var i,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a=n("./src/packages.js"),s=(i=a)&&i.__esModule?i:{default:i};var o=null;s.default.layout.connection.MazeConnectionRouter=s.default.layout.connection.ConnectionRouter.extend({NAME:"draw2d.layout.connection.MazeConnectionRouter",init:function(){this._super(),this.useSpline=!1,this.useSimplify=!0,this.useSimplifyValue=2,this.useDebug=!1,this.useShift=4,this.portOutletOffset=15,this.finder=new PF.JumpPointFinder({allowDiagonal:!1,dontCrossCorners:!0})},onInstall:function(t){t.installEditPolicy(new s.default.policy.line.LineSelectionFeedbackPolicy)},route:function(t,e){var n=t.getStartPoint(),i=t.getSource().getConnectionDirection(t.getTarget()),r=t.getEndPoint(),a=t.getTarget().getConnectionDirection(t.getSource());this._route(t,r,a,n,i),this._paint(t)},_route:function(t,e,n,i,r){var a=this.useShift,l=i,c=e;e=this.getAdjustedPoint(e,n,this.portOutletOffset),i=this.getAdjustedPoint(i,r,this.portOutletOffset);var u=this.generateNoGoGrid(t,e,n,i,r),h=this.finder.findPath(Math.max(e.x)>>a,Math.max(e.y)>>a,Math.max(i.x)>>a,Math.max(0,i.y)>>a,u);if(h.forEach((function(t){t.x=t[0]=t[0]<<a,t.y=t[1]=t[1]<<a})),this.useDebug){null!==o&&o.remove(),o=t.canvas.paper.set();for(var d=0;d<u.width;d++)for(var f=0;f<u.height;f++)u.isWalkableAt(d,f)||o.push(t.canvas.paper.rect(d<<a,f<<a,1<<a,1<<a).attr({fill:"red",opacity:"0.1"}));o.push(t.canvas.paper.rect(e.x-3,e.y-3,6,6).attr({fill:"#ff0000",opacity:"0.8"})),o.push(t.canvas.paper.rect(i.x-3,i.y-3,6,6).attr({fill:"#ff0000",opacity:"0.8"})),h.forEach((function(e){o.push(t.canvas.paper.rect(e.x-3,e.y-3,6,6).attr({fill:"#0000ff",opacity:"0.8"}))}));for(var p=h[0],g=["M",p.x," ",p.y],m=1;m<h.length;m++)p=h[m],g.push("L",p.x," ",p.y);g=g.join(""),o.push(t.canvas.paper.path(g).attr({stroke:"#0000ff"}))}if(this.adjustPath(e,h,n),h.reverse(),this.adjustPath(i,h,r),h.reverse(),h.forEach((function(t){t.x=t[0],t.y=t[1]})),this.useSpline){var y=new s.default.util.ArrayList;if(y.add(c),h.forEach((function(t){y.add(new s.default.geo.Point(t[0],t[1]))})),y.add(l),this.useDebug){h.forEach((function(e){o.push(t.canvas.paper.rect(e.x-3,e.y-3,6,6).attr({fill:"#00ff00",opacity:"0.8"}))}));for(var v=h[0],b=["M",v.x," ",v.y],x=1;x<h.length;x++)v=h[x],b.push("L",v.x," ",v.y);b=b.join(""),o.push(t.canvas.paper.path(b).attr({stroke:"#00ff00"}))}this.spline=new s.default.util.spline.CubicSpline;var w=this.spline.generate(y,8);this.useSimplify?(h=[],w.each((function(t,e){h.push({x:e.x,y:e.y})})),(h=this.simplify(h,this.useSimplifyValue,!0)).forEach((function(e){t.addPoint(e.x,e.y)}))):w.each((function(e,n){t.addPoint(n)}))}else{if(this.useSimplify&&(h=this.simplify(h,this.useSimplifyValue,!0)),this.useDebug){h.forEach((function(e){o.push(t.canvas.paper.rect(e.x-3,e.y-3,6,6).attr({fill:"#00ff00",opacity:"0.8"}))}));for(var S=h[0],C=["M",S.x," ",S.y],_=1;_<h.length;_++)S=h[_],C.push("L",S.x," ",S.y);C=C.join(""),o.push(t.canvas.paper.path(C).attr({stroke:"#00ff00"}))}t.addPoint(c),h.forEach((function(e){t.addPoint(e[0],e[1])})),t.addPoint(l)}},generateNoGoGrid:function(t,e,n,i,r){var a=this.useShift,s=(1<<a)/2,o=t.getCanvas().paper.width>>a,l=t.getCanvas().paper.height>>a,c=new PF.Grid(o,l);t.getCanvas().getFigures().each((function(t,n){var r=n.getBoundingBox();if(!0!==r.hitTest(e.x,e.y)&&!r.hitTest(i.x,i.y)){var o=r.x>>a,l=r.y>>a;if(!(o<1||l<1))for(var u=r.x+r.w+s>>a,h=r.y+r.h+s>>a,d=o;d<=u;d++)for(var f=l;f<=h;f++)c.setWalkableAt(d,f,!1)}}));var u=t.getSource().getParent().getBoundingBox();if(1===r||3===r){var h=u.y>>a;if(h>0)for(var d=u.y+u.h,f=i.x>>a,p=h-1;p<<a<=d;p++)c.setWalkableAt(f,p,!0)}else{var g=u.x>>a;if(g>0)for(var m=u.x+u.w,y=i.x>>a,v=g-1;v<<a<=m;v++)c.setWalkableAt(v,y,!0)}if(u=t.getTarget().getParent().getBoundingBox(),1===n||3===n){var b=u.y>>a;if(b>0)for(var x=u.y+u.h,w=e.x>>a,S=b-1;S<<a<=x;S++)c.setWalkableAt(w,S,!0)}else{var C=u.x>>a;if(C>0)for(var _=u.x+u.w,P=e.x>>a,E=C-1;E<<a<=_;E++)c.setWalkableAt(E,P,!0)}return c},getAdjustedPoint:function(t,e,n){switch(e){case s.default.geo.Rectangle.DIRECTION_UP:return new s.default.geo.Point(t.x,t.y-n);case s.default.geo.Rectangle.DIRECTION_RIGHT:return new s.default.geo.Point(t.x+n,t.y);case s.default.geo.Rectangle.DIRECTION_DOWN:return new s.default.geo.Point(t.x,t.y+n);case s.default.geo.Rectangle.DIRECTION_LEFT:return new s.default.geo.Point(t.x-n,t.y)}},adjustPath:function(t,e,n){var i=this.useShift,r=t.x>>i,a=t.y>>i;e.forEach((function(e){if(a!==e[1]>>i)return!1;e[1]=t.y})),e.forEach((function(e){if(r!==e[0]>>i)return!1;e[0]=t.x}))},getSquareDistance:function(t,e){var n=t.x-e.x,i=t.y-e.y;return n*n+i*i},getSquareSegmentDistance:function(t,e,n){var i=e.x,r=e.y,a=n.x-i,s=n.y-r,o=void 0;return 0===a&&0===s||((o=((t.x-i)*a+(t.y-r)*s)/(a*a+s*s))>1?(i=n.x,r=n.y):o>0&&(i+=a*o,r+=s*o)),(a=t.x-i)*a+(s=t.y-r)*s},simplifyRadialDistance:function(t,e){var n=void 0,i=t.length,r=null,a=t[0],s=[a];for(n=1;n<i;n++)r=t[n],this.getSquareDistance(r,a)>e&&(s.push(r),a=r);return a!==r&&s.push(r),s},simplifyDouglasPeucker:function(t,e){var n=t.length,i=new(("undefined"==typeof Uint8Array?"undefined":r(Uint8Array))!==void 0+""?Uint8Array:Array)(n),a=0,s=n-1,o=void 0,l=void 0,c=void 0,u=void 0,h=[],d=[],f=[];for(i[a]=i[s]=1;s;){for(l=0,o=a+1;o<s;o++)(c=this.getSquareSegmentDistance(t[o],t[a],t[s]))>l&&(u=o,l=c);l>e&&(i[u]=1,h.push(a),d.push(u),h.push(u),d.push(s)),a=h.pop(),s=d.pop()}for(o=0;o<n;o++)i[o]&&f.push(t[o]);return f},simplify:function(t,e,n){var i=void 0!==e?e*e:1;return n||(t=this.simplifyRadialDistance(t,i)),t=this.simplifyDouglasPeucker(t,i)}})},"./src/layout/connection/MuteableManhattanConnectionRouter.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.connection.MuteableManhattanConnectionRouter=a.default.layout.connection.ManhattanConnectionRouter.extend({NAME:"draw2d.layout.connection.MuteableManhattanConnectionRouter",UP:new a.default.geo.Ray(0,-1),DOWN:new a.default.geo.Ray(0,1),LEFT:new a.default.geo.Ray(-1,0),RIGHT:new a.default.geo.Ray(1,0),init:function(){this._super(),this.rowsUsed={},this.colsUsed={},this.constraints={},this.reservedInfo={}},route:function(t,e){this.rowsUsed={},this.colsUsed={},this.constraints={},this.reservedInfo={};var n=t.getCanvas(),i=void 0,r=t.getStartPoint(),s=t.getEndPoint(),o=new a.default.geo.Ray(r),l=new a.default.geo.Ray(s),c=new a.default.geo.Ray((o.x+l.x)/2,(o.y+l.y)/2),u=new a.default.geo.Ray(l.x-o.x,l.y-o.y),h=this.getStartDirection(t),d=this.getEndDirection(t),f=new a.default.util.ArrayList,p=h.isHorizontal();if(p?f.add(o.y):f.add(o.x),p=!p,0===h.dot(d))h.dot(u)>=0&&d.dot(u)<=0||(i=h.dot(u)<0?h.similarity(o.translated(h.scaled(10))):p?c.y:c.x,f.add(i),p=!p,i=d.dot(u)>0?d.similarity(l.translated(d.scaled(10))):p?c.y:c.x,f.add(i),p=!p);else if(h.dot(d)>0)i=h.dot(u)>=0?h.similarity(o.translated(h.scaled(10))):d.similarity(l.translated(d.scaled(10))),f.add(i),p=!p;else{if(h.dot(u)<0&&(i=h.similarity(o.translated(h.scaled(10))),f.add(i),p=!p),this.isCycle(t))i=p?t.getSource().getParent().getBoundingBox().getTop()-10:t.getSource().getParent().getBoundingBox().getRight()+10;else if(p){for(var g=c.y,m=d.similarity(l.translated(d.scaled(10))),y=new a.default.geo.Ray(f.get(f.getSize()-1),g),v=this.findFirstFigureAtStraightLine(n,y,this.LEFT,a.default.util.ArrayList.EMPTY_LIST);null!=v&&v.getBoundingBox().x+v.getBoundingBox().width>m;)g=v.getBoundingBox().y+v.getBoundingBox().height+5,y.y=g,v=this.findFirstFigureAtStraightLine(n,y,this.LEFT,a.default.util.ArrayList.EMPTY_LIST);i=g}else{var b=this.findFirstFigureAtStraightLine(n,o,this.RIGHT,this.getExcludingFigures(t));null==b?i=c.x:(i=Math.min(c.x,o.translated(new a.default.geo.Ray(3*(b.getBoundingBox().x-o.x)/4,0)).x),i=Math.max(o.x,i)),i=this.adjust(t,i)}f.add(i),p=!p}p?f.add(l.y):f.add(l.x),this.processPositions(o,l,f,h.isHorizontal(),t),this._paint(t)},getColumnNear:function(t,e,n,i){var r=Math.min(n,i),a=Math.max(n,i);r>e&&(a=r,r=e-(r-e)),a<e&&(r=a,a=e+(e-a));var s=0,o=-1;e%6!=0&&(e-=e%6);for(var l=void 0;s<e;){if(!((l=parseInt(e+s*o))in this.colsUsed))return this.colsUsed[l]=l,this.reserveColumn(t,l),l;if(l<=r)return l+6;if(l>=a)return l-6;1===o?o=-1:(o=1,s+=6)}return e},getRowNear:function(t,e,n,i){var r=Math.min(n,i),a=Math.max(n,i);r>e&&(a=r,r=e-(r-e)),a<e&&(r=a,a=e+(e-a));var s=0,o=-1;e%6!=0&&(e-=e%6);for(var l=void 0;s<e;){if(!((l=parseInt(e+s*o))in this.rowsUsed))return this.rowsUsed[l]=l,this.reserveRow(t,l),l;if(l<=r)return l+6;if(l>=a)return l-6;1===o?o=-1:(o=1,s+=6)}return e},getEndDirection:function(t){var e=t.getEndPoint(),n=t.getTarget().getParent().getBoundingBox();return this.getDirection(n,e)},getStartDirection:function(t){var e=t.getStartPoint(),n=t.getSource().getParent().getBoundingBox();return this.getDirection(n,e)},getDirection:function(t,e){var n=Math.abs(t.y-e.y),i=Math.abs(t.x-e.x),r=this.LEFT;return n<=i&&(i=n,r=this.UP),(n=Math.abs(t.getBottom()-e.y))<=i&&(i=n,r=this.DOWN),(n=Math.abs(t.getRight()-e.x))<i&&(r=this.RIGHT),r},processPositions:function(t,e,n,i,r){this.removeReservedLines(r);var s=[];i?s.push(t.x):s.push(t.y);var o=void 0;for(o=0;o<n.getSize();o++)s.push(n.get(o));i===(n.getSize()%2==1)?s.push(e.x):s.push(e.y),r.addPoint(new a.default.geo.Point(t.x,t.y));var l=void 0,c=void 0,u=void 0,h=void 0,d=void 0,f=void 0;for(o=2;o<s.length-1;o++)i=!i,u=s[o-1],c=s[o],f=o!==s.length-2,i?(f&&(h=s[o-2],d=s[o+2],s[o]=c=this.getRowNear(r,c,h,d)),l=new a.default.geo.Point(u,c)):(f&&(h=s[o-2],d=s[o+2],s[o]=c=this.getColumnNear(r,c,h,d)),l=new a.default.geo.Point(c,u)),r.addPoint(l);r.addPoint(new a.default.geo.Point(e.x,e.y))},removeReservedLines:function(t){var e=this.reservedInfo[t];if(null!=e){for(var n=0;n<e.reservedRows.getSize();n++)delete this.rowsUsed[e.reservedRows.get(n)];for(var i=0;i<e.reservedCols.getSize();i++)delete this.colsUsed[e.reservedCols.get(i)];delete this.reservedInfo[t]}},reserveColumn:function(t,e){var n=this.reservedInfo[t];null==n&&(n={reservedCols:new a.default.util.ArrayList,reservedRows:new a.default.util.ArrayList},this.reservedInfo[t]=n),n.reservedCols.add(e)},reserveRow:function(t,e){var n=this.reservedInfo[t];null==n&&(n={reservedCols:new a.default.util.ArrayList,reservedRows:new a.default.util.ArrayList},this.reservedInfo[t]=n),n.reservedRows.add(e)},getConstraint:function(t){return this.constraints[t]},setConstraint:function(t,e){this.constraints[t]=e},isCycle:function(t){var e=t.getSource().getParent(),n=t.getTarget().getParent();return e.id===n.id},getExcludingFigures:function(t){var e=new a.default.util.ArrayList;return e.add(t.getSource().getParent()),e.add(t.getTarget().getParent()),e},findFirstFigureAtStraightLine:function(t,e,n,i){var r=null,a=t.getFigures(),s=this;return a.each((function(t,a){try{if(!i.contains(a)){var o=a.getBoundingBox();s.LEFT.equals(n)?e.x>o.x&&e.y>=o.y&&e.y<=o.y+o.h&&(null===r||o.x>r.getBoundingBox().x)&&(r=a):s.RIGHT.equals(n)?e.x<o.x+o.w&&e.y>=o.y&&e.y<=o.y+o.h&&(null==r||o.x<r.getBoundingBox().x)&&(r=a):s.UP.equals(n)?e.y>o.y&&e.x>=o.x&&e.x<=o.x+o.w&&(null===r||o.y>r.getBoundingBox().y)&&(r=a):s.DOWN.equals(n)&&e.y<o.y+o.h&&e.x>=o.x&&e.x<=o.x+o.w&&(null===r||o.y<r.getBoundingBox().y)&&(r=a)}}catch(t){console.log(t)}})),r},adjust:function(t,e){var n=e,i=t.getSource().getPosition();return t.getCanvas().getLines().each((function(r,a){try{if(a===t)return;var s=a.getTarget().getPosition();i.x<s.x&&i.y===s.y&&a.getVertices().getMidpoint().x<=e&&(n=a.getVertices().getMidpoint().x-5)}catch(t){console.log(t)}})),n}})},"./src/layout/connection/RubberbandRouter.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.connection.RubberbandRouter=a.default.layout.connection.ConnectionRouter.extend({NAME:"draw2d.layout.connection.RubberbandRouter",init:function(){this._super()},onInstall:function(t){t.installEditPolicy(new a.default.policy.line.LineSelectionFeedbackPolicy)},invalidate:function(){},route:function(t,e){var n=10,i=t.getStartPoint(),r=t.getEndPoint(),s=r.subtract(i),o=s.clone(),l=s.length(),c=1-Math.min(.75,.002*l),u=i.lerp(r,.25*c),h=i.lerp(r,.5),d=i.lerp(r,1-.25*c);n=Math.max(5,n*c),s.x=s.x/l*n,s.y=s.y/l*n,o.x=o.x/l*(n*c),o.y=o.y/l*(n*c);var f=new a.default.geo.Point(-s.y+i.x,s.x+i.y),p=new a.default.geo.Point(s.y+i.x,-s.x+i.y),g=new a.default.geo.Point(-o.y+u.x,o.x+u.y),m=new a.default.geo.Point(o.y+u.x,-o.x+u.y),y=new a.default.geo.Point(-o.y+h.x,o.x+h.y),v=new a.default.geo.Point(o.y+h.x,-o.x+h.y),b=new a.default.geo.Point(-o.y+d.x,o.x+d.y),x=new a.default.geo.Point(o.y+d.x,-o.x+d.y),w=new a.default.geo.Point(-s.y+r.x,s.x+r.y),S=new a.default.geo.Point(s.y+r.x,-s.x+r.y);t.addPoint(i),t.addPoint(r);var C=["M",f.x,",",f.y];C.push("A",n,",",n,"0 0 1 ",p.x,",",p.y),C.push("C",p.x,",",p.y,m.x,",",m.y,v.x,",",v.y),C.push("C",v.x,",",v.y,x.x,",",x.y,S.x,",",S.y),C.push("A",n,",",n,"0 0 1",w.x,",",w.y),C.push("C",w.x,",",w.y,b.x,",",b.y,y.x,",",y.y),C.push("C",y.x,",",y.y,g.x,",",g.y,f.x,",",f.y),t.svgPathString=C.join(" ")}})},"./src/layout/connection/SketchConnectionRouter.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.connection.SketchConnectionRouter=a.default.layout.connection.MazeConnectionRouter.extend({NAME:"draw2d.layout.connection.SketchConnectionRouter",init:function(){this._super(),this.useSpline=!0,this.useShift=5,this.useSimplifyValue=.2,this.finder=new PF.JumpPointFinder({allowDiagonal:!1,dontCrossCorners:!0})},onInstall:function(t){t.installEditPolicy(new a.default.policy.line.LineSelectionFeedbackPolicy)}})},"./src/layout/connection/SplineConnectionRouter.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.connection.SplineConnectionRouter=a.default.layout.connection.ManhattanConnectionRouter.extend({NAME:"draw2d.layout.connection.SplineConnectionRouter",init:function(){this._super(),this.spline=new a.default.util.spline.CubicSpline,this.MINDIST=50},onInstall:function(t){t.installEditPolicy(new a.default.policy.line.LineSelectionFeedbackPolicy)},route:function(t,e){var n=void 0,i=t.getStartPoint(),r=t.getSource().getConnectionDirection(t.getTarget()),s=t.getEndPoint(),o=t.getTarget().getConnectionDirection(t.getSource());this._route(t,s,o,i,r);var l=t.getVertices();t.oldPoint=null,t.lineSegments=new a.default.util.ArrayList,t.vertices=new a.default.util.ArrayList,this.spline.generate(l,8).each((function(e,n){t.addPoint(n)}));var c=(l=t.getVertices()).getSize(),u=l.get(0),h=["M",u.x," ",u.y];for(n=1;n<c;n++)u=l.get(n),h.push("L",u.x," ",u.y);t.svgPathString=h.join("")}})},"./src/layout/connection/VertexRouter.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.connection.VertexRouter=a.default.layout.connection.ConnectionRouter.extend({NAME:"draw2d.layout.connection.VertexRouter",init:function(){this._super()},onInstall:function(t){t.installEditPolicy(new a.default.policy.line.VertexSelectionFeedbackPolicy)},invalidate:function(){},route:function(t,e){for(var n=e.oldVertices.getSize(),i=0;i<n;i++)t.addPoint(e.oldVertices.get(i));var r=t.getVertices(),a=t.getStartPosition(r.get(1)),s=t.getEndPosition(r.get(r.getSize()-2));r.first().setPosition(a),r.last().setPosition(s),this._paint(t)},canRemoveVertexAt:function(t,e){return!1},canRemoveSegmentAt:function(t,e){var n=t.getVertices().getSize()-1;return!(e<=0||e>=n)&&n>=2},getPersistentAttributes:function(t,e){return e.vertex=[],t.getVertices().each((function(t,n){e.vertex.push({x:n.x,y:n.y})})),e},setPersistentAttributes:function(t,e){Array.isArray(e.vertex)&&e.vertex.length>1&&(t.oldPoint=null,t.lineSegments=new a.default.util.ArrayList,t.setVertices(e.vertex))},onDrag:function(t,e,n,i,r){for(var a=t.getVertices().getSize()-1,s=1;s<a;s++)t.getVertex(s).translate(i,r)}})},"./src/layout/locator/BottomLocator.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.locator.BottomLocator=a.default.layout.locator.Locator.extend({NAME:"draw2d.layout.locator.BottomLocator",init:function(t,e,n){this._super(t,e,n)},relocate:function(t,e){var n=e.getParent(),i=n.getBoundingBox(),r=n instanceof a.default.Port?i.w/2:0,s=e.getBoundingBox();e instanceof a.default.Port?e.setPosition(i.w/2-r,i.h):e.setPosition(i.w/2-s.w/2-r,2+i.h)}})},"./src/layout/locator/CenterLocator.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.locator.CenterLocator=a.default.layout.locator.Locator.extend({NAME:"draw2d.layout.locator.CenterLocator",init:function(t,e,n){this._super(t,e,n)},relocate:function(t,e){var n=e.getParent().getBoundingBox();if(e instanceof a.default.Port)e.setPosition(n.w/2,n.h/2);else{var i=e.getBoundingBox();e.setPosition(.5+(n.w/2-i.w/2|0),.5+(n.h/2-i.h/2|0))}}})},"./src/layout/locator/ConnectionLocator.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.locator.ConnectionLocator=a.default.layout.locator.Locator.extend({NAME:"draw2d.layout.locator.ConnectionLocator",init:function(t,e,n){this._super(t,e,n)}})},"./src/layout/locator/DraggableLocator.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.locator.DraggableLocator=a.default.layout.locator.Locator.extend({NAME:"draw2d.layout.locator.DraggableLocator",init:function(t,e,n){this._super(t,e,n)},bind:function(t,e){e.setSelectionAdapter((function(){return e}))},unbind:function(t,e){e.setSelectionAdapter(null)}})},"./src/layout/locator/InputPortLocator.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.locator.InputPortLocator=a.default.layout.locator.PortLocator.extend({NAME:"draw2d.layout.locator.InputPortLocator",init:function(t,e,n){this._super(t,e,n)},relocate:function(t,e){var n=e.getParent(),i=1,r=this.NAME,a=1;n.getPorts().each((function(t,n){a=n===e?i:a,i+=n.getLocator().NAME===r?1:0})),this.applyConsiderRotation(e,0,n.getHeight()/i*a)}})},"./src/layout/locator/LeftLocator.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.locator.LeftLocator=a.default.layout.locator.Locator.extend({NAME:"draw2d.layout.locator.LeftLocator",init:function(t,e,n){this._super(t,e,n),this.margin=t&&"margin"in t?t.margin:5},relocate:function(t,e){var n=e.getParent(),i=n.getBoundingBox(),r=n instanceof a.default.Port?i.h/2:0;if(e instanceof a.default.Port)e.setPosition(0,i.h/2-r);else{var s=e.getBoundingBox();e.setPosition(-s.w-this.margin,i.h/2-s.h/2-r)}}})},"./src/layout/locator/Locator.js":(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{"use strict";var _packages=__webpack_require__("./src/packages.js"),_packages2=_interopRequireDefault(_packages),_extend=__webpack_require__("./src/util/extend.js"),_extend2=_interopRequireDefault(_extend),_JSONUtil=__webpack_require__("./src/util/JSONUtil.js"),_JSONUtil2=_interopRequireDefault(_JSONUtil);function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _defineProperty(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function _toConsumableArray(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}_packages2.default.layout.locator.Locator=Class.extend({NAME:"draw2d.layout.locator.Locator",init:function(t,e,n){this.setterWhitelist=(0,_extend2.default)({},e),this.getterWhitelist=(0,_extend2.default)({},n),this.attr(t)},attr:function(t,e){var n=this;if(_packages2.default.util.JqueryUtil.isPlainObject(t))for(var i in t){var r=this.setterWhitelist[i],a=t[i];r&&void 0!==a&&r.call(this,a)}else if("string"==typeof t){if(void 0===e){var s=this.getterWhitelist[t];return"function"==typeof s?s.call(this):void 0}"function"==typeof e&&(e=e());var o=this.setterWhitelist[t];o&&o.call(this,e)}else{if(Array.isArray(t))return Object.assign.apply(Object,[{}].concat(_toConsumableArray(Object.keys(t).map((function(t){return _defineProperty({},t,n.attr(t))})))));if(void 0===t){var l={};for(var c in this.getterWhitelist)l[c]=this.getterWhitelist[c].call(this);return l}}return this},bind:function(t,e){return e.setDraggable(!1),e.setSelectable(!1),this},unbind:function(t,e){return this},relocate:function(t,e){e.repaint()},clone:function clone(){return eval("new "+this.NAME+"()")}})},"./src/layout/locator/ManhattanMidpointLocator.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.locator.ManhattanMidpointLocator=a.default.layout.locator.ConnectionLocator.extend({NAME:"draw2d.layout.locator.ManhattanMidpointLocator",init:function(t,e,n){this._super(t,e,n)},relocate:function(t,e){var n=e.getParent().getVertices(),i=Math.floor((n.getSize()-2)/2);if(!(n.getSize()<=i+1)){var r=n.get(i),a=n.get(i+1);e.setPosition((a.x-r.x)/2+r.x-e.getWidth()/2|0,(a.y-r.y)/2+r.y-e.getHeight()/2|0)}}})},"./src/layout/locator/OutputPortLocator.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.locator.OutputPortLocator=a.default.layout.locator.PortLocator.extend({NAME:"draw2d.layout.locator.OutputPortLocator",init:function(t,e,n){this._super(t,e,n)},relocate:function(t,e){var n=e.getParent(),i=1,r=this.NAME,a=1;n.getPorts().each((function(t,n){a=n===e?i:a,i+=n.getLocator().NAME===r?1:0})),this.applyConsiderRotation(e,n.getWidth(),n.getHeight()/i*a)}})},"./src/layout/locator/ParallelMidpointLocator.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.layout.locator.ParallelMidpointLocator=i.default.layout.locator.ConnectionLocator.extend({NAME:"draw2d.layout.locator.ParallelMidpointLocator",init:function(t,e,n){this.distance=0,this._super((0,r.default)({distance:-5},t),(0,r.default)({x:this.setDistance},e),(0,r.default)({distance:this.getDistance},n))},setDistance:function(t){return this.distance=t,this},getDistance:function(){return this.distance},relocate:function(t,e){var n=e.getParent().getVertices(),i=Math.floor((n.getSize()-2)/2);if(!(n.getSize()<=i+1)){var r=n.get(i),a=n.get(i+1),s=this.distance<=0?this.distance-e.getHeight():this.distance,o=r.x-a.x,l=r.y-a.y,c=Math.sqrt(o*o+l*l),u=-Math.asin(l/c),h=180/Math.PI*u;u<0?a.x<r.x?(u=Math.abs(u)+Math.PI,h=360-h,s=-s-e.getHeight()):(u=2*Math.PI-Math.abs(u),h=360+h):a.x<r.x&&(u=Math.PI-u,h=360-h,s=-s-e.getHeight());var d=this.rotate(c/2-e.getWidth()/2,s,0,0,u),f=this.rotate(0,0,e.getWidth()/2,e.getHeight()/2,u);e.setRotationAngle(h),e.setPosition(d.x-f.x+r.x,d.y-f.y+r.y)}},rotate:function(t,e,n,i,r){var a=Math.cos,s=Math.sin;return{x:(t-n)*a(r)-(e-i)*s(r)+n,y:(t-n)*s(r)+(e-i)*a(r)+i}}})},"./src/layout/locator/PolylineMidpointLocator.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.locator.PolylineMidpointLocator=a.default.layout.locator.ManhattanMidpointLocator.extend({NAME:"draw2d.layout.locator.PolylineMidpointLocator",init:function(t,e,n){this._super(t,e,n)},relocate:function(t,e){var n=e.getParent().getVertices();if(n.getSize()%2==0)this._super(t,e);else{t=Math.floor(n.getSize()/2);var i=n.get(t);e.setPosition(i.x-e.getWidth()/2,i.y-e.getHeight()/2)}}})},"./src/layout/locator/PortLocator.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.locator.PortLocator=a.default.layout.locator.Locator.extend({NAME:"draw2d.layout.locator.PortLocator",init:function(t,e,n){this._super(t,e,n)},applyConsiderRotation:function(t,e,n){var i=t.getParent(),r=i.getWidth()/2,a=i.getHeight()/2,s=i.getRotationAngle(),o=Raphael.matrix();if(o.rotate(s,r,a),90===s||270===s){var l=i.getHeight()/i.getWidth();o.scale(l,1/l,r,a)}t.setPosition(o.x(e,n),o.y(e,n))}})},"./src/layout/locator/RightLocator.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.locator.RightLocator=a.default.layout.locator.Locator.extend({NAME:"draw2d.layout.locator.RightLocator",init:function(t,e,n){this._super(t,e,n),this.margin=t&&"margin"in t?t.margin:5},relocate:function(t,e){var n=e.getParent(),i=n.getBoundingBox(),r=n instanceof a.default.Port?i.h/2:0;if(e instanceof a.default.Port)e.setPosition(i.w,i.h/2-r);else{var s=e.getBoundingBox();e.setPosition(i.w+this.margin,i.h/2-s.h/2-r)}}})},"./src/layout/locator/SmartDraggableLocator.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.locator.SmartDraggableLocator=a.default.layout.locator.Locator.extend({NAME:"draw2d.layout.locator.SmartDraggableLocator",init:function(t,e,n){this._super(t,e,n),this.boundedCorners={init:!1,parent:0,child:0,dist:Number.MAX_SAFE_INTEGER,xOffset:0,yOffset:0}},bind:function(t,e){var n=this,i=function(){n.boundedCorners={init:!1,parent:0,child:0,dist:Number.MAX_SAFE_INTEGER,xOffset:0,yOffset:0};var t=e.getParent().getBoundingBox().getVertices(),i=e.getBoundingBox().getVertices(),r=void 0,a=void 0,s=void 0,o=void 0,l=void 0;for(r=0;r<t.getSize();r++)for(a=0;a<i.getSize();a++)s=t.get(r),o=i.get(a),(l=Math.abs(s.distance(o)))<n.boundedCorners.dist&&(n.boundedCorners={parent:r,child:a,dist:l,xOffset:s.x-o.x,yOffset:s.y-o.y});n.boundedCorners.init=!0};e.setSelectionAdapter((function(){return e})),e.getParent().on("added",i),e.on("dragend",i)},unbind:function(t,e){e.setSelectionAdapter(null)},relocate:function(t,e){if(this._super(t,e),!0===this.boundedCorners.init){var n=e.getParent().getBoundingBox().getVertices(),i=e.getBoundingBox().getVertices(),r=n.get(this.boundedCorners.parent),a=i.get(this.boundedCorners.child),s=r.x-a.x,o=r.y-a.y;e.translate(s-this.boundedCorners.xOffset,o-this.boundedCorners.yOffset)}}})},"./src/layout/locator/TopLocator.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.locator.TopLocator=a.default.layout.locator.Locator.extend({NAME:"draw2d.layout.locator.TopLocator",init:function(t,e,n){this._super(t,e,n)},relocate:function(t,e){var n=e.getParent(),i=n.getBoundingBox(),r=n instanceof a.default.Port?i.w/2:0,s=e.getBoundingBox();e instanceof a.default.Port?e.setPosition(i.w/2-r,0):e.setPosition(i.w/2-s.w/2-r,-(s.h+2))}})},"./src/layout/locator/XYAbsPortLocator.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.layout.locator.XYAbsPortLocator=i.default.layout.locator.PortLocator.extend({NAME:"draw2d.layout.locator.XYAbsPortLocator",init:function(t,e,n){this.x=0,this.y=0,this._super(t,(0,r.default)({x:this.setX,y:this.setY},e),(0,r.default)({x:this.getX,y:this.getY},n))},setX:function(t){this.x=t},setY:function(t){this.y=t},getX:function(){return this.x},getY:function(){return this.y},relocate:function(t,e){this.applyConsiderRotation(e,this.x,this.y)}})},"./src/layout/locator/XYRelPortLocator.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.layout.locator.XYRelPortLocator=i.default.layout.locator.PortLocator.extend({NAME:"draw2d.layout.locator.XYRelPortLocator",init:function(t,e,n){"number"==typeof t&&"number"==typeof e?(this.x=t,this.y=e,this._super()):(this.x=0,this.y=0,this._super(t,(0,r.default)({x:this.setX,y:this.setY},e),(0,r.default)({x:this.getX,y:this.getY},n)))},setX:function(t){this.x=t},setY:function(t){this.y=t},getX:function(){return this.x},getY:function(){return this.y},relocate:function(t,e){var n=e.getParent();this.applyConsiderRotation(e,n.getWidth()/100*this.x,n.getHeight()/100*this.y)}})},"./src/layout/mesh/ExplodeLayouter.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.mesh.ExplodeLayouter=a.default.layout.mesh.MeshLayouter.extend({MIN_MARGIN:40,init:function(){},add:function(t,e){var n=[];n[0]={x:0,y:0},n[1]={x:0,y:0},n[2]={x:0,y:0},n[3]={x:0,y:0},n[4]={x:0,y:0},n[5]={x:0,y:0},n[6]={x:0,y:0},n[7]={x:0,y:0},n[8]={x:0,y:0};var i=e.getBoundingBox(),r=t.getFigures(),s=null,o=0,l=null,c=0;for(c=0;c<r.getSize();c++)if((s=r.get(c))!==e&&(o=s.getBoundingBox().getDistance(i))<this.MIN_MARGIN)switch(this.determineOctant(i,s.getBoundingBox())){case 2:case 3:n[2].x=Math.max(n[2].x,this.MIN_MARGIN-o),n[3].x=Math.max(n[3].x,this.MIN_MARGIN-o),n[4].x=Math.max(n[4].x,this.MIN_MARGIN-o);break;case 4:n[2].x=Math.max(n[2].x,this.MIN_MARGIN-o),n[3].x=Math.max(n[3].x,this.MIN_MARGIN-o),n[4].x=Math.max(n[4].x,this.MIN_MARGIN-o),n[4].y=Math.max(n[4].y,this.MIN_MARGIN-o),n[5].y=Math.max(n[5].y,this.MIN_MARGIN-o),n[6].y=Math.max(n[6].y,this.MIN_MARGIN-o);break;case 5:case 6:n[4].y=Math.max(n[4].y,this.MIN_MARGIN-o),n[5].y=Math.max(n[5].y,this.MIN_MARGIN-o),n[6].y=Math.max(n[6].y,this.MIN_MARGIN-o);break;case 8:o=0|i.getBottomRight().getDistance(s.getBoundingBox().getTopLeft()),n[2].x=Math.max(n[2].x,this.MIN_MARGIN+o),n[3].x=Math.max(n[3].x,this.MIN_MARGIN+o),n[4].x=Math.max(n[4].x,this.MIN_MARGIN+o),n[4].y=Math.max(n[4].y,this.MIN_MARGIN+o),n[5].y=Math.max(n[5].y,this.MIN_MARGIN+o),n[6].y=Math.max(n[6].y,this.MIN_MARGIN+o),n[8].x=Math.max(n[8].x,this.MIN_MARGIN+o)}var u=new a.default.util.ArrayList;for(c=0;c<r.getSize();c++)(s=r.get(c))!==e&&(0===(l=n[this.determineOctant(i,s.getBoundingBox())]).x&&0===l.y||u.add(new a.default.layout.mesh.ProposedMeshChange(s,l.x,l.y)));return u},determineOctant:function(t,e){var n=t.x,i=t.y,r=t.w,a=t.h,s=e.x,o=e.y,l=e.w,c=e.h;return s+l<=n?o+c<=i?0:o>=i+a?6:7:s>=n+r?o+c<=i?2:o>=i+a?4:3:o+c<=i?1:o>=i+a?5:8}})},"./src/layout/mesh/MeshLayouter.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.layout.mesh.MeshLayouter=Class.extend({init:function(){},add:function(t,e){return new a.default.util.ArrayList}})},"./src/layout/mesh/ProposedMeshChange.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js");((i=r)&&i.__esModule?i:{default:i}).default.layout.mesh.ProposedMeshChange=Class.extend({init:function(t,e,n){this.figure=t,this.x=e,this.y=n},getFigure:function(){return this.figure},getX:function(){return this.x},getY:function(){return this.y}})},"./src/lib/Class.exec.js":(t,e,n)=>{"use strict";n("./node_modules/script-loader/addScript.js")(n("./node_modules/raw-loader/index.js!./src/lib/Class.exec.js"))},"./src/lib/pathfinding.exec.js":(t,e,n)=>{"use strict";n("./node_modules/script-loader/addScript.js")(n("./node_modules/raw-loader/index.js!./src/lib/pathfinding.exec.js"))},"./src/lib/raphael.exec.js":(t,e,n)=>{"use strict";n("./node_modules/script-loader/addScript.js")(n("./node_modules/raw-loader/index.js!./src/lib/raphael.exec.js"))},"./src/packages.js":(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={geo:{},io:{json:{},png:{},svg:{}},util:{spline:{}},policy:{canvas:{},connection:{},custom:{},line:{},port:{},figure:{}},diyShape:{basic:{},common:{},styleFill:{event:{},eventUtil:{},gateway:{},gatewayUtil:{},task:{},taskUtil:{}},icon:{},styleLine:{event:{},eventUtil:{},gateway:{},gatewayUtil:{},task:{},taskUtil:{}},shapeUtil:{},toolUtil:{},zoomUtil:{},commonUtil:{}},shape:{basic:{},dimetric:{},composite:{},arrow:{},node:{},note:{},diagram:{},flowchart:{},analog:{},icon:{},layout:{},pert:{},state:{},widget:{}},command:{},decoration:{connection:{}},layout:{connection:{},anchor:{},mesh:{},locator:{}},ui:{},contextmenu:{},isTouchDevice:-1!=navigator.platform.indexOf("iPhone")||-1!=navigator.platform.indexOf("iPod")||-1!=navigator.platform.indexOf("iPad")},t.exports=e.default},"./src/policy/EditPolicy.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.policy.EditPolicy=Class.extend({NAME:"draw2d.policy.EditPolicy",init:function(t,e,n){this.setterWhitelist=(0,r.default)({},e),this.getterWhitelist=(0,r.default)({},n),this.attr(t)},attr:function(t,e){if(i.default.util.JqueryUtil.isPlainObject(t))for(var n in t){var r=this.setterWhitelist[n];r?r.call(this,t[n]):"function"==typeof t[n]&&(this[n]=t[n].bind(this))}else if("string"==typeof t){if(void 0===e){var a=this.getterWhitelist[t];return"function"==typeof a?a.call(this):void 0}"function"==typeof e&&(e=e());var s=this.setterWhitelist[t];s&&s.call(this,e)}else if(void 0===t){var o={};for(key in this.getterWhitelist)o[key]=this.getterWhitelist[key].call(this);return o}return this},onInstall:function(t){},onUninstall:function(t){}})},"./src/policy/canvas/BoundingboxSelectionPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.BoundingboxSelectionPolicy=a.default.policy.canvas.SingleSelectionPolicy.extend({NAME:"draw2d.policy.canvas.BoundingboxSelectionPolicy",init:function(){this.isInsideMode=function(t,e){return t.isInside(e)},this.intersectsMode=function(t,e){return t.intersects(e)},this.decision=this.isInsideMode,this._super(),this.boundingBoxFigure1=null,this.boundingBoxFigure2=null,this.x=0,this.y=0,this.canDrawBoundingBox=!1},select:function(t,e){var n=this;if(!t.getSelection().contains(e)){var i=t.getSelection().getPrimary();null!==e&&e.select(!0),i!==e&&(t.getSelection().setPrimary(e),t.fireEvent("select",{figure:e,selection:t.getSelection()}));var r=t.getSelection();t.getLines().each((function(e,i){i instanceof a.default.Connection&&r.contains(i.getSource().getRoot())&&r.contains(i.getTarget().getRoot())&&n.select(t,i,!1)}))}},setDecisionMode:function(t){return this.decision=!0===t?this.intersectsMode:this.isInsideMode,this},onMouseDown:function(t,e,n,i,r,s){var o=this;try{this.x=e,this.y=n;var l=t.getSelection().getAll();this.mouseMovedDuringMouseDown=!1;var c=!0;this.canDrawBoundingBox=!1;for(var u=t.getBestFigure(e,n);null!==u;){var h=u.getSelectionAdapter()();if(h===u)break;u=h}if(u instanceof a.default.Port)return;null!==u&&!1===u.isSelectable()&&!1===u.isDraggable()&&(u=null),this.canDrawBoundingBox=!0,null!==u&&u.isDraggable()&&(c=u.onDragStart(e-u.getAbsoluteX(),n-u.getAbsoluteY(),i,r,s),this.mouseDraggingElement=!1===c?null:u),this.mouseDownElement=u,null!==this.mouseDownElement&&this.mouseDownElement.fireEvent("mousedown",{x:e,y:n,shiftKey:i,ctrlKey:r,event:s}),!1===i&&(null===this.mouseDownElement||!1!==this.mouseDownElement.isResizeHandle||l.contains(this.mouseDownElement)||l.each((function(e,n){o.unselect(t,n)}))),u!==t.getSelection().getPrimary()&&null!==u&&!0===u.isSelectable()&&(this.select(t,u),u instanceof a.default.shape.basic.Line?u instanceof a.default.Connection||(t.draggingLineCommand=u.createCommand(new a.default.command.CommandType(a.default.command.CommandType.MOVE)),null!==t.draggingLineCommand&&(t.draggingLine=u)):!1===c&&u.unselect()),null!==this.mouseDownElement&&!1===this.mouseDownElement.isResizeHandle&&(l=t.getSelection().getAll()).each((function(e,n){var l=1,c=1,u=n.getHandleBBox();null!==u&&(u.translate(n.getAbsolutePosition().scale(-1)),l=u.x+1,c=u.y+1);var h=n.onDragStart(l,c,i,r,!0,s);n instanceof a.default.shape.basic.Line||!1===h&&o.unselect(t,n)}))}catch(t){throw console.log(t),t}},onMouseDrag:function(t,e,n,i,r,s,o,l){if(!1!==this.canDrawBoundingBox)try{this._super(t,e,n,i,r,s,o,l),null===this.mouseDraggingElement&&null===this.mouseDownElement&&null===this.boundingBoxFigure1&&(this.boundingBoxFigure1=new a.default.shape.basic.Rectangle({width:1,height:1,x:this.x,y:this.y,bgColor:"#d4d1d4",alpha:.1}),this.boundingBoxFigure1.setCanvas(t),this.boundingBoxFigure2=new a.default.shape.basic.Rectangle({width:1,height:1,x:this.x,y:this.y,dash:"--..",stroke:.5,color:"#37a8ff",bgColor:null}),this.boundingBoxFigure2.setCanvas(t));var c=Math.abs;null!==this.boundingBoxFigure1&&(this.boundingBoxFigure1.setDimension(c(e),c(n)),this.boundingBoxFigure1.setPosition(this.x+Math.min(0,e),this.y+Math.min(0,n)),this.boundingBoxFigure2.setDimension(c(e),c(n)),this.boundingBoxFigure2.setPosition(this.x+Math.min(0,e),this.y+Math.min(0,n)))}catch(t){console.log(t)}},onMouseUp:function(t,e,n,i,r,s){var o=this;try{if(null===this.mouseDownElement)t.getSelection().getAll().each((function(e,n){o.unselect(t,n)}));else if(this.mouseDownElement instanceof a.default.ResizeHandle||this.mouseDownElement instanceof a.default.shape.basic.LineResizeHandle);else if(null!==this.mouseDownElement&&!1===this.mouseMovedDuringMouseDown){t.getSelection().getAll().contains(this.mouseDownElement)||t.getSelection().getAll().each((function(e,n){o.unselect(t,n)}))}if(this._super(t,e,n,i,r,s),null!==this.boundingBoxFigure1){var l=this.boundingBoxFigure1.getBoundingBox();t.getFigures().each((function(e,n){if(!0===n.isSelectable()&&!0===n.isVisible()&&o.decision(n.getBoundingBox(),l)){var a=1,c=1,u=n.getHandleBBox();null!==u&&(u.translate(n.getAbsolutePosition().scale(-1)),a=u.x+1,c=u.y+1),!0===n.onDragStart(a,c,i,r,s)&&o.select(t,n)}})),this.boundingBoxFigure1.setCanvas(null),this.boundingBoxFigure1=null,this.boundingBoxFigure2.setCanvas(null),this.boundingBoxFigure2=null}}catch(t){console.log(t)}}})},"./src/policy/canvas/CanvasPolicy.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/Color.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.policy.canvas.CanvasPolicy=i.default.policy.EditPolicy.extend({NAME:"draw2d.policy.canvas.CanvasPolicy",init:function(t,e,n){this.canvas=null,this._super(t,e,n)},onInstall:function(t){this.canvas=t},onUninstall:function(t){this.canvas=null},onMouseMove:function(t,e,n,i,r,a){},onMouseDown:function(t,e,n,i,r,a){},onMouseDrag:function(t,e,n,i,r,a,s,o){},onMouseUp:function(t,e,n,i,r,a){},onRightMouseDown:function(t,e,n,i,r,a){},onClick:function(t,e,n,i,r,a){},onDoubleClick:function(t,e,n,i,r,a){},onMouseWheel:function(t,e,n,i,r,a){return!0},createMonochromGif:function(t,e,n,a){a=new r.default(a);for(var s=String.fromCharCode(t%256)+String.fromCharCode(t/256)+String.fromCharCode(e%256)+String.fromCharCode(e/256),o="GIF89a"+s+"ð\0\0ÿÿÿ"+String.fromCharCode(a.red)+String.fromCharCode(a.green)+String.fromCharCode(a.blue)+"!ù\0\0\0,\0\0\0\0"+s+"\0",l={bit:1,byte_:0,data:"",writeBit:function(t){t&&(this.byte_|=this.bit),this.bit<<=1,256===this.bit&&(this.bit=1,this.data+=String.fromCharCode(this.byte_),this.byte_=0)},get:function(){var t="",e=this.data;1!==this.bit&&(e+=String.fromCharCode(this.byte_));for(var n=0;n<e.length+1;n+=255){var i=e.length-n;i<0&&(i=0),i>255&&(i=255),t+=String.fromCharCode(i)+e.substring(n,n+255)}return t+"\0"}},c=0;c<e;c++)for(var u=0;u<t;u++)l.writeBit(n[u+t*c]),l.writeBit(0),l.writeBit(0),l.writeBit(0),l.writeBit(0),l.writeBit(1);return o+=l.get()+";","data:image/gif;base64,"+i.default.util.Base64.encode(o)}})},"./src/policy/canvas/CoronaDecorationPolicy.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.policy.canvas.CoronaDecorationPolicy=i.default.policy.canvas.DecorationPolicy.extend({NAME:"draw2d.policy.canvas.CoronaDecorationPolicy",init:function(t,e,n){this.startDragX=0,this.startDragY=0,this.diameterToBeFullVisible=0,this.diameterToBeVisible=0,this.sumDiameter=0,this._super((0,r.default)({diameterToBeVisible:200,diameterToBeFullVisible:20},t),(0,r.default)({diameterToBeVisible:this.setDiameterToBeVisible,diameterToBeFullVisible:this.setDiameterToBeFullVisible},e),(0,r.default)({diameterToBeVisible:this.getDiameterToBeVisible,diameterToBeFullVisible:this.getDiameterToBeFullVisible},n))},setDiameterToBeVisible:function(t){this.diameterToBeVisible=t,this.sumDiameter=this.diameterToBeFullVisible+this.diameterToBeVisible},getDiameterToBeVisible:function(){return this.diameterToBeVisible},setDiameterToBeFullVisible:function(t){this.diameterToBeFullVisible=t,this.sumDiameter=this.diameterToBeFullVisible+this.diameterToBeVisible},getDiameterToBeFullVisible:function(){return this.diameterToBeFullVisible},onInstall:function(t){this._super(t),t.getFigures().each((function(t,e){e.getPorts().each((function(t,e){return e.setAlpha(0)}))}))},onUninstall:function(t){this._super(t),t.getFigures().each((function(t,e){e.getPorts().each((function(t,e){e.__origAlpha&&(e.setAlpha(e.__origAlpha),delete e.__origAlpha)}))}))},onMouseDown:function(t,e,n,i,r,a){this.startDragX=e,this.startDragY=n},onMouseMove:function(t,e,n,i,r,a){this.updatePorts(t,e,n)},onMouseDrag:function(t,e,n,i,r,a,s,o){this.updatePorts(t,this.startDragX+e,this.startDragY+n)},updatePorts:function(t,e,n){var r=this;t.getFigures().each((function(t,a){a instanceof i.default.shape.node.Node&&(!0===a.isVisible()&&!0===a.hitTest(e,n,r.sumDiameter)?a.getPorts().each((function(t,s){!1===s.isVisible()&&(s.__origAlpha=a.getAlpha());var o=a.getBoundingBox().getDistance(new i.default.geo.Point(e,n)),l=Math.max(0,1-100/(r.diameterToBeVisible-r.diameterToBeFullVisible)*o/100);s.setAlpha(l)})):a.getPorts().each((function(t,e){e.setAlpha(0)})))}))}})},"./src/policy/canvas/DecorationPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.DecorationPolicy=a.default.policy.canvas.CanvasPolicy.extend({NAME:"draw2d.policy.canvas.DecorationPolicy",init:function(t,e,n){this._super(t,e,n)}})},"./src/policy/canvas/DefaultKeyboardPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.DefaultKeyboardPolicy=a.default.policy.canvas.KeyboardPolicy.extend({NAME:"draw2d.policy.canvas.DefaultKeyboardPolicy",init:function(){this._super()},onKeyDown:function(t,e,n,i,r){if(46===e&&null!==t.getPrimarySelection()){t.getCommandStack().startTransaction(a.default.Configuration.i18n.command.deleteShape);var s=t.getSelection();s.each((function(e,n){if(n instanceof a.default.Connection){if(s.contains(n.getSource(),!0))return;if(s.contains(n.getTarget(),!0))return}var i=n.createCommand(new a.default.command.CommandType(a.default.command.CommandType.DELETE));null!==i&&t.getCommandStack().execute(i)})),t.getCommandStack().commitTransaction()}else this._super(t,e,n,i,r)}})},"./src/policy/canvas/DropInterceptorPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.DropInterceptorPolicy=a.default.policy.canvas.CanvasPolicy.extend({NAME:"draw2d.policy.canvas.DropInterceptorPolicy",init:function(t,e,n){this._super(t,e,n)},delegateTarget:function(t,e){return!(t instanceof a.default.Port)&&e instanceof a.default.shape.composite.StrongComposite?e:e instanceof a.default.Port&&t instanceof a.default.Port&&e.getSemanticGroup()!==t.getSemanticGroup()?null:e instanceof a.default.Port&&t instanceof a.default.Port?e.getConnections().getSize()>=e.getMaxFanOut()||t instanceof a.default.OutputPort&&e instanceof a.default.OutputPort||t instanceof a.default.InputPort&&e instanceof a.default.InputPort||t instanceof a.default.Port&&e instanceof a.default.Port&&t.getParent()===e.getParent()?null:t instanceof a.default.Port&&e instanceof a.default.shape.node.Hub?e.getHybridPort(0):e:null}})},"./src/policy/canvas/ExtendedKeyboardPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.ExtendedKeyboardPolicy=a.default.policy.canvas.KeyboardPolicy.extend({NAME:"draw2d.policy.canvas.ExtendedKeyboardPolicy",init:function(){this._super()},onKeyDown:function(t,e,n,i,r){if(null!==t.getPrimarySelection()&&!0===i)switch(e){case 71:t.getPrimarySelection()instanceof a.default.shape.composite.Group&&1===t.getSelection().getSize()?t.getCommandStack().execute(new a.default.command.CommandUngroup(t,t.getPrimarySelection())):t.getCommandStack().execute(new a.default.command.CommandGroup(t,t.getSelection()));break;case 66:t.getPrimarySelection().toBack();break;case 70:t.getPrimarySelection().toFront()}else this._super(t,e,n,i,r)}})},"./src/policy/canvas/FadeoutDecorationPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.FadeoutDecorationPolicy=a.default.policy.canvas.DecorationPolicy.extend({NAME:"draw2d.policy.canvas.FadeoutDecorationPolicy",DEFAULT_FADEOUT_DURATION:60,DEFAULT_ALPHA_DECREMENT:.05,init:function(){this._super(),this.alpha=1,this.alphaDec=this.DEFAULT_ALPHA_DECREMENT,this.hidePortsCounter=this.DEFAULT_FADEOUT_DURATION,this.portDragging=!1},onInstall:function(t){this._super(t),this.timerId=window.setInterval(this.onTimer.bind(this),50),this.hidePortsCounter=1,this.alpha=.1},onUninstall:function(t){window.clearInterval(this.timerId),this.canvas.getAllPorts().each((function(t,e){e.setAlpha(1)})),this._super(t)},onTimer:function(){var t=this;this.hidePortsCounter--,this.hidePortsCounter<=0&&this.alpha>0?(this.alpha=Math.max(0,this.alpha-this.alphaDec),this.canvas.getAllPorts().each((function(e,n){n.setAlpha(t.alpha)})),this.canvas.getSelection().getAll().each((function(e,n){n.selectionHandles.each((function(e,n){n.setAlpha(t.alpha)}))}))):this.hidePortsCounter>0&&1!==this.alpha&&(this.alpha=1,this.alphaDec=this.DEFAULT_ALPHA_DECREMENT,this.duringHide=!1,this.canvas.getAllPorts().each((function(e,n){n.setAlpha(t.alpha)})),this.canvas.getSelection().getAll().each((function(e,n){n.selectionHandles.each((function(e,n){n.setAlpha(t.alpha)}))})))},onMouseDown:function(t,e,n,i,r,s){this.hidePortsCounter=this.DEFAULT_FADEOUT_DURATION,this.portDragging=t.getBestFigure(e,n)instanceof a.default.Port},onMouseMove:function(t,e,n,i,r,a){this.hidePortsCounter=this.DEFAULT_FADEOUT_DURATION,this.portDragging=!1},onMouseDrag:function(t,e,n,i,r,a,s,o){!1===this.portDragging&&(this.hidePortsCounter=0,this.alphaDec=.1,this.onTimer())},onMouseUp:function(t,e,n,i,r,a){this.hidePortsCounter=this.DEFAULT_FADEOUT_DURATION,this.portDragging=!1}})},"./src/policy/canvas/GhostMoveSelectionPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.GhostMoveSelectionPolicy=a.default.policy.canvas.SingleSelectionPolicy.extend({NAME:"draw2d.policy.canvas.GhostMoveSelectionPolicy",init:function(){this.clone=null,this.ghostRectangle1=null,this.ghostRectangle2=null,this._super()},onMouseDrag:function(t,e,n,i,r,s,o,l){if(this.mouseMovedDuringMouseDown=!0,null!==this.mouseDraggingElement){var c=t.getSelection().getAll();c.contains(this.mouseDraggingElement)?(null===this.ghostRectangle1?(this.ghostRectangle1=new a.default.shape.basic.Rectangle,this.ghostRectangle1.setBackgroundColor("#303030"),this.ghostRectangle1.setAlpha(.1),this.ghostRectangle2=new a.default.shape.basic.Rectangle,this.ghostRectangle2.setDashArray("- "),this.ghostRectangle2.setStroke(1),this.ghostRectangle2.setColor("#5497DC"),this.ghostRectangle2.setBackgroundColor(null),this.ghostRectangle1.setBoundingBox(this.mouseDraggingElement.getBoundingBox()),this.ghostRectangle2.setBoundingBox(this.mouseDraggingElement.getBoundingBox()),this.ghostRectangle1.setCanvas(t),this.ghostRectangle1.toFront(),this.ghostRectangle2.setCanvas(t),this.ghostRectangle2.toFront(),this.clone=this.mouseDraggingElement.clone(),this.clone instanceof a.default.shape.node.Node&&this.clone.resetPorts(),this.clone.setCanvas(t),this.clone.getShapeElement(),this.clone.setAlpha(.4),this.clone.repaint()):(this.ghostRectangle1.translate(i,r),this.ghostRectangle2.translate(i,r),this.clone.translate(i,r)),c.each((function(t,i){i._newPos=new a.default.geo.Point(i.ox+e,i.oy+n)}))):this.mouseDraggingElement.onDrag(e,n,i,r,s,o,l);var u=t.fromDocumentToCanvasCoordinate(t.mouseDownX+e/t.zoomFactor,t.mouseDownY+n/t.zoomFactor),h=t.getBestFigure(u.x,u.y,this.mouseDraggingElement);h!==t.currentDropTarget&&(null!==t.currentDropTarget&&(t.currentDropTarget.onDragLeave(this.mouseDraggingElement),t.currentDropTarget.fireEvent("dragLeave",{draggingElement:this.draggingElement}),t.currentDropTarget=null),null!==h&&(t.currentDropTarget=h.delegateTarget(this.mouseDraggingElement),null!==t.currentDropTarget&&(t.currentDropTarget.onDragEnter(this.mouseDraggingElement),t.currentDropTarget.fireEvent("dragEnter",{draggingElement:this.draggingElement}))))}else null===this.mouseDownElement||this.mouseDownElement instanceof a.default.Connection||(null!==this.mouseDownElement.panningDelegate?(this.mouseDownElement.panningDelegate.fireEvent("panning",{dx:e,dy:n,dx2:i,dy2:r,shiftKey:s,ctrlKey:o,event:l}),this.mouseDownElement.panningDelegate.onPanning(e,n,i,r,s,o)):(this.mouseDownElement.fireEvent("panning",{dx:e,dy:n,dx2:i,dy2:r,shiftKey:s,ctrlKey:o,event:l}),this.mouseDownElement.onPanning(e,n,i,r,s,o,l)))},onMouseUp:function(t,e,n,i,r,s){if(null!==this.ghostRectangle1&&(this.ghostRectangle1.setCanvas(null),this.ghostRectangle1=null,this.ghostRectangle2.setCanvas(null),this.ghostRectangle2=null,this.clone.setCanvas(null),this.clone=null),null!==this.mouseDraggingElement){var o=new a.default.util.ArrayList;this.mouseDraggingElement instanceof a.default.shape.node.Node&&t.lineIntersections.each((function(t,e){o.contains(e.line)||o.add(e.line),o.contains(e.other)||o.add(e.other)})),t.getCommandStack().startTransaction(),t.getSelection().getAll().contains(this.mouseDraggingElement)?t.getSelection().getAll().each((function(t,a){a._newPos&&(a.setPosition(a._newPos),delete a._newPos),a.onDragEnd(e,n,i,r,s)})):this.mouseDraggingElement.onDragEnd(e,n,i,r,s),null===t.currentDropTarget||this.mouseDraggingElement.isResizeHandle||(this.mouseDraggingElement.onDrop(t.currentDropTarget,e,n,i,r,s),t.currentDropTarget.onDragLeave(this.mouseDraggingElement),t.currentDropTarget.onCatch(this.mouseDraggingElement,e,n,i,r,s),t.currentDropTarget=null),t.getCommandStack().commitTransaction(),this.mouseDraggingElement instanceof a.default.shape.node.Node&&(t.lineIntersections.each((function(t,e){o.contains(e.line)||o.add(e.line),o.contains(e.other)||o.add(e.other)})),o.each((function(t,e){e.svgPathString=null,e.repaint()}))),this.mouseDraggingElement=null}null===this.mouseDownElement&&!1===this.mouseMovedDuringMouseDown&&this.select(t,null),this.mouseDownElement=null,this.mouseMovedDuringMouseDown=!1}})},"./src/policy/canvas/KeyboardPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.KeyboardPolicy=a.default.policy.canvas.CanvasPolicy.extend({NAME:"draw2d.policy.canvas.KeyboardPolicy",init:function(t,e,n){this._super(t,e,n)},onKeyUp:function(t,e,n,i,r){},onKeyDown:function(t,e,n,i,r){}})},"./src/policy/canvas/PanningSelectionPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.PanningSelectionPolicy=a.default.policy.canvas.SingleSelectionPolicy.extend({NAME:"draw2d.policy.canvas.PanningSelectionPolicy",init:function(){this._super()},onMouseDrag:function(t,e,n,i,r,a,s,o){if(this._super(t,e,n,i,r,a,s,o),null===this.mouseDraggingElement&&null===this.mouseDownElement){var l=t.fromDocumentToCanvasCoordinate(t.mouseDownX+e/t.zoomFactor,t.mouseDownY+n/t.zoomFactor);if(null===t.getBestFigure(l.x,l.y)){var c=t.getScrollArea();c.scrollTop(c.scrollTop()-r),c.scrollLeft(c.scrollLeft()-i)}}}})},"./src/policy/canvas/ReadOnlySelectionPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.ReadOnlySelectionPolicy=a.default.policy.canvas.SelectionPolicy.extend({NAME:"draw2d.policy.canvas.ReadOnlySelectionPolicy",init:function(t,e,n){this._super(t,e,n)},onInstall:function(t){this._super(t),t.getAllPorts().each((function(t,e){e.setVisible(!1)}))},onUninstall:function(t){t.getAllPorts().each((function(t,e){e.setVisible(!0)})),this._super(t)},onMouseDrag:function(t,e,n,i,r,a,s,o){var l=t.getScrollArea();l.scrollTop(l.scrollTop()-r),l.scrollLeft(l.scrollLeft()-i)}})},"./src/policy/canvas/SelectionPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.SelectionPolicy=a.default.policy.canvas.CanvasPolicy.extend({NAME:"draw2d.policy.canvas.SelectionPolicy",init:function(t,e,n){this._super(t,e,n)},select:function(t,e){},unselect:function(t,e){t.getSelection().remove(e),e.unselect(),t.fireEvent("unselect",{figure:e})}})},"./src/policy/canvas/ShowChessboardEditPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.ShowChessboardEditPolicy=a.default.policy.canvas.DecorationPolicy.extend({NAME:"draw2d.policy.canvas.ShowChessboardEditPolicy",GRID_COLOR:"#e0e0e0",GRID_WIDTH:20,init:function(t){this._super(),this.grid=t||this.GRID_WIDTH},onInstall:function(t){var e=this;this._super(t),this.oldBg=this.canvas.html.css("background"),this.setGrid(1/t.getZoom()),this.onZoomCallback=function(t,n){e.setGrid(1/n.value)},t.on("zoom",this.onZoomCallback)},onUninstall:function(t){this._super(t),$(t.paper.canvas).css({background:this.oldBg}),t.off(this.onZoomCallback)},setGrid:function(t){var e=this.GRID_COLOR,n="linear-gradient(45deg, "+e+" 25%, transparent 25%, transparent 75%, "+e+" 75%, "+e+" 100%),\nlinear-gradient(45deg, "+e+" 25%, transparent 25%, transparent 75%, "+e+" 75%, "+e+" 100%)",i=2*this.grid*t+"px "+2*this.grid*t+"px",r="0 0, "+this.grid*t+"px "+this.grid*t+"px";$(this.canvas.paper.canvas).css({background:n,"background-size":i,"background-position":r})}})},"./src/policy/canvas/ShowDimetricGridEditPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.ShowDimetricGridEditPolicy=a.default.policy.canvas.DecorationPolicy.extend({NAME:"draw2d.policy.canvas.ShowDimetricGridEditPolicy",GRID_COLOR:"#f0f0f0",GRID_WIDTH:30,init:function(t){this.color=new a.default.util.Color(this.GRID_COLOR),this.zoom=1,this.shapes=null,this._super(),this.grid="number"==typeof t?t:this.GRID_WIDTH},onInstall:function(t){this._super(t),this.zoom=t.getZoom(),this.setGrid(this.grid)},onUninstall:function(t){this._super(t),null!==this.shapes&&this.shapes.remove()},setGridColor:function(t){this.color=new a.default.util.Color(t),this.setGrid(this.grid)},setGrid:function(t){if(this.grid=t,null!=this.canvas){null!==this.shapes&&this.shapes.remove();var e=this.canvas.paper,n=this.grid,i=void 0,r=e.width,a=e.height,s={stroke:this.color.rgba()},o=Math.sqrt(r*r+a*a),l=Math.atan(.5),c=Math.PI-l,u=Math.cos(l),h=Math.sin(l),d=Math.cos(c),f=Math.sin(c);for(e.setStart(),i=0;i<=r;i+=2*n)e.path([["M",i,0],["L",i+u*o,h*o]]).attr(s),e.path([["M",i,0],["L",i+d*o,f*o]]).attr(s);for(i=n;i<=a;i+=n)e.path([["M",0,i],["L",u*o,i+h*o]]).attr(s),e.path([["M",r,i],["L",r+d*o,i+f*o]]).attr(s);this.shapes=e.setFinish(),this.shapes.toBack()}}})},"./src/policy/canvas/ShowDotEditPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.ShowDotEditPolicy=a.default.policy.canvas.DecorationPolicy.extend({NAME:"draw2d.policy.canvas.ShowDotEditPolicy",DOT_COLOR:"#999999",DOT_RADIUS:1,DOT_DISTANCE:20,init:function(t,e,n){var i=this;this._super(),this.dotDistance=t||this.DOT_DISTANCE,this.dotRadius=e||this.DOT_RADIUS,this.dotColor=new a.default.util.Color(n||this.DOT_COLOR),this.onZoomCallback=function(t,e){i.setGrid(1/e.value)}},onInstall:function(t){this._super(t),this.oldBg=this.canvas.html.css("background"),this.setGrid(1/t.getZoom()),t.on("zoom",this.onZoomCallback)},onUninstall:function(t){this._super(t),$(t.paper.canvas).css({background:this.oldBg}),t.off(this.onZoomCallback)},setGrid:function(t){var e="#FFFFFF",n=this.dotColor.rgba(),i="linear-gradient(90deg, "+e+" "+(this.dotDistance-this.dotRadius)*t+"px, transparent 1%) center, linear-gradient("+e+" "+(this.dotDistance-this.dotRadius)*t+"px, transparent 1%) center, "+n,r=this.dotDistance*t+"px "+this.dotDistance*t+"px";$(this.canvas.paper.canvas).css({background:i,"background-size":r})}})},"./src/policy/canvas/ShowGridEditPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.ShowGridEditPolicy=a.default.policy.canvas.DecorationPolicy.extend({NAME:"draw2d.policy.canvas.ShowGridEditPolicy",GRID_COLOR:"#f0f0f0",GRID_WIDTH:20,GRID_STOKE:1,init:function(t,e,n){var i=this;this.gridWidth=t||this.GRID_WIDTH,this.gridStroke=e||this.GRID_STOKE,this.gridColor=new a.default.util.Color(n||this.GRID_COLOR),this._super(),this.onZoomCallback=function(t,e){i.setGrid(1/e.value)}},setGridColor:function(t){this.gridColor=new a.default.util.Color(t),this.setGrid(1/this.canvas.getZoom())},onInstall:function(t){this._super(t),this.oldBg=this.canvas.html.css("background"),this.setGrid(1/t.getZoom()),t.on("zoom",this.onZoomCallback)},onUninstall:function(t){this._super(t),$(t.paper.canvas).css({background:this.oldBg}),t.off(this.onZoomCallback)},setGrid:function(t){var e=this.gridColor.rgba(),n=" linear-gradient(to right,  "+e+" "+this.gridStroke+"px, transparent "+this.gridStroke+"px),\n      linear-gradient(to bottom, "+e+" "+this.gridStroke+"px, #FFFFFF  "+this.gridStroke+"px)",i=this.gridWidth*t+"px "+this.gridWidth*t+"px";$(this.canvas.paper.canvas).css({background:n,"background-size":i})}})},"./src/policy/canvas/SingleSelectionPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.SingleSelectionPolicy=a.default.policy.canvas.SelectionPolicy.extend({NAME:"draw2d.policy.canvas.SingleSelectionPolicy",init:function(){this._super(),this.mouseMovedDuringMouseDown=!1,this.mouseDraggingElement=null,this.mouseDownElement=null},select:function(t,e){if(!t.getSelection().contains(e)){var n=t.getSelection().getPrimary();null!==t.getSelection().getPrimary()&&this.unselect(t,t.getSelection().getPrimary()),null!==e&&e.select(!0),t.getSelection().setPrimary(e),n!==e&&t.fireEvent("select",{figure:e,selection:t.getSelection()})}},onMouseDown:function(t,e,n,i,r,s){this.mouseMovedDuringMouseDown=!1;for(var o=!0,l=t.getBestFigure(e,n);null!==l;){var c=l.getSelectionAdapter()();if(c===l)break;l=c}l instanceof a.default.Port||(null!==l&&l.isDraggable()&&(o=l.onDragStart(e-l.getAbsoluteX(),n-l.getAbsoluteY(),i,r,s),this.mouseDraggingElement=!1===o?null:l),this.mouseDownElement=l,null!==this.mouseDownElement&&this.mouseDownElement.fireEvent("mousedown",{x:e,y:n,shiftKey:i,ctrlKey:r,event:s}),l!==t.getSelection().getPrimary()&&null!==l&&!0===l.isSelectable()&&(this.select(t,l),l instanceof a.default.shape.basic.Line?l instanceof a.default.Connection||(t.draggingLineCommand=l.createCommand(new a.default.command.CommandType(a.default.command.CommandType.MOVE)),null!==t.draggingLineCommand&&(t.draggingLine=l)):!1===o&&l.unselect()))},onMouseDrag:function(t,e,n,i,r,s,o,l){if(this.mouseMovedDuringMouseDown=!0,null!==this.mouseDraggingElement){var c=t.getSelection();c.contains(this.mouseDraggingElement)?c.each((function(t,a){a.onDrag(e,n,i,r,s,o,l)})):this.mouseDraggingElement.onDrag(e,n,i,r,s,o,l);var u=t.fromDocumentToCanvasCoordinate(t.mouseDownX+e/t.zoomFactor,t.mouseDownY+n/t.zoomFactor),h=t.getBestFigure(u.x,u.y,this.mouseDraggingElement);h!==t.currentDropTarget&&(null!==t.currentDropTarget&&(t.currentDropTarget.onDragLeave(this.mouseDraggingElement),t.currentDropTarget.fireEvent("dragLeave",{draggingElement:this.mouseDraggingElement}),t.currentDropTarget=null),null!==h&&(t.currentDropTarget=h.delegateTarget(this.mouseDraggingElement),null!==t.currentDropTarget&&(t.currentDropTarget.onDragEnter(this.mouseDraggingElement),t.currentDropTarget.fireEvent("dragEnter",{draggingElement:this.mouseDraggingElement}))))}else null===this.mouseDownElement||this.mouseDownElement instanceof a.default.Connection||(null!==this.mouseDownElement.panningDelegate?(this.mouseDownElement.panningDelegate.fireEvent("panning",{dx:e,dy:n,dx2:i,dy2:r,shiftKey:s,ctrlKey:o,event:l}),this.mouseDownElement.panningDelegate.onPanning(e,n,i,r,s,o,l)):(this.mouseDownElement.fireEvent("panning",{dx:e,dy:n,dx2:i,dy2:r,shiftKey:s,ctrlKey:o,event:l}),this.mouseDownElement.onPanning(e,n,i,r,s,o,l)))},onMouseUp:function(t,e,n,i,r,s){if(null!==this.mouseDraggingElement){var o=new a.default.util.ArrayList;this.mouseDraggingElement instanceof a.default.shape.node.Node&&t.lineIntersections.each((function(t,e){o.contains(e.line)||o.add(e.line),o.contains(e.other)||o.add(e.other)})),t.getCommandStack().startTransaction(),t.getSelection().getAll().contains(this.mouseDraggingElement)?t.getSelection().getAll().each((function(t,a){a.onDragEnd(e,n,i,r,s)})):this.mouseDraggingElement.onDragEnd(e,n,i,r,s),null===t.currentDropTarget||this.mouseDraggingElement.isResizeHandle||(this.mouseDraggingElement.onDrop(t.currentDropTarget,e,n,i,r,s),t.currentDropTarget.onDragLeave(this.mouseDraggingElement),t.currentDropTarget.fireEvent("dragLeave",{draggingElement:this.mouseDraggingElement}),t.currentDropTarget.onCatch(this.mouseDraggingElement,e,n,i,r,s),t.currentDropTarget=null),t.getCommandStack().commitTransaction(),this.mouseDraggingElement instanceof a.default.shape.node.Node&&(t.lineIntersections.each((function(t,e){o.contains(e.line)||o.add(e.line),o.contains(e.other)||o.add(e.other)})),o.each((function(t,e){e.svgPathString=null,e.repaint()}))),this.mouseDraggingElement=null}else null===this.mouseDownElement||this.mouseDownElement instanceof a.default.Connection||(null!==this.mouseDownElement.panningDelegate?(this.mouseDownElement.panningDelegate.fireEvent("panningEnd"),this.mouseDownElement.panningDelegate.onPanningEnd()):(this.mouseDownElement.fireEvent("panningEnd"),this.mouseDownElement.onPanningEnd()));null===this.mouseDownElement&&!1===this.mouseMovedDuringMouseDown&&this.select(t,null),null!==this.mouseDownElement&&this.mouseDownElement.fireEvent("mouseup",{x:e,y:n,shiftKey:i,ctrlKey:r,event:s}),this.mouseDownElement=null,this.mouseMovedDuringMouseDown=!1},onClick:function(t,e,n,i,r,a){null!==t&&(t.fireEvent("click",{figure:t,x:e,y:n,relX:e-t.getAbsoluteX(),relY:n-t.getAbsoluteY(),shiftKey:i,ctrlKey:r,event:a}),t.onClick())},onDoubleClick:function(t,e,n,i,r,a){null!==t&&(t.fireEvent("dblclick",{x:e,y:n,shiftKey:i,ctrlKey:r,event:a}),t.onDoubleClick())}})},"./src/policy/canvas/SnapToCenterEditPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.SnapToCenterEditPolicy=a.default.policy.canvas.SnapToEditPolicy.extend({NAME:"draw2d.policy.canvas.SnapToCenterEditPolicy",SNAP_THRESHOLD:5,FADEOUT_DURATION:500,init:function(t,e,n){this._super(t,e,n),this.centers=null,this.horizontalGuideLines=null,this.verticalGuideLines=null},onMouseUp:function(t,e,n,i,r,a){this.centers=null,this.hideHorizontalGuides(!1),this.hideVerticalGuides(!1)},snap:function(t,e,n,i){if(e instanceof a.default.ResizeHandle)return n;if(e instanceof a.default.shape.basic.Line)return n;var r=n.x===i.x,s=n.y===i.y,o=new a.default.geo.Rectangle(n.x,n.y,e.getWidth(),e.getHeight()).getCenter();if(n=n.clone(),!0===r){var l=this.snapHorizontal(o);l.snapped?(this.showHorizontalGuides(e,l),n.y+=l.diff):this.hideHorizontalGuides(!0)}else this.hideHorizontalGuides(!0);if(!0===s){var c=this.snapVertical(o);c.snapped?(this.showVerticalGuides(e,c),n.x+=c.diff):this.hideVerticalGuides(!0)}else this.hideVerticalGuides(!0);return n},snapVertical:function(t){var e=this;null===this.centers&&this.populateCenters();var n={point:t,snapped:!1,diff:0},i=[];if(this.centers.forEach((function(n){Math.abs(n.x-t.x)<e.SNAP_THRESHOLD&&i.push(n)})),0===i.length)return n;i.sort((function(t,e){return t.x-e.x}));var r=i[0].x-t.x,a=t.clone();return a.x+=r,{snapped:!0,diff:r,point:i[0],snappedPoint:a}},snapHorizontal:function(t){var e=this;null===this.centers&&this.populateCenters();var n={point:t,snapped:!1,diff:0},i=[];if(this.centers.forEach((function(n){Math.abs(n.y-t.y)<e.SNAP_THRESHOLD&&i.push(n)})),0===i.length)return n;i.sort((function(t,e){return t.y-e.y}));var r=i[0].y-t.y,a=t.clone();return a.y+=r,{snapped:!0,diff:r,point:i[0],snappedPoint:a}},populateCenters:function(){var t=this.canvas.getSelection().getAll(!0),e=this.centers=[];this.canvas.getFigures().each((function(n,i){t.contains(i)||e.push(i.getBoundingBox().getCenter())}))},showHorizontalGuides:function(t,e){null!==this.horizontalGuideLines&&(this.horizontalGuideLines.stop(),this.horizontalGuideLines.remove());var n=e.point,i=e.snappedPoint;this.canvas.paper.setStart(),this.canvas.paper.path("M "+n.x+" "+(.5+(0|n.y))+" L "+i.x+" "+(.5+(0|i.y))).attr({stroke:this.lineColor.rgba(),"stroke-width":1}),this.horizontalGuideLines=this.canvas.paper.setFinish(),this.horizontalGuideLines.toFront()},hideHorizontalGuides:function(t){var e=this;null!==this.horizontalGuideLines&&(!0===t?null!==this.horizontalGuideLines&&(this.horizontalGuideLines.remove(),this.horizontalGuideLines=null):this.horizontalGuideLines.animate({opacity:.1},this.FADEOUT_DURATION,(function(){null!==e.horizontalGuideLines&&(e.horizontalGuideLines.remove(),e.horizontalGuideLines=null)})))},showVerticalGuides:function(t,e){null!==this.verticalGuideLines&&(this.verticalGuideLines.stop(),this.verticalGuideLines.remove());var n=e.point,i=e.snappedPoint;this.canvas.paper.setStart(),this.canvas.paper.path("M "+(.5+(0|n.x))+" "+n.y+" L "+(.5+(0|i.x))+" "+i.y).attr({stroke:this.lineColor.rgba(),"stroke-width":1}),this.verticalGuideLines=this.canvas.paper.setFinish(),this.verticalGuideLines.toFront()},hideVerticalGuides:function(t){var e=this;null!==this.verticalGuideLines&&(!0===t?null!==this.verticalGuideLines&&(this.verticalGuideLines.remove(),this.verticalGuideLines=null):this.verticalGuideLines.animate({opacity:.1},this.FADEOUT_DURATION,(function(){null!==e.verticalGuideLines&&(e.verticalGuideLines.remove(),e.verticalGuideLines=null)})))}})},"./src/policy/canvas/SnapToDimetricGridEditPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.SnapToDimetricGridEditPolicy=a.default.policy.canvas.ShowDimetricGridEditPolicy.extend({NAME:"draw2d.policy.canvas.SnapToDimetricGridEditPolicy",init:function(t){this._super(t)},snap:function(t,e,n,i){if(e instanceof a.default.shape.basic.Line)return n;var r=e.getSnapToGridAnchor();n.x=n.x+r.x,n.y=n.y+r.y;var s=this.grid/5;return n.x=s*Math.floor((n.x+s/2)/s),n.y=s*Math.floor((n.y+s/2)/s),n.x=n.x-r.x,n.y=n.y-r.y,n}})},"./src/policy/canvas/SnapToEditPolicy.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.SnapToHelper={},i.default.SnapToHelper.NORTH=1,i.default.SnapToHelper.SOUTH=4,i.default.SnapToHelper.WEST=8,i.default.SnapToHelper.EAST=16,i.default.SnapToHelper.CENTER_H=32,i.default.SnapToHelper.CENTER_V=642,i.default.SnapToHelper.NORTH_EAST=i.default.SnapToHelper.NORTH|i.default.SnapToHelper.EAST,i.default.SnapToHelper.NORTH_WEST=i.default.SnapToHelper.NORTH|i.default.SnapToHelper.WEST,i.default.SnapToHelper.SOUTH_EAST=i.default.SnapToHelper.SOUTH|i.default.SnapToHelper.EAST,i.default.SnapToHelper.SOUTH_WEST=i.default.SnapToHelper.SOUTH|i.default.SnapToHelper.WEST,i.default.SnapToHelper.NORTH_SOUTH=i.default.SnapToHelper.NORTH|i.default.SnapToHelper.SOUTH,i.default.SnapToHelper.EAST_WEST=i.default.SnapToHelper.EAST|i.default.SnapToHelper.WEST,i.default.SnapToHelper.NSEW=i.default.SnapToHelper.NORTH_SOUTH|i.default.SnapToHelper.EAST_WEST,i.default.policy.canvas.SnapToEditPolicy=i.default.policy.canvas.CanvasPolicy.extend({NAME:"draw2d.policy.canvas.SnapToEditPolicy",init:function(t,e,n){this.lineColor=null,this._super((0,r.default)({lineColor:"#51C1FC"},t),(0,r.default)({lineColor:this.setLineColor},e),(0,r.default)({lineColor:this.getLineColor},n))},setLineColor:function(t){return this.lineColor=new i.default.util.Color(t),this},getLineColor:function(){return this.lineColor},snap:function(t,e,n,i){return n}})},"./src/policy/canvas/SnapToGeometryEditPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.SnapToGeometryEditPolicy=a.default.policy.canvas.SnapToEditPolicy.extend({NAME:"draw2d.policy.canvas.SnapToGeometryEditPolicy",SNAP_THRESHOLD:3,FADEOUT_DURATION:300,init:function(t,e,n){this._super(t,e,n),this.rows=null,this.cols=null,this.vline=null,this.hline=null},onMouseUp:function(t,e,n,i,r,a){this.rows=null,this.cols=null,this.hideVerticalLine(),this.hideHorizontalLine()},snap:function(t,e,n,i){if(e instanceof a.default.shape.basic.Line)return n;var r=void 0,s=n.x===i.x,o=n.y===i.y;if(!s&&!o)return n;if(e instanceof a.default.ResizeHandle){var l=e.getSnapToGridAnchor();n.x+=l.x,n.y+=l.y;var c=e.getSnapToDirection();return r=this.snapPoint(c,n),s&&c&a.default.SnapToHelper.EAST_WEST&&!(r.edge&a.default.SnapToHelper.EAST_WEST)?this.showVerticalLine(e,a.default.SnapToHelper.WEST,r.point.x):this.hideVerticalLine(),o&&c&a.default.SnapToHelper.NORTH_SOUTH&&!(r.edge&a.default.SnapToHelper.NORTH_SOUTH)?this.showHorizontalLine(e,a.default.SnapToHelper.NORTH,r.point.y):this.hideHorizontalLine(),r.point.x=s?r.point.x-l.x:n.x,r.point.y=o?r.point.y-l.y:n.y,r.point}var u=new a.default.geo.Rectangle(n.x,n.y,e.getWidth(),e.getHeight());return r=this.snapRectangle(u),s||(r.bounds.x=n.x),o||(r.bounds.y=n.y),!s||r.edge&a.default.SnapToHelper.WEST?!s||r.edge&a.default.SnapToHelper.EAST?this.hideVerticalLine():this.showVerticalLine(e,a.default.SnapToHelper.EAST,r.bounds.x+r.bounds.getWidth()):this.showVerticalLine(e,a.default.SnapToHelper.WEST,r.bounds.x),!o||r.edge&a.default.SnapToHelper.NORTH?!o||r.edge&a.default.SnapToHelper.SOUTH?this.hideHorizontalLine():this.showHorizontalLine(e,a.default.SnapToHelper.SOUTH,r.bounds.y+r.bounds.getHeight()):this.showHorizontalLine(e,a.default.SnapToHelper.NORTH,r.bounds.y),r.bounds.getTopLeft()},snapRectangle:function(t){var e=t.clone(),n=this.snapPoint(a.default.SnapToHelper.NORTH_WEST,t.getTopLeft());e.x=n.point.x,e.y=n.point.y;var i=this.snapPoint(a.default.SnapToHelper.SOUTH_EAST,t.getBottomRight());return n.edge&a.default.SnapToHelper.WEST&&(e.x=i.point.x-t.getWidth()),n.edge&a.default.SnapToHelper.NORTH&&(e.y=i.point.y-t.getHeight()),{edge:n.edge|i.edge,bounds:e}},snapPoint:function(t,e){var n=e.clone();if(null!==this.rows&&null!==this.cols||this.populateRowsAndCols(),t&a.default.SnapToHelper.EAST){var i=this.getCorrectionFor(this.cols,e.x+1,1);i!==this.SNAP_THRESHOLD&&(t&=~a.default.SnapToHelper.EAST,n.x+=i)}if(t&a.default.SnapToHelper.WEST){var r=this.getCorrectionFor(this.cols,e.x,-1);r!==this.SNAP_THRESHOLD&&(t&=~a.default.SnapToHelper.WEST,n.x+=r)}if(t&a.default.SnapToHelper.SOUTH){var s=this.getCorrectionFor(this.rows,e.y+1,1);s!==this.SNAP_THRESHOLD&&(t&=~a.default.SnapToHelper.SOUTH,n.y+=s)}if(t&a.default.SnapToHelper.NORTH){var o=this.getCorrectionFor(this.rows,e.y,-1);o!==this.SNAP_THRESHOLD&&(t&=~a.default.SnapToHelper.NORTH,n.y+=o)}return{edge:t,point:n}},populateRowsAndCols:function(){var t=this.canvas.getSelection();this.rows=[],this.cols=[];for(var e=this.canvas.getFigures(),n=0;n<e.getSize();n++){var i=e.get(n);if(!t.contains(i,!0)){var r=i.getBoundingBox();this.cols.push({type:-1,location:r.x}),this.cols.push({type:0,location:r.x+(r.w-1)/2}),this.cols.push({type:1,location:r.getRight()+1}),this.rows.push({type:-1,location:r.y}),this.rows.push({type:0,location:r.y+(r.h-1)/2}),this.rows.push({type:1,location:r.getBottom()+1})}}},getCorrectionFor:function(t,e,n){for(var i=this.SNAP_THRESHOLD,r=this.SNAP_THRESHOLD,a=0;a<t.length;a++){var s=t[a],o=void 0;-1===s.type&&0!==n||0===s.type&&0===n?(o=Math.abs(e-s.location))<i&&(i=o,r=s.location-e):1===s.type&&0!==n&&(o=Math.abs(e-s.location))<i&&(i=o,r=s.location-e)}return r},showVerticalLine:function(t,e,n){null!=this.vline&&(this.vline.stop(),this.vline.remove());var i=this.canvas.getFigures().clone();if(i.removeAll(this.canvas.getSelection().getAll(!0)),i.map((function(t){return t.getBoundingBox()})),i.grep((function(t){return Math.abs(t.x-n)<=1||Math.abs(t.getRight()-n)<=1})),0!==i.getSize()){var r=t.getBoundingBox(),a=r.getCenter();i.sort((function(t,e){return t.getCenter().distance(a)-e.getCenter().distance(a)}));var s=0,o=this.canvas.getHeight()*Math.max(1,this.canvas.getZoom()),l=o,c=i.get(0);r.y<c.y?(s=r.y,l=c.getBottom()-r.y):(s=c.y,l=r.getBottom()-c.y),n=.5+(0|n),this.canvas.paper.setStart(),this.canvas.paper.path("M "+n+" 0 l 0 "+o).attr({stroke:this.lineColor.rgba(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+n+" "+s+" l 0 "+l).attr({stroke:this.lineColor.rgba(),"stroke-width":1}),this.vline=this.canvas.paper.setFinish(),this.vline.toBack()}},hideVerticalLine:function(){var t=this;null!=this.vline&&this.vline.animate({opacity:.1},this.FADEOUT_DURATION,(function(){null!==t.vline&&(t.vline.remove(),t.vline=null)}))},showHorizontalLine:function(t,e,n){null!=this.hline&&(this.hline.stop(),this.hline.remove());var i=this.canvas.getFigures().clone();if(i.removeAll(this.canvas.getSelection().getAll(!0)),i.map((function(t){return t.getBoundingBox()})),i.grep((function(t){return Math.abs(t.y-n)<=1||Math.abs(t.getBottom()-n)<=1})),0!==i.getSize()){var r=t.getBoundingBox(),a=r.getCenter();i.sort((function(t,e){return t.getCenter().distance(a)-e.getCenter().distance(a)}));var s,o=0,l=s=this.canvas.getWidth()*Math.max(1,this.canvas.getZoom()),c=i.get(0);r.x<c.x?(o=r.x,l=c.getRight()-r.x):(o=c.x,l=r.getRight()-c.x),n=.5+(0|n),this.canvas.paper.setStart(),this.canvas.paper.path("M 0 "+n+" l "+s+" 0").attr({stroke:this.lineColor.rgba(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+o+" "+n+" l "+l+" 0").attr({stroke:this.lineColor.rgba(),"stroke-width":1}),this.hline=this.canvas.paper.setFinish(),this.hline.toBack()}},hideHorizontalLine:function(){var t=this;null!==this.hline&&this.hline.animate({opacity:.1},this.FADEOUT_DURATION,(function(){null!==t.hline&&(t.hline.remove(),t.hline=null)}))}})},"./src/policy/canvas/SnapToGridEditPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.SnapToGridEditPolicy=a.default.policy.canvas.SnapToEditPolicy.extend({NAME:"draw2d.policy.canvas.SnapToGridEditPolicy",init:function(t,e){this._super(),this.grid=t||20,void 0!==e&&!0!==e||(this.renderer=new a.default.policy.canvas.ShowGridEditPolicy(this.grid))},onInstall:function(t){this._super(t),this.renderer&&this.renderer.onInstall(t)},onUninstall:function(t){this._super(t),this.renderer&&this.renderer.onUninstall(t)},setGrid:function(t){this.grid=t,this.renderer&&this.renderer.setGrid(t)},snap:function(t,e,n,i){if(e instanceof a.default.shape.basic.Line)return n;var r=e.getSnapToGridAnchor();return n.x=n.x+r.x,n.y=n.y+r.y,n.x=this.grid*Math.floor((n.x+this.grid/2)/this.grid),n.y=this.grid*Math.floor((n.y+this.grid/2)/this.grid),n.x=n.x-r.x,n.y=n.y-r.y,n}})},"./src/policy/canvas/SnapToInBetweenEditPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.SnapToInBetweenEditPolicy=a.default.policy.canvas.SnapToEditPolicy.extend({NAME:"draw2d.policy.canvas.SnapToInBetweenEditPolicy",SNAP_THRESHOLD:5,FADEOUT_DURATION:500,init:function(t,e,n){this._super(t,e,n),this.bounds=null,this.horizontalGuideLines=null,this.verticalGuideLines=null},onMouseUp:function(t,e,n,i,r,a){this.bounds=null,this.hideHorizontalGuides(!1),this.hideVerticalGuides(!1)},snap:function(t,e,n,i){if(e instanceof a.default.ResizeHandle)return n;if(e instanceof a.default.shape.basic.Line)return n;var r=n.x===i.x,s=n.y===i.y,o=new a.default.geo.Rectangle(n.x,n.y,e.getWidth(),e.getHeight());if(n=n.clone(),!0===r){var l=this.snapHorizontal(o);l.snapped?(this.showHorizontalGuides(e,l),n.x+=l.diff):this.hideHorizontalGuides(!0)}else this.hideHorizontalGuides(!0);if(!0===s){var c=this.snapVertical(o);c.snapped?(this.showVerticalGuides(e,c),n.y+=c.diff):this.hideVerticalGuides(!0)}else this.hideVerticalGuides(!0);return n},snapHorizontal:function(t){var e=t.getCenter();null===this.bounds&&this.populateBounds();var n={point:e,snapped:!1,snappedBox:t.clone()},i=null,r=[],s=e.clone();if(s.x=0,this.bounds.forEach((function(t,n){null!==(i=a.default.shape.basic.Line.intersection(t.getTopRight(),t.getBottomRight(),e,s))&&(i.causedBBox=t,r.push(i))})),0===r.length)return n;r.sort((function(t,e){return e.x-t.x}));var o=[],l=e.clone();if(l.x=Number.MAX_SAFE_INTEGER,this.bounds.forEach((function(t,n){null!==(i=a.default.shape.basic.Line.intersection(t.getTopLeft(),t.getBottomLeft(),e,l))&&(i.causedBBox=t,o.push(i))})),0===o.length)return n;o.sort((function(t,e){return t.x-e.x}));var c=t.clone(),u=(r[0].x+o[0].x)/2-e.x;return c.x+=u,{snapped:Math.abs(u)<this.SNAP_THRESHOLD,snappedRect:c,diff:u,leftSide:r[0],rightSide:o[0]}},snapVertical:function(t){var e=t.getCenter();null===this.bounds&&this.populateBounds();var n={point:e,snapped:!1,snappedBox:t.clone()},i=null,r=[],s=e.clone();if(s.y=0,this.bounds.forEach((function(t){null!==(i=a.default.shape.basic.Line.intersection(t.getBottomLeft(),t.getBottomRight(),e,s))&&(i.causedBBox=t,r.push(i))})),0===r.length)return n;r.sort((function(t,e){return e.y-t.y}));var o=[],l=e.clone();if(l.y=Number.MAX_SAFE_INTEGER,this.bounds.forEach((function(t){null!==(i=a.default.shape.basic.Line.intersection(t.getTopLeft(),t.getTopRight(),e,l))&&(i.causedBBox=t,o.push(i))})),0===o.length)return n;o.sort((function(t,e){return t.y-e.y}));var c=t.clone(),u=(r[0].y+o[0].y)/2-e.y;return c.y+=u,{snapped:Math.abs(u)<this.SNAP_THRESHOLD,snappedRect:c,diff:u,topSide:r[0],bottomSide:o[0]}},populateBounds:function(){var t=this.canvas.getSelection().getAll(!0),e=this.bounds=[];this.canvas.getFigures().each((function(n,i){t.contains(i)||e.push(i.getBoundingBox())}))},showHorizontalGuides:function(t,e){null!=this.horizontalGuideLines&&(this.horizontalGuideLines.stop(),this.horizontalGuideLines.remove());var n=e.snappedRect.getTopLeft(),i=e.snappedRect.getTopRight(),r=.5+(Math.min(e.leftSide.causedBBox.getTopRight().y,Math.min(e.rightSide.causedBBox.y,t.getY()))-50|0);this.canvas.paper.setStart(),this.canvas.paper.path("M "+(.5+(0|e.leftSide.x))+" "+r+" L "+(.5+(0|e.leftSide.x))+" "+e.leftSide.y).attr({stroke:this.lineColor.rgba(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+(.5+(0|n.x))+" "+r+" L "+(.5+(0|n.x))+" "+n.y).attr({stroke:this.lineColor.rgba(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+(.5+(0|i.x))+" "+r+" L "+(.5+(0|i.x))+" "+i.y).attr({stroke:this.lineColor.rgba(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+(.5+(0|e.rightSide.x))+" "+r+" L "+(.5+(0|e.rightSide.x))+" "+e.rightSide.y).attr({stroke:this.lineColor.rgba(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+e.leftSide.x+" "+(r+5)+" L "+n.x+" "+(r+5)).attr({stroke:this.lineColor.rgba(),"stroke-width":1}),this.canvas.paper.path("M "+e.rightSide.x+" "+(r+5)+" L "+i.x+" "+(r+5)).attr({stroke:this.lineColor.rgba(),"stroke-width":1}),this.canvas.paper.path(" M "+(e.leftSide.x+5)+" "+r+" L "+e.leftSide.x+" "+(r+5)+" L "+(e.leftSide.x+5)+" "+(r+10)).attr({stroke:this.lineColor.rgba(),"stroke-width":1}),this.canvas.paper.path(" M "+(n.x-5)+" "+r+" L "+n.x+" "+(r+5)+" L "+(n.x-5)+" "+(r+10)).attr({stroke:this.lineColor.rgba(),"stroke-width":1}),this.canvas.paper.path(" M "+(i.x+5)+" "+r+" L "+i.x+" "+(r+5)+" L "+(i.x+5)+" "+(r+10)).attr({stroke:this.lineColor.rgba(),"stroke-width":1}),this.canvas.paper.path(" M "+(e.rightSide.x-5)+" "+r+" L "+e.rightSide.x+" "+(r+5)+" L "+(e.rightSide.x-5)+" "+(r+10)).attr({stroke:this.lineColor.rgba(),"stroke-width":1}),this.horizontalGuideLines=this.canvas.paper.setFinish(),this.horizontalGuideLines.toFront()},hideHorizontalGuides:function(t){var e=this;null!=this.horizontalGuideLines&&(!0===t?null!==this.horizontalGuideLines&&(this.horizontalGuideLines.remove(),this.horizontalGuideLines=null):this.horizontalGuideLines.animate({opacity:.1},this.FADEOUT_DURATION,(function(){null!==e.horizontalGuideLines&&(e.horizontalGuideLines.remove(),e.horizontalGuideLines=null)})))},showVerticalGuides:function(t,e){null!=this.verticalGuideLines&&(this.verticalGuideLines.stop(),this.verticalGuideLines.remove());var n=e.snappedRect.getTopRight(),i=e.snappedRect.getBottomRight(),r=.5+(Math.max(e.topSide.causedBBox.getRight(),Math.max(e.bottomSide.causedBBox.getRight(),t.getX()))+40|0);this.canvas.paper.setStart(),this.canvas.paper.path("M "+r+" "+(.5+(0|e.topSide.y))+" L "+(.5+(0|e.topSide.x))+" "+(.5+(0|e.topSide.y))).attr({stroke:this.lineColor.rgba(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+r+" "+(.5+(0|n.y))+" L "+(.5+(0|n.x))+" "+(.5+(0|n.y))).attr({stroke:this.lineColor.rgba(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+r+" "+(.5+(0|i.y))+" L "+(.5+(0|i.x))+" "+(.5+(0|i.y))).attr({stroke:this.lineColor.rgba(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+r+" "+(.5+(0|e.bottomSide.y))+" L "+(.5+(0|e.bottomSide.x))+" "+(.5+(0|e.bottomSide.y))).attr({stroke:this.lineColor.rgba(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+(r-5)+" "+(.5+(0|e.topSide.y))+" L "+(r-5)+" "+(.5+(0|n.y))).attr({stroke:this.lineColor.rgba(),"stroke-width":1}),this.canvas.paper.path("M "+(r-5)+" "+(.5+(0|e.bottomSide.y))+" L "+(r-5)+" "+(.5+(0|i.y))).attr({stroke:this.lineColor.rgba(),"stroke-width":1}),this.canvas.paper.path(" M "+(r-10)+" "+(e.topSide.y+5)+" L "+(r-5)+" "+e.topSide.y+" L "+r+" "+(e.topSide.y+5)).attr({stroke:this.lineColor.rgba(),"stroke-width":1}),this.canvas.paper.path(" M "+(r-10)+" "+(n.y-5)+" L "+(r-5)+" "+n.y+" L "+r+" "+(n.y-5)).attr({stroke:this.lineColor.rgba(),"stroke-width":1}),this.canvas.paper.path(" M "+(r-10)+" "+(i.y+5)+" L "+(r-5)+" "+i.y+" L "+r+" "+(i.y+5)).attr({stroke:this.lineColor.rgba(),"stroke-width":1}),this.canvas.paper.path(" M "+(r-10)+" "+(e.bottomSide.y-5)+" L "+(r-5)+" "+e.bottomSide.y+" L "+r+" "+(e.bottomSide.y-5)).attr({stroke:this.lineColor.rgba(),"stroke-width":1}),this.verticalGuideLines=this.canvas.paper.setFinish(),this.verticalGuideLines.toFront()},hideVerticalGuides:function(){var t=this;null!=this.verticalGuideLines&&this.verticalGuideLines.animate({opacity:.1},this.FADEOUT_DURATION,(function(){null!==t.verticalGuideLines&&(t.verticalGuideLines.remove(),t.verticalGuideLines=null)}))}})},"./src/policy/canvas/SnapToVerticesEditPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.SnapToVerticesEditPolicy=a.default.policy.canvas.SnapToEditPolicy.extend({NAME:"draw2d.policy.canvas.SnapToVerticesEditPolicy",SNAP_THRESHOLD:3,FADEOUT_DURATION:300,init:function(t,e,n){this._super(t,e,n),this.constraints=null,this.vline=null,this.hline=null},onMouseUp:function(t,e,n,i,r,a){this.constraints=null,this.hideVerticalLine(),this.hideHorizontalLine()},snap:function(t,e,n,i){if(!(e instanceof a.default.shape.basic.VertexResizeHandle))return n;var r=n.x===i.x,s=n.y===i.y;if(!r&&!s)return n;var o=n.clone(),l=this.getCorrectionFor(e,i);return r&&l.vertical.x!==Number.MAX_SAFE_INTEGER?(o.x=l.vertical.x,this.showVerticalLine(i,l.vertical)):this.hideVerticalLine(),s&&l.horizontal.y!==Number.MAX_SAFE_INTEGER?(o.y=l.horizontal.y,this.showHorizontalLine(i,l.horizontal)):this.hideHorizontalLine(),o},getCorrectionFor:function(t,e){var n=this;null===this.constraints&&(this.constraints=[],this.canvas.getLines().each((function(e,i){i.getVertices().each((function(e,r){t.index===e&&t.owner===i||n.constraints.push(r)}))})));for(var i,r,a=this.SNAP_THRESHOLD,s={x:Number.MAX_SAFE_INTEGER,y:Number.MAX_SAFE_INTEGER,diffy:Number.MAX_SAFE_INTEGER},o={x:Number.MAX_SAFE_INTEGER,y:Number.MAX_SAFE_INTEGER,diffx:Number.MAX_SAFE_INTEGER},l=0;l<this.constraints.length;l++){var c=this.constraints[l];i=Math.abs(e.x-c.x),r=Math.abs(e.y-c.y),i<a&&r<s.diffy&&(s={x:c.x,y:c.y,diffy:r}),r<a&&i<o.diffx&&(o={x:c.x,y:c.y,diffx:i})}return{vertical:s,horizontal:o}},showVerticalLine:function(t,e){null!=this.vline&&(this.vline.stop(),this.vline.remove());var n=this.canvas.getHeight(),i=.5+(0|e.x);this.canvas.paper.setStart(),this.canvas.paper.path("M "+i+" 0 l 0 "+n).attr({stroke:this.lineColor.rgba(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+i+" "+t.y+" L "+i+" "+e.y).attr({stroke:this.lineColor.rgba(),"stroke-width":1}),this.vline=this.canvas.paper.setFinish(),this.vline.toBack()},hideVerticalLine:function(){var t=this;null!=this.vline&&this.vline.animate({opacity:.1},this.FADEOUT_DURATION,(function(){null!==t.vline&&(t.vline.remove(),t.vline=null)}))},showHorizontalLine:function(t,e){null!=this.hline&&(this.hline.stop(),this.hline.remove());var n=this.canvas.getWidth(),i=.5+(0|e.y);this.canvas.paper.setStart(),this.canvas.paper.path("M 0 "+i+" l "+n+" 0").attr({stroke:this.lineColor.rgba(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+t.x+" "+i+" L "+e.x+" "+i).attr({stroke:this.lineColor.rgba(),"stroke-width":1}),this.hline=this.canvas.paper.setFinish(),this.hline.toBack()},hideHorizontalLine:function(){var t=this;null!==this.hline&&this.hline.animate({opacity:.1},this.FADEOUT_DURATION,(function(){null!==t.hline&&(t.hline.remove(),t.hline=null)}))}})},"./src/policy/canvas/WheelZoomPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i},s=n("./node_modules/shifty/dist/shifty.js");a.default.policy.canvas.WheelZoomPolicy=a.default.policy.canvas.ZoomPolicy.extend({NAME:"draw2d.policy.canvas.WheelZoomPolicy",init:function(){var t=this;this._super(),this.center=null,this.debouncedZoomedCallback=this._debounce((function(){var e=t.canvas;null!==e&&e.fireEvent("zoomed",{value:e.zoomFactor}),t.center=null}),200)},onInstall:function(t){this._super(t),t.setZoom(1),t.__wheelZoom=1},onUninstall:function(t){this._super(t),delete t.__wheelZoom},onMouseWheel:function(t,e,n,i,r,a){if(!1===i)return!0;t/=1024;var s=(1e4*Math.min(5,Math.max(.1,this.canvas.zoomFactor+t))|0)/1e4;if(null===this.center){var o=this.canvas.fromCanvasToDocumentCoordinate(e,n);this.center={x:e,y:n,clientX:o.x,clientY:o.y}}return this._zoom(s,this.center),this.debouncedZoomedCallback(),!1},setZoom:function(t,e){var n=this,i=this.canvas.getScrollTop(),r=this.canvas.getScrollLeft(),a=this.canvas.getScrollArea().width(),o=i+this.canvas.getScrollArea().height()/2*this.canvas.zoomFactor,l=r+a/2*this.canvas.zoomFactor;e?(new s.Tweenable).tween({from:{x:this.canvas.zoomFactor},to:{x:t},duration:300,easing:"easeOutSine",step:function(t){n._zoom(t.x,l,o)},finish:function(t){n.debouncedZoomedCallback()}}):(this._zoom(t,{x:l,y:o}),this.debouncedZoomedCallback())},_zoom:function(t,e){var n=this.canvas;if(t!==n.zoomFactor){if(n.zoomFactor=t,n.paper.setViewBox(0,0,n.initialWidth,n.initialHeight),n.html.find("svg").attr({width:n.initialWidth/t,height:n.initialHeight/t}),e.clientX){var i=n.fromCanvasToDocumentCoordinate(e.x,e.y);n.scrollTo(this.canvas.getScrollTop()-(e.clientY-i.y),n.getScrollLeft()-(e.clientX-i.x))}n.fireEvent("zoom",{value:n.zoomFactor})}},_debounce:function(t,e,n){var i=this,r=arguments,a=void 0;return function(){var s=i,o=r,l=n&&!a;clearTimeout(a),a=setTimeout((function(){a=null,n||t.apply(s,o)}),e),l&&t.apply(s,o)}}})},"./src/policy/canvas/ZoomPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i},s=n("./node_modules/shifty/dist/shifty.js");a.default.policy.canvas.ZoomPolicy=a.default.policy.canvas.CanvasPolicy.extend({NAME:"draw2d.policy.canvas.ZoomPolicy",init:function(){this._super()},onInstall:function(t){this._super(t),t.setZoom(1)},onUninstall:function(t){this._super(t)},setZoom:function(t,e){var n=this.canvas,i=function(t){n.zoomFactor=Math.min(Math.max(.01,t),10);var e=n.initialWidth*n.zoomFactor|0,i=n.initialHeight*n.zoomFactor|0;n.paper.setViewBox(0,0,e,i),n.fireEvent("zoom",{value:n.zoomFactor})};e?(new s.Tweenable).tween({from:{x:n.zoomFactor},to:{x:t},duration:300,easing:"easeOutSine",step:function(t){return i(t.x)},finish:function(t){return n.fireEvent("zoomed",{value:n.zoomFactor})}}):(i(t),n.fireEvent("zoomed",{value:n.zoomFactor}))}})},"./src/policy/connection/ClickConnectionCreatePolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.connection.ClickConnectionCreatePolicy=a.default.policy.connection.ConnectionCreatePolicy.extend({NAME:"draw2d.policy.connection.ClickConnectionCreatePolicy",init:function(t,e,n){this._super(t,e,n),this.port1=null,this.beeline=null,this.pulse=null,this.tempConnection=null,this.vertices=[]},onClick:function(t,e,n,i,r,s){var o=this,l=t;if(null!==l||null!==this.port1){if(null===l)return this.vertices.push(new a.default.geo.Point(e,n)),this.beeline.setStartPosition(e,n),this.tempConnection.setVertices(this.vertices),null!==this.pulse&&(this.pulse.remove(),this.pulse=null),void this.ripple(e,n,0);if(l instanceof a.default.Port)if(null!==this.port1){if(l.delegateTarget(this.port1)instanceof a.default.Port){var c=new a.default.command.CommandType(a.default.command.CommandType.CONNECT);c.source=this.port1,c.target=l;var u=null;null!==(u=this.port1 instanceof a.default.InputPort?this.port1.createCommand(c):l.createCommand(c))&&(this.vertices.push(l.getPosition()),u.setConnection(this.createConnection()),t.getCanvas().getCommandStack().execute(u),this.beeline.hide(),this.tempConnection.hide(),null!==this.pulse&&(this.pulse.remove(),this.pulse=null),this.beeline=null,this.port1=null,this.vertices=[])}}else{var h=l.getCanvas();this.port1=l,this.vertices.push(l.getAbsolutePosition()),this.beeline=new a.default.shape.basic.Line({start:this.port1.getAbsolutePosition(),end:this.port1.getAbsolutePosition(),dasharray:"- ",color:"#2C70FF"}),this.beeline.hide=function(){o.beeline.setCanvas(null)},this.beeline.show=function(t){o.beeline.setCanvas(t),o.beeline.shape.toFront()},this.beeline.show(h),this.tempConnection=new a.default.shape.basic.PolyLine({start:this.port1.getAbsolutePosition(),end:this.port1.getAbsolutePosition(),stroke:2,color:"#2C70FF"}),this.tempConnection.hide=function(){o.tempConnection.setCanvas(null)},this.tempConnection.show=function(t){o.tempConnection.setCanvas(t),o.tempConnection.shape.toFront()},this.tempConnection.show(h),this.tempConnection.setVertices([this.port1.getAbsolutePosition(),this.port1.getAbsolutePosition()]);var d=function(){o.tempConnection.shape.animate({"stroke-width":2},800,f)},f=function(){o.tempConnection.shape.animate({"stroke-width":1},800,d)};d();var p=l.getAbsolutePosition();this.pulse=this.ripple(p.x,p.y,1)}}},onMouseMove:function(t,e,n,i,r,a){null!==this.beeline&&this.beeline.setEndPosition(e,n)},onKeyDown:function(t,e,n,i,r){27===e&&null!==this.beeline&&(this.beeline.hide(),this.tempConnection.hide(),this.beeline=null,this.port1=null,this.vertices=[],null!=this.pulse&&(this.pulse.remove(),this.pulse=null))},createConnection:function(){var t=this._super();return 2===this.vertices.length?t.setRouter(new a.default.layout.connection.DirectRouter):(t.setRouter(new a.default.layout.connection.VertexRouter),t.setVertices(this.vertices)),t.setRadius(10),t}})},"./src/policy/connection/ComposedConnectionCreatePolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.connection.ComposedConnectionCreatePolicy=a.default.policy.connection.ConnectionCreatePolicy.extend({NAME:"draw2d.policy.connection.ComposedConnectionCreatePolicy",init:function(t){this.policies=t,this._super()},onMouseDown:function(){var t=arguments;this.policies.forEach((function(e){e.onMouseDown.apply(e,t)}))},onMouseDrag:function(){var t=arguments;this.policies.forEach((function(e){e.onMouseDrag.apply(e,t)}))},onMouseUp:function(){var t=arguments;this.policies.forEach((function(e){e.onMouseUp.apply(e,t)}))},onClick:function(){var t=arguments;this.policies.forEach((function(e){e.onClick.apply(e,t)}))},onMouseMove:function(){var t=arguments;this.policies.forEach((function(e){e.onMouseMove.apply(e,t)}))},onKeyUp:function(t,e,n,i,r){var a=arguments;this.policies.forEach((function(t){t.onKeyUp.apply(t,a)}))},onKeyDown:function(t,e,n,i,r){var a=arguments;this.policies.forEach((function(t){t.onKeyDown.apply(t,a)}))},onInstall:function(t){var e=arguments;this.policies.forEach((function(t){t.onInstall.apply(t,e)}))},onUninstall:function(t){var e=arguments;this.policies.forEach((function(t){t.onUninstall.apply(t,e)}))}})},"./src/policy/connection/ConnectionCreatePolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.connection.ConnectionCreatePolicy=a.default.policy.canvas.KeyboardPolicy.extend({NAME:"draw2d.policy.connection.ConnectionCreatePolicy",init:function(t,e,n){this._super(t,e,n)},createConnection:function(){return new a.default.Connection({router:new a.default.layout.connection.DirectRouter})},ripple:function(t,e,n){switch(n){case 0:var i=this.canvas.paper.circle(t,e,3,3).attr({fill:null,stroke:"#d0d0ff"}),r=Raphael.animation({transform:"s6",opacity:0,"stroke-width":3},500,"linear",(function(){i.remove()}));return i.animate(r),this.canvas.paper.set();case 1:var a=this.canvas.paper.circle(t,e,3,3).attr({fill:null,stroke:"#3f72bf"}),s=this.canvas.paper.circle(t,e,3,3).attr({fill:null,stroke:"#ff0000"}),o=Raphael.animation({transform:"s6",opacity:0,"stroke-width":1},1200,"linear").repeat(1/0);a.animate(o);var l=Raphael.animation({transform:"s12",opacity:0,"stroke-width":4},500,"linear",(function(){s.remove()}));return s.animate(l),a}}})},"./src/policy/connection/DragConnectionCreatePolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.connection.DragConnectionCreatePolicy=a.default.policy.connection.ConnectionCreatePolicy.extend({NAME:"draw2d.policy.connection.DragConnectionCreatePolicy",init:function(t,e,n){this._super(t,e,n),this.mouseDraggingElement=null,this.currentDropTarget=null,this.currentTarget=null},onMouseDown:function(t,e,n,i,r,s){var o=t.getBestFigure(e,n);if(null!==o&&o instanceof a.default.Port&&(!0===o.isInDragDrop&&(o.onDragEnd(e,n,i,r,s),o.isInDragDrop=!1),o.isDraggable())){var l=o.onDragStart(e-o.getAbsoluteX(),n-o.getAbsoluteY(),i,r,s);l&&o.fireEvent("dragstart",{x:e-o.getAbsoluteX(),y:n-o.getAbsoluteY(),shiftKey:i,ctrlKey:r,event:s}),this.mouseDraggingElement=!1===l?null:o,this.mouseDownElement=o}},onMouseDrag:function(t,e,n,i,r,s,o,l){try{if(null!==this.mouseDraggingElement){var c=this.mouseDraggingElement,u=this.currentTarget;c.isInDragDrop=!0,c.onDrag(e,n,i,r,s,o,l),(h=t.getBestFigure(c.getAbsoluteX(),c.getAbsoluteY(),c))!==u&&(null!==u&&(u.onDragLeave(c),u.fireEvent("dragLeave",{draggingElement:c}),c.editPolicy.each((function(e,n){n instanceof a.default.policy.port.PortFeedbackPolicy&&n.onHoverLeave(t,c,u)}))),null!==h?(this.currentTarget=u=h.delegateTarget(c),null!==u&&(u.onDragEnter(c),u.fireEvent("dragEnter",{draggingElement:c}),c.editPolicy.each((function(e,n){n instanceof a.default.policy.port.PortFeedbackPolicy&&n.onHoverEnter(t,c,u)})))):this.currentTarget=null);var h,d=t.fromDocumentToCanvasCoordinate(t.mouseDownX+e/t.zoomFactor,t.mouseDownY+n/t.zoomFactor);(h=t.getBestFigure(d.x,d.y,this.mouseDraggingElement))!==this.currentDropTarget&&(null!==this.currentDropTarget&&(this.currentDropTarget.onDragLeave(this.mouseDraggingElement),this.currentDropTarget.fireEvent("dragLeave",{draggingElement:this.mouseDraggingElement}),this.currentDropTarget=null),null!==h&&(this.currentDropTarget=h.delegateTarget(this.mouseDraggingElement),null!==this.currentDropTarget&&(this.currentDropTarget.onDragEnter(this.mouseDraggingElement),this.currentDropTarget.fireEvent("dragEnter",{draggingElement:this.mouseDraggingElement}))))}}catch(t){console.log(t)}},onMouseUp:function(t,e,n,i,r,s){if(null!==this.mouseDraggingElement){var o=this.mouseDraggingElement,l=this.currentTarget;if(t.getCommandStack().startTransaction(),o.onDragEnd(e,n,i,r,s),l&&o.editPolicy.each((function(e,n){n instanceof a.default.policy.port.PortFeedbackPolicy&&n.onHoverLeave(t,o,l)})),o.editPolicy.each((function(l,c){c instanceof a.default.policy.figure.DragDropEditPolicy&&c.onDragEnd(t,o,e,n,i,r,s)})),this.currentTarget=null,o.isInDragDrop=!1,o.fireEvent("dragend",{x:e,y:n,shiftKey:i,ctrlKey:r,event:s}),null!==this.currentDropTarget&&(this.mouseDraggingElement.onDrop(this.currentDropTarget,e,n,i,r,s),this.currentDropTarget.onDragLeave(this.mouseDraggingElement),this.currentDropTarget.fireEvent("dragLeave",{draggingElement:this.mouseDraggingElement}),this.currentDropTarget instanceof a.default.Port)){var c=new a.default.command.CommandType(a.default.command.CommandType.CONNECT);c.source=this.currentDropTarget,c.target=this.mouseDraggingElement;var u=this.mouseDraggingElement.createCommand(c);null!==u&&(u.setConnection(this.createConnection()),t.getCommandStack().execute(u),this.currentDropTarget.onCatch(this.mouseDraggingElement,e,n,i,r,s))}t.getCommandStack().commitTransaction(),this.currentDropTarget=null,this.mouseDraggingElement=null}},createConnection:function(){var t=this._super();return t.setRouter(new a.default.layout.connection.DirectRouter),t}})},"./src/policy/connection/OrthogonalConnectionCreatePolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.connection.OrthogonalConnectionCreatePolicy=a.default.policy.connection.ConnectionCreatePolicy.extend({NAME:"draw2d.policy.connection.ClickConnectionCreatePolicy",init:function(t,e,n){this._super(t,e,n),this.port1=null,this.beeline=null,this.pulse=null,this.tempConnection=null,this.vertices=new a.default.util.ArrayList},onClick:function(t,e,n,i,r,s){var o=a.default.geo.Rectangle.DIRECTION_UP,l=a.default.geo.Rectangle.DIRECTION_RIGHT,c=a.default.geo.Rectangle.DIRECTION_DOWN,u=a.default.geo.Rectangle.DIRECTION_LEFT,h=this,d=t;if(null!==d||null!==this.port1){if(null===d){var f=this.port1.getCanvas(),p=this.beeline.getEndPosition();return this.vertices.add(p),this.beeline.setStartPosition(this.beeline.getEndPosition()),this.tempConnection.setVertices(this.vertices),null!==this.pulse&&(this.pulse.remove(),this.pulse=null),void this.ripple(p.x,p.y,0)}if(d instanceof a.default.Port)if(null===this.port1){f=d.getCanvas();this.port1=d,this.vertices.add(d.getAbsolutePosition()),this.beeline=new a.default.shape.basic.Line({start:this.port1.getAbsolutePosition(),end:this.port1.getAbsolutePosition(),dasharray:"- ",color:"#2C70FF"}),this.beeline.hide=function(){h.beeline.setCanvas(null)},this.beeline.show=function(t){h.beeline.setCanvas(t),h.beeline.shape.toFront()},this.beeline.show(f),this.tempConnection=new a.default.shape.basic.PolyLine({start:this.port1.getAbsolutePosition(),end:this.port1.getAbsolutePosition(),stroke:2,color:"#2C70FF"}),this.tempConnection.hide=function(){h.tempConnection.setCanvas(null)},this.tempConnection.show=function(t){h.tempConnection.setCanvas(t),h.tempConnection.shape.toFront()},this.tempConnection.show(f),this.tempConnection.setVertices([this.port1.getAbsolutePosition(),this.port1.getAbsolutePosition()]);var g=function(){h.tempConnection.shape.animate({"stroke-width":2},800,m)},m=function(){h.tempConnection.shape.animate({"stroke-width":1},800,g)};g(),f.paper.setStart(),null!==this.pulse&&(this.pulse.remove(),this.pulse=null);var y=d.getAbsolutePosition();this.ripple(y.x,y.y,1),this.pulse=f.paper.setFinish()}else{if(!(d.delegateTarget(this.port1)instanceof a.default.Port))return;var v=new a.default.command.CommandType(a.default.command.CommandType.CONNECT);v.source=this.port1,v.target=d;var b=null;if(null!==(b=this.port1 instanceof a.default.InputPort?this.port1.createCommand(v):d.createCommand(v))){var x=this.createConnection();if(b.setConnection(x),d.getCanvas().getCommandStack().execute(b),this.beeline.hide(),this.tempConnection.hide(),null!==this.pulse&&(this.pulse.remove(),this.pulse=null),this.beeline=null,this.port1=null,this.vertices.getSize()<=2)return;var w=b.getConnection().getRouter().MINDIST,S=this.vertices.get(this.vertices.getSize()-2),C=this.vertices.last(),_=d.getAbsolutePosition(),P=o;switch(P=C.x===S.x?C.y<S.y?o:c:C.x<S.x?u:l,d.getConnectionDirection(this.port1)){case o:switch(P){case o:C.y<_.y-w?(this.vertices.add(new a.default.geo.Point(_.x,C.y)),this.vertices.add(_)):(C.y=_.y-w,this.vertices.add(new a.default.geo.Point(_.x,C.y)),this.vertices.add(_));break;case l:C.y>_.y-w?(S.y=_.y-w,C.x=_.x,C.y=S.y,this.vertices.add(_)):(C.x=_.x,this.vertices.add(_));break;case c:C.y<_.y-w?(S.x=_.x,C.setPosition(_)):(C.y=_.y-w,this.vertices.add(new a.default.geo.Point(_.x,C.y)),this.vertices.add(_));break;case u:C.y>_.y-w?(S.y=_.y-w,C.x=_.x,C.y=S.y,this.vertices.add(_)):(C.x=_.x,this.vertices.add(_))}break;case l:switch(P){case o:C.x>_.x+w?(C.y=_.y,this.vertices.add(_)):(this.vertices.add(new a.default.geo.Point(_.x+w,C.y)),this.vertices.add(new a.default.geo.Point(_.x+w,_.y)),this.vertices.add(_));break;case l:C.x>_.x+w?(this.vertices.add(new a.default.geo.Point(C.x,_.y)),this.vertices.add(_)):(C.x=_.x+w,this.vertices.add(new a.default.geo.Point(C.x,_.y)),this.vertices.add(_));break;case c:C.x>_.x+w?(C.y=_.y,this.vertices.add(_)):(this.vertices.add(new a.default.geo.Point(_.x+w,C.y)),this.vertices.add(new a.default.geo.Point(_.x+w,_.y)),this.vertices.add(_));break;case u:C.x>_.x+w?(this.vertices.add(new a.default.geo.Point(C.x,_.y)),this.vertices.add(_)):(C.x=_.x+w,this.vertices.add(new a.default.geo.Point(C.x,_.y)),this.vertices.add(_))}break;case c:switch(P){case o:C.y<_.y+w?(C.y=_.y+w,this.vertices.add(new a.default.geo.Point(_.x,C.y)),this.vertices.add(_)):(C.x=_.x,C.y=_.y,S.x=_.x);break;case l:C.y<_.y+w?(this.vertices.add(new a.default.geo.Point(C.x,_.y+w)),this.vertices.add(new a.default.geo.Point(_.x,_.y+w)),this.vertices.add(_)):(C.x=_.x,this.vertices.add(_));break;case c:C.y<_.y+w?(C.y=_.y+w,this.vertices.add(new a.default.geo.Point(_.x,C.y)),this.vertices.add(_)):(this.vertices.add(new a.default.geo.Point(_.x,C.y)),this.vertices.add(_));break;case u:C.y<_.y-w?(S.y=_.y-w,C.x=_.x,C.y=S.y,this.vertices.add(_)):(C.x=_.x,this.vertices.add(_))}break;case u:switch(P){case o:C.x>=_.x-w?(this.vertices.add(new a.default.geo.Point(_.x-w,C.y)),this.vertices.add(new a.default.geo.Point(_.x-w,_.y)),this.vertices.add(_)):C.y>_.y&&C.x<_.x-w?(C.y=_.y,this.vertices.add(_)):(this.vertices.add(new a.default.geo.Point(_.x-w,C.y)),this.vertices.add(new a.default.geo.Point(_.x-w,_.y)),this.vertices.add(_));break;case l:if(C.y<_.y&&C.x>_.x-w){var E=_.y-(_.y-C.y)/2;this.vertices.add(new a.default.geo.Point(C.x,E)),this.vertices.add(new a.default.geo.Point(_.x-w,E)),this.vertices.add(new a.default.geo.Point(_.x-w,_.y)),this.vertices.add(_)}else if(C.y>_.y&&C.x>_.x-w){E=_.y+(C.y-_.y)/2;this.vertices.add(new a.default.geo.Point(C.x,E)),this.vertices.add(new a.default.geo.Point(_.x-w,E)),this.vertices.add(new a.default.geo.Point(_.x-w,_.y)),this.vertices.add(_)}else this.vertices.add(new a.default.geo.Point(C.x,_.y)),this.vertices.add(_);break;case c:C.x>=_.x-w?(this.vertices.add(new a.default.geo.Point(_.x-w,C.y)),this.vertices.add(new a.default.geo.Point(_.x-w,_.y)),this.vertices.add(_)):(C.y=_.y,this.vertices.add(_));break;case u:C.x<_.x-w?(this.vertices.add(new a.default.geo.Point(C.x,_.y)),this.vertices.add(_)):(C.x=_.x-w,this.vertices.add(new a.default.geo.Point(C.x,_.y)),this.vertices.add(_))}}this.vertices.getSize()>3&&(x._routingMetaData.routedByUserInteraction=!0,x.setVertices(this.vertices)),this.vertices.clear()}}}},onMouseMove:function(t,e,n,i,r,a){null!==this.beeline&&this.beeline.setEndPosition(this.orthogonal(this.vertices.last(),{x:e,y:n}))},onKeyDown:function(t,e,n,i,r){27===e&&null!==this.beeline&&(this.beeline.hide(),this.tempConnection.hide(),this.beeline=null,this.port1=null,this.vertices.clear(),null!=this.pulse&&(this.pulse.remove(),this.pulse=null))},orthogonal:function(t,e){var n=Math.abs(t.x-e.x)+10,i=a.default.geo.Line.distance(t.x-n,t.y,t.x+n,t.y,e.x,e.y),r=Math.abs(t.y-e.y)+10;return a.default.geo.Line.distance(t.x,t.y-r,t.x,t.y+r,e.x,e.y)>i?{x:e.x,y:t.y}:{x:t.x,y:e.y}},createConnection:function(){var t=this._super();return t.attr({radius:7,stroke:3}),t.setRouter(new a.default.layout.connection.InteractiveManhattanConnectionRouter),t}})},"./src/policy/custom/CustomAntSelectionFeedbackPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.figure.CustomAntSelectionFeedbackPolicy=a.default.policy.figure.SelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.CustomAntSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){if(e.selectionHandles.isEmpty()){var i=(a.default.Configuration.custom||{}).AntSelection,r=new a.default.shape.basic.Rectangle(i.boxAttr);if(r.hide=function(){r.setCanvas(null)},r.show=function(t){r.setCanvas(t),r.shape.toFront()},r.show(t),e.selectionHandles.add(r),null!==e.getParent()){var s=new a.default.shape.basic.Line(i.lineAttr);s.show=function(t){return s.setCanvas(t)},s.hide=function(){return s.setCanvas(null)},s.show(t),e.selectionHandles.add(s),this._updateBeeLine(s,e)}}this.moved(t,e)},moved:function(t,e){if(!e.selectionHandles.isEmpty()){var n=e.selectionHandles.first();n.setPosition(e.getAbsolutePosition().translate(-4,-4)),n.setDimension(e.getWidth()+8,e.getHeight()+8),n.setRotationAngle(e.getRotationAngle()),e.selectionHandles.getSize()>1&&this._updateBeeLine(e.selectionHandles.get(1),e)}},_updateBeeLine:function(t,e){var n=e.getParent();if(null!==n)if(n instanceof a.default.shape.basic.Line){var i=e.getBoundingBox().getCenter(),r=n.pointProjection(i);if(null===r){var s=t.getStartPosition(),o=t.getEndPosition();r=i.distance(s)<i.distance(s)?s:o}e.getBoundingBox().intersectionWithLine(i,r).getSize()>0?t.setStartPosition(e.getBoundingBox().intersectionWithLine(i,r).get(0)).setEndPosition(r):t.setStartPosition(e.getBoundingBox().getCenter()).setEndPosition(r)}else{var l=e.getBoundingBox(),c=n.getBoundingBox(),u=l.getCenter(),h=c.getCenter();l.intersects(c)||l.hitTest(h)||c.hitTest(u)?t.setStartPosition(u).setEndPosition(h):(l.scale(3,3),c.scale(3,3),t.setStartPosition(l.intersectionWithLine(u,h).get(0)).setEndPosition(c.intersectionWithLine(u,h).get(0)))}}})},"./src/policy/custom/CustomHorizontalResizeSelectionFeedbackPolicy.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/policy/custom/commonResizeHandle.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.policy.figure.CustomHorizontalResizeSelectionFeedbackPolicy=r.default.policy.figure.SelectionFeedbackPolicy.extend(i({NAME:"draw2d.policy.figure.CustomHorizontalResizeSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){if(e.selectionHandles.isEmpty()){var i=(r.default.Configuration.custom||{}).ResizeHandle;if(!e.getKeepAspectRatio()&&e.isResizeable()){var a=this.createResizeHandle(e,2,i.rh_2),s=this.createResizeHandle(e,6,i.rh_6),o=this.createResizeHandle(e,4),l=this.createResizeHandle(e,8);e.selectionHandles.add(a,o,s,l),a.show(t),s.show(t),o.show(t),l.show(t)}}this.moved(t,e)},moved:function(t,e){if(!e.selectionHandles.isEmpty()){var n=e.getHeight(),i=e.getWidth(),r=e.getX(),a=e.getY();if(!e.getKeepAspectRatio()){var s=e.selectionHandles.find((function(t){return 2===t.type})),o=e.selectionHandles.find((function(t){return 6===t.type})),l=e.selectionHandles.find((function(t){return 4===t.type})),c=e.selectionHandles.find((function(t){return 8===t.type}));s.setPosition(r+i/2-s.getWidth()/2,a-s.getHeight()),o.setPosition(r+i/2-o.getWidth()/2,a+n),l.setPosition(r+i,a+n/2-l.getHeight()/2),c.setPosition(r-c.getWidth(),a+n/2-c.getHeight()/2)}}}},a.default))},"./src/policy/custom/CustomLineSelectionFeedbackPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.line.CustomLineSelectionFeedbackPolicy=a.default.policy.line.LineSelectionFeedbackPolicy.extend({NAME:"draw2d.policy.line.CustomLineSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){var i=e.SELECT_COLOR||new a.default.util.Color("#1377EB");e.setColor(i),e.setStroke(3);var r=e.targetDecorator.setBackgroundColor(i);e.setTargetDecorator(r);var s=e.getSource().getParent(),o=(s||{}).nodeType,l=(a.default.Configuration.custom||{}).LineSelection,c=o&&(l.sourceNodeTypes||[]).includes(o);if(!t.nonShowPort){if(e.selectionHandles.isEmpty()){var u=new a.default.shape.basic.LineEndResizeHandle(e);u.on("dragend",(function(t,e){setTimeout((function(){var e=t.getRelatedPort().parent;t.canvas.verifyAfterDragEnd&&t.canvas.verifyAfterDragEnd({source:s,target:e}).catch((function(){t.canvas.getCommandStack().undo()}))}),100)})),e.selectionHandles.add(u),e.selectionHandles.each((function(n,i){i.setDraggable(e.isResizeable()),i.show(t)}))}this.moved(t,e)}c?(e.data={},e.lineIconRender&&e.lineIconRender(!0)):e.lineIconRender&&e.lineIconRender(!0)},onUnselect:function(t,e){var n=e.DEFAULT_COLOR||new a.default.util.Color("#8894A8");e.setColor(n);var i=e.targetDecorator.setBackgroundColor(n);e.setTargetDecorator(i),e.setStroke(1);var r=(e.getSource().getParent()||{}).nodeType,s=(a.default.Configuration.custom||{}).LineSelection;r&&(s.sourceNodeTypes||[]).includes(r);e.lineIconRender&&e.lineIconRender(!1),e.selectionHandles.each((function(t,e){e.hide()})),e.selectionHandles=new a.default.util.ArrayList}})},"./src/policy/custom/CustomPanningSelectionPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.canvas.CustomPanningSelectionPolicy=a.default.policy.canvas.SingleSelectionPolicy.extend({NAME:"draw2d.policy.canvas.CustomPanningSelectionPolicy",init:function(){this._super()},onMouseDrag:function(t,e,n,i,r,a,s,o){if(this._super(t,e,n,i,r,a,s,o),null===this.mouseDraggingElement&&null===this.mouseDownElement){var l=t.fromDocumentToCanvasCoordinate(t.mouseDownX+e/t.zoomFactor,t.mouseDownY+n/t.zoomFactor);if(null===t.getBestFigure(l.x,l.y)){var c=t.customScrollArea||t.getScrollArea();c.scrollTop(c.scrollTop()-r),c.scrollLeft(c.scrollLeft()-i)}}}})},"./src/policy/custom/CustomRectangleSelectionFeedbackPolicy.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/policy/custom/commonResizeHandle.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.policy.figure.CustomRectangleSelectionFeedbackPolicy=r.default.policy.figure.SelectionFeedbackPolicy.extend(i({NAME:"draw2d.policy.figure.CustomRectangleSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){if(e.selectionHandles.isEmpty()){var i=r.default.Configuration.custom||{},a=i.RectangleSelection,s=i.ResizeHandle,o=new r.default.shape.basic.Rectangle(a.boxAttr);o.hide=function(){o.setCanvas(null)},o.show=function(t){o.setCanvas(t),o.toFront(e)};var l=this.createResizeHandle(e,1,s.rh_1),c=this.createResizeHandle(e,3,s.rh_3),u=this.createResizeHandle(e,5,s.rh_5),h=this.createResizeHandle(e,7,s.rh_7);if(e.selectionHandles.add(l,c,u,h),l.show(t),c.show(t),u.show(t),h.show(t),!1===e.isResizeable()){var d={bgColor:null,draggable:!1};l.attr(d),c.attr(d),u.attr(d),h.attr(d),l.setDraggable(!1),c.setDraggable(!1),u.setDraggable(!1),h.setDraggable(!1)}e.selectionHandles.add(o),o.show(t)}this.moved(t,e)},moved:function(t,e){if(!e.selectionHandles.isEmpty()){var n=r.default.Configuration.custom.RectangleSelection.margin*t.getZoom(),i=e.getHeight(),a=e.getWidth(),s=e.getAbsoluteX(),o=e.getAbsoluteY(),l=e.selectionHandles.find((function(t){return 1===t.type})),c=e.selectionHandles.find((function(t){return 3===t.type})),u=e.selectionHandles.find((function(t){return 5===t.type})),h=e.selectionHandles.find((function(t){return 7===t.type}));l.setPosition(s-l.getWidth(),o-l.getHeight()),c.setPosition(s+a,o-c.getHeight()),u.setPosition(s+a,o+i),h.setPosition(s-h.getWidth(),o+i);var d=e.selectionHandles.last();d.attr({x:s-n,y:o-n,width:a+2*n,height:i+2*n,stroke:2}),d.setRotationAngle(e.getRotationAngle())}}},a.default))},"./src/policy/custom/CustomVerticalResizeSelectionFeedbackPolicy.js":(t,e,n)=>{"use strict";var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r=s(n("./src/packages.js")),a=s(n("./src/policy/custom/commonResizeHandle.js"));function s(t){return t&&t.__esModule?t:{default:t}}r.default.policy.figure.CustomVerticalResizeSelectionFeedbackPolicy=r.default.policy.figure.SelectionFeedbackPolicy.extend(i({NAME:"draw2d.policy.figure.CustomVerticalResizeSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){if(e.selectionHandles.isEmpty()){var i=(r.default.Configuration.custom||{}).ResizeHandle;if(!e.getKeepAspectRatio()&&e.isResizeable()){var a=this.createResizeHandle(e,2),s=this.createResizeHandle(e,6),o=this.createResizeHandle(e,4,i.rh_4),l=this.createResizeHandle(e,8,i.rh_8);e.selectionHandles.add(a,o,s,l),a.show(t),s.show(t),o.show(t),l.show(t)}}this.moved(t,e)},moved:function(t,e){if(!e.selectionHandles.isEmpty()){var n=e.getHeight(),i=e.getWidth(),r=e.getX(),a=e.getY();if(!e.getKeepAspectRatio()){var s=e.selectionHandles.find((function(t){return 2===t.type})),o=e.selectionHandles.find((function(t){return 6===t.type})),l=e.selectionHandles.find((function(t){return 4===t.type})),c=e.selectionHandles.find((function(t){return 8===t.type}));s.setPosition(r+i/2-s.getWidth()/2,a-s.getHeight()),o.setPosition(r+i/2-o.getWidth()/2,a+n),l.setPosition(r+i,a+n/2-l.getHeight()/2),c.setPosition(r-c.getWidth(),a+n/2-c.getHeight()/2)}}}},a.default))},"./src/policy/custom/commonResizeHandle.js":(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i,r=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},a=n("./src/packages.js"),s=(i=a)&&i.__esModule?i:{default:i};e.default={createResizeHandle:function(t,e,n){var i=new s.default.ResizeHandle(r({owner:t,resizeable:!1,bgColor:"#4CCDFE",color:"#4CCDFE",stroke:2,radius:2,alpha:1,type:e,width:8,height:8},n||{}));return i.installEditPolicy(new s.default.policy.figure.AntSelectionFeedbackPolicy),i}},t.exports=e.default},"./src/policy/figure/AntSelectionFeedbackPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.figure.AntSelectionFeedbackPolicy=a.default.policy.figure.SelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.AntSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){if(e.selectionHandles.isEmpty()){var i=new a.default.shape.basic.Rectangle({bgColor:null,dasharray:"- ",color:"#2C70FF"});if(i.hide=function(){i.setCanvas(null)},i.show=function(t){i.setCanvas(t),i.shape.toFront()},i.show(t),e.selectionHandles.add(i),null!==e.getParent()){var r=new a.default.shape.basic.Line({opacity:.5,bgColor:null,dasharray:"- ",color:"#2C70FF"});r.show=function(t){return r.setCanvas(t)},r.hide=function(){return r.setCanvas(null)},r.show(t),e.selectionHandles.add(r),this._updateBeeLine(r,e)}}this.moved(t,e)},moved:function(t,e){if(!e.selectionHandles.isEmpty()){var n=e.selectionHandles.first();n.setPosition(e.getAbsolutePosition().translate(-2,-2)),n.setDimension(e.getWidth()+4,e.getHeight()+4),n.setRotationAngle(e.getRotationAngle()),e.selectionHandles.getSize()>1&&this._updateBeeLine(e.selectionHandles.get(1),e)}},_updateBeeLine:function(t,e){var n=e.getParent();if(null!==n)if(n instanceof a.default.shape.basic.Line){var i=e.getBoundingBox().getCenter(),r=n.pointProjection(i);if(null===r){var s=t.getStartPosition(),o=t.getEndPosition();r=i.distance(s)<i.distance(s)?s:o}e.getBoundingBox().intersectionWithLine(i,r).getSize()>0?t.setStartPosition(e.getBoundingBox().intersectionWithLine(i,r).get(0)).setEndPosition(r):t.setStartPosition(e.getBoundingBox().getCenter()).setEndPosition(r)}else{var l=e.getBoundingBox(),c=n.getBoundingBox(),u=l.getCenter(),h=c.getCenter();l.intersects(c)||l.hitTest(h)||c.hitTest(u)?t.setStartPosition(u).setEndPosition(h):(l.scale(3,3),c.scale(3,3),t.setStartPosition(l.intersectionWithLine(u,h).get(0)).setEndPosition(c.intersectionWithLine(u,h).get(0)))}}})},"./src/policy/figure/BigRectangleSelectionFeedbackPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.figure.BigRectangleSelectionFeedbackPolicy=a.default.policy.figure.RectangleSelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.BigRectangleSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},createResizeHandle:function(t,e){return new a.default.ResizeHandle({owner:t,type:e,width:15,height:15})}})},"./src/policy/figure/BusSelectionFeedbackPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.figure.BusSelectionFeedbackPolicy=a.default.policy.figure.SelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.BusSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){if(e.selectionHandles.isEmpty()){var i=a.default.Configuration.factory.createResizeHandle(e,2),r=a.default.Configuration.factory.createResizeHandle(e,4),s=a.default.Configuration.factory.createResizeHandle(e,6),o=a.default.Configuration.factory.createResizeHandle(e,8);e.selectionHandles.add(i,r,s,o),i.setDraggable(e.isResizeable()),r.setDraggable(e.isResizeable()),s.setDraggable(e.isResizeable()),o.setDraggable(e.isResizeable()),i.show(t),r.show(t),s.show(t),o.show(t)}this.moved(t,e)},moved:function(t,e){if(!e.selectionHandles.isEmpty()){var n=e.selectionHandles.find((function(t){return 2===t.type})),i=e.selectionHandles.find((function(t){return 4===t.type})),r=e.selectionHandles.find((function(t){return 6===t.type})),a=e.selectionHandles.find((function(t){return 8===t.type})),s=e.getHeight(),o=e.getWidth(),l=e.getX(),c=e.getY();n.setPosition(l+o/2-n.getWidth()/2,c-n.getHeight()),i.setPosition(l+o,c+s/2-i.getHeight()/2),r.setPosition(l+o/2-r.getWidth()/2,c+s),a.setPosition(l-a.getWidth(),c+s/2-a.getHeight()/2)}}})},"./src/policy/figure/DragDropEditPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.figure.DragDropEditPolicy=a.default.policy.figure.FigureEditPolicy.extend({NAME:"draw2d.policy.figure.DragDropEditPolicy",init:function(t,e,n){var i=this;this._super(t,e,n),this.moveCallback=function(t,e){i.moved(t.getCanvas(),t)}},onInstall:function(t){this._super(t),t.on("move",this.moveCallback)},onUninstall:function(t){this._super(t),t.off(this.moveCallback)},onDragStart:function(t,e,n,i,r,a,s){return e.shape.attr({cursor:"move"}),!0===e.isMoving&&e.setAlpha(e.originalAlpha),e.originalAlpha=e.getAlpha(),e.isMoving=!1,!0},onDrag:function(t,e){!1===e.isMoving&&(e.isMoving=!0,e.setAlpha(.4*e.originalAlpha))},onDragEnd:function(t,e,n,i,r,a,s){e.shape.attr({cursor:"default"}),e.isMoving=!1,e.setAlpha(e.originalAlpha)},adjustPosition:function(t,e,n){return e instanceof a.default.geo.Point?e:new a.default.geo.Point(e,n)},adjustDimension:function(t,e,n){return new a.default.geo.Rectangle(0,0,e,n)},moved:function(t,e){}})},"./src/policy/figure/FigureEditPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.figure.FigureEditPolicy=a.default.policy.EditPolicy.extend({NAME:"draw2d.policy.figure.FigureEditPolicy",init:function(t,e,n){this._super(t,e,n)},onRightMouseDown:function(t,e,n,i,r,a){}})},"./src/policy/figure/GlowSelectionFeedbackPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.figure.GlowSelectionFeedbackPolicy=a.default.policy.figure.SelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.GlowSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){e.setGlow(!0),this.moved(t,e)},onUnselect:function(t,e){this._super(t,e),e.setGlow(!1)}})},"./src/policy/figure/HBusSelectionFeedbackPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.figure.HBusSelectionFeedbackPolicy=a.default.policy.figure.BusSelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.HBusSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},moved:function(t,e){if(!e.selectionHandles.isEmpty()){var n=e.selectionHandles.find((function(t){return 4===t.type})),i=e.selectionHandles.find((function(t){return 8===t.type}));n.setDimension(n.getWidth(),e.getHeight()),i.setDimension(n.getWidth(),e.getHeight()),this._super(t,e)}}})},"./src/policy/figure/HorizontalEditPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.figure.HorizontalEditPolicy=a.default.policy.figure.DragDropEditPolicy.extend({NAME:"draw2d.policy.figure.HorizontalEditPolicy",init:function(t,e,n){this._super(t,e,n)},adjustPosition:function(t,e,n){return new a.default.geo.Point(e,t.getY())}})},"./src/policy/figure/RectangleSelectionFeedbackPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.figure.RectangleSelectionFeedbackPolicy=a.default.policy.figure.SelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.RectangleSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){if(e.selectionHandles.isEmpty()){var i=new a.default.shape.basic.Rectangle({bgColor:null,dashArray:"- ",color:"#2C70FF",stroke:.5});i.hide=function(){i.setCanvas(null)},i.show=function(t){i.setCanvas(t),i.toFront(e)};var r=this.createResizeHandle(e,1),s=this.createResizeHandle(e,3),o=this.createResizeHandle(e,5),l=this.createResizeHandle(e,7);if(e.selectionHandles.add(r,s,o,l),r.show(t),s.show(t),o.show(t),l.show(t),!1===e.isResizeable()){var c={bgColor:null,draggable:!1};r.attr(c),s.attr(c),o.attr(c),l.attr(c),r.setDraggable(!1),s.setDraggable(!1),o.setDraggable(!1),l.setDraggable(!1)}if(!e.getKeepAspectRatio()&&e.isResizeable()){var u=this.createResizeHandle(e,2),h=this.createResizeHandle(e,4),d=this.createResizeHandle(e,6),f=this.createResizeHandle(e,8);e.selectionHandles.add(u,h,d,f),u.show(t),h.show(t),d.show(t),f.show(t)}e.selectionHandles.add(i),i.show(t)}this.moved(t,e)},moved:function(t,e){if(!e.selectionHandles.isEmpty()){var n=3*t.getZoom(),i=e.getHeight(),r=e.getWidth(),a=e.getAbsoluteX(),s=e.getAbsoluteY(),o=e.selectionHandles.find((function(t){return 1===t.type})),l=e.selectionHandles.find((function(t){return 3===t.type})),c=e.selectionHandles.find((function(t){return 5===t.type})),u=e.selectionHandles.find((function(t){return 7===t.type}));if(o.setPosition(a-o.getWidth(),s-o.getHeight()),l.setPosition(a+r,s-l.getHeight()),c.setPosition(a+r,s+i),u.setPosition(a-u.getWidth(),s+i),!e.getKeepAspectRatio()&&e.isResizeable()){var h=e.selectionHandles.find((function(t){return 2===t.type})),d=e.selectionHandles.find((function(t){return 4===t.type})),f=e.selectionHandles.find((function(t){return 6===t.type})),p=e.selectionHandles.find((function(t){return 8===t.type}));h.setPosition(a+r/2-h.getWidth()/2,s-h.getHeight()),d.setPosition(a+r,s+i/2-d.getHeight()/2),f.setPosition(a+r/2-f.getWidth()/2,s+i),p.setPosition(a-p.getWidth(),s+i/2-p.getHeight()/2)}var g=e.selectionHandles.last();g.attr({x:a-n,y:s-n,width:r+2*n,height:i+2*n,stroke:t.getZoom()}),g.setRotationAngle(e.getRotationAngle())}},createResizeHandle:function(t,e){return new a.default.ResizeHandle({owner:t,type:e,width:10,height:10})}})},"./src/policy/figure/RegionEditPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.figure.RegionEditPolicy=a.default.policy.figure.DragDropEditPolicy.extend({NAME:"draw2d.policy.figure.RegionEditPolicy",init:function(t,e,n,i){if(this._super(),t instanceof a.default.geo.Rectangle)this.constRect=t;else{if("number"!=typeof i)throw"Invalid parameter. RegionEditPolicy need a rectangle as parameter in the constructor";this.constRect=new a.default.geo.Rectangle(t,e,n,i)}},setBoundingBox:function(t){return this.constRect=t,this},getBoundingBox:function(){return this.constRect},adjustPosition:function(t,e,n){var i=null;return i=e instanceof a.default.geo.Point?new a.default.geo.Rectangle(e.x,e.y,t.getWidth(),t.getHeight()):new a.default.geo.Rectangle(e,n,t.getWidth(),t.getHeight()),(i=this.constRect.moveInside(i)).getTopLeft()},adjustDimension:function(t,e,n){var i=t.getAbsoluteX()+e-this.constRect.getRight(),r=t.getAbsoluteY()+n-this.constRect.getBottom();return i>0&&(e-=i),r>0&&(n-=r),new a.default.geo.Rectangle(0,0,e,n)}})},"./src/policy/figure/ResizeSelectionFeedbackPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.figure.ResizeSelectionFeedbackPolicy=a.default.policy.figure.SelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.ResizeSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){if(e.selectionHandles.isEmpty()){var i=a.default.Configuration.factory.createResizeHandle(e,1),r=a.default.Configuration.factory.createResizeHandle(e,3),s=a.default.Configuration.factory.createResizeHandle(e,5),o=a.default.Configuration.factory.createResizeHandle(e,7);if(e.selectionHandles.add(i,r,s,o),i.show(t),r.show(t),s.show(t),o.show(t),!1===e.isResizeable()&&(i.setBackgroundColor(null),r.setBackgroundColor(null),s.setBackgroundColor(null),o.setBackgroundColor(null),i.setDraggable(!1),r.setDraggable(!1),s.setDraggable(!1),o.setDraggable(!1)),!e.getKeepAspectRatio()&&e.isResizeable()){var l=a.default.Configuration.factory.createResizeHandle(e,2),c=a.default.Configuration.factory.createResizeHandle(e,4),u=a.default.Configuration.factory.createResizeHandle(e,6),h=a.default.Configuration.factory.createResizeHandle(e,8);e.selectionHandles.add(l,c,u,h),l.show(t),c.show(t),u.show(t),h.show(t)}}this.moved(t,e)},moved:function(t,e){if(!e.selectionHandles.isEmpty()){var n=e.getHeight(),i=e.getWidth(),r=e.getX(),a=e.getY(),s=e.selectionHandles.find((function(t){return 1===t.type})),o=e.selectionHandles.find((function(t){return 3===t.type})),l=e.selectionHandles.find((function(t){return 5===t.type})),c=e.selectionHandles.find((function(t){return 7===t.type}));if(s.setPosition(r-s.getWidth(),a-s.getHeight()),o.setPosition(r+i,a-o.getHeight()),l.setPosition(r+i,a+n),c.setPosition(r-c.getWidth(),a+n),!e.getKeepAspectRatio()){var u=e.selectionHandles.find((function(t){return 2===t.type})),h=e.selectionHandles.find((function(t){return 4===t.type})),d=e.selectionHandles.find((function(t){return 6===t.type})),f=e.selectionHandles.find((function(t){return 8===t.type}));u.setPosition(r+i/2-u.getWidth()/2,a-u.getHeight()),h.setPosition(r+i,a+n/2-h.getHeight()/2),d.setPosition(r+i/2-d.getWidth()/2,a+n),f.setPosition(r-f.getWidth(),a+n/2-f.getHeight()/2)}}}})},"./src/policy/figure/RoundRectangleSelectionFeedbackPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.figure.RoundRectangleSelectionFeedbackPolicy=a.default.policy.figure.RectangleSelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.RoundRectangleSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},createResizeHandle:function(t,e){return new a.default.ResizeHandle({owner:t,type:e,width:12,height:12,radius:4})}})},"./src/policy/figure/SelectionFeedbackPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.figure.SelectionFeedbackPolicy=a.default.policy.figure.SelectionPolicy.extend({NAME:"draw2d.policy.figure.SelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onUnselect:function(t,e){this._super(t,e),e.selectionHandles.each((function(t,e){return e.hide()})),e.selectionHandles=new a.default.util.ArrayList},onInstall:function(t){this._super(t);var e=t.getCanvas();null!==e&&e.getSelection().contains(t)&&this.onSelect(e,t,!0)},onUninstall:function(t){this._super(t),t.selectionHandles.each((function(t,e){return e.hide()})),t.selectionHandles=new a.default.util.ArrayList}})},"./src/policy/figure/SelectionPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.figure.SelectionPolicy=a.default.policy.figure.DragDropEditPolicy.extend({NAME:"draw2d.policy.figure.SelectionPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){},onUnselect:function(t,e){}})},"./src/policy/figure/SlimSelectionFeedbackPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.figure.SlimSelectionFeedbackPolicy=a.default.policy.figure.RectangleSelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.SlimSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},createResizeHandle:function(t,e){return new a.default.ResizeHandle({owner:t,type:e,width:6,height:6,radius:0})}})},"./src/policy/figure/VBusSelectionFeedbackPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.figure.VBusSelectionFeedbackPolicy=a.default.policy.figure.BusSelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.VBusSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},moved:function(t,e){if(!e.selectionHandles.isEmpty()){var n=e.selectionHandles.find((function(t){return 2===t.type})),i=e.selectionHandles.find((function(t){return 6===t.type})),r=e.getWidth();n.setDimension(r,n.getHeight()),i.setDimension(r,i.getHeight()),this._super(t,e)}}})},"./src/policy/figure/VertexSelectionFeedbackPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.figure.VertexSelectionFeedbackPolicy=a.default.policy.figure.SelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.VertexSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){for(var i=e.getVertices(),r=0;r<i.getSize();r++){var s=new a.default.shape.basic.VertexResizeHandle(e,r);if(e.selectionHandles.add(s),s.setDraggable(e.isResizeable()),s.show(t),0!==r){var o=new a.default.shape.basic.GhostVertexResizeHandle(e,r-1);e.selectionHandles.add(o),o.setDraggable(e.isResizeable()),o.show(t)}}this.moved(t,e)},moved:function(t,e){e.selectionHandles.each((function(t,e){return e.relocate()}))}})},"./src/policy/figure/VerticalEditPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.figure.VerticalEditPolicy=a.default.policy.figure.DragDropEditPolicy.extend({NAME:"draw2d.policy.figure.VerticalEditPolicy",init:function(t,e,n){this._super(t,e,n)},adjustPosition:function(t,e,n){return new a.default.geo.Point(t.getX(),n)}})},"./src/policy/figure/WidthSelectionFeedbackPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.figure.WidthSelectionFeedbackPolicy=a.default.policy.figure.SelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.BusSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){if(e.selectionHandles.isEmpty()){var i=new a.default.ResizeHandle({owner:e,type:4}),r=new a.default.ResizeHandle({owner:e,type:8});i.installEditPolicy(new a.default.policy.figure.HorizontalEditPolicy),r.installEditPolicy(new a.default.policy.figure.HorizontalEditPolicy),e.selectionHandles.add(i,r),i.setDraggable(e.isResizeable()),r.setDraggable(e.isResizeable()),i.show(t),r.show(t)}this.moved(t,e)},moved:function(t,e){if(!e.selectionHandles.isEmpty()){var n=e.selectionHandles.find((function(t){return 4===t.type})),i=e.selectionHandles.find((function(t){return 8===t.type})),r=e.getWidth(),a=e.getX(),s=e.getY();n.setDimension(n.getWidth(),e.getHeight()),i.setDimension(i.getWidth(),e.getHeight()),n.setPosition(a+r,s),i.setPosition(a-i.getWidth(),s)}}})},"./src/policy/line/LineSelectionFeedbackPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.line.LineSelectionFeedbackPolicy=a.default.policy.figure.SelectionFeedbackPolicy.extend({NAME:"draw2d.policy.line.LineSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){e.selectionHandles.isEmpty()&&(e.selectionHandles.add(new a.default.shape.basic.LineStartResizeHandle(e)),e.selectionHandles.add(new a.default.shape.basic.LineEndResizeHandle(e)),e.selectionHandles.each((function(n,i){i.setDraggable(e.isResizeable()),i.show(t)}))),this.moved(t,e)},moved:function(t,e){e.selectionHandles.each((function(t,e){return e.relocate()}))}})},"./src/policy/line/OrthogonalSelectionFeedbackPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.line.OrthogonalSelectionFeedbackPolicy=a.default.policy.line.LineSelectionFeedbackPolicy.extend({NAME:"draw2d.policy.line.OrthogonalSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n),this.ResizeHandle=a.default.ResizeHandle.extend({NAME:"draw2d.policy.line.OrthogonalSelectionFeedbackPolicy.ResizeHandle",init:function(t,e){this._super({owner:t}),this.index=e},onDragStart:function(t,e,n,i,r){this._super(t,e,n,i,r),this.command=this.getCanvas().getPrimarySelection().createCommand(new a.default.command.CommandType(a.default.command.CommandType.MOVE_VERTICES)),this.vertex=this.owner.getVertex(this.index).clone()},onDrag:function(t,e,n,i){if(null==this.command)return!1;var r=this.owner.getRouter().MINDIST||10,s=this.owner.getSource().getConnectionDirection(this.owner.getTarget()),o=this.owner.getTarget().getConnectionDirection(this.owner.getSource());this.vertex.translate(n,i);var l=this.owner.getVertices(),c=l.getSize(),u=Math.max,h=Math.min;if(1===this.index){var d=l.get(this.index-1),f=l.get(this.index),p=l.get(this.index+1);if(f.x===p.x&&d.y===f.y)switch(s){case a.default.geo.Rectangle.DIRECTION_RIGHT:this.owner.setVertex(1,u(d.x+r,this.vertex.x),f.y),this.owner.setVertex(2,u(d.x+r,this.vertex.x),p.y);break;case a.default.geo.Rectangle.DIRECTION_LEFT:this.owner.setVertex(1,h(d.x-r,this.vertex.x),f.y),this.owner.setVertex(2,h(d.x-r,this.vertex.x),p.y)}else switch(s){case a.default.geo.Rectangle.DIRECTION_UP:this.owner.setVertex(1,f.x,h(d.y-r,this.vertex.y)),this.owner.setVertex(2,p.x,h(d.y-r,this.vertex.y));break;case a.default.geo.Rectangle.DIRECTION_DOWN:this.owner.setVertex(1,f.x,u(d.y+r,this.vertex.y)),this.owner.setVertex(2,p.x,u(d.y+r,this.vertex.y))}}else if(this.index===c-2){var g=l.get(this.index-1),m=l.get(this.index),y=l.get(this.index+1);if(y.x===m.x&&g.y===m.y)switch(o){case a.default.geo.Rectangle.DIRECTION_UP:this.owner.setVertex(c-2,m.x,h(y.y-r,this.vertex.y)),this.owner.setVertex(c-3,g.x,h(y.y-r,this.vertex.y));break;case a.default.geo.Rectangle.DIRECTION_DOWN:this.owner.setVertex(c-2,m.x,u(y.y+r,this.vertex.y)),this.owner.setVertex(c-3,g.x,u(y.y+r,this.vertex.y))}else switch(o){case a.default.geo.Rectangle.DIRECTION_RIGHT:this.owner.setVertex(c-2,u(y.x+r,this.vertex.x),m.y),this.owner.setVertex(c-3,u(y.x+r,this.vertex.x),g.y);break;case a.default.geo.Rectangle.DIRECTION_LEFT:this.owner.setVertex(c-2,h(y.x-r,this.vertex.x),m.y),this.owner.setVertex(c-3,h(y.x-r,this.vertex.x),g.y)}}else{var v=l.get(this.index-2),b=l.get(this.index-1),x=l.get(this.index),w=l.get(this.index+1),S=l.get(this.index+2);if(x.x===w.x&&x.y===b.y)if(this.index-2==0)switch(s){case a.default.geo.Rectangle.DIRECTION_RIGHT:this.owner.setVertex(this.index-1,b.x,u(this.vertex.y,v.y-r)),this.owner.setVertex(this.index,this.vertex.x,u(this.vertex.y,v.y-r)),this.owner.setVertex(this.index+1,this.vertex.x,w.y);break;case a.default.geo.Rectangle.DIRECTION_LEFT:this.owner.setVertex(this.index-1,b.x,h(this.vertex.y,v.y+r)),this.owner.setVertex(this.index,this.vertex.x,this.vertex.y),this.owner.setVertex(this.index+1,this.vertex.x,w.y);break;case a.default.geo.Rectangle.DIRECTION_UP:this.owner.setVertex(this.index-1,b.x,h(this.vertex.y,v.y-r)),this.owner.setVertex(this.index,this.vertex.x,h(this.vertex.y,v.y-r)),this.owner.setVertex(this.index+1,this.vertex.x,w.y);break;case a.default.geo.Rectangle.DIRECTION_DOWN:this.owner.setVertex(this.index-1,b.x,u(this.vertex.y,v.y+r)),this.owner.setVertex(this.index,this.vertex.x,u(this.vertex.y,v.y+r)),this.owner.setVertex(this.index+1,this.vertex.x,w.y)}else if(this.index-c+3==0)switch(o){case a.default.geo.Rectangle.DIRECTION_RIGHT:this.owner.setVertex(this.index-1,b.x,this.vertex.y),this.owner.setVertex(this.index,u(this.vertex.x,S.x+r),this.vertex.y),this.owner.setVertex(this.index+1,u(this.vertex.x,S.x+r),w.y);break;case a.default.geo.Rectangle.DIRECTION_LEFT:this.owner.setVertex(this.index-1,b.x,this.vertex.y),this.owner.setVertex(this.index,h(this.vertex.x,S.x-r),this.vertex.y),this.owner.setVertex(this.index+1,h(this.vertex.x,S.x-r),w.y)}else this.owner.setVertex(this.index-1,b.x,this.vertex.y),this.owner.setVertex(this.index,this.vertex),this.owner.setVertex(this.index+1,this.vertex.x,w.y);else if(b.x===x.x&&x.y===w.y)if(this.index-2==0)switch(s){case a.default.geo.Rectangle.DIRECTION_RIGHT:this.owner.setVertex(this.index-1,u(this.vertex.x,v.x+r),b.y),this.owner.setVertex(this.index,u(this.vertex.x,v.x+r),this.vertex.y),this.owner.setVertex(this.index+1,w.x,this.vertex.y);break;case a.default.geo.Rectangle.DIRECTION_LEFT:this.owner.setVertex(this.index-1,h(this.vertex.x,v.x-r),b.y),this.owner.setVertex(this.index,h(this.vertex.x,v.x-r),this.vertex.y),this.owner.setVertex(this.index+1,w.x,this.vertex.y)}else if(this.index-c+3==0)switch(o){case a.default.geo.Rectangle.DIRECTION_UP:this.owner.setVertex(this.index-1,this.vertex.x,u(this.vertex.y,b.y)),this.owner.setVertex(this.index,this.vertex.x,h(this.vertex.y,S.y-r)),this.owner.setVertex(this.index+1,w.x,h(this.vertex.y,S.y-r));break;case a.default.geo.Rectangle.DIRECTION_DOWN:this.owner.setVertex(this.index-1,this.vertex.x,b.y),this.owner.setVertex(this.index,this.vertex.x,u(this.vertex.y,S.y+r)),this.owner.setVertex(this.index+1,w.x,u(this.vertex.y,S.y+r))}else this.owner.setVertex(this.index-1,this.vertex.x,b.y),this.owner.setVertex(this.index,this.vertex),this.owner.setVertex(this.index+1,w.x,this.vertex.y)}return this.relocate(),null!==this.command&&this.command.updateVertices(this.owner.getVertices().clone()),this.owner._routingMetaData.routedByUserInteraction=!0,!0},onDragEnd:function(t,e,n,i,r){return this.getCanvas().getCommandStack().execute(this.command),this.command=null,!0},relocate:function(){var t=this.getWidth()/2,e=this.getHeight()/2,n=this.owner.getVertices().get(this.index);n&&this.setPosition(n.x-t,n.y-e)}})},onSelect:function(t,e,n){this._super(t,e,n);for(var i=e.getVertices(),r=1;r<i.getSize()-1;r++){var a=new this.ResizeHandle(e,r);e.selectionHandles.add(a),a.setDraggable(e.isResizeable()),a.show(t)}this.moved(t,e)},removeSegment:function(t,e){var n=t.getVertices().getSize()-1,i=t.getStartPoint(),r=t.getSource().getConnectionDirection(t.getTarget()),s=t.getEndPoint(),o=t.getTarget().getConnectionDirection(t.getSource()),l=t.getVertex(e-1),c=t.getVertex(e),u=t.getVertex(e+1),h=t.getVertex(e+2);if(c.y===u.y){var d=(c.x+u.x)/2;if(1===e)switch(r){case a.default.geo.Rectangle.DIRECTION_RIGHT:d=Math.max(d,i.x+10);break;case a.default.geo.Rectangle.DIRECTION_LEFT:d=Math.min(d,i.x-10);break;case a.default.geo.Rectangle.DIRECTION_UP:case a.default.geo.Rectangle.DIRECTION_DOWN:d=i.x}if(e===n-2)switch(r){case a.default.geo.Rectangle.DIRECTION_RIGHT:d=Math.max(d,s.x+10);break;case a.default.geo.Rectangle.DIRECTION_LEFT:d=Math.min(d,s.x-10);break;case a.default.geo.Rectangle.DIRECTION_UP:case a.default.geo.Rectangle.DIRECTION_DOWN:d=s.x}t.setVertex(e-1,new a.default.geo.Point(d,l.y)),t.setVertex(e+2,new a.default.geo.Point(d,h.y)),t.removeVertexAt(e),t.removeVertexAt(e),t._routingMetaData.routedByUserInteraction=!0}else if(c.x===u.x){var f=(c.y+u.y)/2;if(1===e)switch(r){case a.default.geo.Rectangle.DIRECTION_RIGHT:case a.default.geo.Rectangle.DIRECTION_LEFT:f=i.y;break;case a.default.geo.Rectangle.DIRECTION_UP:case a.default.geo.Rectangle.DIRECTION_DOWN:newX=i.x}if(e===n-2)switch(o){case a.default.geo.Rectangle.DIRECTION_RIGHT:case a.default.geo.Rectangle.DIRECTION_LEFT:f=s.y;break;case a.default.geo.Rectangle.DIRECTION_UP:case a.default.geo.Rectangle.DIRECTION_DOWN:newX=s.x}t.setVertex(e-1,new a.default.geo.Point(l.x,f)),t.setVertex(e+2,new a.default.geo.Point(h.x,f)),t.removeVertexAt(e),t.removeVertexAt(e),t._routingMetaData.routedByUserInteraction=!0}},splitSegment:function(t,e,n,i){var r=t.getVertices().getSize()-1,s=t.getVertex(e),o=t.getVertex(e+1),l=40;if(s.x===o.x)if(t._routingMetaData.routedByUserInteraction=!0,1===r){var c=s.getDistance(o)/4/2,u=new a.default.geo.Point(s.x,i-c),h=new a.default.geo.Point(o.x+l,i-c),d=new a.default.geo.Point(o.x+l,i+c),f=new a.default.geo.Point(o.x,i+c);t.insertVertexAt(e+1,u),t.insertVertexAt(e+2,h),t.insertVertexAt(e+3,d),t.insertVertexAt(e+4,f)}else{var p=new a.default.geo.Point(0,0),g=new a.default.geo.Point(0,0);0===e?(p.y=i,p.x=s.x,g.y=i,g.x=o.x+l,t.setVertex(e+1,new a.default.geo.Point(g.x,o.y))):e===r-1?(p.y=i,p.x=s.x-l,g.y=i,g.x=o.x,t.setVertex(e,new a.default.geo.Point(p.x,s.y))):(p.y=i,p.x=s.x-20,g.y=i,g.x=o.x+20,t.setVertex(e,new a.default.geo.Point(p.x,s.y)),t.setVertex(e+1,new a.default.geo.Point(g.x,o.y))),t.insertVertexAt(e+1,p),t.insertVertexAt(e+2,g)}else if(s.y==o.y)if(t._routingMetaData.routedByUserInteraction=!0,1===r){var m=s.getDistance(o)/4/2,y=new a.default.geo.Point(n-m,s.y),v=new a.default.geo.Point(n-m,s.y-l),b=new a.default.geo.Point(n+m,s.y-l),x=new a.default.geo.Point(n+m,s.y);t.insertVertexAt(e+1,y),t.insertVertexAt(e+2,v),t.insertVertexAt(e+3,b),t.insertVertexAt(e+4,x)}else{var w=new a.default.geo.Point(0,0),S=new a.default.geo.Point(0,0);0===e?(w.x=n,w.y=s.y,S.x=n,S.y=o.y+l,t.setVertex(e+1,new a.default.geo.Point(o.x,S.y))):e===r-1?(w.x=n,w.y=s.y-l,S.x=n,S.y=o.y,t.setVertex(e,new a.default.geo.Point(s.x,w.y))):(w.x=n,w.y=s.y-20,S.x=n,S.y=o.y+20,t.setVertex(e,new a.default.geo.Point(s.x,w.y)),t.setVertex(e+1,new a.default.geo.Point(o.x,S.y))),t.insertVertexAt(e+1,w),t.insertVertexAt(e+2,S)}},onRightMouseDown:function(t,e,n,i,r,s){var o=this,l=t.hitSegment(e,n),c={split:{name:a.default.Configuration.i18n.menu.addSegment}};null!==l&&(t.getRouter().canRemoveSegmentAt(t,l.index)&&(c.remove={name:a.default.Configuration.i18n.menu.deleteSegment}),$.contextMenu({selector:"body",events:{hide:function(){$.contextMenu("destroy")}},callback:function(i,r){switch(i){case"remove":var s=t.getVertices().clone(!0);o.removeSegment(t,l.index);var c=t.getVertices().clone(!0);t.getCanvas().getCommandStack().execute(new a.default.command.CommandReplaceVertices(t,s,c));break;case"split":var u=t.getVertices().clone(!0);o.splitSegment(t,l.index,e,n);var h=t.getVertices().clone(!0);t.getCanvas().getCommandStack().execute(new a.default.command.CommandReplaceVertices(t,u,h))}},x:e,y:n,items:c}))}})},"./src/policy/line/VertexSelectionFeedbackPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.line.VertexSelectionFeedbackPolicy=a.default.policy.line.LineSelectionFeedbackPolicy.extend({NAME:"draw2d.policy.line.VertexSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){var i=new a.default.shape.basic.LineStartResizeHandle(e),r=new a.default.shape.basic.LineEndResizeHandle(e);e.selectionHandles.add(i),e.selectionHandles.add(r);for(var s=e.getVertices().getSize()-1,o=1;o<s;o++)e.selectionHandles.add(new a.default.shape.basic.VertexResizeHandle(e,o)),e.selectionHandles.add(new a.default.shape.basic.GhostVertexResizeHandle(e,o-1));e.selectionHandles.add(new a.default.shape.basic.GhostVertexResizeHandle(e,o-1)),e.selectionHandles.each((function(n,i){i.setDraggable(e.isResizeable()),i.show(t)})),this.moved(t,e)}})},"./src/policy/port/ElasticStrapFeedbackPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.port.ElasticStrapFeedbackPolicy=a.default.policy.port.PortFeedbackPolicy.extend({NAME:"draw2d.policy.port.ElasticStrapFeedbackPolicy",init:function(t,e,n){this._super(t,e,n),this.connectionLine=null},onDragStart:function(t,e,n,i,r,s,o){return this.connectionLine=new a.default.shape.basic.Line,this.connectionLine.setCanvas(t),this.connectionLine.getShapeElement(),this.onDrag(t,e),!0},onDrag:function(t,e){var n=e.ox+e.getParent().getAbsoluteX(),i=e.oy+e.getParent().getAbsoluteY();this.connectionLine.setStartPosition(n,i),this.connectionLine.setEndPosition(e.getAbsoluteX(),e.getAbsoluteY())},onDragEnd:function(t,e,n,i,r,a,s){this.connectionLine.setCanvas(null),this.connectionLine=null},onHoverEnter:function(t,e,n){this.connectionLine.setGlow(!0),n.setGlow(!0)},onHoverLeave:function(t,e,n){n.setGlow(!1),this.connectionLine.setGlow(!1)}})},"./src/policy/port/IntrusivePortsFeedbackPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i},s=n("./node_modules/shifty/dist/shifty.js");a.default.policy.port.IntrusivePortsFeedbackPolicy=a.default.policy.port.PortFeedbackPolicy.extend({NAME:"draw2d.policy.port.IntrusivePortsFeedbackPolicy",init:function(t,e,n){this._super(t,e,n),this.connectionLine=null,this.tweenable=null,this.growFactor=2},onDragStart:function(t,e,n,i,r,o,l){var c=t.getAllPorts().clone();c.grep((function(t){return t.NAME!==e.NAME&&t.parent!==e.parent&&t.getSemanticGroup()===e.getSemanticGroup()||t instanceof a.default.HybridPort||e instanceof a.default.HybridPort}));var u=0;return c.each((function(t,e){void 0===e.__beforeInflate&&(e.__beforeInflate=e.getWidth()),u=e.__beforeInflate})),this.tweenable=new s.Tweenable,this.tweenable.tween({from:{size:u},to:{size:u*this.growFactor},duration:200,easing:"easeOutSine",step:function(t){c.each((function(e,n){n.shape.attr({rx:t.size/2,ry:t.size/2}),n.width=n.height=t.size,n.fireEvent("resize")}))}}),this.connectionLine=new a.default.shape.basic.Line,this.connectionLine.setCanvas(t),this.connectionLine.getShapeElement(),this.connectionLine.setDashArray("- "),this.connectionLine.setColor("#30c48a"),this.onDrag(t,e),!0},onDrag:function(t,e){var n=e.ox+e.getParent().getAbsoluteX(),i=e.oy+e.getParent().getAbsoluteY();this.connectionLine.setStartPosition(n,i),this.connectionLine.setEndPosition(e.getAbsoluteX(),e.getAbsoluteY())},onDragEnd:function(t,e,n,i,r,a,s){this.tweenable&&(this.tweenable.stop(!0),this.tweenable.dispose(),this.tweenable=null);var o=t.getAllPorts().clone();o.grep((function(t){return t.__beforeInflate})),o.each((function(t,e){e.shape.attr({rx:e.__beforeInflate/2,ry:e.__beforeInflate/2}),e.width=e.height=e.__beforeInflate,delete e.__beforeInflate})),this.connectionLine.setCanvas(null),this.connectionLine=null},onHoverEnter:function(t,e,n){this.connectionLine.setGlow(!0),n.setGlow(!0)},onHoverLeave:function(t,e,n){n.setGlow(!1),this.connectionLine,this.connectionLine.setGlow(!1)}})},"./src/policy/port/PortFeedbackPolicy.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.policy.port.PortFeedbackPolicy=a.default.policy.figure.DragDropEditPolicy.extend({NAME:"draw2d.policy.port.PortFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onHoverEnter:function(t,e,n){},onHoverLeave:function(t,e,n){}})},"./src/shape/analog/OpAmp.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.analog.OpAmp=a.default.SVGFigure.extend({NAME:"draw2d.shape.analog.OpAmp",MyInputPortLocator:a.default.layout.locator.PortLocator.extend({init:function(){this._super()},relocate:function(t,e){var n=(8+18.5*t)*e.getParent().scaleY;this.applyConsiderRotation(e,1,n)}}),init:function(t,e,n){this._super(extend({stroke:0,bgColor:"#f0f0ff"},t),e,n),this.inputLocator=new this.MyInputPortLocator,this.createPort("input",this.inputLocator),this.createPort("input",this.inputLocator),this.createPort("output")},getSVG:function(){return'<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="50"  height="50"><path d="m8.2627,0l0,35.36035l31.23926,-17.76025l-31.23926,-17.60011l0,0l0,0.00001zm2.27832,27.36719l4.08105,0m-2.10449,-2.20703l0,4.27979m2.26367,-21.35938l-4.15918,0"  stroke="#1B1B1B" fill="none"/><line x1="0.53516"  y1="8"  x2="8.21191"  y2="8"  stroke="#010101"/><line x1="39.14941" y1="18" x2="45.81055" y2="18" stroke="#010101" /><line x1="0.53516"  y1="27" x2="8.21191"  y2="27" stroke="#010101" /></svg>'},repaint:function(t){if(!0!==this.repaintBlocked&&null!==this.shape)return(t=t||{}).fill="none",null!=this.bgColor&&this.svgNodes[0].attr({fill:this.bgColor.rgba()}),this._super(t),this}})},"./src/shape/analog/ResistorBridge.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.analog.ResistorBridge=a.default.SVGFigure.extend({NAME:"draw2d.shape.analog.ResistorBridge",MyInputPortLocator:a.default.layout.locator.PortLocator.extend({init:function(){this._super()},relocate:function(t,e){var n=e.getParent().getWidth(),i=e.getParent().getHeight();this.applyConsiderRotation(e,n/2+1,i*t)}}),MyOutputPortLocator:a.default.layout.locator.PortLocator.extend({init:function(){this._super()},relocate:function(t,e){var n=e.getParent().getWidth(),i=e.getParent().getHeight();this.applyConsiderRotation(e,n*(t-2),i/2)}}),init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n),this.inputLocator=new this.MyInputPortLocator,this.outputLocator=new this.MyOutputPortLocator,this.createPort("hybrid",this.inputLocator),this.createPort("hybrid",this.inputLocator),this.createPort("hybrid",this.outputLocator),this.createPort("hybrid",this.outputLocator)},getSVG:function(){return'<svg  xmlns="http://www.w3.org/2000/svg" version="1.1"><path fill="#010101" stroke="#010101" stroke-miterlimit="14.3" id="path12322" d="m47.62207,22.71094l0,0c0.73145,0.73242 0.71777,1.93359 -0.03027,2.68164c-0.74805,0.74951 -1.94922,0.76123 -2.68073,0.0293c-0.73138,-0.73242 -0.71967,-1.93211 0.03033,-2.68115c0.74707,-0.74803 1.94727,-0.76219 2.68066,-0.02979l0,0z"/><path fill="#010101" stroke="#010101" stroke-miterlimit="14.3" id="path12324" d="m25.84082,0.93115l0,0c0.73145,0.73096 0.71875,1.93359 -0.02832,2.68066c-0.75,0.74951 -1.94922,0.76123 -2.68164,0.0293c-0.73242,-0.73241 -0.71973,-1.93164 0.0293,-2.68065c0.74805,-0.74756 1.94922,-0.76172 2.68066,-0.0293l0,0l0,-0.00002z"/><path fill="#010101" stroke="#010101" stroke-miterlimit="14.3" id="path12326" d="m25.75098,44.58203l0,0c0.73145,0.73193 0.71875,1.93311 -0.02832,2.68115c-0.75,0.74902 -1.94922,0.76074 -2.68262,0.0293c-0.73145,-0.73193 -0.71973,-1.93262 0.03033,-2.68164c0.74707,-0.74756 1.94922,-0.76123 2.68066,-0.02879l0,0l-0.00006,-0.00002z"/><path fill="#010101" stroke="#010101" stroke-miterlimit="14.3" id="path12328" d="m3.9707,22.80127l0,0c0.73242,0.73193 0.71777,1.93359 -0.0293,2.68115c-0.74902,0.74951 -1.94922,0.76172 -2.68164,0.0293c-0.73145,-0.73242 -0.71973,-1.93164 0.03027,-2.68115c0.74707,-0.74707 1.94922,-0.76074 2.68066,-0.0293l0,0z"/><polyline fill="none" stroke="#010101" id="polyline12334" points="24.908203125,45.49267578125 31.71875,38.68310546875 31.2119140625,36.98876953125 34.892578125,37.95703125 33.953125,34.22265625 37.6650390625,35.18359375 36.6767578125,31.52490234375 40.3759765625,32.47314453125 39.873046875,30.52783203125 45.884765625,24.51708984375 " stroke-miterlimit="14.3"/><polyline fill="#010101" id="polyline12338" points="36.3408203125,23.98876953125 38.146484375,29.55810546875 33.630859375,29.55810546875 35.435546875,23.98779296875 "/><line fill="none" stroke="#010101" id="line12340" y2="28.90967" x2="35.8877" y1="41.13428" x1="35.88867" stroke-miterlimit="14.3"/><polyline fill="none" stroke="#010101" id="polyline12346" points="3.2109375,23.79248046875 10.01953125,16.98388671875 9.513671875,15.2890625 13.193359375,16.25732421875 12.251953125,12.5234375 15.9658203125,13.48486328125 14.9775390625,9.82568359375 18.6767578125,10.7734375 18.173828125,8.82958984375 24.185546875,2.81787109375 " stroke-miterlimit="14.3"/><polyline fill="#010101" id="polyline12350" points="13.126953125,23.80419921875 11.3212890625,18.236328125 15.8369140625,18.236328125 14.0322265625,23.806640625 "/><line fill="none" stroke="#010101" id="line12352" y2="18.8833" x2="13.58008" y1="6.65967" x1="13.5791" stroke-miterlimit="14.3"/><polyline fill="none" stroke="#010101" id="polyline12358" points="46.65625,24.33642578125 39.84765625,17.52783203125 38.154296875,18.033203125 39.1220703125,14.353515625 35.3876953125,15.29345703125 36.34765625,11.58056640625 32.689453125,12.56884765625 33.6376953125,8.86865234375 31.6923828125,9.373046875 24.322265625,2.00341796875 " stroke-miterlimit="14.3"/><polyline fill="#010101" id="polyline12362" points="36.578125,1.87109375 38.3828125,7.439453125 33.8681640625,7.439453125 35.6728515625,1.869140625 "/><line fill="none" stroke="#010101" id="line12364" y2="6.7915" x2="36.125" y1="19.01758" x1="36.125" stroke-miterlimit="14.3"/><polyline fill="none" stroke="#010101" id="polyline12370" points="24.494140625,46.49951171875 17.685546875,39.69091796875 15.9921875,40.1953125 16.958984375,36.515625 13.2265625,37.45556640625 14.185546875,33.7421875 10.52734375,34.73193359375 11.474609375,31.03125 9.529296875,31.53515625 2.1611328125,24.166015625 " stroke-miterlimit="14.3"/><polyline fill="#010101" id="polyline12374" points="12.150390625,44.80029296875 10.34765625,39.23193359375 14.861328125,39.23095703125 13.0556640625,44.80224609375 "/><line fill="none" stroke="#010101" id="line12376" y2="39.87891" x2="12.60352" y1="27.6543" x1="12.60352" stroke-miterlimit="14.3"/></svg>'}})},"./src/shape/analog/ResistorVertical.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.analog.ResistorVertical=a.default.SetFigure.extend({NAME:"draw2d.shape.analog.ResistorVertical",MyInputPortLocator:a.default.layout.locator.PortLocator.extend({init:function(){this._super()},relocate:function(t,e){var n=e.getParent().getWidth(),i=e.getParent().getHeight();this.applyConsiderRotation(e,n/2,i)}}),MyOutputPortLocator:a.default.layout.locator.PortLocator.extend({init:function(){this._super()},relocate:function(t,e){var n=e.getParent().getWidth();this.applyConsiderRotation(e,n/2,0)}}),init:function(t,e,n){this._super(extend({width:30,height:50,bgColor:null},t),e,n),this.inputLocator=new this.MyInputPortLocator,this.outputLocator=new this.MyOutputPortLocator,this.createPort("hybrid",this.inputLocator),this.createPort("hybrid",this.outputLocator)},createSet:function(){var t=this._super();return t.push(this.canvas.paper.path("M15,0 L15,5 L0,7.5 L30,10 L0,15 L30,20 L0,25 L30,30 L15,32.5 L15,40")),t}})},"./src/shape/analog/VoltageSupplyHorizontal.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.analog.VoltageSupplyHorizontal=a.default.SVGFigure.extend({NAME:"draw2d.shape.analog.VoltageSupplyHorizontal",MyInputPortLocator:a.default.layout.locator.PortLocator.extend({init:function(){this._super()},relocate:function(t,e){var n=e.getParent().getHeight();this.applyConsiderRotation(e,0,n/2)}}),MyOutputPortLocator:a.default.layout.locator.PortLocator.extend({init:function(){this._super()},relocate:function(t,e){var n=e.getParent().getWidth(),i=e.getParent().getHeight();this.applyConsiderRotation(e,n,i/2)}}),init:function(t,e,n){this._super(extend({width:50,height:30},t),e,n),this.createPort("hybrid",new this.MyInputPortLocator),this.createPort("hybrid",new this.MyOutputPortLocator)},getSVG:function(){return'<svg width="49" height="28" xmlns="http://www.w3.org/2000/svg" version="1.1"><path d="m24.99933,18.95592l0,-9.54576m-5.78374,-9.40907l0,28.35939m-5.78718,-9.40457l0,-9.54576m-5.78374,-9.40907l0,28.35939" id="path10566" stroke-miterlimit="14.3" stroke="#010101" fill="none"/><path d="m26.79878,14.13039l6.90583,0m-33.22691,0l6.90583,0" id="path10568" stroke-miterlimit="14.3" stroke-linecap="square" stroke="#010101" fill="none"/></svg>'}})},"./src/shape/analog/VoltageSupplyVertical.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.analog.VoltageSupplyVertical=a.default.SVGFigure.extend({NAME:"draw2d.shape.analog.VoltageSupplyVertical",MyInputPortLocator:a.default.layout.locator.PortLocator.extend({init:function(){this._super()},relocate:function(t,e){var n=e.getParent().getWidth(),i=e.getParent().getHeight();this.applyConsiderRotation(e,n/2,i)}}),MyOutputPortLocator:a.default.layout.locator.PortLocator.extend({init:function(){this._super()},relocate:function(t,e){var n=e.getParent().getWidth();this.applyConsiderRotation(e,n/2,0)}}),init:function(t,e,n){this._super(extend({width:30,height:50},t),e,n),this.inputLocator=new this.MyInputPortLocator,this.outputLocator=new this.MyOutputPortLocator,this.createPort("hybrid",this.inputLocator),this.createPort("hybrid",this.outputLocator)},getSVG:function(){return'<svg  xmlns="http://www.w3.org/2000/svg" version="1.1"><path d="m19.62398,12.37594l-9.87926,0m-9.74355,8.22145l29.36289,0m-9.74007,8.22469l-9.87927,0m-9.74355,8.22145l29.36289,0" id="path10560" stroke-miterlimit="14.3" stroke="#010101" fill="none"/><path d="m14.63157,9.81646l0,-9.81646m0,47.2328l0,-9.81646" id="path10562" stroke-miterlimit="14.3" stroke-linecap="square" stroke="#010101" fill="none"/></svg>'}})},"./src/shape/arrow/CalligrapherArrowDownLeft.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.arrow.CalligrapherArrowDownLeft=a.default.SVGFigure.extend({NAME:"draw2d.shape.arrow.CalligrapherArrowDownLeft",init:function(t,e,n){this._super(t)},getSVG:function(){return'<svg width="180" height="300" xmlns="http://www.w3.org/2000/svg" version="1.1">     <path style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path3084" d="m 159.63578,17.846597 c 0.43137,9.44641 -0.0636,18.88035 -0.8284,28.30165 c -1.73211,18.38336 -4.05381,36.71698 -6.08253,55.075313 c -1.61738,13.7075 -3.03402,27.43467 -3.97611,41.19113 c -1.09101,11.16584 -1.31019,22.36559 -1.28541,33.56466 c -0.1328,4.82188 0.3218,9.6468 0.14332,14.46812 c -0.0888,2.39977 -0.28315,3.73625 -0.55012,6.12095 c -0.85848,4.73147 -2.27416,9.40019 -4.7769,13.68272 c -1.47003,2.51544 -3.78493,5.6647 -5.47739,8.05048 c -5.02888,6.66256 -11.08555,12.65652 -18.10552,17.75963 c -4.23302,3.07716 -7.74942,5.12065 -12.22081,7.86298 c -13.253319,6.72606 -25.889792,15.11686 -40.84124,18.60576 c -3.016829,0.7039 -4.431417,0.8157 -7.450859,1.2076 c -6.983246,0.5774 -14.009174,0.3375 -21.010676,0.2509 c -3.278795,-0.033 -6.55749,0.01 -9.835897,0.045 c 0,0 20.838833,-13.2364 20.838833,-13.2364 l 0,0 c 3.147056,0.093 6.294483,0.1852 9.443646,0.2007 c 6.966697,0.011 13.971433,0.1301 20.897176,-0.6344 c 3.732439,-0.5577 7.321215,-1.2431 10.881203,-2.4145 c 1.517208,-0.4992 5.830867,-2.43339 4.487902,-1.6386 c -6.098183,3.6088 -25.104875,12.8748 -9.52514,5.223 c 4.40875,-2.5927 8.262057,-4.7459 12.425175,-7.65986 c 6.839117,-4.78709 12.633657,-10.50427 17.500607,-16.86761 c 2.53518,-3.56692 5.24684,-7.12748 7.07617,-11.03446 c 1.42357,-3.0404 2.21532,-6.28727 2.91146,-9.50152 c 0.91919,-6.88822 1.03991,-13.81392 1.25118,-20.74151 c 0.47683,-11.27871 0.96259,-22.55877 1.61689,-33.83062 c 1.21127,-14.03392 3.64191,-27.94339 5.46543,-41.92167 c 2.26899,-18.186603 4.6835,-36.384373 5.4487,-54.679643 c 0.0788,-2.46092 0.23808,-4.92087 0.23618,-7.38276 c -0.005,-6.45916 -0.62194,-13.00218 -2.13821,-19.32664 c 0,0 23.48134,-10.73998 23.48134,-10.73998 z" inkscape:connector-curvature="0" />     <path style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path3086" d="m 41.271518,252.40239 c 2.465518,-0.7264 4.879503,-1.7726 7.145328,-2.9859 c 0.955597,-0.5117 3.736822,-2.1986 2.791991,-1.6673 c -5.218817,2.9348 -10.409826,5.9187 -15.61474,8.878 c 5.366557,-3.4898 10.227818,-7.6685 14.119927,-12.75576 c 3.507157,-5.09382 4.097613,-11.17122 4.301158,-17.17644 c 0.02635,-3.95844 -0.31227,-7.90612 -0.635377,-11.84752 c 0,0 19.920693,-10.3059 19.920693,-10.3059 l 0,0 c 0.171761,4.05015 0.409899,8.09777 0.50079,12.15101 c -0.185739,6.23619 -0.347804,12.66862 -3.492579,18.24747 c -0.503375,0.75197 -0.961922,1.53596 -1.510126,2.25591 c -3.478528,4.56826 -8.226837,8.04586 -12.757403,11.47443 c -7.345206,4.3297 -14.671333,8.692 -22.035619,12.9891 c -3.551305,2.0723 -7.368692,3.8726 -11.394645,4.7773 c 0,0 18.660602,-14.0344 18.660602,-14.0344 z" inkscape:connector-curvature="0" />     <path style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path3088" d="m 37.815923,255.49919 c 3.41111,0.1581 6.814569,0.2213 10.182693,0.8184 c 6.92998,2.6928 13.533527,6.2357 20.043462,9.8162 c 3.912139,2.1362 7.91195,4.4644 10.690321,8.0298 c 1.039962,1.2802 1.510411,2.7604 1.893523,4.3313 c 0,0 -20.370847,10.9259 -20.370847,10.9259 l 0,0 c -0.225419,-1.2711 -0.55067,-2.4558 -1.329618,-3.5184 c -2.332229,-3.3633 -5.869056,-5.6279 -9.247191,-7.8233 c -6.335066,-3.7106 -12.98611,-7.1834 -20.232784,-8.6836 c -3.497247,-0.3814 -7.011372,-0.4307 -10.521829,-0.1703 c 0,0 18.89227,-13.726 18.89227,-13.726 z" inkscape:connector-curvature="0" /></svg>'},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(null!==this.svgNodes&&this.svgNodes.attr({fill:this.color.rgba()}),this._super(t))}})},"./src/shape/arrow/CalligrapherArrowLeft.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.arrow.CalligrapherArrowLeft=a.default.SVGFigure.extend({NAME:"draw2d.shape.arrow.CalligrapherArrowLeft",init:function(t,e,n){this._super(t)},getSVG:function(){return'<svg width="230" height="60" xmlns="http://www.w3.org/2000/svg" version="1.1">  <path style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path3024" d="m 218.87943,27.464763 c -1.21088,-0.0563 -2.42064,-0.14616 -3.63262,-0.16893 c -5.82495,-0.10948 -18.61676,-0.0226 -22.97385,0.0122 c -7.12848,0.057 -14.25673,0.14021 -21.38495,0.22333 c -9.03765,0.10539 -18.07511,0.22813 -27.11266,0.3422 c -10.2269,0.11878 -20.4538,0.23756 -30.6807,0.35634 c -35.488759,0.4089 -70.975849,0.82793 -106.4669238,0.95195 c 0,0 7.9718628,-5.70244 7.9718628,-5.70244 l 0,0 c 6.374241,0.28694 12.745594,0.64561 19.122722,0.86083 c 28.09499,0.94816 56.21338,0.92473 84.315959,0.32205 c 10.51273,-0.32805 21.0288,-0.56402 31.53819,-0.98412 c 27.47361,-1.09824 54.91405,-2.91665 82.28177,-5.53697 c 0,0 -12.9788,9.32351 -12.9788,9.32351 z" inkscape:connector-curvature="0" />  <path style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path3026" d="m 100.75066,1.6309831 c -7.165239,3.9571 -14.284929,7.47866 -22.036659,10.2707299 c -5.00195,1.80163 -10.10374,3.31886 -15.2402,4.79424 c -8.25878,2.37815 -16.55626,4.65805 -24.9012,6.79479 c -2.89107,0.71593 -5.74687,1.56407 -8.66266,2.20424 c -3.211679,0.70512 -6.49468,1.17333 -9.752959,1.6747 c -5.447101,0.92112 -10.9044008,1.81762 -16.3983488,2.50082 c -1.608931,0.0814 -0.850754,0.10697 -2.275834,-0.0365 C 20.004071,21.041553 19.256899,21.517873 32.515691,19.216243 c 6.21537,-1.05913 12.34875,-2.37668 18.3945,-4.03234 c 8.12719,-2.02803 16.23765,-4.1157 24.26421,-6.4321199 c 5.23574,-1.55053 10.41682,-3.15473 15.46857,-5.12875 c 1.38953,-0.54295 2.7579,-1.12682 4.12253,-1.71603 c 0.98421,-0.42496 3.86537,-1.81801999 2.92296,-1.32600999 C 93.642191,2.6934931 89.529511,4.7073031 85.450031,6.7704531 l 15.300629,-5.1394 z" inkscape:connector-curvature="0" sodipodi:nodetypes="csccsccccccsssccc" />  <path style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path3028" d="m 80.764281,58.068863 c -2.45498,-3.50762 -6.58178,-6.10525 -10.40324,-8.66732 c -4.30614,-2.72676 -7.93958,-6.28283 -12.6021,-8.28702 c -7.39912,-4.50257 -11.70055,-7.85592 -20.85866,-9.23429 c -4.9257,-0.85706 -17.294247,-1.32043 -22.226462,-2.15427 c -3.445882,-0.42869 -6.2035918,0.70541 -9.6845138,0.57715 c -1.496337,-0.0586 -2.99355,-0.0965 -4.491229,-0.12472 l 13.9525278,-6.24562 l 3.25,-1.17153 c 1.441459,0.0813 -1.116338,0.15309 0.325505,0.23016 c 3.574557,0.17902 7.211864,0.0695 10.712655,0.73822 c 4.723107,1.08097 9.443947,2.1624 14.234177,3.05317 c 2.76739,0.64203 3.92627,0.87082 6.64127,1.66289 c 4.42146,1.28993 8.60075,3.01513 12.86503,4.58129 c 1.90199,0.73446 5.05193,1.93181 6.89302,2.7216 c 4.92005,2.11061 9.5916,4.57045 13.9716,7.31023 c 4.16708,2.62011 8.48023,5.20033 11.72012,8.56863 z" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccccccscsccc" /></svg>'},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(null!==this.svgNodes&&this.svgNodes.attr({fill:this.color.rgba()}),this._super(t))}})},"./src/shape/basic/Arc.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.shape.basic.Arc=i.default.SetFigure.extend({NAME:"draw2d.shape.basic.Arc",init:function(t,e,n){this.startAngle=180,this.endAngle=360,this._super((0,r.default)({width:80,height:50,bgColor:null,color:"#1B1B1B"},t),e,n),this.strokeScale=!1},createSet:function(){this.canvas.paper.setStart();var t=this.endAngle-this.startAngle>180,e=this.startAngle%360*Math.PI/180,n=this.endAngle%360*Math.PI/180,i=this.getWidth()/2,r=this.getHeight()/2;return this.canvas.paper.path([["M",i,r,"l",i*Math.cos(e),r*Math.sin(e),"A",i,r,0,+t,1,i+i*Math.cos(n),r+r*Math.sin(n),"z"]].join("")).attr({fill:"#fff0f0"}),this.canvas.paper.setFinish()}})},"./src/shape/basic/Circle.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.shape.basic.Circle=i.default.shape.basic.Oval.extend({NAME:"draw2d.shape.basic.Circle",init:function(t,e,n){this._super(t,(0,r.default)({diameter:this.setDiameter,radius:this.setRadius},e),(0,r.default)({diameter:this.getDiameter,radius:this.getRadius},n)),this.setKeepAspectRatio(!0)},setDiameter:function(t){var e=this.getCenter();return this.setDimension(t,t),this.setCenter(e),this.fireEvent("change:diameter",{value:t}),this},getDiameter:function(){return this.getWidth()},setRadius:function(t){return this.setDiameter(2*t),this.fireEvent("change:radius",{value:t}),this},getRadius:function(){return this.getWidth/2},getPersistentAttributes:function(){var t=this._super();return delete t.radius,t}})},"./src/shape/basic/Diamond.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.basic.Diamond=a.default.shape.basic.Polygon.extend({NAME:"draw2d.shape.basic.Diamond",init:function(t,e,n){this._super(extend({bgColor:"#00a3f6",color:"#1B1B1B"},t),e,n);var i=this.getPosition();this.resetVertices();var r=this.getBoundingBox();this.addVertex(r.w/2,0),this.addVertex(r.w,r.h/2),this.addVertex(r.w/2,r.h),this.addVertex(0,r.h/2),this.installEditPolicy(new a.default.policy.figure.RectangleSelectionFeedbackPolicy),this.setPosition(i)}})},"./src/shape/basic/GhostVertexResizeHandle.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.basic.GhostVertexResizeHandle=a.default.shape.basic.LineResizeHandle.extend({NAME:"draw2d.shape.basic.GhostVertexResizeHandle",init:function(t,e){this.maxOpacity=.35,this.precursorIndex=e,this._super({owner:t,opacity:this.maxOpacity})},createShapeElement:function(){var t=this._super();return t.attr({cursor:"pointer"}),t},setAlpha:function(t){return this._super(Math.min(this.maxOpacity,Math.max(0,parseFloat(t)))),this},onClick:function(){var t=new a.default.command.CommandAddVertex(this.owner,this.precursorIndex+1,this.getAbsoluteX()+this.getWidth()/2,this.getAbsoluteY()+this.getHeight()/2);this.getCanvas().getCommandStack().execute(t)},onDragStart:function(t,e,n,i,r){return!0},onDrag:function(t,e,n,i){return!0},onDragEnd:function(t,e,n,i,r){return this.fireEvent("dragend",{x:t,y:e,shiftKey:n,ctrlKey:i,event:r}),!0},relocate:function(){var t=this.owner.getVertices().get(this.precursorIndex),e=this.owner.getVertices().get(this.precursorIndex+1);this.setPosition((e.x-t.x)/2+t.x-this.getWidth()/2,(e.y-t.y)/2+t.y-this.getHeight()/2)}})},"./src/shape/basic/HtmlNode.js":(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.shape.basic.HtmlNode=i.default.VectorFigure.extend({NAME:"draw2d.shape.basic.HtmlNode",init:function(t,e,n){this._super((0,r.default)({width:16,height:8,cssClass:"html-node"},t),e,n);var a=t||{},s=a.htmlMountId,o=a.htmlContent;this.htmlMountId=s||"mp_"+i.default.util.UUID.create(),this.htmlContent=o||"",this.foreignObject=null,this.htmlContainer=null,this.htmlWrapper=null,this.componentInstance=null,this.renderComponent=null,this.destroyComponent=null},getShapeElement:function(){return null!==this.shape||(this.shape=this.createShapeElement(),this.isVisible()||this.shape.hide(),null!==this.cssClass&&this.shape.node.setAttribute("class",this.cssClass)),this.shape},createShapeElement:function(){var t=this.canvas.paper.group(),e=document.createElementNS("http://www.w3.org/2000/svg","foreignObject");e.setAttribute("x",this.getAbsoluteX()),e.setAttribute("y",this.getAbsoluteY()),e.setAttribute("width",this.width),e.setAttribute("height",this.height),e.style.overflow="visible";var n=document.createElement("div");return n.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),n.style.cssText="\n      width: 100%;\n      height: 100%;\n      box-sizing: border-box;\n      overflow: hidden;\n    ",n.className=this.cssClass,n.setAttribute("id",this.htmlMountId),n.innerHTML=this.htmlContent||"",e.appendChild(n),this.foreignObject=e,this.htmlWrapper=n,t.node.appendChild(e),this.on("added",(function(t,e){var n=t.canvas||{},i=n.renderComponent,r=n.destroyComponent;t.renderComponent=i||null,t.destroyComponent=r||null,i&&i(t)})),this.on("removed",(function(t,e){if(t.componentInstance){try{t.destroyComponent&&t.destroyComponent(t)}catch(t){console.error(t)}t.renderComponent=null,t.destroyComponent=null,t.componentInstance=null}})),t},repaint:function(t){if(!this.repaintBlocked&&this.shape){var e=this.getAbsolutePosition();this.foreignObject.setAttribute("x",e.x),this.foreignObject.setAttribute("y",e.y),this.foreignObject.setAttribute("width",this.width),this.foreignObject.setAttribute("height",this.height),this._super(t)}},setHtmlContent:function(t){return this.htmlContent=t,this.htmlContainer.innerHTML=t,this},setComponentInstance:function(t){this.componentInstance=t},getPersistentAttributes:function(){var t=this._super();return t.htmlContent=this.htmlContent,t.cssClass=this.cssClass,t},setPersistentAttributes:function(t){this._super(t),t.htmlContent&&this.setHtmlContent(t.htmlContent),t.cssClass&&(this.htmlContainer.className=t.cssClass)}}),e.default=i.default.shape.basic.HtmlNode,t.exports=e.default},"./src/shape/basic/Image.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.shape.basic.Image=i.default.shape.node.Node.extend({NAME:"draw2d.shape.basic.Image",init:function(t,e,n){this._super(t,(0,r.default)({path:this.setPath},e),(0,r.default)({path:this.getPath},n))},setPath:function(t){return this.path=t,null!==this.shape&&this.shape.attr({src:this.path}),this.fireEvent("change:path",{value:this.path}),this},getPath:function(){return this.path},repaint:function(t){return!0===this.repaintBlocked||null===this.shape||((t=t||{}).x=this.getAbsoluteX(),t.y=this.getAbsoluteY(),t.width=this.getWidth(),t.height=this.getHeight(),t.src=this.path,$(this.shape.node).css({display:"inline-block",width:t.width,height:t.height}),this._super(t)),this},createShapeElement:function(){return this.canvas.paper.image(this.path,this.getX(),this.getY(),this.getWidth(),this.getHeight())},getPersistentAttributes:function(){return(0,r.default)(this._super(),{path:this.path})},setPersistentAttributes:function(t){this._super(t),void 0!==t.path&&this.setPath(t.path)}})},"./src/shape/basic/Label.js":(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{"use strict";var _packages=__webpack_require__("./src/packages.js"),_packages2=_interopRequireDefault(_packages),_JSONUtil=__webpack_require__("./src/util/JSONUtil.js"),_JSONUtil2=_interopRequireDefault(_JSONUtil),_extend=__webpack_require__("./src/util/extend.js"),_extend2=_interopRequireDefault(_extend);function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}_packages2.default.shape.basic.Label=_packages2.default.SetFigure.extend({NAME:"draw2d.shape.basic.Label",FONT_FALLBACK:{Georgia:"Georgia, serif","Palatino Linotype":'"Palatino Linotype", "Book Antiqua", Palatino, serif',"Times New Roman":'"Times New Roman", Times, serif',Arial:"Arial, Helvetica, sans-serif","Arial Black":'"Arial Black", Gadget, sans-serif',"Comic Sans MS":'"Comic Sans MS", cursive, sans-serif',Impact:"Impact, Charcoal, sans-serif","Lucida Sans Unicode":'"Lucida Sans Unicode", "Lucida Grande", sans-serif',"Tahoma, Geneva":"Tahoma, Geneva, sans-seri","Trebuchet MS":'"Trebuchet MS", Helvetica, sans-serif',Verdana:"Verdana, Geneva, sans-serif","Courier New":'"Courier New", Courier, monospace',"Lucida Console":'"Lucida Console", Monaco, monospace'},init:function(t,e,n){this.text="",this.cachedWidth=null,this.cachedHeight=null,this.cachedMinWidth=null,this.cachedMinHeight=null,this.fontSize=12,this.fontColor=new _packages2.default.util.Color("#080808"),this.fontFamily=null,this.padding={top:4,right:4,bottom:4,left:4},this.outlineStroke=0,this.outlineColor=new _packages2.default.util.Color(null),this.bold=!1,this.editor=null,this._super((0,_extend2.default)({stroke:1,width:1,height:1,resizeable:!1},t),(0,_extend2.default)({text:this.setText,editor:this.installEditor,outlineStroke:this.setOutlineStroke,outlineColor:this.setOutlineColor,fontFamily:this.setFontFamily,fontSize:this.setFontSize,fontColor:this.setFontColor,padding:this.setPadding,bold:this.setBold},e),(0,_extend2.default)({text:this.getText,outlineStroke:this.getOutlineStroke,outlineColor:this.getOutlineColor,fontFamily:this.getFontFamily,fontSize:this.getFontSize,fontColor:this.getFontColor,padding:this.getPadding,bold:this.isBold},n)),this.installEditPolicy(new _packages2.default.policy.figure.AntSelectionFeedbackPolicy),this.lastAppliedLabelRotation="",this.lastAppliedTextAttributes={}},createSet:function(){return this.canvas.paper.text(0,0,this.text)},setCanvas:function(t){this.clearCache(),this._super(t),this.clearCache()},repaint:function(t){if(!(!0===this.repaintBlocked||null===this.shape||this.parent&&!0===this.parent.repaintBlocked)){var e=this.calculateTextAttr();e.text=this.text;var n=_JSONUtil2.default.flatDiff(e,this.lastAppliedTextAttributes);this.lastAppliedTextAttributes=e,Object.getOwnPropertyNames(n).length>0&&(this.svgNodes.attr(e),this.svgNodes.attr({x:this.padding.left+this.stroke,y:this.svgNodes.getBBox(!0).height/2+this.padding.top+this.getStroke()})),this._super(t)}},calculateTextAttr:function(){var t={"text-anchor":"start","font-size":this.fontSize,"font-weight":!0===this.bold?"bold":"normal",fill:this.fontColor.rgba(),stroke:this.outlineColor.rgba(),"stroke-width":this.outlineStroke};return null!==this.fontFamily&&(t["font-family"]=this.fontFamily),t},applyTransformation:function(){var t="R"+this.rotationAngle;return this.shape.transform(t),this.lastAppliedLabelRotation=t,this.svgNodes.transform("R"+this.rotationAngle+"T"+this.getAbsoluteX()+","+this.getAbsoluteY()),this},setFontSize:function(t){this.clearCache(),this.fontSize=t,this.repaint(),this.fireEvent("change:fontSize",{value:this.fontSize}),this.fireEvent("resize");var e=this;return this.editPolicy.each((function(t,n){n instanceof _packages2.default.policy.figure.DragDropEditPolicy&&n.moved(e.canvas,e)})),this},getFontSize:function(){return this.fontSize},setBold:function(t){this.clearCache(),this.bold=t,this.repaint(),this.fireEvent("change:bold",{value:this.bold}),this.fireEvent("resize");var e=this;return this.editPolicy.each((function(t,n){n instanceof _packages2.default.policy.figure.DragDropEditPolicy&&n.moved(e.canvas,e)})),this},isBold:function(){return this.bold},setOutlineColor:function(t){return this.outlineColor=new _packages2.default.util.Color(t),this.repaint(),this.fireEvent("change:outlineColor",{value:this.outlineColor}),this},getOutlineColor:function(){return this.outlineColor},setOutlineStroke:function(t){return this.outlineStroke=t,this.repaint(),this.fireEvent("change:outlineStroke",{value:this.outlineStroke}),this},getOutlineStroke:function(){return this.outlineStroke},setFontColor:function(t){return this.fontColor=new _packages2.default.util.Color(t),this.repaint(),this.fireEvent("change:fontColor",{value:this.fontColor}),this},getFontColor:function(){return this.fontColor},setPadding:function(t){return this.clearCache(),this.padding="number"==typeof t?{top:t,right:t,bottom:t,left:t}:(0,_extend2.default)(this.padding,t),this.repaint(),this.fireEvent("change:padding",{value:this.padding}),this},getPadding:function(){return this.padding},setFontFamily:function(t){return this.clearCache(),null!=t&&void 0!==this.FONT_FALLBACK[t]&&(t=this.FONT_FALLBACK[t]),this.fontFamily=t,this.repaint(),this.fireEvent("change:fontFamily",{value:this.fontFamily}),this},getFontFamily:function(){return this.fontFamily},setDimension:function(t,e){return this.clearCache(),this._super(t,e),this},clearCache:function(){return this.portRelayoutRequired=!0,this.cachedMinWidth=null,this.cachedMinHeight=null,this.cachedWidth=null,this.cachedHeight=null,this.lastAppliedTextAttributes={},this},getMinWidth:function(){return null===this.shape?0:(null===this.cachedMinWidth&&(this.cachedMinWidth=this.svgNodes.getBBox(!0).width+this.padding.left+this.padding.right+2*this.getStroke()),this.cachedMinWidth)},getMinHeight:function(){return null===this.shape?0:(null===this.cachedMinHeight&&(this.cachedMinHeight=this.svgNodes.getBBox(!0).height+this.padding.top+this.padding.bottom+2*this.getStroke()),this.cachedMinHeight)},getWidth:function(){return null===this.shape?0:(null===this.cachedWidth&&(!0===this.resizeable?this.cachedWidth=Math.max(this.width,this.getMinWidth()):this.cachedWidth=this.getMinWidth()),this.cachedWidth)},getHeight:function(){return null===this.shape?0:(null===this.cachedHeight&&(this.cachedHeight=Math.max(this.height,this.getMinHeight())),this.cachedHeight)},installEditor:function installEditor(editor){return"string"==typeof editor&&(editor=eval("new "+editor+"()")),this.editor=editor,this},onDoubleClick:function(){null!==this.editor&&this.editor.start(this)},getText:function(){return this.text},setText:function(t){this.clearCache(),this.text=t,this.repaint();var e=this;return this.editPolicy.each((function(t,n){n instanceof _packages2.default.policy.figure.DragDropEditPolicy&&n.moved(e.canvas,e)})),this.fireEvent("resize"),this.fireEvent("change:text",{value:this.text}),null!==this.parent&&this.parent.repaint(),this},hitTest:function(t,e,n){if(0===this.rotationAngle)return this._super(t,e,n);var i=this.getBoundingBox();"number"==typeof n&&i.scale(n,n);var r=this.shape.matrix,a=i.getVertices();a.each((function(t,e){var n=r.x(e.x,e.y),i=r.y(e.x,e.y);e.x=n,e.y=i}));for(var s=3,o=!1,l=0;l<4;l++){var c=a.get(l),u=a.get(s);(c.y<e&&u.y>=e||u.y<e&&c.y>=e)&&(c.x<=t||u.x<=t)&&c.x+(e-c.y)/(u.y-c.y)*(u.x-c.x)<t&&(o=!o),s=l}return o},getPersistentAttributes:function(){var t=this._super();return t.text=this.text,t.outlineStroke=this.outlineStroke,t.outlineColor=this.outlineColor.rgba(),t.fontSize=this.fontSize,t.fontColor=this.fontColor.rgba(),t.fontFamily=this.fontFamily,null!==this.editor&&(t.editor=this.editor.NAME),t},setPersistentAttributes:function setPersistentAttributes(memento){return this._super(memento),void 0!==memento.text&&this.setText(memento.text),void 0!==memento.outlineStroke&&this.setOutlineStroke(memento.outlineStroke),void 0!==memento.outlineColor&&this.setOutlineColor(memento.outlineColor),void 0!==memento.fontFamily&&this.setFontFamily(memento.fontFamily),void 0!==memento.fontSize&&this.setFontSize(memento.fontSize),void 0!==memento.fontColor&&this.setFontColor(memento.fontColor),"string"==typeof memento.editor&&this.installEditor(eval("new "+memento.editor+"()")),this}})},"./src/shape/basic/Line.js":(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{"use strict";var _packages=__webpack_require__("./src/packages.js"),_packages2=_interopRequireDefault(_packages),_JSONUtil=__webpack_require__("./src/util/JSONUtil.js"),_JSONUtil2=_interopRequireDefault(_JSONUtil),_extend=__webpack_require__("./src/util/extend.js"),_extend2=_interopRequireDefault(_extend);function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _toConsumableArray(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}_packages2.default.shape.basic.Line=_packages2.default.Figure.extend({NAME:"draw2d.shape.basic.Line",DEFAULT_COLOR:new _packages2.default.util.Color(0,0,0),init:function(t,e,n){this.corona=10,this.isGlowing=!1,this.lineColor=this.DEFAULT_COLOR,this.stroke=1,this.outlineStroke=0,this.outlineColor=new _packages2.default.util.Color(null),this.outlineVisible=!1,this.draggedSegment=null,this.dasharray=null,this.start=new _packages2.default.geo.Point(30,30),this.end=new _packages2.default.geo.Point(100,100),this.vertices=new _packages2.default.util.ArrayList,this.vertices.add(this.start.clone()),this.vertices.add(this.end.clone()),this._super((0,_extend2.default)({deleteable:!1,selectable:!0},t),(0,_extend2.default)({},{start:this.setStartPosition,startX:this.setStartX,startY:this.setStartY,end:this.setEndPosition,endX:this.setEndX,endY:this.setEndY,vertices:this.setVertices,outlineColor:this.setOutlineColor,outlineStroke:this.setOutlineStroke,color:this.setColor,stroke:this.setStroke,corona:this.setCorona,dasharray:this.setDashArray,glow:this.setGlow},e),(0,_extend2.default)({},{start:this.getStartPosition,end:this.getEndPosition,outlineColor:this.getOutlineColor,outlineStroke:this.getOutlineStroke,stroke:this.getStroke,corona:this.getCorona,color:this.getColor,dasharray:this.getDashArray,vertices:this.getVertices},n)),0===this.editPolicy.getSize()&&this.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy)},setOutlineColor:function(t){return this.outlineColor=new _packages2.default.util.Color(t),this.repaint(),this.fireEvent("change:outlineColor",{value:this.outlineColor}),this},getOutlineColor:function(){return this.outlineColor},setOutlineStroke:function(t){return this.outlineStroke=t,this.repaint(),this.fireEvent("change:outlineStroke",{value:this.outlineStroke}),this},getOutlineStroke:function(){return this.outlineStroke},onDragStart:function(t,e,n,i,r,a){var s=this._super(t,e,n,i,a);return!0===s&&!0!==r&&(this.draggedSegment={index:0,start:this.start,end:this.end}),s},onDrag:function(t,e,n,i){null!==this.command&&(this.vertices.each((function(t,e){e.translate(n,i)})),this.command.updateVertices(this.vertices.clone()),this.start.translate(n,i),this.end.translate(n,i),this.svgPathString=null,this._super(t,e,n,i))},onDragEnd:function(t,e,n,i,r){var a=this;this.isInDragDrop=!1,this.draggedSegment=null,null!==this.command&&(this.canvas.getCommandStack().execute(this.command),this.command=null,this.isMoving=!1,this.editPolicy.each((function(s,o){o instanceof _packages2.default.policy.figure.DragDropEditPolicy&&o.onDragEnd(a.canvas,a,t,e,n,i,r)})),this.fireEvent("move",{figure:this,dx:0,dy:0}),this.fireEvent("dragend",{x:t,y:e,shiftKey:n,ctrlKey:i,event:r}))},onClick:function(){},setDashArray:function(t){return this.dasharray=t,this.repaint(),this.fireEvent("change:dashArray",{value:this.dasharray}),this},getDashArray:function(){return this.dasharray},createShapeElement:function(){var t=this.canvas.paper.set();return t.push(this.canvas.paper.path("M"+this.start.x+" "+this.start.y+"L"+this.end.x+" "+this.end.y)),t.push(this.canvas.paper.path("M"+this.start.x+" "+this.start.y+"L"+this.end.x+" "+this.end.y)),t.node=t.items[1].node,this.outlineVisible=!0,t},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(void 0===t?t={stroke:this.lineColor.rgba(),"stroke-width":this.stroke,path:["M",this.start.x,this.start.y,"L",this.end.x,this.end.y].join(" ")}:(void 0===t.path&&(t.path=["M",this.start.x,this.start.y,"L",this.end.x,this.end.y].join(" ")),_JSONUtil2.default.ensureDefault(t,"stroke",this.lineColor.rgba()),_JSONUtil2.default.ensureDefault(t,"stroke-width",this.stroke)),_JSONUtil2.default.ensureDefault(t,"stroke-dasharray",this.dasharray),this._super(t),this.outlineStroke>0?(this.shape.items[0].attr({"stroke-width":this.outlineStroke+this.stroke,stroke:this.outlineColor.rgba()}),!1===this.outlineVisible&&this.shape.items[0].show(),this.outlineVisible=!0):!0===this.outlineVisible&&(this.shape.items[0].attr({"stroke-width":0,stroke:"none"}),this.shape.items[0].hide(),this.outlineVisible=!1))},toBack:function(t){return this._super(t),!0===this.outlineVisible&&this.shape.items[0].insertBefore(this.shape.items[1]),this},setGlow:function(t){if(this.isGlowing!==t)return!0===t?(this._lineColor=this.lineColor,this._stroke=this.stroke,this.setColor(new _packages2.default.util.Color("#3f72bf")),this.setStroke(4*this.stroke|0)):(this.setColor(this._lineColor),this.setStroke(this._stroke)),this.isGlowing=t,this},isResizeable:function(){return!0},setStroke:function(t){return this.stroke=parseFloat(t),this.repaint(),this.fireEvent("change:stroke",{value:this.stroke}),this},getStroke:function(){return this.stroke},setCorona:function(t){return this.corona=parseFloat(t),this},getCorona:function(){return this.corona},setColor:function(t){return this.lineColor=new _packages2.default.util.Color(t),this.repaint(),this.fireEvent("change:color",{value:this.lineColor}),this},getColor:function(){return this.lineColor},translate:function(t,e){this.vertices.each((function(n,i){i.translate(t,e)})),this.start=this.vertices.first().clone(),this.end=this.vertices.last().clone();var n=this;return this.editPolicy.each((function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(n.canvas,n)})),this.svgPathString=null,this.repaint(),this},getBoundingBox:function(){var t=Math.min.apply(Math,_toConsumableArray(this.vertices.asArray().map((function(t){return t.x})))),e=Math.min.apply(Math,_toConsumableArray(this.vertices.asArray().map((function(t){return t.y})))),n=Math.max.apply(Math,_toConsumableArray(this.vertices.asArray().map((function(t){return t.x}))))-t,i=Math.max.apply(Math,_toConsumableArray(this.vertices.asArray().map((function(t){return t.y}))))-e;return new _packages2.default.geo.Rectangle(t,e,n,i)},setStartPosition:function(t,e){var n=new _packages2.default.geo.Point(t,e);if(this.start.equals(n))return this;this.start.setPosition(n),this.vertices.first().setPosition(n),this.repaint();var i=this;return this.editPolicy.each((function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(i.canvas,i)})),this.fireEvent("change:start",{value:this.start}),this},setStartPoint:function(t,e){return this.setStartPosition(t,e)},setStartX:function(t){this.setStartPosition(t,this.start.y)},setStartY:function(t){this.setStartPosition(this.start.x,t)},setEndX:function(t){this.setEndPosition(t,this.end.y)},setEndY:function(t){this.setEndPosition(this.end.x,t)},setEndPosition:function(t,e){var n=new _packages2.default.geo.Point(t,e);if(this.end.equals(n))return this;this.end.setPosition(n),this.vertices.last().setPosition(n),this.repaint();var i=this;return this.editPolicy.each((function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(i.canvas,i)})),this.fireEvent("change:end",{value:this.end}),this},setEndPoint:function(t,e){return this.setEndPosition(t,e)},getStartX:function(){return this.start.x},getStartY:function(){return this.start.y},getStartPosition:function(){return this.start.clone()},getStartPoint:function(){return this.getStartPosition()},getEndX:function(){return this.end.x},getEndY:function(){return this.end.y},getEndPosition:function(){return this.end.clone()},getEndPoint:function(){return this.getEndPosition()},getX:function(){return this.getBoundingBox().x},getY:function(){return this.getBoundingBox().y},getVertex:function(t){return this.vertices.get(t)},setVertex:function(t,e,n){e instanceof _packages2.default.geo.Point&&(n=e.y,e=e.x);var i=this.vertices.get(t);if(null!==i&&(i.x!==e||i.y!==n)){i.x=parseFloat(e),i.y=parseFloat(n),this.start=this.vertices.first().clone(),this.end=this.vertices.last().clone(),this.svgPathString=null,this.routingRequired=!0,this.repaint();var r=this;return this.editPolicy.each((function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(r.canvas,r)})),this.fireEvent("change:vertices",{value:this.vertices}),this}},getVertices:function(){return this.vertices},setVertices:function(t){var e=this,n=this;if(Array.isArray(t))this.vertices=new _packages2.default.util.ArrayList,t.forEach((function(t){e.vertices.add(new _packages2.default.geo.Point(t))}));else{if(!(t instanceof _packages2.default.util.ArrayList))throw"invalid argument for Line.setVertices";this.vertices=t.clone(!0)}return this.vertices.getSize()>1&&(this.start=this.vertices.first().clone(),this.end=this.vertices.last().clone()),this.svgPathString=null,this.repaint(),this.selectionHandles.isEmpty()||this.editPolicy.each((function(t,e){e instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy&&(e.onUnselect(n.canvas,n),e.onSelect(n.canvas,n))})),this.editPolicy.each((function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(n.canvas,n)})),this.fireEvent("change:vertices",{value:this.vertices}),this},getSegments:function(){var t=new _packages2.default.util.ArrayList;return t.add({start:this.getStartPosition(),end:this.getEndPosition()}),t},getLength:function(){return Math.sqrt((this.start.x-this.end.x)*(this.start.x-this.end.x)+(this.start.y-this.end.y)*(this.start.y-this.end.y))},getAngle:function(){var t=this.getLength(),e=-180/Math.PI*Math.asin((this.start.y-this.end.y)/t);return e<0?e=this.end.x<this.start.x?Math.abs(e)+180:360-Math.abs(e):this.end.x<this.start.x&&(e=180-e),e},createCommand:function(t){return t.getPolicy()===_packages2.default.command.CommandType.MOVE&&this.isDraggable()?new _packages2.default.command.CommandMoveVertices(this):t.getPolicy()===_packages2.default.command.CommandType.DELETE&&this.isDeleteable()?new _packages2.default.command.CommandDelete(this):t.getPolicy()===_packages2.default.command.CommandType.MOVE_BASEPOINT&&this.isDraggable()?new _packages2.default.command.CommandMoveVertex(this):null},installEditPolicy:function(t){!(t instanceof _packages2.default.policy.line.LineSelectionFeedbackPolicy)&&t instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy||this._super(t)},hitTest:function(t,e){return _packages2.default.shape.basic.Line.hit(this.corona+this.stroke,this.start.x,this.start.y,this.end.x,this.end.y,t,e)},pointProjection:function(t,e){var n=new _packages2.default.geo.Point(t,e),i=this.getStartPosition(),r=this.getEndPosition();return _packages2.default.geo.Line.pointProjection(i.x,i.y,r.x,r.y,n.x,n.y)},lerp:function(t){var e=this.getStartPosition(),n=this.getEndPosition();return t=Math.min(1,Math.max(0,t)),new _packages2.default.geo.Point(e.x+(n.x-e.x)*t,e.y+(n.y-e.y)*t)},intersection:function(t){var e=new _packages2.default.util.ArrayList;if(t===this)return e;var n=this.getSegments(),i=t.getSegments();return n.each((function(t,n){i.each((function(t,i){var r=_packages2.default.shape.basic.Line.intersection(n.start,n.end,i.start,i.end);null!==r&&e.add(r)}))})),e},getPersistentAttributes:function(){var t=this._super();return delete t.x,delete t.y,delete t.width,delete t.height,t.stroke=this.stroke,t.color=this.getColor().rgba(),t.outlineStroke=this.outlineStroke,t.outlineColor=this.outlineColor.rgba(),null!==this.dasharray&&(t.dasharray=this.dasharray),this.editPolicy.getSize()>0&&(t.policy=this.editPolicy.first().NAME),t.vertex=[],this.getVertices().each((function(e,n){t.vertex.push({x:n.x,y:n.y})})),t},setPersistentAttributes:function setPersistentAttributes(memento){if(this._super(memento),"string"==typeof memento.dasharray&&(this.dasharray=memento.dasharray),void 0!==memento.stroke&&this.setStroke(parseFloat(memento.stroke)),void 0!==memento.color&&this.setColor(memento.color),void 0!==memento.outlineStroke&&this.setOutlineStroke(memento.outlineStroke),void 0!==memento.outlineColor&&this.setOutlineColor(memento.outlineColor),void 0!==memento.policy)try{this.installEditPolicy(eval("new "+memento.policy+"()"))}catch(t){debug.warn("Unable to install edit policy '"+memento.policy+"' forced by "+this.NAME+".setPersistentAttributes. Using default.")}return Array.isArray(memento.vertex)&&memento.vertex.length>1&&this.setVertices(memento.vertex),this}}),_packages2.default.shape.basic.Line.intersection=function(t,e,n,i){var r=null,a=(i.x-n.x)*(t.y-n.y)-(i.y-n.y)*(t.x-n.x),s=(e.x-t.x)*(t.y-n.y)-(e.y-t.y)*(t.x-n.x),o=(i.y-n.y)*(e.x-t.x)-(i.x-n.x)*(e.y-t.y);if(0!==o){var l=a/o,c=s/o;0<=l&&l<=1&&0<=c&&c<=1&&((r=new _packages2.default.geo.Point(t.x+l*(e.x-t.x)|0,t.y+l*(e.y-t.y)|0)).justTouching=0===l||1===l||0===c||1===c)}return r},_packages2.default.shape.basic.Line.hit=function(t,e,n,i,r,a,s){return _packages2.default.geo.Line.distance(e,n,i,r,a,s)<t}},"./src/shape/basic/LineEndResizeHandle.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.basic.LineEndResizeHandle=a.default.shape.basic.LineResizeHandle.extend({NAME:"draw2d.shape.basic.LineEndResizeHandle",init:function(t){this._super({owner:t,index:t.getVertices().getSize()-1})},getRelatedPort:function(){return this.owner instanceof a.default.Connection?this.owner.getTarget():null},getOppositePort:function(){return this.owner instanceof a.default.Connection?this.owner.getSource():null},onDrag:function(t,e,n,i){this._super(t,e,n,i);var r=this.owner.getEndPoint().clone();return r.translate(n,i),null!==this.command&&this.command.updatePosition(r),this.owner.setEndPoint(r),this.owner.isMoving=!0,!0},onDrop:function(t,e,n,i,r,s){this.owner.isMoving=!1,this.owner instanceof a.default.Connection&&null!==this.command&&(this.command.setNewPorts(this.owner.getSource(),t),this.getCanvas().getCommandStack().execute(this.command)),this.command=null},relocate:function(){var t=this.getWidth()/2,e=this.getHeight()/2,n=this.owner.getEndPoint();return this.setPosition(n.x-t,n.y-e),this}})},"./src/shape/basic/LineResizeHandle.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.shape.basic.LineResizeHandle=i.default.shape.basic.Circle.extend({NAME:"draw2d.shape.basic.LineResizeHandle",init:function(t,e,n){var i=this;this.zoomCallback=function(){i.attr({width:i.origWidth*i.getCanvas().getZoom(),height:i.origHeight*i.getCanvas().getZoom(),stroke:i.origStroke*i.getCanvas().getZoom()}),i.blockEvent||i.owner.fireEvent("move",{})},this._super((0,r.default)({bgColor:"#5bcaff",stroke:1,width:10,height:10,minWidth:.3,minHeight:.3,selectable:!1},t),(0,r.default)({owner:this.setOwner,index:this.setIndex},e),(0,r.default)({owner:this.getOwner,index:this.getIndex},n)),this.isResizeHandle=!0,this.currentTarget=null,this.origWidth=this.width,this.origHeight=this.height,this.origStroke=this.stroke},getOwner:function(){return this.owner},setOwner:function(t){return this.owner=t,this},getIndex:function(){return this.index},setIndex:function(t){return this.index=t,this},createShapeElement:function(){var t=this._super();return t.attr({cursor:"move"}),t},setBackgroundColor:function(t){return t=new i.default.util.Color(t),this.bgGradient="r(.4,.3)"+t.hash()+"-"+t.darker(.1).hash()+":60-"+t.darker(.2).hash(),this._super(t),this.setColor(t.darker(.3)),this},getRelatedPort:function(){return null},getOppositePort:function(){return null},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(t=t||{},"none"===this.bgColor.hash()||this.getAlpha()<.9?t.fill=this.bgColor.rgba():t.fill=this.bgGradient,this._super(t))},onDragStart:function(t,e,n,r,a){return this.command=this.owner.createCommand(new i.default.command.CommandType(i.default.command.CommandType.MOVE_BASEPOINT)),null!==this.command&&this.command.setIndex(this.index),this.setAlpha(.2),this.shape.attr({cursor:"crosshair"}),this.fireEvent("dragstart",{x:t,y:e,shiftKey:n,ctrlKey:r,event:a}),!0},onDrag:function(t,e,n,i){this.setPosition(this.x+n,this.y+i);var r=this.getOppositePort(),a=null!==r?r.getCanvas().getBestFigure(this.getX(),this.getY(),[this,this.owner]):null;return a!==this.currentTarget&&(null!==this.currentTarget&&(this.currentTarget.onDragLeave(r),this.currentTarget.setGlow(!1),this.currentTarget.fireEvent("dragLeave",{draggingElement:r})),null!==a&&(this.currentTarget=a.delegateTarget(r),null!==this.currentTarget&&(this.currentTarget.setGlow(!0),this.currentTarget.onDragEnter(r),this.currentTarget.fireEvent("dragEnter",{draggingElement:r})))),!0},onDragEnd:function(t,e,n,r,a){if(!this.isDraggable())return!1;this.shape.attr({cursor:"move"});var s=this.getOppositePort();null!==s&&null!==this.currentTarget&&(this.onDrop(this.currentTarget,t,e,n,r,a),this.currentTarget.onDragLeave(s),this.currentTarget.setGlow(!1),this.currentTarget.fireEvent("dragLeave",{draggingElement:s}),this.currentTarget.onCatch(this,t,e,n,r,a),this.currentTarget=null),this.owner.isMoving=!1,this.owner instanceof i.default.Connection?null!==this.command&&this.command.cancel():null!==this.command&&this.getCanvas().getCommandStack().execute(this.command),this.command=null,this.setAlpha(1),this.fireEvent("dragend",{x:t,y:e,shiftKey:n,ctrlKey:r,event:a})},relocate:function(){return this},supportsSnapToHelper:function(){return!(this.owner instanceof i.default.Connection)},show:function(t,e,n){this.setCanvas(t);try{this.blockEvent=!0,this.zoomCallback()}finally{this.blockEvent=!1}this.shape.toFront(),this.canvas.resizeHandles.add(this)},hide:function(){null!==this.shape&&(this.canvas.resizeHandles.remove(this),this.setCanvas(null))},setCanvas:function(t){null!==this.canvas&&this.canvas.off(this.zoomCallback),this._super(t),null!==this.canvas&&this.canvas.on("zoom",this.zoomCallback)},onKeyDown:function(t,e){this.canvas.onKeyDown(t,e)}})},"./src/shape/basic/LineStartResizeHandle.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.basic.LineStartResizeHandle=a.default.shape.basic.LineResizeHandle.extend({NAME:"draw2d.shape.basic.LineStartResizeHandle",init:function(t){this._super({owner:t,index:0})},getRelatedPort:function(){return this.owner instanceof a.default.Connection?this.owner.getSource():null},getOppositePort:function(){return this.owner instanceof a.default.Connection?this.owner.getTarget():null},onDrag:function(t,e,n,i){this._super(t,e,n,i);var r=this.owner.getStartPoint();return r.translate(n,i),null!==this.command&&this.command.updatePosition(r),this.owner.setStartPoint(r),this.owner.isMoving=!0,!0},onDrop:function(t,e,n,i,r,s){this.owner.isMoving=!1,this.owner instanceof a.default.Connection&&null!==this.command&&(this.command.setNewPorts(t,this.owner.getTarget()),this.getCanvas().getCommandStack().execute(this.command)),this.command=null},relocate:function(){var t=this.getWidth()/2,e=this.getHeight()/2,n=this.owner.getStartPoint();return this.setPosition(n.x-t,n.y-e),this}})},"./src/shape/basic/Oval.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.shape.basic.Oval=i.default.VectorFigure.extend({NAME:"draw2d.shape.basic.Oval",init:function(t,e,n){this._super((0,r.default)({bgColor:"#C02B1D",color:"#1B1B1B"},t),(0,r.default)({center:this.setCenter},e),n)},createShapeElement:function(){var t=this.getWidth()/2,e=this.getHeight()/2;return this.canvas.paper.ellipse(this.getAbsoluteX()+t,this.getAbsoluteY()+e,t,e)},getCenter:function(){var t=this.getWidth()/2,e=this.getHeight()/2;return this.getPosition().translated(t,e)},setCenter:function(t,e){var n=new i.default.geo.Point(t,e),r=this.getWidth()/2,a=this.getHeight()/2;return n.translate(-r,-a),this.setPosition(n),this.fireEvent("change:center",{value:{x:t,y:e}}),this},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(void 0===(t=t||{}).rx&&(t.rx=this.width/2,t.ry=this.height/2),void 0===t.cx&&(t.cx=this.getAbsoluteX()+t.rx,t.cy=this.getAbsoluteY()+t.ry),this._super(t))},intersectionWithLine:function(t,e){var n=this.getWidth()/2,r=this.getHeight()/2,a=new i.default.util.ArrayList,s=new i.default.geo.Point(t.x,t.y),o=e.subtract(t),l=new i.default.geo.Point(this.getAbsoluteX()+n,this.getAbsoluteY()+r),c=s.subtract(l),u=new i.default.geo.Point(o.x/(n*n),o.y/(r*r)),h=new i.default.geo.Point(c.x/(n*n),c.y/(r*r)),d=o.dot(u),f=o.dot(h),p=f*f-d*(c.dot(h)-1);if(p<0);else if(p>0){var g=Math.sqrt(p),m=(-f-g)/d,y=(-f+g)/d;(m<0||1<m)&&(y<0||1<y)||(0<=m&&m<=1&&a.add(t.lerp(e,m)),0<=y&&y<=1&&a.add(t.lerp(e,y)))}else{var v=-f/d;0<=v&&v<=1&&a.add(t.lerp(e,v))}return a}})},"./src/shape/basic/PolyLine.js":(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{"use strict";var _packages=__webpack_require__("./src/packages.js"),_packages2=_interopRequireDefault(_packages),_JSONUtil=__webpack_require__("./src/util/JSONUtil.js"),_JSONUtil2=_interopRequireDefault(_JSONUtil),_extend=__webpack_require__("./src/util/extend.js"),_extend2=_interopRequireDefault(_extend);function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}_packages2.default.shape.basic.PolyLine=_packages2.default.shape.basic.Line.extend({NAME:"draw2d.shape.basic.PolyLine",init:function(t,e,n){this.svgPathString=null,this.oldPoint=null,this.router=null,this.routingRequired=!0,this.lineSegments=new _packages2.default.util.ArrayList,this.radius="",this._super((0,_extend2.default)({router:new _packages2.default.layout.connection.VertexRouter},t),(0,_extend2.default)({},{router:this.setRouter,radius:this.setRadius},e),(0,_extend2.default)({},{router:this.getRouter,radius:this.getRadius},n))},setRadius:function(t){return this.radius=t,this.svgPathString=null,this.repaint(),this.fireEvent("change:radius",{value:this.radius}),this},setOutlineStroke:function(t){return this.outlineStroke!==t&&(this.svgPathString=null,this.routingRequired=!0),this._super(t),this},getRadius:function(){return this.radius},setStartPoint:function(t,e){this.vertices.getSize()>0?this.vertices.first().setPosition(t,e):this.vertices.add(new _packages2.default.geo.Point(t,e)),this.start=this.vertices.first().clone(),this.calculatePath({startMoved:!0,endMoved:!1}),this.repaint();var n=this;return this.editPolicy.each((function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(n.canvas,n)})),this.fireEvent("change:start",{value:this.start}),this},setEndPoint:function(t,e){this.vertices.getSize()>1?this.vertices.last().setPosition(t,e):this.vertices.add(new _packages2.default.geo.Point(t,e)),this.end=this.vertices.last().clone(),!1===this.isInDragDrop&&this.calculatePath({startMoved:!1,endMoved:!0}),this.repaint();var n=this;return this.editPolicy.each((function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(n.canvas,n)})),this.fireEvent("change:end",{value:this.end}),this},addVertex:function(t,e){if(this.vertices.add(new _packages2.default.geo.Point(t,e)),this.start=this.vertices.first().clone(),this.end=this.vertices.last().clone(),this.svgPathString=null,this.repaint(),!this.selectionHandles.isEmpty()){var n=this;this.editPolicy.each((function(t,e){e instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy&&(e.onUnselect(n.canvas,n),e.onSelect(n.canvas,n))}))}return this.fireEvent("change:vertices",{value:this.vertices}),this},insertVertexAt:function(t,e,n){var i=new _packages2.default.geo.Point(e,n);if(this.vertices.insertElementAt(i,t),this.start=this.vertices.first().clone(),this.end=this.vertices.last().clone(),this.svgPathString=null,this.repaint(),!this.selectionHandles.isEmpty()){var r=this;this.editPolicy.each((function(t,e){e instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy&&(e.onUnselect(r.canvas,r),e.onSelect(r.canvas,r))}))}return this.fireEvent("change:vertices",{value:this.vertices}),this},removeVertexAt:function(t){var e=this.vertices.removeElementAt(t);if(this.start=this.vertices.first().clone(),this.end=this.vertices.last().clone(),this.svgPathString=null,this.repaint(),!this.selectionHandles.isEmpty()){var n=this;this.editPolicy.each((function(t,e){e instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy&&(e.onUnselect(n.canvas,n),e.onSelect(n.canvas,n))}))}return this.fireEvent("change:vertices",{value:this.vertices}),e},setRouter:function(t){return null!==this.router&&this.router.onUninstall(this),this.router=null==t?new _packages2.default.layout.connection.DirectRouter:t,this.router.onInstall(this),this.routingRequired=!0,this.repaint(),this.fireEvent("change:router",{value:this.router}),this},getRouter:function(){return this.router},calculatePath:function(t){t=t||{},null!==this.shape&&(this.svgPathString=null,t.oldVertices=this.vertices,this.oldPoint=null,this.lineSegments=new _packages2.default.util.ArrayList,this.vertices=new _packages2.default.util.ArrayList,this.router.route(this,t),this.routingRequired=!1,this.fireEvent("routed"),this.fireEvent("change:route",{}))},repaint:function(t){return!0===this.repaintBlocked||null===this.shape?this:(null!==this.svgPathString&&!0!==this.routingRequired||this.calculatePath(),void 0===t&&(t={}),t.path=this.svgPathString,_JSONUtil2.default.ensureDefault(t,"stroke-linecap","round"),_JSONUtil2.default.ensureDefault(t,"stroke-linejoin","round"),this._super(t))},getSegments:function(){return this.lineSegments},addPoint:function(t,e){void 0!==e&&(t=new _packages2.default.geo.Point(t,e)),this.vertices.add(t),null!==this.oldPoint&&this.lineSegments.add({start:this.oldPoint,end:t}),this.svgPathString=null,this.oldPoint=t},onDragStart:function(t,e,n,i,r,a){var s=this._super(t,e,n,i,r,a);return!0===s&&!0!==r&&(this.draggedSegment=this.hitSegment(t,e)),s},getLength:function(){for(var t=0,e=0;e<this.lineSegments.getSize();e++){var n=this.lineSegments.get(e),i=n.start,r=n.end;t+=Math.sqrt((i.x-r.x)*(i.x-r.x)+(i.y-r.y)*(i.y-r.y))}return t},setVertices:function(t){this.router.verticesSet(this),this._super(t)},pointProjection:function(t,e){for(var n=null,i=null,r=null,a=null,s=null,o=Number.MAX_SAFE_INTEGER,l=new _packages2.default.geo.Point(t,e),c=0;c<this.lineSegments.getSize();c++)if(r=(s=this.lineSegments.get(c)).start,a=s.end,null!==(i=_packages2.default.geo.Line.pointProjection(r.x,r.y,a.x,a.y,l.x,l.y))){var u=i.distance(l);(null==n||u<o)&&((n=i).index=c,o=u)}if(null!==n){for(var h=0,d=void 0,f=0;f<n.index;f++)h+=(d=this.lineSegments.get(f)).start.distance(d.end);r=(d=this.lineSegments.get(n.index)).start,a=d.end,h+=r.distance(a)*_packages2.default.geo.Line.inverseLerp(a.x,a.y,r.x,r.y,n.x,n.y),n.percentage=1/this.getLength()*h}return n},lerp:function(t){for(var e=this.getLength()*t,n=e,i=null,r=null,a=null,s=0;s<this.lineSegments.getSize();s++){if(r=(i=this.lineSegments.get(s)).start,a=i.end,(e-=r.distance(a))<=0)return t=1/r.distance(a)*n,new _packages2.default.geo.Point(r.x+(a.x-r.x)*t,r.y+(a.y-r.y)*t);n=e}return a},hitSegment:function(t,e){for(var n=0;n<this.lineSegments.getSize();n++){var i=this.lineSegments.get(n);if(_packages2.default.shape.basic.Line.hit(this.corona+this.stroke,i.start.x,i.start.y,i.end.x,i.end.y,t,e))return{index:n,start:i.start,end:i.end}}return null},hitTest:function(t,e){return null!==this.hitSegment(t,e)},createCommand:function(t){if(t.getPolicy()===_packages2.default.command.CommandType.DELETE){if(!0===this.isDeleteable())return new _packages2.default.command.CommandDelete(this)}else if(t.getPolicy()===_packages2.default.command.CommandType.MOVE_VERTEX){if(!0===this.isResizeable())return new _packages2.default.command.CommandMoveVertex(this)}else if(t.getPolicy()===_packages2.default.command.CommandType.MOVE_VERTICES&&!0===this.isResizeable())return new _packages2.default.command.CommandMoveVertices(this);return this._super(t)},getPersistentAttributes:function(){var t=(0,_extend2.default)(this._super(),{router:this.router.NAME,radius:this.radius});return t=this.router.getPersistentAttributes(this,t)},setPersistentAttributes:function setPersistentAttributes(memento){if(this._super(memento),void 0!==memento.router)try{this.setRouter(eval("new "+memento.router+"()"))}catch(t){debug.warn("Unable to install router '"+memento.router+"' forced by "+this.NAME+".setPersistentAttributes. Using default")}void 0!==memento.radius&&this.setRadius(memento.radius),this.router.setPersistentAttributes(this,memento),this.vertices.getSize()>1&&(this.start=this.vertices.first().clone(),this.end=this.vertices.last().clone())}})},"./src/shape/basic/Polygon.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/JSONUtil.js"));function a(t){return t&&t.__esModule?t:{default:t}}function s(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}i.default.shape.basic.Polygon=i.default.VectorFigure.extend({NAME:"draw2d.shape.basic.Polygon",init:function(t,e,n){if(this.minX=0,this.minY=0,this.maxX=0,this.maxY=0,this.vertices=new i.default.util.ArrayList,this._super(t,e,n),0===this.vertices.getSize()){var r=this.width,a=this.height,s=this.getPosition();this.addVertex(new i.default.geo.Point(0,0)),this.addVertex(new i.default.geo.Point(r,0)),this.addVertex(new i.default.geo.Point(r,a)),this.setPosition(s)}this.svgPathString=null,this.installEditPolicy(new i.default.policy.figure.VertexSelectionFeedbackPolicy)},setRadius:function(t){return this.svgPathString=null,this._super(t),this.fireEvent("change:radius",{value:t}),this},createShapeElement:function(){return this.canvas.paper.path("M0 10L100 100")},calculatePath:function(){var t=this.getRadius(),e=[];if(0===t){var n=this.vertices.getSize(),r=this.vertices.get(0);e.push("M",r.x," ",r.y);for(var a=1;a<n;a++)r=this.vertices.get(a),e.push("L",r.x," ",r.y);e.push("Z")}else{length=this.vertices.getSize();var s=this.vertices.first(),o=this.vertices.last();s.equals(o)&&(length-=1,o=this.vertices.get(length-1));var l=i.default.geo.Util.insetPoint(s,o,t);e.push("M",l.x,",",l.y);for(var c=0;c<length;c++){s=this.vertices.get(c),o=this.vertices.get((c+1)%length);var u=i.default.geo.Util.insetPoint(s,o,t),h=i.default.geo.Util.insetPoint(o,s,t);e.push("Q",s.x,",",s.y," ",u.x,", ",u.y),e.push("L",h.x,",",h.y)}}return this.svgPathString=e.join(""),this},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(null===this.svgPathString&&this.calculatePath(),t=t||{},r.default.ensureDefault(t,"path",this.svgPathString),this._super(t))},translate:function(t,e){var n=this;return t=this.x+t,e=this.y+e,this.editPolicy.each((function(r,a){if(a instanceof i.default.policy.figure.DragDropEditPolicy){var s=a.adjustPosition(n,t,e);t=s.x,e=s.y}})),t-=this.x,e-=this.y,this.vertices.each((function(n,i){i.translate(t,e)})),this.svgPathString=null,this.updateBoundingBox(),this.repaint(),this.editPolicy.each((function(t,e){e instanceof i.default.policy.figure.DragDropEditPolicy&&e.moved(n.canvas,n)})),this.fireEvent("move",{figure:this,dx:t,dy:e}),this.fireEvent("change:x",{value:this.x}),this.fireEvent("change:y",{value:this.y}),this},setPosition:function(t,e){t instanceof i.default.geo.Point&&(e=t.y,t=t.x),this.svgPathString=null;var n=t-this.minX,r=e-this.minY;return this.translate(n,r),this.x=t,this.y=e,this},setDimension:function(t,e){var n=this.width,i=this.height;this._super(t,e);var r=1/n*this.width,a=1/i*this.height,s=this.x,o=this.y;return this.vertices.each((function(t,e){var n=(e.getX()-s)*r,i=(e.getY()-o)*a;e.setPosition(s+n,o+i)})),this.svgPathString=null,this.repaint(),this.fireEvent("change:dimension",{value:{width:this.width,height:this.height}}),this},getVertices:function(){return this.vertices},getVertex:function(t){return this.vertices.get(t)},resetVertices:function(){var t=this;return this.vertices=new i.default.util.ArrayList,this.svgPathString=null,this.repaint(),this.updateBoundingBox(),this.editPolicy.each((function(e,n){n instanceof i.default.policy.figure.DragDropEditPolicy&&n.moved(t.canvas,t)})),this},setVertex:function(t,e,n){var r=this.vertices.get(t);if(null===r||r.x===e&&r.y===n)return this;r.x=parseFloat(e),r.y=parseFloat(n),this.svgPathString=null,this.repaint(),this.updateBoundingBox();var a=this;return this.editPolicy.each((function(t,e){e instanceof i.default.policy.figure.DragDropEditPolicy&&e.moved(a.canvas,a)})),this.fireEvent("change:vertices",{value:this.vertices}),this},addVertex:function(t,e){this.vertices.add(new i.default.geo.Point(t,e)),this.svgPathString=null,this.repaint(),this.updateBoundingBox();var n=this;return this.editPolicy.each((function(t,e){e instanceof i.default.policy.figure.DragDropEditPolicy&&e.moved(n.canvas,n)})),this.fireEvent("change:vertices",{value:this.vertices}),this},insertVertexAt:function(t,e,n){if(this.vertices.insertElementAt(new i.default.geo.Point(e,n),t),this.svgPathString=null,this.repaint(),this.updateBoundingBox(),!this.selectionHandles.isEmpty()){var r=this;this.editPolicy.each((function(t,e){e instanceof i.default.policy.figure.SelectionFeedbackPolicy&&(e.onUnselect(r.canvas,r),e.onSelect(r.canvas,r))}))}return this.fireEvent("change:vertices",{value:this.vertices}),this},removeVertexAt:function(t){if(this.vertices.getSize()<=3)return null;var e=this.vertices.removeElementAt(t);if(this.svgPathString=null,this.repaint(),this.updateBoundingBox(),!this.selectionHandles.isEmpty()){var n=this;this.editPolicy.each((function(t,e){e instanceof i.default.policy.figure.SelectionFeedbackPolicy&&(e.onUnselect(n.canvas,n),e.onSelect(n.canvas,n))}))}return this.fireEvent("change:vertices",{value:this.vertices}),e},setRotationAngle:function(t){this.rotationAngle=360%t;var e=t/(180/Math.PI),n=this.getBoundingBox().getCenter();this.vertices.each((function(t,i){var r=function(t,e,n,i,r){var a=Math.cos,s=Math.sin;return{x:(t-n)*a(r)-(e-i)*s(r)+n,y:(t-n)*s(r)+(e-i)*a(r)+i}}(i.x,i.y,n.x,n.y,e);i.setPosition(r.x,r.y)})),this.updateBoundingBox();var r=this;return this.editPolicy.each((function(t,e){e instanceof i.default.policy.figure.DragDropEditPolicy&&e.moved(r.canvas,r)})),this.repaint(),this.fireEvent("change:angle",{value:this.rotationAngle}),this},updateBoundingBox:function(){this.vertices.isEmpty()?(this.minX=this.x,this.minY=this.y,this.maxX=this.x+this.width,this.maxY=this.y+this.height):(this.minX=this.x=Math.min.apply(Math,s(this.vertices.asArray().map((function(t){return t.x})))),this.minY=this.y=Math.min.apply(Math,s(this.vertices.asArray().map((function(t){return t.y})))),this.maxX=Math.max.apply(Math,s(this.vertices.asArray().map((function(t){return t.x})))),this.maxY=Math.max.apply(Math,s(this.vertices.asArray().map((function(t){return t.y})))),this.width=this.maxX-this.minX,this.height=this.maxY-this.minY)},createCommand:function(t){return t.getPolicy()===i.default.command.CommandType.MOVE_VERTEX&&!0===this.isResizeable()?new i.default.command.CommandMoveVertex(this):this._super(t)},getPersistentAttributes:function(){var t=this._super();return t.vertices=[],this.vertices.each((function(e,n){t.vertices.push({x:n.x,y:n.y})})),t},setPersistentAttributes:function(t){var e=this;this._super(t),void 0!==t.vertices&&(this.vertices=new i.default.util.ArrayList,t.vertices.forEach((function(t){e.addVertex(t)})))}})},"./src/shape/basic/Rectangle.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.shape.basic.Rectangle=i.default.VectorFigure.extend({NAME:"draw2d.shape.basic.Rectangle",init:function(t,e,n){this.dasharray=null,this._super((0,r.default)({bgColor:"#edf1f7",color:"#1B1B1B"},t),(0,r.default)({},{dash:this.setDashArray,dasharray:this.setDashArray},e),(0,r.default)({},{dash:this.getDashArray,dasharray:this.getDashArray},n))},repaint:function(t){if(!0!==this.repaintBlocked&&null!==this.shape)return t=(0,r.default)({},{width:this.getWidth(),height:this.getHeight(),r:this.getRadius()},t),null!==this.dasharray&&(t["stroke-dasharray"]=this.dasharray),this._super(t),this},applyTransformation:function(){var t="R"+this.rotationAngle;if(90===this.getRotationAngle()||270===this.getRotationAngle()){var e=this.getHeight()/this.getWidth();t=t+"S"+e+","+1/e+","+(this.getAbsoluteX()+this.getWidth()/2)+","+(this.getAbsoluteY()+this.getHeight()/2)}return this.shape.transform(t),this},createShapeElement:function(){return this.canvas.paper.rect(this.getAbsoluteX(),this.getAbsoluteY(),this.getWidth(),this.getHeight())},setDashArray:function(t){return this.dasharray=t,this.repaint(),this.fireEvent("change:dashArray",{value:this.dasharray}),this},getDashArray:function(){return this.dasharray},getPersistentAttributes:function(){var t=this._super();return null!==this.dasharray&&(t.dasharray=this.dasharray),t},setPersistentAttributes:function(t){return this._super(t),"string"==typeof t.dasharray&&(this.dasharray=t.dasharray),this}})},"./src/shape/basic/Text.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.basic.Text=a.default.shape.basic.Label.extend({NAME:"draw2d.shape.basic.Text",init:function(t,e,n){this.cachedWrappedAttr=null,this._super(extend({width:100,height:50,resizeable:!0},t),e,n),this.installEditPolicy(new a.default.policy.figure.WidthSelectionFeedbackPolicy)},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(this.svgNodes.attr(extend({},this.calculateTextAttr(),this.wrappedTextAttr(this.text,this.getWidth()-this.padding.left-this.padding.right))),this.svgNodes.attr({x:this.padding.left,y:this.getHeight()/2}),a.default.SetFigure.prototype.repaint.call(this,t))},setDimension:function(t,e){this.clearCache();var n=this.wrappedTextAttr(this.text,t);return this.cachedMinWidth=Math.max(t,n.width),this.cachedMinHeight=n.height,a.default.shape.node.Node.prototype.setDimension.call(this,this.cachedMinWidth,this.cachedMinHeight),this.fireEvent("change:dimension",{value:{width:this.cachedMinWidth,height:this.cachedMinHeight}}),this},clearCache:function(){return this._super(),this.cachedWrappedAttr=null,this},getMinWidth:function(){if(null===this.shape)return 0;if(null===this.cachedMinWidth){var t=this.text.split(" ").reduce((function(t,e){return t.length>e.length?t:e})),e=this.canvas.paper.text(0,0,t).attr(extend({},this.calculateTextAttr(),{text:t}));this.cachedMinWidth=e.getBBox(!0).width+this.padding.left+this.padding.right+2*this.getStroke(),e.remove()}return this.cachedMinWidth},wrappedTextAttr:function(t,e){var n=t.split(" ");if(null===this.canvas||0===n.length)return{text:t,width:e,height:20};if(null===this.cachedWrappedAttr){for(var i="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",r=this.canvas.paper.text(0,0,"").attr(extend({},this.calculateTextAttr(),{text:i})),a=r.getBBox(!0).width/52,s=[n[0]],o=s[0].length*a,l=null,c=1;c<n.length;c++){var u=(l=n[c]).length*a;o+u>e?(s.push("\n"),o=u):(s.push(" "),o+=u),s.push(l)}r.attr({text:s.join("")});var h=r.getBBox(!0);r.remove(),this.cachedWrappedAttr={text:s.join(""),width:Math.max(e,h.width)+this.padding.left+this.padding.right,height:h.height+this.padding.top+this.padding.bottom}}return this.cachedWrappedAttr}})},"./src/shape/basic/VertexResizeHandle.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.basic.VertexResizeHandle=a.default.ResizeHandle.extend({NAME:"draw2d.shape.basic.VertexResizeHandle",SNAP_THRESHOLD:3,LINE_COLOR:"#1387E6",FADEOUT_DURATION:300,init:function(t,e){this._super({owner:t}),this.index=e,this.isDead=!1},onDoubleClick:function(){var t=new a.default.command.CommandRemoveVertex(this.owner,this.index);this.getCanvas().getCommandStack().execute(t),this.isDead=!0},onDragStart:function(t,e,n,i,r){if(!0!==this.isDead)return this._super(),this.command=this.getCanvas().getPrimarySelection().createCommand(new a.default.command.CommandType(a.default.command.CommandType.MOVE_VERTEX)),null!=this.command&&(this.command.setIndex(this.index),this.setAlpha(.2),this.shape.attr({cursor:"crosshair"})),this.vertex=this.owner.getVertex(this.index).clone(),this.fireEvent("dragstart",{x:t,y:e,shiftKey:n,ctrlKey:i,event:r}),!0},onDrag:function(t,e,n,i){if(!0!==this.isDead&&null!=this.command){this.setPosition(this.x+n,this.y+i),this.vertex.translate(n,i);var r=this.vertex.clone();this.getCanSnapToHelper()&&(r=this.getCanvas().snapToHelper(this,r)),this.owner.setVertex(this.index,r.x,r.y),this.command.updatePosition(this.vertex.x,this.vertex.y)}},onDragEnd:function(t,e,n,i,r){if(!0!==this.isDead&&null!==this.command){this.shape.attr({cursor:"move"});var s=this.getCanvas().getCommandStack(),o=new a.default.command.CommandCollection;try{o.add(this.command),this.command=null,this.getEnclosingAngle()>178&&o.add(new a.default.command.CommandRemoveVertex(this.owner,this.index))}finally{s.execute(o)}this.setAlpha(1),this.fireEvent("dragend",{x:t,y:e,shiftKey:n,ctrlKey:i,event:r})}},relocate:function(){var t=this.getWidth()/2,e=this.getHeight()/2,n=this.owner.getVertex(this.index);this.setPosition(n.x-t,n.y-e)},getEnclosingAngle:function(){var t=this.owner.getVertices(),e=this.vertex.getScaled(-1),n=t.getSize(),i=t.get((this.index-1+n)%n).translated(e),r=t.get((this.index+1)%n).translated(e),a=i.dot(r);return 180*Math.acos(a/(i.length()*r.length()))/Math.PI}})},"./src/shape/composite/Composite.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.composite.Composite=a.default.SetFigure.extend({NAME:"draw2d.shape.composite.Composite",init:function(t,e,n){this._super(extend({stroke:1,color:"#f0f0f0"},t),e,n)},onDoubleClick:function(){},isMemberSelectable:function(t,e){return e},isMemberDraggable:function(t,e){return e},setCanvas:function(t){return this._super(t),null!==t&&this.toBack(),this}})},"./src/shape/composite/Group.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.composite.Group=a.default.shape.composite.StrongComposite.extend({NAME:"draw2d.shape.composite.Group",init:function(t,e,n){this._super(extend({bgColor:null,color:null,resizeable:!1},t),e,n),this.stickFigures=!1},isMemberSelectable:function(t,e){return!1},isMemberDraggable:function(t,e){return!1},setPosition:function(t,e){var n=this.x,i=this.y;this._super(t,e);var r=this.x-n,a=this.y-i;return 0===r&&0===a||!1===this.stickFigures&&this.assignedFigures.each((function(t,e){e.translate(r,a)})),this},assignFigure:function(t){if(!this.assignedFigures.contains(t)){var e=this;this.stickFigures=!0,!0===this.assignedFigures.isEmpty()?this.setBoundingBox(t.getBoundingBox()):this.setBoundingBox(this.getBoundingBox().merge(t.getBoundingBox())),this.assignedFigures.add(t),t.setComposite(this),t.setSelectionAdapter((function(){return e})),this.stickFigures=!1}return this},unassignFigure:function(t){if(this.assignedFigures.contains(t)){if(this.stickFigures=!0,t.setComposite(null),t.setSelectionAdapter(null),this.assignedFigures.remove(t),!this.assignedFigures.isEmpty()){var e=this.assignedFigures.first().getBoundingBox();this.assignedFigures.each((function(t,n){e.merge(n.getBoundingBox())})),this.setBoundingBox(e)}this.stickFigures=!1}return this},createCommand:function(t){return null===t?null:t.getPolicy()===a.default.command.CommandType.DELETE?this.isDeleteable()?new a.default.command.CommandDeleteGroup(this):null:this._super(t)}})},"./src/shape/composite/Jailhouse.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.composite.Jailhouse=a.default.shape.composite.StrongComposite.extend({NAME:"draw2d.shape.composite.Jailhouse",init:function(t,e,n){this.policy=new a.default.policy.figure.RegionEditPolicy(0,0,10,10),this._super(extend({bgColor:"#f0f0f0",color:"#333333"},t),e,n),this.stickFigures=!1},setDimension:function(t,e){this._super(t,e),this.policy.setBoundingBox(this.getAbsoluteBounds())},setPosition:function(t,e){var n=this.x,i=this.y;this._super(t,e);var r=this.x-n,a=this.y-i;return 0===r&&0===a||(this.policy.getBoundingBox().setPosition(t,e),!1===this.stickFigures&&this.assignedFigures.each((function(t,e){e.translate(r,a)}))),this},assignFigure:function(t){return this.assignedFigures.contains(t)||t===this||(this.stickFigures=!0,this.setBoundingBox(this.getBoundingBox().merge(t.getBoundingBox())),this.assignedFigures.add(t),t.setComposite(this),t.installEditPolicy(this.policy),t.toFront(this),this.stickFigures=!1),this},getAssignedFigures:function(){return this.assignedFigures},unassignFigure:function(t){if(this.assignedFigures.contains(t)){if(this.stickFigures=!0,t.setComposite(null),t.uninstallEditPolicy(this.policy),this.assignedFigures.remove(t),!this.assignedFigures.isEmpty()){var e=this.assignedFigures.first().getBoundingBox();this.assignedFigures.each((function(t,n){e.merge(n.getBoundingBox())})),this.setBoundingBox(e)}this.stickFigures=!1}return this},onCatch:function(t,e,n,i,r,s){this.getCanvas().getCommandStack().execute(new a.default.command.CommandAssignFigure(t,this))},getMinWidth:function(){var t=0;return this.assignedFigures.each((function(e,n){t=Math.max(t,n.getBoundingBox().getRight())})),t-this.getAbsoluteX()},getMinHeight:function(){var t=0;return this.assignedFigures.each((function(e,n){t=Math.max(t,n.getBoundingBox().getBottom())})),t-this.getAbsoluteY()}})},"./src/shape/composite/Raft.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.composite.Raft=a.default.shape.composite.WeakComposite.extend({NAME:"draw2d.shape.composite.Raft",init:function(t,e,n){this.aboardFigures=new a.default.util.ArrayList,this._super(extend({bgColor:"#f0f0f0",color:"#1B1B1B"},t),e,n)},onDragStart:function(t,e,n,i,r){return this._super(t,e,n,i,r),this.aboardFigures=new a.default.util.ArrayList,this.getAboardFigures(this.isInDragDrop),!0},setPosition:function(t,e,n){var i=this.x,r=this.y,s=n?a.default.util.ArrayList.EMPTY_LIST:this.getAboardFigures(!1===this.isInDragDrop);this._super(t,e);var o=this.x-i,l=this.y-r;return 0===o&&0===l||(null!==this.canvas&&(s=s.clone(),this.canvas.getLines().each((function(t,e){e instanceof a.default.Connection&&s.contains(e.getSource().getRoot())&&s.contains(e.getTarget().getRoot())&&s.add(e)}))),s.each((function(t,e){e.translate(o,l)}))),this},onDrag:function(t,e,n,i,r,s,o){var l=this;this.editPolicy.each((function(n,i){if(i instanceof a.default.policy.figure.DragDropEditPolicy){var r=i.adjustPosition(l,l.ox+t,l.oy+e);r&&(t=r.x-l.ox,e=r.y-l.oy)}}));var c=new a.default.geo.Point(this.ox+t,this.oy+e);this.getCanSnapToHelper()&&(c=this.getCanvas().snapToHelper(this,c)),this.setPosition(c.x,c.y,r),this.editPolicy.each((function(t,e){e instanceof a.default.policy.figure.DragDropEditPolicy&&e.onDrag(l.canvas,l)})),this.fireEvent("drag",{dx:t,dy:e,dx2:n,dy2:i,shiftKey:r,ctrlKey:s,event:o})},getAboardFigures:function(t){if(!0===t&&null!==this.canvas){var e=this.getBoundingBox(),n=this.getZOrder();this.aboardFigures=new a.default.util.ArrayList;var i=this;this.getCanvas().getFigures().each((function(t,r){if(r!==i&&!0===r.isSelectable()&&r.getBoundingBox().isInside(e)){if(i.getNextComposite(r)!==i)return;r.getZOrder()>n&&i.aboardFigures.add(r)}}))}return this.aboardFigures},getNextComposite:function(t){var e=null;return this.getCanvas().getFigures().each((function(n,i){if(t!==i&&i instanceof a.default.shape.composite.Composite){if(null!==e&&e.getZOrder()>i.getZOrder())return;i.getBoundingBox().contains(t.getBoundingBox())&&(e=i)}})),e}})},"./src/shape/composite/StrongComposite.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.composite.StrongComposite=a.default.shape.composite.Composite.extend({NAME:"draw2d.shape.composite.StrongComposite",init:function(t,e,n){this.assignedFigures=new a.default.util.ArrayList,this._super(t,e,n)},contains:function(t){for(var e=0,n=this.assignedFigures.getSize();e<n;e++){var i=this.assignedFigures.get(e);if(i===t||i.contains(t))return!0}return this._super(t)},assignFigure:function(t){return this},unassignFigure:function(t){return this},getAssignedFigures:function(){return this.assignedFigures},onDrop:function(t,e,n,i,r,a){},onCatch:function(t,e,n,i,r,a){},toFront:function(t){this._super(t);var e=this.getAssignedFigures().clone();e.sort((function(t,e){return t.getZOrder()>e.getZOrder()?-1:1}));var n=this;return e.each((function(t,e){e.toFront(n)})),this},toBack:function(t){this._super(t);var e=this.getAssignedFigures().clone();e.sort((function(t,e){return t.getZOrder()>e.getZOrder()?-1:1}));var n=this;return e.each((function(t,e){e.toBack(n)})),this}})},"./src/shape/composite/WeakComposite.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.composite.WeakComposite=a.default.shape.composite.Composite.extend({NAME:"draw2d.shape.composite.WeakComposite",init:function(t,e,n){this._super(t,e,n)}})},"./src/shape/diagram/Diagram.js":(t,e,n)=>{"use strict";var i=s(n("./src/packages.js")),r=s(n("./src/util/extend.js")),a=s(n("./src/util/JSONUtil.js"));function s(t){return t&&t.__esModule?t:{default:t}}i.default.shape.diagram.Diagram=i.default.SetFigure.extend({init:function(t,e,n){this.data=[],this.cache={},this._super((0,r.default)({data:[],bgColor:"#8dabf2",stroke:1,color:"#f0f0f0",radius:2,resizeable:!0},t),(0,r.default)({},{data:this.setData},e),(0,r.default)({},{data:this.getData},n))},setData:function(t){this.data=t,this.cache={},null!==this.svgNodes&&(this.svgNodes.remove(),this.svgNodes=this.createSet()),this.repaint(),this.fireEvent("change:data",{value:t})},getData:function(){return this.data},setDimension:function(t,e){return this.cache={},this._super(t,e),this},getWidth:function(){return this.width},getHeight:function(){return this.height},repaint:function(t){return!0===this.repaintBlocked||null==this.shape?this:(t=t||{},a.default.ensureDefault(t,"fill","none"),this._super(t))},applyTransformation:function(){return!0===this.isResizeable()?this.svgNodes.transform("S"+this.scaleX+","+this.scaleY+","+this.getAbsoluteX()+","+this.getAbsoluteY()+"t"+this.getAbsoluteX()+","+this.getAbsoluteY()):this.svgNodes.transform("T"+this.getAbsoluteX()+","+this.getAbsoluteY()),this}})},"./src/shape/diagram/Pie.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.shape.diagram.Pie=i.default.shape.diagram.Diagram.extend({NAME:"draw2d.shape.diagram.Pie",COLORS:["#00A8F0","#b9dd69","#f3546a","#4DA74D","#9440ED"],TWO_PI:2*Math.PI,init:function(t,e,n){this._super((0,r.default)({stroke:0},t),(0,r.default)({diameter:this.setDiameter,radius:this.setRadius},e),(0,r.default)({diameter:this.getDiameter,radius:this.getRadius},n))},setDiameter:function(t){var e=this.getCenter();return this.setDimension(t,t),this.setCenter(e),this.fireEvent("change:diameter",{value:this.width}),this},getDiameter:function(){return this.getWidth()},setRadius:function(t){return this.setDiameter(2*t),this.fireEvent("change:radius",{value:this.width/2}),this},getCenter:function(){var t=this.getDiameter()/2;return this.getPosition().translate(t,t)},setCenter:function(t,e){var n=new i.default.geo.Point(t,e),r=this.getDiameter()/2;return n.translate(-r,-r),this.setPosition(n),this.fireEvent("change:center",{value:{x:t,y:e}}),this},setData:function(t){var e=this;this.sum=0,t.forEach((function(t){e.sum+=t}));var n=1/this.sum;return t.forEach((function(e,i){t[i]=n*e})),this._super(t),this.fireEvent("change:data",{value:t}),this},createSet:function(){for(var t=this.getWidth()/2,e=this.data.length,n=this.canvas.paper.set(),i=0,r=0;r<e;r++){var a=this.TWO_PI*this.data[r],s=this.COLORS[r%e],o=this.drawSegment(t,a,i,.1);o.attr({stroke:this.color.rgba(),fill:s}),n.push(o),i+=a}return n},setDimension:function(t,e){return t>e?this._super(t,t):this._super(e,e),null!==this.svgNodes&&(this.svgNodes.remove(),this.svgNodes=this.createSet()),this.repaint(),this},polarPath:function(t,e,n){return"L "+(t*Math.cos(e+n)+t)+" "+(t*Math.sin(e+n)+t)+" "},drawSegment:function(t,e,n,i){for(var r="M "+t+" "+t,a=0;a<e;a+=i)r+=this.polarPath(t,a,n);return r+=this.polarPath(t,e,n),r+="L "+t+" "+t,this.getCanvas().paper.path(r)},applyTransformation:function(){return this.svgNodes.transform("T"+this.getAbsoluteX()+","+this.getAbsoluteY()),this}})},"./src/shape/diagram/Sparkline.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}function s(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}i.default.shape.diagram.Sparkline=i.default.shape.diagram.Diagram.extend({NAME:"draw2d.shape.diagram.Sparkline",init:function(t,e,n){this.min=0,this.max=10,this.padding=4,this._super((0,r.default)({width:180,height:50},t),e,n)},setData:function(t){return t.length>0?(this.min=Math.min.apply(Math,s(t)),this.max=Math.max.apply(Math,s(t))):(this.min=0,this.max=1),this.max===this.min&&(this.max=this.min+1),this._super(t),this.fireEvent("change:data",{value:t}),this},createSet:function(){return this.canvas.paper.path("M0 0 l0 0")},repaint:function(t){var e=this;if(!0!==this.repaintBlocked&&null!==this.shape){(t=t||{}).fill="90-#000:5-#4d4d4d:95";var n=this.padding,i=this.getWidth()-2*n,r=this.getHeight()-2*n,a=this.data.length,s=this.min,o=this.max;if(null!==this.svgNodes&&void 0===this.cache.pathString){var l=null;this.data.forEach((function(t,c){var u=function(t,e){var l=1;return a>1&&(l=i/(a-1)),{y:-(t-s)/(o-s)*r+r+n,x:n+e*l}}(t,c);e.cache.pathString=null===l?["M",u.x,u.y].join(" "):[e.cache.pathString,"L",u.x,u.y].join(" "),l=u})),this.svgNodes.attr({path:this.cache.pathString,stroke:"#f0f0f0"})}return this._super(t),this}}})},"./src/shape/dimetric/Rectangle.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.dimetric.Rectangle=a.default.shape.basic.Polygon.extend({NAME:"draw2d.shape.dimetric.Rectangle",init:function(t,e,n){this._super(extend({bgColor:"#00a3f6",color:"#1B1B1B"},t),e,n);var i=this.getPosition();this.resetVertices();var r=Math.atan(.5),s=Math.cos(r),o=Math.sin(r),l=this.getBoundingBox(),c=l.w,u=l.h;this.addVertex(0,0),this.addVertex(s*c,o*c),this.addVertex(s*c-s*u,o*c+o*u),this.addVertex(-s*u,o*u),this.installEditPolicy(new a.default.policy.figure.RectangleSelectionFeedbackPolicy),this.setPosition(i)}})},"./src/shape/flowchart/Document.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.flowchart.Document=a.default.VectorFigure.extend({NAME:"draw2d.shape.flowchart.Document",init:function(t,e,n){this.amplitude=.08,this._super(extend({width:80,height:50,bgColor:"#2196f3",color:"#1B1B1B",stroke:1},t),e,n)},createShapeElement:function(){return this.canvas.paper.path(this.calcPath())},calcPath:function(){var t=this.getWidth(),e=this.getHeight(),n=t/2,i=t/4,r=e*this.amplitude|0;return["M",this.getAbsoluteX(),",",this.getAbsoluteY(),"l",t,",",0,"l",0,",",e-r,"q",-i,",",-r,-n,",",0,"q",-i,",",r,-n,",",0,"z"].join(" ")},repaint:function(t){if(!0!==this.repaintBlocked&&null!==this.shape)return t=extend({},{path:this.calcPath()},t),this._super(t),this}})},"./src/shape/icon/Contract.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.icon.Contract=a.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Contract",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M25.083,18.895l-8.428-2.259l2.258,8.428l1.838-1.837l7.053,7.053l2.476-2.476l-7.053-7.053L25.083,18.895zM5.542,11.731l8.428,2.258l-2.258-8.428L9.874,7.398L3.196,0.72L0.72,3.196l6.678,6.678L5.542,11.731zM7.589,20.935l-6.87,6.869l2.476,2.476l6.869-6.869l1.858,1.857l2.258-8.428l-8.428,2.258L7.589,20.935zM23.412,10.064l6.867-6.87l-2.476-2.476l-6.868,6.869l-1.856-1.856l-2.258,8.428l8.428-2.259L23.412,10.064z")}})},"./src/shape/icon/Expand.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.icon.Expand=a.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Expand",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M25.545,23.328,17.918,15.623,25.534,8.007,27.391,9.864,29.649,1.436,21.222,3.694,23.058,5.53,15.455,13.134,7.942,5.543,9.809,3.696,1.393,1.394,3.608,9.833,5.456,8.005,12.98,15.608,5.465,23.123,3.609,21.268,1.351,29.695,9.779,27.438,7.941,25.6,15.443,18.098,23.057,25.791,21.19,27.638,29.606,29.939,27.393,21.5z")}})},"./src/shape/icon/Icon.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.icon.Icon=a.default.SetFigure.extend({NAME:"draw2d.shape.icon.Icon",init:function(t,e,n){this._super(extend({width:50,height:50,color:"#333333",bgColor:null},t),e,n),this.keepAspectRatio=!1},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(t=t||{},null!==this.svgNodes&&this.svgNodes.attr({fill:this.color.rgba(),stroke:"none"}),this._super(t))},applyTransformation:function(){var t=[];if(0!==this.rotationAngle&&t.push("R"+this.rotationAngle),90===this.getRotationAngle()||270===this.getRotationAngle()){var e=this.getHeight()/this.getWidth();t.push("T"+-this.offsetY+","+-this.offsetX),t.push("S"+e+","+1/e+",0,0")}else t.push("T"+-this.offsetX+","+-this.offsetY);return!0===this.isResizeable()?t.push("T"+this.getAbsoluteX()+","+this.getAbsoluteY()+"S"+this.scaleX+","+this.scaleY+","+this.getAbsoluteX()+","+this.getAbsoluteY()):t.push("T"+this.getAbsoluteX()+","+this.getAbsoluteY()),this.svgNodes.transform(t.join(" ")),this},createShapeElement:function(){var t=this._super(),e=this.svgNodes.getBBox();return this.offsetX=e.x,this.offsetY=e.y,t}})},"./src/shape/layout/FlexGridLayout.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.shape.layout.FlexGridLayout=i.default.shape.layout.Layout.extend({NAME:"draw2d.shape.layout.FlexGridLayout",init:function(t,e,n){var a=this;this.cellLocator={relocate:function(t,e){!0===a.gridDef.layoutRequired&&a._layout();var n=e.__cellConstraint,i=n.x,r=n.y;if(e.isResizeable())e.setDimension(Math.max(e.getMinWidth(),n.width),Math.max(e.getMinHeight(),n.height));else{switch(n.valign){case"middle":r+=(n.height-e.getHeight())/2;break;case"bottom":r+=n.height-e.getHeight()}switch(n.align){case"center":i+=(n.width-e.getWidth())/2;break;case"right":i+=n.width-e.getWidth()}}e.setPosition(i,r)},bind:function(){},unbind:function(){},translate:function(t,e){t.setPosition(t.x+e.x,t.y+e.y)}},this.debug=!1,this.gridDef={debugLines:[],def_cols:[],def_rows:[],min_height:[],min_width:[],minGridWidth:10,minGridHeight:10,hResizeable:!1,vResizeable:!1,layoutRequired:!0},this._super((0,r.default)({stroke:2},t),(0,r.default)({},e),(0,r.default)({},n)),this.resizeListener=function(t){a.gridDef.layoutRequired=!0,a.getParent()instanceof i.default.shape.layout.Layout?a.fireEvent("resize"):a.setDimension(!0===a.gridDef.hResizeable?a.getWidth():1,!0===a.gridDef.vResizeable?a.getHeight():1)};for(var s=t.rows.split(","),o=t.columns.split(","),l=0;l<o.length;l++)this.gridDef.def_cols[l]=this.cellWidthFromDef(o[l]);for(var c=0;c<s.length;c++)this.gridDef.def_rows[c]=this.cellWidthFromDef(s[c]);this.installEditPolicy(new i.default.policy.figure.RectangleSelectionFeedbackPolicy)},add:function(t,e){t.__cellConstraint=(0,r.default)({},{row:0,col:0,rowspan:1,colspan:1,align:"left",valign:"top",width:1,height:1},e),this.gridDef.layoutRequired=!0,this._super(t,this.cellLocator),this._layout()},getMinWidth:function(){return this.gridDef.minGridWidth},getMinHeight:function(){return this.gridDef.minGridHeight},setCanvas:function(t){return this.gridDef.layoutRequired=!0,this._super(t),this},repaint:function(t){return!0===this.repaintBlocked||null===this.shape||(this._super(t),this.debug&&this.paintDebugGrid()),this},setDimension:function(t,e){return!0===this.gridDef.layoutRequired&&this._layout(),this._super(t,e),this.gridDef.layoutRequired=!0,this.repaint(),this},_layout:function(){this.gridDef.layoutRequired=!1;var t=this.getChildren();this.gridDef.min_height=this.gridDef.def_rows.slice(0),this.gridDef.min_width=this.gridDef.def_cols.slice(0);for(var e=0;e<t.getSize();e++){var n=t.get(e),i=n.__cellConstraint;if(this.gridDef.min_width[i.col]=Math.max(this.gridDef.min_width[i.col],n.getMinWidth()),i.rowspan>1){var r=n.getMinHeight(),a=this.cellHeight(i.row,i.row+i.rowspan);if(a<r){var s=r-a;this.gridDef.min_height[i.row+i.rowspan-1]=this.gridDef.min_height[i.row+i.rowspan-1]+s}}else this.gridDef.min_height[i.row]=Math.max(this.gridDef.min_height[i.row],n.getMinHeight())}this.gridDef.minGridWidth=this._getGridWidth(),this.gridDef.minGridHeight=this._getGridHeight();for(var o=this._getGridHeight(),l=0;l<this.gridDef.def_rows.length;l++)if(-1===this.gridDef.def_rows[l]){this.gridDef.min_height[l]=this.gridDef.min_height[l]+Math.max(0,this.getHeight()-o),this.gridDef.vResizeable=!0;break}for(var c=this._getGridWidth(),u=0;u<this.gridDef.def_cols.length;u++)if(-1===this.gridDef.def_cols[u]){this.gridDef.min_width[u]=this.gridDef.min_width[u]+Math.max(0,this.getWidth()-c),this.gridDef.hResizeable=!0;break}for(var h=0;h<t.getSize();h++){var d=t.get(h).__cellConstraint;d.width=this.cellWidth(d.col,d.col+d.colspan),d.height=this.cellHeight(d.row,d.row+d.rowspan),d.x=this.cellX(d.col),d.y=this.cellY(d.row)}return this},cellX:function(t){for(var e=0,n=0;n<t;n++)e+=this.gridDef.min_width[n];return e},cellY:function(t){for(var e=0,n=0;n<t;n++)e+=this.gridDef.min_height[n];return e},cellWidth:function(t,e){for(var n=0,i=t;i<e;i++)n+=this.gridDef.min_width[i];return n},cellHeight:function(t,e){for(var n=0,i=t;i<e;i++)n+=this.gridDef.min_height[i];return n},paintDebugGrid:function(){for(var t=0;t<this.gridDef.debugLines.length;t++)this.gridDef.debugLines[t].remove();this.gridDef.debugLines=[];for(var e=this._getGridHeight(),n=this._getGridWidth(),i=this.getAbsoluteX(),r=this.getAbsoluteY(),a=i,s=0;s<=this.gridDef.min_width.length;s++){var o=this.canvas.paper.path("M "+a+" "+r+" l 0 "+e).attr({stroke:"#FF0000","stroke-width":1});this.gridDef.debugLines.push(o),s<this.gridDef.min_width.length&&(a+=this.gridDef.min_width[s])}for(var l=r,c=0;c<=this.gridDef.min_height.length;c++){var u=this.canvas.paper.path("M "+i+" "+l+" l "+n+" 0").attr({stroke:"#FF0000","stroke-width":1});this.gridDef.debugLines.push(u),c<this.gridDef.min_height.length&&(l+=this.gridDef.min_height[c])}},_getGridWidth:function(){for(var t=0,e=0;e<this.gridDef.min_width.length;e++)t+=this.gridDef.min_width[e];return t},_getGridHeight:function(){for(var t=0,e=0;e<this.gridDef.min_height.length;e++)t+=this.gridDef.min_height[e];return t},cellWidthFromDef:function(t){var e=new RegExp("(\\d+)(?:px)?"),n=t.match(e);return null!=n?parseInt(n[1]):(e=new RegExp("p(?:ref)?"),null!=(n=t.match(e))?0:(e=new RegExp("g(?:row)?"),null!=(n=t.match(e))?(this.autoResize=!1,-1):0))}})},"./src/shape/layout/HorizontalLayout.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.shape.layout.HorizontalLayout=i.default.shape.layout.Layout.extend({NAME:"draw2d.shape.layout.HorizontalLayout",init:function(t,e,n){this.gap=0;var i=this;this.locator={translate:function(t,e){t.setPosition(t.x+e.x,t.y+e.y)},bind:function(){},unbind:function(){},relocate:function(t,e){for(var n=i.getStroke(),r=n+i.padding.top,a=n+i.padding.left,s=0;s<t;s++){var o=i.children.get(s).figure;o.isVisible()&&(a+=o.getWidth()+i.gap)}e.setPosition(a,r)}},this._super((0,r.default)({width:1,height:1,gap:0},t),(0,r.default)({gap:this.setGap},e),(0,r.default)({gap:this.getGap},n))},add:function(t,e,n){return this._super(t,this.locator,n),this.setDimension(1,1),this},setGap:function(t){return this.gap=t,this.setDimension(1,1),this},getGap:function(){return this.gap},getMinWidth:function(){var t=this,e=2*this.stroke+this.padding.left+this.padding.right,n=0;return this.children.each((function(i,r){r.figure.isVisible()&&(e+=r.figure.isResizeable()?r.figure.getMinWidth():r.figure.getWidth()+n,n=t.gap)})),e},getMinHeight:function(){var t=2*this.stroke+this.padding.top+this.padding.bottom,e=0;return this.children.each((function(t,n){e=Math.max(e,n.figure.isResizeable()?n.figure.getMinHeight():n.figure.getHeight())})),e+t},setDimension:function(t,e){this._super(t,e);var n=this.width-this.getMinWidth();if(n>0)n=n/this.children.getSize()|0,this.children.each((function(t,e){!0===e.figure.isResizeable()&&e.figure.setDimension(e.figure.getMinWidth()+n,e.figure.getHeight())}));else{var i=this.getMinHeight();this.children.each((function(t,e){!0===e.figure.isResizeable()&&e.figure.setDimension(1,i)}))}return this},getPersistentAttributes:function(){var t=this._super();return t.gap=this.gap,t},setPersistentAttributes:function(t){return this._super(t),"number"==typeof t.gap&&(this.gap=t.gap),this}})},"./src/shape/layout/Layout.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.shape.layout.Layout=i.default.shape.basic.Rectangle.extend({NAME:"draw2d.shape.layout.Layout",init:function(t,e,n){var a=this;this.padding={top:0,right:0,bottom:0,left:0},this._super((0,r.default)({bgColor:null,radius:0,stroke:0},t),(0,r.default)({padding:this.setPadding},e),(0,r.default)({padding:this.getPadding},n)),this.resizeListener=function(t){a.getParent()instanceof i.default.shape.layout.Layout||a.setDimension(1,1),a.fireEvent("resize")},this.installEditPolicy(new i.default.policy.figure.AntSelectionFeedbackPolicy)},add:function(t,e,n){return this._super(t,e,n),t.on("resize",this.resizeListener),t.on("change:visibility",this.resizeListener),t.visible=t.visible&&this.visible,this},remove:function(t){var e=this._super(t);return t.off(this.resizeListener),this.setDimension(1,1),e},setPadding:function(t){return this.padding="number"==typeof t?{top:t,right:t,bottom:t,left:t}:(0,r.default)(this.padding,t),this.fireEvent("change:padding",{value:this.padding}),this.setDimension(1,1),this},getPadding:function(){return this.padding},setVisible:function(t){return this.children.each((function(e,n){n.figure.setVisible(t)})),this._super(t),this.setDimension(1,1),this},createCommand:function(t){return t.getPolicy()===i.default.command.CommandType.ROTATE?null:this._super(t)}})},"./src/shape/layout/StackLayout.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/extend.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.shape.layout.StackLayout=i.default.shape.layout.Layout.extend({NAME:"draw2d.shape.layout.StackLayout",init:function(t,e,n){this.visibleLayer=0,this.locator=new i.default.layout.locator.XYAbsPortLocator(0,0),this._super((0,r.default)({resizeable:!0,width:10,height:10},t),(0,r.default)({},e),(0,r.default)({},n)),this.resizeListener=function(t){},this.installEditPolicy(new i.default.policy.figure.RectangleSelectionFeedbackPolicy)},setVisibleLayer:function(t,e){return this.getChildren().get(this.visibleLayer).setVisible(!1,e),this.visibleLayer=Math.min(this.getChildren().getSize()-1,Math.max(0,t)),this.getChildren().get(this.visibleLayer).setVisible(!0,e),this},getVisibleLayer:function(){return this.visibleLayer},add:function(t,e,n){return t.hitTest=function(){return!1},this.getChildren().each((function(t,e){e.setVisible(!1)})),this.visibleLayer=this.getChildren().getSize(),this._super(t,this.locator,n)},setVisible:function(t){return i.default.shape.basic.Rectangle.prototype.setVisible.call(this,t),this},getMinWidth:function(){var t=2*this.stroke+this.padding.left+this.padding.right,e=10;return this.children.each((function(t,n){e=Math.max(e,n.figure.isResizeable()?n.figure.getMinWidth():n.figure.getWidth())})),e+t},getMinHeight:function(){var t=2*this.stroke+this.padding.top+this.padding.bottom,e=10;return this.children.each((function(t,n){e=Math.max(e,n.figure.isResizeable()?n.figure.getMinHeight():n.figure.getHeight())})),e+t},setDimension:function(t,e){this._super(t,e);var n=this.width-this.padding.left-this.padding.right,i=this.height-this.padding.top-this.padding.bottom;return n===this._recursiveWidth&&i===this._recursiveHeight||(this._recursiveHeight=i,this._recursiveWidth=n,this.children.each((function(t,e){e.figure.isResizeable()&&e.figure.setDimension(n,i)})),delete this._recursiveHeight,delete this._recursiveWidth),this}})},"./src/shape/layout/TableLayout.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.layout.TableLayout=a.default.shape.layout.Layout.extend({NAME:"draw2d.shape.layout.TableLayout",DUMMY_CELL:{getMinHeight:function(){return 1},getMinWidth:function(){return 1},off:function(){}},init:function(t,e,n){var i=this;this.cellLocator={relocate:function(t,e){if(!0!==i.repaintBlocked){var n=e.__cell,r=i.getCellLayout(n.row,n.column),a=i.getWidth(),s=i.getMinWidth(),o=0;a!=s&&(o=(a-s)/i.layoutInfos[0].length*n.column);var l=e.getWidth(),c=e.getHeight(),u=r.x+i.padding.left+r.padding.left+o,h=r.y+i.padding.top+r.padding.top;if(e.isResizeable()){var d=Math.max(e.getMinWidth(),r.w-(r.padding.left+r.padding.right)+o),f=Math.max(e.getMinHeight(),r.h-(r.padding.top+r.padding.bottom));e.setDimension(d,f)}else{switch(r.valign){case"middle":h+=(r.h-(c+r.padding.top+r.padding.bottom))/2;break;case"bottom":h+=r.h-(c+r.padding.top+r.padding.bottom)}switch(r.align){case"center":u=u+(r.w-(l+r.padding.left+r.padding.right))/2+o/2;break;case"right":u=u+(r.w-(l+r.padding.left+r.padding.right))+o}}e.setPosition(u,h)}},bind:function(){},unbind:function(){},translate:function(t,e){t.setPosition(t.x+e.x,t.y+e.y)}},this.padding={top:4,right:4,bottom:4,left:4},this.grid=[],this.layoutInfos=[],this.layoutInfos[0]=[],this.layoutInfos[0][0]={x:0,y:0,w:1,h:1,valign:"top",align:"left"},this._super(extend({stroke:1,resizeable:!1},t),extend({padding:this.setPadding},e),extend({padding:this.getPadding},n))},setCellPadding:function(t,e,n){var i=this.getCellLayout(t,e);return null===i||("number"==typeof n?i.padding={top:n,right:n,bottom:n,left:n}:extend(i.padding,n),this.calculateLayout(),this.setDimension(1,1)),this},getCellPadding:function(t,e){var n=this.getCellLayout(t,e);return null===n||void 0===n.padding?{top:0,right:0,bottom:0,left:0}:n.padding},setPadding:function(t){return this.padding="number"==typeof t?{top:t,right:t,bottom:t,left:t}:extend(this.padding,t),this.calculateLayout(),this.setDimension(1,1),this.fireEvent("change:padding",{value:this.padding}),this},getPadding:function(){return this.padding},setCanvas:function(t){return this._super(t),this.calculateLayout(),this.setDimension(2,2),this},add:function(t,e,n){return this._super(t,e,n),this.setDimension(1,1),this},removeRow:function(t){var e=this,n=this.grid.splice(t,1);return n[0].forEach((function(t){e.remove(t)})),this.calculateLayout(),this.setDimension(2,2),n},addRow:function(){var t=[],e=this,n=Array.prototype.slice.call(arguments),i=(this.grid.length,this.grid.length>0?Math.max(this.grid[0].length,n.length):n.length),r=[];n.forEach((function(e,n){"string"==typeof e&&(e=new a.default.shape.basic.Label({text:e})),r.push(e),t.push(e)})),this.grid.push(r),this.grid.forEach((function(t,n){for(var r=i-t.length,a=0;a<r;a++)t.push(e.DUMMY_CELL)}));var s=this.repaintBlocked;return this.repaintBlocked=!0,t.forEach((function(t){e.add(t,e.cellLocator)})),this.repaintBlocked=s,this.calculateLayout(),this.setDimension(1,1),this},getMinWidth:function(){if(null===this.canvas||0===this.layoutInfos.length)return 10;var t=this.layoutInfos[this.layoutInfos.length-1],e=t[t.length-1];return e.w+e.x+this.padding.left+this.padding.right},getMinHeight:function(){if(null===this.canvas||0===this.layoutInfos.length)return 10;var t=this.layoutInfos[this.layoutInfos.length-1],e=t[t.length-1];return e.h+e.y+this.padding.top+this.padding.bottom},setCellVerticalAlign:function(t,e,n){var i=this.getCellLayout(t,e);if(null!==i){switch(n){case"top":case"middle":case"bottom":i.valign=n,this.calculateLayout(),this.setDimension(1,1)}return this}},getCellVerticalAlign:function(t,e){var n=this.getCellLayout(t,e);return null===n?"top":n.valign},setCellAlign:function(t,e,n){var i=this.getCellLayout(t,e);if(null!==i){switch(n){case"left":case"center":case"right":i.align=n,this.calculateLayout(),this.setDimension(1,1)}return this}},getCellAlign:function(t,e){var n=this.getCellLayout(t,e);return null===n?"left":n.align},getCellLayout:function(t,e){if(t<0||e<0)return null;if(t>=this.layoutInfos.length)return null;var n=this.layoutInfos[t];return e>=n.length?null:n[e]},calculateLayout:function(){for(var t=this.grid.length,e=this.grid.length>0?this.grid[0].length:0,n=[],i=0;i<t;i++){n[i]=[];for(var r=0;r<e;r++)n[i][r]={width:0,height:0,x:0,y:0,valign:this.getCellVerticalAlign(i,r),align:this.getCellAlign(i,r),padding:this.getCellPadding(i,r)}}var a=new Array(e+1).join("0").split("").map(parseFloat),s=new Array(t+1).join("0").split("").map(parseFloat);this.grid.forEach((function(t,i){for(var r=0;r<e;r++){var o=n[i][r],l=t[r];l.__cell={row:i,column:r},s[i]=Math.max(s[i],l.getMinHeight()+o.padding.top+o.padding.bottom),a[r]=Math.max(a[r],l.getMinWidth()+o.padding.left+o.padding.right)}}));for(var o=0,l=0,c=0;c<t;c++){for(var u=0;u<e;u++){var h=n[c][u];h.w=a[u],h.h=s[c],h.x=o,h.y=l,o+=h.w}l+=s[c],o=0}return this.layoutInfos=n,this}})},"./src/shape/layout/VerticalLayout.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.layout.VerticalLayout=a.default.shape.layout.Layout.extend({NAME:"draw2d.shape.layout.VerticalLayout",init:function(t,e,n){this.gap=0;var i=this;this.locator={translate:function(t,e){t.setPosition(t.x+e.x,t.y+e.y)},bind:function(){},unbind:function(){},relocate:function(t,e){for(var n=i.getStroke()+i.padding.top,r=i.padding.left,a=0;a<t;a++){var s=i.children.get(a).figure;s.isVisible()&&(n+=s.getHeight()+i.gap)}e.setPosition(r,n)}},this._super(extend({width:10,height:10},t),extend({gap:this.setGap},e),extend({gap:this.getGap},n))},add:function(t,e,n){return this._super(t,this.locator,n),this.setDimension(1,1),this},setGap:function(t){this.gap=t,this.setDimension(1,1)},getMinWidth:function(){var t=2*this.stroke+this.padding.left+this.padding.right,e=10;return this.children.each((function(t,n){n.figure.isVisible()&&(e=Math.max(e,n.figure.isResizeable()?n.figure.getMinWidth():n.figure.getWidth()))})),e+t},getMinHeight:function(){var t=this,e=0,n=2*this.stroke+this.padding.top+this.padding.bottom,i=0;return this.children.each((function(n,r){r.figure.isVisible()&&(i+=(r.figure.isResizeable()?r.figure.getMinHeight():r.figure.getHeight())+e,e=t.gap)})),i+n},setDimension:function(t,e){this._super(t,e);var n=this.width-this.padding.left-this.padding.right;return n===this._recursiveWidth||(this._recursiveWidth=n,this.children.each((function(t,e){e.figure.isResizeable()&&e.figure.isVisible()&&e.figure.setDimension(n,e.figure.getMinHeight())})),delete this._recursiveWidth),this},getPersistentAttributes:function(){var t=this._super();return t.gap=this.gap,t},setPersistentAttributes:function(t){return this._super(t),"number"==typeof t.gap&&(this.gap=t.gap),this}})},"./src/shape/node/Between.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.node.Between=a.default.shape.basic.Rectangle.extend({NAME:"draw2d.shape.node.Between",DEFAULT_COLOR:new a.default.util.Color("#4D90FE"),init:function(t,e,n){this._super(extend({bgColor:this.DEFAULT_COLOR,color:this.DEFAULT_COLOR.darker(),width:50,height:50},t),e,n),this.createPort("output"),this.createPort("input")}})},"./src/shape/node/End.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.node.End=a.default.shape.basic.Rectangle.extend({NAME:"draw2d.shape.node.End",DEFAULT_COLOR:new a.default.util.Color("#4D90FE"),init:function(t,e,n){this._super(extend({bgColor:this.DEFAULT_COLOR,color:this.DEFAULT_COLOR.darker(),width:50,height:50},t),e,n),this.createPort("input")}})},"./src/shape/node/Fulcrum.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/JSONUtil.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.shape.node.Fulcrum=i.default.shape.node.Hub.extend({NAME:"draw2d.shape.node.Fulcrum",init:function(t,e,n){this._super(extend({width:40,height:40},t),e,n),this.port.setConnectionAnchor(new i.default.layout.anchor.ConnectionAnchor(this.port)),this.port.setVisible(!0),this.port.hitTest=this.port._orig_hitTest,this.setConnectionDirStrategy(0),this.setColor(null),this.setRadius(10),this.setBackgroundColor(null),this.setStroke(0),this.installEditPolicy(new i.default.policy.figure.AntSelectionFeedbackPolicy)},repaint:function(t){return!0===this.repaintBlocked||null===this.shape?this:(t=t||{},r.default.ensureDefault(t,"fill",this.bgColor.rgba()),this._super(t))}})},"./src/shape/node/HorizontalBus.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.node.HorizontalBus=a.default.shape.node.Hub.extend({NAME:"draw2d.shape.node.HorizontalBus",init:function(t,e,n){this._super(t,e,n),this.setConnectionDirStrategy(1),this.installEditPolicy(new a.default.policy.figure.HBusSelectionFeedbackPolicy)}})},"./src/shape/node/Hub.js":(t,e,n)=>{"use strict";var i=a(n("./src/packages.js")),r=a(n("./src/util/Color.js"));function a(t){return t&&t.__esModule?t:{default:t}}i.default.shape.node.Hub=i.default.shape.basic.Rectangle.extend({NAME:"draw2d.shape.node.Hub",DEFAULT_COLOR:new r.default("#4DF0FE"),BACKGROUND_COLOR:new r.default("#29AA77"),init:function(t,e,n){this.label=null,this._super(extend({color:this.DEFAULT_COLOR.darker(),bgColor:this.BACKGROUND_COLOR},t),extend({label:this.setLabel,text:this.setLabel},e),extend({label:this.getLabel,text:this.getLabel},n));var r=this.port=this.createPort("hybrid",new i.default.layout.locator.CenterLocator),a=i.default.geo.Rectangle;this.CONNECTION_DIR_STRATEGY=[function(t){return r.getParent().getBoundingBox().getDirection(t.getAbsolutePosition())},function(t){return r.getAbsoluteY()>t.getAbsoluteY()?a.DIRECTION_UP:a.DIRECTION_DOWN},function(t){return r.getAbsoluteX()>t.getAbsoluteX()?a.DIRECTION_LEFT:a.DIRECTION_RIGHT}],this.port.setGlow=this.setGlow.bind(this),this.port._orig_hitTest=this.port.hitTest,this.port.hitTest=this.hitTest.bind(this),this.port.setConnectionAnchor(new i.default.layout.anchor.ShortesPathConnectionAnchor(this.port)),this.port.setVisible(!1),this.port.setVisible=function(){},this.setConnectionDirStrategy(0)},delegateTarget:function(t){return this.getHybridPort(0).delegateTarget(t)},getMinWidth:function(){return null!==this.label?Math.max(this.label.getMinWidth(),this._super()):this._super()},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(void 0===(t=t||{}).fill&&(null!==this.bgColor?t.fill="90-"+this.bgColor.hash()+":5-"+this.bgColor.lighter(.3).hash()+":95":t.fill="none"),this._super(t))},setLabel:function(t){if(null===this.label){var e=this;this.label=new i.default.shape.basic.Label({text:t,color:"#0d0d0d",fontColor:"#0d0d0d",stroke:0}),this.add(this.label,new i.default.layout.locator.CenterLocator),this.label.setSelectionAdapter((function(){return e})),this.label.delegateTarget=function(){return e.port}}else this.label.setText(t)},setConnectionDirStrategy:function(t){switch(t){case 0:case 1:case 2:this.port.getConnectionDirection=this.CONNECTION_DIR_STRATEGY[t]}},getPersistentAttributes:function(){var t=this._super();return t.dirStrategy=this.CONNECTION_DIR_STRATEGY.indexOf(this.port.getConnectionDirection),null!==this.label&&(t.label=this.label.getText()),t},setPersistentAttributes:function(t){this._super(t),"number"==typeof t.dirStrategy&&this.setConnectionDirStrategy(t.dirStrategy),void 0!==t.label&&this.setLabel(t.label)}})},"./src/shape/node/Node.js":(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{"use strict";var _packages=__webpack_require__("./src/packages.js"),_packages2=_interopRequireDefault(_packages),_extend=__webpack_require__("./src/util/extend.js"),_extend2=_interopRequireDefault(_extend);function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}_packages2.default.shape.node.Node=_packages2.default.Figure.extend({NAME:"draw2d.shape.node.Node",init:function(t,e,n){this.inputPorts=new _packages2.default.util.ArrayList,this.outputPorts=new _packages2.default.util.ArrayList,this.hybridPorts=new _packages2.default.util.ArrayList,this.persistPorts=!0,this.portRelayoutRequired=!0,this.cachedPorts=null,this._super((0,_extend2.default)({width:50,height:50},t),(0,_extend2.default)({persistPorts:this.setPersistPorts},e),(0,_extend2.default)({persistPorts:this.getPersistPorts},n))},setPersistPorts:function(t){return this.persistPorts=t,this.fireEvent("change:persistPorts",{value:this.persistPorts}),this},getPersistPorts:function(){return this.persistPorts},toFront:function(t){var e=this;return this._super(t),this.getPorts().each((function(n,i){i.getConnections().each((function(e,n){return n.toFront(t)})),i.toFront(e)})),this},toBack:function(t){return this.getPorts().each((function(e,n){n.getConnections().each((function(e,n){return n.toBack(t)})),n.toBack(t)})),this._super(t),this},setVisible:function(t,e){t?this.getPorts().each((function(t,n){void 0!==n.__initialVisibilityState?n.setVisible(n.__initialVisibilityState,e):n.setVisible(!0,e),delete n.__initialVisibilityState})):this.getPorts().each((function(t,n){n.__initialVisibilityState=n.isVisible(),n.setVisible(!1,e)})),this._super(t,e)},getPorts:function(t){var e=this;if("boolean"==typeof t&&!1===t){var n=new _packages2.default.util.ArrayList;return n.addAll(this.inputPorts),n.addAll(this.outputPorts),n.addAll(this.hybridPorts),n}return null===this.cachedPorts&&(this.cachedPorts=new _packages2.default.util.ArrayList,this.cachedPorts.addAll(this.inputPorts),this.cachedPorts.addAll(this.outputPorts),this.cachedPorts.addAll(this.hybridPorts),this.children.each((function(t,n){e.cachedPorts.addAll(n.figure.getPorts())}))),this.cachedPorts},getInputPorts:function(){return this.inputPorts.clone().addAll(this.hybridPorts)},getOutputPorts:function(){return this.outputPorts.clone().addAll(this.hybridPorts)},clone:function(t){t=(0,_extend2.default)({excludePorts:!1},t);var e=this._super(t);!1===t.excludePorts&&(e.resetPorts(),this.getPorts(!1).each((function(t,n){var i=n.clone(),r=n.getLocator().clone();e.addPort(i,r)})));return e},getPort:function(t){return this.getPorts().find((function(e){return e.getName()===t}))},getInputPort:function(t){if("number"==typeof t)return this.inputPorts.get(t);for(var e=0;e<this.inputPorts.getSize();e++){var n=this.inputPorts.get(e);if(n.getName()===t)return n}return null},getOutputPort:function(t){if("number"==typeof t)return this.outputPorts.get(t);for(var e=0;e<this.outputPorts.getSize();e++){var n=this.outputPorts.get(e);if(n.getName()===t)return n}return null},getHybridPort:function(t){if("number"==typeof t)return this.hybridPorts.get(t);for(var e=0;e<this.hybridPorts.getSize();e++){var n=this.hybridPorts.get(e);if(n.getName()===t)return n}return null},addPort:function(t,e){if(!(t instanceof _packages2.default.Port))throw"Argument is not typeof 'draw2d.Port'. \nFunction: draw2d.shape.node.Node#addPort";return null!==this.cachedPorts&&this.cachedPorts.add(t),this.portRelayoutRequired=!0,t instanceof _packages2.default.InputPort?this.inputPorts.add(t):t instanceof _packages2.default.OutputPort?this.outputPorts.add(t):t instanceof _packages2.default.HybridPort&&this.hybridPorts.add(t),void 0!==e&&e instanceof _packages2.default.layout.locator.Locator&&t.setLocator(e),t.setParent(this),t.setCanvas(this.canvas),t.setDeleteable(!1),null!==this.canvas&&(t.getShapeElement(),this.canvas.registerPort(t)),t},resetPorts:function(){var t=this;return this.getPorts().each((function(e,n){return t.removePort(n)})),this},removePort:function(t){if(this.portRelayoutRequired=!0,this.cachedPorts=null,this.inputPorts.remove(t),this.outputPorts.remove(t),this.hybridPorts.remove(t),null!==t.getCanvas()){var e=t.getCanvas();e.unregisterPort(t),t.getConnections().clone().each((function(t,n){e.remove(n)}))}return t.setCanvas(null),this},createPort:function(t,e,n){var i=null,r=0;switch(n||(n={}),t){case"input":i=_packages2.default.Configuration.factory.createInputPort(this,n),r=this.inputPorts.getSize();break;case"output":i=_packages2.default.Configuration.factory.createOutputPort(this,n),r=this.outputPorts.getSize();break;case"hybrid":i=_packages2.default.Configuration.factory.createHybridPort(this,n),r=this.hybridPorts.getSize();break;default:throw"Unknown type ["+t+"] of port requested"}return i.setName(t+r),this.addPort(i,e),this.setDimension(this.width,this.height),i},getConnections:function(){for(var t=new _packages2.default.util.ArrayList,e=this.getPorts(),n=0;n<e.getSize();n++)for(var i=e.get(n),r=0,a=i.getConnections().getSize();r<a;r++)t.contains(i.getConnections().get(r))||t.add(i.getConnections().get(r));return t},setCanvas:function(t){var e=this.canvas;this._super(t);var n=this.getPorts();return null!==e&&n.each((function(t,n){return e.unregisterPort(n)})),null!==t?(n.each((function(e,n){n.setCanvas(t),t.registerPort(n)})),this.setDimension(this.width,this.height)):n.each((function(t,e){return e.setCanvas(null)})),this},setRotationAngle:function(t){return this.portRelayoutRequired=!0,this._super(t),this.layoutPorts(),this},setDimension:function(t,e){return this.portRelayoutRequired=!0,this._super(t,e),this},onPortValueChanged:function(t){},repaint:function(t){return!0===this.repaintBlocked||null===this.shape||(this._super(t),this.layoutPorts()),this},layoutPorts:function(){return!1===this.portRelayoutRequired||(this.portRelayoutRequired=!1,this.outputPorts.each((function(t,e){return e.locator.relocate(t,e)})),this.inputPorts.each((function(t,e){return e.locator.relocate(t,e)})),this.hybridPorts.each((function(t,e){return e.locator.relocate(t,e)}))),this},createCommand:function(t){return null===t?null:t.getPolicy()===_packages2.default.command.CommandType.ROTATE?new _packages2.default.command.CommandRotate(this,(this.getRotationAngle()+90)%360):this._super(t)},getPersistentAttributes:function(){var t=this._super();return!0===this.persistPorts&&(t.ports=[],this.getPorts().each((function(e,n){t.ports.push((0,_extend2.default)(n.getPersistentAttributes(),{name:n.getName(),port:n.NAME,locator:n.getLocator().NAME,locatorAttr:n.getLocator().attr()}))}))),t},setPersistentAttributes:function setPersistentAttributes(memento){var _this4=this;return this._super(memento),void 0!==memento.ports&&(this.persistPorts=!0,this.resetPorts(),memento.ports.forEach((function(e){var locator=eval("new "+e.locator+"()");e.locatorAttr&&locator.attr(e.locatorAttr);var port=eval("new "+e.port+"()");port.setPersistentAttributes(e),_this4.addPort(port,locator)}))),this}})},"./src/shape/node/Start.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.node.Start=a.default.shape.basic.Rectangle.extend({NAME:"draw2d.shape.node.Start",DEFAULT_COLOR:new a.default.util.Color("#4D90FE"),init:function(t,e,n){this._super(extend({bgColor:this.DEFAULT_COLOR,color:this.DEFAULT_COLOR.darker(),width:50,height:50},t),e,n),this.createPort("output")}})},"./src/shape/node/VerticalBus.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.node.VerticalBus=a.default.shape.node.Hub.extend({NAME:"draw2d.shape.node.VerticalBus",init:function(t,e,n){this._super(t,e,n),this.setConnectionDirStrategy(2),this.installEditPolicy(new a.default.policy.figure.VBusSelectionFeedbackPolicy)},setLabel:function(t){var e=null===this.label;this._super(t),!0===e&&null!==this.label&&this.label.setRotationAngle(90)},getMinHeight:function(){return null===this.shape&&null===this.label?0:null!==this.label?this.label.getMinWidth():this._super()},getMinWidth:function(){return null===this.shape&&null===this.label?0:null!==this.label?this.label.getMinHeight():this._super()}})},"./src/shape/note/PostIt.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.note.PostIt=a.default.shape.basic.Label.extend({NAME:"draw2d.shape.note.PostIt",init:function(t,e,n){this._super(t,e,n),this.setStroke(1),this.setBackgroundColor("#5b5b5b"),this.setColor("#FFFFFF"),this.setFontColor("#ffffff"),this.setFontSize(14),this.setPadding(5),this.setRadius(5)}})},"./src/shape/pert/Activity.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.pert.Activity=a.default.shape.layout.VerticalLayout.extend({NAME:"draw2d.shape.pert.Activity",init:function(t,e,n){var i=this;this.mementoValues={duration:null},this.bgColor=new a.default.util.Color("#f3f3f3"),this.lighterBgColor=this.bgColor.lighter(.2).rgba(),this.darkerBgColor=this.bgColor.darker(.2).rgba(),this._super(extend({bgColor:this.bgColor,stroke:2,radius:2,color:this.darkerBgColor},t),e,n);var r=new a.default.shape.layout.HorizontalLayout({stroke:0});this.earlyStartLabel=this.createLabel("Early Start").setStroke(0),this.durationLabel=new a.default.shape.basic.Label({text:"Duration",stroke:1,color:this.darkerBgColor,radius:0,bgColor:null,padding:5}),this.durationLabel.installEditor(new a.default.ui.LabelEditor({onCommit:function(t){i.setDuration(parseFloat(t))}})),this.earlyEndLabel=this.createLabel({text:"Early End",stroke:0}),r.add(this.earlyStartLabel),r.add(this.durationLabel),r.add(this.earlyEndLabel),this.activityLabel=new a.default.shape.basic.Label({text:"Activity Name",radius:0,padding:10,color:this.darkerBgColor,bgColor:null}),this.activityLabel.installEditor(new a.default.ui.LabelInplaceEditor),this.inputPort=this.activityLabel.createPort("input"),this.inputPort.getActivity=function(){return i},this.inputPort.onConnect=function(){i.setDuration(i.mementoValues.duration)},this.inputPort.onDisconnect=function(){i.setDuration(i.mementoValues.duration)},this.inputPort.setValue=function(t){i.setDuration(i.mementoValues.duration)},this.outputPort=this.activityLabel.createPort("output"),this.outputPort.getActivity=function(){return i},this.outputPort.onConnect=function(){i.setDuration(i.mementoValues.duration)},this.outputPort.onDisconnect=function(){i.setDuration(i.mementoValues.duration)};var s=new a.default.shape.layout.HorizontalLayout({stroke:0});this.lateStartLabel=this.createLabel("Late Start").setStroke(0),this.stackLabel=this.createLabel("Stack"),this.lateEndLabel=this.createLabel("Late End").setStroke(0),s.add(this.lateStartLabel),s.add(this.stackLabel),s.add(this.lateEndLabel),this.add(r),this.add(this.activityLabel),this.add(s),this.setDuration(1)},setDuration:function(t){this.mementoValues.duration!==t&&(this.mementoValues.duration=t,this.durationLabel.setText(this.mementoValues.duration));var e=this.getEarlyStart();this.earlyStartLabel.setText(e),this.earlyEndLabel.setText(e+this.mementoValues.duration);var n=this.outputPort.getConnections();if(n.each((function(t,e){e.getTarget().setValue()})),0===n.getSize()){var i=parseFloat(this.earlyEndLabel.getText());this.setLateFinish(i)}},getEarlyEnd:function(){return this.getEarlyStart()+this.mementoValues.duration},getEarlyStart:function(){var t=0;return this.inputPort.getConnections().each((function(e,n){var i=n.getSource().getActivity();t=Math.max(t,i.getEarlyEnd())})),t},setLateFinish:function(t){var e=t-this.mementoValues.duration;this.lateEndLabel.setText(t),this.lateStartLabel.setText(e),this.stackLabel.setText(e-parseFloat(this.earlyStartLabel.getText())),this.inputPort.getConnections().each((function(t,n){n.getSource().getActivity().setLateFinish(e)}))},createLabel:function(t){var e=new a.default.shape.basic.Label({text:t});return e.setStroke(1),e.setColor(this.darkerBgColor),e.setRadius(0),e.setBackgroundColor(null),e.setPadding(5),e.setColor(this.bgColor.darker(.2)),e.onDoubleClick=function(t){},e},setBackgroundColor:function(t){this._super(t),this.lighterBgColor=this.bgColor.lighter(.2).rgba(),this.darkerBgColor=this.bgColor.darker(.2).rgba()},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(t=t||{},this.getAlpha()<.9?t.fill=this.bgColor.rgba():t.fill=["90",this.bgColor.hash(),this.lighterBgColor].join("-"),this._super(t))}})},"./src/shape/pert/Start.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.pert.Start=a.default.shape.layout.VerticalLayout.extend({NAME:"draw2d.shape.pert.Start",init:function(t,e,n){var i=this;this.mementoValues={duration:null},this.bgColor=new a.default.util.Color("#f3f3f3"),this.lighterBgColor=this.bgColor.lighter(.2).rgba(),this.darkerBgColor=this.bgColor.darker(.2).rgba(),this._super(extend({bgColor:this.bgColor,stroke:2,radius:2,color:this.darkerBgColor},t),e,n);var r=new a.default.shape.layout.HorizontalLayout({stroke:0});this.durationLabel=new a.default.shape.basic.Label({text:"Duration",stroke:1,color:this.darkerBgColor,radius:0,bgColor:null,padding:5}),this.durationLabel.installEditor(new a.default.ui.LabelEditor({text:"Enter new duration",onCommit:function(t){i.setDuration(parseFloat(t))}})),this.earlyEndLabel=this.createLabel({text:"Early End",stroke:0}),r.add(this.durationLabel),r.add(this.earlyEndLabel),this.activityLabel=new a.default.shape.basic.Label({text:"Start",radius:0,padding:10,color:this.darkerBgColor,bgColor:null}),this.activityLabel.installEditor(new a.default.ui.LabelInplaceEditor),this.outputPort=this.activityLabel.createPort("output"),this.outputPort.getServiceTask=function(){return i},this.outputPort.onConnect=function(){i.setDuration(i.mementoValues.duration)},this.outputPort.onDisconnect=function(){i.setDuration(i.mementoValues.duration)};var s=this.createLabel(" ");s.setPadding(10),s.setStroke(0),this.lateEndLabel=s,this.add(r),this.add(this.activityLabel),this.add(s),this.setDuration(1)},setDuration:function(t){this.mementoValues.duration!==t&&(this.mementoValues.duration=t,this.durationLabel.setText(this.mementoValues.duration)),this.earlyEndLabel.setText(this.mementoValues.duration);var e=this.outputPort.getConnections();if(e.each((function(t,e){e.getTarget().setValue()})),0===e.getSize()){var n=parseFloat(this.earlyEndLabel.getText());this.setLateFinish(n)}},getEarlyEnd:function(){return this.mementoValues.duration},setLateFinish:function(t){this.mementoValues.duration;this.lateEndLabel.setText(t)},createLabel:function(t){var e=new a.default.shape.basic.Label({text:t});return e.setStroke(1),e.setColor(this.darkerBgColor),e.setRadius(0),e.setBackgroundColor(null),e.setPadding(5),e.setColor(this.bgColor.darker(.2)),e.onDoubleClick=function(t){},e},setBackgroundColor:function(t){this._super(t),this.lighterBgColor=this.bgColor.lighter(.2).rgba(),this.darkerBgColor=this.bgColor.darker(.2).rgba()},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(t=t||{},this.getAlpha()<.9?t.fill=this.bgColor.rgba():t.fill=["90",this.bgColor.hash(),this.lighterBgColor].join("-"),this._super(t))}})},"./src/shape/state/Connection.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.state.Connection=a.default.Connection.extend({NAME:"draw2d.shape.state.Connection",DEFAULT_COLOR:new a.default.util.Color("#4D90FE"),init:function(t,e,n){this._super(extend({router:null,stroke:2},t),e,n),this.setTargetDecorator(new a.default.decoration.connection.ArrowDecorator(17,8)),this.label=new a.default.shape.basic.Label({text:"label"}),this.label.setStroke(1),this.label.setPadding(2),this.label.setBackgroundColor("#f0f0f0"),this.add(this.label,new a.default.layout.locator.ParallelMidpointLocator)},setLabel:function(t){return this.label.setText(t),this.label.setVisible(!(null===t||""===t)),this.fireEvent("change:label",{value:t}),this},getLabel:function(){return this.label.getText()},getPersistentAttributes:function(){return extend(this._super(),{label:this.getLabel()})},setPersistentAttributes:function(t){this._super(t),void 0!==t.label&&this.setLabel(t.label)}})},"./src/shape/state/End.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.state.End=a.default.shape.basic.Circle.extend({NAME:"draw2d.shape.state.End",DEFAULT_COLOR:new a.default.util.Color("#4D90FE"),init:function(t,e,n){this.innerCircle=new a.default.shape.basic.Circle(20),this._super(t,e,n),this.port=this.createPort("input",new a.default.layout.locator.TopLocator),this.port.setConnectionAnchor(new a.default.layout.anchor.ShortesPathConnectionAnchor(this.port)),this.setDimension(50,50),this.setBackgroundColor(this.DEFAULT_COLOR),this.installEditPolicy(new a.default.policy.figure.AntSelectionFeedbackPolicy),this.innerCircle.setStroke(2),this.innerCircle.setBackgroundColor(null),this.add(this.innerCircle,new a.default.layout.locator.CenterLocator),this.setStroke(0)},setDimension:function(t,e){this._super(t,e),this.innerCircle.setDimension(this.getWidth()-10,this.getHeight()-10)}})},"./src/shape/state/Start.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.state.Start=a.default.shape.basic.Circle.extend({NAME:"draw2d.shape.state.Start",DEFAULT_COLOR:new a.default.util.Color("#3369E8"),init:function(t,e,n){this._super(t,e,n),this.port=this.createPort("output",new a.default.layout.locator.BottomLocator),this.port.setConnectionAnchor(new a.default.layout.anchor.ShortesPathConnectionAnchor(this.port)),this.setDimension(50,50),this.setBackgroundColor(this.DEFAULT_COLOR),this.installEditPolicy(new a.default.policy.figure.AntSelectionFeedbackPolicy),this.setStroke(0);var i=new a.default.shape.basic.Label({text:"START"});i.setStroke(0),i.setFontColor("#ffffff"),i.setFontFamily('"Open Sans",sans-serif'),this.add(i,new a.default.layout.locator.CenterLocator)}})},"./src/shape/state/State.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.state.State=a.default.shape.layout.VerticalLayout.extend({NAME:"draw2d.shape.state.State",init:function(t,e,n){this._super(t,e,n),this.port=this.createPort("hybrid",new a.default.layout.locator.BottomLocator),this.port.setConnectionAnchor(new a.default.layout.anchor.ChopboxConnectionAnchor(this.port)),this.setBackgroundColor("#f3f3f3"),this.setStroke(1),this.setColor("#e0e0e0"),this.setRadius(5);var i=this.createLabel("State").setStroke(0);this.label=i;var r=new a.default.shape.basic.Rectangle;r.getHeight=function(){return 1},r.setMinWidth(90),r.setColor("#e0e0e0");var s=new a.default.shape.basic.Rectangle;s.setMinHeight(30),s.setStroke(0),s.setBackgroundColor(null),this.add(i),this.add(r),this.add(s)},setLabel:function(t){return this.label.setText(t),this.fireEvent("change:label",{value:t}),this},getLabel:function(){return this.label.getText()},createLabel:function(t){var e=new a.default.shape.basic.Label(t);return e.setStroke(1),e.setColor(this.darkerBgColor),e.setRadius(0),e.setBackgroundColor(null),e.setPadding(5),e.setColor(this.bgColor.darker(.2)),e.onDoubleClick=function(t){},e},getPersistentAttributes:function(){return extend(this._super(),{label:this.getLabel()})},setPersistentAttributes:function(t){this._super(t),void 0!==t.label&&this.setLabel(t.label)}})},"./src/shape/widget/Slider.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i},s=n("./node_modules/shifty/dist/shifty.js");a.default.shape.widget.Slider=a.default.shape.widget.Widget.extend({NAME:"draw2d.shape.widget.Slider",DEFAULT_COLOR_THUMB:new a.default.util.Color("#bddf69"),DEFAULT_COLOR_BG:new a.default.util.Color("#d3d3d3"),init:function(t,e,n){this.currentValue=0,this.slideBoundingBox=new a.default.geo.Rectangle(0,0,10,20),this.padding={top:4,right:4,bottom:4,left:4},this.panning=!1,this.thumbGrow=0,this._super(extend({width:150,height:15,stroke:1,radius:4,resizeable:!0,color:this.DEFAULT_COLOR_THUMB,bgColor:this.DEFAULT_COLOR_BG,value:50},t),extend({padding:this.setPadding,value:this.setValue},e),extend({padding:this.getPadding,value:this.getValue},n)),this.setMinHeight(15),this.setMinWidth(80)},createSet:function(){var t=this.canvas.paper.set(),e=this.canvas.paper.rect(0,0,10,20);return e.node.style.cursor="col-resize",t.push(e),t},setDimension:function(t,e){this._super(t,e),this.slideBoundingBox.setBoundary(this.padding.left,0,this.getWidth()-this.padding.right,this.getHeight()),this.slideBoundingBox.setHeight(this.getHeight()+1),this.repaint()},setPadding:function(t){return this.clearCache(),this.padding="number"==typeof t?{top:t,right:t,bottom:t,left:t}:extend(this.padding,t),this.repaint(),this.fireEvent("change:padding",{value:this.padding}),this},getPadding:function(){return this.padding},onValueChange:function(t){},onDragStart:function(t,e,n,i,r){if(this.slideBoundingBox.hitTest(t,e)){this.panningX=t,this.panningY=e,this.panning=!0;var a=new s.Tweenable;return a.tween({from:{grow:this.thumbGrow},to:{grow:10},duration:500,easing:"easeOutQuart",step:function(t){this.thumbGrow=t.grow,this.repaint()}.bind(this),finish:function(){a.dispose()}}),!1}return this._super(t,e,n,i,r)},onPanning:function(t,e,n,i){var r=this.getWidth(),a=r-this.padding.left-this.padding.right,s=Math.min(r,Math.max(0,this.panningX+t)),o=Math.min(r-this.padding.left-this.padding.right,s);this.setValue(100/a*o)},onPanningEnd:function(){this.panning=!1;var t=new s.Tweenable;t.tween({from:{grow:this.thumbGrow},to:{grow:0},duration:300,easing:"easeOutQuart",step:function(t){this.thumbGrow=t.grow,this.repaint()}.bind(this),finish:function(){t.dispose()}}),this.thumbGrow=0,this.repaint()},setValue:function(t){return this.currentValue=Math.min(Math.max(0,0|t),100),this.repaint(),this.onValueChange(this.currentValue),this.fireEvent("change:value",{value:this.currentValue}),this},getValue:function(){return this.currentValue},repaint:function(t){if(!0!==this.repaintBlocked&&null!==this.shape){t=t||{};var e=(this.getWidth()-this.padding.left-this.padding.right)/100*this.currentValue+this.padding.left|0;if(this.slideBoundingBox.setX(e),null!==this.svgNodes){var n=this.slideBoundingBox.toJSON();n.y-=this.thumbGrow/2,n.height+=this.thumbGrow,n.fill=this.getColor().rgba(),n.stroke=this.getColor().darker(.2).rgba(),n.r=4,this.svgNodes.attr(n)}t.fill="90-"+this.bgColor.hash()+":5-"+this.bgColor.lighter(.3).hash()+":95",t.stroke=this.bgColor.darker(.1).rgba(),this._super(t)}},applyTransformation:function(){return this.svgNodes.transform("T"+this.getAbsoluteX()+","+this.getAbsoluteY()),this}})},"./src/shape/widget/Widget.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.shape.widget.Widget=a.default.SetFigure.extend({init:function(t,e,n){this._super(t,e,n)}})},"./src/ui/LabelEditor.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.ui.LabelEditor=Class.extend({NAME:"draw2d.ui.LabelEditor",init:function(t){this.configuration=extend({onCommit:function(){},onCancel:function(){},onStart:function(){},text:"Value"},t)},start:function(t){this.configuration.onStart();var e=prompt(this.configuration.text,t.getText());if(e){var n=new a.default.command.CommandAttr(t,{text:e});t.getCanvas().getCommandStack().execute(n),this.configuration.onCommit(t.getText())}else this.configuration.onCancel()}})},"./src/ui/LabelInplaceEditor.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.ui.LabelInplaceEditor=a.default.ui.LabelEditor.extend({NAME:"draw2d.ui.LabelInplaceEditor",init:function(t){this._super(),this.listener=extend({onCommit:function(){},onCancel:function(){},onStart:function(){}},t)},start:function(t){var e=this;this.label=t,this.commitCallback=this.commit.bind(this),$("body").bind("click",this.commitCallback),this.html=$('<input id="inplaceeditor">'),this.html.val(t.getText()),this.html.hide(),$("body").append(this.html),this.html.autoResize(),this.html.bind("keyup",function(t){switch(t.which){case 13:this.commit();break;case 27:this.cancel()}}.bind(this)),this.html.bind("blur",this.commitCallback),this.html.bind("click",(function(t){t.stopPropagation(),t.preventDefault()}));var n=this.label.getCanvas(),i=this.label.getBoundingBox();i.setPosition(n.fromCanvasToDocumentCoordinate(i.x,i.y)),n.getScrollArea().is($("body"))&&i.translate(n.getScrollLeft(),n.getScrollTop()),i.translate(-1,-1),i.resize(2,2),this.html.css({position:"absolute",top:i.y,left:i.x,"min-width":i.w*(1/n.getZoom()),height:Math.max(25,i.h*(1/n.getZoom()))}),this.html.fadeIn((function(){e.html.focus(),e.listener.onStart()}))},commit:function(){var t=this;this.html.unbind("blur",this.commitCallback),$("body").unbind("click",this.commitCallback);var e=this.html.val(),n=new a.default.command.CommandAttr(this.label,{text:e});this.label.getCanvas().getCommandStack().execute(n),this.html.fadeOut((function(){t.html.remove(),t.html=null,t.listener.onCommit(t.label.getText())}))},cancel:function(){var t=this;this.html.unbind("blur",this.commitCallback),$("body").unbind("click",this.commitCallback),this.html.fadeOut((function(){t.html.remove(),t.html=null,t.listener.onCancel()}))}})},"./src/util/ArrayList.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.util.ArrayList=Class.extend({init:function(t){Array.isArray(t)?this.data=t:this.data=[]},clear:function(){return this.data=[],this},reverse:function(){return this.data.reverse(),this},getSize:function(){return this.data.length},isEmpty:function(){return 0===this.getSize()},last:function(){return this.data[this.data.length-1]},asArray:function(){return this.data},first:function(){return this.data.length>0?this.data[0]:null},get:function(t){return this.data[t]},add:function(){var t;return(t=this.data).push.apply(t,arguments),this},grep:function(t){return this.data=this.data.filter(t),this},find:function(t){var e=this.data.filter(t);return 0===e.length?null:e[0]},map:function(t){return this.data=this.data.map(t),this},unique:function(){return this.data=this.data.filter((function(t,e,n){return n.indexOf(t)===e})),this},addAll:function(t,e){if(!(t instanceof a.default.util.ArrayList))throw"Unable to handle unknown object type in ArrayList.addAll";return this.data=this.data.concat(t.data),e&&this.unique(),this},pop:function(){return this.removeElementAt(this.data.length-1)},push:function(t){this.add(t)},remove:function(t){var e=this.indexOf(t);return e>=0?this.removeElementAt(e):null},insertElementAt:function(t,e){return this.data.splice(e,0,t),this},removeElementAt:function(t){var e=this.data[t];return this.data.splice(t,1),e},removeAll:function(t){var e=this;return t instanceof a.default.util.ArrayList&&(t=t.data),Array.isArray(t)&&t.forEach((function(t){e.remove(t)})),this},indexOf:function(t){return this.data.indexOf(t)},contains:function(t){return-1!==this.indexOf(t)},sort:function(t){return"function"==typeof t?this.data.sort(t):this.data.sort((function(e,n){return e[t]<n[t]?-1:e[t]>n[t]?1:0})),this},clone:function(t){var e=new a.default.util.ArrayList;if(t)for(var n=0;n<this.data.length;n++)e.data.push(this.data[n].clone());else e.data=this.data.slice(0);return e},each:function(t,e){if(void 0!==e&&!0===e)for(var n=this.data.length-1;n>=0&&!1!==t(n,this.data[n]);n--);else for(var i=0;i<this.data.length&&!1!==t(i,this.data[i]);i++);return this},overwriteElementAt:function(t,e){return this.data[e]=t,this},getPersistentAttributes:function(){return{data:this.data}},setPersistentAttributes:function(t){return this.data=t.data,this}}),a.default.util.ArrayList.EMPTY_LIST=new a.default.util.ArrayList},"./src/util/Base64.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.util.Base64={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",ENCODED_VALS:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",ENCODED_VALS_WEBSAFE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.",encodeByteArray:function(t,e){a.default.util.Base64.init();for(var n=e?a.default.util.Base64.byteToCharMapWebSafe_:a.default.util.Base64.byteToCharMap_,i=[],r=0;r<t.length;r+=3){var s=t[r],o=r+1<t.length,l=o?t[r+1]:0,c=r+2<t.length,u=c?t[r+2]:0,h=s>>2,d=(3&s)<<4|l>>4,f=(15&l)<<2|u>>6,p=63&u;c||(p=64,o||(f=64)),i.push(n[h],n[d],n[f],n[p])}return i.join("")},encode:function(t,e){return a.default.util.Base64.encodeByteArray(a.default.util.Base64.stringToByteArray(t),e)},decode:function(t,e){a.default.util.Base64.init();for(var n=e?a.default.util.Base64.charToByteMapWebSafe_:a.default.util.Base64.charToByteMap_,i=[],r=0;r<t.length;){var s=n[t.charAt(r++)],o=r<t.length?n[t.charAt(r)]:0,l=++r<t.length?n[t.charAt(r)]:0,c=++r<t.length?n[t.charAt(r)]:0;if(++r,null==s||null==o||null==l||null==c)throw Error();var u=s<<2|o>>4;if(i.push(u),64!=l){var h=o<<4&240|l>>2;if(i.push(h),64!=c){var d=l<<6&192|c;i.push(d)}}}return i},stringToByteArray:function(t){for(var e=[],n=0,i=0;i<t.length;i++){for(var r=t.charCodeAt(i);r>255;)e[n++]=255&r,r>>=8;e[n++]=r}return e},init:function(){if(!a.default.util.Base64.byteToCharMap_){a.default.util.Base64.byteToCharMap_={},a.default.util.Base64.charToByteMap_={},a.default.util.Base64.byteToCharMapWebSafe_={},a.default.util.Base64.charToByteMapWebSafe_={};for(var t=0;t<a.default.util.Base64.ENCODED_VALS.length;t++)a.default.util.Base64.byteToCharMap_[t]=a.default.util.Base64.ENCODED_VALS.charAt(t),a.default.util.Base64.charToByteMap_[a.default.util.Base64.byteToCharMap_[t]]=t,a.default.util.Base64.byteToCharMapWebSafe_[t]=a.default.util.Base64.ENCODED_VALS_WEBSAFE.charAt(t),a.default.util.Base64.charToByteMapWebSafe_[a.default.util.Base64.byteToCharMapWebSafe_[t]]=t}}}},"./src/util/Color.js":(t,e,n)=>{"use strict";var i,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a=n("./src/packages.js"),s=(i=a)&&i.__esModule?i:{default:i};s.default.util.Color=Class.extend({init:function(t,e,n,i){if(this.hashString=null,null==t)this.hashString="none";else if(t instanceof s.default.util.Color)"none"===t.hashString?this.hashString="none":(this.red=t.red,this.green=t.green,this.blue=t.blue,this.alpha=t.alpha);else if("string"==typeof t)if("none"===t)this.hashString="none";else{var a=this.hex2rgb(t);this.red=a[0],this.green=a[1],this.blue=a[2],this.alpha=a[3]}else"object"===(void 0===t?"undefined":r(t))&&"number"==typeof t.red?(this.red=t.red,this.green=t.green,this.blue=t.blue,this.alpha=t.alpha):t instanceof Array&&3===t.length||"object"===(void 0===t?"undefined":r(t))&&"number"==typeof t.length&&3===t.length?(this.red=t[0],this.green=t[1],this.blue=t[2],this.alpha=t[3]):(this.red=parseInt(t),this.green=parseInt(e),this.blue=parseInt(n),this.alpha=void 0===i?1:parseFloat(i))},getHTMLStyle:function(){return void 0===this.red?"rgba(0,0,0,0)":"rgba("+this.red+","+this.green+","+this.blue+","+this.alpha+")"},getRed:function(){return this.red},getGreen:function(){return this.green},getBlue:function(){return this.blue},getAlpha:function(){return this.alpha},getIdealTextColor:function(){return 255-(.299*this.red+.587*this.green+.114*this.blue)<105?new s.default.util.Color(0,0,0):new s.default.util.Color(255,255,255)},hex2rgb:function(t){if(!t)return[0,0,0,1];if("transparent"===t.toLowerCase())return[0,0,0,0];if("#"===t[0])return t.length<7&&(t="#"+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+(t.length>4?t[4]+t[4]:"")),[parseInt(t.substr(1,2),16),parseInt(t.substr(3,2),16),parseInt(t.substr(5,2),16),t.length>7?parseInt(t.substr(7,2),16)/255:1];if(-1===t.indexOf("rgb")){var e=document.body.appendChild(document.createElement("fictum")),n="rgb(1, 2, 3)";if(e.style.color=n,e.style.color!==n)return[0,0,0,1];if(e.style.color=t,e.style.color===n||""===e.style.color)return[0,0,0,1];t=getComputedStyle(e).color,document.body.removeChild(e)}return 0===t.indexOf("rgb")?(-1===t.indexOf("rgba")&&(t+=",1"),t.match(/[\.\d]+/g).map((function(t){return+t}))):void 0},hex:function(){return this.int2hex(this.red)+this.int2hex(this.green)+this.int2hex(this.blue)},rgba:function(){return this.getHTMLStyle()},hash:function(){return null===this.hashString&&(this.hashString="#"+this.hex()),this.hashString},int2hex:function(t){return t=Math.round(Math.min(Math.max(0,t),255)),"0123456789ABCDEF".charAt((t-t%16)/16)+"0123456789ABCDEF".charAt(t%16)},darker:function(t){if("none"===this.hashString)return this;t=void 0===t?.1:t;var e=parseInt(Math.round(this.getRed()*(1-t))),n=parseInt(Math.round(this.getGreen()*(1-t))),i=parseInt(Math.round(this.getBlue()*(1-t)));return e<0?e=0:e>255&&(e=255),n<0?n=0:n>255&&(n=255),i<0?i=0:i>255&&(i=255),new s.default.util.Color(e,n,i,this.alpha)},lighter:function(t){if("none"===this.hashString)return this;t=void 0===t?.1:t;var e=parseInt(Math.round(this.getRed()*(1+t))),n=parseInt(Math.round(this.getGreen()*(1+t))),i=parseInt(Math.round(this.getBlue()*(1+t)));return e<0?e=0:e>255&&(e=255),n<0?n=0:n>255&&(n=255),i<0?i=0:i>255&&(i=255),new s.default.util.Color(e,n,i,this.alpha)},fadeTo:function(t,e){var n=Math.floor(this.red+e*(t.red-this.red)+.5),i=Math.floor(this.green+e*(t.green-this.green)+.5),r=Math.floor(this.blue+e*(t.blue-this.blue)+.5),a=Math.floor(this.alpha+e*(t.alpha-this.alpha)+.5);return new s.default.util.Color(n,i,r,a)},equals:function(t){return t instanceof s.default.util.Color&&this.rgba()===t.rgba()}}),t.exports=s.default.util.Color},"./src/util/Debug.js":()=>{"use strict";window.debug=function(){for(var t,e,n=this,i=Array.prototype.slice,r=console,a={},s=9,o=["error","warn","info","debug","log"],l="assert clear count dir dirxml exception group groupCollapsed groupEnd profile profileEnd table time timeEnd trace".split(" "),c=l.length,u=[];--c>=0;)!function(t){a[t]=function(){0!==s&&r&&r[t]&&r[t].apply(r,arguments)}}(l[c]);for(c=o.length;--c>=0;)!function(t,e){a[e]=function(){var a=i.call(arguments),s=[e].concat(a);u.push(s),h(s),r&&d(t)&&(r.firebug?r[e].apply(n,a):r[e]?r[e](a):r.log(a))}}(c,o[c]);function h(i){!t||!e&&r&&r.log||t.apply(n,i)}function d(t){return s>0?s>t:o.length+s<=t}return a.setLevel=function(t){s="number"==typeof t?t:9},a.setCallback=function(){var n=i.call(arguments),r=u.length,a=r;for(t=n.shift()||null,e="boolean"==typeof n[0]&&n.shift(),a-="number"==typeof n[0]?n.shift():r;a<r;)h(u[a++])},a}()},"./src/util/JSONUtil.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.util.JSON={set:function(t,e,n){if(e&&""!==e){for(var i=e.match(/[\w-]+|\[\]|([^\[[\w]\]]|["'](.*?)['"])/g),r=t,s=void 0,o=null,l=null,c=function(t,e,n){"[]"===e?t.push(n):t[e]=n};i.length>0;)s=i.shift().replace(/["']/g,""),isNaN(+s)&&"[]"!==s?"string"==typeof s&&(a.default.util.JqueryUtil.isPlainObject(r)||c(o,l,r={})):r.constructor!==Array&&c(o,l,r=[]),o=r,l=s,r=r[s];c(o,l,n)}},get:function(t,e){if(e){for(var n=e.match(/[\w-]+|\[\]|([^\[[\w]\]]|["'](.*?)['"])/g);null!==t&&n.length>0;){if(!t.propertyIsEnumerable(n[0].replace(/"/g,"")))return;t=t[n.shift().replace(/"/g,"")]}return t}},diff:function(t,e){var n={};for(var i in t){var r=t[i],a=e[i];r!==a&&(r.equals&&r.equals(a)||(n[i]=t[i]))}return n},flatDiff:function(t,e){var n={};for(var i in t)t[i]!==e[i]&&(n[i]=t[i]);return n},ensureDefault:function(t,e,n){t.hasOwnProperty(e)||(t[e]=n)}},t.exports=a.default.util.JSON},"./src/util/JqueryUtil.js":(t,e,n)=>{"use strict";var i,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a=n("./src/packages.js"),s=(i=a)&&i.__esModule?i:{default:i};s.default.util.JqueryUtil={isPlainObject:function(t){if("object"!==(void 0===t?"undefined":r(t))||null===t)return!1;var e=Object.getPrototypeOf(t);return null===e||e===Object.prototype}},t.exports=s.default.util.JqueryUtil},"./src/util/Polyfill.js":()=>{"use strict";document.ontouchmove=function(t){t.preventDefault()}},"./src/util/SVGUtil.js":()=>{"use strict";Raphael.fn.polygon=function(t){for(var e=["M"],n=t.split(" "),i=0;i<n.length;i++){for(var r=n[i].split(","),a=0;a<r.length;a++){var s=parseFloat(r[a]);isNaN(s)||e.push(s)}0==i&&e.push("L")}return e.push("Z"),this.path(e)}},"./src/util/UUID.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.util.UUID={create:function(){var t=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()}},t.exports=a.default.util.UUID},"./src/util/extend.js":(t,e,n)=>{"use strict";var i=function(){var t={},e=!1,n=0,i=arguments.length;"[object Boolean]"===Object.prototype.toString.call(arguments[0])&&(e=arguments[0],n++);for(var r=function(n){for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e&&"[object Object]"===Object.prototype.toString.call(n[i])?t[i]=extend(!0,t[i],n[i]):t[i]=n[i])};n<i;n++){r(arguments[n])}return t};t.exports=i,n.g.extend=i},"./src/util/raphael_ext.js":()=>{"use strict";Raphael.el.isVisible=function(){return"none"!==this.node.style.display}},"./src/util/spline/BezierSpline.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.util.spline.BezierSpline=a.default.util.spline.Spline.extend({NAME:"draw2d.util.spline.BezierSpline",init:function(){this._super()},generate:function(t,e){var n=t.getSize(),i=new a.default.util.ArrayList;i.add(this.p(0,0,t));for(var r=0;r<n-3;r+=3)for(var s=1;s<=e;s++)i.add(this.p(r,s/e,t));return i},p:function(t,e,n){for(var i=0,r=0,s=t,o=0;o<=3;o++){var l=this.blend(o,e),c=n.get(s++);i+=l*c.x,r+=l*c.y}return new a.default.geo.Point(i,r)},blend:function(t,e){return 0==t?(1-e)*(1-e)*(1-e):1==t?3*e*(1-e)*(1-e):2==t?3*e*e*(1-e):e*e*e}})},"./src/util/spline/CatmullRomSpline.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.util.spline.CatmullRomSpline=a.default.util.spline.CubicSpline.extend({NAME:"draw2d.util.spline.CatmullRomSpline",init:function(){this._super()},blend:function(t,e){return-2==t?((2-e)*e-1)*e/2:-1==t?((3*e-5)*e*e+2)/2:0==t?((-3*e+4)*e+1)*e/2:(e-1)*e*e/2}})},"./src/util/spline/CubicSpline.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js"),a=(i=r)&&i.__esModule?i:{default:i};a.default.util.spline.CubicSpline=a.default.util.spline.Spline.extend({NAME:"draw2d.util.spline.CubicSpline",init:function(){this._super()},generate:function(t,e){var n=new a.default.util.ArrayList;n.add(t.get(0)),n.addAll(t),n.add(t.get(t.getSize()-1));var i=n.getSize(),r=new a.default.util.ArrayList;r.add(t.get(0)),r.add(this.p(1,0,n));for(var s=1;s<i-2;s++)for(var o=1;o<=e;o++)r.add(this.p(s,o/e,n));return r.add(t.get(t.getSize()-1)),r},p:function(t,e,n){for(var i=0,r=0,s=t-1,o=-2;o<=1;o++){var l=this.blend(o,e),c=n.get(s++);i+=l*c.x,r+=l*c.y}return new a.default.geo.Point(i,r)},blend:function(t,e){return-2===t?(((3-e)*e-3)*e+1)/6:-1===t?((3*e-6)*e*e+4)/6:0===t?(((-3*e+3)*e+3)*e+1)/6:e*e*e/6}})},"./src/util/spline/Spline.js":(t,e,n)=>{"use strict";var i,r=n("./src/packages.js");((i=r)&&i.__esModule?i:{default:i}).default.util.spline.Spline=Class.extend({NAME:"draw2d.util.spline.Spline",init:function(){},generate:function(t,e){throw"inherit classes must implement the method 'draw2d.util.spline.Spline.generate()'"}})}},__webpack_module_cache__={};function __webpack_require__(t){var e=__webpack_module_cache__[t];if(void 0!==e)return e.exports;var n=__webpack_module_cache__[t]={id:t,exports:{}};return __webpack_modules__[t].call(n.exports,n,n.exports,__webpack_require__),n.exports}__webpack_require__.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return __webpack_require__.d(e,{a:e}),e},__webpack_require__.d=(t,e)=>{for(var n in e)__webpack_require__.o(e,n)&&!__webpack_require__.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),__webpack_require__.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),__webpack_require__.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},__webpack_require__.nc=void 0;var __webpack_exports__=__webpack_require__("./src/index.js");return __webpack_exports__})()));
//# sourceMappingURL=draw2d_pro.js.map