/
svg2pdf.umd.min.js.map
1 lines (1 loc) · 169 KB
/
svg2pdf.umd.min.js.map
1
{"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/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/constants.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/fill/parseFill.ts","../src/applyparseattributes.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/context/textmeasure.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,"/*! 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,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 result = '', prevCmd = '', cmdSkipped = false;\n\n this.__evaluateStack();\n\n for (var i = 0, len = this.segments.length; i < len; i++) {\n var segment = this.segments[i];\n var cmd = segment[0];\n\n // Command not repeating => store\n if (cmd !== prevCmd || cmd === 'm' || cmd === 'M') {\n // workaround for FontForge SVG importing bug, keep space between \"z m\".\n if (cmd === 'm' && prevCmd === 'z') result += ' ';\n result += cmd;\n\n cmdSkipped = false;\n } else {\n cmdSkipped = true;\n }\n\n // Store segment params\n for (var pos = 1; pos < segment.length; pos++) {\n var val = segment[pos];\n // Space can be skipped\n // 1. After command (always)\n // 2. For negative value (with '-' at start)\n if (pos === 1) {\n if (cmdSkipped && val >= 0) result += ' ';\n } else if (val >= 0) result += ' ';\n\n result += val;\n }\n\n prevCmd = cmd;\n }\n\n return result;\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,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","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","idPrefix","String","ReferencesHandler","instanceCounter","id","renderCallback","generateKey","svgNode","get","_a","cssEsc","toRGBA","getAngle","from","to","Math","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","getRendered","doFormObject","restoreGraphicsState","iriReference","alignmentBaselineMap","bottom","text-bottom","top","text-top","hanging","middle","central","center","mathematical","ideographic","alphabetic","baseline","toPixels","pdfFontSize","match","parseFloat","mapAlignmentBaseline","parseFloats","str","floats","regex","parseColor","currentcolor","transparent","join","identifierPattern","spacePattern","starting","state","buffer","names","Error","fontAliases","sans-serif","verdana","arial","fixed","monospace","terminal","serif","cursive","fantasy","parts","isJsPDF23","jsPDF","combineFontStyleAndFontWeight","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","colors","getStops","opacitySum","hasOpacity","gState","GState","pattern","ShadingPattern","getCoordinates","addShadingPattern","stops","ancestor","colorAttr","getParent","stop","offset","parseGradientOffset","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","width","height","patternContentUnitsMatrix","patternTransformMatrix","patternTransform","parseFill","url","fillUrl","fillNode","stopColor","rgbColor","getGradientFill","fillColor","parseAttributes","domNode","abs","strokeRGB","lineCap","lineJoin","dashArray","dashOffset","miterLimit","fontFamilies","FontFamily","fontType","availableFonts","getFontList","firstAvailable","some","font","availableStyles","findFirstAvailableFontFamily","getFontSize","matchArr","applyAttributes","childContext","hasFillOpacity","hasStrokeOpacity","setGState","setFillColor","setLineWidth","setDrawColor","setLineCap","setLineJoin","setLineDashPattern","setLineMiterLimit","setTextColor","setFont","setFontSize","internal","scaleFactor","getClipPathNode","clipPathAttr","targetNode","clipPathId","applyClipPath","clipPathNode","clipContext","RenderedNode","computeNodeTransform","clipPathAttribute","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","doStroke","doFill","removeNewlines","replaceTabsBySpace","consolidateSpaces","transformText","text","originX","originY","textNode","texts","textNodes","contexts","textMeasures","TextChunk","tSpan","measureTextWidth","charSpace","textNodeContext","alreadySeen","xs","ys","currentTextX","currentTextY","includes","tSpanDx","resolveRelativePositionAttribute","tSpanDy","textOffset","textRenderingMode","attributeName","currentElement","parentElement","firstChild","TextNode","textChunks","currentTextSegment","trimInfo","firstText","initialSpace","childNode","textContent","trimmedText","prevText","transformedText","add","prevContext","tSpanAbsX","type","chunk","tSpanAbsY","processTSpans","xOffset","lengthAdjustment","textX","textY","dx","dy","textLength","childElementCount","trim","transformXmlSpace","getTextOffset","defaultSize","trimRight","rightTrimText","totalDefaultWidth_1","totalLength_1","measureText","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","prevCmd","cmdSkipped","len","segment","pos","val","degrees","item","transformParse","round","contourStartDeltaX","contourStartDeltaY","deltaX","deltaY","toFixed","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","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","applyContext","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","matches","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","cssStyleRule","selectorText","deleteRule","selectors","splitSelectorAtCommas","insertRule","initialRegex","closingDoubleQuotesRegex","closingSingleQuotesRegex","lastCommaIndex","closingQuotesRegex","lastIndex","responseText","catch","matchingRules","rule","compare","priorityA","getPropertyPriority","aSpecificity","bSpecificity","compareSpecificity","previousValue","currentValue","TextMeasure","getMeasureFunction","textMeasuringTextElement","createElementNS","svg","setProperty","getContext","measurementTextNode","getMeasurementTextNode","setAttributeNS","getBBox","method","measureMethods","canvasWidth","canvasTextMeasure","testString","svgWidth","svgTextMeasure","epsilon","parentNode","removeChild","svg2pdf","extCss","loadExternalStyleSheets","load","_d","pageSize","advancedAPI","compatAPI","cleanupTextMeasuring","API"],"mappings":"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"}