@egovernments/digit-ui-libraries 2.0.0-dev-11 → 2.0.0-dev-12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/661.main.js.map +1 -1
- package/dist/838.main.js.map +1 -1
- package/dist/main.js.map +1 -1
- package/package.json +1 -1
package/dist/661.main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"661.main.js","mappings":"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,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClwCC,EAAW,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,G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","sources":["webpack://@egovernments/digit-ui-libraries/./node_modules/performance-now/lib/performance-now.js","webpack://@egovernments/digit-ui-libraries/./node_modules/raf/index.js","webpack://@egovernments/digit-ui-libraries/./node_modules/rgbcolor/index.js","webpack://@egovernments/digit-ui-libraries/./node_modules/core-js/modules/es.array.index-of.js","webpack://@egovernments/digit-ui-libraries/./node_modules/core-js/modules/es.array.reduce.js","webpack://@egovernments/digit-ui-libraries/./node_modules/core-js/modules/es.array.reverse.js","webpack://@egovernments/digit-ui-libraries/./node_modules/core-js/modules/es.string.ends-with.js","webpack://@egovernments/digit-ui-libraries/./node_modules/core-js/modules/es.string.split.js","webpack://@egovernments/digit-ui-libraries/./node_modules/core-js/modules/es.string.starts-with.js","webpack://@egovernments/digit-ui-libraries/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://@egovernments/digit-ui-libraries/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://@egovernments/digit-ui-libraries/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://@egovernments/digit-ui-libraries/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://@egovernments/digit-ui-libraries/./node_modules/svg-pathdata/lib/SVGPathData.module.js","webpack://@egovernments/digit-ui-libraries/./node_modules/stackblur-canvas/dist/stackblur-es.js","webpack://@egovernments/digit-ui-libraries/./node_modules/canvg/lib/index.es.js"],"sourcesContent":["// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","/*\n\tBased on rgbcolor.js by Stoyan Stefanov <sstoo@gmail.com>\n\thttp://www.phpied.com/rgb-color-parser-in-javascript/\n*/\n\nmodule.exports = function(color_string) {\n this.ok = false;\n this.alpha = 1.0;\n\n // strip any leading #\n if (color_string.charAt(0) == '#') { // remove # if any\n color_string = color_string.substr(1,6);\n }\n\n color_string = color_string.replace(/ /g,'');\n color_string = color_string.toLowerCase();\n\n // before getting into regexps, try simple matches\n // and overwrite the input\n var simple_colors = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dodgerblue: '1e90ff',\n feldspar: 'd19275',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred : 'cd5c5c',\n indigo : '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgrey: 'd3d3d3',\n lightgreen: '90ee90',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslateblue: '8470ff',\n lightslategray: '778899',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '00ff00',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'ff00ff',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370d8',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'd87093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '663399',\n red: 'ff0000',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n violetred: 'd02090',\n wheat: 'f5deb3',\n white: 'ffffff',\n whitesmoke: 'f5f5f5',\n yellow: 'ffff00',\n yellowgreen: '9acd32'\n };\n color_string = simple_colors[color_string] || color_string;\n // emd of simple type-in colors\n\n // array of color definition objects\n var color_defs = [\n {\n re: /^rgba\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*((?:\\d?\\.)?\\d)\\)$/,\n example: ['rgba(123, 234, 45, 0.8)', 'rgba(255,234,245,1.0)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3]),\n parseFloat(bits[4])\n ];\n }\n },\n {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3])\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n example: ['#00ff00', '336699'],\n process: function (bits){\n return [\n parseInt(bits[1], 16),\n parseInt(bits[2], 16),\n parseInt(bits[3], 16)\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n example: ['#fb0', 'f0f'],\n process: function (bits){\n return [\n parseInt(bits[1] + bits[1], 16),\n parseInt(bits[2] + bits[2], 16),\n parseInt(bits[3] + bits[3], 16)\n ];\n }\n }\n ];\n\n // search through the definitions to find a match\n for (var i = 0; i < color_defs.length; i++) {\n var re = color_defs[i].re;\n var processor = color_defs[i].process;\n var bits = re.exec(color_string);\n if (bits) {\n var channels = processor(bits);\n this.r = channels[0];\n this.g = channels[1];\n this.b = channels[2];\n if (channels.length > 3) {\n this.alpha = channels[3];\n }\n this.ok = true;\n }\n\n }\n\n // validate/cleanup values\n this.r = (this.r < 0 || isNaN(this.r)) ? 0 : ((this.r > 255) ? 255 : this.r);\n this.g = (this.g < 0 || isNaN(this.g)) ? 0 : ((this.g > 255) ? 255 : this.g);\n this.b = (this.b < 0 || isNaN(this.b)) ? 0 : ((this.b > 255) ? 255 : this.b);\n this.alpha = (this.alpha < 0) ? 0 : ((this.alpha > 1.0 || isNaN(this.alpha)) ? 1.0 : this.alpha);\n\n // some getters\n this.toRGB = function () {\n return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';\n }\n this.toRGBA = function () {\n return 'rgba(' + this.r + ', ' + this.g + ', ' + this.b + ', ' + this.alpha + ')';\n }\n this.toHex = function () {\n var r = this.r.toString(16);\n var g = this.g.toString(16);\n var b = this.b.toString(16);\n if (r.length == 1) r = '0' + r;\n if (g.length == 1) g = '0' + g;\n if (b.length == 1) b = '0' + b;\n return '#' + r + g + b;\n }\n\n // help\n this.getHelpXML = function () {\n\n var examples = new Array();\n // add regexps\n for (var i = 0; i < color_defs.length; i++) {\n var example = color_defs[i].example;\n for (var j = 0; j < example.length; j++) {\n examples[examples.length] = example[j];\n }\n }\n // add type-in colors\n for (var sc in simple_colors) {\n examples[examples.length] = sc;\n }\n\n var xml = document.createElement('ul');\n xml.setAttribute('id', 'rgbcolor-examples');\n for (var i = 0; i < examples.length; i++) {\n try {\n var list_item = document.createElement('li');\n var list_color = new RGBColor(examples[i]);\n var example_div = document.createElement('div');\n example_div.style.cssText =\n 'margin: 3px; '\n + 'border: 1px solid black; '\n + 'background:' + list_color.toHex() + '; '\n + 'color:' + list_color.toHex()\n ;\n example_div.appendChild(document.createTextNode('test'));\n var list_item_value = document.createTextNode(\n ' ' + examples[i] + ' -> ' + list_color.toRGB() + ' -> ' + list_color.toHex()\n );\n list_item.appendChild(example_div);\n list_item.appendChild(list_item_value);\n xml.appendChild(list_item);\n\n } catch(e){}\n }\n return xml;\n\n }\n\n}\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/environment-v8-version');\nvar IS_NODE = require('../internals/environment-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign -- dirty hack\n if (isArray(this)) this.length = this.length;\n return nativeReverse(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var search = toString(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n return slice(that, end - search.length, end) === search;\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar push = uncurryThis([].push);\nvar stringSlice = uncurryThis(''.slice);\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nvar BUGGY = 'abbc'.split(/(b)*/)[1] === 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length !== 4 ||\n 'ab'.split(/(?:ab)*/).length !== 2 ||\n '.'.split(/(.?)(.?)/).length !== 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length;\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n } : nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = isObject(separator) ? getMethod(separator, SPLIT) : undefined;\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (!BUGGY) {\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n }\n\n var C = speciesConstructor(rx, RegExp);\n var flags = toString(getRegExpFlags(rx));\n var unicodeMatching = !!~stringIndexOf(flags, 'u') || !!~stringIndexOf(flags, 'v');\n if (UNSUPPORTED_Y) {\n if (!~stringIndexOf(flags, 'g')) flags += 'g';\n } else if (!~stringIndexOf(flags, 'y')) flags += 'y';\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return regExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = regExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var search = toString(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n return stringSlice(that, index, index + search.length) === search;\n }\n});\n","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nvar t=function(r,e){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])})(r,e)};function r(r,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function i(){this.constructor=r}t(r,e),r.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}function e(t){var r=\"\";Array.isArray(t)||(t=[t]);for(var e=0;e<t.length;e++){var i=t[e];if(i.type===_.CLOSE_PATH)r+=\"z\";else if(i.type===_.HORIZ_LINE_TO)r+=(i.relative?\"h\":\"H\")+i.x;else if(i.type===_.VERT_LINE_TO)r+=(i.relative?\"v\":\"V\")+i.y;else if(i.type===_.MOVE_TO)r+=(i.relative?\"m\":\"M\")+i.x+\" \"+i.y;else if(i.type===_.LINE_TO)r+=(i.relative?\"l\":\"L\")+i.x+\" \"+i.y;else if(i.type===_.CURVE_TO)r+=(i.relative?\"c\":\"C\")+i.x1+\" \"+i.y1+\" \"+i.x2+\" \"+i.y2+\" \"+i.x+\" \"+i.y;else if(i.type===_.SMOOTH_CURVE_TO)r+=(i.relative?\"s\":\"S\")+i.x2+\" \"+i.y2+\" \"+i.x+\" \"+i.y;else if(i.type===_.QUAD_TO)r+=(i.relative?\"q\":\"Q\")+i.x1+\" \"+i.y1+\" \"+i.x+\" \"+i.y;else if(i.type===_.SMOOTH_QUAD_TO)r+=(i.relative?\"t\":\"T\")+i.x+\" \"+i.y;else{if(i.type!==_.ARC)throw new Error('Unexpected command type \"'+i.type+'\" at index '+e+\".\");r+=(i.relative?\"a\":\"A\")+i.rX+\" \"+i.rY+\" \"+i.xRot+\" \"+ +i.lArcFlag+\" \"+ +i.sweepFlag+\" \"+i.x+\" \"+i.y}}return r}function i(t,r){var e=t[0],i=t[1];return[e*Math.cos(r)-i*Math.sin(r),e*Math.sin(r)+i*Math.cos(r)]}function a(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];for(var e=0;e<t.length;e++)if(\"number\"!=typeof t[e])throw new Error(\"assertNumbers arguments[\"+e+\"] is not a number. \"+typeof t[e]+\" == typeof \"+t[e]);return!0}var n=Math.PI;function o(t,r,e){t.lArcFlag=0===t.lArcFlag?0:1,t.sweepFlag=0===t.sweepFlag?0:1;var a=t.rX,o=t.rY,s=t.x,u=t.y;a=Math.abs(t.rX),o=Math.abs(t.rY);var h=i([(r-s)/2,(e-u)/2],-t.xRot/180*n),c=h[0],y=h[1],p=Math.pow(c,2)/Math.pow(a,2)+Math.pow(y,2)/Math.pow(o,2);1<p&&(a*=Math.sqrt(p),o*=Math.sqrt(p)),t.rX=a,t.rY=o;var m=Math.pow(a,2)*Math.pow(y,2)+Math.pow(o,2)*Math.pow(c,2),O=(t.lArcFlag!==t.sweepFlag?1:-1)*Math.sqrt(Math.max(0,(Math.pow(a,2)*Math.pow(o,2)-m)/m)),l=a*y/o*O,T=-o*c/a*O,v=i([l,T],t.xRot/180*n);t.cX=v[0]+(r+s)/2,t.cY=v[1]+(e+u)/2,t.phi1=Math.atan2((y-T)/o,(c-l)/a),t.phi2=Math.atan2((-y-T)/o,(-c-l)/a),0===t.sweepFlag&&t.phi2>t.phi1&&(t.phi2-=2*n),1===t.sweepFlag&&t.phi2<t.phi1&&(t.phi2+=2*n),t.phi1*=180/n,t.phi2*=180/n}function s(t,r,e){a(t,r,e);var i=t*t+r*r-e*e;if(0>i)return[];if(0===i)return[[t*e/(t*t+r*r),r*e/(t*t+r*r)]];var n=Math.sqrt(i);return[[(t*e+r*n)/(t*t+r*r),(r*e-t*n)/(t*t+r*r)],[(t*e-r*n)/(t*t+r*r),(r*e+t*n)/(t*t+r*r)]]}var u,h=Math.PI/180;function c(t,r,e){return(1-e)*t+e*r}function y(t,r,e,i){return t+Math.cos(i/180*n)*r+Math.sin(i/180*n)*e}function p(t,r,e,i){var a=1e-6,n=r-t,o=e-r,s=3*n+3*(i-e)-6*o,u=6*(o-n),h=3*n;return Math.abs(s)<a?[-h/u]:function(t,r,e){void 0===e&&(e=1e-6);var i=t*t/4-r;if(i<-e)return[];if(i<=e)return[-t/2];var a=Math.sqrt(i);return[-t/2-a,-t/2+a]}(u/s,h/s,a)}function m(t,r,e,i,a){var n=1-a;return t*(n*n*n)+r*(3*n*n*a)+e*(3*n*a*a)+i*(a*a*a)}!function(t){function r(){return u((function(t,r,e){return t.relative&&(void 0!==t.x1&&(t.x1+=r),void 0!==t.y1&&(t.y1+=e),void 0!==t.x2&&(t.x2+=r),void 0!==t.y2&&(t.y2+=e),void 0!==t.x&&(t.x+=r),void 0!==t.y&&(t.y+=e),t.relative=!1),t}))}function e(){var t=NaN,r=NaN,e=NaN,i=NaN;return u((function(a,n,o){return a.type&_.SMOOTH_CURVE_TO&&(a.type=_.CURVE_TO,t=isNaN(t)?n:t,r=isNaN(r)?o:r,a.x1=a.relative?n-t:2*n-t,a.y1=a.relative?o-r:2*o-r),a.type&_.CURVE_TO?(t=a.relative?n+a.x2:a.x2,r=a.relative?o+a.y2:a.y2):(t=NaN,r=NaN),a.type&_.SMOOTH_QUAD_TO&&(a.type=_.QUAD_TO,e=isNaN(e)?n:e,i=isNaN(i)?o:i,a.x1=a.relative?n-e:2*n-e,a.y1=a.relative?o-i:2*o-i),a.type&_.QUAD_TO?(e=a.relative?n+a.x1:a.x1,i=a.relative?o+a.y1:a.y1):(e=NaN,i=NaN),a}))}function n(){var t=NaN,r=NaN;return u((function(e,i,a){if(e.type&_.SMOOTH_QUAD_TO&&(e.type=_.QUAD_TO,t=isNaN(t)?i:t,r=isNaN(r)?a:r,e.x1=e.relative?i-t:2*i-t,e.y1=e.relative?a-r:2*a-r),e.type&_.QUAD_TO){t=e.relative?i+e.x1:e.x1,r=e.relative?a+e.y1:e.y1;var n=e.x1,o=e.y1;e.type=_.CURVE_TO,e.x1=((e.relative?0:i)+2*n)/3,e.y1=((e.relative?0:a)+2*o)/3,e.x2=(e.x+2*n)/3,e.y2=(e.y+2*o)/3}else t=NaN,r=NaN;return e}))}function u(t){var r=0,e=0,i=NaN,a=NaN;return function(n){if(isNaN(i)&&!(n.type&_.MOVE_TO))throw new Error(\"path must start with moveto\");var o=t(n,r,e,i,a);return n.type&_.CLOSE_PATH&&(r=i,e=a),void 0!==n.x&&(r=n.relative?r+n.x:n.x),void 0!==n.y&&(e=n.relative?e+n.y:n.y),n.type&_.MOVE_TO&&(i=r,a=e),o}}function O(t,r,e,i,n,o){return a(t,r,e,i,n,o),u((function(a,s,u,h){var c=a.x1,y=a.x2,p=a.relative&&!isNaN(h),m=void 0!==a.x?a.x:p?0:s,O=void 0!==a.y?a.y:p?0:u;function l(t){return t*t}a.type&_.HORIZ_LINE_TO&&0!==r&&(a.type=_.LINE_TO,a.y=a.relative?0:u),a.type&_.VERT_LINE_TO&&0!==e&&(a.type=_.LINE_TO,a.x=a.relative?0:s),void 0!==a.x&&(a.x=a.x*t+O*e+(p?0:n)),void 0!==a.y&&(a.y=m*r+a.y*i+(p?0:o)),void 0!==a.x1&&(a.x1=a.x1*t+a.y1*e+(p?0:n)),void 0!==a.y1&&(a.y1=c*r+a.y1*i+(p?0:o)),void 0!==a.x2&&(a.x2=a.x2*t+a.y2*e+(p?0:n)),void 0!==a.y2&&(a.y2=y*r+a.y2*i+(p?0:o));var T=t*i-r*e;if(void 0!==a.xRot&&(1!==t||0!==r||0!==e||1!==i))if(0===T)delete a.rX,delete a.rY,delete a.xRot,delete a.lArcFlag,delete a.sweepFlag,a.type=_.LINE_TO;else{var v=a.xRot*Math.PI/180,f=Math.sin(v),N=Math.cos(v),x=1/l(a.rX),d=1/l(a.rY),E=l(N)*x+l(f)*d,A=2*f*N*(x-d),C=l(f)*x+l(N)*d,M=E*i*i-A*r*i+C*r*r,R=A*(t*i+r*e)-2*(E*e*i+C*t*r),g=E*e*e-A*t*e+C*t*t,I=(Math.atan2(R,M-g)+Math.PI)%Math.PI/2,S=Math.sin(I),L=Math.cos(I);a.rX=Math.abs(T)/Math.sqrt(M*l(L)+R*S*L+g*l(S)),a.rY=Math.abs(T)/Math.sqrt(M*l(S)-R*S*L+g*l(L)),a.xRot=180*I/Math.PI}return void 0!==a.sweepFlag&&0>T&&(a.sweepFlag=+!a.sweepFlag),a}))}function l(){return function(t){var r={};for(var e in t)r[e]=t[e];return r}}t.ROUND=function(t){function r(r){return Math.round(r*t)/t}return void 0===t&&(t=1e13),a(t),function(t){return void 0!==t.x1&&(t.x1=r(t.x1)),void 0!==t.y1&&(t.y1=r(t.y1)),void 0!==t.x2&&(t.x2=r(t.x2)),void 0!==t.y2&&(t.y2=r(t.y2)),void 0!==t.x&&(t.x=r(t.x)),void 0!==t.y&&(t.y=r(t.y)),void 0!==t.rX&&(t.rX=r(t.rX)),void 0!==t.rY&&(t.rY=r(t.rY)),t}},t.TO_ABS=r,t.TO_REL=function(){return u((function(t,r,e){return t.relative||(void 0!==t.x1&&(t.x1-=r),void 0!==t.y1&&(t.y1-=e),void 0!==t.x2&&(t.x2-=r),void 0!==t.y2&&(t.y2-=e),void 0!==t.x&&(t.x-=r),void 0!==t.y&&(t.y-=e),t.relative=!0),t}))},t.NORMALIZE_HVZ=function(t,r,e){return void 0===t&&(t=!0),void 0===r&&(r=!0),void 0===e&&(e=!0),u((function(i,a,n,o,s){if(isNaN(o)&&!(i.type&_.MOVE_TO))throw new Error(\"path must start with moveto\");return r&&i.type&_.HORIZ_LINE_TO&&(i.type=_.LINE_TO,i.y=i.relative?0:n),e&&i.type&_.VERT_LINE_TO&&(i.type=_.LINE_TO,i.x=i.relative?0:a),t&&i.type&_.CLOSE_PATH&&(i.type=_.LINE_TO,i.x=i.relative?o-a:o,i.y=i.relative?s-n:s),i.type&_.ARC&&(0===i.rX||0===i.rY)&&(i.type=_.LINE_TO,delete i.rX,delete i.rY,delete i.xRot,delete i.lArcFlag,delete i.sweepFlag),i}))},t.NORMALIZE_ST=e,t.QT_TO_C=n,t.INFO=u,t.SANITIZE=function(t){void 0===t&&(t=0),a(t);var r=NaN,e=NaN,i=NaN,n=NaN;return u((function(a,o,s,u,h){var c=Math.abs,y=!1,p=0,m=0;if(a.type&_.SMOOTH_CURVE_TO&&(p=isNaN(r)?0:o-r,m=isNaN(e)?0:s-e),a.type&(_.CURVE_TO|_.SMOOTH_CURVE_TO)?(r=a.relative?o+a.x2:a.x2,e=a.relative?s+a.y2:a.y2):(r=NaN,e=NaN),a.type&_.SMOOTH_QUAD_TO?(i=isNaN(i)?o:2*o-i,n=isNaN(n)?s:2*s-n):a.type&_.QUAD_TO?(i=a.relative?o+a.x1:a.x1,n=a.relative?s+a.y1:a.y2):(i=NaN,n=NaN),a.type&_.LINE_COMMANDS||a.type&_.ARC&&(0===a.rX||0===a.rY||!a.lArcFlag)||a.type&_.CURVE_TO||a.type&_.SMOOTH_CURVE_TO||a.type&_.QUAD_TO||a.type&_.SMOOTH_QUAD_TO){var O=void 0===a.x?0:a.relative?a.x:a.x-o,l=void 0===a.y?0:a.relative?a.y:a.y-s;p=isNaN(i)?void 0===a.x1?p:a.relative?a.x:a.x1-o:i-o,m=isNaN(n)?void 0===a.y1?m:a.relative?a.y:a.y1-s:n-s;var T=void 0===a.x2?0:a.relative?a.x:a.x2-o,v=void 0===a.y2?0:a.relative?a.y:a.y2-s;c(O)<=t&&c(l)<=t&&c(p)<=t&&c(m)<=t&&c(T)<=t&&c(v)<=t&&(y=!0)}return a.type&_.CLOSE_PATH&&c(o-u)<=t&&c(s-h)<=t&&(y=!0),y?[]:a}))},t.MATRIX=O,t.ROTATE=function(t,r,e){void 0===r&&(r=0),void 0===e&&(e=0),a(t,r,e);var i=Math.sin(t),n=Math.cos(t);return O(n,i,-i,n,r-r*n+e*i,e-r*i-e*n)},t.TRANSLATE=function(t,r){return void 0===r&&(r=0),a(t,r),O(1,0,0,1,t,r)},t.SCALE=function(t,r){return void 0===r&&(r=t),a(t,r),O(t,0,0,r,0,0)},t.SKEW_X=function(t){return a(t),O(1,0,Math.atan(t),1,0,0)},t.SKEW_Y=function(t){return a(t),O(1,Math.atan(t),0,1,0,0)},t.X_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),a(t),O(-1,0,0,1,t,0)},t.Y_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),a(t),O(1,0,0,-1,0,t)},t.A_TO_C=function(){return u((function(t,r,e){return _.ARC===t.type?function(t,r,e){var a,n,s,u;t.cX||o(t,r,e);for(var y=Math.min(t.phi1,t.phi2),p=Math.max(t.phi1,t.phi2)-y,m=Math.ceil(p/90),O=new Array(m),l=r,T=e,v=0;v<m;v++){var f=c(t.phi1,t.phi2,v/m),N=c(t.phi1,t.phi2,(v+1)/m),x=N-f,d=4/3*Math.tan(x*h/4),E=[Math.cos(f*h)-d*Math.sin(f*h),Math.sin(f*h)+d*Math.cos(f*h)],A=E[0],C=E[1],M=[Math.cos(N*h),Math.sin(N*h)],R=M[0],g=M[1],I=[R+d*Math.sin(N*h),g-d*Math.cos(N*h)],S=I[0],L=I[1];O[v]={relative:t.relative,type:_.CURVE_TO};var H=function(r,e){var a=i([r*t.rX,e*t.rY],t.xRot),n=a[0],o=a[1];return[t.cX+n,t.cY+o]};a=H(A,C),O[v].x1=a[0],O[v].y1=a[1],n=H(S,L),O[v].x2=n[0],O[v].y2=n[1],s=H(R,g),O[v].x=s[0],O[v].y=s[1],t.relative&&(O[v].x1-=l,O[v].y1-=T,O[v].x2-=l,O[v].y2-=T,O[v].x-=l,O[v].y-=T),l=(u=[O[v].x,O[v].y])[0],T=u[1]}return O}(t,t.relative?0:r,t.relative?0:e):t}))},t.ANNOTATE_ARCS=function(){return u((function(t,r,e){return t.relative&&(r=0,e=0),_.ARC===t.type&&o(t,r,e),t}))},t.CLONE=l,t.CALCULATE_BOUNDS=function(){var t=function(t){var r={};for(var e in t)r[e]=t[e];return r},i=r(),a=n(),h=e(),c=u((function(r,e,n){var u=h(a(i(t(r))));function O(t){t>c.maxX&&(c.maxX=t),t<c.minX&&(c.minX=t)}function l(t){t>c.maxY&&(c.maxY=t),t<c.minY&&(c.minY=t)}if(u.type&_.DRAWING_COMMANDS&&(O(e),l(n)),u.type&_.HORIZ_LINE_TO&&O(u.x),u.type&_.VERT_LINE_TO&&l(u.y),u.type&_.LINE_TO&&(O(u.x),l(u.y)),u.type&_.CURVE_TO){O(u.x),l(u.y);for(var T=0,v=p(e,u.x1,u.x2,u.x);T<v.length;T++){0<(w=v[T])&&1>w&&O(m(e,u.x1,u.x2,u.x,w))}for(var f=0,N=p(n,u.y1,u.y2,u.y);f<N.length;f++){0<(w=N[f])&&1>w&&l(m(n,u.y1,u.y2,u.y,w))}}if(u.type&_.ARC){O(u.x),l(u.y),o(u,e,n);for(var x=u.xRot/180*Math.PI,d=Math.cos(x)*u.rX,E=Math.sin(x)*u.rX,A=-Math.sin(x)*u.rY,C=Math.cos(x)*u.rY,M=u.phi1<u.phi2?[u.phi1,u.phi2]:-180>u.phi2?[u.phi2+360,u.phi1+360]:[u.phi2,u.phi1],R=M[0],g=M[1],I=function(t){var r=t[0],e=t[1],i=180*Math.atan2(e,r)/Math.PI;return i<R?i+360:i},S=0,L=s(A,-d,0).map(I);S<L.length;S++){(w=L[S])>R&&w<g&&O(y(u.cX,d,A,w))}for(var H=0,U=s(C,-E,0).map(I);H<U.length;H++){var w;(w=U[H])>R&&w<g&&l(y(u.cY,E,C,w))}}return r}));return c.minX=1/0,c.maxX=-1/0,c.minY=1/0,c.maxY=-1/0,c}}(u||(u={}));var O,l=function(){function t(){}return t.prototype.round=function(t){return this.transform(u.ROUND(t))},t.prototype.toAbs=function(){return this.transform(u.TO_ABS())},t.prototype.toRel=function(){return this.transform(u.TO_REL())},t.prototype.normalizeHVZ=function(t,r,e){return this.transform(u.NORMALIZE_HVZ(t,r,e))},t.prototype.normalizeST=function(){return this.transform(u.NORMALIZE_ST())},t.prototype.qtToC=function(){return this.transform(u.QT_TO_C())},t.prototype.aToC=function(){return this.transform(u.A_TO_C())},t.prototype.sanitize=function(t){return this.transform(u.SANITIZE(t))},t.prototype.translate=function(t,r){return this.transform(u.TRANSLATE(t,r))},t.prototype.scale=function(t,r){return this.transform(u.SCALE(t,r))},t.prototype.rotate=function(t,r,e){return this.transform(u.ROTATE(t,r,e))},t.prototype.matrix=function(t,r,e,i,a,n){return this.transform(u.MATRIX(t,r,e,i,a,n))},t.prototype.skewX=function(t){return this.transform(u.SKEW_X(t))},t.prototype.skewY=function(t){return this.transform(u.SKEW_Y(t))},t.prototype.xSymmetry=function(t){return this.transform(u.X_AXIS_SYMMETRY(t))},t.prototype.ySymmetry=function(t){return this.transform(u.Y_AXIS_SYMMETRY(t))},t.prototype.annotateArcs=function(){return this.transform(u.ANNOTATE_ARCS())},t}(),T=function(t){return\" \"===t||\"\\t\"===t||\"\\r\"===t||\"\\n\"===t},v=function(t){return\"0\".charCodeAt(0)<=t.charCodeAt(0)&&t.charCodeAt(0)<=\"9\".charCodeAt(0)},f=function(t){function e(){var r=t.call(this)||this;return r.curNumber=\"\",r.curCommandType=-1,r.curCommandRelative=!1,r.canParseCommandOrComma=!0,r.curNumberHasExp=!1,r.curNumberHasExpDigits=!1,r.curNumberHasDecimal=!1,r.curArgs=[],r}return r(e,t),e.prototype.finish=function(t){if(void 0===t&&(t=[]),this.parse(\" \",t),0!==this.curArgs.length||!this.canParseCommandOrComma)throw new SyntaxError(\"Unterminated command at the path end.\");return t},e.prototype.parse=function(t,r){var e=this;void 0===r&&(r=[]);for(var i=function(t){r.push(t),e.curArgs.length=0,e.canParseCommandOrComma=!0},a=0;a<t.length;a++){var n=t[a],o=!(this.curCommandType!==_.ARC||3!==this.curArgs.length&&4!==this.curArgs.length||1!==this.curNumber.length||\"0\"!==this.curNumber&&\"1\"!==this.curNumber),s=v(n)&&(\"0\"===this.curNumber&&\"0\"===n||o);if(!v(n)||s)if(\"e\"!==n&&\"E\"!==n)if(\"-\"!==n&&\"+\"!==n||!this.curNumberHasExp||this.curNumberHasExpDigits)if(\".\"!==n||this.curNumberHasExp||this.curNumberHasDecimal||o){if(this.curNumber&&-1!==this.curCommandType){var u=Number(this.curNumber);if(isNaN(u))throw new SyntaxError(\"Invalid number ending at \"+a);if(this.curCommandType===_.ARC)if(0===this.curArgs.length||1===this.curArgs.length){if(0>u)throw new SyntaxError('Expected positive number, got \"'+u+'\" at index \"'+a+'\"')}else if((3===this.curArgs.length||4===this.curArgs.length)&&\"0\"!==this.curNumber&&\"1\"!==this.curNumber)throw new SyntaxError('Expected a flag, got \"'+this.curNumber+'\" at index \"'+a+'\"');this.curArgs.push(u),this.curArgs.length===N[this.curCommandType]&&(_.HORIZ_LINE_TO===this.curCommandType?i({type:_.HORIZ_LINE_TO,relative:this.curCommandRelative,x:u}):_.VERT_LINE_TO===this.curCommandType?i({type:_.VERT_LINE_TO,relative:this.curCommandRelative,y:u}):this.curCommandType===_.MOVE_TO||this.curCommandType===_.LINE_TO||this.curCommandType===_.SMOOTH_QUAD_TO?(i({type:this.curCommandType,relative:this.curCommandRelative,x:this.curArgs[0],y:this.curArgs[1]}),_.MOVE_TO===this.curCommandType&&(this.curCommandType=_.LINE_TO)):this.curCommandType===_.CURVE_TO?i({type:_.CURVE_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x2:this.curArgs[2],y2:this.curArgs[3],x:this.curArgs[4],y:this.curArgs[5]}):this.curCommandType===_.SMOOTH_CURVE_TO?i({type:_.SMOOTH_CURVE_TO,relative:this.curCommandRelative,x2:this.curArgs[0],y2:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.QUAD_TO?i({type:_.QUAD_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.ARC&&i({type:_.ARC,relative:this.curCommandRelative,rX:this.curArgs[0],rY:this.curArgs[1],xRot:this.curArgs[2],lArcFlag:this.curArgs[3],sweepFlag:this.curArgs[4],x:this.curArgs[5],y:this.curArgs[6]})),this.curNumber=\"\",this.curNumberHasExpDigits=!1,this.curNumberHasExp=!1,this.curNumberHasDecimal=!1,this.canParseCommandOrComma=!0}if(!T(n))if(\",\"===n&&this.canParseCommandOrComma)this.canParseCommandOrComma=!1;else if(\"+\"!==n&&\"-\"!==n&&\".\"!==n)if(s)this.curNumber=n,this.curNumberHasDecimal=!1;else{if(0!==this.curArgs.length)throw new SyntaxError(\"Unterminated command at index \"+a+\".\");if(!this.canParseCommandOrComma)throw new SyntaxError('Unexpected character \"'+n+'\" at index '+a+\". Command cannot follow comma\");if(this.canParseCommandOrComma=!1,\"z\"!==n&&\"Z\"!==n)if(\"h\"===n||\"H\"===n)this.curCommandType=_.HORIZ_LINE_TO,this.curCommandRelative=\"h\"===n;else if(\"v\"===n||\"V\"===n)this.curCommandType=_.VERT_LINE_TO,this.curCommandRelative=\"v\"===n;else if(\"m\"===n||\"M\"===n)this.curCommandType=_.MOVE_TO,this.curCommandRelative=\"m\"===n;else if(\"l\"===n||\"L\"===n)this.curCommandType=_.LINE_TO,this.curCommandRelative=\"l\"===n;else if(\"c\"===n||\"C\"===n)this.curCommandType=_.CURVE_TO,this.curCommandRelative=\"c\"===n;else if(\"s\"===n||\"S\"===n)this.curCommandType=_.SMOOTH_CURVE_TO,this.curCommandRelative=\"s\"===n;else if(\"q\"===n||\"Q\"===n)this.curCommandType=_.QUAD_TO,this.curCommandRelative=\"q\"===n;else if(\"t\"===n||\"T\"===n)this.curCommandType=_.SMOOTH_QUAD_TO,this.curCommandRelative=\"t\"===n;else{if(\"a\"!==n&&\"A\"!==n)throw new SyntaxError('Unexpected character \"'+n+'\" at index '+a+\".\");this.curCommandType=_.ARC,this.curCommandRelative=\"a\"===n}else r.push({type:_.CLOSE_PATH}),this.canParseCommandOrComma=!0,this.curCommandType=-1}else this.curNumber=n,this.curNumberHasDecimal=\".\"===n}else this.curNumber+=n,this.curNumberHasDecimal=!0;else this.curNumber+=n;else this.curNumber+=n,this.curNumberHasExp=!0;else this.curNumber+=n,this.curNumberHasExpDigits=this.curNumberHasExp}return r},e.prototype.transform=function(t){return Object.create(this,{parse:{value:function(r,e){void 0===e&&(e=[]);for(var i=0,a=Object.getPrototypeOf(this).parse.call(this,r);i<a.length;i++){var n=a[i],o=t(n);Array.isArray(o)?e.push.apply(e,o):e.push(o)}return e}}})},e}(l),_=function(t){function i(r){var e=t.call(this)||this;return e.commands=\"string\"==typeof r?i.parse(r):r,e}return r(i,t),i.prototype.encode=function(){return i.encode(this.commands)},i.prototype.getBounds=function(){var t=u.CALCULATE_BOUNDS();return this.transform(t),t},i.prototype.transform=function(t){for(var r=[],e=0,i=this.commands;e<i.length;e++){var a=t(i[e]);Array.isArray(a)?r.push.apply(r,a):r.push(a)}return this.commands=r,this},i.encode=function(t){return e(t)},i.parse=function(t){var r=new f,e=[];return r.parse(t,e),r.finish(e),e},i.CLOSE_PATH=1,i.MOVE_TO=2,i.HORIZ_LINE_TO=4,i.VERT_LINE_TO=8,i.LINE_TO=16,i.CURVE_TO=32,i.SMOOTH_CURVE_TO=64,i.QUAD_TO=128,i.SMOOTH_QUAD_TO=256,i.ARC=512,i.LINE_COMMANDS=i.LINE_TO|i.HORIZ_LINE_TO|i.VERT_LINE_TO,i.DRAWING_COMMANDS=i.HORIZ_LINE_TO|i.VERT_LINE_TO|i.LINE_TO|i.CURVE_TO|i.SMOOTH_CURVE_TO|i.QUAD_TO|i.SMOOTH_QUAD_TO|i.ARC,i}(l),N=((O={})[_.MOVE_TO]=2,O[_.LINE_TO]=2,O[_.HORIZ_LINE_TO]=1,O[_.VERT_LINE_TO]=1,O[_.CLOSE_PATH]=0,O[_.QUAD_TO]=4,O[_.SMOOTH_QUAD_TO]=2,O[_.CURVE_TO]=6,O[_.SMOOTH_CURVE_TO]=4,O[_.ARC]=7,O);export{N as COMMAND_ARG_COUNTS,_ as SVGPathData,f as SVGPathDataParser,u as SVGPathDataTransformer,e as encodeSVGPath};\n//# sourceMappingURL=SVGPathData.module.js.map\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\n/* eslint-disable no-bitwise -- used for calculations */\n\n/* eslint-disable unicorn/prefer-query-selector -- aiming at\n backward-compatibility */\n\n/**\n* StackBlur - a fast almost Gaussian Blur For Canvas\n*\n* In case you find this class useful - especially in commercial projects -\n* I am not totally unhappy for a small donation to my PayPal account\n* mario@quasimondo.de\n*\n* Or support me on flattr:\n* {@link https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript}.\n*\n* @module StackBlur\n* @author Mario Klingemann\n* Contact: mario@quasimondo.com\n* Website: {@link http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html}\n* Twitter: @quasimondo\n*\n* @copyright (c) 2010 Mario Klingemann\n*\n* Permission is hereby granted, free of charge, to any person\n* obtaining a copy of this software and associated documentation\n* files (the \"Software\"), to deal in the Software without\n* restriction, including without limitation the rights to use,\n* copy, modify, merge, publish, distribute, sublicense, and/or sell\n* copies of the Software, and to permit persons to whom the\n* Software is furnished to do so, subject to the following\n* conditions:\n*\n* The above copyright notice and this permission notice shall be\n* included in all copies or substantial portions of the Software.\n*\n* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n* OTHER DEALINGS IN THE SOFTWARE.\n*/\nvar mulTable = [512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259];\nvar shgTable = [9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24];\n/**\n * @param {string|HTMLImageElement} img\n * @param {string|HTMLCanvasElement} canvas\n * @param {Float} radius\n * @param {boolean} blurAlphaChannel\n * @param {boolean} useOffset\n * @param {boolean} skipStyles\n * @returns {undefined}\n */\n\nfunction processImage(img, canvas, radius, blurAlphaChannel, useOffset, skipStyles) {\n if (typeof img === 'string') {\n img = document.getElementById(img);\n }\n\n if (!img || Object.prototype.toString.call(img).slice(8, -1) === 'HTMLImageElement' && !('naturalWidth' in img)) {\n return;\n }\n\n var dimensionType = useOffset ? 'offset' : 'natural';\n var w = img[dimensionType + 'Width'];\n var h = img[dimensionType + 'Height']; // add ImageBitmap support,can blur texture source\n\n if (Object.prototype.toString.call(img).slice(8, -1) === 'ImageBitmap') {\n w = img.width;\n h = img.height;\n }\n\n if (typeof canvas === 'string') {\n canvas = document.getElementById(canvas);\n }\n\n if (!canvas || !('getContext' in canvas)) {\n return;\n }\n\n if (!skipStyles) {\n canvas.style.width = w + 'px';\n canvas.style.height = h + 'px';\n }\n\n canvas.width = w;\n canvas.height = h;\n var context = canvas.getContext('2d');\n context.clearRect(0, 0, w, h);\n context.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight, 0, 0, w, h);\n\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n if (blurAlphaChannel) {\n processCanvasRGBA(canvas, 0, 0, w, h, radius);\n } else {\n processCanvasRGB(canvas, 0, 0, w, h, radius);\n }\n}\n/**\n * @param {string|HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @throws {Error|TypeError}\n * @returns {ImageData} See {@link https://html.spec.whatwg.org/multipage/canvas.html#imagedata}\n */\n\n\nfunction getImageDataFromCanvas(canvas, topX, topY, width, height) {\n if (typeof canvas === 'string') {\n canvas = document.getElementById(canvas);\n }\n\n if (!canvas || _typeof(canvas) !== 'object' || !('getContext' in canvas)) {\n throw new TypeError('Expecting canvas with `getContext` method ' + 'in processCanvasRGB(A) calls!');\n }\n\n var context = canvas.getContext('2d');\n\n try {\n return context.getImageData(topX, topY, width, height);\n } catch (e) {\n throw new Error('unable to access image data: ' + e);\n }\n}\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\n\n\nfunction processCanvasRGBA(canvas, topX, topY, width, height, radius) {\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n radius |= 0;\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n imageData = processImageDataRGBA(imageData, topX, topY, width, height, radius);\n canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\n\n\nfunction processImageDataRGBA(imageData, topX, topY, width, height, radius) {\n var pixels = imageData.data;\n var div = 2 * radius + 1; // const w4 = width << 2;\n\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n var stackStart = new BlurStack();\n var stack = stackStart;\n var stackEnd;\n\n for (var i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n\n stack.next = stackStart;\n var stackIn = null,\n stackOut = null,\n yw = 0,\n yi = 0;\n var mulSum = mulTable[radius];\n var shgSum = shgTable[radius];\n\n for (var y = 0; y < height; y++) {\n stack = stackStart;\n var pr = pixels[yi],\n pg = pixels[yi + 1],\n pb = pixels[yi + 2],\n pa = pixels[yi + 3];\n\n for (var _i = 0; _i < radiusPlus1; _i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n\n var rInSum = 0,\n gInSum = 0,\n bInSum = 0,\n aInSum = 0,\n rOutSum = radiusPlus1 * pr,\n gOutSum = radiusPlus1 * pg,\n bOutSum = radiusPlus1 * pb,\n aOutSum = radiusPlus1 * pa,\n rSum = sumFactor * pr,\n gSum = sumFactor * pg,\n bSum = sumFactor * pb,\n aSum = sumFactor * pa;\n\n for (var _i2 = 1; _i2 < radiusPlus1; _i2++) {\n var p = yi + ((widthMinus1 < _i2 ? widthMinus1 : _i2) << 2);\n var r = pixels[p],\n g = pixels[p + 1],\n b = pixels[p + 2],\n a = pixels[p + 3];\n var rbs = radiusPlus1 - _i2;\n rSum += (stack.r = r) * rbs;\n gSum += (stack.g = g) * rbs;\n bSum += (stack.b = b) * rbs;\n aSum += (stack.a = a) * rbs;\n rInSum += r;\n gInSum += g;\n bInSum += b;\n aInSum += a;\n stack = stack.next;\n }\n\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var x = 0; x < width; x++) {\n var paInitial = aSum * mulSum >>> shgSum;\n pixels[yi + 3] = paInitial;\n\n if (paInitial !== 0) {\n var _a2 = 255 / paInitial;\n\n pixels[yi] = (rSum * mulSum >>> shgSum) * _a2;\n pixels[yi + 1] = (gSum * mulSum >>> shgSum) * _a2;\n pixels[yi + 2] = (bSum * mulSum >>> shgSum) * _a2;\n } else {\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n }\n\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n aSum -= aOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n aOutSum -= stackIn.a;\n\n var _p = x + radius + 1;\n\n _p = yw + (_p < widthMinus1 ? _p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[_p];\n gInSum += stackIn.g = pixels[_p + 1];\n bInSum += stackIn.b = pixels[_p + 2];\n aInSum += stackIn.a = pixels[_p + 3];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n aSum += aInSum;\n stackIn = stackIn.next;\n var _stackOut = stackOut,\n _r = _stackOut.r,\n _g = _stackOut.g,\n _b = _stackOut.b,\n _a = _stackOut.a;\n rOutSum += _r;\n gOutSum += _g;\n bOutSum += _b;\n aOutSum += _a;\n rInSum -= _r;\n gInSum -= _g;\n bInSum -= _b;\n aInSum -= _a;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x = 0; _x < width; _x++) {\n yi = _x << 2;\n\n var _pr = pixels[yi],\n _pg = pixels[yi + 1],\n _pb = pixels[yi + 2],\n _pa = pixels[yi + 3],\n _rOutSum = radiusPlus1 * _pr,\n _gOutSum = radiusPlus1 * _pg,\n _bOutSum = radiusPlus1 * _pb,\n _aOutSum = radiusPlus1 * _pa,\n _rSum = sumFactor * _pr,\n _gSum = sumFactor * _pg,\n _bSum = sumFactor * _pb,\n _aSum = sumFactor * _pa;\n\n stack = stackStart;\n\n for (var _i3 = 0; _i3 < radiusPlus1; _i3++) {\n stack.r = _pr;\n stack.g = _pg;\n stack.b = _pb;\n stack.a = _pa;\n stack = stack.next;\n }\n\n var yp = width;\n var _gInSum = 0,\n _bInSum = 0,\n _aInSum = 0,\n _rInSum = 0;\n\n for (var _i4 = 1; _i4 <= radius; _i4++) {\n yi = yp + _x << 2;\n\n var _rbs = radiusPlus1 - _i4;\n\n _rSum += (stack.r = _pr = pixels[yi]) * _rbs;\n _gSum += (stack.g = _pg = pixels[yi + 1]) * _rbs;\n _bSum += (stack.b = _pb = pixels[yi + 2]) * _rbs;\n _aSum += (stack.a = _pa = pixels[yi + 3]) * _rbs;\n _rInSum += _pr;\n _gInSum += _pg;\n _bInSum += _pb;\n _aInSum += _pa;\n stack = stack.next;\n\n if (_i4 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y = 0; _y < height; _y++) {\n var _p2 = yi << 2;\n\n pixels[_p2 + 3] = _pa = _aSum * mulSum >>> shgSum;\n\n if (_pa > 0) {\n _pa = 255 / _pa;\n pixels[_p2] = (_rSum * mulSum >>> shgSum) * _pa;\n pixels[_p2 + 1] = (_gSum * mulSum >>> shgSum) * _pa;\n pixels[_p2 + 2] = (_bSum * mulSum >>> shgSum) * _pa;\n } else {\n pixels[_p2] = pixels[_p2 + 1] = pixels[_p2 + 2] = 0;\n }\n\n _rSum -= _rOutSum;\n _gSum -= _gOutSum;\n _bSum -= _bOutSum;\n _aSum -= _aOutSum;\n _rOutSum -= stackIn.r;\n _gOutSum -= stackIn.g;\n _bOutSum -= stackIn.b;\n _aOutSum -= stackIn.a;\n _p2 = _x + ((_p2 = _y + radiusPlus1) < heightMinus1 ? _p2 : heightMinus1) * width << 2;\n _rSum += _rInSum += stackIn.r = pixels[_p2];\n _gSum += _gInSum += stackIn.g = pixels[_p2 + 1];\n _bSum += _bInSum += stackIn.b = pixels[_p2 + 2];\n _aSum += _aInSum += stackIn.a = pixels[_p2 + 3];\n stackIn = stackIn.next;\n _rOutSum += _pr = stackOut.r;\n _gOutSum += _pg = stackOut.g;\n _bOutSum += _pb = stackOut.b;\n _aOutSum += _pa = stackOut.a;\n _rInSum -= _pr;\n _gInSum -= _pg;\n _bInSum -= _pb;\n _aInSum -= _pa;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\n\n\nfunction processCanvasRGB(canvas, topX, topY, width, height, radius) {\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n radius |= 0;\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n imageData = processImageDataRGB(imageData, topX, topY, width, height, radius);\n canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\n\n\nfunction processImageDataRGB(imageData, topX, topY, width, height, radius) {\n var pixels = imageData.data;\n var div = 2 * radius + 1; // const w4 = width << 2;\n\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n var stackStart = new BlurStack();\n var stack = stackStart;\n var stackEnd;\n\n for (var i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n\n stack.next = stackStart;\n var stackIn = null;\n var stackOut = null;\n var mulSum = mulTable[radius];\n var shgSum = shgTable[radius];\n var p, rbs;\n var yw = 0,\n yi = 0;\n\n for (var y = 0; y < height; y++) {\n var pr = pixels[yi],\n pg = pixels[yi + 1],\n pb = pixels[yi + 2],\n rOutSum = radiusPlus1 * pr,\n gOutSum = radiusPlus1 * pg,\n bOutSum = radiusPlus1 * pb,\n rSum = sumFactor * pr,\n gSum = sumFactor * pg,\n bSum = sumFactor * pb;\n stack = stackStart;\n\n for (var _i5 = 0; _i5 < radiusPlus1; _i5++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack = stack.next;\n }\n\n var rInSum = 0,\n gInSum = 0,\n bInSum = 0;\n\n for (var _i6 = 1; _i6 < radiusPlus1; _i6++) {\n p = yi + ((widthMinus1 < _i6 ? widthMinus1 : _i6) << 2);\n rSum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - _i6);\n gSum += (stack.g = pg = pixels[p + 1]) * rbs;\n bSum += (stack.b = pb = pixels[p + 2]) * rbs;\n rInSum += pr;\n gInSum += pg;\n bInSum += pb;\n stack = stack.next;\n }\n\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var x = 0; x < width; x++) {\n pixels[yi] = rSum * mulSum >>> shgSum;\n pixels[yi + 1] = gSum * mulSum >>> shgSum;\n pixels[yi + 2] = bSum * mulSum >>> shgSum;\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n p = yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[p];\n gInSum += stackIn.g = pixels[p + 1];\n bInSum += stackIn.b = pixels[p + 2];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n stackIn = stackIn.next;\n rOutSum += pr = stackOut.r;\n gOutSum += pg = stackOut.g;\n bOutSum += pb = stackOut.b;\n rInSum -= pr;\n gInSum -= pg;\n bInSum -= pb;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x2 = 0; _x2 < width; _x2++) {\n yi = _x2 << 2;\n\n var _pr2 = pixels[yi],\n _pg2 = pixels[yi + 1],\n _pb2 = pixels[yi + 2],\n _rOutSum2 = radiusPlus1 * _pr2,\n _gOutSum2 = radiusPlus1 * _pg2,\n _bOutSum2 = radiusPlus1 * _pb2,\n _rSum2 = sumFactor * _pr2,\n _gSum2 = sumFactor * _pg2,\n _bSum2 = sumFactor * _pb2;\n\n stack = stackStart;\n\n for (var _i7 = 0; _i7 < radiusPlus1; _i7++) {\n stack.r = _pr2;\n stack.g = _pg2;\n stack.b = _pb2;\n stack = stack.next;\n }\n\n var _rInSum2 = 0,\n _gInSum2 = 0,\n _bInSum2 = 0;\n\n for (var _i8 = 1, yp = width; _i8 <= radius; _i8++) {\n yi = yp + _x2 << 2;\n _rSum2 += (stack.r = _pr2 = pixels[yi]) * (rbs = radiusPlus1 - _i8);\n _gSum2 += (stack.g = _pg2 = pixels[yi + 1]) * rbs;\n _bSum2 += (stack.b = _pb2 = pixels[yi + 2]) * rbs;\n _rInSum2 += _pr2;\n _gInSum2 += _pg2;\n _bInSum2 += _pb2;\n stack = stack.next;\n\n if (_i8 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x2;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y2 = 0; _y2 < height; _y2++) {\n p = yi << 2;\n pixels[p] = _rSum2 * mulSum >>> shgSum;\n pixels[p + 1] = _gSum2 * mulSum >>> shgSum;\n pixels[p + 2] = _bSum2 * mulSum >>> shgSum;\n _rSum2 -= _rOutSum2;\n _gSum2 -= _gOutSum2;\n _bSum2 -= _bOutSum2;\n _rOutSum2 -= stackIn.r;\n _gOutSum2 -= stackIn.g;\n _bOutSum2 -= stackIn.b;\n p = _x2 + ((p = _y2 + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width << 2;\n _rSum2 += _rInSum2 += stackIn.r = pixels[p];\n _gSum2 += _gInSum2 += stackIn.g = pixels[p + 1];\n _bSum2 += _bInSum2 += stackIn.b = pixels[p + 2];\n stackIn = stackIn.next;\n _rOutSum2 += _pr2 = stackOut.r;\n _gOutSum2 += _pg2 = stackOut.g;\n _bOutSum2 += _pb2 = stackOut.b;\n _rInSum2 -= _pr2;\n _gInSum2 -= _pg2;\n _bInSum2 -= _pb2;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n *\n */\n\n\nvar BlurStack =\n/**\n * Set properties.\n */\nfunction BlurStack() {\n _classCallCheck(this, BlurStack);\n\n this.r = 0;\n this.g = 0;\n this.b = 0;\n this.a = 0;\n this.next = null;\n};\n\nexport { BlurStack, processCanvasRGB as canvasRGB, processCanvasRGBA as canvasRGBA, processImage as image, processImageDataRGB as imageDataRGB, processImageDataRGBA as imageDataRGBA };\n","import 'core-js/modules/es.promise.js';\nimport _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';\nimport 'core-js/modules/es.string.match.js';\nimport 'core-js/modules/es.string.replace.js';\nimport 'core-js/modules/es.string.starts-with.js';\nimport 'core-js/modules/es.array.iterator.js';\nimport 'core-js/modules/web.dom-collections.iterator.js';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport 'core-js/modules/es.array.reduce.js';\nimport 'core-js/modules/es.string.ends-with.js';\nimport 'core-js/modules/es.string.split.js';\nimport requestAnimationFrame from 'raf';\nimport 'core-js/modules/es.string.trim.js';\nimport RGBColor from 'rgbcolor';\nimport 'core-js/modules/es.array.index-of.js';\nimport 'core-js/modules/es.string.includes.js';\nimport 'core-js/modules/es.array.reverse.js';\nimport { SVGPathData } from 'svg-pathdata';\nimport 'core-js/modules/es.regexp.to-string.js';\nimport { canvasRGBA } from 'stackblur-canvas';\n\n/**\r\n * Options preset for `OffscreenCanvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @returns Preset object.\r\n */\nfunction offscreen() {\n var {\n DOMParser: DOMParserFallback\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var preset = {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser: DOMParserFallback,\n\n createCanvas(width, height) {\n return new OffscreenCanvas(width, height);\n },\n\n createImage(url) {\n return _asyncToGenerator(function* () {\n var response = yield fetch(url);\n var blob = yield response.blob();\n var img = yield createImageBitmap(blob);\n return img;\n })();\n }\n\n };\n\n if (typeof DOMParser !== 'undefined' || typeof DOMParserFallback === 'undefined') {\n Reflect.deleteProperty(preset, 'DOMParser');\n }\n\n return preset;\n}\n\n/**\r\n * Options preset for `node-canvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @param config.canvas - `node-canvas` exports.\r\n * @param config.fetch - WHATWG-compatible `fetch` function.\r\n * @returns Preset object.\r\n */\nfunction node(_ref) {\n var {\n DOMParser,\n canvas,\n fetch\n } = _ref;\n return {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser,\n fetch,\n createCanvas: canvas.createCanvas,\n createImage: canvas.loadImage\n };\n}\n\nvar index = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\toffscreen: offscreen,\n\tnode: node\n});\n\n/**\r\n * HTML-safe compress white-spaces.\r\n * @param str - String to compress.\r\n * @returns String.\r\n */\nfunction compressSpaces(str) {\n return str.replace(/(?!\\u3000)\\s+/gm, ' ');\n}\n/**\r\n * HTML-safe left trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimLeft(str) {\n return str.replace(/^[\\n \\t]+/, '');\n}\n/**\r\n * HTML-safe right trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimRight(str) {\n return str.replace(/[\\n \\t]+$/, '');\n}\n/**\r\n * String to numbers array.\r\n * @param str - Numbers string.\r\n * @returns Numbers array.\r\n */\n\nfunction toNumbers(str) {\n var matches = (str || '').match(/-?(\\d+(?:\\.\\d*(?:[eE][+-]?\\d+)?)?|\\.\\d+)(?=\\D|$)/gm) || [];\n return matches.map(parseFloat);\n} // Microsoft Edge fix\n\nvar allUppercase = /^[A-Z-]+$/;\n/**\r\n * Normalize attribute name.\r\n * @param name - Attribute name.\r\n * @returns Normalized attribute name.\r\n */\n\nfunction normalizeAttributeName(name) {\n if (allUppercase.test(name)) {\n return name.toLowerCase();\n }\n\n return name;\n}\n/**\r\n * Parse external URL.\r\n * @param url - CSS url string.\r\n * @returns Parsed URL.\r\n */\n\nfunction parseExternalUrl(url) {\n // single quotes [2]\n // v double quotes [3]\n // v v no quotes [4]\n // v v v\n var urlMatch = /url\\(('([^']+)'|\"([^\"]+)\"|([^'\")]+))\\)/.exec(url) || [];\n return urlMatch[2] || urlMatch[3] || urlMatch[4];\n}\n/**\r\n * Transform floats to integers in rgb colors.\r\n * @param color - Color to normalize.\r\n * @returns Normalized color.\r\n */\n\nfunction normalizeColor(color) {\n if (!color.startsWith('rgb')) {\n return color;\n }\n\n var rgbParts = 3;\n var normalizedColor = color.replace(/\\d+(\\.\\d+)?/g, (num, isFloat) => rgbParts-- && isFloat ? String(Math.round(parseFloat(num))) : num);\n return normalizedColor;\n}\n\n// slightly modified version of https://github.com/keeganstreet/specificity/blob/master/specificity.js\nvar attributeRegex = /(\\[[^\\]]+\\])/g;\nvar idRegex = /(#[^\\s+>~.[:]+)/g;\nvar classRegex = /(\\.[^\\s+>~.[:]+)/g;\nvar pseudoElementRegex = /(::[^\\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi;\nvar pseudoClassWithBracketsRegex = /(:[\\w-]+\\([^)]*\\))/gi;\nvar pseudoClassRegex = /(:[^\\s+>~.[:]+)/g;\nvar elementRegex = /([^\\s+>~.[:]+)/g;\n\nfunction findSelectorMatch(selector, regex) {\n var matches = regex.exec(selector);\n\n if (!matches) {\n return [selector, 0];\n }\n\n return [selector.replace(regex, ' '), matches.length];\n}\n/**\r\n * Measure selector specificity.\r\n * @param selector - Selector to measure.\r\n * @returns Specificity.\r\n */\n\n\nfunction getSelectorSpecificity(selector) {\n var specificity = [0, 0, 0];\n var currentSelector = selector.replace(/:not\\(([^)]*)\\)/g, ' $1 ').replace(/{[\\s\\S]*/gm, ' ');\n var delta = 0;\n [currentSelector, delta] = findSelectorMatch(currentSelector, attributeRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, idRegex);\n specificity[0] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, classRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoElementRegex);\n specificity[2] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassWithBracketsRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassRegex);\n specificity[1] += delta;\n currentSelector = currentSelector.replace(/[*\\s+>~]/g, ' ').replace(/[#.]/g, ' ');\n [currentSelector, delta] = findSelectorMatch(currentSelector, elementRegex); // lgtm [js/useless-assignment-to-local]\n\n specificity[2] += delta;\n return specificity.join('');\n}\n\nvar PSEUDO_ZERO = .00000001;\n/**\r\n * Vector magnitude.\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorMagnitude(v) {\n return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2));\n}\n/**\r\n * Ratio between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsRatio(u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vectorMagnitude(u) * vectorMagnitude(v));\n}\n/**\r\n * Angle between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vectorsRatio(u, v));\n}\nfunction CB1(t) {\n return t * t * t;\n}\nfunction CB2(t) {\n return 3 * t * t * (1 - t);\n}\nfunction CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n}\nfunction CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n}\nfunction QB1(t) {\n return t * t;\n}\nfunction QB2(t) {\n return 2 * t * (1 - t);\n}\nfunction QB3(t) {\n return (1 - t) * (1 - t);\n}\n\nclass Property {\n constructor(document, name, value) {\n this.document = document;\n this.name = name;\n this.value = value;\n this.isNormalizedColor = false;\n }\n\n static empty(document) {\n return new Property(document, 'EMPTY', '');\n }\n\n split() {\n var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ' ';\n var {\n document,\n name\n } = this;\n return compressSpaces(this.getString()).trim().split(separator).map(value => new Property(document, name, value));\n }\n\n hasValue(zeroIsValue) {\n var {\n value\n } = this;\n return value !== null && value !== '' && (zeroIsValue || value !== 0) && typeof value !== 'undefined';\n }\n\n isString(regexp) {\n var {\n value\n } = this;\n var result = typeof value === 'string';\n\n if (!result || !regexp) {\n return result;\n }\n\n return regexp.test(value);\n }\n\n isUrlDefinition() {\n return this.isString(/^url\\(/);\n }\n\n isPixels() {\n if (!this.hasValue()) {\n return false;\n }\n\n var asString = this.getString();\n\n switch (true) {\n case asString.endsWith('px'):\n case /^[0-9]+$/.test(asString):\n return true;\n\n default:\n return false;\n }\n }\n\n setValue(value) {\n this.value = value;\n return this;\n }\n\n getValue(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return this.value;\n }\n\n return def;\n }\n\n getNumber(def) {\n if (!this.hasValue()) {\n if (typeof def === 'undefined') {\n return 0;\n }\n\n return parseFloat(def);\n }\n\n var {\n value\n } = this;\n var n = parseFloat(value);\n\n if (this.isString(/%$/)) {\n n /= 100.0;\n }\n\n return n;\n }\n\n getString(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return typeof this.value === 'undefined' ? '' : String(this.value);\n }\n\n return String(def);\n }\n\n getColor(def) {\n var color = this.getString(def);\n\n if (this.isNormalizedColor) {\n return color;\n }\n\n this.isNormalizedColor = true;\n color = normalizeColor(color);\n this.value = color;\n return color;\n }\n\n getDpi() {\n return 96.0; // TODO: compute?\n }\n\n getRem() {\n return this.document.rootEmSize;\n }\n\n getEm() {\n return this.document.emSize;\n }\n\n getUnits() {\n return this.getString().replace(/[0-9.-]/g, '');\n }\n\n getPixels(axisOrIsFontSize) {\n var processPercent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!this.hasValue()) {\n return 0;\n }\n\n var [axis, isFontSize] = typeof axisOrIsFontSize === 'boolean' ? [undefined, axisOrIsFontSize] : [axisOrIsFontSize];\n var {\n viewPort\n } = this.document.screen;\n\n switch (true) {\n case this.isString(/vmin$/):\n return this.getNumber() / 100.0 * Math.min(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vmax$/):\n return this.getNumber() / 100.0 * Math.max(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vw$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('x');\n\n case this.isString(/vh$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('y');\n\n case this.isString(/rem$/):\n return this.getNumber() * this.getRem();\n\n case this.isString(/em$/):\n return this.getNumber() * this.getEm();\n\n case this.isString(/ex$/):\n return this.getNumber() * this.getEm() / 2.0;\n\n case this.isString(/px$/):\n return this.getNumber();\n\n case this.isString(/pt$/):\n return this.getNumber() * this.getDpi() * (1.0 / 72.0);\n\n case this.isString(/pc$/):\n return this.getNumber() * 15;\n\n case this.isString(/cm$/):\n return this.getNumber() * this.getDpi() / 2.54;\n\n case this.isString(/mm$/):\n return this.getNumber() * this.getDpi() / 25.4;\n\n case this.isString(/in$/):\n return this.getNumber() * this.getDpi();\n\n case this.isString(/%$/) && isFontSize:\n return this.getNumber() * this.getEm();\n\n case this.isString(/%$/):\n return this.getNumber() * viewPort.computeSize(axis);\n\n default:\n {\n var n = this.getNumber();\n\n if (processPercent && n < 1.0) {\n return n * viewPort.computeSize(axis);\n }\n\n return n;\n }\n }\n }\n\n getMilliseconds() {\n if (!this.hasValue()) {\n return 0;\n }\n\n if (this.isString(/ms$/)) {\n return this.getNumber();\n }\n\n return this.getNumber() * 1000;\n }\n\n getRadians() {\n if (!this.hasValue()) {\n return 0;\n }\n\n switch (true) {\n case this.isString(/deg$/):\n return this.getNumber() * (Math.PI / 180.0);\n\n case this.isString(/grad$/):\n return this.getNumber() * (Math.PI / 200.0);\n\n case this.isString(/rad$/):\n return this.getNumber();\n\n default:\n return this.getNumber() * (Math.PI / 180.0);\n }\n }\n\n getDefinition() {\n var asString = this.getString();\n var name = /#([^)'\"]+)/.exec(asString);\n\n if (name) {\n name = name[1];\n }\n\n if (!name) {\n name = asString;\n }\n\n return this.document.definitions[name];\n }\n\n getFillStyleDefinition(element, opacity) {\n var def = this.getDefinition();\n\n if (!def) {\n return null;\n } // gradient\n\n\n if (typeof def.createGradient === 'function') {\n return def.createGradient(this.document.ctx, element, opacity);\n } // pattern\n\n\n if (typeof def.createPattern === 'function') {\n if (def.getHrefAttribute().hasValue()) {\n var patternTransform = def.getAttribute('patternTransform');\n def = def.getHrefAttribute().getDefinition();\n\n if (patternTransform.hasValue()) {\n def.getAttribute('patternTransform', true).setValue(patternTransform.value);\n }\n }\n\n return def.createPattern(this.document.ctx, element, opacity);\n }\n\n return null;\n }\n\n getTextBaseline() {\n if (!this.hasValue()) {\n return null;\n }\n\n return Property.textBaselineMapping[this.getString()];\n }\n\n addOpacity(opacity) {\n var value = this.getColor();\n var len = value.length;\n var commas = 0; // Simulate old RGBColor version, which can't parse rgba.\n\n for (var i = 0; i < len; i++) {\n if (value[i] === ',') {\n commas++;\n }\n\n if (commas === 3) {\n break;\n }\n }\n\n if (opacity.hasValue() && this.isString() && commas !== 3) {\n var color = new RGBColor(value);\n\n if (color.ok) {\n color.alpha = opacity.getNumber();\n value = color.toRGBA();\n }\n }\n\n return new Property(this.document, this.name, value);\n }\n\n}\nProperty.textBaselineMapping = {\n 'baseline': 'alphabetic',\n 'before-edge': 'top',\n 'text-before-edge': 'top',\n 'middle': 'middle',\n 'central': 'middle',\n 'after-edge': 'bottom',\n 'text-after-edge': 'bottom',\n 'ideographic': 'ideographic',\n 'alphabetic': 'alphabetic',\n 'hanging': 'hanging',\n 'mathematical': 'alphabetic'\n};\n\nclass ViewPort {\n constructor() {\n this.viewPorts = [];\n }\n\n clear() {\n this.viewPorts = [];\n }\n\n setCurrent(width, height) {\n this.viewPorts.push({\n width,\n height\n });\n }\n\n removeCurrent() {\n this.viewPorts.pop();\n }\n\n getCurrent() {\n var {\n viewPorts\n } = this;\n return viewPorts[viewPorts.length - 1];\n }\n\n get width() {\n return this.getCurrent().width;\n }\n\n get height() {\n return this.getCurrent().height;\n }\n\n computeSize(d) {\n if (typeof d === 'number') {\n return d;\n }\n\n if (d === 'x') {\n return this.width;\n }\n\n if (d === 'y') {\n return this.height;\n }\n\n return Math.sqrt(Math.pow(this.width, 2) + Math.pow(this.height, 2)) / Math.sqrt(2);\n }\n\n}\n\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n\n static parse(point) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var [x = defaultValue, y = defaultValue] = toNumbers(point);\n return new Point(x, y);\n }\n\n static parseScale(scale) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var [x = defaultValue, y = x] = toNumbers(scale);\n return new Point(x, y);\n }\n\n static parsePath(path) {\n var points = toNumbers(path);\n var len = points.length;\n var pathPoints = [];\n\n for (var i = 0; i < len; i += 2) {\n pathPoints.push(new Point(points[i], points[i + 1]));\n }\n\n return pathPoints;\n }\n\n angleTo(point) {\n return Math.atan2(point.y - this.y, point.x - this.x);\n }\n\n applyTransform(transform) {\n var {\n x,\n y\n } = this;\n var xp = x * transform[0] + y * transform[2] + transform[4];\n var yp = x * transform[1] + y * transform[3] + transform[5];\n this.x = xp;\n this.y = yp;\n }\n\n}\n\nclass Mouse {\n constructor(screen) {\n this.screen = screen;\n this.working = false;\n this.events = [];\n this.eventElements = []; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onClick = this.onClick.bind(this); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onMouseMove = this.onMouseMove.bind(this);\n }\n\n isWorking() {\n return this.working;\n }\n\n start() {\n if (this.working) {\n return;\n }\n\n var {\n screen,\n onClick,\n onMouseMove\n } = this;\n var canvas = screen.ctx.canvas;\n canvas.onclick = onClick;\n canvas.onmousemove = onMouseMove;\n this.working = true;\n }\n\n stop() {\n if (!this.working) {\n return;\n }\n\n var canvas = this.screen.ctx.canvas;\n this.working = false;\n canvas.onclick = null;\n canvas.onmousemove = null;\n }\n\n hasEvents() {\n return this.working && this.events.length > 0;\n }\n\n runEvents() {\n if (!this.working) {\n return;\n }\n\n var {\n screen: document,\n events,\n eventElements\n } = this;\n var {\n style\n } = document.ctx.canvas;\n\n if (style) {\n style.cursor = '';\n }\n\n events.forEach((_ref, i) => {\n var {\n run\n } = _ref;\n var element = eventElements[i];\n\n while (element) {\n run(element);\n element = element.parent;\n }\n }); // done running, clear\n\n this.events = [];\n this.eventElements = [];\n }\n\n checkPath(element, ctx) {\n if (!this.working || !ctx) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref2, i) => {\n var {\n x,\n y\n } = _ref2;\n\n if (!eventElements[i] && ctx.isPointInPath && ctx.isPointInPath(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n checkBoundingBox(element, boundingBox) {\n if (!this.working || !boundingBox) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref3, i) => {\n var {\n x,\n y\n } = _ref3;\n\n if (!eventElements[i] && boundingBox.isPointInBox(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n mapXY(x, y) {\n var {\n window,\n ctx\n } = this.screen;\n var point = new Point(x, y);\n var element = ctx.canvas;\n\n while (element) {\n point.x -= element.offsetLeft;\n point.y -= element.offsetTop;\n element = element.offsetParent;\n }\n\n if (window.scrollX) {\n point.x += window.scrollX;\n }\n\n if (window.scrollY) {\n point.y += window.scrollY;\n }\n\n return point;\n }\n\n onClick(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onclick',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onClick) {\n eventTarget.onClick();\n }\n }\n\n });\n }\n\n onMouseMove(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onmousemove',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onMouseMove) {\n eventTarget.onMouseMove();\n }\n }\n\n });\n }\n\n}\n\nvar defaultWindow = typeof window !== 'undefined' ? window : null;\nvar defaultFetch$1 = typeof fetch !== 'undefined' ? fetch.bind(undefined) // `fetch` depends on context: `someObject.fetch(...)` will throw error.\n: null;\nclass Screen {\n constructor(ctx) {\n var {\n fetch = defaultFetch$1,\n window = defaultWindow\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.ctx = ctx;\n this.FRAMERATE = 30;\n this.MAX_VIRTUAL_PIXELS = 30000;\n this.CLIENT_WIDTH = 800;\n this.CLIENT_HEIGHT = 600;\n this.viewPort = new ViewPort();\n this.mouse = new Mouse(this);\n this.animations = [];\n this.waits = [];\n this.frameDuration = 0;\n this.isReadyLock = false;\n this.isFirstRender = true;\n this.intervalId = null;\n this.window = window;\n this.fetch = fetch;\n }\n\n wait(checker) {\n this.waits.push(checker);\n }\n\n ready() {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.readyPromise) {\n return Promise.resolve();\n }\n\n return this.readyPromise;\n }\n\n isReady() {\n if (this.isReadyLock) {\n return true;\n }\n\n var isReadyLock = this.waits.every(_ => _());\n\n if (isReadyLock) {\n this.waits = [];\n\n if (this.resolveReady) {\n this.resolveReady();\n }\n }\n\n this.isReadyLock = isReadyLock;\n return isReadyLock;\n }\n\n setDefaults(ctx) {\n // initial values and defaults\n ctx.strokeStyle = 'rgba(0,0,0,0)';\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n }\n\n setViewBox(_ref) {\n var {\n document,\n ctx,\n aspectRatio,\n width,\n desiredWidth,\n height,\n desiredHeight,\n minX = 0,\n minY = 0,\n refX,\n refY,\n clip = false,\n clipX = 0,\n clipY = 0\n } = _ref;\n // aspect ratio - http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute\n var cleanAspectRatio = compressSpaces(aspectRatio).replace(/^defer\\s/, ''); // ignore defer\n\n var [aspectRatioAlign, aspectRatioMeetOrSlice] = cleanAspectRatio.split(' ');\n var align = aspectRatioAlign || 'xMidYMid';\n var meetOrSlice = aspectRatioMeetOrSlice || 'meet'; // calculate scale\n\n var scaleX = width / desiredWidth;\n var scaleY = height / desiredHeight;\n var scaleMin = Math.min(scaleX, scaleY);\n var scaleMax = Math.max(scaleX, scaleY);\n var finalDesiredWidth = desiredWidth;\n var finalDesiredHeight = desiredHeight;\n\n if (meetOrSlice === 'meet') {\n finalDesiredWidth *= scaleMin;\n finalDesiredHeight *= scaleMin;\n }\n\n if (meetOrSlice === 'slice') {\n finalDesiredWidth *= scaleMax;\n finalDesiredHeight *= scaleMax;\n }\n\n var refXProp = new Property(document, 'refX', refX);\n var refYProp = new Property(document, 'refY', refY);\n var hasRefs = refXProp.hasValue() && refYProp.hasValue();\n\n if (hasRefs) {\n ctx.translate(-scaleMin * refXProp.getPixels('x'), -scaleMin * refYProp.getPixels('y'));\n }\n\n if (clip) {\n var scaledClipX = scaleMin * clipX;\n var scaledClipY = scaleMin * clipY;\n ctx.beginPath();\n ctx.moveTo(scaledClipX, scaledClipY);\n ctx.lineTo(width, scaledClipY);\n ctx.lineTo(width, height);\n ctx.lineTo(scaledClipX, height);\n ctx.closePath();\n ctx.clip();\n }\n\n if (!hasRefs) {\n var isMeetMinY = meetOrSlice === 'meet' && scaleMin === scaleY;\n var isSliceMaxY = meetOrSlice === 'slice' && scaleMax === scaleY;\n var isMeetMinX = meetOrSlice === 'meet' && scaleMin === scaleX;\n var isSliceMaxX = meetOrSlice === 'slice' && scaleMax === scaleX;\n\n if (align.startsWith('xMid') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width / 2.0 - finalDesiredWidth / 2.0, 0);\n }\n\n if (align.endsWith('YMid') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height / 2.0 - finalDesiredHeight / 2.0);\n }\n\n if (align.startsWith('xMax') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width - finalDesiredWidth, 0);\n }\n\n if (align.endsWith('YMax') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height - finalDesiredHeight);\n }\n } // scale\n\n\n switch (true) {\n case align === 'none':\n ctx.scale(scaleX, scaleY);\n break;\n\n case meetOrSlice === 'meet':\n ctx.scale(scaleMin, scaleMin);\n break;\n\n case meetOrSlice === 'slice':\n ctx.scale(scaleMax, scaleMax);\n break;\n } // translate\n\n\n ctx.translate(-minX, -minY);\n }\n\n start(element) {\n var {\n enableRedraw = false,\n ignoreMouse = false,\n ignoreAnimation = false,\n ignoreDimensions = false,\n ignoreClear = false,\n forceRedraw,\n scaleWidth,\n scaleHeight,\n offsetX,\n offsetY\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n FRAMERATE,\n mouse\n } = this;\n var frameDuration = 1000 / FRAMERATE;\n this.frameDuration = frameDuration;\n this.readyPromise = new Promise(resolve => {\n this.resolveReady = resolve;\n });\n\n if (this.isReady()) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n }\n\n if (!enableRedraw) {\n return;\n }\n\n var now = Date.now();\n var then = now;\n var delta = 0;\n\n var tick = () => {\n now = Date.now();\n delta = now - then;\n\n if (delta >= frameDuration) {\n then = now - delta % frameDuration;\n\n if (this.shouldUpdate(ignoreAnimation, forceRedraw)) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n mouse.runEvents();\n }\n }\n\n this.intervalId = requestAnimationFrame(tick);\n };\n\n if (!ignoreMouse) {\n mouse.start();\n }\n\n this.intervalId = requestAnimationFrame(tick);\n }\n\n stop() {\n if (this.intervalId) {\n requestAnimationFrame.cancel(this.intervalId);\n this.intervalId = null;\n }\n\n this.mouse.stop();\n }\n\n shouldUpdate(ignoreAnimation, forceRedraw) {\n // need update from animations?\n if (!ignoreAnimation) {\n var {\n frameDuration\n } = this;\n var shouldUpdate = this.animations.reduce((shouldUpdate, animation) => animation.update(frameDuration) || shouldUpdate, false);\n\n if (shouldUpdate) {\n return true;\n }\n } // need update from redraw?\n\n\n if (typeof forceRedraw === 'function' && forceRedraw()) {\n return true;\n }\n\n if (!this.isReadyLock && this.isReady()) {\n return true;\n } // need update from mouse events?\n\n\n if (this.mouse.hasEvents()) {\n return true;\n }\n\n return false;\n }\n\n render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY) {\n var {\n CLIENT_WIDTH,\n CLIENT_HEIGHT,\n viewPort,\n ctx,\n isFirstRender\n } = this;\n var canvas = ctx.canvas;\n viewPort.clear();\n\n if (canvas.width && canvas.height) {\n viewPort.setCurrent(canvas.width, canvas.height);\n } else {\n viewPort.setCurrent(CLIENT_WIDTH, CLIENT_HEIGHT);\n }\n\n var widthStyle = element.getStyle('width');\n var heightStyle = element.getStyle('height');\n\n if (!ignoreDimensions && (isFirstRender || typeof scaleWidth !== 'number' && typeof scaleHeight !== 'number')) {\n // set canvas size\n if (widthStyle.hasValue()) {\n canvas.width = widthStyle.getPixels('x');\n\n if (canvas.style) {\n canvas.style.width = \"\".concat(canvas.width, \"px\");\n }\n }\n\n if (heightStyle.hasValue()) {\n canvas.height = heightStyle.getPixels('y');\n\n if (canvas.style) {\n canvas.style.height = \"\".concat(canvas.height, \"px\");\n }\n }\n }\n\n var cWidth = canvas.clientWidth || canvas.width;\n var cHeight = canvas.clientHeight || canvas.height;\n\n if (ignoreDimensions && widthStyle.hasValue() && heightStyle.hasValue()) {\n cWidth = widthStyle.getPixels('x');\n cHeight = heightStyle.getPixels('y');\n }\n\n viewPort.setCurrent(cWidth, cHeight);\n\n if (typeof offsetX === 'number') {\n element.getAttribute('x', true).setValue(offsetX);\n }\n\n if (typeof offsetY === 'number') {\n element.getAttribute('y', true).setValue(offsetY);\n }\n\n if (typeof scaleWidth === 'number' || typeof scaleHeight === 'number') {\n var viewBox = toNumbers(element.getAttribute('viewBox').getString());\n var xRatio = 0;\n var yRatio = 0;\n\n if (typeof scaleWidth === 'number') {\n var _widthStyle = element.getStyle('width');\n\n if (_widthStyle.hasValue()) {\n xRatio = _widthStyle.getPixels('x') / scaleWidth;\n } else if (!isNaN(viewBox[2])) {\n xRatio = viewBox[2] / scaleWidth;\n }\n }\n\n if (typeof scaleHeight === 'number') {\n var _heightStyle = element.getStyle('height');\n\n if (_heightStyle.hasValue()) {\n yRatio = _heightStyle.getPixels('y') / scaleHeight;\n } else if (!isNaN(viewBox[3])) {\n yRatio = viewBox[3] / scaleHeight;\n }\n }\n\n if (!xRatio) {\n xRatio = yRatio;\n }\n\n if (!yRatio) {\n yRatio = xRatio;\n }\n\n element.getAttribute('width', true).setValue(scaleWidth);\n element.getAttribute('height', true).setValue(scaleHeight);\n var transformStyle = element.getStyle('transform', true, true);\n transformStyle.setValue(\"\".concat(transformStyle.getString(), \" scale(\").concat(1.0 / xRatio, \", \").concat(1.0 / yRatio, \")\"));\n } // clear and render\n\n\n if (!ignoreClear) {\n ctx.clearRect(0, 0, cWidth, cHeight);\n }\n\n element.render(ctx);\n\n if (isFirstRender) {\n this.isFirstRender = false;\n }\n }\n\n}\nScreen.defaultWindow = defaultWindow;\nScreen.defaultFetch = defaultFetch$1;\n\nvar {\n defaultFetch\n} = Screen;\nvar DefaultDOMParser = typeof DOMParser !== 'undefined' ? DOMParser : null;\nclass Parser {\n constructor() {\n var {\n fetch = defaultFetch,\n DOMParser = DefaultDOMParser\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.fetch = fetch;\n this.DOMParser = DOMParser;\n }\n\n parse(resource) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n if (resource.startsWith('<')) {\n return _this.parseFromString(resource);\n }\n\n return _this.load(resource);\n })();\n }\n\n parseFromString(xml) {\n var parser = new this.DOMParser();\n\n try {\n return this.checkDocument(parser.parseFromString(xml, 'image/svg+xml'));\n } catch (err) {\n return this.checkDocument(parser.parseFromString(xml, 'text/xml'));\n }\n }\n\n checkDocument(document) {\n var parserError = document.getElementsByTagName('parsererror')[0];\n\n if (parserError) {\n throw new Error(parserError.textContent);\n }\n\n return document;\n }\n\n load(url) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var response = yield _this2.fetch(url);\n var xml = yield response.text();\n return _this2.parseFromString(xml);\n })();\n }\n\n}\n\nclass Translate {\n constructor(_, point) {\n this.type = 'translate';\n this.point = null;\n this.point = Point.parse(point);\n }\n\n apply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(x || 0.0, y || 0.0);\n }\n\n unapply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(-1.0 * x || 0.0, -1.0 * y || 0.0);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.point;\n point.applyTransform([1, 0, 0, 1, x || 0.0, y || 0.0]);\n }\n\n}\n\nclass Rotate {\n constructor(document, rotate, transformOrigin) {\n this.type = 'rotate';\n this.angle = null;\n this.originX = null;\n this.originY = null;\n this.cx = 0;\n this.cy = 0;\n var numbers = toNumbers(rotate);\n this.angle = new Property(document, 'angle', numbers[0]);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n this.cx = numbers[1] || 0;\n this.cy = numbers[2] || 0;\n }\n\n apply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(-1.0 * angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n cx,\n cy,\n angle\n } = this;\n var rad = angle.getRadians();\n point.applyTransform([1, 0, 0, 1, cx || 0.0, cy || 0.0 // this.p.y\n ]);\n point.applyTransform([Math.cos(rad), Math.sin(rad), -Math.sin(rad), Math.cos(rad), 0, 0]);\n point.applyTransform([1, 0, 0, 1, -cx || 0.0, -cy || 0.0 // -this.p.y\n ]);\n }\n\n}\n\nclass Scale {\n constructor(_, scale, transformOrigin) {\n this.type = 'scale';\n this.scale = null;\n this.originX = null;\n this.originY = null;\n var scaleSize = Point.parseScale(scale); // Workaround for node-canvas\n\n if (scaleSize.x === 0 || scaleSize.y === 0) {\n scaleSize.x = PSEUDO_ZERO;\n scaleSize.y = PSEUDO_ZERO;\n }\n\n this.scale = scaleSize;\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(x, y || x);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(1.0 / x, 1.0 / y || x);\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.scale;\n point.applyTransform([x || 0.0, 0, 0, y || 0.0, 0, 0]);\n }\n\n}\n\nclass Matrix {\n constructor(_, matrix, transformOrigin) {\n this.type = 'matrix';\n this.matrix = [];\n this.originX = null;\n this.originY = null;\n this.matrix = toNumbers(matrix);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var a = matrix[0];\n var b = matrix[2];\n var c = matrix[4];\n var d = matrix[1];\n var e = matrix[3];\n var f = matrix[5];\n var g = 0.0;\n var h = 0.0;\n var i = 1.0;\n var det = 1 / (a * (e * i - f * h) - b * (d * i - f * g) + c * (d * h - e * g));\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(det * (e * i - f * h), det * (f * g - d * i), det * (c * h - b * i), det * (a * i - c * g), det * (b * f - c * e), det * (c * d - a * f));\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n point.applyTransform(this.matrix);\n }\n\n}\n\nclass Skew extends Matrix {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skew';\n this.angle = null;\n this.angle = new Property(document, 'angle', skew);\n }\n\n}\n\nclass SkewX extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewX';\n this.matrix = [1, 0, Math.tan(this.angle.getRadians()), 1, 0, 0];\n }\n\n}\n\nclass SkewY extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewY';\n this.matrix = [1, Math.tan(this.angle.getRadians()), 0, 1, 0, 0];\n }\n\n}\n\nfunction parseTransforms(transform) {\n return compressSpaces(transform).trim().replace(/\\)([a-zA-Z])/g, ') $1').replace(/\\)(\\s?,\\s?)/g, ') ').split(/\\s(?=[a-z])/);\n}\n\nfunction parseTransform(transform) {\n var [type, value] = transform.split('(');\n return [type.trim(), value.trim().replace(')', '')];\n}\n\nclass Transform {\n constructor(document, transform, transformOrigin) {\n this.document = document;\n this.transforms = [];\n var data = parseTransforms(transform);\n data.forEach(transform => {\n if (transform === 'none') {\n return;\n }\n\n var [type, value] = parseTransform(transform);\n var TransformType = Transform.transformTypes[type];\n\n if (typeof TransformType !== 'undefined') {\n this.transforms.push(new TransformType(this.document, value, transformOrigin));\n }\n });\n }\n\n static fromElement(document, element) {\n var transformStyle = element.getStyle('transform', false, true);\n var [transformOriginXProperty, transformOriginYProperty = transformOriginXProperty] = element.getStyle('transform-origin', false, true).split();\n var transformOrigin = [transformOriginXProperty, transformOriginYProperty];\n\n if (transformStyle.hasValue()) {\n return new Transform(document, transformStyle.getString(), transformOrigin);\n }\n\n return null;\n }\n\n apply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].apply(ctx);\n }\n }\n\n unapply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = len - 1; i >= 0; i--) {\n transforms[i].unapply(ctx);\n }\n } // TODO: applyToPoint unused ... remove?\n\n\n applyToPoint(point) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].applyToPoint(point);\n }\n }\n\n}\nTransform.transformTypes = {\n translate: Translate,\n rotate: Rotate,\n scale: Scale,\n matrix: Matrix,\n skewX: SkewX,\n skewY: SkewY\n};\n\nclass Element {\n constructor(document, node) {\n var captureTextNodes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.document = document;\n this.node = node;\n this.captureTextNodes = captureTextNodes;\n this.attributes = Object.create(null);\n this.styles = Object.create(null);\n this.stylesSpecificity = Object.create(null);\n this.animationFrozen = false;\n this.animationFrozenValue = '';\n this.parent = null;\n this.children = [];\n\n if (!node || node.nodeType !== 1) {\n // ELEMENT_NODE\n return;\n } // add attributes\n\n\n Array.from(node.attributes).forEach(attribute => {\n var nodeName = normalizeAttributeName(attribute.nodeName);\n this.attributes[nodeName] = new Property(document, nodeName, attribute.value);\n });\n this.addStylesFromStyleDefinition(); // add inline styles\n\n if (this.getAttribute('style').hasValue()) {\n var styles = this.getAttribute('style').getString().split(';').map(_ => _.trim());\n styles.forEach(style => {\n if (!style) {\n return;\n }\n\n var [name, value] = style.split(':').map(_ => _.trim());\n this.styles[name] = new Property(document, name, value);\n });\n }\n\n var {\n definitions\n } = document;\n var id = this.getAttribute('id'); // add id\n\n if (id.hasValue()) {\n if (!definitions[id.getString()]) {\n definitions[id.getString()] = this;\n }\n }\n\n Array.from(node.childNodes).forEach(childNode => {\n if (childNode.nodeType === 1) {\n this.addChild(childNode); // ELEMENT_NODE\n } else if (captureTextNodes && (childNode.nodeType === 3 || childNode.nodeType === 4)) {\n var textNode = document.createTextNode(childNode);\n\n if (textNode.getText().length > 0) {\n this.addChild(textNode); // TEXT_NODE\n }\n }\n });\n }\n\n getAttribute(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var attr = this.attributes[name];\n\n if (!attr && createIfNotExists) {\n var _attr = new Property(this.document, name, '');\n\n this.attributes[name] = _attr;\n return _attr;\n }\n\n return attr || Property.empty(this.document);\n }\n\n getHrefAttribute() {\n for (var key in this.attributes) {\n if (key === 'href' || key.endsWith(':href')) {\n return this.attributes[key];\n }\n }\n\n return Property.empty(this.document);\n }\n\n getStyle(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var skipAncestors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var style = this.styles[name];\n\n if (style) {\n return style;\n }\n\n var attr = this.getAttribute(name);\n\n if (attr !== null && attr !== void 0 && attr.hasValue()) {\n this.styles[name] = attr; // move up to me to cache\n\n return attr;\n }\n\n if (!skipAncestors) {\n var {\n parent\n } = this;\n\n if (parent) {\n var parentStyle = parent.getStyle(name);\n\n if (parentStyle !== null && parentStyle !== void 0 && parentStyle.hasValue()) {\n return parentStyle;\n }\n }\n }\n\n if (createIfNotExists) {\n var _style = new Property(this.document, name, '');\n\n this.styles[name] = _style;\n return _style;\n }\n\n return style || Property.empty(this.document);\n }\n\n render(ctx) {\n // don't render display=none\n // don't render visibility=hidden\n if (this.getStyle('display').getString() === 'none' || this.getStyle('visibility').getString() === 'hidden') {\n return;\n }\n\n ctx.save();\n\n if (this.getStyle('mask').hasValue()) {\n // mask\n var mask = this.getStyle('mask').getDefinition();\n\n if (mask) {\n this.applyEffects(ctx);\n mask.apply(ctx, this);\n }\n } else if (this.getStyle('filter').getValue('none') !== 'none') {\n // filter\n var filter = this.getStyle('filter').getDefinition();\n\n if (filter) {\n this.applyEffects(ctx);\n filter.apply(ctx, this);\n }\n } else {\n this.setContext(ctx);\n this.renderChildren(ctx);\n this.clearContext(ctx);\n }\n\n ctx.restore();\n }\n\n setContext(_) {// NO RENDER\n }\n\n applyEffects(ctx) {\n // transform\n var transform = Transform.fromElement(this.document, this);\n\n if (transform) {\n transform.apply(ctx);\n } // clip\n\n\n var clipPathStyleProp = this.getStyle('clip-path', false, true);\n\n if (clipPathStyleProp.hasValue()) {\n var clip = clipPathStyleProp.getDefinition();\n\n if (clip) {\n clip.apply(ctx);\n }\n }\n }\n\n clearContext(_) {// NO RENDER\n }\n\n renderChildren(ctx) {\n this.children.forEach(child => {\n child.render(ctx);\n });\n }\n\n addChild(childNode) {\n var child = childNode instanceof Element ? childNode : this.document.createElement(childNode);\n child.parent = this;\n\n if (!Element.ignoreChildTypes.includes(child.type)) {\n this.children.push(child);\n }\n }\n\n matchesSelector(selector) {\n var _node$getAttribute;\n\n var {\n node\n } = this;\n\n if (typeof node.matches === 'function') {\n return node.matches(selector);\n }\n\n var styleClasses = (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'class');\n\n if (!styleClasses || styleClasses === '') {\n return false;\n }\n\n return styleClasses.split(' ').some(styleClass => \".\".concat(styleClass) === selector);\n }\n\n addStylesFromStyleDefinition() {\n var {\n styles,\n stylesSpecificity\n } = this.document;\n\n for (var selector in styles) {\n if (!selector.startsWith('@') && this.matchesSelector(selector)) {\n var style = styles[selector];\n var specificity = stylesSpecificity[selector];\n\n if (style) {\n for (var name in style) {\n var existingSpecificity = this.stylesSpecificity[name];\n\n if (typeof existingSpecificity === 'undefined') {\n existingSpecificity = '000';\n }\n\n if (specificity >= existingSpecificity) {\n this.styles[name] = style[name];\n this.stylesSpecificity[name] = specificity;\n }\n }\n }\n }\n }\n }\n\n removeStyles(element, ignoreStyles) {\n var toRestore = ignoreStyles.reduce((toRestore, name) => {\n var styleProp = element.getStyle(name);\n\n if (!styleProp.hasValue()) {\n return toRestore;\n }\n\n var value = styleProp.getString();\n styleProp.setValue('');\n return [...toRestore, [name, value]];\n }, []);\n return toRestore;\n }\n\n restoreStyles(element, styles) {\n styles.forEach(_ref => {\n var [name, value] = _ref;\n element.getStyle(name, true).setValue(value);\n });\n }\n\n isFirstChild() {\n var _this$parent;\n\n return ((_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.children.indexOf(this)) === 0;\n }\n\n}\nElement.ignoreChildTypes = ['title'];\n\nclass UnknownElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n }\n\n}\n\nfunction wrapFontFamily(fontFamily) {\n var trimmed = fontFamily.trim();\n return /^('|\")/.test(trimmed) ? trimmed : \"\\\"\".concat(trimmed, \"\\\"\");\n}\n\nfunction prepareFontFamily(fontFamily) {\n return typeof process === 'undefined' ? fontFamily : fontFamily.trim().split(',').map(wrapFontFamily).join(',');\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\r\n * @param fontStyle\r\n * @returns CSS font style.\r\n */\n\n\nfunction prepareFontStyle(fontStyle) {\n if (!fontStyle) {\n return '';\n }\n\n var targetFontStyle = fontStyle.trim().toLowerCase();\n\n switch (targetFontStyle) {\n case 'normal':\n case 'italic':\n case 'oblique':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontStyle;\n\n default:\n if (/^oblique\\s+(-|)\\d+deg$/.test(targetFontStyle)) {\n return targetFontStyle;\n }\n\n return '';\n }\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\r\n * @param fontWeight\r\n * @returns CSS font weight.\r\n */\n\n\nfunction prepareFontWeight(fontWeight) {\n if (!fontWeight) {\n return '';\n }\n\n var targetFontWeight = fontWeight.trim().toLowerCase();\n\n switch (targetFontWeight) {\n case 'normal':\n case 'bold':\n case 'lighter':\n case 'bolder':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontWeight;\n\n default:\n if (/^[\\d.]+$/.test(targetFontWeight)) {\n return targetFontWeight;\n }\n\n return '';\n }\n}\n\nclass Font {\n constructor(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) {\n var inheritFont = inherit ? typeof inherit === 'string' ? Font.parse(inherit) : inherit : {};\n this.fontFamily = fontFamily || inheritFont.fontFamily;\n this.fontSize = fontSize || inheritFont.fontSize;\n this.fontStyle = fontStyle || inheritFont.fontStyle;\n this.fontWeight = fontWeight || inheritFont.fontWeight;\n this.fontVariant = fontVariant || inheritFont.fontVariant;\n }\n\n static parse() {\n var font = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var inherit = arguments.length > 1 ? arguments[1] : undefined;\n var fontStyle = '';\n var fontVariant = '';\n var fontWeight = '';\n var fontSize = '';\n var fontFamily = '';\n var parts = compressSpaces(font).trim().split(' ');\n var set = {\n fontSize: false,\n fontStyle: false,\n fontWeight: false,\n fontVariant: false\n };\n parts.forEach(part => {\n switch (true) {\n case !set.fontStyle && Font.styles.includes(part):\n if (part !== 'inherit') {\n fontStyle = part;\n }\n\n set.fontStyle = true;\n break;\n\n case !set.fontVariant && Font.variants.includes(part):\n if (part !== 'inherit') {\n fontVariant = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n break;\n\n case !set.fontWeight && Font.weights.includes(part):\n if (part !== 'inherit') {\n fontWeight = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n break;\n\n case !set.fontSize:\n if (part !== 'inherit') {\n [fontSize] = part.split('/');\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n set.fontSize = true;\n break;\n\n default:\n if (part !== 'inherit') {\n fontFamily += part;\n }\n\n }\n });\n return new Font(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit);\n }\n\n toString() {\n return [prepareFontStyle(this.fontStyle), this.fontVariant, prepareFontWeight(this.fontWeight), this.fontSize, // Wrap fontFamily only on nodejs and only for canvas.ctx\n prepareFontFamily(this.fontFamily)].join(' ').trim();\n }\n\n}\nFont.styles = 'normal|italic|oblique|inherit';\nFont.variants = 'normal|small-caps|inherit';\nFont.weights = 'normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit';\n\nclass BoundingBox {\n constructor() {\n var x1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.NaN;\n var y1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.NaN;\n var x2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Number.NaN;\n var y2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Number.NaN;\n this.x1 = x1;\n this.y1 = y1;\n this.x2 = x2;\n this.y2 = y2;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n get x() {\n return this.x1;\n }\n\n get y() {\n return this.y1;\n }\n\n get width() {\n return this.x2 - this.x1;\n }\n\n get height() {\n return this.y2 - this.y1;\n }\n\n addPoint(x, y) {\n if (typeof x !== 'undefined') {\n if (isNaN(this.x1) || isNaN(this.x2)) {\n this.x1 = x;\n this.x2 = x;\n }\n\n if (x < this.x1) {\n this.x1 = x;\n }\n\n if (x > this.x2) {\n this.x2 = x;\n }\n }\n\n if (typeof y !== 'undefined') {\n if (isNaN(this.y1) || isNaN(this.y2)) {\n this.y1 = y;\n this.y2 = y;\n }\n\n if (y < this.y1) {\n this.y1 = y;\n }\n\n if (y > this.y2) {\n this.y2 = y;\n }\n }\n }\n\n addX(x) {\n this.addPoint(x, null);\n }\n\n addY(y) {\n this.addPoint(null, y);\n }\n\n addBoundingBox(boundingBox) {\n if (!boundingBox) {\n return;\n }\n\n var {\n x1,\n y1,\n x2,\n y2\n } = boundingBox;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n sumCubic(t, p0, p1, p2, p3) {\n return Math.pow(1 - t, 3) * p0 + 3 * Math.pow(1 - t, 2) * t * p1 + 3 * (1 - t) * Math.pow(t, 2) * p2 + Math.pow(t, 3) * p3;\n }\n\n bezierCurveAdd(forX, p0, p1, p2, p3) {\n var b = 6 * p0 - 12 * p1 + 6 * p2;\n var a = -3 * p0 + 9 * p1 - 9 * p2 + 3 * p3;\n var c = 3 * p1 - 3 * p0;\n\n if (a === 0) {\n if (b === 0) {\n return;\n }\n\n var t = -c / b;\n\n if (0 < t && t < 1) {\n if (forX) {\n this.addX(this.sumCubic(t, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t, p0, p1, p2, p3));\n }\n }\n\n return;\n }\n\n var b2ac = Math.pow(b, 2) - 4 * c * a;\n\n if (b2ac < 0) {\n return;\n }\n\n var t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t1 && t1 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t1, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t1, p0, p1, p2, p3));\n }\n }\n\n var t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t2 && t2 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t2, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t2, p0, p1, p2, p3));\n }\n }\n } // from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n\n\n addBezierCurve(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) {\n this.addPoint(p0x, p0y);\n this.addPoint(p3x, p3y);\n this.bezierCurveAdd(true, p0x, p1x, p2x, p3x);\n this.bezierCurveAdd(false, p0y, p1y, p2y, p3y);\n }\n\n addQuadraticCurve(p0x, p0y, p1x, p1y, p2x, p2y) {\n var cp1x = p0x + 2 / 3 * (p1x - p0x); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp1y = p0y + 2 / 3 * (p1y - p0y); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp2x = cp1x + 1 / 3 * (p2x - p0x); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n var cp2y = cp1y + 1 / 3 * (p2y - p0y); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n this.addBezierCurve(p0x, p0y, cp1x, cp2x, cp1y, cp2y, p2x, p2y);\n }\n\n isPointInBox(x, y) {\n var {\n x1,\n y1,\n x2,\n y2\n } = this;\n return x1 <= x && x <= x2 && y1 <= y && y <= y2;\n }\n\n}\n\nclass PathParser extends SVGPathData {\n constructor(path) {\n super(path // Fix spaces after signs.\n .replace(/([+\\-.])\\s+/gm, '$1') // Remove invalid part.\n .replace(/[^MmZzLlHhVvCcSsQqTtAae\\d\\s.,+-].*/g, ''));\n this.control = null;\n this.start = null;\n this.current = null;\n this.command = null;\n this.commands = this.commands;\n this.i = -1;\n this.previousCommand = null;\n this.points = [];\n this.angles = [];\n }\n\n reset() {\n this.i = -1;\n this.command = null;\n this.previousCommand = null;\n this.start = new Point(0, 0);\n this.control = new Point(0, 0);\n this.current = new Point(0, 0);\n this.points = [];\n this.angles = [];\n }\n\n isEnd() {\n var {\n i,\n commands\n } = this;\n return i >= commands.length - 1;\n }\n\n next() {\n var command = this.commands[++this.i];\n this.previousCommand = this.command;\n this.command = command;\n return command;\n }\n\n getPoint() {\n var xProp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'x';\n var yProp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'y';\n var point = new Point(this.command[xProp], this.command[yProp]);\n return this.makeAbsolute(point);\n }\n\n getAsControlPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.control = point;\n return point;\n }\n\n getAsCurrentPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.current = point;\n return point;\n }\n\n getReflectedControlPoint() {\n var previousCommand = this.previousCommand.type;\n\n if (previousCommand !== SVGPathData.CURVE_TO && previousCommand !== SVGPathData.SMOOTH_CURVE_TO && previousCommand !== SVGPathData.QUAD_TO && previousCommand !== SVGPathData.SMOOTH_QUAD_TO) {\n return this.current;\n } // reflect point\n\n\n var {\n current: {\n x: cx,\n y: cy\n },\n control: {\n x: ox,\n y: oy\n }\n } = this;\n var point = new Point(2 * cx - ox, 2 * cy - oy);\n return point;\n }\n\n makeAbsolute(point) {\n if (this.command.relative) {\n var {\n x,\n y\n } = this.current;\n point.x += x;\n point.y += y;\n }\n\n return point;\n }\n\n addMarker(point, from, priorTo) {\n var {\n points,\n angles\n } = this; // if the last angle isn't filled in because we didn't have this point yet ...\n\n if (priorTo && angles.length > 0 && !angles[angles.length - 1]) {\n angles[angles.length - 1] = points[points.length - 1].angleTo(priorTo);\n }\n\n this.addMarkerAngle(point, from ? from.angleTo(point) : null);\n }\n\n addMarkerAngle(point, angle) {\n this.points.push(point);\n this.angles.push(angle);\n }\n\n getMarkerPoints() {\n return this.points;\n }\n\n getMarkerAngles() {\n var {\n angles\n } = this;\n var len = angles.length;\n\n for (var i = 0; i < len; i++) {\n if (!angles[i]) {\n for (var j = i + 1; j < len; j++) {\n if (angles[j]) {\n angles[i] = angles[j];\n break;\n }\n }\n }\n }\n\n return angles;\n }\n\n}\n\nclass RenderedElement extends Element {\n constructor() {\n super(...arguments);\n this.modifiedEmSizeStack = false;\n }\n\n calculateOpacity() {\n var opacity = 1.0; // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n\n var element = this;\n\n while (element) {\n var opacityStyle = element.getStyle('opacity', false, true); // no ancestors on style call\n\n if (opacityStyle.hasValue(true)) {\n opacity *= opacityStyle.getNumber();\n }\n\n element = element.parent;\n }\n\n return opacity;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!fromMeasure) {\n // causes stack overflow when measuring text with gradients\n // fill\n var fillStyleProp = this.getStyle('fill');\n var fillOpacityStyleProp = this.getStyle('fill-opacity');\n var strokeStyleProp = this.getStyle('stroke');\n var strokeOpacityProp = this.getStyle('stroke-opacity');\n\n if (fillStyleProp.isUrlDefinition()) {\n var fillStyle = fillStyleProp.getFillStyleDefinition(this, fillOpacityStyleProp);\n\n if (fillStyle) {\n ctx.fillStyle = fillStyle;\n }\n } else if (fillStyleProp.hasValue()) {\n if (fillStyleProp.getString() === 'currentColor') {\n fillStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _fillStyle = fillStyleProp.getColor();\n\n if (_fillStyle !== 'inherit') {\n ctx.fillStyle = _fillStyle === 'none' ? 'rgba(0,0,0,0)' : _fillStyle;\n }\n }\n\n if (fillOpacityStyleProp.hasValue()) {\n var _fillStyle2 = new Property(this.document, 'fill', ctx.fillStyle).addOpacity(fillOpacityStyleProp).getColor();\n\n ctx.fillStyle = _fillStyle2;\n } // stroke\n\n\n if (strokeStyleProp.isUrlDefinition()) {\n var strokeStyle = strokeStyleProp.getFillStyleDefinition(this, strokeOpacityProp);\n\n if (strokeStyle) {\n ctx.strokeStyle = strokeStyle;\n }\n } else if (strokeStyleProp.hasValue()) {\n if (strokeStyleProp.getString() === 'currentColor') {\n strokeStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _strokeStyle = strokeStyleProp.getString();\n\n if (_strokeStyle !== 'inherit') {\n ctx.strokeStyle = _strokeStyle === 'none' ? 'rgba(0,0,0,0)' : _strokeStyle;\n }\n }\n\n if (strokeOpacityProp.hasValue()) {\n var _strokeStyle2 = new Property(this.document, 'stroke', ctx.strokeStyle).addOpacity(strokeOpacityProp).getString();\n\n ctx.strokeStyle = _strokeStyle2;\n }\n\n var strokeWidthStyleProp = this.getStyle('stroke-width');\n\n if (strokeWidthStyleProp.hasValue()) {\n var newLineWidth = strokeWidthStyleProp.getPixels();\n ctx.lineWidth = !newLineWidth ? PSEUDO_ZERO // browsers don't respect 0 (or node-canvas? :-)\n : newLineWidth;\n }\n\n var strokeLinecapStyleProp = this.getStyle('stroke-linecap');\n var strokeLinejoinStyleProp = this.getStyle('stroke-linejoin');\n var strokeMiterlimitProp = this.getStyle('stroke-miterlimit'); // NEED TEST\n // const pointOrderStyleProp = this.getStyle('paint-order');\n\n var strokeDasharrayStyleProp = this.getStyle('stroke-dasharray');\n var strokeDashoffsetProp = this.getStyle('stroke-dashoffset');\n\n if (strokeLinecapStyleProp.hasValue()) {\n ctx.lineCap = strokeLinecapStyleProp.getString();\n }\n\n if (strokeLinejoinStyleProp.hasValue()) {\n ctx.lineJoin = strokeLinejoinStyleProp.getString();\n }\n\n if (strokeMiterlimitProp.hasValue()) {\n ctx.miterLimit = strokeMiterlimitProp.getNumber();\n } // NEED TEST\n // if (pointOrderStyleProp.hasValue()) {\n // \t// ?\n // \tctx.paintOrder = pointOrderStyleProp.getValue();\n // }\n\n\n if (strokeDasharrayStyleProp.hasValue() && strokeDasharrayStyleProp.getString() !== 'none') {\n var gaps = toNumbers(strokeDasharrayStyleProp.getString());\n\n if (typeof ctx.setLineDash !== 'undefined') {\n ctx.setLineDash(gaps);\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDash !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDash = gaps;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDash !== 'undefined' && !(gaps.length === 1 && gaps[0] === 0)) {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDash = gaps;\n }\n\n var offset = strokeDashoffsetProp.getPixels();\n\n if (typeof ctx.lineDashOffset !== 'undefined') {\n ctx.lineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDashOffset = offset;\n }\n }\n } // font\n\n\n this.modifiedEmSizeStack = false;\n\n if (typeof ctx.font !== 'undefined') {\n var fontStyleProp = this.getStyle('font');\n var fontStyleStyleProp = this.getStyle('font-style');\n var fontVariantStyleProp = this.getStyle('font-variant');\n var fontWeightStyleProp = this.getStyle('font-weight');\n var fontSizeStyleProp = this.getStyle('font-size');\n var fontFamilyStyleProp = this.getStyle('font-family');\n var font = new Font(fontStyleStyleProp.getString(), fontVariantStyleProp.getString(), fontWeightStyleProp.getString(), fontSizeStyleProp.hasValue() ? \"\".concat(fontSizeStyleProp.getPixels(true), \"px\") : '', fontFamilyStyleProp.getString(), Font.parse(fontStyleProp.getString(), ctx.font));\n fontStyleStyleProp.setValue(font.fontStyle);\n fontVariantStyleProp.setValue(font.fontVariant);\n fontWeightStyleProp.setValue(font.fontWeight);\n fontSizeStyleProp.setValue(font.fontSize);\n fontFamilyStyleProp.setValue(font.fontFamily);\n ctx.font = font.toString();\n\n if (fontSizeStyleProp.isPixels()) {\n this.document.emSize = fontSizeStyleProp.getPixels();\n this.modifiedEmSizeStack = true;\n }\n }\n\n if (!fromMeasure) {\n // effects\n this.applyEffects(ctx); // opacity\n\n ctx.globalAlpha = this.calculateOpacity();\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n\n if (this.modifiedEmSizeStack) {\n this.document.popEmSize();\n }\n }\n\n}\n\nclass PathElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'path';\n this.pathParser = null;\n this.pathParser = new PathParser(this.getAttribute('d').getString());\n }\n\n path(ctx) {\n var {\n pathParser\n } = this;\n var boundingBox = new BoundingBox();\n pathParser.reset();\n\n if (ctx) {\n ctx.beginPath();\n }\n\n while (!pathParser.isEnd()) {\n switch (pathParser.next().type) {\n case PathParser.MOVE_TO:\n this.pathM(ctx, boundingBox);\n break;\n\n case PathParser.LINE_TO:\n this.pathL(ctx, boundingBox);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n this.pathH(ctx, boundingBox);\n break;\n\n case PathParser.VERT_LINE_TO:\n this.pathV(ctx, boundingBox);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n this.pathS(ctx, boundingBox);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n this.pathT(ctx, boundingBox);\n break;\n\n case PathParser.ARC:\n this.pathA(ctx, boundingBox);\n break;\n\n case PathParser.CLOSE_PATH:\n this.pathZ(ctx, boundingBox);\n break;\n }\n }\n\n return boundingBox;\n }\n\n getBoundingBox(_) {\n return this.path();\n }\n\n getMarkers() {\n var {\n pathParser\n } = this;\n var points = pathParser.getMarkerPoints();\n var angles = pathParser.getMarkerAngles();\n var markers = points.map((point, i) => [point, angles[i]]);\n return markers;\n }\n\n renderChildren(ctx) {\n this.path(ctx);\n this.document.screen.mouse.checkPath(this, ctx);\n var fillRuleStyleProp = this.getStyle('fill-rule');\n\n if (ctx.fillStyle !== '') {\n if (fillRuleStyleProp.getString('inherit') !== 'inherit') {\n ctx.fill(fillRuleStyleProp.getString());\n } else {\n ctx.fill();\n }\n }\n\n if (ctx.strokeStyle !== '') {\n if (this.getAttribute('vector-effect').getString() === 'non-scaling-stroke') {\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.stroke();\n }\n }\n\n var markers = this.getMarkers();\n\n if (markers) {\n var markersLastIndex = markers.length - 1;\n var markerStartStyleProp = this.getStyle('marker-start');\n var markerMidStyleProp = this.getStyle('marker-mid');\n var markerEndStyleProp = this.getStyle('marker-end');\n\n if (markerStartStyleProp.isUrlDefinition()) {\n var marker = markerStartStyleProp.getDefinition();\n var [point, angle] = markers[0];\n marker.render(ctx, point, angle);\n }\n\n if (markerMidStyleProp.isUrlDefinition()) {\n var _marker = markerMidStyleProp.getDefinition();\n\n for (var i = 1; i < markersLastIndex; i++) {\n var [_point, _angle] = markers[i];\n\n _marker.render(ctx, _point, _angle);\n }\n }\n\n if (markerEndStyleProp.isUrlDefinition()) {\n var _marker2 = markerEndStyleProp.getDefinition();\n\n var [_point2, _angle2] = markers[markersLastIndex];\n\n _marker2.render(ctx, _point2, _angle2);\n }\n }\n }\n\n static pathM(pathParser) {\n var point = pathParser.getAsCurrentPoint();\n pathParser.start = pathParser.current;\n return {\n point\n };\n }\n\n pathM(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n point\n } = PathElement.pathM(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.moveTo(x, y);\n }\n }\n\n static pathL(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getAsCurrentPoint();\n return {\n current,\n point\n };\n }\n\n pathL(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathL(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathH(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point((command.relative ? current.x : 0) + command.x, current.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathH(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathH(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathV(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point(current.x, (command.relative ? current.y : 0) + command.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathV(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathV(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathC(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getPoint('x1', 'y1');\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathC(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathS(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getReflectedControlPoint();\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathS(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathQ(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getAsControlPoint('x1', 'y1');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathQ(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathT(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getReflectedControlPoint();\n pathParser.control = controlPoint;\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathT(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathA(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var {\n rX,\n rY,\n xRot,\n lArcFlag,\n sweepFlag\n } = command;\n var xAxisRotation = xRot * (Math.PI / 180.0);\n var currentPoint = pathParser.getAsCurrentPoint(); // Conversion from endpoint to center parameterization\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n // x1', y1'\n\n var currp = new Point(Math.cos(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.sin(xAxisRotation) * (current.y - currentPoint.y) / 2.0, -Math.sin(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * (current.y - currentPoint.y) / 2.0); // adjust radii\n\n var l = Math.pow(currp.x, 2) / Math.pow(rX, 2) + Math.pow(currp.y, 2) / Math.pow(rY, 2);\n\n if (l > 1) {\n rX *= Math.sqrt(l);\n rY *= Math.sqrt(l);\n } // cx', cy'\n\n\n var s = (lArcFlag === sweepFlag ? -1 : 1) * Math.sqrt((Math.pow(rX, 2) * Math.pow(rY, 2) - Math.pow(rX, 2) * Math.pow(currp.y, 2) - Math.pow(rY, 2) * Math.pow(currp.x, 2)) / (Math.pow(rX, 2) * Math.pow(currp.y, 2) + Math.pow(rY, 2) * Math.pow(currp.x, 2)));\n\n if (isNaN(s)) {\n s = 0;\n }\n\n var cpp = new Point(s * rX * currp.y / rY, s * -rY * currp.x / rX); // cx, cy\n\n var centp = new Point((current.x + currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y, (current.y + currentPoint.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y); // initial angle\n\n var a1 = vectorsAngle([1, 0], [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY]); // θ1\n // angle delta\n\n var u = [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY];\n var v = [(-currp.x - cpp.x) / rX, (-currp.y - cpp.y) / rY];\n var ad = vectorsAngle(u, v); // Δθ\n\n if (vectorsRatio(u, v) <= -1) {\n ad = Math.PI;\n }\n\n if (vectorsRatio(u, v) >= 1) {\n ad = 0;\n }\n\n return {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n };\n }\n\n pathA(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser); // for markers\n\n var dir = 1 - sweepFlag ? 1.0 : -1.0;\n var ah = a1 + dir * (ad / 2.0);\n var halfWay = new Point(centp.x + rX * Math.cos(ah), centp.y + rY * Math.sin(ah));\n pathParser.addMarkerAngle(halfWay, ah - dir * Math.PI / 2);\n pathParser.addMarkerAngle(currentPoint, ah - dir * Math.PI);\n boundingBox.addPoint(currentPoint.x, currentPoint.y); // TODO: this is too naive, make it better\n\n if (ctx && !isNaN(a1) && !isNaN(ad)) {\n var r = rX > rY ? rX : rY;\n var sx = rX > rY ? 1 : rX / rY;\n var sy = rX > rY ? rY / rX : 1;\n ctx.translate(centp.x, centp.y);\n ctx.rotate(xAxisRotation);\n ctx.scale(sx, sy);\n ctx.arc(0, 0, r, a1, a1 + ad, Boolean(1 - sweepFlag));\n ctx.scale(1 / sx, 1 / sy);\n ctx.rotate(-xAxisRotation);\n ctx.translate(-centp.x, -centp.y);\n }\n }\n\n static pathZ(pathParser) {\n pathParser.current = pathParser.start;\n }\n\n pathZ(ctx, boundingBox) {\n PathElement.pathZ(this.pathParser);\n\n if (ctx) {\n // only close path if it is not a straight line\n if (boundingBox.x1 !== boundingBox.x2 && boundingBox.y1 !== boundingBox.y2) {\n ctx.closePath();\n }\n }\n }\n\n}\n\nclass GlyphElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'glyph';\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n this.unicode = this.getAttribute('unicode').getString();\n this.arabicForm = this.getAttribute('arabic-form').getString();\n }\n\n}\n\nclass TextElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TextElement ? true : captureTextNodes);\n this.type = 'text';\n this.x = 0;\n this.y = 0;\n this.measureCache = -1;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n super.setContext(ctx, fromMeasure);\n var textBaseline = this.getStyle('dominant-baseline').getTextBaseline() || this.getStyle('alignment-baseline').getTextBaseline();\n\n if (textBaseline) {\n ctx.textBaseline = textBaseline;\n }\n }\n\n initializeCoordinates() {\n this.x = 0;\n this.y = 0;\n this.leafTexts = [];\n this.textChunkStart = 0;\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n }\n\n getBoundingBox(ctx) {\n if (this.type !== 'text') {\n return this.getTElementBoundingBox(ctx);\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx);\n var boundingBox = null; // then calculate bounding box\n\n this.children.forEach((_, i) => {\n var childBoundingBox = this.getChildBoundingBox(ctx, this, this, i);\n\n if (!boundingBox) {\n boundingBox = childBoundingBox;\n } else {\n boundingBox.addBoundingBox(childBoundingBox);\n }\n });\n return boundingBox;\n }\n\n getFontSize() {\n var {\n document,\n parent\n } = this;\n var inheritFontSize = Font.parse(document.ctx.font).fontSize;\n var fontSize = parent.getStyle('font-size').getNumber(inheritFontSize);\n return fontSize;\n }\n\n getTElementBoundingBox(ctx) {\n var fontSize = this.getFontSize();\n return new BoundingBox(this.x, this.y - fontSize, this.x + this.measureText(ctx), this.y);\n }\n\n getGlyph(font, text, i) {\n var char = text[i];\n var glyph = null;\n\n if (font.isArabic) {\n var len = text.length;\n var prevChar = text[i - 1];\n var nextChar = text[i + 1];\n var arabicForm = 'isolated';\n\n if ((i === 0 || prevChar === ' ') && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'terminal';\n }\n\n if (i > 0 && prevChar !== ' ' && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'medial';\n }\n\n if (i > 0 && prevChar !== ' ' && (i === len - 1 || nextChar === ' ')) {\n arabicForm = 'initial';\n }\n\n if (typeof font.glyphs[char] !== 'undefined') {\n // NEED TEST\n var maybeGlyph = font.glyphs[char];\n glyph = maybeGlyph instanceof GlyphElement ? maybeGlyph : maybeGlyph[arabicForm];\n }\n } else {\n glyph = font.glyphs[char];\n }\n\n if (!glyph) {\n glyph = font.missingGlyph;\n }\n\n return glyph;\n }\n\n getText() {\n return '';\n }\n\n getTextFromNode(node) {\n var textNode = node || this.node;\n var childNodes = Array.from(textNode.parentNode.childNodes);\n var index = childNodes.indexOf(textNode);\n var lastIndex = childNodes.length - 1;\n var text = compressSpaces( // textNode.value\n // || textNode.text\n textNode.textContent || '');\n\n if (index === 0) {\n text = trimLeft(text);\n }\n\n if (index === lastIndex) {\n text = trimRight(text);\n }\n\n return text;\n }\n\n renderChildren(ctx) {\n if (this.type !== 'text') {\n this.renderTElementChildren(ctx);\n return;\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx); // then render\n\n this.children.forEach((_, i) => {\n this.renderChild(ctx, this, this, i);\n });\n var {\n mouse\n } = this.document.screen; // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, this.getBoundingBox(ctx));\n }\n }\n\n renderTElementChildren(ctx) {\n var {\n document,\n parent\n } = this;\n var renderText = this.getText();\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var {\n unitsPerEm\n } = customFont.fontFace;\n var ctxFont = Font.parse(document.ctx.font);\n var fontSize = parent.getStyle('font-size').getNumber(ctxFont.fontSize);\n var fontStyle = parent.getStyle('font-style').getString(ctxFont.fontStyle);\n var scale = fontSize / unitsPerEm;\n var text = customFont.isRTL ? renderText.split('').reverse().join('') : renderText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n ctx.translate(this.x, this.y);\n ctx.scale(scale, -scale);\n var lw = ctx.lineWidth;\n ctx.lineWidth = ctx.lineWidth * unitsPerEm / fontSize;\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, .4, 1, 0, 0);\n }\n\n glyph.render(ctx);\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, -.4, 1, 0, 0);\n }\n\n ctx.lineWidth = lw;\n ctx.scale(1 / scale, -1 / scale);\n ctx.translate(-this.x, -this.y);\n this.x += fontSize * (glyph.horizAdvX || customFont.horizAdvX) / unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n this.x += dx[i];\n }\n }\n\n return;\n }\n\n var {\n x,\n y\n } = this; // NEED TEST\n // if (ctx.paintOrder === 'stroke') {\n // \tif (ctx.strokeStyle) {\n // \t\tctx.strokeText(renderText, x, y);\n // \t}\n // \tif (ctx.fillStyle) {\n // \t\tctx.fillText(renderText, x, y);\n // \t}\n // } else {\n\n if (ctx.fillStyle) {\n ctx.fillText(renderText, x, y);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(renderText, x, y);\n } // }\n\n }\n\n applyAnchoring() {\n if (this.textChunkStart >= this.leafTexts.length) {\n return;\n } // This is basically the \"Apply anchoring\" part of https://www.w3.org/TR/SVG2/text.html#TextLayoutAlgorithm.\n // The difference is that we apply the anchoring as soon as a chunk is finished. This saves some extra looping.\n // Vertical text is not supported.\n\n\n var firstElement = this.leafTexts[this.textChunkStart];\n var textAnchor = firstElement.getStyle('text-anchor').getString('start');\n var isRTL = false; // we treat RTL like LTR\n\n var shift = 0;\n\n if (textAnchor === 'start' && !isRTL || textAnchor === 'end' && isRTL) {\n shift = firstElement.x - this.minX;\n } else if (textAnchor === 'end' && !isRTL || textAnchor === 'start' && isRTL) {\n shift = firstElement.x - this.maxX;\n } else {\n shift = firstElement.x - (this.minX + this.maxX) / 2;\n }\n\n for (var i = this.textChunkStart; i < this.leafTexts.length; i++) {\n this.leafTexts[i].x += shift;\n } // start new chunk\n\n\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n this.textChunkStart = this.leafTexts.length;\n }\n\n adjustChildCoordinatesRecursive(ctx) {\n this.children.forEach((_, i) => {\n this.adjustChildCoordinatesRecursiveCore(ctx, this, this, i);\n });\n this.applyAnchoring();\n }\n\n adjustChildCoordinatesRecursiveCore(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (child.children.length > 0) {\n child.children.forEach((_, i) => {\n textParent.adjustChildCoordinatesRecursiveCore(ctx, textParent, child, i);\n });\n } else {\n // only leafs are relevant\n this.adjustChildCoordinates(ctx, textParent, parent, i);\n }\n }\n\n adjustChildCoordinates(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (typeof child.measureText !== 'function') {\n return child;\n }\n\n ctx.save();\n child.setContext(ctx, true);\n var xAttr = child.getAttribute('x');\n var yAttr = child.getAttribute('y');\n var dxAttr = child.getAttribute('dx');\n var dyAttr = child.getAttribute('dy');\n var customFont = child.getStyle('font-family').getDefinition();\n var isRTL = Boolean(customFont) && customFont.isRTL;\n\n if (i === 0) {\n // First children inherit attributes from parent(s). Positional attributes\n // are only inherited from a parent to it's first child.\n if (!xAttr.hasValue()) {\n xAttr.setValue(child.getInheritedAttribute('x'));\n }\n\n if (!yAttr.hasValue()) {\n yAttr.setValue(child.getInheritedAttribute('y'));\n }\n\n if (!dxAttr.hasValue()) {\n dxAttr.setValue(child.getInheritedAttribute('dx'));\n }\n\n if (!dyAttr.hasValue()) {\n dyAttr.setValue(child.getInheritedAttribute('dy'));\n }\n }\n\n var width = child.measureText(ctx);\n\n if (isRTL) {\n textParent.x -= width;\n }\n\n if (xAttr.hasValue()) {\n // an \"x\" attribute marks the start of a new chunk\n textParent.applyAnchoring();\n child.x = xAttr.getPixels('x');\n\n if (dxAttr.hasValue()) {\n child.x += dxAttr.getPixels('x');\n }\n } else {\n if (dxAttr.hasValue()) {\n textParent.x += dxAttr.getPixels('x');\n }\n\n child.x = textParent.x;\n }\n\n textParent.x = child.x;\n\n if (!isRTL) {\n textParent.x += width;\n }\n\n if (yAttr.hasValue()) {\n child.y = yAttr.getPixels('y');\n\n if (dyAttr.hasValue()) {\n child.y += dyAttr.getPixels('y');\n }\n } else {\n if (dyAttr.hasValue()) {\n textParent.y += dyAttr.getPixels('y');\n }\n\n child.y = textParent.y;\n }\n\n textParent.y = child.y; // update the current chunk and it's bounds\n\n textParent.leafTexts.push(child);\n textParent.minX = Math.min(textParent.minX, child.x, child.x + width);\n textParent.maxX = Math.max(textParent.maxX, child.x, child.x + width);\n child.clearContext(ctx);\n ctx.restore();\n return child;\n }\n\n getChildBoundingBox(ctx, textParent, parent, i) {\n var child = parent.children[i]; // not a text node?\n\n if (typeof child.getBoundingBox !== 'function') {\n return null;\n }\n\n var boundingBox = child.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return null;\n }\n\n child.children.forEach((_, i) => {\n var childBoundingBox = textParent.getChildBoundingBox(ctx, textParent, child, i);\n boundingBox.addBoundingBox(childBoundingBox);\n });\n return boundingBox;\n }\n\n renderChild(ctx, textParent, parent, i) {\n var child = parent.children[i];\n child.render(ctx);\n child.children.forEach((_, i) => {\n textParent.renderChild(ctx, textParent, child, i);\n });\n }\n\n measureText(ctx) {\n var {\n measureCache\n } = this;\n\n if (~measureCache) {\n return measureCache;\n }\n\n var renderText = this.getText();\n var measure = this.measureTargetText(ctx, renderText);\n this.measureCache = measure;\n return measure;\n }\n\n measureTargetText(ctx, targetText) {\n if (!targetText.length) {\n return 0;\n }\n\n var {\n parent\n } = this;\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var fontSize = this.getFontSize();\n var text = customFont.isRTL ? targetText.split('').reverse().join('') : targetText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n var _measure = 0;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n _measure += (glyph.horizAdvX || customFont.horizAdvX) * fontSize / customFont.fontFace.unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n _measure += dx[i];\n }\n }\n\n return _measure;\n }\n\n if (!ctx.measureText) {\n return targetText.length * 10;\n }\n\n ctx.save();\n this.setContext(ctx, true);\n var {\n width: measure\n } = ctx.measureText(targetText);\n this.clearContext(ctx);\n ctx.restore();\n return measure;\n }\n /**\r\n * Inherits positional attributes from {@link TextElement} parent(s). Attributes\r\n * are only inherited from a parent to its first child.\r\n * @param name - The attribute name.\r\n * @returns The attribute value or null.\r\n */\n\n\n getInheritedAttribute(name) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias,consistent-this\n var current = this;\n\n while (current instanceof TextElement && current.isFirstChild()) {\n var parentAttr = current.parent.getAttribute(name);\n\n if (parentAttr.hasValue(true)) {\n return parentAttr.getValue('0');\n }\n\n current = current.parent;\n }\n\n return null;\n }\n\n}\n\nclass TSpanElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TSpanElement ? true : captureTextNodes);\n this.type = 'tspan'; // if this node has children, then they own the text\n\n this.text = this.children.length > 0 ? '' : this.getTextFromNode();\n }\n\n getText() {\n return this.text;\n }\n\n}\n\nclass TextNode extends TSpanElement {\n constructor() {\n super(...arguments);\n this.type = 'textNode';\n }\n\n}\n\nclass SVGElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'svg';\n this.root = false;\n }\n\n setContext(ctx) {\n var _this$node$parentNode;\n\n var {\n document\n } = this;\n var {\n screen,\n window\n } = document;\n var canvas = ctx.canvas;\n screen.setDefaults(ctx);\n\n if (canvas.style && typeof ctx.font !== 'undefined' && window && typeof window.getComputedStyle !== 'undefined') {\n ctx.font = window.getComputedStyle(canvas).getPropertyValue('font');\n var fontSizeProp = new Property(document, 'fontSize', Font.parse(ctx.font).fontSize);\n\n if (fontSizeProp.hasValue()) {\n document.rootEmSize = fontSizeProp.getPixels('y');\n document.emSize = document.rootEmSize;\n }\n } // create new view port\n\n\n if (!this.getAttribute('x').hasValue()) {\n this.getAttribute('x', true).setValue(0);\n }\n\n if (!this.getAttribute('y').hasValue()) {\n this.getAttribute('y', true).setValue(0);\n }\n\n var {\n width,\n height\n } = screen.viewPort;\n\n if (!this.getStyle('width').hasValue()) {\n this.getStyle('width', true).setValue('100%');\n }\n\n if (!this.getStyle('height').hasValue()) {\n this.getStyle('height', true).setValue('100%');\n }\n\n if (!this.getStyle('color').hasValue()) {\n this.getStyle('color', true).setValue('black');\n }\n\n var refXAttr = this.getAttribute('refX');\n var refYAttr = this.getAttribute('refY');\n var viewBoxAttr = this.getAttribute('viewBox');\n var viewBox = viewBoxAttr.hasValue() ? toNumbers(viewBoxAttr.getString()) : null;\n var clip = !this.root && this.getStyle('overflow').getValue('hidden') !== 'visible';\n var minX = 0;\n var minY = 0;\n var clipX = 0;\n var clipY = 0;\n\n if (viewBox) {\n minX = viewBox[0];\n minY = viewBox[1];\n }\n\n if (!this.root) {\n width = this.getStyle('width').getPixels('x');\n height = this.getStyle('height').getPixels('y');\n\n if (this.type === 'marker') {\n clipX = minX;\n clipY = minY;\n minX = 0;\n minY = 0;\n }\n }\n\n screen.viewPort.setCurrent(width, height); // Default value of transform-origin is center only for root SVG elements\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/transform-origin\n\n if (this.node // is not temporary SVGElement\n && (!this.parent || ((_this$node$parentNode = this.node.parentNode) === null || _this$node$parentNode === void 0 ? void 0 : _this$node$parentNode.nodeName) === 'foreignObject') && this.getStyle('transform', false, true).hasValue() && !this.getStyle('transform-origin', false, true).hasValue()) {\n this.getStyle('transform-origin', true, true).setValue('50% 50%');\n }\n\n super.setContext(ctx);\n ctx.translate(this.getAttribute('x').getPixels('x'), this.getAttribute('y').getPixels('y'));\n\n if (viewBox) {\n width = viewBox[2];\n height = viewBox[3];\n }\n\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width: screen.viewPort.width,\n desiredWidth: width,\n height: screen.viewPort.height,\n desiredHeight: height,\n minX,\n minY,\n refX: refXAttr.getValue(),\n refY: refYAttr.getValue(),\n clip,\n clipX,\n clipY\n });\n\n if (viewBox) {\n screen.viewPort.removeCurrent();\n screen.viewPort.setCurrent(width, height);\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n this.document.screen.viewPort.removeCurrent();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var widthAttr = this.getAttribute('width', true);\n var heightAttr = this.getAttribute('height', true);\n var viewBoxAttr = this.getAttribute('viewBox');\n var styleAttr = this.getAttribute('style');\n var originWidth = widthAttr.getNumber(0);\n var originHeight = heightAttr.getNumber(0);\n\n if (preserveAspectRatio) {\n if (typeof preserveAspectRatio === 'string') {\n this.getAttribute('preserveAspectRatio', true).setValue(preserveAspectRatio);\n } else {\n var preserveAspectRatioAttr = this.getAttribute('preserveAspectRatio');\n\n if (preserveAspectRatioAttr.hasValue()) {\n preserveAspectRatioAttr.setValue(preserveAspectRatioAttr.getString().replace(/^\\s*(\\S.*\\S)\\s*$/, '$1'));\n }\n }\n }\n\n widthAttr.setValue(width);\n heightAttr.setValue(height);\n\n if (!viewBoxAttr.hasValue()) {\n viewBoxAttr.setValue(\"0 0 \".concat(originWidth || width, \" \").concat(originHeight || height));\n }\n\n if (styleAttr.hasValue()) {\n var widthStyle = this.getStyle('width');\n var heightStyle = this.getStyle('height');\n\n if (widthStyle.hasValue()) {\n widthStyle.setValue(\"\".concat(width, \"px\"));\n }\n\n if (heightStyle.hasValue()) {\n heightStyle.setValue(\"\".concat(height, \"px\"));\n }\n }\n }\n\n}\n\nclass RectElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'rect';\n }\n\n path(ctx) {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width', false, true).getPixels('x');\n var height = this.getStyle('height', false, true).getPixels('y');\n var rxAttr = this.getAttribute('rx');\n var ryAttr = this.getAttribute('ry');\n var rx = rxAttr.getPixels('x');\n var ry = ryAttr.getPixels('y');\n\n if (rxAttr.hasValue() && !ryAttr.hasValue()) {\n ry = rx;\n }\n\n if (ryAttr.hasValue() && !rxAttr.hasValue()) {\n rx = ry;\n }\n\n rx = Math.min(rx, width / 2.0);\n ry = Math.min(ry, height / 2.0);\n\n if (ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n ctx.beginPath(); // always start the path so we don't fill prior paths\n\n if (height > 0 && width > 0) {\n ctx.moveTo(x + rx, y);\n ctx.lineTo(x + width - rx, y);\n ctx.bezierCurveTo(x + width - rx + KAPPA * rx, y, x + width, y + ry - KAPPA * ry, x + width, y + ry);\n ctx.lineTo(x + width, y + height - ry);\n ctx.bezierCurveTo(x + width, y + height - ry + KAPPA * ry, x + width - rx + KAPPA * rx, y + height, x + width - rx, y + height);\n ctx.lineTo(x + rx, y + height);\n ctx.bezierCurveTo(x + rx - KAPPA * rx, y + height, x, y + height - ry + KAPPA * ry, x, y + height - ry);\n ctx.lineTo(x, y + ry);\n ctx.bezierCurveTo(x, y + ry - KAPPA * ry, x + rx - KAPPA * rx, y, x + rx, y);\n ctx.closePath();\n }\n }\n\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass CircleElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'circle';\n }\n\n path(ctx) {\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n var r = this.getAttribute('r').getPixels();\n\n if (ctx && r > 0) {\n ctx.beginPath();\n ctx.arc(cx, cy, r, 0, Math.PI * 2, false);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - r, cy - r, cx + r, cy + r);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass EllipseElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'ellipse';\n }\n\n path(ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n var rx = this.getAttribute('rx').getPixels('x');\n var ry = this.getAttribute('ry').getPixels('y');\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n\n if (ctx && rx > 0 && ry > 0) {\n ctx.beginPath();\n ctx.moveTo(cx + rx, cy);\n ctx.bezierCurveTo(cx + rx, cy + KAPPA * ry, cx + KAPPA * rx, cy + ry, cx, cy + ry);\n ctx.bezierCurveTo(cx - KAPPA * rx, cy + ry, cx - rx, cy + KAPPA * ry, cx - rx, cy);\n ctx.bezierCurveTo(cx - rx, cy - KAPPA * ry, cx - KAPPA * rx, cy - ry, cx, cy - ry);\n ctx.bezierCurveTo(cx + KAPPA * rx, cy - ry, cx + rx, cy - KAPPA * ry, cx + rx, cy);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - rx, cy - ry, cx + rx, cy + ry);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass LineElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'line';\n }\n\n getPoints() {\n return [new Point(this.getAttribute('x1').getPixels('x'), this.getAttribute('y1').getPixels('y')), new Point(this.getAttribute('x2').getPixels('x'), this.getAttribute('y2').getPixels('y'))];\n }\n\n path(ctx) {\n var [{\n x: x0,\n y: y0\n }, {\n x: x1,\n y: y1\n }] = this.getPoints();\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n ctx.lineTo(x1, y1);\n }\n\n return new BoundingBox(x0, y0, x1, y1);\n }\n\n getMarkers() {\n var [p0, p1] = this.getPoints();\n var a = p0.angleTo(p1);\n return [[p0, a], [p1, a]];\n }\n\n}\n\nclass PolylineElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'polyline';\n this.points = [];\n this.points = Point.parsePath(this.getAttribute('points').getString());\n }\n\n path(ctx) {\n var {\n points\n } = this;\n var [{\n x: x0,\n y: y0\n }] = points;\n var boundingBox = new BoundingBox(x0, y0);\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n }\n\n points.forEach(_ref => {\n var {\n x,\n y\n } = _ref;\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n });\n return boundingBox;\n }\n\n getMarkers() {\n var {\n points\n } = this;\n var lastIndex = points.length - 1;\n var markers = [];\n points.forEach((point, i) => {\n if (i === lastIndex) {\n return;\n }\n\n markers.push([point, point.angleTo(points[i + 1])]);\n });\n\n if (markers.length > 0) {\n markers.push([points[points.length - 1], markers[markers.length - 1][1]]);\n }\n\n return markers;\n }\n\n}\n\nclass PolygonElement extends PolylineElement {\n constructor() {\n super(...arguments);\n this.type = 'polygon';\n }\n\n path(ctx) {\n var boundingBox = super.path(ctx);\n var [{\n x,\n y\n }] = this.points;\n\n if (ctx) {\n ctx.lineTo(x, y);\n ctx.closePath();\n }\n\n return boundingBox;\n }\n\n}\n\nclass PatternElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'pattern';\n }\n\n createPattern(ctx, _, parentOpacityProp) {\n var width = this.getStyle('width').getPixels('x', true);\n var height = this.getStyle('height').getPixels('y', true); // render me using a temporary svg element\n\n var patternSvg = new SVGElement(this.document, null);\n patternSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n patternSvg.attributes.width = new Property(this.document, 'width', \"\".concat(width, \"px\"));\n patternSvg.attributes.height = new Property(this.document, 'height', \"\".concat(height, \"px\"));\n patternSvg.attributes.transform = new Property(this.document, 'transform', this.getAttribute('patternTransform').getValue());\n patternSvg.children = this.children;\n var patternCanvas = this.document.createCanvas(width, height);\n var patternCtx = patternCanvas.getContext('2d');\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue() && yAttr.hasValue()) {\n patternCtx.translate(xAttr.getPixels('x', true), yAttr.getPixels('y', true));\n }\n\n if (parentOpacityProp.hasValue()) {\n this.styles['fill-opacity'] = parentOpacityProp;\n } else {\n Reflect.deleteProperty(this.styles, 'fill-opacity');\n } // render 3x3 grid so when we transform there's no white space on edges\n\n\n for (var x = -1; x <= 1; x++) {\n for (var y = -1; y <= 1; y++) {\n patternCtx.save();\n patternSvg.attributes.x = new Property(this.document, 'x', x * patternCanvas.width);\n patternSvg.attributes.y = new Property(this.document, 'y', y * patternCanvas.height);\n patternSvg.render(patternCtx);\n patternCtx.restore();\n }\n }\n\n var pattern = ctx.createPattern(patternCanvas, 'repeat');\n return pattern;\n }\n\n}\n\nclass MarkerElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'marker';\n }\n\n render(ctx, point, angle) {\n if (!point) {\n return;\n }\n\n var {\n x,\n y\n } = point;\n var orient = this.getAttribute('orient').getString('auto');\n var markerUnits = this.getAttribute('markerUnits').getString('strokeWidth');\n ctx.translate(x, y);\n\n if (orient === 'auto') {\n ctx.rotate(angle);\n }\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(ctx.lineWidth, ctx.lineWidth);\n }\n\n ctx.save(); // render me using a temporary svg element\n\n var markerSvg = new SVGElement(this.document, null);\n markerSvg.type = this.type;\n markerSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n markerSvg.attributes.refX = new Property(this.document, 'refX', this.getAttribute('refX').getValue());\n markerSvg.attributes.refY = new Property(this.document, 'refY', this.getAttribute('refY').getValue());\n markerSvg.attributes.width = new Property(this.document, 'width', this.getAttribute('markerWidth').getValue());\n markerSvg.attributes.height = new Property(this.document, 'height', this.getAttribute('markerHeight').getValue());\n markerSvg.attributes.overflow = new Property(this.document, 'overflow', this.getAttribute('overflow').getValue());\n markerSvg.attributes.fill = new Property(this.document, 'fill', this.getAttribute('fill').getColor('black'));\n markerSvg.attributes.stroke = new Property(this.document, 'stroke', this.getAttribute('stroke').getValue('none'));\n markerSvg.children = this.children;\n markerSvg.render(ctx);\n ctx.restore();\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(1 / ctx.lineWidth, 1 / ctx.lineWidth);\n }\n\n if (orient === 'auto') {\n ctx.rotate(-angle);\n }\n\n ctx.translate(-x, -y);\n }\n\n}\n\nclass DefsElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'defs';\n }\n\n render() {// NOOP\n }\n\n}\n\nclass GElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'g';\n }\n\n getBoundingBox(ctx) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n return boundingBox;\n }\n\n}\n\nclass GradientElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.attributesToInherit = ['gradientUnits'];\n this.stops = [];\n var {\n stops,\n children\n } = this;\n children.forEach(child => {\n if (child.type === 'stop') {\n stops.push(child);\n }\n });\n }\n\n getGradientUnits() {\n return this.getAttribute('gradientUnits').getString('objectBoundingBox');\n }\n\n createGradient(ctx, element, parentOpacityProp) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n var stopsContainer = this;\n\n if (this.getHrefAttribute().hasValue()) {\n stopsContainer = this.getHrefAttribute().getDefinition();\n this.inheritStopContainer(stopsContainer);\n }\n\n var {\n stops\n } = stopsContainer;\n var gradient = this.getGradient(ctx, element);\n\n if (!gradient) {\n return this.addParentOpacity(parentOpacityProp, stops[stops.length - 1].color);\n }\n\n stops.forEach(stop => {\n gradient.addColorStop(stop.offset, this.addParentOpacity(parentOpacityProp, stop.color));\n });\n\n if (this.getAttribute('gradientTransform').hasValue()) {\n // render as transformed pattern on temporary canvas\n var {\n document\n } = this;\n var {\n MAX_VIRTUAL_PIXELS,\n viewPort\n } = document.screen;\n var [rootView] = viewPort.viewPorts;\n var rect = new RectElement(document, null);\n rect.attributes.x = new Property(document, 'x', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.y = new Property(document, 'y', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.width = new Property(document, 'width', MAX_VIRTUAL_PIXELS);\n rect.attributes.height = new Property(document, 'height', MAX_VIRTUAL_PIXELS);\n var group = new GElement(document, null);\n group.attributes.transform = new Property(document, 'transform', this.getAttribute('gradientTransform').getValue());\n group.children = [rect];\n var patternSvg = new SVGElement(document, null);\n patternSvg.attributes.x = new Property(document, 'x', 0);\n patternSvg.attributes.y = new Property(document, 'y', 0);\n patternSvg.attributes.width = new Property(document, 'width', rootView.width);\n patternSvg.attributes.height = new Property(document, 'height', rootView.height);\n patternSvg.children = [group];\n var patternCanvas = document.createCanvas(rootView.width, rootView.height);\n var patternCtx = patternCanvas.getContext('2d');\n patternCtx.fillStyle = gradient;\n patternSvg.render(patternCtx);\n return patternCtx.createPattern(patternCanvas, 'no-repeat');\n }\n\n return gradient;\n }\n\n inheritStopContainer(stopsContainer) {\n this.attributesToInherit.forEach(attributeToInherit => {\n if (!this.getAttribute(attributeToInherit).hasValue() && stopsContainer.getAttribute(attributeToInherit).hasValue()) {\n this.getAttribute(attributeToInherit, true).setValue(stopsContainer.getAttribute(attributeToInherit).getValue());\n }\n });\n }\n\n addParentOpacity(parentOpacityProp, color) {\n if (parentOpacityProp.hasValue()) {\n var colorProp = new Property(this.document, 'color', color);\n return colorProp.addOpacity(parentOpacityProp).getColor();\n }\n\n return color;\n }\n\n}\n\nclass LinearGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'linearGradient';\n this.attributesToInherit.push('x1', 'y1', 'x2', 'y2');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = isBoundingBoxUnits ? element.getBoundingBox(ctx) : null;\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('x1').hasValue() && !this.getAttribute('y1').hasValue() && !this.getAttribute('x2').hasValue() && !this.getAttribute('y2').hasValue()) {\n this.getAttribute('x1', true).setValue(0);\n this.getAttribute('y1', true).setValue(0);\n this.getAttribute('x2', true).setValue(1);\n this.getAttribute('y2', true).setValue(0);\n }\n\n var x1 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x1').getNumber() : this.getAttribute('x1').getPixels('x');\n var y1 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y1').getNumber() : this.getAttribute('y1').getPixels('y');\n var x2 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x2').getNumber() : this.getAttribute('x2').getPixels('x');\n var y2 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y2').getNumber() : this.getAttribute('y2').getPixels('y');\n\n if (x1 === x2 && y1 === y2) {\n return null;\n }\n\n return ctx.createLinearGradient(x1, y1, x2, y2);\n }\n\n}\n\nclass RadialGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'radialGradient';\n this.attributesToInherit.push('cx', 'cy', 'r', 'fx', 'fy', 'fr');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = element.getBoundingBox(ctx);\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('cx').hasValue()) {\n this.getAttribute('cx', true).setValue('50%');\n }\n\n if (!this.getAttribute('cy').hasValue()) {\n this.getAttribute('cy', true).setValue('50%');\n }\n\n if (!this.getAttribute('r').hasValue()) {\n this.getAttribute('r', true).setValue('50%');\n }\n\n var cx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('cx').getNumber() : this.getAttribute('cx').getPixels('x');\n var cy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('cy').getNumber() : this.getAttribute('cy').getPixels('y');\n var fx = cx;\n var fy = cy;\n\n if (this.getAttribute('fx').hasValue()) {\n fx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('fx').getNumber() : this.getAttribute('fx').getPixels('x');\n }\n\n if (this.getAttribute('fy').hasValue()) {\n fy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('fy').getNumber() : this.getAttribute('fy').getPixels('y');\n }\n\n var r = isBoundingBoxUnits ? (boundingBox.width + boundingBox.height) / 2.0 * this.getAttribute('r').getNumber() : this.getAttribute('r').getPixels();\n var fr = this.getAttribute('fr').getPixels();\n return ctx.createRadialGradient(fx, fy, fr, cx, cy, r);\n }\n\n}\n\nclass StopElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'stop';\n var offset = Math.max(0, Math.min(1, this.getAttribute('offset').getNumber()));\n var stopOpacity = this.getStyle('stop-opacity');\n var stopColor = this.getStyle('stop-color', true);\n\n if (stopColor.getString() === '') {\n stopColor.setValue('#000');\n }\n\n if (stopOpacity.hasValue()) {\n stopColor = stopColor.addOpacity(stopOpacity);\n }\n\n this.offset = offset;\n this.color = stopColor.getColor();\n }\n\n}\n\nclass AnimateElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'animate';\n this.duration = 0;\n this.initialValue = null;\n this.initialUnits = '';\n this.removed = false;\n this.frozen = false;\n document.screen.animations.push(this);\n this.begin = this.getAttribute('begin').getMilliseconds();\n this.maxDuration = this.begin + this.getAttribute('dur').getMilliseconds();\n this.from = this.getAttribute('from');\n this.to = this.getAttribute('to');\n this.values = new Property(document, 'values', null);\n var valuesAttr = this.getAttribute('values');\n\n if (valuesAttr.hasValue()) {\n this.values.setValue(valuesAttr.getString().split(';'));\n }\n }\n\n getProperty() {\n var attributeType = this.getAttribute('attributeType').getString();\n var attributeName = this.getAttribute('attributeName').getString();\n\n if (attributeType === 'CSS') {\n return this.parent.getStyle(attributeName, true);\n }\n\n return this.parent.getAttribute(attributeName, true);\n }\n\n calcValue() {\n var {\n initialUnits\n } = this;\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var newValue = from.getNumber() + (to.getNumber() - from.getNumber()) * progress;\n\n if (initialUnits === '%') {\n newValue *= 100.0; // numValue() returns 0-1 whereas properties are 0-100\n }\n\n return \"\".concat(newValue).concat(initialUnits);\n }\n\n update(delta) {\n var {\n parent\n } = this;\n var prop = this.getProperty(); // set initial value\n\n if (!this.initialValue) {\n this.initialValue = prop.getString();\n this.initialUnits = prop.getUnits();\n } // if we're past the end time\n\n\n if (this.duration > this.maxDuration) {\n var fill = this.getAttribute('fill').getString('remove'); // loop for indefinitely repeating animations\n\n if (this.getAttribute('repeatCount').getString() === 'indefinite' || this.getAttribute('repeatDur').getString() === 'indefinite') {\n this.duration = 0;\n } else if (fill === 'freeze' && !this.frozen) {\n this.frozen = true;\n parent.animationFrozen = true;\n parent.animationFrozenValue = prop.getString();\n } else if (fill === 'remove' && !this.removed) {\n this.removed = true;\n prop.setValue(parent.animationFrozen ? parent.animationFrozenValue : this.initialValue);\n return true;\n }\n\n return false;\n }\n\n this.duration += delta; // if we're past the begin time\n\n var updated = false;\n\n if (this.begin < this.duration) {\n var newValue = this.calcValue(); // tween\n\n var typeAttr = this.getAttribute('type');\n\n if (typeAttr.hasValue()) {\n // for transform, etc.\n var type = typeAttr.getString();\n newValue = \"\".concat(type, \"(\").concat(newValue, \")\");\n }\n\n prop.setValue(newValue);\n updated = true;\n }\n\n return updated;\n }\n\n getProgress() {\n var {\n document,\n values\n } = this;\n var result = {\n progress: (this.duration - this.begin) / (this.maxDuration - this.begin)\n };\n\n if (values.hasValue()) {\n var p = result.progress * (values.getValue().length - 1);\n var lb = Math.floor(p);\n var ub = Math.ceil(p);\n result.from = new Property(document, 'from', parseFloat(values.getValue()[lb]));\n result.to = new Property(document, 'to', parseFloat(values.getValue()[ub]));\n result.progress = (p - lb) / (ub - lb);\n } else {\n result.from = this.from;\n result.to = this.to;\n }\n\n return result;\n }\n\n}\n\nclass AnimateColorElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateColor';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress();\n var colorFrom = new RGBColor(from.getColor());\n var colorTo = new RGBColor(to.getColor());\n\n if (colorFrom.ok && colorTo.ok) {\n // tween color linearly\n var r = colorFrom.r + (colorTo.r - colorFrom.r) * progress;\n var g = colorFrom.g + (colorTo.g - colorFrom.g) * progress;\n var b = colorFrom.b + (colorTo.b - colorFrom.b) * progress; // ? alpha\n\n return \"rgb(\".concat(Math.floor(r), \", \").concat(Math.floor(g), \", \").concat(Math.floor(b), \")\");\n }\n\n return this.getAttribute('from').getColor();\n }\n\n}\n\nclass AnimateTransformElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateTransform';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var transformFrom = toNumbers(from.getString());\n var transformTo = toNumbers(to.getString());\n var newValue = transformFrom.map((from, i) => {\n var to = transformTo[i];\n return from + (to - from) * progress;\n }).join(' ');\n return newValue;\n }\n\n}\n\nclass FontElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font';\n this.glyphs = Object.create(null);\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n var {\n definitions\n } = document;\n var {\n children\n } = this;\n\n for (var child of children) {\n switch (child.type) {\n case 'font-face':\n {\n this.fontFace = child;\n var fontFamilyStyle = child.getStyle('font-family');\n\n if (fontFamilyStyle.hasValue()) {\n definitions[fontFamilyStyle.getString()] = this;\n }\n\n break;\n }\n\n case 'missing-glyph':\n this.missingGlyph = child;\n break;\n\n case 'glyph':\n {\n var glyph = child;\n\n if (glyph.arabicForm) {\n this.isRTL = true;\n this.isArabic = true;\n\n if (typeof this.glyphs[glyph.unicode] === 'undefined') {\n this.glyphs[glyph.unicode] = Object.create(null);\n }\n\n this.glyphs[glyph.unicode][glyph.arabicForm] = glyph;\n } else {\n this.glyphs[glyph.unicode] = glyph;\n }\n\n break;\n }\n }\n }\n }\n\n render() {// NO RENDER\n }\n\n}\n\nclass FontFaceElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font-face';\n this.ascent = this.getAttribute('ascent').getNumber();\n this.descent = this.getAttribute('descent').getNumber();\n this.unitsPerEm = this.getAttribute('units-per-em').getNumber();\n }\n\n}\n\nclass MissingGlyphElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'missing-glyph';\n this.horizAdvX = 0;\n }\n\n}\n\nclass TRefElement extends TextElement {\n constructor() {\n super(...arguments);\n this.type = 'tref';\n }\n\n getText() {\n var element = this.getHrefAttribute().getDefinition();\n\n if (element) {\n var firstChild = element.children[0];\n\n if (firstChild) {\n return firstChild.getText();\n }\n }\n\n return '';\n }\n\n}\n\nclass AElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'a';\n var {\n childNodes\n } = node;\n var firstChild = childNodes[0];\n var hasText = childNodes.length > 0 && Array.from(childNodes).every(node => node.nodeType === 3);\n this.hasText = hasText;\n this.text = hasText ? this.getTextFromNode(firstChild) : '';\n }\n\n getText() {\n return this.text;\n }\n\n renderChildren(ctx) {\n if (this.hasText) {\n // render as text element\n super.renderChildren(ctx);\n var {\n document,\n x,\n y\n } = this;\n var {\n mouse\n } = document.screen;\n var fontSize = new Property(document, 'fontSize', Font.parse(document.ctx.font).fontSize); // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, new BoundingBox(x, y - fontSize.getPixels('y'), x + this.measureText(ctx), y));\n }\n } else if (this.children.length > 0) {\n // render as temporary group\n var g = new GElement(this.document, null);\n g.children = this.children;\n g.parent = this;\n g.render(ctx);\n }\n }\n\n onClick() {\n var {\n window\n } = this.document;\n\n if (window) {\n window.open(this.getHrefAttribute().getString());\n }\n }\n\n onMouseMove() {\n var ctx = this.document.ctx;\n ctx.canvas.style.cursor = 'pointer';\n }\n\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nclass TextPathElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'textPath';\n this.textWidth = 0;\n this.textHeight = 0;\n this.pathLength = -1;\n this.glyphInfo = null;\n this.letterSpacingCache = [];\n this.measuresCache = new Map([['', 0]]);\n var pathElement = this.getHrefAttribute().getDefinition();\n this.text = this.getTextFromNode();\n this.dataArray = this.parsePathData(pathElement);\n }\n\n getText() {\n return this.text;\n }\n\n path(ctx) {\n var {\n dataArray\n } = this;\n\n if (ctx) {\n ctx.beginPath();\n }\n\n dataArray.forEach(_ref => {\n var {\n type,\n points\n } = _ref;\n\n switch (type) {\n case PathParser.LINE_TO:\n if (ctx) {\n ctx.lineTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.MOVE_TO:\n if (ctx) {\n ctx.moveTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.CURVE_TO:\n if (ctx) {\n ctx.bezierCurveTo(points[0], points[1], points[2], points[3], points[4], points[5]);\n }\n\n break;\n\n case PathParser.QUAD_TO:\n if (ctx) {\n ctx.quadraticCurveTo(points[0], points[1], points[2], points[3]);\n }\n\n break;\n\n case PathParser.ARC:\n {\n var [cx, cy, rx, ry, theta, dTheta, psi, fs] = points;\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n\n if (ctx) {\n ctx.translate(cx, cy);\n ctx.rotate(psi);\n ctx.scale(scaleX, scaleY);\n ctx.arc(0, 0, r, theta, theta + dTheta, Boolean(1 - fs));\n ctx.scale(1 / scaleX, 1 / scaleY);\n ctx.rotate(-psi);\n ctx.translate(-cx, -cy);\n }\n\n break;\n }\n\n case PathParser.CLOSE_PATH:\n if (ctx) {\n ctx.closePath();\n }\n\n break;\n }\n });\n }\n\n renderChildren(ctx) {\n this.setTextData(ctx);\n ctx.save();\n var textDecoration = this.parent.getStyle('text-decoration').getString();\n var fontSize = this.getFontSize();\n var {\n glyphInfo\n } = this;\n var fill = ctx.fillStyle;\n\n if (textDecoration === 'underline') {\n ctx.beginPath();\n }\n\n glyphInfo.forEach((glyph, i) => {\n var {\n p0,\n p1,\n rotation,\n text: partialText\n } = glyph;\n ctx.save();\n ctx.translate(p0.x, p0.y);\n ctx.rotate(rotation);\n\n if (ctx.fillStyle) {\n ctx.fillText(partialText, 0, 0);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(partialText, 0, 0);\n }\n\n ctx.restore();\n\n if (textDecoration === 'underline') {\n if (i === 0) {\n ctx.moveTo(p0.x, p0.y + fontSize / 8);\n }\n\n ctx.lineTo(p1.x, p1.y + fontSize / 5);\n } // // To assist with debugging visually, uncomment following\n //\n // ctx.beginPath();\n // if (i % 2)\n // \tctx.strokeStyle = 'red';\n // else\n // \tctx.strokeStyle = 'green';\n // ctx.moveTo(p0.x, p0.y);\n // ctx.lineTo(p1.x, p1.y);\n // ctx.stroke();\n // ctx.closePath();\n\n });\n\n if (textDecoration === 'underline') {\n ctx.lineWidth = fontSize / 20;\n ctx.strokeStyle = fill;\n ctx.stroke();\n ctx.closePath();\n }\n\n ctx.restore();\n }\n\n getLetterSpacingAt() {\n var idx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return this.letterSpacingCache[idx] || 0;\n }\n\n findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, inputOffset, dy, c, charI) {\n var offset = inputOffset;\n var glyphWidth = this.measureText(ctx, c);\n\n if (c === ' ' && anchor === 'justify' && textFullWidth < fullPathWidth) {\n glyphWidth += (fullPathWidth - textFullWidth) / spacesNumber;\n }\n\n if (charI > -1) {\n offset += this.getLetterSpacingAt(charI);\n }\n\n var splineStep = this.textHeight / 20;\n var p0 = this.getEquidistantPointOnPath(offset, splineStep, 0);\n var p1 = this.getEquidistantPointOnPath(offset + glyphWidth, splineStep, 0);\n var segment = {\n p0,\n p1\n };\n var rotation = p0 && p1 ? Math.atan2(p1.y - p0.y, p1.x - p0.x) : 0;\n\n if (dy) {\n var dyX = Math.cos(Math.PI / 2 + rotation) * dy;\n var dyY = Math.cos(-rotation) * dy;\n segment.p0 = _objectSpread$2(_objectSpread$2({}, p0), {}, {\n x: p0.x + dyX,\n y: p0.y + dyY\n });\n segment.p1 = _objectSpread$2(_objectSpread$2({}, p1), {}, {\n x: p1.x + dyX,\n y: p1.y + dyY\n });\n }\n\n offset += glyphWidth;\n return {\n offset,\n segment,\n rotation\n };\n }\n\n measureText(ctx, text) {\n var {\n measuresCache\n } = this;\n var targetText = text || this.getText();\n\n if (measuresCache.has(targetText)) {\n return measuresCache.get(targetText);\n }\n\n var measure = this.measureTargetText(ctx, targetText);\n measuresCache.set(targetText, measure);\n return measure;\n } // This method supposes what all custom fonts already loaded.\n // If some font will be loaded after this method call, <textPath> will not be rendered correctly.\n // You need to call this method manually to update glyphs cache.\n\n\n setTextData(ctx) {\n if (this.glyphInfo) {\n return;\n }\n\n var renderText = this.getText();\n var chars = renderText.split('');\n var spacesNumber = renderText.split(' ').length - 1;\n var dx = this.parent.getAttribute('dx').split().map(_ => _.getPixels('x'));\n var dy = this.parent.getAttribute('dy').getPixels('y');\n var anchor = this.parent.getStyle('text-anchor').getString('start');\n var thisSpacing = this.getStyle('letter-spacing');\n var parentSpacing = this.parent.getStyle('letter-spacing');\n var letterSpacing = 0;\n\n if (!thisSpacing.hasValue() || thisSpacing.getValue() === 'inherit') {\n letterSpacing = parentSpacing.getPixels();\n } else if (thisSpacing.hasValue()) {\n if (thisSpacing.getValue() !== 'initial' && thisSpacing.getValue() !== 'unset') {\n letterSpacing = thisSpacing.getPixels();\n }\n } // fill letter-spacing cache\n\n\n var letterSpacingCache = [];\n var textLen = renderText.length;\n this.letterSpacingCache = letterSpacingCache;\n\n for (var i = 0; i < textLen; i++) {\n letterSpacingCache.push(typeof dx[i] !== 'undefined' ? dx[i] : letterSpacing);\n }\n\n var dxSum = letterSpacingCache.reduce((acc, cur, i) => i === 0 ? 0 : acc + cur || 0, 0);\n var textWidth = this.measureText(ctx);\n var textFullWidth = Math.max(textWidth + dxSum, 0);\n this.textWidth = textWidth;\n this.textHeight = this.getFontSize();\n this.glyphInfo = [];\n var fullPathWidth = this.getPathLength();\n var startOffset = this.getStyle('startOffset').getNumber(0) * fullPathWidth;\n var offset = 0;\n\n if (anchor === 'middle' || anchor === 'center') {\n offset = -textFullWidth / 2;\n }\n\n if (anchor === 'end' || anchor === 'right') {\n offset = -textFullWidth;\n }\n\n offset += startOffset;\n chars.forEach((char, i) => {\n // Find such segment what distance between p0 and p1 is approx. width of glyph\n var {\n offset: nextOffset,\n segment,\n rotation\n } = this.findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, offset, dy, char, i);\n offset = nextOffset;\n\n if (!segment.p0 || !segment.p1) {\n return;\n } // const width = this.getLineLength(\n // \tsegment.p0.x,\n // \tsegment.p0.y,\n // \tsegment.p1.x,\n // \tsegment.p1.y\n // );\n // Note: Since glyphs are rendered one at a time, any kerning pair data built into the font will not be used.\n // Can foresee having a rough pair table built in that the developer can override as needed.\n // Or use \"dx\" attribute of the <text> node as a naive replacement\n // const kern = 0;\n // placeholder for future implementation\n // const midpoint = this.getPointOnLine(\n // \tkern + width / 2.0,\n // \tsegment.p0.x, segment.p0.y, segment.p1.x, segment.p1.y\n // );\n\n\n this.glyphInfo.push({\n // transposeX: midpoint.x,\n // transposeY: midpoint.y,\n text: chars[i],\n p0: segment.p0,\n p1: segment.p1,\n rotation\n });\n });\n }\n\n parsePathData(path) {\n this.pathLength = -1; // reset path length\n\n if (!path) {\n return [];\n }\n\n var pathCommands = [];\n var {\n pathParser\n } = path;\n pathParser.reset(); // convert l, H, h, V, and v to L\n\n while (!pathParser.isEnd()) {\n var {\n current\n } = pathParser;\n var startX = current ? current.x : 0;\n var startY = current ? current.y : 0;\n var command = pathParser.next();\n var nextCommandType = command.type;\n var points = [];\n\n switch (command.type) {\n case PathParser.MOVE_TO:\n this.pathM(pathParser, points);\n break;\n\n case PathParser.LINE_TO:\n nextCommandType = this.pathL(pathParser, points);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n nextCommandType = this.pathH(pathParser, points);\n break;\n\n case PathParser.VERT_LINE_TO:\n nextCommandType = this.pathV(pathParser, points);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(pathParser, points);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n nextCommandType = this.pathS(pathParser, points);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(pathParser, points);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n nextCommandType = this.pathT(pathParser, points);\n break;\n\n case PathParser.ARC:\n points = this.pathA(pathParser);\n break;\n\n case PathParser.CLOSE_PATH:\n PathElement.pathZ(pathParser);\n break;\n }\n\n if (command.type !== PathParser.CLOSE_PATH) {\n pathCommands.push({\n type: nextCommandType,\n points,\n start: {\n x: startX,\n y: startY\n },\n pathLength: this.calcLength(startX, startY, nextCommandType, points)\n });\n } else {\n pathCommands.push({\n type: PathParser.CLOSE_PATH,\n points: [],\n pathLength: 0\n });\n }\n }\n\n return pathCommands;\n }\n\n pathM(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathM(pathParser).point;\n points.push(x, y);\n }\n\n pathL(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathL(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathH(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathH(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathV(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathV(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathC(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathS(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.CURVE_TO;\n }\n\n pathQ(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathT(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.QUAD_TO;\n }\n\n pathA(pathParser) {\n var {\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser);\n\n if (sweepFlag === 0 && ad > 0) {\n ad -= 2 * Math.PI;\n }\n\n if (sweepFlag === 1 && ad < 0) {\n ad += 2 * Math.PI;\n }\n\n return [centp.x, centp.y, rX, rY, a1, ad, xAxisRotation, sweepFlag];\n }\n\n calcLength(x, y, commandType, points) {\n var len = 0;\n var p1 = null;\n var p2 = null;\n var t = 0;\n\n switch (commandType) {\n case PathParser.LINE_TO:\n return this.getLineLength(x, y, points[0], points[1]);\n\n case PathParser.CURVE_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnCubicBezier(0, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnCubicBezier(t, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.QUAD_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnQuadraticBezier(0, x, y, points[0], points[1], points[2], points[3]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnQuadraticBezier(t, x, y, points[0], points[1], points[2], points[3]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.ARC:\n {\n // Approximates by breaking curve into line segments\n len = 0.0;\n var start = points[4]; // 4 = theta\n\n var dTheta = points[5]; // 5 = dTheta\n\n var end = points[4] + dTheta;\n var inc = Math.PI / 180.0; // 1 degree resolution\n\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n } // Note: for purpose of calculating arc length, not going to worry about rotating X-axis by angle psi\n\n\n p1 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);\n\n if (dTheta < 0) {\n // clockwise\n for (t = start - inc; t > end; t -= inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n } else {\n // counter-clockwise\n for (t = start + inc; t < end; t += inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n return len;\n }\n }\n\n return 0;\n }\n\n getPointOnLine(dist, p1x, p1y, p2x, p2y) {\n var fromX = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : p1x;\n var fromY = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : p1y;\n var m = (p2y - p1y) / (p2x - p1x + PSEUDO_ZERO);\n var run = Math.sqrt(dist * dist / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n var rise = m * run;\n var pt = null;\n\n if (p2x === p1x) {\n // vertical line\n pt = {\n x: fromX,\n y: fromY + rise\n };\n } else if ((fromY - p1y) / (fromX - p1x + PSEUDO_ZERO) === m) {\n pt = {\n x: fromX + run,\n y: fromY + rise\n };\n } else {\n var ix = 0;\n var iy = 0;\n var len = this.getLineLength(p1x, p1y, p2x, p2y);\n\n if (len < PSEUDO_ZERO) {\n return null;\n }\n\n var u = (fromX - p1x) * (p2x - p1x) + (fromY - p1y) * (p2y - p1y);\n u /= len * len;\n ix = p1x + u * (p2x - p1x);\n iy = p1y + u * (p2y - p1y);\n var pRise = this.getLineLength(fromX, fromY, ix, iy);\n var pRun = Math.sqrt(dist * dist - pRise * pRise);\n run = Math.sqrt(pRun * pRun / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n rise = m * run;\n pt = {\n x: ix + run,\n y: iy + rise\n };\n }\n\n return pt;\n }\n\n getPointOnPath(distance) {\n var fullLen = this.getPathLength();\n var cumulativePathLength = 0;\n var p = null;\n\n if (distance < -0.00005 || distance - 0.00005 > fullLen) {\n return null;\n }\n\n var {\n dataArray\n } = this;\n\n for (var command of dataArray) {\n if (command && (command.pathLength < 0.00005 || cumulativePathLength + command.pathLength + 0.00005 < distance)) {\n cumulativePathLength += command.pathLength;\n continue;\n }\n\n var delta = distance - cumulativePathLength;\n var currentT = 0;\n\n switch (command.type) {\n case PathParser.LINE_TO:\n p = this.getPointOnLine(delta, command.start.x, command.start.y, command.points[0], command.points[1], command.start.x, command.start.y);\n break;\n\n case PathParser.ARC:\n {\n var start = command.points[4]; // 4 = theta\n\n var dTheta = command.points[5]; // 5 = dTheta\n\n var end = command.points[4] + dTheta;\n currentT = start + delta / command.pathLength * dTheta;\n\n if (dTheta < 0 && currentT < end || dTheta >= 0 && currentT > end) {\n break;\n }\n\n p = this.getPointOnEllipticalArc(command.points[0], command.points[1], command.points[2], command.points[3], currentT, command.points[6]);\n break;\n }\n\n case PathParser.CURVE_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnCubicBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3], command.points[4], command.points[5]);\n break;\n\n case PathParser.QUAD_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnQuadraticBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3]);\n break;\n }\n\n if (p) {\n return p;\n }\n\n break;\n }\n\n return null;\n }\n\n getLineLength(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n }\n\n getPathLength() {\n if (this.pathLength === -1) {\n this.pathLength = this.dataArray.reduce((length, command) => command.pathLength > 0 ? length + command.pathLength : length, 0);\n }\n\n return this.pathLength;\n }\n\n getPointOnCubicBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y) {\n var x = p4x * CB1(pct) + p3x * CB2(pct) + p2x * CB3(pct) + p1x * CB4(pct);\n var y = p4y * CB1(pct) + p3y * CB2(pct) + p2y * CB3(pct) + p1y * CB4(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnQuadraticBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y) {\n var x = p3x * QB1(pct) + p2x * QB2(pct) + p1x * QB3(pct);\n var y = p3y * QB1(pct) + p2y * QB2(pct) + p1y * QB3(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi) {\n var cosPsi = Math.cos(psi);\n var sinPsi = Math.sin(psi);\n var pt = {\n x: rx * Math.cos(theta),\n y: ry * Math.sin(theta)\n };\n return {\n x: cx + (pt.x * cosPsi - pt.y * sinPsi),\n y: cy + (pt.x * sinPsi + pt.y * cosPsi)\n };\n } // TODO need some optimisations. possibly build cache only for curved segments?\n\n\n buildEquidistantCache(inputStep, inputPrecision) {\n var fullLen = this.getPathLength();\n var precision = inputPrecision || 0.25; // accuracy vs performance\n\n var step = inputStep || fullLen / 100;\n\n if (!this.equidistantCache || this.equidistantCache.step !== step || this.equidistantCache.precision !== precision) {\n // Prepare cache\n this.equidistantCache = {\n step,\n precision,\n points: []\n }; // Calculate points\n\n var s = 0;\n\n for (var l = 0; l <= fullLen; l += precision) {\n var p0 = this.getPointOnPath(l);\n var p1 = this.getPointOnPath(l + precision);\n\n if (!p0 || !p1) {\n continue;\n }\n\n s += this.getLineLength(p0.x, p0.y, p1.x, p1.y);\n\n if (s >= step) {\n this.equidistantCache.points.push({\n x: p0.x,\n y: p0.y,\n distance: l\n });\n s -= step;\n }\n }\n }\n }\n\n getEquidistantPointOnPath(targetDistance, step, precision) {\n this.buildEquidistantCache(step, precision);\n\n if (targetDistance < 0 || targetDistance - this.getPathLength() > 0.00005) {\n return null;\n }\n\n var idx = Math.round(targetDistance / this.getPathLength() * (this.equidistantCache.points.length - 1));\n return this.equidistantCache.points[idx] || null;\n }\n\n}\n\nvar dataUriRegex = /^\\s*data:(([^/,;]+\\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;\nclass ImageElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'image';\n this.loaded = false;\n var href = this.getHrefAttribute().getString();\n\n if (!href) {\n return;\n }\n\n var isSvg = href.endsWith('.svg') || /^\\s*data:image\\/svg\\+xml/i.test(href);\n document.images.push(this);\n\n if (!isSvg) {\n void this.loadImage(href);\n } else {\n void this.loadSvg(href);\n }\n\n this.isSvg = isSvg;\n }\n\n loadImage(href) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var image = yield _this.document.createImage(href);\n _this.image = image;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n loadSvg(href) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var match = dataUriRegex.exec(href);\n\n if (match) {\n var data = match[5];\n\n if (match[4] === 'base64') {\n _this2.image = atob(data);\n } else {\n _this2.image = decodeURIComponent(data);\n }\n } else {\n try {\n var response = yield _this2.document.fetch(href);\n var svg = yield response.text();\n _this2.image = svg;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n }\n\n _this2.loaded = true;\n })();\n }\n\n renderChildren(ctx) {\n var {\n document,\n image,\n loaded\n } = this;\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!loaded || !image || !width || !height) {\n return;\n }\n\n ctx.save();\n ctx.translate(x, y);\n\n if (this.isSvg) {\n var subDocument = document.canvg.forkString(ctx, this.image, {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true,\n ignoreClear: true,\n offsetX: 0,\n offsetY: 0,\n scaleWidth: width,\n scaleHeight: height\n });\n subDocument.document.documentElement.parent = this;\n void subDocument.render();\n } else {\n var _image = this.image;\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width,\n desiredWidth: _image.width,\n height,\n desiredHeight: _image.height\n });\n\n if (this.loaded) {\n if (typeof _image.complete === 'undefined' || _image.complete) {\n ctx.drawImage(_image, 0, 0);\n }\n }\n }\n\n ctx.restore();\n }\n\n getBoundingBox() {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n}\n\nclass SymbolElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'symbol';\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass SVGFontLoader {\n constructor(document) {\n this.document = document;\n this.loaded = false;\n document.fonts.push(this);\n }\n\n load(fontFamily, url) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var {\n document\n } = _this;\n var svgDocument = yield document.canvg.parser.load(url);\n var fonts = svgDocument.getElementsByTagName('font');\n Array.from(fonts).forEach(fontNode => {\n var font = document.createElement(fontNode);\n document.definitions[fontFamily] = font;\n });\n } catch (err) {\n console.error(\"Error while loading font \\\"\".concat(url, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n}\n\nclass StyleElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'style';\n var css = compressSpaces(Array.from(node.childNodes) // NEED TEST\n .map(_ => _.textContent).join('').replace(/(\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\/)|(^[\\s]*\\/\\/.*)/gm, '') // remove comments\n .replace(/@import.*;/g, '') // remove imports\n );\n var cssDefs = css.split('}');\n cssDefs.forEach(_ => {\n var def = _.trim();\n\n if (!def) {\n return;\n }\n\n var cssParts = def.split('{');\n var cssClasses = cssParts[0].split(',');\n var cssProps = cssParts[1].split(';');\n cssClasses.forEach(_ => {\n var cssClass = _.trim();\n\n if (!cssClass) {\n return;\n }\n\n var props = document.styles[cssClass] || {};\n cssProps.forEach(cssProp => {\n var prop = cssProp.indexOf(':');\n var name = cssProp.substr(0, prop).trim();\n var value = cssProp.substr(prop + 1, cssProp.length - prop).trim();\n\n if (name && value) {\n props[name] = new Property(document, name, value);\n }\n });\n document.styles[cssClass] = props;\n document.stylesSpecificity[cssClass] = getSelectorSpecificity(cssClass);\n\n if (cssClass === '@font-face') {\n // && !nodeEnv\n var fontFamily = props['font-family'].getString().replace(/\"|'/g, '');\n var srcs = props.src.getString().split(',');\n srcs.forEach(src => {\n if (src.indexOf('format(\"svg\")') > 0) {\n var url = parseExternalUrl(src);\n\n if (url) {\n void new SVGFontLoader(document).load(fontFamily, url);\n }\n }\n });\n }\n });\n });\n }\n\n}\nStyleElement.parseExternalUrl = parseExternalUrl;\n\nclass UseElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'use';\n }\n\n setContext(ctx) {\n super.setContext(ctx);\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue()) {\n ctx.translate(xAttr.getPixels('x'), 0);\n }\n\n if (yAttr.hasValue()) {\n ctx.translate(0, yAttr.getPixels('y'));\n }\n }\n\n path(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n element.path(ctx);\n }\n }\n\n renderChildren(ctx) {\n var {\n document,\n element\n } = this;\n\n if (element) {\n var tempSvg = element;\n\n if (element.type === 'symbol') {\n // render me using a temporary svg element in symbol cases (http://www.w3.org/TR/SVG/struct.html#UseElement)\n tempSvg = new SVGElement(document, null);\n tempSvg.attributes.viewBox = new Property(document, 'viewBox', element.getAttribute('viewBox').getString());\n tempSvg.attributes.preserveAspectRatio = new Property(document, 'preserveAspectRatio', element.getAttribute('preserveAspectRatio').getString());\n tempSvg.attributes.overflow = new Property(document, 'overflow', element.getAttribute('overflow').getString());\n tempSvg.children = element.children; // element is still the parent of the children\n\n element.styles.opacity = new Property(document, 'opacity', this.calculateOpacity());\n }\n\n if (tempSvg.type === 'svg') {\n var widthStyle = this.getStyle('width', false, true);\n var heightStyle = this.getStyle('height', false, true); // if symbol or svg, inherit width/height from me\n\n if (widthStyle.hasValue()) {\n tempSvg.attributes.width = new Property(document, 'width', widthStyle.getString());\n }\n\n if (heightStyle.hasValue()) {\n tempSvg.attributes.height = new Property(document, 'height', heightStyle.getString());\n }\n }\n\n var oldParent = tempSvg.parent;\n tempSvg.parent = this;\n tempSvg.render(ctx);\n tempSvg.parent = oldParent;\n }\n }\n\n getBoundingBox(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n return element.getBoundingBox(ctx);\n }\n\n return null;\n }\n\n elementTransform() {\n var {\n document,\n element\n } = this;\n return Transform.fromElement(document, element);\n }\n\n get element() {\n if (!this.cachedElement) {\n this.cachedElement = this.getHrefAttribute().getDefinition();\n }\n\n return this.cachedElement;\n }\n\n}\n\nfunction imGet(img, x, y, width, _height, rgba) {\n return img[y * width * 4 + x * 4 + rgba];\n}\n\nfunction imSet(img, x, y, width, _height, rgba, val) {\n img[y * width * 4 + x * 4 + rgba] = val;\n}\n\nfunction m(matrix, i, v) {\n var mi = matrix[i];\n return mi * v;\n}\n\nfunction c(a, m1, m2, m3) {\n return m1 + Math.cos(a) * m2 + Math.sin(a) * m3;\n}\n\nclass FeColorMatrixElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feColorMatrix';\n var matrix = toNumbers(this.getAttribute('values').getString());\n\n switch (this.getAttribute('type').getString('matrix')) {\n // http://www.w3.org/TR/SVG/filters.html#feColorMatrixElement\n case 'saturate':\n {\n var s = matrix[0];\n /* eslint-disable array-element-newline */\n\n matrix = [0.213 + 0.787 * s, 0.715 - 0.715 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 + 0.285 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 - 0.715 * s, 0.072 + 0.928 * s, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'hueRotate':\n {\n var a = matrix[0] * Math.PI / 180.0;\n /* eslint-disable array-element-newline */\n\n matrix = [c(a, 0.213, 0.787, -0.213), c(a, 0.715, -0.715, -0.715), c(a, 0.072, -0.072, 0.928), 0, 0, c(a, 0.213, -0.213, 0.143), c(a, 0.715, 0.285, 0.140), c(a, 0.072, -0.072, -0.283), 0, 0, c(a, 0.213, -0.213, -0.787), c(a, 0.715, -0.715, 0.715), c(a, 0.072, 0.928, 0.072), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'luminanceToAlpha':\n /* eslint-disable array-element-newline */\n matrix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2125, 0.7154, 0.0721, 0, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n this.matrix = matrix;\n this.includeOpacity = this.getAttribute('includeOpacity').hasValue();\n }\n\n apply(ctx, _x, _y, width, height) {\n // assuming x==0 && y==0 for now\n var {\n includeOpacity,\n matrix\n } = this;\n var srcData = ctx.getImageData(0, 0, width, height);\n\n for (var y = 0; y < height; y++) {\n for (var x = 0; x < width; x++) {\n var r = imGet(srcData.data, x, y, width, height, 0);\n var g = imGet(srcData.data, x, y, width, height, 1);\n var b = imGet(srcData.data, x, y, width, height, 2);\n var a = imGet(srcData.data, x, y, width, height, 3);\n var nr = m(matrix, 0, r) + m(matrix, 1, g) + m(matrix, 2, b) + m(matrix, 3, a) + m(matrix, 4, 1);\n var ng = m(matrix, 5, r) + m(matrix, 6, g) + m(matrix, 7, b) + m(matrix, 8, a) + m(matrix, 9, 1);\n var nb = m(matrix, 10, r) + m(matrix, 11, g) + m(matrix, 12, b) + m(matrix, 13, a) + m(matrix, 14, 1);\n var na = m(matrix, 15, r) + m(matrix, 16, g) + m(matrix, 17, b) + m(matrix, 18, a) + m(matrix, 19, 1);\n\n if (includeOpacity) {\n nr = 0;\n ng = 0;\n nb = 0;\n na *= a / 255;\n }\n\n imSet(srcData.data, x, y, width, height, 0, nr);\n imSet(srcData.data, x, y, width, height, 1, ng);\n imSet(srcData.data, x, y, width, height, 2, nb);\n imSet(srcData.data, x, y, width, height, 3, na);\n }\n }\n\n ctx.clearRect(0, 0, width, height);\n ctx.putImageData(srcData, 0, 0);\n }\n\n}\n\nclass MaskElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'mask';\n }\n\n apply(ctx, element) {\n var {\n document\n } = this; // render as temp svg\n\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!width && !height) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n x = Math.floor(boundingBox.x1);\n y = Math.floor(boundingBox.y1);\n width = Math.floor(boundingBox.width);\n height = Math.floor(boundingBox.height);\n }\n\n var ignoredStyles = this.removeStyles(element, MaskElement.ignoreStyles);\n var maskCanvas = document.createCanvas(x + width, y + height);\n var maskCtx = maskCanvas.getContext('2d');\n document.screen.setDefaults(maskCtx);\n this.renderChildren(maskCtx); // convert mask to alpha with a fake node\n // TODO: refactor out apply from feColorMatrix\n\n new FeColorMatrixElement(document, {\n nodeType: 1,\n childNodes: [],\n attributes: [{\n nodeName: 'type',\n value: 'luminanceToAlpha'\n }, {\n nodeName: 'includeOpacity',\n value: 'true'\n }]\n }).apply(maskCtx, 0, 0, x + width, y + height);\n var tmpCanvas = document.createCanvas(x + width, y + height);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n element.render(tmpCtx);\n tmpCtx.globalCompositeOperation = 'destination-in';\n tmpCtx.fillStyle = maskCtx.createPattern(maskCanvas, 'no-repeat');\n tmpCtx.fillRect(0, 0, x + width, y + height);\n ctx.fillStyle = tmpCtx.createPattern(tmpCanvas, 'no-repeat');\n ctx.fillRect(0, 0, x + width, y + height); // reassign mask\n\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nMaskElement.ignoreStyles = ['mask', 'transform', 'clip-path'];\n\nvar noop = () => {// NOOP\n};\n\nclass ClipPathElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'clipPath';\n }\n\n apply(ctx) {\n var {\n document\n } = this;\n var contextProto = Reflect.getPrototypeOf(ctx);\n var {\n beginPath,\n closePath\n } = ctx;\n\n if (contextProto) {\n contextProto.beginPath = noop;\n contextProto.closePath = noop;\n }\n\n Reflect.apply(beginPath, ctx, []);\n this.children.forEach(child => {\n if (typeof child.path === 'undefined') {\n return;\n }\n\n var transform = typeof child.elementTransform !== 'undefined' ? child.elementTransform() : null; // handle <use />\n\n if (!transform) {\n transform = Transform.fromElement(document, child);\n }\n\n if (transform) {\n transform.apply(ctx);\n }\n\n child.path(ctx);\n\n if (contextProto) {\n contextProto.closePath = closePath;\n }\n\n if (transform) {\n transform.unapply(ctx);\n }\n });\n Reflect.apply(closePath, ctx, []);\n ctx.clip();\n\n if (contextProto) {\n contextProto.beginPath = beginPath;\n contextProto.closePath = closePath;\n }\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass FilterElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'filter';\n }\n\n apply(ctx, element) {\n // render as temp svg\n var {\n document,\n children\n } = this;\n var boundingBox = element.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return;\n }\n\n var px = 0;\n var py = 0;\n children.forEach(child => {\n var efd = child.extraFilterDistance || 0;\n px = Math.max(px, efd);\n py = Math.max(py, efd);\n });\n var width = Math.floor(boundingBox.width);\n var height = Math.floor(boundingBox.height);\n var tmpCanvasWidth = width + 2 * px;\n var tmpCanvasHeight = height + 2 * py;\n\n if (tmpCanvasWidth < 1 || tmpCanvasHeight < 1) {\n return;\n }\n\n var x = Math.floor(boundingBox.x);\n var y = Math.floor(boundingBox.y);\n var ignoredStyles = this.removeStyles(element, FilterElement.ignoreStyles);\n var tmpCanvas = document.createCanvas(tmpCanvasWidth, tmpCanvasHeight);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n tmpCtx.translate(-x + px, -y + py);\n element.render(tmpCtx); // apply filters\n\n children.forEach(child => {\n if (typeof child.apply === 'function') {\n child.apply(tmpCtx, 0, 0, tmpCanvasWidth, tmpCanvasHeight);\n }\n }); // render on me\n\n ctx.drawImage(tmpCanvas, 0, 0, tmpCanvasWidth, tmpCanvasHeight, x - px, y - py, tmpCanvasWidth, tmpCanvasHeight);\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nFilterElement.ignoreStyles = ['filter', 'transform', 'clip-path'];\n\nclass FeDropShadowElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feDropShadow';\n this.addStylesFromStyleDefinition();\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeMorphologyElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feMorphology';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeCompositeElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feComposite';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeGaussianBlurElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feGaussianBlur';\n this.blurRadius = Math.floor(this.getAttribute('stdDeviation').getNumber());\n this.extraFilterDistance = this.blurRadius;\n }\n\n apply(ctx, x, y, width, height) {\n var {\n document,\n blurRadius\n } = this;\n var body = document.window ? document.window.document.body : null;\n var canvas = ctx.canvas; // StackBlur requires canvas be on document\n\n canvas.id = document.getUniqueId();\n\n if (body) {\n canvas.style.display = 'none';\n body.appendChild(canvas);\n }\n\n canvasRGBA(canvas, x, y, width, height, blurRadius);\n\n if (body) {\n body.removeChild(canvas);\n }\n }\n\n}\n\nclass TitleElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'title';\n }\n\n}\n\nclass DescElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'desc';\n }\n\n}\n\nvar elements = {\n 'svg': SVGElement,\n 'rect': RectElement,\n 'circle': CircleElement,\n 'ellipse': EllipseElement,\n 'line': LineElement,\n 'polyline': PolylineElement,\n 'polygon': PolygonElement,\n 'path': PathElement,\n 'pattern': PatternElement,\n 'marker': MarkerElement,\n 'defs': DefsElement,\n 'linearGradient': LinearGradientElement,\n 'radialGradient': RadialGradientElement,\n 'stop': StopElement,\n 'animate': AnimateElement,\n 'animateColor': AnimateColorElement,\n 'animateTransform': AnimateTransformElement,\n 'font': FontElement,\n 'font-face': FontFaceElement,\n 'missing-glyph': MissingGlyphElement,\n 'glyph': GlyphElement,\n 'text': TextElement,\n 'tspan': TSpanElement,\n 'tref': TRefElement,\n 'a': AElement,\n 'textPath': TextPathElement,\n 'image': ImageElement,\n 'g': GElement,\n 'symbol': SymbolElement,\n 'style': StyleElement,\n 'use': UseElement,\n 'mask': MaskElement,\n 'clipPath': ClipPathElement,\n 'filter': FilterElement,\n 'feDropShadow': FeDropShadowElement,\n 'feMorphology': FeMorphologyElement,\n 'feComposite': FeCompositeElement,\n 'feColorMatrix': FeColorMatrixElement,\n 'feGaussianBlur': FeGaussianBlurElement,\n 'title': TitleElement,\n 'desc': DescElement\n};\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction createCanvas(width, height) {\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nfunction createImage(_x) {\n return _createImage.apply(this, arguments);\n}\n\nfunction _createImage() {\n _createImage = _asyncToGenerator(function* (src) {\n var anonymousCrossOrigin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var image = document.createElement('img');\n\n if (anonymousCrossOrigin) {\n image.crossOrigin = 'Anonymous';\n }\n\n return new Promise((resolve, reject) => {\n image.onload = () => {\n resolve(image);\n };\n\n image.onerror = (_event, _source, _lineno, _colno, error) => {\n reject(error);\n };\n\n image.src = src;\n });\n });\n return _createImage.apply(this, arguments);\n}\n\nclass Document {\n constructor(canvg) {\n var {\n rootEmSize = 12,\n emSize = 12,\n createCanvas = Document.createCanvas,\n createImage = Document.createImage,\n anonymousCrossOrigin\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.canvg = canvg;\n this.definitions = Object.create(null);\n this.styles = Object.create(null);\n this.stylesSpecificity = Object.create(null);\n this.images = [];\n this.fonts = [];\n this.emSizeStack = [];\n this.uniqueId = 0;\n this.screen = canvg.screen;\n this.rootEmSize = rootEmSize;\n this.emSize = emSize;\n this.createCanvas = createCanvas;\n this.createImage = this.bindCreateImage(createImage, anonymousCrossOrigin);\n this.screen.wait(this.isImagesLoaded.bind(this));\n this.screen.wait(this.isFontsLoaded.bind(this));\n }\n\n bindCreateImage(createImage, anonymousCrossOrigin) {\n if (typeof anonymousCrossOrigin === 'boolean') {\n return (source, forceAnonymousCrossOrigin) => createImage(source, typeof forceAnonymousCrossOrigin === 'boolean' ? forceAnonymousCrossOrigin : anonymousCrossOrigin);\n }\n\n return createImage;\n }\n\n get window() {\n return this.screen.window;\n }\n\n get fetch() {\n return this.screen.fetch;\n }\n\n get ctx() {\n return this.screen.ctx;\n }\n\n get emSize() {\n var {\n emSizeStack\n } = this;\n return emSizeStack[emSizeStack.length - 1];\n }\n\n set emSize(value) {\n var {\n emSizeStack\n } = this;\n emSizeStack.push(value);\n }\n\n popEmSize() {\n var {\n emSizeStack\n } = this;\n emSizeStack.pop();\n }\n\n getUniqueId() {\n return \"canvg\".concat(++this.uniqueId);\n }\n\n isImagesLoaded() {\n return this.images.every(_ => _.loaded);\n }\n\n isFontsLoaded() {\n return this.fonts.every(_ => _.loaded);\n }\n\n createDocumentElement(document) {\n var documentElement = this.createElement(document.documentElement);\n documentElement.root = true;\n documentElement.addStylesFromStyleDefinition();\n this.documentElement = documentElement;\n return documentElement;\n }\n\n createElement(node) {\n var elementType = node.nodeName.replace(/^[^:]+:/, '');\n var ElementType = Document.elementTypes[elementType];\n\n if (typeof ElementType !== 'undefined') {\n return new ElementType(this, node);\n }\n\n return new UnknownElement(this, node);\n }\n\n createTextNode(node) {\n return new TextNode(this, node);\n }\n\n setViewBox(config) {\n this.screen.setViewBox(_objectSpread$1({\n document: this\n }, config));\n }\n\n}\nDocument.createCanvas = createCanvas;\nDocument.createImage = createImage;\nDocument.elementTypes = elements;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n/**\r\n * SVG renderer on canvas.\r\n */\n\nclass Canvg {\n /**\r\n * Main constructor.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG Document.\r\n * @param options - Rendering options.\r\n */\n constructor(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.parser = new Parser(options);\n this.screen = new Screen(ctx, options);\n this.options = options;\n var document = new Document(this, options);\n var documentElement = document.createDocumentElement(svg);\n this.document = document;\n this.documentElement = documentElement;\n }\n /**\r\n * Create Canvg instance from SVG source string or URL.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static from(ctx, svg) {\n var _arguments = arguments;\n return _asyncToGenerator(function* () {\n var options = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = yield parser.parse(svg);\n return new Canvg(ctx, svgDocument, options);\n })();\n }\n /**\r\n * Create Canvg instance from SVG source string.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static fromString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = parser.parseFromString(svg);\n return new Canvg(ctx, svgDocument, options);\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n fork(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.from(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n forkString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.fromString(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Document is ready promise.\r\n * @returns Ready promise.\r\n */\n\n\n ready() {\n return this.screen.ready();\n }\n /**\r\n * Document is ready value.\r\n * @returns Is ready or not.\r\n */\n\n\n isReady() {\n return this.screen.isReady();\n }\n /**\r\n * Render only first frame, ignoring animations and mouse.\r\n * @param options - Rendering options.\r\n */\n\n\n render() {\n var _arguments2 = arguments,\n _this = this;\n\n return _asyncToGenerator(function* () {\n var options = _arguments2.length > 0 && _arguments2[0] !== undefined ? _arguments2[0] : {};\n\n _this.start(_objectSpread({\n enableRedraw: true,\n ignoreAnimation: true,\n ignoreMouse: true\n }, options));\n\n yield _this.ready();\n\n _this.stop();\n })();\n }\n /**\r\n * Start rendering.\r\n * @param options - Render options.\r\n */\n\n\n start() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var {\n documentElement,\n screen,\n options: baseOptions\n } = this;\n screen.start(documentElement, _objectSpread(_objectSpread({\n enableRedraw: true\n }, baseOptions), options));\n }\n /**\r\n * Stop rendering.\r\n */\n\n\n stop() {\n this.screen.stop();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.documentElement.resize(width, height, preserveAspectRatio);\n }\n\n}\n\nexport { AElement, AnimateColorElement, AnimateElement, AnimateTransformElement, BoundingBox, CB1, CB2, CB3, CB4, Canvg, CircleElement, ClipPathElement, DefsElement, DescElement, Document, Element, EllipseElement, FeColorMatrixElement, FeCompositeElement, FeDropShadowElement, FeGaussianBlurElement, FeMorphologyElement, FilterElement, Font, FontElement, FontFaceElement, GElement, GlyphElement, GradientElement, ImageElement, LineElement, LinearGradientElement, MarkerElement, MaskElement, Matrix, MissingGlyphElement, Mouse, PSEUDO_ZERO, Parser, PathElement, PathParser, PatternElement, Point, PolygonElement, PolylineElement, Property, QB1, QB2, QB3, RadialGradientElement, RectElement, RenderedElement, Rotate, SVGElement, SVGFontLoader, Scale, Screen, Skew, SkewX, SkewY, StopElement, StyleElement, SymbolElement, TRefElement, TSpanElement, TextElement, TextPathElement, TitleElement, Transform, Translate, UnknownElement, UseElement, ViewPort, compressSpaces, Canvg as default, getSelectorSpecificity, normalizeAttributeName, normalizeColor, parseExternalUrl, index as presets, toNumbers, trimLeft, trimRight, vectorMagnitude, vectorsAngle, vectorsRatio };\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==\n"],"names":["getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performance","now","module","exports","process","hr","uptime","Date","getTime","call","this","root","window","g","vendors","suffix","raf","caf","i","length","last","id","queue","frameDuration","callback","_now","next","Math","max","setTimeout","cp","slice","cancelled","e","round","push","handle","fn","cancel","apply","arguments","polyfill","object","requestAnimationFrame","cancelAnimationFrame","color_string","ok","alpha","charAt","substr","replace","toLowerCase","simple_colors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","color_defs","re","example","bits","parseInt","parseFloat","processor","exec","channels","r","b","isNaN","toRGB","toRGBA","toHex","toString","getHelpXML","examples","Array","j","sc","xml","document","createElement","setAttribute","list_item","list_color","RGBColor","example_div","style","cssText","appendChild","createTextNode","list_item_value","$","uncurryThis","$indexOf","arrayMethodIsStrict","nativeIndexOf","indexOf","NEGATIVE_ZERO","target","proto","forced","searchElement","fromIndex","undefined","$reduce","CHROME_VERSION","reduce","callbackfn","isArray","nativeReverse","reverse","test","String","descriptor","getOwnPropertyDescriptor","toLength","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","min","CORRECT_IS_REGEXP_LOGIC","prototype","writable","endsWith","searchString","that","search","endPosition","len","end","fixRegExpWellKnownSymbolLogic","anObject","isObject","speciesConstructor","advanceStringIndex","getMethod","getRegExpFlags","regExpExec","stickyHelpers","fails","UNSUPPORTED_Y","stringSlice","stringIndexOf","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","result","split","BUGGY","SPLIT","nativeSplit","maybeCallNative","internalSplit","separator","limit","O","splitter","string","rx","S","res","done","value","C","RegExp","flags","unicodeMatching","source","lim","p","q","A","lastIndex","z","startsWith","index","asyncGeneratorStep","n","t","o","a","c","u","Promise","resolve","then","_asyncToGenerator","_next","_throw","_defineProperty","Symbol","toPrimitive","TypeError","toPropertyKey","Object","defineProperty","enumerable","configurable","setPrototypeOf","__proto__","hasOwnProperty","constructor","create","cos","sin","Error","PI","lArcFlag","sweepFlag","rX","rY","s","x","y","abs","h","xRot","pow","sqrt","m","l","T","v","cX","cY","phi1","atan2","phi2","relative","x1","y1","x2","y2","NaN","type","_","SMOOTH_CURVE_TO","CURVE_TO","SMOOTH_QUAD_TO","QUAD_TO","MOVE_TO","CLOSE_PATH","HORIZ_LINE_TO","LINE_TO","VERT_LINE_TO","f","N","d","E","M","R","I","L","ROUND","TO_ABS","TO_REL","NORMALIZE_HVZ","ARC","NORMALIZE_ST","QT_TO_C","INFO","SANITIZE","LINE_COMMANDS","MATRIX","ROTATE","TRANSLATE","SCALE","SKEW_X","atan","SKEW_Y","X_AXIS_SYMMETRY","Y_AXIS_SYMMETRY","A_TO_C","ceil","H","ANNOTATE_ARCS","CLONE","CALCULATE_BOUNDS","maxX","minX","maxY","minY","DRAWING_COMMANDS","w","map","U","transform","toAbs","toRel","normalizeHVZ","normalizeST","qtToC","aToC","sanitize","translate","scale","rotate","matrix","skewX","skewY","xSymmetry","ySymmetry","annotateArcs","charCodeAt","curNumber","curCommandType","curCommandRelative","canParseCommandOrComma","curNumberHasExp","curNumberHasExpDigits","curNumberHasDecimal","curArgs","finish","parse","SyntaxError","Number","getPrototypeOf","commands","encode","getBounds","_typeof","obj","iterator","mulTable","shgTable","processCanvasRGBA","canvas","topX","topY","width","height","radius","imageData","getElementById","context","getContext","getImageData","getImageDataFromCanvas","stackEnd","pixels","data","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","BlurStack","stack","stackIn","stackOut","yw","yi","mulSum","shgSum","pr","pg","pb","pa","_i","rInSum","gInSum","bInSum","aInSum","rOutSum","gOutSum","bOutSum","aOutSum","rSum","gSum","bSum","aSum","_i2","rbs","paInitial","_a2","_p","_stackOut","_r","_g","_b","_a","_x","_pr","_pg","_pb","_pa","_rOutSum","_gOutSum","_bOutSum","_aOutSum","_rSum","_gSum","_bSum","_aSum","_i3","yp","_gInSum","_bInSum","_aInSum","_rInSum","_i4","_rbs","_y","_p2","processImageDataRGBA","putImageData","instance","Constructor","_classCallCheck","freeze","offscreen","DOMParser","DOMParserFallback","preset","ignoreAnimation","ignoreMouse","createCanvas","OffscreenCanvas","createImage","url","response","fetch","blob","createImageBitmap","Reflect","deleteProperty","node","_ref","loadImage","compressSpaces","str","trimLeft","trimRight","toNumbers","match","allUppercase","normalizeAttributeName","name","parseExternalUrl","urlMatch","normalizeColor","color","rgbParts","num","isFloat","attributeRegex","idRegex","classRegex","pseudoElementRegex","pseudoClassWithBracketsRegex","pseudoClassRegex","elementRegex","findSelectorMatch","selector","regex","matches","getSelectorSpecificity","specificity","currentSelector","delta","join","PSEUDO_ZERO","vectorMagnitude","vectorsRatio","vectorsAngle","acos","CB1","CB2","CB3","CB4","QB1","QB2","QB3","Property","isNormalizedColor","empty","getString","trim","hasValue","zeroIsValue","isString","regexp","isUrlDefinition","isPixels","asString","setValue","getValue","def","getNumber","getColor","getDpi","getRem","rootEmSize","getEm","emSize","getUnits","getPixels","axisOrIsFontSize","processPercent","axis","isFontSize","viewPort","screen","computeSize","getMilliseconds","getRadians","getDefinition","definitions","getFillStyleDefinition","element","opacity","createGradient","ctx","createPattern","getHrefAttribute","patternTransform","getAttribute","getTextBaseline","textBaselineMapping","addOpacity","commas","ViewPort","viewPorts","clear","setCurrent","removeCurrent","pop","getCurrent","Point","point","defaultValue","parseScale","parsePath","path","points","pathPoints","angleTo","applyTransform","xp","Mouse","working","events","eventElements","onClick","bind","onMouseMove","isWorking","start","onclick","onmousemove","stop","hasEvents","runEvents","cursor","forEach","run","parent","checkPath","_ref2","isPointInPath","checkBoundingBox","boundingBox","_ref3","isPointInBox","mapXY","offsetLeft","offsetTop","offsetParent","scrollX","scrollY","event","clientX","clientY","eventTarget","defaultWindow","defaultFetch$1","Screen","FRAMERATE","MAX_VIRTUAL_PIXELS","CLIENT_WIDTH","CLIENT_HEIGHT","mouse","animations","waits","isReadyLock","isFirstRender","intervalId","wait","checker","ready","readyPromise","isReady","every","resolveReady","setDefaults","strokeStyle","lineCap","lineJoin","miterLimit","setViewBox","aspectRatio","desiredWidth","desiredHeight","refX","refY","clip","clipX","clipY","cleanAspectRatio","aspectRatioAlign","aspectRatioMeetOrSlice","align","meetOrSlice","scaleX","scaleY","scaleMin","scaleMax","finalDesiredWidth","finalDesiredHeight","refXProp","refYProp","hasRefs","scaledClipX","scaledClipY","beginPath","moveTo","lineTo","closePath","isMeetMinY","isSliceMaxY","isMeetMinX","isSliceMaxX","enableRedraw","ignoreDimensions","ignoreClear","forceRedraw","scaleWidth","scaleHeight","offsetX","offsetY","render","tick","shouldUpdate","animation","update","widthStyle","getStyle","heightStyle","concat","cWidth","clientWidth","cHeight","clientHeight","viewBox","xRatio","yRatio","_widthStyle","_heightStyle","transformStyle","clearRect","defaultFetch","DefaultDOMParser","Parser","resource","_this","parseFromString","load","parser","checkDocument","err","parserError","getElementsByTagName","textContent","_this2","text","Translate","unapply","applyToPoint","Rotate","transformOrigin","angle","originX","originY","cx","cy","numbers","tx","ty","rad","Scale","scaleSize","Matrix","det","Skew","skew","super","SkewX","SkewY","Transform","transforms","parseTransforms","parseTransform","TransformType","transformTypes","fromElement","transformOriginXProperty","transformOriginYProperty","Element","captureTextNodes","attributes","styles","stylesSpecificity","animationFrozen","animationFrozenValue","children","nodeType","from","attribute","nodeName","addStylesFromStyleDefinition","childNodes","childNode","addChild","textNode","getText","createIfNotExists","attr","_attr","key","skipAncestors","parentStyle","_style","save","mask","applyEffects","filter","setContext","renderChildren","clearContext","restore","clipPathStyleProp","child","ignoreChildTypes","includes","matchesSelector","_node$getAttribute","styleClasses","some","styleClass","existingSpecificity","removeStyles","ignoreStyles","toRestore","styleProp","restoreStyles","isFirstChild","_this$parent","UnknownElement","wrapFontFamily","fontFamily","trimmed","prepareFontStyle","fontStyle","targetFontStyle","prepareFontWeight","fontWeight","targetFontWeight","Font","fontVariant","fontSize","inherit","inheritFont","parts","set","part","variants","weights","BoundingBox","addPoint","addX","addY","addBoundingBox","sumCubic","p0","p1","p2","p3","bezierCurveAdd","forX","b2ac","t1","t2","addBezierCurve","p0x","p0y","p1x","p1y","p2x","p2y","p3x","p3y","addQuadraticCurve","cp1x","cp1y","cp2x","cp2y","PathParser","control","current","command","previousCommand","angles","reset","isEnd","getPoint","xProp","yProp","makeAbsolute","getAsControlPoint","getAsCurrentPoint","getReflectedControlPoint","ox","oy","addMarker","priorTo","addMarkerAngle","getMarkerPoints","getMarkerAngles","RenderedElement","modifiedEmSizeStack","calculateOpacity","opacityStyle","fromMeasure","fillStyleProp","fillOpacityStyleProp","strokeStyleProp","strokeOpacityProp","fillStyle","_fillStyle","_fillStyle2","_strokeStyle","_strokeStyle2","strokeWidthStyleProp","newLineWidth","lineWidth","strokeLinecapStyleProp","strokeLinejoinStyleProp","strokeMiterlimitProp","strokeDasharrayStyleProp","strokeDashoffsetProp","gaps","setLineDash","webkitLineDash","mozDash","offset","lineDashOffset","webkitLineDashOffset","mozDashOffset","font","fontStyleProp","fontStyleStyleProp","fontVariantStyleProp","fontWeightStyleProp","fontSizeStyleProp","fontFamilyStyleProp","globalAlpha","popEmSize","PathElement","pathParser","pathM","pathL","pathH","pathV","pathC","pathS","pathQ","pathT","pathA","pathZ","getBoundingBox","getMarkers","markers","fillRuleStyleProp","fill","setTransform","stroke","markersLastIndex","markerStartStyleProp","markerMidStyleProp","markerEndStyleProp","marker","_marker","_point","_angle","_marker2","_point2","_angle2","controlPoint","currentPoint","bezierCurveTo","quadraticCurveTo","xAxisRotation","currp","cpp","centp","a1","ad","dir","ah","halfWay","sx","sy","arc","Boolean","GlyphElement","horizAdvX","unicode","arabicForm","TextElement","measureCache","textBaseline","initializeCoordinates","leafTexts","textChunkStart","POSITIVE_INFINITY","NEGATIVE_INFINITY","getTElementBoundingBox","adjustChildCoordinatesRecursive","childBoundingBox","getChildBoundingBox","getFontSize","inheritFontSize","measureText","getGlyph","char","glyph","isArabic","prevChar","nextChar","glyphs","maybeGlyph","missingGlyph","getTextFromNode","parentNode","renderChild","renderTElementChildren","renderText","customFont","unitsPerEm","fontFace","ctxFont","isRTL","dx","lw","fillText","strokeText","applyAnchoring","shift","firstElement","textAnchor","adjustChildCoordinatesRecursiveCore","textParent","adjustChildCoordinates","xAttr","yAttr","dxAttr","dyAttr","getInheritedAttribute","measure","measureTargetText","targetText","_measure","parentAttr","TSpanElement","TextNode","SVGElement","_this$node$parentNode","getComputedStyle","getPropertyValue","fontSizeProp","refXAttr","refYAttr","viewBoxAttr","resize","preserveAspectRatio","widthAttr","heightAttr","styleAttr","originWidth","originHeight","preserveAspectRatioAttr","RectElement","rxAttr","ryAttr","ry","KAPPA","CircleElement","EllipseElement","LineElement","getPoints","x0","y0","PolylineElement","PolygonElement","PatternElement","parentOpacityProp","patternSvg","patternCanvas","patternCtx","MarkerElement","orient","markerUnits","markerSvg","overflow","DefsElement","GElement","GradientElement","attributesToInherit","stops","getGradientUnits","stopsContainer","inheritStopContainer","gradient","getGradient","addParentOpacity","addColorStop","rootView","rect","group","attributeToInherit","LinearGradientElement","isBoundingBoxUnits","createLinearGradient","RadialGradientElement","fx","fy","fr","createRadialGradient","StopElement","stopOpacity","stopColor","AnimateElement","duration","initialValue","initialUnits","removed","frozen","begin","maxDuration","to","values","valuesAttr","getProperty","attributeType","attributeName","calcValue","progress","getProgress","newValue","prop","updated","typeAttr","lb","floor","ub","AnimateColorElement","colorFrom","colorTo","AnimateTransformElement","transformFrom","transformTo","FontElement","fontFamilyStyle","FontFaceElement","ascent","descent","MissingGlyphElement","TRefElement","firstChild","AElement","hasText","open","ownKeys$2","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","_objectSpread$2","getOwnPropertyDescriptors","defineProperties","TextPathElement","textWidth","textHeight","pathLength","glyphInfo","letterSpacingCache","measuresCache","Map","pathElement","dataArray","parsePathData","theta","dTheta","psi","fs","setTextData","textDecoration","rotation","partialText","getLetterSpacingAt","idx","findSegmentToFitChar","anchor","textFullWidth","fullPathWidth","spacesNumber","inputOffset","dy","charI","glyphWidth","splineStep","getEquidistantPointOnPath","segment","dyX","dyY","has","get","chars","thisSpacing","parentSpacing","letterSpacing","textLen","dxSum","acc","cur","getPathLength","startOffset","nextOffset","pathCommands","startX","startY","nextCommandType","calcLength","commandType","getLineLength","getPointOnCubicBezier","getPointOnQuadraticBezier","inc","getPointOnEllipticalArc","getPointOnLine","dist","fromX","fromY","rise","pt","ix","iy","pRise","pRun","getPointOnPath","distance","fullLen","cumulativePathLength","currentT","pct","p4x","p4y","cosPsi","sinPsi","buildEquidistantCache","inputStep","inputPrecision","precision","step","equidistantCache","targetDistance","dataUriRegex","ImageElement","loaded","href","isSvg","images","loadSvg","image","console","error","atob","decodeURIComponent","svg","subDocument","canvg","forkString","documentElement","_image","complete","drawImage","SymbolElement","SVGFontLoader","fonts","fontNode","StyleElement","css","cssParts","cssClasses","cssProps","cssClass","props","cssProp","src","UseElement","tempSvg","oldParent","elementTransform","cachedElement","imGet","img","_height","rgba","imSet","val","m1","m2","m3","FeColorMatrixElement","includeOpacity","srcData","nr","ng","nb","na","MaskElement","ignoredStyles","maskCanvas","maskCtx","tmpCanvas","tmpCtx","globalCompositeOperation","fillRect","noop","ClipPathElement","contextProto","FilterElement","px","py","efd","extraFilterDistance","tmpCanvasWidth","tmpCanvasHeight","FeDropShadowElement","_width","FeMorphologyElement","FeCompositeElement","FeGaussianBlurElement","blurRadius","body","getUniqueId","display","removeChild","TitleElement","DescElement","ownKeys$1","_createImage","anonymousCrossOrigin","crossOrigin","reject","onload","onerror","_event","_source","_lineno","_colno","Document","emSizeStack","uniqueId","bindCreateImage","isImagesLoaded","isFontsLoaded","forceAnonymousCrossOrigin","createDocumentElement","elementType","ElementType","elementTypes","config","_objectSpread$1","ownKeys","_objectSpread","Canvg","options","_arguments","svgDocument","fromString","fork","_arguments2","baseOptions"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"661.main.js","mappings":"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","sources":["webpack://@egovernments/digit-ui-libraries/./node_modules/performance-now/lib/performance-now.js","webpack://@egovernments/digit-ui-libraries/./node_modules/raf/index.js","webpack://@egovernments/digit-ui-libraries/./node_modules/rgbcolor/index.js","webpack://@egovernments/digit-ui-libraries/./node_modules/core-js/modules/es.array.index-of.js","webpack://@egovernments/digit-ui-libraries/./node_modules/core-js/modules/es.array.reduce.js","webpack://@egovernments/digit-ui-libraries/./node_modules/core-js/modules/es.array.reverse.js","webpack://@egovernments/digit-ui-libraries/./node_modules/core-js/modules/es.string.ends-with.js","webpack://@egovernments/digit-ui-libraries/./node_modules/core-js/modules/es.string.split.js","webpack://@egovernments/digit-ui-libraries/./node_modules/core-js/modules/es.string.starts-with.js","webpack://@egovernments/digit-ui-libraries/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://@egovernments/digit-ui-libraries/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://@egovernments/digit-ui-libraries/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://@egovernments/digit-ui-libraries/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://@egovernments/digit-ui-libraries/./node_modules/svg-pathdata/lib/SVGPathData.module.js","webpack://@egovernments/digit-ui-libraries/./node_modules/stackblur-canvas/dist/stackblur-es.js","webpack://@egovernments/digit-ui-libraries/./node_modules/canvg/lib/index.es.js"],"sourcesContent":["// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","/*\n\tBased on rgbcolor.js by Stoyan Stefanov <sstoo@gmail.com>\n\thttp://www.phpied.com/rgb-color-parser-in-javascript/\n*/\n\nmodule.exports = function(color_string) {\n this.ok = false;\n this.alpha = 1.0;\n\n // strip any leading #\n if (color_string.charAt(0) == '#') { // remove # if any\n color_string = color_string.substr(1,6);\n }\n\n color_string = color_string.replace(/ /g,'');\n color_string = color_string.toLowerCase();\n\n // before getting into regexps, try simple matches\n // and overwrite the input\n var simple_colors = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dodgerblue: '1e90ff',\n feldspar: 'd19275',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred : 'cd5c5c',\n indigo : '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgrey: 'd3d3d3',\n lightgreen: '90ee90',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslateblue: '8470ff',\n lightslategray: '778899',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '00ff00',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'ff00ff',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370d8',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'd87093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '663399',\n red: 'ff0000',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n violetred: 'd02090',\n wheat: 'f5deb3',\n white: 'ffffff',\n whitesmoke: 'f5f5f5',\n yellow: 'ffff00',\n yellowgreen: '9acd32'\n };\n color_string = simple_colors[color_string] || color_string;\n // emd of simple type-in colors\n\n // array of color definition objects\n var color_defs = [\n {\n re: /^rgba\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*((?:\\d?\\.)?\\d)\\)$/,\n example: ['rgba(123, 234, 45, 0.8)', 'rgba(255,234,245,1.0)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3]),\n parseFloat(bits[4])\n ];\n }\n },\n {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3])\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n example: ['#00ff00', '336699'],\n process: function (bits){\n return [\n parseInt(bits[1], 16),\n parseInt(bits[2], 16),\n parseInt(bits[3], 16)\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n example: ['#fb0', 'f0f'],\n process: function (bits){\n return [\n parseInt(bits[1] + bits[1], 16),\n parseInt(bits[2] + bits[2], 16),\n parseInt(bits[3] + bits[3], 16)\n ];\n }\n }\n ];\n\n // search through the definitions to find a match\n for (var i = 0; i < color_defs.length; i++) {\n var re = color_defs[i].re;\n var processor = color_defs[i].process;\n var bits = re.exec(color_string);\n if (bits) {\n var channels = processor(bits);\n this.r = channels[0];\n this.g = channels[1];\n this.b = channels[2];\n if (channels.length > 3) {\n this.alpha = channels[3];\n }\n this.ok = true;\n }\n\n }\n\n // validate/cleanup values\n this.r = (this.r < 0 || isNaN(this.r)) ? 0 : ((this.r > 255) ? 255 : this.r);\n this.g = (this.g < 0 || isNaN(this.g)) ? 0 : ((this.g > 255) ? 255 : this.g);\n this.b = (this.b < 0 || isNaN(this.b)) ? 0 : ((this.b > 255) ? 255 : this.b);\n this.alpha = (this.alpha < 0) ? 0 : ((this.alpha > 1.0 || isNaN(this.alpha)) ? 1.0 : this.alpha);\n\n // some getters\n this.toRGB = function () {\n return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';\n }\n this.toRGBA = function () {\n return 'rgba(' + this.r + ', ' + this.g + ', ' + this.b + ', ' + this.alpha + ')';\n }\n this.toHex = function () {\n var r = this.r.toString(16);\n var g = this.g.toString(16);\n var b = this.b.toString(16);\n if (r.length == 1) r = '0' + r;\n if (g.length == 1) g = '0' + g;\n if (b.length == 1) b = '0' + b;\n return '#' + r + g + b;\n }\n\n // help\n this.getHelpXML = function () {\n\n var examples = new Array();\n // add regexps\n for (var i = 0; i < color_defs.length; i++) {\n var example = color_defs[i].example;\n for (var j = 0; j < example.length; j++) {\n examples[examples.length] = example[j];\n }\n }\n // add type-in colors\n for (var sc in simple_colors) {\n examples[examples.length] = sc;\n }\n\n var xml = document.createElement('ul');\n xml.setAttribute('id', 'rgbcolor-examples');\n for (var i = 0; i < examples.length; i++) {\n try {\n var list_item = document.createElement('li');\n var list_color = new RGBColor(examples[i]);\n var example_div = document.createElement('div');\n example_div.style.cssText =\n 'margin: 3px; '\n + 'border: 1px solid black; '\n + 'background:' + list_color.toHex() + '; '\n + 'color:' + list_color.toHex()\n ;\n example_div.appendChild(document.createTextNode('test'));\n var list_item_value = document.createTextNode(\n ' ' + examples[i] + ' -> ' + list_color.toRGB() + ' -> ' + list_color.toHex()\n );\n list_item.appendChild(example_div);\n list_item.appendChild(list_item_value);\n xml.appendChild(list_item);\n\n } catch(e){}\n }\n return xml;\n\n }\n\n}\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/environment-v8-version');\nvar IS_NODE = require('../internals/environment-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign -- dirty hack\n if (isArray(this)) this.length = this.length;\n return nativeReverse(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var search = toString(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n return slice(that, end - search.length, end) === search;\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar push = uncurryThis([].push);\nvar stringSlice = uncurryThis(''.slice);\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nvar BUGGY = 'abbc'.split(/(b)*/)[1] === 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length !== 4 ||\n 'ab'.split(/(?:ab)*/).length !== 2 ||\n '.'.split(/(.?)(.?)/).length !== 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length;\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n } : nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = isObject(separator) ? getMethod(separator, SPLIT) : undefined;\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (!BUGGY) {\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n }\n\n var C = speciesConstructor(rx, RegExp);\n var flags = toString(getRegExpFlags(rx));\n var unicodeMatching = !!~stringIndexOf(flags, 'u') || !!~stringIndexOf(flags, 'v');\n if (UNSUPPORTED_Y) {\n if (!~stringIndexOf(flags, 'g')) flags += 'g';\n } else if (!~stringIndexOf(flags, 'y')) flags += 'y';\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return regExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = regExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var search = toString(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n return stringSlice(that, index, index + search.length) === search;\n }\n});\n","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nvar t=function(r,e){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])})(r,e)};function r(r,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function i(){this.constructor=r}t(r,e),r.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}function e(t){var r=\"\";Array.isArray(t)||(t=[t]);for(var e=0;e<t.length;e++){var i=t[e];if(i.type===_.CLOSE_PATH)r+=\"z\";else if(i.type===_.HORIZ_LINE_TO)r+=(i.relative?\"h\":\"H\")+i.x;else if(i.type===_.VERT_LINE_TO)r+=(i.relative?\"v\":\"V\")+i.y;else if(i.type===_.MOVE_TO)r+=(i.relative?\"m\":\"M\")+i.x+\" \"+i.y;else if(i.type===_.LINE_TO)r+=(i.relative?\"l\":\"L\")+i.x+\" \"+i.y;else if(i.type===_.CURVE_TO)r+=(i.relative?\"c\":\"C\")+i.x1+\" \"+i.y1+\" \"+i.x2+\" \"+i.y2+\" \"+i.x+\" \"+i.y;else if(i.type===_.SMOOTH_CURVE_TO)r+=(i.relative?\"s\":\"S\")+i.x2+\" \"+i.y2+\" \"+i.x+\" \"+i.y;else if(i.type===_.QUAD_TO)r+=(i.relative?\"q\":\"Q\")+i.x1+\" \"+i.y1+\" \"+i.x+\" \"+i.y;else if(i.type===_.SMOOTH_QUAD_TO)r+=(i.relative?\"t\":\"T\")+i.x+\" \"+i.y;else{if(i.type!==_.ARC)throw new Error('Unexpected command type \"'+i.type+'\" at index '+e+\".\");r+=(i.relative?\"a\":\"A\")+i.rX+\" \"+i.rY+\" \"+i.xRot+\" \"+ +i.lArcFlag+\" \"+ +i.sweepFlag+\" \"+i.x+\" \"+i.y}}return r}function i(t,r){var e=t[0],i=t[1];return[e*Math.cos(r)-i*Math.sin(r),e*Math.sin(r)+i*Math.cos(r)]}function a(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];for(var e=0;e<t.length;e++)if(\"number\"!=typeof t[e])throw new Error(\"assertNumbers arguments[\"+e+\"] is not a number. \"+typeof t[e]+\" == typeof \"+t[e]);return!0}var n=Math.PI;function o(t,r,e){t.lArcFlag=0===t.lArcFlag?0:1,t.sweepFlag=0===t.sweepFlag?0:1;var a=t.rX,o=t.rY,s=t.x,u=t.y;a=Math.abs(t.rX),o=Math.abs(t.rY);var h=i([(r-s)/2,(e-u)/2],-t.xRot/180*n),c=h[0],y=h[1],p=Math.pow(c,2)/Math.pow(a,2)+Math.pow(y,2)/Math.pow(o,2);1<p&&(a*=Math.sqrt(p),o*=Math.sqrt(p)),t.rX=a,t.rY=o;var m=Math.pow(a,2)*Math.pow(y,2)+Math.pow(o,2)*Math.pow(c,2),O=(t.lArcFlag!==t.sweepFlag?1:-1)*Math.sqrt(Math.max(0,(Math.pow(a,2)*Math.pow(o,2)-m)/m)),l=a*y/o*O,T=-o*c/a*O,v=i([l,T],t.xRot/180*n);t.cX=v[0]+(r+s)/2,t.cY=v[1]+(e+u)/2,t.phi1=Math.atan2((y-T)/o,(c-l)/a),t.phi2=Math.atan2((-y-T)/o,(-c-l)/a),0===t.sweepFlag&&t.phi2>t.phi1&&(t.phi2-=2*n),1===t.sweepFlag&&t.phi2<t.phi1&&(t.phi2+=2*n),t.phi1*=180/n,t.phi2*=180/n}function s(t,r,e){a(t,r,e);var i=t*t+r*r-e*e;if(0>i)return[];if(0===i)return[[t*e/(t*t+r*r),r*e/(t*t+r*r)]];var n=Math.sqrt(i);return[[(t*e+r*n)/(t*t+r*r),(r*e-t*n)/(t*t+r*r)],[(t*e-r*n)/(t*t+r*r),(r*e+t*n)/(t*t+r*r)]]}var u,h=Math.PI/180;function c(t,r,e){return(1-e)*t+e*r}function y(t,r,e,i){return t+Math.cos(i/180*n)*r+Math.sin(i/180*n)*e}function p(t,r,e,i){var a=1e-6,n=r-t,o=e-r,s=3*n+3*(i-e)-6*o,u=6*(o-n),h=3*n;return Math.abs(s)<a?[-h/u]:function(t,r,e){void 0===e&&(e=1e-6);var i=t*t/4-r;if(i<-e)return[];if(i<=e)return[-t/2];var a=Math.sqrt(i);return[-t/2-a,-t/2+a]}(u/s,h/s,a)}function m(t,r,e,i,a){var n=1-a;return t*(n*n*n)+r*(3*n*n*a)+e*(3*n*a*a)+i*(a*a*a)}!function(t){function r(){return u((function(t,r,e){return t.relative&&(void 0!==t.x1&&(t.x1+=r),void 0!==t.y1&&(t.y1+=e),void 0!==t.x2&&(t.x2+=r),void 0!==t.y2&&(t.y2+=e),void 0!==t.x&&(t.x+=r),void 0!==t.y&&(t.y+=e),t.relative=!1),t}))}function e(){var t=NaN,r=NaN,e=NaN,i=NaN;return u((function(a,n,o){return a.type&_.SMOOTH_CURVE_TO&&(a.type=_.CURVE_TO,t=isNaN(t)?n:t,r=isNaN(r)?o:r,a.x1=a.relative?n-t:2*n-t,a.y1=a.relative?o-r:2*o-r),a.type&_.CURVE_TO?(t=a.relative?n+a.x2:a.x2,r=a.relative?o+a.y2:a.y2):(t=NaN,r=NaN),a.type&_.SMOOTH_QUAD_TO&&(a.type=_.QUAD_TO,e=isNaN(e)?n:e,i=isNaN(i)?o:i,a.x1=a.relative?n-e:2*n-e,a.y1=a.relative?o-i:2*o-i),a.type&_.QUAD_TO?(e=a.relative?n+a.x1:a.x1,i=a.relative?o+a.y1:a.y1):(e=NaN,i=NaN),a}))}function n(){var t=NaN,r=NaN;return u((function(e,i,a){if(e.type&_.SMOOTH_QUAD_TO&&(e.type=_.QUAD_TO,t=isNaN(t)?i:t,r=isNaN(r)?a:r,e.x1=e.relative?i-t:2*i-t,e.y1=e.relative?a-r:2*a-r),e.type&_.QUAD_TO){t=e.relative?i+e.x1:e.x1,r=e.relative?a+e.y1:e.y1;var n=e.x1,o=e.y1;e.type=_.CURVE_TO,e.x1=((e.relative?0:i)+2*n)/3,e.y1=((e.relative?0:a)+2*o)/3,e.x2=(e.x+2*n)/3,e.y2=(e.y+2*o)/3}else t=NaN,r=NaN;return e}))}function u(t){var r=0,e=0,i=NaN,a=NaN;return function(n){if(isNaN(i)&&!(n.type&_.MOVE_TO))throw new Error(\"path must start with moveto\");var o=t(n,r,e,i,a);return n.type&_.CLOSE_PATH&&(r=i,e=a),void 0!==n.x&&(r=n.relative?r+n.x:n.x),void 0!==n.y&&(e=n.relative?e+n.y:n.y),n.type&_.MOVE_TO&&(i=r,a=e),o}}function O(t,r,e,i,n,o){return a(t,r,e,i,n,o),u((function(a,s,u,h){var c=a.x1,y=a.x2,p=a.relative&&!isNaN(h),m=void 0!==a.x?a.x:p?0:s,O=void 0!==a.y?a.y:p?0:u;function l(t){return t*t}a.type&_.HORIZ_LINE_TO&&0!==r&&(a.type=_.LINE_TO,a.y=a.relative?0:u),a.type&_.VERT_LINE_TO&&0!==e&&(a.type=_.LINE_TO,a.x=a.relative?0:s),void 0!==a.x&&(a.x=a.x*t+O*e+(p?0:n)),void 0!==a.y&&(a.y=m*r+a.y*i+(p?0:o)),void 0!==a.x1&&(a.x1=a.x1*t+a.y1*e+(p?0:n)),void 0!==a.y1&&(a.y1=c*r+a.y1*i+(p?0:o)),void 0!==a.x2&&(a.x2=a.x2*t+a.y2*e+(p?0:n)),void 0!==a.y2&&(a.y2=y*r+a.y2*i+(p?0:o));var T=t*i-r*e;if(void 0!==a.xRot&&(1!==t||0!==r||0!==e||1!==i))if(0===T)delete a.rX,delete a.rY,delete a.xRot,delete a.lArcFlag,delete a.sweepFlag,a.type=_.LINE_TO;else{var v=a.xRot*Math.PI/180,f=Math.sin(v),N=Math.cos(v),x=1/l(a.rX),d=1/l(a.rY),E=l(N)*x+l(f)*d,A=2*f*N*(x-d),C=l(f)*x+l(N)*d,M=E*i*i-A*r*i+C*r*r,R=A*(t*i+r*e)-2*(E*e*i+C*t*r),g=E*e*e-A*t*e+C*t*t,I=(Math.atan2(R,M-g)+Math.PI)%Math.PI/2,S=Math.sin(I),L=Math.cos(I);a.rX=Math.abs(T)/Math.sqrt(M*l(L)+R*S*L+g*l(S)),a.rY=Math.abs(T)/Math.sqrt(M*l(S)-R*S*L+g*l(L)),a.xRot=180*I/Math.PI}return void 0!==a.sweepFlag&&0>T&&(a.sweepFlag=+!a.sweepFlag),a}))}function l(){return function(t){var r={};for(var e in t)r[e]=t[e];return r}}t.ROUND=function(t){function r(r){return Math.round(r*t)/t}return void 0===t&&(t=1e13),a(t),function(t){return void 0!==t.x1&&(t.x1=r(t.x1)),void 0!==t.y1&&(t.y1=r(t.y1)),void 0!==t.x2&&(t.x2=r(t.x2)),void 0!==t.y2&&(t.y2=r(t.y2)),void 0!==t.x&&(t.x=r(t.x)),void 0!==t.y&&(t.y=r(t.y)),void 0!==t.rX&&(t.rX=r(t.rX)),void 0!==t.rY&&(t.rY=r(t.rY)),t}},t.TO_ABS=r,t.TO_REL=function(){return u((function(t,r,e){return t.relative||(void 0!==t.x1&&(t.x1-=r),void 0!==t.y1&&(t.y1-=e),void 0!==t.x2&&(t.x2-=r),void 0!==t.y2&&(t.y2-=e),void 0!==t.x&&(t.x-=r),void 0!==t.y&&(t.y-=e),t.relative=!0),t}))},t.NORMALIZE_HVZ=function(t,r,e){return void 0===t&&(t=!0),void 0===r&&(r=!0),void 0===e&&(e=!0),u((function(i,a,n,o,s){if(isNaN(o)&&!(i.type&_.MOVE_TO))throw new Error(\"path must start with moveto\");return r&&i.type&_.HORIZ_LINE_TO&&(i.type=_.LINE_TO,i.y=i.relative?0:n),e&&i.type&_.VERT_LINE_TO&&(i.type=_.LINE_TO,i.x=i.relative?0:a),t&&i.type&_.CLOSE_PATH&&(i.type=_.LINE_TO,i.x=i.relative?o-a:o,i.y=i.relative?s-n:s),i.type&_.ARC&&(0===i.rX||0===i.rY)&&(i.type=_.LINE_TO,delete i.rX,delete i.rY,delete i.xRot,delete i.lArcFlag,delete i.sweepFlag),i}))},t.NORMALIZE_ST=e,t.QT_TO_C=n,t.INFO=u,t.SANITIZE=function(t){void 0===t&&(t=0),a(t);var r=NaN,e=NaN,i=NaN,n=NaN;return u((function(a,o,s,u,h){var c=Math.abs,y=!1,p=0,m=0;if(a.type&_.SMOOTH_CURVE_TO&&(p=isNaN(r)?0:o-r,m=isNaN(e)?0:s-e),a.type&(_.CURVE_TO|_.SMOOTH_CURVE_TO)?(r=a.relative?o+a.x2:a.x2,e=a.relative?s+a.y2:a.y2):(r=NaN,e=NaN),a.type&_.SMOOTH_QUAD_TO?(i=isNaN(i)?o:2*o-i,n=isNaN(n)?s:2*s-n):a.type&_.QUAD_TO?(i=a.relative?o+a.x1:a.x1,n=a.relative?s+a.y1:a.y2):(i=NaN,n=NaN),a.type&_.LINE_COMMANDS||a.type&_.ARC&&(0===a.rX||0===a.rY||!a.lArcFlag)||a.type&_.CURVE_TO||a.type&_.SMOOTH_CURVE_TO||a.type&_.QUAD_TO||a.type&_.SMOOTH_QUAD_TO){var O=void 0===a.x?0:a.relative?a.x:a.x-o,l=void 0===a.y?0:a.relative?a.y:a.y-s;p=isNaN(i)?void 0===a.x1?p:a.relative?a.x:a.x1-o:i-o,m=isNaN(n)?void 0===a.y1?m:a.relative?a.y:a.y1-s:n-s;var T=void 0===a.x2?0:a.relative?a.x:a.x2-o,v=void 0===a.y2?0:a.relative?a.y:a.y2-s;c(O)<=t&&c(l)<=t&&c(p)<=t&&c(m)<=t&&c(T)<=t&&c(v)<=t&&(y=!0)}return a.type&_.CLOSE_PATH&&c(o-u)<=t&&c(s-h)<=t&&(y=!0),y?[]:a}))},t.MATRIX=O,t.ROTATE=function(t,r,e){void 0===r&&(r=0),void 0===e&&(e=0),a(t,r,e);var i=Math.sin(t),n=Math.cos(t);return O(n,i,-i,n,r-r*n+e*i,e-r*i-e*n)},t.TRANSLATE=function(t,r){return void 0===r&&(r=0),a(t,r),O(1,0,0,1,t,r)},t.SCALE=function(t,r){return void 0===r&&(r=t),a(t,r),O(t,0,0,r,0,0)},t.SKEW_X=function(t){return a(t),O(1,0,Math.atan(t),1,0,0)},t.SKEW_Y=function(t){return a(t),O(1,Math.atan(t),0,1,0,0)},t.X_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),a(t),O(-1,0,0,1,t,0)},t.Y_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),a(t),O(1,0,0,-1,0,t)},t.A_TO_C=function(){return u((function(t,r,e){return _.ARC===t.type?function(t,r,e){var a,n,s,u;t.cX||o(t,r,e);for(var y=Math.min(t.phi1,t.phi2),p=Math.max(t.phi1,t.phi2)-y,m=Math.ceil(p/90),O=new Array(m),l=r,T=e,v=0;v<m;v++){var f=c(t.phi1,t.phi2,v/m),N=c(t.phi1,t.phi2,(v+1)/m),x=N-f,d=4/3*Math.tan(x*h/4),E=[Math.cos(f*h)-d*Math.sin(f*h),Math.sin(f*h)+d*Math.cos(f*h)],A=E[0],C=E[1],M=[Math.cos(N*h),Math.sin(N*h)],R=M[0],g=M[1],I=[R+d*Math.sin(N*h),g-d*Math.cos(N*h)],S=I[0],L=I[1];O[v]={relative:t.relative,type:_.CURVE_TO};var H=function(r,e){var a=i([r*t.rX,e*t.rY],t.xRot),n=a[0],o=a[1];return[t.cX+n,t.cY+o]};a=H(A,C),O[v].x1=a[0],O[v].y1=a[1],n=H(S,L),O[v].x2=n[0],O[v].y2=n[1],s=H(R,g),O[v].x=s[0],O[v].y=s[1],t.relative&&(O[v].x1-=l,O[v].y1-=T,O[v].x2-=l,O[v].y2-=T,O[v].x-=l,O[v].y-=T),l=(u=[O[v].x,O[v].y])[0],T=u[1]}return O}(t,t.relative?0:r,t.relative?0:e):t}))},t.ANNOTATE_ARCS=function(){return u((function(t,r,e){return t.relative&&(r=0,e=0),_.ARC===t.type&&o(t,r,e),t}))},t.CLONE=l,t.CALCULATE_BOUNDS=function(){var t=function(t){var r={};for(var e in t)r[e]=t[e];return r},i=r(),a=n(),h=e(),c=u((function(r,e,n){var u=h(a(i(t(r))));function O(t){t>c.maxX&&(c.maxX=t),t<c.minX&&(c.minX=t)}function l(t){t>c.maxY&&(c.maxY=t),t<c.minY&&(c.minY=t)}if(u.type&_.DRAWING_COMMANDS&&(O(e),l(n)),u.type&_.HORIZ_LINE_TO&&O(u.x),u.type&_.VERT_LINE_TO&&l(u.y),u.type&_.LINE_TO&&(O(u.x),l(u.y)),u.type&_.CURVE_TO){O(u.x),l(u.y);for(var T=0,v=p(e,u.x1,u.x2,u.x);T<v.length;T++){0<(w=v[T])&&1>w&&O(m(e,u.x1,u.x2,u.x,w))}for(var f=0,N=p(n,u.y1,u.y2,u.y);f<N.length;f++){0<(w=N[f])&&1>w&&l(m(n,u.y1,u.y2,u.y,w))}}if(u.type&_.ARC){O(u.x),l(u.y),o(u,e,n);for(var x=u.xRot/180*Math.PI,d=Math.cos(x)*u.rX,E=Math.sin(x)*u.rX,A=-Math.sin(x)*u.rY,C=Math.cos(x)*u.rY,M=u.phi1<u.phi2?[u.phi1,u.phi2]:-180>u.phi2?[u.phi2+360,u.phi1+360]:[u.phi2,u.phi1],R=M[0],g=M[1],I=function(t){var r=t[0],e=t[1],i=180*Math.atan2(e,r)/Math.PI;return i<R?i+360:i},S=0,L=s(A,-d,0).map(I);S<L.length;S++){(w=L[S])>R&&w<g&&O(y(u.cX,d,A,w))}for(var H=0,U=s(C,-E,0).map(I);H<U.length;H++){var w;(w=U[H])>R&&w<g&&l(y(u.cY,E,C,w))}}return r}));return c.minX=1/0,c.maxX=-1/0,c.minY=1/0,c.maxY=-1/0,c}}(u||(u={}));var O,l=function(){function t(){}return t.prototype.round=function(t){return this.transform(u.ROUND(t))},t.prototype.toAbs=function(){return this.transform(u.TO_ABS())},t.prototype.toRel=function(){return this.transform(u.TO_REL())},t.prototype.normalizeHVZ=function(t,r,e){return this.transform(u.NORMALIZE_HVZ(t,r,e))},t.prototype.normalizeST=function(){return this.transform(u.NORMALIZE_ST())},t.prototype.qtToC=function(){return this.transform(u.QT_TO_C())},t.prototype.aToC=function(){return this.transform(u.A_TO_C())},t.prototype.sanitize=function(t){return this.transform(u.SANITIZE(t))},t.prototype.translate=function(t,r){return this.transform(u.TRANSLATE(t,r))},t.prototype.scale=function(t,r){return this.transform(u.SCALE(t,r))},t.prototype.rotate=function(t,r,e){return this.transform(u.ROTATE(t,r,e))},t.prototype.matrix=function(t,r,e,i,a,n){return this.transform(u.MATRIX(t,r,e,i,a,n))},t.prototype.skewX=function(t){return this.transform(u.SKEW_X(t))},t.prototype.skewY=function(t){return this.transform(u.SKEW_Y(t))},t.prototype.xSymmetry=function(t){return this.transform(u.X_AXIS_SYMMETRY(t))},t.prototype.ySymmetry=function(t){return this.transform(u.Y_AXIS_SYMMETRY(t))},t.prototype.annotateArcs=function(){return this.transform(u.ANNOTATE_ARCS())},t}(),T=function(t){return\" \"===t||\"\\t\"===t||\"\\r\"===t||\"\\n\"===t},v=function(t){return\"0\".charCodeAt(0)<=t.charCodeAt(0)&&t.charCodeAt(0)<=\"9\".charCodeAt(0)},f=function(t){function e(){var r=t.call(this)||this;return r.curNumber=\"\",r.curCommandType=-1,r.curCommandRelative=!1,r.canParseCommandOrComma=!0,r.curNumberHasExp=!1,r.curNumberHasExpDigits=!1,r.curNumberHasDecimal=!1,r.curArgs=[],r}return r(e,t),e.prototype.finish=function(t){if(void 0===t&&(t=[]),this.parse(\" \",t),0!==this.curArgs.length||!this.canParseCommandOrComma)throw new SyntaxError(\"Unterminated command at the path end.\");return t},e.prototype.parse=function(t,r){var e=this;void 0===r&&(r=[]);for(var i=function(t){r.push(t),e.curArgs.length=0,e.canParseCommandOrComma=!0},a=0;a<t.length;a++){var n=t[a],o=!(this.curCommandType!==_.ARC||3!==this.curArgs.length&&4!==this.curArgs.length||1!==this.curNumber.length||\"0\"!==this.curNumber&&\"1\"!==this.curNumber),s=v(n)&&(\"0\"===this.curNumber&&\"0\"===n||o);if(!v(n)||s)if(\"e\"!==n&&\"E\"!==n)if(\"-\"!==n&&\"+\"!==n||!this.curNumberHasExp||this.curNumberHasExpDigits)if(\".\"!==n||this.curNumberHasExp||this.curNumberHasDecimal||o){if(this.curNumber&&-1!==this.curCommandType){var u=Number(this.curNumber);if(isNaN(u))throw new SyntaxError(\"Invalid number ending at \"+a);if(this.curCommandType===_.ARC)if(0===this.curArgs.length||1===this.curArgs.length){if(0>u)throw new SyntaxError('Expected positive number, got \"'+u+'\" at index \"'+a+'\"')}else if((3===this.curArgs.length||4===this.curArgs.length)&&\"0\"!==this.curNumber&&\"1\"!==this.curNumber)throw new SyntaxError('Expected a flag, got \"'+this.curNumber+'\" at index \"'+a+'\"');this.curArgs.push(u),this.curArgs.length===N[this.curCommandType]&&(_.HORIZ_LINE_TO===this.curCommandType?i({type:_.HORIZ_LINE_TO,relative:this.curCommandRelative,x:u}):_.VERT_LINE_TO===this.curCommandType?i({type:_.VERT_LINE_TO,relative:this.curCommandRelative,y:u}):this.curCommandType===_.MOVE_TO||this.curCommandType===_.LINE_TO||this.curCommandType===_.SMOOTH_QUAD_TO?(i({type:this.curCommandType,relative:this.curCommandRelative,x:this.curArgs[0],y:this.curArgs[1]}),_.MOVE_TO===this.curCommandType&&(this.curCommandType=_.LINE_TO)):this.curCommandType===_.CURVE_TO?i({type:_.CURVE_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x2:this.curArgs[2],y2:this.curArgs[3],x:this.curArgs[4],y:this.curArgs[5]}):this.curCommandType===_.SMOOTH_CURVE_TO?i({type:_.SMOOTH_CURVE_TO,relative:this.curCommandRelative,x2:this.curArgs[0],y2:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.QUAD_TO?i({type:_.QUAD_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.ARC&&i({type:_.ARC,relative:this.curCommandRelative,rX:this.curArgs[0],rY:this.curArgs[1],xRot:this.curArgs[2],lArcFlag:this.curArgs[3],sweepFlag:this.curArgs[4],x:this.curArgs[5],y:this.curArgs[6]})),this.curNumber=\"\",this.curNumberHasExpDigits=!1,this.curNumberHasExp=!1,this.curNumberHasDecimal=!1,this.canParseCommandOrComma=!0}if(!T(n))if(\",\"===n&&this.canParseCommandOrComma)this.canParseCommandOrComma=!1;else if(\"+\"!==n&&\"-\"!==n&&\".\"!==n)if(s)this.curNumber=n,this.curNumberHasDecimal=!1;else{if(0!==this.curArgs.length)throw new SyntaxError(\"Unterminated command at index \"+a+\".\");if(!this.canParseCommandOrComma)throw new SyntaxError('Unexpected character \"'+n+'\" at index '+a+\". Command cannot follow comma\");if(this.canParseCommandOrComma=!1,\"z\"!==n&&\"Z\"!==n)if(\"h\"===n||\"H\"===n)this.curCommandType=_.HORIZ_LINE_TO,this.curCommandRelative=\"h\"===n;else if(\"v\"===n||\"V\"===n)this.curCommandType=_.VERT_LINE_TO,this.curCommandRelative=\"v\"===n;else if(\"m\"===n||\"M\"===n)this.curCommandType=_.MOVE_TO,this.curCommandRelative=\"m\"===n;else if(\"l\"===n||\"L\"===n)this.curCommandType=_.LINE_TO,this.curCommandRelative=\"l\"===n;else if(\"c\"===n||\"C\"===n)this.curCommandType=_.CURVE_TO,this.curCommandRelative=\"c\"===n;else if(\"s\"===n||\"S\"===n)this.curCommandType=_.SMOOTH_CURVE_TO,this.curCommandRelative=\"s\"===n;else if(\"q\"===n||\"Q\"===n)this.curCommandType=_.QUAD_TO,this.curCommandRelative=\"q\"===n;else if(\"t\"===n||\"T\"===n)this.curCommandType=_.SMOOTH_QUAD_TO,this.curCommandRelative=\"t\"===n;else{if(\"a\"!==n&&\"A\"!==n)throw new SyntaxError('Unexpected character \"'+n+'\" at index '+a+\".\");this.curCommandType=_.ARC,this.curCommandRelative=\"a\"===n}else r.push({type:_.CLOSE_PATH}),this.canParseCommandOrComma=!0,this.curCommandType=-1}else this.curNumber=n,this.curNumberHasDecimal=\".\"===n}else this.curNumber+=n,this.curNumberHasDecimal=!0;else this.curNumber+=n;else this.curNumber+=n,this.curNumberHasExp=!0;else this.curNumber+=n,this.curNumberHasExpDigits=this.curNumberHasExp}return r},e.prototype.transform=function(t){return Object.create(this,{parse:{value:function(r,e){void 0===e&&(e=[]);for(var i=0,a=Object.getPrototypeOf(this).parse.call(this,r);i<a.length;i++){var n=a[i],o=t(n);Array.isArray(o)?e.push.apply(e,o):e.push(o)}return e}}})},e}(l),_=function(t){function i(r){var e=t.call(this)||this;return e.commands=\"string\"==typeof r?i.parse(r):r,e}return r(i,t),i.prototype.encode=function(){return i.encode(this.commands)},i.prototype.getBounds=function(){var t=u.CALCULATE_BOUNDS();return this.transform(t),t},i.prototype.transform=function(t){for(var r=[],e=0,i=this.commands;e<i.length;e++){var a=t(i[e]);Array.isArray(a)?r.push.apply(r,a):r.push(a)}return this.commands=r,this},i.encode=function(t){return e(t)},i.parse=function(t){var r=new f,e=[];return r.parse(t,e),r.finish(e),e},i.CLOSE_PATH=1,i.MOVE_TO=2,i.HORIZ_LINE_TO=4,i.VERT_LINE_TO=8,i.LINE_TO=16,i.CURVE_TO=32,i.SMOOTH_CURVE_TO=64,i.QUAD_TO=128,i.SMOOTH_QUAD_TO=256,i.ARC=512,i.LINE_COMMANDS=i.LINE_TO|i.HORIZ_LINE_TO|i.VERT_LINE_TO,i.DRAWING_COMMANDS=i.HORIZ_LINE_TO|i.VERT_LINE_TO|i.LINE_TO|i.CURVE_TO|i.SMOOTH_CURVE_TO|i.QUAD_TO|i.SMOOTH_QUAD_TO|i.ARC,i}(l),N=((O={})[_.MOVE_TO]=2,O[_.LINE_TO]=2,O[_.HORIZ_LINE_TO]=1,O[_.VERT_LINE_TO]=1,O[_.CLOSE_PATH]=0,O[_.QUAD_TO]=4,O[_.SMOOTH_QUAD_TO]=2,O[_.CURVE_TO]=6,O[_.SMOOTH_CURVE_TO]=4,O[_.ARC]=7,O);export{N as COMMAND_ARG_COUNTS,_ as SVGPathData,f as SVGPathDataParser,u as SVGPathDataTransformer,e as encodeSVGPath};\n//# sourceMappingURL=SVGPathData.module.js.map\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\n/* eslint-disable no-bitwise -- used for calculations */\n\n/* eslint-disable unicorn/prefer-query-selector -- aiming at\n backward-compatibility */\n\n/**\n* StackBlur - a fast almost Gaussian Blur For Canvas\n*\n* In case you find this class useful - especially in commercial projects -\n* I am not totally unhappy for a small donation to my PayPal account\n* mario@quasimondo.de\n*\n* Or support me on flattr:\n* {@link https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript}.\n*\n* @module StackBlur\n* @author Mario Klingemann\n* Contact: mario@quasimondo.com\n* Website: {@link http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html}\n* Twitter: @quasimondo\n*\n* @copyright (c) 2010 Mario Klingemann\n*\n* Permission is hereby granted, free of charge, to any person\n* obtaining a copy of this software and associated documentation\n* files (the \"Software\"), to deal in the Software without\n* restriction, including without limitation the rights to use,\n* copy, modify, merge, publish, distribute, sublicense, and/or sell\n* copies of the Software, and to permit persons to whom the\n* Software is furnished to do so, subject to the following\n* conditions:\n*\n* The above copyright notice and this permission notice shall be\n* included in all copies or substantial portions of the Software.\n*\n* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n* OTHER DEALINGS IN THE SOFTWARE.\n*/\nvar mulTable = [512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259];\nvar shgTable = [9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24];\n/**\n * @param {string|HTMLImageElement} img\n * @param {string|HTMLCanvasElement} canvas\n * @param {Float} radius\n * @param {boolean} blurAlphaChannel\n * @param {boolean} useOffset\n * @param {boolean} skipStyles\n * @returns {undefined}\n */\n\nfunction processImage(img, canvas, radius, blurAlphaChannel, useOffset, skipStyles) {\n if (typeof img === 'string') {\n img = document.getElementById(img);\n }\n\n if (!img || Object.prototype.toString.call(img).slice(8, -1) === 'HTMLImageElement' && !('naturalWidth' in img)) {\n return;\n }\n\n var dimensionType = useOffset ? 'offset' : 'natural';\n var w = img[dimensionType + 'Width'];\n var h = img[dimensionType + 'Height']; // add ImageBitmap support,can blur texture source\n\n if (Object.prototype.toString.call(img).slice(8, -1) === 'ImageBitmap') {\n w = img.width;\n h = img.height;\n }\n\n if (typeof canvas === 'string') {\n canvas = document.getElementById(canvas);\n }\n\n if (!canvas || !('getContext' in canvas)) {\n return;\n }\n\n if (!skipStyles) {\n canvas.style.width = w + 'px';\n canvas.style.height = h + 'px';\n }\n\n canvas.width = w;\n canvas.height = h;\n var context = canvas.getContext('2d');\n context.clearRect(0, 0, w, h);\n context.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight, 0, 0, w, h);\n\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n if (blurAlphaChannel) {\n processCanvasRGBA(canvas, 0, 0, w, h, radius);\n } else {\n processCanvasRGB(canvas, 0, 0, w, h, radius);\n }\n}\n/**\n * @param {string|HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @throws {Error|TypeError}\n * @returns {ImageData} See {@link https://html.spec.whatwg.org/multipage/canvas.html#imagedata}\n */\n\n\nfunction getImageDataFromCanvas(canvas, topX, topY, width, height) {\n if (typeof canvas === 'string') {\n canvas = document.getElementById(canvas);\n }\n\n if (!canvas || _typeof(canvas) !== 'object' || !('getContext' in canvas)) {\n throw new TypeError('Expecting canvas with `getContext` method ' + 'in processCanvasRGB(A) calls!');\n }\n\n var context = canvas.getContext('2d');\n\n try {\n return context.getImageData(topX, topY, width, height);\n } catch (e) {\n throw new Error('unable to access image data: ' + e);\n }\n}\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\n\n\nfunction processCanvasRGBA(canvas, topX, topY, width, height, radius) {\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n radius |= 0;\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n imageData = processImageDataRGBA(imageData, topX, topY, width, height, radius);\n canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\n\n\nfunction processImageDataRGBA(imageData, topX, topY, width, height, radius) {\n var pixels = imageData.data;\n var div = 2 * radius + 1; // const w4 = width << 2;\n\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n var stackStart = new BlurStack();\n var stack = stackStart;\n var stackEnd;\n\n for (var i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n\n stack.next = stackStart;\n var stackIn = null,\n stackOut = null,\n yw = 0,\n yi = 0;\n var mulSum = mulTable[radius];\n var shgSum = shgTable[radius];\n\n for (var y = 0; y < height; y++) {\n stack = stackStart;\n var pr = pixels[yi],\n pg = pixels[yi + 1],\n pb = pixels[yi + 2],\n pa = pixels[yi + 3];\n\n for (var _i = 0; _i < radiusPlus1; _i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n\n var rInSum = 0,\n gInSum = 0,\n bInSum = 0,\n aInSum = 0,\n rOutSum = radiusPlus1 * pr,\n gOutSum = radiusPlus1 * pg,\n bOutSum = radiusPlus1 * pb,\n aOutSum = radiusPlus1 * pa,\n rSum = sumFactor * pr,\n gSum = sumFactor * pg,\n bSum = sumFactor * pb,\n aSum = sumFactor * pa;\n\n for (var _i2 = 1; _i2 < radiusPlus1; _i2++) {\n var p = yi + ((widthMinus1 < _i2 ? widthMinus1 : _i2) << 2);\n var r = pixels[p],\n g = pixels[p + 1],\n b = pixels[p + 2],\n a = pixels[p + 3];\n var rbs = radiusPlus1 - _i2;\n rSum += (stack.r = r) * rbs;\n gSum += (stack.g = g) * rbs;\n bSum += (stack.b = b) * rbs;\n aSum += (stack.a = a) * rbs;\n rInSum += r;\n gInSum += g;\n bInSum += b;\n aInSum += a;\n stack = stack.next;\n }\n\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var x = 0; x < width; x++) {\n var paInitial = aSum * mulSum >>> shgSum;\n pixels[yi + 3] = paInitial;\n\n if (paInitial !== 0) {\n var _a2 = 255 / paInitial;\n\n pixels[yi] = (rSum * mulSum >>> shgSum) * _a2;\n pixels[yi + 1] = (gSum * mulSum >>> shgSum) * _a2;\n pixels[yi + 2] = (bSum * mulSum >>> shgSum) * _a2;\n } else {\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n }\n\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n aSum -= aOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n aOutSum -= stackIn.a;\n\n var _p = x + radius + 1;\n\n _p = yw + (_p < widthMinus1 ? _p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[_p];\n gInSum += stackIn.g = pixels[_p + 1];\n bInSum += stackIn.b = pixels[_p + 2];\n aInSum += stackIn.a = pixels[_p + 3];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n aSum += aInSum;\n stackIn = stackIn.next;\n var _stackOut = stackOut,\n _r = _stackOut.r,\n _g = _stackOut.g,\n _b = _stackOut.b,\n _a = _stackOut.a;\n rOutSum += _r;\n gOutSum += _g;\n bOutSum += _b;\n aOutSum += _a;\n rInSum -= _r;\n gInSum -= _g;\n bInSum -= _b;\n aInSum -= _a;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x = 0; _x < width; _x++) {\n yi = _x << 2;\n\n var _pr = pixels[yi],\n _pg = pixels[yi + 1],\n _pb = pixels[yi + 2],\n _pa = pixels[yi + 3],\n _rOutSum = radiusPlus1 * _pr,\n _gOutSum = radiusPlus1 * _pg,\n _bOutSum = radiusPlus1 * _pb,\n _aOutSum = radiusPlus1 * _pa,\n _rSum = sumFactor * _pr,\n _gSum = sumFactor * _pg,\n _bSum = sumFactor * _pb,\n _aSum = sumFactor * _pa;\n\n stack = stackStart;\n\n for (var _i3 = 0; _i3 < radiusPlus1; _i3++) {\n stack.r = _pr;\n stack.g = _pg;\n stack.b = _pb;\n stack.a = _pa;\n stack = stack.next;\n }\n\n var yp = width;\n var _gInSum = 0,\n _bInSum = 0,\n _aInSum = 0,\n _rInSum = 0;\n\n for (var _i4 = 1; _i4 <= radius; _i4++) {\n yi = yp + _x << 2;\n\n var _rbs = radiusPlus1 - _i4;\n\n _rSum += (stack.r = _pr = pixels[yi]) * _rbs;\n _gSum += (stack.g = _pg = pixels[yi + 1]) * _rbs;\n _bSum += (stack.b = _pb = pixels[yi + 2]) * _rbs;\n _aSum += (stack.a = _pa = pixels[yi + 3]) * _rbs;\n _rInSum += _pr;\n _gInSum += _pg;\n _bInSum += _pb;\n _aInSum += _pa;\n stack = stack.next;\n\n if (_i4 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y = 0; _y < height; _y++) {\n var _p2 = yi << 2;\n\n pixels[_p2 + 3] = _pa = _aSum * mulSum >>> shgSum;\n\n if (_pa > 0) {\n _pa = 255 / _pa;\n pixels[_p2] = (_rSum * mulSum >>> shgSum) * _pa;\n pixels[_p2 + 1] = (_gSum * mulSum >>> shgSum) * _pa;\n pixels[_p2 + 2] = (_bSum * mulSum >>> shgSum) * _pa;\n } else {\n pixels[_p2] = pixels[_p2 + 1] = pixels[_p2 + 2] = 0;\n }\n\n _rSum -= _rOutSum;\n _gSum -= _gOutSum;\n _bSum -= _bOutSum;\n _aSum -= _aOutSum;\n _rOutSum -= stackIn.r;\n _gOutSum -= stackIn.g;\n _bOutSum -= stackIn.b;\n _aOutSum -= stackIn.a;\n _p2 = _x + ((_p2 = _y + radiusPlus1) < heightMinus1 ? _p2 : heightMinus1) * width << 2;\n _rSum += _rInSum += stackIn.r = pixels[_p2];\n _gSum += _gInSum += stackIn.g = pixels[_p2 + 1];\n _bSum += _bInSum += stackIn.b = pixels[_p2 + 2];\n _aSum += _aInSum += stackIn.a = pixels[_p2 + 3];\n stackIn = stackIn.next;\n _rOutSum += _pr = stackOut.r;\n _gOutSum += _pg = stackOut.g;\n _bOutSum += _pb = stackOut.b;\n _aOutSum += _pa = stackOut.a;\n _rInSum -= _pr;\n _gInSum -= _pg;\n _bInSum -= _pb;\n _aInSum -= _pa;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\n\n\nfunction processCanvasRGB(canvas, topX, topY, width, height, radius) {\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n radius |= 0;\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n imageData = processImageDataRGB(imageData, topX, topY, width, height, radius);\n canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\n\n\nfunction processImageDataRGB(imageData, topX, topY, width, height, radius) {\n var pixels = imageData.data;\n var div = 2 * radius + 1; // const w4 = width << 2;\n\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n var stackStart = new BlurStack();\n var stack = stackStart;\n var stackEnd;\n\n for (var i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n\n stack.next = stackStart;\n var stackIn = null;\n var stackOut = null;\n var mulSum = mulTable[radius];\n var shgSum = shgTable[radius];\n var p, rbs;\n var yw = 0,\n yi = 0;\n\n for (var y = 0; y < height; y++) {\n var pr = pixels[yi],\n pg = pixels[yi + 1],\n pb = pixels[yi + 2],\n rOutSum = radiusPlus1 * pr,\n gOutSum = radiusPlus1 * pg,\n bOutSum = radiusPlus1 * pb,\n rSum = sumFactor * pr,\n gSum = sumFactor * pg,\n bSum = sumFactor * pb;\n stack = stackStart;\n\n for (var _i5 = 0; _i5 < radiusPlus1; _i5++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack = stack.next;\n }\n\n var rInSum = 0,\n gInSum = 0,\n bInSum = 0;\n\n for (var _i6 = 1; _i6 < radiusPlus1; _i6++) {\n p = yi + ((widthMinus1 < _i6 ? widthMinus1 : _i6) << 2);\n rSum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - _i6);\n gSum += (stack.g = pg = pixels[p + 1]) * rbs;\n bSum += (stack.b = pb = pixels[p + 2]) * rbs;\n rInSum += pr;\n gInSum += pg;\n bInSum += pb;\n stack = stack.next;\n }\n\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var x = 0; x < width; x++) {\n pixels[yi] = rSum * mulSum >>> shgSum;\n pixels[yi + 1] = gSum * mulSum >>> shgSum;\n pixels[yi + 2] = bSum * mulSum >>> shgSum;\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n p = yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[p];\n gInSum += stackIn.g = pixels[p + 1];\n bInSum += stackIn.b = pixels[p + 2];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n stackIn = stackIn.next;\n rOutSum += pr = stackOut.r;\n gOutSum += pg = stackOut.g;\n bOutSum += pb = stackOut.b;\n rInSum -= pr;\n gInSum -= pg;\n bInSum -= pb;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x2 = 0; _x2 < width; _x2++) {\n yi = _x2 << 2;\n\n var _pr2 = pixels[yi],\n _pg2 = pixels[yi + 1],\n _pb2 = pixels[yi + 2],\n _rOutSum2 = radiusPlus1 * _pr2,\n _gOutSum2 = radiusPlus1 * _pg2,\n _bOutSum2 = radiusPlus1 * _pb2,\n _rSum2 = sumFactor * _pr2,\n _gSum2 = sumFactor * _pg2,\n _bSum2 = sumFactor * _pb2;\n\n stack = stackStart;\n\n for (var _i7 = 0; _i7 < radiusPlus1; _i7++) {\n stack.r = _pr2;\n stack.g = _pg2;\n stack.b = _pb2;\n stack = stack.next;\n }\n\n var _rInSum2 = 0,\n _gInSum2 = 0,\n _bInSum2 = 0;\n\n for (var _i8 = 1, yp = width; _i8 <= radius; _i8++) {\n yi = yp + _x2 << 2;\n _rSum2 += (stack.r = _pr2 = pixels[yi]) * (rbs = radiusPlus1 - _i8);\n _gSum2 += (stack.g = _pg2 = pixels[yi + 1]) * rbs;\n _bSum2 += (stack.b = _pb2 = pixels[yi + 2]) * rbs;\n _rInSum2 += _pr2;\n _gInSum2 += _pg2;\n _bInSum2 += _pb2;\n stack = stack.next;\n\n if (_i8 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x2;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y2 = 0; _y2 < height; _y2++) {\n p = yi << 2;\n pixels[p] = _rSum2 * mulSum >>> shgSum;\n pixels[p + 1] = _gSum2 * mulSum >>> shgSum;\n pixels[p + 2] = _bSum2 * mulSum >>> shgSum;\n _rSum2 -= _rOutSum2;\n _gSum2 -= _gOutSum2;\n _bSum2 -= _bOutSum2;\n _rOutSum2 -= stackIn.r;\n _gOutSum2 -= stackIn.g;\n _bOutSum2 -= stackIn.b;\n p = _x2 + ((p = _y2 + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width << 2;\n _rSum2 += _rInSum2 += stackIn.r = pixels[p];\n _gSum2 += _gInSum2 += stackIn.g = pixels[p + 1];\n _bSum2 += _bInSum2 += stackIn.b = pixels[p + 2];\n stackIn = stackIn.next;\n _rOutSum2 += _pr2 = stackOut.r;\n _gOutSum2 += _pg2 = stackOut.g;\n _bOutSum2 += _pb2 = stackOut.b;\n _rInSum2 -= _pr2;\n _gInSum2 -= _pg2;\n _bInSum2 -= _pb2;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n *\n */\n\n\nvar BlurStack =\n/**\n * Set properties.\n */\nfunction BlurStack() {\n _classCallCheck(this, BlurStack);\n\n this.r = 0;\n this.g = 0;\n this.b = 0;\n this.a = 0;\n this.next = null;\n};\n\nexport { BlurStack, processCanvasRGB as canvasRGB, processCanvasRGBA as canvasRGBA, processImage as image, processImageDataRGB as imageDataRGB, processImageDataRGBA as imageDataRGBA };\n","import 'core-js/modules/es.promise.js';\nimport _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';\nimport 'core-js/modules/es.string.match.js';\nimport 'core-js/modules/es.string.replace.js';\nimport 'core-js/modules/es.string.starts-with.js';\nimport 'core-js/modules/es.array.iterator.js';\nimport 'core-js/modules/web.dom-collections.iterator.js';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport 'core-js/modules/es.array.reduce.js';\nimport 'core-js/modules/es.string.ends-with.js';\nimport 'core-js/modules/es.string.split.js';\nimport requestAnimationFrame from 'raf';\nimport 'core-js/modules/es.string.trim.js';\nimport RGBColor from 'rgbcolor';\nimport 'core-js/modules/es.array.index-of.js';\nimport 'core-js/modules/es.string.includes.js';\nimport 'core-js/modules/es.array.reverse.js';\nimport { SVGPathData } from 'svg-pathdata';\nimport 'core-js/modules/es.regexp.to-string.js';\nimport { canvasRGBA } from 'stackblur-canvas';\n\n/**\r\n * Options preset for `OffscreenCanvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @returns Preset object.\r\n */\nfunction offscreen() {\n var {\n DOMParser: DOMParserFallback\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var preset = {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser: DOMParserFallback,\n\n createCanvas(width, height) {\n return new OffscreenCanvas(width, height);\n },\n\n createImage(url) {\n return _asyncToGenerator(function* () {\n var response = yield fetch(url);\n var blob = yield response.blob();\n var img = yield createImageBitmap(blob);\n return img;\n })();\n }\n\n };\n\n if (typeof DOMParser !== 'undefined' || typeof DOMParserFallback === 'undefined') {\n Reflect.deleteProperty(preset, 'DOMParser');\n }\n\n return preset;\n}\n\n/**\r\n * Options preset for `node-canvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @param config.canvas - `node-canvas` exports.\r\n * @param config.fetch - WHATWG-compatible `fetch` function.\r\n * @returns Preset object.\r\n */\nfunction node(_ref) {\n var {\n DOMParser,\n canvas,\n fetch\n } = _ref;\n return {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser,\n fetch,\n createCanvas: canvas.createCanvas,\n createImage: canvas.loadImage\n };\n}\n\nvar index = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\toffscreen: offscreen,\n\tnode: node\n});\n\n/**\r\n * HTML-safe compress white-spaces.\r\n * @param str - String to compress.\r\n * @returns String.\r\n */\nfunction compressSpaces(str) {\n return str.replace(/(?!\\u3000)\\s+/gm, ' ');\n}\n/**\r\n * HTML-safe left trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimLeft(str) {\n return str.replace(/^[\\n \\t]+/, '');\n}\n/**\r\n * HTML-safe right trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimRight(str) {\n return str.replace(/[\\n \\t]+$/, '');\n}\n/**\r\n * String to numbers array.\r\n * @param str - Numbers string.\r\n * @returns Numbers array.\r\n */\n\nfunction toNumbers(str) {\n var matches = (str || '').match(/-?(\\d+(?:\\.\\d*(?:[eE][+-]?\\d+)?)?|\\.\\d+)(?=\\D|$)/gm) || [];\n return matches.map(parseFloat);\n} // Microsoft Edge fix\n\nvar allUppercase = /^[A-Z-]+$/;\n/**\r\n * Normalize attribute name.\r\n * @param name - Attribute name.\r\n * @returns Normalized attribute name.\r\n */\n\nfunction normalizeAttributeName(name) {\n if (allUppercase.test(name)) {\n return name.toLowerCase();\n }\n\n return name;\n}\n/**\r\n * Parse external URL.\r\n * @param url - CSS url string.\r\n * @returns Parsed URL.\r\n */\n\nfunction parseExternalUrl(url) {\n // single quotes [2]\n // v double quotes [3]\n // v v no quotes [4]\n // v v v\n var urlMatch = /url\\(('([^']+)'|\"([^\"]+)\"|([^'\")]+))\\)/.exec(url) || [];\n return urlMatch[2] || urlMatch[3] || urlMatch[4];\n}\n/**\r\n * Transform floats to integers in rgb colors.\r\n * @param color - Color to normalize.\r\n * @returns Normalized color.\r\n */\n\nfunction normalizeColor(color) {\n if (!color.startsWith('rgb')) {\n return color;\n }\n\n var rgbParts = 3;\n var normalizedColor = color.replace(/\\d+(\\.\\d+)?/g, (num, isFloat) => rgbParts-- && isFloat ? String(Math.round(parseFloat(num))) : num);\n return normalizedColor;\n}\n\n// slightly modified version of https://github.com/keeganstreet/specificity/blob/master/specificity.js\nvar attributeRegex = /(\\[[^\\]]+\\])/g;\nvar idRegex = /(#[^\\s+>~.[:]+)/g;\nvar classRegex = /(\\.[^\\s+>~.[:]+)/g;\nvar pseudoElementRegex = /(::[^\\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi;\nvar pseudoClassWithBracketsRegex = /(:[\\w-]+\\([^)]*\\))/gi;\nvar pseudoClassRegex = /(:[^\\s+>~.[:]+)/g;\nvar elementRegex = /([^\\s+>~.[:]+)/g;\n\nfunction findSelectorMatch(selector, regex) {\n var matches = regex.exec(selector);\n\n if (!matches) {\n return [selector, 0];\n }\n\n return [selector.replace(regex, ' '), matches.length];\n}\n/**\r\n * Measure selector specificity.\r\n * @param selector - Selector to measure.\r\n * @returns Specificity.\r\n */\n\n\nfunction getSelectorSpecificity(selector) {\n var specificity = [0, 0, 0];\n var currentSelector = selector.replace(/:not\\(([^)]*)\\)/g, ' $1 ').replace(/{[\\s\\S]*/gm, ' ');\n var delta = 0;\n [currentSelector, delta] = findSelectorMatch(currentSelector, attributeRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, idRegex);\n specificity[0] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, classRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoElementRegex);\n specificity[2] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassWithBracketsRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassRegex);\n specificity[1] += delta;\n currentSelector = currentSelector.replace(/[*\\s+>~]/g, ' ').replace(/[#.]/g, ' ');\n [currentSelector, delta] = findSelectorMatch(currentSelector, elementRegex); // lgtm [js/useless-assignment-to-local]\n\n specificity[2] += delta;\n return specificity.join('');\n}\n\nvar PSEUDO_ZERO = .00000001;\n/**\r\n * Vector magnitude.\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorMagnitude(v) {\n return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2));\n}\n/**\r\n * Ratio between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsRatio(u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vectorMagnitude(u) * vectorMagnitude(v));\n}\n/**\r\n * Angle between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vectorsRatio(u, v));\n}\nfunction CB1(t) {\n return t * t * t;\n}\nfunction CB2(t) {\n return 3 * t * t * (1 - t);\n}\nfunction CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n}\nfunction CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n}\nfunction QB1(t) {\n return t * t;\n}\nfunction QB2(t) {\n return 2 * t * (1 - t);\n}\nfunction QB3(t) {\n return (1 - t) * (1 - t);\n}\n\nclass Property {\n constructor(document, name, value) {\n this.document = document;\n this.name = name;\n this.value = value;\n this.isNormalizedColor = false;\n }\n\n static empty(document) {\n return new Property(document, 'EMPTY', '');\n }\n\n split() {\n var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ' ';\n var {\n document,\n name\n } = this;\n return compressSpaces(this.getString()).trim().split(separator).map(value => new Property(document, name, value));\n }\n\n hasValue(zeroIsValue) {\n var {\n value\n } = this;\n return value !== null && value !== '' && (zeroIsValue || value !== 0) && typeof value !== 'undefined';\n }\n\n isString(regexp) {\n var {\n value\n } = this;\n var result = typeof value === 'string';\n\n if (!result || !regexp) {\n return result;\n }\n\n return regexp.test(value);\n }\n\n isUrlDefinition() {\n return this.isString(/^url\\(/);\n }\n\n isPixels() {\n if (!this.hasValue()) {\n return false;\n }\n\n var asString = this.getString();\n\n switch (true) {\n case asString.endsWith('px'):\n case /^[0-9]+$/.test(asString):\n return true;\n\n default:\n return false;\n }\n }\n\n setValue(value) {\n this.value = value;\n return this;\n }\n\n getValue(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return this.value;\n }\n\n return def;\n }\n\n getNumber(def) {\n if (!this.hasValue()) {\n if (typeof def === 'undefined') {\n return 0;\n }\n\n return parseFloat(def);\n }\n\n var {\n value\n } = this;\n var n = parseFloat(value);\n\n if (this.isString(/%$/)) {\n n /= 100.0;\n }\n\n return n;\n }\n\n getString(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return typeof this.value === 'undefined' ? '' : String(this.value);\n }\n\n return String(def);\n }\n\n getColor(def) {\n var color = this.getString(def);\n\n if (this.isNormalizedColor) {\n return color;\n }\n\n this.isNormalizedColor = true;\n color = normalizeColor(color);\n this.value = color;\n return color;\n }\n\n getDpi() {\n return 96.0; // TODO: compute?\n }\n\n getRem() {\n return this.document.rootEmSize;\n }\n\n getEm() {\n return this.document.emSize;\n }\n\n getUnits() {\n return this.getString().replace(/[0-9.-]/g, '');\n }\n\n getPixels(axisOrIsFontSize) {\n var processPercent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!this.hasValue()) {\n return 0;\n }\n\n var [axis, isFontSize] = typeof axisOrIsFontSize === 'boolean' ? [undefined, axisOrIsFontSize] : [axisOrIsFontSize];\n var {\n viewPort\n } = this.document.screen;\n\n switch (true) {\n case this.isString(/vmin$/):\n return this.getNumber() / 100.0 * Math.min(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vmax$/):\n return this.getNumber() / 100.0 * Math.max(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vw$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('x');\n\n case this.isString(/vh$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('y');\n\n case this.isString(/rem$/):\n return this.getNumber() * this.getRem();\n\n case this.isString(/em$/):\n return this.getNumber() * this.getEm();\n\n case this.isString(/ex$/):\n return this.getNumber() * this.getEm() / 2.0;\n\n case this.isString(/px$/):\n return this.getNumber();\n\n case this.isString(/pt$/):\n return this.getNumber() * this.getDpi() * (1.0 / 72.0);\n\n case this.isString(/pc$/):\n return this.getNumber() * 15;\n\n case this.isString(/cm$/):\n return this.getNumber() * this.getDpi() / 2.54;\n\n case this.isString(/mm$/):\n return this.getNumber() * this.getDpi() / 25.4;\n\n case this.isString(/in$/):\n return this.getNumber() * this.getDpi();\n\n case this.isString(/%$/) && isFontSize:\n return this.getNumber() * this.getEm();\n\n case this.isString(/%$/):\n return this.getNumber() * viewPort.computeSize(axis);\n\n default:\n {\n var n = this.getNumber();\n\n if (processPercent && n < 1.0) {\n return n * viewPort.computeSize(axis);\n }\n\n return n;\n }\n }\n }\n\n getMilliseconds() {\n if (!this.hasValue()) {\n return 0;\n }\n\n if (this.isString(/ms$/)) {\n return this.getNumber();\n }\n\n return this.getNumber() * 1000;\n }\n\n getRadians() {\n if (!this.hasValue()) {\n return 0;\n }\n\n switch (true) {\n case this.isString(/deg$/):\n return this.getNumber() * (Math.PI / 180.0);\n\n case this.isString(/grad$/):\n return this.getNumber() * (Math.PI / 200.0);\n\n case this.isString(/rad$/):\n return this.getNumber();\n\n default:\n return this.getNumber() * (Math.PI / 180.0);\n }\n }\n\n getDefinition() {\n var asString = this.getString();\n var name = /#([^)'\"]+)/.exec(asString);\n\n if (name) {\n name = name[1];\n }\n\n if (!name) {\n name = asString;\n }\n\n return this.document.definitions[name];\n }\n\n getFillStyleDefinition(element, opacity) {\n var def = this.getDefinition();\n\n if (!def) {\n return null;\n } // gradient\n\n\n if (typeof def.createGradient === 'function') {\n return def.createGradient(this.document.ctx, element, opacity);\n } // pattern\n\n\n if (typeof def.createPattern === 'function') {\n if (def.getHrefAttribute().hasValue()) {\n var patternTransform = def.getAttribute('patternTransform');\n def = def.getHrefAttribute().getDefinition();\n\n if (patternTransform.hasValue()) {\n def.getAttribute('patternTransform', true).setValue(patternTransform.value);\n }\n }\n\n return def.createPattern(this.document.ctx, element, opacity);\n }\n\n return null;\n }\n\n getTextBaseline() {\n if (!this.hasValue()) {\n return null;\n }\n\n return Property.textBaselineMapping[this.getString()];\n }\n\n addOpacity(opacity) {\n var value = this.getColor();\n var len = value.length;\n var commas = 0; // Simulate old RGBColor version, which can't parse rgba.\n\n for (var i = 0; i < len; i++) {\n if (value[i] === ',') {\n commas++;\n }\n\n if (commas === 3) {\n break;\n }\n }\n\n if (opacity.hasValue() && this.isString() && commas !== 3) {\n var color = new RGBColor(value);\n\n if (color.ok) {\n color.alpha = opacity.getNumber();\n value = color.toRGBA();\n }\n }\n\n return new Property(this.document, this.name, value);\n }\n\n}\nProperty.textBaselineMapping = {\n 'baseline': 'alphabetic',\n 'before-edge': 'top',\n 'text-before-edge': 'top',\n 'middle': 'middle',\n 'central': 'middle',\n 'after-edge': 'bottom',\n 'text-after-edge': 'bottom',\n 'ideographic': 'ideographic',\n 'alphabetic': 'alphabetic',\n 'hanging': 'hanging',\n 'mathematical': 'alphabetic'\n};\n\nclass ViewPort {\n constructor() {\n this.viewPorts = [];\n }\n\n clear() {\n this.viewPorts = [];\n }\n\n setCurrent(width, height) {\n this.viewPorts.push({\n width,\n height\n });\n }\n\n removeCurrent() {\n this.viewPorts.pop();\n }\n\n getCurrent() {\n var {\n viewPorts\n } = this;\n return viewPorts[viewPorts.length - 1];\n }\n\n get width() {\n return this.getCurrent().width;\n }\n\n get height() {\n return this.getCurrent().height;\n }\n\n computeSize(d) {\n if (typeof d === 'number') {\n return d;\n }\n\n if (d === 'x') {\n return this.width;\n }\n\n if (d === 'y') {\n return this.height;\n }\n\n return Math.sqrt(Math.pow(this.width, 2) + Math.pow(this.height, 2)) / Math.sqrt(2);\n }\n\n}\n\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n\n static parse(point) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var [x = defaultValue, y = defaultValue] = toNumbers(point);\n return new Point(x, y);\n }\n\n static parseScale(scale) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var [x = defaultValue, y = x] = toNumbers(scale);\n return new Point(x, y);\n }\n\n static parsePath(path) {\n var points = toNumbers(path);\n var len = points.length;\n var pathPoints = [];\n\n for (var i = 0; i < len; i += 2) {\n pathPoints.push(new Point(points[i], points[i + 1]));\n }\n\n return pathPoints;\n }\n\n angleTo(point) {\n return Math.atan2(point.y - this.y, point.x - this.x);\n }\n\n applyTransform(transform) {\n var {\n x,\n y\n } = this;\n var xp = x * transform[0] + y * transform[2] + transform[4];\n var yp = x * transform[1] + y * transform[3] + transform[5];\n this.x = xp;\n this.y = yp;\n }\n\n}\n\nclass Mouse {\n constructor(screen) {\n this.screen = screen;\n this.working = false;\n this.events = [];\n this.eventElements = []; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onClick = this.onClick.bind(this); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onMouseMove = this.onMouseMove.bind(this);\n }\n\n isWorking() {\n return this.working;\n }\n\n start() {\n if (this.working) {\n return;\n }\n\n var {\n screen,\n onClick,\n onMouseMove\n } = this;\n var canvas = screen.ctx.canvas;\n canvas.onclick = onClick;\n canvas.onmousemove = onMouseMove;\n this.working = true;\n }\n\n stop() {\n if (!this.working) {\n return;\n }\n\n var canvas = this.screen.ctx.canvas;\n this.working = false;\n canvas.onclick = null;\n canvas.onmousemove = null;\n }\n\n hasEvents() {\n return this.working && this.events.length > 0;\n }\n\n runEvents() {\n if (!this.working) {\n return;\n }\n\n var {\n screen: document,\n events,\n eventElements\n } = this;\n var {\n style\n } = document.ctx.canvas;\n\n if (style) {\n style.cursor = '';\n }\n\n events.forEach((_ref, i) => {\n var {\n run\n } = _ref;\n var element = eventElements[i];\n\n while (element) {\n run(element);\n element = element.parent;\n }\n }); // done running, clear\n\n this.events = [];\n this.eventElements = [];\n }\n\n checkPath(element, ctx) {\n if (!this.working || !ctx) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref2, i) => {\n var {\n x,\n y\n } = _ref2;\n\n if (!eventElements[i] && ctx.isPointInPath && ctx.isPointInPath(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n checkBoundingBox(element, boundingBox) {\n if (!this.working || !boundingBox) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref3, i) => {\n var {\n x,\n y\n } = _ref3;\n\n if (!eventElements[i] && boundingBox.isPointInBox(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n mapXY(x, y) {\n var {\n window,\n ctx\n } = this.screen;\n var point = new Point(x, y);\n var element = ctx.canvas;\n\n while (element) {\n point.x -= element.offsetLeft;\n point.y -= element.offsetTop;\n element = element.offsetParent;\n }\n\n if (window.scrollX) {\n point.x += window.scrollX;\n }\n\n if (window.scrollY) {\n point.y += window.scrollY;\n }\n\n return point;\n }\n\n onClick(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onclick',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onClick) {\n eventTarget.onClick();\n }\n }\n\n });\n }\n\n onMouseMove(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onmousemove',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onMouseMove) {\n eventTarget.onMouseMove();\n }\n }\n\n });\n }\n\n}\n\nvar defaultWindow = typeof window !== 'undefined' ? window : null;\nvar defaultFetch$1 = typeof fetch !== 'undefined' ? fetch.bind(undefined) // `fetch` depends on context: `someObject.fetch(...)` will throw error.\n: null;\nclass Screen {\n constructor(ctx) {\n var {\n fetch = defaultFetch$1,\n window = defaultWindow\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.ctx = ctx;\n this.FRAMERATE = 30;\n this.MAX_VIRTUAL_PIXELS = 30000;\n this.CLIENT_WIDTH = 800;\n this.CLIENT_HEIGHT = 600;\n this.viewPort = new ViewPort();\n this.mouse = new Mouse(this);\n this.animations = [];\n this.waits = [];\n this.frameDuration = 0;\n this.isReadyLock = false;\n this.isFirstRender = true;\n this.intervalId = null;\n this.window = window;\n this.fetch = fetch;\n }\n\n wait(checker) {\n this.waits.push(checker);\n }\n\n ready() {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.readyPromise) {\n return Promise.resolve();\n }\n\n return this.readyPromise;\n }\n\n isReady() {\n if (this.isReadyLock) {\n return true;\n }\n\n var isReadyLock = this.waits.every(_ => _());\n\n if (isReadyLock) {\n this.waits = [];\n\n if (this.resolveReady) {\n this.resolveReady();\n }\n }\n\n this.isReadyLock = isReadyLock;\n return isReadyLock;\n }\n\n setDefaults(ctx) {\n // initial values and defaults\n ctx.strokeStyle = 'rgba(0,0,0,0)';\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n }\n\n setViewBox(_ref) {\n var {\n document,\n ctx,\n aspectRatio,\n width,\n desiredWidth,\n height,\n desiredHeight,\n minX = 0,\n minY = 0,\n refX,\n refY,\n clip = false,\n clipX = 0,\n clipY = 0\n } = _ref;\n // aspect ratio - http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute\n var cleanAspectRatio = compressSpaces(aspectRatio).replace(/^defer\\s/, ''); // ignore defer\n\n var [aspectRatioAlign, aspectRatioMeetOrSlice] = cleanAspectRatio.split(' ');\n var align = aspectRatioAlign || 'xMidYMid';\n var meetOrSlice = aspectRatioMeetOrSlice || 'meet'; // calculate scale\n\n var scaleX = width / desiredWidth;\n var scaleY = height / desiredHeight;\n var scaleMin = Math.min(scaleX, scaleY);\n var scaleMax = Math.max(scaleX, scaleY);\n var finalDesiredWidth = desiredWidth;\n var finalDesiredHeight = desiredHeight;\n\n if (meetOrSlice === 'meet') {\n finalDesiredWidth *= scaleMin;\n finalDesiredHeight *= scaleMin;\n }\n\n if (meetOrSlice === 'slice') {\n finalDesiredWidth *= scaleMax;\n finalDesiredHeight *= scaleMax;\n }\n\n var refXProp = new Property(document, 'refX', refX);\n var refYProp = new Property(document, 'refY', refY);\n var hasRefs = refXProp.hasValue() && refYProp.hasValue();\n\n if (hasRefs) {\n ctx.translate(-scaleMin * refXProp.getPixels('x'), -scaleMin * refYProp.getPixels('y'));\n }\n\n if (clip) {\n var scaledClipX = scaleMin * clipX;\n var scaledClipY = scaleMin * clipY;\n ctx.beginPath();\n ctx.moveTo(scaledClipX, scaledClipY);\n ctx.lineTo(width, scaledClipY);\n ctx.lineTo(width, height);\n ctx.lineTo(scaledClipX, height);\n ctx.closePath();\n ctx.clip();\n }\n\n if (!hasRefs) {\n var isMeetMinY = meetOrSlice === 'meet' && scaleMin === scaleY;\n var isSliceMaxY = meetOrSlice === 'slice' && scaleMax === scaleY;\n var isMeetMinX = meetOrSlice === 'meet' && scaleMin === scaleX;\n var isSliceMaxX = meetOrSlice === 'slice' && scaleMax === scaleX;\n\n if (align.startsWith('xMid') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width / 2.0 - finalDesiredWidth / 2.0, 0);\n }\n\n if (align.endsWith('YMid') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height / 2.0 - finalDesiredHeight / 2.0);\n }\n\n if (align.startsWith('xMax') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width - finalDesiredWidth, 0);\n }\n\n if (align.endsWith('YMax') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height - finalDesiredHeight);\n }\n } // scale\n\n\n switch (true) {\n case align === 'none':\n ctx.scale(scaleX, scaleY);\n break;\n\n case meetOrSlice === 'meet':\n ctx.scale(scaleMin, scaleMin);\n break;\n\n case meetOrSlice === 'slice':\n ctx.scale(scaleMax, scaleMax);\n break;\n } // translate\n\n\n ctx.translate(-minX, -minY);\n }\n\n start(element) {\n var {\n enableRedraw = false,\n ignoreMouse = false,\n ignoreAnimation = false,\n ignoreDimensions = false,\n ignoreClear = false,\n forceRedraw,\n scaleWidth,\n scaleHeight,\n offsetX,\n offsetY\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n FRAMERATE,\n mouse\n } = this;\n var frameDuration = 1000 / FRAMERATE;\n this.frameDuration = frameDuration;\n this.readyPromise = new Promise(resolve => {\n this.resolveReady = resolve;\n });\n\n if (this.isReady()) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n }\n\n if (!enableRedraw) {\n return;\n }\n\n var now = Date.now();\n var then = now;\n var delta = 0;\n\n var tick = () => {\n now = Date.now();\n delta = now - then;\n\n if (delta >= frameDuration) {\n then = now - delta % frameDuration;\n\n if (this.shouldUpdate(ignoreAnimation, forceRedraw)) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n mouse.runEvents();\n }\n }\n\n this.intervalId = requestAnimationFrame(tick);\n };\n\n if (!ignoreMouse) {\n mouse.start();\n }\n\n this.intervalId = requestAnimationFrame(tick);\n }\n\n stop() {\n if (this.intervalId) {\n requestAnimationFrame.cancel(this.intervalId);\n this.intervalId = null;\n }\n\n this.mouse.stop();\n }\n\n shouldUpdate(ignoreAnimation, forceRedraw) {\n // need update from animations?\n if (!ignoreAnimation) {\n var {\n frameDuration\n } = this;\n var shouldUpdate = this.animations.reduce((shouldUpdate, animation) => animation.update(frameDuration) || shouldUpdate, false);\n\n if (shouldUpdate) {\n return true;\n }\n } // need update from redraw?\n\n\n if (typeof forceRedraw === 'function' && forceRedraw()) {\n return true;\n }\n\n if (!this.isReadyLock && this.isReady()) {\n return true;\n } // need update from mouse events?\n\n\n if (this.mouse.hasEvents()) {\n return true;\n }\n\n return false;\n }\n\n render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY) {\n var {\n CLIENT_WIDTH,\n CLIENT_HEIGHT,\n viewPort,\n ctx,\n isFirstRender\n } = this;\n var canvas = ctx.canvas;\n viewPort.clear();\n\n if (canvas.width && canvas.height) {\n viewPort.setCurrent(canvas.width, canvas.height);\n } else {\n viewPort.setCurrent(CLIENT_WIDTH, CLIENT_HEIGHT);\n }\n\n var widthStyle = element.getStyle('width');\n var heightStyle = element.getStyle('height');\n\n if (!ignoreDimensions && (isFirstRender || typeof scaleWidth !== 'number' && typeof scaleHeight !== 'number')) {\n // set canvas size\n if (widthStyle.hasValue()) {\n canvas.width = widthStyle.getPixels('x');\n\n if (canvas.style) {\n canvas.style.width = \"\".concat(canvas.width, \"px\");\n }\n }\n\n if (heightStyle.hasValue()) {\n canvas.height = heightStyle.getPixels('y');\n\n if (canvas.style) {\n canvas.style.height = \"\".concat(canvas.height, \"px\");\n }\n }\n }\n\n var cWidth = canvas.clientWidth || canvas.width;\n var cHeight = canvas.clientHeight || canvas.height;\n\n if (ignoreDimensions && widthStyle.hasValue() && heightStyle.hasValue()) {\n cWidth = widthStyle.getPixels('x');\n cHeight = heightStyle.getPixels('y');\n }\n\n viewPort.setCurrent(cWidth, cHeight);\n\n if (typeof offsetX === 'number') {\n element.getAttribute('x', true).setValue(offsetX);\n }\n\n if (typeof offsetY === 'number') {\n element.getAttribute('y', true).setValue(offsetY);\n }\n\n if (typeof scaleWidth === 'number' || typeof scaleHeight === 'number') {\n var viewBox = toNumbers(element.getAttribute('viewBox').getString());\n var xRatio = 0;\n var yRatio = 0;\n\n if (typeof scaleWidth === 'number') {\n var _widthStyle = element.getStyle('width');\n\n if (_widthStyle.hasValue()) {\n xRatio = _widthStyle.getPixels('x') / scaleWidth;\n } else if (!isNaN(viewBox[2])) {\n xRatio = viewBox[2] / scaleWidth;\n }\n }\n\n if (typeof scaleHeight === 'number') {\n var _heightStyle = element.getStyle('height');\n\n if (_heightStyle.hasValue()) {\n yRatio = _heightStyle.getPixels('y') / scaleHeight;\n } else if (!isNaN(viewBox[3])) {\n yRatio = viewBox[3] / scaleHeight;\n }\n }\n\n if (!xRatio) {\n xRatio = yRatio;\n }\n\n if (!yRatio) {\n yRatio = xRatio;\n }\n\n element.getAttribute('width', true).setValue(scaleWidth);\n element.getAttribute('height', true).setValue(scaleHeight);\n var transformStyle = element.getStyle('transform', true, true);\n transformStyle.setValue(\"\".concat(transformStyle.getString(), \" scale(\").concat(1.0 / xRatio, \", \").concat(1.0 / yRatio, \")\"));\n } // clear and render\n\n\n if (!ignoreClear) {\n ctx.clearRect(0, 0, cWidth, cHeight);\n }\n\n element.render(ctx);\n\n if (isFirstRender) {\n this.isFirstRender = false;\n }\n }\n\n}\nScreen.defaultWindow = defaultWindow;\nScreen.defaultFetch = defaultFetch$1;\n\nvar {\n defaultFetch\n} = Screen;\nvar DefaultDOMParser = typeof DOMParser !== 'undefined' ? DOMParser : null;\nclass Parser {\n constructor() {\n var {\n fetch = defaultFetch,\n DOMParser = DefaultDOMParser\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.fetch = fetch;\n this.DOMParser = DOMParser;\n }\n\n parse(resource) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n if (resource.startsWith('<')) {\n return _this.parseFromString(resource);\n }\n\n return _this.load(resource);\n })();\n }\n\n parseFromString(xml) {\n var parser = new this.DOMParser();\n\n try {\n return this.checkDocument(parser.parseFromString(xml, 'image/svg+xml'));\n } catch (err) {\n return this.checkDocument(parser.parseFromString(xml, 'text/xml'));\n }\n }\n\n checkDocument(document) {\n var parserError = document.getElementsByTagName('parsererror')[0];\n\n if (parserError) {\n throw new Error(parserError.textContent);\n }\n\n return document;\n }\n\n load(url) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var response = yield _this2.fetch(url);\n var xml = yield response.text();\n return _this2.parseFromString(xml);\n })();\n }\n\n}\n\nclass Translate {\n constructor(_, point) {\n this.type = 'translate';\n this.point = null;\n this.point = Point.parse(point);\n }\n\n apply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(x || 0.0, y || 0.0);\n }\n\n unapply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(-1.0 * x || 0.0, -1.0 * y || 0.0);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.point;\n point.applyTransform([1, 0, 0, 1, x || 0.0, y || 0.0]);\n }\n\n}\n\nclass Rotate {\n constructor(document, rotate, transformOrigin) {\n this.type = 'rotate';\n this.angle = null;\n this.originX = null;\n this.originY = null;\n this.cx = 0;\n this.cy = 0;\n var numbers = toNumbers(rotate);\n this.angle = new Property(document, 'angle', numbers[0]);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n this.cx = numbers[1] || 0;\n this.cy = numbers[2] || 0;\n }\n\n apply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(-1.0 * angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n cx,\n cy,\n angle\n } = this;\n var rad = angle.getRadians();\n point.applyTransform([1, 0, 0, 1, cx || 0.0, cy || 0.0 // this.p.y\n ]);\n point.applyTransform([Math.cos(rad), Math.sin(rad), -Math.sin(rad), Math.cos(rad), 0, 0]);\n point.applyTransform([1, 0, 0, 1, -cx || 0.0, -cy || 0.0 // -this.p.y\n ]);\n }\n\n}\n\nclass Scale {\n constructor(_, scale, transformOrigin) {\n this.type = 'scale';\n this.scale = null;\n this.originX = null;\n this.originY = null;\n var scaleSize = Point.parseScale(scale); // Workaround for node-canvas\n\n if (scaleSize.x === 0 || scaleSize.y === 0) {\n scaleSize.x = PSEUDO_ZERO;\n scaleSize.y = PSEUDO_ZERO;\n }\n\n this.scale = scaleSize;\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(x, y || x);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(1.0 / x, 1.0 / y || x);\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.scale;\n point.applyTransform([x || 0.0, 0, 0, y || 0.0, 0, 0]);\n }\n\n}\n\nclass Matrix {\n constructor(_, matrix, transformOrigin) {\n this.type = 'matrix';\n this.matrix = [];\n this.originX = null;\n this.originY = null;\n this.matrix = toNumbers(matrix);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var a = matrix[0];\n var b = matrix[2];\n var c = matrix[4];\n var d = matrix[1];\n var e = matrix[3];\n var f = matrix[5];\n var g = 0.0;\n var h = 0.0;\n var i = 1.0;\n var det = 1 / (a * (e * i - f * h) - b * (d * i - f * g) + c * (d * h - e * g));\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(det * (e * i - f * h), det * (f * g - d * i), det * (c * h - b * i), det * (a * i - c * g), det * (b * f - c * e), det * (c * d - a * f));\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n point.applyTransform(this.matrix);\n }\n\n}\n\nclass Skew extends Matrix {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skew';\n this.angle = null;\n this.angle = new Property(document, 'angle', skew);\n }\n\n}\n\nclass SkewX extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewX';\n this.matrix = [1, 0, Math.tan(this.angle.getRadians()), 1, 0, 0];\n }\n\n}\n\nclass SkewY extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewY';\n this.matrix = [1, Math.tan(this.angle.getRadians()), 0, 1, 0, 0];\n }\n\n}\n\nfunction parseTransforms(transform) {\n return compressSpaces(transform).trim().replace(/\\)([a-zA-Z])/g, ') $1').replace(/\\)(\\s?,\\s?)/g, ') ').split(/\\s(?=[a-z])/);\n}\n\nfunction parseTransform(transform) {\n var [type, value] = transform.split('(');\n return [type.trim(), value.trim().replace(')', '')];\n}\n\nclass Transform {\n constructor(document, transform, transformOrigin) {\n this.document = document;\n this.transforms = [];\n var data = parseTransforms(transform);\n data.forEach(transform => {\n if (transform === 'none') {\n return;\n }\n\n var [type, value] = parseTransform(transform);\n var TransformType = Transform.transformTypes[type];\n\n if (typeof TransformType !== 'undefined') {\n this.transforms.push(new TransformType(this.document, value, transformOrigin));\n }\n });\n }\n\n static fromElement(document, element) {\n var transformStyle = element.getStyle('transform', false, true);\n var [transformOriginXProperty, transformOriginYProperty = transformOriginXProperty] = element.getStyle('transform-origin', false, true).split();\n var transformOrigin = [transformOriginXProperty, transformOriginYProperty];\n\n if (transformStyle.hasValue()) {\n return new Transform(document, transformStyle.getString(), transformOrigin);\n }\n\n return null;\n }\n\n apply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].apply(ctx);\n }\n }\n\n unapply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = len - 1; i >= 0; i--) {\n transforms[i].unapply(ctx);\n }\n } // TODO: applyToPoint unused ... remove?\n\n\n applyToPoint(point) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].applyToPoint(point);\n }\n }\n\n}\nTransform.transformTypes = {\n translate: Translate,\n rotate: Rotate,\n scale: Scale,\n matrix: Matrix,\n skewX: SkewX,\n skewY: SkewY\n};\n\nclass Element {\n constructor(document, node) {\n var captureTextNodes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.document = document;\n this.node = node;\n this.captureTextNodes = captureTextNodes;\n this.attributes = Object.create(null);\n this.styles = Object.create(null);\n this.stylesSpecificity = Object.create(null);\n this.animationFrozen = false;\n this.animationFrozenValue = '';\n this.parent = null;\n this.children = [];\n\n if (!node || node.nodeType !== 1) {\n // ELEMENT_NODE\n return;\n } // add attributes\n\n\n Array.from(node.attributes).forEach(attribute => {\n var nodeName = normalizeAttributeName(attribute.nodeName);\n this.attributes[nodeName] = new Property(document, nodeName, attribute.value);\n });\n this.addStylesFromStyleDefinition(); // add inline styles\n\n if (this.getAttribute('style').hasValue()) {\n var styles = this.getAttribute('style').getString().split(';').map(_ => _.trim());\n styles.forEach(style => {\n if (!style) {\n return;\n }\n\n var [name, value] = style.split(':').map(_ => _.trim());\n this.styles[name] = new Property(document, name, value);\n });\n }\n\n var {\n definitions\n } = document;\n var id = this.getAttribute('id'); // add id\n\n if (id.hasValue()) {\n if (!definitions[id.getString()]) {\n definitions[id.getString()] = this;\n }\n }\n\n Array.from(node.childNodes).forEach(childNode => {\n if (childNode.nodeType === 1) {\n this.addChild(childNode); // ELEMENT_NODE\n } else if (captureTextNodes && (childNode.nodeType === 3 || childNode.nodeType === 4)) {\n var textNode = document.createTextNode(childNode);\n\n if (textNode.getText().length > 0) {\n this.addChild(textNode); // TEXT_NODE\n }\n }\n });\n }\n\n getAttribute(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var attr = this.attributes[name];\n\n if (!attr && createIfNotExists) {\n var _attr = new Property(this.document, name, '');\n\n this.attributes[name] = _attr;\n return _attr;\n }\n\n return attr || Property.empty(this.document);\n }\n\n getHrefAttribute() {\n for (var key in this.attributes) {\n if (key === 'href' || key.endsWith(':href')) {\n return this.attributes[key];\n }\n }\n\n return Property.empty(this.document);\n }\n\n getStyle(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var skipAncestors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var style = this.styles[name];\n\n if (style) {\n return style;\n }\n\n var attr = this.getAttribute(name);\n\n if (attr !== null && attr !== void 0 && attr.hasValue()) {\n this.styles[name] = attr; // move up to me to cache\n\n return attr;\n }\n\n if (!skipAncestors) {\n var {\n parent\n } = this;\n\n if (parent) {\n var parentStyle = parent.getStyle(name);\n\n if (parentStyle !== null && parentStyle !== void 0 && parentStyle.hasValue()) {\n return parentStyle;\n }\n }\n }\n\n if (createIfNotExists) {\n var _style = new Property(this.document, name, '');\n\n this.styles[name] = _style;\n return _style;\n }\n\n return style || Property.empty(this.document);\n }\n\n render(ctx) {\n // don't render display=none\n // don't render visibility=hidden\n if (this.getStyle('display').getString() === 'none' || this.getStyle('visibility').getString() === 'hidden') {\n return;\n }\n\n ctx.save();\n\n if (this.getStyle('mask').hasValue()) {\n // mask\n var mask = this.getStyle('mask').getDefinition();\n\n if (mask) {\n this.applyEffects(ctx);\n mask.apply(ctx, this);\n }\n } else if (this.getStyle('filter').getValue('none') !== 'none') {\n // filter\n var filter = this.getStyle('filter').getDefinition();\n\n if (filter) {\n this.applyEffects(ctx);\n filter.apply(ctx, this);\n }\n } else {\n this.setContext(ctx);\n this.renderChildren(ctx);\n this.clearContext(ctx);\n }\n\n ctx.restore();\n }\n\n setContext(_) {// NO RENDER\n }\n\n applyEffects(ctx) {\n // transform\n var transform = Transform.fromElement(this.document, this);\n\n if (transform) {\n transform.apply(ctx);\n } // clip\n\n\n var clipPathStyleProp = this.getStyle('clip-path', false, true);\n\n if (clipPathStyleProp.hasValue()) {\n var clip = clipPathStyleProp.getDefinition();\n\n if (clip) {\n clip.apply(ctx);\n }\n }\n }\n\n clearContext(_) {// NO RENDER\n }\n\n renderChildren(ctx) {\n this.children.forEach(child => {\n child.render(ctx);\n });\n }\n\n addChild(childNode) {\n var child = childNode instanceof Element ? childNode : this.document.createElement(childNode);\n child.parent = this;\n\n if (!Element.ignoreChildTypes.includes(child.type)) {\n this.children.push(child);\n }\n }\n\n matchesSelector(selector) {\n var _node$getAttribute;\n\n var {\n node\n } = this;\n\n if (typeof node.matches === 'function') {\n return node.matches(selector);\n }\n\n var styleClasses = (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'class');\n\n if (!styleClasses || styleClasses === '') {\n return false;\n }\n\n return styleClasses.split(' ').some(styleClass => \".\".concat(styleClass) === selector);\n }\n\n addStylesFromStyleDefinition() {\n var {\n styles,\n stylesSpecificity\n } = this.document;\n\n for (var selector in styles) {\n if (!selector.startsWith('@') && this.matchesSelector(selector)) {\n var style = styles[selector];\n var specificity = stylesSpecificity[selector];\n\n if (style) {\n for (var name in style) {\n var existingSpecificity = this.stylesSpecificity[name];\n\n if (typeof existingSpecificity === 'undefined') {\n existingSpecificity = '000';\n }\n\n if (specificity >= existingSpecificity) {\n this.styles[name] = style[name];\n this.stylesSpecificity[name] = specificity;\n }\n }\n }\n }\n }\n }\n\n removeStyles(element, ignoreStyles) {\n var toRestore = ignoreStyles.reduce((toRestore, name) => {\n var styleProp = element.getStyle(name);\n\n if (!styleProp.hasValue()) {\n return toRestore;\n }\n\n var value = styleProp.getString();\n styleProp.setValue('');\n return [...toRestore, [name, value]];\n }, []);\n return toRestore;\n }\n\n restoreStyles(element, styles) {\n styles.forEach(_ref => {\n var [name, value] = _ref;\n element.getStyle(name, true).setValue(value);\n });\n }\n\n isFirstChild() {\n var _this$parent;\n\n return ((_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.children.indexOf(this)) === 0;\n }\n\n}\nElement.ignoreChildTypes = ['title'];\n\nclass UnknownElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n }\n\n}\n\nfunction wrapFontFamily(fontFamily) {\n var trimmed = fontFamily.trim();\n return /^('|\")/.test(trimmed) ? trimmed : \"\\\"\".concat(trimmed, \"\\\"\");\n}\n\nfunction prepareFontFamily(fontFamily) {\n return typeof process === 'undefined' ? fontFamily : fontFamily.trim().split(',').map(wrapFontFamily).join(',');\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\r\n * @param fontStyle\r\n * @returns CSS font style.\r\n */\n\n\nfunction prepareFontStyle(fontStyle) {\n if (!fontStyle) {\n return '';\n }\n\n var targetFontStyle = fontStyle.trim().toLowerCase();\n\n switch (targetFontStyle) {\n case 'normal':\n case 'italic':\n case 'oblique':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontStyle;\n\n default:\n if (/^oblique\\s+(-|)\\d+deg$/.test(targetFontStyle)) {\n return targetFontStyle;\n }\n\n return '';\n }\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\r\n * @param fontWeight\r\n * @returns CSS font weight.\r\n */\n\n\nfunction prepareFontWeight(fontWeight) {\n if (!fontWeight) {\n return '';\n }\n\n var targetFontWeight = fontWeight.trim().toLowerCase();\n\n switch (targetFontWeight) {\n case 'normal':\n case 'bold':\n case 'lighter':\n case 'bolder':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontWeight;\n\n default:\n if (/^[\\d.]+$/.test(targetFontWeight)) {\n return targetFontWeight;\n }\n\n return '';\n }\n}\n\nclass Font {\n constructor(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) {\n var inheritFont = inherit ? typeof inherit === 'string' ? Font.parse(inherit) : inherit : {};\n this.fontFamily = fontFamily || inheritFont.fontFamily;\n this.fontSize = fontSize || inheritFont.fontSize;\n this.fontStyle = fontStyle || inheritFont.fontStyle;\n this.fontWeight = fontWeight || inheritFont.fontWeight;\n this.fontVariant = fontVariant || inheritFont.fontVariant;\n }\n\n static parse() {\n var font = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var inherit = arguments.length > 1 ? arguments[1] : undefined;\n var fontStyle = '';\n var fontVariant = '';\n var fontWeight = '';\n var fontSize = '';\n var fontFamily = '';\n var parts = compressSpaces(font).trim().split(' ');\n var set = {\n fontSize: false,\n fontStyle: false,\n fontWeight: false,\n fontVariant: false\n };\n parts.forEach(part => {\n switch (true) {\n case !set.fontStyle && Font.styles.includes(part):\n if (part !== 'inherit') {\n fontStyle = part;\n }\n\n set.fontStyle = true;\n break;\n\n case !set.fontVariant && Font.variants.includes(part):\n if (part !== 'inherit') {\n fontVariant = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n break;\n\n case !set.fontWeight && Font.weights.includes(part):\n if (part !== 'inherit') {\n fontWeight = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n break;\n\n case !set.fontSize:\n if (part !== 'inherit') {\n [fontSize] = part.split('/');\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n set.fontSize = true;\n break;\n\n default:\n if (part !== 'inherit') {\n fontFamily += part;\n }\n\n }\n });\n return new Font(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit);\n }\n\n toString() {\n return [prepareFontStyle(this.fontStyle), this.fontVariant, prepareFontWeight(this.fontWeight), this.fontSize, // Wrap fontFamily only on nodejs and only for canvas.ctx\n prepareFontFamily(this.fontFamily)].join(' ').trim();\n }\n\n}\nFont.styles = 'normal|italic|oblique|inherit';\nFont.variants = 'normal|small-caps|inherit';\nFont.weights = 'normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit';\n\nclass BoundingBox {\n constructor() {\n var x1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.NaN;\n var y1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.NaN;\n var x2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Number.NaN;\n var y2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Number.NaN;\n this.x1 = x1;\n this.y1 = y1;\n this.x2 = x2;\n this.y2 = y2;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n get x() {\n return this.x1;\n }\n\n get y() {\n return this.y1;\n }\n\n get width() {\n return this.x2 - this.x1;\n }\n\n get height() {\n return this.y2 - this.y1;\n }\n\n addPoint(x, y) {\n if (typeof x !== 'undefined') {\n if (isNaN(this.x1) || isNaN(this.x2)) {\n this.x1 = x;\n this.x2 = x;\n }\n\n if (x < this.x1) {\n this.x1 = x;\n }\n\n if (x > this.x2) {\n this.x2 = x;\n }\n }\n\n if (typeof y !== 'undefined') {\n if (isNaN(this.y1) || isNaN(this.y2)) {\n this.y1 = y;\n this.y2 = y;\n }\n\n if (y < this.y1) {\n this.y1 = y;\n }\n\n if (y > this.y2) {\n this.y2 = y;\n }\n }\n }\n\n addX(x) {\n this.addPoint(x, null);\n }\n\n addY(y) {\n this.addPoint(null, y);\n }\n\n addBoundingBox(boundingBox) {\n if (!boundingBox) {\n return;\n }\n\n var {\n x1,\n y1,\n x2,\n y2\n } = boundingBox;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n sumCubic(t, p0, p1, p2, p3) {\n return Math.pow(1 - t, 3) * p0 + 3 * Math.pow(1 - t, 2) * t * p1 + 3 * (1 - t) * Math.pow(t, 2) * p2 + Math.pow(t, 3) * p3;\n }\n\n bezierCurveAdd(forX, p0, p1, p2, p3) {\n var b = 6 * p0 - 12 * p1 + 6 * p2;\n var a = -3 * p0 + 9 * p1 - 9 * p2 + 3 * p3;\n var c = 3 * p1 - 3 * p0;\n\n if (a === 0) {\n if (b === 0) {\n return;\n }\n\n var t = -c / b;\n\n if (0 < t && t < 1) {\n if (forX) {\n this.addX(this.sumCubic(t, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t, p0, p1, p2, p3));\n }\n }\n\n return;\n }\n\n var b2ac = Math.pow(b, 2) - 4 * c * a;\n\n if (b2ac < 0) {\n return;\n }\n\n var t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t1 && t1 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t1, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t1, p0, p1, p2, p3));\n }\n }\n\n var t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t2 && t2 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t2, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t2, p0, p1, p2, p3));\n }\n }\n } // from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n\n\n addBezierCurve(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) {\n this.addPoint(p0x, p0y);\n this.addPoint(p3x, p3y);\n this.bezierCurveAdd(true, p0x, p1x, p2x, p3x);\n this.bezierCurveAdd(false, p0y, p1y, p2y, p3y);\n }\n\n addQuadraticCurve(p0x, p0y, p1x, p1y, p2x, p2y) {\n var cp1x = p0x + 2 / 3 * (p1x - p0x); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp1y = p0y + 2 / 3 * (p1y - p0y); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp2x = cp1x + 1 / 3 * (p2x - p0x); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n var cp2y = cp1y + 1 / 3 * (p2y - p0y); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n this.addBezierCurve(p0x, p0y, cp1x, cp2x, cp1y, cp2y, p2x, p2y);\n }\n\n isPointInBox(x, y) {\n var {\n x1,\n y1,\n x2,\n y2\n } = this;\n return x1 <= x && x <= x2 && y1 <= y && y <= y2;\n }\n\n}\n\nclass PathParser extends SVGPathData {\n constructor(path) {\n super(path // Fix spaces after signs.\n .replace(/([+\\-.])\\s+/gm, '$1') // Remove invalid part.\n .replace(/[^MmZzLlHhVvCcSsQqTtAae\\d\\s.,+-].*/g, ''));\n this.control = null;\n this.start = null;\n this.current = null;\n this.command = null;\n this.commands = this.commands;\n this.i = -1;\n this.previousCommand = null;\n this.points = [];\n this.angles = [];\n }\n\n reset() {\n this.i = -1;\n this.command = null;\n this.previousCommand = null;\n this.start = new Point(0, 0);\n this.control = new Point(0, 0);\n this.current = new Point(0, 0);\n this.points = [];\n this.angles = [];\n }\n\n isEnd() {\n var {\n i,\n commands\n } = this;\n return i >= commands.length - 1;\n }\n\n next() {\n var command = this.commands[++this.i];\n this.previousCommand = this.command;\n this.command = command;\n return command;\n }\n\n getPoint() {\n var xProp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'x';\n var yProp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'y';\n var point = new Point(this.command[xProp], this.command[yProp]);\n return this.makeAbsolute(point);\n }\n\n getAsControlPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.control = point;\n return point;\n }\n\n getAsCurrentPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.current = point;\n return point;\n }\n\n getReflectedControlPoint() {\n var previousCommand = this.previousCommand.type;\n\n if (previousCommand !== SVGPathData.CURVE_TO && previousCommand !== SVGPathData.SMOOTH_CURVE_TO && previousCommand !== SVGPathData.QUAD_TO && previousCommand !== SVGPathData.SMOOTH_QUAD_TO) {\n return this.current;\n } // reflect point\n\n\n var {\n current: {\n x: cx,\n y: cy\n },\n control: {\n x: ox,\n y: oy\n }\n } = this;\n var point = new Point(2 * cx - ox, 2 * cy - oy);\n return point;\n }\n\n makeAbsolute(point) {\n if (this.command.relative) {\n var {\n x,\n y\n } = this.current;\n point.x += x;\n point.y += y;\n }\n\n return point;\n }\n\n addMarker(point, from, priorTo) {\n var {\n points,\n angles\n } = this; // if the last angle isn't filled in because we didn't have this point yet ...\n\n if (priorTo && angles.length > 0 && !angles[angles.length - 1]) {\n angles[angles.length - 1] = points[points.length - 1].angleTo(priorTo);\n }\n\n this.addMarkerAngle(point, from ? from.angleTo(point) : null);\n }\n\n addMarkerAngle(point, angle) {\n this.points.push(point);\n this.angles.push(angle);\n }\n\n getMarkerPoints() {\n return this.points;\n }\n\n getMarkerAngles() {\n var {\n angles\n } = this;\n var len = angles.length;\n\n for (var i = 0; i < len; i++) {\n if (!angles[i]) {\n for (var j = i + 1; j < len; j++) {\n if (angles[j]) {\n angles[i] = angles[j];\n break;\n }\n }\n }\n }\n\n return angles;\n }\n\n}\n\nclass RenderedElement extends Element {\n constructor() {\n super(...arguments);\n this.modifiedEmSizeStack = false;\n }\n\n calculateOpacity() {\n var opacity = 1.0; // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n\n var element = this;\n\n while (element) {\n var opacityStyle = element.getStyle('opacity', false, true); // no ancestors on style call\n\n if (opacityStyle.hasValue(true)) {\n opacity *= opacityStyle.getNumber();\n }\n\n element = element.parent;\n }\n\n return opacity;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!fromMeasure) {\n // causes stack overflow when measuring text with gradients\n // fill\n var fillStyleProp = this.getStyle('fill');\n var fillOpacityStyleProp = this.getStyle('fill-opacity');\n var strokeStyleProp = this.getStyle('stroke');\n var strokeOpacityProp = this.getStyle('stroke-opacity');\n\n if (fillStyleProp.isUrlDefinition()) {\n var fillStyle = fillStyleProp.getFillStyleDefinition(this, fillOpacityStyleProp);\n\n if (fillStyle) {\n ctx.fillStyle = fillStyle;\n }\n } else if (fillStyleProp.hasValue()) {\n if (fillStyleProp.getString() === 'currentColor') {\n fillStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _fillStyle = fillStyleProp.getColor();\n\n if (_fillStyle !== 'inherit') {\n ctx.fillStyle = _fillStyle === 'none' ? 'rgba(0,0,0,0)' : _fillStyle;\n }\n }\n\n if (fillOpacityStyleProp.hasValue()) {\n var _fillStyle2 = new Property(this.document, 'fill', ctx.fillStyle).addOpacity(fillOpacityStyleProp).getColor();\n\n ctx.fillStyle = _fillStyle2;\n } // stroke\n\n\n if (strokeStyleProp.isUrlDefinition()) {\n var strokeStyle = strokeStyleProp.getFillStyleDefinition(this, strokeOpacityProp);\n\n if (strokeStyle) {\n ctx.strokeStyle = strokeStyle;\n }\n } else if (strokeStyleProp.hasValue()) {\n if (strokeStyleProp.getString() === 'currentColor') {\n strokeStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _strokeStyle = strokeStyleProp.getString();\n\n if (_strokeStyle !== 'inherit') {\n ctx.strokeStyle = _strokeStyle === 'none' ? 'rgba(0,0,0,0)' : _strokeStyle;\n }\n }\n\n if (strokeOpacityProp.hasValue()) {\n var _strokeStyle2 = new Property(this.document, 'stroke', ctx.strokeStyle).addOpacity(strokeOpacityProp).getString();\n\n ctx.strokeStyle = _strokeStyle2;\n }\n\n var strokeWidthStyleProp = this.getStyle('stroke-width');\n\n if (strokeWidthStyleProp.hasValue()) {\n var newLineWidth = strokeWidthStyleProp.getPixels();\n ctx.lineWidth = !newLineWidth ? PSEUDO_ZERO // browsers don't respect 0 (or node-canvas? :-)\n : newLineWidth;\n }\n\n var strokeLinecapStyleProp = this.getStyle('stroke-linecap');\n var strokeLinejoinStyleProp = this.getStyle('stroke-linejoin');\n var strokeMiterlimitProp = this.getStyle('stroke-miterlimit'); // NEED TEST\n // const pointOrderStyleProp = this.getStyle('paint-order');\n\n var strokeDasharrayStyleProp = this.getStyle('stroke-dasharray');\n var strokeDashoffsetProp = this.getStyle('stroke-dashoffset');\n\n if (strokeLinecapStyleProp.hasValue()) {\n ctx.lineCap = strokeLinecapStyleProp.getString();\n }\n\n if (strokeLinejoinStyleProp.hasValue()) {\n ctx.lineJoin = strokeLinejoinStyleProp.getString();\n }\n\n if (strokeMiterlimitProp.hasValue()) {\n ctx.miterLimit = strokeMiterlimitProp.getNumber();\n } // NEED TEST\n // if (pointOrderStyleProp.hasValue()) {\n // \t// ?\n // \tctx.paintOrder = pointOrderStyleProp.getValue();\n // }\n\n\n if (strokeDasharrayStyleProp.hasValue() && strokeDasharrayStyleProp.getString() !== 'none') {\n var gaps = toNumbers(strokeDasharrayStyleProp.getString());\n\n if (typeof ctx.setLineDash !== 'undefined') {\n ctx.setLineDash(gaps);\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDash !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDash = gaps;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDash !== 'undefined' && !(gaps.length === 1 && gaps[0] === 0)) {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDash = gaps;\n }\n\n var offset = strokeDashoffsetProp.getPixels();\n\n if (typeof ctx.lineDashOffset !== 'undefined') {\n ctx.lineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDashOffset = offset;\n }\n }\n } // font\n\n\n this.modifiedEmSizeStack = false;\n\n if (typeof ctx.font !== 'undefined') {\n var fontStyleProp = this.getStyle('font');\n var fontStyleStyleProp = this.getStyle('font-style');\n var fontVariantStyleProp = this.getStyle('font-variant');\n var fontWeightStyleProp = this.getStyle('font-weight');\n var fontSizeStyleProp = this.getStyle('font-size');\n var fontFamilyStyleProp = this.getStyle('font-family');\n var font = new Font(fontStyleStyleProp.getString(), fontVariantStyleProp.getString(), fontWeightStyleProp.getString(), fontSizeStyleProp.hasValue() ? \"\".concat(fontSizeStyleProp.getPixels(true), \"px\") : '', fontFamilyStyleProp.getString(), Font.parse(fontStyleProp.getString(), ctx.font));\n fontStyleStyleProp.setValue(font.fontStyle);\n fontVariantStyleProp.setValue(font.fontVariant);\n fontWeightStyleProp.setValue(font.fontWeight);\n fontSizeStyleProp.setValue(font.fontSize);\n fontFamilyStyleProp.setValue(font.fontFamily);\n ctx.font = font.toString();\n\n if (fontSizeStyleProp.isPixels()) {\n this.document.emSize = fontSizeStyleProp.getPixels();\n this.modifiedEmSizeStack = true;\n }\n }\n\n if (!fromMeasure) {\n // effects\n this.applyEffects(ctx); // opacity\n\n ctx.globalAlpha = this.calculateOpacity();\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n\n if (this.modifiedEmSizeStack) {\n this.document.popEmSize();\n }\n }\n\n}\n\nclass PathElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'path';\n this.pathParser = null;\n this.pathParser = new PathParser(this.getAttribute('d').getString());\n }\n\n path(ctx) {\n var {\n pathParser\n } = this;\n var boundingBox = new BoundingBox();\n pathParser.reset();\n\n if (ctx) {\n ctx.beginPath();\n }\n\n while (!pathParser.isEnd()) {\n switch (pathParser.next().type) {\n case PathParser.MOVE_TO:\n this.pathM(ctx, boundingBox);\n break;\n\n case PathParser.LINE_TO:\n this.pathL(ctx, boundingBox);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n this.pathH(ctx, boundingBox);\n break;\n\n case PathParser.VERT_LINE_TO:\n this.pathV(ctx, boundingBox);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n this.pathS(ctx, boundingBox);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n this.pathT(ctx, boundingBox);\n break;\n\n case PathParser.ARC:\n this.pathA(ctx, boundingBox);\n break;\n\n case PathParser.CLOSE_PATH:\n this.pathZ(ctx, boundingBox);\n break;\n }\n }\n\n return boundingBox;\n }\n\n getBoundingBox(_) {\n return this.path();\n }\n\n getMarkers() {\n var {\n pathParser\n } = this;\n var points = pathParser.getMarkerPoints();\n var angles = pathParser.getMarkerAngles();\n var markers = points.map((point, i) => [point, angles[i]]);\n return markers;\n }\n\n renderChildren(ctx) {\n this.path(ctx);\n this.document.screen.mouse.checkPath(this, ctx);\n var fillRuleStyleProp = this.getStyle('fill-rule');\n\n if (ctx.fillStyle !== '') {\n if (fillRuleStyleProp.getString('inherit') !== 'inherit') {\n ctx.fill(fillRuleStyleProp.getString());\n } else {\n ctx.fill();\n }\n }\n\n if (ctx.strokeStyle !== '') {\n if (this.getAttribute('vector-effect').getString() === 'non-scaling-stroke') {\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.stroke();\n }\n }\n\n var markers = this.getMarkers();\n\n if (markers) {\n var markersLastIndex = markers.length - 1;\n var markerStartStyleProp = this.getStyle('marker-start');\n var markerMidStyleProp = this.getStyle('marker-mid');\n var markerEndStyleProp = this.getStyle('marker-end');\n\n if (markerStartStyleProp.isUrlDefinition()) {\n var marker = markerStartStyleProp.getDefinition();\n var [point, angle] = markers[0];\n marker.render(ctx, point, angle);\n }\n\n if (markerMidStyleProp.isUrlDefinition()) {\n var _marker = markerMidStyleProp.getDefinition();\n\n for (var i = 1; i < markersLastIndex; i++) {\n var [_point, _angle] = markers[i];\n\n _marker.render(ctx, _point, _angle);\n }\n }\n\n if (markerEndStyleProp.isUrlDefinition()) {\n var _marker2 = markerEndStyleProp.getDefinition();\n\n var [_point2, _angle2] = markers[markersLastIndex];\n\n _marker2.render(ctx, _point2, _angle2);\n }\n }\n }\n\n static pathM(pathParser) {\n var point = pathParser.getAsCurrentPoint();\n pathParser.start = pathParser.current;\n return {\n point\n };\n }\n\n pathM(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n point\n } = PathElement.pathM(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.moveTo(x, y);\n }\n }\n\n static pathL(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getAsCurrentPoint();\n return {\n current,\n point\n };\n }\n\n pathL(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathL(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathH(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point((command.relative ? current.x : 0) + command.x, current.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathH(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathH(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathV(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point(current.x, (command.relative ? current.y : 0) + command.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathV(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathV(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathC(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getPoint('x1', 'y1');\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathC(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathS(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getReflectedControlPoint();\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathS(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathQ(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getAsControlPoint('x1', 'y1');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathQ(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathT(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getReflectedControlPoint();\n pathParser.control = controlPoint;\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathT(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathA(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var {\n rX,\n rY,\n xRot,\n lArcFlag,\n sweepFlag\n } = command;\n var xAxisRotation = xRot * (Math.PI / 180.0);\n var currentPoint = pathParser.getAsCurrentPoint(); // Conversion from endpoint to center parameterization\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n // x1', y1'\n\n var currp = new Point(Math.cos(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.sin(xAxisRotation) * (current.y - currentPoint.y) / 2.0, -Math.sin(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * (current.y - currentPoint.y) / 2.0); // adjust radii\n\n var l = Math.pow(currp.x, 2) / Math.pow(rX, 2) + Math.pow(currp.y, 2) / Math.pow(rY, 2);\n\n if (l > 1) {\n rX *= Math.sqrt(l);\n rY *= Math.sqrt(l);\n } // cx', cy'\n\n\n var s = (lArcFlag === sweepFlag ? -1 : 1) * Math.sqrt((Math.pow(rX, 2) * Math.pow(rY, 2) - Math.pow(rX, 2) * Math.pow(currp.y, 2) - Math.pow(rY, 2) * Math.pow(currp.x, 2)) / (Math.pow(rX, 2) * Math.pow(currp.y, 2) + Math.pow(rY, 2) * Math.pow(currp.x, 2)));\n\n if (isNaN(s)) {\n s = 0;\n }\n\n var cpp = new Point(s * rX * currp.y / rY, s * -rY * currp.x / rX); // cx, cy\n\n var centp = new Point((current.x + currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y, (current.y + currentPoint.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y); // initial angle\n\n var a1 = vectorsAngle([1, 0], [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY]); // θ1\n // angle delta\n\n var u = [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY];\n var v = [(-currp.x - cpp.x) / rX, (-currp.y - cpp.y) / rY];\n var ad = vectorsAngle(u, v); // Δθ\n\n if (vectorsRatio(u, v) <= -1) {\n ad = Math.PI;\n }\n\n if (vectorsRatio(u, v) >= 1) {\n ad = 0;\n }\n\n return {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n };\n }\n\n pathA(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser); // for markers\n\n var dir = 1 - sweepFlag ? 1.0 : -1.0;\n var ah = a1 + dir * (ad / 2.0);\n var halfWay = new Point(centp.x + rX * Math.cos(ah), centp.y + rY * Math.sin(ah));\n pathParser.addMarkerAngle(halfWay, ah - dir * Math.PI / 2);\n pathParser.addMarkerAngle(currentPoint, ah - dir * Math.PI);\n boundingBox.addPoint(currentPoint.x, currentPoint.y); // TODO: this is too naive, make it better\n\n if (ctx && !isNaN(a1) && !isNaN(ad)) {\n var r = rX > rY ? rX : rY;\n var sx = rX > rY ? 1 : rX / rY;\n var sy = rX > rY ? rY / rX : 1;\n ctx.translate(centp.x, centp.y);\n ctx.rotate(xAxisRotation);\n ctx.scale(sx, sy);\n ctx.arc(0, 0, r, a1, a1 + ad, Boolean(1 - sweepFlag));\n ctx.scale(1 / sx, 1 / sy);\n ctx.rotate(-xAxisRotation);\n ctx.translate(-centp.x, -centp.y);\n }\n }\n\n static pathZ(pathParser) {\n pathParser.current = pathParser.start;\n }\n\n pathZ(ctx, boundingBox) {\n PathElement.pathZ(this.pathParser);\n\n if (ctx) {\n // only close path if it is not a straight line\n if (boundingBox.x1 !== boundingBox.x2 && boundingBox.y1 !== boundingBox.y2) {\n ctx.closePath();\n }\n }\n }\n\n}\n\nclass GlyphElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'glyph';\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n this.unicode = this.getAttribute('unicode').getString();\n this.arabicForm = this.getAttribute('arabic-form').getString();\n }\n\n}\n\nclass TextElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TextElement ? true : captureTextNodes);\n this.type = 'text';\n this.x = 0;\n this.y = 0;\n this.measureCache = -1;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n super.setContext(ctx, fromMeasure);\n var textBaseline = this.getStyle('dominant-baseline').getTextBaseline() || this.getStyle('alignment-baseline').getTextBaseline();\n\n if (textBaseline) {\n ctx.textBaseline = textBaseline;\n }\n }\n\n initializeCoordinates() {\n this.x = 0;\n this.y = 0;\n this.leafTexts = [];\n this.textChunkStart = 0;\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n }\n\n getBoundingBox(ctx) {\n if (this.type !== 'text') {\n return this.getTElementBoundingBox(ctx);\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx);\n var boundingBox = null; // then calculate bounding box\n\n this.children.forEach((_, i) => {\n var childBoundingBox = this.getChildBoundingBox(ctx, this, this, i);\n\n if (!boundingBox) {\n boundingBox = childBoundingBox;\n } else {\n boundingBox.addBoundingBox(childBoundingBox);\n }\n });\n return boundingBox;\n }\n\n getFontSize() {\n var {\n document,\n parent\n } = this;\n var inheritFontSize = Font.parse(document.ctx.font).fontSize;\n var fontSize = parent.getStyle('font-size').getNumber(inheritFontSize);\n return fontSize;\n }\n\n getTElementBoundingBox(ctx) {\n var fontSize = this.getFontSize();\n return new BoundingBox(this.x, this.y - fontSize, this.x + this.measureText(ctx), this.y);\n }\n\n getGlyph(font, text, i) {\n var char = text[i];\n var glyph = null;\n\n if (font.isArabic) {\n var len = text.length;\n var prevChar = text[i - 1];\n var nextChar = text[i + 1];\n var arabicForm = 'isolated';\n\n if ((i === 0 || prevChar === ' ') && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'terminal';\n }\n\n if (i > 0 && prevChar !== ' ' && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'medial';\n }\n\n if (i > 0 && prevChar !== ' ' && (i === len - 1 || nextChar === ' ')) {\n arabicForm = 'initial';\n }\n\n if (typeof font.glyphs[char] !== 'undefined') {\n // NEED TEST\n var maybeGlyph = font.glyphs[char];\n glyph = maybeGlyph instanceof GlyphElement ? maybeGlyph : maybeGlyph[arabicForm];\n }\n } else {\n glyph = font.glyphs[char];\n }\n\n if (!glyph) {\n glyph = font.missingGlyph;\n }\n\n return glyph;\n }\n\n getText() {\n return '';\n }\n\n getTextFromNode(node) {\n var textNode = node || this.node;\n var childNodes = Array.from(textNode.parentNode.childNodes);\n var index = childNodes.indexOf(textNode);\n var lastIndex = childNodes.length - 1;\n var text = compressSpaces( // textNode.value\n // || textNode.text\n textNode.textContent || '');\n\n if (index === 0) {\n text = trimLeft(text);\n }\n\n if (index === lastIndex) {\n text = trimRight(text);\n }\n\n return text;\n }\n\n renderChildren(ctx) {\n if (this.type !== 'text') {\n this.renderTElementChildren(ctx);\n return;\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx); // then render\n\n this.children.forEach((_, i) => {\n this.renderChild(ctx, this, this, i);\n });\n var {\n mouse\n } = this.document.screen; // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, this.getBoundingBox(ctx));\n }\n }\n\n renderTElementChildren(ctx) {\n var {\n document,\n parent\n } = this;\n var renderText = this.getText();\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var {\n unitsPerEm\n } = customFont.fontFace;\n var ctxFont = Font.parse(document.ctx.font);\n var fontSize = parent.getStyle('font-size').getNumber(ctxFont.fontSize);\n var fontStyle = parent.getStyle('font-style').getString(ctxFont.fontStyle);\n var scale = fontSize / unitsPerEm;\n var text = customFont.isRTL ? renderText.split('').reverse().join('') : renderText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n ctx.translate(this.x, this.y);\n ctx.scale(scale, -scale);\n var lw = ctx.lineWidth;\n ctx.lineWidth = ctx.lineWidth * unitsPerEm / fontSize;\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, .4, 1, 0, 0);\n }\n\n glyph.render(ctx);\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, -.4, 1, 0, 0);\n }\n\n ctx.lineWidth = lw;\n ctx.scale(1 / scale, -1 / scale);\n ctx.translate(-this.x, -this.y);\n this.x += fontSize * (glyph.horizAdvX || customFont.horizAdvX) / unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n this.x += dx[i];\n }\n }\n\n return;\n }\n\n var {\n x,\n y\n } = this; // NEED TEST\n // if (ctx.paintOrder === 'stroke') {\n // \tif (ctx.strokeStyle) {\n // \t\tctx.strokeText(renderText, x, y);\n // \t}\n // \tif (ctx.fillStyle) {\n // \t\tctx.fillText(renderText, x, y);\n // \t}\n // } else {\n\n if (ctx.fillStyle) {\n ctx.fillText(renderText, x, y);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(renderText, x, y);\n } // }\n\n }\n\n applyAnchoring() {\n if (this.textChunkStart >= this.leafTexts.length) {\n return;\n } // This is basically the \"Apply anchoring\" part of https://www.w3.org/TR/SVG2/text.html#TextLayoutAlgorithm.\n // The difference is that we apply the anchoring as soon as a chunk is finished. This saves some extra looping.\n // Vertical text is not supported.\n\n\n var firstElement = this.leafTexts[this.textChunkStart];\n var textAnchor = firstElement.getStyle('text-anchor').getString('start');\n var isRTL = false; // we treat RTL like LTR\n\n var shift = 0;\n\n if (textAnchor === 'start' && !isRTL || textAnchor === 'end' && isRTL) {\n shift = firstElement.x - this.minX;\n } else if (textAnchor === 'end' && !isRTL || textAnchor === 'start' && isRTL) {\n shift = firstElement.x - this.maxX;\n } else {\n shift = firstElement.x - (this.minX + this.maxX) / 2;\n }\n\n for (var i = this.textChunkStart; i < this.leafTexts.length; i++) {\n this.leafTexts[i].x += shift;\n } // start new chunk\n\n\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n this.textChunkStart = this.leafTexts.length;\n }\n\n adjustChildCoordinatesRecursive(ctx) {\n this.children.forEach((_, i) => {\n this.adjustChildCoordinatesRecursiveCore(ctx, this, this, i);\n });\n this.applyAnchoring();\n }\n\n adjustChildCoordinatesRecursiveCore(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (child.children.length > 0) {\n child.children.forEach((_, i) => {\n textParent.adjustChildCoordinatesRecursiveCore(ctx, textParent, child, i);\n });\n } else {\n // only leafs are relevant\n this.adjustChildCoordinates(ctx, textParent, parent, i);\n }\n }\n\n adjustChildCoordinates(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (typeof child.measureText !== 'function') {\n return child;\n }\n\n ctx.save();\n child.setContext(ctx, true);\n var xAttr = child.getAttribute('x');\n var yAttr = child.getAttribute('y');\n var dxAttr = child.getAttribute('dx');\n var dyAttr = child.getAttribute('dy');\n var customFont = child.getStyle('font-family').getDefinition();\n var isRTL = Boolean(customFont) && customFont.isRTL;\n\n if (i === 0) {\n // First children inherit attributes from parent(s). Positional attributes\n // are only inherited from a parent to it's first child.\n if (!xAttr.hasValue()) {\n xAttr.setValue(child.getInheritedAttribute('x'));\n }\n\n if (!yAttr.hasValue()) {\n yAttr.setValue(child.getInheritedAttribute('y'));\n }\n\n if (!dxAttr.hasValue()) {\n dxAttr.setValue(child.getInheritedAttribute('dx'));\n }\n\n if (!dyAttr.hasValue()) {\n dyAttr.setValue(child.getInheritedAttribute('dy'));\n }\n }\n\n var width = child.measureText(ctx);\n\n if (isRTL) {\n textParent.x -= width;\n }\n\n if (xAttr.hasValue()) {\n // an \"x\" attribute marks the start of a new chunk\n textParent.applyAnchoring();\n child.x = xAttr.getPixels('x');\n\n if (dxAttr.hasValue()) {\n child.x += dxAttr.getPixels('x');\n }\n } else {\n if (dxAttr.hasValue()) {\n textParent.x += dxAttr.getPixels('x');\n }\n\n child.x = textParent.x;\n }\n\n textParent.x = child.x;\n\n if (!isRTL) {\n textParent.x += width;\n }\n\n if (yAttr.hasValue()) {\n child.y = yAttr.getPixels('y');\n\n if (dyAttr.hasValue()) {\n child.y += dyAttr.getPixels('y');\n }\n } else {\n if (dyAttr.hasValue()) {\n textParent.y += dyAttr.getPixels('y');\n }\n\n child.y = textParent.y;\n }\n\n textParent.y = child.y; // update the current chunk and it's bounds\n\n textParent.leafTexts.push(child);\n textParent.minX = Math.min(textParent.minX, child.x, child.x + width);\n textParent.maxX = Math.max(textParent.maxX, child.x, child.x + width);\n child.clearContext(ctx);\n ctx.restore();\n return child;\n }\n\n getChildBoundingBox(ctx, textParent, parent, i) {\n var child = parent.children[i]; // not a text node?\n\n if (typeof child.getBoundingBox !== 'function') {\n return null;\n }\n\n var boundingBox = child.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return null;\n }\n\n child.children.forEach((_, i) => {\n var childBoundingBox = textParent.getChildBoundingBox(ctx, textParent, child, i);\n boundingBox.addBoundingBox(childBoundingBox);\n });\n return boundingBox;\n }\n\n renderChild(ctx, textParent, parent, i) {\n var child = parent.children[i];\n child.render(ctx);\n child.children.forEach((_, i) => {\n textParent.renderChild(ctx, textParent, child, i);\n });\n }\n\n measureText(ctx) {\n var {\n measureCache\n } = this;\n\n if (~measureCache) {\n return measureCache;\n }\n\n var renderText = this.getText();\n var measure = this.measureTargetText(ctx, renderText);\n this.measureCache = measure;\n return measure;\n }\n\n measureTargetText(ctx, targetText) {\n if (!targetText.length) {\n return 0;\n }\n\n var {\n parent\n } = this;\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var fontSize = this.getFontSize();\n var text = customFont.isRTL ? targetText.split('').reverse().join('') : targetText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n var _measure = 0;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n _measure += (glyph.horizAdvX || customFont.horizAdvX) * fontSize / customFont.fontFace.unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n _measure += dx[i];\n }\n }\n\n return _measure;\n }\n\n if (!ctx.measureText) {\n return targetText.length * 10;\n }\n\n ctx.save();\n this.setContext(ctx, true);\n var {\n width: measure\n } = ctx.measureText(targetText);\n this.clearContext(ctx);\n ctx.restore();\n return measure;\n }\n /**\r\n * Inherits positional attributes from {@link TextElement} parent(s). Attributes\r\n * are only inherited from a parent to its first child.\r\n * @param name - The attribute name.\r\n * @returns The attribute value or null.\r\n */\n\n\n getInheritedAttribute(name) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias,consistent-this\n var current = this;\n\n while (current instanceof TextElement && current.isFirstChild()) {\n var parentAttr = current.parent.getAttribute(name);\n\n if (parentAttr.hasValue(true)) {\n return parentAttr.getValue('0');\n }\n\n current = current.parent;\n }\n\n return null;\n }\n\n}\n\nclass TSpanElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TSpanElement ? true : captureTextNodes);\n this.type = 'tspan'; // if this node has children, then they own the text\n\n this.text = this.children.length > 0 ? '' : this.getTextFromNode();\n }\n\n getText() {\n return this.text;\n }\n\n}\n\nclass TextNode extends TSpanElement {\n constructor() {\n super(...arguments);\n this.type = 'textNode';\n }\n\n}\n\nclass SVGElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'svg';\n this.root = false;\n }\n\n setContext(ctx) {\n var _this$node$parentNode;\n\n var {\n document\n } = this;\n var {\n screen,\n window\n } = document;\n var canvas = ctx.canvas;\n screen.setDefaults(ctx);\n\n if (canvas.style && typeof ctx.font !== 'undefined' && window && typeof window.getComputedStyle !== 'undefined') {\n ctx.font = window.getComputedStyle(canvas).getPropertyValue('font');\n var fontSizeProp = new Property(document, 'fontSize', Font.parse(ctx.font).fontSize);\n\n if (fontSizeProp.hasValue()) {\n document.rootEmSize = fontSizeProp.getPixels('y');\n document.emSize = document.rootEmSize;\n }\n } // create new view port\n\n\n if (!this.getAttribute('x').hasValue()) {\n this.getAttribute('x', true).setValue(0);\n }\n\n if (!this.getAttribute('y').hasValue()) {\n this.getAttribute('y', true).setValue(0);\n }\n\n var {\n width,\n height\n } = screen.viewPort;\n\n if (!this.getStyle('width').hasValue()) {\n this.getStyle('width', true).setValue('100%');\n }\n\n if (!this.getStyle('height').hasValue()) {\n this.getStyle('height', true).setValue('100%');\n }\n\n if (!this.getStyle('color').hasValue()) {\n this.getStyle('color', true).setValue('black');\n }\n\n var refXAttr = this.getAttribute('refX');\n var refYAttr = this.getAttribute('refY');\n var viewBoxAttr = this.getAttribute('viewBox');\n var viewBox = viewBoxAttr.hasValue() ? toNumbers(viewBoxAttr.getString()) : null;\n var clip = !this.root && this.getStyle('overflow').getValue('hidden') !== 'visible';\n var minX = 0;\n var minY = 0;\n var clipX = 0;\n var clipY = 0;\n\n if (viewBox) {\n minX = viewBox[0];\n minY = viewBox[1];\n }\n\n if (!this.root) {\n width = this.getStyle('width').getPixels('x');\n height = this.getStyle('height').getPixels('y');\n\n if (this.type === 'marker') {\n clipX = minX;\n clipY = minY;\n minX = 0;\n minY = 0;\n }\n }\n\n screen.viewPort.setCurrent(width, height); // Default value of transform-origin is center only for root SVG elements\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/transform-origin\n\n if (this.node // is not temporary SVGElement\n && (!this.parent || ((_this$node$parentNode = this.node.parentNode) === null || _this$node$parentNode === void 0 ? void 0 : _this$node$parentNode.nodeName) === 'foreignObject') && this.getStyle('transform', false, true).hasValue() && !this.getStyle('transform-origin', false, true).hasValue()) {\n this.getStyle('transform-origin', true, true).setValue('50% 50%');\n }\n\n super.setContext(ctx);\n ctx.translate(this.getAttribute('x').getPixels('x'), this.getAttribute('y').getPixels('y'));\n\n if (viewBox) {\n width = viewBox[2];\n height = viewBox[3];\n }\n\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width: screen.viewPort.width,\n desiredWidth: width,\n height: screen.viewPort.height,\n desiredHeight: height,\n minX,\n minY,\n refX: refXAttr.getValue(),\n refY: refYAttr.getValue(),\n clip,\n clipX,\n clipY\n });\n\n if (viewBox) {\n screen.viewPort.removeCurrent();\n screen.viewPort.setCurrent(width, height);\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n this.document.screen.viewPort.removeCurrent();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var widthAttr = this.getAttribute('width', true);\n var heightAttr = this.getAttribute('height', true);\n var viewBoxAttr = this.getAttribute('viewBox');\n var styleAttr = this.getAttribute('style');\n var originWidth = widthAttr.getNumber(0);\n var originHeight = heightAttr.getNumber(0);\n\n if (preserveAspectRatio) {\n if (typeof preserveAspectRatio === 'string') {\n this.getAttribute('preserveAspectRatio', true).setValue(preserveAspectRatio);\n } else {\n var preserveAspectRatioAttr = this.getAttribute('preserveAspectRatio');\n\n if (preserveAspectRatioAttr.hasValue()) {\n preserveAspectRatioAttr.setValue(preserveAspectRatioAttr.getString().replace(/^\\s*(\\S.*\\S)\\s*$/, '$1'));\n }\n }\n }\n\n widthAttr.setValue(width);\n heightAttr.setValue(height);\n\n if (!viewBoxAttr.hasValue()) {\n viewBoxAttr.setValue(\"0 0 \".concat(originWidth || width, \" \").concat(originHeight || height));\n }\n\n if (styleAttr.hasValue()) {\n var widthStyle = this.getStyle('width');\n var heightStyle = this.getStyle('height');\n\n if (widthStyle.hasValue()) {\n widthStyle.setValue(\"\".concat(width, \"px\"));\n }\n\n if (heightStyle.hasValue()) {\n heightStyle.setValue(\"\".concat(height, \"px\"));\n }\n }\n }\n\n}\n\nclass RectElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'rect';\n }\n\n path(ctx) {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width', false, true).getPixels('x');\n var height = this.getStyle('height', false, true).getPixels('y');\n var rxAttr = this.getAttribute('rx');\n var ryAttr = this.getAttribute('ry');\n var rx = rxAttr.getPixels('x');\n var ry = ryAttr.getPixels('y');\n\n if (rxAttr.hasValue() && !ryAttr.hasValue()) {\n ry = rx;\n }\n\n if (ryAttr.hasValue() && !rxAttr.hasValue()) {\n rx = ry;\n }\n\n rx = Math.min(rx, width / 2.0);\n ry = Math.min(ry, height / 2.0);\n\n if (ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n ctx.beginPath(); // always start the path so we don't fill prior paths\n\n if (height > 0 && width > 0) {\n ctx.moveTo(x + rx, y);\n ctx.lineTo(x + width - rx, y);\n ctx.bezierCurveTo(x + width - rx + KAPPA * rx, y, x + width, y + ry - KAPPA * ry, x + width, y + ry);\n ctx.lineTo(x + width, y + height - ry);\n ctx.bezierCurveTo(x + width, y + height - ry + KAPPA * ry, x + width - rx + KAPPA * rx, y + height, x + width - rx, y + height);\n ctx.lineTo(x + rx, y + height);\n ctx.bezierCurveTo(x + rx - KAPPA * rx, y + height, x, y + height - ry + KAPPA * ry, x, y + height - ry);\n ctx.lineTo(x, y + ry);\n ctx.bezierCurveTo(x, y + ry - KAPPA * ry, x + rx - KAPPA * rx, y, x + rx, y);\n ctx.closePath();\n }\n }\n\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass CircleElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'circle';\n }\n\n path(ctx) {\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n var r = this.getAttribute('r').getPixels();\n\n if (ctx && r > 0) {\n ctx.beginPath();\n ctx.arc(cx, cy, r, 0, Math.PI * 2, false);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - r, cy - r, cx + r, cy + r);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass EllipseElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'ellipse';\n }\n\n path(ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n var rx = this.getAttribute('rx').getPixels('x');\n var ry = this.getAttribute('ry').getPixels('y');\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n\n if (ctx && rx > 0 && ry > 0) {\n ctx.beginPath();\n ctx.moveTo(cx + rx, cy);\n ctx.bezierCurveTo(cx + rx, cy + KAPPA * ry, cx + KAPPA * rx, cy + ry, cx, cy + ry);\n ctx.bezierCurveTo(cx - KAPPA * rx, cy + ry, cx - rx, cy + KAPPA * ry, cx - rx, cy);\n ctx.bezierCurveTo(cx - rx, cy - KAPPA * ry, cx - KAPPA * rx, cy - ry, cx, cy - ry);\n ctx.bezierCurveTo(cx + KAPPA * rx, cy - ry, cx + rx, cy - KAPPA * ry, cx + rx, cy);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - rx, cy - ry, cx + rx, cy + ry);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass LineElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'line';\n }\n\n getPoints() {\n return [new Point(this.getAttribute('x1').getPixels('x'), this.getAttribute('y1').getPixels('y')), new Point(this.getAttribute('x2').getPixels('x'), this.getAttribute('y2').getPixels('y'))];\n }\n\n path(ctx) {\n var [{\n x: x0,\n y: y0\n }, {\n x: x1,\n y: y1\n }] = this.getPoints();\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n ctx.lineTo(x1, y1);\n }\n\n return new BoundingBox(x0, y0, x1, y1);\n }\n\n getMarkers() {\n var [p0, p1] = this.getPoints();\n var a = p0.angleTo(p1);\n return [[p0, a], [p1, a]];\n }\n\n}\n\nclass PolylineElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'polyline';\n this.points = [];\n this.points = Point.parsePath(this.getAttribute('points').getString());\n }\n\n path(ctx) {\n var {\n points\n } = this;\n var [{\n x: x0,\n y: y0\n }] = points;\n var boundingBox = new BoundingBox(x0, y0);\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n }\n\n points.forEach(_ref => {\n var {\n x,\n y\n } = _ref;\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n });\n return boundingBox;\n }\n\n getMarkers() {\n var {\n points\n } = this;\n var lastIndex = points.length - 1;\n var markers = [];\n points.forEach((point, i) => {\n if (i === lastIndex) {\n return;\n }\n\n markers.push([point, point.angleTo(points[i + 1])]);\n });\n\n if (markers.length > 0) {\n markers.push([points[points.length - 1], markers[markers.length - 1][1]]);\n }\n\n return markers;\n }\n\n}\n\nclass PolygonElement extends PolylineElement {\n constructor() {\n super(...arguments);\n this.type = 'polygon';\n }\n\n path(ctx) {\n var boundingBox = super.path(ctx);\n var [{\n x,\n y\n }] = this.points;\n\n if (ctx) {\n ctx.lineTo(x, y);\n ctx.closePath();\n }\n\n return boundingBox;\n }\n\n}\n\nclass PatternElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'pattern';\n }\n\n createPattern(ctx, _, parentOpacityProp) {\n var width = this.getStyle('width').getPixels('x', true);\n var height = this.getStyle('height').getPixels('y', true); // render me using a temporary svg element\n\n var patternSvg = new SVGElement(this.document, null);\n patternSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n patternSvg.attributes.width = new Property(this.document, 'width', \"\".concat(width, \"px\"));\n patternSvg.attributes.height = new Property(this.document, 'height', \"\".concat(height, \"px\"));\n patternSvg.attributes.transform = new Property(this.document, 'transform', this.getAttribute('patternTransform').getValue());\n patternSvg.children = this.children;\n var patternCanvas = this.document.createCanvas(width, height);\n var patternCtx = patternCanvas.getContext('2d');\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue() && yAttr.hasValue()) {\n patternCtx.translate(xAttr.getPixels('x', true), yAttr.getPixels('y', true));\n }\n\n if (parentOpacityProp.hasValue()) {\n this.styles['fill-opacity'] = parentOpacityProp;\n } else {\n Reflect.deleteProperty(this.styles, 'fill-opacity');\n } // render 3x3 grid so when we transform there's no white space on edges\n\n\n for (var x = -1; x <= 1; x++) {\n for (var y = -1; y <= 1; y++) {\n patternCtx.save();\n patternSvg.attributes.x = new Property(this.document, 'x', x * patternCanvas.width);\n patternSvg.attributes.y = new Property(this.document, 'y', y * patternCanvas.height);\n patternSvg.render(patternCtx);\n patternCtx.restore();\n }\n }\n\n var pattern = ctx.createPattern(patternCanvas, 'repeat');\n return pattern;\n }\n\n}\n\nclass MarkerElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'marker';\n }\n\n render(ctx, point, angle) {\n if (!point) {\n return;\n }\n\n var {\n x,\n y\n } = point;\n var orient = this.getAttribute('orient').getString('auto');\n var markerUnits = this.getAttribute('markerUnits').getString('strokeWidth');\n ctx.translate(x, y);\n\n if (orient === 'auto') {\n ctx.rotate(angle);\n }\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(ctx.lineWidth, ctx.lineWidth);\n }\n\n ctx.save(); // render me using a temporary svg element\n\n var markerSvg = new SVGElement(this.document, null);\n markerSvg.type = this.type;\n markerSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n markerSvg.attributes.refX = new Property(this.document, 'refX', this.getAttribute('refX').getValue());\n markerSvg.attributes.refY = new Property(this.document, 'refY', this.getAttribute('refY').getValue());\n markerSvg.attributes.width = new Property(this.document, 'width', this.getAttribute('markerWidth').getValue());\n markerSvg.attributes.height = new Property(this.document, 'height', this.getAttribute('markerHeight').getValue());\n markerSvg.attributes.overflow = new Property(this.document, 'overflow', this.getAttribute('overflow').getValue());\n markerSvg.attributes.fill = new Property(this.document, 'fill', this.getAttribute('fill').getColor('black'));\n markerSvg.attributes.stroke = new Property(this.document, 'stroke', this.getAttribute('stroke').getValue('none'));\n markerSvg.children = this.children;\n markerSvg.render(ctx);\n ctx.restore();\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(1 / ctx.lineWidth, 1 / ctx.lineWidth);\n }\n\n if (orient === 'auto') {\n ctx.rotate(-angle);\n }\n\n ctx.translate(-x, -y);\n }\n\n}\n\nclass DefsElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'defs';\n }\n\n render() {// NOOP\n }\n\n}\n\nclass GElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'g';\n }\n\n getBoundingBox(ctx) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n return boundingBox;\n }\n\n}\n\nclass GradientElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.attributesToInherit = ['gradientUnits'];\n this.stops = [];\n var {\n stops,\n children\n } = this;\n children.forEach(child => {\n if (child.type === 'stop') {\n stops.push(child);\n }\n });\n }\n\n getGradientUnits() {\n return this.getAttribute('gradientUnits').getString('objectBoundingBox');\n }\n\n createGradient(ctx, element, parentOpacityProp) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n var stopsContainer = this;\n\n if (this.getHrefAttribute().hasValue()) {\n stopsContainer = this.getHrefAttribute().getDefinition();\n this.inheritStopContainer(stopsContainer);\n }\n\n var {\n stops\n } = stopsContainer;\n var gradient = this.getGradient(ctx, element);\n\n if (!gradient) {\n return this.addParentOpacity(parentOpacityProp, stops[stops.length - 1].color);\n }\n\n stops.forEach(stop => {\n gradient.addColorStop(stop.offset, this.addParentOpacity(parentOpacityProp, stop.color));\n });\n\n if (this.getAttribute('gradientTransform').hasValue()) {\n // render as transformed pattern on temporary canvas\n var {\n document\n } = this;\n var {\n MAX_VIRTUAL_PIXELS,\n viewPort\n } = document.screen;\n var [rootView] = viewPort.viewPorts;\n var rect = new RectElement(document, null);\n rect.attributes.x = new Property(document, 'x', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.y = new Property(document, 'y', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.width = new Property(document, 'width', MAX_VIRTUAL_PIXELS);\n rect.attributes.height = new Property(document, 'height', MAX_VIRTUAL_PIXELS);\n var group = new GElement(document, null);\n group.attributes.transform = new Property(document, 'transform', this.getAttribute('gradientTransform').getValue());\n group.children = [rect];\n var patternSvg = new SVGElement(document, null);\n patternSvg.attributes.x = new Property(document, 'x', 0);\n patternSvg.attributes.y = new Property(document, 'y', 0);\n patternSvg.attributes.width = new Property(document, 'width', rootView.width);\n patternSvg.attributes.height = new Property(document, 'height', rootView.height);\n patternSvg.children = [group];\n var patternCanvas = document.createCanvas(rootView.width, rootView.height);\n var patternCtx = patternCanvas.getContext('2d');\n patternCtx.fillStyle = gradient;\n patternSvg.render(patternCtx);\n return patternCtx.createPattern(patternCanvas, 'no-repeat');\n }\n\n return gradient;\n }\n\n inheritStopContainer(stopsContainer) {\n this.attributesToInherit.forEach(attributeToInherit => {\n if (!this.getAttribute(attributeToInherit).hasValue() && stopsContainer.getAttribute(attributeToInherit).hasValue()) {\n this.getAttribute(attributeToInherit, true).setValue(stopsContainer.getAttribute(attributeToInherit).getValue());\n }\n });\n }\n\n addParentOpacity(parentOpacityProp, color) {\n if (parentOpacityProp.hasValue()) {\n var colorProp = new Property(this.document, 'color', color);\n return colorProp.addOpacity(parentOpacityProp).getColor();\n }\n\n return color;\n }\n\n}\n\nclass LinearGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'linearGradient';\n this.attributesToInherit.push('x1', 'y1', 'x2', 'y2');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = isBoundingBoxUnits ? element.getBoundingBox(ctx) : null;\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('x1').hasValue() && !this.getAttribute('y1').hasValue() && !this.getAttribute('x2').hasValue() && !this.getAttribute('y2').hasValue()) {\n this.getAttribute('x1', true).setValue(0);\n this.getAttribute('y1', true).setValue(0);\n this.getAttribute('x2', true).setValue(1);\n this.getAttribute('y2', true).setValue(0);\n }\n\n var x1 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x1').getNumber() : this.getAttribute('x1').getPixels('x');\n var y1 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y1').getNumber() : this.getAttribute('y1').getPixels('y');\n var x2 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x2').getNumber() : this.getAttribute('x2').getPixels('x');\n var y2 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y2').getNumber() : this.getAttribute('y2').getPixels('y');\n\n if (x1 === x2 && y1 === y2) {\n return null;\n }\n\n return ctx.createLinearGradient(x1, y1, x2, y2);\n }\n\n}\n\nclass RadialGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'radialGradient';\n this.attributesToInherit.push('cx', 'cy', 'r', 'fx', 'fy', 'fr');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = element.getBoundingBox(ctx);\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('cx').hasValue()) {\n this.getAttribute('cx', true).setValue('50%');\n }\n\n if (!this.getAttribute('cy').hasValue()) {\n this.getAttribute('cy', true).setValue('50%');\n }\n\n if (!this.getAttribute('r').hasValue()) {\n this.getAttribute('r', true).setValue('50%');\n }\n\n var cx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('cx').getNumber() : this.getAttribute('cx').getPixels('x');\n var cy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('cy').getNumber() : this.getAttribute('cy').getPixels('y');\n var fx = cx;\n var fy = cy;\n\n if (this.getAttribute('fx').hasValue()) {\n fx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('fx').getNumber() : this.getAttribute('fx').getPixels('x');\n }\n\n if (this.getAttribute('fy').hasValue()) {\n fy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('fy').getNumber() : this.getAttribute('fy').getPixels('y');\n }\n\n var r = isBoundingBoxUnits ? (boundingBox.width + boundingBox.height) / 2.0 * this.getAttribute('r').getNumber() : this.getAttribute('r').getPixels();\n var fr = this.getAttribute('fr').getPixels();\n return ctx.createRadialGradient(fx, fy, fr, cx, cy, r);\n }\n\n}\n\nclass StopElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'stop';\n var offset = Math.max(0, Math.min(1, this.getAttribute('offset').getNumber()));\n var stopOpacity = this.getStyle('stop-opacity');\n var stopColor = this.getStyle('stop-color', true);\n\n if (stopColor.getString() === '') {\n stopColor.setValue('#000');\n }\n\n if (stopOpacity.hasValue()) {\n stopColor = stopColor.addOpacity(stopOpacity);\n }\n\n this.offset = offset;\n this.color = stopColor.getColor();\n }\n\n}\n\nclass AnimateElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'animate';\n this.duration = 0;\n this.initialValue = null;\n this.initialUnits = '';\n this.removed = false;\n this.frozen = false;\n document.screen.animations.push(this);\n this.begin = this.getAttribute('begin').getMilliseconds();\n this.maxDuration = this.begin + this.getAttribute('dur').getMilliseconds();\n this.from = this.getAttribute('from');\n this.to = this.getAttribute('to');\n this.values = new Property(document, 'values', null);\n var valuesAttr = this.getAttribute('values');\n\n if (valuesAttr.hasValue()) {\n this.values.setValue(valuesAttr.getString().split(';'));\n }\n }\n\n getProperty() {\n var attributeType = this.getAttribute('attributeType').getString();\n var attributeName = this.getAttribute('attributeName').getString();\n\n if (attributeType === 'CSS') {\n return this.parent.getStyle(attributeName, true);\n }\n\n return this.parent.getAttribute(attributeName, true);\n }\n\n calcValue() {\n var {\n initialUnits\n } = this;\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var newValue = from.getNumber() + (to.getNumber() - from.getNumber()) * progress;\n\n if (initialUnits === '%') {\n newValue *= 100.0; // numValue() returns 0-1 whereas properties are 0-100\n }\n\n return \"\".concat(newValue).concat(initialUnits);\n }\n\n update(delta) {\n var {\n parent\n } = this;\n var prop = this.getProperty(); // set initial value\n\n if (!this.initialValue) {\n this.initialValue = prop.getString();\n this.initialUnits = prop.getUnits();\n } // if we're past the end time\n\n\n if (this.duration > this.maxDuration) {\n var fill = this.getAttribute('fill').getString('remove'); // loop for indefinitely repeating animations\n\n if (this.getAttribute('repeatCount').getString() === 'indefinite' || this.getAttribute('repeatDur').getString() === 'indefinite') {\n this.duration = 0;\n } else if (fill === 'freeze' && !this.frozen) {\n this.frozen = true;\n parent.animationFrozen = true;\n parent.animationFrozenValue = prop.getString();\n } else if (fill === 'remove' && !this.removed) {\n this.removed = true;\n prop.setValue(parent.animationFrozen ? parent.animationFrozenValue : this.initialValue);\n return true;\n }\n\n return false;\n }\n\n this.duration += delta; // if we're past the begin time\n\n var updated = false;\n\n if (this.begin < this.duration) {\n var newValue = this.calcValue(); // tween\n\n var typeAttr = this.getAttribute('type');\n\n if (typeAttr.hasValue()) {\n // for transform, etc.\n var type = typeAttr.getString();\n newValue = \"\".concat(type, \"(\").concat(newValue, \")\");\n }\n\n prop.setValue(newValue);\n updated = true;\n }\n\n return updated;\n }\n\n getProgress() {\n var {\n document,\n values\n } = this;\n var result = {\n progress: (this.duration - this.begin) / (this.maxDuration - this.begin)\n };\n\n if (values.hasValue()) {\n var p = result.progress * (values.getValue().length - 1);\n var lb = Math.floor(p);\n var ub = Math.ceil(p);\n result.from = new Property(document, 'from', parseFloat(values.getValue()[lb]));\n result.to = new Property(document, 'to', parseFloat(values.getValue()[ub]));\n result.progress = (p - lb) / (ub - lb);\n } else {\n result.from = this.from;\n result.to = this.to;\n }\n\n return result;\n }\n\n}\n\nclass AnimateColorElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateColor';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress();\n var colorFrom = new RGBColor(from.getColor());\n var colorTo = new RGBColor(to.getColor());\n\n if (colorFrom.ok && colorTo.ok) {\n // tween color linearly\n var r = colorFrom.r + (colorTo.r - colorFrom.r) * progress;\n var g = colorFrom.g + (colorTo.g - colorFrom.g) * progress;\n var b = colorFrom.b + (colorTo.b - colorFrom.b) * progress; // ? alpha\n\n return \"rgb(\".concat(Math.floor(r), \", \").concat(Math.floor(g), \", \").concat(Math.floor(b), \")\");\n }\n\n return this.getAttribute('from').getColor();\n }\n\n}\n\nclass AnimateTransformElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateTransform';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var transformFrom = toNumbers(from.getString());\n var transformTo = toNumbers(to.getString());\n var newValue = transformFrom.map((from, i) => {\n var to = transformTo[i];\n return from + (to - from) * progress;\n }).join(' ');\n return newValue;\n }\n\n}\n\nclass FontElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font';\n this.glyphs = Object.create(null);\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n var {\n definitions\n } = document;\n var {\n children\n } = this;\n\n for (var child of children) {\n switch (child.type) {\n case 'font-face':\n {\n this.fontFace = child;\n var fontFamilyStyle = child.getStyle('font-family');\n\n if (fontFamilyStyle.hasValue()) {\n definitions[fontFamilyStyle.getString()] = this;\n }\n\n break;\n }\n\n case 'missing-glyph':\n this.missingGlyph = child;\n break;\n\n case 'glyph':\n {\n var glyph = child;\n\n if (glyph.arabicForm) {\n this.isRTL = true;\n this.isArabic = true;\n\n if (typeof this.glyphs[glyph.unicode] === 'undefined') {\n this.glyphs[glyph.unicode] = Object.create(null);\n }\n\n this.glyphs[glyph.unicode][glyph.arabicForm] = glyph;\n } else {\n this.glyphs[glyph.unicode] = glyph;\n }\n\n break;\n }\n }\n }\n }\n\n render() {// NO RENDER\n }\n\n}\n\nclass FontFaceElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font-face';\n this.ascent = this.getAttribute('ascent').getNumber();\n this.descent = this.getAttribute('descent').getNumber();\n this.unitsPerEm = this.getAttribute('units-per-em').getNumber();\n }\n\n}\n\nclass MissingGlyphElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'missing-glyph';\n this.horizAdvX = 0;\n }\n\n}\n\nclass TRefElement extends TextElement {\n constructor() {\n super(...arguments);\n this.type = 'tref';\n }\n\n getText() {\n var element = this.getHrefAttribute().getDefinition();\n\n if (element) {\n var firstChild = element.children[0];\n\n if (firstChild) {\n return firstChild.getText();\n }\n }\n\n return '';\n }\n\n}\n\nclass AElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'a';\n var {\n childNodes\n } = node;\n var firstChild = childNodes[0];\n var hasText = childNodes.length > 0 && Array.from(childNodes).every(node => node.nodeType === 3);\n this.hasText = hasText;\n this.text = hasText ? this.getTextFromNode(firstChild) : '';\n }\n\n getText() {\n return this.text;\n }\n\n renderChildren(ctx) {\n if (this.hasText) {\n // render as text element\n super.renderChildren(ctx);\n var {\n document,\n x,\n y\n } = this;\n var {\n mouse\n } = document.screen;\n var fontSize = new Property(document, 'fontSize', Font.parse(document.ctx.font).fontSize); // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, new BoundingBox(x, y - fontSize.getPixels('y'), x + this.measureText(ctx), y));\n }\n } else if (this.children.length > 0) {\n // render as temporary group\n var g = new GElement(this.document, null);\n g.children = this.children;\n g.parent = this;\n g.render(ctx);\n }\n }\n\n onClick() {\n var {\n window\n } = this.document;\n\n if (window) {\n window.open(this.getHrefAttribute().getString());\n }\n }\n\n onMouseMove() {\n var ctx = this.document.ctx;\n ctx.canvas.style.cursor = 'pointer';\n }\n\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nclass TextPathElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'textPath';\n this.textWidth = 0;\n this.textHeight = 0;\n this.pathLength = -1;\n this.glyphInfo = null;\n this.letterSpacingCache = [];\n this.measuresCache = new Map([['', 0]]);\n var pathElement = this.getHrefAttribute().getDefinition();\n this.text = this.getTextFromNode();\n this.dataArray = this.parsePathData(pathElement);\n }\n\n getText() {\n return this.text;\n }\n\n path(ctx) {\n var {\n dataArray\n } = this;\n\n if (ctx) {\n ctx.beginPath();\n }\n\n dataArray.forEach(_ref => {\n var {\n type,\n points\n } = _ref;\n\n switch (type) {\n case PathParser.LINE_TO:\n if (ctx) {\n ctx.lineTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.MOVE_TO:\n if (ctx) {\n ctx.moveTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.CURVE_TO:\n if (ctx) {\n ctx.bezierCurveTo(points[0], points[1], points[2], points[3], points[4], points[5]);\n }\n\n break;\n\n case PathParser.QUAD_TO:\n if (ctx) {\n ctx.quadraticCurveTo(points[0], points[1], points[2], points[3]);\n }\n\n break;\n\n case PathParser.ARC:\n {\n var [cx, cy, rx, ry, theta, dTheta, psi, fs] = points;\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n\n if (ctx) {\n ctx.translate(cx, cy);\n ctx.rotate(psi);\n ctx.scale(scaleX, scaleY);\n ctx.arc(0, 0, r, theta, theta + dTheta, Boolean(1 - fs));\n ctx.scale(1 / scaleX, 1 / scaleY);\n ctx.rotate(-psi);\n ctx.translate(-cx, -cy);\n }\n\n break;\n }\n\n case PathParser.CLOSE_PATH:\n if (ctx) {\n ctx.closePath();\n }\n\n break;\n }\n });\n }\n\n renderChildren(ctx) {\n this.setTextData(ctx);\n ctx.save();\n var textDecoration = this.parent.getStyle('text-decoration').getString();\n var fontSize = this.getFontSize();\n var {\n glyphInfo\n } = this;\n var fill = ctx.fillStyle;\n\n if (textDecoration === 'underline') {\n ctx.beginPath();\n }\n\n glyphInfo.forEach((glyph, i) => {\n var {\n p0,\n p1,\n rotation,\n text: partialText\n } = glyph;\n ctx.save();\n ctx.translate(p0.x, p0.y);\n ctx.rotate(rotation);\n\n if (ctx.fillStyle) {\n ctx.fillText(partialText, 0, 0);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(partialText, 0, 0);\n }\n\n ctx.restore();\n\n if (textDecoration === 'underline') {\n if (i === 0) {\n ctx.moveTo(p0.x, p0.y + fontSize / 8);\n }\n\n ctx.lineTo(p1.x, p1.y + fontSize / 5);\n } // // To assist with debugging visually, uncomment following\n //\n // ctx.beginPath();\n // if (i % 2)\n // \tctx.strokeStyle = 'red';\n // else\n // \tctx.strokeStyle = 'green';\n // ctx.moveTo(p0.x, p0.y);\n // ctx.lineTo(p1.x, p1.y);\n // ctx.stroke();\n // ctx.closePath();\n\n });\n\n if (textDecoration === 'underline') {\n ctx.lineWidth = fontSize / 20;\n ctx.strokeStyle = fill;\n ctx.stroke();\n ctx.closePath();\n }\n\n ctx.restore();\n }\n\n getLetterSpacingAt() {\n var idx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return this.letterSpacingCache[idx] || 0;\n }\n\n findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, inputOffset, dy, c, charI) {\n var offset = inputOffset;\n var glyphWidth = this.measureText(ctx, c);\n\n if (c === ' ' && anchor === 'justify' && textFullWidth < fullPathWidth) {\n glyphWidth += (fullPathWidth - textFullWidth) / spacesNumber;\n }\n\n if (charI > -1) {\n offset += this.getLetterSpacingAt(charI);\n }\n\n var splineStep = this.textHeight / 20;\n var p0 = this.getEquidistantPointOnPath(offset, splineStep, 0);\n var p1 = this.getEquidistantPointOnPath(offset + glyphWidth, splineStep, 0);\n var segment = {\n p0,\n p1\n };\n var rotation = p0 && p1 ? Math.atan2(p1.y - p0.y, p1.x - p0.x) : 0;\n\n if (dy) {\n var dyX = Math.cos(Math.PI / 2 + rotation) * dy;\n var dyY = Math.cos(-rotation) * dy;\n segment.p0 = _objectSpread$2(_objectSpread$2({}, p0), {}, {\n x: p0.x + dyX,\n y: p0.y + dyY\n });\n segment.p1 = _objectSpread$2(_objectSpread$2({}, p1), {}, {\n x: p1.x + dyX,\n y: p1.y + dyY\n });\n }\n\n offset += glyphWidth;\n return {\n offset,\n segment,\n rotation\n };\n }\n\n measureText(ctx, text) {\n var {\n measuresCache\n } = this;\n var targetText = text || this.getText();\n\n if (measuresCache.has(targetText)) {\n return measuresCache.get(targetText);\n }\n\n var measure = this.measureTargetText(ctx, targetText);\n measuresCache.set(targetText, measure);\n return measure;\n } // This method supposes what all custom fonts already loaded.\n // If some font will be loaded after this method call, <textPath> will not be rendered correctly.\n // You need to call this method manually to update glyphs cache.\n\n\n setTextData(ctx) {\n if (this.glyphInfo) {\n return;\n }\n\n var renderText = this.getText();\n var chars = renderText.split('');\n var spacesNumber = renderText.split(' ').length - 1;\n var dx = this.parent.getAttribute('dx').split().map(_ => _.getPixels('x'));\n var dy = this.parent.getAttribute('dy').getPixels('y');\n var anchor = this.parent.getStyle('text-anchor').getString('start');\n var thisSpacing = this.getStyle('letter-spacing');\n var parentSpacing = this.parent.getStyle('letter-spacing');\n var letterSpacing = 0;\n\n if (!thisSpacing.hasValue() || thisSpacing.getValue() === 'inherit') {\n letterSpacing = parentSpacing.getPixels();\n } else if (thisSpacing.hasValue()) {\n if (thisSpacing.getValue() !== 'initial' && thisSpacing.getValue() !== 'unset') {\n letterSpacing = thisSpacing.getPixels();\n }\n } // fill letter-spacing cache\n\n\n var letterSpacingCache = [];\n var textLen = renderText.length;\n this.letterSpacingCache = letterSpacingCache;\n\n for (var i = 0; i < textLen; i++) {\n letterSpacingCache.push(typeof dx[i] !== 'undefined' ? dx[i] : letterSpacing);\n }\n\n var dxSum = letterSpacingCache.reduce((acc, cur, i) => i === 0 ? 0 : acc + cur || 0, 0);\n var textWidth = this.measureText(ctx);\n var textFullWidth = Math.max(textWidth + dxSum, 0);\n this.textWidth = textWidth;\n this.textHeight = this.getFontSize();\n this.glyphInfo = [];\n var fullPathWidth = this.getPathLength();\n var startOffset = this.getStyle('startOffset').getNumber(0) * fullPathWidth;\n var offset = 0;\n\n if (anchor === 'middle' || anchor === 'center') {\n offset = -textFullWidth / 2;\n }\n\n if (anchor === 'end' || anchor === 'right') {\n offset = -textFullWidth;\n }\n\n offset += startOffset;\n chars.forEach((char, i) => {\n // Find such segment what distance between p0 and p1 is approx. width of glyph\n var {\n offset: nextOffset,\n segment,\n rotation\n } = this.findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, offset, dy, char, i);\n offset = nextOffset;\n\n if (!segment.p0 || !segment.p1) {\n return;\n } // const width = this.getLineLength(\n // \tsegment.p0.x,\n // \tsegment.p0.y,\n // \tsegment.p1.x,\n // \tsegment.p1.y\n // );\n // Note: Since glyphs are rendered one at a time, any kerning pair data built into the font will not be used.\n // Can foresee having a rough pair table built in that the developer can override as needed.\n // Or use \"dx\" attribute of the <text> node as a naive replacement\n // const kern = 0;\n // placeholder for future implementation\n // const midpoint = this.getPointOnLine(\n // \tkern + width / 2.0,\n // \tsegment.p0.x, segment.p0.y, segment.p1.x, segment.p1.y\n // );\n\n\n this.glyphInfo.push({\n // transposeX: midpoint.x,\n // transposeY: midpoint.y,\n text: chars[i],\n p0: segment.p0,\n p1: segment.p1,\n rotation\n });\n });\n }\n\n parsePathData(path) {\n this.pathLength = -1; // reset path length\n\n if (!path) {\n return [];\n }\n\n var pathCommands = [];\n var {\n pathParser\n } = path;\n pathParser.reset(); // convert l, H, h, V, and v to L\n\n while (!pathParser.isEnd()) {\n var {\n current\n } = pathParser;\n var startX = current ? current.x : 0;\n var startY = current ? current.y : 0;\n var command = pathParser.next();\n var nextCommandType = command.type;\n var points = [];\n\n switch (command.type) {\n case PathParser.MOVE_TO:\n this.pathM(pathParser, points);\n break;\n\n case PathParser.LINE_TO:\n nextCommandType = this.pathL(pathParser, points);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n nextCommandType = this.pathH(pathParser, points);\n break;\n\n case PathParser.VERT_LINE_TO:\n nextCommandType = this.pathV(pathParser, points);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(pathParser, points);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n nextCommandType = this.pathS(pathParser, points);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(pathParser, points);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n nextCommandType = this.pathT(pathParser, points);\n break;\n\n case PathParser.ARC:\n points = this.pathA(pathParser);\n break;\n\n case PathParser.CLOSE_PATH:\n PathElement.pathZ(pathParser);\n break;\n }\n\n if (command.type !== PathParser.CLOSE_PATH) {\n pathCommands.push({\n type: nextCommandType,\n points,\n start: {\n x: startX,\n y: startY\n },\n pathLength: this.calcLength(startX, startY, nextCommandType, points)\n });\n } else {\n pathCommands.push({\n type: PathParser.CLOSE_PATH,\n points: [],\n pathLength: 0\n });\n }\n }\n\n return pathCommands;\n }\n\n pathM(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathM(pathParser).point;\n points.push(x, y);\n }\n\n pathL(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathL(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathH(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathH(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathV(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathV(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathC(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathS(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.CURVE_TO;\n }\n\n pathQ(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathT(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.QUAD_TO;\n }\n\n pathA(pathParser) {\n var {\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser);\n\n if (sweepFlag === 0 && ad > 0) {\n ad -= 2 * Math.PI;\n }\n\n if (sweepFlag === 1 && ad < 0) {\n ad += 2 * Math.PI;\n }\n\n return [centp.x, centp.y, rX, rY, a1, ad, xAxisRotation, sweepFlag];\n }\n\n calcLength(x, y, commandType, points) {\n var len = 0;\n var p1 = null;\n var p2 = null;\n var t = 0;\n\n switch (commandType) {\n case PathParser.LINE_TO:\n return this.getLineLength(x, y, points[0], points[1]);\n\n case PathParser.CURVE_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnCubicBezier(0, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnCubicBezier(t, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.QUAD_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnQuadraticBezier(0, x, y, points[0], points[1], points[2], points[3]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnQuadraticBezier(t, x, y, points[0], points[1], points[2], points[3]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.ARC:\n {\n // Approximates by breaking curve into line segments\n len = 0.0;\n var start = points[4]; // 4 = theta\n\n var dTheta = points[5]; // 5 = dTheta\n\n var end = points[4] + dTheta;\n var inc = Math.PI / 180.0; // 1 degree resolution\n\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n } // Note: for purpose of calculating arc length, not going to worry about rotating X-axis by angle psi\n\n\n p1 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);\n\n if (dTheta < 0) {\n // clockwise\n for (t = start - inc; t > end; t -= inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n } else {\n // counter-clockwise\n for (t = start + inc; t < end; t += inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n return len;\n }\n }\n\n return 0;\n }\n\n getPointOnLine(dist, p1x, p1y, p2x, p2y) {\n var fromX = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : p1x;\n var fromY = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : p1y;\n var m = (p2y - p1y) / (p2x - p1x + PSEUDO_ZERO);\n var run = Math.sqrt(dist * dist / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n var rise = m * run;\n var pt = null;\n\n if (p2x === p1x) {\n // vertical line\n pt = {\n x: fromX,\n y: fromY + rise\n };\n } else if ((fromY - p1y) / (fromX - p1x + PSEUDO_ZERO) === m) {\n pt = {\n x: fromX + run,\n y: fromY + rise\n };\n } else {\n var ix = 0;\n var iy = 0;\n var len = this.getLineLength(p1x, p1y, p2x, p2y);\n\n if (len < PSEUDO_ZERO) {\n return null;\n }\n\n var u = (fromX - p1x) * (p2x - p1x) + (fromY - p1y) * (p2y - p1y);\n u /= len * len;\n ix = p1x + u * (p2x - p1x);\n iy = p1y + u * (p2y - p1y);\n var pRise = this.getLineLength(fromX, fromY, ix, iy);\n var pRun = Math.sqrt(dist * dist - pRise * pRise);\n run = Math.sqrt(pRun * pRun / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n rise = m * run;\n pt = {\n x: ix + run,\n y: iy + rise\n };\n }\n\n return pt;\n }\n\n getPointOnPath(distance) {\n var fullLen = this.getPathLength();\n var cumulativePathLength = 0;\n var p = null;\n\n if (distance < -0.00005 || distance - 0.00005 > fullLen) {\n return null;\n }\n\n var {\n dataArray\n } = this;\n\n for (var command of dataArray) {\n if (command && (command.pathLength < 0.00005 || cumulativePathLength + command.pathLength + 0.00005 < distance)) {\n cumulativePathLength += command.pathLength;\n continue;\n }\n\n var delta = distance - cumulativePathLength;\n var currentT = 0;\n\n switch (command.type) {\n case PathParser.LINE_TO:\n p = this.getPointOnLine(delta, command.start.x, command.start.y, command.points[0], command.points[1], command.start.x, command.start.y);\n break;\n\n case PathParser.ARC:\n {\n var start = command.points[4]; // 4 = theta\n\n var dTheta = command.points[5]; // 5 = dTheta\n\n var end = command.points[4] + dTheta;\n currentT = start + delta / command.pathLength * dTheta;\n\n if (dTheta < 0 && currentT < end || dTheta >= 0 && currentT > end) {\n break;\n }\n\n p = this.getPointOnEllipticalArc(command.points[0], command.points[1], command.points[2], command.points[3], currentT, command.points[6]);\n break;\n }\n\n case PathParser.CURVE_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnCubicBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3], command.points[4], command.points[5]);\n break;\n\n case PathParser.QUAD_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnQuadraticBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3]);\n break;\n }\n\n if (p) {\n return p;\n }\n\n break;\n }\n\n return null;\n }\n\n getLineLength(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n }\n\n getPathLength() {\n if (this.pathLength === -1) {\n this.pathLength = this.dataArray.reduce((length, command) => command.pathLength > 0 ? length + command.pathLength : length, 0);\n }\n\n return this.pathLength;\n }\n\n getPointOnCubicBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y) {\n var x = p4x * CB1(pct) + p3x * CB2(pct) + p2x * CB3(pct) + p1x * CB4(pct);\n var y = p4y * CB1(pct) + p3y * CB2(pct) + p2y * CB3(pct) + p1y * CB4(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnQuadraticBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y) {\n var x = p3x * QB1(pct) + p2x * QB2(pct) + p1x * QB3(pct);\n var y = p3y * QB1(pct) + p2y * QB2(pct) + p1y * QB3(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi) {\n var cosPsi = Math.cos(psi);\n var sinPsi = Math.sin(psi);\n var pt = {\n x: rx * Math.cos(theta),\n y: ry * Math.sin(theta)\n };\n return {\n x: cx + (pt.x * cosPsi - pt.y * sinPsi),\n y: cy + (pt.x * sinPsi + pt.y * cosPsi)\n };\n } // TODO need some optimisations. possibly build cache only for curved segments?\n\n\n buildEquidistantCache(inputStep, inputPrecision) {\n var fullLen = this.getPathLength();\n var precision = inputPrecision || 0.25; // accuracy vs performance\n\n var step = inputStep || fullLen / 100;\n\n if (!this.equidistantCache || this.equidistantCache.step !== step || this.equidistantCache.precision !== precision) {\n // Prepare cache\n this.equidistantCache = {\n step,\n precision,\n points: []\n }; // Calculate points\n\n var s = 0;\n\n for (var l = 0; l <= fullLen; l += precision) {\n var p0 = this.getPointOnPath(l);\n var p1 = this.getPointOnPath(l + precision);\n\n if (!p0 || !p1) {\n continue;\n }\n\n s += this.getLineLength(p0.x, p0.y, p1.x, p1.y);\n\n if (s >= step) {\n this.equidistantCache.points.push({\n x: p0.x,\n y: p0.y,\n distance: l\n });\n s -= step;\n }\n }\n }\n }\n\n getEquidistantPointOnPath(targetDistance, step, precision) {\n this.buildEquidistantCache(step, precision);\n\n if (targetDistance < 0 || targetDistance - this.getPathLength() > 0.00005) {\n return null;\n }\n\n var idx = Math.round(targetDistance / this.getPathLength() * (this.equidistantCache.points.length - 1));\n return this.equidistantCache.points[idx] || null;\n }\n\n}\n\nvar dataUriRegex = /^\\s*data:(([^/,;]+\\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;\nclass ImageElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'image';\n this.loaded = false;\n var href = this.getHrefAttribute().getString();\n\n if (!href) {\n return;\n }\n\n var isSvg = href.endsWith('.svg') || /^\\s*data:image\\/svg\\+xml/i.test(href);\n document.images.push(this);\n\n if (!isSvg) {\n void this.loadImage(href);\n } else {\n void this.loadSvg(href);\n }\n\n this.isSvg = isSvg;\n }\n\n loadImage(href) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var image = yield _this.document.createImage(href);\n _this.image = image;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n loadSvg(href) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var match = dataUriRegex.exec(href);\n\n if (match) {\n var data = match[5];\n\n if (match[4] === 'base64') {\n _this2.image = atob(data);\n } else {\n _this2.image = decodeURIComponent(data);\n }\n } else {\n try {\n var response = yield _this2.document.fetch(href);\n var svg = yield response.text();\n _this2.image = svg;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n }\n\n _this2.loaded = true;\n })();\n }\n\n renderChildren(ctx) {\n var {\n document,\n image,\n loaded\n } = this;\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!loaded || !image || !width || !height) {\n return;\n }\n\n ctx.save();\n ctx.translate(x, y);\n\n if (this.isSvg) {\n var subDocument = document.canvg.forkString(ctx, this.image, {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true,\n ignoreClear: true,\n offsetX: 0,\n offsetY: 0,\n scaleWidth: width,\n scaleHeight: height\n });\n subDocument.document.documentElement.parent = this;\n void subDocument.render();\n } else {\n var _image = this.image;\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width,\n desiredWidth: _image.width,\n height,\n desiredHeight: _image.height\n });\n\n if (this.loaded) {\n if (typeof _image.complete === 'undefined' || _image.complete) {\n ctx.drawImage(_image, 0, 0);\n }\n }\n }\n\n ctx.restore();\n }\n\n getBoundingBox() {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n}\n\nclass SymbolElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'symbol';\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass SVGFontLoader {\n constructor(document) {\n this.document = document;\n this.loaded = false;\n document.fonts.push(this);\n }\n\n load(fontFamily, url) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var {\n document\n } = _this;\n var svgDocument = yield document.canvg.parser.load(url);\n var fonts = svgDocument.getElementsByTagName('font');\n Array.from(fonts).forEach(fontNode => {\n var font = document.createElement(fontNode);\n document.definitions[fontFamily] = font;\n });\n } catch (err) {\n console.error(\"Error while loading font \\\"\".concat(url, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n}\n\nclass StyleElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'style';\n var css = compressSpaces(Array.from(node.childNodes) // NEED TEST\n .map(_ => _.textContent).join('').replace(/(\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\/)|(^[\\s]*\\/\\/.*)/gm, '') // remove comments\n .replace(/@import.*;/g, '') // remove imports\n );\n var cssDefs = css.split('}');\n cssDefs.forEach(_ => {\n var def = _.trim();\n\n if (!def) {\n return;\n }\n\n var cssParts = def.split('{');\n var cssClasses = cssParts[0].split(',');\n var cssProps = cssParts[1].split(';');\n cssClasses.forEach(_ => {\n var cssClass = _.trim();\n\n if (!cssClass) {\n return;\n }\n\n var props = document.styles[cssClass] || {};\n cssProps.forEach(cssProp => {\n var prop = cssProp.indexOf(':');\n var name = cssProp.substr(0, prop).trim();\n var value = cssProp.substr(prop + 1, cssProp.length - prop).trim();\n\n if (name && value) {\n props[name] = new Property(document, name, value);\n }\n });\n document.styles[cssClass] = props;\n document.stylesSpecificity[cssClass] = getSelectorSpecificity(cssClass);\n\n if (cssClass === '@font-face') {\n // && !nodeEnv\n var fontFamily = props['font-family'].getString().replace(/\"|'/g, '');\n var srcs = props.src.getString().split(',');\n srcs.forEach(src => {\n if (src.indexOf('format(\"svg\")') > 0) {\n var url = parseExternalUrl(src);\n\n if (url) {\n void new SVGFontLoader(document).load(fontFamily, url);\n }\n }\n });\n }\n });\n });\n }\n\n}\nStyleElement.parseExternalUrl = parseExternalUrl;\n\nclass UseElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'use';\n }\n\n setContext(ctx) {\n super.setContext(ctx);\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue()) {\n ctx.translate(xAttr.getPixels('x'), 0);\n }\n\n if (yAttr.hasValue()) {\n ctx.translate(0, yAttr.getPixels('y'));\n }\n }\n\n path(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n element.path(ctx);\n }\n }\n\n renderChildren(ctx) {\n var {\n document,\n element\n } = this;\n\n if (element) {\n var tempSvg = element;\n\n if (element.type === 'symbol') {\n // render me using a temporary svg element in symbol cases (http://www.w3.org/TR/SVG/struct.html#UseElement)\n tempSvg = new SVGElement(document, null);\n tempSvg.attributes.viewBox = new Property(document, 'viewBox', element.getAttribute('viewBox').getString());\n tempSvg.attributes.preserveAspectRatio = new Property(document, 'preserveAspectRatio', element.getAttribute('preserveAspectRatio').getString());\n tempSvg.attributes.overflow = new Property(document, 'overflow', element.getAttribute('overflow').getString());\n tempSvg.children = element.children; // element is still the parent of the children\n\n element.styles.opacity = new Property(document, 'opacity', this.calculateOpacity());\n }\n\n if (tempSvg.type === 'svg') {\n var widthStyle = this.getStyle('width', false, true);\n var heightStyle = this.getStyle('height', false, true); // if symbol or svg, inherit width/height from me\n\n if (widthStyle.hasValue()) {\n tempSvg.attributes.width = new Property(document, 'width', widthStyle.getString());\n }\n\n if (heightStyle.hasValue()) {\n tempSvg.attributes.height = new Property(document, 'height', heightStyle.getString());\n }\n }\n\n var oldParent = tempSvg.parent;\n tempSvg.parent = this;\n tempSvg.render(ctx);\n tempSvg.parent = oldParent;\n }\n }\n\n getBoundingBox(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n return element.getBoundingBox(ctx);\n }\n\n return null;\n }\n\n elementTransform() {\n var {\n document,\n element\n } = this;\n return Transform.fromElement(document, element);\n }\n\n get element() {\n if (!this.cachedElement) {\n this.cachedElement = this.getHrefAttribute().getDefinition();\n }\n\n return this.cachedElement;\n }\n\n}\n\nfunction imGet(img, x, y, width, _height, rgba) {\n return img[y * width * 4 + x * 4 + rgba];\n}\n\nfunction imSet(img, x, y, width, _height, rgba, val) {\n img[y * width * 4 + x * 4 + rgba] = val;\n}\n\nfunction m(matrix, i, v) {\n var mi = matrix[i];\n return mi * v;\n}\n\nfunction c(a, m1, m2, m3) {\n return m1 + Math.cos(a) * m2 + Math.sin(a) * m3;\n}\n\nclass FeColorMatrixElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feColorMatrix';\n var matrix = toNumbers(this.getAttribute('values').getString());\n\n switch (this.getAttribute('type').getString('matrix')) {\n // http://www.w3.org/TR/SVG/filters.html#feColorMatrixElement\n case 'saturate':\n {\n var s = matrix[0];\n /* eslint-disable array-element-newline */\n\n matrix = [0.213 + 0.787 * s, 0.715 - 0.715 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 + 0.285 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 - 0.715 * s, 0.072 + 0.928 * s, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'hueRotate':\n {\n var a = matrix[0] * Math.PI / 180.0;\n /* eslint-disable array-element-newline */\n\n matrix = [c(a, 0.213, 0.787, -0.213), c(a, 0.715, -0.715, -0.715), c(a, 0.072, -0.072, 0.928), 0, 0, c(a, 0.213, -0.213, 0.143), c(a, 0.715, 0.285, 0.140), c(a, 0.072, -0.072, -0.283), 0, 0, c(a, 0.213, -0.213, -0.787), c(a, 0.715, -0.715, 0.715), c(a, 0.072, 0.928, 0.072), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'luminanceToAlpha':\n /* eslint-disable array-element-newline */\n matrix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2125, 0.7154, 0.0721, 0, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n this.matrix = matrix;\n this.includeOpacity = this.getAttribute('includeOpacity').hasValue();\n }\n\n apply(ctx, _x, _y, width, height) {\n // assuming x==0 && y==0 for now\n var {\n includeOpacity,\n matrix\n } = this;\n var srcData = ctx.getImageData(0, 0, width, height);\n\n for (var y = 0; y < height; y++) {\n for (var x = 0; x < width; x++) {\n var r = imGet(srcData.data, x, y, width, height, 0);\n var g = imGet(srcData.data, x, y, width, height, 1);\n var b = imGet(srcData.data, x, y, width, height, 2);\n var a = imGet(srcData.data, x, y, width, height, 3);\n var nr = m(matrix, 0, r) + m(matrix, 1, g) + m(matrix, 2, b) + m(matrix, 3, a) + m(matrix, 4, 1);\n var ng = m(matrix, 5, r) + m(matrix, 6, g) + m(matrix, 7, b) + m(matrix, 8, a) + m(matrix, 9, 1);\n var nb = m(matrix, 10, r) + m(matrix, 11, g) + m(matrix, 12, b) + m(matrix, 13, a) + m(matrix, 14, 1);\n var na = m(matrix, 15, r) + m(matrix, 16, g) + m(matrix, 17, b) + m(matrix, 18, a) + m(matrix, 19, 1);\n\n if (includeOpacity) {\n nr = 0;\n ng = 0;\n nb = 0;\n na *= a / 255;\n }\n\n imSet(srcData.data, x, y, width, height, 0, nr);\n imSet(srcData.data, x, y, width, height, 1, ng);\n imSet(srcData.data, x, y, width, height, 2, nb);\n imSet(srcData.data, x, y, width, height, 3, na);\n }\n }\n\n ctx.clearRect(0, 0, width, height);\n ctx.putImageData(srcData, 0, 0);\n }\n\n}\n\nclass MaskElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'mask';\n }\n\n apply(ctx, element) {\n var {\n document\n } = this; // render as temp svg\n\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!width && !height) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n x = Math.floor(boundingBox.x1);\n y = Math.floor(boundingBox.y1);\n width = Math.floor(boundingBox.width);\n height = Math.floor(boundingBox.height);\n }\n\n var ignoredStyles = this.removeStyles(element, MaskElement.ignoreStyles);\n var maskCanvas = document.createCanvas(x + width, y + height);\n var maskCtx = maskCanvas.getContext('2d');\n document.screen.setDefaults(maskCtx);\n this.renderChildren(maskCtx); // convert mask to alpha with a fake node\n // TODO: refactor out apply from feColorMatrix\n\n new FeColorMatrixElement(document, {\n nodeType: 1,\n childNodes: [],\n attributes: [{\n nodeName: 'type',\n value: 'luminanceToAlpha'\n }, {\n nodeName: 'includeOpacity',\n value: 'true'\n }]\n }).apply(maskCtx, 0, 0, x + width, y + height);\n var tmpCanvas = document.createCanvas(x + width, y + height);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n element.render(tmpCtx);\n tmpCtx.globalCompositeOperation = 'destination-in';\n tmpCtx.fillStyle = maskCtx.createPattern(maskCanvas, 'no-repeat');\n tmpCtx.fillRect(0, 0, x + width, y + height);\n ctx.fillStyle = tmpCtx.createPattern(tmpCanvas, 'no-repeat');\n ctx.fillRect(0, 0, x + width, y + height); // reassign mask\n\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nMaskElement.ignoreStyles = ['mask', 'transform', 'clip-path'];\n\nvar noop = () => {// NOOP\n};\n\nclass ClipPathElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'clipPath';\n }\n\n apply(ctx) {\n var {\n document\n } = this;\n var contextProto = Reflect.getPrototypeOf(ctx);\n var {\n beginPath,\n closePath\n } = ctx;\n\n if (contextProto) {\n contextProto.beginPath = noop;\n contextProto.closePath = noop;\n }\n\n Reflect.apply(beginPath, ctx, []);\n this.children.forEach(child => {\n if (typeof child.path === 'undefined') {\n return;\n }\n\n var transform = typeof child.elementTransform !== 'undefined' ? child.elementTransform() : null; // handle <use />\n\n if (!transform) {\n transform = Transform.fromElement(document, child);\n }\n\n if (transform) {\n transform.apply(ctx);\n }\n\n child.path(ctx);\n\n if (contextProto) {\n contextProto.closePath = closePath;\n }\n\n if (transform) {\n transform.unapply(ctx);\n }\n });\n Reflect.apply(closePath, ctx, []);\n ctx.clip();\n\n if (contextProto) {\n contextProto.beginPath = beginPath;\n contextProto.closePath = closePath;\n }\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass FilterElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'filter';\n }\n\n apply(ctx, element) {\n // render as temp svg\n var {\n document,\n children\n } = this;\n var boundingBox = element.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return;\n }\n\n var px = 0;\n var py = 0;\n children.forEach(child => {\n var efd = child.extraFilterDistance || 0;\n px = Math.max(px, efd);\n py = Math.max(py, efd);\n });\n var width = Math.floor(boundingBox.width);\n var height = Math.floor(boundingBox.height);\n var tmpCanvasWidth = width + 2 * px;\n var tmpCanvasHeight = height + 2 * py;\n\n if (tmpCanvasWidth < 1 || tmpCanvasHeight < 1) {\n return;\n }\n\n var x = Math.floor(boundingBox.x);\n var y = Math.floor(boundingBox.y);\n var ignoredStyles = this.removeStyles(element, FilterElement.ignoreStyles);\n var tmpCanvas = document.createCanvas(tmpCanvasWidth, tmpCanvasHeight);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n tmpCtx.translate(-x + px, -y + py);\n element.render(tmpCtx); // apply filters\n\n children.forEach(child => {\n if (typeof child.apply === 'function') {\n child.apply(tmpCtx, 0, 0, tmpCanvasWidth, tmpCanvasHeight);\n }\n }); // render on me\n\n ctx.drawImage(tmpCanvas, 0, 0, tmpCanvasWidth, tmpCanvasHeight, x - px, y - py, tmpCanvasWidth, tmpCanvasHeight);\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nFilterElement.ignoreStyles = ['filter', 'transform', 'clip-path'];\n\nclass FeDropShadowElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feDropShadow';\n this.addStylesFromStyleDefinition();\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeMorphologyElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feMorphology';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeCompositeElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feComposite';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeGaussianBlurElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feGaussianBlur';\n this.blurRadius = Math.floor(this.getAttribute('stdDeviation').getNumber());\n this.extraFilterDistance = this.blurRadius;\n }\n\n apply(ctx, x, y, width, height) {\n var {\n document,\n blurRadius\n } = this;\n var body = document.window ? document.window.document.body : null;\n var canvas = ctx.canvas; // StackBlur requires canvas be on document\n\n canvas.id = document.getUniqueId();\n\n if (body) {\n canvas.style.display = 'none';\n body.appendChild(canvas);\n }\n\n canvasRGBA(canvas, x, y, width, height, blurRadius);\n\n if (body) {\n body.removeChild(canvas);\n }\n }\n\n}\n\nclass TitleElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'title';\n }\n\n}\n\nclass DescElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'desc';\n }\n\n}\n\nvar elements = {\n 'svg': SVGElement,\n 'rect': RectElement,\n 'circle': CircleElement,\n 'ellipse': EllipseElement,\n 'line': LineElement,\n 'polyline': PolylineElement,\n 'polygon': PolygonElement,\n 'path': PathElement,\n 'pattern': PatternElement,\n 'marker': MarkerElement,\n 'defs': DefsElement,\n 'linearGradient': LinearGradientElement,\n 'radialGradient': RadialGradientElement,\n 'stop': StopElement,\n 'animate': AnimateElement,\n 'animateColor': AnimateColorElement,\n 'animateTransform': AnimateTransformElement,\n 'font': FontElement,\n 'font-face': FontFaceElement,\n 'missing-glyph': MissingGlyphElement,\n 'glyph': GlyphElement,\n 'text': TextElement,\n 'tspan': TSpanElement,\n 'tref': TRefElement,\n 'a': AElement,\n 'textPath': TextPathElement,\n 'image': ImageElement,\n 'g': GElement,\n 'symbol': SymbolElement,\n 'style': StyleElement,\n 'use': UseElement,\n 'mask': MaskElement,\n 'clipPath': ClipPathElement,\n 'filter': FilterElement,\n 'feDropShadow': FeDropShadowElement,\n 'feMorphology': FeMorphologyElement,\n 'feComposite': FeCompositeElement,\n 'feColorMatrix': FeColorMatrixElement,\n 'feGaussianBlur': FeGaussianBlurElement,\n 'title': TitleElement,\n 'desc': DescElement\n};\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction createCanvas(width, height) {\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nfunction createImage(_x) {\n return _createImage.apply(this, arguments);\n}\n\nfunction _createImage() {\n _createImage = _asyncToGenerator(function* (src) {\n var anonymousCrossOrigin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var image = document.createElement('img');\n\n if (anonymousCrossOrigin) {\n image.crossOrigin = 'Anonymous';\n }\n\n return new Promise((resolve, reject) => {\n image.onload = () => {\n resolve(image);\n };\n\n image.onerror = (_event, _source, _lineno, _colno, error) => {\n reject(error);\n };\n\n image.src = src;\n });\n });\n return _createImage.apply(this, arguments);\n}\n\nclass Document {\n constructor(canvg) {\n var {\n rootEmSize = 12,\n emSize = 12,\n createCanvas = Document.createCanvas,\n createImage = Document.createImage,\n anonymousCrossOrigin\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.canvg = canvg;\n this.definitions = Object.create(null);\n this.styles = Object.create(null);\n this.stylesSpecificity = Object.create(null);\n this.images = [];\n this.fonts = [];\n this.emSizeStack = [];\n this.uniqueId = 0;\n this.screen = canvg.screen;\n this.rootEmSize = rootEmSize;\n this.emSize = emSize;\n this.createCanvas = createCanvas;\n this.createImage = this.bindCreateImage(createImage, anonymousCrossOrigin);\n this.screen.wait(this.isImagesLoaded.bind(this));\n this.screen.wait(this.isFontsLoaded.bind(this));\n }\n\n bindCreateImage(createImage, anonymousCrossOrigin) {\n if (typeof anonymousCrossOrigin === 'boolean') {\n return (source, forceAnonymousCrossOrigin) => createImage(source, typeof forceAnonymousCrossOrigin === 'boolean' ? forceAnonymousCrossOrigin : anonymousCrossOrigin);\n }\n\n return createImage;\n }\n\n get window() {\n return this.screen.window;\n }\n\n get fetch() {\n return this.screen.fetch;\n }\n\n get ctx() {\n return this.screen.ctx;\n }\n\n get emSize() {\n var {\n emSizeStack\n } = this;\n return emSizeStack[emSizeStack.length - 1];\n }\n\n set emSize(value) {\n var {\n emSizeStack\n } = this;\n emSizeStack.push(value);\n }\n\n popEmSize() {\n var {\n emSizeStack\n } = this;\n emSizeStack.pop();\n }\n\n getUniqueId() {\n return \"canvg\".concat(++this.uniqueId);\n }\n\n isImagesLoaded() {\n return this.images.every(_ => _.loaded);\n }\n\n isFontsLoaded() {\n return this.fonts.every(_ => _.loaded);\n }\n\n createDocumentElement(document) {\n var documentElement = this.createElement(document.documentElement);\n documentElement.root = true;\n documentElement.addStylesFromStyleDefinition();\n this.documentElement = documentElement;\n return documentElement;\n }\n\n createElement(node) {\n var elementType = node.nodeName.replace(/^[^:]+:/, '');\n var ElementType = Document.elementTypes[elementType];\n\n if (typeof ElementType !== 'undefined') {\n return new ElementType(this, node);\n }\n\n return new UnknownElement(this, node);\n }\n\n createTextNode(node) {\n return new TextNode(this, node);\n }\n\n setViewBox(config) {\n this.screen.setViewBox(_objectSpread$1({\n document: this\n }, config));\n }\n\n}\nDocument.createCanvas = createCanvas;\nDocument.createImage = createImage;\nDocument.elementTypes = elements;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n/**\r\n * SVG renderer on canvas.\r\n */\n\nclass Canvg {\n /**\r\n * Main constructor.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG Document.\r\n * @param options - Rendering options.\r\n */\n constructor(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.parser = new Parser(options);\n this.screen = new Screen(ctx, options);\n this.options = options;\n var document = new Document(this, options);\n var documentElement = document.createDocumentElement(svg);\n this.document = document;\n this.documentElement = documentElement;\n }\n /**\r\n * Create Canvg instance from SVG source string or URL.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static from(ctx, svg) {\n var _arguments = arguments;\n return _asyncToGenerator(function* () {\n var options = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = yield parser.parse(svg);\n return new Canvg(ctx, svgDocument, options);\n })();\n }\n /**\r\n * Create Canvg instance from SVG source string.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static fromString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = parser.parseFromString(svg);\n return new Canvg(ctx, svgDocument, options);\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n fork(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.from(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n forkString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.fromString(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Document is ready promise.\r\n * @returns Ready promise.\r\n */\n\n\n ready() {\n return this.screen.ready();\n }\n /**\r\n * Document is ready value.\r\n * @returns Is ready or not.\r\n */\n\n\n isReady() {\n return this.screen.isReady();\n }\n /**\r\n * Render only first frame, ignoring animations and mouse.\r\n * @param options - Rendering options.\r\n */\n\n\n render() {\n var _arguments2 = arguments,\n _this = this;\n\n return _asyncToGenerator(function* () {\n var options = _arguments2.length > 0 && _arguments2[0] !== undefined ? _arguments2[0] : {};\n\n _this.start(_objectSpread({\n enableRedraw: true,\n ignoreAnimation: true,\n ignoreMouse: true\n }, options));\n\n yield _this.ready();\n\n _this.stop();\n })();\n }\n /**\r\n * Start rendering.\r\n * @param options - Render options.\r\n */\n\n\n start() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var {\n documentElement,\n screen,\n options: baseOptions\n } = this;\n screen.start(documentElement, _objectSpread(_objectSpread({\n enableRedraw: true\n }, baseOptions), options));\n }\n /**\r\n * Stop rendering.\r\n */\n\n\n stop() {\n this.screen.stop();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.documentElement.resize(width, height, preserveAspectRatio);\n }\n\n}\n\nexport { AElement, AnimateColorElement, AnimateElement, AnimateTransformElement, BoundingBox, CB1, CB2, CB3, CB4, Canvg, CircleElement, ClipPathElement, DefsElement, DescElement, Document, Element, EllipseElement, FeColorMatrixElement, FeCompositeElement, FeDropShadowElement, FeGaussianBlurElement, FeMorphologyElement, FilterElement, Font, FontElement, FontFaceElement, GElement, GlyphElement, GradientElement, ImageElement, LineElement, LinearGradientElement, MarkerElement, MaskElement, Matrix, MissingGlyphElement, Mouse, PSEUDO_ZERO, Parser, PathElement, PathParser, PatternElement, Point, PolygonElement, PolylineElement, Property, QB1, QB2, QB3, RadialGradientElement, RectElement, RenderedElement, Rotate, SVGElement, SVGFontLoader, Scale, Screen, Skew, SkewX, SkewY, StopElement, StyleElement, SymbolElement, TRefElement, TSpanElement, TextElement, TextPathElement, TitleElement, Transform, Translate, UnknownElement, UseElement, ViewPort, compressSpaces, Canvg as default, getSelectorSpecificity, normalizeAttributeName, normalizeColor, parseExternalUrl, index as presets, toNumbers, trimLeft, trimRight, vectorMagnitude, vectorsAngle, vectorsRatio };\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==\n"],"names":["getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performance","now","module","exports","process","hr","uptime","Date","getTime","call","this","__webpack_require__","root","window","g","vendors","suffix","raf","caf","i","length","last","id","queue","frameDuration","callback","_now","next","Math","max","setTimeout","cp","slice","cancelled","e","round","push","handle","fn","cancel","apply","arguments","polyfill","object","requestAnimationFrame","cancelAnimationFrame","color_string","ok","alpha","charAt","substr","replace","toLowerCase","simple_colors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","color_defs","re","example","bits","parseInt","parseFloat","processor","exec","channels","r","b","isNaN","toRGB","toRGBA","toHex","toString","getHelpXML","examples","Array","j","sc","xml","document","createElement","setAttribute","list_item","list_color","RGBColor","example_div","style","cssText","appendChild","createTextNode","list_item_value","$","uncurryThis","$indexOf","arrayMethodIsStrict","nativeIndexOf","indexOf","NEGATIVE_ZERO","target","proto","forced","searchElement","fromIndex","undefined","$reduce","CHROME_VERSION","reduce","callbackfn","isArray","nativeReverse","reverse","test","String","descriptor","getOwnPropertyDescriptor","toLength","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","min","CORRECT_IS_REGEXP_LOGIC","prototype","writable","endsWith","searchString","that","search","endPosition","len","end","fixRegExpWellKnownSymbolLogic","anObject","isObject","speciesConstructor","advanceStringIndex","getMethod","getRegExpFlags","regExpExec","stickyHelpers","fails","UNSUPPORTED_Y","stringSlice","stringIndexOf","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","result","split","BUGGY","SPLIT","nativeSplit","maybeCallNative","internalSplit","separator","limit","O","splitter","string","rx","S","res","done","value","C","RegExp","flags","unicodeMatching","source","lim","p","q","A","lastIndex","z","startsWith","index","asyncGeneratorStep","n","t","o","a","c","u","Promise","resolve","then","_asyncToGenerator","_next","_throw","_defineProperty","esm_typeof","Symbol","toPrimitive","TypeError","toPropertyKey","Object","defineProperty","enumerable","configurable","setPrototypeOf","__proto__","hasOwnProperty","constructor","create","cos","sin","Error","PI","lArcFlag","sweepFlag","rX","rY","s","x","y","abs","h","xRot","pow","sqrt","m","l","T","v","cX","cY","phi1","atan2","phi2","relative","x1","y1","x2","y2","NaN","type","_","SMOOTH_CURVE_TO","CURVE_TO","SMOOTH_QUAD_TO","QUAD_TO","MOVE_TO","CLOSE_PATH","HORIZ_LINE_TO","LINE_TO","VERT_LINE_TO","f","N","d","E","M","R","I","L","ROUND","TO_ABS","TO_REL","NORMALIZE_HVZ","ARC","NORMALIZE_ST","QT_TO_C","INFO","SANITIZE","LINE_COMMANDS","MATRIX","ROTATE","TRANSLATE","SCALE","SKEW_X","atan","SKEW_Y","X_AXIS_SYMMETRY","Y_AXIS_SYMMETRY","A_TO_C","ceil","H","ANNOTATE_ARCS","CLONE","CALCULATE_BOUNDS","maxX","minX","maxY","minY","DRAWING_COMMANDS","w","map","U","transform","toAbs","toRel","normalizeHVZ","normalizeST","qtToC","aToC","sanitize","translate","scale","rotate","matrix","skewX","skewY","xSymmetry","ySymmetry","annotateArcs","charCodeAt","curNumber","curCommandType","curCommandRelative","canParseCommandOrComma","curNumberHasExp","curNumberHasExpDigits","curNumberHasDecimal","curArgs","finish","parse","SyntaxError","Number","getPrototypeOf","commands","encode","getBounds","_typeof","obj","iterator","mulTable","shgTable","processCanvasRGBA","canvas","topX","topY","width","height","radius","imageData","getElementById","context","getContext","getImageData","getImageDataFromCanvas","stackEnd","pixels","data","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","BlurStack","stack","stackIn","stackOut","yw","yi","mulSum","shgSum","pr","pg","pb","pa","_i","rInSum","gInSum","bInSum","aInSum","rOutSum","gOutSum","bOutSum","aOutSum","rSum","gSum","bSum","aSum","_i2","rbs","paInitial","_a2","_p","_stackOut","_r","_g","_b","_a","_x","_pr","_pg","_pb","_pa","_rOutSum","_gOutSum","_bOutSum","_aOutSum","_rSum","_gSum","_bSum","_aSum","_i3","yp","_gInSum","_bInSum","_aInSum","_rInSum","_i4","_rbs","_y","_p2","processImageDataRGBA","putImageData","instance","Constructor","_classCallCheck","freeze","offscreen","DOMParser","DOMParserFallback","preset","ignoreAnimation","ignoreMouse","createCanvas","OffscreenCanvas","createImage","url","response","fetch","blob","createImageBitmap","Reflect","deleteProperty","node","_ref","loadImage","compressSpaces","str","trimLeft","trimRight","toNumbers","match","allUppercase","normalizeAttributeName","name","parseExternalUrl","urlMatch","normalizeColor","color","rgbParts","num","isFloat","attributeRegex","idRegex","classRegex","pseudoElementRegex","pseudoClassWithBracketsRegex","pseudoClassRegex","elementRegex","findSelectorMatch","selector","regex","matches","getSelectorSpecificity","specificity","currentSelector","delta","join","PSEUDO_ZERO","vectorMagnitude","vectorsRatio","vectorsAngle","acos","CB1","CB2","CB3","CB4","QB1","QB2","QB3","Property","isNormalizedColor","empty","getString","trim","hasValue","zeroIsValue","isString","regexp","isUrlDefinition","isPixels","asString","setValue","getValue","def","getNumber","getColor","getDpi","getRem","rootEmSize","getEm","emSize","getUnits","getPixels","axisOrIsFontSize","processPercent","axis","isFontSize","viewPort","screen","computeSize","getMilliseconds","getRadians","getDefinition","definitions","getFillStyleDefinition","element","opacity","createGradient","ctx","createPattern","getHrefAttribute","patternTransform","getAttribute","getTextBaseline","textBaselineMapping","addOpacity","commas","rgbcolor","baseline","middle","central","ideographic","alphabetic","hanging","mathematical","ViewPort","viewPorts","clear","setCurrent","removeCurrent","pop","getCurrent","Point","point","defaultValue","parseScale","parsePath","path","points","pathPoints","angleTo","applyTransform","xp","Mouse","working","events","eventElements","onClick","bind","onMouseMove","isWorking","start","onclick","onmousemove","stop","hasEvents","runEvents","cursor","forEach","run","parent","checkPath","_ref2","isPointInPath","checkBoundingBox","boundingBox","_ref3","isPointInBox","mapXY","offsetLeft","offsetTop","offsetParent","scrollX","scrollY","event","clientX","clientY","eventTarget","defaultWindow","defaultFetch$1","Screen","FRAMERATE","MAX_VIRTUAL_PIXELS","CLIENT_WIDTH","CLIENT_HEIGHT","mouse","animations","waits","isReadyLock","isFirstRender","intervalId","wait","checker","ready","readyPromise","isReady","every","resolveReady","setDefaults","strokeStyle","lineCap","lineJoin","miterLimit","setViewBox","aspectRatio","desiredWidth","desiredHeight","refX","refY","clip","clipX","clipY","cleanAspectRatio","aspectRatioAlign","aspectRatioMeetOrSlice","align","meetOrSlice","scaleX","scaleY","scaleMin","scaleMax","finalDesiredWidth","finalDesiredHeight","refXProp","refYProp","hasRefs","scaledClipX","scaledClipY","beginPath","moveTo","lineTo","closePath","isMeetMinY","isSliceMaxY","isMeetMinX","isSliceMaxX","enableRedraw","ignoreDimensions","ignoreClear","forceRedraw","scaleWidth","scaleHeight","offsetX","offsetY","render","tick","shouldUpdate","animation","update","widthStyle","getStyle","heightStyle","concat","cWidth","clientWidth","cHeight","clientHeight","viewBox","xRatio","yRatio","_widthStyle","_heightStyle","transformStyle","clearRect","defaultFetch","DefaultDOMParser","Parser","resource","_this","parseFromString","load","parser","checkDocument","err","parserError","getElementsByTagName","textContent","_this2","text","Translate","unapply","applyToPoint","Rotate","transformOrigin","angle","originX","originY","cx","cy","numbers","tx","ty","rad","Scale","scaleSize","Matrix","det","Skew","skew","super","SkewX","SkewY","Transform","transforms","parseTransforms","parseTransform","TransformType","transformTypes","fromElement","transformOriginXProperty","transformOriginYProperty","Element","captureTextNodes","attributes","styles","stylesSpecificity","animationFrozen","animationFrozenValue","children","nodeType","from","attribute","nodeName","addStylesFromStyleDefinition","childNodes","childNode","addChild","textNode","getText","createIfNotExists","attr","_attr","key","skipAncestors","parentStyle","_style","save","mask","applyEffects","filter","setContext","renderChildren","clearContext","restore","clipPathStyleProp","child","ignoreChildTypes","includes","matchesSelector","_node$getAttribute","styleClasses","some","styleClass","existingSpecificity","removeStyles","ignoreStyles","toRestore","styleProp","restoreStyles","isFirstChild","_this$parent","UnknownElement","wrapFontFamily","fontFamily","trimmed","prepareFontStyle","fontStyle","targetFontStyle","prepareFontWeight","fontWeight","targetFontWeight","Font","fontVariant","fontSize","inherit","inheritFont","parts","set","part","variants","weights","BoundingBox","addPoint","addX","addY","addBoundingBox","sumCubic","p0","p1","p2","p3","bezierCurveAdd","forX","b2ac","t1","t2","addBezierCurve","p0x","p0y","p1x","p1y","p2x","p2y","p3x","p3y","addQuadraticCurve","cp1x","cp1y","cp2x","cp2y","PathParser","control","current","command","previousCommand","angles","reset","isEnd","getPoint","xProp","yProp","makeAbsolute","getAsControlPoint","getAsCurrentPoint","getReflectedControlPoint","ox","oy","addMarker","priorTo","addMarkerAngle","getMarkerPoints","getMarkerAngles","RenderedElement","modifiedEmSizeStack","calculateOpacity","opacityStyle","fromMeasure","fillStyleProp","fillOpacityStyleProp","strokeStyleProp","strokeOpacityProp","fillStyle","_fillStyle","_fillStyle2","_strokeStyle","_strokeStyle2","strokeWidthStyleProp","newLineWidth","lineWidth","strokeLinecapStyleProp","strokeLinejoinStyleProp","strokeMiterlimitProp","strokeDasharrayStyleProp","strokeDashoffsetProp","gaps","setLineDash","webkitLineDash","mozDash","offset","lineDashOffset","webkitLineDashOffset","mozDashOffset","font","fontStyleProp","fontStyleStyleProp","fontVariantStyleProp","fontWeightStyleProp","fontSizeStyleProp","fontFamilyStyleProp","globalAlpha","popEmSize","PathElement","pathParser","pathM","pathL","pathH","pathV","pathC","pathS","pathQ","pathT","pathA","pathZ","getBoundingBox","getMarkers","markers","fillRuleStyleProp","fill","setTransform","stroke","markersLastIndex","markerStartStyleProp","markerMidStyleProp","markerEndStyleProp","marker","_marker","_point","_angle","_marker2","_point2","_angle2","controlPoint","currentPoint","bezierCurveTo","quadraticCurveTo","xAxisRotation","currp","cpp","centp","a1","ad","dir","ah","halfWay","sx","sy","arc","Boolean","GlyphElement","horizAdvX","unicode","arabicForm","TextElement","measureCache","textBaseline","initializeCoordinates","leafTexts","textChunkStart","POSITIVE_INFINITY","NEGATIVE_INFINITY","getTElementBoundingBox","adjustChildCoordinatesRecursive","childBoundingBox","getChildBoundingBox","getFontSize","inheritFontSize","measureText","getGlyph","char","glyph","isArabic","prevChar","nextChar","glyphs","maybeGlyph","missingGlyph","getTextFromNode","parentNode","renderChild","renderTElementChildren","renderText","customFont","unitsPerEm","fontFace","ctxFont","isRTL","dx","lw","fillText","strokeText","applyAnchoring","shift","firstElement","textAnchor","adjustChildCoordinatesRecursiveCore","textParent","adjustChildCoordinates","xAttr","yAttr","dxAttr","dyAttr","getInheritedAttribute","measure","measureTargetText","targetText","_measure","parentAttr","TSpanElement","TextNode","SVGElement","_this$node$parentNode","getComputedStyle","getPropertyValue","fontSizeProp","refXAttr","refYAttr","viewBoxAttr","resize","preserveAspectRatio","widthAttr","heightAttr","styleAttr","originWidth","originHeight","preserveAspectRatioAttr","RectElement","rxAttr","ryAttr","ry","KAPPA","CircleElement","EllipseElement","LineElement","getPoints","x0","y0","PolylineElement","PolygonElement","PatternElement","parentOpacityProp","patternSvg","patternCanvas","patternCtx","MarkerElement","orient","markerUnits","markerSvg","overflow","DefsElement","GElement","GradientElement","attributesToInherit","stops","getGradientUnits","stopsContainer","inheritStopContainer","gradient","getGradient","addParentOpacity","addColorStop","rootView","rect","group","attributeToInherit","LinearGradientElement","isBoundingBoxUnits","createLinearGradient","RadialGradientElement","fx","fy","fr","createRadialGradient","StopElement","stopOpacity","stopColor","AnimateElement","duration","initialValue","initialUnits","removed","frozen","begin","maxDuration","to","values","valuesAttr","getProperty","attributeType","attributeName","calcValue","progress","getProgress","newValue","prop","updated","typeAttr","lb","floor","ub","AnimateColorElement","colorFrom","colorTo","AnimateTransformElement","transformFrom","transformTo","FontElement","fontFamilyStyle","FontFaceElement","ascent","descent","MissingGlyphElement","TRefElement","firstChild","AElement","hasText","open","ownKeys$2","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","_objectSpread$2","getOwnPropertyDescriptors","defineProperties","TextPathElement","textWidth","textHeight","pathLength","glyphInfo","letterSpacingCache","measuresCache","Map","pathElement","dataArray","parsePathData","theta","dTheta","psi","fs","setTextData","textDecoration","rotation","partialText","getLetterSpacingAt","idx","findSegmentToFitChar","anchor","textFullWidth","fullPathWidth","spacesNumber","inputOffset","dy","charI","glyphWidth","splineStep","getEquidistantPointOnPath","segment","dyX","dyY","has","get","chars","thisSpacing","parentSpacing","letterSpacing","textLen","dxSum","acc","cur","getPathLength","startOffset","nextOffset","pathCommands","startX","startY","nextCommandType","calcLength","commandType","getLineLength","getPointOnCubicBezier","getPointOnQuadraticBezier","inc","getPointOnEllipticalArc","getPointOnLine","dist","fromX","fromY","rise","pt","ix","iy","pRise","pRun","getPointOnPath","distance","fullLen","cumulativePathLength","currentT","pct","p4x","p4y","cosPsi","sinPsi","buildEquidistantCache","inputStep","inputPrecision","precision","step","equidistantCache","targetDistance","dataUriRegex","ImageElement","loaded","href","isSvg","images","loadSvg","image","console","error","atob","decodeURIComponent","svg","subDocument","canvg","forkString","documentElement","_image","complete","drawImage","SymbolElement","SVGFontLoader","fonts","fontNode","StyleElement","css","cssParts","cssClasses","cssProps","cssClass","props","cssProp","src","UseElement","tempSvg","oldParent","elementTransform","cachedElement","imGet","img","_height","rgba","imSet","val","index_es_m","index_es_c","m1","m2","m3","FeColorMatrixElement","includeOpacity","srcData","nr","ng","nb","na","MaskElement","ignoredStyles","maskCanvas","maskCtx","tmpCanvas","tmpCtx","globalCompositeOperation","fillRect","noop","ClipPathElement","contextProto","FilterElement","px","py","efd","extraFilterDistance","tmpCanvasWidth","tmpCanvasHeight","FeDropShadowElement","_width","FeMorphologyElement","FeCompositeElement","FeGaussianBlurElement","blurRadius","body","getUniqueId","display","removeChild","TitleElement","DescElement","index_es_elements","circle","ellipse","line","polyline","polygon","pattern","defs","linearGradient","radialGradient","animate","animateColor","animateTransform","tspan","tref","textPath","symbol","use","clipPath","feDropShadow","feMorphology","feComposite","feColorMatrix","feGaussianBlur","title","desc","ownKeys$1","_createImage","anonymousCrossOrigin","crossOrigin","reject","onload","onerror","_event","_source","_lineno","_colno","Document","emSizeStack","uniqueId","bindCreateImage","isImagesLoaded","isFontsLoaded","forceAnonymousCrossOrigin","createDocumentElement","elementType","ElementType","elementTypes","config","_objectSpread$1","ownKeys","_objectSpread","Canvg","options","_arguments","svgDocument","fromString","fork","_arguments2","baseOptions"],"sourceRoot":""}
|