{"version":3,"file":"svg2pdf.umd.min.js","sources":["../node_modules/tslib/tslib.es6.js","../src/utils/rgbcolor.ts","../src/fill/ColorFill.ts","../src/context/attributestate.ts","../src/utils/constants.ts","../src/context/textmeasure.ts","../src/context/context.ts","../node_modules/cssesc/cssesc.js","../src/context/referenceshandler.ts","../src/utils/geometry.ts","../src/utils/path.ts","../src/utils/node.ts","../src/markerlist.ts","../src/utils/misc.ts","../src/utils/parsing.ts","../node_modules/font-family-papandreou/index.js","../src/utils/fonts.ts","../src/utils/bbox.ts","../src/utils/transform.ts","../src/nodes/svgnode.ts","../src/nodes/nonrenderednode.ts","../src/nodes/gradient.ts","../src/nodes/lineargradient.ts","../src/nodes/radialgradient.ts","../src/fill/GradientFill.ts","../src/nodes/pattern.ts","../src/fill/PatternFill.ts","../src/applyparseattributes.ts","../src/fill/parseFill.ts","../src/utils/applyclippath.ts","../src/nodes/renderednode.ts","../src/nodes/graphicsnode.ts","../src/nodes/geometrynode.ts","../src/nodes/line.ts","../src/nodes/symbol.ts","../src/context/viewport.ts","../src/nodes/use.ts","../src/nodes/rect.ts","../src/nodes/ellipsebase.ts","../src/nodes/ellipse.ts","../src/utils/text.ts","../src/textchunk.ts","../src/nodes/text.ts","../node_modules/svgpath/lib/path_parse.js","../node_modules/svgpath/lib/matrix.js","../node_modules/svgpath/lib/transform_parse.js","../node_modules/svgpath/lib/a2c.js","../node_modules/svgpath/lib/ellipse.js","../node_modules/svgpath/lib/svgpath.js","../src/nodes/path.ts","../src/nodes/image.ts","../src/nodes/traverse.ts","../src/nodes/polygon.ts","../src/nodes/void.ts","../src/nodes/marker.ts","../src/nodes/circle.ts","../src/nodes/polyline.ts","../src/nodes/containernode.ts","../src/nodes/svg.ts","../src/nodes/group.ts","../src/nodes/clippath.ts","../src/parse.ts","../node_modules/specificity/dist/specificity.mjs","../src/context/stylesheets.ts","../src/svg2pdf.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n",null,null,null,null,null,null,"/*! https://mths.be/cssesc v3.0.0 by @mathias */\n'use strict';\n\nvar object = {};\nvar hasOwnProperty = object.hasOwnProperty;\nvar merge = function merge(options, defaults) {\n\tif (!options) {\n\t\treturn defaults;\n\t}\n\tvar result = {};\n\tfor (var key in defaults) {\n\t\t// `if (defaults.hasOwnProperty(key) { … }` is not needed here, since\n\t\t// only recognized option names are used.\n\t\tresult[key] = hasOwnProperty.call(options, key) ? options[key] : defaults[key];\n\t}\n\treturn result;\n};\n\nvar regexAnySingleEscape = /[ -,\\.\\/:-@\\[-\\^`\\{-~]/;\nvar regexSingleEscape = /[ -,\\.\\/:-@\\[\\]\\^`\\{-~]/;\nvar regexAlwaysEscape = /['\"\\\\]/;\nvar regexExcessiveSpaces = /(^|\\\\+)?(\\\\[A-F0-9]{1,6})\\x20(?![a-fA-F0-9\\x20])/g;\n\n// https://mathiasbynens.be/notes/css-escapes#css\nvar cssesc = function cssesc(string, options) {\n\toptions = merge(options, cssesc.options);\n\tif (options.quotes != 'single' && options.quotes != 'double') {\n\t\toptions.quotes = 'single';\n\t}\n\tvar quote = options.quotes == 'double' ? '\"' : '\\'';\n\tvar isIdentifier = options.isIdentifier;\n\n\tvar firstChar = string.charAt(0);\n\tvar output = '';\n\tvar counter = 0;\n\tvar length = string.length;\n\twhile (counter < length) {\n\t\tvar character = string.charAt(counter++);\n\t\tvar codePoint = character.charCodeAt();\n\t\tvar value = void 0;\n\t\t// If it’s not a printable ASCII character…\n\t\tif (codePoint < 0x20 || codePoint > 0x7E) {\n\t\t\tif (codePoint >= 0xD800 && codePoint <= 0xDBFF && counter < length) {\n\t\t\t\t// It’s a high surrogate, and there is a next character.\n\t\t\t\tvar extra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) {\n\t\t\t\t\t// next character is low surrogate\n\t\t\t\t\tcodePoint = ((codePoint & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000;\n\t\t\t\t} else {\n\t\t\t\t\t// It’s an unmatched surrogate; only append this code unit, in case\n\t\t\t\t\t// the next code unit is the high surrogate of a surrogate pair.\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t} else {\n\t\t\tif (options.escapeEverything) {\n\t\t\t\tif (regexAnySingleEscape.test(character)) {\n\t\t\t\t\tvalue = '\\\\' + character;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t\t\t}\n\t\t\t} else if (/[\\t\\n\\f\\r\\x0B]/.test(character)) {\n\t\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t\t} else if (character == '\\\\' || !isIdentifier && (character == '\"' && quote == character || character == '\\'' && quote == character) || isIdentifier && regexSingleEscape.test(character)) {\n\t\t\t\tvalue = '\\\\' + character;\n\t\t\t} else {\n\t\t\t\tvalue = character;\n\t\t\t}\n\t\t}\n\t\toutput += value;\n\t}\n\n\tif (isIdentifier) {\n\t\tif (/^-[-\\d]/.test(output)) {\n\t\t\toutput = '\\\\-' + output.slice(1);\n\t\t} else if (/\\d/.test(firstChar)) {\n\t\t\toutput = '\\\\3' + firstChar + ' ' + output.slice(1);\n\t\t}\n\t}\n\n\t// Remove spaces after `\\HEX` escapes that are not followed by a hex digit,\n\t// since they’re redundant. Note that this is only possible if the escape\n\t// sequence isn’t preceded by an odd number of backslashes.\n\toutput = output.replace(regexExcessiveSpaces, function ($0, $1, $2) {\n\t\tif ($1 && $1.length % 2) {\n\t\t\t// It’s not safe to remove the space, so don’t.\n\t\t\treturn $0;\n\t\t}\n\t\t// Strip the space.\n\t\treturn ($1 || '') + $2;\n\t});\n\n\tif (!isIdentifier && options.wrap) {\n\t\treturn quote + output + quote;\n\t}\n\treturn output;\n};\n\n// Expose default options (so they can be overridden globally).\ncssesc.options = {\n\t'escapeEverything': false,\n\t'isIdentifier': false,\n\t'quotes': 'single',\n\t'wrap': false\n};\n\ncssesc.version = '3.0.0';\n\nmodule.exports = cssesc;\n",null,null,null,null,null,null,null,"// parse\n// =====\n\n// states\n// ------\n\nvar PLAIN = 0;\nvar STRINGS = 1;\nvar ESCAPING = 2;\nvar IDENTIFIER = 3;\nvar SEPARATING = 4;\nvar SPACEAFTERIDENTIFIER = 5;\n\n// patterns\n// --------\n\nvar identifierPattern = /[a-z0-9_-]/i;\nvar spacePattern = /[\\s\\t]/;\n\n// ---\n\nvar parse = function(str) {\n\n // vars\n // ----\n\n var starting = true;\n var state = PLAIN;\n var buffer = '';\n var i = 0;\n var quote;\n var c;\n\n // result\n // ------\n\n var names = [];\n\n // parse\n // -----\n\n while (true) {\n\n c = str[i];\n\n if (state === PLAIN) {\n\n if (!c && starting) {\n\n break;\n\n } else if (!c && !starting) {\n\n throw new Error('Parse error');\n\n } else if (c === '\"' || c === \"'\") {\n\n quote = c;\n state = STRINGS;\n starting = false;\n\n } else if (spacePattern.test(c)) {\n } else if (identifierPattern.test(c)) {\n\n state = IDENTIFIER;\n starting = false;\n i--;\n\n } else {\n\n throw new Error('Parse error');\n\n }\n\n } else if (state === STRINGS) {\n\n if (!c) {\n\n throw new Error('Parse Error');\n\n } else if (c === \"\\\\\") {\n\n state = ESCAPING;\n\n } else if (c === quote) {\n\n names.push(buffer);\n buffer = '';\n state = SEPARATING;\n\n } else {\n\n buffer += c;\n\n }\n\n } else if (state === ESCAPING) {\n\n if (c === quote || c === \"\\\\\") {\n\n buffer += c;\n state = STRINGS;\n\n } else {\n\n throw new Error('Parse error');\n\n }\n\n } else if (state === IDENTIFIER) {\n\n if (!c) {\n\n names.push(buffer);\n break;\n\n } else if (identifierPattern.test(c)) {\n\n buffer += c;\n\n } else if (c === ',') {\n\n names.push(buffer);\n buffer = '';\n state = PLAIN;\n\n } else if (spacePattern.test(c)) {\n\n state = SPACEAFTERIDENTIFIER;\n } else {\n\n throw new Error('Parse error');\n\n }\n } else if (state === SPACEAFTERIDENTIFIER) {\n\n if (!c) {\n\n names.push(buffer);\n break;\n\n } else if (identifierPattern.test(c)) {\n\n buffer += ' ' + c;\n state = IDENTIFIER;\n\n } else if (c === ',') {\n\n names.push(buffer);\n buffer = '';\n state = PLAIN;\n\n } else if (spacePattern.test(c)) {\n } else {\n\n throw new Error('Parse error');\n\n }\n\n } else if (state === SEPARATING) {\n\n if (!c) {\n\n break;\n\n } else if (c === ',') {\n\n state = PLAIN;\n\n } else if (spacePattern.test(c)) {\n } else {\n\n throw new Error('Parse error');\n\n }\n\n }\n\n i++;\n\n }\n\n // result\n // ------\n\n return names;\n\n};\n\n// stringify\n// =========\n\n// pattern\n// -------\n\nvar stringsPattern = /[^a-z0-9_-]/i;\n\n// ---\n\nvar stringify = function(names, options) {\n\n // quote\n // -----\n\n var quote = options && options.quote || '\"';\n if (quote !== '\"' && quote !== \"'\") {\n throw new Error('Quote must be `\\'` or `\"`');\n }\n var quotePattern = new RegExp(quote, 'g');\n\n // stringify\n // ---------\n\n var safeNames = [];\n\n for (var i = 0; i < names.length; ++i) {\n var name = names[i];\n\n if (stringsPattern.test(name)) {\n name = name\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(quotePattern, \"\\\\\" + quote);\n name = quote + name + quote;\n }\n safeNames.push(name);\n }\n\n // result\n // ------\n\n return safeNames.join(', ');\n};\n\n// export\n// ======\n\nmodule.exports = {\n parse: parse,\n stringify: stringify,\n};\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"'use strict';\n\n\nvar paramCounts = { a: 7, c: 6, h: 1, l: 2, m: 2, r: 4, q: 4, s: 4, t: 2, v: 1, z: 0 };\n\nvar SPECIAL_SPACES = [\n 0x1680, 0x180E, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006,\n 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF\n];\n\nfunction isSpace(ch) {\n return (ch === 0x0A) || (ch === 0x0D) || (ch === 0x2028) || (ch === 0x2029) || // Line terminators\n // White spaces\n (ch === 0x20) || (ch === 0x09) || (ch === 0x0B) || (ch === 0x0C) || (ch === 0xA0) ||\n (ch >= 0x1680 && SPECIAL_SPACES.indexOf(ch) >= 0);\n}\n\nfunction isCommand(code) {\n /*eslint-disable no-bitwise*/\n switch (code | 0x20) {\n case 0x6D/* m */:\n case 0x7A/* z */:\n case 0x6C/* l */:\n case 0x68/* h */:\n case 0x76/* v */:\n case 0x63/* c */:\n case 0x73/* s */:\n case 0x71/* q */:\n case 0x74/* t */:\n case 0x61/* a */:\n case 0x72/* r */:\n return true;\n }\n return false;\n}\n\nfunction isArc(code) {\n return (code | 0x20) === 0x61;\n}\n\nfunction isDigit(code) {\n return (code >= 48 && code <= 57); // 0..9\n}\n\nfunction isDigitStart(code) {\n return (code >= 48 && code <= 57) || /* 0..9 */\n code === 0x2B || /* + */\n code === 0x2D || /* - */\n code === 0x2E; /* . */\n}\n\n\nfunction State(path) {\n this.index = 0;\n this.path = path;\n this.max = path.length;\n this.result = [];\n this.param = 0.0;\n this.err = '';\n this.segmentStart = 0;\n this.data = [];\n}\n\nfunction skipSpaces(state) {\n while (state.index < state.max && isSpace(state.path.charCodeAt(state.index))) {\n state.index++;\n }\n}\n\n\nfunction scanFlag(state) {\n var ch = state.path.charCodeAt(state.index);\n\n if (ch === 0x30/* 0 */) {\n state.param = 0;\n state.index++;\n return;\n }\n\n if (ch === 0x31/* 1 */) {\n state.param = 1;\n state.index++;\n return;\n }\n\n state.err = 'SvgPath: arc flag can be 0 or 1 only (at pos ' + state.index + ')';\n}\n\n\nfunction scanParam(state) {\n var start = state.index,\n index = start,\n max = state.max,\n zeroFirst = false,\n hasCeiling = false,\n hasDecimal = false,\n hasDot = false,\n ch;\n\n if (index >= max) {\n state.err = 'SvgPath: missed param (at pos ' + index + ')';\n return;\n }\n ch = state.path.charCodeAt(index);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n index++;\n ch = (index < max) ? state.path.charCodeAt(index) : 0;\n }\n\n // This logic is shamelessly borrowed from Esprima\n // https://github.com/ariya/esprimas\n //\n if (!isDigit(ch) && ch !== 0x2E/* . */) {\n state.err = 'SvgPath: param should start with 0..9 or `.` (at pos ' + index + ')';\n return;\n }\n\n if (ch !== 0x2E/* . */) {\n zeroFirst = (ch === 0x30/* 0 */);\n index++;\n\n ch = (index < max) ? state.path.charCodeAt(index) : 0;\n\n if (zeroFirst && index < max) {\n // decimal number starts with '0' such as '09' is illegal.\n if (ch && isDigit(ch)) {\n state.err = 'SvgPath: numbers started with `0` such as `09` are illegal (at pos ' + start + ')';\n return;\n }\n }\n\n while (index < max && isDigit(state.path.charCodeAt(index))) {\n index++;\n hasCeiling = true;\n }\n ch = (index < max) ? state.path.charCodeAt(index) : 0;\n }\n\n if (ch === 0x2E/* . */) {\n hasDot = true;\n index++;\n while (isDigit(state.path.charCodeAt(index))) {\n index++;\n hasDecimal = true;\n }\n ch = (index < max) ? state.path.charCodeAt(index) : 0;\n }\n\n if (ch === 0x65/* e */ || ch === 0x45/* E */) {\n if (hasDot && !hasCeiling && !hasDecimal) {\n state.err = 'SvgPath: invalid float exponent (at pos ' + index + ')';\n return;\n }\n\n index++;\n\n ch = (index < max) ? state.path.charCodeAt(index) : 0;\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n index++;\n }\n if (index < max && isDigit(state.path.charCodeAt(index))) {\n while (index < max && isDigit(state.path.charCodeAt(index))) {\n index++;\n }\n } else {\n state.err = 'SvgPath: invalid float exponent (at pos ' + index + ')';\n return;\n }\n }\n\n state.index = index;\n state.param = parseFloat(state.path.slice(start, index)) + 0.0;\n}\n\n\nfunction finalizeSegment(state) {\n var cmd, cmdLC;\n\n // Process duplicated commands (without comand name)\n\n // This logic is shamelessly borrowed from Raphael\n // https://github.com/DmitryBaranovskiy/raphael/\n //\n cmd = state.path[state.segmentStart];\n cmdLC = cmd.toLowerCase();\n\n var params = state.data;\n\n if (cmdLC === 'm' && params.length > 2) {\n state.result.push([ cmd, params[0], params[1] ]);\n params = params.slice(2);\n cmdLC = 'l';\n cmd = (cmd === 'm') ? 'l' : 'L';\n }\n\n if (cmdLC === 'r') {\n state.result.push([ cmd ].concat(params));\n } else {\n\n while (params.length >= paramCounts[cmdLC]) {\n state.result.push([ cmd ].concat(params.splice(0, paramCounts[cmdLC])));\n if (!paramCounts[cmdLC]) {\n break;\n }\n }\n }\n}\n\n\nfunction scanSegment(state) {\n var max = state.max,\n cmdCode, is_arc, comma_found, need_params, i;\n\n state.segmentStart = state.index;\n cmdCode = state.path.charCodeAt(state.index);\n is_arc = isArc(cmdCode);\n\n if (!isCommand(cmdCode)) {\n state.err = 'SvgPath: bad command ' + state.path[state.index] + ' (at pos ' + state.index + ')';\n return;\n }\n\n need_params = paramCounts[state.path[state.index].toLowerCase()];\n\n state.index++;\n skipSpaces(state);\n\n state.data = [];\n\n if (!need_params) {\n // Z\n finalizeSegment(state);\n return;\n }\n\n comma_found = false;\n\n for (;;) {\n for (i = need_params; i > 0; i--) {\n if (is_arc && (i === 3 || i === 4)) scanFlag(state);\n else scanParam(state);\n\n if (state.err.length) {\n return;\n }\n state.data.push(state.param);\n\n skipSpaces(state);\n comma_found = false;\n\n if (state.index < max && state.path.charCodeAt(state.index) === 0x2C/* , */) {\n state.index++;\n skipSpaces(state);\n comma_found = true;\n }\n }\n\n // after ',' param is mandatory\n if (comma_found) {\n continue;\n }\n\n if (state.index >= state.max) {\n break;\n }\n\n // Stop on next segment\n if (!isDigitStart(state.path.charCodeAt(state.index))) {\n break;\n }\n }\n\n finalizeSegment(state);\n}\n\n\n/* Returns array of segments:\n *\n * [\n * [ command, coord1, coord2, ... ]\n * ]\n */\nmodule.exports = function pathParse(svgPath) {\n var state = new State(svgPath);\n var max = state.max;\n\n skipSpaces(state);\n\n while (state.index < max && !state.err.length) {\n scanSegment(state);\n }\n\n if (state.err.length) {\n state.result = [];\n\n } else if (state.result.length) {\n\n if ('mM'.indexOf(state.result[0][0]) < 0) {\n state.err = 'SvgPath: string should start with `M` or `m`';\n state.result = [];\n } else {\n state.result[0][0] = 'M';\n }\n }\n\n return {\n err: state.err,\n segments: state.result\n };\n};\n","'use strict';\n\n// combine 2 matrixes\n// m1, m2 - [a, b, c, d, e, g]\n//\nfunction combine(m1, m2) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5]\n ];\n}\n\n\nfunction Matrix() {\n if (!(this instanceof Matrix)) { return new Matrix(); }\n this.queue = []; // list of matrixes to apply\n this.cache = null; // combined matrix cache\n}\n\n\nMatrix.prototype.matrix = function (m) {\n if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1 && m[4] === 0 && m[5] === 0) {\n return this;\n }\n this.cache = null;\n this.queue.push(m);\n return this;\n};\n\n\nMatrix.prototype.translate = function (tx, ty) {\n if (tx !== 0 || ty !== 0) {\n this.cache = null;\n this.queue.push([ 1, 0, 0, 1, tx, ty ]);\n }\n return this;\n};\n\n\nMatrix.prototype.scale = function (sx, sy) {\n if (sx !== 1 || sy !== 1) {\n this.cache = null;\n this.queue.push([ sx, 0, 0, sy, 0, 0 ]);\n }\n return this;\n};\n\n\nMatrix.prototype.rotate = function (angle, rx, ry) {\n var rad, cos, sin;\n\n if (angle !== 0) {\n this.translate(rx, ry);\n\n rad = angle * Math.PI / 180;\n cos = Math.cos(rad);\n sin = Math.sin(rad);\n\n this.queue.push([ cos, sin, -sin, cos, 0, 0 ]);\n this.cache = null;\n\n this.translate(-rx, -ry);\n }\n return this;\n};\n\n\nMatrix.prototype.skewX = function (angle) {\n if (angle !== 0) {\n this.cache = null;\n this.queue.push([ 1, 0, Math.tan(angle * Math.PI / 180), 1, 0, 0 ]);\n }\n return this;\n};\n\n\nMatrix.prototype.skewY = function (angle) {\n if (angle !== 0) {\n this.cache = null;\n this.queue.push([ 1, Math.tan(angle * Math.PI / 180), 0, 1, 0, 0 ]);\n }\n return this;\n};\n\n\n// Flatten queue\n//\nMatrix.prototype.toArray = function () {\n if (this.cache) {\n return this.cache;\n }\n\n if (!this.queue.length) {\n this.cache = [ 1, 0, 0, 1, 0, 0 ];\n return this.cache;\n }\n\n this.cache = this.queue[0];\n\n if (this.queue.length === 1) {\n return this.cache;\n }\n\n for (var i = 1; i < this.queue.length; i++) {\n this.cache = combine(this.cache, this.queue[i]);\n }\n\n return this.cache;\n};\n\n\n// Apply list of matrixes to (x,y) point.\n// If `isRelative` set, `translate` component of matrix will be skipped\n//\nMatrix.prototype.calc = function (x, y, isRelative) {\n var m;\n\n // Don't change point on empty transforms queue\n if (!this.queue.length) { return [ x, y ]; }\n\n // Calculate final matrix, if not exists\n //\n // NB. if you deside to apply transforms to point one-by-one,\n // they should be taken in reverse order\n\n if (!this.cache) {\n this.cache = this.toArray();\n }\n\n m = this.cache;\n\n // Apply matrix to point\n return [\n x * m[0] + y * m[2] + (isRelative ? 0 : m[4]),\n x * m[1] + y * m[3] + (isRelative ? 0 : m[5])\n ];\n};\n\n\nmodule.exports = Matrix;\n","'use strict';\n\n\nvar Matrix = require('./matrix');\n\nvar operations = {\n matrix: true,\n scale: true,\n rotate: true,\n translate: true,\n skewX: true,\n skewY: true\n};\n\nvar CMD_SPLIT_RE = /\\s*(matrix|translate|scale|rotate|skewX|skewY)\\s*\\(\\s*(.+?)\\s*\\)[\\s,]*/;\nvar PARAMS_SPLIT_RE = /[\\s,]+/;\n\n\nmodule.exports = function transformParse(transformString) {\n var matrix = new Matrix();\n var cmd, params;\n\n // Split value into ['', 'translate', '10 50', '', 'scale', '2', '', 'rotate', '-45', '']\n transformString.split(CMD_SPLIT_RE).forEach(function (item) {\n\n // Skip empty elements\n if (!item.length) { return; }\n\n // remember operation\n if (typeof operations[item] !== 'undefined') {\n cmd = item;\n return;\n }\n\n // extract params & att operation to matrix\n params = item.split(PARAMS_SPLIT_RE).map(function (i) {\n return +i || 0;\n });\n\n // If params count is not correct - ignore command\n switch (cmd) {\n case 'matrix':\n if (params.length === 6) {\n matrix.matrix(params);\n }\n return;\n\n case 'scale':\n if (params.length === 1) {\n matrix.scale(params[0], params[0]);\n } else if (params.length === 2) {\n matrix.scale(params[0], params[1]);\n }\n return;\n\n case 'rotate':\n if (params.length === 1) {\n matrix.rotate(params[0], 0, 0);\n } else if (params.length === 3) {\n matrix.rotate(params[0], params[1], params[2]);\n }\n return;\n\n case 'translate':\n if (params.length === 1) {\n matrix.translate(params[0], 0);\n } else if (params.length === 2) {\n matrix.translate(params[0], params[1]);\n }\n return;\n\n case 'skewX':\n if (params.length === 1) {\n matrix.skewX(params[0]);\n }\n return;\n\n case 'skewY':\n if (params.length === 1) {\n matrix.skewY(params[0]);\n }\n return;\n }\n });\n\n return matrix;\n};\n","// Convert an arc to a sequence of cubic bézier curves\n//\n'use strict';\n\n\nvar TAU = Math.PI * 2;\n\n\n/* eslint-disable space-infix-ops */\n\n// Calculate an angle between two unit vectors\n//\n// Since we measure angle between radii of circular arcs,\n// we can use simplified math (without length normalization)\n//\nfunction unit_vector_angle(ux, uy, vx, vy) {\n var sign = (ux * vy - uy * vx < 0) ? -1 : 1;\n var dot = ux * vx + uy * vy;\n\n // Add this to work with arbitrary vectors:\n // dot /= Math.sqrt(ux * ux + uy * uy) * Math.sqrt(vx * vx + vy * vy);\n\n // rounding errors, e.g. -1.0000000000000002 can screw up this\n if (dot > 1.0) { dot = 1.0; }\n if (dot < -1.0) { dot = -1.0; }\n\n return sign * Math.acos(dot);\n}\n\n\n// Convert from endpoint to center parameterization,\n// see http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n//\n// Return [cx, cy, theta1, delta_theta]\n//\nfunction get_arc_center(x1, y1, x2, y2, fa, fs, rx, ry, sin_phi, cos_phi) {\n // Step 1.\n //\n // Moving an ellipse so origin will be the middlepoint between our two\n // points. After that, rotate it to line up ellipse axes with coordinate\n // axes.\n //\n var x1p = cos_phi*(x1-x2)/2 + sin_phi*(y1-y2)/2;\n var y1p = -sin_phi*(x1-x2)/2 + cos_phi*(y1-y2)/2;\n\n var rx_sq = rx * rx;\n var ry_sq = ry * ry;\n var x1p_sq = x1p * x1p;\n var y1p_sq = y1p * y1p;\n\n // Step 2.\n //\n // Compute coordinates of the centre of this ellipse (cx', cy')\n // in the new coordinate system.\n //\n var radicant = (rx_sq * ry_sq) - (rx_sq * y1p_sq) - (ry_sq * x1p_sq);\n\n if (radicant < 0) {\n // due to rounding errors it might be e.g. -1.3877787807814457e-17\n radicant = 0;\n }\n\n radicant /= (rx_sq * y1p_sq) + (ry_sq * x1p_sq);\n radicant = Math.sqrt(radicant) * (fa === fs ? -1 : 1);\n\n var cxp = radicant * rx/ry * y1p;\n var cyp = radicant * -ry/rx * x1p;\n\n // Step 3.\n //\n // Transform back to get centre coordinates (cx, cy) in the original\n // coordinate system.\n //\n var cx = cos_phi*cxp - sin_phi*cyp + (x1+x2)/2;\n var cy = sin_phi*cxp + cos_phi*cyp + (y1+y2)/2;\n\n // Step 4.\n //\n // Compute angles (theta1, delta_theta).\n //\n var v1x = (x1p - cxp) / rx;\n var v1y = (y1p - cyp) / ry;\n var v2x = (-x1p - cxp) / rx;\n var v2y = (-y1p - cyp) / ry;\n\n var theta1 = unit_vector_angle(1, 0, v1x, v1y);\n var delta_theta = unit_vector_angle(v1x, v1y, v2x, v2y);\n\n if (fs === 0 && delta_theta > 0) {\n delta_theta -= TAU;\n }\n if (fs === 1 && delta_theta < 0) {\n delta_theta += TAU;\n }\n\n return [ cx, cy, theta1, delta_theta ];\n}\n\n//\n// Approximate one unit arc segment with bézier curves,\n// see http://math.stackexchange.com/questions/873224\n//\nfunction approximate_unit_arc(theta1, delta_theta) {\n var alpha = 4/3 * Math.tan(delta_theta/4);\n\n var x1 = Math.cos(theta1);\n var y1 = Math.sin(theta1);\n var x2 = Math.cos(theta1 + delta_theta);\n var y2 = Math.sin(theta1 + delta_theta);\n\n return [ x1, y1, x1 - y1*alpha, y1 + x1*alpha, x2 + y2*alpha, y2 - x2*alpha, x2, y2 ];\n}\n\nmodule.exports = function a2c(x1, y1, x2, y2, fa, fs, rx, ry, phi) {\n var sin_phi = Math.sin(phi * TAU / 360);\n var cos_phi = Math.cos(phi * TAU / 360);\n\n // Make sure radii are valid\n //\n var x1p = cos_phi*(x1-x2)/2 + sin_phi*(y1-y2)/2;\n var y1p = -sin_phi*(x1-x2)/2 + cos_phi*(y1-y2)/2;\n\n if (x1p === 0 && y1p === 0) {\n // we're asked to draw line to itself\n return [];\n }\n\n if (rx === 0 || ry === 0) {\n // one of the radii is zero\n return [];\n }\n\n\n // Compensate out-of-range radii\n //\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n\n var lambda = (x1p * x1p) / (rx * rx) + (y1p * y1p) / (ry * ry);\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n\n\n // Get center parameters (cx, cy, theta1, delta_theta)\n //\n var cc = get_arc_center(x1, y1, x2, y2, fa, fs, rx, ry, sin_phi, cos_phi);\n\n var result = [];\n var theta1 = cc[2];\n var delta_theta = cc[3];\n\n // Split an arc to multiple segments, so each segment\n // will be less than τ/4 (= 90°)\n //\n var segments = Math.max(Math.ceil(Math.abs(delta_theta) / (TAU / 4)), 1);\n delta_theta /= segments;\n\n for (var i = 0; i < segments; i++) {\n result.push(approximate_unit_arc(theta1, delta_theta));\n theta1 += delta_theta;\n }\n\n // We have a bezier approximation of a unit circle,\n // now need to transform back to the original ellipse\n //\n return result.map(function (curve) {\n for (var i = 0; i < curve.length; i += 2) {\n var x = curve[i + 0];\n var y = curve[i + 1];\n\n // scale\n x *= rx;\n y *= ry;\n\n // rotate\n var xp = cos_phi*x - sin_phi*y;\n var yp = sin_phi*x + cos_phi*y;\n\n // translate\n curve[i + 0] = xp + cc[0];\n curve[i + 1] = yp + cc[1];\n }\n\n return curve;\n });\n};\n","'use strict';\n\n/* eslint-disable space-infix-ops */\n\n// The precision used to consider an ellipse as a circle\n//\nvar epsilon = 0.0000000001;\n\n// To convert degree in radians\n//\nvar torad = Math.PI / 180;\n\n// Class constructor :\n// an ellipse centred at 0 with radii rx,ry and x - axis - angle ax.\n//\nfunction Ellipse(rx, ry, ax) {\n if (!(this instanceof Ellipse)) { return new Ellipse(rx, ry, ax); }\n this.rx = rx;\n this.ry = ry;\n this.ax = ax;\n}\n\n// Apply a linear transform m to the ellipse\n// m is an array representing a matrix :\n// - -\n// | m[0] m[2] |\n// | m[1] m[3] |\n// - -\n//\nEllipse.prototype.transform = function (m) {\n // We consider the current ellipse as image of the unit circle\n // by first scale(rx,ry) and then rotate(ax) ...\n // So we apply ma = m x rotate(ax) x scale(rx,ry) to the unit circle.\n var c = Math.cos(this.ax * torad), s = Math.sin(this.ax * torad);\n var ma = [\n this.rx * (m[0]*c + m[2]*s),\n this.rx * (m[1]*c + m[3]*s),\n this.ry * (-m[0]*s + m[2]*c),\n this.ry * (-m[1]*s + m[3]*c)\n ];\n\n // ma * transpose(ma) = [ J L ]\n // [ L K ]\n // L is calculated later (if the image is not a circle)\n var J = ma[0]*ma[0] + ma[2]*ma[2],\n K = ma[1]*ma[1] + ma[3]*ma[3];\n\n // the discriminant of the characteristic polynomial of ma * transpose(ma)\n var D = ((ma[0]-ma[3])*(ma[0]-ma[3]) + (ma[2]+ma[1])*(ma[2]+ma[1])) *\n ((ma[0]+ma[3])*(ma[0]+ma[3]) + (ma[2]-ma[1])*(ma[2]-ma[1]));\n\n // the \"mean eigenvalue\"\n var JK = (J + K) / 2;\n\n // check if the image is (almost) a circle\n if (D < epsilon * JK) {\n // if it is\n this.rx = this.ry = Math.sqrt(JK);\n this.ax = 0;\n return this;\n }\n\n // if it is not a circle\n var L = ma[0]*ma[1] + ma[2]*ma[3];\n\n D = Math.sqrt(D);\n\n // {l1,l2} = the two eigen values of ma * transpose(ma)\n var l1 = JK + D/2,\n l2 = JK - D/2;\n // the x - axis - rotation angle is the argument of the l1 - eigenvector\n /*eslint-disable indent*/\n this.ax = (Math.abs(L) < epsilon && Math.abs(l1 - K) < epsilon) ?\n 90\n :\n Math.atan(Math.abs(L) > Math.abs(l1 - K) ?\n (l1 - J) / L\n :\n L / (l1 - K)\n ) * 180 / Math.PI;\n /*eslint-enable indent*/\n\n // if ax > 0 => rx = sqrt(l1), ry = sqrt(l2), else exchange axes and ax += 90\n if (this.ax >= 0) {\n // if ax in [0,90]\n this.rx = Math.sqrt(l1);\n this.ry = Math.sqrt(l2);\n } else {\n // if ax in ]-90,0[ => exchange axes\n this.ax += 90;\n this.rx = Math.sqrt(l2);\n this.ry = Math.sqrt(l1);\n }\n\n return this;\n};\n\n// Check if the ellipse is (almost) degenerate, i.e. rx = 0 or ry = 0\n//\nEllipse.prototype.isDegenerate = function () {\n return (this.rx < epsilon * this.ry || this.ry < epsilon * this.rx);\n};\n\nmodule.exports = Ellipse;\n","// SVG Path transformations library\n//\n// Usage:\n//\n// SvgPath('...')\n// .translate(-150, -100)\n// .scale(0.5)\n// .translate(-150, -100)\n// .toFixed(1)\n// .toString()\n//\n\n'use strict';\n\n\nvar pathParse = require('./path_parse');\nvar transformParse = require('./transform_parse');\nvar matrix = require('./matrix');\nvar a2c = require('./a2c');\nvar ellipse = require('./ellipse');\n\n\n// Class constructor\n//\nfunction SvgPath(path) {\n if (!(this instanceof SvgPath)) { return new SvgPath(path); }\n\n var pstate = pathParse(path);\n\n // Array of path segments.\n // Each segment is array [command, param1, param2, ...]\n this.segments = pstate.segments;\n\n // Error message on parse error.\n this.err = pstate.err;\n\n // Transforms stack for lazy evaluation\n this.__stack = [];\n}\n\nSvgPath.from = function (src) {\n if (typeof src === 'string') return new SvgPath(src);\n\n if (src instanceof SvgPath) {\n // Create empty object\n var s = new SvgPath('');\n\n // Clone properies\n s.err = src.err;\n s.segments = src.segments.map(function (sgm) { return sgm.slice(); });\n s.__stack = src.__stack.map(function (m) {\n return matrix().matrix(m.toArray());\n });\n\n return s;\n }\n\n throw new Error('SvgPath.from: invalid param type ' + src);\n};\n\n\nSvgPath.prototype.__matrix = function (m) {\n var self = this, i;\n\n // Quick leave for empty matrix\n if (!m.queue.length) { return; }\n\n this.iterate(function (s, index, x, y) {\n var p, result, name, isRelative;\n\n switch (s[0]) {\n\n // Process 'assymetric' commands separately\n case 'v':\n p = m.calc(0, s[1], true);\n result = (p[0] === 0) ? [ 'v', p[1] ] : [ 'l', p[0], p[1] ];\n break;\n\n case 'V':\n p = m.calc(x, s[1], false);\n result = (p[0] === m.calc(x, y, false)[0]) ? [ 'V', p[1] ] : [ 'L', p[0], p[1] ];\n break;\n\n case 'h':\n p = m.calc(s[1], 0, true);\n result = (p[1] === 0) ? [ 'h', p[0] ] : [ 'l', p[0], p[1] ];\n break;\n\n case 'H':\n p = m.calc(s[1], y, false);\n result = (p[1] === m.calc(x, y, false)[1]) ? [ 'H', p[0] ] : [ 'L', p[0], p[1] ];\n break;\n\n case 'a':\n case 'A':\n // ARC is: ['A', rx, ry, x-axis-rotation, large-arc-flag, sweep-flag, x, y]\n\n // Drop segment if arc is empty (end point === start point)\n /*if ((s[0] === 'A' && s[6] === x && s[7] === y) ||\n (s[0] === 'a' && s[6] === 0 && s[7] === 0)) {\n return [];\n }*/\n\n // Transform rx, ry and the x-axis-rotation\n var ma = m.toArray();\n var e = ellipse(s[1], s[2], s[3]).transform(ma);\n\n // flip sweep-flag if matrix is not orientation-preserving\n if (ma[0] * ma[3] - ma[1] * ma[2] < 0) {\n s[5] = s[5] ? '0' : '1';\n }\n\n // Transform end point as usual (without translation for relative notation)\n p = m.calc(s[6], s[7], s[0] === 'a');\n\n // Empty arcs can be ignored by renderer, but should not be dropped\n // to avoid collisions with `S A S` and so on. Replace with empty line.\n if ((s[0] === 'A' && s[6] === x && s[7] === y) ||\n (s[0] === 'a' && s[6] === 0 && s[7] === 0)) {\n result = [ s[0] === 'a' ? 'l' : 'L', p[0], p[1] ];\n break;\n }\n\n // if the resulting ellipse is (almost) a segment ...\n if (e.isDegenerate()) {\n // replace the arc by a line\n result = [ s[0] === 'a' ? 'l' : 'L', p[0], p[1] ];\n } else {\n // if it is a real ellipse\n // s[0], s[4] and s[5] are not modified\n result = [ s[0], e.rx, e.ry, e.ax, s[4], s[5], p[0], p[1] ];\n }\n\n break;\n\n case 'm':\n // Edge case. The very first `m` should be processed as absolute, if happens.\n // Make sense for coord shift transforms.\n isRelative = index > 0;\n\n p = m.calc(s[1], s[2], isRelative);\n result = [ 'm', p[0], p[1] ];\n break;\n\n default:\n name = s[0];\n result = [ name ];\n isRelative = (name.toLowerCase() === name);\n\n // Apply transformations to the segment\n for (i = 1; i < s.length; i += 2) {\n p = m.calc(s[i], s[i + 1], isRelative);\n result.push(p[0], p[1]);\n }\n }\n\n self.segments[index] = result;\n }, true);\n};\n\n\n// Apply stacked commands\n//\nSvgPath.prototype.__evaluateStack = function () {\n var m, i;\n\n if (!this.__stack.length) { return; }\n\n if (this.__stack.length === 1) {\n this.__matrix(this.__stack[0]);\n this.__stack = [];\n return;\n }\n\n m = matrix();\n i = this.__stack.length;\n\n while (--i >= 0) {\n m.matrix(this.__stack[i].toArray());\n }\n\n this.__matrix(m);\n this.__stack = [];\n};\n\n\n// Convert processed SVG Path back to string\n//\nSvgPath.prototype.toString = function () {\n var elements = [], skipCmd, cmd;\n\n this.__evaluateStack();\n\n for (var i = 0; i < this.segments.length; i++) {\n // remove repeating commands names\n cmd = this.segments[i][0];\n skipCmd = i > 0 && cmd !== 'm' && cmd !== 'M' && cmd === this.segments[i - 1][0];\n elements = elements.concat(skipCmd ? this.segments[i].slice(1) : this.segments[i]);\n }\n\n return elements.join(' ')\n // Optimizations: remove spaces around commands & before `-`\n //\n // We could also remove leading zeros for `0.5`-like values,\n // but their count is too small to spend time for.\n .replace(/ ?([achlmqrstvz]) ?/gi, '$1')\n .replace(/ \\-/g, '-')\n // workaround for FontForge SVG importing bug\n .replace(/zm/g, 'z m');\n};\n\n\n// Translate path to (x [, y])\n//\nSvgPath.prototype.translate = function (x, y) {\n this.__stack.push(matrix().translate(x, y || 0));\n return this;\n};\n\n\n// Scale path to (sx [, sy])\n// sy = sx if not defined\n//\nSvgPath.prototype.scale = function (sx, sy) {\n this.__stack.push(matrix().scale(sx, (!sy && (sy !== 0)) ? sx : sy));\n return this;\n};\n\n\n// Rotate path around point (sx [, sy])\n// sy = sx if not defined\n//\nSvgPath.prototype.rotate = function (angle, rx, ry) {\n this.__stack.push(matrix().rotate(angle, rx || 0, ry || 0));\n return this;\n};\n\n\n// Skew path along the X axis by `degrees` angle\n//\nSvgPath.prototype.skewX = function (degrees) {\n this.__stack.push(matrix().skewX(degrees));\n return this;\n};\n\n\n// Skew path along the Y axis by `degrees` angle\n//\nSvgPath.prototype.skewY = function (degrees) {\n this.__stack.push(matrix().skewY(degrees));\n return this;\n};\n\n\n// Apply matrix transform (array of 6 elements)\n//\nSvgPath.prototype.matrix = function (m) {\n this.__stack.push(matrix().matrix(m));\n return this;\n};\n\n\n// Transform path according to \"transform\" attr of SVG spec\n//\nSvgPath.prototype.transform = function (transformString) {\n if (!transformString.trim()) {\n return this;\n }\n this.__stack.push(transformParse(transformString));\n return this;\n};\n\n\n// Round coords with given decimal precition.\n// 0 by default (to integers)\n//\nSvgPath.prototype.round = function (d) {\n var contourStartDeltaX = 0, contourStartDeltaY = 0, deltaX = 0, deltaY = 0, l;\n\n d = d || 0;\n\n this.__evaluateStack();\n\n this.segments.forEach(function (s) {\n var isRelative = (s[0].toLowerCase() === s[0]);\n\n switch (s[0]) {\n case 'H':\n case 'h':\n if (isRelative) { s[1] += deltaX; }\n deltaX = s[1] - s[1].toFixed(d);\n s[1] = +s[1].toFixed(d);\n return;\n\n case 'V':\n case 'v':\n if (isRelative) { s[1] += deltaY; }\n deltaY = s[1] - s[1].toFixed(d);\n s[1] = +s[1].toFixed(d);\n return;\n\n case 'Z':\n case 'z':\n deltaX = contourStartDeltaX;\n deltaY = contourStartDeltaY;\n return;\n\n case 'M':\n case 'm':\n if (isRelative) {\n s[1] += deltaX;\n s[2] += deltaY;\n }\n\n deltaX = s[1] - s[1].toFixed(d);\n deltaY = s[2] - s[2].toFixed(d);\n\n contourStartDeltaX = deltaX;\n contourStartDeltaY = deltaY;\n\n s[1] = +s[1].toFixed(d);\n s[2] = +s[2].toFixed(d);\n return;\n\n case 'A':\n case 'a':\n // [cmd, rx, ry, x-axis-rotation, large-arc-flag, sweep-flag, x, y]\n if (isRelative) {\n s[6] += deltaX;\n s[7] += deltaY;\n }\n\n deltaX = s[6] - s[6].toFixed(d);\n deltaY = s[7] - s[7].toFixed(d);\n\n s[1] = +s[1].toFixed(d);\n s[2] = +s[2].toFixed(d);\n s[3] = +s[3].toFixed(d + 2); // better precision for rotation\n s[6] = +s[6].toFixed(d);\n s[7] = +s[7].toFixed(d);\n return;\n\n default:\n // a c l q s t\n l = s.length;\n\n if (isRelative) {\n s[l - 2] += deltaX;\n s[l - 1] += deltaY;\n }\n\n deltaX = s[l - 2] - s[l - 2].toFixed(d);\n deltaY = s[l - 1] - s[l - 1].toFixed(d);\n\n s.forEach(function (val, i) {\n if (!i) { return; }\n s[i] = +s[i].toFixed(d);\n });\n return;\n }\n });\n\n return this;\n};\n\n\n// Apply iterator function to all segments. If function returns result,\n// current segment will be replaced to array of returned segments.\n// If empty array is returned, current regment will be deleted.\n//\nSvgPath.prototype.iterate = function (iterator, keepLazyStack) {\n var segments = this.segments,\n replacements = {},\n needReplace = false,\n lastX = 0,\n lastY = 0,\n countourStartX = 0,\n countourStartY = 0;\n var i, j, newSegments;\n\n if (!keepLazyStack) {\n this.__evaluateStack();\n }\n\n segments.forEach(function (s, index) {\n\n var res = iterator(s, index, lastX, lastY);\n\n if (Array.isArray(res)) {\n replacements[index] = res;\n needReplace = true;\n }\n\n var isRelative = (s[0] === s[0].toLowerCase());\n\n // calculate absolute X and Y\n switch (s[0]) {\n case 'm':\n case 'M':\n lastX = s[1] + (isRelative ? lastX : 0);\n lastY = s[2] + (isRelative ? lastY : 0);\n countourStartX = lastX;\n countourStartY = lastY;\n return;\n\n case 'h':\n case 'H':\n lastX = s[1] + (isRelative ? lastX : 0);\n return;\n\n case 'v':\n case 'V':\n lastY = s[1] + (isRelative ? lastY : 0);\n return;\n\n case 'z':\n case 'Z':\n // That make sence for multiple contours\n lastX = countourStartX;\n lastY = countourStartY;\n return;\n\n default:\n lastX = s[s.length - 2] + (isRelative ? lastX : 0);\n lastY = s[s.length - 1] + (isRelative ? lastY : 0);\n }\n });\n\n // Replace segments if iterator return results\n\n if (!needReplace) { return this; }\n\n newSegments = [];\n\n for (i = 0; i < segments.length; i++) {\n if (typeof replacements[i] !== 'undefined') {\n for (j = 0; j < replacements[i].length; j++) {\n newSegments.push(replacements[i][j]);\n }\n } else {\n newSegments.push(segments[i]);\n }\n }\n\n this.segments = newSegments;\n\n return this;\n};\n\n\n// Converts segments from relative to absolute\n//\nSvgPath.prototype.abs = function () {\n\n this.iterate(function (s, index, x, y) {\n var name = s[0],\n nameUC = name.toUpperCase(),\n i;\n\n // Skip absolute commands\n if (name === nameUC) { return; }\n\n s[0] = nameUC;\n\n switch (name) {\n case 'v':\n // v has shifted coords parity\n s[1] += y;\n return;\n\n case 'a':\n // ARC is: ['A', rx, ry, x-axis-rotation, large-arc-flag, sweep-flag, x, y]\n // touch x, y only\n s[6] += x;\n s[7] += y;\n return;\n\n default:\n for (i = 1; i < s.length; i++) {\n s[i] += i % 2 ? x : y; // odd values are X, even - Y\n }\n }\n }, true);\n\n return this;\n};\n\n\n// Converts segments from absolute to relative\n//\nSvgPath.prototype.rel = function () {\n\n this.iterate(function (s, index, x, y) {\n var name = s[0],\n nameLC = name.toLowerCase(),\n i;\n\n // Skip relative commands\n if (name === nameLC) { return; }\n\n // Don't touch the first M to avoid potential confusions.\n if (index === 0 && name === 'M') { return; }\n\n s[0] = nameLC;\n\n switch (name) {\n case 'V':\n // V has shifted coords parity\n s[1] -= y;\n return;\n\n case 'A':\n // ARC is: ['A', rx, ry, x-axis-rotation, large-arc-flag, sweep-flag, x, y]\n // touch x, y only\n s[6] -= x;\n s[7] -= y;\n return;\n\n default:\n for (i = 1; i < s.length; i++) {\n s[i] -= i % 2 ? x : y; // odd values are X, even - Y\n }\n }\n }, true);\n\n return this;\n};\n\n\n// Converts arcs to cubic bézier curves\n//\nSvgPath.prototype.unarc = function () {\n this.iterate(function (s, index, x, y) {\n var new_segments, nextX, nextY, result = [], name = s[0];\n\n // Skip anything except arcs\n if (name !== 'A' && name !== 'a') { return null; }\n\n if (name === 'a') {\n // convert relative arc coordinates to absolute\n nextX = x + s[6];\n nextY = y + s[7];\n } else {\n nextX = s[6];\n nextY = s[7];\n }\n\n new_segments = a2c(x, y, nextX, nextY, s[4], s[5], s[1], s[2], s[3]);\n\n // Degenerated arcs can be ignored by renderer, but should not be dropped\n // to avoid collisions with `S A S` and so on. Replace with empty line.\n if (new_segments.length === 0) {\n return [ [ s[0] === 'a' ? 'l' : 'L', s[6], s[7] ] ];\n }\n\n new_segments.forEach(function (s) {\n result.push([ 'C', s[2], s[3], s[4], s[5], s[6], s[7] ]);\n });\n\n return result;\n });\n\n return this;\n};\n\n\n// Converts smooth curves (with missed control point) to generic curves\n//\nSvgPath.prototype.unshort = function () {\n var segments = this.segments;\n var prevControlX, prevControlY, prevSegment;\n var curControlX, curControlY;\n\n // TODO: add lazy evaluation flag when relative commands supported\n\n this.iterate(function (s, idx, x, y) {\n var name = s[0], nameUC = name.toUpperCase(), isRelative;\n\n // First command MUST be M|m, it's safe to skip.\n // Protect from access to [-1] for sure.\n if (!idx) { return; }\n\n if (nameUC === 'T') { // quadratic curve\n isRelative = (name === 't');\n\n prevSegment = segments[idx - 1];\n\n if (prevSegment[0] === 'Q') {\n prevControlX = prevSegment[1] - x;\n prevControlY = prevSegment[2] - y;\n } else if (prevSegment[0] === 'q') {\n prevControlX = prevSegment[1] - prevSegment[3];\n prevControlY = prevSegment[2] - prevSegment[4];\n } else {\n prevControlX = 0;\n prevControlY = 0;\n }\n\n curControlX = -prevControlX;\n curControlY = -prevControlY;\n\n if (!isRelative) {\n curControlX += x;\n curControlY += y;\n }\n\n segments[idx] = [\n isRelative ? 'q' : 'Q',\n curControlX, curControlY,\n s[1], s[2]\n ];\n\n } else if (nameUC === 'S') { // cubic curve\n isRelative = (name === 's');\n\n prevSegment = segments[idx - 1];\n\n if (prevSegment[0] === 'C') {\n prevControlX = prevSegment[3] - x;\n prevControlY = prevSegment[4] - y;\n } else if (prevSegment[0] === 'c') {\n prevControlX = prevSegment[3] - prevSegment[5];\n prevControlY = prevSegment[4] - prevSegment[6];\n } else {\n prevControlX = 0;\n prevControlY = 0;\n }\n\n curControlX = -prevControlX;\n curControlY = -prevControlY;\n\n if (!isRelative) {\n curControlX += x;\n curControlY += y;\n }\n\n segments[idx] = [\n isRelative ? 'c' : 'C',\n curControlX, curControlY,\n s[1], s[2], s[3], s[4]\n ];\n }\n });\n\n return this;\n};\n\n\nmodule.exports = SvgPath;\n",null,null,null,null,null,null,null,null,null,null,null,null,null,"// Calculate the specificity for a selector by dividing it into simple selectors and counting them\nvar calculate = function(input) {\n\tvar selectors,\n\t\tselector,\n\t\ti,\n\t\tlen,\n\t\tresults = [];\n\n\t// Separate input by commas\n\tselectors = input.split(',');\n\n\tfor (i = 0, len = selectors.length; i < len; i += 1) {\n\t\tselector = selectors[i];\n\t\tif (selector.length > 0) {\n\t\t\tresults.push(calculateSingle(selector));\n\t\t}\n\t}\n\n\treturn results;\n};\n\n/**\n * Calculates the specificity of CSS selectors\n * http://www.w3.org/TR/css3-selectors/#specificity\n *\n * Returns an object with the following properties:\n * - selector: the input\n * - specificity: e.g. 0,1,0,0\n * - parts: array with details about each part of the selector that counts towards the specificity\n * - specificityArray: e.g. [0, 1, 0, 0]\n */\nvar calculateSingle = function(input) {\n\tvar selector = input,\n\t\tfindMatch,\n\t\ttypeCount = {\n\t\t\t'a': 0,\n\t\t\t'b': 0,\n\t\t\t'c': 0\n\t\t},\n\t\tparts = [],\n\t\t// The following regular expressions assume that selectors matching the preceding regular expressions have been removed\n\t\tattributeRegex = /(\\[[^\\]]+\\])/g,\n\t\tidRegex = /(#[^\\#\\s\\+>~\\.\\[:\\)]+)/g,\n\t\tclassRegex = /(\\.[^\\s\\+>~\\.\\[:\\)]+)/g,\n\t\tpseudoElementRegex = /(::[^\\s\\+>~\\.\\[:]+|:first-line|:first-letter|:before|:after)/gi,\n\t\t// A regex for pseudo classes with brackets - :nth-child(), :nth-last-child(), :nth-of-type(), :nth-last-type(), :lang()\n\t\t// The negation psuedo class (:not) is filtered out because specificity is calculated on its argument\n\t\t// :global and :local are filtered out - they look like psuedo classes but are an identifier for CSS Modules\n\t\tpseudoClassWithBracketsRegex = /(:(?!not|global|local)[\\w-]+\\([^\\)]*\\))/gi,\n\t\t// A regex for other pseudo classes, which don't have brackets\n\t\tpseudoClassRegex = /(:(?!not|global|local)[^\\s\\+>~\\.\\[:]+)/g,\n\t\telementRegex = /([^\\s\\+>~\\.\\[:]+)/g;\n\n\t// Find matches for a regular expression in a string and push their details to parts\n\t// Type is \"a\" for IDs, \"b\" for classes, attributes and pseudo-classes and \"c\" for elements and pseudo-elements\n\tfindMatch = function(regex, type) {\n\t\tvar matches, i, len, match, index, length;\n\t\tif (regex.test(selector)) {\n\t\t\tmatches = selector.match(regex);\n\t\t\tfor (i = 0, len = matches.length; i < len; i += 1) {\n\t\t\t\ttypeCount[type] += 1;\n\t\t\t\tmatch = matches[i];\n\t\t\t\tindex = selector.indexOf(match);\n\t\t\t\tlength = match.length;\n\t\t\t\tparts.push({\n\t\t\t\t\tselector: input.substr(index, length),\n\t\t\t\t\ttype: type,\n\t\t\t\t\tindex: index,\n\t\t\t\t\tlength: length\n\t\t\t\t});\n\t\t\t\t// Replace this simple selector with whitespace so it won't be counted in further simple selectors\n\t\t\t\tselector = selector.replace(match, Array(length + 1).join(' '));\n\t\t\t}\n\t\t}\n\t};\n\n\t// Replace escaped characters with plain text, using the \"A\" character\n\t// https://www.w3.org/TR/CSS21/syndata.html#characters\n\t(function() {\n\t\tvar replaceWithPlainText = function(regex) {\n\t\t\t\tvar matches, i, len, match;\n\t\t\t\tif (regex.test(selector)) {\n\t\t\t\t\tmatches = selector.match(regex);\n\t\t\t\t\tfor (i = 0, len = matches.length; i < len; i += 1) {\n\t\t\t\t\t\tmatch = matches[i];\n\t\t\t\t\t\tselector = selector.replace(match, Array(match.length + 1).join('A'));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t// Matches a backslash followed by six hexadecimal digits followed by an optional single whitespace character\n\t\t\tescapeHexadecimalRegex = /\\\\[0-9A-Fa-f]{6}\\s?/g,\n\t\t\t// Matches a backslash followed by fewer than six hexadecimal digits followed by a mandatory single whitespace character\n\t\t\tescapeHexadecimalRegex2 = /\\\\[0-9A-Fa-f]{1,5}\\s/g,\n\t\t\t// Matches a backslash followed by any character\n\t\t\tescapeSpecialCharacter = /\\\\./g;\n\n\t\treplaceWithPlainText(escapeHexadecimalRegex);\n\t\treplaceWithPlainText(escapeHexadecimalRegex2);\n\t\treplaceWithPlainText(escapeSpecialCharacter);\n\t}());\n\n\t// Remove anything after a left brace in case a user has pasted in a rule, not just a selector\n\t(function() {\n\t\tvar regex = /{[^]*/gm,\n\t\t\tmatches, i, len, match;\n\t\tif (regex.test(selector)) {\n\t\t\tmatches = selector.match(regex);\n\t\t\tfor (i = 0, len = matches.length; i < len; i += 1) {\n\t\t\t\tmatch = matches[i];\n\t\t\t\tselector = selector.replace(match, Array(match.length + 1).join(' '));\n\t\t\t}\n\t\t}\n\t}());\n\n\t// Add attribute selectors to parts collection (type b)\n\tfindMatch(attributeRegex, 'b');\n\n\t// Add ID selectors to parts collection (type a)\n\tfindMatch(idRegex, 'a');\n\n\t// Add class selectors to parts collection (type b)\n\tfindMatch(classRegex, 'b');\n\n\t// Add pseudo-element selectors to parts collection (type c)\n\tfindMatch(pseudoElementRegex, 'c');\n\n\t// Add pseudo-class selectors to parts collection (type b)\n\tfindMatch(pseudoClassWithBracketsRegex, 'b');\n\tfindMatch(pseudoClassRegex, 'b');\n\n\t// Remove universal selector and separator characters\n\tselector = selector.replace(/[\\*\\s\\+>~]/g, ' ');\n\n\t// Remove any stray dots or hashes which aren't attached to words\n\t// These may be present if the user is live-editing this selector\n\tselector = selector.replace(/[#\\.]/g, ' ');\n\n\t// Remove the negation psuedo-class (:not) but leave its argument because specificity is calculated on its argument\n \t// Remove non-standard :local and :global CSS Module identifiers because they do not effect the specificity\n\tselector = selector.replace(/:not/g, ' ');\n\tselector = selector.replace(/:local/g, ' ');\n\tselector = selector.replace(/:global/g, ' ');\n\tselector = selector.replace(/[\\(\\)]/g, ' ');\n\n\t// The only things left should be element selectors (type c)\n\tfindMatch(elementRegex, 'c');\n\n\t// Order the parts in the order they appear in the original selector\n\t// This is neater for external apps to deal with\n\tparts.sort(function(a, b) {\n\t\treturn a.index - b.index;\n\t});\n\n\treturn {\n\t\tselector: input,\n\t\tspecificity: '0,' + typeCount.a.toString() + ',' + typeCount.b.toString() + ',' + typeCount.c.toString(),\n\t\tspecificityArray: [0, typeCount.a, typeCount.b, typeCount.c],\n\t\tparts: parts\n\t};\n};\n\n/**\n * Compares two CSS selectors for specificity\n * Alternatively you can replace one of the CSS selectors with a specificity array\n *\n * - it returns -1 if a has a lower specificity than b\n * - it returns 1 if a has a higher specificity than b\n * - it returns 0 if a has the same specificity than b\n */\nvar compare = function(a, b) {\n\tvar aSpecificity,\n\t\tbSpecificity,\n\t\ti;\n\n\tif (typeof a ==='string') {\n\t\tif (a.indexOf(',') !== -1) {\n\t\t\tthrow 'Invalid CSS selector';\n\t\t} else {\n\t\t\taSpecificity = calculateSingle(a)['specificityArray'];\n\t\t}\n\t} else if (Array.isArray(a)) {\n\t\tif (a.filter(function(e) { return (typeof e === 'number'); }).length !== 4) {\n\t\t\tthrow 'Invalid specificity array';\n\t\t} else {\n\t\t\taSpecificity = a;\n\t\t}\n\t} else {\n\t\tthrow 'Invalid CSS selector or specificity array';\n\t}\n\n\tif (typeof b ==='string') {\n\t\tif (b.indexOf(',') !== -1) {\n\t\t\tthrow 'Invalid CSS selector';\n\t\t} else {\n\t\t\tbSpecificity = calculateSingle(b)['specificityArray'];\n\t\t}\n\t} else if (Array.isArray(b)) {\n\t\tif (b.filter(function(e) { return (typeof e === 'number'); }).length !== 4) {\n\t\t\tthrow 'Invalid specificity array';\n\t\t} else {\n\t\t\tbSpecificity = b;\n\t\t}\n\t} else {\n\t\tthrow 'Invalid CSS selector or specificity array';\n\t}\n\n\tfor (i = 0; i < 4; i += 1) {\n\t\tif (aSpecificity[i] < bSpecificity[i]) {\n\t\t\treturn -1;\n\t\t} else if (aSpecificity[i] > bSpecificity[i]) {\n\t\t\treturn 1;\n\t\t}\n\t}\n\n\treturn 0;\n};\n\nexport { calculate, compare };\n",null,null],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","v","op","TypeError","pop","push","colorString","undefined","ok","key","charAt","substr","replace","toLowerCase","simpleColors","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","darkgrey","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightslategrey","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","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","colorDefs","re","example","process","bits","parseInt","processor","exec","channels","r","isNaN","RGBColor","a","toString","examples","j","sc","xml","document","createElement","setAttribute","listItem","listColor","exampleDiv","style","cssText","toHex","appendChild","createTextNode","listItemValue","toRGB","color","ColorFill","forNode","context","AttributeState","clone","xmlSpace","fill","fillOpacity","fontFamily","fontSize","fontStyle","fontWeight","opacity","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","textAnchor","alignmentBaseline","visibility","attributeState","iriReference","alignmentBaselineMap","bottom","text-bottom","top","text-top","hanging","middle","central","center","mathematical","ideographic","alphabetic","baseline","TextMeasure","text","width","measureTextWidth","xOffset","getMeasureFunction","textMeasuringTextElement","createElementNS","svg","setProperty","getContext","font","join","measureText","measurementTextNode","getMeasurementTextNode","textNode","setAttributeNS","textContent","getBBox","method","measureMethods","canvasWidth","canvasTextMeasure","testString","svgWidth","svgTextMeasure","Math","abs","epsilon","parentNode","removeChild","pdf","values","svg2pdfParameters","default","viewport","refsHandler","styleSheets","textMeasure","transform","unitMatrix","withinClipPath","withinUse","Context","regexAnySingleEscape","regexSingleEscape","regexExcessiveSpaces","cssesc","string","options","defaults","merge","quotes","quote","isIdentifier","firstChar","output","counter","character","codePoint","charCodeAt","extra","toUpperCase","escapeEverything","test","slice","$0","$1","$2","wrap","version","idMap","renderedElements","ReferencesHandler","id","renderCallback","generateKey","svgNode","get","_a","cssEsc","toRGBA","getAngle","from","to","atan2","toCubic","normalize","sqrt","getDirectionVector","addVectors","v1","v2","multVecMatrix","vec","matrix","x","c","segments","Path","MoveTo","LineTo","x1","y1","x2","y2","CurveTo","Close","forEach","seg","p1","p2","moveTo","lineTo","curveTo","close","nodeIs","node","tagsString","split","indexOf","nodeName","tagName","getAttribute","propertyNode","propertyCss","attribute","getPropertyValue","propertyValue","hasAttribute","svgNodeIsVisible","parentVisible","element","visible","svgNodeAndChildrenVisible","childNodes","children","child","isVisible","markers","MarkerList","marker","tf","angle","anchor","cos","sin","Matrix","matrixMult","saveGraphicsState","setLineWidth","getRendered","doFormObject","restoreGraphicsState","toPixels","pdfFontSize","match","parseFloat","mapAlignmentBaseline","parseFloats","str","floats","regex","parseColor","currentcolor","transparent","identifierPattern","spacePattern","starting","state","buffer","names","Error","fontAliases","sans-serif","verdana","arial","fixed","monospace","terminal","serif","cursive","fantasy","getBoundingBoxByChildren","svgnode","boundingBox","nodeBox","getBoundingBox","min","max","defaultBoundingBox","pf","computeViewBoxTransform","viewBox","eX","eY","eWidth","eHeight","noTranslate","align","meetOrSlice","vbX","vbY","vbWidth","vbHeight","scaleX","scaleY","preserveAspectRatio","alignAndMeetOrSlice","translateX","translateY","translate","scale","parseTransform","transformString","m","tSLength","mRegex","tRegex","rRegex","sRegex","sXRegex","sYRegex","resultMatrix","PI","t1","t2","parent","SvgNode","getBoundingBoxCore","nodeTransform","computeNodeTransformCore","NonRenderedNode","parentContext","pdfGradientType","_super","_this","contextColor","Gradient","ancestor","colorAttr","getParent","colors","opacitySum","hasOpacity","stop","offset","parseGradientOffset","gState","GState","pattern","ShadingPattern","getCoordinates","addShadingPattern","parsedValue","LinearGradient","RadialGradient","cx","cy","fx","fy","gradient","GradientFill","gradientUnitsMatrix","bBox","gradientTransform","Pattern","TilingPattern","beginTilingPattern","_i","render","_b","endTilingPattern","PatternFill","patternData","xStep","yStep","patternUnitsMatrix","fillBBox","height","patternContentUnitsMatrix","patternTransformMatrix","patternTransform","parseAttributes","domNode","fillColor","url","fillUrl","fillNode","parseFill","strokeRGB","lineCap","lineJoin","dashArray","dashOffset","miterLimit","fontFamilies","FontFamily","fontType","availableFonts","getFontList","firstAvailable","some","availableStyles","findFirstAvailableFontFamily","getFontSize","matchArr","applyAttributes","childContext","hasFillOpacity","hasStrokeOpacity","setGState","setFillColor","setDrawColor","setLineCap","setLineJoin","setLineDashPattern","setLineMiterLimit","setTextColor","setFont","setFontSize","internal","scaleFactor","getClipPathNode","targetNode","clipPathAttr","clipPathId","applyClipPath","clipPathNode","clipContext","RenderedNode","computeNodeTransform","hasClipPath","clipNode","renderCore","hasMarkers","GeometryNode","path","getCachedPath","setCurrentTransformationMatrix","draw","fillOrStroke","drawMarkers","cachedPath","getPath","getMarkers","getFillData","fillData","isNodeFillRuleEvenOdd","fillStrokeEvenOdd","fillStroke","fillEvenOdd","discardPath","minX","Number","POSITIVE_INFINITY","minY","maxX","NEGATIVE_INFINITY","maxY","markerStart","markerMid","markerEnd","iri","list_1","prevAngle","curAngle","first","firstAngle","last_1","curr","hasStartMarker","index","tmp","hasEndMarker","hasMidMarker","prev","addMarker","Marker","GraphicsNode","Line","box","ownerSVGElement","Use","substring","refNode","refNodeOpensViewport","refContext","Viewport","renderReferencedNode","rect","clip","beginFormObject","endFormObject","Rect","w","h","isFinite","rxAttr","ryAttr","rx","ry","arc","SQRT2","EllipseBase","getRx","getRy","lx","ly","Ellipse","getTextRenderingMode","renderingMode","removeNewlines","replaceTabsBySpace","consolidateSpaces","transformText","originX","originY","texts","textNodes","contexts","textMeasures","TextChunk","tSpan","charSpace","textNodeContext","alreadySeen","xs","ys","currentTextX","currentTextY","includes","tSpanDx","tSpanDy","textOffset","textRenderingMode","TextNode","textChunks","currentTextSegment","trimInfo","firstText","initialSpace","childNode","trimmedText","prevText","transformedText","add","prevContext","tSpanAbsX","type","chunk","tSpanAbsY","processTSpans","lengthAdjustment","textX","textY","dx","dy","textLength","childElementCount","trim","transformXmlSpace","getTextOffset","defaultSize","trimRight","rightTrimText","totalDefaultWidth_1","totalLength_1","reduce","lastPositions","setX","setY","put","paramCounts","l","q","z","SPECIAL_SPACES","isDigit","code","isDigitStart","State","param","err","segmentStart","data","skipSpaces","ch","scanFlag","scanParam","start","zeroFirst","hasCeiling","hasDecimal","hasDot","finalizeSegment","cmd","cmdLC","params","concat","splice","scanSegment","cmdCode","is_arc","comma_found","need_params","isCommand","queue","cache","tx","ty","sx","sy","rotate","rad","skewX","skewY","toArray","m1","m2","calc","isRelative","operations","CMD_SPLIT_RE","PARAMS_SPLIT_RE","TAU","unit_vector_angle","ux","uy","vx","vy","dot","acos","approximate_unit_arc","theta1","delta_theta","alpha","fa","fs","phi","sin_phi","cos_phi","x1p","y1p","lambda","cc","rx_sq","ry_sq","x1p_sq","y1p_sq","radicant","cxp","cyp","v1x","v1y","v2x","v2y","get_arc_center","ceil","map","curve","xp","yp","torad","ax","ma","J","K","D","JK","L","l1","l2","atan","isDegenerate","SvgPath","pstate","svgPath","pathParse","__stack","src","sgm","__matrix","self","iterate","name","ellipse","__evaluateStack","skipCmd","elements","degrees","item","transformParse","round","contourStartDeltaX","contourStartDeltaY","deltaX","deltaY","toFixed","val","keepLazyStack","newSegments","replacements","needReplace","lastX","lastY","countourStartX","countourStartY","res","isArray","nameUC","rel","nameLC","unarc","new_segments","nextX","nextY","a2c","unshort","prevControlX","prevControlY","prevSegment","curControlX","curControlY","idx","PathNode","prevX","prevY","p3","dataUriRegex","imageUrl","imageLoadingPromise","ImageNode","fetchImageData","format","parser","DOMParser","svgElement","parseFromString","firstElementChild","String","parse","dataUri","btoa","addImage","console","warn","mimeType","mimeTypeParts","atob","decodeURIComponent","fetchImage","lastIndexOf","xhr","XMLHttpRequest","open","responseType","onload","status","bytes","Uint8Array","response","fromCharCode","onerror","onabort","send","closed","Traverse","points","parsePointsString","VoidNode","MarkerNode","tfMatrix","vb","refX","refY","bounds","Circle","getR","ContainerNode","Svg","getX","getY","getWidth","getHeight","getViewBox","widthAttr","parameters","isOutermostSvg","aspectRatio","heightAttr","xAttr","yAttr","Group","ClipPath","clipPathMatrix","inversed","fn","forEachChild","Polygon","Polyline","setParent","calculateSingle","input","findMatch","replaceWithPlainText","selector","typeCount","parts","matches","len","sort","specificity","specificityArray","rootSvg","loadExtSheets","loadExternalSheets","StyleSheets","collectStyleSheetTexts","sheetTexts","parseCssSheets","ownerDocument","loadSheet","styleElements","querySelectorAll","styleElement","all","filter","sheet","styleDoc","implementation","createHTMLDocument","sheetTexts_1","sheetText","CSSStyleSheet","cssRules","cssRule","CSSStyleRule","deleteRule","cssStyleRule","selectorText","selectors","splitSelectorAtCommas","insertRule","initialRegex","closingDoubleQuotesRegex","closingSingleQuotesRegex","lastCommaIndex","closingQuotesRegex","lastIndex","responseText","catch","matchingRules","rule","compare","priorityA","getPropertyPriority","aSpecificity","bSpecificity","compareSpecificity","previousValue","currentValue","svg2pdf","extCss","loadExternalStyleSheets","load","_d","pageSize","advancedAPI","compatAPI","cleanupTextMeasuring","API"],"mappings":"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"}