From: nobuti Date: Sat, 27 Oct 2018 10:03:12 +0000 (+0200) Subject: Code review taken X-Git-Tag: 3.0.0~57^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=2e7e217aab00b1a7967e297e212e4bf69ba63405;p=svg.js.git Code review taken --- diff --git a/dist/svg.js b/dist/svg.js index 0e27e19..b854ee4 100644 --- a/dist/svg.js +++ b/dist/svg.js @@ -6,7 +6,7 @@ * @copyright Wout Fierens * @license MIT * -* BUILT: Sat Oct 27 2018 04:58:03 GMT+0200 (CEST) +* BUILT: Sat Oct 27 2018 12:02:54 GMT+0200 (CEST) */; (function(root, factory) { @@ -1313,16 +1313,14 @@ SVG.Element = SVG.invent({ // expose node modifiers if (typeof _svg === 'function') { this.each(function () { - well = _svg(this); + well = _svg(this); // If modifier returns false, discard node - if (well instanceof SVG.Element) { + if (well === false) { + this.remove(); // If modifier returns new node, use it + } else if (well && well !== this) { this.replace(well); } - - if (typeof well === 'boolean' && !well) { - this.remove(); - } - }); + }, true); } // write svgjs data to the dom diff --git a/dist/svg.js.map b/dist/svg.js.map index 82d0e39..aaf7ab7 100644 --- a/dist/svg.js.map +++ b/dist/svg.js.map @@ -1 +1 @@ -{"version":3,"sources":["svg.js","regex.js","utilities.js","default.js","queue.js","color.js","array.js","pointarray.js","patharray.js","number.js","eventtarget.js","HtmlNode.js","element.js","event.js","matrix.js","point.js","attr.js","transform.js","css.js","parent.js","flatten.js","container.js","defs.js","group.js","arrange.js","mask.js","clip.js","gradient.js","pattern.js","doc.js","shape.js","bare.js","symbol.js","use.js","rect.js","ellipse.js","line.js","poly.js","pointed.js","path.js","image.js","text.js","textpath.js","hyperlink.js","marker.js","sugar.js","data.js","memory.js","selector.js","helpers.js","boxes.js","parser.js","animator.js","morph.js","runner.js","timeline.js","controller.js"],"names":["SVG","window","element","supported","createElement","ns","xmlns","xlink","svgjs","did","eid","name","capitalize","create","document","createElementNS","extend","modules","methods","key","i","Array","isArray","length","prototype","invent","config","initializer","node","inherit","call","constructor","construct","parent","Container","adopt","instance","Element","SVGElement","HtmlNode","nodeName","Doc","Gradient","Parent","regex","numberAndUnit","hex","rgb","reference","transforms","whitespace","isHex","isRgb","isCss","isBlank","isNumber","isPercent","isImage","delimiter","hyphen","pathLetters","isPathLetter","numbersWithDots","dots","utils","map","array","block","il","result","push","filter","radians","d","Math","PI","degrees","r","filterSVGElements","nodes","el","void","defaults","timeline","duration","ease","delay","attrs","fill","stroke","opacity","x","y","cx","cy","width","height","rx","ry","offset","Queue","_first","_last","value","item","next","prev","shift","remove","first","last","Color","color","g","b","match","test","exec","replace","parseInt","fullHex","arguments","toString","toHex","toArray","fromArray","a","compToHex","round","toRgb","join","brightness","morph","destination","at","pos","isColor","fallback","valueOf","parse","lastValue","lastDestination","settle","seen","indexOf","trim","split","parseFloat","reverse","clone","arrayClone","PointArray","reduce","curr","concat","toLine","x1","y1","x2","y2","points","pop","len","move","box","bbox","isNaN","size","maxX","Infinity","maxY","minX","minY","forEach","max","min","pathHandlers","M","c","p","p0","L","H","V","C","S","Q","T","Z","A","mlhvqtcsaz","j","jl","toUpperCase","PathArray","arrayToString","l","equalCommands","pathArray","sourceArray","destinationArray","s","paramCnt","pathRegReplace","Point","index","slice","parser","path","setAttribute","getBBox","Number","unit","isFinite","toJSON","plus","number","minus","times","divide","relative","EventTarget","on","event","listener","binding","options","off","dispatch","data","fire","add","children","insertBefore","put","getEventTarget","events","dom","type","hasAttribute","setData","JSON","getAttribute","attr","center","proportionalSize","writeDataToDom","assignNewId","cloneNode","after","removeElement","addTo","putIn","id","inside","show","css","hide","visible","classes","hasClass","addClass","removeClass","toggleClass","get","parentNode","matches","doc","defs","parents","selector","native","svg","well","innerHTML","appendChild","firstElementChild","each","outerHTML","is","removeAttribute","Object","keys","stringify","o","obj","f","listenerId","bind","n","bag","_svgjsListenerId","ev","addEventListener","namespace","removeEventListener","Event","dispatchEvent","CustomEvent","detail","cancelable","Matrix","source","base","arrayToMatrix","matrixify","isMatrixLike","transform","e","matrix","multiplyO","t","formatTransforms","current","ox","oy","transformer","translateO","lmultiplyO","scaleO","scaleX","scaleY","skewO","skewX","skewY","shearO","shear","rotateO","theta","px","py","origin","dx","dy","tx","ty","compose","originX","originY","sx","sy","lam","rotate","translateX","translateY","decompose","determinant","ccw","sqrt","thetaRad","atan2","ct","cos","st","sin","multiply","matrixMultiply","lmultiply","inverseO","det","Error","na","nb","nc","nd","ne","nf","inverse","translate","scale","flip","axis","around","flipO","lx","skew","tan","ly","skewXO","skewYO","aroundO","createSVGMatrix","abcdef","equals","other","comp","closeEnough","ctm","getCTM","screenCTM","isRoot","rect","m","getScreenCTM","point","createSVGPoint","v","attributes","nodeValue","image","Image","pattern","leading","setAttributeNS","rebuild","untransform","str","kv","apply","toParent","pCtm","toDoc","decomposed","getOrigin","cleanRelative","ret","style","cssText","camelCase","has","deep","removeChild","clear","hasChildNodes","lastChild","_defs","flatten","G","Defs","ungroup","group","siblings","position","forward","backward","front","back","before","Mask","targets","unmask","select","mask","maskWith","masker","ClipPath","unclip","clip","clipWith","clipper","stop","Stop","update","url","gradient","Timeline","from","_target","fx","fy","to","Pattern","patternUnits","version","getElementsByTagName","nested","Shape","Bare","method","words","text","createTextNode","Symbol","symbol","Use","file","use","Rect","Circle","circle","Ellipse","ellipse","Line","plot","line","Polyline","polyline","Polygon","polygon","_array","MorphArray","Path","load","callback","img","ratio","src","Text","_rebuild","_build","undefined","childNodes","firstLine","nodeType","newLined","textContent","build","tspan","newLine","self","blankLineOffset","plain","Tspan","getComputedTextLength","TextPath","track","textPath","txt","target","link","linkTo","Marker","ref","marker","viewbox","sugar","prefix","extension","mat","angle","direction","directionString","dmove","radius","getTotalLength","pointAt","getPointAtLength","font","remember","k","memory","forget","_memory","getElementById","idFromReference","query","querySelectorAll","$$","$","querySelector","makeNested","charAt","isNulledBox","w","h","domContains","documentElement","contains","arr","matchesSelector","msMatchesSelector","mozMatchesSelector","webkitMatchesSelector","oMatchesSelector","toLowerCase","substring","ensureCentre","fullBox","threshold","abs","flipBoth","flipX","flipY","positionX","positionY","relativeX","relativeY","string","bx","includes","by","Box","left","top","merge","xMin","xMax","yMin","yMax","pts","addOffset","pageXOffset","pageYOffset","Exception","console","warn","rbox","getBoundingClientRect","ForeignObject","View","body","overflow","Animator","nextDraw","frames","timeouts","timer","performance","Date","frame","fn","run","requestAnimationFrame","_draw","transform_frame","timeout","time","now","cancelFrame","clearTimeout","nextTimeout","lastTimeout","nextFrame","lastFrame","Morphable","stepper","_stepper","Ease","_from","_to","_type","_context","_morphObj","val","_set","NonMorphable","MorphableTypes","ObjectBag","done","complete","_this","step","TransformBag","assign","objOrArr","values","entries","sort","args","easing","Runner","Controller","_element","_timeline","_queue","_duration","_isDeclarative","_history","enabled","_time","transformId","_haveReversed","_reverse","_loopsDone","_swing","_wait","_times","animate","when","sanitise","loop","schedule","_prepareRunner","runner","unschedule","swing","wait","queue","initFn","runFn","isTransform","initialiser","initialised","finished","_continue","during","dt","loops","loopDuration","loopsDone","floor","relativeTime","whole","partial","swinging","backwards","uncliped","pow","clipped","endTime","swingForward","forwards","progress","running","_lastPosition","justStarted","_lastTime","justFinished","declarative","_initialise","converged","_run","finish","active","_rememberMorpher","morpher","caller","_tryRetarget","splice","needsIt","positionOrDt","allfinished","addTransform","clearTransform","Stepper","FakeRunner","mergeWith","getRunnerTransform","mergeTransforms","runners","_transformationRunners","netTransform","_frameId","RunnerArray","ids","leftSibling","lastRunner","edit","newRunner","deleteCnt","_clearTransformRunnersBefore","currentRunner","clearBefore","_currentTransform","addRunner","frameId","styleAttr","zoom","level","affine","isMatrix","currentAngle","startTransform","setup","start","rTarget","rCurrent","possibilities","distances","shortest","affineParameters","retarget","newTransforms","_queueNumber","_queueNumberDelta","_tryRetargetDelta","_queueObject","makeSchedule","runnerInfo","end","_timeSource","_dispatcher","_startTime","_speed","_persist","_nextFrame","_paused","_runners","_order","_lastSourceTime","_lastStepTime","_step","absoluteStartTime","persist","play","pause","seek","speed","yes","currentSpeed","positive","dtOrForever","dtSource","dtTime","runnersLeft","dtToStart","makeSetterGetter","bezier","t0","x0","t1","recalculate","overshoot","_overshoot","eps","pi","os","log","zeta","wn","Spring","velocity","acceleration","newPosition","PID","windup","integral","error","P","I","D"],"mappings":"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","file":"svg.js","sourcesContent":["/* global createElement, capitalize */\n/* eslint-disable new-cap */\n\n// The main wrapping element\nvar SVG = window.SVG = function (element) {\n if (SVG.supported) {\n element = createElement(element)\n return element\n }\n}\n\n// Svg must be supported if we reached this stage\nSVG.supported = true\n\n// Default namespaces\nSVG.ns = 'http://www.w3.org/2000/svg'\nSVG.xmlns = 'http://www.w3.org/2000/xmlns/'\nSVG.xlink = 'http://www.w3.org/1999/xlink'\nSVG.svgjs = 'http://svgjs.com/svgjs'\n\n// Element id sequence\nSVG.did = 1000\n\n// Get next named element id\nSVG.eid = function (name) {\n return 'Svgjs' + capitalize(name) + (SVG.did++)\n}\n\n// Method for element creation\nSVG.create = function (name) {\n // create element\n return document.createElementNS(this.ns, name)\n}\n\n// Method for extending objects\nSVG.extend = function (modules, methods) {\n var key, i\n\n modules = Array.isArray(modules) ? modules : [modules]\n\n for (i = modules.length - 1; i >= 0; i--) {\n if (modules[i]) {\n for (key in methods) {\n modules[i].prototype[key] = methods[key]\n }\n }\n }\n}\n\n// Invent new element\nSVG.invent = function (config) {\n // Create element initializer\n var initializer = typeof config.create === 'function' ? config.create\n : function (node) {\n config.inherit.call(this, node || SVG.create(config.create))\n }\n\n // Inherit prototype\n if (config.inherit) {\n initializer.prototype = new config.inherit()\n initializer.prototype.constructor = initializer\n }\n\n // Extend with methods\n if (config.extend) {\n SVG.extend(initializer, config.extend)\n }\n\n // Attach construct method to parent\n if (config.construct) { SVG.extend(config.parent || SVG.Container, config.construct) }\n\n return initializer\n}\n\n// Adopt existing svg elements\nSVG.adopt = function (node) {\n // check for presence of node\n if (!node) return null\n\n // make sure a node isn't already adopted\n if (node.instance instanceof SVG.Element) return node.instance\n\n if (!(node instanceof window.SVGElement)) {\n return new SVG.HtmlNode(node)\n }\n\n // initialize variables\n var element\n\n // adopt with element-specific settings\n if (node.nodeName === 'svg') {\n element = new SVG.Doc(node)\n } else if (node.nodeName === 'linearGradient' || node.nodeName === 'radialGradient') {\n element = new SVG.Gradient(node)\n } else if (SVG[capitalize(node.nodeName)]) {\n element = new SVG[capitalize(node.nodeName)](node)\n } else {\n element = new SVG.Parent(node)\n }\n\n return element\n}\n","// Storage for regular expressions\nSVG.regex = {\n // Parse unit value\n numberAndUnit: /^([+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?)([a-z%]*)$/i,\n\n // Parse hex value\n hex: /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i,\n\n // Parse rgb value\n rgb: /rgb\\((\\d+),(\\d+),(\\d+)\\)/,\n\n // Parse reference id\n reference: /#([a-z0-9\\-_]+)/i,\n\n // splits a transformation chain\n transforms: /\\)\\s*,?\\s*/,\n\n // Whitespace\n whitespace: /\\s/g,\n\n // Test hex value\n isHex: /^#[a-f0-9]{3,6}$/i,\n\n // Test rgb value\n isRgb: /^rgb\\(/,\n\n // Test css declaration\n isCss: /[^:]+:[^;]+;?/,\n\n // Test for blank string\n isBlank: /^(\\s+)?$/,\n\n // Test for numeric string\n isNumber: /^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\n\n // Test for percent value\n isPercent: /^-?[\\d.]+%$/,\n\n // Test for image url\n isImage: /\\.(jpg|jpeg|png|gif|svg)(\\?[^=]+.*)?/i,\n\n // split at whitespace and comma\n delimiter: /[\\s,]+/,\n\n // The following regex are used to parse the d attribute of a path\n\n // Matches all hyphens which are not after an exponent\n hyphen: /([^e])-/gi,\n\n // Replaces and tests for all path letters\n pathLetters: /[MLHVCSQTAZ]/gi,\n\n // yes we need this one, too\n isPathLetter: /[MLHVCSQTAZ]/i,\n\n // matches 0.154.23.45\n numbersWithDots: /((\\d?\\.\\d+(?:e[+-]?\\d+)?)((?:\\.\\d+(?:e[+-]?\\d+)?)+))+/gi,\n\n // matches .\n dots: /\\./g\n}\n","\nSVG.utils = {\n // Map function\n map: function (array, block) {\n var i\n var il = array.length\n var result = []\n\n for (i = 0; i < il; i++) {\n result.push(block(array[i]))\n }\n\n return result\n },\n\n // Filter function\n filter: function (array, block) {\n var i\n var il = array.length\n var result = []\n\n for (i = 0; i < il; i++) {\n if (block(array[i])) { result.push(array[i]) }\n }\n\n return result\n },\n\n // Degrees to radians\n radians: function (d) {\n return d % 360 * Math.PI / 180\n },\n\n // Radians to degrees\n degrees: function (r) {\n return r * 180 / Math.PI % 360\n },\n\n filterSVGElements: function (nodes) {\n return this.filter(nodes, function (el) { return el instanceof window.SVGElement })\n }\n\n}\n","\nSVG.void = function () {}\n\nSVG.defaults = {\n\n // Default animation values\n timeline: {\n duration: 400,\n ease: '>',\n delay: 0\n },\n\n // Default attribute values\n attrs: {\n\n // fill and stroke\n 'fill-opacity': 1,\n 'stroke-opacity': 1,\n 'stroke-width': 0,\n 'stroke-linejoin': 'miter',\n 'stroke-linecap': 'butt',\n fill: '#000000',\n stroke: '#000000',\n opacity: 1,\n\n // position\n x: 0,\n y: 0,\n cx: 0,\n cy: 0,\n\n // size\n width: 0,\n height: 0,\n\n // radius\n r: 0,\n rx: 0,\n ry: 0,\n\n // gradient\n offset: 0,\n 'stop-opacity': 1,\n 'stop-color': '#000000',\n\n // text\n 'font-size': 16,\n 'font-family': 'Helvetica, Arial, sans-serif',\n 'text-anchor': 'start'\n }\n}\n","SVG.Queue = SVG.invent({\n create: function () {\n this._first = null\n this._last = null\n },\n\n extend: {\n push: function (value) {\n // An item stores an id and the provided value\n var item = value.next ? value : { value: value, next: null, prev: null }\n\n // Deal with the queue being empty or populated\n if (this._last) {\n item.prev = this._last\n this._last.next = item\n this._last = item\n } else {\n this._last = item\n this._first = item\n }\n\n // Update the length and return the current item\n return item\n },\n\n shift: function () {\n // Check if we have a value\n var remove = this._first\n if (!remove) return null\n\n // If we do, remove it and relink things\n this._first = remove.next\n if (this._first) this._first.prev = null\n this._last = this._first ? this._last : null\n return remove.value\n },\n\n // Shows us the first item in the list\n first: function () {\n return this._first && this._first.value\n },\n\n // Shows us the last item in the list\n last: function () {\n return this._last && this._last.value\n },\n\n // Removes the item that was returned from the push\n remove: function (item) {\n // Relink the previous item\n if (item.prev) item.prev.next = item.next\n if (item.next) item.next.prev = item.prev\n if (item === this._last) this._last = item.prev\n if (item === this._first) this._first = item.next\n\n // Invalidate item\n item.prev = null\n item.next = null\n }\n }\n})\n","/* globals fullHex, compToHex */\n\n/*\n\nColor {\n constructor (a, b, c, space) {\n space: 'hsl'\n a: 30\n b: 20\n c: 10\n },\n\n toRgb () { return new Color in rgb space }\n toHsl () { return new Color in hsl space }\n toLab () { return new Color in lab space }\n\n toArray () { [space, a, b, c] }\n fromArray () { convert it back }\n}\n\n// Conversions aren't always exact because of monitor profiles etc...\nnew Color(h, s, l, 'hsl') !== new Color(r, g, b).hsl()\nnew Color(100, 100, 100, [space])\nnew Color('hsl(30, 20, 10)')\n\n// Sugar\nSVG.rgb(30, 20, 50).lab()\nSVG.hsl()\nSVG.lab('rgb(100, 100, 100)')\n*/\n\n// Module for color convertions\nSVG.Color = function (color, g, b) {\n var match\n\n // initialize defaults\n this.r = 0\n this.g = 0\n this.b = 0\n\n if (!color) return\n\n // parse color\n if (typeof color === 'string') {\n if (SVG.regex.isRgb.test(color)) {\n // get rgb values\n match = SVG.regex.rgb.exec(color.replace(SVG.regex.whitespace, ''))\n\n // parse numeric values\n this.r = parseInt(match[1])\n this.g = parseInt(match[2])\n this.b = parseInt(match[3])\n } else if (SVG.regex.isHex.test(color)) {\n // get hex values\n match = SVG.regex.hex.exec(fullHex(color))\n\n // parse numeric values\n this.r = parseInt(match[1], 16)\n this.g = parseInt(match[2], 16)\n this.b = parseInt(match[3], 16)\n }\n } else if (Array.isArray(color)) {\n this.r = color[0]\n this.g = color[1]\n this.b = color[2]\n } else if (typeof color === 'object') {\n this.r = color.r\n this.g = color.g\n this.b = color.b\n } else if (arguments.length === 3) {\n this.r = color\n this.g = g\n this.b = b\n }\n}\n\nSVG.extend(SVG.Color, {\n // Default to hex conversion\n toString: function () {\n return this.toHex()\n },\n toArray: function () {\n return [this.r, this.g, this.b]\n },\n fromArray: function (a) {\n return new SVG.Color(a)\n },\n // Build hex value\n toHex: function () {\n return '#' +\n compToHex(Math.round(this.r)) +\n compToHex(Math.round(this.g)) +\n compToHex(Math.round(this.b))\n },\n // Build rgb value\n toRgb: function () {\n return 'rgb(' + [this.r, this.g, this.b].join() + ')'\n },\n // Calculate true brightness\n brightness: function () {\n return (this.r / 255 * 0.30) +\n (this.g / 255 * 0.59) +\n (this.b / 255 * 0.11)\n },\n // Make color morphable\n morph: function (color) {\n this.destination = new SVG.Color(color)\n\n return this\n },\n // Get morphed color at given position\n at: function (pos) {\n // make sure a destination is defined\n if (!this.destination) return this\n\n // normalise pos\n pos = pos < 0 ? 0 : pos > 1 ? 1 : pos\n\n // generate morphed color\n return new SVG.Color({\n r: ~~(this.r + (this.destination.r - this.r) * pos),\n g: ~~(this.g + (this.destination.g - this.g) * pos),\n b: ~~(this.b + (this.destination.b - this.b) * pos)\n })\n }\n\n})\n\n// Testers\n\n// Test if given value is a color string\nSVG.Color.test = function (color) {\n color += ''\n return SVG.regex.isHex.test(color) ||\n SVG.regex.isRgb.test(color)\n}\n\n// Test if given value is a rgb object\nSVG.Color.isRgb = function (color) {\n return color && typeof color.r === 'number' &&\n typeof color.g === 'number' &&\n typeof color.b === 'number'\n}\n\n// Test if given value is a color\nSVG.Color.isColor = function (color) {\n return SVG.Color.isRgb(color) || SVG.Color.test(color)\n}\n","/* global arrayClone */\n\n// Module for array conversion\nSVG.Array = function (array, fallback) {\n array = (array || []).valueOf()\n\n // if array is empty and fallback is provided, use fallback\n if (array.length === 0 && fallback) {\n array = fallback.valueOf()\n }\n\n // parse array\n this.value = this.parse(array)\n}\n\nSVG.extend(SVG.Array, {\n // Make array morphable\n morph: function (array) {\n this.destination = this.parse(array)\n\n // normalize length of arrays\n if (this.value.length !== this.destination.length) {\n var lastValue = this.value[this.value.length - 1]\n var lastDestination = this.destination[this.destination.length - 1]\n\n while (this.value.length > this.destination.length) {\n this.destination.push(lastDestination)\n }\n while (this.value.length < this.destination.length) {\n this.value.push(lastValue)\n }\n }\n\n return this\n },\n // Clean up any duplicate points\n settle: function () {\n // find all unique values\n for (var i = 0, il = this.value.length, seen = []; i < il; i++) {\n if (seen.indexOf(this.value[i]) === -1) {\n seen.push(this.value[i])\n }\n }\n\n // set new value\n this.value = seen\n return seen\n },\n // Get morphed array at given position\n at: function (pos) {\n // make sure a destination is defined\n if (!this.destination) return this\n\n // generate morphed array\n for (var i = 0, il = this.value.length, array = []; i < il; i++) {\n array.push(this.value[i] + (this.destination[i] - this.value[i]) * pos)\n }\n\n return new SVG.Array(array)\n },\n toArray: function () {\n return this.value\n },\n // Convert array to string\n toString: function () {\n return this.value.join(' ')\n },\n // Real value\n valueOf: function () {\n return this.value\n },\n // Parse whitespace separated string\n parse: function (array) {\n array = array.valueOf()\n\n // if already is an array, no need to parse it\n if (Array.isArray(array)) return array\n\n return array.trim().split(SVG.regex.delimiter).map(parseFloat)\n },\n // Reverse array\n reverse: function () {\n this.value.reverse()\n\n return this\n },\n clone: function () {\n var clone = new this.constructor()\n clone.value = arrayClone(this.value)\n return clone\n }\n})\n","\n// Poly points array\nSVG.PointArray = function (array, fallback) {\n SVG.Array.call(this, array, fallback || [[0, 0]])\n}\n\n// Inherit from SVG.Array\nSVG.PointArray.prototype = new SVG.Array()\nSVG.PointArray.prototype.constructor = SVG.PointArray\n\nSVG.extend(SVG.PointArray, {\n // Convert array to string\n toString: function () {\n // convert to a poly point string\n for (var i = 0, il = this.value.length, array = []; i < il; i++) {\n array.push(this.value[i].join(','))\n }\n\n return array.join(' ')\n },\n\n toArray: function () {\n return this.value.reduce(function (prev, curr) {\n return [].concat.call(prev, curr)\n }, [])\n },\n\n // Convert array to line object\n toLine: function () {\n return {\n x1: this.value[0][0],\n y1: this.value[0][1],\n x2: this.value[1][0],\n y2: this.value[1][1]\n }\n },\n\n // Get morphed array at given position\n at: function (pos) {\n // make sure a destination is defined\n if (!this.destination) return this\n\n // generate morphed point string\n for (var i = 0, il = this.value.length, array = []; i < il; i++) {\n array.push([\n this.value[i][0] + (this.destination[i][0] - this.value[i][0]) * pos,\n this.value[i][1] + (this.destination[i][1] - this.value[i][1]) * pos\n ])\n }\n\n return new SVG.PointArray(array)\n },\n\n // Parse point string and flat array\n parse: function (array) {\n var points = []\n\n array = array.valueOf()\n\n // if it is an array\n if (Array.isArray(array)) {\n // and it is not flat, there is no need to parse it\n if (Array.isArray(array[0])) {\n return array\n }\n } else { // Else, it is considered as a string\n // parse points\n array = array.trim().split(SVG.regex.delimiter).map(parseFloat)\n }\n\n // validate points - https://svgwg.org/svg2-draft/shapes.html#DataTypePoints\n // Odd number of coordinates is an error. In such cases, drop the last odd coordinate.\n if (array.length % 2 !== 0) array.pop()\n\n // wrap points in two-tuples and parse points as floats\n for (var i = 0, len = array.length; i < len; i = i + 2) {\n points.push([ array[i], array[i + 1] ])\n }\n\n return points\n },\n\n // Move point string\n move: function (x, y) {\n var box = this.bbox()\n\n // get relative offset\n x -= box.x\n y -= box.y\n\n // move every point\n if (!isNaN(x) && !isNaN(y)) {\n for (var i = this.value.length - 1; i >= 0; i--) {\n this.value[i] = [this.value[i][0] + x, this.value[i][1] + y]\n }\n }\n\n return this\n },\n // Resize poly string\n size: function (width, height) {\n var i\n var box = this.bbox()\n\n // recalculate position of all points according to new size\n for (i = this.value.length - 1; i >= 0; i--) {\n if (box.width) this.value[i][0] = ((this.value[i][0] - box.x) * width) / box.width + box.x\n if (box.height) this.value[i][1] = ((this.value[i][1] - box.y) * height) / box.height + box.y\n }\n\n return this\n },\n\n // Get bounding box of points\n bbox: function () {\n var maxX = -Infinity\n var maxY = -Infinity\n var minX = Infinity\n var minY = Infinity\n this.value.forEach(function (el) {\n maxX = Math.max(el[0], maxX)\n maxY = Math.max(el[1], maxY)\n minX = Math.min(el[0], minX)\n minY = Math.min(el[1], minY)\n })\n return {x: minX, y: minY, width: maxX - minX, height: maxY - minY}\n }\n})\n","/* globals arrayToString, pathRegReplace */\n\nvar pathHandlers = {\n M: function (c, p, p0) {\n p.x = p0.x = c[0]\n p.y = p0.y = c[1]\n\n return ['M', p.x, p.y]\n },\n L: function (c, p) {\n p.x = c[0]\n p.y = c[1]\n return ['L', c[0], c[1]]\n },\n H: function (c, p) {\n p.x = c[0]\n return ['H', c[0]]\n },\n V: function (c, p) {\n p.y = c[0]\n return ['V', c[0]]\n },\n C: function (c, p) {\n p.x = c[4]\n p.y = c[5]\n return ['C', c[0], c[1], c[2], c[3], c[4], c[5]]\n },\n S: function (c, p) {\n p.x = c[2]\n p.y = c[3]\n return ['S', c[0], c[1], c[2], c[3]]\n },\n Q: function (c, p) {\n p.x = c[2]\n p.y = c[3]\n return ['Q', c[0], c[1], c[2], c[3]]\n },\n T: function (c, p) {\n p.x = c[0]\n p.y = c[1]\n return ['T', c[0], c[1]]\n },\n Z: function (c, p, p0) {\n p.x = p0.x\n p.y = p0.y\n return ['Z']\n },\n A: function (c, p) {\n p.x = c[5]\n p.y = c[6]\n return ['A', c[0], c[1], c[2], c[3], c[4], c[5], c[6]]\n }\n}\n\nvar mlhvqtcsaz = 'mlhvqtcsaz'.split('')\n\nfor (var i = 0, il = mlhvqtcsaz.length; i < il; ++i) {\n pathHandlers[mlhvqtcsaz[i]] = (function (i) {\n return function (c, p, p0) {\n if (i === 'H') c[0] = c[0] + p.x\n else if (i === 'V') c[0] = c[0] + p.y\n else if (i === 'A') {\n c[5] = c[5] + p.x\n c[6] = c[6] + p.y\n } else {\n for (var j = 0, jl = c.length; j < jl; ++j) {\n c[j] = c[j] + (j % 2 ? p.y : p.x)\n }\n }\n\n return pathHandlers[i](c, p, p0)\n }\n })(mlhvqtcsaz[i].toUpperCase())\n}\n\n// Path points array\nSVG.PathArray = function (array, fallback) {\n SVG.Array.call(this, array, fallback || [['M', 0, 0]])\n}\n\n// Inherit from SVG.Array\nSVG.PathArray.prototype = new SVG.Array()\nSVG.PathArray.prototype.constructor = SVG.PathArray\n\nSVG.extend(SVG.PathArray, {\n // Convert array to string\n toString: function () {\n return arrayToString(this.value)\n },\n toArray: function () {\n return this.value.reduce(function (prev, curr) {\n return [].concat.call(prev, curr)\n }, [])\n },\n // Move path string\n move: function (x, y) {\n // get bounding box of current situation\n var box = this.bbox()\n\n // get relative offset\n x -= box.x\n y -= box.y\n\n if (!isNaN(x) && !isNaN(y)) {\n // move every point\n for (var l, i = this.value.length - 1; i >= 0; i--) {\n l = this.value[i][0]\n\n if (l === 'M' || l === 'L' || l === 'T') {\n this.value[i][1] += x\n this.value[i][2] += y\n } else if (l === 'H') {\n this.value[i][1] += x\n } else if (l === 'V') {\n this.value[i][1] += y\n } else if (l === 'C' || l === 'S' || l === 'Q') {\n this.value[i][1] += x\n this.value[i][2] += y\n this.value[i][3] += x\n this.value[i][4] += y\n\n if (l === 'C') {\n this.value[i][5] += x\n this.value[i][6] += y\n }\n } else if (l === 'A') {\n this.value[i][6] += x\n this.value[i][7] += y\n }\n }\n }\n\n return this\n },\n // Resize path string\n size: function (width, height) {\n // get bounding box of current situation\n var box = this.bbox()\n var i, l\n\n // recalculate position of all points according to new size\n for (i = this.value.length - 1; i >= 0; i--) {\n l = this.value[i][0]\n\n if (l === 'M' || l === 'L' || l === 'T') {\n this.value[i][1] = ((this.value[i][1] - box.x) * width) / box.width + box.x\n this.value[i][2] = ((this.value[i][2] - box.y) * height) / box.height + box.y\n } else if (l === 'H') {\n this.value[i][1] = ((this.value[i][1] - box.x) * width) / box.width + box.x\n } else if (l === 'V') {\n this.value[i][1] = ((this.value[i][1] - box.y) * height) / box.height + box.y\n } else if (l === 'C' || l === 'S' || l === 'Q') {\n this.value[i][1] = ((this.value[i][1] - box.x) * width) / box.width + box.x\n this.value[i][2] = ((this.value[i][2] - box.y) * height) / box.height + box.y\n this.value[i][3] = ((this.value[i][3] - box.x) * width) / box.width + box.x\n this.value[i][4] = ((this.value[i][4] - box.y) * height) / box.height + box.y\n\n if (l === 'C') {\n this.value[i][5] = ((this.value[i][5] - box.x) * width) / box.width + box.x\n this.value[i][6] = ((this.value[i][6] - box.y) * height) / box.height + box.y\n }\n } else if (l === 'A') {\n // resize radii\n this.value[i][1] = (this.value[i][1] * width) / box.width\n this.value[i][2] = (this.value[i][2] * height) / box.height\n\n // move position values\n this.value[i][6] = ((this.value[i][6] - box.x) * width) / box.width + box.x\n this.value[i][7] = ((this.value[i][7] - box.y) * height) / box.height + box.y\n }\n }\n\n return this\n },\n // Test if the passed path array use the same path data commands as this path array\n equalCommands: function (pathArray) {\n var i, il, equalCommands\n\n pathArray = new SVG.PathArray(pathArray)\n\n equalCommands = this.value.length === pathArray.value.length\n for (i = 0, il = this.value.length; equalCommands && i < il; i++) {\n equalCommands = this.value[i][0] === pathArray.value[i][0]\n }\n\n return equalCommands\n },\n // Make path array morphable\n morph: function (pathArray) {\n pathArray = new SVG.PathArray(pathArray)\n\n if (this.equalCommands(pathArray)) {\n this.destination = pathArray\n } else {\n this.destination = null\n }\n\n return this\n },\n // Get morphed path array at given position\n at: function (pos) {\n // make sure a destination is defined\n if (!this.destination) return this\n\n var sourceArray = this.value\n var destinationArray = this.destination.value\n var array = []\n var pathArray = new SVG.PathArray()\n var i, il, j, jl\n\n // Animate has specified in the SVG spec\n // See: https://www.w3.org/TR/SVG11/paths.html#PathElement\n for (i = 0, il = sourceArray.length; i < il; i++) {\n array[i] = [sourceArray[i][0]]\n for (j = 1, jl = sourceArray[i].length; j < jl; j++) {\n array[i][j] = sourceArray[i][j] + (destinationArray[i][j] - sourceArray[i][j]) * pos\n }\n // For the two flags of the elliptical arc command, the SVG spec say:\n // Flags and booleans are interpolated as fractions between zero and one, with any non-zero value considered to be a value of one/true\n // Elliptical arc command as an array followed by corresponding indexes:\n // ['A', rx, ry, x-axis-rotation, large-arc-flag, sweep-flag, x, y]\n // 0 1 2 3 4 5 6 7\n if (array[i][0] === 'A') {\n array[i][4] = +(array[i][4] !== 0)\n array[i][5] = +(array[i][5] !== 0)\n }\n }\n\n // Directly modify the value of a path array, this is done this way for performance\n pathArray.value = array\n return pathArray\n },\n // Absolutize and parse path to array\n parse: function (array) {\n // if it's already a patharray, no need to parse it\n if (array instanceof SVG.PathArray) return array.valueOf()\n\n // prepare for parsing\n var s\n var paramCnt = { 'M': 2, 'L': 2, 'H': 1, 'V': 1, 'C': 6, 'S': 4, 'Q': 4, 'T': 2, 'A': 7, 'Z': 0 }\n\n if (typeof array === 'string') {\n array = array\n .replace(SVG.regex.numbersWithDots, pathRegReplace) // convert 45.123.123 to 45.123 .123\n .replace(SVG.regex.pathLetters, ' $& ') // put some room between letters and numbers\n .replace(SVG.regex.hyphen, '$1 -') // add space before hyphen\n .trim() // trim\n .split(SVG.regex.delimiter) // split into array\n } else {\n array = array.reduce(function (prev, curr) {\n return [].concat.call(prev, curr)\n }, [])\n }\n\n // array now is an array containing all parts of a path e.g. ['M', '0', '0', 'L', '30', '30' ...]\n var result = []\n var p = new SVG.Point()\n var p0 = new SVG.Point()\n var index = 0\n var len = array.length\n\n do {\n // Test if we have a path letter\n if (SVG.regex.isPathLetter.test(array[index])) {\n s = array[index]\n ++index\n // If last letter was a move command and we got no new, it defaults to [L]ine\n } else if (s === 'M') {\n s = 'L'\n } else if (s === 'm') {\n s = 'l'\n }\n\n result.push(pathHandlers[s].call(null,\n array.slice(index, (index = index + paramCnt[s.toUpperCase()])).map(parseFloat),\n p, p0\n )\n )\n } while (len > index)\n\n return result\n },\n // Get bounding box of path\n bbox: function () {\n SVG.parser().path.setAttribute('d', this.toString())\n return SVG.parser.nodes.path.getBBox()\n }\n\n})\n","\n// Module for unit convertions\nSVG.Number = SVG.invent({\n // Initialize\n create: function (value, unit) {\n unit = Array.isArray(value) ? value[1] : unit\n value = Array.isArray(value) ? value[0] : value\n\n // initialize defaults\n this.value = 0\n this.unit = unit || ''\n\n // parse value\n if (typeof value === 'number') {\n // ensure a valid numeric value\n this.value = isNaN(value) ? 0 : !isFinite(value) ? (value < 0 ? -3.4e+38 : +3.4e+38) : value\n } else if (typeof value === 'string') {\n unit = value.match(SVG.regex.numberAndUnit)\n\n if (unit) {\n // make value numeric\n this.value = parseFloat(unit[1])\n\n // normalize\n if (unit[5] === '%') { this.value /= 100 } else if (unit[5] === 's') {\n this.value *= 1000\n }\n\n // store unit\n this.unit = unit[5]\n }\n } else {\n if (value instanceof SVG.Number) {\n this.value = value.valueOf()\n this.unit = value.unit\n }\n }\n },\n // Add methods\n extend: {\n // Stringalize\n toString: function () {\n return (this.unit === '%' ? ~~(this.value * 1e8) / 1e6\n : this.unit === 's' ? this.value / 1e3\n : this.value\n ) + this.unit\n },\n toJSON: function () {\n return this.toString()\n }, // Convert to primitive\n toArray: function () {\n return [this.value, this.unit]\n },\n valueOf: function () {\n return this.value\n },\n // Add number\n plus: function (number) {\n number = new SVG.Number(number)\n return new SVG.Number(this + number, this.unit || number.unit)\n },\n // Subtract number\n minus: function (number) {\n number = new SVG.Number(number)\n return new SVG.Number(this - number, this.unit || number.unit)\n },\n // Multiply number\n times: function (number) {\n number = new SVG.Number(number)\n return new SVG.Number(this * number, this.unit || number.unit)\n },\n // Divide number\n divide: function (number) {\n number = new SVG.Number(number)\n return new SVG.Number(this / number, this.unit || number.unit)\n },\n // Make number morphable\n morph: function (number) {\n this.destination = new SVG.Number(number)\n\n if (number.relative) {\n this.destination.value += this.value\n }\n\n return this\n },\n // Get morphed number at given position\n at: function (pos) {\n // Make sure a destination is defined\n if (!this.destination) return this\n\n // Generate new morphed number\n return new SVG.Number(this.destination)\n .minus(this)\n .times(pos)\n .plus(this)\n }\n }\n})\n","SVG.EventTarget = SVG.invent({\n create: function () {},\n extend: {\n // Bind given event to listener\n on: function (event, listener, binding, options) {\n SVG.on(this, event, listener, binding, options)\n return this\n },\n // Unbind event from listener\n off: function (event, listener) {\n SVG.off(this, event, listener)\n return this\n },\n dispatch: function (event, data) {\n return SVG.dispatch(this, event, data)\n },\n // Fire given event\n fire: function (event, data) {\n this.dispatch(event, data)\n return this\n }\n }\n})\n","/* global createElement */\n\nSVG.HtmlNode = SVG.invent({\n inherit: SVG.EventTarget,\n create: function (element) {\n this.node = element\n },\n\n extend: {\n add: function (element, i) {\n element = createElement(element)\n\n if (element.node !== this.node.children[i]) {\n this.node.insertBefore(element.node, this.node.children[i] || null)\n }\n\n return this\n },\n\n put: function (element, i) {\n this.add(element, i)\n return element\n },\n\n getEventTarget: function () {\n return this.node\n }\n }\n})\n","/* global proportionalSize, assignNewId, createElement, matches, is */\n\nSVG.Element = SVG.invent({\n inherit: SVG.EventTarget,\n\n // Initialize node\n create: function (node) {\n // event listener\n this.events = {}\n\n // initialize data object\n this.dom = {}\n\n // create circular reference\n this.node = node\n if (this.node) {\n this.type = node.nodeName\n this.node.instance = this\n this.events = node.events || {}\n\n if (node.hasAttribute('svgjs:data')) {\n // pull svgjs data from the dom (getAttributeNS doesn't work in html5)\n this.setData(JSON.parse(node.getAttribute('svgjs:data')) || {})\n }\n }\n },\n\n // Add class methods\n extend: {\n // Move over x-axis\n x: function (x) {\n return this.attr('x', x)\n },\n\n // Move over y-axis\n y: function (y) {\n return this.attr('y', y)\n },\n\n // Move by center over x-axis\n cx: function (x) {\n return x == null ? this.x() + this.width() / 2 : this.x(x - this.width() / 2)\n },\n\n // Move by center over y-axis\n cy: function (y) {\n return y == null\n ? this.y() + this.height() / 2\n : this.y(y - this.height() / 2)\n },\n\n // Move element to given x and y values\n move: function (x, y) {\n return this.x(x).y(y)\n },\n\n // Move element by its center\n center: function (x, y) {\n return this.cx(x).cy(y)\n },\n\n // Set width of element\n width: function (width) {\n return this.attr('width', width)\n },\n\n // Set height of element\n height: function (height) {\n return this.attr('height', height)\n },\n\n // Set element size to given width and height\n size: function (width, height) {\n var p = proportionalSize(this, width, height)\n\n return this\n .width(new SVG.Number(p.width))\n .height(new SVG.Number(p.height))\n },\n\n // Clone element\n clone: function (parent) {\n // write dom data to the dom so the clone can pickup the data\n this.writeDataToDom()\n\n // clone element and assign new id\n var clone = assignNewId(this.node.cloneNode(true))\n\n // insert the clone in the given parent or after myself\n if (parent) parent.add(clone)\n else this.after(clone)\n\n return clone\n },\n\n // Remove element\n remove: function () {\n if (this.parent()) { this.parent().removeElement(this) }\n\n return this\n },\n\n // Replace element\n replace: function (element) {\n this.after(element).remove()\n\n return element\n },\n\n // Add element to given container and return self\n addTo: function (parent) {\n return createElement(parent).put(this)\n },\n\n // Add element to given container and return container\n putIn: function (parent) {\n return createElement(parent).add(this)\n },\n\n // Get / set id\n id: function (id) {\n // generate new id if no id set\n if (typeof id === 'undefined' && !this.node.id) {\n this.node.id = SVG.eid(this.type)\n }\n\n // dont't set directly width this.node.id to make `null` work correctly\n return this.attr('id', id)\n },\n\n // Checks whether the given point inside the bounding box of the element\n inside: function (x, y) {\n var box = this.bbox()\n\n return x > box.x &&\n y > box.y &&\n x < box.x + box.width &&\n y < box.y + box.height\n },\n\n // Show element\n show: function () {\n return this.css('display', '')\n },\n\n // Hide element\n hide: function () {\n return this.css('display', 'none')\n },\n\n // Is element visible?\n visible: function () {\n return this.css('display') !== 'none'\n },\n\n // Return id on string conversion\n toString: function () {\n return this.id()\n },\n\n // Return array of classes on the node\n classes: function () {\n var attr = this.attr('class')\n return attr == null ? [] : attr.trim().split(SVG.regex.delimiter)\n },\n\n // Return true if class exists on the node, false otherwise\n hasClass: function (name) {\n return this.classes().indexOf(name) !== -1\n },\n\n // Add class to the node\n addClass: function (name) {\n if (!this.hasClass(name)) {\n var array = this.classes()\n array.push(name)\n this.attr('class', array.join(' '))\n }\n\n return this\n },\n\n // Remove class from the node\n removeClass: function (name) {\n if (this.hasClass(name)) {\n this.attr('class', this.classes().filter(function (c) {\n return c !== name\n }).join(' '))\n }\n\n return this\n },\n\n // Toggle the presence of a class on the node\n toggleClass: function (name) {\n return this.hasClass(name) ? this.removeClass(name) : this.addClass(name)\n },\n\n // Get referenced element form attribute value\n reference: function (attr) {\n return SVG.get(this.attr(attr))\n },\n\n // Returns the parent element instance\n parent: function (type) {\n var parent = this\n\n // check for parent\n if (!parent.node.parentNode) return null\n\n // get parent element\n parent = SVG.adopt(parent.node.parentNode)\n\n if (!type) return parent\n\n // loop trough ancestors if type is given\n while (parent && parent.node instanceof window.SVGElement) {\n if (typeof type === 'string' ? parent.matches(type) : parent instanceof type) return parent\n parent = SVG.adopt(parent.node.parentNode)\n }\n },\n\n // Get parent document\n doc: function () {\n var p = this.parent(SVG.Doc)\n return p && p.doc()\n },\n\n // Get defs\n defs: function () {\n return this.doc().defs()\n },\n\n // return array of all ancestors of given type up to the root svg\n parents: function (type) {\n var parents = []\n var parent = this\n\n do {\n parent = parent.parent(type)\n if (!parent || !parent.node) break\n\n parents.push(parent)\n } while (parent.parent)\n\n return parents\n },\n\n // matches the element vs a css selector\n matches: function (selector) {\n return matches(this.node, selector)\n },\n\n // Returns the svg node to call native svg methods on it\n native: function () {\n return this.node\n },\n\n // Import raw svg\n svg: function (svg) {\n var well, len\n\n // act as a setter if svg is given\n if (typeof svg === 'string' && this instanceof SVG.Parent) {\n // create temporary holder\n well = document.createElementNS(SVG.ns, 'svg')\n // dump raw svg\n well.innerHTML = svg\n\n // transplant nodes\n for (len = well.children.length; len--;) {\n this.node.appendChild(well.firstElementChild)\n }\n // otherwise act as a getter\n } else {\n // expose node modifiers\n if (typeof svg === 'function') {\n this.each(function () {\n well = svg(this)\n\n if (well instanceof SVG.Element) {\n this.replace(well)\n }\n\n if (typeof well === 'boolean' && !well) {\n this.remove()\n }\n })\n }\n\n // write svgjs data to the dom\n this.writeDataToDom()\n\n return this.node.outerHTML\n }\n\n return this\n },\n\n // write svgjs data to the dom\n writeDataToDom: function () {\n // dump variables recursively\n if (this.is(SVG.Parent)) {\n this.each(function () {\n this.writeDataToDom()\n })\n }\n\n // remove previously set data\n this.node.removeAttribute('svgjs:data')\n\n if (Object.keys(this.dom).length) {\n this.node.setAttribute('svgjs:data', JSON.stringify(this.dom)) // see #428\n }\n return this\n },\n\n // set given data to the elements data property\n setData: function (o) {\n this.dom = o\n return this\n },\n is: function (obj) {\n return is(this, obj)\n },\n getEventTarget: function () {\n return this.node\n }\n }\n})\n","// Add events to elements\n;[ 'click',\n 'dblclick',\n 'mousedown',\n 'mouseup',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'mouseenter',\n 'mouseleave',\n 'touchstart',\n 'touchmove',\n 'touchleave',\n 'touchend',\n 'touchcancel' ].forEach(function (event) {\n // add event to SVG.Element\n SVG.Element.prototype[event] = function (f) {\n if (f === null) {\n SVG.off(this, event)\n } else {\n SVG.on(this, event, f)\n }\n return this\n }\n })\n\nSVG.listenerId = 0\n\n// Add event binder in the SVG namespace\nSVG.on = function (node, events, listener, binding, options) {\n var l = listener.bind(binding || node)\n var n = node instanceof SVG.EventTarget ? node.getEventTarget() : node\n\n // events can be an array of events or a string of events\n events = Array.isArray(events) ? events : events.split(SVG.regex.delimiter)\n\n // ensure instance object for nodes which are not adopted\n n.instance = n.instance || {events: {}}\n\n // pull event handlers from the element\n var bag = n.instance.events\n\n // add id to listener\n if (!listener._svgjsListenerId) {\n listener._svgjsListenerId = ++SVG.listenerId\n }\n\n events.forEach(function (event) {\n var ev = event.split('.')[0]\n var ns = event.split('.')[1] || '*'\n\n // ensure valid object\n bag[ev] = bag[ev] || {}\n bag[ev][ns] = bag[ev][ns] || {}\n\n // reference listener\n bag[ev][ns][listener._svgjsListenerId] = l\n\n // add listener\n n.addEventListener(ev, l, options || false)\n })\n}\n\n// Add event unbinder in the SVG namespace\nSVG.off = function (node, events, listener, options) {\n var n = node instanceof SVG.EventTarget ? node.getEventTarget() : node\n if (!n.instance) return\n\n // listener can be a function or a number\n if (typeof listener === 'function') {\n listener = listener._svgjsListenerId\n if (!listener) return\n }\n\n // pull event handlers from the element\n var bag = n.instance.events\n\n // events can be an array of events or a string or undefined\n events = Array.isArray(events) ? events : (events || '').split(SVG.regex.delimiter)\n\n events.forEach(function (event) {\n var ev = event && event.split('.')[0]\n var ns = event && event.split('.')[1]\n var namespace, l\n\n if (listener) {\n // remove listener reference\n if (bag[ev] && bag[ev][ns || '*']) {\n // removeListener\n n.removeEventListener(ev, bag[ev][ns || '*'][listener], options || false)\n\n delete bag[ev][ns || '*'][listener]\n }\n } else if (ev && ns) {\n // remove all listeners for a namespaced event\n if (bag[ev] && bag[ev][ns]) {\n for (l in bag[ev][ns]) { SVG.off(n, [ev, ns].join('.'), l) }\n\n delete bag[ev][ns]\n }\n } else if (ns) {\n // remove all listeners for a specific namespace\n for (event in bag) {\n for (namespace in bag[event]) {\n if (ns === namespace) { SVG.off(n, [event, ns].join('.')) }\n }\n }\n } else if (ev) {\n // remove all listeners for the event\n if (bag[ev]) {\n for (namespace in bag[ev]) { SVG.off(n, [ev, namespace].join('.')) }\n\n delete bag[ev]\n }\n } else {\n // remove all listeners on a given node\n for (event in bag) { SVG.off(n, event) }\n\n n.instance.events = {}\n }\n })\n}\n\nSVG.dispatch = function (node, event, data) {\n var n = node instanceof SVG.EventTarget ? node.getEventTarget() : node\n\n // Dispatch event\n if (event instanceof window.Event) {\n n.dispatchEvent(event)\n } else {\n event = new window.CustomEvent(event, {detail: data, cancelable: true})\n n.dispatchEvent(event)\n }\n return event\n}\n","/* global abcdef arrayToMatrix closeEnough formatTransforms isMatrixLike matrixMultiply */\n\nSVG.Matrix = SVG.invent({\n // Initialize\n create: function (source) {\n var base = arrayToMatrix([1, 0, 0, 1, 0, 0])\n\n // ensure source as object\n source = source instanceof SVG.Element ? source.matrixify()\n : typeof source === 'string' ? arrayToMatrix(source.split(SVG.regex.delimiter).map(parseFloat))\n : Array.isArray(source) ? arrayToMatrix(source)\n : (typeof source === 'object' && isMatrixLike(source)) ? source\n : (typeof source === 'object') ? new SVG.Matrix().transform(source)\n : arguments.length === 6 ? arrayToMatrix([].slice.call(arguments))\n : base\n\n // Merge the source matrix with the base matrix\n this.a = source.a != null ? source.a : base.a\n this.b = source.b != null ? source.b : base.b\n this.c = source.c != null ? source.c : base.c\n this.d = source.d != null ? source.d : base.d\n this.e = source.e != null ? source.e : base.e\n this.f = source.f != null ? source.f : base.f\n },\n\n // Add methods\n extend: {\n\n // Clones this matrix\n clone: function () {\n return new SVG.Matrix(this)\n },\n\n // Transform a matrix into another matrix by manipulating the space\n transform: function (o) {\n // Check if o is a matrix and then left multiply it directly\n if (isMatrixLike(o)) {\n var matrix = new SVG.Matrix(o)\n return matrix.multiplyO(this)\n }\n\n // Get the proposed transformations and the current transformations\n var t = formatTransforms(o)\n var current = this\n let { x: ox, y: oy } = new SVG.Point(t.ox, t.oy).transform(current)\n\n // Construct the resulting matrix\n var transformer = new SVG.Matrix()\n .translateO(t.rx, t.ry)\n .lmultiplyO(current)\n .translateO(-ox, -oy)\n .scaleO(t.scaleX, t.scaleY)\n .skewO(t.skewX, t.skewY)\n .shearO(t.shear)\n .rotateO(t.theta)\n .translateO(ox, oy)\n\n // If we want the origin at a particular place, we force it there\n if (isFinite(t.px) || isFinite(t.py)) {\n const origin = new SVG.Point(ox, oy).transform(transformer)\n // TODO: Replace t.px with isFinite(t.px)\n const dx = t.px ? t.px - origin.x : 0\n const dy = t.py ? t.py - origin.y : 0\n transformer.translateO(dx, dy)\n }\n\n // Translate now after positioning\n transformer.translateO(t.tx, t.ty)\n return transformer\n },\n\n // Applies a matrix defined by its affine parameters\n compose: function (o) {\n if (o.origin) {\n o.originX = o.origin[0]\n o.originY = o.origin[1]\n }\n // Get the parameters\n var ox = o.originX || 0\n var oy = o.originY || 0\n var sx = o.scaleX || 1\n var sy = o.scaleY || 1\n var lam = o.shear || 0\n var theta = o.rotate || 0\n var tx = o.translateX || 0\n var ty = o.translateY || 0\n\n // Apply the standard matrix\n var result = new SVG.Matrix()\n .translateO(-ox, -oy)\n .scaleO(sx, sy)\n .shearO(lam)\n .rotateO(theta)\n .translateO(tx, ty)\n .lmultiplyO(this)\n .translateO(ox, oy)\n return result\n },\n\n // Decomposes this matrix into its affine parameters\n decompose: function (cx = 0, cy = 0) {\n // Get the parameters from the matrix\n var a = this.a\n var b = this.b\n var c = this.c\n var d = this.d\n var e = this.e\n var f = this.f\n\n // Figure out if the winding direction is clockwise or counterclockwise\n var determinant = a * d - b * c\n var ccw = determinant > 0 ? 1 : -1\n\n // Since we only shear in x, we can use the x basis to get the x scale\n // and the rotation of the resulting matrix\n var sx = ccw * Math.sqrt(a * a + b * b)\n var thetaRad = Math.atan2(ccw * b, ccw * a)\n var theta = 180 / Math.PI * thetaRad\n var ct = Math.cos(thetaRad)\n var st = Math.sin(thetaRad)\n\n // We can then solve the y basis vector simultaneously to get the other\n // two affine parameters directly from these parameters\n var lam = (a * c + b * d) / determinant\n var sy = ((c * sx) / (lam * a - b)) || ((d * sx) / (lam * b + a))\n\n // Use the translations\n let tx = e - cx + cx * ct * sx + cy * (lam * ct * sx - st * sy)\n let ty = f - cy + cx * st * sx + cy * (lam * st * sx + ct * sy)\n\n // Construct the decomposition and return it\n return {\n // Return the affine parameters\n scaleX: sx,\n scaleY: sy,\n shear: lam,\n rotate: theta,\n translateX: tx,\n translateY: ty,\n originX: cx,\n originY: cy,\n\n // Return the matrix parameters\n a: this.a,\n b: this.b,\n c: this.c,\n d: this.d,\n e: this.e,\n f: this.f\n }\n },\n\n // Morph one matrix into another\n morph: function (matrix) {\n // Store new destination\n this.destination = new SVG.Matrix(matrix)\n return this\n },\n\n // Get morphed matrix at a given position\n at: function (pos) {\n // Make sure a destination is defined\n if (!this.destination) return this\n\n // Calculate morphed matrix at a given position\n var matrix = new SVG.Matrix({\n a: this.a + (this.destination.a - this.a) * pos,\n b: this.b + (this.destination.b - this.b) * pos,\n c: this.c + (this.destination.c - this.c) * pos,\n d: this.d + (this.destination.d - this.d) * pos,\n e: this.e + (this.destination.e - this.e) * pos,\n f: this.f + (this.destination.f - this.f) * pos\n })\n\n return matrix\n },\n\n // Left multiplies by the given matrix\n multiply: function (matrix) {\n return this.clone().multiplyO(matrix)\n },\n\n multiplyO: function (matrix) {\n // Get the matrices\n var l = this\n var r = matrix instanceof SVG.Matrix\n ? matrix\n : new SVG.Matrix(matrix)\n\n return matrixMultiply(l, r, this)\n },\n\n lmultiply: function (matrix) {\n return this.clone().lmultiplyO(matrix)\n },\n\n lmultiplyO: function (matrix) {\n var r = this\n var l = matrix instanceof SVG.Matrix\n ? matrix\n : new SVG.Matrix(matrix)\n\n return matrixMultiply(l, r, this)\n },\n\n // Inverses matrix\n inverseO: function () {\n // Get the current parameters out of the matrix\n var a = this.a\n var b = this.b\n var c = this.c\n var d = this.d\n var e = this.e\n var f = this.f\n\n // Invert the 2x2 matrix in the top left\n var det = a * d - b * c\n if (!det) throw new Error('Cannot invert ' + this)\n\n // Calculate the top 2x2 matrix\n var na = d / det\n var nb = -b / det\n var nc = -c / det\n var nd = a / det\n\n // Apply the inverted matrix to the top right\n var ne = -(na * e + nc * f)\n var nf = -(nb * e + nd * f)\n\n // Construct the inverted matrix\n this.a = na\n this.b = nb\n this.c = nc\n this.d = nd\n this.e = ne\n this.f = nf\n\n return this\n },\n\n inverse: function () {\n return this.clone().inverseO()\n },\n\n // Translate matrix\n translate: function (x, y) {\n return this.clone().translateO(x, y)\n },\n\n translateO: function (x, y) {\n this.e += x || 0\n this.f += y || 0\n return this\n },\n\n // Scale matrix\n scale: function (x, y, cx, cy) {\n return this.clone().scaleO(...arguments)\n },\n\n scaleO: function (x, y = x, cx = 0, cy = 0) {\n // Support uniform scaling\n if (arguments.length === 3) {\n cy = cx\n cx = y\n y = x\n }\n\n let {a, b, c, d, e, f} = this\n\n this.a = a * x\n this.b = b * y\n this.c = c * x\n this.d = d * y\n this.e = e * x - cx * x + cx\n this.f = f * y - cy * y + cy\n\n return this\n },\n\n // Rotate matrix\n rotate: function (r, cx, cy) {\n return this.clone().rotateO(r, cx, cy)\n },\n\n rotateO: function (r, cx = 0, cy = 0) {\n // Convert degrees to radians\n r = SVG.utils.radians(r)\n\n let cos = Math.cos(r)\n let sin = Math.sin(r)\n\n let {a, b, c, d, e, f} = this\n\n this.a = a * cos - b * sin\n this.b = b * cos + a * sin\n this.c = c * cos - d * sin\n this.d = d * cos + c * sin\n this.e = e * cos - f * sin + cy * sin - cx * cos + cx\n this.f = f * cos + e * sin - cx * sin - cy * cos + cy\n\n return this\n },\n\n // Flip matrix on x or y, at a given offset\n flip: function (axis, around) {\n return this.clone().flipO(axis, around)\n },\n\n flipO: function (axis, around) {\n return axis === 'x' ? this.scaleO(-1, 1, around, 0)\n : axis === 'y' ? this.scaleO(1, -1, 0, around)\n : this.scaleO(-1, -1, axis, around || axis) // Define an x, y flip point\n },\n\n // Shear matrix\n shear: function (a, cx, cy) {\n return this.clone().shearO(a, cx, cy)\n },\n\n shearO: function (lx, cx = 0, cy = 0) {\n let {a, b, c, d, e, f} = this\n\n this.a = a + b * lx\n this.c = c + d * lx\n this.e = e + f * lx - cy * lx\n\n return this\n },\n\n // Skew Matrix\n skew: function (x, y, cx, cy) {\n return this.clone().skewO(...arguments)\n },\n\n skewO: function (x, y = x, cx = 0, cy = 0) {\n // support uniformal skew\n if (arguments.length === 3) {\n cy = cx\n cx = y\n y = x\n }\n\n // Convert degrees to radians\n x = SVG.utils.radians(x)\n y = SVG.utils.radians(y)\n\n let lx = Math.tan(x)\n let ly = Math.tan(y)\n\n let {a, b, c, d, e, f} = this\n\n this.a = a + b * lx\n this.b = b + a * ly\n this.c = c + d * lx\n this.d = d + c * ly\n this.e = e + f * lx - cy * lx\n this.f = f + e * ly - cx * ly\n\n return this\n },\n\n // SkewX\n skewX: function (x, cx, cy) {\n return this.skew(x, 0, cx, cy)\n },\n\n skewXO: function (x, cx, cy) {\n return this.skewO(x, 0, cx, cy)\n },\n\n // SkewY\n skewY: function (y, cx, cy) {\n return this.skew(0, y, cx, cy)\n },\n\n skewYO: function (y, cx, cy) {\n return this.skewO(0, y, cx, cy)\n },\n\n // Transform around a center point\n aroundO: function (cx, cy, matrix) {\n var dx = cx || 0\n var dy = cy || 0\n return this.translateO(-dx, -dy).lmultiplyO(matrix).translateO(dx, dy)\n },\n\n around: function (cx, cy, matrix) {\n return this.clone().aroundO(cx, cy, matrix)\n },\n\n // Convert to native SVGMatrix\n native: function () {\n // create new matrix\n var matrix = SVG.parser.nodes.svg.node.createSVGMatrix()\n\n // update with current values\n for (var i = abcdef.length - 1; i >= 0; i--) {\n matrix[abcdef[i]] = this[abcdef[i]]\n }\n\n return matrix\n },\n\n // Check if two matrices are equal\n equals: function (other) {\n var comp = new SVG.Matrix(other)\n return closeEnough(this.a, comp.a) && closeEnough(this.b, comp.b) &&\n closeEnough(this.c, comp.c) && closeEnough(this.d, comp.d) &&\n closeEnough(this.e, comp.e) && closeEnough(this.f, comp.f)\n },\n\n // Convert matrix to string\n toString: function () {\n return 'matrix(' + this.a + ',' + this.b + ',' + this.c + ',' + this.d + ',' + this.e + ',' + this.f + ')'\n },\n\n toArray: function () {\n return [this.a, this.b, this.c, this.d, this.e, this.f]\n },\n\n valueOf: function () {\n return {\n a: this.a,\n b: this.b,\n c: this.c,\n d: this.d,\n e: this.e,\n f: this.f\n }\n }\n },\n\n // Define parent\n parent: SVG.Element,\n\n // Add parent method\n construct: {\n // Get current matrix\n ctm: function () {\n return new SVG.Matrix(this.node.getCTM())\n },\n // Get current screen matrix\n screenCTM: function () {\n /* https://bugzilla.mozilla.org/show_bug.cgi?id=1344537\n This is needed because FF does not return the transformation matrix\n for the inner coordinate system when getScreenCTM() is called on nested svgs.\n However all other Browsers do that */\n if (this instanceof SVG.Doc && !this.isRoot()) {\n var rect = this.rect(1, 1)\n var m = rect.node.getScreenCTM()\n rect.remove()\n return new SVG.Matrix(m)\n }\n return new SVG.Matrix(this.node.getScreenCTM())\n }\n }\n})\n\n// let extensions = {}\n// ['rotate'].forEach((method) => {\n// let methodO = method + 'O'\n// extensions[method] = function (...args) {\n// return new SVG.Matrix(this)[methodO](...args)\n// }\n// })\n//\n// SVG.extend(SVG.Matrix, extensions)\n\n// function matrixMultiplyParams (matrix, a, b, c, d, e, f) {\n// return matrixMultiply({a, b, c, d, e, f}, matrix, matrix)\n// }\n","\nSVG.Point = SVG.invent({\n // Initialize\n create: function (x, y, base) {\n var source\n base = base || {x: 0, y: 0}\n\n // ensure source as object\n source = Array.isArray(x) ? {x: x[0], y: x[1]}\n : typeof x === 'object' ? {x: x.x, y: x.y}\n : {x: x, y: y}\n\n // merge source\n this.x = source.x == null ? base.x : source.x\n this.y = source.y == null ? base.y : source.y\n },\n\n // Add methods\n extend: {\n // Clone point\n clone: function () {\n return new SVG.Point(this)\n },\n\n // Morph one point into another\n morph: function (x, y) {\n // store new destination\n this.destination = new SVG.Point(x, y)\n return this\n },\n\n // Get morphed point at a given position\n at: function (pos) {\n // make sure a destination is defined\n if (!this.destination) return this\n\n // calculate morphed matrix at a given position\n var point = new SVG.Point({\n x: this.x + (this.destination.x - this.x) * pos,\n y: this.y + (this.destination.y - this.y) * pos\n })\n return point\n },\n\n // Convert to native SVGPoint\n native: function () {\n // create new point\n var point = SVG.parser.nodes.svg.node.createSVGPoint()\n\n // update with current values\n point.x = this.x\n point.y = this.y\n return point\n },\n\n // transform point with matrix\n transform: function (m) {\n // Perform the matrix multiplication\n var x = m.a * this.x + m.c * this.y + m.e\n var y = m.b * this.x + m.d * this.y + m.f\n\n // Return the required point\n return new SVG.Point(x, y)\n }\n }\n})\n\nSVG.extend(SVG.Element, {\n\n // Get point\n point: function (x, y) {\n return new SVG.Point(x, y).transform(this.screenCTM().inverse())\n }\n})\n","SVG.extend(SVG.Element, {\n // Set svg element attribute\n attr: function (a, v, n) {\n // act as full getter\n if (a == null) {\n // get an object of attributes\n a = {}\n v = this.node.attributes\n for (n = v.length - 1; n >= 0; n--) {\n a[v[n].nodeName] = SVG.regex.isNumber.test(v[n].nodeValue)\n ? parseFloat(v[n].nodeValue)\n : v[n].nodeValue\n }\n return a\n } else if (typeof a === 'object') {\n // apply every attribute individually if an object is passed\n for (v in a) this.attr(v, a[v])\n } else if (v === null) {\n // remove value\n this.node.removeAttribute(a)\n } else if (v == null) {\n // act as a getter if the first and only argument is not an object\n v = this.node.getAttribute(a)\n return v == null ? SVG.defaults.attrs[a]\n : SVG.regex.isNumber.test(v) ? parseFloat(v)\n : v\n } else {\n // convert image fill and stroke to patterns\n if (a === 'fill' || a === 'stroke') {\n if (SVG.regex.isImage.test(v)) {\n v = this.doc().defs().image(v)\n }\n\n if (v instanceof SVG.Image) {\n v = this.doc().defs().pattern(0, 0, function () {\n this.add(v)\n })\n }\n }\n\n // ensure correct numeric values (also accepts NaN and Infinity)\n if (typeof v === 'number') {\n v = new SVG.Number(v)\n } else if (SVG.Color.isColor(v)) {\n // ensure full hex color\n v = new SVG.Color(v)\n } else if (Array.isArray(v)) {\n // parse array values\n v = new SVG.Array(v)\n }\n\n // if the passed attribute is leading...\n if (a === 'leading') {\n // ... call the leading method instead\n if (this.leading) {\n this.leading(v)\n }\n } else {\n // set given attribute on node\n typeof n === 'string' ? this.node.setAttributeNS(n, a, v.toString())\n : this.node.setAttribute(a, v.toString())\n }\n\n // rebuild if required\n if (this.rebuild && (a === 'font-size' || a === 'x')) {\n this.rebuild(a, v)\n }\n }\n\n return this\n }\n})\n","/* global arrayToMatrix getOrigin isMatrixLike */\n\nSVG.extend(SVG.Element, {\n // Reset all transformations\n untransform: function () {\n return this.attr('transform', null)\n },\n\n // merge the whole transformation chain into one matrix and returns it\n matrixify: function () {\n var matrix = (this.attr('transform') || '')\n // split transformations\n .split(SVG.regex.transforms).slice(0, -1).map(function (str) {\n // generate key => value pairs\n var kv = str.trim().split('(')\n return [kv[0],\n kv[1].split(SVG.regex.delimiter)\n .map(function (str) { return parseFloat(str) })\n ]\n })\n .reverse()\n // merge every transformation into one matrix\n .reduce(function (matrix, transform) {\n if (transform[0] === 'matrix') {\n return matrix.lmultiply(arrayToMatrix(transform[1]))\n }\n return matrix[transform[0]].apply(matrix, transform[1])\n }, new SVG.Matrix())\n\n return matrix\n },\n\n // add an element to another parent without changing the visual representation on the screen\n toParent: function (parent) {\n if (this === parent) return this\n var ctm = this.screenCTM()\n var pCtm = parent.screenCTM().inverse()\n\n this.addTo(parent).untransform().transform(pCtm.multiply(ctm))\n\n return this\n },\n\n // same as above with parent equals root-svg\n toDoc: function () {\n return this.toParent(this.doc())\n }\n})\n\nSVG.extend(SVG.Element, {\n\n // Add transformations\n transform: function (o, relative) {\n // Act as a getter if no object was passed\n if (o == null || typeof o === 'string') {\n var decomposed = new SVG.Matrix(this).decompose()\n return decomposed[o] || decomposed\n }\n\n if (!isMatrixLike(o)) {\n // Set the origin according to the defined transform\n o = {...o, origin: getOrigin(o, this)}\n }\n\n // The user can pass a boolean, an SVG.Element or an SVG.Matrix or nothing\n var cleanRelative = relative === true ? this : (relative || false)\n var result = new SVG.Matrix(cleanRelative).transform(o)\n return this.attr('transform', result)\n }\n})\n","/* global camelCase */\n\nSVG.extend(SVG.Element, {\n // Dynamic style generator\n css: function (s, v) {\n var ret = {}\n var t, i\n if (arguments.length === 0) {\n // get full style as object\n this.node.style.cssText.split(/\\s*;\\s*/).filter(function (el) { return !!el.length }).forEach(function (el) {\n t = el.split(/\\s*:\\s*/)\n ret[t[0]] = t[1]\n })\n return ret\n }\n\n if (arguments.length < 2) {\n // get style properties in the array\n if (Array.isArray(s)) {\n for (i = s.length; i--;) {\n ret[camelCase(s[i])] = this.node.style[camelCase(s[i])]\n }\n return ret\n }\n\n // get style for property\n if (typeof s === 'string') {\n return this.node.style[camelCase(s)]\n }\n\n // set styles in object\n if (typeof s === 'object') {\n for (i in s) {\n // set empty string if null/undefined/'' was given\n this.node.style[camelCase(i)] = (s[i] == null || SVG.regex.isBlank.test(s[i])) ? '' : s[i]\n }\n }\n }\n\n // set style for property\n if (arguments.length === 2) {\n this.node.style[camelCase(s)] = (v == null || SVG.regex.isBlank.test(v)) ? '' : v\n }\n\n return this\n }\n})\n","/* global createElement */\n\nSVG.Parent = SVG.invent({\n // Initialize node\n create: function (node) {\n SVG.Element.call(this, node)\n },\n\n // Inherit from\n inherit: SVG.Element,\n\n // Add class methods\n extend: {\n // Returns all child elements\n children: function () {\n return SVG.utils.map(this.node.children, function (node) {\n return SVG.adopt(node)\n })\n },\n // Add given element at a position\n add: function (element, i) {\n element = createElement(element)\n\n if (element.node !== this.node.children[i]) {\n this.node.insertBefore(element.node, this.node.children[i] || null)\n }\n\n return this\n },\n // Basically does the same as `add()` but returns the added element instead\n put: function (element, i) {\n this.add(element, i)\n return element.instance || element\n },\n // Checks if the given element is a child\n has: function (element) {\n return this.index(element) >= 0\n },\n // Gets index of given element\n index: function (element) {\n return [].slice.call(this.node.children).indexOf(element.node)\n },\n // Get a element at the given index\n get: function (i) {\n return SVG.adopt(this.node.children[i])\n },\n // Get first child\n first: function () {\n return this.get(0)\n },\n // Get the last child\n last: function () {\n return this.get(this.node.children.length - 1)\n },\n // Iterates over all children and invokes a given block\n each: function (block, deep) {\n var children = this.children()\n var i, il\n\n for (i = 0, il = children.length; i < il; i++) {\n if (children[i] instanceof SVG.Element) {\n block.apply(children[i], [i, children])\n }\n\n if (deep && (children[i] instanceof SVG.Parent)) {\n children[i].each(block, deep)\n }\n }\n\n return this\n },\n // Remove a given child\n removeElement: function (element) {\n this.node.removeChild(element.node)\n\n return this\n },\n // Remove all elements in this container\n clear: function () {\n // remove children\n while (this.node.hasChildNodes()) {\n this.node.removeChild(this.node.lastChild)\n }\n\n // remove defs reference\n delete this._defs\n\n return this\n }\n }\n\n})\n","SVG.extend(SVG.Parent, {\n flatten: function (parent) {\n // flattens is only possible for nested svgs and groups\n if (!(this instanceof SVG.G || this instanceof SVG.Doc)) {\n return this\n }\n\n parent = parent || (this instanceof SVG.Doc && this.isRoot() ? this : this.parent(SVG.Parent))\n\n this.each(function () {\n if (this instanceof SVG.Defs) return this\n if (this instanceof SVG.Parent) return this.flatten(parent)\n return this.toParent(parent)\n })\n\n // we need this so that SVG.Doc does not get removed\n this.node.firstElementChild || this.remove()\n\n return this\n },\n ungroup: function (parent) {\n // ungroup is only possible for nested svgs and groups\n if (!(this instanceof SVG.G || (this instanceof SVG.Doc && !this.isRoot()))) {\n return this\n }\n\n parent = parent || this.parent(SVG.Parent)\n\n this.each(function () {\n return this.toParent(parent)\n })\n\n // we need this so that SVG.Doc does not get removed\n this.remove()\n\n return this\n }\n})\n","SVG.Container = SVG.invent({\n // Initialize node\n create: function (node) {\n SVG.Element.call(this, node)\n },\n\n // Inherit from\n inherit: SVG.Parent\n})\n","SVG.Defs = SVG.invent({\n // Initialize node\n create: 'defs',\n\n // Inherit from\n inherit: SVG.Container\n})\n","SVG.G = SVG.invent({\n // Initialize node\n create: 'g',\n\n // Inherit from\n inherit: SVG.Container,\n\n // Add class methods\n extend: {\n },\n\n // Add parent method\n construct: {\n // Create a group element\n group: function () {\n return this.put(new SVG.G())\n }\n }\n})\n","// ### This module adds backward / forward functionality to elements.\n\n//\nSVG.extend(SVG.Element, {\n // Get all siblings, including myself\n siblings: function () {\n return this.parent().children()\n },\n\n // Get the curent position siblings\n position: function () {\n return this.parent().index(this)\n },\n\n // Get the next element (will return null if there is none)\n next: function () {\n return this.siblings()[this.position() + 1]\n },\n\n // Get the next element (will return null if there is none)\n prev: function () {\n return this.siblings()[this.position() - 1]\n },\n\n // Send given element one step forward\n forward: function () {\n var i = this.position() + 1\n var p = this.parent()\n\n // move node one step forward\n p.removeElement(this).add(this, i)\n\n // make sure defs node is always at the top\n if (p instanceof SVG.Doc) {\n p.node.appendChild(p.defs().node)\n }\n\n return this\n },\n\n // Send given element one step backward\n backward: function () {\n var i = this.position()\n\n if (i > 0) {\n this.parent().removeElement(this).add(this, i - 1)\n }\n\n return this\n },\n\n // Send given element all the way to the front\n front: function () {\n var p = this.parent()\n\n // Move node forward\n p.node.appendChild(this.node)\n\n // Make sure defs node is always at the top\n if (p instanceof SVG.Doc) {\n p.node.appendChild(p.defs().node)\n }\n\n return this\n },\n\n // Send given element all the way to the back\n back: function () {\n if (this.position() > 0) {\n this.parent().removeElement(this).add(this, 0)\n }\n\n return this\n },\n\n // Inserts a given element before the targeted element\n before: function (element) {\n element.remove()\n\n var i = this.position()\n\n this.parent().add(element, i)\n\n return this\n },\n\n // Insters a given element after the targeted element\n after: function (element) {\n element.remove()\n\n var i = this.position()\n\n this.parent().add(element, i + 1)\n\n return this\n }\n})\n","SVG.Mask = SVG.invent({\n // Initialize node\n create: 'mask',\n\n // Inherit from\n inherit: SVG.Container,\n\n // Add class methods\n extend: {\n // Unmask all masked elements and remove itself\n remove: function () {\n // unmask all targets\n this.targets().forEach(function (el) {\n el.unmask()\n })\n\n // remove mask from parent\n return SVG.Element.prototype.remove.call(this)\n },\n\n targets: function () {\n return SVG.select('svg [mask*=\"' + this.id() + '\"]')\n }\n },\n\n // Add parent method\n construct: {\n // Create masking element\n mask: function () {\n return this.defs().put(new SVG.Mask())\n }\n }\n})\n\nSVG.extend(SVG.Element, {\n // Distribute mask to svg element\n maskWith: function (element) {\n // use given mask or create a new one\n var masker = element instanceof SVG.Mask ? element : this.parent().mask().add(element)\n\n // apply mask\n return this.attr('mask', 'url(\"#' + masker.id() + '\")')\n },\n // Unmask element\n unmask: function () {\n return this.attr('mask', null)\n },\n masker: function () {\n return this.reference('mask')\n }\n})\n","SVG.ClipPath = SVG.invent({\n // Initialize node\n create: 'clipPath',\n\n // Inherit from\n inherit: SVG.Container,\n\n // Add class methods\n extend: {\n // Unclip all clipped elements and remove itself\n remove: function () {\n // unclip all targets\n this.targets().forEach(function (el) {\n el.unclip()\n })\n\n // remove clipPath from parent\n return SVG.Element.prototype.remove.call(this)\n },\n\n targets: function () {\n return SVG.select('svg [clip-path*=\"' + this.id() + '\"]')\n }\n },\n\n // Add parent method\n construct: {\n // Create clipping element\n clip: function () {\n return this.defs().put(new SVG.ClipPath())\n }\n }\n})\n\n//\nSVG.extend(SVG.Element, {\n // Distribute clipPath to svg element\n clipWith: function (element) {\n // use given clip or create a new one\n var clipper = element instanceof SVG.ClipPath ? element : this.parent().clip().add(element)\n\n // apply mask\n return this.attr('clip-path', 'url(\"#' + clipper.id() + '\")')\n },\n // Unclip element\n unclip: function () {\n return this.attr('clip-path', null)\n },\n clipper: function () {\n return this.reference('clip-path')\n }\n\n})\n","SVG.Gradient = SVG.invent({\n // Initialize node\n create: function (type) {\n SVG.Element.call(this, typeof type === 'object' ? type : SVG.create(type + 'Gradient'))\n },\n\n // Inherit from\n inherit: SVG.Container,\n\n // Add class methods\n extend: {\n // Add a color stop\n stop: function (offset, color, opacity) {\n return this.put(new SVG.Stop()).update(offset, color, opacity)\n },\n // Update gradient\n update: function (block) {\n // remove all stops\n this.clear()\n\n // invoke passed block\n if (typeof block === 'function') {\n block.call(this, this)\n }\n\n return this\n },\n // Return the fill id\n url: function () {\n return 'url(#' + this.id() + ')'\n },\n // Alias string convertion to fill\n toString: function () {\n return this.url()\n },\n // custom attr to handle transform\n attr: function (a, b, c) {\n if (a === 'transform') a = 'gradientTransform'\n return SVG.Container.prototype.attr.call(this, a, b, c)\n }\n },\n\n // Add parent method\n construct: {\n // Create gradient element in defs\n gradient: function (type, block) {\n return this.defs().gradient(type, block)\n }\n }\n})\n\n// Add animatable methods to both gradient and fx module\nSVG.extend([SVG.Gradient, SVG.Timeline], {\n // From position\n from: function (x, y) {\n return (this._target || this).type === 'radialGradient'\n ? this.attr({ fx: new SVG.Number(x), fy: new SVG.Number(y) })\n : this.attr({ x1: new SVG.Number(x), y1: new SVG.Number(y) })\n },\n // To position\n to: function (x, y) {\n return (this._target || this).type === 'radialGradient'\n ? this.attr({ cx: new SVG.Number(x), cy: new SVG.Number(y) })\n : this.attr({ x2: new SVG.Number(x), y2: new SVG.Number(y) })\n }\n})\n\n// Base gradient generation\nSVG.extend(SVG.Defs, {\n // define gradient\n gradient: function (type, block) {\n return this.put(new SVG.Gradient(type)).update(block)\n }\n\n})\n\nSVG.Stop = SVG.invent({\n // Initialize node\n create: 'stop',\n\n // Inherit from\n inherit: SVG.Element,\n\n // Add class methods\n extend: {\n // add color stops\n update: function (o) {\n if (typeof o === 'number' || o instanceof SVG.Number) {\n o = {\n offset: arguments[0],\n color: arguments[1],\n opacity: arguments[2]\n }\n }\n\n // set attributes\n if (o.opacity != null) this.attr('stop-opacity', o.opacity)\n if (o.color != null) this.attr('stop-color', o.color)\n if (o.offset != null) this.attr('offset', new SVG.Number(o.offset))\n\n return this\n }\n }\n})\n","SVG.Pattern = SVG.invent({\n // Initialize node\n create: 'pattern',\n\n // Inherit from\n inherit: SVG.Container,\n\n // Add class methods\n extend: {\n // Return the fill id\n url: function () {\n return 'url(#' + this.id() + ')'\n },\n // Update pattern by rebuilding\n update: function (block) {\n // remove content\n this.clear()\n\n // invoke passed block\n if (typeof block === 'function') {\n block.call(this, this)\n }\n\n return this\n },\n // Alias string convertion to fill\n toString: function () {\n return this.url()\n },\n // custom attr to handle transform\n attr: function (a, b, c) {\n if (a === 'transform') a = 'patternTransform'\n return SVG.Container.prototype.attr.call(this, a, b, c)\n }\n\n },\n\n // Add parent method\n construct: {\n // Create pattern element in defs\n pattern: function (width, height, block) {\n return this.defs().pattern(width, height, block)\n }\n }\n})\n\nSVG.extend(SVG.Defs, {\n // Define gradient\n pattern: function (width, height, block) {\n return this.put(new SVG.Pattern()).update(block).attr({\n x: 0,\n y: 0,\n width: width,\n height: height,\n patternUnits: 'userSpaceOnUse'\n })\n }\n\n})\n","SVG.Doc = SVG.invent({\n // Initialize node\n create: function (node) {\n SVG.Element.call(this, node || SVG.create('svg'))\n\n // set svg element attributes and ensure defs node\n this.namespace()\n },\n\n // Inherit from\n inherit: SVG.Container,\n\n // Add class methods\n extend: {\n isRoot: function () {\n return !this.node.parentNode || !(this.node.parentNode instanceof window.SVGElement) || this.node.parentNode.nodeName === '#document'\n },\n // Check if this is a root svg. If not, call docs from this element\n doc: function () {\n if (this.isRoot()) return this\n return SVG.Element.prototype.doc.call(this)\n },\n // Add namespaces\n namespace: function () {\n if (!this.isRoot()) return this.doc().namespace()\n return this\n .attr({ xmlns: SVG.ns, version: '1.1' })\n .attr('xmlns:xlink', SVG.xlink, SVG.xmlns)\n .attr('xmlns:svgjs', SVG.svgjs, SVG.xmlns)\n },\n // Creates and returns defs element\n defs: function () {\n if (!this.isRoot()) return this.doc().defs()\n return SVG.adopt(this.node.getElementsByTagName('defs')[0]) || this.put(new SVG.Defs())\n },\n // custom parent method\n parent: function (type) {\n if (this.isRoot()) {\n return this.node.parentNode.nodeName === '#document' ? null : this.node.parentNode\n }\n\n return SVG.Element.prototype.parent.call(this, type)\n },\n // Removes the doc from the DOM\n remove: function () {\n if (!this.isRoot()) {\n return SVG.Element.prototype.remove.call(this)\n }\n\n if (this.parent()) {\n this.parent().removeChild(this.node)\n }\n\n return this\n },\n clear: function () {\n // remove children\n while (this.node.hasChildNodes()) {\n this.node.removeChild(this.node.lastChild)\n }\n return this\n }\n },\n construct: {\n // Create nested svg document\n nested: function () {\n return this.put(new SVG.Doc())\n }\n }\n})\n","\nSVG.Shape = SVG.invent({\n // Initialize node\n create: function (node) {\n SVG.Element.call(this, node)\n },\n\n // Inherit from\n inherit: SVG.Element\n})\n","\nSVG.Bare = SVG.invent({\n // Initialize\n create: function (element, inherit) {\n // construct element\n SVG.Element.call(this, SVG.create(element))\n\n // inherit custom methods\n if (inherit) {\n for (var method in inherit.prototype) {\n if (typeof inherit.prototype[method] === 'function') {\n this[method] = inherit.prototype[method]\n }\n }\n }\n },\n\n // Inherit from\n inherit: SVG.Element,\n\n // Add methods\n extend: {\n // Insert some plain text\n words: function (text) {\n // remove contents\n while (this.node.hasChildNodes()) {\n this.node.removeChild(this.node.lastChild)\n }\n\n // create text node\n this.node.appendChild(document.createTextNode(text))\n\n return this\n }\n }\n})\n\nSVG.extend(SVG.Parent, {\n // Create an element that is not described by SVG.js\n element: function (element, inherit) {\n return this.put(new SVG.Bare(element, inherit))\n }\n})\n","\nSVG.Symbol = SVG.invent({\n // Initialize node\n create: 'symbol',\n\n // Inherit from\n inherit: SVG.Container,\n\n construct: {\n // create symbol\n symbol: function () {\n return this.put(new SVG.Symbol())\n }\n }\n})\n","\nSVG.Use = SVG.invent({\n // Initialize node\n create: 'use',\n\n // Inherit from\n inherit: SVG.Shape,\n\n // Add class methods\n extend: {\n // Use element as a reference\n element: function (element, file) {\n // Set lined element\n return this.attr('href', (file || '') + '#' + element, SVG.xlink)\n }\n },\n\n // Add parent method\n construct: {\n // Create a use element\n use: function (element, file) {\n return this.put(new SVG.Use()).element(element, file)\n }\n }\n})\n","\nSVG.Rect = SVG.invent({\n // Initialize node\n create: 'rect',\n\n // Inherit from\n inherit: SVG.Shape,\n\n // Add parent method\n construct: {\n // Create a rect element\n rect: function (width, height) {\n return this.put(new SVG.Rect()).size(width, height)\n }\n }\n})\n","/* global proportionalSize */\n\nSVG.Circle = SVG.invent({\n // Initialize node\n create: 'circle',\n\n // Inherit from\n inherit: SVG.Shape,\n\n // Add parent method\n construct: {\n // Create circle element, based on ellipse\n circle: function (size) {\n return this.put(new SVG.Circle()).rx(new SVG.Number(size).divide(2)).move(0, 0)\n }\n }\n})\n\nSVG.extend([SVG.Circle, SVG.Timeline], {\n // Radius x value\n rx: function (rx) {\n return this.attr('r', rx)\n },\n // Alias radius x value\n ry: function (ry) {\n return this.rx(ry)\n }\n})\n\nSVG.Ellipse = SVG.invent({\n // Initialize node\n create: 'ellipse',\n\n // Inherit from\n inherit: SVG.Shape,\n\n // Add parent method\n construct: {\n // Create an ellipse\n ellipse: function (width, height) {\n return this.put(new SVG.Ellipse()).size(width, height).move(0, 0)\n }\n }\n})\n\nSVG.extend([SVG.Ellipse, SVG.Rect, SVG.Timeline], {\n // Radius x value\n rx: function (rx) {\n return this.attr('rx', rx)\n },\n // Radius y value\n ry: function (ry) {\n return this.attr('ry', ry)\n }\n})\n\n// Add common method\nSVG.extend([SVG.Circle, SVG.Ellipse], {\n // Move over x-axis\n x: function (x) {\n return x == null ? this.cx() - this.rx() : this.cx(x + this.rx())\n },\n // Move over y-axis\n y: function (y) {\n return y == null ? this.cy() - this.ry() : this.cy(y + this.ry())\n },\n // Move by center over x-axis\n cx: function (x) {\n return x == null ? this.attr('cx') : this.attr('cx', x)\n },\n // Move by center over y-axis\n cy: function (y) {\n return y == null ? this.attr('cy') : this.attr('cy', y)\n },\n // Set width of element\n width: function (width) {\n return width == null ? this.rx() * 2 : this.rx(new SVG.Number(width).divide(2))\n },\n // Set height of element\n height: function (height) {\n return height == null ? this.ry() * 2 : this.ry(new SVG.Number(height).divide(2))\n },\n // Custom size function\n size: function (width, height) {\n var p = proportionalSize(this, width, height)\n\n return this\n .rx(new SVG.Number(p.width).divide(2))\n .ry(new SVG.Number(p.height).divide(2))\n }\n})\n","/* global proportionalSize */\n\nSVG.Line = SVG.invent({\n // Initialize node\n create: 'line',\n\n // Inherit from\n inherit: SVG.Shape,\n\n // Add class methods\n extend: {\n // Get array\n array: function () {\n return new SVG.PointArray([\n [ this.attr('x1'), this.attr('y1') ],\n [ this.attr('x2'), this.attr('y2') ]\n ])\n },\n\n // Overwrite native plot() method\n plot: function (x1, y1, x2, y2) {\n if (x1 == null) {\n return this.array()\n } else if (typeof y1 !== 'undefined') {\n x1 = { x1: x1, y1: y1, x2: x2, y2: y2 }\n } else {\n x1 = new SVG.PointArray(x1).toLine()\n }\n\n return this.attr(x1)\n },\n\n // Move by left top corner\n move: function (x, y) {\n return this.attr(this.array().move(x, y).toLine())\n },\n\n // Set element size to given width and height\n size: function (width, height) {\n var p = proportionalSize(this, width, height)\n return this.attr(this.array().size(p.width, p.height).toLine())\n }\n },\n\n // Add parent method\n construct: {\n // Create a line element\n line: function (x1, y1, x2, y2) {\n // make sure plot is called as a setter\n // x1 is not necessarily a number, it can also be an array, a string and a SVG.PointArray\n return SVG.Line.prototype.plot.apply(\n this.put(new SVG.Line())\n , x1 != null ? [x1, y1, x2, y2] : [0, 0, 0, 0]\n )\n }\n }\n})\n","/* global proportionalSize */\n\nSVG.Polyline = SVG.invent({\n // Initialize node\n create: 'polyline',\n\n // Inherit from\n inherit: SVG.Shape,\n\n // Add parent method\n construct: {\n // Create a wrapped polyline element\n polyline: function (p) {\n // make sure plot is called as a setter\n return this.put(new SVG.Polyline()).plot(p || new SVG.PointArray())\n }\n }\n})\n\nSVG.Polygon = SVG.invent({\n // Initialize node\n create: 'polygon',\n\n // Inherit from\n inherit: SVG.Shape,\n\n // Add parent method\n construct: {\n // Create a wrapped polygon element\n polygon: function (p) {\n // make sure plot is called as a setter\n return this.put(new SVG.Polygon()).plot(p || new SVG.PointArray())\n }\n }\n})\n\n// Add polygon-specific functions\nSVG.extend([SVG.Polyline, SVG.Polygon], {\n // Get array\n array: function () {\n return this._array || (this._array = new SVG.PointArray(this.attr('points')))\n },\n\n // Plot new path\n plot: function (p) {\n return (p == null) ? this.array()\n : this.clear().attr('points', typeof p === 'string' ? p\n : (this._array = new SVG.PointArray(p)))\n },\n\n // Clear array cache\n clear: function () {\n delete this._array\n return this\n },\n\n // Move by left top corner\n move: function (x, y) {\n return this.attr('points', this.array().move(x, y))\n },\n\n // Set element size to given width and height\n size: function (width, height) {\n var p = proportionalSize(this, width, height)\n return this.attr('points', this.array().size(p.width, p.height))\n }\n})\n","// unify all point to point elements\nSVG.extend([SVG.Line, SVG.Polyline, SVG.Polygon], {\n // Define morphable array\n MorphArray: SVG.PointArray,\n // Move by left top corner over x-axis\n x: function (x) {\n return x == null ? this.bbox().x : this.move(x, this.bbox().y)\n },\n // Move by left top corner over y-axis\n y: function (y) {\n return y == null ? this.bbox().y : this.move(this.bbox().x, y)\n },\n // Set width of element\n width: function (width) {\n var b = this.bbox()\n\n return width == null ? b.width : this.size(width, b.height)\n },\n // Set height of element\n height: function (height) {\n var b = this.bbox()\n\n return height == null ? b.height : this.size(b.width, height)\n }\n})\n","/* global proportionalSize */\n\nSVG.Path = SVG.invent({\n // Initialize node\n create: 'path',\n\n // Inherit from\n inherit: SVG.Shape,\n\n // Add class methods\n extend: {\n // Define morphable array\n MorphArray: SVG.PathArray,\n // Get array\n array: function () {\n return this._array || (this._array = new SVG.PathArray(this.attr('d')))\n },\n // Plot new path\n plot: function (d) {\n return (d == null) ? this.array()\n : this.clear().attr('d', typeof d === 'string' ? d : (this._array = new SVG.PathArray(d)))\n },\n // Clear array cache\n clear: function () {\n delete this._array\n return this\n },\n // Move by left top corner\n move: function (x, y) {\n return this.attr('d', this.array().move(x, y))\n },\n // Move by left top corner over x-axis\n x: function (x) {\n return x == null ? this.bbox().x : this.move(x, this.bbox().y)\n },\n // Move by left top corner over y-axis\n y: function (y) {\n return y == null ? this.bbox().y : this.move(this.bbox().x, y)\n },\n // Set element size to given width and height\n size: function (width, height) {\n var p = proportionalSize(this, width, height)\n return this.attr('d', this.array().size(p.width, p.height))\n },\n // Set width of element\n width: function (width) {\n return width == null ? this.bbox().width : this.size(width, this.bbox().height)\n },\n // Set height of element\n height: function (height) {\n return height == null ? this.bbox().height : this.size(this.bbox().width, height)\n }\n },\n\n // Add parent method\n construct: {\n // Create a wrapped path element\n path: function (d) {\n // make sure plot is called as a setter\n return this.put(new SVG.Path()).plot(d || new SVG.PathArray())\n }\n }\n})\n","SVG.Image = SVG.invent({\n // Initialize node\n create: 'image',\n\n // Inherit from\n inherit: SVG.Shape,\n\n // Add class methods\n extend: {\n // (re)load image\n load: function (url, callback) {\n if (!url) return this\n\n var img = new window.Image()\n\n SVG.on(img, 'load', function (e) {\n var p = this.parent(SVG.Pattern)\n\n // ensure image size\n if (this.width() === 0 && this.height() === 0) {\n this.size(img.width, img.height)\n }\n\n if (p instanceof SVG.Pattern) {\n // ensure pattern size if not set\n if (p.width() === 0 && p.height() === 0) {\n p.size(this.width(), this.height())\n }\n }\n\n if (typeof callback === 'function') {\n callback.call(this, {\n width: img.width,\n height: img.height,\n ratio: img.width / img.height,\n url: url\n })\n }\n }, this)\n\n SVG.on(img, 'load error', function () {\n // dont forget to unbind memory leaking events\n SVG.off(img)\n })\n\n return this.attr('href', (img.src = url), SVG.xlink)\n }\n },\n\n // Add parent method\n construct: {\n // create image element, load image and set its size\n image: function (source, callback) {\n return this.put(new SVG.Image()).size(0, 0).load(source, callback)\n }\n }\n})\n","SVG.Text = SVG.invent({\n // Initialize node\n create: function (node) {\n SVG.Element.call(this, node || SVG.create('text'))\n this.dom.leading = new SVG.Number(1.3) // store leading value for rebuilding\n this._rebuild = true // enable automatic updating of dy values\n this._build = false // disable build mode for adding multiple lines\n\n // set default font\n this.attr('font-family', SVG.defaults.attrs['font-family'])\n },\n\n // Inherit from\n inherit: SVG.Parent,\n\n // Add class methods\n extend: {\n // Move over x-axis\n x: function (x) {\n // act as getter\n if (x == null) {\n return this.attr('x')\n }\n\n return this.attr('x', x)\n },\n // Move over y-axis\n y: function (y) {\n var oy = this.attr('y')\n var o = typeof oy === 'number' ? oy - this.bbox().y : 0\n\n // act as getter\n if (y == null) {\n return typeof oy === 'number' ? oy - o : oy\n }\n\n return this.attr('y', typeof y === 'number' ? y + o : y)\n },\n // Move center over x-axis\n cx: function (x) {\n return x == null ? this.bbox().cx : this.x(x - this.bbox().width / 2)\n },\n // Move center over y-axis\n cy: function (y) {\n return y == null ? this.bbox().cy : this.y(y - this.bbox().height / 2)\n },\n // Set the text content\n text: function (text) {\n // act as getter\n if (text === undefined) {\n var children = this.node.childNodes\n var firstLine = 0\n text = ''\n\n for (var i = 0, len = children.length; i < len; ++i) {\n // skip textPaths - they are no lines\n if (children[i].nodeName === 'textPath') {\n if (i === 0) firstLine = 1\n continue\n }\n\n // add newline if its not the first child and newLined is set to true\n if (i !== firstLine && children[i].nodeType !== 3 && SVG.adopt(children[i]).dom.newLined === true) {\n text += '\\n'\n }\n\n // add content of this node\n text += children[i].textContent\n }\n\n return text\n }\n\n // remove existing content\n this.clear().build(true)\n\n if (typeof text === 'function') {\n // call block\n text.call(this, this)\n } else {\n // store text and make sure text is not blank\n text = text.split('\\n')\n\n // build new lines\n for (var j = 0, jl = text.length; j < jl; j++) {\n this.tspan(text[j]).newLine()\n }\n }\n\n // disable build mode and rebuild lines\n return this.build(false).rebuild()\n },\n // Set / get leading\n leading: function (value) {\n // act as getter\n if (value == null) {\n return this.dom.leading\n }\n\n // act as setter\n this.dom.leading = new SVG.Number(value)\n\n return this.rebuild()\n },\n // Rebuild appearance type\n rebuild: function (rebuild) {\n // store new rebuild flag if given\n if (typeof rebuild === 'boolean') {\n this._rebuild = rebuild\n }\n\n // define position of all lines\n if (this._rebuild) {\n var self = this\n var blankLineOffset = 0\n var dy = this.dom.leading * new SVG.Number(this.attr('font-size'))\n\n this.each(function () {\n if (this.dom.newLined) {\n this.attr('x', self.attr('x'))\n\n if (this.text() === '\\n') {\n blankLineOffset += dy\n } else {\n this.attr('dy', dy + blankLineOffset)\n blankLineOffset = 0\n }\n }\n })\n\n this.fire('rebuild')\n }\n\n return this\n },\n // Enable / disable build mode\n build: function (build) {\n this._build = !!build\n return this\n },\n // overwrite method from parent to set data properly\n setData: function (o) {\n this.dom = o\n this.dom.leading = new SVG.Number(o.leading || 1.3)\n return this\n }\n },\n\n // Add parent method\n construct: {\n // Create text element\n text: function (text) {\n return this.put(new SVG.Text()).text(text)\n },\n // Create plain text element\n plain: function (text) {\n return this.put(new SVG.Text()).plain(text)\n }\n }\n\n})\n\nSVG.Tspan = SVG.invent({\n // Initialize node\n create: 'tspan',\n\n // Inherit from\n inherit: SVG.Parent,\n\n // Add class methods\n extend: {\n // Set text content\n text: function (text) {\n if (text == null) return this.node.textContent + (this.dom.newLined ? '\\n' : '')\n\n typeof text === 'function' ? text.call(this, this) : this.plain(text)\n\n return this\n },\n // Shortcut dx\n dx: function (dx) {\n return this.attr('dx', dx)\n },\n // Shortcut dy\n dy: function (dy) {\n return this.attr('dy', dy)\n },\n // Create new line\n newLine: function () {\n // fetch text parent\n var t = this.parent(SVG.Text)\n\n // mark new line\n this.dom.newLined = true\n\n // apply new position\n return this.dy(t.dom.leading * t.attr('font-size')).attr('x', t.x())\n }\n }\n})\n\nSVG.extend([SVG.Text, SVG.Tspan], {\n // Create plain text node\n plain: function (text) {\n // clear if build mode is disabled\n if (this._build === false) {\n this.clear()\n }\n\n // create text node\n this.node.appendChild(document.createTextNode(text))\n\n return this\n },\n // Create a tspan\n tspan: function (text) {\n var tspan = new SVG.Tspan()\n\n // clear if build mode is disabled\n if (!this._build) {\n this.clear()\n }\n\n // add new tspan\n this.node.appendChild(tspan.node)\n\n return tspan.text(text)\n },\n // FIXME: Does this also work for textpath?\n // Get length of text element\n length: function () {\n return this.node.getComputedTextLength()\n }\n})\n","SVG.TextPath = SVG.invent({\n // Initialize node\n create: 'textPath',\n\n // Inherit from\n inherit: SVG.Text,\n\n // Define parent class\n parent: SVG.Parent,\n\n // Add parent method\n extend: {\n MorphArray: SVG.PathArray,\n // return the array of the path track element\n array: function () {\n var track = this.track()\n\n return track ? track.array() : null\n },\n // Plot path if any\n plot: function (d) {\n var track = this.track()\n var pathArray = null\n\n if (track) {\n pathArray = track.plot(d)\n }\n\n return (d == null) ? pathArray : this\n },\n // Get the path element\n track: function () {\n return this.reference('href')\n }\n },\n construct: {\n textPath: function (text, path) {\n return this.defs().path(path).text(text).addTo(this)\n }\n }\n})\n\nSVG.extend([SVG.Text], {\n // Create path for text to run on\n path: function (track) {\n var path = new SVG.TextPath()\n\n // if d is a path, reuse it\n if (!(track instanceof SVG.Path)) {\n // create path element\n track = this.doc().defs().path(track)\n }\n\n // link textPath to path and add content\n path.attr('href', '#' + track, SVG.xlink)\n\n // add textPath element as child node and return textPath\n return this.put(path)\n },\n // Todo: make this plural?\n // Get the textPath children\n textPath: function () {\n return this.select('textPath')\n }\n})\n\nSVG.extend([SVG.Path], {\n // creates a textPath from this path\n text: function (text) {\n if (text instanceof SVG.Text) {\n var txt = text.text()\n return text.clear().path(this).text(txt)\n }\n return this.parent().put(new SVG.Text()).path(this).text(text)\n }\n // TODO: Maybe add `targets` to get all textPaths associated with this path\n})\n","SVG.A = SVG.invent({\n // Initialize node\n create: 'a',\n\n // Inherit from\n inherit: SVG.Container,\n\n // Add class methods\n extend: {\n // Link url\n to: function (url) {\n return this.attr('href', url, SVG.xlink)\n },\n // Link target attribute\n target: function (target) {\n return this.attr('target', target)\n }\n },\n\n // Add parent method\n construct: {\n // Create a hyperlink element\n link: function (url) {\n return this.put(new SVG.A()).to(url)\n }\n }\n})\n\nSVG.extend(SVG.Element, {\n // Create a hyperlink element\n linkTo: function (url) {\n var link = new SVG.A()\n\n if (typeof url === 'function') { url.call(link, link) } else {\n link.to(url)\n }\n\n return this.parent().put(link).put(this)\n }\n\n})\n","SVG.Marker = SVG.invent({\n // Initialize node\n create: 'marker',\n\n // Inherit from\n inherit: SVG.Container,\n\n // Add class methods\n extend: {\n // Set width of element\n width: function (width) {\n return this.attr('markerWidth', width)\n },\n // Set height of element\n height: function (height) {\n return this.attr('markerHeight', height)\n },\n // Set marker refX and refY\n ref: function (x, y) {\n return this.attr('refX', x).attr('refY', y)\n },\n // Update marker\n update: function (block) {\n // remove all content\n this.clear()\n\n // invoke passed block\n if (typeof block === 'function') { block.call(this, this) }\n\n return this\n },\n // Return the fill id\n toString: function () {\n return 'url(#' + this.id() + ')'\n }\n },\n\n // Add parent method\n construct: {\n marker: function (width, height, block) {\n // Create marker element in defs\n return this.defs().marker(width, height, block)\n }\n }\n\n})\n\nSVG.extend(SVG.Defs, {\n // Create marker\n marker: function (width, height, block) {\n // Set default viewbox to match the width and height, set ref to cx and cy and set orient to auto\n return this.put(new SVG.Marker())\n .size(width, height)\n .ref(width / 2, height / 2)\n .viewbox(0, 0, width, height)\n .attr('orient', 'auto')\n .update(block)\n }\n\n})\n\nSVG.extend([SVG.Line, SVG.Polyline, SVG.Polygon, SVG.Path], {\n // Create and attach markers\n marker: function (marker, width, height, block) {\n var attr = ['marker']\n\n // Build attribute name\n if (marker !== 'all') attr.push(marker)\n attr = attr.join('-')\n\n // Set marker attribute\n marker = arguments[1] instanceof SVG.Marker\n ? arguments[1]\n : this.doc().marker(width, height, block)\n\n return this.attr(attr, marker)\n }\n})\n","// Define list of available attributes for stroke and fill\nvar sugar = {\n stroke: ['color', 'width', 'opacity', 'linecap', 'linejoin', 'miterlimit', 'dasharray', 'dashoffset'],\n fill: ['color', 'opacity', 'rule'],\n prefix: function (t, a) {\n return a === 'color' ? t : t + '-' + a\n }\n}\n\n// Add sugar for fill and stroke\n;['fill', 'stroke'].forEach(function (m) {\n var extension = {}\n var i\n\n extension[m] = function (o) {\n if (typeof o === 'undefined') {\n return this\n }\n if (typeof o === 'string' || SVG.Color.isRgb(o) || (o && typeof o.fill === 'function')) {\n this.attr(m, o)\n } else {\n // set all attributes from sugar.fill and sugar.stroke list\n for (i = sugar[m].length - 1; i >= 0; i--) {\n if (o[sugar[m][i]] != null) {\n this.attr(sugar.prefix(m, sugar[m][i]), o[sugar[m][i]])\n }\n }\n }\n\n return this\n }\n\n SVG.extend([SVG.Element, SVG.Timeline], extension)\n})\n\nSVG.extend([SVG.Element, SVG.Timeline], {\n // Let the user set the matrix directly\n matrix: function (mat, b, c, d, e, f) {\n // Act as a getter\n if (mat == null) {\n return new SVG.Matrix(this)\n }\n\n // Act as a setter, the user can pass a matrix or a set of numbers\n return this.attr('transform', new SVG.Matrix(mat, b, c, d, e, f))\n },\n\n // Map rotation to transform\n rotate: function (angle, cx, cy) {\n return this.transform({rotate: angle, ox: cx, oy: cy}, true)\n },\n\n // Map skew to transform\n skew: function (x, y, cx, cy) {\n return arguments.length === 1 || arguments.length === 3\n ? this.transform({skew: x, ox: y, oy: cx}, true)\n : this.transform({skew: [x, y], ox: cx, oy: cy}, true)\n },\n\n shear: function (lam, cx, cy) {\n return this.transform({shear: lam, ox: cx, oy: cy}, true)\n },\n\n // Map scale to transform\n scale: function (x, y, cx, cy) {\n return arguments.length === 1 || arguments.length === 3\n ? this.transform({ scale: x, ox: y, oy: cx }, true)\n : this.transform({ scale: [x, y], ox: cx, oy: cy }, true)\n },\n\n // Map translate to transform\n translate: function (x, y) {\n return this.transform({ translate: [x, y] }, true)\n },\n\n // Map relative translations to transform\n relative: function (x, y) {\n return this.transform({ relative: [x, y] }, true)\n },\n\n // Map flip to transform\n flip: function (direction, around) {\n var directionString = typeof direction === 'string' ? direction\n : isFinite(direction) ? 'both'\n : 'both'\n var origin = (direction === 'both' && isFinite(around)) ? [around, around]\n : (direction === 'x') ? [around, 0]\n : (direction === 'y') ? [0, around]\n : isFinite(direction) ? [direction, direction]\n : [0, 0]\n this.transform({flip: directionString, origin: origin}, true)\n },\n\n // Opacity\n opacity: function (value) {\n return this.attr('opacity', value)\n },\n\n // Relative move over x axis\n dx: function (x) {\n return this.x(new SVG.Number(x).plus(this instanceof SVG.Timeline ? 0 : this.x()), true)\n },\n\n // Relative move over y axis\n dy: function (y) {\n return this.y(new SVG.Number(y).plus(this instanceof SVG.Timeline ? 0 : this.y()), true)\n },\n\n // Relative move over x and y axes\n dmove: function (x, y) {\n return this.dx(x).dy(y)\n }\n})\n\nSVG.extend([SVG.Rect, SVG.Ellipse, SVG.Circle, SVG.Gradient, SVG.Timeline], {\n // Add x and y radius\n radius: function (x, y) {\n var type = (this._target || this).type\n return type === 'radialGradient' || type === 'radialGradient'\n ? this.attr('r', new SVG.Number(x))\n : this.rx(x).ry(y == null ? x : y)\n }\n})\n\nSVG.extend(SVG.Path, {\n // Get path length\n length: function () {\n return this.node.getTotalLength()\n },\n // Get point at length\n pointAt: function (length) {\n return new SVG.Point(this.node.getPointAtLength(length))\n }\n})\n\nSVG.extend([SVG.Parent, SVG.Text, SVG.Tspan, SVG.Timeline], {\n // Set font\n font: function (a, v) {\n if (typeof a === 'object') {\n for (v in a) this.font(v, a[v])\n }\n\n return a === 'leading'\n ? this.leading(v)\n : a === 'anchor'\n ? this.attr('text-anchor', v)\n : a === 'size' || a === 'family' || a === 'weight' || a === 'stretch' || a === 'variant' || a === 'style'\n ? this.attr('font-' + a, v)\n : this.attr(a, v)\n }\n})\n","\nSVG.extend(SVG.Element, {\n // Store data values on svg nodes\n data: function (a, v, r) {\n if (typeof a === 'object') {\n for (v in a) {\n this.data(v, a[v])\n }\n } else if (arguments.length < 2) {\n try {\n return JSON.parse(this.attr('data-' + a))\n } catch (e) {\n return this.attr('data-' + a)\n }\n } else {\n this.attr('data-' + a,\n v === null ? null\n : r === true || typeof v === 'string' || typeof v === 'number' ? v\n : JSON.stringify(v)\n )\n }\n\n return this\n }\n})\n","\nSVG.extend(SVG.Element, {\n // Remember arbitrary data\n remember: function (k, v) {\n // remember every item in an object individually\n if (typeof arguments[0] === 'object') {\n for (var key in k) {\n this.remember(key, k[key])\n }\n } else if (arguments.length === 1) {\n // retrieve memory\n return this.memory()[k]\n } else {\n // store memory\n this.memory()[k] = v\n }\n\n return this\n },\n\n // Erase a given memory\n forget: function () {\n if (arguments.length === 0) {\n this._memory = {}\n } else {\n for (var i = arguments.length - 1; i >= 0; i--) {\n delete this.memory()[arguments[i]]\n }\n }\n return this\n },\n\n // Initialize or return local memory object\n memory: function () {\n return this._memory || (this._memory = {})\n }\n})\n","/* global idFromReference */\n\n// Method for getting an element by id\nSVG.get = function (id) {\n var node = document.getElementById(idFromReference(id) || id)\n return SVG.adopt(node)\n}\n\n// Select elements by query string\nSVG.select = function (query, parent) {\n return SVG.utils.map((parent || document).querySelectorAll(query), function (node) {\n return SVG.adopt(node)\n })\n}\n\nSVG.$$ = function (query, parent) {\n return SVG.utils.map((parent || document).querySelectorAll(query), function (node) {\n return SVG.adopt(node)\n })\n}\n\nSVG.$ = function (query, parent) {\n return SVG.adopt((parent || document).querySelector(query))\n}\n\nSVG.extend(SVG.Parent, {\n // Scoped select method\n select: function (query) {\n return SVG.select(query, this.node)\n }\n})\n","/* eslint no-unused-vars: 0 */\n\nfunction createElement (element, makeNested) {\n if (element instanceof SVG.Element) return element\n\n if (typeof element === 'object') {\n return SVG.adopt(element)\n }\n\n if (element == null) {\n return new SVG.Doc()\n }\n\n if (typeof element === 'string' && element.charAt(0) !== '<') {\n return SVG.adopt(document.querySelector(element))\n }\n\n var node = SVG.create('svg')\n node.innerHTML = element\n\n element = SVG.adopt(node.firstElementChild)\n\n return element\n}\n\nfunction isNulledBox (box) {\n return !box.w && !box.h && !box.x && !box.y\n}\n\nfunction domContains (node) {\n return (document.documentElement.contains || function (node) {\n // This is IE - it does not support contains() for top-level SVGs\n while (node.parentNode) {\n node = node.parentNode\n }\n return node === document\n }).call(document.documentElement, node)\n}\n\nfunction pathRegReplace (a, b, c, d) {\n return c + d.replace(SVG.regex.dots, ' .')\n}\n\n// creates deep clone of array\nfunction arrayClone (arr) {\n var clone = arr.slice(0)\n for (var i = clone.length; i--;) {\n if (Array.isArray(clone[i])) {\n clone[i] = arrayClone(clone[i])\n }\n }\n return clone\n}\n\n// tests if a given element is instance of an object\nfunction is (el, obj) {\n return el instanceof obj\n}\n\n// tests if a given selector matches an element\nfunction matches (el, selector) {\n return (el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector).call(el, selector)\n}\n\n// Convert dash-separated-string to camelCase\nfunction camelCase (s) {\n return s.toLowerCase().replace(/-(.)/g, function (m, g) {\n return g.toUpperCase()\n })\n}\n\n// Capitalize first letter of a string\nfunction capitalize (s) {\n return s.charAt(0).toUpperCase() + s.slice(1)\n}\n\n// Ensure to six-based hex\nfunction fullHex (hex) {\n return hex.length === 4\n ? [ '#',\n hex.substring(1, 2), hex.substring(1, 2),\n hex.substring(2, 3), hex.substring(2, 3),\n hex.substring(3, 4), hex.substring(3, 4)\n ].join('')\n : hex\n}\n\n// Component to hex value\nfunction compToHex (comp) {\n var hex = comp.toString(16)\n return hex.length === 1 ? '0' + hex : hex\n}\n\n// Calculate proportional width and height values when necessary\nfunction proportionalSize (element, width, height) {\n if (width == null || height == null) {\n var box = element.bbox()\n\n if (width == null) {\n width = box.width / box.height * height\n } else if (height == null) {\n height = box.height / box.width * width\n }\n }\n\n return {\n width: width,\n height: height\n }\n}\n\n// Map matrix array to object\nfunction arrayToMatrix (a) {\n return { a: a[0], b: a[1], c: a[2], d: a[3], e: a[4], f: a[5] }\n}\n\n// Add centre point to transform object\nfunction ensureCentre (o, target) {\n o.cx = o.cx == null ? target.bbox().cx : o.cx\n o.cy = o.cy == null ? target.bbox().cy : o.cy\n}\n\n// PathArray Helpers\nfunction arrayToString (a) {\n for (var i = 0, il = a.length, s = ''; i < il; i++) {\n s += a[i][0]\n\n if (a[i][1] != null) {\n s += a[i][1]\n\n if (a[i][2] != null) {\n s += ' '\n s += a[i][2]\n\n if (a[i][3] != null) {\n s += ' '\n s += a[i][3]\n s += ' '\n s += a[i][4]\n\n if (a[i][5] != null) {\n s += ' '\n s += a[i][5]\n s += ' '\n s += a[i][6]\n\n if (a[i][7] != null) {\n s += ' '\n s += a[i][7]\n }\n }\n }\n }\n }\n }\n\n return s + ' '\n}\n\n// Deep new id assignment\nfunction assignNewId (node) {\n // do the same for SVG child nodes as well\n for (var i = node.children.length - 1; i >= 0; i--) {\n assignNewId(node.children[i])\n }\n\n if (node.id) {\n return SVG.adopt(node).id(SVG.eid(node.nodeName))\n }\n\n return SVG.adopt(node)\n}\n\n// Add more bounding box properties\nfunction fullBox (b) {\n if (b.x == null) {\n b.x = 0\n b.y = 0\n b.width = 0\n b.height = 0\n }\n\n b.w = b.width\n b.h = b.height\n b.x2 = b.x + b.width\n b.y2 = b.y + b.height\n b.cx = b.x + b.width / 2\n b.cy = b.y + b.height / 2\n\n return b\n}\n\n// Get id from reference string\nfunction idFromReference (url) {\n var m = (url || '').toString().match(SVG.regex.reference)\n\n if (m) return m[1]\n}\n\n// Create matrix array for looping\nvar abcdef = 'abcdef'.split('')\n\nfunction closeEnough (a, b, threshold) {\n return Math.abs(b - a) < (threshold || 1e-6)\n}\n\nfunction isMatrixLike (o) {\n return (\n o.a != null ||\n o.b != null ||\n o.c != null ||\n o.d != null ||\n o.e != null ||\n o.f != null\n )\n}\n\n// TODO: Refactor this to a static function of matrix.js\nfunction formatTransforms (o) {\n // Get all of the parameters required to form the matrix\n var flipBoth = o.flip === 'both' || o.flip === true\n var flipX = o.flip && (flipBoth || o.flip === 'x') ? -1 : 1\n var flipY = o.flip && (flipBoth || o.flip === 'y') ? -1 : 1\n var skewX = o.skew && o.skew.length ? o.skew[0]\n : isFinite(o.skew) ? o.skew\n : isFinite(o.skewX) ? o.skewX\n : 0\n var skewY = o.skew && o.skew.length ? o.skew[1]\n : isFinite(o.skew) ? o.skew\n : isFinite(o.skewY) ? o.skewY\n : 0\n var scaleX = o.scale && o.scale.length ? o.scale[0] * flipX\n : isFinite(o.scale) ? o.scale * flipX\n : isFinite(o.scaleX) ? o.scaleX * flipX\n : flipX\n var scaleY = o.scale && o.scale.length ? o.scale[1] * flipY\n : isFinite(o.scale) ? o.scale * flipY\n : isFinite(o.scaleY) ? o.scaleY * flipY\n : flipY\n var shear = o.shear || 0\n var theta = o.rotate || o.theta || 0\n var origin = new SVG.Point(o.origin || o.around || o.ox || o.originX, o.oy || o.originY)\n var ox = origin.x\n var oy = origin.y\n var position = new SVG.Point(o.position || o.px || o.positionX, o.py || o.positionY)\n var px = position.x\n var py = position.y\n var translate = new SVG.Point(o.translate || o.tx || o.translateX, o.ty || o.translateY)\n var tx = translate.x\n var ty = translate.y\n var relative = new SVG.Point(o.relative || o.rx || o.relativeX, o.ry || o.relativeY)\n var rx = relative.x\n var ry = relative.y\n\n // Populate all of the values\n return {\n scaleX, scaleY, skewX, skewY, shear, theta, rx, ry, tx, ty, ox, oy, px, py\n }\n}\n\n// left matrix, right matrix, target matrix which is overwritten\nfunction matrixMultiply (l, r, o) {\n // Work out the product directly\n var a = l.a * r.a + l.c * r.b\n var b = l.b * r.a + l.d * r.b\n var c = l.a * r.c + l.c * r.d\n var d = l.b * r.c + l.d * r.d\n var e = l.e + l.a * r.e + l.c * r.f\n var f = l.f + l.b * r.e + l.d * r.f\n\n // make sure to use local variables because l/r and o could be the same\n o.a = a\n o.b = b\n o.c = c\n o.d = d\n o.e = e\n o.f = f\n\n return o\n}\n\nfunction getOrigin (o, element) {\n // Allow origin or around as the names\n let origin = o.origin // o.around == null ? o.origin : o.around\n let ox, oy\n\n // Allow the user to pass a string to rotate around a given point\n if (typeof origin === 'string' || origin == null) {\n // Get the bounding box of the element with no transformations applied\n const string = (origin || 'center').toLowerCase().trim()\n const { height, width, x, y } = element.bbox()\n\n // Calculate the transformed x and y coordinates\n let bx = string.includes('left') ? x\n : string.includes('right') ? x + width\n : x + width / 2\n let by = string.includes('top') ? y\n : string.includes('bottom') ? y + height\n : y + height / 2\n\n // Set the bounds eg : \"bottom-left\", \"Top right\", \"middle\" etc...\n ox = o.ox != null ? o.ox : bx\n oy = o.oy != null ? o.oy : by\n } else {\n ox = origin[0]\n oy = origin[1]\n }\n\n // Return the origin as it is if it wasn't a string\n return [ ox, oy ]\n}\n","/* globals fullBox, domContains, isNulledBox, Exception */\n\nSVG.Box = SVG.invent({\n create: function (source) {\n var base = [0, 0, 0, 0]\n source = typeof source === 'string' ? source.split(SVG.regex.delimiter).map(parseFloat)\n : Array.isArray(source) ? source\n : typeof source === 'object' ? [source.left != null ? source.left\n : source.x, source.top != null ? source.top : source.y, source.width, source.height]\n : arguments.length === 4 ? [].slice.call(arguments)\n : base\n\n this.x = source[0]\n this.y = source[1]\n this.width = source[2]\n this.height = source[3]\n\n // add center, right, bottom...\n fullBox(this)\n },\n extend: {\n // Merge rect box with another, return a new instance\n merge: function (box) {\n var x = Math.min(this.x, box.x)\n var y = Math.min(this.y, box.y)\n\n return new SVG.Box(\n x, y,\n Math.max(this.x + this.width, box.x + box.width) - x,\n Math.max(this.y + this.height, box.y + box.height) - y\n )\n },\n\n transform: function (m) {\n var xMin = Infinity\n var xMax = -Infinity\n var yMin = Infinity\n var yMax = -Infinity\n\n var pts = [\n new SVG.Point(this.x, this.y),\n new SVG.Point(this.x2, this.y),\n new SVG.Point(this.x, this.y2),\n new SVG.Point(this.x2, this.y2)\n ]\n\n pts.forEach(function (p) {\n p = p.transform(m)\n xMin = Math.min(xMin, p.x)\n xMax = Math.max(xMax, p.x)\n yMin = Math.min(yMin, p.y)\n yMax = Math.max(yMax, p.y)\n })\n\n return new SVG.Box(\n xMin, yMin,\n xMax - xMin,\n yMax - yMin\n )\n },\n\n addOffset: function () {\n // offset by window scroll position, because getBoundingClientRect changes when window is scrolled\n this.x += window.pageXOffset\n this.y += window.pageYOffset\n return this\n },\n toString: function () {\n return this.x + ' ' + this.y + ' ' + this.width + ' ' + this.height\n },\n toArray: function () {\n return [this.x, this.y, this.width, this.height]\n },\n morph: function (x, y, width, height) {\n this.destination = new SVG.Box(x, y, width, height)\n return this\n },\n\n at: function (pos) {\n if (!this.destination) return this\n\n return new SVG.Box(\n this.x + (this.destination.x - this.x) * pos\n , this.y + (this.destination.y - this.y) * pos\n , this.width + (this.destination.width - this.width) * pos\n , this.height + (this.destination.height - this.height) * pos\n )\n }\n },\n\n // Define Parent\n parent: SVG.Element,\n\n // Constructor\n construct: {\n // Get bounding box\n bbox: function () {\n var box\n\n try {\n // find native bbox\n box = this.node.getBBox()\n\n if (isNulledBox(box) && !domContains(this.node)) {\n throw new Exception('Element not in the dom')\n }\n } catch (e) {\n try {\n var clone = this.clone(SVG.parser().svg).show()\n box = clone.node.getBBox()\n clone.remove()\n } catch (e) {\n console.warn('Getting a bounding box of this element is not possible')\n }\n }\n\n return new SVG.Box(box)\n },\n\n rbox: function (el) {\n // IE11 throws an error when element not in dom\n try {\n var box = new SVG.Box(this.node.getBoundingClientRect())\n if (el) return box.transform(el.screenCTM().inverse())\n return box.addOffset()\n } catch (e) {\n return new SVG.Box()\n }\n }\n }\n})\n\nSVG.extend([SVG.Doc, SVG.Symbol, SVG.Image, SVG.Pattern, SVG.Marker, SVG.ForeignObject, SVG.View], {\n viewbox: function (x, y, width, height) {\n // act as getter\n if (x == null) return new SVG.Box(this.attr('viewBox'))\n\n // act as setter\n return this.attr('viewBox', new SVG.Box(x, y, width, height))\n }\n})\n","\nSVG.parser = function () {\n var b\n\n if (!SVG.parser.nodes.svg.node.parentNode) {\n b = document.body || document.documentElement\n SVG.parser.nodes.svg.addTo(b)\n }\n\n return SVG.parser.nodes\n}\n\nSVG.parser.nodes = {\n svg: SVG().size(2, 0).css({\n opacity: 0,\n position: 'absolute',\n left: '-100%',\n top: '-100%',\n overflow: 'hidden'\n })\n}\n\nSVG.parser.nodes.path = SVG.parser.nodes.svg.path().node\n","/* global requestAnimationFrame */\n\nSVG.Animator = {\n nextDraw: null,\n frames: new SVG.Queue(),\n timeouts: new SVG.Queue(),\n timer: window.performance || window.Date,\n transforms: [],\n\n frame: function (fn) {\n // Store the node\n var node = SVG.Animator.frames.push({ run: fn })\n\n // Request an animation frame if we don't have one\n if (SVG.Animator.nextDraw === null) {\n SVG.Animator.nextDraw = requestAnimationFrame(SVG.Animator._draw)\n }\n\n // Return the node so we can remove it easily\n return node\n },\n\n transform_frame: function (fn, id) {\n SVG.Animator.transforms[id] = fn\n },\n\n timeout: function (fn, delay) {\n delay = delay || 0\n\n // Work out when the event should fire\n var time = SVG.Animator.timer.now() + delay\n\n // Add the timeout to the end of the queue\n var node = SVG.Animator.timeouts.push({ run: fn, time: time })\n\n // Request another animation frame if we need one\n if (SVG.Animator.nextDraw === null) {\n SVG.Animator.nextDraw = requestAnimationFrame(SVG.Animator._draw)\n }\n\n return node\n },\n\n cancelFrame: function (node) {\n SVG.Animator.frames.remove(node)\n },\n\n clearTimeout: function (node) {\n SVG.Animator.timeouts.remove(node)\n },\n\n _draw: function (now) {\n // Run all the timeouts we can run, if they are not ready yet, add them\n // to the end of the queue immediately! (bad timeouts!!! [sarcasm])\n var nextTimeout = null\r\n var lastTimeout = SVG.Animator.timeouts.last()\n while ((nextTimeout = SVG.Animator.timeouts.shift())) {\n // Run the timeout if its time, or push it to the end\n if (now >= nextTimeout.time) {\n nextTimeout.run()\n } else {\n SVG.Animator.timeouts.push(nextTimeout)\n }\n\n // If we hit the last item, we should stop shifting out more items\n if (nextTimeout === lastTimeout) break\n }\n\n // Run all of the animation frames\n var nextFrame = null\n var lastFrame = SVG.Animator.frames.last()\n while ((nextFrame !== lastFrame) && (nextFrame = SVG.Animator.frames.shift())) {\n nextFrame.run()\n }\n\n SVG.Animator.transforms.forEach(function (el) { el() })\n\n // If we have remaining timeouts or frames, draw until we don't anymore\n SVG.Animator.nextDraw = SVG.Animator.timeouts.first() || SVG.Animator.frames.first()\n ? requestAnimationFrame(SVG.Animator._draw)\n : null\n }\n}\n","\nSVG.Morphable = SVG.invent({\n create: function (stepper) {\n // FIXME: the default stepper does not know about easing\n this._stepper = stepper || new SVG.Ease('-')\n\n this._from = null\n this._to = null\n this._type = null\n this._context = null\n this._morphObj = null\n },\n\n extend: {\n\n from: function (val) {\n if (val == null) {\n return this._from\n }\n\n this._from = this._set(val)\n return this\n },\n\n to: function (val) {\n if (val == null) {\n return this._to\n }\n\n this._to = this._set(val)\n return this\n },\n\n type: function (type) {\n // getter\n if (type == null) {\n return this._type\n }\n\n // setter\n this._type = type\n return this\n },\n\n _set: function (value) {\n if (!this._type) {\n var type = typeof value\n\n if (type === 'number') {\n this.type(SVG.Number)\n } else if (type === 'string') {\n if (SVG.Color.isColor(value)) {\n this.type(SVG.Color)\n } else if (SVG.regex.delimiter.test(value)) {\n this.type(SVG.regex.pathLetters.test(value)\n ? SVG.PathArray\n : SVG.Array\n )\n } else if (SVG.regex.numberAndUnit.test(value)) {\n this.type(SVG.Number)\n } else {\n this.type(SVG.Morphable.NonMorphable)\n }\n } else if (SVG.MorphableTypes.indexOf(value.constructor) > -1) {\n this.type(value.constructor)\n } else if (Array.isArray(value)) {\n this.type(SVG.Array)\n } else if (type === 'object') {\n this.type(SVG.Morphable.ObjectBag)\n } else {\n this.type(SVG.Morphable.NonMorphable)\n }\n }\n\n var result = (new this._type(value)).toArray()\n this._morphObj = this._morphObj || new this._type()\n this._context = this._context ||\n Array.apply(null, Array(result.length)).map(Object)\n return result\n },\n\n stepper: function (stepper) {\n if (stepper == null) return this._stepper\n this._stepper = stepper\n return this\n },\n\n done: function () {\n var complete = this._context\n .map(this._stepper.done)\n .reduce(function (last, curr) {\n return last && curr\n }, true)\n return complete\n },\n\n at: function (pos) {\n var _this = this\n\n return this._morphObj.fromArray(\n this._from.map(function (i, index) {\n return _this._stepper.step(i, _this._to[index], pos, _this._context[index], _this._context)\n })\n )\n }\n }\n})\n\nSVG.Morphable.NonMorphable = SVG.invent({\n create: function (val) {\n val = Array.isArray(val) ? val[0] : val\n this.value = val\n },\n\n extend: {\n valueOf: function () {\n return this.value\n },\n\n toArray: function () {\n return [this.value]\n }\n }\n})\n\nSVG.Morphable.TransformBag = SVG.invent({\n create: function (obj) {\n if (Array.isArray(obj)) {\n obj = {\n scaleX: obj[0],\n scaleY: obj[1],\n shear: obj[2],\n rotate: obj[3],\n translateX: obj[4],\n translateY: obj[5],\n originX: obj[6],\n originY: obj[7]\n }\n }\n\n Object.assign(this, SVG.Morphable.TransformBag.defaults, obj)\n },\n\n extend: {\n toArray: function () {\n var v = this\n\n return [\n v.scaleX,\n v.scaleY,\n v.shear,\n v.rotate,\n v.translateX,\n v.translateY,\n v.originX,\n v.originY\n ]\n }\n }\n})\n\nSVG.Morphable.TransformBag.defaults = {\n scaleX: 1,\n scaleY: 1,\n shear: 0,\n rotate: 0,\n translateX: 0,\n translateY: 0,\n originX: 0,\n originY: 0\n}\n\nSVG.Morphable.ObjectBag = SVG.invent({\n create: function (objOrArr) {\n this.values = []\n\n if (Array.isArray(objOrArr)) {\n this.values = objOrArr\n return\n }\n\n var entries = Object.entries(objOrArr || {}).sort((a, b) => {\n return a[0] - b[0]\n })\n\n this.values = entries.reduce((last, curr) => last.concat(curr), [])\n },\n\n extend: {\n valueOf: function () {\n var obj = {}\n var arr = this.values\n\n for (var i = 0, len = arr.length; i < len; i += 2) {\n obj[arr[i]] = arr[i + 1]\n }\n\n return obj\n },\n\n toArray: function () {\n return this.values\n }\n }\n})\n\nSVG.MorphableTypes = [\n SVG.Number,\n SVG.Color,\n SVG.Box,\n SVG.Matrix,\n SVG.Array,\n SVG.PointArray,\n SVG.PathArray,\n SVG.Morphable.NonMorphable,\n SVG.Morphable.TransformBag,\n SVG.Morphable.ObjectBag\n]\n\nSVG.extend(SVG.MorphableTypes, {\n to: function (val, args) {\n return new SVG.Morphable()\n .type(this.constructor)\n .from(this.valueOf())\n .to(val, args)\n },\n fromArray: function (arr) {\n this.constructor(arr)\n return this\n }\n})\n","/* global isMatrixLike getOrigin */\n\nSVG.easing = {\n '-': function (pos) { return pos },\n '<>': function (pos) { return -Math.cos(pos * Math.PI) / 2 + 0.5 },\n '>': function (pos) { return Math.sin(pos * Math.PI / 2) },\n '<': function (pos) { return -Math.cos(pos * Math.PI / 2) + 1 }\n}\n\nSVG.Runner = SVG.invent({\n parent: SVG.Element,\n\n create: function (options) {\n // Store a unique id on the runner, so that we can identify it later\n this.id = SVG.Runner.id++\n\n // Ensure a default value\n options = options == null\n ? SVG.defaults.timeline.duration\n : options\n\n // Ensure that we get a controller\n options = typeof options === 'function'\n ? new SVG.Controller(options)\n : options\n\n // Declare all of the variables\n this._element = null\n this._timeline = null\n this.done = false\n this._queue = []\n\n // Work out the stepper and the duration\n this._duration = typeof options === 'number' && options\n this._isDeclarative = options instanceof SVG.Controller\n this._stepper = this._isDeclarative ? options : new SVG.Ease()\n\n // We copy the current values from the timeline because they can change\n this._history = {}\n\n // Store the state of the runner\n this.enabled = true\n this._time = 0\n this._last = 0\n\n // Save transforms applied to this runner\n this.transforms = new SVG.Matrix()\n this.transformId = 1\n\n // Looping variables\n this._haveReversed = false\n this._reverse = false\n this._loopsDone = 0\n this._swing = false\n this._wait = 0\n this._times = 1\n },\n\n construct: {\n\n animate: function (duration, delay, when) {\n var o = SVG.Runner.sanitise(duration, delay, when)\n var timeline = this.timeline()\n return new SVG.Runner(o.duration)\n .loop(o)\n .element(this)\n .timeline(timeline)\n .schedule(delay, when)\n },\n\n delay: function (by, when) {\n return this.animate(0, by, when)\n }\n },\n\n extend: {\n\n /*\n Runner Definitions\n ==================\n These methods help us define the runtime behaviour of the Runner or they\n help us make new runners from the current runner\n */\n\n element: function (element) {\n if (element == null) return this._element\n this._element = element\n element._prepareRunner()\n return this\n },\n\n timeline: function (timeline) {\n // check explicitly for undefined so we can set the timeline to null\n if (typeof timeline === 'undefined') return this._timeline\n this._timeline = timeline\n return this\n },\n\n animate: function (duration, delay, when) {\n var o = SVG.Runner.sanitise(duration, delay, when)\n var runner = new SVG.Runner(o.duration)\n if (this._timeline) runner.timeline(this._timeline)\n if (this._element) runner.element(this._element)\n return runner.loop(o).schedule(delay, when)\n },\n\n schedule: function (timeline, delay, when) {\n // The user doesn't need to pass a timeline if we already have one\n if (!(timeline instanceof SVG.Timeline)) {\n when = delay\n delay = timeline\n timeline = this.timeline()\n }\n\n // If there is no timeline, yell at the user...\n if (!timeline) {\n throw Error('Runner cannot be scheduled without timeline')\n }\n\n // Schedule the runner on the timeline provided\n timeline.schedule(this, delay, when)\n return this\n },\n\n unschedule: function () {\n var timeline = this.timeline()\n timeline && timeline.unschedule(this)\n return this\n },\n\n loop: function (times, swing, wait) {\n // Deal with the user passing in an object\n if (typeof times === 'object') {\n swing = times.swing\n wait = times.wait\n times = times.times\n }\n\n // Sanitise the values and store them\n this._times = times || Infinity\n this._swing = swing || false\n this._wait = wait || 0\n return this\n },\n\n delay: function (delay) {\n return this.animate(0, delay)\n },\n\n /*\n Basic Functionality\n ===================\n These methods allow us to attach basic functions to the runner directly\n */\n\n queue: function (initFn, runFn, isTransform) {\n this._queue.push({\n initialiser: initFn || SVG.void,\n runner: runFn || SVG.void,\n isTransform: isTransform,\n initialised: false,\n finished: false\n })\n var timeline = this.timeline()\n timeline && this.timeline()._continue()\n return this\n },\n\n during: function (fn) {\n return this.queue(null, fn)\n },\n\n after (fn) {\n return this.on('finish', fn)\n },\n\n /*\n Runner animation methods\n ========================\n Control how the animation plays\n */\n\n time: function (time) {\n if (time == null) {\n return this._time\n }\n let dt = time - this._time\n this.step(dt)\n return this\n },\n\n duration: function () {\n return this._times * (this._wait + this._duration) - this._wait\n },\n\n loops: function (p) {\n var loopDuration = this._duration + this._wait\n if (p == null) {\n var loopsDone = Math.floor(this._time / loopDuration)\n var relativeTime = (this._time - loopsDone * loopDuration)\n var position = relativeTime / this._duration\n return Math.min(loopsDone + position, this._times)\n }\n var whole = Math.floor(p)\n var partial = p % 1\n var time = loopDuration * whole + this._duration * partial\n return this.time(time)\n },\n\n position: function (p) {\n // Get all of the variables we need\n var x = this._time\n var d = this._duration\n var w = this._wait\n var t = this._times\n var s = this._swing\n var r = this._reverse\n var position\n\n if (p == null) {\n /*\n This function converts a time to a position in the range [0, 1]\n The full explanation can be found in this desmos demonstration\n https://www.desmos.com/calculator/u4fbavgche\n The logic is slightly simplified here because we can use booleans\n */\n\n // Figure out the value without thinking about the start or end time\n const f = function (x) {\n var swinging = s * Math.floor(x % (2 * (w + d)) / (w + d))\n var backwards = (swinging && !r) || (!swinging && r)\n var uncliped = Math.pow(-1, backwards) * (x % (w + d)) / d + backwards\n var clipped = Math.max(Math.min(uncliped, 1), 0)\n return clipped\n }\n\n // Figure out the value by incorporating the start time\n var endTime = t * (w + d) - w\n position = x <= 0 ? Math.round(f(1e-5))\n : x < endTime ? f(x)\n : Math.round(f(endTime - 1e-5))\n return position\n }\n\n // Work out the loops done and add the position to the loops done\n var loopsDone = Math.floor(this.loops())\n var swingForward = s && (loopsDone % 2 === 0)\n var forwards = (swingForward && !r) || (r && swingForward)\n position = loopsDone + (forwards ? p : 1 - p)\n return this.loops(position)\n },\n\n progress: function (p) {\n if (p == null) {\n return Math.min(1, this._time / this.duration())\n }\n return this.time(p * this.duration())\n },\n\n step: function (dt) {\n // If we are inactive, this stepper just gets skipped\n if (!this.enabled) return this\n\n // Update the time and get the new position\n dt = dt == null ? 16 : dt\n this._time += dt\n var position = this.position()\n\n // Figure out if we need to run the stepper in this frame\n var running = this._lastPosition !== position && this._time >= 0\n this._lastPosition = position\n\n // Figure out if we just started\n var duration = this.duration()\n var justStarted = this._lastTime < 0 && this._time > 0\n var justFinished = this._lastTime < this._time && this.time > duration\n this._lastTime = this._time\n if (justStarted) {\n // this.fire('start', this)\n }\n\n // Work out if the runner is finished set the done flag here so animations\n // know, that they are running in the last step (this is good for\n // transformations which can be merged)\n var declarative = this._isDeclarative\n this.done = !declarative && !justFinished && this._time >= duration\n\n // Call initialise and the run function\n if (running || declarative) {\n this._initialise(running)\n\n // clear the transforms on this runner so they dont get added again and again\n this.transforms = new SVG.Matrix()\n var converged = this._run(declarative ? dt : position)\n // this.fire('step', this)\n }\n // correct the done flag here\n // declaritive animations itself know when they converged\n this.done = this.done || (converged && declarative)\n // if (this.done) {\n // this.fire('finish', this)\n // }\n return this\n },\n\n finish: function () {\n return this.step(Infinity)\n },\n\n reverse: function (reverse) {\n this._reverse = reverse == null ? !this._reverse : reverse\n return this\n },\n\n ease: function (fn) {\n this._stepper = new SVG.Ease(fn)\n return this\n },\n\n active: function (enabled) {\n if (enabled == null) return this.enabled\n this.enabled = enabled\n return this\n },\n\n /*\n Private Methods\n ===============\n Methods that shouldn't be used externally\n */\n\n // Save a morpher to the morpher list so that we can retarget it later\n _rememberMorpher: function (method, morpher) {\n this._history[method] = {\n morpher: morpher,\n caller: this._queue[this._queue.length - 1]\n }\n },\n\n // Try to set the target for a morpher if the morpher exists, otherwise\n // do nothing and return false\n _tryRetarget: function (method, target) {\n if (this._history[method]) {\n // if the last method wasnt even initialised, throw it away\n if (!this._history[method].caller.initialised) {\n let index = this._queue.indexOf(this._history[method].caller)\n this._queue.splice(index, 1)\n return false\n }\n\n // for the case of transformations, we use the special retarget function\n // which has access to the outer scope\n if (this._history[method].caller.isTransform) {\n this._history[method].caller.isTransform(target)\n // for everything else a simple morpher change is sufficient\n } else {\n this._history[method].morpher.to(target)\n }\n\n this._history[method].caller.finished = false\n var timeline = this.timeline()\n timeline && timeline._continue()\n return true\n }\n return false\n },\n\n // Run each initialise function in the runner if required\n _initialise: function (running) {\n // If we aren't running, we shouldn't initialise when not declarative\n if (!running && !this._isDeclarative) return\n\n // Loop through all of the initialisers\n for (var i = 0, len = this._queue.length; i < len; ++i) {\n // Get the current initialiser\n var current = this._queue[i]\n\n // Determine whether we need to initialise\n var needsIt = this._isDeclarative || (!current.initialised && running)\n running = !current.finished\n\n // Call the initialiser if we need to\n if (needsIt && running) {\n current.initialiser.call(this)\n current.initialised = true\n }\n }\n },\n\n // Run each run function for the position or dt given\n _run: function (positionOrDt) {\n // Run all of the _queue directly\n var allfinished = true\n for (var i = 0, len = this._queue.length; i < len; ++i) {\n // Get the current function to run\n var current = this._queue[i]\n\n // Run the function if its not finished, we keep track of the finished\n // flag for the sake of declarative _queue\n var converged = current.runner.call(this, positionOrDt)\n current.finished = current.finished || (converged === true)\n allfinished = allfinished && current.finished\n }\n\n // We report when all of the constructors are finished\n return allfinished\n },\n\n addTransform: function (transform, index) {\n this.transforms.lmultiplyO(transform)\n return this\n },\n\n clearTransform: function () {\n this.transforms = new SVG.Matrix()\n return this\n }\n }\n})\n\nSVG.Runner.id = 0\n\nSVG.Runner.sanitise = function (duration, delay, when) {\n // Initialise the default parameters\n var times = 1\n var swing = false\n var wait = 0\n duration = duration || SVG.defaults.timeline.duration\n delay = delay || SVG.defaults.timeline.delay\n when = when || 'last'\n\n // If we have an object, unpack the values\n if (typeof duration === 'object' && !(duration instanceof SVG.Stepper)) {\n delay = duration.delay || delay\n when = duration.when || when\n swing = duration.swing || swing\n times = duration.times || times\n wait = duration.wait || wait\n duration = duration.duration || SVG.defaults.timeline.duration\n }\n\n return {\n duration: duration,\n delay: delay,\n swing: swing,\n times: times,\n wait: wait,\n when: when\n }\n}\n\nSVG.FakeRunner = class {\n constructor (transforms = new SVG.Matrix(), id = -1, done = true) {\n this.transforms = transforms\n this.id = id\n this.done = done\n }\n}\n\nSVG.extend([SVG.Runner, SVG.FakeRunner], {\n mergeWith (runner) {\n return new SVG.FakeRunner(\n runner.transforms.lmultiply(this.transforms),\n runner.id\n )\n }\n})\n\n// SVG.FakeRunner.emptyRunner = new SVG.FakeRunner()\n\nconst lmultiply = (last, curr) => last.lmultiplyO(curr)\nconst getRunnerTransform = (runner) => runner.transforms\n\nfunction mergeTransforms () {\n // Find the matrix to apply to the element and apply it\n let runners = this._transformationRunners.runners\n let netTransform = runners\n .map(getRunnerTransform)\n .reduce(lmultiply, new SVG.Matrix())\n\n this.transform(netTransform)\n\n this._transformationRunners.merge()\n\n if (this._transformationRunners.length() === 1) {\n this._frameId = null\n }\n}\n\nclass RunnerArray {\n constructor () {\n this.runners = []\n this.ids = []\n }\n\n add (runner) {\n if (this.runners.includes(runner)) return\n\n let id = runner.id + 1\n\n let leftSibling = this.ids.reduce((last, curr) => {\n if (curr > last && curr < id) return curr\n return last\n }, 0)\n\n let index = this.ids.indexOf(leftSibling) + 1\n\n this.ids.splice(index, 0, id)\n this.runners.splice(index, 0, runner)\n\n return this\n }\n\n getByID (id) {\n return this.runners[this.ids.indexOf(id + 1)]\n }\n\n remove (id) {\n let index = this.ids.indexOf(id + 1)\n this.ids.splice(index, 1)\n this.runners.splice(index, 1)\n return this\n }\n\n merge () {\n let lastRunner = null\n this.runners.forEach((runner, i) => {\n if (lastRunner && runner.done && lastRunner.done) {\n this.remove(runner.id)\n this.edit(lastRunner.id, runner.mergeWith(lastRunner))\n }\n\n lastRunner = runner\n })\n\n return this\n }\n\n edit (id, newRunner) {\n let index = this.ids.indexOf(id + 1)\n this.ids.splice(index, 1, id)\n this.runners.splice(index, 1, newRunner)\n return this\n }\n\n length () {\n return this.ids.length\n }\n\n clearBefore (id) {\n let deleteCnt = this.ids.indexOf(id + 1) || 1\n this.ids.splice(0, deleteCnt, 0)\n this.runners.splice(0, deleteCnt, new SVG.FakeRunner())\n return this\n }\n}\n\nSVG.extend(SVG.Element, {\n // this function searches for all runners on the element and deletes the ones\n // which run before the current one. This is because absolute transformations\n // overwfrite anything anyway so there is no need to waste time computing\n // other runners\n _clearTransformRunnersBefore: function (currentRunner) {\n this._transformationRunners.clearBefore(currentRunner.id)\n },\n\n _currentTransform (current) {\n return this._transformationRunners.runners\n // we need the equal sign here to make sure, that also transformations\n // on the same runner which execute before the current transformation are\n // taken into account\n .filter((runner) => runner.id <= current.id)\n .map(getRunnerTransform)\n .reduce(lmultiply, new SVG.Matrix())\n },\n\n addRunner: function (runner) {\n this._transformationRunners.add(runner)\n\n SVG.Animator.transform_frame(\n mergeTransforms.bind(this), this._frameId\n )\n },\n\n _prepareRunner: function () {\n if (this._frameId == null) {\n this._transformationRunners = new RunnerArray()\n .add(new SVG.FakeRunner(new SVG.Matrix(this)))\n\n this._frameId = SVG.Element.frameId++\n }\n }\n})\n\nSVG.Element.frameId = 0\n\nSVG.extend(SVG.Runner, {\n attr: function (a, v) {\n return this.styleAttr('attr', a, v)\n },\n\n // Add animatable styles\n css: function (s, v) {\n return this.styleAttr('css', s, v)\n },\n\n styleAttr (type, name, val) {\n // apply attributes individually\n if (typeof name === 'object') {\n for (var key in val) {\n this.styleAttr(type, key, val[key])\n }\n }\n\n var morpher = new SVG.Morphable(this._stepper).to(val)\n\n this.queue(function () {\n morpher = morpher.from(this.element()[type](name))\n }, function (pos) {\n this.element()[type](name, morpher.at(pos))\n return morpher.done()\n })\n\n return this\n },\n\n zoom: function (level, point) {\n var morpher = new SVG.Morphable(this._stepper).to(new SVG.Number(level))\n\n this.queue(function () {\n morpher = morpher.from(this.zoom())\n }, function (pos) {\n this.element().zoom(morpher.at(pos), point)\n return morpher.done()\n })\n\n return this\n },\n\n /**\n ** absolute transformations\n **/\n\n //\n // M v -----|-----(D M v = F v)------|-----> T v\n //\n // 1. define the final state (T) and decompose it (once)\n // t = [tx, ty, the, lam, sy, sx]\n // 2. on every frame: pull the current state of all previous transforms\n // (M - m can change)\n // and then write this as m = [tx0, ty0, the0, lam0, sy0, sx0]\n // 3. Find the interpolated matrix F(pos) = m + pos * (t - m)\n // - Note F(0) = M\n // - Note F(1) = T\n // 4. Now you get the delta matrix as a result: D = F * inv(M)\n\n transform: function (transforms, relative, affine) {\n // If we have a declarative function, we should retarget it if possible\n relative = transforms.relative || relative\n if (this._isDeclarative && !relative && this._tryRetarget('transform', transforms)) {\n return this\n }\n\n // Parse the parameters\n var isMatrix = isMatrixLike(transforms)\n affine = transforms.affine != null\n ? transforms.affine\n : (affine != null ? affine : !isMatrix)\n\n // Create a morepher and set its type\n const morpher = new SVG.Morphable()\n .type(affine ? SVG.Morphable.TransformBag : SVG.Matrix)\n .stepper(this._stepper)\n\n let origin\n let element\n let current\n let currentAngle\n let startTransform\n\n function setup () {\n // make sure element and origin is defined\n element = element || this.element()\n origin = origin || getOrigin(transforms, element)\n\n startTransform = new SVG.Matrix(relative ? undefined : element)\n\n // add the runner to the element so it can merge transformations\n element.addRunner(this)\n\n // Deactivate all transforms that have run so far if we are absolute\n if (!relative) {\n element._clearTransformRunnersBefore(this)\n }\n }\n\n function run (pos) {\n // clear all other transforms before this in case something is saved\n // on this runner. We are absolute. We dont need these!\n if (!relative) this.clearTransform()\n\n let {x, y} = new SVG.Point(origin).transform(element._currentTransform(this))\n\n let target = new SVG.Matrix({...transforms, origin: [x, y]})\n let start = this._isDeclarative && current\n ? current\n : startTransform\n\n if (affine) {\n target = target.decompose(x, y)\n start = start.decompose(x, y)\n\n // Get the current and target angle as it was set\n const rTarget = target.rotate\n const rCurrent = start.rotate\n\n // Figure out the shortest path to rotate directly\n const possibilities = [rTarget - 360, rTarget, rTarget + 360]\n const distances = possibilities.map(a => Math.abs(a - rCurrent))\n const shortest = Math.min(...distances)\n const index = distances.indexOf(shortest)\n target.rotate = possibilities[index]\n }\n\n if (relative) {\n // we have to be careful here not to overwrite the rotation\n // with the rotate method of SVG.Matrix\n if (!isMatrix) {\n target.rotate = transforms.rotate || 0\n }\n if (this._isDeclarative && currentAngle) {\n start.rotate = currentAngle\n }\n }\n\n morpher.from(start)\n morpher.to(target)\n\n let affineParameters = morpher.at(pos)\n currentAngle = affineParameters.rotate\n current = new SVG.Matrix(affineParameters)\n\n this.addTransform(current)\n return morpher.done()\n }\n\n function retarget (newTransforms) {\n // only get a new origin if it changed since the last call\n if (\n (newTransforms.origin || 'center').toString() !==\n (transforms.origin || 'center').toString()\n ) {\n origin = getOrigin(transforms, element)\n }\n\n // overwrite the old transformations with the new ones\n transforms = {...newTransforms, origin}\n }\n\n this.queue(setup, run, retarget)\n this._isDeclarative && this._rememberMorpher('transform', morpher)\n return this\n },\n\n // Animatable x-axis\n x: function (x, relative) {\n return this._queueNumber('x', x)\n },\n\n // Animatable y-axis\n y: function (y) {\n return this._queueNumber('y', y)\n },\n\n dx: function (x) {\n return this._queueNumberDelta('dx', x)\n },\n\n dy: function (y) {\n return this._queueNumberDelta('dy', y)\n },\n\n _queueNumberDelta: function (method, to) {\n to = new SVG.Number(to)\n\n // Try to change the target if we have this method already registerd\n if (this._tryRetargetDelta(method, to)) return this\n\n // Make a morpher and queue the animation\n var morpher = new SVG.Morphable(this._stepper).to(to)\n this.queue(function () {\n var from = this.element()[method]()\n morpher.from(from)\n morpher.to(from + to)\n }, function (pos) {\n this.element()[method](morpher.at(pos))\n return morpher.done()\n })\n\n // Register the morpher so that if it is changed again, we can retarget it\n this._rememberMorpher(method, morpher)\n return this\n },\n\n _queueObject: function (method, to) {\n // Try to change the target if we have this method already registerd\n if (this._tryRetarget(method, to)) return this\n\n // Make a morpher and queue the animation\n var morpher = new SVG.Morphable(this._stepper).to(to)\n this.queue(function () {\n morpher.from(this.element()[method]())\n }, function (pos) {\n this.element()[method](morpher.at(pos))\n return morpher.done()\n })\n\n // Register the morpher so that if it is changed again, we can retarget it\n this._rememberMorpher(method, morpher)\n return this\n },\n\n _queueNumber: function (method, value) {\n return this._queueObject(method, new SVG.Number(value))\n },\n\n // Animatable center x-axis\n cx: function (x) {\n return this._queueNumber('cx', x)\n },\n\n // Animatable center y-axis\n cy: function (y) {\n return this._queueNumber('cy', y)\n },\n\n // Add animatable move\n move: function (x, y) {\n return this.x(x).y(y)\n },\n\n // Add animatable center\n center: function (x, y) {\n return this.cx(x).cy(y)\n },\n\n // Add animatable size\n size: function (width, height) {\n // animate bbox based size for all other elements\n var box\n\n if (!width || !height) {\n box = this._element.bbox()\n }\n\n if (!width) {\n width = box.width / box.height * height\n }\n\n if (!height) {\n height = box.height / box.width * width\n }\n\n return this\n .width(width)\n .height(height)\n },\n\n // Add animatable width\n width: function (width) {\n return this._queueNumber('width', width)\n },\n\n // Add animatable height\n height: function (height) {\n return this._queueNumber('height', height)\n },\n\n // Add animatable plot\n plot: function (a, b, c, d) {\n // Lines can be plotted with 4 arguments\n if (arguments.length === 4) {\n return this.plot([a, b, c, d])\n }\n\n // FIXME: this needs to be rewritten such that the element is only accesed\n // in the init function\n return this._queueObject('plot', new this._element.MorphArray(a))\n\n /*\n var morpher = this._element.morphArray().to(a)\n\n this.queue(function () {\n morpher.from(this._element.array())\n }, function (pos) {\n this._element.plot(morpher.at(pos))\n })\n\n return this\n */\n },\n\n // Add leading method\n leading: function (value) {\n return this._queueNumber('leading', value)\n },\n\n // Add animatable viewbox\n viewbox: function (x, y, width, height) {\n return this._queueObject('viewbox', new SVG.Box(x, y, width, height))\n },\n\n update: function (o) {\n if (typeof o !== 'object') {\n return this.update({\n offset: arguments[0],\n color: arguments[1],\n opacity: arguments[2]\n })\n }\n\n if (o.opacity != null) this.attr('stop-opacity', o.opacity)\n if (o.color != null) this.attr('stop-color', o.color)\n if (o.offset != null) this.attr('offset', o.offset)\n\n return this\n }\n})\n","\n// Must Change ....\nSVG.easing = {\n '-': function (pos) { return pos },\n '<>': function (pos) { return -Math.cos(pos * Math.PI) / 2 + 0.5 },\n '>': function (pos) { return Math.sin(pos * Math.PI / 2) },\n '<': function (pos) { return -Math.cos(pos * Math.PI / 2) + 1 }\n}\n\nvar time = window.performance || Date\n\nvar makeSchedule = function (runnerInfo) {\n var start = runnerInfo.start\n var duration = runnerInfo.runner.duration()\n var end = start + duration\n return {start: start, duration: duration, end: end, runner: runnerInfo.runner}\n}\n\nSVG.Timeline = SVG.invent({\n inherit: SVG.EventTarget,\n\n // Construct a new timeline on the given element\n create: function () {\n this._timeSource = function () {\n return time.now()\n }\n\n this._dispatcher = document.createElement('div')\n\n // Store the timing variables\n this._startTime = 0\n this._speed = 1.0\n\n // Play control variables control how the animation proceeds\n this._reverse = false\n this._persist = 0\n\n // Keep track of the running animations and their starting parameters\n this._nextFrame = null\n this._paused = false\n this._runners = []\n this._order = []\n this._time = 0\n this._lastSourceTime = 0\n this._lastStepTime = 0\n },\n\n extend: {\n\n getEventTarget () {\n return this._dispatcher\n },\n\n /**\n *\n */\n\n // schedules a runner on the timeline\n schedule (runner, delay, when) {\n if (runner == null) {\n return this._runners.map(makeSchedule).sort(function (a, b) {\n return (a.start - b.start) || (a.duration - b.duration)\n })\n }\n\n if (!this.active()) {\n this._step()\n if (when == null) {\n when = 'now'\n }\n }\n\n // The start time for the next animation can either be given explicitly,\n // derived from the current timeline time or it can be relative to the\n // last start time to chain animations direclty\n var absoluteStartTime = 0\n delay = delay || 0\n\n // Work out when to start the animation\n if (when == null || when === 'last' || when === 'after') {\n // Take the last time and increment\n absoluteStartTime = this._startTime\n } else if (when === 'absolute' || when === 'start') {\n absoluteStartTime = delay\n delay = 0\n } else if (when === 'now') {\n absoluteStartTime = this._time\n } else if (when === 'relative') {\n let runnerInfo = this._runners[runner.id]\n if (runnerInfo) {\n absoluteStartTime = runnerInfo.start + delay\n delay = 0\n }\n } else {\n throw new Error('Invalid value for the \"when\" parameter')\n }\n\n // Manage runner\n runner.unschedule()\n runner.timeline(this)\n runner.time(-delay)\n\n // Save startTime for next runner\n this._startTime = absoluteStartTime + runner.duration() + delay\n\n // Save runnerInfo\n this._runners[runner.id] = {\n persist: this.persist(),\n runner: runner,\n start: absoluteStartTime\n }\n\n // Save order and continue\n this._order.push(runner.id)\n this._continue()\n return this\n },\n\n // Remove the runner from this timeline\n unschedule (runner) {\n var index = this._order.indexOf(runner.id)\n if (index < 0) return this\n\n delete this._runners[runner.id]\n this._order.splice(index, 1)\n runner.timeline(null)\n return this\n },\n\n play () {\n // Now make sure we are not paused and continue the animation\n this._paused = false\n return this._continue()\n },\n\n pause () {\n // Cancel the next animation frame and pause\n this._nextFrame = null\n this._paused = true\n return this\n },\n\n stop () {\n // Cancel the next animation frame and go to start\n this.seek(-this._time)\n return this.pause()\n },\n\n finish () {\n this.seek(Infinity)\n return this.pause()\n },\n\n speed (speed) {\n if (speed == null) return this._speed\n this._speed = speed\n return this\n },\n\n reverse (yes) {\n var currentSpeed = this.speed()\n if (yes == null) return this.speed(-currentSpeed)\n\n var positive = Math.abs(currentSpeed)\n return this.speed(yes ? positive : -positive)\n },\n\n seek (dt) {\n this._time += dt\n return this._continue()\n },\n\n time (time) {\n if (time == null) return this._time\n this._time = time\n return this\n },\n\n persist (dtOrForever) {\n if (dtOrForever == null) return this._persist\n this._persist = dtOrForever\n return this\n },\n\n source (fn) {\n if (fn == null) return this._timeSource\n this._timeSource = fn\n return this\n },\n\n _step () {\n // If the timeline is paused, just do nothing\n if (this._paused) return\n\n // Get the time delta from the last time and update the time\n // TODO: Deal with window.blur window.focus to pause animations\n var time = this._timeSource()\n var dtSource = time - this._lastSourceTime\n var dtTime = this._speed * dtSource + (this._time - this._lastStepTime)\n this._lastSourceTime = time\n\n // Update the time\n this._time += dtTime\n this._lastStepTime = this._time\n // this.fire('time', this._time)\n\n // Run all of the runners directly\n var runnersLeft = false\n for (var i = 0, len = this._order.length; i < len; i++) {\n // Get and run the current runner and ignore it if its inactive\n var runnerInfo = this._runners[this._order[i]]\n var runner = runnerInfo.runner\n let dt = dtTime\n\n // Make sure that we give the actual difference\n // between runner start time and now\n let dtToStart = this._time - runnerInfo.start\n\n // Dont run runner if not started yet\n if (dtToStart < 0) {\n runnersLeft = true\n continue\n } else if (dtToStart < dt) {\n // Adjust dt to make sure that animation is on point\n dt = dtToStart\n }\n\n if (!runner.active()) continue\n\n // If this runner is still going, signal that we need another animation\n // frame, otherwise, remove the completed runner\n var finished = runner.step(dt).done\n if (!finished) {\n runnersLeft = true\n // continue\n } else if (runnerInfo.persist !== true) {\n // runner is finished. And runner might get removed\n\n // TODO: Figure out end time of runner\n var endTime = runner.duration() - runner.time() + this._time\n\n if (endTime + this._persist < this._time) {\n // Delete runner and correct index\n delete this._runners[this._order[i]]\n this._order.splice(i--, 1) && --len\n runner.timeline(null)\n }\n }\n }\n\n // Get the next animation frame to keep the simulation going\n if (runnersLeft) {\n this._nextFrame = SVG.Animator.frame(this._step.bind(this))\n } else {\n this._nextFrame = null\n }\n return this\n },\n\n // Checks if we are running and continues the animation\n _continue () {\n if (this._paused) return this\n if (!this._nextFrame) {\n this._nextFrame = SVG.Animator.frame(this._step.bind(this))\n }\n return this\n },\n\n active () {\n return !!this._nextFrame\n }\n },\n\n // These methods will be added to all SVG.Element objects\n parent: SVG.Element,\n construct: {\n timeline: function () {\n this._timeline = (this._timeline || new SVG.Timeline())\n return this._timeline\n }\n }\n})\n","\n// c = {\n// finished: Whether or not we are finished\n// }\n\n/***\nBase Class\n==========\nThe base stepper class that will be\n***/\n\nfunction makeSetterGetter (k, f) {\n return function (v) {\n if (v == null) return this[v]\n this[k] = v\n if (f) f.call(this)\n return this\n }\n}\n\nSVG.Stepper = SVG.invent({\n create: function () {}\n})\n\n/***\nEasing Functions\n================\n***/\n\nSVG.Ease = SVG.invent({\n inherit: SVG.Stepper,\n\n create: function (fn) {\n SVG.Stepper.call(this, fn)\n\n this.ease = SVG.easing[fn || SVG.defaults.timeline.ease] || fn\n },\n\n extend: {\n\n step: function (from, to, pos) {\n if (typeof from !== 'number') {\n return pos < 1 ? from : to\n }\n return from + (to - from) * this.ease(pos)\n },\n\n done: function (dt, c) {\n return false\n }\n }\n})\n\nSVG.easing = {\n '-': function (pos) { return pos },\n '<>': function (pos) { return -Math.cos(pos * Math.PI) / 2 + 0.5 },\n '>': function (pos) { return Math.sin(pos * Math.PI / 2) },\n '<': function (pos) { return -Math.cos(pos * Math.PI / 2) + 1 },\n bezier: function (t0, x0, t1, x1) {\n return function (t) {\n // TODO: FINISH\n }\n }\n}\n\n/***\nController Types\n================\n***/\n\nSVG.Controller = SVG.invent({\n inherit: SVG.Stepper,\n\n create: function (fn) {\n SVG.Stepper.call(this, fn)\n this.stepper = fn\n },\n\n extend: {\n\n step: function (current, target, dt, c) {\n return this.stepper(current, target, dt, c)\n },\n\n done: function (c) {\n return c.done\n }\n }\n})\n\nfunction recalculate () {\n // Apply the default parameters\n var duration = (this._duration || 500) / 1000\n var overshoot = this._overshoot || 0\n\n // Calculate the PID natural response\n var eps = 1e-10\n var pi = Math.PI\n var os = Math.log(overshoot / 100 + eps)\n var zeta = -os / Math.sqrt(pi * pi + os * os)\n var wn = 3.9 / (zeta * duration)\n\n // Calculate the Spring values\n this.d = 2 * zeta * wn\n this.k = wn * wn\n}\n\nSVG.Spring = SVG.invent({\n inherit: SVG.Controller,\n\n create: function (duration, overshoot) {\n this.duration(duration || 500)\n .overshoot(overshoot || 0)\n },\n\n extend: {\n step: function (current, target, dt, c) {\n if (typeof current === 'string') return current\n c.done = dt === Infinity\n if (dt === Infinity) return target\n if (dt === 0) return current\n\n if (dt > 100) dt = 16\n\n dt /= 1000\n\n // Get the previous velocity\n var velocity = c.velocity || 0\n\n // Apply the control to get the new position and store it\n var acceleration = -this.d * velocity - this.k * (current - target)\n var newPosition = current +\n velocity * dt +\n acceleration * dt * dt / 2\n\n // Store the velocity\n c.velocity = velocity + acceleration * dt\n\n // Figure out if we have converged, and if so, pass the value\n c.done = Math.abs(target - newPosition) + Math.abs(velocity) < 0.002\n return c.done ? target : newPosition\n },\n\n duration: makeSetterGetter('_duration', recalculate),\n overshoot: makeSetterGetter('_overshoot', recalculate)\n }\n})\n\nSVG.PID = SVG.invent({\n inherit: SVG.Controller,\n\n create: function (p, i, d, windup) {\n SVG.Controller.call(this)\n\n p = p == null ? 0.1 : p\n i = i == null ? 0.01 : i\n d = d == null ? 0 : d\n windup = windup == null ? 1000 : windup\n this.p(p).i(i).d(d).windup(windup)\n },\n\n extend: {\n step: function (current, target, dt, c) {\n if (typeof current === 'string') return current\n c.done = dt === Infinity\n\n if (dt === Infinity) return target\n if (dt === 0) return current\n\n var p = target - current\n var i = (c.integral || 0) + p * dt\n var d = (p - (c.error || 0)) / dt\n var windup = this.windup\n\n // antiwindup\n if (windup !== false) {\n i = Math.max(-windup, Math.min(i, windup))\n }\n\n c.error = p\n c.integral = i\n\n c.done = Math.abs(p) < 0.001\n\n return c.done ? target : current + (this.P * p + this.I * i + this.D * d)\n },\n\n windup: makeSetterGetter('windup'),\n p: makeSetterGetter('P'),\n i: makeSetterGetter('I'),\n d: makeSetterGetter('D')\n }\n})\n"]} \ No newline at end of file +{"version":3,"sources":["svg.js","regex.js","utilities.js","default.js","queue.js","color.js","array.js","pointarray.js","patharray.js","number.js","eventtarget.js","HtmlNode.js","element.js","event.js","matrix.js","point.js","attr.js","transform.js","css.js","parent.js","flatten.js","container.js","defs.js","group.js","arrange.js","mask.js","clip.js","gradient.js","pattern.js","doc.js","shape.js","bare.js","symbol.js","use.js","rect.js","ellipse.js","line.js","poly.js","pointed.js","path.js","image.js","text.js","textpath.js","hyperlink.js","marker.js","sugar.js","data.js","memory.js","selector.js","helpers.js","boxes.js","parser.js","animator.js","morph.js","runner.js","timeline.js","controller.js"],"names":["SVG","window","element","supported","createElement","ns","xmlns","xlink","svgjs","did","eid","name","capitalize","create","document","createElementNS","extend","modules","methods","key","i","Array","isArray","length","prototype","invent","config","initializer","node","inherit","call","constructor","construct","parent","Container","adopt","instance","Element","SVGElement","HtmlNode","nodeName","Doc","Gradient","Parent","regex","numberAndUnit","hex","rgb","reference","transforms","whitespace","isHex","isRgb","isCss","isBlank","isNumber","isPercent","isImage","delimiter","hyphen","pathLetters","isPathLetter","numbersWithDots","dots","utils","map","array","block","il","result","push","filter","radians","d","Math","PI","degrees","r","filterSVGElements","nodes","el","void","defaults","timeline","duration","ease","delay","attrs","fill","stroke","opacity","x","y","cx","cy","width","height","rx","ry","offset","Queue","_first","_last","value","item","next","prev","shift","remove","first","last","Color","color","g","b","match","test","exec","replace","parseInt","fullHex","arguments","toString","toHex","toArray","fromArray","a","compToHex","round","toRgb","join","brightness","morph","destination","at","pos","isColor","fallback","valueOf","parse","lastValue","lastDestination","settle","seen","indexOf","trim","split","parseFloat","reverse","clone","arrayClone","PointArray","reduce","curr","concat","toLine","x1","y1","x2","y2","points","pop","len","move","box","bbox","isNaN","size","maxX","Infinity","maxY","minX","minY","forEach","max","min","pathHandlers","M","c","p","p0","L","H","V","C","S","Q","T","Z","A","mlhvqtcsaz","j","jl","toUpperCase","PathArray","arrayToString","l","equalCommands","pathArray","sourceArray","destinationArray","s","paramCnt","pathRegReplace","Point","index","slice","parser","path","setAttribute","getBBox","Number","unit","isFinite","toJSON","plus","number","minus","times","divide","relative","EventTarget","on","event","listener","binding","options","off","dispatch","data","fire","add","children","insertBefore","put","getEventTarget","events","dom","type","hasAttribute","setData","JSON","getAttribute","attr","center","proportionalSize","writeDataToDom","assignNewId","cloneNode","after","removeElement","addTo","putIn","id","inside","show","css","hide","visible","classes","hasClass","addClass","removeClass","toggleClass","get","parentNode","matches","doc","defs","parents","selector","native","svg","well","innerHTML","appendChild","firstElementChild","each","outerHTML","is","removeAttribute","Object","keys","stringify","o","obj","f","listenerId","bind","n","bag","_svgjsListenerId","ev","addEventListener","namespace","removeEventListener","Event","dispatchEvent","CustomEvent","detail","cancelable","Matrix","source","base","arrayToMatrix","matrixify","isMatrixLike","transform","e","matrix","multiplyO","t","formatTransforms","current","ox","oy","transformer","translateO","lmultiplyO","scaleO","scaleX","scaleY","skewO","skewX","skewY","shearO","shear","rotateO","theta","px","py","origin","dx","dy","tx","ty","compose","originX","originY","sx","sy","lam","rotate","translateX","translateY","decompose","determinant","ccw","sqrt","thetaRad","atan2","ct","cos","st","sin","multiply","matrixMultiply","lmultiply","inverseO","det","Error","na","nb","nc","nd","ne","nf","inverse","translate","scale","flip","axis","around","flipO","lx","skew","tan","ly","skewXO","skewYO","aroundO","createSVGMatrix","abcdef","equals","other","comp","closeEnough","ctm","getCTM","screenCTM","isRoot","rect","m","getScreenCTM","point","createSVGPoint","v","attributes","nodeValue","image","Image","pattern","leading","setAttributeNS","rebuild","untransform","str","kv","apply","toParent","pCtm","toDoc","decomposed","getOrigin","cleanRelative","ret","style","cssText","camelCase","has","deep","removeChild","clear","hasChildNodes","lastChild","_defs","flatten","G","Defs","ungroup","group","siblings","position","forward","backward","front","back","before","Mask","targets","unmask","select","mask","maskWith","masker","ClipPath","unclip","clip","clipWith","clipper","stop","Stop","update","url","gradient","Timeline","from","_target","fx","fy","to","Pattern","patternUnits","version","getElementsByTagName","nested","Shape","Bare","method","words","text","createTextNode","Symbol","symbol","Use","file","use","Rect","Circle","circle","Ellipse","ellipse","Line","plot","line","Polyline","polyline","Polygon","polygon","_array","MorphArray","Path","load","callback","img","ratio","src","Text","_rebuild","_build","undefined","childNodes","firstLine","nodeType","newLined","textContent","build","tspan","newLine","self","blankLineOffset","plain","Tspan","getComputedTextLength","TextPath","track","textPath","txt","target","link","linkTo","Marker","ref","marker","viewbox","sugar","prefix","extension","mat","angle","direction","directionString","dmove","radius","getTotalLength","pointAt","getPointAtLength","font","remember","k","memory","forget","_memory","getElementById","idFromReference","query","querySelectorAll","$$","$","querySelector","makeNested","charAt","isNulledBox","w","h","domContains","documentElement","contains","arr","matchesSelector","msMatchesSelector","mozMatchesSelector","webkitMatchesSelector","oMatchesSelector","toLowerCase","substring","ensureCentre","fullBox","threshold","abs","flipBoth","flipX","flipY","positionX","positionY","relativeX","relativeY","string","bx","includes","by","Box","left","top","merge","xMin","xMax","yMin","yMax","pts","addOffset","pageXOffset","pageYOffset","Exception","console","warn","rbox","getBoundingClientRect","ForeignObject","View","body","overflow","Animator","nextDraw","frames","timeouts","timer","performance","Date","frame","fn","run","requestAnimationFrame","_draw","transform_frame","timeout","time","now","cancelFrame","clearTimeout","nextTimeout","lastTimeout","nextFrame","lastFrame","Morphable","stepper","_stepper","Ease","_from","_to","_type","_context","_morphObj","val","_set","NonMorphable","MorphableTypes","ObjectBag","done","complete","_this","step","TransformBag","assign","objOrArr","values","entries","sort","args","easing","Runner","Controller","_element","_timeline","_queue","_duration","_isDeclarative","_history","enabled","_time","transformId","_haveReversed","_reverse","_loopsDone","_swing","_wait","_times","animate","when","sanitise","loop","schedule","_prepareRunner","runner","unschedule","swing","wait","queue","initFn","runFn","isTransform","initialiser","initialised","finished","_continue","during","dt","loops","loopDuration","loopsDone","floor","relativeTime","whole","partial","swinging","backwards","uncliped","pow","clipped","endTime","swingForward","forwards","progress","running","_lastPosition","justStarted","_lastTime","justFinished","declarative","_initialise","converged","_run","finish","active","_rememberMorpher","morpher","caller","_tryRetarget","splice","needsIt","positionOrDt","allfinished","addTransform","clearTransform","Stepper","FakeRunner","mergeWith","getRunnerTransform","mergeTransforms","runners","_transformationRunners","netTransform","_frameId","RunnerArray","ids","leftSibling","lastRunner","edit","newRunner","deleteCnt","_clearTransformRunnersBefore","currentRunner","clearBefore","_currentTransform","addRunner","frameId","styleAttr","zoom","level","affine","isMatrix","currentAngle","startTransform","setup","start","rTarget","rCurrent","possibilities","distances","shortest","affineParameters","retarget","newTransforms","_queueNumber","_queueNumberDelta","_tryRetargetDelta","_queueObject","makeSchedule","runnerInfo","end","_timeSource","_dispatcher","_startTime","_speed","_persist","_nextFrame","_paused","_runners","_order","_lastSourceTime","_lastStepTime","_step","absoluteStartTime","persist","play","pause","seek","speed","yes","currentSpeed","positive","dtOrForever","dtSource","dtTime","runnersLeft","dtToStart","makeSetterGetter","bezier","t0","x0","t1","recalculate","overshoot","_overshoot","eps","pi","os","log","zeta","wn","Spring","velocity","acceleration","newPosition","PID","windup","integral","error","P","I","D"],"mappings":"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","file":"svg.js","sourcesContent":["/* global createElement, capitalize */\n/* eslint-disable new-cap */\n\n// The main wrapping element\nvar SVG = window.SVG = function (element) {\n if (SVG.supported) {\n element = createElement(element)\n return element\n }\n}\n\n// Svg must be supported if we reached this stage\nSVG.supported = true\n\n// Default namespaces\nSVG.ns = 'http://www.w3.org/2000/svg'\nSVG.xmlns = 'http://www.w3.org/2000/xmlns/'\nSVG.xlink = 'http://www.w3.org/1999/xlink'\nSVG.svgjs = 'http://svgjs.com/svgjs'\n\n// Element id sequence\nSVG.did = 1000\n\n// Get next named element id\nSVG.eid = function (name) {\n return 'Svgjs' + capitalize(name) + (SVG.did++)\n}\n\n// Method for element creation\nSVG.create = function (name) {\n // create element\n return document.createElementNS(this.ns, name)\n}\n\n// Method for extending objects\nSVG.extend = function (modules, methods) {\n var key, i\n\n modules = Array.isArray(modules) ? modules : [modules]\n\n for (i = modules.length - 1; i >= 0; i--) {\n if (modules[i]) {\n for (key in methods) {\n modules[i].prototype[key] = methods[key]\n }\n }\n }\n}\n\n// Invent new element\nSVG.invent = function (config) {\n // Create element initializer\n var initializer = typeof config.create === 'function' ? config.create\n : function (node) {\n config.inherit.call(this, node || SVG.create(config.create))\n }\n\n // Inherit prototype\n if (config.inherit) {\n initializer.prototype = new config.inherit()\n initializer.prototype.constructor = initializer\n }\n\n // Extend with methods\n if (config.extend) {\n SVG.extend(initializer, config.extend)\n }\n\n // Attach construct method to parent\n if (config.construct) { SVG.extend(config.parent || SVG.Container, config.construct) }\n\n return initializer\n}\n\n// Adopt existing svg elements\nSVG.adopt = function (node) {\n // check for presence of node\n if (!node) return null\n\n // make sure a node isn't already adopted\n if (node.instance instanceof SVG.Element) return node.instance\n\n if (!(node instanceof window.SVGElement)) {\n return new SVG.HtmlNode(node)\n }\n\n // initialize variables\n var element\n\n // adopt with element-specific settings\n if (node.nodeName === 'svg') {\n element = new SVG.Doc(node)\n } else if (node.nodeName === 'linearGradient' || node.nodeName === 'radialGradient') {\n element = new SVG.Gradient(node)\n } else if (SVG[capitalize(node.nodeName)]) {\n element = new SVG[capitalize(node.nodeName)](node)\n } else {\n element = new SVG.Parent(node)\n }\n\n return element\n}\n","// Storage for regular expressions\nSVG.regex = {\n // Parse unit value\n numberAndUnit: /^([+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?)([a-z%]*)$/i,\n\n // Parse hex value\n hex: /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i,\n\n // Parse rgb value\n rgb: /rgb\\((\\d+),(\\d+),(\\d+)\\)/,\n\n // Parse reference id\n reference: /#([a-z0-9\\-_]+)/i,\n\n // splits a transformation chain\n transforms: /\\)\\s*,?\\s*/,\n\n // Whitespace\n whitespace: /\\s/g,\n\n // Test hex value\n isHex: /^#[a-f0-9]{3,6}$/i,\n\n // Test rgb value\n isRgb: /^rgb\\(/,\n\n // Test css declaration\n isCss: /[^:]+:[^;]+;?/,\n\n // Test for blank string\n isBlank: /^(\\s+)?$/,\n\n // Test for numeric string\n isNumber: /^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\n\n // Test for percent value\n isPercent: /^-?[\\d.]+%$/,\n\n // Test for image url\n isImage: /\\.(jpg|jpeg|png|gif|svg)(\\?[^=]+.*)?/i,\n\n // split at whitespace and comma\n delimiter: /[\\s,]+/,\n\n // The following regex are used to parse the d attribute of a path\n\n // Matches all hyphens which are not after an exponent\n hyphen: /([^e])-/gi,\n\n // Replaces and tests for all path letters\n pathLetters: /[MLHVCSQTAZ]/gi,\n\n // yes we need this one, too\n isPathLetter: /[MLHVCSQTAZ]/i,\n\n // matches 0.154.23.45\n numbersWithDots: /((\\d?\\.\\d+(?:e[+-]?\\d+)?)((?:\\.\\d+(?:e[+-]?\\d+)?)+))+/gi,\n\n // matches .\n dots: /\\./g\n}\n","\nSVG.utils = {\n // Map function\n map: function (array, block) {\n var i\n var il = array.length\n var result = []\n\n for (i = 0; i < il; i++) {\n result.push(block(array[i]))\n }\n\n return result\n },\n\n // Filter function\n filter: function (array, block) {\n var i\n var il = array.length\n var result = []\n\n for (i = 0; i < il; i++) {\n if (block(array[i])) { result.push(array[i]) }\n }\n\n return result\n },\n\n // Degrees to radians\n radians: function (d) {\n return d % 360 * Math.PI / 180\n },\n\n // Radians to degrees\n degrees: function (r) {\n return r * 180 / Math.PI % 360\n },\n\n filterSVGElements: function (nodes) {\n return this.filter(nodes, function (el) { return el instanceof window.SVGElement })\n }\n\n}\n","\nSVG.void = function () {}\n\nSVG.defaults = {\n\n // Default animation values\n timeline: {\n duration: 400,\n ease: '>',\n delay: 0\n },\n\n // Default attribute values\n attrs: {\n\n // fill and stroke\n 'fill-opacity': 1,\n 'stroke-opacity': 1,\n 'stroke-width': 0,\n 'stroke-linejoin': 'miter',\n 'stroke-linecap': 'butt',\n fill: '#000000',\n stroke: '#000000',\n opacity: 1,\n\n // position\n x: 0,\n y: 0,\n cx: 0,\n cy: 0,\n\n // size\n width: 0,\n height: 0,\n\n // radius\n r: 0,\n rx: 0,\n ry: 0,\n\n // gradient\n offset: 0,\n 'stop-opacity': 1,\n 'stop-color': '#000000',\n\n // text\n 'font-size': 16,\n 'font-family': 'Helvetica, Arial, sans-serif',\n 'text-anchor': 'start'\n }\n}\n","SVG.Queue = SVG.invent({\n create: function () {\n this._first = null\n this._last = null\n },\n\n extend: {\n push: function (value) {\n // An item stores an id and the provided value\n var item = value.next ? value : { value: value, next: null, prev: null }\n\n // Deal with the queue being empty or populated\n if (this._last) {\n item.prev = this._last\n this._last.next = item\n this._last = item\n } else {\n this._last = item\n this._first = item\n }\n\n // Update the length and return the current item\n return item\n },\n\n shift: function () {\n // Check if we have a value\n var remove = this._first\n if (!remove) return null\n\n // If we do, remove it and relink things\n this._first = remove.next\n if (this._first) this._first.prev = null\n this._last = this._first ? this._last : null\n return remove.value\n },\n\n // Shows us the first item in the list\n first: function () {\n return this._first && this._first.value\n },\n\n // Shows us the last item in the list\n last: function () {\n return this._last && this._last.value\n },\n\n // Removes the item that was returned from the push\n remove: function (item) {\n // Relink the previous item\n if (item.prev) item.prev.next = item.next\n if (item.next) item.next.prev = item.prev\n if (item === this._last) this._last = item.prev\n if (item === this._first) this._first = item.next\n\n // Invalidate item\n item.prev = null\n item.next = null\n }\n }\n})\n","/* globals fullHex, compToHex */\n\n/*\n\nColor {\n constructor (a, b, c, space) {\n space: 'hsl'\n a: 30\n b: 20\n c: 10\n },\n\n toRgb () { return new Color in rgb space }\n toHsl () { return new Color in hsl space }\n toLab () { return new Color in lab space }\n\n toArray () { [space, a, b, c] }\n fromArray () { convert it back }\n}\n\n// Conversions aren't always exact because of monitor profiles etc...\nnew Color(h, s, l, 'hsl') !== new Color(r, g, b).hsl()\nnew Color(100, 100, 100, [space])\nnew Color('hsl(30, 20, 10)')\n\n// Sugar\nSVG.rgb(30, 20, 50).lab()\nSVG.hsl()\nSVG.lab('rgb(100, 100, 100)')\n*/\n\n// Module for color convertions\nSVG.Color = function (color, g, b) {\n var match\n\n // initialize defaults\n this.r = 0\n this.g = 0\n this.b = 0\n\n if (!color) return\n\n // parse color\n if (typeof color === 'string') {\n if (SVG.regex.isRgb.test(color)) {\n // get rgb values\n match = SVG.regex.rgb.exec(color.replace(SVG.regex.whitespace, ''))\n\n // parse numeric values\n this.r = parseInt(match[1])\n this.g = parseInt(match[2])\n this.b = parseInt(match[3])\n } else if (SVG.regex.isHex.test(color)) {\n // get hex values\n match = SVG.regex.hex.exec(fullHex(color))\n\n // parse numeric values\n this.r = parseInt(match[1], 16)\n this.g = parseInt(match[2], 16)\n this.b = parseInt(match[3], 16)\n }\n } else if (Array.isArray(color)) {\n this.r = color[0]\n this.g = color[1]\n this.b = color[2]\n } else if (typeof color === 'object') {\n this.r = color.r\n this.g = color.g\n this.b = color.b\n } else if (arguments.length === 3) {\n this.r = color\n this.g = g\n this.b = b\n }\n}\n\nSVG.extend(SVG.Color, {\n // Default to hex conversion\n toString: function () {\n return this.toHex()\n },\n toArray: function () {\n return [this.r, this.g, this.b]\n },\n fromArray: function (a) {\n return new SVG.Color(a)\n },\n // Build hex value\n toHex: function () {\n return '#' +\n compToHex(Math.round(this.r)) +\n compToHex(Math.round(this.g)) +\n compToHex(Math.round(this.b))\n },\n // Build rgb value\n toRgb: function () {\n return 'rgb(' + [this.r, this.g, this.b].join() + ')'\n },\n // Calculate true brightness\n brightness: function () {\n return (this.r / 255 * 0.30) +\n (this.g / 255 * 0.59) +\n (this.b / 255 * 0.11)\n },\n // Make color morphable\n morph: function (color) {\n this.destination = new SVG.Color(color)\n\n return this\n },\n // Get morphed color at given position\n at: function (pos) {\n // make sure a destination is defined\n if (!this.destination) return this\n\n // normalise pos\n pos = pos < 0 ? 0 : pos > 1 ? 1 : pos\n\n // generate morphed color\n return new SVG.Color({\n r: ~~(this.r + (this.destination.r - this.r) * pos),\n g: ~~(this.g + (this.destination.g - this.g) * pos),\n b: ~~(this.b + (this.destination.b - this.b) * pos)\n })\n }\n\n})\n\n// Testers\n\n// Test if given value is a color string\nSVG.Color.test = function (color) {\n color += ''\n return SVG.regex.isHex.test(color) ||\n SVG.regex.isRgb.test(color)\n}\n\n// Test if given value is a rgb object\nSVG.Color.isRgb = function (color) {\n return color && typeof color.r === 'number' &&\n typeof color.g === 'number' &&\n typeof color.b === 'number'\n}\n\n// Test if given value is a color\nSVG.Color.isColor = function (color) {\n return SVG.Color.isRgb(color) || SVG.Color.test(color)\n}\n","/* global arrayClone */\n\n// Module for array conversion\nSVG.Array = function (array, fallback) {\n array = (array || []).valueOf()\n\n // if array is empty and fallback is provided, use fallback\n if (array.length === 0 && fallback) {\n array = fallback.valueOf()\n }\n\n // parse array\n this.value = this.parse(array)\n}\n\nSVG.extend(SVG.Array, {\n // Make array morphable\n morph: function (array) {\n this.destination = this.parse(array)\n\n // normalize length of arrays\n if (this.value.length !== this.destination.length) {\n var lastValue = this.value[this.value.length - 1]\n var lastDestination = this.destination[this.destination.length - 1]\n\n while (this.value.length > this.destination.length) {\n this.destination.push(lastDestination)\n }\n while (this.value.length < this.destination.length) {\n this.value.push(lastValue)\n }\n }\n\n return this\n },\n // Clean up any duplicate points\n settle: function () {\n // find all unique values\n for (var i = 0, il = this.value.length, seen = []; i < il; i++) {\n if (seen.indexOf(this.value[i]) === -1) {\n seen.push(this.value[i])\n }\n }\n\n // set new value\n this.value = seen\n return seen\n },\n // Get morphed array at given position\n at: function (pos) {\n // make sure a destination is defined\n if (!this.destination) return this\n\n // generate morphed array\n for (var i = 0, il = this.value.length, array = []; i < il; i++) {\n array.push(this.value[i] + (this.destination[i] - this.value[i]) * pos)\n }\n\n return new SVG.Array(array)\n },\n toArray: function () {\n return this.value\n },\n // Convert array to string\n toString: function () {\n return this.value.join(' ')\n },\n // Real value\n valueOf: function () {\n return this.value\n },\n // Parse whitespace separated string\n parse: function (array) {\n array = array.valueOf()\n\n // if already is an array, no need to parse it\n if (Array.isArray(array)) return array\n\n return array.trim().split(SVG.regex.delimiter).map(parseFloat)\n },\n // Reverse array\n reverse: function () {\n this.value.reverse()\n\n return this\n },\n clone: function () {\n var clone = new this.constructor()\n clone.value = arrayClone(this.value)\n return clone\n }\n})\n","\n// Poly points array\nSVG.PointArray = function (array, fallback) {\n SVG.Array.call(this, array, fallback || [[0, 0]])\n}\n\n// Inherit from SVG.Array\nSVG.PointArray.prototype = new SVG.Array()\nSVG.PointArray.prototype.constructor = SVG.PointArray\n\nSVG.extend(SVG.PointArray, {\n // Convert array to string\n toString: function () {\n // convert to a poly point string\n for (var i = 0, il = this.value.length, array = []; i < il; i++) {\n array.push(this.value[i].join(','))\n }\n\n return array.join(' ')\n },\n\n toArray: function () {\n return this.value.reduce(function (prev, curr) {\n return [].concat.call(prev, curr)\n }, [])\n },\n\n // Convert array to line object\n toLine: function () {\n return {\n x1: this.value[0][0],\n y1: this.value[0][1],\n x2: this.value[1][0],\n y2: this.value[1][1]\n }\n },\n\n // Get morphed array at given position\n at: function (pos) {\n // make sure a destination is defined\n if (!this.destination) return this\n\n // generate morphed point string\n for (var i = 0, il = this.value.length, array = []; i < il; i++) {\n array.push([\n this.value[i][0] + (this.destination[i][0] - this.value[i][0]) * pos,\n this.value[i][1] + (this.destination[i][1] - this.value[i][1]) * pos\n ])\n }\n\n return new SVG.PointArray(array)\n },\n\n // Parse point string and flat array\n parse: function (array) {\n var points = []\n\n array = array.valueOf()\n\n // if it is an array\n if (Array.isArray(array)) {\n // and it is not flat, there is no need to parse it\n if (Array.isArray(array[0])) {\n return array\n }\n } else { // Else, it is considered as a string\n // parse points\n array = array.trim().split(SVG.regex.delimiter).map(parseFloat)\n }\n\n // validate points - https://svgwg.org/svg2-draft/shapes.html#DataTypePoints\n // Odd number of coordinates is an error. In such cases, drop the last odd coordinate.\n if (array.length % 2 !== 0) array.pop()\n\n // wrap points in two-tuples and parse points as floats\n for (var i = 0, len = array.length; i < len; i = i + 2) {\n points.push([ array[i], array[i + 1] ])\n }\n\n return points\n },\n\n // Move point string\n move: function (x, y) {\n var box = this.bbox()\n\n // get relative offset\n x -= box.x\n y -= box.y\n\n // move every point\n if (!isNaN(x) && !isNaN(y)) {\n for (var i = this.value.length - 1; i >= 0; i--) {\n this.value[i] = [this.value[i][0] + x, this.value[i][1] + y]\n }\n }\n\n return this\n },\n // Resize poly string\n size: function (width, height) {\n var i\n var box = this.bbox()\n\n // recalculate position of all points according to new size\n for (i = this.value.length - 1; i >= 0; i--) {\n if (box.width) this.value[i][0] = ((this.value[i][0] - box.x) * width) / box.width + box.x\n if (box.height) this.value[i][1] = ((this.value[i][1] - box.y) * height) / box.height + box.y\n }\n\n return this\n },\n\n // Get bounding box of points\n bbox: function () {\n var maxX = -Infinity\n var maxY = -Infinity\n var minX = Infinity\n var minY = Infinity\n this.value.forEach(function (el) {\n maxX = Math.max(el[0], maxX)\n maxY = Math.max(el[1], maxY)\n minX = Math.min(el[0], minX)\n minY = Math.min(el[1], minY)\n })\n return {x: minX, y: minY, width: maxX - minX, height: maxY - minY}\n }\n})\n","/* globals arrayToString, pathRegReplace */\n\nvar pathHandlers = {\n M: function (c, p, p0) {\n p.x = p0.x = c[0]\n p.y = p0.y = c[1]\n\n return ['M', p.x, p.y]\n },\n L: function (c, p) {\n p.x = c[0]\n p.y = c[1]\n return ['L', c[0], c[1]]\n },\n H: function (c, p) {\n p.x = c[0]\n return ['H', c[0]]\n },\n V: function (c, p) {\n p.y = c[0]\n return ['V', c[0]]\n },\n C: function (c, p) {\n p.x = c[4]\n p.y = c[5]\n return ['C', c[0], c[1], c[2], c[3], c[4], c[5]]\n },\n S: function (c, p) {\n p.x = c[2]\n p.y = c[3]\n return ['S', c[0], c[1], c[2], c[3]]\n },\n Q: function (c, p) {\n p.x = c[2]\n p.y = c[3]\n return ['Q', c[0], c[1], c[2], c[3]]\n },\n T: function (c, p) {\n p.x = c[0]\n p.y = c[1]\n return ['T', c[0], c[1]]\n },\n Z: function (c, p, p0) {\n p.x = p0.x\n p.y = p0.y\n return ['Z']\n },\n A: function (c, p) {\n p.x = c[5]\n p.y = c[6]\n return ['A', c[0], c[1], c[2], c[3], c[4], c[5], c[6]]\n }\n}\n\nvar mlhvqtcsaz = 'mlhvqtcsaz'.split('')\n\nfor (var i = 0, il = mlhvqtcsaz.length; i < il; ++i) {\n pathHandlers[mlhvqtcsaz[i]] = (function (i) {\n return function (c, p, p0) {\n if (i === 'H') c[0] = c[0] + p.x\n else if (i === 'V') c[0] = c[0] + p.y\n else if (i === 'A') {\n c[5] = c[5] + p.x\n c[6] = c[6] + p.y\n } else {\n for (var j = 0, jl = c.length; j < jl; ++j) {\n c[j] = c[j] + (j % 2 ? p.y : p.x)\n }\n }\n\n return pathHandlers[i](c, p, p0)\n }\n })(mlhvqtcsaz[i].toUpperCase())\n}\n\n// Path points array\nSVG.PathArray = function (array, fallback) {\n SVG.Array.call(this, array, fallback || [['M', 0, 0]])\n}\n\n// Inherit from SVG.Array\nSVG.PathArray.prototype = new SVG.Array()\nSVG.PathArray.prototype.constructor = SVG.PathArray\n\nSVG.extend(SVG.PathArray, {\n // Convert array to string\n toString: function () {\n return arrayToString(this.value)\n },\n toArray: function () {\n return this.value.reduce(function (prev, curr) {\n return [].concat.call(prev, curr)\n }, [])\n },\n // Move path string\n move: function (x, y) {\n // get bounding box of current situation\n var box = this.bbox()\n\n // get relative offset\n x -= box.x\n y -= box.y\n\n if (!isNaN(x) && !isNaN(y)) {\n // move every point\n for (var l, i = this.value.length - 1; i >= 0; i--) {\n l = this.value[i][0]\n\n if (l === 'M' || l === 'L' || l === 'T') {\n this.value[i][1] += x\n this.value[i][2] += y\n } else if (l === 'H') {\n this.value[i][1] += x\n } else if (l === 'V') {\n this.value[i][1] += y\n } else if (l === 'C' || l === 'S' || l === 'Q') {\n this.value[i][1] += x\n this.value[i][2] += y\n this.value[i][3] += x\n this.value[i][4] += y\n\n if (l === 'C') {\n this.value[i][5] += x\n this.value[i][6] += y\n }\n } else if (l === 'A') {\n this.value[i][6] += x\n this.value[i][7] += y\n }\n }\n }\n\n return this\n },\n // Resize path string\n size: function (width, height) {\n // get bounding box of current situation\n var box = this.bbox()\n var i, l\n\n // recalculate position of all points according to new size\n for (i = this.value.length - 1; i >= 0; i--) {\n l = this.value[i][0]\n\n if (l === 'M' || l === 'L' || l === 'T') {\n this.value[i][1] = ((this.value[i][1] - box.x) * width) / box.width + box.x\n this.value[i][2] = ((this.value[i][2] - box.y) * height) / box.height + box.y\n } else if (l === 'H') {\n this.value[i][1] = ((this.value[i][1] - box.x) * width) / box.width + box.x\n } else if (l === 'V') {\n this.value[i][1] = ((this.value[i][1] - box.y) * height) / box.height + box.y\n } else if (l === 'C' || l === 'S' || l === 'Q') {\n this.value[i][1] = ((this.value[i][1] - box.x) * width) / box.width + box.x\n this.value[i][2] = ((this.value[i][2] - box.y) * height) / box.height + box.y\n this.value[i][3] = ((this.value[i][3] - box.x) * width) / box.width + box.x\n this.value[i][4] = ((this.value[i][4] - box.y) * height) / box.height + box.y\n\n if (l === 'C') {\n this.value[i][5] = ((this.value[i][5] - box.x) * width) / box.width + box.x\n this.value[i][6] = ((this.value[i][6] - box.y) * height) / box.height + box.y\n }\n } else if (l === 'A') {\n // resize radii\n this.value[i][1] = (this.value[i][1] * width) / box.width\n this.value[i][2] = (this.value[i][2] * height) / box.height\n\n // move position values\n this.value[i][6] = ((this.value[i][6] - box.x) * width) / box.width + box.x\n this.value[i][7] = ((this.value[i][7] - box.y) * height) / box.height + box.y\n }\n }\n\n return this\n },\n // Test if the passed path array use the same path data commands as this path array\n equalCommands: function (pathArray) {\n var i, il, equalCommands\n\n pathArray = new SVG.PathArray(pathArray)\n\n equalCommands = this.value.length === pathArray.value.length\n for (i = 0, il = this.value.length; equalCommands && i < il; i++) {\n equalCommands = this.value[i][0] === pathArray.value[i][0]\n }\n\n return equalCommands\n },\n // Make path array morphable\n morph: function (pathArray) {\n pathArray = new SVG.PathArray(pathArray)\n\n if (this.equalCommands(pathArray)) {\n this.destination = pathArray\n } else {\n this.destination = null\n }\n\n return this\n },\n // Get morphed path array at given position\n at: function (pos) {\n // make sure a destination is defined\n if (!this.destination) return this\n\n var sourceArray = this.value\n var destinationArray = this.destination.value\n var array = []\n var pathArray = new SVG.PathArray()\n var i, il, j, jl\n\n // Animate has specified in the SVG spec\n // See: https://www.w3.org/TR/SVG11/paths.html#PathElement\n for (i = 0, il = sourceArray.length; i < il; i++) {\n array[i] = [sourceArray[i][0]]\n for (j = 1, jl = sourceArray[i].length; j < jl; j++) {\n array[i][j] = sourceArray[i][j] + (destinationArray[i][j] - sourceArray[i][j]) * pos\n }\n // For the two flags of the elliptical arc command, the SVG spec say:\n // Flags and booleans are interpolated as fractions between zero and one, with any non-zero value considered to be a value of one/true\n // Elliptical arc command as an array followed by corresponding indexes:\n // ['A', rx, ry, x-axis-rotation, large-arc-flag, sweep-flag, x, y]\n // 0 1 2 3 4 5 6 7\n if (array[i][0] === 'A') {\n array[i][4] = +(array[i][4] !== 0)\n array[i][5] = +(array[i][5] !== 0)\n }\n }\n\n // Directly modify the value of a path array, this is done this way for performance\n pathArray.value = array\n return pathArray\n },\n // Absolutize and parse path to array\n parse: function (array) {\n // if it's already a patharray, no need to parse it\n if (array instanceof SVG.PathArray) return array.valueOf()\n\n // prepare for parsing\n var s\n var paramCnt = { 'M': 2, 'L': 2, 'H': 1, 'V': 1, 'C': 6, 'S': 4, 'Q': 4, 'T': 2, 'A': 7, 'Z': 0 }\n\n if (typeof array === 'string') {\n array = array\n .replace(SVG.regex.numbersWithDots, pathRegReplace) // convert 45.123.123 to 45.123 .123\n .replace(SVG.regex.pathLetters, ' $& ') // put some room between letters and numbers\n .replace(SVG.regex.hyphen, '$1 -') // add space before hyphen\n .trim() // trim\n .split(SVG.regex.delimiter) // split into array\n } else {\n array = array.reduce(function (prev, curr) {\n return [].concat.call(prev, curr)\n }, [])\n }\n\n // array now is an array containing all parts of a path e.g. ['M', '0', '0', 'L', '30', '30' ...]\n var result = []\n var p = new SVG.Point()\n var p0 = new SVG.Point()\n var index = 0\n var len = array.length\n\n do {\n // Test if we have a path letter\n if (SVG.regex.isPathLetter.test(array[index])) {\n s = array[index]\n ++index\n // If last letter was a move command and we got no new, it defaults to [L]ine\n } else if (s === 'M') {\n s = 'L'\n } else if (s === 'm') {\n s = 'l'\n }\n\n result.push(pathHandlers[s].call(null,\n array.slice(index, (index = index + paramCnt[s.toUpperCase()])).map(parseFloat),\n p, p0\n )\n )\n } while (len > index)\n\n return result\n },\n // Get bounding box of path\n bbox: function () {\n SVG.parser().path.setAttribute('d', this.toString())\n return SVG.parser.nodes.path.getBBox()\n }\n\n})\n","\n// Module for unit convertions\nSVG.Number = SVG.invent({\n // Initialize\n create: function (value, unit) {\n unit = Array.isArray(value) ? value[1] : unit\n value = Array.isArray(value) ? value[0] : value\n\n // initialize defaults\n this.value = 0\n this.unit = unit || ''\n\n // parse value\n if (typeof value === 'number') {\n // ensure a valid numeric value\n this.value = isNaN(value) ? 0 : !isFinite(value) ? (value < 0 ? -3.4e+38 : +3.4e+38) : value\n } else if (typeof value === 'string') {\n unit = value.match(SVG.regex.numberAndUnit)\n\n if (unit) {\n // make value numeric\n this.value = parseFloat(unit[1])\n\n // normalize\n if (unit[5] === '%') { this.value /= 100 } else if (unit[5] === 's') {\n this.value *= 1000\n }\n\n // store unit\n this.unit = unit[5]\n }\n } else {\n if (value instanceof SVG.Number) {\n this.value = value.valueOf()\n this.unit = value.unit\n }\n }\n },\n // Add methods\n extend: {\n // Stringalize\n toString: function () {\n return (this.unit === '%' ? ~~(this.value * 1e8) / 1e6\n : this.unit === 's' ? this.value / 1e3\n : this.value\n ) + this.unit\n },\n toJSON: function () {\n return this.toString()\n }, // Convert to primitive\n toArray: function () {\n return [this.value, this.unit]\n },\n valueOf: function () {\n return this.value\n },\n // Add number\n plus: function (number) {\n number = new SVG.Number(number)\n return new SVG.Number(this + number, this.unit || number.unit)\n },\n // Subtract number\n minus: function (number) {\n number = new SVG.Number(number)\n return new SVG.Number(this - number, this.unit || number.unit)\n },\n // Multiply number\n times: function (number) {\n number = new SVG.Number(number)\n return new SVG.Number(this * number, this.unit || number.unit)\n },\n // Divide number\n divide: function (number) {\n number = new SVG.Number(number)\n return new SVG.Number(this / number, this.unit || number.unit)\n },\n // Make number morphable\n morph: function (number) {\n this.destination = new SVG.Number(number)\n\n if (number.relative) {\n this.destination.value += this.value\n }\n\n return this\n },\n // Get morphed number at given position\n at: function (pos) {\n // Make sure a destination is defined\n if (!this.destination) return this\n\n // Generate new morphed number\n return new SVG.Number(this.destination)\n .minus(this)\n .times(pos)\n .plus(this)\n }\n }\n})\n","SVG.EventTarget = SVG.invent({\n create: function () {},\n extend: {\n // Bind given event to listener\n on: function (event, listener, binding, options) {\n SVG.on(this, event, listener, binding, options)\n return this\n },\n // Unbind event from listener\n off: function (event, listener) {\n SVG.off(this, event, listener)\n return this\n },\n dispatch: function (event, data) {\n return SVG.dispatch(this, event, data)\n },\n // Fire given event\n fire: function (event, data) {\n this.dispatch(event, data)\n return this\n }\n }\n})\n","/* global createElement */\n\nSVG.HtmlNode = SVG.invent({\n inherit: SVG.EventTarget,\n create: function (element) {\n this.node = element\n },\n\n extend: {\n add: function (element, i) {\n element = createElement(element)\n\n if (element.node !== this.node.children[i]) {\n this.node.insertBefore(element.node, this.node.children[i] || null)\n }\n\n return this\n },\n\n put: function (element, i) {\n this.add(element, i)\n return element\n },\n\n getEventTarget: function () {\n return this.node\n }\n }\n})\n","/* global proportionalSize, assignNewId, createElement, matches, is */\n\nSVG.Element = SVG.invent({\n inherit: SVG.EventTarget,\n\n // Initialize node\n create: function (node) {\n // event listener\n this.events = {}\n\n // initialize data object\n this.dom = {}\n\n // create circular reference\n this.node = node\n if (this.node) {\n this.type = node.nodeName\n this.node.instance = this\n this.events = node.events || {}\n\n if (node.hasAttribute('svgjs:data')) {\n // pull svgjs data from the dom (getAttributeNS doesn't work in html5)\n this.setData(JSON.parse(node.getAttribute('svgjs:data')) || {})\n }\n }\n },\n\n // Add class methods\n extend: {\n // Move over x-axis\n x: function (x) {\n return this.attr('x', x)\n },\n\n // Move over y-axis\n y: function (y) {\n return this.attr('y', y)\n },\n\n // Move by center over x-axis\n cx: function (x) {\n return x == null ? this.x() + this.width() / 2 : this.x(x - this.width() / 2)\n },\n\n // Move by center over y-axis\n cy: function (y) {\n return y == null\n ? this.y() + this.height() / 2\n : this.y(y - this.height() / 2)\n },\n\n // Move element to given x and y values\n move: function (x, y) {\n return this.x(x).y(y)\n },\n\n // Move element by its center\n center: function (x, y) {\n return this.cx(x).cy(y)\n },\n\n // Set width of element\n width: function (width) {\n return this.attr('width', width)\n },\n\n // Set height of element\n height: function (height) {\n return this.attr('height', height)\n },\n\n // Set element size to given width and height\n size: function (width, height) {\n var p = proportionalSize(this, width, height)\n\n return this\n .width(new SVG.Number(p.width))\n .height(new SVG.Number(p.height))\n },\n\n // Clone element\n clone: function (parent) {\n // write dom data to the dom so the clone can pickup the data\n this.writeDataToDom()\n\n // clone element and assign new id\n var clone = assignNewId(this.node.cloneNode(true))\n\n // insert the clone in the given parent or after myself\n if (parent) parent.add(clone)\n else this.after(clone)\n\n return clone\n },\n\n // Remove element\n remove: function () {\n if (this.parent()) { this.parent().removeElement(this) }\n\n return this\n },\n\n // Replace element\n replace: function (element) {\n this.after(element).remove()\n\n return element\n },\n\n // Add element to given container and return self\n addTo: function (parent) {\n return createElement(parent).put(this)\n },\n\n // Add element to given container and return container\n putIn: function (parent) {\n return createElement(parent).add(this)\n },\n\n // Get / set id\n id: function (id) {\n // generate new id if no id set\n if (typeof id === 'undefined' && !this.node.id) {\n this.node.id = SVG.eid(this.type)\n }\n\n // dont't set directly width this.node.id to make `null` work correctly\n return this.attr('id', id)\n },\n\n // Checks whether the given point inside the bounding box of the element\n inside: function (x, y) {\n var box = this.bbox()\n\n return x > box.x &&\n y > box.y &&\n x < box.x + box.width &&\n y < box.y + box.height\n },\n\n // Show element\n show: function () {\n return this.css('display', '')\n },\n\n // Hide element\n hide: function () {\n return this.css('display', 'none')\n },\n\n // Is element visible?\n visible: function () {\n return this.css('display') !== 'none'\n },\n\n // Return id on string conversion\n toString: function () {\n return this.id()\n },\n\n // Return array of classes on the node\n classes: function () {\n var attr = this.attr('class')\n return attr == null ? [] : attr.trim().split(SVG.regex.delimiter)\n },\n\n // Return true if class exists on the node, false otherwise\n hasClass: function (name) {\n return this.classes().indexOf(name) !== -1\n },\n\n // Add class to the node\n addClass: function (name) {\n if (!this.hasClass(name)) {\n var array = this.classes()\n array.push(name)\n this.attr('class', array.join(' '))\n }\n\n return this\n },\n\n // Remove class from the node\n removeClass: function (name) {\n if (this.hasClass(name)) {\n this.attr('class', this.classes().filter(function (c) {\n return c !== name\n }).join(' '))\n }\n\n return this\n },\n\n // Toggle the presence of a class on the node\n toggleClass: function (name) {\n return this.hasClass(name) ? this.removeClass(name) : this.addClass(name)\n },\n\n // Get referenced element form attribute value\n reference: function (attr) {\n return SVG.get(this.attr(attr))\n },\n\n // Returns the parent element instance\n parent: function (type) {\n var parent = this\n\n // check for parent\n if (!parent.node.parentNode) return null\n\n // get parent element\n parent = SVG.adopt(parent.node.parentNode)\n\n if (!type) return parent\n\n // loop trough ancestors if type is given\n while (parent && parent.node instanceof window.SVGElement) {\n if (typeof type === 'string' ? parent.matches(type) : parent instanceof type) return parent\n parent = SVG.adopt(parent.node.parentNode)\n }\n },\n\n // Get parent document\n doc: function () {\n var p = this.parent(SVG.Doc)\n return p && p.doc()\n },\n\n // Get defs\n defs: function () {\n return this.doc().defs()\n },\n\n // return array of all ancestors of given type up to the root svg\n parents: function (type) {\n var parents = []\n var parent = this\n\n do {\n parent = parent.parent(type)\n if (!parent || !parent.node) break\n\n parents.push(parent)\n } while (parent.parent)\n\n return parents\n },\n\n // matches the element vs a css selector\n matches: function (selector) {\n return matches(this.node, selector)\n },\n\n // Returns the svg node to call native svg methods on it\n native: function () {\n return this.node\n },\n\n // Import raw svg\n svg: function (svg) {\n var well, len\n\n // act as a setter if svg is given\n if (typeof svg === 'string' && this instanceof SVG.Parent) {\n // create temporary holder\n well = document.createElementNS(SVG.ns, 'svg')\n // dump raw svg\n well.innerHTML = svg\n\n // transplant nodes\n for (len = well.children.length; len--;) {\n this.node.appendChild(well.firstElementChild)\n }\n // otherwise act as a getter\n } else {\n // expose node modifiers\n if (typeof svg === 'function') {\n this.each(function () {\n well = svg(this)\n\n // If modifier returns false, discard node\n if (well === false) {\n this.remove()\n\n // If modifier returns new node, use it\n } else if (well && well !== this) {\n this.replace(well)\n }\n }, true)\n }\n\n // write svgjs data to the dom\n this.writeDataToDom()\n\n return this.node.outerHTML\n }\n\n return this\n },\n\n // write svgjs data to the dom\n writeDataToDom: function () {\n // dump variables recursively\n if (this.is(SVG.Parent)) {\n this.each(function () {\n this.writeDataToDom()\n })\n }\n\n // remove previously set data\n this.node.removeAttribute('svgjs:data')\n\n if (Object.keys(this.dom).length) {\n this.node.setAttribute('svgjs:data', JSON.stringify(this.dom)) // see #428\n }\n return this\n },\n\n // set given data to the elements data property\n setData: function (o) {\n this.dom = o\n return this\n },\n is: function (obj) {\n return is(this, obj)\n },\n getEventTarget: function () {\n return this.node\n }\n }\n})\n","// Add events to elements\n;[ 'click',\n 'dblclick',\n 'mousedown',\n 'mouseup',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'mouseenter',\n 'mouseleave',\n 'touchstart',\n 'touchmove',\n 'touchleave',\n 'touchend',\n 'touchcancel' ].forEach(function (event) {\n // add event to SVG.Element\n SVG.Element.prototype[event] = function (f) {\n if (f === null) {\n SVG.off(this, event)\n } else {\n SVG.on(this, event, f)\n }\n return this\n }\n })\n\nSVG.listenerId = 0\n\n// Add event binder in the SVG namespace\nSVG.on = function (node, events, listener, binding, options) {\n var l = listener.bind(binding || node)\n var n = node instanceof SVG.EventTarget ? node.getEventTarget() : node\n\n // events can be an array of events or a string of events\n events = Array.isArray(events) ? events : events.split(SVG.regex.delimiter)\n\n // ensure instance object for nodes which are not adopted\n n.instance = n.instance || {events: {}}\n\n // pull event handlers from the element\n var bag = n.instance.events\n\n // add id to listener\n if (!listener._svgjsListenerId) {\n listener._svgjsListenerId = ++SVG.listenerId\n }\n\n events.forEach(function (event) {\n var ev = event.split('.')[0]\n var ns = event.split('.')[1] || '*'\n\n // ensure valid object\n bag[ev] = bag[ev] || {}\n bag[ev][ns] = bag[ev][ns] || {}\n\n // reference listener\n bag[ev][ns][listener._svgjsListenerId] = l\n\n // add listener\n n.addEventListener(ev, l, options || false)\n })\n}\n\n// Add event unbinder in the SVG namespace\nSVG.off = function (node, events, listener, options) {\n var n = node instanceof SVG.EventTarget ? node.getEventTarget() : node\n if (!n.instance) return\n\n // listener can be a function or a number\n if (typeof listener === 'function') {\n listener = listener._svgjsListenerId\n if (!listener) return\n }\n\n // pull event handlers from the element\n var bag = n.instance.events\n\n // events can be an array of events or a string or undefined\n events = Array.isArray(events) ? events : (events || '').split(SVG.regex.delimiter)\n\n events.forEach(function (event) {\n var ev = event && event.split('.')[0]\n var ns = event && event.split('.')[1]\n var namespace, l\n\n if (listener) {\n // remove listener reference\n if (bag[ev] && bag[ev][ns || '*']) {\n // removeListener\n n.removeEventListener(ev, bag[ev][ns || '*'][listener], options || false)\n\n delete bag[ev][ns || '*'][listener]\n }\n } else if (ev && ns) {\n // remove all listeners for a namespaced event\n if (bag[ev] && bag[ev][ns]) {\n for (l in bag[ev][ns]) { SVG.off(n, [ev, ns].join('.'), l) }\n\n delete bag[ev][ns]\n }\n } else if (ns) {\n // remove all listeners for a specific namespace\n for (event in bag) {\n for (namespace in bag[event]) {\n if (ns === namespace) { SVG.off(n, [event, ns].join('.')) }\n }\n }\n } else if (ev) {\n // remove all listeners for the event\n if (bag[ev]) {\n for (namespace in bag[ev]) { SVG.off(n, [ev, namespace].join('.')) }\n\n delete bag[ev]\n }\n } else {\n // remove all listeners on a given node\n for (event in bag) { SVG.off(n, event) }\n\n n.instance.events = {}\n }\n })\n}\n\nSVG.dispatch = function (node, event, data) {\n var n = node instanceof SVG.EventTarget ? node.getEventTarget() : node\n\n // Dispatch event\n if (event instanceof window.Event) {\n n.dispatchEvent(event)\n } else {\n event = new window.CustomEvent(event, {detail: data, cancelable: true})\n n.dispatchEvent(event)\n }\n return event\n}\n","/* global abcdef arrayToMatrix closeEnough formatTransforms isMatrixLike matrixMultiply */\n\nSVG.Matrix = SVG.invent({\n // Initialize\n create: function (source) {\n var base = arrayToMatrix([1, 0, 0, 1, 0, 0])\n\n // ensure source as object\n source = source instanceof SVG.Element ? source.matrixify()\n : typeof source === 'string' ? arrayToMatrix(source.split(SVG.regex.delimiter).map(parseFloat))\n : Array.isArray(source) ? arrayToMatrix(source)\n : (typeof source === 'object' && isMatrixLike(source)) ? source\n : (typeof source === 'object') ? new SVG.Matrix().transform(source)\n : arguments.length === 6 ? arrayToMatrix([].slice.call(arguments))\n : base\n\n // Merge the source matrix with the base matrix\n this.a = source.a != null ? source.a : base.a\n this.b = source.b != null ? source.b : base.b\n this.c = source.c != null ? source.c : base.c\n this.d = source.d != null ? source.d : base.d\n this.e = source.e != null ? source.e : base.e\n this.f = source.f != null ? source.f : base.f\n },\n\n // Add methods\n extend: {\n\n // Clones this matrix\n clone: function () {\n return new SVG.Matrix(this)\n },\n\n // Transform a matrix into another matrix by manipulating the space\n transform: function (o) {\n // Check if o is a matrix and then left multiply it directly\n if (isMatrixLike(o)) {\n var matrix = new SVG.Matrix(o)\n return matrix.multiplyO(this)\n }\n\n // Get the proposed transformations and the current transformations\n var t = formatTransforms(o)\n var current = this\n let { x: ox, y: oy } = new SVG.Point(t.ox, t.oy).transform(current)\n\n // Construct the resulting matrix\n var transformer = new SVG.Matrix()\n .translateO(t.rx, t.ry)\n .lmultiplyO(current)\n .translateO(-ox, -oy)\n .scaleO(t.scaleX, t.scaleY)\n .skewO(t.skewX, t.skewY)\n .shearO(t.shear)\n .rotateO(t.theta)\n .translateO(ox, oy)\n\n // If we want the origin at a particular place, we force it there\n if (isFinite(t.px) || isFinite(t.py)) {\n const origin = new SVG.Point(ox, oy).transform(transformer)\n // TODO: Replace t.px with isFinite(t.px)\n const dx = t.px ? t.px - origin.x : 0\n const dy = t.py ? t.py - origin.y : 0\n transformer.translateO(dx, dy)\n }\n\n // Translate now after positioning\n transformer.translateO(t.tx, t.ty)\n return transformer\n },\n\n // Applies a matrix defined by its affine parameters\n compose: function (o) {\n if (o.origin) {\n o.originX = o.origin[0]\n o.originY = o.origin[1]\n }\n // Get the parameters\n var ox = o.originX || 0\n var oy = o.originY || 0\n var sx = o.scaleX || 1\n var sy = o.scaleY || 1\n var lam = o.shear || 0\n var theta = o.rotate || 0\n var tx = o.translateX || 0\n var ty = o.translateY || 0\n\n // Apply the standard matrix\n var result = new SVG.Matrix()\n .translateO(-ox, -oy)\n .scaleO(sx, sy)\n .shearO(lam)\n .rotateO(theta)\n .translateO(tx, ty)\n .lmultiplyO(this)\n .translateO(ox, oy)\n return result\n },\n\n // Decomposes this matrix into its affine parameters\n decompose: function (cx = 0, cy = 0) {\n // Get the parameters from the matrix\n var a = this.a\n var b = this.b\n var c = this.c\n var d = this.d\n var e = this.e\n var f = this.f\n\n // Figure out if the winding direction is clockwise or counterclockwise\n var determinant = a * d - b * c\n var ccw = determinant > 0 ? 1 : -1\n\n // Since we only shear in x, we can use the x basis to get the x scale\n // and the rotation of the resulting matrix\n var sx = ccw * Math.sqrt(a * a + b * b)\n var thetaRad = Math.atan2(ccw * b, ccw * a)\n var theta = 180 / Math.PI * thetaRad\n var ct = Math.cos(thetaRad)\n var st = Math.sin(thetaRad)\n\n // We can then solve the y basis vector simultaneously to get the other\n // two affine parameters directly from these parameters\n var lam = (a * c + b * d) / determinant\n var sy = ((c * sx) / (lam * a - b)) || ((d * sx) / (lam * b + a))\n\n // Use the translations\n let tx = e - cx + cx * ct * sx + cy * (lam * ct * sx - st * sy)\n let ty = f - cy + cx * st * sx + cy * (lam * st * sx + ct * sy)\n\n // Construct the decomposition and return it\n return {\n // Return the affine parameters\n scaleX: sx,\n scaleY: sy,\n shear: lam,\n rotate: theta,\n translateX: tx,\n translateY: ty,\n originX: cx,\n originY: cy,\n\n // Return the matrix parameters\n a: this.a,\n b: this.b,\n c: this.c,\n d: this.d,\n e: this.e,\n f: this.f\n }\n },\n\n // Morph one matrix into another\n morph: function (matrix) {\n // Store new destination\n this.destination = new SVG.Matrix(matrix)\n return this\n },\n\n // Get morphed matrix at a given position\n at: function (pos) {\n // Make sure a destination is defined\n if (!this.destination) return this\n\n // Calculate morphed matrix at a given position\n var matrix = new SVG.Matrix({\n a: this.a + (this.destination.a - this.a) * pos,\n b: this.b + (this.destination.b - this.b) * pos,\n c: this.c + (this.destination.c - this.c) * pos,\n d: this.d + (this.destination.d - this.d) * pos,\n e: this.e + (this.destination.e - this.e) * pos,\n f: this.f + (this.destination.f - this.f) * pos\n })\n\n return matrix\n },\n\n // Left multiplies by the given matrix\n multiply: function (matrix) {\n return this.clone().multiplyO(matrix)\n },\n\n multiplyO: function (matrix) {\n // Get the matrices\n var l = this\n var r = matrix instanceof SVG.Matrix\n ? matrix\n : new SVG.Matrix(matrix)\n\n return matrixMultiply(l, r, this)\n },\n\n lmultiply: function (matrix) {\n return this.clone().lmultiplyO(matrix)\n },\n\n lmultiplyO: function (matrix) {\n var r = this\n var l = matrix instanceof SVG.Matrix\n ? matrix\n : new SVG.Matrix(matrix)\n\n return matrixMultiply(l, r, this)\n },\n\n // Inverses matrix\n inverseO: function () {\n // Get the current parameters out of the matrix\n var a = this.a\n var b = this.b\n var c = this.c\n var d = this.d\n var e = this.e\n var f = this.f\n\n // Invert the 2x2 matrix in the top left\n var det = a * d - b * c\n if (!det) throw new Error('Cannot invert ' + this)\n\n // Calculate the top 2x2 matrix\n var na = d / det\n var nb = -b / det\n var nc = -c / det\n var nd = a / det\n\n // Apply the inverted matrix to the top right\n var ne = -(na * e + nc * f)\n var nf = -(nb * e + nd * f)\n\n // Construct the inverted matrix\n this.a = na\n this.b = nb\n this.c = nc\n this.d = nd\n this.e = ne\n this.f = nf\n\n return this\n },\n\n inverse: function () {\n return this.clone().inverseO()\n },\n\n // Translate matrix\n translate: function (x, y) {\n return this.clone().translateO(x, y)\n },\n\n translateO: function (x, y) {\n this.e += x || 0\n this.f += y || 0\n return this\n },\n\n // Scale matrix\n scale: function (x, y, cx, cy) {\n return this.clone().scaleO(...arguments)\n },\n\n scaleO: function (x, y = x, cx = 0, cy = 0) {\n // Support uniform scaling\n if (arguments.length === 3) {\n cy = cx\n cx = y\n y = x\n }\n\n let {a, b, c, d, e, f} = this\n\n this.a = a * x\n this.b = b * y\n this.c = c * x\n this.d = d * y\n this.e = e * x - cx * x + cx\n this.f = f * y - cy * y + cy\n\n return this\n },\n\n // Rotate matrix\n rotate: function (r, cx, cy) {\n return this.clone().rotateO(r, cx, cy)\n },\n\n rotateO: function (r, cx = 0, cy = 0) {\n // Convert degrees to radians\n r = SVG.utils.radians(r)\n\n let cos = Math.cos(r)\n let sin = Math.sin(r)\n\n let {a, b, c, d, e, f} = this\n\n this.a = a * cos - b * sin\n this.b = b * cos + a * sin\n this.c = c * cos - d * sin\n this.d = d * cos + c * sin\n this.e = e * cos - f * sin + cy * sin - cx * cos + cx\n this.f = f * cos + e * sin - cx * sin - cy * cos + cy\n\n return this\n },\n\n // Flip matrix on x or y, at a given offset\n flip: function (axis, around) {\n return this.clone().flipO(axis, around)\n },\n\n flipO: function (axis, around) {\n return axis === 'x' ? this.scaleO(-1, 1, around, 0)\n : axis === 'y' ? this.scaleO(1, -1, 0, around)\n : this.scaleO(-1, -1, axis, around || axis) // Define an x, y flip point\n },\n\n // Shear matrix\n shear: function (a, cx, cy) {\n return this.clone().shearO(a, cx, cy)\n },\n\n shearO: function (lx, cx = 0, cy = 0) {\n let {a, b, c, d, e, f} = this\n\n this.a = a + b * lx\n this.c = c + d * lx\n this.e = e + f * lx - cy * lx\n\n return this\n },\n\n // Skew Matrix\n skew: function (x, y, cx, cy) {\n return this.clone().skewO(...arguments)\n },\n\n skewO: function (x, y = x, cx = 0, cy = 0) {\n // support uniformal skew\n if (arguments.length === 3) {\n cy = cx\n cx = y\n y = x\n }\n\n // Convert degrees to radians\n x = SVG.utils.radians(x)\n y = SVG.utils.radians(y)\n\n let lx = Math.tan(x)\n let ly = Math.tan(y)\n\n let {a, b, c, d, e, f} = this\n\n this.a = a + b * lx\n this.b = b + a * ly\n this.c = c + d * lx\n this.d = d + c * ly\n this.e = e + f * lx - cy * lx\n this.f = f + e * ly - cx * ly\n\n return this\n },\n\n // SkewX\n skewX: function (x, cx, cy) {\n return this.skew(x, 0, cx, cy)\n },\n\n skewXO: function (x, cx, cy) {\n return this.skewO(x, 0, cx, cy)\n },\n\n // SkewY\n skewY: function (y, cx, cy) {\n return this.skew(0, y, cx, cy)\n },\n\n skewYO: function (y, cx, cy) {\n return this.skewO(0, y, cx, cy)\n },\n\n // Transform around a center point\n aroundO: function (cx, cy, matrix) {\n var dx = cx || 0\n var dy = cy || 0\n return this.translateO(-dx, -dy).lmultiplyO(matrix).translateO(dx, dy)\n },\n\n around: function (cx, cy, matrix) {\n return this.clone().aroundO(cx, cy, matrix)\n },\n\n // Convert to native SVGMatrix\n native: function () {\n // create new matrix\n var matrix = SVG.parser.nodes.svg.node.createSVGMatrix()\n\n // update with current values\n for (var i = abcdef.length - 1; i >= 0; i--) {\n matrix[abcdef[i]] = this[abcdef[i]]\n }\n\n return matrix\n },\n\n // Check if two matrices are equal\n equals: function (other) {\n var comp = new SVG.Matrix(other)\n return closeEnough(this.a, comp.a) && closeEnough(this.b, comp.b) &&\n closeEnough(this.c, comp.c) && closeEnough(this.d, comp.d) &&\n closeEnough(this.e, comp.e) && closeEnough(this.f, comp.f)\n },\n\n // Convert matrix to string\n toString: function () {\n return 'matrix(' + this.a + ',' + this.b + ',' + this.c + ',' + this.d + ',' + this.e + ',' + this.f + ')'\n },\n\n toArray: function () {\n return [this.a, this.b, this.c, this.d, this.e, this.f]\n },\n\n valueOf: function () {\n return {\n a: this.a,\n b: this.b,\n c: this.c,\n d: this.d,\n e: this.e,\n f: this.f\n }\n }\n },\n\n // Define parent\n parent: SVG.Element,\n\n // Add parent method\n construct: {\n // Get current matrix\n ctm: function () {\n return new SVG.Matrix(this.node.getCTM())\n },\n // Get current screen matrix\n screenCTM: function () {\n /* https://bugzilla.mozilla.org/show_bug.cgi?id=1344537\n This is needed because FF does not return the transformation matrix\n for the inner coordinate system when getScreenCTM() is called on nested svgs.\n However all other Browsers do that */\n if (this instanceof SVG.Doc && !this.isRoot()) {\n var rect = this.rect(1, 1)\n var m = rect.node.getScreenCTM()\n rect.remove()\n return new SVG.Matrix(m)\n }\n return new SVG.Matrix(this.node.getScreenCTM())\n }\n }\n})\n\n// let extensions = {}\n// ['rotate'].forEach((method) => {\n// let methodO = method + 'O'\n// extensions[method] = function (...args) {\n// return new SVG.Matrix(this)[methodO](...args)\n// }\n// })\n//\n// SVG.extend(SVG.Matrix, extensions)\n\n// function matrixMultiplyParams (matrix, a, b, c, d, e, f) {\n// return matrixMultiply({a, b, c, d, e, f}, matrix, matrix)\n// }\n","\nSVG.Point = SVG.invent({\n // Initialize\n create: function (x, y, base) {\n var source\n base = base || {x: 0, y: 0}\n\n // ensure source as object\n source = Array.isArray(x) ? {x: x[0], y: x[1]}\n : typeof x === 'object' ? {x: x.x, y: x.y}\n : {x: x, y: y}\n\n // merge source\n this.x = source.x == null ? base.x : source.x\n this.y = source.y == null ? base.y : source.y\n },\n\n // Add methods\n extend: {\n // Clone point\n clone: function () {\n return new SVG.Point(this)\n },\n\n // Morph one point into another\n morph: function (x, y) {\n // store new destination\n this.destination = new SVG.Point(x, y)\n return this\n },\n\n // Get morphed point at a given position\n at: function (pos) {\n // make sure a destination is defined\n if (!this.destination) return this\n\n // calculate morphed matrix at a given position\n var point = new SVG.Point({\n x: this.x + (this.destination.x - this.x) * pos,\n y: this.y + (this.destination.y - this.y) * pos\n })\n return point\n },\n\n // Convert to native SVGPoint\n native: function () {\n // create new point\n var point = SVG.parser.nodes.svg.node.createSVGPoint()\n\n // update with current values\n point.x = this.x\n point.y = this.y\n return point\n },\n\n // transform point with matrix\n transform: function (m) {\n // Perform the matrix multiplication\n var x = m.a * this.x + m.c * this.y + m.e\n var y = m.b * this.x + m.d * this.y + m.f\n\n // Return the required point\n return new SVG.Point(x, y)\n }\n }\n})\n\nSVG.extend(SVG.Element, {\n\n // Get point\n point: function (x, y) {\n return new SVG.Point(x, y).transform(this.screenCTM().inverse())\n }\n})\n","SVG.extend(SVG.Element, {\n // Set svg element attribute\n attr: function (a, v, n) {\n // act as full getter\n if (a == null) {\n // get an object of attributes\n a = {}\n v = this.node.attributes\n for (n = v.length - 1; n >= 0; n--) {\n a[v[n].nodeName] = SVG.regex.isNumber.test(v[n].nodeValue)\n ? parseFloat(v[n].nodeValue)\n : v[n].nodeValue\n }\n return a\n } else if (typeof a === 'object') {\n // apply every attribute individually if an object is passed\n for (v in a) this.attr(v, a[v])\n } else if (v === null) {\n // remove value\n this.node.removeAttribute(a)\n } else if (v == null) {\n // act as a getter if the first and only argument is not an object\n v = this.node.getAttribute(a)\n return v == null ? SVG.defaults.attrs[a]\n : SVG.regex.isNumber.test(v) ? parseFloat(v)\n : v\n } else {\n // convert image fill and stroke to patterns\n if (a === 'fill' || a === 'stroke') {\n if (SVG.regex.isImage.test(v)) {\n v = this.doc().defs().image(v)\n }\n\n if (v instanceof SVG.Image) {\n v = this.doc().defs().pattern(0, 0, function () {\n this.add(v)\n })\n }\n }\n\n // ensure correct numeric values (also accepts NaN and Infinity)\n if (typeof v === 'number') {\n v = new SVG.Number(v)\n } else if (SVG.Color.isColor(v)) {\n // ensure full hex color\n v = new SVG.Color(v)\n } else if (Array.isArray(v)) {\n // parse array values\n v = new SVG.Array(v)\n }\n\n // if the passed attribute is leading...\n if (a === 'leading') {\n // ... call the leading method instead\n if (this.leading) {\n this.leading(v)\n }\n } else {\n // set given attribute on node\n typeof n === 'string' ? this.node.setAttributeNS(n, a, v.toString())\n : this.node.setAttribute(a, v.toString())\n }\n\n // rebuild if required\n if (this.rebuild && (a === 'font-size' || a === 'x')) {\n this.rebuild(a, v)\n }\n }\n\n return this\n }\n})\n","/* global arrayToMatrix getOrigin isMatrixLike */\n\nSVG.extend(SVG.Element, {\n // Reset all transformations\n untransform: function () {\n return this.attr('transform', null)\n },\n\n // merge the whole transformation chain into one matrix and returns it\n matrixify: function () {\n var matrix = (this.attr('transform') || '')\n // split transformations\n .split(SVG.regex.transforms).slice(0, -1).map(function (str) {\n // generate key => value pairs\n var kv = str.trim().split('(')\n return [kv[0],\n kv[1].split(SVG.regex.delimiter)\n .map(function (str) { return parseFloat(str) })\n ]\n })\n .reverse()\n // merge every transformation into one matrix\n .reduce(function (matrix, transform) {\n if (transform[0] === 'matrix') {\n return matrix.lmultiply(arrayToMatrix(transform[1]))\n }\n return matrix[transform[0]].apply(matrix, transform[1])\n }, new SVG.Matrix())\n\n return matrix\n },\n\n // add an element to another parent without changing the visual representation on the screen\n toParent: function (parent) {\n if (this === parent) return this\n var ctm = this.screenCTM()\n var pCtm = parent.screenCTM().inverse()\n\n this.addTo(parent).untransform().transform(pCtm.multiply(ctm))\n\n return this\n },\n\n // same as above with parent equals root-svg\n toDoc: function () {\n return this.toParent(this.doc())\n }\n})\n\nSVG.extend(SVG.Element, {\n\n // Add transformations\n transform: function (o, relative) {\n // Act as a getter if no object was passed\n if (o == null || typeof o === 'string') {\n var decomposed = new SVG.Matrix(this).decompose()\n return decomposed[o] || decomposed\n }\n\n if (!isMatrixLike(o)) {\n // Set the origin according to the defined transform\n o = {...o, origin: getOrigin(o, this)}\n }\n\n // The user can pass a boolean, an SVG.Element or an SVG.Matrix or nothing\n var cleanRelative = relative === true ? this : (relative || false)\n var result = new SVG.Matrix(cleanRelative).transform(o)\n return this.attr('transform', result)\n }\n})\n","/* global camelCase */\n\nSVG.extend(SVG.Element, {\n // Dynamic style generator\n css: function (s, v) {\n var ret = {}\n var t, i\n if (arguments.length === 0) {\n // get full style as object\n this.node.style.cssText.split(/\\s*;\\s*/).filter(function (el) { return !!el.length }).forEach(function (el) {\n t = el.split(/\\s*:\\s*/)\n ret[t[0]] = t[1]\n })\n return ret\n }\n\n if (arguments.length < 2) {\n // get style properties in the array\n if (Array.isArray(s)) {\n for (i = s.length; i--;) {\n ret[camelCase(s[i])] = this.node.style[camelCase(s[i])]\n }\n return ret\n }\n\n // get style for property\n if (typeof s === 'string') {\n return this.node.style[camelCase(s)]\n }\n\n // set styles in object\n if (typeof s === 'object') {\n for (i in s) {\n // set empty string if null/undefined/'' was given\n this.node.style[camelCase(i)] = (s[i] == null || SVG.regex.isBlank.test(s[i])) ? '' : s[i]\n }\n }\n }\n\n // set style for property\n if (arguments.length === 2) {\n this.node.style[camelCase(s)] = (v == null || SVG.regex.isBlank.test(v)) ? '' : v\n }\n\n return this\n }\n})\n","/* global createElement */\n\nSVG.Parent = SVG.invent({\n // Initialize node\n create: function (node) {\n SVG.Element.call(this, node)\n },\n\n // Inherit from\n inherit: SVG.Element,\n\n // Add class methods\n extend: {\n // Returns all child elements\n children: function () {\n return SVG.utils.map(this.node.children, function (node) {\n return SVG.adopt(node)\n })\n },\n // Add given element at a position\n add: function (element, i) {\n element = createElement(element)\n\n if (element.node !== this.node.children[i]) {\n this.node.insertBefore(element.node, this.node.children[i] || null)\n }\n\n return this\n },\n // Basically does the same as `add()` but returns the added element instead\n put: function (element, i) {\n this.add(element, i)\n return element.instance || element\n },\n // Checks if the given element is a child\n has: function (element) {\n return this.index(element) >= 0\n },\n // Gets index of given element\n index: function (element) {\n return [].slice.call(this.node.children).indexOf(element.node)\n },\n // Get a element at the given index\n get: function (i) {\n return SVG.adopt(this.node.children[i])\n },\n // Get first child\n first: function () {\n return this.get(0)\n },\n // Get the last child\n last: function () {\n return this.get(this.node.children.length - 1)\n },\n // Iterates over all children and invokes a given block\n each: function (block, deep) {\n var children = this.children()\n var i, il\n\n for (i = 0, il = children.length; i < il; i++) {\n if (children[i] instanceof SVG.Element) {\n block.apply(children[i], [i, children])\n }\n\n if (deep && (children[i] instanceof SVG.Parent)) {\n children[i].each(block, deep)\n }\n }\n\n return this\n },\n // Remove a given child\n removeElement: function (element) {\n this.node.removeChild(element.node)\n\n return this\n },\n // Remove all elements in this container\n clear: function () {\n // remove children\n while (this.node.hasChildNodes()) {\n this.node.removeChild(this.node.lastChild)\n }\n\n // remove defs reference\n delete this._defs\n\n return this\n }\n }\n\n})\n","SVG.extend(SVG.Parent, {\n flatten: function (parent) {\n // flattens is only possible for nested svgs and groups\n if (!(this instanceof SVG.G || this instanceof SVG.Doc)) {\n return this\n }\n\n parent = parent || (this instanceof SVG.Doc && this.isRoot() ? this : this.parent(SVG.Parent))\n\n this.each(function () {\n if (this instanceof SVG.Defs) return this\n if (this instanceof SVG.Parent) return this.flatten(parent)\n return this.toParent(parent)\n })\n\n // we need this so that SVG.Doc does not get removed\n this.node.firstElementChild || this.remove()\n\n return this\n },\n ungroup: function (parent) {\n // ungroup is only possible for nested svgs and groups\n if (!(this instanceof SVG.G || (this instanceof SVG.Doc && !this.isRoot()))) {\n return this\n }\n\n parent = parent || this.parent(SVG.Parent)\n\n this.each(function () {\n return this.toParent(parent)\n })\n\n // we need this so that SVG.Doc does not get removed\n this.remove()\n\n return this\n }\n})\n","SVG.Container = SVG.invent({\n // Initialize node\n create: function (node) {\n SVG.Element.call(this, node)\n },\n\n // Inherit from\n inherit: SVG.Parent\n})\n","SVG.Defs = SVG.invent({\n // Initialize node\n create: 'defs',\n\n // Inherit from\n inherit: SVG.Container\n})\n","SVG.G = SVG.invent({\n // Initialize node\n create: 'g',\n\n // Inherit from\n inherit: SVG.Container,\n\n // Add class methods\n extend: {\n },\n\n // Add parent method\n construct: {\n // Create a group element\n group: function () {\n return this.put(new SVG.G())\n }\n }\n})\n","// ### This module adds backward / forward functionality to elements.\n\n//\nSVG.extend(SVG.Element, {\n // Get all siblings, including myself\n siblings: function () {\n return this.parent().children()\n },\n\n // Get the curent position siblings\n position: function () {\n return this.parent().index(this)\n },\n\n // Get the next element (will return null if there is none)\n next: function () {\n return this.siblings()[this.position() + 1]\n },\n\n // Get the next element (will return null if there is none)\n prev: function () {\n return this.siblings()[this.position() - 1]\n },\n\n // Send given element one step forward\n forward: function () {\n var i = this.position() + 1\n var p = this.parent()\n\n // move node one step forward\n p.removeElement(this).add(this, i)\n\n // make sure defs node is always at the top\n if (p instanceof SVG.Doc) {\n p.node.appendChild(p.defs().node)\n }\n\n return this\n },\n\n // Send given element one step backward\n backward: function () {\n var i = this.position()\n\n if (i > 0) {\n this.parent().removeElement(this).add(this, i - 1)\n }\n\n return this\n },\n\n // Send given element all the way to the front\n front: function () {\n var p = this.parent()\n\n // Move node forward\n p.node.appendChild(this.node)\n\n // Make sure defs node is always at the top\n if (p instanceof SVG.Doc) {\n p.node.appendChild(p.defs().node)\n }\n\n return this\n },\n\n // Send given element all the way to the back\n back: function () {\n if (this.position() > 0) {\n this.parent().removeElement(this).add(this, 0)\n }\n\n return this\n },\n\n // Inserts a given element before the targeted element\n before: function (element) {\n element.remove()\n\n var i = this.position()\n\n this.parent().add(element, i)\n\n return this\n },\n\n // Insters a given element after the targeted element\n after: function (element) {\n element.remove()\n\n var i = this.position()\n\n this.parent().add(element, i + 1)\n\n return this\n }\n})\n","SVG.Mask = SVG.invent({\n // Initialize node\n create: 'mask',\n\n // Inherit from\n inherit: SVG.Container,\n\n // Add class methods\n extend: {\n // Unmask all masked elements and remove itself\n remove: function () {\n // unmask all targets\n this.targets().forEach(function (el) {\n el.unmask()\n })\n\n // remove mask from parent\n return SVG.Element.prototype.remove.call(this)\n },\n\n targets: function () {\n return SVG.select('svg [mask*=\"' + this.id() + '\"]')\n }\n },\n\n // Add parent method\n construct: {\n // Create masking element\n mask: function () {\n return this.defs().put(new SVG.Mask())\n }\n }\n})\n\nSVG.extend(SVG.Element, {\n // Distribute mask to svg element\n maskWith: function (element) {\n // use given mask or create a new one\n var masker = element instanceof SVG.Mask ? element : this.parent().mask().add(element)\n\n // apply mask\n return this.attr('mask', 'url(\"#' + masker.id() + '\")')\n },\n // Unmask element\n unmask: function () {\n return this.attr('mask', null)\n },\n masker: function () {\n return this.reference('mask')\n }\n})\n","SVG.ClipPath = SVG.invent({\n // Initialize node\n create: 'clipPath',\n\n // Inherit from\n inherit: SVG.Container,\n\n // Add class methods\n extend: {\n // Unclip all clipped elements and remove itself\n remove: function () {\n // unclip all targets\n this.targets().forEach(function (el) {\n el.unclip()\n })\n\n // remove clipPath from parent\n return SVG.Element.prototype.remove.call(this)\n },\n\n targets: function () {\n return SVG.select('svg [clip-path*=\"' + this.id() + '\"]')\n }\n },\n\n // Add parent method\n construct: {\n // Create clipping element\n clip: function () {\n return this.defs().put(new SVG.ClipPath())\n }\n }\n})\n\n//\nSVG.extend(SVG.Element, {\n // Distribute clipPath to svg element\n clipWith: function (element) {\n // use given clip or create a new one\n var clipper = element instanceof SVG.ClipPath ? element : this.parent().clip().add(element)\n\n // apply mask\n return this.attr('clip-path', 'url(\"#' + clipper.id() + '\")')\n },\n // Unclip element\n unclip: function () {\n return this.attr('clip-path', null)\n },\n clipper: function () {\n return this.reference('clip-path')\n }\n\n})\n","SVG.Gradient = SVG.invent({\n // Initialize node\n create: function (type) {\n SVG.Element.call(this, typeof type === 'object' ? type : SVG.create(type + 'Gradient'))\n },\n\n // Inherit from\n inherit: SVG.Container,\n\n // Add class methods\n extend: {\n // Add a color stop\n stop: function (offset, color, opacity) {\n return this.put(new SVG.Stop()).update(offset, color, opacity)\n },\n // Update gradient\n update: function (block) {\n // remove all stops\n this.clear()\n\n // invoke passed block\n if (typeof block === 'function') {\n block.call(this, this)\n }\n\n return this\n },\n // Return the fill id\n url: function () {\n return 'url(#' + this.id() + ')'\n },\n // Alias string convertion to fill\n toString: function () {\n return this.url()\n },\n // custom attr to handle transform\n attr: function (a, b, c) {\n if (a === 'transform') a = 'gradientTransform'\n return SVG.Container.prototype.attr.call(this, a, b, c)\n }\n },\n\n // Add parent method\n construct: {\n // Create gradient element in defs\n gradient: function (type, block) {\n return this.defs().gradient(type, block)\n }\n }\n})\n\n// Add animatable methods to both gradient and fx module\nSVG.extend([SVG.Gradient, SVG.Timeline], {\n // From position\n from: function (x, y) {\n return (this._target || this).type === 'radialGradient'\n ? this.attr({ fx: new SVG.Number(x), fy: new SVG.Number(y) })\n : this.attr({ x1: new SVG.Number(x), y1: new SVG.Number(y) })\n },\n // To position\n to: function (x, y) {\n return (this._target || this).type === 'radialGradient'\n ? this.attr({ cx: new SVG.Number(x), cy: new SVG.Number(y) })\n : this.attr({ x2: new SVG.Number(x), y2: new SVG.Number(y) })\n }\n})\n\n// Base gradient generation\nSVG.extend(SVG.Defs, {\n // define gradient\n gradient: function (type, block) {\n return this.put(new SVG.Gradient(type)).update(block)\n }\n\n})\n\nSVG.Stop = SVG.invent({\n // Initialize node\n create: 'stop',\n\n // Inherit from\n inherit: SVG.Element,\n\n // Add class methods\n extend: {\n // add color stops\n update: function (o) {\n if (typeof o === 'number' || o instanceof SVG.Number) {\n o = {\n offset: arguments[0],\n color: arguments[1],\n opacity: arguments[2]\n }\n }\n\n // set attributes\n if (o.opacity != null) this.attr('stop-opacity', o.opacity)\n if (o.color != null) this.attr('stop-color', o.color)\n if (o.offset != null) this.attr('offset', new SVG.Number(o.offset))\n\n return this\n }\n }\n})\n","SVG.Pattern = SVG.invent({\n // Initialize node\n create: 'pattern',\n\n // Inherit from\n inherit: SVG.Container,\n\n // Add class methods\n extend: {\n // Return the fill id\n url: function () {\n return 'url(#' + this.id() + ')'\n },\n // Update pattern by rebuilding\n update: function (block) {\n // remove content\n this.clear()\n\n // invoke passed block\n if (typeof block === 'function') {\n block.call(this, this)\n }\n\n return this\n },\n // Alias string convertion to fill\n toString: function () {\n return this.url()\n },\n // custom attr to handle transform\n attr: function (a, b, c) {\n if (a === 'transform') a = 'patternTransform'\n return SVG.Container.prototype.attr.call(this, a, b, c)\n }\n\n },\n\n // Add parent method\n construct: {\n // Create pattern element in defs\n pattern: function (width, height, block) {\n return this.defs().pattern(width, height, block)\n }\n }\n})\n\nSVG.extend(SVG.Defs, {\n // Define gradient\n pattern: function (width, height, block) {\n return this.put(new SVG.Pattern()).update(block).attr({\n x: 0,\n y: 0,\n width: width,\n height: height,\n patternUnits: 'userSpaceOnUse'\n })\n }\n\n})\n","SVG.Doc = SVG.invent({\n // Initialize node\n create: function (node) {\n SVG.Element.call(this, node || SVG.create('svg'))\n\n // set svg element attributes and ensure defs node\n this.namespace()\n },\n\n // Inherit from\n inherit: SVG.Container,\n\n // Add class methods\n extend: {\n isRoot: function () {\n return !this.node.parentNode || !(this.node.parentNode instanceof window.SVGElement) || this.node.parentNode.nodeName === '#document'\n },\n // Check if this is a root svg. If not, call docs from this element\n doc: function () {\n if (this.isRoot()) return this\n return SVG.Element.prototype.doc.call(this)\n },\n // Add namespaces\n namespace: function () {\n if (!this.isRoot()) return this.doc().namespace()\n return this\n .attr({ xmlns: SVG.ns, version: '1.1' })\n .attr('xmlns:xlink', SVG.xlink, SVG.xmlns)\n .attr('xmlns:svgjs', SVG.svgjs, SVG.xmlns)\n },\n // Creates and returns defs element\n defs: function () {\n if (!this.isRoot()) return this.doc().defs()\n return SVG.adopt(this.node.getElementsByTagName('defs')[0]) || this.put(new SVG.Defs())\n },\n // custom parent method\n parent: function (type) {\n if (this.isRoot()) {\n return this.node.parentNode.nodeName === '#document' ? null : this.node.parentNode\n }\n\n return SVG.Element.prototype.parent.call(this, type)\n },\n // Removes the doc from the DOM\n remove: function () {\n if (!this.isRoot()) {\n return SVG.Element.prototype.remove.call(this)\n }\n\n if (this.parent()) {\n this.parent().removeChild(this.node)\n }\n\n return this\n },\n clear: function () {\n // remove children\n while (this.node.hasChildNodes()) {\n this.node.removeChild(this.node.lastChild)\n }\n return this\n }\n },\n construct: {\n // Create nested svg document\n nested: function () {\n return this.put(new SVG.Doc())\n }\n }\n})\n","\nSVG.Shape = SVG.invent({\n // Initialize node\n create: function (node) {\n SVG.Element.call(this, node)\n },\n\n // Inherit from\n inherit: SVG.Element\n})\n","\nSVG.Bare = SVG.invent({\n // Initialize\n create: function (element, inherit) {\n // construct element\n SVG.Element.call(this, SVG.create(element))\n\n // inherit custom methods\n if (inherit) {\n for (var method in inherit.prototype) {\n if (typeof inherit.prototype[method] === 'function') {\n this[method] = inherit.prototype[method]\n }\n }\n }\n },\n\n // Inherit from\n inherit: SVG.Element,\n\n // Add methods\n extend: {\n // Insert some plain text\n words: function (text) {\n // remove contents\n while (this.node.hasChildNodes()) {\n this.node.removeChild(this.node.lastChild)\n }\n\n // create text node\n this.node.appendChild(document.createTextNode(text))\n\n return this\n }\n }\n})\n\nSVG.extend(SVG.Parent, {\n // Create an element that is not described by SVG.js\n element: function (element, inherit) {\n return this.put(new SVG.Bare(element, inherit))\n }\n})\n","\nSVG.Symbol = SVG.invent({\n // Initialize node\n create: 'symbol',\n\n // Inherit from\n inherit: SVG.Container,\n\n construct: {\n // create symbol\n symbol: function () {\n return this.put(new SVG.Symbol())\n }\n }\n})\n","\nSVG.Use = SVG.invent({\n // Initialize node\n create: 'use',\n\n // Inherit from\n inherit: SVG.Shape,\n\n // Add class methods\n extend: {\n // Use element as a reference\n element: function (element, file) {\n // Set lined element\n return this.attr('href', (file || '') + '#' + element, SVG.xlink)\n }\n },\n\n // Add parent method\n construct: {\n // Create a use element\n use: function (element, file) {\n return this.put(new SVG.Use()).element(element, file)\n }\n }\n})\n","\nSVG.Rect = SVG.invent({\n // Initialize node\n create: 'rect',\n\n // Inherit from\n inherit: SVG.Shape,\n\n // Add parent method\n construct: {\n // Create a rect element\n rect: function (width, height) {\n return this.put(new SVG.Rect()).size(width, height)\n }\n }\n})\n","/* global proportionalSize */\n\nSVG.Circle = SVG.invent({\n // Initialize node\n create: 'circle',\n\n // Inherit from\n inherit: SVG.Shape,\n\n // Add parent method\n construct: {\n // Create circle element, based on ellipse\n circle: function (size) {\n return this.put(new SVG.Circle()).rx(new SVG.Number(size).divide(2)).move(0, 0)\n }\n }\n})\n\nSVG.extend([SVG.Circle, SVG.Timeline], {\n // Radius x value\n rx: function (rx) {\n return this.attr('r', rx)\n },\n // Alias radius x value\n ry: function (ry) {\n return this.rx(ry)\n }\n})\n\nSVG.Ellipse = SVG.invent({\n // Initialize node\n create: 'ellipse',\n\n // Inherit from\n inherit: SVG.Shape,\n\n // Add parent method\n construct: {\n // Create an ellipse\n ellipse: function (width, height) {\n return this.put(new SVG.Ellipse()).size(width, height).move(0, 0)\n }\n }\n})\n\nSVG.extend([SVG.Ellipse, SVG.Rect, SVG.Timeline], {\n // Radius x value\n rx: function (rx) {\n return this.attr('rx', rx)\n },\n // Radius y value\n ry: function (ry) {\n return this.attr('ry', ry)\n }\n})\n\n// Add common method\nSVG.extend([SVG.Circle, SVG.Ellipse], {\n // Move over x-axis\n x: function (x) {\n return x == null ? this.cx() - this.rx() : this.cx(x + this.rx())\n },\n // Move over y-axis\n y: function (y) {\n return y == null ? this.cy() - this.ry() : this.cy(y + this.ry())\n },\n // Move by center over x-axis\n cx: function (x) {\n return x == null ? this.attr('cx') : this.attr('cx', x)\n },\n // Move by center over y-axis\n cy: function (y) {\n return y == null ? this.attr('cy') : this.attr('cy', y)\n },\n // Set width of element\n width: function (width) {\n return width == null ? this.rx() * 2 : this.rx(new SVG.Number(width).divide(2))\n },\n // Set height of element\n height: function (height) {\n return height == null ? this.ry() * 2 : this.ry(new SVG.Number(height).divide(2))\n },\n // Custom size function\n size: function (width, height) {\n var p = proportionalSize(this, width, height)\n\n return this\n .rx(new SVG.Number(p.width).divide(2))\n .ry(new SVG.Number(p.height).divide(2))\n }\n})\n","/* global proportionalSize */\n\nSVG.Line = SVG.invent({\n // Initialize node\n create: 'line',\n\n // Inherit from\n inherit: SVG.Shape,\n\n // Add class methods\n extend: {\n // Get array\n array: function () {\n return new SVG.PointArray([\n [ this.attr('x1'), this.attr('y1') ],\n [ this.attr('x2'), this.attr('y2') ]\n ])\n },\n\n // Overwrite native plot() method\n plot: function (x1, y1, x2, y2) {\n if (x1 == null) {\n return this.array()\n } else if (typeof y1 !== 'undefined') {\n x1 = { x1: x1, y1: y1, x2: x2, y2: y2 }\n } else {\n x1 = new SVG.PointArray(x1).toLine()\n }\n\n return this.attr(x1)\n },\n\n // Move by left top corner\n move: function (x, y) {\n return this.attr(this.array().move(x, y).toLine())\n },\n\n // Set element size to given width and height\n size: function (width, height) {\n var p = proportionalSize(this, width, height)\n return this.attr(this.array().size(p.width, p.height).toLine())\n }\n },\n\n // Add parent method\n construct: {\n // Create a line element\n line: function (x1, y1, x2, y2) {\n // make sure plot is called as a setter\n // x1 is not necessarily a number, it can also be an array, a string and a SVG.PointArray\n return SVG.Line.prototype.plot.apply(\n this.put(new SVG.Line())\n , x1 != null ? [x1, y1, x2, y2] : [0, 0, 0, 0]\n )\n }\n }\n})\n","/* global proportionalSize */\n\nSVG.Polyline = SVG.invent({\n // Initialize node\n create: 'polyline',\n\n // Inherit from\n inherit: SVG.Shape,\n\n // Add parent method\n construct: {\n // Create a wrapped polyline element\n polyline: function (p) {\n // make sure plot is called as a setter\n return this.put(new SVG.Polyline()).plot(p || new SVG.PointArray())\n }\n }\n})\n\nSVG.Polygon = SVG.invent({\n // Initialize node\n create: 'polygon',\n\n // Inherit from\n inherit: SVG.Shape,\n\n // Add parent method\n construct: {\n // Create a wrapped polygon element\n polygon: function (p) {\n // make sure plot is called as a setter\n return this.put(new SVG.Polygon()).plot(p || new SVG.PointArray())\n }\n }\n})\n\n// Add polygon-specific functions\nSVG.extend([SVG.Polyline, SVG.Polygon], {\n // Get array\n array: function () {\n return this._array || (this._array = new SVG.PointArray(this.attr('points')))\n },\n\n // Plot new path\n plot: function (p) {\n return (p == null) ? this.array()\n : this.clear().attr('points', typeof p === 'string' ? p\n : (this._array = new SVG.PointArray(p)))\n },\n\n // Clear array cache\n clear: function () {\n delete this._array\n return this\n },\n\n // Move by left top corner\n move: function (x, y) {\n return this.attr('points', this.array().move(x, y))\n },\n\n // Set element size to given width and height\n size: function (width, height) {\n var p = proportionalSize(this, width, height)\n return this.attr('points', this.array().size(p.width, p.height))\n }\n})\n","// unify all point to point elements\nSVG.extend([SVG.Line, SVG.Polyline, SVG.Polygon], {\n // Define morphable array\n MorphArray: SVG.PointArray,\n // Move by left top corner over x-axis\n x: function (x) {\n return x == null ? this.bbox().x : this.move(x, this.bbox().y)\n },\n // Move by left top corner over y-axis\n y: function (y) {\n return y == null ? this.bbox().y : this.move(this.bbox().x, y)\n },\n // Set width of element\n width: function (width) {\n var b = this.bbox()\n\n return width == null ? b.width : this.size(width, b.height)\n },\n // Set height of element\n height: function (height) {\n var b = this.bbox()\n\n return height == null ? b.height : this.size(b.width, height)\n }\n})\n","/* global proportionalSize */\n\nSVG.Path = SVG.invent({\n // Initialize node\n create: 'path',\n\n // Inherit from\n inherit: SVG.Shape,\n\n // Add class methods\n extend: {\n // Define morphable array\n MorphArray: SVG.PathArray,\n // Get array\n array: function () {\n return this._array || (this._array = new SVG.PathArray(this.attr('d')))\n },\n // Plot new path\n plot: function (d) {\n return (d == null) ? this.array()\n : this.clear().attr('d', typeof d === 'string' ? d : (this._array = new SVG.PathArray(d)))\n },\n // Clear array cache\n clear: function () {\n delete this._array\n return this\n },\n // Move by left top corner\n move: function (x, y) {\n return this.attr('d', this.array().move(x, y))\n },\n // Move by left top corner over x-axis\n x: function (x) {\n return x == null ? this.bbox().x : this.move(x, this.bbox().y)\n },\n // Move by left top corner over y-axis\n y: function (y) {\n return y == null ? this.bbox().y : this.move(this.bbox().x, y)\n },\n // Set element size to given width and height\n size: function (width, height) {\n var p = proportionalSize(this, width, height)\n return this.attr('d', this.array().size(p.width, p.height))\n },\n // Set width of element\n width: function (width) {\n return width == null ? this.bbox().width : this.size(width, this.bbox().height)\n },\n // Set height of element\n height: function (height) {\n return height == null ? this.bbox().height : this.size(this.bbox().width, height)\n }\n },\n\n // Add parent method\n construct: {\n // Create a wrapped path element\n path: function (d) {\n // make sure plot is called as a setter\n return this.put(new SVG.Path()).plot(d || new SVG.PathArray())\n }\n }\n})\n","SVG.Image = SVG.invent({\n // Initialize node\n create: 'image',\n\n // Inherit from\n inherit: SVG.Shape,\n\n // Add class methods\n extend: {\n // (re)load image\n load: function (url, callback) {\n if (!url) return this\n\n var img = new window.Image()\n\n SVG.on(img, 'load', function (e) {\n var p = this.parent(SVG.Pattern)\n\n // ensure image size\n if (this.width() === 0 && this.height() === 0) {\n this.size(img.width, img.height)\n }\n\n if (p instanceof SVG.Pattern) {\n // ensure pattern size if not set\n if (p.width() === 0 && p.height() === 0) {\n p.size(this.width(), this.height())\n }\n }\n\n if (typeof callback === 'function') {\n callback.call(this, {\n width: img.width,\n height: img.height,\n ratio: img.width / img.height,\n url: url\n })\n }\n }, this)\n\n SVG.on(img, 'load error', function () {\n // dont forget to unbind memory leaking events\n SVG.off(img)\n })\n\n return this.attr('href', (img.src = url), SVG.xlink)\n }\n },\n\n // Add parent method\n construct: {\n // create image element, load image and set its size\n image: function (source, callback) {\n return this.put(new SVG.Image()).size(0, 0).load(source, callback)\n }\n }\n})\n","SVG.Text = SVG.invent({\n // Initialize node\n create: function (node) {\n SVG.Element.call(this, node || SVG.create('text'))\n this.dom.leading = new SVG.Number(1.3) // store leading value for rebuilding\n this._rebuild = true // enable automatic updating of dy values\n this._build = false // disable build mode for adding multiple lines\n\n // set default font\n this.attr('font-family', SVG.defaults.attrs['font-family'])\n },\n\n // Inherit from\n inherit: SVG.Parent,\n\n // Add class methods\n extend: {\n // Move over x-axis\n x: function (x) {\n // act as getter\n if (x == null) {\n return this.attr('x')\n }\n\n return this.attr('x', x)\n },\n // Move over y-axis\n y: function (y) {\n var oy = this.attr('y')\n var o = typeof oy === 'number' ? oy - this.bbox().y : 0\n\n // act as getter\n if (y == null) {\n return typeof oy === 'number' ? oy - o : oy\n }\n\n return this.attr('y', typeof y === 'number' ? y + o : y)\n },\n // Move center over x-axis\n cx: function (x) {\n return x == null ? this.bbox().cx : this.x(x - this.bbox().width / 2)\n },\n // Move center over y-axis\n cy: function (y) {\n return y == null ? this.bbox().cy : this.y(y - this.bbox().height / 2)\n },\n // Set the text content\n text: function (text) {\n // act as getter\n if (text === undefined) {\n var children = this.node.childNodes\n var firstLine = 0\n text = ''\n\n for (var i = 0, len = children.length; i < len; ++i) {\n // skip textPaths - they are no lines\n if (children[i].nodeName === 'textPath') {\n if (i === 0) firstLine = 1\n continue\n }\n\n // add newline if its not the first child and newLined is set to true\n if (i !== firstLine && children[i].nodeType !== 3 && SVG.adopt(children[i]).dom.newLined === true) {\n text += '\\n'\n }\n\n // add content of this node\n text += children[i].textContent\n }\n\n return text\n }\n\n // remove existing content\n this.clear().build(true)\n\n if (typeof text === 'function') {\n // call block\n text.call(this, this)\n } else {\n // store text and make sure text is not blank\n text = text.split('\\n')\n\n // build new lines\n for (var j = 0, jl = text.length; j < jl; j++) {\n this.tspan(text[j]).newLine()\n }\n }\n\n // disable build mode and rebuild lines\n return this.build(false).rebuild()\n },\n // Set / get leading\n leading: function (value) {\n // act as getter\n if (value == null) {\n return this.dom.leading\n }\n\n // act as setter\n this.dom.leading = new SVG.Number(value)\n\n return this.rebuild()\n },\n // Rebuild appearance type\n rebuild: function (rebuild) {\n // store new rebuild flag if given\n if (typeof rebuild === 'boolean') {\n this._rebuild = rebuild\n }\n\n // define position of all lines\n if (this._rebuild) {\n var self = this\n var blankLineOffset = 0\n var dy = this.dom.leading * new SVG.Number(this.attr('font-size'))\n\n this.each(function () {\n if (this.dom.newLined) {\n this.attr('x', self.attr('x'))\n\n if (this.text() === '\\n') {\n blankLineOffset += dy\n } else {\n this.attr('dy', dy + blankLineOffset)\n blankLineOffset = 0\n }\n }\n })\n\n this.fire('rebuild')\n }\n\n return this\n },\n // Enable / disable build mode\n build: function (build) {\n this._build = !!build\n return this\n },\n // overwrite method from parent to set data properly\n setData: function (o) {\n this.dom = o\n this.dom.leading = new SVG.Number(o.leading || 1.3)\n return this\n }\n },\n\n // Add parent method\n construct: {\n // Create text element\n text: function (text) {\n return this.put(new SVG.Text()).text(text)\n },\n // Create plain text element\n plain: function (text) {\n return this.put(new SVG.Text()).plain(text)\n }\n }\n\n})\n\nSVG.Tspan = SVG.invent({\n // Initialize node\n create: 'tspan',\n\n // Inherit from\n inherit: SVG.Parent,\n\n // Add class methods\n extend: {\n // Set text content\n text: function (text) {\n if (text == null) return this.node.textContent + (this.dom.newLined ? '\\n' : '')\n\n typeof text === 'function' ? text.call(this, this) : this.plain(text)\n\n return this\n },\n // Shortcut dx\n dx: function (dx) {\n return this.attr('dx', dx)\n },\n // Shortcut dy\n dy: function (dy) {\n return this.attr('dy', dy)\n },\n // Create new line\n newLine: function () {\n // fetch text parent\n var t = this.parent(SVG.Text)\n\n // mark new line\n this.dom.newLined = true\n\n // apply new position\n return this.dy(t.dom.leading * t.attr('font-size')).attr('x', t.x())\n }\n }\n})\n\nSVG.extend([SVG.Text, SVG.Tspan], {\n // Create plain text node\n plain: function (text) {\n // clear if build mode is disabled\n if (this._build === false) {\n this.clear()\n }\n\n // create text node\n this.node.appendChild(document.createTextNode(text))\n\n return this\n },\n // Create a tspan\n tspan: function (text) {\n var tspan = new SVG.Tspan()\n\n // clear if build mode is disabled\n if (!this._build) {\n this.clear()\n }\n\n // add new tspan\n this.node.appendChild(tspan.node)\n\n return tspan.text(text)\n },\n // FIXME: Does this also work for textpath?\n // Get length of text element\n length: function () {\n return this.node.getComputedTextLength()\n }\n})\n","SVG.TextPath = SVG.invent({\n // Initialize node\n create: 'textPath',\n\n // Inherit from\n inherit: SVG.Text,\n\n // Define parent class\n parent: SVG.Parent,\n\n // Add parent method\n extend: {\n MorphArray: SVG.PathArray,\n // return the array of the path track element\n array: function () {\n var track = this.track()\n\n return track ? track.array() : null\n },\n // Plot path if any\n plot: function (d) {\n var track = this.track()\n var pathArray = null\n\n if (track) {\n pathArray = track.plot(d)\n }\n\n return (d == null) ? pathArray : this\n },\n // Get the path element\n track: function () {\n return this.reference('href')\n }\n },\n construct: {\n textPath: function (text, path) {\n return this.defs().path(path).text(text).addTo(this)\n }\n }\n})\n\nSVG.extend([SVG.Text], {\n // Create path for text to run on\n path: function (track) {\n var path = new SVG.TextPath()\n\n // if d is a path, reuse it\n if (!(track instanceof SVG.Path)) {\n // create path element\n track = this.doc().defs().path(track)\n }\n\n // link textPath to path and add content\n path.attr('href', '#' + track, SVG.xlink)\n\n // add textPath element as child node and return textPath\n return this.put(path)\n },\n // Todo: make this plural?\n // Get the textPath children\n textPath: function () {\n return this.select('textPath')\n }\n})\n\nSVG.extend([SVG.Path], {\n // creates a textPath from this path\n text: function (text) {\n if (text instanceof SVG.Text) {\n var txt = text.text()\n return text.clear().path(this).text(txt)\n }\n return this.parent().put(new SVG.Text()).path(this).text(text)\n }\n // TODO: Maybe add `targets` to get all textPaths associated with this path\n})\n","SVG.A = SVG.invent({\n // Initialize node\n create: 'a',\n\n // Inherit from\n inherit: SVG.Container,\n\n // Add class methods\n extend: {\n // Link url\n to: function (url) {\n return this.attr('href', url, SVG.xlink)\n },\n // Link target attribute\n target: function (target) {\n return this.attr('target', target)\n }\n },\n\n // Add parent method\n construct: {\n // Create a hyperlink element\n link: function (url) {\n return this.put(new SVG.A()).to(url)\n }\n }\n})\n\nSVG.extend(SVG.Element, {\n // Create a hyperlink element\n linkTo: function (url) {\n var link = new SVG.A()\n\n if (typeof url === 'function') { url.call(link, link) } else {\n link.to(url)\n }\n\n return this.parent().put(link).put(this)\n }\n\n})\n","SVG.Marker = SVG.invent({\n // Initialize node\n create: 'marker',\n\n // Inherit from\n inherit: SVG.Container,\n\n // Add class methods\n extend: {\n // Set width of element\n width: function (width) {\n return this.attr('markerWidth', width)\n },\n // Set height of element\n height: function (height) {\n return this.attr('markerHeight', height)\n },\n // Set marker refX and refY\n ref: function (x, y) {\n return this.attr('refX', x).attr('refY', y)\n },\n // Update marker\n update: function (block) {\n // remove all content\n this.clear()\n\n // invoke passed block\n if (typeof block === 'function') { block.call(this, this) }\n\n return this\n },\n // Return the fill id\n toString: function () {\n return 'url(#' + this.id() + ')'\n }\n },\n\n // Add parent method\n construct: {\n marker: function (width, height, block) {\n // Create marker element in defs\n return this.defs().marker(width, height, block)\n }\n }\n\n})\n\nSVG.extend(SVG.Defs, {\n // Create marker\n marker: function (width, height, block) {\n // Set default viewbox to match the width and height, set ref to cx and cy and set orient to auto\n return this.put(new SVG.Marker())\n .size(width, height)\n .ref(width / 2, height / 2)\n .viewbox(0, 0, width, height)\n .attr('orient', 'auto')\n .update(block)\n }\n\n})\n\nSVG.extend([SVG.Line, SVG.Polyline, SVG.Polygon, SVG.Path], {\n // Create and attach markers\n marker: function (marker, width, height, block) {\n var attr = ['marker']\n\n // Build attribute name\n if (marker !== 'all') attr.push(marker)\n attr = attr.join('-')\n\n // Set marker attribute\n marker = arguments[1] instanceof SVG.Marker\n ? arguments[1]\n : this.doc().marker(width, height, block)\n\n return this.attr(attr, marker)\n }\n})\n","// Define list of available attributes for stroke and fill\nvar sugar = {\n stroke: ['color', 'width', 'opacity', 'linecap', 'linejoin', 'miterlimit', 'dasharray', 'dashoffset'],\n fill: ['color', 'opacity', 'rule'],\n prefix: function (t, a) {\n return a === 'color' ? t : t + '-' + a\n }\n}\n\n// Add sugar for fill and stroke\n;['fill', 'stroke'].forEach(function (m) {\n var extension = {}\n var i\n\n extension[m] = function (o) {\n if (typeof o === 'undefined') {\n return this\n }\n if (typeof o === 'string' || SVG.Color.isRgb(o) || (o && typeof o.fill === 'function')) {\n this.attr(m, o)\n } else {\n // set all attributes from sugar.fill and sugar.stroke list\n for (i = sugar[m].length - 1; i >= 0; i--) {\n if (o[sugar[m][i]] != null) {\n this.attr(sugar.prefix(m, sugar[m][i]), o[sugar[m][i]])\n }\n }\n }\n\n return this\n }\n\n SVG.extend([SVG.Element, SVG.Timeline], extension)\n})\n\nSVG.extend([SVG.Element, SVG.Timeline], {\n // Let the user set the matrix directly\n matrix: function (mat, b, c, d, e, f) {\n // Act as a getter\n if (mat == null) {\n return new SVG.Matrix(this)\n }\n\n // Act as a setter, the user can pass a matrix or a set of numbers\n return this.attr('transform', new SVG.Matrix(mat, b, c, d, e, f))\n },\n\n // Map rotation to transform\n rotate: function (angle, cx, cy) {\n return this.transform({rotate: angle, ox: cx, oy: cy}, true)\n },\n\n // Map skew to transform\n skew: function (x, y, cx, cy) {\n return arguments.length === 1 || arguments.length === 3\n ? this.transform({skew: x, ox: y, oy: cx}, true)\n : this.transform({skew: [x, y], ox: cx, oy: cy}, true)\n },\n\n shear: function (lam, cx, cy) {\n return this.transform({shear: lam, ox: cx, oy: cy}, true)\n },\n\n // Map scale to transform\n scale: function (x, y, cx, cy) {\n return arguments.length === 1 || arguments.length === 3\n ? this.transform({ scale: x, ox: y, oy: cx }, true)\n : this.transform({ scale: [x, y], ox: cx, oy: cy }, true)\n },\n\n // Map translate to transform\n translate: function (x, y) {\n return this.transform({ translate: [x, y] }, true)\n },\n\n // Map relative translations to transform\n relative: function (x, y) {\n return this.transform({ relative: [x, y] }, true)\n },\n\n // Map flip to transform\n flip: function (direction, around) {\n var directionString = typeof direction === 'string' ? direction\n : isFinite(direction) ? 'both'\n : 'both'\n var origin = (direction === 'both' && isFinite(around)) ? [around, around]\n : (direction === 'x') ? [around, 0]\n : (direction === 'y') ? [0, around]\n : isFinite(direction) ? [direction, direction]\n : [0, 0]\n this.transform({flip: directionString, origin: origin}, true)\n },\n\n // Opacity\n opacity: function (value) {\n return this.attr('opacity', value)\n },\n\n // Relative move over x axis\n dx: function (x) {\n return this.x(new SVG.Number(x).plus(this instanceof SVG.Timeline ? 0 : this.x()), true)\n },\n\n // Relative move over y axis\n dy: function (y) {\n return this.y(new SVG.Number(y).plus(this instanceof SVG.Timeline ? 0 : this.y()), true)\n },\n\n // Relative move over x and y axes\n dmove: function (x, y) {\n return this.dx(x).dy(y)\n }\n})\n\nSVG.extend([SVG.Rect, SVG.Ellipse, SVG.Circle, SVG.Gradient, SVG.Timeline], {\n // Add x and y radius\n radius: function (x, y) {\n var type = (this._target || this).type\n return type === 'radialGradient' || type === 'radialGradient'\n ? this.attr('r', new SVG.Number(x))\n : this.rx(x).ry(y == null ? x : y)\n }\n})\n\nSVG.extend(SVG.Path, {\n // Get path length\n length: function () {\n return this.node.getTotalLength()\n },\n // Get point at length\n pointAt: function (length) {\n return new SVG.Point(this.node.getPointAtLength(length))\n }\n})\n\nSVG.extend([SVG.Parent, SVG.Text, SVG.Tspan, SVG.Timeline], {\n // Set font\n font: function (a, v) {\n if (typeof a === 'object') {\n for (v in a) this.font(v, a[v])\n }\n\n return a === 'leading'\n ? this.leading(v)\n : a === 'anchor'\n ? this.attr('text-anchor', v)\n : a === 'size' || a === 'family' || a === 'weight' || a === 'stretch' || a === 'variant' || a === 'style'\n ? this.attr('font-' + a, v)\n : this.attr(a, v)\n }\n})\n","\nSVG.extend(SVG.Element, {\n // Store data values on svg nodes\n data: function (a, v, r) {\n if (typeof a === 'object') {\n for (v in a) {\n this.data(v, a[v])\n }\n } else if (arguments.length < 2) {\n try {\n return JSON.parse(this.attr('data-' + a))\n } catch (e) {\n return this.attr('data-' + a)\n }\n } else {\n this.attr('data-' + a,\n v === null ? null\n : r === true || typeof v === 'string' || typeof v === 'number' ? v\n : JSON.stringify(v)\n )\n }\n\n return this\n }\n})\n","\nSVG.extend(SVG.Element, {\n // Remember arbitrary data\n remember: function (k, v) {\n // remember every item in an object individually\n if (typeof arguments[0] === 'object') {\n for (var key in k) {\n this.remember(key, k[key])\n }\n } else if (arguments.length === 1) {\n // retrieve memory\n return this.memory()[k]\n } else {\n // store memory\n this.memory()[k] = v\n }\n\n return this\n },\n\n // Erase a given memory\n forget: function () {\n if (arguments.length === 0) {\n this._memory = {}\n } else {\n for (var i = arguments.length - 1; i >= 0; i--) {\n delete this.memory()[arguments[i]]\n }\n }\n return this\n },\n\n // Initialize or return local memory object\n memory: function () {\n return this._memory || (this._memory = {})\n }\n})\n","/* global idFromReference */\n\n// Method for getting an element by id\nSVG.get = function (id) {\n var node = document.getElementById(idFromReference(id) || id)\n return SVG.adopt(node)\n}\n\n// Select elements by query string\nSVG.select = function (query, parent) {\n return SVG.utils.map((parent || document).querySelectorAll(query), function (node) {\n return SVG.adopt(node)\n })\n}\n\nSVG.$$ = function (query, parent) {\n return SVG.utils.map((parent || document).querySelectorAll(query), function (node) {\n return SVG.adopt(node)\n })\n}\n\nSVG.$ = function (query, parent) {\n return SVG.adopt((parent || document).querySelector(query))\n}\n\nSVG.extend(SVG.Parent, {\n // Scoped select method\n select: function (query) {\n return SVG.select(query, this.node)\n }\n})\n","/* eslint no-unused-vars: 0 */\n\nfunction createElement (element, makeNested) {\n if (element instanceof SVG.Element) return element\n\n if (typeof element === 'object') {\n return SVG.adopt(element)\n }\n\n if (element == null) {\n return new SVG.Doc()\n }\n\n if (typeof element === 'string' && element.charAt(0) !== '<') {\n return SVG.adopt(document.querySelector(element))\n }\n\n var node = SVG.create('svg')\n node.innerHTML = element\n\n element = SVG.adopt(node.firstElementChild)\n\n return element\n}\n\nfunction isNulledBox (box) {\n return !box.w && !box.h && !box.x && !box.y\n}\n\nfunction domContains (node) {\n return (document.documentElement.contains || function (node) {\n // This is IE - it does not support contains() for top-level SVGs\n while (node.parentNode) {\n node = node.parentNode\n }\n return node === document\n }).call(document.documentElement, node)\n}\n\nfunction pathRegReplace (a, b, c, d) {\n return c + d.replace(SVG.regex.dots, ' .')\n}\n\n// creates deep clone of array\nfunction arrayClone (arr) {\n var clone = arr.slice(0)\n for (var i = clone.length; i--;) {\n if (Array.isArray(clone[i])) {\n clone[i] = arrayClone(clone[i])\n }\n }\n return clone\n}\n\n// tests if a given element is instance of an object\nfunction is (el, obj) {\n return el instanceof obj\n}\n\n// tests if a given selector matches an element\nfunction matches (el, selector) {\n return (el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector).call(el, selector)\n}\n\n// Convert dash-separated-string to camelCase\nfunction camelCase (s) {\n return s.toLowerCase().replace(/-(.)/g, function (m, g) {\n return g.toUpperCase()\n })\n}\n\n// Capitalize first letter of a string\nfunction capitalize (s) {\n return s.charAt(0).toUpperCase() + s.slice(1)\n}\n\n// Ensure to six-based hex\nfunction fullHex (hex) {\n return hex.length === 4\n ? [ '#',\n hex.substring(1, 2), hex.substring(1, 2),\n hex.substring(2, 3), hex.substring(2, 3),\n hex.substring(3, 4), hex.substring(3, 4)\n ].join('')\n : hex\n}\n\n// Component to hex value\nfunction compToHex (comp) {\n var hex = comp.toString(16)\n return hex.length === 1 ? '0' + hex : hex\n}\n\n// Calculate proportional width and height values when necessary\nfunction proportionalSize (element, width, height) {\n if (width == null || height == null) {\n var box = element.bbox()\n\n if (width == null) {\n width = box.width / box.height * height\n } else if (height == null) {\n height = box.height / box.width * width\n }\n }\n\n return {\n width: width,\n height: height\n }\n}\n\n// Map matrix array to object\nfunction arrayToMatrix (a) {\n return { a: a[0], b: a[1], c: a[2], d: a[3], e: a[4], f: a[5] }\n}\n\n// Add centre point to transform object\nfunction ensureCentre (o, target) {\n o.cx = o.cx == null ? target.bbox().cx : o.cx\n o.cy = o.cy == null ? target.bbox().cy : o.cy\n}\n\n// PathArray Helpers\nfunction arrayToString (a) {\n for (var i = 0, il = a.length, s = ''; i < il; i++) {\n s += a[i][0]\n\n if (a[i][1] != null) {\n s += a[i][1]\n\n if (a[i][2] != null) {\n s += ' '\n s += a[i][2]\n\n if (a[i][3] != null) {\n s += ' '\n s += a[i][3]\n s += ' '\n s += a[i][4]\n\n if (a[i][5] != null) {\n s += ' '\n s += a[i][5]\n s += ' '\n s += a[i][6]\n\n if (a[i][7] != null) {\n s += ' '\n s += a[i][7]\n }\n }\n }\n }\n }\n }\n\n return s + ' '\n}\n\n// Deep new id assignment\nfunction assignNewId (node) {\n // do the same for SVG child nodes as well\n for (var i = node.children.length - 1; i >= 0; i--) {\n assignNewId(node.children[i])\n }\n\n if (node.id) {\n return SVG.adopt(node).id(SVG.eid(node.nodeName))\n }\n\n return SVG.adopt(node)\n}\n\n// Add more bounding box properties\nfunction fullBox (b) {\n if (b.x == null) {\n b.x = 0\n b.y = 0\n b.width = 0\n b.height = 0\n }\n\n b.w = b.width\n b.h = b.height\n b.x2 = b.x + b.width\n b.y2 = b.y + b.height\n b.cx = b.x + b.width / 2\n b.cy = b.y + b.height / 2\n\n return b\n}\n\n// Get id from reference string\nfunction idFromReference (url) {\n var m = (url || '').toString().match(SVG.regex.reference)\n\n if (m) return m[1]\n}\n\n// Create matrix array for looping\nvar abcdef = 'abcdef'.split('')\n\nfunction closeEnough (a, b, threshold) {\n return Math.abs(b - a) < (threshold || 1e-6)\n}\n\nfunction isMatrixLike (o) {\n return (\n o.a != null ||\n o.b != null ||\n o.c != null ||\n o.d != null ||\n o.e != null ||\n o.f != null\n )\n}\n\n// TODO: Refactor this to a static function of matrix.js\nfunction formatTransforms (o) {\n // Get all of the parameters required to form the matrix\n var flipBoth = o.flip === 'both' || o.flip === true\n var flipX = o.flip && (flipBoth || o.flip === 'x') ? -1 : 1\n var flipY = o.flip && (flipBoth || o.flip === 'y') ? -1 : 1\n var skewX = o.skew && o.skew.length ? o.skew[0]\n : isFinite(o.skew) ? o.skew\n : isFinite(o.skewX) ? o.skewX\n : 0\n var skewY = o.skew && o.skew.length ? o.skew[1]\n : isFinite(o.skew) ? o.skew\n : isFinite(o.skewY) ? o.skewY\n : 0\n var scaleX = o.scale && o.scale.length ? o.scale[0] * flipX\n : isFinite(o.scale) ? o.scale * flipX\n : isFinite(o.scaleX) ? o.scaleX * flipX\n : flipX\n var scaleY = o.scale && o.scale.length ? o.scale[1] * flipY\n : isFinite(o.scale) ? o.scale * flipY\n : isFinite(o.scaleY) ? o.scaleY * flipY\n : flipY\n var shear = o.shear || 0\n var theta = o.rotate || o.theta || 0\n var origin = new SVG.Point(o.origin || o.around || o.ox || o.originX, o.oy || o.originY)\n var ox = origin.x\n var oy = origin.y\n var position = new SVG.Point(o.position || o.px || o.positionX, o.py || o.positionY)\n var px = position.x\n var py = position.y\n var translate = new SVG.Point(o.translate || o.tx || o.translateX, o.ty || o.translateY)\n var tx = translate.x\n var ty = translate.y\n var relative = new SVG.Point(o.relative || o.rx || o.relativeX, o.ry || o.relativeY)\n var rx = relative.x\n var ry = relative.y\n\n // Populate all of the values\n return {\n scaleX, scaleY, skewX, skewY, shear, theta, rx, ry, tx, ty, ox, oy, px, py\n }\n}\n\n// left matrix, right matrix, target matrix which is overwritten\nfunction matrixMultiply (l, r, o) {\n // Work out the product directly\n var a = l.a * r.a + l.c * r.b\n var b = l.b * r.a + l.d * r.b\n var c = l.a * r.c + l.c * r.d\n var d = l.b * r.c + l.d * r.d\n var e = l.e + l.a * r.e + l.c * r.f\n var f = l.f + l.b * r.e + l.d * r.f\n\n // make sure to use local variables because l/r and o could be the same\n o.a = a\n o.b = b\n o.c = c\n o.d = d\n o.e = e\n o.f = f\n\n return o\n}\n\nfunction getOrigin (o, element) {\n // Allow origin or around as the names\n let origin = o.origin // o.around == null ? o.origin : o.around\n let ox, oy\n\n // Allow the user to pass a string to rotate around a given point\n if (typeof origin === 'string' || origin == null) {\n // Get the bounding box of the element with no transformations applied\n const string = (origin || 'center').toLowerCase().trim()\n const { height, width, x, y } = element.bbox()\n\n // Calculate the transformed x and y coordinates\n let bx = string.includes('left') ? x\n : string.includes('right') ? x + width\n : x + width / 2\n let by = string.includes('top') ? y\n : string.includes('bottom') ? y + height\n : y + height / 2\n\n // Set the bounds eg : \"bottom-left\", \"Top right\", \"middle\" etc...\n ox = o.ox != null ? o.ox : bx\n oy = o.oy != null ? o.oy : by\n } else {\n ox = origin[0]\n oy = origin[1]\n }\n\n // Return the origin as it is if it wasn't a string\n return [ ox, oy ]\n}\n","/* globals fullBox, domContains, isNulledBox, Exception */\n\nSVG.Box = SVG.invent({\n create: function (source) {\n var base = [0, 0, 0, 0]\n source = typeof source === 'string' ? source.split(SVG.regex.delimiter).map(parseFloat)\n : Array.isArray(source) ? source\n : typeof source === 'object' ? [source.left != null ? source.left\n : source.x, source.top != null ? source.top : source.y, source.width, source.height]\n : arguments.length === 4 ? [].slice.call(arguments)\n : base\n\n this.x = source[0]\n this.y = source[1]\n this.width = source[2]\n this.height = source[3]\n\n // add center, right, bottom...\n fullBox(this)\n },\n extend: {\n // Merge rect box with another, return a new instance\n merge: function (box) {\n var x = Math.min(this.x, box.x)\n var y = Math.min(this.y, box.y)\n\n return new SVG.Box(\n x, y,\n Math.max(this.x + this.width, box.x + box.width) - x,\n Math.max(this.y + this.height, box.y + box.height) - y\n )\n },\n\n transform: function (m) {\n var xMin = Infinity\n var xMax = -Infinity\n var yMin = Infinity\n var yMax = -Infinity\n\n var pts = [\n new SVG.Point(this.x, this.y),\n new SVG.Point(this.x2, this.y),\n new SVG.Point(this.x, this.y2),\n new SVG.Point(this.x2, this.y2)\n ]\n\n pts.forEach(function (p) {\n p = p.transform(m)\n xMin = Math.min(xMin, p.x)\n xMax = Math.max(xMax, p.x)\n yMin = Math.min(yMin, p.y)\n yMax = Math.max(yMax, p.y)\n })\n\n return new SVG.Box(\n xMin, yMin,\n xMax - xMin,\n yMax - yMin\n )\n },\n\n addOffset: function () {\n // offset by window scroll position, because getBoundingClientRect changes when window is scrolled\n this.x += window.pageXOffset\n this.y += window.pageYOffset\n return this\n },\n toString: function () {\n return this.x + ' ' + this.y + ' ' + this.width + ' ' + this.height\n },\n toArray: function () {\n return [this.x, this.y, this.width, this.height]\n },\n morph: function (x, y, width, height) {\n this.destination = new SVG.Box(x, y, width, height)\n return this\n },\n\n at: function (pos) {\n if (!this.destination) return this\n\n return new SVG.Box(\n this.x + (this.destination.x - this.x) * pos\n , this.y + (this.destination.y - this.y) * pos\n , this.width + (this.destination.width - this.width) * pos\n , this.height + (this.destination.height - this.height) * pos\n )\n }\n },\n\n // Define Parent\n parent: SVG.Element,\n\n // Constructor\n construct: {\n // Get bounding box\n bbox: function () {\n var box\n\n try {\n // find native bbox\n box = this.node.getBBox()\n\n if (isNulledBox(box) && !domContains(this.node)) {\n throw new Exception('Element not in the dom')\n }\n } catch (e) {\n try {\n var clone = this.clone(SVG.parser().svg).show()\n box = clone.node.getBBox()\n clone.remove()\n } catch (e) {\n console.warn('Getting a bounding box of this element is not possible')\n }\n }\n\n return new SVG.Box(box)\n },\n\n rbox: function (el) {\n // IE11 throws an error when element not in dom\n try {\n var box = new SVG.Box(this.node.getBoundingClientRect())\n if (el) return box.transform(el.screenCTM().inverse())\n return box.addOffset()\n } catch (e) {\n return new SVG.Box()\n }\n }\n }\n})\n\nSVG.extend([SVG.Doc, SVG.Symbol, SVG.Image, SVG.Pattern, SVG.Marker, SVG.ForeignObject, SVG.View], {\n viewbox: function (x, y, width, height) {\n // act as getter\n if (x == null) return new SVG.Box(this.attr('viewBox'))\n\n // act as setter\n return this.attr('viewBox', new SVG.Box(x, y, width, height))\n }\n})\n","\nSVG.parser = function () {\n var b\n\n if (!SVG.parser.nodes.svg.node.parentNode) {\n b = document.body || document.documentElement\n SVG.parser.nodes.svg.addTo(b)\n }\n\n return SVG.parser.nodes\n}\n\nSVG.parser.nodes = {\n svg: SVG().size(2, 0).css({\n opacity: 0,\n position: 'absolute',\n left: '-100%',\n top: '-100%',\n overflow: 'hidden'\n })\n}\n\nSVG.parser.nodes.path = SVG.parser.nodes.svg.path().node\n","/* global requestAnimationFrame */\n\nSVG.Animator = {\n nextDraw: null,\n frames: new SVG.Queue(),\n timeouts: new SVG.Queue(),\n timer: window.performance || window.Date,\n transforms: [],\n\n frame: function (fn) {\n // Store the node\n var node = SVG.Animator.frames.push({ run: fn })\n\n // Request an animation frame if we don't have one\n if (SVG.Animator.nextDraw === null) {\n SVG.Animator.nextDraw = requestAnimationFrame(SVG.Animator._draw)\n }\n\n // Return the node so we can remove it easily\n return node\n },\n\n transform_frame: function (fn, id) {\n SVG.Animator.transforms[id] = fn\n },\n\n timeout: function (fn, delay) {\n delay = delay || 0\n\n // Work out when the event should fire\n var time = SVG.Animator.timer.now() + delay\n\n // Add the timeout to the end of the queue\n var node = SVG.Animator.timeouts.push({ run: fn, time: time })\n\n // Request another animation frame if we need one\n if (SVG.Animator.nextDraw === null) {\n SVG.Animator.nextDraw = requestAnimationFrame(SVG.Animator._draw)\n }\n\n return node\n },\n\n cancelFrame: function (node) {\n SVG.Animator.frames.remove(node)\n },\n\n clearTimeout: function (node) {\n SVG.Animator.timeouts.remove(node)\n },\n\n _draw: function (now) {\n // Run all the timeouts we can run, if they are not ready yet, add them\n // to the end of the queue immediately! (bad timeouts!!! [sarcasm])\n var nextTimeout = null\r\n var lastTimeout = SVG.Animator.timeouts.last()\n while ((nextTimeout = SVG.Animator.timeouts.shift())) {\n // Run the timeout if its time, or push it to the end\n if (now >= nextTimeout.time) {\n nextTimeout.run()\n } else {\n SVG.Animator.timeouts.push(nextTimeout)\n }\n\n // If we hit the last item, we should stop shifting out more items\n if (nextTimeout === lastTimeout) break\n }\n\n // Run all of the animation frames\n var nextFrame = null\n var lastFrame = SVG.Animator.frames.last()\n while ((nextFrame !== lastFrame) && (nextFrame = SVG.Animator.frames.shift())) {\n nextFrame.run()\n }\n\n SVG.Animator.transforms.forEach(function (el) { el() })\n\n // If we have remaining timeouts or frames, draw until we don't anymore\n SVG.Animator.nextDraw = SVG.Animator.timeouts.first() || SVG.Animator.frames.first()\n ? requestAnimationFrame(SVG.Animator._draw)\n : null\n }\n}\n","\nSVG.Morphable = SVG.invent({\n create: function (stepper) {\n // FIXME: the default stepper does not know about easing\n this._stepper = stepper || new SVG.Ease('-')\n\n this._from = null\n this._to = null\n this._type = null\n this._context = null\n this._morphObj = null\n },\n\n extend: {\n\n from: function (val) {\n if (val == null) {\n return this._from\n }\n\n this._from = this._set(val)\n return this\n },\n\n to: function (val) {\n if (val == null) {\n return this._to\n }\n\n this._to = this._set(val)\n return this\n },\n\n type: function (type) {\n // getter\n if (type == null) {\n return this._type\n }\n\n // setter\n this._type = type\n return this\n },\n\n _set: function (value) {\n if (!this._type) {\n var type = typeof value\n\n if (type === 'number') {\n this.type(SVG.Number)\n } else if (type === 'string') {\n if (SVG.Color.isColor(value)) {\n this.type(SVG.Color)\n } else if (SVG.regex.delimiter.test(value)) {\n this.type(SVG.regex.pathLetters.test(value)\n ? SVG.PathArray\n : SVG.Array\n )\n } else if (SVG.regex.numberAndUnit.test(value)) {\n this.type(SVG.Number)\n } else {\n this.type(SVG.Morphable.NonMorphable)\n }\n } else if (SVG.MorphableTypes.indexOf(value.constructor) > -1) {\n this.type(value.constructor)\n } else if (Array.isArray(value)) {\n this.type(SVG.Array)\n } else if (type === 'object') {\n this.type(SVG.Morphable.ObjectBag)\n } else {\n this.type(SVG.Morphable.NonMorphable)\n }\n }\n\n var result = (new this._type(value)).toArray()\n this._morphObj = this._morphObj || new this._type()\n this._context = this._context ||\n Array.apply(null, Array(result.length)).map(Object)\n return result\n },\n\n stepper: function (stepper) {\n if (stepper == null) return this._stepper\n this._stepper = stepper\n return this\n },\n\n done: function () {\n var complete = this._context\n .map(this._stepper.done)\n .reduce(function (last, curr) {\n return last && curr\n }, true)\n return complete\n },\n\n at: function (pos) {\n var _this = this\n\n return this._morphObj.fromArray(\n this._from.map(function (i, index) {\n return _this._stepper.step(i, _this._to[index], pos, _this._context[index], _this._context)\n })\n )\n }\n }\n})\n\nSVG.Morphable.NonMorphable = SVG.invent({\n create: function (val) {\n val = Array.isArray(val) ? val[0] : val\n this.value = val\n },\n\n extend: {\n valueOf: function () {\n return this.value\n },\n\n toArray: function () {\n return [this.value]\n }\n }\n})\n\nSVG.Morphable.TransformBag = SVG.invent({\n create: function (obj) {\n if (Array.isArray(obj)) {\n obj = {\n scaleX: obj[0],\n scaleY: obj[1],\n shear: obj[2],\n rotate: obj[3],\n translateX: obj[4],\n translateY: obj[5],\n originX: obj[6],\n originY: obj[7]\n }\n }\n\n Object.assign(this, SVG.Morphable.TransformBag.defaults, obj)\n },\n\n extend: {\n toArray: function () {\n var v = this\n\n return [\n v.scaleX,\n v.scaleY,\n v.shear,\n v.rotate,\n v.translateX,\n v.translateY,\n v.originX,\n v.originY\n ]\n }\n }\n})\n\nSVG.Morphable.TransformBag.defaults = {\n scaleX: 1,\n scaleY: 1,\n shear: 0,\n rotate: 0,\n translateX: 0,\n translateY: 0,\n originX: 0,\n originY: 0\n}\n\nSVG.Morphable.ObjectBag = SVG.invent({\n create: function (objOrArr) {\n this.values = []\n\n if (Array.isArray(objOrArr)) {\n this.values = objOrArr\n return\n }\n\n var entries = Object.entries(objOrArr || {}).sort((a, b) => {\n return a[0] - b[0]\n })\n\n this.values = entries.reduce((last, curr) => last.concat(curr), [])\n },\n\n extend: {\n valueOf: function () {\n var obj = {}\n var arr = this.values\n\n for (var i = 0, len = arr.length; i < len; i += 2) {\n obj[arr[i]] = arr[i + 1]\n }\n\n return obj\n },\n\n toArray: function () {\n return this.values\n }\n }\n})\n\nSVG.MorphableTypes = [\n SVG.Number,\n SVG.Color,\n SVG.Box,\n SVG.Matrix,\n SVG.Array,\n SVG.PointArray,\n SVG.PathArray,\n SVG.Morphable.NonMorphable,\n SVG.Morphable.TransformBag,\n SVG.Morphable.ObjectBag\n]\n\nSVG.extend(SVG.MorphableTypes, {\n to: function (val, args) {\n return new SVG.Morphable()\n .type(this.constructor)\n .from(this.valueOf())\n .to(val, args)\n },\n fromArray: function (arr) {\n this.constructor(arr)\n return this\n }\n})\n","/* global isMatrixLike getOrigin */\n\nSVG.easing = {\n '-': function (pos) { return pos },\n '<>': function (pos) { return -Math.cos(pos * Math.PI) / 2 + 0.5 },\n '>': function (pos) { return Math.sin(pos * Math.PI / 2) },\n '<': function (pos) { return -Math.cos(pos * Math.PI / 2) + 1 }\n}\n\nSVG.Runner = SVG.invent({\n parent: SVG.Element,\n\n create: function (options) {\n // Store a unique id on the runner, so that we can identify it later\n this.id = SVG.Runner.id++\n\n // Ensure a default value\n options = options == null\n ? SVG.defaults.timeline.duration\n : options\n\n // Ensure that we get a controller\n options = typeof options === 'function'\n ? new SVG.Controller(options)\n : options\n\n // Declare all of the variables\n this._element = null\n this._timeline = null\n this.done = false\n this._queue = []\n\n // Work out the stepper and the duration\n this._duration = typeof options === 'number' && options\n this._isDeclarative = options instanceof SVG.Controller\n this._stepper = this._isDeclarative ? options : new SVG.Ease()\n\n // We copy the current values from the timeline because they can change\n this._history = {}\n\n // Store the state of the runner\n this.enabled = true\n this._time = 0\n this._last = 0\n\n // Save transforms applied to this runner\n this.transforms = new SVG.Matrix()\n this.transformId = 1\n\n // Looping variables\n this._haveReversed = false\n this._reverse = false\n this._loopsDone = 0\n this._swing = false\n this._wait = 0\n this._times = 1\n },\n\n construct: {\n\n animate: function (duration, delay, when) {\n var o = SVG.Runner.sanitise(duration, delay, when)\n var timeline = this.timeline()\n return new SVG.Runner(o.duration)\n .loop(o)\n .element(this)\n .timeline(timeline)\n .schedule(delay, when)\n },\n\n delay: function (by, when) {\n return this.animate(0, by, when)\n }\n },\n\n extend: {\n\n /*\n Runner Definitions\n ==================\n These methods help us define the runtime behaviour of the Runner or they\n help us make new runners from the current runner\n */\n\n element: function (element) {\n if (element == null) return this._element\n this._element = element\n element._prepareRunner()\n return this\n },\n\n timeline: function (timeline) {\n // check explicitly for undefined so we can set the timeline to null\n if (typeof timeline === 'undefined') return this._timeline\n this._timeline = timeline\n return this\n },\n\n animate: function (duration, delay, when) {\n var o = SVG.Runner.sanitise(duration, delay, when)\n var runner = new SVG.Runner(o.duration)\n if (this._timeline) runner.timeline(this._timeline)\n if (this._element) runner.element(this._element)\n return runner.loop(o).schedule(delay, when)\n },\n\n schedule: function (timeline, delay, when) {\n // The user doesn't need to pass a timeline if we already have one\n if (!(timeline instanceof SVG.Timeline)) {\n when = delay\n delay = timeline\n timeline = this.timeline()\n }\n\n // If there is no timeline, yell at the user...\n if (!timeline) {\n throw Error('Runner cannot be scheduled without timeline')\n }\n\n // Schedule the runner on the timeline provided\n timeline.schedule(this, delay, when)\n return this\n },\n\n unschedule: function () {\n var timeline = this.timeline()\n timeline && timeline.unschedule(this)\n return this\n },\n\n loop: function (times, swing, wait) {\n // Deal with the user passing in an object\n if (typeof times === 'object') {\n swing = times.swing\n wait = times.wait\n times = times.times\n }\n\n // Sanitise the values and store them\n this._times = times || Infinity\n this._swing = swing || false\n this._wait = wait || 0\n return this\n },\n\n delay: function (delay) {\n return this.animate(0, delay)\n },\n\n /*\n Basic Functionality\n ===================\n These methods allow us to attach basic functions to the runner directly\n */\n\n queue: function (initFn, runFn, isTransform) {\n this._queue.push({\n initialiser: initFn || SVG.void,\n runner: runFn || SVG.void,\n isTransform: isTransform,\n initialised: false,\n finished: false\n })\n var timeline = this.timeline()\n timeline && this.timeline()._continue()\n return this\n },\n\n during: function (fn) {\n return this.queue(null, fn)\n },\n\n after (fn) {\n return this.on('finish', fn)\n },\n\n /*\n Runner animation methods\n ========================\n Control how the animation plays\n */\n\n time: function (time) {\n if (time == null) {\n return this._time\n }\n let dt = time - this._time\n this.step(dt)\n return this\n },\n\n duration: function () {\n return this._times * (this._wait + this._duration) - this._wait\n },\n\n loops: function (p) {\n var loopDuration = this._duration + this._wait\n if (p == null) {\n var loopsDone = Math.floor(this._time / loopDuration)\n var relativeTime = (this._time - loopsDone * loopDuration)\n var position = relativeTime / this._duration\n return Math.min(loopsDone + position, this._times)\n }\n var whole = Math.floor(p)\n var partial = p % 1\n var time = loopDuration * whole + this._duration * partial\n return this.time(time)\n },\n\n position: function (p) {\n // Get all of the variables we need\n var x = this._time\n var d = this._duration\n var w = this._wait\n var t = this._times\n var s = this._swing\n var r = this._reverse\n var position\n\n if (p == null) {\n /*\n This function converts a time to a position in the range [0, 1]\n The full explanation can be found in this desmos demonstration\n https://www.desmos.com/calculator/u4fbavgche\n The logic is slightly simplified here because we can use booleans\n */\n\n // Figure out the value without thinking about the start or end time\n const f = function (x) {\n var swinging = s * Math.floor(x % (2 * (w + d)) / (w + d))\n var backwards = (swinging && !r) || (!swinging && r)\n var uncliped = Math.pow(-1, backwards) * (x % (w + d)) / d + backwards\n var clipped = Math.max(Math.min(uncliped, 1), 0)\n return clipped\n }\n\n // Figure out the value by incorporating the start time\n var endTime = t * (w + d) - w\n position = x <= 0 ? Math.round(f(1e-5))\n : x < endTime ? f(x)\n : Math.round(f(endTime - 1e-5))\n return position\n }\n\n // Work out the loops done and add the position to the loops done\n var loopsDone = Math.floor(this.loops())\n var swingForward = s && (loopsDone % 2 === 0)\n var forwards = (swingForward && !r) || (r && swingForward)\n position = loopsDone + (forwards ? p : 1 - p)\n return this.loops(position)\n },\n\n progress: function (p) {\n if (p == null) {\n return Math.min(1, this._time / this.duration())\n }\n return this.time(p * this.duration())\n },\n\n step: function (dt) {\n // If we are inactive, this stepper just gets skipped\n if (!this.enabled) return this\n\n // Update the time and get the new position\n dt = dt == null ? 16 : dt\n this._time += dt\n var position = this.position()\n\n // Figure out if we need to run the stepper in this frame\n var running = this._lastPosition !== position && this._time >= 0\n this._lastPosition = position\n\n // Figure out if we just started\n var duration = this.duration()\n var justStarted = this._lastTime < 0 && this._time > 0\n var justFinished = this._lastTime < this._time && this.time > duration\n this._lastTime = this._time\n if (justStarted) {\n // this.fire('start', this)\n }\n\n // Work out if the runner is finished set the done flag here so animations\n // know, that they are running in the last step (this is good for\n // transformations which can be merged)\n var declarative = this._isDeclarative\n this.done = !declarative && !justFinished && this._time >= duration\n\n // Call initialise and the run function\n if (running || declarative) {\n this._initialise(running)\n\n // clear the transforms on this runner so they dont get added again and again\n this.transforms = new SVG.Matrix()\n var converged = this._run(declarative ? dt : position)\n // this.fire('step', this)\n }\n // correct the done flag here\n // declaritive animations itself know when they converged\n this.done = this.done || (converged && declarative)\n // if (this.done) {\n // this.fire('finish', this)\n // }\n return this\n },\n\n finish: function () {\n return this.step(Infinity)\n },\n\n reverse: function (reverse) {\n this._reverse = reverse == null ? !this._reverse : reverse\n return this\n },\n\n ease: function (fn) {\n this._stepper = new SVG.Ease(fn)\n return this\n },\n\n active: function (enabled) {\n if (enabled == null) return this.enabled\n this.enabled = enabled\n return this\n },\n\n /*\n Private Methods\n ===============\n Methods that shouldn't be used externally\n */\n\n // Save a morpher to the morpher list so that we can retarget it later\n _rememberMorpher: function (method, morpher) {\n this._history[method] = {\n morpher: morpher,\n caller: this._queue[this._queue.length - 1]\n }\n },\n\n // Try to set the target for a morpher if the morpher exists, otherwise\n // do nothing and return false\n _tryRetarget: function (method, target) {\n if (this._history[method]) {\n // if the last method wasnt even initialised, throw it away\n if (!this._history[method].caller.initialised) {\n let index = this._queue.indexOf(this._history[method].caller)\n this._queue.splice(index, 1)\n return false\n }\n\n // for the case of transformations, we use the special retarget function\n // which has access to the outer scope\n if (this._history[method].caller.isTransform) {\n this._history[method].caller.isTransform(target)\n // for everything else a simple morpher change is sufficient\n } else {\n this._history[method].morpher.to(target)\n }\n\n this._history[method].caller.finished = false\n var timeline = this.timeline()\n timeline && timeline._continue()\n return true\n }\n return false\n },\n\n // Run each initialise function in the runner if required\n _initialise: function (running) {\n // If we aren't running, we shouldn't initialise when not declarative\n if (!running && !this._isDeclarative) return\n\n // Loop through all of the initialisers\n for (var i = 0, len = this._queue.length; i < len; ++i) {\n // Get the current initialiser\n var current = this._queue[i]\n\n // Determine whether we need to initialise\n var needsIt = this._isDeclarative || (!current.initialised && running)\n running = !current.finished\n\n // Call the initialiser if we need to\n if (needsIt && running) {\n current.initialiser.call(this)\n current.initialised = true\n }\n }\n },\n\n // Run each run function for the position or dt given\n _run: function (positionOrDt) {\n // Run all of the _queue directly\n var allfinished = true\n for (var i = 0, len = this._queue.length; i < len; ++i) {\n // Get the current function to run\n var current = this._queue[i]\n\n // Run the function if its not finished, we keep track of the finished\n // flag for the sake of declarative _queue\n var converged = current.runner.call(this, positionOrDt)\n current.finished = current.finished || (converged === true)\n allfinished = allfinished && current.finished\n }\n\n // We report when all of the constructors are finished\n return allfinished\n },\n\n addTransform: function (transform, index) {\n this.transforms.lmultiplyO(transform)\n return this\n },\n\n clearTransform: function () {\n this.transforms = new SVG.Matrix()\n return this\n }\n }\n})\n\nSVG.Runner.id = 0\n\nSVG.Runner.sanitise = function (duration, delay, when) {\n // Initialise the default parameters\n var times = 1\n var swing = false\n var wait = 0\n duration = duration || SVG.defaults.timeline.duration\n delay = delay || SVG.defaults.timeline.delay\n when = when || 'last'\n\n // If we have an object, unpack the values\n if (typeof duration === 'object' && !(duration instanceof SVG.Stepper)) {\n delay = duration.delay || delay\n when = duration.when || when\n swing = duration.swing || swing\n times = duration.times || times\n wait = duration.wait || wait\n duration = duration.duration || SVG.defaults.timeline.duration\n }\n\n return {\n duration: duration,\n delay: delay,\n swing: swing,\n times: times,\n wait: wait,\n when: when\n }\n}\n\nSVG.FakeRunner = class {\n constructor (transforms = new SVG.Matrix(), id = -1, done = true) {\n this.transforms = transforms\n this.id = id\n this.done = done\n }\n}\n\nSVG.extend([SVG.Runner, SVG.FakeRunner], {\n mergeWith (runner) {\n return new SVG.FakeRunner(\n runner.transforms.lmultiply(this.transforms),\n runner.id\n )\n }\n})\n\n// SVG.FakeRunner.emptyRunner = new SVG.FakeRunner()\n\nconst lmultiply = (last, curr) => last.lmultiplyO(curr)\nconst getRunnerTransform = (runner) => runner.transforms\n\nfunction mergeTransforms () {\n // Find the matrix to apply to the element and apply it\n let runners = this._transformationRunners.runners\n let netTransform = runners\n .map(getRunnerTransform)\n .reduce(lmultiply, new SVG.Matrix())\n\n this.transform(netTransform)\n\n this._transformationRunners.merge()\n\n if (this._transformationRunners.length() === 1) {\n this._frameId = null\n }\n}\n\nclass RunnerArray {\n constructor () {\n this.runners = []\n this.ids = []\n }\n\n add (runner) {\n if (this.runners.includes(runner)) return\n\n let id = runner.id + 1\n\n let leftSibling = this.ids.reduce((last, curr) => {\n if (curr > last && curr < id) return curr\n return last\n }, 0)\n\n let index = this.ids.indexOf(leftSibling) + 1\n\n this.ids.splice(index, 0, id)\n this.runners.splice(index, 0, runner)\n\n return this\n }\n\n getByID (id) {\n return this.runners[this.ids.indexOf(id + 1)]\n }\n\n remove (id) {\n let index = this.ids.indexOf(id + 1)\n this.ids.splice(index, 1)\n this.runners.splice(index, 1)\n return this\n }\n\n merge () {\n let lastRunner = null\n this.runners.forEach((runner, i) => {\n if (lastRunner && runner.done && lastRunner.done) {\n this.remove(runner.id)\n this.edit(lastRunner.id, runner.mergeWith(lastRunner))\n }\n\n lastRunner = runner\n })\n\n return this\n }\n\n edit (id, newRunner) {\n let index = this.ids.indexOf(id + 1)\n this.ids.splice(index, 1, id)\n this.runners.splice(index, 1, newRunner)\n return this\n }\n\n length () {\n return this.ids.length\n }\n\n clearBefore (id) {\n let deleteCnt = this.ids.indexOf(id + 1) || 1\n this.ids.splice(0, deleteCnt, 0)\n this.runners.splice(0, deleteCnt, new SVG.FakeRunner())\n return this\n }\n}\n\nSVG.extend(SVG.Element, {\n // this function searches for all runners on the element and deletes the ones\n // which run before the current one. This is because absolute transformations\n // overwfrite anything anyway so there is no need to waste time computing\n // other runners\n _clearTransformRunnersBefore: function (currentRunner) {\n this._transformationRunners.clearBefore(currentRunner.id)\n },\n\n _currentTransform (current) {\n return this._transformationRunners.runners\n // we need the equal sign here to make sure, that also transformations\n // on the same runner which execute before the current transformation are\n // taken into account\n .filter((runner) => runner.id <= current.id)\n .map(getRunnerTransform)\n .reduce(lmultiply, new SVG.Matrix())\n },\n\n addRunner: function (runner) {\n this._transformationRunners.add(runner)\n\n SVG.Animator.transform_frame(\n mergeTransforms.bind(this), this._frameId\n )\n },\n\n _prepareRunner: function () {\n if (this._frameId == null) {\n this._transformationRunners = new RunnerArray()\n .add(new SVG.FakeRunner(new SVG.Matrix(this)))\n\n this._frameId = SVG.Element.frameId++\n }\n }\n})\n\nSVG.Element.frameId = 0\n\nSVG.extend(SVG.Runner, {\n attr: function (a, v) {\n return this.styleAttr('attr', a, v)\n },\n\n // Add animatable styles\n css: function (s, v) {\n return this.styleAttr('css', s, v)\n },\n\n styleAttr (type, name, val) {\n // apply attributes individually\n if (typeof name === 'object') {\n for (var key in val) {\n this.styleAttr(type, key, val[key])\n }\n }\n\n var morpher = new SVG.Morphable(this._stepper).to(val)\n\n this.queue(function () {\n morpher = morpher.from(this.element()[type](name))\n }, function (pos) {\n this.element()[type](name, morpher.at(pos))\n return morpher.done()\n })\n\n return this\n },\n\n zoom: function (level, point) {\n var morpher = new SVG.Morphable(this._stepper).to(new SVG.Number(level))\n\n this.queue(function () {\n morpher = morpher.from(this.zoom())\n }, function (pos) {\n this.element().zoom(morpher.at(pos), point)\n return morpher.done()\n })\n\n return this\n },\n\n /**\n ** absolute transformations\n **/\n\n //\n // M v -----|-----(D M v = F v)------|-----> T v\n //\n // 1. define the final state (T) and decompose it (once)\n // t = [tx, ty, the, lam, sy, sx]\n // 2. on every frame: pull the current state of all previous transforms\n // (M - m can change)\n // and then write this as m = [tx0, ty0, the0, lam0, sy0, sx0]\n // 3. Find the interpolated matrix F(pos) = m + pos * (t - m)\n // - Note F(0) = M\n // - Note F(1) = T\n // 4. Now you get the delta matrix as a result: D = F * inv(M)\n\n transform: function (transforms, relative, affine) {\n // If we have a declarative function, we should retarget it if possible\n relative = transforms.relative || relative\n if (this._isDeclarative && !relative && this._tryRetarget('transform', transforms)) {\n return this\n }\n\n // Parse the parameters\n var isMatrix = isMatrixLike(transforms)\n affine = transforms.affine != null\n ? transforms.affine\n : (affine != null ? affine : !isMatrix)\n\n // Create a morepher and set its type\n const morpher = new SVG.Morphable()\n .type(affine ? SVG.Morphable.TransformBag : SVG.Matrix)\n .stepper(this._stepper)\n\n let origin\n let element\n let current\n let currentAngle\n let startTransform\n\n function setup () {\n // make sure element and origin is defined\n element = element || this.element()\n origin = origin || getOrigin(transforms, element)\n\n startTransform = new SVG.Matrix(relative ? undefined : element)\n\n // add the runner to the element so it can merge transformations\n element.addRunner(this)\n\n // Deactivate all transforms that have run so far if we are absolute\n if (!relative) {\n element._clearTransformRunnersBefore(this)\n }\n }\n\n function run (pos) {\n // clear all other transforms before this in case something is saved\n // on this runner. We are absolute. We dont need these!\n if (!relative) this.clearTransform()\n\n let {x, y} = new SVG.Point(origin).transform(element._currentTransform(this))\n\n let target = new SVG.Matrix({...transforms, origin: [x, y]})\n let start = this._isDeclarative && current\n ? current\n : startTransform\n\n if (affine) {\n target = target.decompose(x, y)\n start = start.decompose(x, y)\n\n // Get the current and target angle as it was set\n const rTarget = target.rotate\n const rCurrent = start.rotate\n\n // Figure out the shortest path to rotate directly\n const possibilities = [rTarget - 360, rTarget, rTarget + 360]\n const distances = possibilities.map(a => Math.abs(a - rCurrent))\n const shortest = Math.min(...distances)\n const index = distances.indexOf(shortest)\n target.rotate = possibilities[index]\n }\n\n if (relative) {\n // we have to be careful here not to overwrite the rotation\n // with the rotate method of SVG.Matrix\n if (!isMatrix) {\n target.rotate = transforms.rotate || 0\n }\n if (this._isDeclarative && currentAngle) {\n start.rotate = currentAngle\n }\n }\n\n morpher.from(start)\n morpher.to(target)\n\n let affineParameters = morpher.at(pos)\n currentAngle = affineParameters.rotate\n current = new SVG.Matrix(affineParameters)\n\n this.addTransform(current)\n return morpher.done()\n }\n\n function retarget (newTransforms) {\n // only get a new origin if it changed since the last call\n if (\n (newTransforms.origin || 'center').toString() !==\n (transforms.origin || 'center').toString()\n ) {\n origin = getOrigin(transforms, element)\n }\n\n // overwrite the old transformations with the new ones\n transforms = {...newTransforms, origin}\n }\n\n this.queue(setup, run, retarget)\n this._isDeclarative && this._rememberMorpher('transform', morpher)\n return this\n },\n\n // Animatable x-axis\n x: function (x, relative) {\n return this._queueNumber('x', x)\n },\n\n // Animatable y-axis\n y: function (y) {\n return this._queueNumber('y', y)\n },\n\n dx: function (x) {\n return this._queueNumberDelta('dx', x)\n },\n\n dy: function (y) {\n return this._queueNumberDelta('dy', y)\n },\n\n _queueNumberDelta: function (method, to) {\n to = new SVG.Number(to)\n\n // Try to change the target if we have this method already registerd\n if (this._tryRetargetDelta(method, to)) return this\n\n // Make a morpher and queue the animation\n var morpher = new SVG.Morphable(this._stepper).to(to)\n this.queue(function () {\n var from = this.element()[method]()\n morpher.from(from)\n morpher.to(from + to)\n }, function (pos) {\n this.element()[method](morpher.at(pos))\n return morpher.done()\n })\n\n // Register the morpher so that if it is changed again, we can retarget it\n this._rememberMorpher(method, morpher)\n return this\n },\n\n _queueObject: function (method, to) {\n // Try to change the target if we have this method already registerd\n if (this._tryRetarget(method, to)) return this\n\n // Make a morpher and queue the animation\n var morpher = new SVG.Morphable(this._stepper).to(to)\n this.queue(function () {\n morpher.from(this.element()[method]())\n }, function (pos) {\n this.element()[method](morpher.at(pos))\n return morpher.done()\n })\n\n // Register the morpher so that if it is changed again, we can retarget it\n this._rememberMorpher(method, morpher)\n return this\n },\n\n _queueNumber: function (method, value) {\n return this._queueObject(method, new SVG.Number(value))\n },\n\n // Animatable center x-axis\n cx: function (x) {\n return this._queueNumber('cx', x)\n },\n\n // Animatable center y-axis\n cy: function (y) {\n return this._queueNumber('cy', y)\n },\n\n // Add animatable move\n move: function (x, y) {\n return this.x(x).y(y)\n },\n\n // Add animatable center\n center: function (x, y) {\n return this.cx(x).cy(y)\n },\n\n // Add animatable size\n size: function (width, height) {\n // animate bbox based size for all other elements\n var box\n\n if (!width || !height) {\n box = this._element.bbox()\n }\n\n if (!width) {\n width = box.width / box.height * height\n }\n\n if (!height) {\n height = box.height / box.width * width\n }\n\n return this\n .width(width)\n .height(height)\n },\n\n // Add animatable width\n width: function (width) {\n return this._queueNumber('width', width)\n },\n\n // Add animatable height\n height: function (height) {\n return this._queueNumber('height', height)\n },\n\n // Add animatable plot\n plot: function (a, b, c, d) {\n // Lines can be plotted with 4 arguments\n if (arguments.length === 4) {\n return this.plot([a, b, c, d])\n }\n\n // FIXME: this needs to be rewritten such that the element is only accesed\n // in the init function\n return this._queueObject('plot', new this._element.MorphArray(a))\n\n /*\n var morpher = this._element.morphArray().to(a)\n\n this.queue(function () {\n morpher.from(this._element.array())\n }, function (pos) {\n this._element.plot(morpher.at(pos))\n })\n\n return this\n */\n },\n\n // Add leading method\n leading: function (value) {\n return this._queueNumber('leading', value)\n },\n\n // Add animatable viewbox\n viewbox: function (x, y, width, height) {\n return this._queueObject('viewbox', new SVG.Box(x, y, width, height))\n },\n\n update: function (o) {\n if (typeof o !== 'object') {\n return this.update({\n offset: arguments[0],\n color: arguments[1],\n opacity: arguments[2]\n })\n }\n\n if (o.opacity != null) this.attr('stop-opacity', o.opacity)\n if (o.color != null) this.attr('stop-color', o.color)\n if (o.offset != null) this.attr('offset', o.offset)\n\n return this\n }\n})\n","\n// Must Change ....\nSVG.easing = {\n '-': function (pos) { return pos },\n '<>': function (pos) { return -Math.cos(pos * Math.PI) / 2 + 0.5 },\n '>': function (pos) { return Math.sin(pos * Math.PI / 2) },\n '<': function (pos) { return -Math.cos(pos * Math.PI / 2) + 1 }\n}\n\nvar time = window.performance || Date\n\nvar makeSchedule = function (runnerInfo) {\n var start = runnerInfo.start\n var duration = runnerInfo.runner.duration()\n var end = start + duration\n return {start: start, duration: duration, end: end, runner: runnerInfo.runner}\n}\n\nSVG.Timeline = SVG.invent({\n inherit: SVG.EventTarget,\n\n // Construct a new timeline on the given element\n create: function () {\n this._timeSource = function () {\n return time.now()\n }\n\n this._dispatcher = document.createElement('div')\n\n // Store the timing variables\n this._startTime = 0\n this._speed = 1.0\n\n // Play control variables control how the animation proceeds\n this._reverse = false\n this._persist = 0\n\n // Keep track of the running animations and their starting parameters\n this._nextFrame = null\n this._paused = false\n this._runners = []\n this._order = []\n this._time = 0\n this._lastSourceTime = 0\n this._lastStepTime = 0\n },\n\n extend: {\n\n getEventTarget () {\n return this._dispatcher\n },\n\n /**\n *\n */\n\n // schedules a runner on the timeline\n schedule (runner, delay, when) {\n if (runner == null) {\n return this._runners.map(makeSchedule).sort(function (a, b) {\n return (a.start - b.start) || (a.duration - b.duration)\n })\n }\n\n if (!this.active()) {\n this._step()\n if (when == null) {\n when = 'now'\n }\n }\n\n // The start time for the next animation can either be given explicitly,\n // derived from the current timeline time or it can be relative to the\n // last start time to chain animations direclty\n var absoluteStartTime = 0\n delay = delay || 0\n\n // Work out when to start the animation\n if (when == null || when === 'last' || when === 'after') {\n // Take the last time and increment\n absoluteStartTime = this._startTime\n } else if (when === 'absolute' || when === 'start') {\n absoluteStartTime = delay\n delay = 0\n } else if (when === 'now') {\n absoluteStartTime = this._time\n } else if (when === 'relative') {\n let runnerInfo = this._runners[runner.id]\n if (runnerInfo) {\n absoluteStartTime = runnerInfo.start + delay\n delay = 0\n }\n } else {\n throw new Error('Invalid value for the \"when\" parameter')\n }\n\n // Manage runner\n runner.unschedule()\n runner.timeline(this)\n runner.time(-delay)\n\n // Save startTime for next runner\n this._startTime = absoluteStartTime + runner.duration() + delay\n\n // Save runnerInfo\n this._runners[runner.id] = {\n persist: this.persist(),\n runner: runner,\n start: absoluteStartTime\n }\n\n // Save order and continue\n this._order.push(runner.id)\n this._continue()\n return this\n },\n\n // Remove the runner from this timeline\n unschedule (runner) {\n var index = this._order.indexOf(runner.id)\n if (index < 0) return this\n\n delete this._runners[runner.id]\n this._order.splice(index, 1)\n runner.timeline(null)\n return this\n },\n\n play () {\n // Now make sure we are not paused and continue the animation\n this._paused = false\n return this._continue()\n },\n\n pause () {\n // Cancel the next animation frame and pause\n this._nextFrame = null\n this._paused = true\n return this\n },\n\n stop () {\n // Cancel the next animation frame and go to start\n this.seek(-this._time)\n return this.pause()\n },\n\n finish () {\n this.seek(Infinity)\n return this.pause()\n },\n\n speed (speed) {\n if (speed == null) return this._speed\n this._speed = speed\n return this\n },\n\n reverse (yes) {\n var currentSpeed = this.speed()\n if (yes == null) return this.speed(-currentSpeed)\n\n var positive = Math.abs(currentSpeed)\n return this.speed(yes ? positive : -positive)\n },\n\n seek (dt) {\n this._time += dt\n return this._continue()\n },\n\n time (time) {\n if (time == null) return this._time\n this._time = time\n return this\n },\n\n persist (dtOrForever) {\n if (dtOrForever == null) return this._persist\n this._persist = dtOrForever\n return this\n },\n\n source (fn) {\n if (fn == null) return this._timeSource\n this._timeSource = fn\n return this\n },\n\n _step () {\n // If the timeline is paused, just do nothing\n if (this._paused) return\n\n // Get the time delta from the last time and update the time\n // TODO: Deal with window.blur window.focus to pause animations\n var time = this._timeSource()\n var dtSource = time - this._lastSourceTime\n var dtTime = this._speed * dtSource + (this._time - this._lastStepTime)\n this._lastSourceTime = time\n\n // Update the time\n this._time += dtTime\n this._lastStepTime = this._time\n // this.fire('time', this._time)\n\n // Run all of the runners directly\n var runnersLeft = false\n for (var i = 0, len = this._order.length; i < len; i++) {\n // Get and run the current runner and ignore it if its inactive\n var runnerInfo = this._runners[this._order[i]]\n var runner = runnerInfo.runner\n let dt = dtTime\n\n // Make sure that we give the actual difference\n // between runner start time and now\n let dtToStart = this._time - runnerInfo.start\n\n // Dont run runner if not started yet\n if (dtToStart < 0) {\n runnersLeft = true\n continue\n } else if (dtToStart < dt) {\n // Adjust dt to make sure that animation is on point\n dt = dtToStart\n }\n\n if (!runner.active()) continue\n\n // If this runner is still going, signal that we need another animation\n // frame, otherwise, remove the completed runner\n var finished = runner.step(dt).done\n if (!finished) {\n runnersLeft = true\n // continue\n } else if (runnerInfo.persist !== true) {\n // runner is finished. And runner might get removed\n\n // TODO: Figure out end time of runner\n var endTime = runner.duration() - runner.time() + this._time\n\n if (endTime + this._persist < this._time) {\n // Delete runner and correct index\n delete this._runners[this._order[i]]\n this._order.splice(i--, 1) && --len\n runner.timeline(null)\n }\n }\n }\n\n // Get the next animation frame to keep the simulation going\n if (runnersLeft) {\n this._nextFrame = SVG.Animator.frame(this._step.bind(this))\n } else {\n this._nextFrame = null\n }\n return this\n },\n\n // Checks if we are running and continues the animation\n _continue () {\n if (this._paused) return this\n if (!this._nextFrame) {\n this._nextFrame = SVG.Animator.frame(this._step.bind(this))\n }\n return this\n },\n\n active () {\n return !!this._nextFrame\n }\n },\n\n // These methods will be added to all SVG.Element objects\n parent: SVG.Element,\n construct: {\n timeline: function () {\n this._timeline = (this._timeline || new SVG.Timeline())\n return this._timeline\n }\n }\n})\n","\n// c = {\n// finished: Whether or not we are finished\n// }\n\n/***\nBase Class\n==========\nThe base stepper class that will be\n***/\n\nfunction makeSetterGetter (k, f) {\n return function (v) {\n if (v == null) return this[v]\n this[k] = v\n if (f) f.call(this)\n return this\n }\n}\n\nSVG.Stepper = SVG.invent({\n create: function () {}\n})\n\n/***\nEasing Functions\n================\n***/\n\nSVG.Ease = SVG.invent({\n inherit: SVG.Stepper,\n\n create: function (fn) {\n SVG.Stepper.call(this, fn)\n\n this.ease = SVG.easing[fn || SVG.defaults.timeline.ease] || fn\n },\n\n extend: {\n\n step: function (from, to, pos) {\n if (typeof from !== 'number') {\n return pos < 1 ? from : to\n }\n return from + (to - from) * this.ease(pos)\n },\n\n done: function (dt, c) {\n return false\n }\n }\n})\n\nSVG.easing = {\n '-': function (pos) { return pos },\n '<>': function (pos) { return -Math.cos(pos * Math.PI) / 2 + 0.5 },\n '>': function (pos) { return Math.sin(pos * Math.PI / 2) },\n '<': function (pos) { return -Math.cos(pos * Math.PI / 2) + 1 },\n bezier: function (t0, x0, t1, x1) {\n return function (t) {\n // TODO: FINISH\n }\n }\n}\n\n/***\nController Types\n================\n***/\n\nSVG.Controller = SVG.invent({\n inherit: SVG.Stepper,\n\n create: function (fn) {\n SVG.Stepper.call(this, fn)\n this.stepper = fn\n },\n\n extend: {\n\n step: function (current, target, dt, c) {\n return this.stepper(current, target, dt, c)\n },\n\n done: function (c) {\n return c.done\n }\n }\n})\n\nfunction recalculate () {\n // Apply the default parameters\n var duration = (this._duration || 500) / 1000\n var overshoot = this._overshoot || 0\n\n // Calculate the PID natural response\n var eps = 1e-10\n var pi = Math.PI\n var os = Math.log(overshoot / 100 + eps)\n var zeta = -os / Math.sqrt(pi * pi + os * os)\n var wn = 3.9 / (zeta * duration)\n\n // Calculate the Spring values\n this.d = 2 * zeta * wn\n this.k = wn * wn\n}\n\nSVG.Spring = SVG.invent({\n inherit: SVG.Controller,\n\n create: function (duration, overshoot) {\n this.duration(duration || 500)\n .overshoot(overshoot || 0)\n },\n\n extend: {\n step: function (current, target, dt, c) {\n if (typeof current === 'string') return current\n c.done = dt === Infinity\n if (dt === Infinity) return target\n if (dt === 0) return current\n\n if (dt > 100) dt = 16\n\n dt /= 1000\n\n // Get the previous velocity\n var velocity = c.velocity || 0\n\n // Apply the control to get the new position and store it\n var acceleration = -this.d * velocity - this.k * (current - target)\n var newPosition = current +\n velocity * dt +\n acceleration * dt * dt / 2\n\n // Store the velocity\n c.velocity = velocity + acceleration * dt\n\n // Figure out if we have converged, and if so, pass the value\n c.done = Math.abs(target - newPosition) + Math.abs(velocity) < 0.002\n return c.done ? target : newPosition\n },\n\n duration: makeSetterGetter('_duration', recalculate),\n overshoot: makeSetterGetter('_overshoot', recalculate)\n }\n})\n\nSVG.PID = SVG.invent({\n inherit: SVG.Controller,\n\n create: function (p, i, d, windup) {\n SVG.Controller.call(this)\n\n p = p == null ? 0.1 : p\n i = i == null ? 0.01 : i\n d = d == null ? 0 : d\n windup = windup == null ? 1000 : windup\n this.p(p).i(i).d(d).windup(windup)\n },\n\n extend: {\n step: function (current, target, dt, c) {\n if (typeof current === 'string') return current\n c.done = dt === Infinity\n\n if (dt === Infinity) return target\n if (dt === 0) return current\n\n var p = target - current\n var i = (c.integral || 0) + p * dt\n var d = (p - (c.error || 0)) / dt\n var windup = this.windup\n\n // antiwindup\n if (windup !== false) {\n i = Math.max(-windup, Math.min(i, windup))\n }\n\n c.error = p\n c.integral = i\n\n c.done = Math.abs(p) < 0.001\n\n return c.done ? target : current + (this.P * p + this.I * i + this.D * d)\n },\n\n windup: makeSetterGetter('windup'),\n p: makeSetterGetter('P'),\n i: makeSetterGetter('I'),\n d: makeSetterGetter('D')\n }\n})\n"]} \ No newline at end of file diff --git a/dist/svg.min.js b/dist/svg.min.js deleted file mode 100644 index 0b5be45..0000000 --- a/dist/svg.min.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! svg.js v3.0.0 MIT*/;!function(t,e){"function"==typeof define&&define.amd?define(function(){return e(t,t.document)}):"object"==typeof exports?module.exports=t.document?e(t,t.document):function(t){return e(t,t.document)}:t.SVG=e(t,t.document)}("undefined"!=typeof window?window:this,function(t,e){function n(t){return s(t)||r(t)||i()}function i(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function r(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}function s(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e=0;e--)E(t.children[e]);return t.id?q.adopt(t).id(q.eid(t.nodeName)):q.adopt(t)}function N(t){return null==t.x&&(t.x=0,t.y=0,t.width=0,t.height=0),t.w=t.width,t.h=t.height,t.x2=t.x+t.width,t.y2=t.y+t.height,t.cx=t.x+t.width/2,t.cy=t.y+t.height/2,t}function O(t){var e=(t||"").toString().match(q.regex.reference);if(e)return e[1]}function T(t,e,n){return Math.abs(e-t)<(n||1e-6)}function k(t){return null!=t.a||null!=t.b||null!=t.c||null!=t.d||null!=t.e||null!=t.f}function C(t){var e="both"===t.flip||!0===t.flip,n=t.flip&&(e||"x"===t.flip)?-1:1,i=t.flip&&(e||"y"===t.flip)?-1:1,r=t.skew&&t.skew.length?t.skew[0]:isFinite(t.skew)?t.skew:isFinite(t.skewX)?t.skewX:0,s=t.skew&&t.skew.length?t.skew[1]:isFinite(t.skew)?t.skew:isFinite(t.skewY)?t.skewY:0,o=t.scale&&t.scale.length?t.scale[0]*n:isFinite(t.scale)?t.scale*n:isFinite(t.scaleX)?t.scaleX*n:n,a=t.scale&&t.scale.length?t.scale[1]*i:isFinite(t.scale)?t.scale*i:isFinite(t.scaleY)?t.scaleY*i:i,h=t.shear||0,u=t.rotate||t.theta||0,l=new q.Point(t.origin||t.around||t.ox||t.originX,t.oy||t.originY),c=l.x,f=l.y,d=new q.Point(t.position||t.px||t.positionX,t.py||t.positionY),p=d.x,m=d.y,v=new q.Point(t.translate||t.tx||t.translateX,t.ty||t.translateY),y=v.x,x=v.y,g=new q.Point(t.relative||t.rx||t.relativeX,t.ry||t.relativeY);return{scaleX:o,scaleY:a,skewX:r,skewY:s,shear:h,theta:u,rx:g.x,ry:g.y,tx:y,ty:x,ox:c,oy:f,px:p,py:m}}function S(t,e,n){var i=t.a*e.a+t.c*e.b,r=t.b*e.a+t.d*e.b,s=t.a*e.c+t.c*e.d,o=t.b*e.c+t.d*e.d,a=t.e+t.a*e.e+t.c*e.f,h=t.f+t.b*e.e+t.d*e.f;return n.a=i,n.b=r,n.c=s,n.d=o,n.e=a,n.f=h,n}function j(t,e){var n,i,r=t.origin;if("string"==typeof r||null==r){var s=(r||"center").toLowerCase().trim(),o=e.bbox(),a=o.height,h=o.width,u=o.x,l=o.y,c=s.includes("left")?u:s.includes("right")?u+h:u+h/2,f=s.includes("top")?l:s.includes("bottom")?l+a:l+a/2;n=null!=t.ox?t.ox:c,i=null!=t.oy?t.oy:f}else n=r[0],i=r[1];return[n,i]}function D(){var t=this._transformationRunners.runners,e=t.map(V).reduce(G,new q.Matrix);this.transform(e),this._transformationRunners.merge(),1===this._transformationRunners.length()&&(this._frameId=null)}function R(t,e){return function(n){return null==n?this[n]:(this[t]=n,e&&e.call(this),this)}}function I(){var t=(this._duration||500)/1e3,e=this._overshoot||0,n=Math.PI,i=Math.log(e/100+1e-10),r=-i/Math.sqrt(n*n+i*i),s=3.9/(r*t);this.d=2*r*s,this.k=s*s}if(!e.createElementNS||!e.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect)return{supported:!1};var q=t.SVG=function(t){if(q.supported)return t=f(t)};q.supported=!0,q.ns="http://www.w3.org/2000/svg",q.xmlns="http://www.w3.org/2000/xmlns/",q.xlink="http://www.w3.org/1999/xlink",q.svgjs="http://svgjs.com/svgjs",q.did=1e3,q.eid=function(t){return"Svgjs"+w(t)+q.did++},q.create=function(t){return e.createElementNS(this.ns,t)},q.extend=function(t,e){var n,i;for(t=Array.isArray(t)?t:[t],i=t.length-1;i>=0;i--)if(t[i])for(n in e)t[i].prototype[n]=e[n]},q.invent=function(t){var e="function"==typeof t.create?t.create:function(e){t.inherit.call(this,e||q.create(t.create))};return t.inherit&&(e.prototype=new t.inherit,e.prototype.constructor=e),t.extend&&q.extend(e,t.extend),t.construct&&q.extend(t.parent||q.Container,t.construct),e},q.adopt=function(e){if(!e)return null;if(e.instance instanceof q.Element)return e.instance;if(!(e instanceof t.SVGElement))return new q.HtmlNode(e);return"svg"===e.nodeName?new q.Doc(e):"linearGradient"===e.nodeName||"radialGradient"===e.nodeName?new q.Gradient(e):q[w(e.nodeName)]?new(q[w(e.nodeName)])(e):new q.Parent(e)},q.regex={numberAndUnit:/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,hex:/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,rgb:/rgb\((\d+),(\d+),(\d+)\)/,reference:/#([a-z0-9\-_]+)/i,transforms:/\)\s*,?\s*/,whitespace:/\s/g,isHex:/^#[a-f0-9]{3,6}$/i,isRgb:/^rgb\(/,isCss:/[^:]+:[^;]+;?/,isBlank:/^(\s+)?$/,isNumber:/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,isPercent:/^-?[\d.]+%$/,isImage:/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,delimiter:/[\s,]+/,hyphen:/([^e])-/gi,pathLetters:/[MLHVCSQTAZ]/gi,isPathLetter:/[MLHVCSQTAZ]/i,numbersWithDots:/((\d?\.\d+(?:e[+-]?\d+)?)((?:\.\d+(?:e[+-]?\d+)?)+))+/gi,dots:/\./g},q.utils={map:function(t,e){var n,i=t.length,r=[];for(n=0;n",delay:0},attrs:{"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","font-size":16,"font-family":"Helvetica, Arial, sans-serif","text-anchor":"start"}},q.Queue=q.invent({create:function(){this._first=null,this._last=null},extend:{push:function(t){var e=t.next?t:{value:t,next:null,prev:null};return this._last?(e.prev=this._last,this._last.next=e,this._last=e):(this._last=e,this._first=e),e},shift:function(){var t=this._first;return t?(this._first=t.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,t.value):null},first:function(){return this._first&&this._first.value},last:function(){return this._last&&this._last.value},remove:function(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t===this._last&&(this._last=t.prev),t===this._first&&(this._first=t.next),t.prev=null,t.next=null}}}),q.Color=function(t,e,n){var i;this.r=0,this.g=0,this.b=0,t&&("string"==typeof t?q.regex.isRgb.test(t)?(i=q.regex.rgb.exec(t.replace(q.regex.whitespace,"")),this.r=parseInt(i[1]),this.g=parseInt(i[2]),this.b=parseInt(i[3])):q.regex.isHex.test(t)&&(i=q.regex.hex.exec(b(t)),this.r=parseInt(i[1],16),this.g=parseInt(i[2],16),this.b=parseInt(i[3],16)):Array.isArray(t)?(this.r=t[0],this.g=t[1],this.b=t[2]):"object"===c(t)?(this.r=t.r,this.g=t.g,this.b=t.b):3===arguments.length&&(this.r=t,this.g=e,this.b=n))},q.extend(q.Color,{toString:function(){return this.toHex()},toArray:function(){return[this.r,this.g,this.b]},fromArray:function(t){return new q.Color(t)},toHex:function(){return"#"+_(Math.round(this.r))+_(Math.round(this.g))+_(Math.round(this.b))},toRgb:function(){return"rgb("+[this.r,this.g,this.b].join()+")"},brightness:function(){return this.r/255*.3+this.g/255*.59+this.b/255*.11},morph:function(t){return this.destination=new q.Color(t),this},at:function(t){return this.destination?(t=t<0?0:t>1?1:t,new q.Color({r:~~(this.r+(this.destination.r-this.r)*t),g:~~(this.g+(this.destination.g-this.g)*t),b:~~(this.b+(this.destination.b-this.b)*t)})):this}}),q.Color.test=function(t){return t+="",q.regex.isHex.test(t)||q.regex.isRgb.test(t)},q.Color.isRgb=function(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b},q.Color.isColor=function(t){return q.Color.isRgb(t)||q.Color.test(t)},q.Array=function(t,e){t=(t||[]).valueOf(),0===t.length&&e&&(t=e.valueOf()),this.value=this.parse(t)},q.extend(q.Array,{morph:function(t){if(this.destination=this.parse(t),this.value.length!==this.destination.length){for(var e=this.value[this.value.length-1],n=this.destination[this.destination.length-1];this.value.length>this.destination.length;)this.destination.push(n);for(;this.value.length=0;i--)this.value[i]=[this.value[i][0]+t,this.value[i][1]+e];return this},size:function(t,e){var n,i=this.bbox();for(n=this.value.length-1;n>=0;n--)i.width&&(this.value[n][0]=(this.value[n][0]-i.x)*t/i.width+i.x),i.height&&(this.value[n][1]=(this.value[n][1]-i.y)*e/i.height+i.y);return this},bbox:function(){var t=-1/0,e=-1/0,n=1/0,i=1/0;return this.value.forEach(function(r){t=Math.max(r[0],t),e=Math.max(r[1],e),n=Math.min(r[0],n),i=Math.min(r[1],i)}),{x:n,y:i,width:t-n,height:e-i}}});for(var B={M:function(t,e,n){return e.x=n.x=t[0],e.y=n.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},T:function(t,e){return e.x=t[0],e.y=t[1],["T",t[0],t[1]]},Z:function(t,e,n){return e.x=n.x,e.y=n.y,["Z"]},A:function(t,e){return e.x=t[5],e.y=t[6],["A",t[0],t[1],t[2],t[3],t[4],t[5],t[6]]}},L="mlhvqtcsaz".split(""),F=0,z=L.length;F=0;r--)i=this.value[r][0],"M"===i||"L"===i||"T"===i?(this.value[r][1]+=t,this.value[r][2]+=e):"H"===i?this.value[r][1]+=t:"V"===i?this.value[r][1]+=e:"C"===i||"S"===i||"Q"===i?(this.value[r][1]+=t,this.value[r][2]+=e,this.value[r][3]+=t,this.value[r][4]+=e,"C"===i&&(this.value[r][5]+=t,this.value[r][6]+=e)):"A"===i&&(this.value[r][6]+=t,this.value[r][7]+=e);return this},size:function(t,e){var n,i,r=this.bbox();for(n=this.value.length-1;n>=0;n--)i=this.value[n][0],"M"===i||"L"===i||"T"===i?(this.value[n][1]=(this.value[n][1]-r.x)*t/r.width+r.x,this.value[n][2]=(this.value[n][2]-r.y)*e/r.height+r.y):"H"===i?this.value[n][1]=(this.value[n][1]-r.x)*t/r.width+r.x:"V"===i?this.value[n][1]=(this.value[n][1]-r.y)*e/r.height+r.y:"C"===i||"S"===i||"Q"===i?(this.value[n][1]=(this.value[n][1]-r.x)*t/r.width+r.x,this.value[n][2]=(this.value[n][2]-r.y)*e/r.height+r.y,this.value[n][3]=(this.value[n][3]-r.x)*t/r.width+r.x,this.value[n][4]=(this.value[n][4]-r.y)*e/r.height+r.y,"C"===i&&(this.value[n][5]=(this.value[n][5]-r.x)*t/r.width+r.x,this.value[n][6]=(this.value[n][6]-r.y)*e/r.height+r.y)):"A"===i&&(this.value[n][1]=this.value[n][1]*t/r.width,this.value[n][2]=this.value[n][2]*e/r.height,this.value[n][6]=(this.value[n][6]-r.x)*t/r.width+r.x,this.value[n][7]=(this.value[n][7]-r.y)*e/r.height+r.y);return this},equalCommands:function(t){var e,n,i;for(t=new q.PathArray(t),i=this.value.length===t.value.length,e=0,n=this.value.length;i&&eo);return i},bbox:function(){return q.parser().path.setAttribute("d",this.toString()),q.parser.nodes.path.getBBox()}}),q.Number=q.invent({create:function(t,e){e=Array.isArray(t)?t[1]:e,t=Array.isArray(t)?t[0]:t,this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-3.4e38:3.4e38:"string"==typeof t?(e=t.match(q.regex.numberAndUnit))&&(this.value=parseFloat(e[1]),"%"===e[5]?this.value/=100:"s"===e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof q.Number&&(this.value=t.valueOf(),this.unit=t.unit)},extend:{toString:function(){return("%"===this.unit?~~(1e8*this.value)/1e6:"s"===this.unit?this.value/1e3:this.value)+this.unit},toJSON:function(){return this.toString()},toArray:function(){return[this.value,this.unit]},valueOf:function(){return this.value},plus:function(t){return t=new q.Number(t),new q.Number(this+t,this.unit||t.unit)},minus:function(t){return t=new q.Number(t),new q.Number(this-t,this.unit||t.unit)},times:function(t){return t=new q.Number(t),new q.Number(this*t,this.unit||t.unit)},divide:function(t){return t=new q.Number(t),new q.Number(this/t,this.unit||t.unit)},morph:function(t){return this.destination=new q.Number(t),t.relative&&(this.destination.value+=this.value),this},at:function(t){return this.destination?new q.Number(this.destination).minus(this).times(t).plus(this):this}}}),q.EventTarget=q.invent({create:function(){},extend:{on:function(t,e,n,i){return q.on(this,t,e,n,i),this},off:function(t,e){return q.off(this,t,e),this},dispatch:function(t,e){return q.dispatch(this,t,e)},fire:function(t,e){return this.dispatch(t,e),this}}}),q.HtmlNode=q.invent({inherit:q.EventTarget,create:function(t){this.node=t},extend:{add:function(t,e){return t=f(t),t.node!==this.node.children[e]&&this.node.insertBefore(t.node,this.node.children[e]||null),this},put:function(t,e){return this.add(t,e),t},getEventTarget:function(){return this.node}}}),q.Element=q.invent({inherit:q.EventTarget,create:function(t){this.events={},this.dom={},this.node=t,this.node&&(this.type=t.nodeName,this.node.instance=this,this.events=t.events||{},t.hasAttribute("svgjs:data")&&this.setData(JSON.parse(t.getAttribute("svgjs:data"))||{}))},extend:{x:function(t){return this.attr("x",t)},y:function(t){return this.attr("y",t)},cx:function(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)},cy:function(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)},move:function(t,e){return this.x(t).y(e)},center:function(t,e){return this.cx(t).cy(e)},width:function(t){return this.attr("width",t)},height:function(t){return this.attr("height",t)},size:function(t,e){var n=A(this,t,e);return this.width(new q.Number(n.width)).height(new q.Number(n.height))},clone:function(t){this.writeDataToDom();var e=E(this.node.cloneNode(!0));return t?t.add(e):this.after(e),e},remove:function(){return this.parent()&&this.parent().removeElement(this),this},replace:function(t){return this.after(t).remove(),t},addTo:function(t){return f(t).put(this)},putIn:function(t){return f(t).add(this)},id:function(t){return void 0!==t||this.node.id||(this.node.id=q.eid(this.type)),this.attr("id",t)},inside:function(t,e){var n=this.bbox();return t>n.x&&e>n.y&&t0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.a,i=this.b,r=this.c,s=this.d,o=this.e,a=this.f,h=n*s-i*r,u=h>0?1:-1,l=u*Math.sqrt(n*n+i*i),c=Math.atan2(u*i,u*n),f=180/Math.PI*c,d=Math.cos(c),p=Math.sin(c),m=(n*r+i*s)/h,v=r*l/(m*n-i)||s*l/(m*i+n);return{scaleX:l,scaleY:v,shear:m,rotate:f,translateX:o-t+t*d*l+e*(m*d*l-p*v),translateY:a-e+t*p*l+e*(m*p*l+d*v),originX:t,originY:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}},morph:function(t){return this.destination=new q.Matrix(t),this},at:function(t){return this.destination?new q.Matrix({a:this.a+(this.destination.a-this.a)*t,b:this.b+(this.destination.b-this.b)*t,c:this.c+(this.destination.c-this.c)*t,d:this.d+(this.destination.d-this.d)*t,e:this.e+(this.destination.e-this.e)*t,f:this.f+(this.destination.f-this.f)*t}):this},multiply:function(t){return this.clone().multiplyO(t)},multiplyO:function(t){return S(this,t instanceof q.Matrix?t:new q.Matrix(t),this)},lmultiply:function(t){return this.clone().lmultiplyO(t)},lmultiplyO:function(t){var e=this;return S(t instanceof q.Matrix?t:new q.Matrix(t),e,this)},inverseO:function(){var t=this.a,e=this.b,n=this.c,i=this.d,r=this.e,s=this.f,o=t*i-e*n;if(!o)throw new Error("Cannot invert "+this);var a=i/o,h=-e/o,u=-n/o,l=t/o,c=-(a*r+u*s),f=-(h*r+l*s);return this.a=a,this.b=h,this.c=u,this.d=l,this.e=c,this.f=f,this},inverse:function(){return this.clone().inverseO()},translate:function(t,e){return this.clone().translateO(t,e)},translateO:function(t,e){return this.e+=t||0,this.f+=e||0,this},scale:function(t,e,n,i){var r;return(r=this.clone()).scaleO.apply(r,arguments)},scaleO:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;3===arguments.length&&(i=n,n=e,e=t);var r=this.a,s=this.b,o=this.c,a=this.d,h=this.e,u=this.f;return this.a=r*t,this.b=s*e,this.c=o*t,this.d=a*e,this.e=h*t-n*t+n,this.f=u*e-i*e+i,this},rotate:function(t,e,n){return this.clone().rotateO(t,e,n)},rotateO:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;t=q.utils.radians(t);var i=Math.cos(t),r=Math.sin(t),s=this.a,o=this.b,a=this.c,h=this.d,u=this.e,l=this.f;return this.a=s*i-o*r,this.b=o*i+s*r,this.c=a*i-h*r,this.d=h*i+a*r,this.e=u*i-l*r+n*r-e*i+e,this.f=l*i+u*r-e*r-n*i+n,this},flip:function(t,e){return this.clone().flipO(t,e)},flipO:function(t,e){return"x"===t?this.scaleO(-1,1,e,0):"y"===t?this.scaleO(1,-1,0,e):this.scaleO(-1,-1,t,e||t)},shear:function(t,e,n){return this.clone().shearO(t,e,n)},shearO:function(t){var e=(arguments.length>1&&void 0!==arguments[1]&&arguments[1],arguments.length>2&&void 0!==arguments[2]?arguments[2]:0),n=this.a,i=this.b,r=this.c,s=this.d,o=this.e,a=this.f;return this.a=n+i*t,this.c=r+s*t,this.e=o+a*t-e*t,this},skew:function(t,e,n,i){var r;return(r=this.clone()).skewO.apply(r,arguments)},skewO:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;3===arguments.length&&(i=n,n=e,e=t),t=q.utils.radians(t),e=q.utils.radians(e);var r=Math.tan(t),s=Math.tan(e),o=this.a,a=this.b,h=this.c,u=this.d,l=this.e,c=this.f;return this.a=o+a*r,this.b=a+o*s,this.c=h+u*r,this.d=u+h*s,this.e=l+c*r-i*r,this.f=c+l*s-n*s,this},skewX:function(t,e,n){return this.skew(t,0,e,n)},skewXO:function(t,e,n){return this.skewO(t,0,e,n)},skewY:function(t,e,n){return this.skew(0,t,e,n)},skewYO:function(t,e,n){return this.skewO(0,t,e,n)},aroundO:function(t,e,n){var i=t||0,r=e||0;return this.translateO(-i,-r).lmultiplyO(n).translateO(i,r)},around:function(t,e,n){return this.clone().aroundO(t,e,n)},native:function(){for(var t=q.parser.nodes.svg.node.createSVGMatrix(),e=Y.length-1;e>=0;e--)t[Y[e]]=this[Y[e]];return t},equals:function(t){var e=new q.Matrix(t);return T(this.a,e.a)&&T(this.b,e.b)&&T(this.c,e.c)&&T(this.d,e.d)&&T(this.e,e.e)&&T(this.f,e.f)},toString:function(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"},toArray:function(){return[this.a,this.b,this.c,this.d,this.e,this.f]},valueOf:function(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}},parent:q.Element,construct:{ctm:function(){return new q.Matrix(this.node.getCTM())},screenCTM:function(){if(this instanceof q.Doc&&!this.isRoot()){var t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new q.Matrix(e)}return new q.Matrix(this.node.getScreenCTM())}}}),q.Point=q.invent({create:function(t,e,n){var i;n=n||{x:0,y:0},i=Array.isArray(t)?{x:t[0],y:t[1]}:"object"===c(t)?{x:t.x,y:t.y}:{x:t,y:e},this.x=null==i.x?n.x:i.x,this.y=null==i.y?n.y:i.y},extend:{clone:function(){return new q.Point(this)},morph:function(t,e){return this.destination=new q.Point(t,e),this},at:function(t){return this.destination?new q.Point({x:this.x+(this.destination.x-this.x)*t,y:this.y+(this.destination.y-this.y)*t}):this},native:function(){var t=q.parser.nodes.svg.node.createSVGPoint();return t.x=this.x,t.y=this.y,t},transform:function(t){var e=t.a*this.x+t.c*this.y+t.e,n=t.b*this.x+t.d*this.y+t.f;return new q.Point(e,n)}}}),q.extend(q.Element,{point:function(t,e){return new q.Point(t,e).transform(this.screenCTM().inverse())}}),q.extend(q.Element,{attr:function(t,e,n){if(null==t){for(t={},e=this.node.attributes,n=e.length-1;n>=0;n--)t[e[n].nodeName]=q.regex.isNumber.test(e[n].nodeValue)?parseFloat(e[n].nodeValue):e[n].nodeValue;return t}if("object"===c(t))for(e in t)this.attr(e,t[e]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return e=this.node.getAttribute(t),null==e?q.defaults.attrs[t]:q.regex.isNumber.test(e)?parseFloat(e):e;"fill"!==t&&"stroke"!==t||(q.regex.isImage.test(e)&&(e=this.doc().defs().image(e)),e instanceof q.Image&&(e=this.doc().defs().pattern(0,0,function(){this.add(e)}))),"number"==typeof e?e=new q.Number(e):q.Color.isColor(e)?e=new q.Color(e):Array.isArray(e)&&(e=new q.Array(e)),"leading"===t?this.leading&&this.leading(e):"string"==typeof n?this.node.setAttributeNS(n,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!==t&&"x"!==t||this.rebuild(t,e)}return this}}),q.extend(q.Element,{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(q.regex.transforms).slice(0,-1).map(function(t){var e=t.trim().split("(");return[e[0],e[1].split(q.regex.delimiter).map(function(t){return parseFloat(t)})]}).reverse().reduce(function(t,e){return"matrix"===e[0]?t.lmultiply(M(e[1])):t[e[0]].apply(t,e[1])},new q.Matrix)},toParent:function(t){if(this===t)return this;var e=this.screenCTM(),n=t.screenCTM().inverse();return this.addTo(t).untransform().transform(n.multiply(e)),this},toDoc:function(){return this.toParent(this.doc())}}),q.extend(q.Element,{transform:function(t,e){if(null==t||"string"==typeof t){ -var n=new q.Matrix(this).decompose();return n[t]||n}k(t)||(t=u({},t,{origin:j(t,this)}));var i=!0===e?this:e||!1,r=new q.Matrix(i).transform(t);return this.attr("transform",r)}}),q.extend(q.Element,{css:function(t,e){var n,i,r={};if(0===arguments.length)return this.node.style.cssText.split(/\s*;\s*/).filter(function(t){return!!t.length}).forEach(function(t){n=t.split(/\s*:\s*/),r[n[0]]=n[1]}),r;if(arguments.length<2){if(Array.isArray(t)){for(i=t.length;i--;)r[g(t[i])]=this.node.style[g(t[i])];return r}if("string"==typeof t)return this.node.style[g(t)];if("object"===c(t))for(i in t)this.node.style[g(i)]=null==t[i]||q.regex.isBlank.test(t[i])?"":t[i]}return 2===arguments.length&&(this.node.style[g(t)]=null==e||q.regex.isBlank.test(e)?"":e),this}}),q.Parent=q.invent({create:function(t){q.Element.call(this,t)},inherit:q.Element,extend:{children:function(){return q.utils.map(this.node.children,function(t){return q.adopt(t)})},add:function(t,e){return t=f(t),t.node!==this.node.children[e]&&this.node.insertBefore(t.node,this.node.children[e]||null),this},put:function(t,e){return this.add(t,e),t.instance||t},has:function(t){return this.index(t)>=0},index:function(t){return[].slice.call(this.node.children).indexOf(t.node)},get:function(t){return q.adopt(this.node.children[t])},first:function(){return this.get(0)},last:function(){return this.get(this.node.children.length-1)},each:function(t,e){var n,i,r=this.children();for(n=0,i=r.length;n0&&this.parent().removeElement(this).add(this,t-1),this},front:function(){var t=this.parent();return t.node.appendChild(this.node),t instanceof q.Doc&&t.node.appendChild(t.defs().node),this},back:function(){return this.position()>0&&this.parent().removeElement(this).add(this,0),this},before:function(t){t.remove();var e=this.position();return this.parent().add(t,e),this},after:function(t){t.remove();var e=this.position();return this.parent().add(t,e+1),this}}),q.Mask=q.invent({create:"mask",inherit:q.Container,extend:{remove:function(){return this.targets().forEach(function(t){t.unmask()}),q.Element.prototype.remove.call(this)},targets:function(){return q.select('svg [mask*="'+this.id()+'"]')}},construct:{mask:function(){return this.defs().put(new q.Mask)}}}),q.extend(q.Element,{maskWith:function(t){var e=t instanceof q.Mask?t:this.parent().mask().add(t);return this.attr("mask",'url("#'+e.id()+'")')},unmask:function(){return this.attr("mask",null)},masker:function(){return this.reference("mask")}}),q.ClipPath=q.invent({create:"clipPath",inherit:q.Container,extend:{remove:function(){return this.targets().forEach(function(t){t.unclip()}),q.Element.prototype.remove.call(this)},targets:function(){return q.select('svg [clip-path*="'+this.id()+'"]')}},construct:{clip:function(){return this.defs().put(new q.ClipPath)}}}),q.extend(q.Element,{clipWith:function(t){var e=t instanceof q.ClipPath?t:this.parent().clip().add(t);return this.attr("clip-path",'url("#'+e.id()+'")')},unclip:function(){return this.attr("clip-path",null)},clipper:function(){return this.reference("clip-path")}}),q.Gradient=q.invent({create:function(t){q.Element.call(this,"object"===c(t)?t:q.create(t+"Gradient"))},inherit:q.Container,extend:{stop:function(t,e,n){return this.put(new q.Stop).update(t,e,n)},update:function(t){return this.clear(),"function"==typeof t&&t.call(this,this),this},url:function(){return"url(#"+this.id()+")"},toString:function(){return this.url()},attr:function(t,e,n){return"transform"===t&&(t="gradientTransform"),q.Container.prototype.attr.call(this,t,e,n)}},construct:{gradient:function(t,e){return this.defs().gradient(t,e)}}}),q.extend([q.Gradient,q.Timeline],{from:function(t,e){return"radialGradient"===(this._target||this).type?this.attr({fx:new q.Number(t),fy:new q.Number(e)}):this.attr({x1:new q.Number(t),y1:new q.Number(e)})},to:function(t,e){return"radialGradient"===(this._target||this).type?this.attr({cx:new q.Number(t),cy:new q.Number(e)}):this.attr({x2:new q.Number(t),y2:new q.Number(e)})}}),q.extend(q.Defs,{gradient:function(t,e){return this.put(new q.Gradient(t)).update(e)}}),q.Stop=q.invent({create:"stop",inherit:q.Element,extend:{update:function(t){return("number"==typeof t||t instanceof q.Number)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new q.Number(t.offset)),this}}}),q.Pattern=q.invent({create:"pattern",inherit:q.Container,extend:{url:function(){return"url(#"+this.id()+")"},update:function(t){return this.clear(),"function"==typeof t&&t.call(this,this),this},toString:function(){return this.url()},attr:function(t,e,n){return"transform"===t&&(t="patternTransform"),q.Container.prototype.attr.call(this,t,e,n)}},construct:{pattern:function(t,e,n){return this.defs().pattern(t,e,n)}}}),q.extend(q.Defs,{pattern:function(t,e,n){return this.put(new q.Pattern).update(n).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})}}),q.Doc=q.invent({create:function(t){q.Element.call(this,t||q.create("svg")),this.namespace()},inherit:q.Container,extend:{isRoot:function(){return!(this.node.parentNode&&this.node.parentNode instanceof t.SVGElement&&"#document"!==this.node.parentNode.nodeName)},doc:function(){return this.isRoot()?this:q.Element.prototype.doc.call(this)},namespace:function(){return this.isRoot()?this.attr({xmlns:q.ns,version:"1.1"}).attr("xmlns:xlink",q.xlink,q.xmlns).attr("xmlns:svgjs",q.svgjs,q.xmlns):this.doc().namespace()},defs:function(){return this.isRoot()?q.adopt(this.node.getElementsByTagName("defs")[0])||this.put(new q.Defs):this.doc().defs()},parent:function(t){return this.isRoot()?"#document"===this.node.parentNode.nodeName?null:this.node.parentNode:q.Element.prototype.parent.call(this,t)},remove:function(){return this.isRoot()?(this.parent()&&this.parent().removeChild(this.node),this):q.Element.prototype.remove.call(this)},clear:function(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}},construct:{nested:function(){return this.put(new q.Doc)}}}),q.Shape=q.invent({create:function(t){q.Element.call(this,t)},inherit:q.Element}),q.Bare=q.invent({create:function(t,e){if(q.Element.call(this,q.create(t)),e)for(var n in e.prototype)"function"==typeof e.prototype[n]&&(this[n]=e.prototype[n])},inherit:q.Element,extend:{words:function(t){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this.node.appendChild(e.createTextNode(t)),this}}}),q.extend(q.Parent,{element:function(t,e){return this.put(new q.Bare(t,e))}}),q.Symbol=q.invent({create:"symbol",inherit:q.Container,construct:{symbol:function(){return this.put(new q.Symbol)}}}),q.Use=q.invent({create:"use",inherit:q.Shape,extend:{element:function(t,e){return this.attr("href",(e||"")+"#"+t,q.xlink)}},construct:{use:function(t,e){return this.put(new q.Use).element(t,e)}}}),q.Rect=q.invent({create:"rect",inherit:q.Shape,construct:{rect:function(t,e){return this.put(new q.Rect).size(t,e)}}}),q.Circle=q.invent({create:"circle",inherit:q.Shape,construct:{circle:function(t){return this.put(new q.Circle).rx(new q.Number(t).divide(2)).move(0,0)}}}),q.extend([q.Circle,q.Timeline],{rx:function(t){return this.attr("r",t)},ry:function(t){return this.rx(t)}}),q.Ellipse=q.invent({create:"ellipse",inherit:q.Shape,construct:{ellipse:function(t,e){return this.put(new q.Ellipse).size(t,e).move(0,0)}}}),q.extend([q.Ellipse,q.Rect,q.Timeline],{rx:function(t){return this.attr("rx",t)},ry:function(t){return this.attr("ry",t)}}),q.extend([q.Circle,q.Ellipse],{x:function(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())},y:function(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())},cx:function(t){return null==t?this.attr("cx"):this.attr("cx",t)},cy:function(t){return null==t?this.attr("cy"):this.attr("cy",t)},width:function(t){return null==t?2*this.rx():this.rx(new q.Number(t).divide(2))},height:function(t){return null==t?2*this.ry():this.ry(new q.Number(t).divide(2))},size:function(t,e){var n=A(this,t,e);return this.rx(new q.Number(n.width).divide(2)).ry(new q.Number(n.height).divide(2))}}),q.Line=q.invent({create:"line",inherit:q.Shape,extend:{array:function(){return new q.PointArray([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])},plot:function(t,e,n,i){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:n,y2:i}:new q.PointArray(t).toLine(),this.attr(t))},move:function(t,e){return this.attr(this.array().move(t,e).toLine())},size:function(t,e){var n=A(this,t,e);return this.attr(this.array().size(n.width,n.height).toLine())}},construct:{line:function(t,e,n,i){return q.Line.prototype.plot.apply(this.put(new q.Line),null!=t?[t,e,n,i]:[0,0,0,0])}}}),q.Polyline=q.invent({create:"polyline",inherit:q.Shape,construct:{polyline:function(t){return this.put(new q.Polyline).plot(t||new q.PointArray)}}}),q.Polygon=q.invent({create:"polygon",inherit:q.Shape,construct:{polygon:function(t){return this.put(new q.Polygon).plot(t||new q.PointArray)}}}),q.extend([q.Polyline,q.Polygon],{array:function(){return this._array||(this._array=new q.PointArray(this.attr("points")))},plot:function(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new q.PointArray(t))},clear:function(){return delete this._array,this},move:function(t,e){return this.attr("points",this.array().move(t,e))},size:function(t,e){var n=A(this,t,e);return this.attr("points",this.array().size(n.width,n.height))}}),q.extend([q.Line,q.Polyline,q.Polygon],{MorphArray:q.PointArray,x:function(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)},y:function(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)},width:function(t){var e=this.bbox();return null==t?e.width:this.size(t,e.height)},height:function(t){var e=this.bbox();return null==t?e.height:this.size(e.width,t)}}),q.Path=q.invent({create:"path",inherit:q.Shape,extend:{MorphArray:q.PathArray,array:function(){return this._array||(this._array=new q.PathArray(this.attr("d")))},plot:function(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new q.PathArray(t))},clear:function(){return delete this._array,this},move:function(t,e){return this.attr("d",this.array().move(t,e))},x:function(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)},y:function(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)},size:function(t,e){var n=A(this,t,e);return this.attr("d",this.array().size(n.width,n.height))},width:function(t){return null==t?this.bbox().width:this.size(t,this.bbox().height)},height:function(t){return null==t?this.bbox().height:this.size(this.bbox().width,t)}},construct:{path:function(t){return this.put(new q.Path).plot(t||new q.PathArray)}}}),q.Image=q.invent({create:"image",inherit:q.Shape,extend:{load:function(e,n){if(!e)return this;var i=new t.Image;return q.on(i,"load",function(t){var r=this.parent(q.Pattern);0===this.width()&&0===this.height()&&this.size(i.width,i.height),r instanceof q.Pattern&&0===r.width()&&0===r.height()&&r.size(this.width(),this.height()),"function"==typeof n&&n.call(this,{width:i.width,height:i.height,ratio:i.width/i.height,url:e})},this),q.on(i,"load error",function(){q.off(i)}),this.attr("href",i.src=e,q.xlink)}},construct:{image:function(t,e){return this.put(new q.Image).size(0,0).load(t,e)}}}),q.Text=q.invent({create:function(t){q.Element.call(this,t||q.create("text")),this.dom.leading=new q.Number(1.3),this._rebuild=!0,this._build=!1,this.attr("font-family",q.defaults.attrs["font-family"])},inherit:q.Parent,extend:{x:function(t){return null==t?this.attr("x"):this.attr("x",t)},y:function(t){var e=this.attr("y"),n="number"==typeof e?e-this.bbox().y:0;return null==t?"number"==typeof e?e-n:e:this.attr("y","number"==typeof t?t+n:t)},cx:function(t){return null==t?this.bbox().cx:this.x(t-this.bbox().width/2)},cy:function(t){return null==t?this.bbox().cy:this.y(t-this.bbox().height/2)},text:function(t){if(void 0===t){var e=this.node.childNodes,n=0;t="";for(var i=0,r=e.length;i=0;e--)null!=n[X[t][e]]&&this.attr(X.prefix(t,X[t][e]),n[X[t][e]]);return this},q.extend([q.Element,q.Timeline],n)}),q.extend([q.Element,q.Timeline],{matrix:function(t,e,n,i,r,s){return null==t?new q.Matrix(this):this.attr("transform",new q.Matrix(t,e,n,i,r,s))},rotate:function(t,e,n){return this.transform({rotate:t,ox:e,oy:n},!0)},skew:function(t,e,n,i){return 1===arguments.length||3===arguments.length?this.transform({skew:t,ox:e,oy:n},!0):this.transform({skew:[t,e],ox:n,oy:i},!0)},shear:function(t,e,n){return this.transform({shear:t,ox:e,oy:n},!0)},scale:function(t,e,n,i){return 1===arguments.length||3===arguments.length?this.transform({scale:t,ox:e,oy:n},!0):this.transform({scale:[t,e],ox:n,oy:i},!0)},translate:function(t,e){return this.transform({translate:[t,e]},!0)},relative:function(t,e){return this.transform({relative:[t,e]},!0)},flip:function(t,e){var n="string"==typeof t?t:(isFinite(t),"both"),i="both"===t&&isFinite(e)?[e,e]:"x"===t?[e,0]:"y"===t?[0,e]:isFinite(t)?[t,t]:[0,0];this.transform({flip:n,origin:i},!0)},opacity:function(t){return this.attr("opacity",t)},dx:function(t){return this.x(new q.Number(t).plus(this instanceof q.Timeline?0:this.x()),!0)},dy:function(t){return this.y(new q.Number(t).plus(this instanceof q.Timeline?0:this.y()),!0)},dmove:function(t,e){return this.dx(t).dy(e)}}),q.extend([q.Rect,q.Ellipse,q.Circle,q.Gradient,q.Timeline],{radius:function(t,e){var n=(this._target||this).type;return"radialGradient"===n||"radialGradient"===n?this.attr("r",new q.Number(t)):this.rx(t).ry(null==e?t:e)}}),q.extend(q.Path,{length:function(){return this.node.getTotalLength()},pointAt:function(t){return new q.Point(this.node.getPointAtLength(t))}}),q.extend([q.Parent,q.Text,q.Tspan,q.Timeline],{font:function(t,e){if("object"===c(t))for(e in t)this.font(e,t[e]);return"leading"===t?this.leading(e):"anchor"===t?this.attr("text-anchor",e):"size"===t||"family"===t||"weight"===t||"stretch"===t||"variant"===t||"style"===t?this.attr("font-"+t,e):this.attr(t,e)}}),q.extend(q.Element,{data:function(t,e,n){if("object"===c(t))for(e in t)this.data(e,t[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+t))}catch(e){return this.attr("data-"+t)}else this.attr("data-"+t,null===e?null:!0===n||"string"==typeof e||"number"==typeof e?e:JSON.stringify(e));return this}}),q.extend(q.Element,{remember:function(t,e){if("object"===c(arguments[0]))for(var n in t)this.remember(n,t[n]);else{if(1===arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0===arguments.length)this._memory={};else for(var t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory||(this._memory={})}}),q.get=function(t){var n=e.getElementById(O(t)||t);return q.adopt(n)},q.select=function(t,n){return q.utils.map((n||e).querySelectorAll(t),function(t){return q.adopt(t)})},q.$$=function(t,n){return q.utils.map((n||e).querySelectorAll(t),function(t){return q.adopt(t)})},q.$=function(t,n){return q.adopt((n||e).querySelector(t))},q.extend(q.Parent,{select:function(t){return q.select(t,this.node)}});var Y="abcdef".split("");q.Box=q.invent({create:function(t){var e=[0,0,0,0];t="string"==typeof t?t.split(q.regex.delimiter).map(parseFloat):Array.isArray(t)?t:"object"===c(t)?[null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height]:4===arguments.length?[].slice.call(arguments):e,this.x=t[0],this.y=t[1],this.width=t[2],this.height=t[3],N(this)},extend:{merge:function(t){var e=Math.min(this.x,t.x),n=Math.min(this.y,t.y);return new q.Box(e,n,Math.max(this.x+this.width,t.x+t.width)-e,Math.max(this.y+this.height,t.y+t.height)-n)},transform:function(t){var e=1/0,n=-1/0,i=1/0,r=-1/0;return[new q.Point(this.x,this.y),new q.Point(this.x2,this.y),new q.Point(this.x,this.y2),new q.Point(this.x2,this.y2)].forEach(function(s){s=s.transform(t),e=Math.min(e,s.x),n=Math.max(n,s.x),i=Math.min(i,s.y),r=Math.max(r,s.y)}),new q.Box(e,i,n-e,r-i)},addOffset:function(){return this.x+=t.pageXOffset,this.y+=t.pageYOffset,this},toString:function(){return this.x+" "+this.y+" "+this.width+" "+this.height},toArray:function(){return[this.x,this.y,this.width,this.height]},morph:function(t,e,n,i){return this.destination=new q.Box(t,e,n,i),this},at:function(t){return this.destination?new q.Box(this.x+(this.destination.x-this.x)*t,this.y+(this.destination.y-this.y)*t,this.width+(this.destination.width-this.width)*t,this.height+(this.destination.height-this.height)*t):this}},parent:q.Element,construct:{bbox:function(){var t;try{if(t=this.node.getBBox(),d(t)&&!p(this.node))throw new Exception("Element not in the dom")}catch(n){try{var e=this.clone(q.parser().svg).show();t=e.node.getBBox(),e.remove()}catch(t){console.warn("Getting a bounding box of this element is not possible")}}return new q.Box(t)},rbox:function(t){try{var e=new q.Box(this.node.getBoundingClientRect());return t?e.transform(t.screenCTM().inverse()):e.addOffset()}catch(t){return new q.Box}}}}),q.extend([q.Doc,q.Symbol,q.Image,q.Pattern,q.Marker,q.ForeignObject,q.View],{viewbox:function(t,e,n,i){return null==t?new q.Box(this.attr("viewBox")):this.attr("viewBox",new q.Box(t,e,n,i))}}),q.parser=function(){var t;return q.parser.nodes.svg.node.parentNode||(t=e.body||e.documentElement,q.parser.nodes.svg.addTo(t)),q.parser.nodes},q.parser.nodes={svg:q().size(2,0).css({opacity:0,position:"absolute",left:"-100%",top:"-100%",overflow:"hidden"})},q.parser.nodes.path=q.parser.nodes.svg.path().node,q.Animator={nextDraw:null,frames:new q.Queue,timeouts:new q.Queue,timer:t.performance||t.Date,transforms:[],frame:function(t){var e=q.Animator.frames.push({run:t});return null===q.Animator.nextDraw&&(q.Animator.nextDraw=requestAnimationFrame(q.Animator._draw)),e},transform_frame:function(t,e){q.Animator.transforms[e]=t},timeout:function(t,e){e=e||0;var n=q.Animator.timer.now()+e,i=q.Animator.timeouts.push({run:t,time:n});return null===q.Animator.nextDraw&&(q.Animator.nextDraw=requestAnimationFrame(q.Animator._draw)),i},cancelFrame:function(t){q.Animator.frames.remove(t)},clearTimeout:function(t){q.Animator.timeouts.remove(t)},_draw:function(t){for(var e=null,n=q.Animator.timeouts.last();(e=q.Animator.timeouts.shift())&&(t>=e.time?e.run():q.Animator.timeouts.push(e),e!==n););for(var i=null,r=q.Animator.frames.last();i!==r&&(i=q.Animator.frames.shift());)i.run();q.Animator.transforms.forEach(function(t){t()}),q.Animator.nextDraw=q.Animator.timeouts.first()||q.Animator.frames.first()?requestAnimationFrame(q.Animator._draw):null}},q.Morphable=q.invent({create:function(t){this._stepper=t||new q.Ease("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null},extend:{from:function(t){return null==t?this._from:(this._from=this._set(t),this)},to:function(t){return null==t?this._to:(this._to=this._set(t),this)},type:function(t){return null==t?this._type:(this._type=t,this)},_set:function(t){if(!this._type){var e=c(t);"number"===e?this.type(q.Number):"string"===e?q.Color.isColor(t)?this.type(q.Color):q.regex.delimiter.test(t)?this.type(q.regex.pathLetters.test(t)?q.PathArray:q.Array):q.regex.numberAndUnit.test(t)?this.type(q.Number):this.type(q.Morphable.NonMorphable):q.MorphableTypes.indexOf(t.constructor)>-1?this.type(t.constructor):Array.isArray(t)?this.type(q.Array):"object"===e?this.type(q.Morphable.ObjectBag):this.type(q.Morphable.NonMorphable)}var n=new this._type(t).toArray();return this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(n.length)).map(Object),n},stepper:function(t){return null==t?this._stepper:(this._stepper=t,this)},done:function(){return this._context.map(this._stepper.done).reduce(function(t,e){return t&&e},!0)},at:function(t){var e=this;return this._morphObj.fromArray(this._from.map(function(n,i){return e._stepper.step(n,e._to[i],t,e._context[i],e._context)}))}}}),q.Morphable.NonMorphable=q.invent({create:function(t){t=Array.isArray(t)?t[0]:t,this.value=t},extend:{valueOf:function(){return this.value},toArray:function(){return[this.value]}}}),q.Morphable.TransformBag=q.invent({create:function(t){Array.isArray(t)&&(t={scaleX:t[0],scaleY:t[1],shear:t[2],rotate:t[3],translateX:t[4],translateY:t[5],originX:t[6],originY:t[7]}),Object.assign(this,q.Morphable.TransformBag.defaults,t)},extend:{toArray:function(){var t=this;return[t.scaleX,t.scaleY,t.shear,t.rotate,t.translateX,t.translateY,t.originX,t.originY]}}}),q.Morphable.TransformBag.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0},q.Morphable.ObjectBag=q.invent({create:function(t){if(this.values=[],Array.isArray(t))return void(this.values=t);var e=Object.entries(t||{}).sort(function(t,e){return t[0]-e[0]});this.values=e.reduce(function(t,e){return t.concat(e)},[])},extend:{valueOf:function(){for(var t={},e=this.values,n=0,i=e.length;n":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)}},q.Runner=q.invent({parent:q.Element,create:function(t){this.id=q.Runner.id++,t=null==t?q.defaults.timeline.duration:t,t="function"==typeof t?new q.Controller(t):t,this._element=null,this._timeline=null,this.done=!1,this._queue=[],this._duration="number"==typeof t&&t,this._isDeclarative=t instanceof q.Controller,this._stepper=this._isDeclarative?t:new q.Ease,this._history={},this.enabled=!0,this._time=0,this._last=0,this.transforms=new q.Matrix,this.transformId=1,this._haveReversed=!1,this._reverse=!1,this._loopsDone=0,this._swing=!1,this._wait=0,this._times=1},construct:{animate:function(t,e,n){var i=q.Runner.sanitise(t,e,n),r=this.timeline();return new q.Runner(i.duration).loop(i).element(this).timeline(r).schedule(e,n)},delay:function(t,e){return this.animate(0,t,e)}},extend:{element:function(t){return null==t?this._element:(this._element=t,t._prepareRunner(),this)},timeline:function(t){return void 0===t?this._timeline:(this._timeline=t,this)},animate:function(t,e,n){var i=q.Runner.sanitise(t,e,n),r=new q.Runner(i.duration);return this._timeline&&r.timeline(this._timeline),this._element&&r.element(this._element),r.loop(i).schedule(e,n)},schedule:function(t,e,n){if(t instanceof q.Timeline||(n=e,e=t,t=this.timeline()),!t)throw Error("Runner cannot be scheduled without timeline");return t.schedule(this,e,n),this},unschedule:function(){var t=this.timeline();return t&&t.unschedule(this),this},loop:function(t,e,n){return"object"===c(t)&&(e=t.swing,n=t.wait,t=t.times),this._times=t||1/0,this._swing=e||!1,this._wait=n||0,this},delay:function(t){return this.animate(0,t)},queue:function(t,e,n){return this._queue.push({initialiser:t||q.void,runner:e||q.void,isTransform:n,initialised:!1,finished:!1}),this.timeline()&&this.timeline()._continue(),this},during:function(t){return this.queue(null,t)},after:function(t){return this.on("finish",t)},time:function(t){if(null==t)return this._time;var e=t-this._time;return this.step(e),this},duration:function(){return this._times*(this._wait+this._duration)-this._wait},loops:function(t){var e=this._duration+this._wait;if(null==t){var n=Math.floor(this._time/e),i=this._time-n*e,r=i/this._duration;return Math.min(n+r,this._times)}var s=Math.floor(t),o=t%1,a=e*s+this._duration*o;return this.time(a)},position:function(t){var e,n=this._time,i=this._duration,r=this._wait,s=this._times,o=this._swing,a=this._reverse;if(null==t){var h=function(t){var e=o*Math.floor(t%(2*(r+i))/(r+i)),n=e&&!a||!e&&a,s=Math.pow(-1,n)*(t%(r+i))/i+n;return Math.max(Math.min(s,1),0)},u=s*(r+i)-r;return e=n<=0?Math.round(h(1e-5)):n=0;this._lastPosition=e;var i=this.duration(),r=(this._lastTime<0&&this._time,this._lastTimei);this._lastTime=this._time;var s=this._isDeclarative;if(this.done=!s&&!r&&this._time>=i,n||s){this._initialise(n),this.transforms=new q.Matrix;var o=this._run(s?t:e)}return this.done=this.done||o&&s,this},finish:function(){return this.step(1/0)},reverse:function(t){return this._reverse=null==t?!this._reverse:t,this},ease:function(t){return this._stepper=new q.Ease(t),this},active:function(t){return null==t?this.enabled:(this.enabled=t,this)},_rememberMorpher:function(t,e){this._history[t]={morpher:e,caller:this._queue[this._queue.length-1]}},_tryRetarget:function(t,e){if(this._history[t]){if(!this._history[t].caller.initialised){var n=this._queue.indexOf(this._history[t].caller);return this._queue.splice(n,1),!1}this._history[t].caller.isTransform?this._history[t].caller.isTransform(e):this._history[t].morpher.to(e),this._history[t].caller.finished=!1;var i=this.timeline();return i&&i._continue(),!0}return!1},_initialise:function(t){if(t||this._isDeclarative)for(var e=0,n=this._queue.length;e0&&void 0!==arguments[0]?arguments[0]:new q.Matrix,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];h(this,t),this.transforms=e,this.id=n,this.done=i}return t}(),q.extend([q.Runner,q.FakeRunner],{mergeWith:function(t){return new q.FakeRunner(t.transforms.lmultiply(this.transforms),t.id)}});var G=function(t,e){return t.lmultiplyO(e)},V=function(t){return t.transforms},H=function(){function t(){h(this,t),this.runners=[],this.ids=[]}return a(t,[{key:"add",value:function(t){if(!this.runners.includes(t)){var e=t.id+1,n=this.ids.reduce(function(t,n){return n>t&&n":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)}};var U=t.performance||Date,$=function(t){var e=t.start,n=t.runner.duration();return{start:e,duration:n,end:e+n,runner:t.runner}};return q.Timeline=q.invent({inherit:q.EventTarget,create:function(){this._timeSource=function(){return U.now()},this._dispatcher=e.createElement("div"),this._startTime=0,this._speed=1,this._reverse=!1,this._persist=0,this._nextFrame=null,this._paused=!1,this._runners=[],this._order=[],this._time=0,this._lastSourceTime=0,this._lastStepTime=0},extend:{getEventTarget:function(){return this._dispatcher},schedule:function(t,e,n){if(null==t)return this._runners.map($).sort(function(t,e){return t.start-e.start||t.duration-e.duration});this.active()||(this._step(),null==n&&(n="now"));var i=0;if(e=e||0,null==n||"last"===n||"after"===n)i=this._startTime;else if("absolute"===n||"start"===n)i=e,e=0;else if("now"===n)i=this._time;else{if("relative"!==n)throw new Error('Invalid value for the "when" parameter');var r=this._runners[t.id];r&&(i=r.start+e,e=0)}return t.unschedule(),t.timeline(this),t.time(-e),this._startTime=i+t.duration()+e,this._runners[t.id]={persist:this.persist(),runner:t,start:i},this._order.push(t.id),this._continue(),this},unschedule:function(t){var e=this._order.indexOf(t.id);return e<0?this:(delete this._runners[t.id],this._order.splice(e,1),t.timeline(null),this)},play:function(){return this._paused=!1,this._continue()},pause:function(){return this._nextFrame=null,this._paused=!0,this},stop:function(){return this.seek(-this._time),this.pause()},finish:function(){return this.seek(1/0),this.pause()},speed:function(t){return null==t?this._speed:(this._speed=t,this)},reverse:function(t){var e=this.speed();if(null==t)return this.speed(-e);var n=Math.abs(e);return this.speed(t?n:-n)},seek:function(t){return this._time+=t,this._continue()},time:function(t){return null==t?this._time:(this._time=t,this)},persist:function(t){return null==t?this._persist:(this._persist=t,this)},source:function(t){return null==t?this._timeSource:(this._timeSource=t,this)},_step:function(){if(!this._paused){var t=this._timeSource(),e=t-this._lastSourceTime,n=this._speed*e+(this._time-this._lastStepTime);this._lastSourceTime=t,this._time+=n,this._lastStepTime=this._time;for(var i=!1,r=0,s=this._order.length;r":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)},bezier:function(t,e,n,i){return function(t){}}},q.Controller=q.invent({inherit:q.Stepper,create:function(t){q.Stepper.call(this,t),this.stepper=t},extend:{step:function(t,e,n,i){return this.stepper(t,e,n,i)},done:function(t){return t.done}}}),q.Spring=q.invent({inherit:q.Controller,create:function(t,e){this.duration(t||500).overshoot(e||0)},extend:{step:function(t,e,n,i){if("string"==typeof t)return t;if(i.done=n===1/0,n===1/0)return e;if(0===n)return t;n>100&&(n=16),n/=1e3;var r=i.velocity||0,s=-this.d*r-this.k*(t-e),o=t+r*n+s*n*n/2;return i.velocity=r+s*n,i.done=Math.abs(e-o)+Math.abs(r)<.002,i.done?e:o},duration:R("_duration",I),overshoot:R("_overshoot",I)}}),q.PID=q.invent({inherit:q.Controller,create:function(t,e,n,i){q.Controller.call(this),t=null==t?.1:t,e=null==e?.01:e,n=null==n?0:n,i=null==i?1e3:i,this.p(t).i(e).d(n).windup(i)},extend:{step:function(t,e,n,i){if("string"==typeof t)return t;if(i.done=n===1/0,n===1/0)return e;if(0===n)return t;var r=e-t,s=(i.integral||0)+r*n,o=(r-(i.error||0))/n,a=this.windup;return!1!==a&&(s=Math.max(-a,Math.min(s,a))),i.error=r,i.integral=s,i.done=Math.abs(r)<.001,i.done?e:t+(this.P*r+this.I*s+this.D*o)},windup:R("windup"),p:R("P"),i:R("I"),d:R("D")}}),q}); \ No newline at end of file diff --git a/src/element.js b/src/element.js index f506cb5..406a35e 100644 --- a/src/element.js +++ b/src/element.js @@ -278,14 +278,15 @@ SVG.Element = SVG.invent({ this.each(function () { well = svg(this) - if (well instanceof SVG.Element) { - this.replace(well) - } - - if (typeof well === 'boolean' && !well) { + // If modifier returns false, discard node + if (well === false) { this.remove() + + // If modifier returns new node, use it + } else if (well && well !== this) { + this.replace(well) } - }) + }, true) } // write svgjs data to the dom