var SvgCanvas=function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t,r,n,i,a,s){try{var o=e[a](s),u=o.value}catch(e){return void r(e)}o.done?t(u):Promise.resolve(u).then(n,i)}function r(e){return function(){var r=this,n=arguments;return new Promise((function(i,a){var s=e.apply(r,n);function o(e){t(s,i,a,o,u,"next",e)}function u(e){t(s,i,a,o,u,"throw",e)}o(void 0)}))}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n,i,a=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}} /** * A jQuery module to work with SVG attributes. * @module jQueryAttr * @license MIT */ function y(t){var r=t.fn.attr;return t.fn.attr=function(t,n){var i=this.length;if(!i)return r.call(this,t,n);for(var a=0;at.getTotalLength())break;r--}while(r>0);return r}),window.SVGPathSeg=e,window.SVGPathSegClosePath=t,window.SVGPathSegMovetoAbs=r,window.SVGPathSegMovetoRel=i,window.SVGPathSegLinetoAbs=o,window.SVGPathSegLinetoRel=u,window.SVGPathSegCurvetoCubicAbs=l,window.SVGPathSegCurvetoCubicRel=h,window.SVGPathSegCurvetoQuadraticAbs=d,window.SVGPathSegCurvetoQuadraticRel=m,window.SVGPathSegArcAbs=f,window.SVGPathSegArcRel=g,window.SVGPathSegLinetoHorizontalAbs=p,window.SVGPathSegLinetoHorizontalRel=y,window.SVGPathSegLinetoVerticalAbs=v,window.SVGPathSegLinetoVerticalRel=x,window.SVGPathSegCurvetoCubicSmoothAbs=S,window.SVGPathSegCurvetoCubicSmoothRel=_,window.SVGPathSegCurvetoQuadraticSmoothAbs=b,window.SVGPathSegCurvetoQuadraticSmoothRel=w}if(!("SVGPathSegList"in window)||!("appendItem"in window.SVGPathSegList.prototype)){var A=function(){function e(t){n(this,e),this._pathElement=t,this._list=this._parsePath(this._pathElement.getAttribute("d")),this._mutationObserverConfig={attributes:!0,attributeFilter:["d"]},this._pathElementMutationObserver=new MutationObserver(this._updateListFromPathMutations.bind(this)),this._pathElementMutationObserver.observe(this._pathElement,this._mutationObserverConfig)}return a(e,[{key:"_checkPathSynchronizedToList",value:function(){this._updateListFromPathMutations(this._pathElementMutationObserver.takeRecords())}},{key:"_updateListFromPathMutations",value:function(e){if(this._pathElement){var t=!1;e.forEach((function(e){"d"===e.attributeName&&(t=!0)})),t&&(this._list=this._parsePath(this._pathElement.getAttribute("d")))}}},{key:"_writeListToPath",value:function(){this._pathElementMutationObserver.disconnect(),this._pathElement.setAttribute("d",e._pathSegArrayAsString(this._list)),this._pathElementMutationObserver.observe(this._pathElement,this._mutationObserverConfig)}},{key:"segmentChanged",value:function(e){this._writeListToPath()}},{key:"clear",value:function(){this._checkPathSynchronizedToList(),this._list.forEach((function(e){e._owningPathSegList=null})),this._list=[],this._writeListToPath()}},{key:"initialize",value:function(e){return this._checkPathSynchronizedToList(),this._list=[e],e._owningPathSegList=this,this._writeListToPath(),e}},{key:"_checkValidIndex",value:function(e){if(isNaN(e)||e<0||e>=this.numberOfItems)throw new Error("INDEX_SIZE_ERR")}},{key:"getItem",value:function(e){return this._checkPathSynchronizedToList(),this._checkValidIndex(e),this._list[e]}},{key:"insertItemBefore",value:function(e,t){return this._checkPathSynchronizedToList(),t>this.numberOfItems&&(t=this.numberOfItems),e._owningPathSegList&&(e=e.clone()),this._list.splice(t,0,e),e._owningPathSegList=this,this._writeListToPath(),e}},{key:"replaceItem",value:function(e,t){return this._checkPathSynchronizedToList(),e._owningPathSegList&&(e=e.clone()),this._checkValidIndex(t),this._list[t]=e,e._owningPathSegList=this,this._writeListToPath(),e}},{key:"removeItem",value:function(e){this._checkPathSynchronizedToList(),this._checkValidIndex(e);var t=this._list[e];return this._list.splice(e,1),this._writeListToPath(),t}},{key:"appendItem",value:function(e){return this._checkPathSynchronizedToList(),e._owningPathSegList&&(e=e.clone()),this._list.push(e),e._owningPathSegList=this,this._writeListToPath(),e}},{key:"_parsePath",value:function(e){if(!e||!e.length)return[];var t=this,r=function(){function e(){n(this,e),this.pathSegList=[]}return a(e,[{key:"appendSegment",value:function(e){this.pathSegList.push(e)}}]),e}(),i=function(){function e(t){n(this,e),this._string=t,this._currentIndex=0,this._endIndex=this._string.length,this._previousCommand=SVGPathSeg.PATHSEG_UNKNOWN,this._skipOptionalSpaces()}return a(e,[{key:"_isCurrentSpace",value:function(){var e=this._string[this._currentIndex];return e<=" "&&(" "===e||"\n"===e||"\t"===e||"\r"===e||"\f"===e)}},{key:"_skipOptionalSpaces",value:function(){for(;this._currentIndex="0"&&e<="9")&&t!==SVGPathSeg.PATHSEG_CLOSEPATH?t===SVGPathSeg.PATHSEG_MOVETO_ABS?SVGPathSeg.PATHSEG_LINETO_ABS:t===SVGPathSeg.PATHSEG_MOVETO_REL?SVGPathSeg.PATHSEG_LINETO_REL:t:SVGPathSeg.PATHSEG_UNKNOWN}},{key:"initialCommandIsMoveTo",value:function(){if(!this.hasMoreData())return!0;var e=this.peekSegmentType();return e===SVGPathSeg.PATHSEG_MOVETO_ABS||e===SVGPathSeg.PATHSEG_MOVETO_REL}},{key:"_parseNumber",value:function(){var e=0,t=0,r=1,n=0,i=1,a=1,s=this._currentIndex;if(this._skipOptionalSpaces(),this._currentIndex"9")&&"."!==this._string.charAt(this._currentIndex))){for(var o=this._currentIndex;this._currentIndex="0"&&this._string.charAt(this._currentIndex)<="9";)this._currentIndex++;if(this._currentIndex!==o)for(var u=this._currentIndex-1,l=1;u>=o;)t+=l*(this._string.charAt(u--)-"0"),l*=10;if(this._currentIndex=this._endIndex||this._string.charAt(this._currentIndex)<"0"||this._string.charAt(this._currentIndex)>"9")return;for(;this._currentIndex="0"&&this._string.charAt(this._currentIndex)<="9";)r*=10,n+=(this._string.charAt(this._currentIndex)-"0")/r,this._currentIndex+=1}if(this._currentIndex!==s&&this._currentIndex+1=this._endIndex||this._string.charAt(this._currentIndex)<"0"||this._string.charAt(this._currentIndex)>"9")return;for(;this._currentIndex="0"&&this._string.charAt(this._currentIndex)<="9";)e*=10,e+=this._string.charAt(this._currentIndex)-"0",this._currentIndex++}var h=t+n;if(h*=i,e&&(h*=Math.pow(10,a*e)),s!==this._currentIndex)return this._skipOptionalSpacesOrDelimiter(),h}}},{key:"_parseArcFlag",value:function(){if(!(this._currentIndex>=this._endIndex)){var e=!1,t=this._string.charAt(this._currentIndex++);if("0"===t)e=!1;else{if("1"!==t)return;e=!0}return this._skipOptionalSpacesOrDelimiter(),e}}},{key:"parseSegment",value:function(){var e=this._string[this._currentIndex],r=this._pathSegTypeFromChar(e);if(r===SVGPathSeg.PATHSEG_UNKNOWN){if(this._previousCommand===SVGPathSeg.PATHSEG_UNKNOWN)return null;if((r=this._nextCommandHelper(e,this._previousCommand))===SVGPathSeg.PATHSEG_UNKNOWN)return null}else this._currentIndex++;switch(this._previousCommand=r,r){case SVGPathSeg.PATHSEG_MOVETO_REL:return new SVGPathSegMovetoRel(t,this._parseNumber(),this._parseNumber());case SVGPathSeg.PATHSEG_MOVETO_ABS:return new SVGPathSegMovetoAbs(t,this._parseNumber(),this._parseNumber());case SVGPathSeg.PATHSEG_LINETO_REL:return new SVGPathSegLinetoRel(t,this._parseNumber(),this._parseNumber());case SVGPathSeg.PATHSEG_LINETO_ABS:return new SVGPathSegLinetoAbs(t,this._parseNumber(),this._parseNumber());case SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:return new SVGPathSegLinetoHorizontalRel(t,this._parseNumber());case SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:return new SVGPathSegLinetoHorizontalAbs(t,this._parseNumber());case SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL:return new SVGPathSegLinetoVerticalRel(t,this._parseNumber());case SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS:return new SVGPathSegLinetoVerticalAbs(t,this._parseNumber());case SVGPathSeg.PATHSEG_CLOSEPATH:return this._skipOptionalSpaces(),new SVGPathSegClosePath(t);case SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL:var n={x1:this._parseNumber(),y1:this._parseNumber(),x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()};return new SVGPathSegCurvetoCubicRel(t,n.x,n.y,n.x1,n.y1,n.x2,n.y2);case SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS:var i={x1:this._parseNumber(),y1:this._parseNumber(),x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()};return new SVGPathSegCurvetoCubicAbs(t,i.x,i.y,i.x1,i.y1,i.x2,i.y2);case SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:var a={x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()};return new SVGPathSegCurvetoCubicSmoothRel(t,a.x,a.y,a.x2,a.y2);case SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:var s={x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()};return new SVGPathSegCurvetoCubicSmoothAbs(t,s.x,s.y,s.x2,s.y2);case SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:var o={x1:this._parseNumber(),y1:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()};return new SVGPathSegCurvetoQuadraticRel(t,o.x,o.y,o.x1,o.y1);case SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:var u={x1:this._parseNumber(),y1:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()};return new SVGPathSegCurvetoQuadraticAbs(t,u.x,u.y,u.x1,u.y1);case SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:return new SVGPathSegCurvetoQuadraticSmoothRel(t,this._parseNumber(),this._parseNumber());case SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:return new SVGPathSegCurvetoQuadraticSmoothAbs(t,this._parseNumber(),this._parseNumber());case SVGPathSeg.PATHSEG_ARC_REL:var l={x1:this._parseNumber(),y1:this._parseNumber(),arcAngle:this._parseNumber(),arcLarge:this._parseArcFlag(),arcSweep:this._parseArcFlag(),x:this._parseNumber(),y:this._parseNumber()};return new SVGPathSegArcRel(t,l.x,l.y,l.x1,l.y1,l.arcAngle,l.arcLarge,l.arcSweep);case SVGPathSeg.PATHSEG_ARC_ABS:var h={x1:this._parseNumber(),y1:this._parseNumber(),arcAngle:this._parseNumber(),arcLarge:this._parseArcFlag(),arcSweep:this._parseArcFlag(),x:this._parseNumber(),y:this._parseNumber()};return new SVGPathSegArcAbs(t,h.x,h.y,h.x1,h.y1,h.arcAngle,h.arcLarge,h.arcSweep);default:throw new Error("Unknown path seg type.")}}}]),e}(),s=new r,o=new i(e);if(!o.initialCommandIsMoveTo())return[];for(;o.hasMoreData();){var u=o.parseSegment();if(!u)return[];s.appendSegment(u)}return s.pathSegList}}],[{key:"_pathSegArrayAsString",value:function(e){var t="",r=!0;return e.forEach((function(e){r?(r=!1,t+=e._asPathString()):t+=" "+e._asPathString()})),t}}]),e}();A.prototype.classname="SVGPathSegList",Object.defineProperty(A.prototype,"numberOfItems",{get:function(){return this._checkPathSynchronizedToList(),this._list.length},enumerable:!0}),Object.defineProperties(SVGPathElement.prototype,{pathSegList:{get:function(){return this._pathSegList||(this._pathSegList=new A(this)),this._pathSegList},enumerable:!0},normalizedPathSegList:{get:function(){return this.pathSegList},enumerable:!0},animatedPathSegList:{get:function(){return this.pathSegList},enumerable:!0},animatedNormalizedPathSegList:{get:function(){return this.pathSegList},enumerable:!0}}),window.SVGPathSegList=A}}(); /** * Namespaces or tools therefor. * @module namespaces * @license MIT */ var v,x={HTML:"http://www.w3.org/1999/xhtml",MATH:"http://www.w3.org/1998/Math/MathML",SE:"http://svg-edit.googlecode.com",SVG:"http://www.w3.org/2000/svg",XLINK:"http://www.w3.org/1999/xlink",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"},S=function(){var e={};return Object.entries(x).forEach((function(t){var r=d(t,2),n=r[0],i=r[1];e[i]=n.toLowerCase()})),e},_=jQuery,b=(Boolean(document.createElementNS&&document.createElementNS(x.SVG,"svg").createSVGRect),navigator.userAgent),w=document.createElementNS(x.SVG,"svg"),A=Boolean(window.opera),k=b.includes("AppleWebKit"),C=b.includes("Gecko/"),E=b.includes("MSIE"),P=b.includes("Chrome/"),G=(b.includes("Windows"),b.includes("Macintosh"),"ontouchstart"in window),I=Boolean(w.querySelector),N=Boolean(document.evaluate),T=function(){var e=document.createElementNS(x.SVG,"path");e.setAttribute("d","M0,0 10,10");var t=e.pathSegList,r=e.createSVGPathSegLinetoAbs(5,5);try{return t.replaceItem(r,1),!0}catch(e){}return!1}(),L=function(){var e=document.createElementNS(x.SVG,"path");e.setAttribute("d","M0,0 10,10");var t=e.pathSegList,r=e.createSVGPathSegLinetoAbs(5,5);try{return t.insertItemBefore(r,1),!0}catch(e){}return!1}(),V=function(){var e=document.createElementNS(x.SVG,"svg"),t=document.createElementNS(x.SVG,"svg");document.documentElement.append(e),t.setAttribute("x",5),e.append(t);var r=document.createElementNS(x.SVG,"text");r.textContent="a",t.append(r);try{return 0===r.getStartPositionOfChar(0).x}catch(e){return!1}finally{e.remove()}}(),O=function(){var e=document.createElementNS(x.SVG,"svg");document.documentElement.append(e);var t=document.createElementNS(x.SVG,"path");t.setAttribute("d","M0,0 C0,0 10,10 10,0"),e.append(t);var r=t.getBBox();return e.remove(),r.height>4&&r.height<5}(),M=function(){var e=document.createElementNS(x.SVG,"svg");document.documentElement.append(e);var t=document.createElementNS(x.SVG,"path");t.setAttribute("d","M0,0 10,0");var r=document.createElementNS(x.SVG,"path");r.setAttribute("d","M5,0 15,0");var n=document.createElementNS(x.SVG,"g");n.append(t,r),e.append(n);var i=n.getBBox();return e.remove(),15===i.width}(),R=(function(){var e=document.createElementNS(x.SVG,"rect");e.setAttribute("x",.1);var t=!e.cloneNode(!1).getAttribute("x").includes(",");t||_.alert('NOTE: This version of Opera is known to contain bugs in SVG-edit.\nPlease upgrade to the latest version in which the problems have been fixed.')}(),(v=document.createElementNS(x.SVG,"rect")).setAttribute("style","vector-effect:non-scaling-stroke"),"non-scaling-stroke"===v.style.vectorEffect),B=function(){var t=document.createElementNS(x.SVG,"rect").transform.baseVal,r=w.createSVGTransform();t.appendItem(r);var n=t.getItem(0),i=function(t){return t&&"object"===e(t)&&"function"==typeof t.setMatrix&&"angle"in t};return i(n)&&i(r)&&n.type===r.type&&n.angle===r.angle&&n.matrix.a===r.matrix.a&&n.matrix.b===r.matrix.b&&n.matrix.c===r.matrix.c&&n.matrix.d===r.matrix.d&&n.matrix.e===r.matrix.e&&n.matrix.f===r.matrix.f}(),U=function(){return k},H=function(){return C},j=function(){return E},F=function(){return P},D=function(){return R},z=document.createElementNS(x.SVG,"svg");function q(e){var t=e.matrix,r="";switch(e.type){case 1:r="matrix("+[t.a,t.b,t.c,t.d,t.e,t.f].join(",")+")";break;case 2:r="translate("+t.e+","+t.f+")";break;case 3:r=t.a===t.d?"scale("+t.a+")":"scale("+t.a+","+t.d+")";break;case 4:var n=0,i=0;if(0!==e.angle){var a=1-t.a;i=(a*t.f+t.b*t.e)/(a*a+t.b*t.b),n=(t.e-t.b*i)/a}r="rotate("+e.angle+" "+n+","+i+")"}return r}var Q,W={},Y=function(){function e(t){n(this,e),this._elem=t||null,this._xforms=[],this._update=function(){for(var e="",t=0;t=0)return this._xforms[e];var t=new Error("DOMException with code=INDEX_SIZE_ERR");throw t.code=1,t}},{key:"insertItemBefore",value:function(e,t){var r=null;if(t>=0)if(t=0&&(this._removeFromOtherLists(e),this._xforms[t]=e,r=e,this._list._update()),r}},{key:"removeItem",value:function(e){if(e=0){var t,r=this._xforms[e],n=new Array(this.numberOfItems-1);for(t=0;t=0;t--)this.stack[t].unapply(e);e&&e.handleHistoryEvent(ae.AFTER_UNAPPLY,this)}},{key:"elements",value:function(){for(var e=[],t=this.stack.length;t--;)for(var r=this.stack[t].elements(),n=r.length;n--;)e.includes(r[n])||e.push(r[n]);return e}},{key:"addSubCommand",value:function(e){this.stack.push(e)}},{key:"isEmpty",value:function(){return!this.stack.length}}]),r}(se);ce.type=ce.prototype.type;var de,me,fe,ge,pe,ye=function(){function e(t){n(this,e),this.handler_=t||null,this.undoStackPointer=0,this.undoStack=[],this.undoChangeStackPointer=-1,this.undoableChangeStack=[]}return a(e,[{key:"resetUndoStack",value:function(){this.undoStack=[],this.undoStackPointer=0}},{key:"getUndoStackSize",value:function(){return this.undoStackPointer}},{key:"getRedoStackSize",value:function(){return this.undoStack.length-this.undoStackPointer}},{key:"getNextUndoCommandText",value:function(){return this.undoStackPointer>0?this.undoStack[this.undoStackPointer-1].getText():""}},{key:"getNextRedoCommandText",value:function(){return this.undoStackPointer0&&this.undoStack[--this.undoStackPointer].unapply(this.handler_)}},{key:"redo",value:function(){this.undoStackPointer0&&this.undoStack[this.undoStackPointer++].apply(this.handler_)}},{key:"addCommandToHistory",value:function(e){this.undoStackPointer0&&(this.undoStack=this.undoStack.splice(0,this.undoStackPointer)),this.undoStack.push(e),this.undoStackPointer=this.undoStack.length}},{key:"beginUndoableChange",value:function(e,t){for(var r=++this.undoChangeStackPointer,n=t.length,i=new Array(n),a=new Array(n);n--;){var s=t[n];Jt(s)||(a[n]=s,i[n]=s.getAttribute(e))}this.undoableChangeStack[r]={attrName:e,oldValues:i,elements:a}}},{key:"finishUndoableChange",value:function(){for(var e=this.undoChangeStackPointer--,t=this.undoableChangeStack[e],r=t.attrName,n=new ce("Change "+r),i=t.elements.length;i--;){var a=t.elements[i];if(!Jt(a)){var s={};s[r]=t.oldValues[i],s[r]!==a.getAttribute(r)&&n.addSubCommand(new he(a,s,r))}}return this.undoableChangeStack[e]=null,n}}]),e}(),ve=Object.freeze({__proto__:null,HistoryEventTypes:ae,MoveElementCommand:oe,InsertElementCommand:ue,RemoveElementCommand:le,ChangeElementCommand:he,BatchCommand:ce,UndoManager:ye}),xe=document.createElementNS(x.SVG,"svg"),Se=function(e,t,r){return{x:r.a*e+r.c*t+r.e,y:r.b*e+r.d*t+r.f}},_e=function(e){return 1===e.a&&0===e.b&&0===e.c&&1===e.d&&0===e.e&&0===e.f},be=function(){for(var e=arguments.length,t=new Array(e),r=0;r(r=parseInt(r))){var n=r;r=t,t=n}for(var i=xe.createSVGMatrix(),a=t;a<=r;++a){var s=a>=0&&ae.x&&t.ye.y},Ge=jQuery,Ie={2:["x","y"],4:["x","y"],6:["x","y","x1","y1","x2","y2"],8:["x","y","x1","y1"],10:["x","y","r1","r2","angle","largeArcFlag","sweepFlag"],12:["x"],14:["y"],16:["x","y","x2","y2"],18:["x","y"]},Ne={},Te=function(e){Object.assign(Ne,e.ui)},Le=[],Ve=!0,Oe={},Me=null,Re=null,Be=function(e){Re=e,Le=[0,"ClosePath"];Ge.each(["Moveto","Lineto","CurvetoCubic","CurvetoQuadratic","Arc","LinetoHorizontal","LinetoVertical","CurvetoCubicSmooth","CurvetoQuadraticSmooth"],(function(e,t){Le.push(t+"Abs"),Le.push(t+"Rel")}))},Ue=function(e,t,r){var n=e.pathSegList;if(L)n.insertItemBefore(t,r);else{for(var i=n.numberOfItems,a=[],s=0;s0?(m=g element");this.elem=t,this.segs=[],this.selected_pts=[],Me=this,this.init()}return a(e,[{key:"init",value:function(){Ge(ze()).find("*").each((function(){Ge(this).attr("display","none")}));var e=this.elem.pathSegList,t=e.numberOfItems;this.segs=[],this.selected_pts=[],this.first_seg=null;for(var r=0;r=t?null:a[o+1],h=o-1<0?null:a[o-1];if(2===u.type){if(h&&1!==h.type){var c=a[s];c.next=a[s+1],c.next.prev=c,c.addGrip()}s=o}else if(l&&1===l.type)u.next=a[s+1],u.next.prev=u,u.mate=a[s],u.addGrip(),Jt(this.first_seg)&&(this.first_seg=u);else if(l)1!==u.type&&(u.addGrip(),l&&2!==l.type&&(u.next=l,u.next.prev=u));else if(1!==u.type){var d=a[s];d.next=a[s+1],d.next.prev=d,d.addGrip(),u.addGrip(),this.first_seg||(this.first_seg=a[s])}}return this}},{key:"eachSeg",value:function(e){for(var t=this.segs.length,r=0;r=0&&r.selected_pts.push(e)})),this.selected_pts.sort();var n=this.selected_pts.length,i=[];for(i.length=n;n--;){var a=this.selected_pts[n],s=this.segs[a];s.select(!0),i[n]=s.ptgrip}var o=e.subpathIsClosed(this.selected_pts[0]);Re.addPtsToSelection({grips:i,closedSubpath:o})}}],[{key:"subpathIsClosed",value:function(e){var t=!1;return Me.eachSeg((function(r){return r<=e||2!==this.type&&(1!==this.type||(t=!0,!1))})),t}}]),e}(),Je=function(e){var t=Oe[e.id];return t||(t=Oe[e.id]=new $e(e)),t},et=function(e){e in Oe&&delete Oe[e]},tt=function(e,t){var r=e-fe,n=t-ge,i=Math.sqrt(r*r+n*n),a=Math.atan2(n,r)+pe;return r=i*Math.cos(a)+fe,n=i*Math.sin(a)+ge,r-=de,n-=me,i=Math.sqrt(r*r+n*n),a=Math.atan2(n,r)-pe,{x:i*Math.cos(a)+de,y:i*Math.sin(a)+me}},rt=function(){var e=Me.elem;if(pe=Qt(e,!0)){var t=Me.oldbbox;fe=t.x+t.width/2,ge=t.y+t.height/2;var r=Ot(e);de=r.x+r.width/2,me=r.y+r.height/2;var n=de-fe,i=me-ge,a=Math.sqrt(n*n+i*i),s=Math.atan2(i,n)+pe;de=a*Math.cos(s)+fe,me=a*Math.sin(s)+ge;for(var o=e.pathSegList,u=o.numberOfItems;u;){u-=1;var l=o.getItem(u),h=l.pathSegType;if(1!==h){var c=tt(l.x,l.y),d=[c.x,c.y];if(!Jt(l.x1)&&!Jt(l.x2)){var m=tt(l.x1,l.y1),f=tt(l.x2,l.y2);d.splice(d.length,0,m.x,m.y,f.x,f.y)}Ye(h,u,d)}}Ot(e);var g=Re.getSVGRoot().createSVGTransform(),p=K(e);g.setRotate(180*pe/Math.PI,de,me),p.replaceItem(g,0)}},nt=[0,"z","M","m","L","l","C","c","Q","q","A","a","H","h","V","v","S","s","T","t"],it=function(e,t){for(var r=e.pathSegList,n=r.numberOfItems,i=0,a=0,s="",o=null,u=0;u=A-_&&m<=A+_&&f>=k-_&&f<=k+_){b=!0;break}}i=Re.getId(),et(i);var C,E,P=Yt(i),G=v.numberOfItems;if(b){if(S<=1&&G>=2){var I=v.getItem(0).x,N=v.getItem(0).y;C=4===(E=g.pathSegList.getItem(1)).pathSegType?y.createSVGPathSegLinetoAbs(I,N):y.createSVGPathSegCurvetoCubicAbs(I,N,E.x1/h,E.y1/h,I,N);var T=y.createSVGPathSegClosePath();v.appendItem(C),v.appendItem(T)}else if(G<3)return!1;if(Ge(g).remove(),Re.setDrawnPath(null),Re.setStarted(!1),ut){Me.matrix&&Re.remapElement(P,{},Me.matrix.inverse());var L=P.getAttribute("d"),V=Ge(Me.elem).attr("d");return Ge(Me.elem).attr("d",V+L),Ge(P).remove(),Me.matrix&&rt(),Be(),ct.toEditMode(Me.elem),Me.selectPt(),!1}}else{if(!Ge.contains(Re.getContainer(),Re.getMouseTarget(e)))return!1;var O=y.pathSegList.numberOfItems,M=y.pathSegList.getItem(O-1),R=M.x,B=M.y;if(e.shiftKey){var U=Ee(R,B,m,f);m=U.x,f=U.y}C=4===(E=g.pathSegList.getItem(1)).pathSegType?y.createSVGPathSegLinetoAbs(Re.round(m),Re.round(f)):y.createSVGPathSegCurvetoCubicAbs(Re.round(m),Re.round(f),E.x1/h,E.y1/h,E.x2/h,E.y2/h),y.pathSegList.appendItem(C),m*=h,f*=h,g.setAttribute("d",["M",m,f,m,f].join(" ")),p=O,ut&&(p+=Me.segs.length),De(p,m,f)}}else{var H="M"+m+","+f+" ";Re.setDrawnPath(Re.addSVGElementFromJson({element:"path",curStyles:!0,attr:{d:H,id:Re.getNextId(),opacity:Re.getOpacity()/2}})),g.setAttribute("d",["M",c,d,c,d].join(" ")),p=ut?Me.segs.length:0,De(p,c,d)}}},mouseMove:function(e,t){var r=Re.getCurrentZoom();ht=!0;var n=Re.getDrawnPath();if("path"!==Re.getCurrentMode())if(Me.dragging){var i=Fe({x:Me.dragging[0],y:Me.dragging[1]},Me),a=Fe({x:e,y:t},Me),s=a.x-i.x,o=a.y-i.y;Me.dragging=[e,t],Me.dragctrl?Me.moveCtrl(s,o):Me.movePts(s,o)}else Me.selected_pts=[],Me.eachSeg((function(e){if(this.next||this.prev){var t=Re.getRubberBox().getBBox(),r=je(this),n={x:r.x,y:r.y,width:0,height:0},i=Pe(t,n);this.select(i),i&&Me.selected_pts.push(this.index)}}));else{if(!n)return;var u=n.pathSegList,l=u.numberOfItems-1;if(st){var h=qe("1c1"),c=qe("0c2");h.setAttribute("cx",e),h.setAttribute("cy",t),h.setAttribute("display","inline");var d=st[0],m=st[1],f=d+(d-e/r),g=m+(m-t/r);c.setAttribute("cx",f*r),c.setAttribute("cy",g*r),c.setAttribute("display","inline");var p=Qe(1);if(Xt(p,{x1:e,y1:t,x2:f*r,y2:g*r,display:"inline"}),0===l)ot=[e,t];else{var y=u.getItem(l-1),v=y.x,x=y.y;6===y.pathSegType?(v+=v-y.x2,x+=x-y.y2):ot&&(v=ot[0]/r,x=ot[1]/r),Ye(6,l,[d,m,v,x,f,g],n)}}else{var S=Yt("path_stretch_line");if(S){var _=u.getItem(l);if(6===_.pathSegType){var b=_.x+(_.x-_.x2),w=_.y+(_.y-_.y2);Ye(6,1,[e,t,b*r,w*r,e,t],S)}else ot?Ye(6,1,[e,t,ot[0],ot[1],e,t],S):Ye(4,1,[e,t],S)}}}},mouseUp:function(e,t,r,n){var i=Re.getDrawnPath();if("path"===Re.getCurrentMode())return st=null,i||(t=Yt(Re.getId()),Re.setStarted(!1),ot=null),{keep:!0,element:t};var a=Re.getRubberBox();if(Me.dragging){var s=Me.cur_pt;Me.dragging=!1,Me.dragctrl=!1,Me.update(),ht&&Me.endChanges("Move path point(s)"),e.shiftKey||ht||Me.selectPt(s)}else a&&"none"!==a.getAttribute("display")?(a.setAttribute("display","none"),a.getAttribute("width")<=2&&a.getAttribute("height")<=2&&ct.toSelectMode(e.target)):ct.toSelectMode(e.target);ht=!1},toEditMode:function(e){Me=Je(e),Re.setCurrentMode("pathedit"),Re.clearSelection(),Me.show(!0).update(),Me.oldbbox=Ot(Me.elem),ut=!1},toSelectMode:function(e){var t=e===Me.elem;Re.setCurrentMode("select"),Me.show(!1),lt=!1,Re.clearSelection(),Me.matrix&&rt(),t&&(Re.call("selected",[e]),Re.addToSelection([e],!0))},addSubPath:function(e){e?(Re.setCurrentMode("path"),ut=!0):(ct.clear(!0),ct.toEditMode(Me.elem))},select:function(e){lt===e?(ct.toEditMode(e),Re.setCurrentMode("pathedit")):lt=e},reorient:function(){var e=Re.getSelectedElements()[0];if(e&&0!==Qt(e)){var t=new ce("Reorient path"),r={d:e.getAttribute("d"),transform:e.getAttribute("transform")};t.addSubCommand(new he(e,r)),Re.clearSelection(),this.resetOrientation(e),Re.addCommandToHistory(t),Je(e).show(!1).matrix=null,this.clear(),Re.addToSelection([e],!0),Re.call("changed",Re.getSelectedElements())}},clear:function(e){var t=Re.getDrawnPath();if(lt=null,t){var r=Yt(Re.getId());Ge(Yt("path_stretch_line")).remove(),Ge(r).remove(),Ge(Yt("pathpointgrip_container")).find("*").attr("display","none"),ot=null,Re.setDrawnPath(null),Re.setStarted(!1)}else"pathedit"===Re.getCurrentMode()&&this.toSelectMode();Me&&Me.init().show(!1)},resetOrientation:function(e){if(Jt(e)||"path"!==e.nodeName)return!1;var t=K(e),r=ke(t).matrix;t.clear(),e.removeAttribute("transform");for(var n=e.pathSegList,i=n.numberOfItems,a=function(t){var i=n.getItem(t),a=i.pathSegType;if(1===a)return"continue";var s=[];Ge.each(["",1,2],(function(e,t){var n=i["x"+t],a=i["y"+t];if(void 0!==n&&void 0!==a){var o=Se(n,a,r);s.splice(s.length,0,o.x,o.y)}})),Ye(a,t,s,e)},s=0;s0){var o=t.getItem(r-1).pathSegType;if(2===o){n(r-1,1),e();break}if(1===o&&t.numberOfItems-1===r){n(r,1),e();break}}}return!1}(),Me.elem.pathSegList.numberOfItems<=1)return ct.toSelectMode(Me.elem),void Re.canvas.deleteSelectedElements();if(Me.init(),Me.clearSelection(),window.opera){var n=Ge(Me.elem);n.attr("d",n.attr("d"))}Me.endChanges("Delete path node(s)")}},smoothPolylineIntoPath:function(e){var t,r=e.points,n=r.numberOfItems;if(n>=4){var i=r.getItem(0),a=null,s=[];for(s.push(["M",i.x,",",i.y," C"].join("")),t=1;t<=n-4;t+=3){var o=r.getItem(t),u=r.getItem(t+1),l=r.getItem(t+2);if(a){var h=Ke(a,o,i);if(h&&2===h.length){var c=s[s.length-1].split(",");c[2]=h[0].x,c[3]=h[0].y,s[s.length-1]=c.join(","),o=h[1]}}s.push([o.x,o.y,u.x,u.y,l.x,l.y].join(",")),i=l,a=u}for(s.push("L");t)/,"$1$2")},St=function(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")};function _t(e){if(e=At(e),window.btoa)return window.btoa(e);var t=new Array(4*Math.floor((e.length+2)/3)),r=0,n=0;do{var i=e.charCodeAt(r++),a=e.charCodeAt(r++),s=e.charCodeAt(r++),o=i>>2,u=(3&i)<<4|a>>4,l=(15&a)<<2|s>>6,h=63&s;isNaN(a)?(l=64,h=64):isNaN(s)&&(h=64),t[n++]=mt.charAt(o),t[n++]=mt.charAt(u),t[n++]=mt.charAt(l),t[n++]=mt.charAt(h)}while(r>4,u=(15&i)<<4|a>>2,l=(3&a)<<6|s;t+=String.fromCharCode(o),64!==a&&(t+=String.fromCharCode(u)),64!==s&&(t+=String.fromCharCode(l))}while(rSVG-edit "],{type:"text/html"});Ct(e)}(),function(e){var t,r;e.includes("0?t=t[0]:(t=e.ownerDocument.createElementNS(x.SVG,"defs"),e.firstChild?e.insertBefore(t,e.firstChild.nextSibling):e.append(t)),t},Lt=function(e){for(var t=e.pathSegList,r=t.numberOfItems,n=[[],[]],i=t.getItem(0),a=[i.x,i.y],s=function(e,t,r,n){return function(i){return 1-Math.pow(i,3)*a[e]+3-Math.pow(i,2)*i*t[e]+3*(1-i)*Math.pow(i,2)*r[e]+Math.pow(i,3)*n[e]}},o=0;o0&&v<1&&n[d].push(m(v));var x=(-f-Math.sqrt(y))/(2*g);x>0&&x<1&&n[d].push(m(x))}}else{if(0===f)continue;var S=-p/f;S>0&&S<1&&n[d].push(m(S))}}a=c}else n[0].push(u.x),n[1].push(u.y)}var _=Math.min.apply(null,n[0]),b=Math.max.apply(null,n[0])-_,w=Math.min.apply(null,n[1]);return{x:_,y:w,width:b,height:Math.max.apply(null,n[1])-w}};function Vt(e){if(M)try{return e.getBBox()}catch(e){}var t,r,n=dt.data(e,"ref"),i=null;n?(r=dt(n).children().clone().attr("visibility","hidden"),dt(vt).append(r),i=r.filter("line, path")):i=dt(e).find("line, path");var a=!1;if(i.length)if(i.each((function(){var e=this.getBBox();e.width&&e.height||(a=!0)})),a){var s=n?r:dt(e).children();t=Ft(s)}else t=e.getBBox();else t=e.getBBox();return n&&r.remove(),t}var Ot=function(e){var t=e||gt.geSelectedElements()[0];if(1!==e.nodeType)return null;var r,n=t.nodeName,i=null;switch(n){case"text":""===t.textContent?(t.textContent="a",i=t.getBBox(),t.textContent=""):t.getBBox&&(i=t.getBBox());break;case"path":O?t.getBBox&&(i=t.getBBox()):i=Lt(t);break;case"g":case"a":i=Vt(t);break;default:if("use"===n&&(i=Vt(t)),"use"===n||"foreignObject"===n&&U()){if(i||(i=t.getBBox()),!U()){var a=i,s=a.x,o=a.y;i={width:a.width,height:a.height,x:s+parseFloat(t.getAttribute("x")||0),y:o+parseFloat(t.getAttribute("y")||0)}}}else if(ft.includes(n))if(t)try{i=t.getBBox()}catch(e){var u=t.getExtentOfChar(0),l=t.getComputedTextLength();i={x:u.x,y:u.y,width:l,height:u.height}}else{var h=dt(t).closest("foreignObject");h.length&&h[0].getBBox&&(i=h[0].getBBox())}}return i&&(i={x:(r=i).x,y:r.y,width:r.width,height:r.height}),i},Mt=function(e){var t="";return dt.each(e,(function(e,r){var n=d(r,2),i=n[0],a=n[1];t+=i;for(var s=0;s-.001&&r<.001||(r<-89.99||r>89.99))}(a,s)){if(["ellipse","path","line","polyline","polygon"].includes(e.tagName))n=o=Ut(e,t,r);else if("rect"===e.tagName){var u=e.getAttribute("rx"),l=e.getAttribute("ry");(u||l)&&(n=o=Ut(e,t,r))}}if(!o){var h=ke(i).matrix;n=Ae(n.x,n.y,n.width,n.height,h).aabox}}return n};function jt(e){var t=e.getAttribute("stroke-width");return isNaN(t)||"none"===e.getAttribute("stroke")?0:t/2}var Ft=function(e,t,r){if(!e||!e.length)return!1;var n;if(dt.each(e,(function(){n||this.parentNode&&(n=Ht(this,t,r))})),void 0===n)return null;var i=n.x+n.width,a=n.y+n.height,s=n.x,o=n.y;if(1===e.length){var u=jt(e[0]);s-=u,o-=u,i+=u,a+=u}else dt.each(e,(function(e,n){var u=Ht(n,t,r);if(u){var l=jt(n);s=Math.min(s,u.x-l),o=Math.min(o,u.y-l),1===n.nodeType&&(i=Math.max(i,u.x+u.width+l),a=Math.max(a,u.y+u.height+l))}}));return n.x=s,n.y=o,n.width=i-s,n.height=a-o,n},Dt=function(e){e||(e=dt(gt.getSVGContent()).children());var t=[];return dt(e).children().each((function(e,r){r.getBBox&&t.push(r)})),t.reverse()},zt=function(e){return e||(e=Dt()),Ft(e,gt.addSVGElementFromJson,gt.pathActions)},qt=function(e,t){if(!e)return 0;for(var r=e.numberOfItems,n=0;n=0&&e<=1&&this.group_.setAttribute("opacity",e)}},{key:"appendChildren",value:function(e){var t,r=p(e);try{for(r.s();!(t=r.n()).done;){var n=t.value;this.group_.append(n)}}catch(e){r.e(e)}finally{r.f()}}},{key:"getTitleElement",value:function(){for(var e=this.group_.childNodes.length,t=0;t element");this.svgElem_=t,this.obj_num=0,this.idPrefix=r||"svg_",this.releasedNums=[],this.all_layers=[],this.layer_map={},this.current_layer=null,this.nonce_="";var i=this.svgElem_.getAttributeNS(x.SE,"nonce");i&&ur!==or?this.nonce_=i:ur===sr&&this.setNonce(Math.floor(100001*Math.random()))}return a(e,[{key:"getElem_",value:function(e){return this.svgElem_.querySelector?this.svgElem_.querySelector("#"+e):ir(this.svgElem_).find("[id="+e+"]")[0]}},{key:"getSvgElem",value:function(){return this.svgElem_}},{key:"getNonce",value:function(){return this.nonce_}},{key:"setNonce",value:function(e){this.svgElem_.setAttributeNS(x.XMLNS,"xmlns:se",x.SE),this.svgElem_.setAttributeNS(x.SE,"se:nonce",e),this.nonce_=e}},{key:"clearNonce",value:function(){this.nonce_=""}},{key:"getId",value:function(){return this.nonce_?this.idPrefix+this.nonce_+"_"+this.obj_num:this.idPrefix+this.obj_num}},{key:"getNextId",value:function(){var e=this.obj_num,t=!1;this.releasedNums.length>0?(this.obj_num=this.releasedNums.pop(),t=!0):this.obj_num++;for(var r=this.getId();this.getElem_(r);)t&&(this.obj_num=e,t=!1),this.obj_num++,r=this.getId();return t&&(this.obj_num=e),r}},{key:"releaseId",value:function(e){var t=this.idPrefix+(this.nonce_?this.nonce_+"_":"");if("string"!=typeof e||!e.startsWith(t))return!1;var r=parseInt(e.substr(t.length));return!("number"!=typeof r||r<=0||this.releasedNums.includes(r))&&(this.releasedNums.push(r),!0)}},{key:"getNumLayers",value:function(){return this.all_layers.length}},{key:"hasLayer",value:function(e){return void 0!==this.layer_map[e]}},{key:"getLayerName",value:function(e){return e>=0&&e=r)return null;for(t=0;tt?e0){var o=this.current_layer.getName();this.current_layer=this.all_layers[s-1],this.all_layers.splice(s,1),delete this.layer_map[o]}e.endBatchCommand()}}},{key:"mergeAllLayers",value:function(e){for(this.current_layer=this.all_layers[this.all_layers.length-1],e.startBatchCommand("Merge all Layers");this.all_layers.length>1;)this.mergeLayer(e);e.endBatchCommand()}},{key:"setCurrentLayer",value:function(e){var t=this.layer_map[e];return!!t&&(this.current_layer&&this.current_layer.deactivate(),this.current_layer=t,this.current_layer.activate(),!0)}},{key:"deleteCurrentLayer",value:function(){if(this.current_layer&&this.getNumLayers()>1){var e=this.current_layer.removeGroup();return this.identifyLayers(),e}return null}},{key:"identifyLayers",value:function(){this.all_layers=[],this.layer_map={};for(var e=this.svgElem_.childNodes.length,t=[],r=[],n=null,i=!1,a=0;a0||!i?((n=new tr(dr(r),null,this.svgElem_)).appendChildren(t),this.all_layers.push(n),this.layer_map[name]=n):n.activate(),this.current_layer=n}},{key:"createLayer",value:function(e,t){this.current_layer&&this.current_layer.deactivate(),(null==e||""===e||this.layer_map[e])&&(e=dr(Object.keys(this.layer_map)));var r=new tr(e,null,this.svgElem_);return t&&(t.startBatchCommand("Create Layer"),t.insertElement(r.getGroup()),t.endBatchCommand()),this.all_layers.push(r),this.layer_map[e]=r,this.current_layer=r,r.getGroup()}},{key:"cloneLayer",value:function(e,t){var r=this;if(!this.current_layer)return null;this.current_layer.deactivate(),(null==e||""===e||this.layer_map[e])&&(e=dr(Object.keys(this.layer_map)));var n=this.current_layer.getGroup(),i=new tr(e,n,this.svgElem_),a=i.getGroup();m(n.childNodes).forEach((function(e){"title"!==e.localName&&a.append(r.copyElem(e))})),t&&(t.startBatchCommand("Duplicate Layer"),t.insertElement(a),t.endBatchCommand());var s=this.all_layers.indexOf(this.current_layer);return s>=0?this.all_layers.splice(s+1,0,i):this.all_layers.push(i),this.layer_map[e]=i,this.current_layer=i,a}},{key:"getLayerVisibility",value:function(e){var t=this.layer_map[e];return!!t&&t.isVisible()}},{key:"setLayerVisibility",value:function(e,t){if("boolean"!=typeof t)return null;var r=this.layer_map[e];return r?(r.setVisible(t),r.getGroup()):null}},{key:"getLayerOpacity",value:function(e){var t=this.layer_map[e];return t?t.getOpacity():null}},{key:"setLayerOpacity",value:function(e,t){if(!("number"!=typeof t||t<0||t>1)){var r=this.layer_map[e];r&&r.setOpacity(t)}}},{key:"copyElem",value:function(e){var t=this;return function e(t,r){var n=document.createElementNS(t.namespaceURI,t.nodeName);if(dt.each(t.attributes,(function(e,t){"-moz-math-font-style"!==t.localName&&n.setAttributeNS(t.namespaceURI,t.nodeName,t.value)})),n.removeAttribute("id"),n.id=r(),U()&&"path"===t.nodeName){var i=it(t);n.setAttribute("d",i)}if(dt.each(t.childNodes,(function(t,i){switch(i.nodeType){case 1:n.append(e(i,r));break;case 3:n.textContent=i.nodeValue}})),dt(t).data("gsvg"))dt(n).data("gsvg",n.firstChild);else if(dt(t).data("symbol")){var a=dt(t).data("symbol");dt(n).data("ref",a).data("symbol",a)}else"image"===n.tagName&&$t(n);return n}(e,(function(){return t.getNextId()}))}}]),e}(),gr=function(e,t){(ur=!1===e?or:sr)!==sr||t.getNonce()?ur===or&&t.getNonce()&&t.clearNonce():t.setNonce(Math.floor(100001*Math.random()))},pr=function(){Er(),mr.getCurrentDrawing().identifyLayers()},yr=function(e,t){var r=mr.getCurrentDrawing().createLayer(e,hr(t));mr.clearSelection(),mr.call("changed",[r])},vr=function(e,t){var r=mr.getCurrentDrawing().cloneLayer(e,hr(t));mr.clearSelection(),Er(),mr.call("changed",[r])},xr=function(){var e=mr.getCurrentDrawing().getCurrentLayer(),t=e.nextSibling,r=e.parentNode;if(e=mr.getCurrentDrawing().deleteCurrentLayer()){var n=new ce("Delete Layer");return n.addSubCommand(new le(e,t,r)),mr.addCommandToHistory(n),mr.clearSelection(),mr.call("changed",[r]),!0}return!1},Sr=function(e){var t=mr.getCurrentDrawing().setCurrentLayer(St(e));return t&&mr.clearSelection(),t},_r=function(e){var t=mr.getCurrentDrawing(),r=t.getCurrentLayer();if(r&&t.setCurrentLayerName(e,hr()))return mr.call("changed",[r]),!0;return!1},br=function(e){var t=mr.getCurrentDrawing().setCurrentLayerPosition(e);return!!t&&(mr.addCommandToHistory(new oe(t.currentGroup,t.oldNextSibling,mr.getSVGContent())),!0)},wr=function(e,t){var r=mr.getCurrentDrawing(),n=r.getLayerVisibility(e),i=r.setLayerVisibility(e,t);if(!i)return!1;var a=n?"inline":"none";return mr.addCommandToHistory(new he(i,{display:a},"Layer Visibility")),i===r.getCurrentLayer()&&(mr.clearSelection(),mr.pathActions.clear()),!0},Ar=function(e){var t=mr.getCurrentDrawing().getLayerByName(e);if(!t)return!1;for(var r=new ce("Move Elements to Layer"),n=mr.getSelectedElements(),i=n.length;i--;){var a=n[i];if(a){var s=a.nextSibling,o=a.parentNode;t.append(a),r.addSubCommand(new oe(a,s,o))}}return mr.addCommandToHistory(r),!0},kr=function(e){mr.getCurrentDrawing().mergeLayer(hr(e)),mr.clearSelection(),Er(),mr.changeSVGContent()},Cr=function(e){mr.getCurrentDrawing().mergeAllLayers(hr(e)),mr.clearSelection(),Er(),mr.changeSVGContent()},Er=function(){var e=lr.length;if(e){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:{};return Array.isArray(e)?Promise.all(e.map((function(e){return Rr(e,t)}))):new Promise((function(r,n){var i=document.createElement("script");function a(){n(new Error("Failed to import: ".concat(e))),o()}function s(){r(),o()}var o=function(){i.removeEventListener("error",a),i.removeEventListener("load",s),i.remove(),i.src=""};i.defer="defer",Vr(i,t),i.addEventListener("error",a),i.addEventListener("load",s),i.src=e,document.head.append(i)}))}function Br(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=r.returnDefault,i=void 0!==n&&n;return Array.isArray(e)?Promise.all(e.map((function(e){return Br(e,t)}))):new Promise((function(r,n){var a="$importModule$"+Math.random().toString(32).slice(2),s=document.createElement("script");function o(){n(new Error("Failed to import: ".concat(e))),l()}function u(){r(window[a]),l()}var l=function(){delete window[a],s.removeEventListener("error",o),s.removeEventListener("load",u),s.remove(),URL.revokeObjectURL(s.src),s.src=""};Vr(s,t),s.defer="defer",s.type="module",s.addEventListener("error",o),s.addEventListener("load",u);var h=Lr(e),c="import * as m from '".concat(h.replace(/'/g,"\\'"),"'; window.").concat(a," = ").concat(i?"m.default || ":"","m;"),d=new Blob([c],{type:"text/javascript"});s.src=URL.createObjectURL(d),document.head.append(s)}))}var Ur,Hr,jr,Fr,Dr=jQuery,zr=[0,"z","M","m","L","l","C","c","Q","q","A","a","H","h","V","v","S","s","T","t"],qr=null,Qr=function(e,t,r){for(var n=function(e,t){return Se(e,t,r)},i=function(e){return r.a*e},a=function(e){return r.d*e},s=qr.getGridSnapping()&&"svg"===e.parentNode.parentNode.localName,o=function(){s&&Object.entries(t).forEach((function(e){var r=d(e,2),n=r[0],i=r[1];t[n]=Zt(i)})),Xt(e,t,1e3,!0)},u=Ot(e),l=0;l<2;l++){var h=0===l?"fill":"stroke",c=e.getAttribute(h);if(c&&c.startsWith("url(")&&(r.a<0||r.d<0)){var m=Wt(c).cloneNode(!0);if(r.a<0){var f=m.getAttribute("x1"),g=m.getAttribute("x2");m.setAttribute("x1",-(f-1)),m.setAttribute("x2",-(g-1))}if(r.d<0){var p=m.getAttribute("y1"),y=m.getAttribute("y2");m.setAttribute("y1",-(p-1)),m.setAttribute("y2",-(y-1))}m.id=qr.getDrawing().getNextId(),Tt().append(m),e.setAttribute(h,"url(#"+m.id+")")}}var v=e.tagName;if("g"===v||"text"===v||"tspan"===v||"use"===v)if(1!==r.a||0!==r.b||0!==r.c||1!==r.d||0===r.e&&0===r.f){var x=K(e),S=qr.getSVGRoot().createSVGTransform();S.setMatrix(be(ke(x).matrix,r)),x.clear(),x.appendItem(S)}else{var _=ke(e).matrix,b=be(_.inverse(),r,_);t.x=parseFloat(t.x)+b.e,t.y=parseFloat(t.y)+b.f}switch(v){case"foreignObject":case"rect":case"image":if("image"===v&&(r.a<0||r.d<0)){var w=K(e),A=qr.getSVGRoot().createSVGTransform();A.setMatrix(be(ke(w).matrix,r)),w.clear(),w.appendItem(A)}else{var k=n(t.x,t.y);t.width=i(t.width),t.height=a(t.height),t.x=k.x+Math.min(0,t.width),t.y=k.y+Math.min(0,t.height),t.width=Math.abs(t.width),t.height=Math.abs(t.height)}o();break;case"ellipse":var C=n(t.cx,t.cy);t.cx=C.x,t.cy=C.y,t.rx=i(t.rx),t.ry=a(t.ry),t.rx=Math.abs(t.rx),t.ry=Math.abs(t.ry),o();break;case"circle":var E=n(t.cx,t.cy);t.cx=E.x,t.cy=E.y;var P=Ae(u.x,u.y,u.width,u.height,r),G=P.tr.x-P.tl.x,I=P.bl.y-P.tl.y;t.r=Math.min(G/2,I/2),t.r&&(t.r=Math.abs(t.r)),o();break;case"line":var N=n(t.x1,t.y1),T=n(t.x2,t.y2);t.x1=N.x,t.y1=N.y,t.x2=T.x,t.y2=T.y;case"text":case"tspan":case"use":o();break;case"g":var L=Dr(e).data("gsvg");L&&Xt(L,t,1e3,!0);break;case"polyline":case"polygon":for(var V=t.points.length,O=0;O0){for(var i=n.numberOfItems,a=i;i--;){var s=n.getItem(i);if(0===s.type)n.removeItem(i);else if(1===s.type){if(_e(s.matrix)){if(1===a)return t.removeAttribute("transform"),null;n.removeItem(i)}}else 4===s.type&&0===s.angle&&n.removeItem(i)}if(1===n.numberOfItems&&Qt(t))return null}if(!n||0===n.numberOfItems)return t.setAttribute("transform",""),t.removeAttribute("transform"),null;if(n){for(var o=[],u=n.numberOfItems;u--;){var l=n.getItem(u);1===l.type?o.push([l.matrix,u]):o.length&&(o=[])}if(2===o.length){var h=r.createSVGTransformFromMatrix(be(o[1][0],o[0][0]));n.removeItem(o[0][1]),n.removeItem(o[1][1]),n.insertItemBefore(h,o[1][1])}if((u=n.numberOfItems)>=2&&1===n.getItem(u-2).type&&2===n.getItem(u-1).type){var c=r.createSVGTransform(),d=be(n.getItem(u-2).matrix,n.getItem(u-1).matrix);c.setMatrix(d),n.removeItem(u-2),n.removeItem(u-2),n.appendItem(c)}}switch(t.tagName){case"line":case"polyline":case"polygon":case"path":break;default:if(1===n.numberOfItems&&1===n.getItem(0).type||2===n.numberOfItems&&1===n.getItem(0).type&&4===n.getItem(0).type)return null}var m,f,g=Wr(t).data("gsvg"),p=new ce("Transform"),y={},v=null,S=[];switch(t.tagName){case"line":S=["x1","y1","x2","y2"];break;case"circle":S=["cx","cy","r"];break;case"ellipse":S=["cx","cy","rx","ry"];break;case"foreignObject":case"rect":case"image":S=["width","height","x","y"];break;case"use":case"text":case"tspan":S=["x","y"];break;case"polygon":case"polyline":(v={}).points=t.getAttribute("points");var _=t.points,b=_.numberOfItems;y.points=new Array(b);for(var w=0;w1e-10?Math.sin(P)/(1-Math.cos(P)):2/P;for(var G=0;G=3&&3===n.getItem(V-2).type&&2===n.getItem(V-3).type&&2===n.getItem(V-1).type){R=3;for(var B=n.getItem(V-3).matrix,H=n.getItem(V-2).matrix,j=n.getItem(V-1).matrix,F=t.childNodes,D=F.length;D--;){var z=F.item(D);if(O=0,M=0,1===z.nodeType){var q=K(z);if(!q)continue;var Q=ke(q).matrix,W=Qt(z);if(L=Ur.getStartTransform(),Ur.setStartTransform(z.getAttribute("transform")),W||we(q)){var Y=r.createSVGTransform();Y.setMatrix(be(B,H,j,Q)),q.clear(),q.appendItem(Y)}else{var X=be(Q.inverse(),j,Q),Z=r.createSVGMatrix();Z.e=-X.e,Z.f=-X.f;var $=be(Z.inverse(),Q.inverse(),B,H,j,Q,X.inverse()),J=r.createSVGTransform(),ee=r.createSVGTransform(),te=r.createSVGTransform();J.setTranslate(X.e,X.f),ee.setScale($.a,$.d),te.setTranslate(Z.e,Z.f),q.appendItem(te),q.appendItem(ee),q.appendItem(J)}p.addSubCommand(e(z)),Ur.setStartTransform(L)}}n.removeItem(V-1),n.removeItem(V-2),n.removeItem(V-3)}else if(V>=3&&1===n.getItem(V-1).type){R=3;var re=ke(n).matrix,ne=r.createSVGTransform();ne.setMatrix(re),n.clear(),n.appendItem(ne)}else if((1===V||V>1&&3!==n.getItem(1).type)&&2===n.getItem(0).type){R=2;var ae=ke(n).matrix;n.removeItem(0);var se=ke(n).matrix.inverse(),oe=be(se,ae);if(O=oe.e,M=oe.f,0!==O||0!==M){for(var ue=t.childNodes,le=ue.length,de=[];le--;){var me=ue.item(le);if(1===me.nodeType){if(me.getAttribute("clip-path")){var fe=me.getAttribute("clip-path");de.includes(fe)||(Yr(fe,O,M),de.push(fe))}L=Ur.getStartTransform(),Ur.setStartTransform(me.getAttribute("transform"));var ge=K(me);if(ge){var pe=r.createSVGTransform();pe.setTranslate(O,M),ge.numberOfItems?ge.insertItemBefore(pe,0):ge.appendItem(pe),p.addSubCommand(e(me));for(var ye=t.getElementsByTagNameNS(x.SVG,"use"),ve="#"+me.id,xe=ye.length;xe--;){var Ae=ye.item(xe);if(ve===It(Ae)){var Ce=r.createSVGTransform();Ce.setTranslate(-O,-M),K(Ae).insertItemBefore(Ce,0),p.addSubCommand(e(Ae))}}Ur.setStartTransform(L)}}}Ur.setStartTransform(L)}}else{if(1!==V||1!==n.getItem(0).type||C){if(C){var Ee=r.createSVGTransform();Ee.setRotate(C,f.x,f.y),n.numberOfItems?n.insertItemBefore(Ee,0):n.appendItem(Ee)}return 0===n.numberOfItems&&t.removeAttribute("transform"),null}R=1;for(var Pe=n.getItem(0).matrix,Ge=t.childNodes,Ie=Ge.length;Ie--;){var Ne=Ge.item(Ie);if(1===Ne.nodeType){L=Ur.getStartTransform(),Ur.setStartTransform(Ne.getAttribute("transform"));var Te=K(Ne);if(!Te)continue;var Le=be(Pe,ke(Te).matrix),Ve=r.createSVGTransform();Ve.setMatrix(Le),Te.clear(),Te.appendItem(Ve,0),p.addSubCommand(e(Ne)),Ur.setStartTransform(L);var Oe=Ne.getAttribute("stroke-width");if("none"!==Ne.getAttribute("stroke")&&!isNaN(Oe)){var Me=(Math.abs(Le.a)+Math.abs(Le.d))/2;Ne.setAttribute("stroke-width",Oe*Me)}}}n.clear()}if(2===R){if(C){f={x:m.x+T.e,y:m.y+T.f};var Re=r.createSVGTransform();Re.setRotate(C,f.x,f.y),n.numberOfItems?n.insertItemBefore(Re,0):n.appendItem(Re)}}else if(3===R){var Be=ke(n).matrix,Ue=r.createSVGTransform();Ue.setRotate(C,m.x,m.y);var He=Ue.matrix,je=r.createSVGTransform();je.setRotate(C,f.x,f.y);var Fe=je.matrix.inverse(),De=Be.inverse(),ze=be(De,Fe,He,Be);if(O=ze.e,M=ze.f,0!==O||0!==M)for(var qe=t.childNodes,Qe=qe.length;Qe--;){var We=qe.item(Qe);if(1===We.nodeType){L=Ur.getStartTransform(),Ur.setStartTransform(We.getAttribute("transform"));var Ye=K(We),Xe=r.createSVGTransform();Xe.setTranslate(O,M),Ye.numberOfItems?Ye.insertItemBefore(Xe,0):Ye.appendItem(Xe),p.addSubCommand(e(We)),Ur.setStartTransform(L)}}C&&(n.numberOfItems?n.insertItemBefore(je,0):n.appendItem(je))}}else{var Ke,Ze=Ot(t);if(!Ze&&"path"!==t.tagName)return null;var $e=Qt(t);if($e){m={x:Ze.x+Ze.width/2,y:Ze.y+Ze.height/2},f=Se(Ze.x+Ze.width/2,Ze.y+Ze.height/2,ke(n).matrix);for(var Je=$e*Math.PI/180,et=Math.abs(Je)>1e-10?Math.sin(Je)/(1-Math.cos(Je)):2/Je,tt=0;tt=3&&3===n.getItem(at-2).type&&2===n.getItem(at-3).type&&2===n.getItem(at-1).type)it=3,Ke=ke(n,at-3,at-1).matrix,n.removeItem(at-1),n.removeItem(at-2),n.removeItem(at-3);else if(4===at&&1===n.getItem(at-1).type){it=3,Ke=ke(n).matrix;var dt=r.createSVGTransform();dt.setMatrix(Ke),n.clear(),n.appendItem(dt),Ke=r.createSVGMatrix()}else if((1===at||at>1&&3!==n.getItem(1).type)&&2===n.getItem(0).type){it=2;var mt=n.getItem(0).matrix,ft=ke(n,1).matrix,gt=ft.inverse();Ke=be(gt,mt,ft),n.removeItem(0)}else{if(1!==at||1!==n.getItem(0).type||$e){if($e){var pt=r.createSVGTransform();pt.setRotate($e,f.x,f.y),n.numberOfItems?n.insertItemBefore(pt,0):n.appendItem(pt)}return 0===n.numberOfItems&&t.removeAttribute("transform"),null}switch(Ke=ke(n).matrix,t.tagName){case"line":y=Wr(t).attr(["x1","y1","x2","y2"]);case"polyline":case"polygon":if(y.points=t.getAttribute("points"),y.points){var yt=t.points,vt=yt.numberOfItems;y.points=new Array(vt);for(var xt=0;xt0;)t.push(t.shift()),r--;Object.values(Fr.selectorGrips).forEach((function(e,r){e.setAttribute("style","cursor:"+t[r]+"-resize")}))}}]),e}(),Jr=function(){function t(){n(this,t),this.selectorParentGroup=null,this.rubberBandBox=null,this.selectors=[],this.selectorMap={},this.selectorGrips={nw:null,n:null,ne:null,e:null,se:null,s:null,sw:null,w:null},this.selectorGripsGroup=null,this.rotateGripConnector=null,this.rotateGrip=null,this.initGroup()}return a(t,[{key:"initGroup",value:function(){var e=this;if(this.selectorParentGroup&&this.selectorParentGroup.parentNode&&this.selectorParentGroup.remove(),this.selectorParentGroup=Hr.createSVGElement({element:"g",attr:{id:"selectorParentGroup"}}),this.selectorGripsGroup=Hr.createSVGElement({element:"g",attr:{display:"none"}}),this.selectorParentGroup.append(this.selectorGripsGroup),Hr.svgRoot().append(this.selectorParentGroup),this.selectorMap={},this.selectors=[],this.rubberBandBox=null,Object.keys(this.selectorGrips).forEach((function(t){var r=Hr.createSVGElement({element:"circle",attr:{id:"selectorGrip_resize_"+t,fill:"#22C",r:Zr,style:"cursor:"+t+"-resize","stroke-width":2,"pointer-events":"all"}});Kr.data(r,"dir",t),Kr.data(r,"type","resize"),e.selectorGrips[t]=e.selectorGripsGroup.appendChild(r)})),this.rotateGripConnector=this.selectorGripsGroup.appendChild(Hr.createSVGElement({element:"line",attr:{id:"selectorGrip_rotateconnector",stroke:"#22C","stroke-width":"1"}})),this.rotateGrip=this.selectorGripsGroup.appendChild(Hr.createSVGElement({element:"circle",attr:{id:"selectorGrip_rotate",fill:"lime",r:Zr,stroke:"#22C","stroke-width":2,style:"cursor:url("+jr.imgPath+"rotate.png) 12 12, auto;"}})),Kr.data(this.rotateGrip,"type","rotate"),!Kr("#canvasBackground").length){var t=d(jr.dimensions,2),r=t[0],n=t[1],i=Hr.createSVGElement({element:"svg",attr:{id:"canvasBackground",width:r,height:n,x:0,y:0,overflow:U()?"none":"visible",style:"pointer-events:none"}}),a=Hr.createSVGElement({element:"rect",attr:{width:"100%",height:"100%",x:0,y:0,"stroke-width":1,stroke:"#000",fill:"#FFF",style:"pointer-events:none"}});i.append(a),Hr.svgRoot().insertBefore(i,Hr.svgContent())}}},{key:"requestSelector",value:function(t,r){if(Jt(t))return null;var n=this.selectors.length;if("object"===e(this.selectorMap[t.id]))return this.selectorMap[t.id].locked=!0,this.selectorMap[t.id];for(var i=0;i').documentElement,!0);i.append(h);var c=l.createElementNS(x.SVG,"svg");(u.clearSvgContentElement=function(){en(c).empty(),en(c).attr({id:"svgcontent",width:o[0],height:o[1],x:o[0],y:o[1],overflow:s.show_outside_canvas?"visible":"hidden",xmlns:x.SVG,"xmlns:se":x.SE,"xmlns:xlink":x.XLINK}).appendTo(h);var e=l.createComment(" Created with SVG-edit - https://github.com/SVG-Edit/svgedit");c.append(e)})();var f="svg_";u.setIdPrefix=function(e){f=e},u.current_drawing_=new fr(c,f);var g=u.getCurrentDrawing=function(){return u.current_drawing_},y=1,v=null,_={shape:{fill:("none"===s.initFill.color?"":"#")+s.initFill.color,fill_paint:null,fill_opacity:s.initFill.opacity,stroke:"#"+s.initStroke.color,stroke_paint:null,stroke_opacity:s.initStroke.opacity,stroke_width:s.initStroke.width,stroke_dasharray:"none",stroke_linejoin:"miter",stroke_linecap:"butt",opacity:s.initOpacity}};_.text=en.extend(!0,{},_.shape),en.extend(_.text,{fill:"#000000",stroke_width:s.text&&s.text.stroke_width,font_size:s.text&&s.text.font_size,font_family:s.text&&s.text.font_family});var b=_.shape,w=[],A=this.getJsonFromSvgElement=function(e){if(3===e.nodeType)return e.nodeValue;for(var t,r={element:e.tagName,attr:{},children:[]},n=0;t=e.attributes[n];n++)r.attr[t.name]=t.value;for(var i,a=0;i=e.childNodes[a];a++)r.children[a]=A(i);return r},k=this.addSVGElementFromJson=function(e){if("string"==typeof e)return l.createTextNode(e);var t=Yt(e.attr.id),r=g().getCurrentLayer();if(t&&e.element!==t.tagName&&(t.remove(),t=null),!t){var n=e.namespace||x.SVG;t=l.createElementNS(n,e.element),r&&(v||r).append(t)}return e.curStyles&&Xt(t,{fill:b.fill,stroke:b.stroke,"stroke-width":b.stroke_width,"stroke-dasharray":b.stroke_dasharray,"stroke-linejoin":b.stroke_linejoin,"stroke-linecap":b.stroke_linecap,"stroke-opacity":b.stroke_opacity,"fill-opacity":b.fill_opacity,opacity:b.opacity/2,style:"pointer-events:inherit"}),Xt(t,e.attr),Kt(t),e.children&&e.children.forEach((function(e){t.append(k(e))})),t};u.getTransformList=K,u.matrixMultiply=be,u.hasMatrixTransform=we,u.transformListToTransform=ke;var C=function(){return s.baseUnit};!function(e){Q=e;var t=document.createElementNS(x.SVG,"svg");document.body.append(t);var r=document.createElementNS(x.SVG,"rect");r.setAttribute("width","1em"),r.setAttribute("height","1ex"),r.setAttribute("x","1in"),t.append(r);var n=r.getBBox();t.remove();var i=n.x;J={em:n.width,ex:n.height,in:i,cm:i/2.54,mm:i/25.4,pt:i/72,pc:i/6,px:1,"%":0}}({getBaseUnit:C,getElement:Yt,getHeight:function(){return c.getAttribute("height")/y},getWidth:function(){return c.getAttribute("width")/y},getRoundDigits:function(){return fe.round_digits}}),u.convertToNum=ie;var E,P=function(){return c},G=this.getSelectedElems=function(){return w},I=ct,N=function(){return h};gt=E={pathActions:I,getSVGContent:P,addSVGElementFromJson:k,getSelectedElements:G,getDOMDocument:function(){return l},getDOMContainer:function(){return i},getSVGRoot:N,getBaseUnit:C,getSnappingStep:function(){return s.snappingStep}},pt=E.getDOMDocument(),yt=E.getDOMContainer(),vt=E.getSVGRoot(),u.findDefs=Tt,u.getUrlFromAttr=Gt,u.getHref=It,u.setHref=Nt,u.getBBox=Ot,u.getRotationAngle=Qt,u.getElem=Yt,u.getRefElem=Wt,u.assignAttributes=Xt,this.cleanupElement=Kt;var T=function(){return s.gridSnapping};!function(e){qr=e}({getDrawing:function(){return g()},getSVGRoot:N,getGridSnapping:T}),this.remapElement=Qr,function(e){Ur=e}({getSVGRoot:N,getStartTransform:function(){return Ne},setStartTransform:function(e){Ne=e}}),this.recalculateDimensions=Xr;var L=S();u.sanitizeSvg=Tr;var O=u.undoMgr=new on({handleHistoryEvent:function(e,t){var r=un;if(e===r.BEFORE_UNAPPLY||e===r.BEFORE_APPLY)u.clearSelection();else if(e===r.AFTER_APPLY||e===r.AFTER_UNAPPLY){var n=t.elements();u.pathActions.clear(),Z("changed",n);var i=t.type(),a=e===r.AFTER_APPLY;if(i===tn.type())(a?t.newParent:t.oldParent)===c&&pr();else if(i===rn.type()||i===nn.type())t.parent===c&&pr(),i===rn.type()?a&&de(t.elem):a||de(t.elem),"use"===t.elem.tagName&&er(t.elem);else if(i===an.type()){"title"===t.elem.tagName&&t.elem.parentNode.parentNode===c&&pr();var s=a?t.newValues:t.oldValues;s.stdDeviation&&u.setBlurOffsets(t.elem.parentNode,s.stdDeviation)}}}}),M=function(e){u.undoMgr.addCommandToHistory(e)},R=this.getZoom=function(){return y},B=this.round=function(e){return parseInt(e*y)/y};!function(e,t){jr=e,Hr=t,Fr=new Jr}(s,{createSVGElement:function(e){return u.addSVGElementFromJson(e)},svgRoot:function(){return h},svgContent:function(){return c},getCurrentZoom:R});var z=this.selectorManager=Fr,q=u.getNextId=function(){return g().getNextId()},X=u.getId=function(){return g().getId()},Z=function(e,t){if(We[e])return We[e](window,t)},$=this.clearSelection=function(e){w.forEach((function(e){Jt(e)||z.releaseSelector(e)})),w=[],e||Z("selected",w)},ne=this.addToSelection=function(e,t){if(e.length){for(var r=0;r1&&s.showGrips(!1)}}}if(w.length)for(Z("selected",w),t||1===w.length?z.requestSelector(w[0]).showGrips(!0):z.requestSelector(w[0]).showGrips(!1),w.sort((function(e,t){return e&&t&&e.compareDocumentPosition?3-(6&t.compareDocumentPosition(e)):Jt(e)?1:0}));Jt(w[0]);)w.shift(0)}},ae=function(){return b.opacity},se=this.getMouseTarget=function(e){if(Jt(e))return null;var t=e.target;if(t.correspondingUseElement&&(t=t.correspondingUseElement),[x.MATH,x.HTML].includes(t.namespaceURI)&&"svgcanvas"!==t.id)for(;"foreignObject"!==t.nodeName;)if(!(t=t.parentNode))return h;var r=g().getCurrentLayer();if([h,i,c,r].includes(t))return h;if(en(t).closest("#selectorParentGroup").length)return z.selectorParentGroup;for(;t.parentNode!==(v||r);)t=t.parentNode;return t};u.pathActions=I,Be({selectorManager:z,canvas:u,call:Z,resetD:function(e){e.setAttribute("d",I.convertPath(e))},round:B,clearSelection:$,addToSelection:ne,addCommandToHistory:M,remapElement:Qr,addSVGElementFromJson:k,getGridSnapping:T,getOpacity:ae,getSelectedElements:G,getContainer:function(){return i},setStarted:function(e){Ie=e},getRubberBox:function(){return He},setRubberBox:function(e){return He=e},addPtsToSelection:function(e){var t=e.closedSubpath,r=e.grips;I.canDeleteNodes=!0,I.closed_subpath=t,Z("pointsAdded",{closedSubpath:t,grips:r}),Z("selected",r)},endChanges:function(e){var t=e.cmd,r=e.elem;M(t),Z("changed",[r])},getCurrentZoom:R,getId:X,getNextId:q,getMouseTarget:se,getCurrentMode:function(){return Le},setCurrentMode:function(e){return Le=e},getDrawnPath:function(){return Vt},setDrawnPath:function(e){return Vt=e},getSVGRoot:N});var oe={},ue="a,circle,ellipse,foreignObject,g,image,line,path,polygon,polyline,rect,svg,text,tspan,use",le=["clip-path","fill","filter","marker-end","marker-mid","marker-start","mask","stroke"],he=en.data,ce=document.createElementNS(x.SVG,"animate");en(ce).attr({attributeName:"opacity",begin:"indefinite",dur:1,fill:"freeze"}).appendTo(h);var de=function e(t){var r=en(t).attr(le);Object.values(r).forEach((function(e){if(e&&e.startsWith("url(")){var t=Gt(e).substr(1);Yt(t)||(Tt().append(xe[t]),delete xe[t])}}));var n=t.getElementsByTagName("*");if(n.length)for(var i=0,a=n.length;i0&&(4===o.getItem(0).type&&o.removeItem(0));if(0!==e){var u=Se(a,s,ke(o).matrix),l=h.createSVGTransform();l.setRotate(e,u.x,u.y),o.numberOfItems?o.insertItemBefore(l,0):o.appendItem(l)}else 0===o.numberOfItems&&r.removeAttribute("transform");if(!t){var c=r.getAttribute("transform");r.setAttribute("transform",n),lr("transform",c,w),Z("changed",w)}z.requestSelector(w[0]).resize(),$r.updateGripCursors(e)};var Xe=this.recalculateAllSelectedDimensions=function(){for(var e=new sn("none"===Ve?"position":"size"),t=w.length;t--;){var r=w[t],n=Xr(r);n&&e.addSubCommand(n)}e.isEmpty()||(M(e),Z("changed",w))},Ke=function(e){console.log([e.a,e.b,e.c,e.d,e.e,e.f])},Ze=null,$e=this.selectOnly=function(e,t){$(!0),ne(e,t)};this.removeFromSelection=function(e){if(!Jt(w[0])&&e.length){for(var t=[],r=w.length,n=0;n0&&u.removeFromSelection(E),P.length>0&&u.addToSelection(P);break;case"resize":f=K(g);var L=we(f),V=(m=L?st:Ot(g)).x,O=m.y,M=m,R=M.width,B=M.height;if(a=b-rt,o=k-nt,s.gridSnapping&&(a=Zt(a),o=Zt(o),B=Zt(B),R=Zt(R)),d=Qt(g)){var U=Math.sqrt(a*a+o*o),H=Math.atan2(o,a)-d*Math.PI/180;a=U*Math.cos(H),o=U*Math.sin(H)}Ve.includes("n")||Ve.includes("s")||(o=0),Ve.includes("e")||Ve.includes("w")||(a=0);var j=0,F=0,D=B?(B+o)/B:1,q=R?(R+a)/R:1;Ve.includes("n")&&(D=B?(B-o)/B:1,F=B),Ve.includes("w")&&(q=R?(R-a)/R:1,j=R);var Q=h.createSVGTransform(),W=h.createSVGTransform(),Y=h.createSVGTransform();if(s.gridSnapping&&(V=Zt(V),j=Zt(j),O=Zt(O),F=Zt(F)),Q.setTranslate(-(V+j),-(O+F)),e.shiftKey&&(1===q?q=D:D=q),W.setScale(q,D),Y.setTranslate(V+j,O+F),L){var $=d?1:0;f.replaceItem(Q,2+$),f.replaceItem(W,1+$),f.replaceItem(Y,Number($))}else{var J=f.numberOfItems;f.replaceItem(Y,J-3),f.replaceItem(W,J-2),f.replaceItem(Q,J-1)}z.requestSelector(g).resize(),Z("transition",w);break;case"zoom":_*=y,A*=y,Xt(He,{x:Math.min(it*y,_),y:Math.min(at*y,A),width:Math.abs(_-it*y),height:Math.abs(A-at*y)});break;case"text":Xt(S,{x:b,y:k});break;case"line":s.gridSnapping&&(b=Zt(b),k=Zt(k));var ee=b,te=k;e.shiftKey&&(ee=(r=Ee(rt,nt,ee,te)).x,te=r.y),S.setAttribute("x2",ee),S.setAttribute("y2",te);break;case"foreignObject":case"square":case"rect":case"image":var re,ne,ie="square"===Le||e.shiftKey,ae=Math.abs(b-rt),se=Math.abs(k-nt);ie?(ae=se=Math.max(ae,se),re=rt.8){ot-=.8;var ce=c.createSVGPoint();ce.x=ft.x,ce.y=ft.y,S.points.appendItem(ce)}ut={x:lt.x,y:lt.y},lt={x:ht.x,y:ht.y},ht={x:mt.x,y:mt.y};break;case"path":case"pathedit":if(b*=y,k*=y,s.gridSnapping&&(b=Zt(b),k=Zt(k),rt=Zt(rt),nt=Zt(nt)),e.shiftKey){var de,me,fe=Me;fe?(de=fe.dragging?fe.dragging[0]:rt,me=fe.dragging?fe.dragging[1]:nt):(de=rt,me=nt);var ge=r=Ee(de,me,b,k);b=ge.x,k=ge.y}He&&"none"!==He.getAttribute("display")&&(_*=y,A*=y,Xt(He,{x:Math.min(it*y,_),y:Math.min(at*y,A),width:Math.abs(_-it*y),height:Math.abs(A-at*y)})),I.mouseMove(b,k);break;case"textedit":b*=y,k*=y,Ht.mouseMove(v,x);break;case"rotate":n=(m=Ot(g)).x+m.width/2,i=m.y+m.height/2;var pe=Ce(g),ye=Se(n,i,pe);n=ye.x,i=ye.y,d=(Math.atan2(i-k,n-b)*(180/Math.PI)-90)%360,s.gridSnapping&&(d=Zt(d)),e.shiftKey&&(d=45*Math.round(d/45)),u.setRotationAngle(d<-180?360+d:d,!0),Z("transition",w)}De("mouseMove",{event:e,mouse_x:v,mouse_y:x,selected:g})}})).click((function(e){return e.preventDefault(),!1})).dblclick((function(e){var t=e.target.parentNode;if(t!==v){var r=se(e),n=r.tagName;if("text"===n&&"textedit"!==Le){var i=Se(e.pageX,e.pageY,Ze);Ht.select(r,i.x,i.y)}"g"!==n&&"a"!==n||!Qt(r)||(dr(r),r=w[0],$(!0)),v&&Er(),"g"!==t.tagName&&"a"!==t.tagName||t===g().getCurrentLayer()||r===z.selectorParentGroup||Pr(r)}})).mouseup((function(e){if(2!==e.button){var t=Ue;if(Ue=null,Ie){var r,n,i=Se(e.pageX,e.pageY,Ze),a=i.x*y,o=i.y*y,l=a/y,h=o/y,c=Yt(X()),d=!1,m=l,f=h;switch(Ie=!1,Le){case"resize":case"multiselect":Jt(He)||(He.setAttribute("display","none"),je=[]),Le="select";case"select":if(!Jt(w[0])){if(Jt(w[1])){var p=w[0];switch(p.tagName){case"g":case"use":case"image":case"foreignObject":break;default:Re.fill=p.getAttribute("fill"),Re.fill_opacity=p.getAttribute("fill-opacity"),Re.stroke=p.getAttribute("stroke"),Re.stroke_opacity=p.getAttribute("stroke-opacity"),Re.stroke_width=p.getAttribute("stroke-width"),Re.stroke_dasharray=p.getAttribute("stroke-dasharray"),Re.stroke_linejoin=p.getAttribute("stroke-linejoin"),Re.stroke_linecap=p.getAttribute("stroke-linecap")}"text"===p.tagName&&(pe.font_size=p.getAttribute("font-size"),pe.font_family=p.getAttribute("font-family")),z.requestSelector(p).showGrips(!0)}if(Xe(),m!==it||f!==at)for(var v=w.length,x=0;x=0?A.includes(",",C+1):A.includes(" ",A.indexOf(" ")+1))&&(c=I.smoothPolylineIntoPath(c));break;case"line":r=en(c).attr(["x1","x2","y1","y2"]),d=r.x1!==r.x2||r.y1!==r.y2;break;case"foreignObject":case"square":case"rect":case"image":r=en(c).attr(["width","height"]),d=r.width||r.height||"image"===Le;break;case"circle":d="0"!==c.getAttribute("r");break;case"ellipse":r=en(c).attr(["rx","ry"]),d=r.rx||r.ry;break;case"fhellipse":tt.maxx-tt.minx>0&&tt.maxy-tt.miny>0&&(c=k({element:"ellipse",curStyles:!0,attr:{cx:(tt.minx+tt.maxx)/2,cy:(tt.miny+tt.maxy)/2,rx:(tt.maxx-tt.minx)/2,ry:(tt.maxy-tt.miny)/2,id:X()}}),Z("changed",[c]),d=!0);break;case"fhrect":tt.maxx-tt.minx>0&&tt.maxy-tt.miny>0&&(c=k({element:"rect",curStyles:!0,attr:{x:tt.minx,y:tt.miny,width:tt.maxx-tt.minx,height:tt.maxy-tt.miny,id:X()}}),Z("changed",[c]),d=!0);break;case"text":d=!0,$e([c]),Ht.start(c);break;case"path":c=null,Ie=!0;var E=I.mouseUp(e,c,a,o);c=E.element,d=E.keep;break;case"pathedit":d=!0,c=null,I.mouseUp(e);break;case"textedit":d=!1,c=null,Ht.mouseUp(e,a,o);break;case"rotate":d=!0,c=null,Le="select";var P=u.undoMgr.finishUndoableChange();P.isEmpty()||M(P),Xe(),Z("changed",w)}var G=De("mouseUp",{event:e,mouse_x:a,mouse_y:o},!0);if(en.each(G,(function(e,t){t&&(d=t.keep||d,c=t.element,Ie=t.started||Ie)})),d||Jt(c)){if(!Jt(c)){u.addedNew=!0;var N,T=.2;if(ce.beginElement&&parseFloat(c.getAttribute("opacity"))!==b.opacity){N=en(ce).clone().attr({to:b.opacity,dur:T}).appendTo(c);try{N[0].beginElement()}catch(e){}}else T=0;setTimeout((function(){N&&N.remove(),c.setAttribute("opacity",b.opacity),c.setAttribute("style","pointer-events:inherit"),Kt(c),"path"===Le?I.toEditMode(c):s.selectNew&&$e([c],!0),M(new rn(c)),Z("changed",[c])}),1e3*T)}}else{for(g().releaseId(X()),c.remove(),c=null,n=e.target;n&&n.parentNode&&n.parentNode.parentNode&&"g"===n.parentNode.parentNode.tagName;)n=n.parentNode;"path"===Le&&Vt||!n||!n.parentNode||"selectorParentGroup"===n.parentNode.id||"svgcanvas"===n.id||"svgroot"===n.id||(u.setMode("select"),$e([n],!0))}Ne=null}}})),en(i).bind("mousewheel DOMMouseScroll",(function(e){if(e.shiftKey){e.preventDefault();var t=e.originalEvent;Ze=en("#svgcontent g")[0].getScreenCTM().inverse();var r=en("#workarea"),n=s.showRulers?16:0,i=Se(t.pageX,t.pageY,Ze),a=r.width(),o=r.height(),l=a-15-n,h=o-15-n,c=l*Ze.a,d=h*Ze.d,m=r.offset(),f=m.left+n,g=m.top+n,p=t.wheelDelta?t.wheelDelta:t.detail?-t.detail:0;if(p){var v,x,S=Math.max(3/4,Math.min(4/3,p));S>1?(v=Math.ceil(l/c*S*100)/100,x=Math.ceil(h/d*S*100)/100):(v=Math.floor(l/c*S*100)/100,x=Math.floor(h/d*S*100)/100);var _=Math.min(v,x);if((_=Math.min(10,Math.max(.01,_)))!==y){S=_/y;var b=Se(f,g,Ze),w={x:(i.x-(i.x-b.x)/S)*_-n+a/2,y:(i.y-(i.y-b.y)/S)*_-n+o/2};u.setZoom(_),en("#zoom").val((100*_).toFixed(1)),Z("updateCanvas",{center:!1,newCtr:w}),Z("zoomDone")}}}}));var Mt,Ht=u.textActions=function(){var e,t,r,n,i,a,s,o,l,c,d=[];function m(e){var s=""===t.value;if(en(t).focus(),!arguments.length)if(s)e=0;else{if(t.selectionEnd!==t.selectionStart)return;e=t.selectionEnd}var o=d[e];s||t.setSelectionRange(e,e),(r=Yt("text_cursor"))||(r=document.createElementNS(x.SVG,"line"),Xt(r,{id:"text_cursor",stroke:"#333","stroke-width":1}),r=Yt("selectorParentGroup").appendChild(r)),i||(i=setInterval((function(){var e="none"===r.getAttribute("display");r.setAttribute("display",e?"inline":"none")}),600));var u=_(o.x,a.y),l=_(o.x,a.y+a.height);Xt(r,{x1:u.x,y1:u.y,x2:l.x,y2:l.y,visibility:"visible",display:"inline"}),n&&n.setAttribute("d","")}function f(e,i,s){if(e!==i){s||t.setSelectionRange(e,i),(n=Yt("text_selectblock"))||(n=document.createElementNS(x.SVG,"path"),Xt(n,{id:"text_selectblock",fill:"green",opacity:.5,style:"pointer-events:none"}),Yt("selectorParentGroup").append(n));var o=d[e],u=d[i];r.setAttribute("visibility","hidden");var l=_(o.x,a.y),h=_(o.x+(u.x-o.x),a.y),c=_(o.x,a.y+a.height),f=_(o.x+(u.x-o.x),a.y+a.height),g="M"+l.x+","+l.y+" L"+h.x+","+h.y+" "+f.x+","+f.y+" "+c.x+","+c.y+"z";Xt(n,{d:g,display:"inline"})}else m(i)}function g(t,r){var n=h.createSVGPoint();if(n.x=t,n.y=r,1===d.length)return 0;var i=e.getCharNumAtPosition(n);i<0?(i=d.length-2,t<=d[0].x&&(i=0)):i>=d.length-2&&(i=d.length-2);var a=d[i];return t>a.x+a.width/2&&i++,i}function p(e,t){m(g(e,t))}function v(e,r,n){var i=t.selectionStart,a=g(e,r);f(Math.min(i,a),Math.max(i,a),!n)}function S(e,t){var r={x:e,y:t};if(r.x/=y,r.y/=y,s){var n=Se(r.x,r.y,s.inverse());r.x=n.x,r.y=n.y}return r}function _(e,t){var r={x:e,y:t};if(s){var n=Se(r.x,r.y,s);r.x=n.x,r.y=n.y}return r.x*=y,r.y*=y,r}function b(t){f(0,e.textContent.length),en(this).unbind(t)}function A(t){if(c&&e){var r=Se(t.pageX,t.pageY,Ze),n=S(r.x*y,r.y*y),i=g(n.x,n.y),a=e.textContent,s=a.substr(0,i).replace(/[a-z\d]+$/i,"").length,o=a.substr(i).match(/^[a-z\d]+/i);f(s,(o?o[0].length:0)+i),en(t.target).click(b),setTimeout((function(){en(t.target).unbind("click",b)}),300)}}return{select:function(t,r,n){e=t,Ht.toEditMode(r,n)},start:function(t){e=t,Ht.toEditMode()},mouseDown:function(e,r,n,i){var a=S(n,i);t.focus(),p(a.x,a.y),o=n,l=i},mouseMove:function(e,t){var r=S(e,t);v(r.x,r.y)},mouseUp:function(t,r,n){var i=S(r,n);v(i.x,i.y,!0),t.target!==e&&ro-2&&nl-2&&Ht.toSelectMode(!0)},setCursor:m,toEditMode:function(t,r){if(c=!1,Le="textedit",z.requestSelector(e).showGrips(!1),z.requestSelector(e),Ht.init(),en(e).css("cursor","text"),arguments.length){var n=S(t,r);p(n.x,n.y)}else m();setTimeout((function(){c=!0}),300)},toSelectMode:function(a){Le="select",clearInterval(i),i=null,n&&en(n).attr("display","none"),r&&en(r).attr("visibility","hidden"),en(e).css("cursor","move"),a&&($(),en(e).css("cursor","move"),Z("selected",[e]),ne([e],!0)),e&&!e.textContent.length&&u.deleteSelectedElements(),en(t).blur(),e=!1},setInputElem:function(e){t=e},clear:function(){"textedit"===Le&&Ht.toSelectMode()},init:function(r){if(e){var n,i;e.parentNode||(e=w[0],z.requestSelector(e).showGrips(!1));var o=e.textContent.length,l=e.getAttribute("transform");for(a=Ot(e),s=l?Ce(e):null,(d=[]).length=o,t.focus(),en(e).unbind("dblclick",A).dblclick(A),o||(i={x:a.x+a.width/2,width:0}),n=0;n")[0].getContext("2d")||(r.text=oe.exportNoText),en.each(r,(function(r,i){n.find(r).length&&(t.push(r),e.push(i))})),{issues:e,issueCodes:t}}this.svgCanvasToString=function(){for(;jt()>0;);I.clear(!0),en.each(c.childNodes,(function(e,t){e&&8===t.nodeType&&t.data.includes("Created with")&&c.firstChild.before(t)})),v&&(Er(),$e([v]));var e=[];en(c).find("g:data(gsvg)").each((function(){for(var t=this.attributes,r=t.length,n=0;nt.name?-1:1}));for(var u=0;u=0;y--){var v=a[y],S=St(v.value);if(!p.includes(v.localName)){if("null"===S){var _=v.localName.replace(/-[a-z]/g,(function(e){return e[1].toUpperCase()}));if(Object.prototype.hasOwnProperty.call(e.style,_))continue}if(""!==S){if(S.startsWith("pointer-events"))continue;if("class"===v.localName&&S.startsWith("se_"))continue;if(r.push(" "),"d"===v.localName&&(S=I.convertPath(e,!0)),isNaN(S)?i.test(S)&&(S=te(S)+n):S=te(S),fe.apply&&"image"===e.nodeName&&"href"===v.localName&&fe.images&&"embed"===fe.images){var b=me[S];b&&(S=b)}v.namespaceURI&&v.namespaceURI!==x.SVG&&!L[v.namespaceURI]||(r.push(v.nodeName),r.push('="'),r.push(S),r.push('"'))}}}}if(e.hasChildNodes()){r.push(">"),t++;for(var w=!1,A=0;A");break;case 8:r.push("\n"),r.push(new Array(t+1).join(" ")),r.push("\x3c!--"),r.push(k.data),r.push("--\x3e")}}if(t--,!w){r.push("\n");for(var E=0;E")}else r.push("/>")}return r.join("")},this.embedImage=function(e){return new Promise((function(t,r){en(new Image).load((function(n,i,a){if("error"!==i){var s=document.createElement("canvas");s.width=this.width,s.height=this.height,s.getContext("2d").drawImage(this,0,0);try{var o=";svgedit_url="+encodeURIComponent(e);o=s.toDataURL().replace(";base64",o+";base64"),me[e]=o}catch(t){me[e]=!1}Ge=e,t(me[e])}else r(new Error("Error loading image: "+a.status+" "+a.statusText))})).attr("src",e)}))},this.setGoodImage=function(e){Ge=e},this.open=function(){},this.save=function(e){$(),e&&en.extend(fe,e),fe.apply=!0;var t=this.svgCanvasToString();Z("saved",t)},this.rasterExport=function(){var e=r(regeneratorRuntime.mark((function e(t,r,n){var i,a,o,l,h,c,d,m,f,g=arguments;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=g.length>3&&void 0!==g[3]?g[3]:{},o="image/"+(a="ICO"===t?"BMP":t||"PNG").toLowerCase(),l=Ft(),h=l.issues,c=l.issueCodes,d=this.svgCanvasToString(),Mt){e.next=10;break}return e.next=8,Or(s.canvgPath+"canvg.js",{global:"canvg"});case 8:m=e.sent,Mt=m.canvg;case 10:return en("#export_canvas").length||en("",{id:"export_canvas"}).hide().appendTo("body"),(f=en("#export_canvas")[0]).width=u.contentW,f.height=u.contentH,e.next=16,Mt(f,d);case 16:return e.abrupt("return",new Promise((function(e,s){var u,l=a.toLowerCase(),m=r?f.toDataURL("image/"+l,r):f.toDataURL("image/"+l);function g(){var a={datauri:m,bloburl:u,svg:d,issues:h,issueCodes:c,type:t,mimeType:o,quality:r,exportWindowName:n};i.avoidEvent||Z("exported",a),e(a)}f.toBlob?f.toBlob((function(e){u=Ct(e),g()}),o,r):(u=kt(m),g())})));case 17:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),this.exportPDF=function(){var e=r(regeneratorRuntime.mark((function e(t){var r,n,i,a,o,u,l,h,c,d,m,f,g=arguments;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=g.length>1&&void 0!==g[1]?g[1]:F()?"save":void 0,window.jsPDF){e.next=7;break}return e.next=4,Rr(["jspdf/underscore-min.js","../../svgedit-myfix/editor/jspdf/jspdf-1.0.150.debug.js"]);case 4:return n=!("svgEditor"in window)||!window.svgEditor||!1!==window.svgEditor.modules,e.next=7,Rr(s.jspdfPath+"jspdf.plugin.svgToPdf.js",{type:n?"module":"text/javascript"});case 7:return i=ir(),a=i.w>i.h?"landscape":"portrait",o="pt",u=jsPDF({orientation:a,unit:o,format:[i.w,i.h]}),l=ar(),u.setProperties({title:l}),h=Ft(),c=h.issues,d=h.issueCodes,m=this.svgCanvasToString(),u.addSVG(m,0,0),(f={svg:m,issues:c,issueCodes:d,exportWindowName:t,outputType:r=r||"dataurlstring"}).output=u.output(r,"save"===r?t||"svg.pdf":void 0),Z("exportedPDF",f),e.abrupt("return",f);case 21:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),this.getSvgString=function(){return fe.apply=!1,this.svgCanvasToString()},this.randomizeIds=function(e){arguments.length>0&&!1===e?gr(!1,g()):gr(!0,g())};var qt=this.uniquifyElems=function(e){var t={},r=["filter","linearGradient","pattern","radialGradient","symbol","textPath","use"];for(var n in Pt(e,(function(e){if(1===e.nodeType){e.id&&(e.id in t||(t[e.id]={elem:null,attrs:[],hrefs:[]}),t[e.id].elem=e),en.each(le,(function(r,n){var i=e.getAttributeNode(n);if(i){var a=Gt(i.value),s=a?a.substr(1):null;s&&(s in t||(t[s]={elem:null,attrs:[],hrefs:[]}),t[s].attrs.push(i))}}));var n=It(e);if(n&&r.includes(e.nodeName)){var i=n.substr(1);i&&(i in t||(t[i]={elem:null,attrs:[],hrefs:[]}),t[i].hrefs.push(e))}}})),t)if(n){var i=t[n].elem;if(i){var a=q();i.id=a;for(var s=t[n].attrs,o=s.length;o--;){var u=s[o];u.ownerElement.setAttribute(u.name,"url(#"+a+")")}for(var l=t[n].hrefs,h=l.length;h--;){var c=l[h];Nt(c,"#"+a)}}}},er=this.setUseData=function(e){var t=en(e);"use"!==e.tagName&&(t=t.find("use")),t.each((function(){var e=It(this).substr(1),t=Yt(e);t&&(en(this).data("ref",t),"symbol"!==t.tagName&&"svg"!==t.tagName||en(this).data("symbol",t).data("ref",t))}))},tr=this.convertGradients=function(e){var t=en(e).find("linearGradient, radialGradient");!t.length&&U()&&(t=en(e).find("*").filter((function(){return this.tagName.includes("Gradient")}))),t.each((function(){if("userSpaceOnUse"===en(this).attr("gradientUnits")){var e=en(c).find('[fill="url(#'+this.id+')"],[stroke="url(#'+this.id+')"]');if(!e.length)return;var t=Ot(e[0]);if(!t)return;if("linearGradient"===this.tagName){var r=en(this).attr(["x1","y1","x2","y2"]),n=this.gradientTransform.baseVal;if(n&&n.numberOfItems>0){var i=ke(n).matrix,a=Se(r.x1,r.y1,i),s=Se(r.x2,r.y2,i);r.x1=a.x,r.y1=a.y,r.x2=s.x,r.y2=s.y,this.removeAttribute("gradientTransform")}en(this).attr({x1:(r.x1-t.x)/t.width,y1:(r.y1-t.y)/t.height,x2:(r.x2-t.x)/t.width,y2:(r.y2-t.y)/t.height}),this.removeAttribute("gradientUnits")}}}))},rr=this.convertToGroup=function(e){e||(e=w[0]);var t,r=en(e),n=new sn;if(r.data("gsvg")){var i=e.firstChild,a=en(i).attr(["x","y"]);en(e.firstChild.firstChild).unwrap(),en(e).removeData("gsvg");var s=K(e),o=h.createSVGTransform();o.setTranslate(a.x,a.y),s.appendItem(o),Xr(e),Z("selected",[e])}else if(r.data("symbol")){e=r.data("symbol"),t=r.attr("transform");var u=r.attr(["x","y"]),d=e.getAttribute("viewBox");if(d){var m=d.split(" ");u.x-=Number(m[0]),u.y-=Number(m[1])}t+=" translate("+(u.x||0)+","+(u.y||0)+")";var f=r.prev();n.addSubCommand(new nn(r[0],r[0].nextSibling,r[0].parentNode)),r.remove();var g,p=en(c).find("use:data(symbol)").length,y=l.createElementNS(x.SVG,"g"),v=e.childNodes;for(g=0;gd?"scale("+S/3/y[3]+")":"scale("+S/3/y[2]+")")+" translate(0)",s=l.createElementNS(x.SVG,"symbol");var _=Tt();for(H()&&en(u).find("linearGradient, radialGradient, pattern").appendTo(_);u.firstChild;){var b=u.firstChild;s.append(b)}var w,A=p(u.attributes);try{for(A.s();!(w=A.n()).done;){var k=w.value;s.setAttribute(k.nodeName,k.value)}}catch(e){A.e(e)}finally{A.f()}s.id=q(),ge[i]={symbol:s,xform:r},Tt().append(s),o.addSubCommand(new rn(s))}(n=l.createElementNS(x.SVG,"use")).id=q(),Nt(n,"#"+s.id),(v||g().getCurrentLayer()).append(n),o.addSubCommand(new rn(n)),$(),n.setAttribute("transform",r),Xr(n),en(n).data("symbol",s).data("ref",s),ne([n]),M(o),Z("changed",[c])}catch(e){return console.log(e),null}return n};var nr={identifyLayers:pr,createLayer:yr,cloneLayer:vr,deleteCurrentLayer:xr,setCurrentLayer:Sr,renameCurrentLayer:_r,setCurrentLayerPosition:br,setLayerVisibility:wr,moveSelectedToLayer:Ar,mergeLayer:kr,mergeAllLayers:Cr,leaveContext:Er,setContext:Pr};Object.entries(nr).forEach((function(e){var t=d(e,2),r=t[0],n=t[1];u[r]=n})),function(e){mr=e}({pathActions:I,getCurrentGroup:function(){return v},setCurrentGroup:function(e){v=e},getSelectedElements:G,getSVGContent:P,undoMgr:O,elData:he,getCurrentDrawing:g,clearSelection:$,call:Z,addCommandToHistory:M,changeSVGContent:function(){Z("changed",[c])}}),this.clear=function(){I.clear(),$(),u.clearSvgContentElement(),u.current_drawing_=new fr(c),u.createLayer("Layer 1"),u.undoMgr.resetUndoStack(),z.initGroup(),He=z.getRubberBandBox(),Z("cleared")},this.linkControlPoints=I.linkControlPoints,this.getContentElem=function(){return c},this.getRootElem=function(){return h};var ir=this.getResolution=function(){return{w:c.getAttribute("width")/y,h:c.getAttribute("height")/y,zoom:y}};this.getSnapToGrid=function(){return s.gridSnapping},this.getVersion=function(){return"svgcanvas.js ($Rev$)"},this.setUiStrings=function(t){Object.assign(oe,t.notification),en=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ok:"Ok",cancel:"Cancel"};t("#dialog_container").draggable({cancel:"#dialog_content, #dialog_buttons *",containment:"window"}).css("position","absolute");var n=t("#dialog_box"),i=t("#dialog_buttons"),a=t("#dialog_content");function s(s,o,u,l,h,c){a.html("

"+o.replace(/\n/g,"

")+"

").toggleClass("prompt","prompt"===s),i.empty();var d=t('').appendTo(i);return new Promise((function(m,f){var g,p;if("alert"!==s&&t('').appendTo(i).click((function(){n.hide(),m(!1)})),"prompt"===s)(g=t('').prependTo(i)).val(u||""),g.bind("keydown","return",(function(){d.click()}));else if("select"===s){var y=t('
');if(g=t('').appendTo(v)).val(c.value),c.tooltip&&v.attr("title",c.tooltip),p.prop("checked",Boolean(c.checked)),y.append(t("
").append(v))}t.each(l||[],(function(r,n){"object"===e(n)?g.append(t("