@kittl/pdfkit 0.17.5 → 0.17.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"write_svg.es.js","sources":["../lib/write_svg.js"],"sourcesContent":["/* global getComputedStyle, SVGElement */\n\n// This directly taken from SVG-to-PDF\n// Contains some minor patches and changes\nexport default function (doc, svg, x, y, options) {\n 'use strict';\n\n const NamedColors = {\n aliceblue: [240, 248, 255],\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 134, 11],\n darkgray: [169, 169, 169],\n darkgrey: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 250, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n grey: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgrey: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 221],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n rebeccapurple: [102, 51, 153],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [112, 128, 144],\n slategrey: [112, 128, 144],\n snow: [255, 250, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n };\n const DefaultColors = {\n black: [NamedColors.black, 1],\n white: [NamedColors.white, 1],\n transparent: [NamedColors.black, 0],\n };\n const Entities = {\n quot: 34,\n amp: 38,\n lt: 60,\n gt: 62,\n apos: 39,\n OElig: 338,\n oelig: 339,\n Scaron: 352,\n scaron: 353,\n Yuml: 376,\n circ: 710,\n tilde: 732,\n ensp: 8194,\n emsp: 8195,\n thinsp: 8201,\n zwnj: 8204,\n zwj: 8205,\n lrm: 8206,\n rlm: 8207,\n ndash: 8211,\n mdash: 8212,\n lsquo: 8216,\n rsquo: 8217,\n sbquo: 8218,\n ldquo: 8220,\n rdquo: 8221,\n bdquo: 8222,\n dagger: 8224,\n Dagger: 8225,\n permil: 8240,\n lsaquo: 8249,\n rsaquo: 8250,\n euro: 8364,\n nbsp: 160,\n iexcl: 161,\n cent: 162,\n pound: 163,\n curren: 164,\n yen: 165,\n brvbar: 166,\n sect: 167,\n uml: 168,\n copy: 169,\n ordf: 170,\n laquo: 171,\n not: 172,\n shy: 173,\n reg: 174,\n macr: 175,\n deg: 176,\n plusmn: 177,\n sup2: 178,\n sup3: 179,\n acute: 180,\n micro: 181,\n para: 182,\n middot: 183,\n cedil: 184,\n sup1: 185,\n ordm: 186,\n raquo: 187,\n frac14: 188,\n frac12: 189,\n frac34: 190,\n iquest: 191,\n Agrave: 192,\n Aacute: 193,\n Acirc: 194,\n Atilde: 195,\n Auml: 196,\n Aring: 197,\n AElig: 198,\n Ccedil: 199,\n Egrave: 200,\n Eacute: 201,\n Ecirc: 202,\n Euml: 203,\n Igrave: 204,\n Iacute: 205,\n Icirc: 206,\n Iuml: 207,\n ETH: 208,\n Ntilde: 209,\n Ograve: 210,\n Oacute: 211,\n Ocirc: 212,\n Otilde: 213,\n Ouml: 214,\n times: 215,\n Oslash: 216,\n Ugrave: 217,\n Uacute: 218,\n Ucirc: 219,\n Uuml: 220,\n Yacute: 221,\n THORN: 222,\n szlig: 223,\n agrave: 224,\n aacute: 225,\n acirc: 226,\n atilde: 227,\n auml: 228,\n aring: 229,\n aelig: 230,\n ccedil: 231,\n egrave: 232,\n eacute: 233,\n ecirc: 234,\n euml: 235,\n igrave: 236,\n iacute: 237,\n icirc: 238,\n iuml: 239,\n eth: 240,\n ntilde: 241,\n ograve: 242,\n oacute: 243,\n ocirc: 244,\n otilde: 245,\n ouml: 246,\n divide: 247,\n oslash: 248,\n ugrave: 249,\n uacute: 250,\n ucirc: 251,\n uuml: 252,\n yacute: 253,\n thorn: 254,\n yuml: 255,\n fnof: 402,\n Alpha: 913,\n Beta: 914,\n Gamma: 915,\n Delta: 916,\n Epsilon: 917,\n Zeta: 918,\n Eta: 919,\n Theta: 920,\n Iota: 921,\n Kappa: 922,\n Lambda: 923,\n Mu: 924,\n Nu: 925,\n Xi: 926,\n Omicron: 927,\n Pi: 928,\n Rho: 929,\n Sigma: 931,\n Tau: 932,\n Upsilon: 933,\n Phi: 934,\n Chi: 935,\n Psi: 936,\n Omega: 937,\n alpha: 945,\n beta: 946,\n gamma: 947,\n delta: 948,\n epsilon: 949,\n zeta: 950,\n eta: 951,\n theta: 952,\n iota: 953,\n kappa: 954,\n lambda: 955,\n mu: 956,\n nu: 957,\n xi: 958,\n omicron: 959,\n pi: 960,\n rho: 961,\n sigmaf: 962,\n sigma: 963,\n tau: 964,\n upsilon: 965,\n phi: 966,\n chi: 967,\n psi: 968,\n omega: 969,\n thetasym: 977,\n upsih: 978,\n piv: 982,\n bull: 8226,\n hellip: 8230,\n prime: 8242,\n Prime: 8243,\n oline: 8254,\n frasl: 8260,\n weierp: 8472,\n image: 8465,\n real: 8476,\n trade: 8482,\n alefsym: 8501,\n larr: 8592,\n uarr: 8593,\n rarr: 8594,\n darr: 8595,\n harr: 8596,\n crarr: 8629,\n lArr: 8656,\n uArr: 8657,\n rArr: 8658,\n dArr: 8659,\n hArr: 8660,\n forall: 8704,\n part: 8706,\n exist: 8707,\n empty: 8709,\n nabla: 8711,\n isin: 8712,\n notin: 8713,\n ni: 8715,\n prod: 8719,\n sum: 8721,\n minus: 8722,\n lowast: 8727,\n radic: 8730,\n prop: 8733,\n infin: 8734,\n ang: 8736,\n and: 8743,\n or: 8744,\n cap: 8745,\n cup: 8746,\n int: 8747,\n there4: 8756,\n sim: 8764,\n cong: 8773,\n asymp: 8776,\n ne: 8800,\n equiv: 8801,\n le: 8804,\n ge: 8805,\n sub: 8834,\n sup: 8835,\n nsub: 8836,\n sube: 8838,\n supe: 8839,\n oplus: 8853,\n otimes: 8855,\n perp: 8869,\n sdot: 8901,\n lceil: 8968,\n rceil: 8969,\n lfloor: 8970,\n rfloor: 8971,\n lang: 9001,\n rang: 9002,\n loz: 9674,\n spades: 9824,\n clubs: 9827,\n hearts: 9829,\n diams: 9830,\n };\n const PathArguments = {\n A: 7,\n a: 7,\n C: 6,\n c: 6,\n H: 1,\n h: 1,\n L: 2,\n l: 2,\n M: 2,\n m: 2,\n Q: 4,\n q: 4,\n S: 4,\n s: 4,\n T: 2,\n t: 2,\n V: 1,\n v: 1,\n Z: 0,\n z: 0,\n };\n const PathFlags = { A3: true, A4: true, a3: true, a4: true };\n const Properties = {\n color: { inherit: true, initial: undefined },\n visibility: {\n inherit: true,\n initial: 'visible',\n values: { hidden: 'hidden', collapse: 'hidden', visible: 'visible' },\n },\n fill: { inherit: true, initial: DefaultColors.black },\n stroke: { inherit: true, initial: 'none' },\n 'stop-color': { inherit: false, initial: DefaultColors.black },\n 'fill-opacity': { inherit: true, initial: 1 },\n 'stroke-opacity': { inherit: true, initial: 1 },\n 'stop-opacity': { inherit: false, initial: 1 },\n 'fill-rule': {\n inherit: true,\n initial: 'nonzero',\n values: { nonzero: 'nonzero', evenodd: 'evenodd' },\n },\n 'clip-rule': {\n inherit: true,\n initial: 'nonzero',\n values: { nonzero: 'nonzero', evenodd: 'evenodd' },\n },\n 'stroke-width': { inherit: true, initial: 1 },\n 'stroke-dasharray': { inherit: true, initial: [] },\n 'stroke-dashoffset': { inherit: true, initial: 0 },\n 'stroke-miterlimit': { inherit: true, initial: 4 },\n 'stroke-linejoin': {\n inherit: true,\n initial: 'miter',\n values: { miter: 'miter', round: 'round', bevel: 'bevel' },\n },\n 'stroke-linecap': {\n inherit: true,\n initial: 'butt',\n values: { butt: 'butt', round: 'round', square: 'square' },\n },\n 'font-size': {\n inherit: true,\n initial: 16,\n values: {\n 'xx-small': 9,\n 'x-small': 10,\n small: 13,\n medium: 16,\n large: 18,\n 'x-large': 24,\n 'xx-large': 32,\n },\n },\n 'font-family': { inherit: true, initial: 'sans-serif' },\n 'font-weight': {\n inherit: true,\n initial: 'normal',\n values: {\n 600: 'bold',\n 700: 'bold',\n 800: 'bold',\n 900: 'bold',\n bold: 'bold',\n bolder: 'bold',\n 500: 'normal',\n 400: 'normal',\n 300: 'normal',\n 200: 'normal',\n 100: 'normal',\n normal: 'normal',\n lighter: 'normal',\n },\n },\n 'font-style': {\n inherit: true,\n initial: 'normal',\n values: { italic: 'italic', oblique: 'italic', normal: 'normal' },\n },\n 'text-anchor': {\n inherit: true,\n initial: 'start',\n values: { start: 'start', middle: 'middle', end: 'end' },\n },\n direction: {\n inherit: true,\n initial: 'ltr',\n values: { ltr: 'ltr', rtl: 'rtl' },\n },\n 'dominant-baseline': {\n inherit: true,\n initial: 'baseline',\n values: {\n auto: 'baseline',\n baseline: 'baseline',\n 'before-edge': 'before-edge',\n 'text-before-edge': 'before-edge',\n middle: 'middle',\n central: 'central',\n 'after-edge': 'after-edge',\n 'text-after-edge': 'after-edge',\n ideographic: 'ideographic',\n alphabetic: 'alphabetic',\n hanging: 'hanging',\n mathematical: 'mathematical',\n },\n },\n 'alignment-baseline': {\n inherit: false,\n initial: undefined,\n values: {\n auto: 'baseline',\n baseline: 'baseline',\n 'before-edge': 'before-edge',\n 'text-before-edge': 'before-edge',\n middle: 'middle',\n central: 'central',\n 'after-edge': 'after-edge',\n 'text-after-edge': 'after-edge',\n ideographic: 'ideographic',\n alphabetic: 'alphabetic',\n hanging: 'hanging',\n mathematical: 'mathematical',\n },\n },\n 'baseline-shift': {\n inherit: true,\n initial: 'baseline',\n values: { baseline: 'baseline', sub: 'sub', super: 'super' },\n },\n 'word-spacing': { inherit: true, initial: 0, values: { normal: 0 } },\n 'letter-spacing': { inherit: true, initial: 0, values: { normal: 0 } },\n 'text-decoration': {\n inherit: false,\n initial: 'none',\n values: {\n none: 'none',\n underline: 'underline',\n overline: 'overline',\n 'line-through': 'line-through',\n },\n },\n 'xml:space': {\n inherit: true,\n initial: 'default',\n css: 'white-space',\n values: {\n preserve: 'preserve',\n default: 'default',\n pre: 'preserve',\n 'pre-line': 'preserve',\n 'pre-wrap': 'preserve',\n nowrap: 'default',\n },\n },\n 'marker-start': { inherit: true, initial: 'none' },\n 'marker-mid': { inherit: true, initial: 'none' },\n 'marker-end': { inherit: true, initial: 'none' },\n opacity: { inherit: false, initial: 1 },\n transform: { inherit: false, initial: [1, 0, 0, 1, 0, 0] },\n display: {\n inherit: false,\n initial: 'inline',\n values: { none: 'none', inline: 'inline', block: 'inline' },\n },\n 'clip-path': { inherit: false, initial: 'none' },\n mask: { inherit: false, initial: 'none' },\n overflow: {\n inherit: false,\n initial: 'hidden',\n values: { hidden: 'hidden', scroll: 'hidden', visible: 'visible' },\n },\n };\n\n const blendModeMap = {\n normal: 'Normal',\n multiply: 'Multiply',\n screen: 'Screen',\n overlay: 'Overlay',\n darken: 'Darken',\n lighten: 'Lighten',\n 'color-dodge': 'ColorDodge',\n 'color-burn': 'ColorBurn',\n 'hard-light': 'HardLight',\n 'soft-light': 'SoftLight',\n softlight: 'SoftLight',\n difference: 'Difference',\n exclusion: 'Exclusion',\n hue: 'Hue',\n saturation: 'Saturation',\n color: 'Color',\n luminosity: 'Luminosity',\n };\n\n function docBeginGroup(bbox) {\n let group = new (function PDFGroup() {})();\n group.name = 'G' + (doc._groupCount = (doc._groupCount || 0) + 1);\n group.resources = doc.ref();\n group.xobj = doc.ref({\n Type: 'XObject',\n Subtype: 'Form',\n FormType: 1,\n BBox: bbox,\n Group: { S: 'Transparency', CS: colorSpace, I: true, K: false },\n Resources: group.resources,\n });\n group.xobj.write('');\n group.savedMatrix = doc._ctm;\n group.savedPage = doc.page;\n groupStack.push(group);\n doc._ctm = [1, 0, 0, 1, 0, 0];\n doc.page = {\n width: doc.page.width,\n height: doc.page.height,\n write: function (data) {\n group.xobj.write(data);\n },\n fonts: {},\n xobjects: {},\n ext_gstates: {},\n patterns: {},\n };\n return group;\n }\n function docEndGroup(group) {\n if (group !== groupStack.pop()) {\n throw 'Group not matching';\n }\n if (Object.keys(doc.page.fonts).length) {\n group.resources.data.Font = doc.page.fonts;\n }\n if (Object.keys(doc.page.xobjects).length) {\n group.resources.data.XObject = doc.page.xobjects;\n }\n if (Object.keys(doc.page.ext_gstates).length) {\n group.resources.data.ExtGState = doc.page.ext_gstates;\n }\n if (Object.keys(doc.page.patterns).length) {\n group.resources.data.Pattern = doc.page.patterns;\n }\n group.resources.end();\n group.xobj.end();\n doc._ctm = group.savedMatrix;\n doc.page = group.savedPage;\n }\n function docInsertGroup(group) {\n doc.page.xobjects[group.name] = group.xobj;\n doc.addContent('/' + group.name + ' Do');\n }\n function docApplyMask(group, clip) {\n let name = 'M' + (doc._maskCount = (doc._maskCount || 0) + 1);\n let gstate = doc.ref({\n Type: 'ExtGState',\n CA: 1,\n ca: 1,\n BM: 'Normal',\n SMask: {\n S: 'Luminosity',\n G: group.xobj,\n BC: clip ? [0, 0, 0] : [1, 1, 1],\n },\n });\n gstate.end();\n doc.page.ext_gstates[name] = gstate;\n doc.addContent('/' + name + ' gs');\n }\n function applyBlendMode(group, blendMode) {\n // map svg blendMode to pdf\n const key = String(blendMode || '').toLowerCase();\n const pdfBlendMode = blendModeMap[key] || 'Normal';\n\n const name = 'M' + pdfBlendMode;\n const gstate = doc.ref({\n Type: 'ExtGState',\n CA: 1,\n ca: 1,\n BM: pdfBlendMode,\n G: group.xobj,\n });\n gstate.end();\n doc.page.ext_gstates[name] = gstate;\n doc.addContent('/' + name + ' gs');\n }\n function docCreatePattern(group, dx, dy, matrix) {\n let pattern = new (function PDFPattern() {})();\n pattern.group = group;\n pattern.dx = dx;\n pattern.dy = dy;\n pattern.matrix = matrix || [1, 0, 0, 1, 0, 0];\n return pattern;\n }\n function docUsePattern(pattern, stroke) {\n let name = 'P' + (doc._patternCount = (doc._patternCount || 0) + 1);\n let ref = doc.ref({\n Type: 'Pattern',\n PatternType: 1,\n PaintType: 1,\n TilingType: 2,\n BBox: [0, 0, pattern.dx, pattern.dy],\n XStep: pattern.dx,\n YStep: pattern.dy,\n Matrix: multiplyMatrix(doc._ctm, pattern.matrix),\n Resources: {\n ProcSet: ['PDF', 'Text', 'ImageB', 'ImageC', 'ImageI'],\n XObject: (function () {\n let temp = {};\n temp[pattern.group.name] = pattern.group.xobj;\n return temp;\n })(),\n },\n });\n ref.write('/' + pattern.group.name + ' Do');\n ref.end();\n doc.page.patterns[name] = ref;\n if (stroke) {\n doc.addContent('/Pattern CS');\n doc.addContent('/' + name + ' SCN');\n } else {\n doc.addContent('/Pattern cs');\n doc.addContent('/' + name + ' scn');\n }\n }\n function docBeginText(font, size) {\n if (!doc.page.fonts[font.id]) {\n doc.page.fonts[font.id] = font.ref();\n }\n doc.addContent('BT').addContent('/' + font.id + ' ' + size + ' Tf');\n }\n function docSetTextMatrix(a, b, c, d, e, f) {\n doc.addContent(\n validateNumber(a) +\n ' ' +\n validateNumber(b) +\n ' ' +\n validateNumber(-c) +\n ' ' +\n validateNumber(-d) +\n ' ' +\n validateNumber(e) +\n ' ' +\n validateNumber(f) +\n ' Tm',\n );\n }\n function docSetTextMode(fill, stroke) {\n let mode = fill && stroke ? 2 : stroke ? 1 : fill ? 0 : 3;\n doc.addContent(mode + ' Tr');\n }\n function docWriteGlyphs(positions, font) {\n let commands = [];\n let commandStr = '';\n const skew = font.fauxItalic ? -0.25 : 0;\n\n // Add the given character to the 'TJ' command string.\n function addChar(char) {\n commandStr += char.glyph;\n if (char.kern === 0) return;\n commands.push(`<${commandStr}> ${validateNumber(char.kern)}`);\n commandStr = '';\n }\n\n // Flush the current TJ command string to the output stream.\n function flush() {\n if (commandStr.length) {\n commands.push(`<${commandStr}> 0`);\n commandStr = '';\n }\n if (commands.length) {\n doc.addContent(`[${commands.join(' ')}] TJ`);\n commands = [];\n }\n }\n\n for (let i = 0; i < positions.length; i++) {\n const pos = positions[i];\n\n if (pos.hidden || isEqual(pos.width, 0)) {\n flush();\n continue;\n }\n\n if (pos.continuous) {\n addChar(pos);\n continue;\n }\n\n // If this character is non-continuous, flush the command buffer.\n flush();\n\n // Start a new TJ command after writing a Text Matrix (Tm)\n const cos = Math.cos(pos.rotate);\n const sin = Math.sin(pos.rotate);\n docSetTextMatrix(cos * pos.scale, sin * pos.scale, cos * skew - sin, sin * skew + cos, pos.x, pos.y);\n addChar(pos);\n }\n\n // Flush any remaining characters in the buffer.\n flush();\n }\n function docEndText() {\n doc.addContent('ET');\n }\n function docFillColor(color) {\n if (color[0].constructor.name === 'PDFPattern') {\n doc.fillOpacity(color[1]);\n docUsePattern(color[0], false);\n } else {\n doc.fillColor(color[0], color[1]);\n }\n }\n function docStrokeColor(color) {\n if (color[0].constructor.name === 'PDFPattern') {\n doc.strokeOpacity(color[1]);\n docUsePattern(color[0], true);\n } else {\n doc.strokeColor(color[0], color[1]);\n }\n }\n function docInsertLink(x, y, w, h, url) {\n let ref = doc.ref({\n Type: 'Annot',\n Subtype: 'Link',\n Rect: [x, y, w, h],\n Border: [0, 0, 0],\n A: {\n S: 'URI',\n URI: new String(url),\n },\n });\n ref.end();\n links.push(ref);\n }\n function parseXml(xml) {\n let SvgNode = function (tag, type, value, error) {\n this.error = error;\n this.nodeName = tag;\n this.nodeValue = value;\n this.nodeType = type;\n this.attributes = Object.create(null);\n this.childNodes = [];\n this.parentNode = null;\n this.id = '';\n this.textContent = '';\n this.classList = [];\n };\n SvgNode.prototype.getAttribute = function (attr) {\n return this.attributes[attr] != null ? this.attributes[attr] : null;\n };\n SvgNode.prototype.getElementById = function (id) {\n let result = null;\n (function recursive(node) {\n if (result) {\n return;\n }\n if (node.nodeType === 1) {\n if (node.id === id) {\n result = node;\n }\n for (let i = 0; i < node.childNodes.length; i++) {\n recursive(node.childNodes[i]);\n }\n }\n })(this);\n return result;\n };\n SvgNode.prototype.getElementsByTagName = function (tag) {\n let result = [];\n (function recursive(node) {\n if (node.nodeType === 1) {\n if (node.nodeName === tag) {\n result.push(node);\n }\n for (let i = 0; i < node.childNodes.length; i++) {\n recursive(node.childNodes[i]);\n }\n }\n })(this);\n return result;\n };\n let parser = new StringParser(xml.trim()),\n result,\n child,\n error = false;\n let recursive = function () {\n let temp, child;\n if ((temp = parser.match(/^<([\\w:.-]+)\\s*/, true))) {\n // Opening tag\n let node = new SvgNode(temp[1], 1, null, error);\n while ((temp = parser.match(/^([\\w:.-]+)(?:\\s*=\\s*\"([^\"]*)\"|\\s*=\\s*'([^']*)')?\\s*/, true))) {\n // Attribute\n let attr = temp[1],\n value = decodeEntities(temp[2] || temp[3] || '');\n if (!node.attributes[attr]) {\n node.attributes[attr] = value;\n if (attr === 'id') {\n node.id = value;\n }\n if (attr === 'class') {\n node.classList = value.split(' ');\n }\n } else {\n warningCallback('parseXml: duplicate attribute \"' + attr + '\"');\n error = true;\n }\n }\n if (parser.match(/^>/)) {\n // End of opening tag\n while ((child = recursive())) {\n node.childNodes.push(child);\n child.parentNode = node;\n node.textContent += child.nodeType === 3 || child.nodeType === 4 ? child.nodeValue : child.textContent;\n }\n if ((temp = parser.match(/^<\\/([\\w:.-]+)\\s*>/, true))) {\n // Closing tag\n if (temp[1] === node.nodeName) {\n return node;\n } else {\n warningCallback(\n 'parseXml: tag not matching, opening \"' + node.nodeName + '\" & closing \"' + temp[1] + '\"',\n );\n error = true;\n return node;\n }\n } else {\n warningCallback('parseXml: tag not matching, opening \"' + node.nodeName + '\" & not closing');\n error = true;\n return node;\n }\n } else if (parser.match(/^\\/>/)) {\n // Self-closing tag\n return node;\n } else {\n warningCallback('parseXml: tag could not be parsed \"' + node.nodeName + '\"');\n error = true;\n }\n } else if ((temp = parser.match(/^<!--[\\s\\S]*?-->/))) {\n // Comment\n return new SvgNode(null, 8, temp, error);\n } else if ((temp = parser.match(/^<\\?[\\s\\S]*?\\?>/))) {\n // Processing instructions\n return new SvgNode(null, 7, temp, error);\n } else if ((temp = parser.match(/^<!DOCTYPE\\s*([\\s\\S]*?)>/))) {\n // Doctype\n return new SvgNode(null, 10, temp, error);\n } else if ((temp = parser.match(/^<!\\[CDATA\\[([\\s\\S]*?)\\]\\]>/, true))) {\n // Cdata node\n return new SvgNode('#cdata-section', 4, temp[1], error);\n } else if ((temp = parser.match(/^([^<]+)/, true))) {\n // Text node\n return new SvgNode('#text', 3, decodeEntities(temp[1]), error);\n }\n };\n while ((child = recursive())) {\n if (child.nodeType === 1 && !result) {\n result = child;\n } else if (child.nodeType === 1 || (child.nodeType === 3 && child.nodeValue.trim() !== '')) {\n warningCallback('parseXml: data after document end has been discarded');\n }\n }\n if (parser.matchAll()) {\n warningCallback('parseXml: parsing error');\n }\n return result;\n }\n function decodeEntities(str) {\n return str.replace(/&(?:#([0-9]+)|#[xX]([0-9A-Fa-f]+)|([0-9A-Za-z]+));/g, function (mt, m0, m1, m2) {\n if (m0) {\n return String.fromCharCode(parseInt(m0, 10));\n } else if (m1) {\n return String.fromCharCode(parseInt(m1, 16));\n } else if (m2 && Entities[m2]) {\n return String.fromCharCode(Entities[m2]);\n } else {\n return mt;\n }\n });\n }\n function parseColor(raw) {\n let temp, result;\n raw = (raw || '').trim();\n if ((temp = NamedColors[raw])) {\n result = [temp.slice(), 1];\n } else if ((temp = raw.match(/^cmyk\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9.]+)\\s*\\)$/i))) {\n temp[1] = parseInt(temp[1]);\n temp[2] = parseInt(temp[2]);\n temp[3] = parseInt(temp[3]);\n temp[4] = parseInt(temp[4]);\n if (temp[1] <= 100 && temp[2] <= 100 && temp[3] <= 100 && temp[4] <= 100) {\n result = [temp.slice(1, 5), 1];\n }\n } else if ((temp = raw.match(/^rgba\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9.]+)\\s*\\)$/i))) {\n temp[1] = parseInt(temp[1]);\n temp[2] = parseInt(temp[2]);\n temp[3] = parseInt(temp[3]);\n temp[4] = parseFloat(temp[4]);\n if (temp[1] < 256 && temp[2] < 256 && temp[3] < 256 && temp[4] <= 1) {\n result = [temp.slice(1, 4), temp[4]];\n }\n } else if ((temp = raw.match(/^rgb\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*\\)$/i))) {\n temp[1] = parseInt(temp[1]);\n temp[2] = parseInt(temp[2]);\n temp[3] = parseInt(temp[3]);\n if (temp[1] < 256 && temp[2] < 256 && temp[3] < 256) {\n result = [temp.slice(1, 4), 1];\n }\n } else if ((temp = raw.match(/^rgb\\(\\s*([0-9.]+)%\\s*,\\s*([0-9.]+)%\\s*,\\s*([0-9.]+)%\\s*\\)$/i))) {\n temp[1] = 2.55 * parseFloat(temp[1]);\n temp[2] = 2.55 * parseFloat(temp[2]);\n temp[3] = 2.55 * parseFloat(temp[3]);\n if (temp[1] < 256 && temp[2] < 256 && temp[3] < 256) {\n result = [temp.slice(1, 4), 1];\n }\n } else if ((temp = raw.match(/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i))) {\n result = [[parseInt(temp[1], 16), parseInt(temp[2], 16), parseInt(temp[3], 16)], 1];\n } else if ((temp = raw.match(/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i))) {\n result = [[0x11 * parseInt(temp[1], 16), 0x11 * parseInt(temp[2], 16), 0x11 * parseInt(temp[3], 16)], 1];\n }\n return colorCallback ? colorCallback(result, raw) : result;\n }\n function opacityToColor(color, opacity, isMask) {\n let newColor = color[0].slice(),\n newOpacity = color[1] * opacity;\n if (isMask) {\n for (let i = 0; i < color.length; i++) {\n newColor[i] *= newOpacity;\n }\n return [newColor, 1];\n } else {\n return [newColor, newOpacity];\n }\n }\n function multiplyMatrix() {\n function multiply(a, b) {\n return [\n a[0] * b[0] + a[2] * b[1],\n a[1] * b[0] + a[3] * b[1],\n a[0] * b[2] + a[2] * b[3],\n a[1] * b[2] + a[3] * b[3],\n a[0] * b[4] + a[2] * b[5] + a[4],\n a[1] * b[4] + a[3] * b[5] + a[5],\n ];\n }\n let result = arguments[0];\n for (let i = 1; i < arguments.length; i++) {\n result = multiply(result, arguments[i]);\n }\n return result;\n }\n function transformPoint(p, m) {\n return [m[0] * p[0] + m[2] * p[1] + m[4], m[1] * p[0] + m[3] * p[1] + m[5]];\n }\n function getGlobalMatrix() {\n let ctm = doc._ctm;\n for (let i = groupStack.length - 1; i >= 0; i--) {\n ctm = multiplyMatrix(groupStack[i].savedMatrix, ctm);\n }\n return ctm;\n }\n function getPageBBox() {\n return new SvgShape()\n .M(0, 0)\n .L(doc.page.width, 0)\n .L(doc.page.width, doc.page.height)\n .L(0, doc.page.height)\n .transform(inverseMatrix(getGlobalMatrix()))\n .getBoundingBox();\n }\n function inverseMatrix(m) {\n let dt = m[0] * m[3] - m[1] * m[2];\n return [\n m[3] / dt,\n -m[1] / dt,\n -m[2] / dt,\n m[0] / dt,\n (m[2] * m[5] - m[3] * m[4]) / dt,\n (m[1] * m[4] - m[0] * m[5]) / dt,\n ];\n }\n function validateMatrix(m) {\n let m0 = validateNumber(m[0]),\n m1 = validateNumber(m[1]),\n m2 = validateNumber(m[2]),\n m3 = validateNumber(m[3]),\n m4 = validateNumber(m[4]),\n m5 = validateNumber(m[5]);\n if (isNotEqual(m0 * m3 - m1 * m2, 0)) {\n return [m0, m1, m2, m3, m4, m5];\n }\n }\n function solveEquation(curve) {\n let a = curve[2] || 0,\n b = curve[1] || 0,\n c = curve[0] || 0;\n if (isEqual(a, 0) && isEqual(b, 0)) {\n return [];\n } else if (isEqual(a, 0)) {\n return [-c / b];\n } else {\n let d = b * b - 4 * a * c;\n if (isNotEqual(d, 0) && d > 0) {\n return [(-b + Math.sqrt(d)) / (2 * a), (-b - Math.sqrt(d)) / (2 * a)];\n } else if (isEqual(d, 0)) {\n return [-b / (2 * a)];\n } else {\n return [];\n }\n }\n }\n function getCurveValue(t, curve) {\n return (curve[0] || 0) + (curve[1] || 0) * t + (curve[2] || 0) * t * t + (curve[3] || 0) * t * t * t;\n }\n function isEqual(number, ref) {\n return Math.abs(number - ref) < 1e-10;\n }\n function isNotEqual(number, ref) {\n return Math.abs(number - ref) >= 1e-10;\n }\n function validateNumber(n) {\n return n > -1e21 && n < 1e21 ? Math.round(n * 1e6) / 1e6 : 0;\n }\n function isArrayLike(v) {\n return typeof v === 'object' && v !== null && typeof v.length === 'number';\n }\n function parseTranform(v) {\n let parser = new StringParser((v || '').trim()),\n result = [1, 0, 0, 1, 0, 0],\n temp;\n while ((temp = parser.match(/^([A-Za-z]+)\\s*[(]([^(]+)[)]/, true))) {\n let func = temp[1],\n nums = [],\n parser2 = new StringParser(temp[2].trim()),\n temp2;\n while ((temp2 = parser2.matchNumber())) {\n nums.push(Number(temp2));\n parser2.matchSeparator();\n }\n if (func === 'matrix' && nums.length === 6) {\n result = multiplyMatrix(result, [nums[0], nums[1], nums[2], nums[3], nums[4], nums[5]]);\n } else if (func === 'translate' && nums.length === 2) {\n result = multiplyMatrix(result, [1, 0, 0, 1, nums[0], nums[1]]);\n } else if (func === 'translate' && nums.length === 1) {\n result = multiplyMatrix(result, [1, 0, 0, 1, nums[0], 0]);\n } else if (func === 'scale' && nums.length === 2) {\n result = multiplyMatrix(result, [nums[0], 0, 0, nums[1], 0, 0]);\n } else if (func === 'scale' && nums.length === 1) {\n result = multiplyMatrix(result, [nums[0], 0, 0, nums[0], 0, 0]);\n } else if (func === 'rotate' && nums.length === 3) {\n let a = (nums[0] * Math.PI) / 180;\n result = multiplyMatrix(\n result,\n [1, 0, 0, 1, nums[1], nums[2]],\n [Math.cos(a), Math.sin(a), -Math.sin(a), Math.cos(a), 0, 0],\n [1, 0, 0, 1, -nums[1], -nums[2]],\n );\n } else if (func === 'rotate' && nums.length === 1) {\n let a = (nums[0] * Math.PI) / 180;\n result = multiplyMatrix(result, [Math.cos(a), Math.sin(a), -Math.sin(a), Math.cos(a), 0, 0]);\n } else if (func === 'skewX' && nums.length === 1) {\n let a = (nums[0] * Math.PI) / 180;\n result = multiplyMatrix(result, [1, 0, Math.tan(a), 1, 0, 0]);\n } else if (func === 'skewY' && nums.length === 1) {\n let a = (nums[0] * Math.PI) / 180;\n result = multiplyMatrix(result, [1, Math.tan(a), 0, 1, 0, 0]);\n } else {\n return;\n }\n parser.matchSeparator();\n }\n if (parser.matchAll()) {\n return;\n }\n return result;\n }\n function parseAspectRatio(aspectRatio, availWidth, availHeight, elemWidth, elemHeight, initAlign) {\n let temp = (aspectRatio || '').trim().match(/^(none)$|^x(Min|Mid|Max)Y(Min|Mid|Max)(?:\\s+(meet|slice))?$/) || [],\n ratioType = temp[1] || temp[4] || 'meet',\n xAlign = temp[2] || 'Mid',\n yAlign = temp[3] || 'Mid',\n scaleX = availWidth / elemWidth,\n scaleY = availHeight / elemHeight,\n dx = { Min: 0, Mid: 0.5, Max: 1 }[xAlign] - (initAlign || 0),\n dy = { Min: 0, Mid: 0.5, Max: 1 }[yAlign] - (initAlign || 0);\n if (ratioType === 'slice') {\n scaleY = scaleX = Math.max(scaleX, scaleY);\n } else if (ratioType === 'meet') {\n scaleY = scaleX = Math.min(scaleX, scaleY);\n }\n return [scaleX, 0, 0, scaleY, dx * (availWidth - elemWidth * scaleX), dy * (availHeight - elemHeight * scaleY)];\n }\n function parseStyleAttr(v) {\n let result = Object.create(null);\n v = (v || '').trim().split(/;/);\n for (let i = 0; i < v.length; i++) {\n let key = (v[i].split(':')[0] || '').trim(),\n value = (v[i].split(':')[1] || '').trim();\n if (key) {\n result[key] = value;\n }\n }\n if (result['marker']) {\n if (!result['marker-start']) {\n result['marker-start'] = result['marker'];\n }\n if (!result['marker-mid']) {\n result['marker-mid'] = result['marker'];\n }\n if (!result['marker-end']) {\n result['marker-end'] = result['marker'];\n }\n }\n if (result['font']) {\n let fontFamily = null,\n fontSize = null,\n fontStyle = 'normal',\n fontWeight = 'normal',\n fontVariant = 'normal';\n let parts = result['font'].split(/\\s+/);\n for (let i = 0; i < parts.length; i++) {\n switch (parts[i]) {\n case 'normal':\n break;\n case 'italic':\n case 'oblique':\n fontStyle = parts[i];\n break;\n case 'small-caps':\n fontVariant = parts[i];\n break;\n case 'bold':\n case 'bolder':\n case 'lighter':\n case '100':\n case '200':\n case '300':\n case '400':\n case '500':\n case '600':\n case '700':\n case '800':\n case '900':\n fontWeight = parts[i];\n break;\n default:\n if (!fontSize) {\n fontSize = parts[i].split('/')[0];\n } else {\n if (!fontFamily) {\n fontFamily = parts[i];\n } else {\n fontFamily += ' ' + parts[i];\n }\n }\n break;\n }\n }\n if (!result['font-style']) {\n result['font-style'] = fontStyle;\n }\n if (!result['font-variant']) {\n result['font-variant'] = fontVariant;\n }\n if (!result['font-weight']) {\n result['font-weight'] = fontWeight;\n }\n if (!result['font-size']) {\n result['font-size'] = fontSize;\n }\n if (!result['font-family']) {\n result['font-family'] = fontFamily;\n }\n }\n return result;\n }\n function parseSelector(v) {\n let parts = v.split(/(?=[.#])/g),\n ids = [],\n classes = [],\n tags = [],\n temp;\n for (let i = 0; i < parts.length; i++) {\n if ((temp = parts[i].match(/^[#]([_A-Za-z0-9-]+)$/))) {\n ids.push(temp[1]);\n } else if ((temp = parts[i].match(/^[.]([_A-Za-z0-9-]+)$/))) {\n classes.push(temp[1]);\n } else if ((temp = parts[i].match(/^([_A-Za-z0-9-]+)$/))) {\n tags.push(temp[1]);\n } else if (parts[i] !== '*') {\n return;\n }\n }\n return {\n tags: tags,\n ids: ids,\n classes: classes,\n specificity: ids.length * 10000 + classes.length * 100 + tags.length,\n };\n }\n function parseStyleSheet(v) {\n const parser = new StringParser(v.trim());\n const rules = [];\n let m;\n\n while ((m = parser.match(/^\\s*([^{}]*?)\\s*\\{([^{}]*?)\\}/, true))) {\n const css = parseStyleAttr(m[2]);\n const selectors = m[1].split(',');\n\n for (let i = 0; i < selectors.length; i++) {\n const selector = parseSelector(selectors[i].trim());\n if (selector) rules.push({ selector, css });\n }\n }\n\n return rules;\n }\n function matchesSelector(elem, selector) {\n if (elem.nodeType !== 1) {\n return false;\n }\n for (let i = 0; i < selector.tags.length; i++) {\n if (selector.tags[i] !== elem.nodeName) {\n return false;\n }\n }\n for (let i = 0; i < selector.ids.length; i++) {\n if (selector.ids[i] !== elem.id) {\n return false;\n }\n }\n for (let i = 0; i < selector.classes.length; i++) {\n if (elem.classList.indexOf(selector.classes[i]) === -1) {\n return false;\n }\n }\n return true;\n }\n function getStyle(elem) {\n let result = Object.create(null);\n let specificities = Object.create(null);\n for (let i = 0; i < styleRules.length; i++) {\n let rule = styleRules[i];\n if (matchesSelector(elem, rule.selector)) {\n for (let key in rule.css) {\n if (!(specificities[key] > rule.selector.specificity)) {\n result[key] = rule.css[key];\n specificities[key] = rule.selector.specificity;\n }\n }\n }\n }\n return result;\n }\n function combineArrays(array1, array2) {\n return array1.concat(array2.slice(array1.length));\n }\n function getAscent(font, size) {\n return (Math.max(font.ascender, (font.bbox[3] || font.bbox.maxY) * (font.scale || 1)) * size) / 1000;\n }\n function getDescent(font, size) {\n return (Math.min(font.descender, (font.bbox[1] || font.bbox.minY) * (font.scale || 1)) * size) / 1000;\n }\n function getXHeight(font, size) {\n return ((font.xHeight || 0.5 * (font.ascender - font.descender)) * size) / 1000;\n }\n function getBaseline(font, size, baseline, shift) {\n let dy1, dy2;\n switch (baseline) {\n case 'middle':\n dy1 = 0.5 * getXHeight(font, size);\n break;\n case 'central':\n dy1 = 0.5 * (getDescent(font, size) + getAscent(font, size));\n break;\n case 'after-edge':\n case 'text-after-edge':\n dy1 = getDescent(font, size);\n break;\n case 'alphabetic':\n case 'auto':\n case 'baseline':\n dy1 = 0;\n break;\n case 'mathematical':\n dy1 = 0.5 * getAscent(font, size);\n break;\n case 'hanging':\n dy1 = 0.8 * getAscent(font, size);\n break;\n case 'before-edge':\n case 'text-before-edge':\n dy1 = getAscent(font, size);\n break;\n default:\n dy1 = 0;\n break;\n }\n switch (shift) {\n case 'baseline':\n dy2 = 0;\n break;\n case 'super':\n dy2 = 0.6 * size;\n break;\n case 'sub':\n dy2 = -0.6 * size;\n break;\n default:\n dy2 = shift;\n break;\n }\n return dy1 - dy2;\n }\n function getTextPos(font, size, text) {\n let encoded = font.encode('' + text),\n hex = encoded[0],\n pos = encoded[1],\n data = [];\n for (let i = 0; i < hex.length; i++) {\n let unicode = font.unicode ? font.unicode[parseInt(hex[i], 16)] : [text.charCodeAt(i)];\n data.push({\n glyph: hex[i],\n unicode: unicode,\n kern: pos[i].advanceWidth - pos[i].xAdvance,\n width: (pos[i].advanceWidth * size) / 1000,\n xOffset: (pos[i].xOffset * size) / 1000,\n yOffset: (pos[i].yOffset * size) / 1000,\n xAdvance: (pos[i].xAdvance * size) / 1000,\n yAdvance: (pos[i].yAdvance * size) / 1000,\n });\n }\n return data;\n }\n function createSVGElement(obj, inherits) {\n switch (obj.nodeName) {\n case 'use':\n return new SvgElemUse(obj, inherits);\n case 'symbol':\n return new SvgElemSymbol(obj, inherits);\n case 'g':\n return new SvgElemGroup(obj, inherits);\n case 'a':\n return new SvgElemLink(obj, inherits);\n case 'svg':\n return new SvgElemSvg(obj, inherits);\n case 'image':\n return new SVGElemImage(obj, inherits);\n case 'rect':\n return new SvgElemRect(obj, inherits);\n case 'circle':\n return new SvgElemCircle(obj, inherits);\n case 'ellipse':\n return new SvgElemEllipse(obj, inherits);\n case 'line':\n return new SvgElemLine(obj, inherits);\n case 'polyline':\n return new SvgElemPolyline(obj, inherits);\n case 'polygon':\n return new SvgElemPolygon(obj, inherits);\n case 'path':\n return new SvgElemPath(obj, inherits);\n case 'text':\n return new SvgElemText(obj, inherits);\n case 'tspan':\n return new SvgElemTspan(obj, inherits);\n case 'textPath':\n return new SvgElemTextPath(obj, inherits);\n case '#text':\n case '#cdata-section':\n return new SvgElemTextNode(obj, inherits);\n default:\n return new SvgElem(obj, inherits);\n }\n }\n\n /* Utilities for blend modes */\n function getObjectStyles(obj) {\n if (!obj.attributes.style) return {};\n\n const styles = obj.attributes.style.split(';');\n return styles.reduce((acc, style) => {\n const [key, value] = style.split(':');\n if (!key) {\n return acc;\n }\n acc[key.trim()] = value.trim();\n return acc;\n }, {});\n }\n\n // pdf BlendModes https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdf_reference_archive/blend_modes.pdf\n function parseCSSBlendMode(blendMode) {\n return blendMode\n .split('-')\n .map((string) => string.charAt(0).toUpperCase() + string.slice(1))\n .join('');\n }\n\n var StringParser = function (str) {\n this.match = function (exp, all) {\n let temp = str.match(exp);\n if (!temp || temp.index !== 0) {\n return;\n }\n str = str.substring(temp[0].length);\n return all ? temp : temp[0];\n };\n this.matchSeparator = function () {\n return this.match(/^(?:\\s*,\\s*|\\s*|)/);\n };\n this.matchSpace = function () {\n return this.match(/^(?:\\s*)/);\n };\n this.matchLengthUnit = function () {\n return this.match(/^(?:px|pt|cm|mm|in|pc|em|ex|%|)/);\n };\n this.matchNumber = function () {\n return this.match(/^(?:[-+]?(?:[0-9]+[.][0-9]+|[0-9]+[.]|[.][0-9]+|[0-9]+)(?:[eE][-+]?[0-9]+)?)/);\n };\n this.matchAll = function () {\n return this.match(/^[\\s\\S]+/);\n };\n };\n\n var BezierSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\n let divisions = 6 * precision;\n let equationX = [p1x, -3 * p1x + 3 * c1x, 3 * p1x - 6 * c1x + 3 * c2x, -p1x + 3 * c1x - 3 * c2x + p2x];\n let equationY = [p1y, -3 * p1y + 3 * c1y, 3 * p1y - 6 * c1y + 3 * c2y, -p1y + 3 * c1y - 3 * c2y + p2y];\n let derivativeX = [-3 * p1x + 3 * c1x, 6 * p1x - 12 * c1x + 6 * c2x, -3 * p1x + 9 * c1x - 9 * c2x + 3 * p2x];\n let derivativeY = [-3 * p1y + 3 * c1y, 6 * p1y - 12 * c1y + 6 * c2y, -3 * p1y + 9 * c1y - 9 * c2y + 3 * p2y];\n let lengthMap = [0];\n for (let i = 1; i <= divisions; i++) {\n let t = (i - 0.5) / divisions;\n let dx = getCurveValue(t, derivativeX) / divisions,\n dy = getCurveValue(t, derivativeY) / divisions,\n l = Math.sqrt(dx * dx + dy * dy);\n lengthMap[i] = lengthMap[i - 1] + l;\n }\n this.totalLength = lengthMap[divisions];\n this.startPoint = [\n p1x,\n p1y,\n isEqual(p1x, c1x) && isEqual(p1y, c1y) ? Math.atan2(c2y - c1y, c2x - c1x) : Math.atan2(c1y - p1y, c1x - p1x),\n ];\n this.endPoint = [\n p2x,\n p2y,\n isEqual(c2x, p2x) && isEqual(c2y, p2y) ? Math.atan2(c2y - c1y, c2x - c1x) : Math.atan2(p2y - c2y, p2x - c2x),\n ];\n this.getBoundingBox = function () {\n let temp;\n let minX = getCurveValue(0, equationX),\n minY = getCurveValue(0, equationY),\n maxX = getCurveValue(1, equationX),\n maxY = getCurveValue(1, equationY);\n if (minX > maxX) {\n temp = maxX;\n maxX = minX;\n minX = temp;\n }\n if (minY > maxY) {\n temp = maxY;\n maxY = minY;\n minY = temp;\n }\n let rootsX = solveEquation(derivativeX);\n for (let i = 0; i < rootsX.length; i++) {\n if (rootsX[i] >= 0 && rootsX[i] <= 1) {\n let x = getCurveValue(rootsX[i], equationX);\n if (x < minX) {\n minX = x;\n }\n if (x > maxX) {\n maxX = x;\n }\n }\n }\n let rootsY = solveEquation(derivativeY);\n for (let i = 0; i < rootsY.length; i++) {\n if (rootsY[i] >= 0 && rootsY[i] <= 1) {\n let y = getCurveValue(rootsY[i], equationY);\n if (y < minY) {\n minY = y;\n }\n if (y > maxY) {\n maxY = y;\n }\n }\n }\n return [minX, minY, maxX, maxY];\n };\n this.getPointAtLength = function (l) {\n if (isEqual(l, 0)) {\n return this.startPoint;\n }\n if (isEqual(l, this.totalLength)) {\n return this.endPoint;\n }\n if (l < 0 || l > this.totalLength) {\n return;\n }\n for (let i = 1; i <= divisions; i++) {\n let l1 = lengthMap[i - 1],\n l2 = lengthMap[i];\n if (l1 <= l && l <= l2) {\n let t = (i - (l2 - l) / (l2 - l1)) / divisions,\n x = getCurveValue(t, equationX),\n y = getCurveValue(t, equationY),\n dx = getCurveValue(t, derivativeX),\n dy = getCurveValue(t, derivativeY);\n return [x, y, Math.atan2(dy, dx)];\n }\n }\n };\n };\n\n var LineSegment = function (p1x, p1y, p2x, p2y) {\n this.totalLength = Math.sqrt((p2x - p1x) * (p2x - p1x) + (p2y - p1y) * (p2y - p1y));\n this.startPoint = [p1x, p1y, Math.atan2(p2y - p1y, p2x - p1x)];\n this.endPoint = [p2x, p2y, Math.atan2(p2y - p1y, p2x - p1x)];\n this.getBoundingBox = function () {\n return [\n Math.min(this.startPoint[0], this.endPoint[0]),\n Math.min(this.startPoint[1], this.endPoint[1]),\n Math.max(this.startPoint[0], this.endPoint[0]),\n Math.max(this.startPoint[1], this.endPoint[1]),\n ];\n };\n this.getPointAtLength = function (l) {\n if (l >= 0 && l <= this.totalLength) {\n let r = l / this.totalLength || 0,\n x = this.startPoint[0] + r * (this.endPoint[0] - this.startPoint[0]),\n y = this.startPoint[1] + r * (this.endPoint[1] - this.startPoint[1]);\n return [x, y, this.startPoint[2]];\n }\n };\n };\n\n var SvgShape = function () {\n this.pathCommands = [];\n this.pathSegments = [];\n this.startPoint = null;\n this.endPoint = null;\n this.totalLength = 0;\n let startX = 0,\n startY = 0,\n currX = 0,\n currY = 0,\n lastCom,\n lastCtrlX,\n lastCtrlY;\n this.move = function (x, y) {\n startX = currX = x;\n startY = currY = y;\n return null;\n };\n this.line = function (x, y) {\n let segment = new LineSegment(currX, currY, x, y);\n currX = x;\n currY = y;\n return segment;\n };\n this.curve = function (c1x, c1y, c2x, c2y, x, y) {\n let segment = new BezierSegment(currX, currY, c1x, c1y, c2x, c2y, x, y);\n currX = x;\n currY = y;\n return segment;\n };\n this.close = function () {\n let segment = new LineSegment(currX, currY, startX, startY);\n currX = startX;\n currY = startY;\n return segment;\n };\n this.addCommand = function (data) {\n this.pathCommands.push(data);\n let segment = this[data[0]].apply(this, data.slice(3));\n if (segment) {\n segment.hasStart = data[1];\n segment.hasEnd = data[2];\n this.startPoint = this.startPoint || segment.startPoint;\n this.endPoint = segment.endPoint;\n this.pathSegments.push(segment);\n this.totalLength += segment.totalLength;\n }\n };\n this.M = function (x, y) {\n this.addCommand(['move', true, true, x, y]);\n lastCom = 'M';\n return this;\n };\n this.m = function (x, y) {\n return this.M(currX + x, currY + y);\n };\n this.Z = this.z = function () {\n this.addCommand(['close', true, true]);\n lastCom = 'Z';\n return this;\n };\n this.L = function (x, y) {\n this.addCommand(['line', true, true, x, y]);\n lastCom = 'L';\n return this;\n };\n this.l = function (x, y) {\n return this.L(currX + x, currY + y);\n };\n this.H = function (x) {\n return this.L(x, currY);\n };\n this.h = function (x) {\n return this.L(currX + x, currY);\n };\n this.V = function (y) {\n return this.L(currX, y);\n };\n this.v = function (y) {\n return this.L(currX, currY + y);\n };\n this.C = function (c1x, c1y, c2x, c2y, x, y) {\n this.addCommand(['curve', true, true, c1x, c1y, c2x, c2y, x, y]);\n lastCom = 'C';\n lastCtrlX = c2x;\n lastCtrlY = c2y;\n return this;\n };\n this.c = function (c1x, c1y, c2x, c2y, x, y) {\n return this.C(currX + c1x, currY + c1y, currX + c2x, currY + c2y, currX + x, currY + y);\n };\n this.S = function (c1x, c1y, x, y) {\n return this.C(\n currX + (lastCom === 'C' ? currX - lastCtrlX : 0),\n currY + (lastCom === 'C' ? currY - lastCtrlY : 0),\n c1x,\n c1y,\n x,\n y,\n );\n };\n this.s = function (c1x, c1y, x, y) {\n return this.C(\n currX + (lastCom === 'C' ? currX - lastCtrlX : 0),\n currY + (lastCom === 'C' ? currY - lastCtrlY : 0),\n currX + c1x,\n currY + c1y,\n currX + x,\n currY + y,\n );\n };\n this.Q = function (cx, cy, x, y) {\n let c1x = currX + (2 / 3) * (cx - currX),\n c1y = currY + (2 / 3) * (cy - currY),\n c2x = x + (2 / 3) * (cx - x),\n c2y = y + (2 / 3) * (cy - y);\n this.addCommand(['curve', true, true, c1x, c1y, c2x, c2y, x, y]);\n lastCom = 'Q';\n lastCtrlX = cx;\n lastCtrlY = cy;\n return this;\n };\n this.q = function (c1x, c1y, x, y) {\n return this.Q(currX + c1x, currY + c1y, currX + x, currY + y);\n };\n this.T = function (x, y) {\n return this.Q(\n currX + (lastCom === 'Q' ? currX - lastCtrlX : 0),\n currY + (lastCom === 'Q' ? currY - lastCtrlY : 0),\n x,\n y,\n );\n };\n this.t = function (x, y) {\n return this.Q(\n currX + (lastCom === 'Q' ? currX - lastCtrlX : 0),\n currY + (lastCom === 'Q' ? currY - lastCtrlY : 0),\n currX + x,\n currY + y,\n );\n };\n this.A = function (rx, ry, fi, fa, fs, x, y) {\n if (isEqual(rx, 0) || isEqual(ry, 0)) {\n this.addCommand(['line', true, true, x, y]);\n } else {\n fi = fi * (Math.PI / 180);\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n fa = 1 * !!fa;\n fs = 1 * !!fs;\n let x1 = (Math.cos(fi) * (currX - x)) / 2 + (Math.sin(fi) * (currY - y)) / 2,\n y1 = (Math.cos(fi) * (currY - y)) / 2 - (Math.sin(fi) * (currX - x)) / 2,\n lambda = (x1 * x1) / (rx * rx) + (y1 * y1) / (ry * ry);\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n let r = Math.sqrt(\n Math.max(0, rx * rx * ry * ry - rx * rx * y1 * y1 - ry * ry * x1 * x1) /\n (rx * rx * y1 * y1 + ry * ry * x1 * x1),\n ),\n x2 = ((fa === fs ? -1 : 1) * r * rx * y1) / ry,\n y2 = ((fa === fs ? 1 : -1) * r * ry * x1) / rx;\n let cx = Math.cos(fi) * x2 - Math.sin(fi) * y2 + (currX + x) / 2,\n cy = Math.sin(fi) * x2 + Math.cos(fi) * y2 + (currY + y) / 2,\n th1 = Math.atan2((y1 - y2) / ry, (x1 - x2) / rx),\n th2 = Math.atan2((-y1 - y2) / ry, (-x1 - x2) / rx);\n if (fs === 0 && th2 - th1 > 0) {\n th2 -= 2 * Math.PI;\n } else if (fs === 1 && th2 - th1 < 0) {\n th2 += 2 * Math.PI;\n }\n let segms = Math.ceil(Math.abs(th2 - th1) / (Math.PI / precision));\n for (let i = 0; i < segms; i++) {\n let th3 = th1 + (i * (th2 - th1)) / segms,\n th4 = th1 + ((i + 1) * (th2 - th1)) / segms,\n t = (4 / 3) * Math.tan((th4 - th3) / 4);\n let c1x =\n cx +\n Math.cos(fi) * rx * (Math.cos(th3) - t * Math.sin(th3)) -\n Math.sin(fi) * ry * (Math.sin(th3) + t * Math.cos(th3)),\n c1y =\n cy +\n Math.sin(fi) * rx * (Math.cos(th3) - t * Math.sin(th3)) +\n Math.cos(fi) * ry * (Math.sin(th3) + t * Math.cos(th3)),\n c2x =\n cx +\n Math.cos(fi) * rx * (Math.cos(th4) + t * Math.sin(th4)) -\n Math.sin(fi) * ry * (Math.sin(th4) - t * Math.cos(th4)),\n c2y =\n cy +\n Math.sin(fi) * rx * (Math.cos(th4) + t * Math.sin(th4)) +\n Math.cos(fi) * ry * (Math.sin(th4) - t * Math.cos(th4)),\n endX = cx + Math.cos(fi) * rx * Math.cos(th4) - Math.sin(fi) * ry * Math.sin(th4),\n endY = cy + Math.sin(fi) * rx * Math.cos(th4) + Math.cos(fi) * ry * Math.sin(th4);\n this.addCommand(['curve', i === 0, i === segms - 1, c1x, c1y, c2x, c2y, endX, endY]);\n }\n }\n lastCom = 'A';\n return this;\n };\n this.a = function (rx, ry, fi, fa, fs, x, y) {\n return this.A(rx, ry, fi, fa, fs, currX + x, currY + y);\n };\n this.path = function (d) {\n let command,\n value,\n temp,\n parser = new StringParser((d || '').trim());\n while ((command = parser.match(/^[astvzqmhlcASTVZQMHLC]/))) {\n parser.matchSeparator();\n let values = [];\n while ((value = PathFlags[command + values.length] ? parser.match(/^[01]/) : parser.matchNumber())) {\n parser.matchSeparator();\n if (values.length === PathArguments[command]) {\n this[command].apply(this, values);\n values = [];\n if (command === 'M') {\n command = 'L';\n } else if (command === 'm') {\n command = 'l';\n }\n }\n values.push(Number(value));\n }\n if (values.length === PathArguments[command]) {\n this[command].apply(this, values);\n } else {\n warningCallback('SvgPath: command ' + command + ' with ' + values.length + ' numbers');\n return;\n }\n }\n if ((temp = parser.matchAll())) {\n warningCallback('SvgPath: unexpected string ' + temp);\n }\n return this;\n };\n this.getBoundingBox = function () {\n let bbox = [Infinity, Infinity, -Infinity, -Infinity];\n function addBounds(bbox1) {\n if (bbox1[0] < bbox[0]) {\n bbox[0] = bbox1[0];\n }\n if (bbox1[2] > bbox[2]) {\n bbox[2] = bbox1[2];\n }\n if (bbox1[1] < bbox[1]) {\n bbox[1] = bbox1[1];\n }\n if (bbox1[3] > bbox[3]) {\n bbox[3] = bbox1[3];\n }\n }\n for (let i = 0; i < this.pathSegments.length; i++) {\n addBounds(this.pathSegments[i].getBoundingBox());\n }\n if (bbox[0] === Infinity) {\n bbox[0] = 0;\n }\n if (bbox[1] === Infinity) {\n bbox[1] = 0;\n }\n if (bbox[2] === -Infinity) {\n bbox[2] = 0;\n }\n if (bbox[3] === -Infinity) {\n bbox[3] = 0;\n }\n return bbox;\n };\n this.getPointAtLength = function (l) {\n if (l >= 0 && l <= this.totalLength) {\n let temp;\n for (let i = 0; i < this.pathSegments.length; i++) {\n if ((temp = this.pathSegments[i].getPointAtLength(l))) {\n return temp;\n }\n l -= this.pathSegments[i].totalLength;\n }\n return this.endPoint;\n }\n };\n this.transform = function (m) {\n this.pathSegments = [];\n this.startPoint = null;\n this.endPoint = null;\n this.totalLength = 0;\n for (let i = 0; i < this.pathCommands.length; i++) {\n let data = this.pathCommands.shift();\n for (let j = 3; j < data.length; j += 2) {\n let p = transformPoint([data[j], data[j + 1]], m);\n data[j] = p[0];\n data[j + 1] = p[1];\n }\n this.addCommand(data);\n }\n return this;\n };\n this.mergeShape = function (shape) {\n for (let i = 0; i < shape.pathCommands.length; i++) {\n this.addCommand(shape.pathCommands[i].slice());\n }\n return this;\n };\n this.clone = function () {\n return new SvgShape().mergeShape(this);\n };\n this.insertInDocument = function () {\n for (let i = 0; i < this.pathCommands.length; i++) {\n let command = this.pathCommands[i][0],\n values = this.pathCommands[i].slice(3);\n switch (command) {\n case 'move':\n doc.moveTo(values[0], values[1]);\n break;\n case 'line':\n doc.lineTo(values[0], values[1]);\n break;\n case 'curve':\n doc.bezierCurveTo(values[0], values[1], values[2], values[3], values[4], values[5]);\n break;\n case 'close':\n doc.closePath();\n break;\n }\n }\n };\n this.getSubPaths = function () {\n let subPaths = [],\n shape = new SvgShape();\n for (let i = 0; i < this.pathCommands.length; i++) {\n let data = this.pathCommands[i],\n command = this.pathCommands[i][0];\n if (command === 'move' && i !== 0) {\n subPaths.push(shape);\n shape = new SvgShape();\n }\n shape.addCommand(data);\n }\n subPaths.push(shape);\n return subPaths;\n };\n this.getMarkers = function () {\n let markers = [],\n subPaths = this.getSubPaths();\n for (let i = 0; i < subPaths.length; i++) {\n let subPath = subPaths[i],\n subPathMarkers = [];\n for (let j = 0; j < subPath.pathSegments.length; j++) {\n let segment = subPath.pathSegments[j];\n if (isNotEqual(segment.totalLength, 0) || j === 0 || j === subPath.pathSegments.length - 1) {\n if (segment.hasStart) {\n let startMarker = segment.getPointAtLength(0),\n prevEndMarker = subPathMarkers.pop();\n if (prevEndMarker) {\n startMarker[2] = 0.5 * (prevEndMarker[2] + startMarker[2]);\n }\n subPathMarkers.push(startMarker);\n }\n if (segment.hasEnd) {\n let endMarker = segment.getPointAtLength(segment.totalLength);\n subPathMarkers.push(endMarker);\n }\n }\n }\n markers = markers.concat(subPathMarkers);\n }\n return markers;\n };\n };\n\n var SvgElem = function (obj, inherits) {\n let styleCache = Object.create(null);\n let childrenCache = null;\n this.name = obj.nodeName;\n this.isOuterElement = obj === svg || !obj.parentNode;\n this.inherits = inherits || (!this.isOuterElement ? createSVGElement(obj.parentNode, null) : null);\n this.stack = this.inherits ? this.inherits.stack.concat(obj) : [obj];\n this.style = parseStyleAttr(typeof obj.getAttribute === 'function' && obj.getAttribute('style'));\n this.css = useCSS ? getComputedStyle(obj) : getStyle(obj);\n this.allowedChildren = [];\n this.attr = function (key) {\n if (typeof obj.getAttribute === 'function') {\n return obj.getAttribute(key);\n }\n };\n this.resolveUrl = function (value) {\n let temp =\n (value || '').match(/^\\s*(?:url\\(\"(.*)#(.*)\"\\)|url\\('(.*)#(.*)'\\)|url\\((.*)#(.*)\\)|(.*)#(.*))\\s*$/) || [];\n let file = temp[1] || temp[3] || temp[5] || temp[7],\n id = temp[2] || temp[4] || temp[6] || temp[8];\n if (id) {\n if (!file) {\n let svgObj = svg.getElementById(id);\n if (svgObj) {\n if (this.stack.indexOf(svgObj) === -1) {\n return svgObj;\n } else {\n warningCallback('SVGtoPDF: loop of circular references for id \"' + id + '\"');\n return;\n }\n }\n }\n if (documentCallback) {\n let svgs = documentCache[file];\n if (!svgs) {\n svgs = documentCallback(file);\n if (!isArrayLike(svgs)) {\n svgs = [svgs];\n }\n for (let i = 0; i < svgs.length; i++) {\n if (typeof svgs[i] === 'string') {\n svgs[i] = parseXml(svgs[i]);\n }\n }\n documentCache[file] = svgs;\n }\n for (let i = 0; i < svgs.length; i++) {\n let svgObj = svgs[i].getElementById(id);\n if (svgObj) {\n if (this.stack.indexOf(svgObj) === -1) {\n return svgObj;\n } else {\n warningCallback('SVGtoPDF: loop of circular references for id \"' + file + '#' + id + '\"');\n return;\n }\n }\n }\n }\n }\n };\n this.computeUnits = function (value, unit, percent, isFontSize) {\n if (unit === '%') {\n return (parseFloat(value) / 100) * (isFontSize || percent != null ? percent : this.getViewport());\n } else if (unit === 'ex' || unit === 'em') {\n return value * { em: 1, ex: 0.5 }[unit] * (isFontSize ? percent : this.get('font-size'));\n } else {\n return (\n value *\n {\n '': 1,\n px: 1,\n pt: 96 / 72,\n cm: 96 / 2.54,\n mm: 96 / 25.4,\n in: 96,\n pc: 96 / 6,\n }[unit]\n );\n }\n };\n this.computeLength = function (value, percent, initial, isFontSize) {\n let parser = new StringParser((value || '').trim()),\n temp1,\n temp2;\n if (\n typeof (temp1 = parser.matchNumber()) === 'string' &&\n typeof (temp2 = parser.matchLengthUnit()) === 'string' &&\n !parser.matchAll()\n ) {\n return this.computeUnits(temp1, temp2, percent, isFontSize);\n }\n return initial;\n };\n this.computeLengthList = function (value, percent, strict) {\n let parser = new StringParser((value || '').trim()),\n result = [],\n temp1,\n temp2;\n while (\n typeof (temp1 = parser.matchNumber()) === 'string' &&\n typeof (temp2 = parser.matchLengthUnit()) === 'string'\n ) {\n result.push(this.computeUnits(temp1, temp2, percent));\n parser.matchSeparator();\n }\n if (strict && parser.matchAll()) {\n return;\n }\n return result;\n };\n this.getLength = function (key, percent, initial) {\n return this.computeLength(this.attr(key), percent, initial);\n };\n this.getLengthList = function (key, percent) {\n return this.computeLengthList(this.attr(key), percent);\n };\n this.getUrl = function (key) {\n return this.resolveUrl(this.attr(key));\n };\n this.getNumberList = function (key) {\n let parser = new StringParser((this.attr(key) || '').trim()),\n result = [],\n temp;\n while ((temp = parser.matchNumber())) {\n result.push(Number(temp));\n parser.matchSeparator();\n }\n result.error = parser.matchAll();\n return result;\n };\n this.getViewbox = function (key, initial) {\n let viewBox = this.getNumberList(key);\n if (viewBox.length === 4 && viewBox[2] >= 0 && viewBox[3] >= 0) {\n return viewBox;\n }\n return initial;\n };\n this.getPercent = function (key, initial) {\n const value = this.attr(key);\n const parser = new StringParser((value || '').trim());\n let number = parser.matchNumber();\n if (!number) {\n return initial;\n }\n if (parser.match('%')) {\n number *= 0.01;\n }\n if (parser.matchAll()) {\n return initial;\n }\n return Math.max(0, Math.min(1, number));\n };\n this.chooseValue = function (/*args*/) {\n for (let i = 0; i < arguments.length; i++) {\n if (arguments[i] != null && arguments[i] === arguments[i]) {\n return arguments[i];\n }\n }\n return arguments[arguments.length - 1];\n };\n this.get = function (key) {\n if (styleCache[key] !== undefined) {\n return styleCache[key];\n }\n let keyInfo = Properties[key] || {},\n value,\n result;\n for (let i = 0; i < 3; i++) {\n switch (i) {\n case 0:\n if (key !== 'transform') {\n // the CSS transform behaves strangely\n value = this.css[keyInfo.css || key];\n }\n break;\n case 1:\n value = this.style[key];\n break;\n case 2:\n value = this.attr(key);\n break;\n }\n if (value === 'inherit') {\n result = this.inherits ? this.inherits.get(key) : keyInfo.initial;\n if (result != null) {\n return (styleCache[key] = result);\n }\n }\n if (keyInfo.values != null) {\n result = keyInfo.values[value];\n if (result != null) {\n return (styleCache[key] = result);\n }\n }\n if (value != null) {\n let parsed;\n switch (key) {\n case 'font-size':\n result = this.computeLength(\n value,\n this.inherits ? this.inherits.get(key) : keyInfo.initial,\n undefined,\n true,\n );\n break;\n case 'baseline-shift':\n result = this.computeLength(value, this.get('font-size'));\n break;\n case 'font-family':\n result = value || undefined;\n break;\n case 'opacity':\n case 'stroke-opacity':\n case 'fill-opacity':\n case 'stop-opacity':\n parsed = parseFloat(value);\n if (!isNaN(parsed)) {\n result = Math.max(0, Math.min(1, parsed));\n }\n break;\n case 'transform':\n result = parseTranform(value);\n break;\n case 'stroke-dasharray':\n if (value === 'none') {\n result = [];\n } else if ((parsed = this.computeLengthList(value, this.getViewport(), true))) {\n let sum = 0,\n error = false;\n for (let j = 0; j < parsed.length; j++) {\n if (parsed[j] < 0) {\n error = true;\n }\n sum += parsed[j];\n }\n if (!error) {\n if (parsed.length % 2 === 1) {\n parsed = parsed.concat(parsed);\n }\n result = sum === 0 ? [] : parsed;\n }\n }\n break;\n case 'color':\n if (value === 'none' || value === 'transparent') {\n result = 'none';\n } else {\n result = parseColor(value);\n }\n break;\n case 'fill':\n case 'stroke':\n if (value === 'none' || value === 'transparent') {\n result = 'none';\n } else if (value === 'currentColor') {\n result = this.get('color');\n } else if ((parsed = parseColor(value))) {\n return parsed;\n } else if ((parsed = (value || '').split(' '))) {\n let object = this.resolveUrl(parsed[0]),\n fallbackColor = parseColor(parsed[1]);\n if (object == null) {\n result = fallbackColor;\n } else if (object.nodeName === 'linearGradient' || object.nodeName === 'radialGradient') {\n result = new SvgElemGradient(object, null, fallbackColor);\n } else if (object.nodeName === 'pattern') {\n result = new SvgElemPattern(object, null, fallbackColor);\n } else {\n result = fallbackColor;\n }\n }\n break;\n case 'stop-color':\n if (value === 'none' || value === 'transparent') {\n result = 'none';\n } else if (value === 'currentColor') {\n result = this.get('color');\n } else {\n result = parseColor(value);\n }\n break;\n case 'marker-start':\n case 'marker-mid':\n case 'marker-end':\n case 'clip-path':\n case 'mask':\n if (value === 'none') {\n result = 'none';\n } else {\n result = this.resolveUrl(value);\n }\n break;\n case 'stroke-width':\n parsed = this.computeLength(value, this.getViewport());\n if (parsed != null && parsed >= 0) {\n result = parsed;\n }\n break;\n case 'stroke-miterlimit':\n parsed = parseFloat(value);\n if (parsed != null && parsed >= 1) {\n result = parsed;\n }\n break;\n case 'word-spacing':\n case 'letter-spacing':\n result = this.computeLength(value, this.getViewport());\n break;\n case 'stroke-dashoffset':\n result = this.computeLength(value, this.getViewport());\n if (result != null) {\n if (result < 0) {\n // fix for crbug.com/660850\n let dasharray = this.get('stroke-dasharray');\n for (let j = 0; j < dasharray.length; j++) {\n result += dasharray[j];\n }\n }\n }\n break;\n }\n if (result != null) {\n return (styleCache[key] = result);\n }\n }\n }\n return (styleCache[key] = keyInfo.inherit && this.inherits ? this.inherits.get(key) : keyInfo.initial);\n };\n this.getChildren = function () {\n if (childrenCache != null) {\n return childrenCache;\n }\n let children = [];\n for (let i = 0; i < obj.childNodes.length; i++) {\n let child = obj.childNodes[i];\n if (!child.error && this.allowedChildren.indexOf(child.nodeName) !== -1) {\n children.push(createSVGElement(child, this));\n }\n }\n return (childrenCache = children);\n };\n this.getParentVWidth = function () {\n return this.inherits ? this.inherits.getVWidth() : viewportWidth;\n };\n this.getParentVHeight = function () {\n return this.inherits ? this.inherits.getVHeight() : viewportHeight;\n };\n this.getParentViewport = function () {\n return Math.sqrt(\n 0.5 * this.getParentVWidth() * this.getParentVWidth() + 0.5 * this.getParentVHeight() * this.getParentVHeight(),\n );\n };\n this.getVWidth = function () {\n return this.getParentVWidth();\n };\n this.getVHeight = function () {\n return this.getParentVHeight();\n };\n this.getViewport = function () {\n return Math.sqrt(0.5 * this.getVWidth() * this.getVWidth() + 0.5 * this.getVHeight() * this.getVHeight());\n };\n this.getBoundingBox = function () {\n let shape = this.getBoundingShape();\n return shape.getBoundingBox();\n };\n };\n\n var SvgElemStylable = function (obj, inherits) {\n SvgElem.call(this, obj, inherits);\n this.transform = function () {\n doc.transform.apply(doc, this.getTransformation());\n };\n this.clip = function () {\n if (this.get('clip-path') !== 'none') {\n let clipPath = new SvgElemClipPath(this.get('clip-path'), null);\n clipPath.useMask(this.getBoundingBox());\n return true;\n }\n };\n this.mask = function () {\n if (this.get('mask') !== 'none') {\n let mask = new SvgElemMask(this.get('mask'), null);\n mask.useMask(this.getBoundingBox());\n return true;\n }\n };\n this.getFill = function (isClip, isMask) {\n let opacity = this.get('opacity'),\n fill = this.get('fill'),\n fillOpacity = this.get('fill-opacity');\n if (isClip) {\n return DefaultColors.white;\n }\n if (fill !== 'none' && opacity && fillOpacity) {\n if (fill instanceof SvgElemGradient || fill instanceof SvgElemPattern) {\n return fill.getPaint(this.getBoundingBox(), fillOpacity * opacity, isClip, isMask);\n }\n return opacityToColor(fill, fillOpacity * opacity, isMask);\n }\n };\n this.getStroke = function (isClip, isMask) {\n let opacity = this.get('opacity'),\n stroke = this.get('stroke'),\n strokeOpacity = this.get('stroke-opacity');\n if (isClip || isEqual(this.get('stroke-width'), 0)) {\n return;\n }\n if (stroke !== 'none' && opacity && strokeOpacity) {\n if (stroke instanceof SvgElemGradient || stroke instanceof SvgElemPattern) {\n return stroke.getPaint(this.getBoundingBox(), strokeOpacity * opacity, isClip, isMask);\n }\n return opacityToColor(stroke, strokeOpacity * opacity, isMask);\n }\n };\n };\n\n var SvgElemHasChildren = function (obj, inherits) {\n SvgElemStylable.call(this, obj, inherits);\n this.allowedChildren = [\n 'use',\n 'g',\n 'a',\n 'svg',\n 'image',\n 'rect',\n 'circle',\n 'ellipse',\n 'line',\n 'polyline',\n 'polygon',\n 'path',\n 'text',\n ];\n this.getBoundingShape = function () {\n let shape = new SvgShape(),\n children = this.getChildren();\n for (let i = 0; i < children.length; i++) {\n if (children[i].get('display') !== 'none') {\n if (typeof children[i].getBoundingShape === 'function') {\n let childShape = children[i].getBoundingShape().clone();\n if (typeof children[i].getTransformation === 'function') {\n childShape.transform(children[i].getTransformation());\n }\n shape.mergeShape(childShape);\n }\n }\n }\n return shape;\n };\n this.drawChildren = function (isClip, isMask) {\n let children = this.getChildren();\n for (let i = 0; i < children.length; i++) {\n if (children[i].get('display') !== 'none') {\n if (typeof children[i].drawInDocument === 'function') {\n children[i].drawInDocument(isClip, isMask);\n }\n }\n }\n };\n };\n\n var SvgElemContainer = function (obj, inherits) {\n SvgElemHasChildren.call(this, obj, inherits);\n this.drawContent = function (isClip, isMask, blendMode) {\n this.transform();\n let clipped = this.clip(),\n masked = this.mask(),\n group;\n if ((this.get('opacity') < 1 || clipped || masked || blendMode) && !isClip) {\n group = docBeginGroup(getPageBBox());\n }\n this.drawChildren(isClip, isMask);\n if (group) {\n docEndGroup(group);\n if (blendMode) {\n applyBlendMode(group, blendMode);\n }\n doc.fillOpacity(this.get('opacity'));\n docInsertGroup(group);\n }\n };\n };\n\n var SvgElemUse = function (obj, inherits) {\n SvgElemContainer.call(this, obj, inherits);\n let x = this.getLength('x', this.getVWidth(), 0),\n y = this.getLength('y', this.getVHeight(), 0),\n child = this.getUrl('href') || this.getUrl('xlink:href');\n if (child) {\n child = createSVGElement(child, this);\n }\n this.getChildren = function () {\n return child ? [child] : [];\n };\n this.drawInDocument = function (isClip, isMask) {\n doc.save();\n this.drawContent(isClip, isMask);\n doc.restore();\n };\n this.getTransformation = function () {\n return multiplyMatrix(this.get('transform'), [1, 0, 0, 1, x, y]);\n };\n };\n\n var SvgElemSymbol = function (obj, inherits) {\n SvgElemContainer.call(this, obj, inherits);\n let width = this.getLength('width', this.getParentVWidth(), this.getParentVWidth()),\n height = this.getLength('height', this.getParentVHeight(), this.getParentVHeight());\n if (inherits instanceof SvgElemUse) {\n width = inherits.getLength('width', inherits.getParentVWidth(), width);\n height = inherits.getLength('height', inherits.getParentVHeight(), height);\n }\n let aspectRatio = (this.attr('preserveAspectRatio') || '').trim(),\n viewBox = this.getViewbox('viewBox', [0, 0, width, height]);\n this.getVWidth = function () {\n return viewBox[2];\n };\n this.getVHeight = function () {\n return viewBox[3];\n };\n this.drawInDocument = function (isClip, isMask) {\n doc.save();\n this.drawContent(isClip, isMask);\n doc.restore();\n };\n this.getTransformation = function () {\n return multiplyMatrix(parseAspectRatio(aspectRatio, width, height, viewBox[2], viewBox[3]), [\n 1,\n 0,\n 0,\n 1,\n -viewBox[0],\n -viewBox[1],\n ]);\n };\n };\n\n var SvgElemGroup = function (obj, inherits) {\n SvgElemContainer.call(this, obj, inherits);\n this.drawInDocument = function (isClip, isMask) {\n doc.save();\n if (this.link && !isClip && !isMask) {\n this.addLink();\n }\n\n // parse object styles and apply blendMode\n const styles = getObjectStyles(obj);\n if (styles['mix-blend-mode']) {\n this.drawContent(isClip, isMask, parseCSSBlendMode(styles['mix-blend-mode']));\n } else {\n this.drawContent(isClip, isMask);\n }\n\n doc.restore();\n };\n this.getTransformation = function () {\n return this.get('transform');\n };\n };\n\n var SvgElemLink = function (obj, inherits) {\n if (inherits && inherits.isText) {\n SvgElemTspan.call(this, obj, inherits);\n this.allowedChildren = ['textPath', 'tspan', '#text', '#cdata-section', 'a'];\n } else {\n SvgElemGroup.call(this, obj, inherits);\n }\n this.link = this.attr('href') || this.attr('xlink:href');\n this.addLink = function () {\n if (this.link.match(/^(?:[a-z][a-z0-9+.-]*:|\\/\\/)?/i) && this.getChildren().length) {\n let bbox = this.getBoundingShape().transform(getGlobalMatrix()).getBoundingBox();\n docInsertLink(bbox[0], bbox[1], bbox[2], bbox[3], this.link);\n }\n };\n };\n\n var SvgElemSvg = function (obj, inherits) {\n SvgElemContainer.call(this, obj, inherits);\n let width = this.getLength('width', this.getParentVWidth(), this.getParentVWidth()),\n height = this.getLength('height', this.getParentVHeight(), this.getParentVHeight()),\n x = this.getLength('x', this.getParentVWidth(), 0),\n y = this.getLength('y', this.getParentVHeight(), 0);\n if (inherits instanceof SvgElemUse) {\n width = inherits.getLength('width', inherits.getParentVWidth(), width);\n height = inherits.getLength('height', inherits.getParentVHeight(), height);\n }\n let aspectRatio = this.attr('preserveAspectRatio'),\n viewBox = this.getViewbox('viewBox', [0, 0, width, height]);\n if (this.isOuterElement && preserveAspectRatio) {\n x = y = 0;\n width = viewportWidth;\n height = viewportHeight;\n aspectRatio = preserveAspectRatio;\n }\n this.getVWidth = function () {\n return viewBox[2];\n };\n this.getVHeight = function () {\n return viewBox[3];\n };\n this.drawInDocument = function (isClip, isMask) {\n doc.save();\n if (this.get('overflow') === 'hidden') {\n new SvgShape()\n .M(x, y)\n .L(x + width, y)\n .L(x + width, y + height)\n .L(x, y + height)\n .Z()\n .transform(this.get('transform'))\n .insertInDocument();\n doc.clip();\n }\n this.drawContent(isClip, isMask);\n doc.restore();\n };\n this.getTransformation = function () {\n return multiplyMatrix(\n this.get('transform'),\n [1, 0, 0, 1, x, y],\n parseAspectRatio(aspectRatio, width, height, viewBox[2], viewBox[3]),\n [1, 0, 0, 1, -viewBox[0], -viewBox[1]],\n );\n };\n };\n\n var SVGElemImage = function (obj, inherits) {\n SvgElemStylable.call(this, obj, inherits);\n const { src: imageSrc, properties } = imageCallback(this.attr('href') || this.attr('xlink:href') || '');\n let x = this.getLength('x', this.getVWidth(), 0),\n y = this.getLength('y', this.getVHeight(), 0),\n width = this.getLength('width', this.getVWidth(), 'auto'),\n height = this.getLength('height', this.getVHeight(), 'auto'),\n image;\n try {\n image = doc.openImage(imageSrc, properties);\n } catch (e) {\n warningCallback('SVGElemImage: failed to open image \"' + e + '\" in PDFKit', e);\n }\n if (image) {\n if (width === 'auto' && height !== 'auto') {\n width = (height * image.width) / image.height;\n } else if (height === 'auto' && width !== 'auto') {\n height = (width * image.height) / image.width;\n } else if (width === 'auto' && height === 'auto') {\n width = image.width;\n height = image.height;\n }\n }\n if (width === 'auto' || width < 0) {\n width = 0;\n }\n if (height === 'auto' || height < 0) {\n height = 0;\n }\n this.getTransformation = function () {\n return this.get('transform');\n };\n this.getBoundingShape = function () {\n return new SvgShape()\n .M(x, y)\n .L(x + width, y)\n .M(x + width, y + height)\n .L(x, y + height);\n };\n this.drawInDocument = function (isClip /*isMask*/) {\n if (this.get('visibility') === 'hidden' || !image) {\n return;\n }\n doc.save();\n this.transform();\n if (this.get('overflow') === 'hidden') {\n doc.rect(x, y, width, height).clip();\n }\n this.clip();\n this.mask();\n doc.translate(x, y);\n doc.transform.apply(\n doc,\n parseAspectRatio(\n this.attr('preserveAspectRatio'),\n width,\n height,\n image ? image.width : width,\n image ? image.height : height,\n ),\n );\n if (!isClip) {\n doc.fillOpacity(this.get('opacity'));\n doc.image(image, 0, 0);\n } else {\n doc.rect(0, 0, image.width, image.height);\n docFillColor(DefaultColors.white).fill();\n }\n doc.restore();\n };\n };\n\n var SvgElemPattern = function (obj, inherits, fallback) {\n SvgElemHasChildren.call(this, obj, inherits);\n this.ref = function () {\n let ref = this.getUrl('href') || this.getUrl('xlink:href');\n if (ref && ref.nodeName === obj.nodeName) {\n return new SvgElemPattern(ref, inherits, fallback);\n }\n }.call(this);\n let _attr = this.attr;\n this.attr = function (key) {\n let attr = _attr.call(this, key);\n if (attr != null || key === 'href' || key === 'xlink:href') {\n return attr;\n }\n return this.ref ? this.ref.attr(key) : null;\n };\n let _getChildren = this.getChildren;\n this.getChildren = function () {\n let children = _getChildren.call(this);\n if (children.length > 0) {\n return children;\n }\n return this.ref ? this.ref.getChildren() : [];\n };\n this.getPaint = function (bBox, gOpacity, isClip, isMask) {\n let bBoxUnitsPattern = this.attr('patternUnits') !== 'userSpaceOnUse',\n bBoxUnitsContent = this.attr('patternContentUnits') === 'objectBoundingBox',\n x = this.getLength('x', bBoxUnitsPattern ? 1 : this.getParentVWidth(), 0),\n y = this.getLength('y', bBoxUnitsPattern ? 1 : this.getParentVHeight(), 0),\n width = this.getLength('width', bBoxUnitsPattern ? 1 : this.getParentVWidth(), 0),\n height = this.getLength('height', bBoxUnitsPattern ? 1 : this.getParentVHeight(), 0);\n if (bBoxUnitsContent && !bBoxUnitsPattern) {\n // Use the same units for pattern & pattern content\n x = (x - bBox[0]) / (bBox[2] - bBox[0]) || 0;\n y = (y - bBox[1]) / (bBox[3] - bBox[1]) || 0;\n width = width / (bBox[2] - bBox[0]) || 0;\n height = height / (bBox[3] - bBox[1]) || 0;\n } else if (!bBoxUnitsContent && bBoxUnitsPattern) {\n x = bBox[0] + x * (bBox[2] - bBox[0]);\n y = bBox[1] + y * (bBox[3] - bBox[1]);\n width = width * (bBox[2] - bBox[0]);\n height = height * (bBox[3] - bBox[1]);\n }\n let viewBox = this.getViewbox('viewBox', [0, 0, width, height]),\n aspectRatio = (this.attr('preserveAspectRatio') || '').trim(),\n aspectRatioMatrix = multiplyMatrix(parseAspectRatio(aspectRatio, width, height, viewBox[2], viewBox[3], 0), [\n 1,\n 0,\n 0,\n 1,\n -viewBox[0],\n -viewBox[1],\n ]),\n matrix = parseTranform(this.attr('patternTransform'));\n if (bBoxUnitsContent) {\n matrix = multiplyMatrix([bBox[2] - bBox[0], 0, 0, bBox[3] - bBox[1], bBox[0], bBox[1]], matrix);\n }\n matrix = multiplyMatrix(matrix, [1, 0, 0, 1, x, y]);\n if (\n (matrix = validateMatrix(matrix)) &&\n (aspectRatioMatrix = validateMatrix(aspectRatioMatrix)) &&\n (width = validateNumber(width)) &&\n (height = validateNumber(height))\n ) {\n let group = docBeginGroup([0, 0, width, height]);\n doc.transform.apply(doc, aspectRatioMatrix);\n this.drawChildren(isClip, isMask);\n docEndGroup(group);\n return [docCreatePattern(group, width, height, matrix), gOpacity];\n } else {\n return fallback ? [fallback[0], fallback[1] * gOpacity] : undefined;\n }\n };\n this.getVWidth = function () {\n let bBoxUnitsPattern = this.attr('patternUnits') !== 'userSpaceOnUse',\n width = this.getLength('width', bBoxUnitsPattern ? 1 : this.getParentVWidth(), 0);\n return this.getViewbox('viewBox', [0, 0, width, 0])[2];\n };\n this.getVHeight = function () {\n let bBoxUnitsPattern = this.attr('patternUnits') !== 'userSpaceOnUse',\n height = this.getLength('height', bBoxUnitsPattern ? 1 : this.getParentVHeight(), 0);\n return this.getViewbox('viewBox', [0, 0, 0, height])[3];\n };\n };\n\n var SvgElemGradient = function (obj, inherits, fallback) {\n SvgElem.call(this, obj, inherits);\n this.allowedChildren = ['stop'];\n this.ref = function () {\n let ref = this.getUrl('href') || this.getUrl('xlink:href');\n if (ref && ref.nodeName === obj.nodeName) {\n return new SvgElemGradient(ref, inherits, fallback);\n }\n }.call(this);\n let _attr = this.attr;\n this.attr = function (key) {\n let attr = _attr.call(this, key);\n if (attr != null || key === 'href' || key === 'xlink:href') {\n return attr;\n }\n return this.ref ? this.ref.attr(key) : null;\n };\n let _getChildren = this.getChildren;\n this.getChildren = function () {\n let children = _getChildren.call(this);\n if (children.length > 0) {\n return children;\n }\n return this.ref ? this.ref.getChildren() : [];\n };\n this.getPaint = function (bBox, gOpacity, isClip, isMask) {\n let children = this.getChildren();\n if (children.length === 0) {\n return;\n }\n if (children.length === 1) {\n let child = children[0],\n stopColor = child.get('stop-color');\n if (stopColor === 'none') {\n return;\n }\n return opacityToColor(stopColor, child.get('stop-opacity') * gOpacity, isMask);\n }\n let bBoxUnits = this.attr('gradientUnits') !== 'userSpaceOnUse',\n matrix = parseTranform(this.attr('gradientTransform')),\n spread = this.attr('spreadMethod'),\n grad,\n x1,\n x2,\n y1,\n y2,\n r2,\n nAfter = 0,\n nBefore = 0,\n nTotal = 1;\n if (matrix && bBoxUnits) {\n matrix = multiplyMatrix([bBox[2] - bBox[0], 0, 0, bBox[3] - bBox[1], bBox[0], bBox[1]], matrix);\n }\n if (matrix && (matrix = validateMatrix(matrix))) {\n if (this.name === 'linearGradient') {\n x1 = this.getLength('x1', bBoxUnits ? 1 : this.getVWidth(), 0);\n x2 = this.getLength('x2', bBoxUnits ? 1 : this.getVWidth(), bBoxUnits ? 1 : this.getVWidth());\n y1 = this.getLength('y1', bBoxUnits ? 1 : this.getVHeight(), 0);\n y2 = this.getLength('y2', bBoxUnits ? 1 : this.getVHeight(), 0);\n } else {\n x2 = this.getLength('cx', bBoxUnits ? 1 : this.getVWidth(), bBoxUnits ? 0.5 : 0.5 * this.getVWidth());\n y2 = this.getLength('cy', bBoxUnits ? 1 : this.getVHeight(), bBoxUnits ? 0.5 : 0.5 * this.getVHeight());\n r2 = this.getLength('r', bBoxUnits ? 1 : this.getViewport(), bBoxUnits ? 0.5 : 0.5 * this.getViewport());\n x1 = this.getLength('fx', bBoxUnits ? 1 : this.getVWidth(), x2);\n y1 = this.getLength('fy', bBoxUnits ? 1 : this.getVHeight(), y2);\n if (r2 < 0) {\n warningCallback('SvgElemGradient: negative r value');\n }\n let d = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)),\n multiplier = 1;\n if (d > r2) {\n // according to specification\n multiplier = r2 / d;\n x1 = x2 + (x1 - x2) * multiplier;\n y1 = y2 + (y1 - y2) * multiplier;\n }\n r2 = Math.max(r2, d * multiplier * (1 + 1e-6)); // fix for edge-case gradients see issue #84\n }\n if (spread === 'reflect' || spread === 'repeat') {\n let inv = inverseMatrix(matrix),\n corner1 = transformPoint([bBox[0], bBox[1]], inv),\n corner2 = transformPoint([bBox[2], bBox[1]], inv),\n corner3 = transformPoint([bBox[2], bBox[3]], inv),\n corner4 = transformPoint([bBox[0], bBox[3]], inv);\n if (this.name === 'linearGradient') {\n // See file 'gradient-repeat-maths.png'\n nAfter =\n Math.max(\n (corner1[0] - x2) * (x2 - x1) + (corner1[1] - y2) * (y2 - y1),\n (corner2[0] - x2) * (x2 - x1) + (corner2[1] - y2) * (y2 - y1),\n (corner3[0] - x2) * (x2 - x1) + (corner3[1] - y2) * (y2 - y1),\n (corner4[0] - x2) * (x2 - x1) + (corner4[1] - y2) * (y2 - y1),\n ) /\n (Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\n nBefore =\n Math.max(\n (corner1[0] - x1) * (x1 - x2) + (corner1[1] - y1) * (y1 - y2),\n (corner2[0] - x1) * (x1 - x2) + (corner2[1] - y1) * (y1 - y2),\n (corner3[0] - x1) * (x1 - x2) + (corner3[1] - y1) * (y1 - y2),\n (corner4[0] - x1) * (x1 - x2) + (corner4[1] - y1) * (y1 - y2),\n ) /\n (Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\n } else {\n nAfter =\n Math.sqrt(\n Math.max(\n Math.pow(corner1[0] - x2, 2) + Math.pow(corner1[1] - y2, 2),\n Math.pow(corner2[0] - x2, 2) + Math.pow(corner2[1] - y2, 2),\n Math.pow(corner3[0] - x2, 2) + Math.pow(corner3[1] - y2, 2),\n Math.pow(corner4[0] - x2, 2) + Math.pow(corner4[1] - y2, 2),\n ),\n ) /\n r2 -\n 1;\n }\n nAfter = Math.ceil(nAfter + 0.5); // Add a little more because the stroke can extend outside of the bounding box\n nBefore = Math.ceil(nBefore + 0.5);\n nTotal = nBefore + 1 + nAfter; // How many times the gradient needs to be repeated to fill the object bounding box\n }\n if (this.name === 'linearGradient') {\n grad = doc.linearGradient(\n x1 - nBefore * (x2 - x1),\n y1 - nBefore * (y2 - y1),\n x2 + nAfter * (x2 - x1),\n y2 + nAfter * (y2 - y1),\n );\n } else {\n grad = doc.radialGradient(x1, y1, 0, x2, y2, r2 + nAfter * r2);\n }\n for (let n = 0; n < nTotal; n++) {\n let offset = 0,\n inOrder = spread !== 'reflect' || (n - nBefore) % 2 === 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[inOrder ? i : children.length - 1 - i],\n stopColor = child.get('stop-color');\n if (stopColor === 'none') {\n stopColor = DefaultColors.transparent;\n }\n stopColor = opacityToColor(stopColor, child.get('stop-opacity') * gOpacity, isMask);\n offset = Math.max(offset, inOrder ? child.getPercent('offset', 0) : 1 - child.getPercent('offset', 0));\n if (i === 0 && offset > 0) {\n grad.stop((n + 0) / nTotal, stopColor[0], stopColor[1]);\n }\n grad.stop((n + offset) / (nAfter + nBefore + 1), stopColor[0], stopColor[1]);\n if (i === children.length - 1 && offset < 1) {\n grad.stop((n + 1) / nTotal, stopColor[0], stopColor[1]);\n }\n }\n }\n grad.setTransform.apply(grad, matrix);\n return [grad, 1];\n } else {\n return fallback ? [fallback[0], fallback[1] * gOpacity] : undefined;\n }\n };\n };\n\n var SvgElemBasicShape = function (obj, inherits) {\n SvgElemStylable.call(this, obj, inherits);\n this.dashScale = 1;\n this.getBoundingShape = function () {\n return this.shape;\n };\n this.getTransformation = function () {\n return this.get('transform');\n };\n this.drawInDocument = function (isClip, isMask) {\n if (this.get('visibility') === 'hidden' || !this.shape) {\n return;\n }\n doc.save();\n this.transform();\n this.clip();\n if (!isClip) {\n let masked = this.mask(),\n group;\n if (masked) {\n group = docBeginGroup(getPageBBox());\n }\n let subPaths = this.shape.getSubPaths(),\n fill = this.getFill(isClip, isMask),\n stroke = this.getStroke(isClip, isMask),\n lineWidth = this.get('stroke-width'),\n lineCap = this.get('stroke-linecap');\n if (fill || stroke) {\n if (fill) {\n docFillColor(fill);\n }\n if (stroke) {\n for (let j = 0; j < subPaths.length; j++) {\n if (isEqual(subPaths[j].totalLength, 0)) {\n if ((lineCap === 'square' || lineCap === 'round') && lineWidth > 0) {\n if (subPaths[j].startPoint && subPaths[j].startPoint.length > 1) {\n let x = subPaths[j].startPoint[0],\n y = subPaths[j].startPoint[1];\n docFillColor(stroke);\n if (lineCap === 'square') {\n doc.rect(x - 0.5 * lineWidth, y - 0.5 * lineWidth, lineWidth, lineWidth);\n } else if (lineCap === 'round') {\n doc.circle(x, y, 0.5 * lineWidth);\n }\n doc.fill();\n }\n }\n }\n }\n let dashArray = this.get('stroke-dasharray'),\n dashOffset = this.get('stroke-dashoffset');\n if (isNotEqual(this.dashScale, 1)) {\n for (let j = 0; j < dashArray.length; j++) {\n dashArray[j] *= this.dashScale;\n }\n dashOffset *= this.dashScale;\n }\n docStrokeColor(stroke);\n doc\n .lineWidth(lineWidth)\n .miterLimit(this.get('stroke-miterlimit'))\n .lineJoin(this.get('stroke-linejoin'))\n .lineCap(lineCap)\n .dash(dashArray, { phase: dashOffset });\n }\n for (let j = 0; j < subPaths.length; j++) {\n if (subPaths[j].totalLength > 0) {\n subPaths[j].insertInDocument();\n }\n }\n if (fill && stroke) {\n doc.fillAndStroke(this.get('fill-rule'));\n } else if (fill) {\n doc.fill(this.get('fill-rule'));\n } else if (stroke) {\n doc.stroke();\n }\n }\n let markerStart = this.get('marker-start'),\n markerMid = this.get('marker-mid'),\n markerEnd = this.get('marker-end');\n if (markerStart !== 'none' || markerMid !== 'none' || markerEnd !== 'none') {\n let markersPos = this.shape.getMarkers();\n if (markerStart !== 'none' && markersPos.length > 0) {\n let marker = new SvgElemMarker(markerStart, null);\n marker.drawMarker(false, isMask, markersPos[0], lineWidth);\n }\n if (markerMid !== 'none') {\n for (let i = 1; i < markersPos.length - 1; i++) {\n let marker = new SvgElemMarker(markerMid, null);\n marker.drawMarker(false, isMask, markersPos[i], lineWidth);\n }\n }\n if (markerEnd !== 'none' && markersPos.length > 0) {\n let marker = new SvgElemMarker(markerEnd, null);\n marker.drawMarker(false, isMask, markersPos[markersPos.length - 1], lineWidth);\n }\n }\n if (group) {\n docEndGroup(group);\n docInsertGroup(group);\n }\n } else {\n this.shape.insertInDocument();\n docFillColor(DefaultColors.white);\n doc.fill(this.get('clip-rule'));\n }\n doc.restore();\n };\n };\n\n var SvgElemRect = function (obj, inherits) {\n SvgElemBasicShape.call(this, obj, inherits);\n let x = this.getLength('x', this.getVWidth(), 0),\n y = this.getLength('y', this.getVHeight(), 0),\n w = this.getLength('width', this.getVWidth(), 0),\n h = this.getLength('height', this.getVHeight(), 0),\n rx = this.getLength('rx', this.getVWidth()),\n ry = this.getLength('ry', this.getVHeight());\n if (rx === undefined && ry === undefined) {\n rx = ry = 0;\n } else if (rx === undefined && ry !== undefined) {\n rx = ry;\n } else if (rx !== undefined && ry === undefined) {\n ry = rx;\n }\n if (w > 0 && h > 0) {\n if (rx && ry) {\n rx = Math.min(rx, 0.5 * w);\n ry = Math.min(ry, 0.5 * h);\n this.shape = new SvgShape()\n .M(x + rx, y)\n .L(x + w - rx, y)\n .A(rx, ry, 0, 0, 1, x + w, y + ry)\n .L(x + w, y + h - ry)\n .A(rx, ry, 0, 0, 1, x + w - rx, y + h)\n .L(x + rx, y + h)\n .A(rx, ry, 0, 0, 1, x, y + h - ry)\n .L(x, y + ry)\n .A(rx, ry, 0, 0, 1, x + rx, y)\n .Z();\n } else {\n this.shape = new SvgShape()\n .M(x, y)\n .L(x + w, y)\n .L(x + w, y + h)\n .L(x, y + h)\n .Z();\n }\n } else {\n this.shape = new SvgShape();\n }\n };\n\n var SvgElemCircle = function (obj, inherits) {\n SvgElemBasicShape.call(this, obj, inherits);\n let cx = this.getLength('cx', this.getVWidth(), 0),\n cy = this.getLength('cy', this.getVHeight(), 0),\n r = this.getLength('r', this.getViewport(), 0);\n if (r > 0) {\n this.shape = new SvgShape()\n .M(cx + r, cy)\n .A(r, r, 0, 0, 1, cx - r, cy)\n .A(r, r, 0, 0, 1, cx + r, cy)\n .Z();\n } else {\n this.shape = new SvgShape();\n }\n };\n\n var SvgElemEllipse = function (obj, inherits) {\n SvgElemBasicShape.call(this, obj, inherits);\n let cx = this.getLength('cx', this.getVWidth(), 0),\n cy = this.getLength('cy', this.getVHeight(), 0),\n rx = this.getLength('rx', this.getVWidth(), 0),\n ry = this.getLength('ry', this.getVHeight(), 0);\n if (rx > 0 && ry > 0) {\n this.shape = new SvgShape()\n .M(cx + rx, cy)\n .A(rx, ry, 0, 0, 1, cx - rx, cy)\n .A(rx, ry, 0, 0, 1, cx + rx, cy)\n .Z();\n } else {\n this.shape = new SvgShape();\n }\n };\n\n var SvgElemLine = function (obj, inherits) {\n SvgElemBasicShape.call(this, obj, inherits);\n let x1 = this.getLength('x1', this.getVWidth(), 0),\n y1 = this.getLength('y1', this.getVHeight(), 0),\n x2 = this.getLength('x2', this.getVWidth(), 0),\n y2 = this.getLength('y2', this.getVHeight(), 0);\n this.shape = new SvgShape().M(x1, y1).L(x2, y2);\n };\n\n var SvgElemPolyline = function (obj, inherits) {\n SvgElemBasicShape.call(this, obj, inherits);\n let points = this.getNumberList('points');\n this.shape = new SvgShape();\n for (let i = 0; i < points.length - 1; i += 2) {\n if (i === 0) {\n this.shape.M(points[i], points[i + 1]);\n } else {\n this.shape.L(points[i], points[i + 1]);\n }\n }\n if (points.error) {\n warningCallback('SvgElemPolygon: unexpected string ' + points.error);\n }\n if (points.length % 2 === 1) {\n warningCallback('SvgElemPolyline: uneven number of coordinates');\n }\n };\n\n var SvgElemPolygon = function (obj, inherits) {\n SvgElemBasicShape.call(this, obj, inherits);\n let points = this.getNumberList('points');\n this.shape = new SvgShape();\n for (let i = 0; i < points.length - 1; i += 2) {\n if (i === 0) {\n this.shape.M(points[i], points[i + 1]);\n } else {\n this.shape.L(points[i], points[i + 1]);\n }\n }\n this.shape.Z();\n if (points.error) {\n warningCallback('SvgElemPolygon: unexpected string ' + points.error);\n }\n if (points.length % 2 === 1) {\n warningCallback('SvgElemPolygon: uneven number of coordinates');\n }\n };\n\n var SvgElemPath = function (obj, inherits) {\n SvgElemBasicShape.call(this, obj, inherits);\n this.shape = new SvgShape().path(this.attr('d'));\n let pathLength = this.getLength('pathLength', this.getViewport());\n this.pathLength = pathLength > 0 ? pathLength : undefined;\n this.dashScale = this.pathLength !== undefined ? this.shape.totalLength / this.pathLength : 1;\n };\n\n var SvgElemMarker = function (obj, inherits) {\n SvgElemHasChildren.call(this, obj, inherits);\n let width = this.getLength('markerWidth', this.getParentVWidth(), 3),\n height = this.getLength('markerHeight', this.getParentVHeight(), 3),\n viewBox = this.getViewbox('viewBox', [0, 0, width, height]);\n this.getVWidth = function () {\n return viewBox[2];\n };\n this.getVHeight = function () {\n return viewBox[3];\n };\n this.drawMarker = function (isClip, isMask, posArray, strokeWidth) {\n doc.save();\n let orient = this.attr('orient'),\n units = this.attr('markerUnits'),\n rotate = orient === 'auto' ? posArray[2] : ((parseFloat(orient) || 0) * Math.PI) / 180,\n scale = units === 'userSpaceOnUse' ? 1 : strokeWidth;\n doc.transform(\n Math.cos(rotate) * scale,\n Math.sin(rotate) * scale,\n -Math.sin(rotate) * scale,\n Math.cos(rotate) * scale,\n posArray[0],\n posArray[1],\n );\n let refX = this.getLength('refX', this.getVWidth(), 0),\n refY = this.getLength('refY', this.getVHeight(), 0),\n aspectRatioMatrix = parseAspectRatio(\n this.attr('preserveAspectRatio'),\n width,\n height,\n viewBox[2],\n viewBox[3],\n 0.5,\n );\n if (this.get('overflow') === 'hidden') {\n doc\n .rect(\n aspectRatioMatrix[0] * (viewBox[0] + viewBox[2] / 2 - refX) - width / 2,\n aspectRatioMatrix[3] * (viewBox[1] + viewBox[3] / 2 - refY) - height / 2,\n width,\n height,\n )\n .clip();\n }\n doc.transform.apply(doc, aspectRatioMatrix);\n doc.translate(-refX, -refY);\n let group;\n if (this.get('opacity') < 1 && !isClip) {\n group = docBeginGroup(getPageBBox());\n }\n this.drawChildren(isClip, isMask);\n if (group) {\n docEndGroup(group);\n doc.fillOpacity(this.get('opacity'));\n docInsertGroup(group);\n }\n doc.restore();\n };\n };\n\n var SvgElemClipPath = function (obj, inherits) {\n SvgElemHasChildren.call(this, obj, inherits);\n this.useMask = function (bBox) {\n let group = docBeginGroup(getPageBBox());\n doc.save();\n doc.transform.apply(doc, this.get('transform'));\n if (this.attr('clipPathUnits') === 'objectBoundingBox') {\n doc.transform(bBox[2] - bBox[0], 0, 0, bBox[3] - bBox[1], bBox[0], bBox[1]);\n }\n this.clip();\n this.drawChildren(true, false);\n doc.restore();\n docEndGroup(group);\n docApplyMask(group, true);\n };\n };\n\n var SvgElemMask = function (obj, inherits) {\n SvgElemHasChildren.call(this, obj, inherits);\n this.useMask = function (bBox) {\n let group = docBeginGroup(getPageBBox());\n doc.save();\n /* let x, y, w, h; */\n if (this.attr('maskUnits') === 'userSpaceOnUse') {\n /*x =*/ this.getLength('x', this.getVWidth(), -0.1 * (bBox[2] - bBox[0]) + bBox[0]);\n /*y =*/ this.getLength('y', this.getVHeight(), -0.1 * (bBox[3] - bBox[1]) + bBox[1]);\n /*w =*/ this.getLength('width', this.getVWidth(), 1.2 * (bBox[2] - bBox[0]));\n /*h =*/ this.getLength('height', this.getVHeight(), 1.2 * (bBox[3] - bBox[1]));\n } else {\n /*x =*/ this.getLength('x', this.getVWidth(), -0.1) * (bBox[2] - bBox[0]) + bBox[0];\n /*y =*/ this.getLength('y', this.getVHeight(), -0.1) * (bBox[3] - bBox[1]) + bBox[1];\n /*w =*/ this.getLength('width', this.getVWidth(), 1.2) * (bBox[2] - bBox[0]);\n /*h =*/ this.getLength('height', this.getVHeight(), 1.2) * (bBox[3] - bBox[1]);\n }\n if (this.attr('maskContentUnits') === 'objectBoundingBox') {\n doc.transform(bBox[2] - bBox[0], 0, 0, bBox[3] - bBox[1], bBox[0], bBox[1]);\n }\n this.clip();\n this.drawChildren(false, true);\n doc.restore();\n docEndGroup(group);\n docApplyMask(group, true);\n };\n };\n\n var SvgElemTextContainer = function (obj, inherits) {\n SvgElemStylable.call(this, obj, inherits);\n this.allowedChildren = ['tspan', '#text', '#cdata-section', 'a'];\n this.isText = true;\n this.getBoundingShape = function () {\n let shape = new SvgShape();\n for (let i = 0; i < this._pos.length; i++) {\n let pos = this._pos[i];\n if (!pos.hidden) {\n let dx0 = pos.ascent * Math.sin(pos.rotate),\n dy0 = -pos.ascent * Math.cos(pos.rotate),\n dx1 = pos.descent * Math.sin(pos.rotate),\n dy1 = -pos.descent * Math.cos(pos.rotate),\n dx2 = pos.width * Math.cos(pos.rotate),\n dy2 = pos.width * Math.sin(pos.rotate);\n shape\n .M(pos.x + dx0, pos.y + dy0)\n .L(pos.x + dx0 + dx2, pos.y + dy0 + dy2)\n .M(pos.x + dx1 + dx2, pos.y + dy1 + dy2)\n .L(pos.x + dx1, pos.y + dy1);\n }\n }\n return shape;\n };\n this.drawTextInDocument = function (isClip, isMask) {\n if (this.link && !isClip && !isMask) {\n this.addLink();\n }\n if (this.get('text-decoration') === 'underline') {\n this.decorate(0.05 * this._font.size, -0.075 * this._font.size, isClip, isMask);\n }\n if (this.get('text-decoration') === 'overline') {\n this.decorate(\n 0.05 * this._font.size,\n getAscent(this._font.font, this._font.size) + 0.075 * this._font.size,\n isClip,\n isMask,\n );\n }\n let fill = this.getFill(isClip, isMask),\n stroke = this.getStroke(isClip, isMask),\n strokeWidth = this.get('stroke-width');\n if (this._font.fauxBold) {\n if (!stroke) {\n stroke = fill;\n strokeWidth = this._font.size * 0.03;\n } else {\n strokeWidth += this._font.size * 0.03;\n }\n }\n let children = this.getChildren();\n for (let i = 0; i < children.length; i++) {\n let childElem = children[i];\n switch (childElem.name) {\n case 'tspan':\n case 'textPath':\n case 'a':\n if (childElem.get('display') !== 'none') {\n childElem.drawTextInDocument(isClip, isMask);\n }\n break;\n case '#text':\n case '#cdata-section':\n if (this.get('visibility') === 'hidden') {\n continue;\n }\n if (fill || stroke || isClip) {\n if (fill) {\n docFillColor(fill);\n }\n if (stroke && strokeWidth) {\n docStrokeColor(stroke);\n doc\n .lineWidth(strokeWidth)\n .miterLimit(this.get('stroke-miterlimit'))\n .lineJoin(this.get('stroke-linejoin'))\n .lineCap(this.get('stroke-linecap'))\n .dash(this.get('stroke-dasharray'), {\n phase: this.get('stroke-dashoffset'),\n });\n }\n docBeginText(this._font.font, this._font.size);\n docSetTextMode(!!fill, !!stroke);\n docWriteGlyphs(childElem._pos, this._font);\n docEndText();\n }\n break;\n }\n }\n if (this.get('text-decoration') === 'line-through') {\n this.decorate(\n 0.05 * this._font.size,\n 0.5 * (getAscent(this._font.font, this._font.size) + getDescent(this._font.font, this._font.size)),\n isClip,\n isMask,\n );\n }\n };\n this.decorate = function (lineWidth, linePosition, isClip, isMask) {\n let fill = this.getFill(isClip, isMask),\n stroke = this.getStroke(isClip, isMask);\n if (fill) {\n docFillColor(fill);\n }\n if (stroke) {\n docStrokeColor(stroke);\n doc\n .lineWidth(this.get('stroke-width'))\n .miterLimit(this.get('stroke-miterlimit'))\n .lineJoin(this.get('stroke-linejoin'))\n .lineCap(this.get('stroke-linecap'))\n .dash(this.get('stroke-dasharray'), {\n phase: this.get('stroke-dashoffset'),\n });\n }\n for (let j = 0, pos = this._pos; j < pos.length; j++) {\n if (!pos[j].hidden && isNotEqual(pos[j].width, 0)) {\n let dx0 = (linePosition + lineWidth / 2) * Math.sin(pos[j].rotate),\n dy0 = -(linePosition + lineWidth / 2) * Math.cos(pos[j].rotate),\n dx1 = (linePosition - lineWidth / 2) * Math.sin(pos[j].rotate),\n dy1 = -(linePosition - lineWidth / 2) * Math.cos(pos[j].rotate),\n dx2 = pos[j].width * Math.cos(pos[j].rotate),\n dy2 = pos[j].width * Math.sin(pos[j].rotate);\n new SvgShape()\n .M(pos[j].x + dx0, pos[j].y + dy0)\n .L(pos[j].x + dx0 + dx2, pos[j].y + dy0 + dy2)\n .L(pos[j].x + dx1 + dx2, pos[j].y + dy1 + dy2)\n .L(pos[j].x + dx1, pos[j].y + dy1)\n .Z()\n .insertInDocument();\n if (fill && stroke) {\n doc.fillAndStroke();\n } else if (fill) {\n doc.fill();\n } else if (stroke) {\n doc.stroke();\n }\n }\n }\n };\n };\n\n var SvgElemTextNode = function (obj /*inherits*/) {\n this.name = obj.nodeName;\n this.textContent = obj.nodeValue;\n };\n\n var SvgElemTspan = function (obj, inherits) {\n SvgElemTextContainer.call(this, obj, inherits);\n };\n\n var SvgElemTextPath = function (obj, inherits) {\n SvgElemTextContainer.call(this, obj, inherits);\n let temp;\n if ((temp = this.attr('path')) && temp.trim() !== '') {\n let pathLength = this.getLength('pathLength', this.getViewport());\n this.pathObject = new SvgShape().path(temp);\n this.pathLength = pathLength > 0 ? pathLength : this.pathObject.totalLength;\n this.pathScale = this.pathObject.totalLength / this.pathLength;\n } else if ((temp = this.getUrl('href') || this.getUrl('xlink:href')) && temp.nodeName === 'path') {\n let pathElem = new SvgElemPath(temp, this);\n this.pathObject = pathElem.shape.clone().transform(pathElem.get('transform'));\n this.pathLength = this.chooseValue(pathElem.pathLength, this.pathObject.totalLength);\n this.pathScale = this.pathObject.totalLength / this.pathLength;\n }\n };\n\n var SvgElemText = function (obj, inherits) {\n SvgElemTextContainer.call(this, obj, inherits);\n this.allowedChildren = ['textPath', 'tspan', '#text', '#cdata-section', 'a'];\n (function (textParentElem) {\n let processedText = '',\n remainingText = obj.textContent,\n textPaths = [],\n currentChunk = [],\n currentAnchor,\n currentDirection,\n currentX = 0,\n currentY = 0;\n function doAnchoring() {\n if (currentChunk.length) {\n let last = currentChunk[currentChunk.length - 1];\n let first = currentChunk[0];\n let width = last.x + last.width - first.x;\n let anchordx =\n {\n startltr: 0,\n middleltr: 0.5,\n endltr: 1,\n startrtl: 1,\n middlertl: 0.5,\n endrtl: 0,\n }[currentAnchor + currentDirection] * width || 0;\n for (let i = 0; i < currentChunk.length; i++) {\n currentChunk[i].x -= anchordx;\n }\n }\n currentChunk = [];\n }\n function adjustLength(pos, length, spacingAndGlyphs) {\n let firstChar = pos[0],\n lastChar = pos[pos.length - 1],\n startX = firstChar.x,\n endX = lastChar.x + lastChar.width;\n if (spacingAndGlyphs) {\n let textScale = length / (endX - startX);\n if (textScale > 0 && textScale < Infinity) {\n for (let j = 0; j < pos.length; j++) {\n pos[j].continuous = false;\n pos[j].x = startX + textScale * (pos[j].x - startX);\n pos[j].scale *= textScale;\n pos[j].width *= textScale;\n }\n }\n } else {\n if (pos.length >= 2) {\n let spaceDiff = (length - (endX - startX)) / (pos.length - 1);\n for (let j = 0; j < pos.length; j++) {\n pos[j].continuous = false;\n pos[j].x += j * spaceDiff;\n }\n }\n }\n currentX += length - (endX - startX);\n }\n function recursive(currentElem, parentElem) {\n currentElem._x = combineArrays(\n currentElem.getLengthList('x', currentElem.getVWidth()),\n parentElem ? parentElem._x.slice(parentElem._pos.length) : [],\n );\n currentElem._y = combineArrays(\n currentElem.getLengthList('y', currentElem.getVHeight()),\n parentElem ? parentElem._y.slice(parentElem._pos.length) : [],\n );\n currentElem._dx = combineArrays(\n currentElem.getLengthList('dx', currentElem.getVWidth()),\n parentElem ? parentElem._dx.slice(parentElem._pos.length) : [],\n );\n currentElem._dy = combineArrays(\n currentElem.getLengthList('dy', currentElem.getVHeight()),\n parentElem ? parentElem._dy.slice(parentElem._pos.length) : [],\n );\n currentElem._rot = combineArrays(\n currentElem.getNumberList('rotate'),\n parentElem ? parentElem._rot.slice(parentElem._pos.length) : [],\n );\n currentElem._defRot = currentElem.chooseValue(\n currentElem._rot[currentElem._rot.length - 1],\n parentElem && parentElem._defRot,\n 0,\n );\n if (currentElem.name === 'textPath') {\n currentElem._y = [];\n }\n let fontOptions = { fauxItalic: false, fauxBold: false },\n fontNameorLink = fontCallback(\n currentElem.get('font-family'),\n currentElem.get('font-weight') === 'bold',\n currentElem.get('font-style') === 'italic',\n fontOptions,\n );\n try {\n doc.font(fontNameorLink);\n } catch (e) {\n warningCallback('SVGElemText: failed to open font \"' + fontNameorLink + '\" in PDFKit', e);\n }\n currentElem._pos = [];\n currentElem._index = 0;\n currentElem._font = {\n font: doc._font,\n size: currentElem.get('font-size'),\n fauxItalic: fontOptions.fauxItalic,\n fauxBold: fontOptions.fauxBold,\n };\n let textLength = currentElem.getLength('textLength', currentElem.getVWidth(), undefined),\n spacingAndGlyphs = currentElem.attr('lengthAdjust') === 'spacingAndGlyphs',\n wordSpacing = currentElem.get('word-spacing'),\n letterSpacing = currentElem.get('letter-spacing'),\n textAnchor = currentElem.get('text-anchor'),\n textDirection = currentElem.get('direction'),\n baseline = getBaseline(\n currentElem._font.font,\n currentElem._font.size,\n currentElem.get('alignment-baseline') || currentElem.get('dominant-baseline'),\n currentElem.get('baseline-shift'),\n );\n if (currentElem.name === 'textPath') {\n doAnchoring();\n currentX = currentY = 0;\n }\n let children = currentElem.getChildren();\n for (let i = 0; i < children.length; i++) {\n let childElem = children[i];\n switch (childElem.name) {\n case 'tspan':\n case 'textPath':\n case 'a':\n recursive(childElem, currentElem);\n break;\n case '#text':\n case '#cdata-section': {\n let rawText = childElem.textContent,\n renderedText = rawText,\n words;\n childElem._font = currentElem._font;\n childElem._pos = [];\n remainingText = remainingText.substring(rawText.length);\n if (currentElem.get('xml:space') === 'preserve') {\n renderedText = renderedText.replace(/[\\s]/g, ' ');\n } else {\n renderedText = renderedText.replace(/[\\s]+/g, ' ');\n if (processedText.match(/[\\s]$|^$/)) {\n renderedText = renderedText.replace(/^[\\s]/, '');\n }\n if (remainingText.match(/^[\\s]*$/)) {\n renderedText = renderedText.replace(/[\\s]$/, '');\n }\n }\n processedText += rawText;\n if (wordSpacing === 0) {\n words = [renderedText];\n } else {\n words = renderedText.split(/(\\s)/);\n }\n for (let w = 0; w < words.length; w++) {\n let pos = getTextPos(currentElem._font.font, currentElem._font.size, words[w]);\n for (let j = 0; j < pos.length; j++) {\n let index = currentElem._index,\n xAttr = currentElem._x[index],\n yAttr = currentElem._y[index],\n dxAttr = currentElem._dx[index],\n dyAttr = currentElem._dy[index],\n rotAttr = currentElem._rot[index],\n continuous = !(w === 0 && j === 0);\n if (letterSpacing !== 0) {\n continuous = false;\n }\n if (wordSpacing !== 0) {\n continuous = false;\n }\n if (xAttr !== undefined) {\n continuous = false;\n doAnchoring();\n currentX = xAttr;\n }\n if (yAttr !== undefined) {\n continuous = false;\n doAnchoring();\n currentY = yAttr;\n }\n if (dxAttr !== undefined) {\n continuous = false;\n currentX += dxAttr;\n }\n if (dyAttr !== undefined) {\n continuous = false;\n currentY += dyAttr;\n }\n if (rotAttr !== undefined || currentElem._defRot !== 0) {\n continuous = false;\n }\n let position = {\n glyph: pos[j].glyph,\n rotate: (Math.PI / 180) * currentElem.chooseValue(rotAttr, currentElem._defRot),\n x: currentX + pos[j].xOffset,\n kern: pos[j].kern,\n y: currentY + baseline + pos[j].yOffset,\n width: pos[j].width,\n ascent: getAscent(currentElem._font.font, currentElem._font.size),\n descent: getDescent(currentElem._font.font, currentElem._font.size),\n scale: 1,\n hidden: false,\n continuous: continuous,\n };\n currentChunk.push(position);\n childElem._pos.push(position);\n currentElem._pos.push(position);\n currentElem._index += pos[j].unicode.length;\n if (currentChunk.length === 1) {\n currentAnchor = textAnchor;\n currentDirection = textDirection;\n }\n currentX += pos[j].xAdvance + letterSpacing;\n currentY += pos[j].yAdvance;\n }\n if (words[w] === ' ') {\n currentX += wordSpacing;\n }\n }\n break;\n }\n default:\n remainingText = remainingText.substring(childElem.textContent.length);\n }\n }\n if (textLength && currentElem._pos.length) {\n adjustLength(currentElem._pos, textLength, spacingAndGlyphs);\n }\n if (currentElem.name === 'textPath' || currentElem.name === 'text') {\n doAnchoring();\n }\n if (currentElem.name === 'textPath') {\n textPaths.push(currentElem);\n let pathObject = currentElem.pathObject;\n if (pathObject) {\n currentX = pathObject.endPoint[0];\n currentY = pathObject.endPoint[1];\n }\n }\n if (parentElem) {\n parentElem._pos = parentElem._pos.concat(currentElem._pos);\n parentElem._index += currentElem._index;\n }\n }\n function textOnPath(currentElem) {\n let pathObject = currentElem.pathObject,\n pathLength = currentElem.pathLength,\n pathScale = currentElem.pathScale;\n if (pathObject) {\n let textOffset = currentElem.getLength('startOffset', pathLength, 0);\n for (let j = 0; j < currentElem._pos.length; j++) {\n let charMidX = textOffset + currentElem._pos[j].x + 0.5 * currentElem._pos[j].width;\n if (charMidX > pathLength || charMidX < 0) {\n currentElem._pos[j].hidden = true;\n } else {\n let pointOnPath = pathObject.getPointAtLength(charMidX * pathScale);\n if (isNotEqual(pathScale, 1)) {\n currentElem._pos[j].scale *= pathScale;\n currentElem._pos[j].width *= pathScale;\n }\n currentElem._pos[j].x =\n pointOnPath[0] -\n 0.5 * currentElem._pos[j].width * Math.cos(pointOnPath[2]) -\n currentElem._pos[j].y * Math.sin(pointOnPath[2]);\n currentElem._pos[j].y =\n pointOnPath[1] -\n 0.5 * currentElem._pos[j].width * Math.sin(pointOnPath[2]) +\n currentElem._pos[j].y * Math.cos(pointOnPath[2]);\n currentElem._pos[j].rotate = pointOnPath[2] + currentElem._pos[j].rotate;\n currentElem._pos[j].continuous = false;\n }\n }\n } else {\n for (let j = 0; j < currentElem._pos.length; j++) {\n currentElem._pos[j].hidden = true;\n }\n }\n }\n recursive(textParentElem, null);\n for (let i = 0; i < textPaths.length; i++) {\n textOnPath(textPaths[i]);\n }\n })(this);\n this.getTransformation = function () {\n return this.get('transform');\n };\n this.drawInDocument = function (isClip, isMask) {\n doc.save();\n this.transform();\n this.clip();\n let masked = this.mask(),\n group;\n if (masked) {\n group = docBeginGroup(getPageBBox());\n }\n this.drawTextInDocument(isClip, isMask);\n if (group) {\n docEndGroup(group);\n docInsertGroup(group);\n }\n doc.restore();\n };\n };\n\n options = options || {};\n var pxToPt = options.assumePt ? 1 : 72 / 96, // 1px = 72/96pt, but only if assumePt is false\n viewportWidth = (options.width || doc.page.width) / pxToPt,\n viewportHeight = (options.height || doc.page.height) / pxToPt,\n preserveAspectRatio = options.preserveAspectRatio || null, // default to null so that the attr can override if not passed\n useCSS =\n options.useCSS &&\n typeof SVGElement !== 'undefined' &&\n svg instanceof SVGElement &&\n typeof getComputedStyle === 'function',\n warningCallback = options.warningCallback,\n fontCallback = options.fontCallback,\n imageCallback = options.imageCallback,\n colorCallback = options.colorCallback,\n documentCallback = options.documentCallback,\n precision = Math.ceil(Math.max(1, options.precision)) || 3,\n groupStack = [],\n documentCache = {},\n links = [],\n styleRules = [],\n colorSpace = 'DeviceRGB';\n\n if (doc._activeColorProfile) {\n colorSpace = doc._activeColorProfile.ref;\n }\n\n if (typeof warningCallback !== 'function') {\n warningCallback = function (str) {\n console.warn(str);\n };\n }\n if (typeof fontCallback !== 'function') {\n fontCallback = function (family, bold, italic, fontOptions) {\n // Check if the font is already registered in the document\n if (bold && italic) {\n if (Object.prototype.hasOwnProperty.call(doc._registeredFonts, family + '-BoldItalic')) {\n return family + '-BoldItalic';\n } else if (Object.prototype.hasOwnProperty.call(doc._registeredFonts, family + '-Italic')) {\n fontOptions.fauxBold = true;\n return family + '-Italic';\n } else if (Object.prototype.hasOwnProperty.call(doc._registeredFonts, family + '-Bold')) {\n fontOptions.fauxItalic = true;\n return family + '-Bold';\n } else if (Object.prototype.hasOwnProperty.call(doc._registeredFonts, family)) {\n fontOptions.fauxBold = true;\n fontOptions.fauxItalic = true;\n return family;\n }\n }\n if (bold && !italic) {\n if (Object.prototype.hasOwnProperty.call(doc._registeredFonts, family + '-Bold')) {\n return family + '-Bold';\n } else if (Object.prototype.hasOwnProperty.call(doc._registeredFonts, family)) {\n fontOptions.fauxBold = true;\n return family;\n }\n }\n if (!bold && italic) {\n if (Object.prototype.hasOwnProperty.call(doc._registeredFonts, family + '-Italic')) {\n return family + '-Italic';\n } else if (Object.prototype.hasOwnProperty.call(doc._registeredFonts, family)) {\n fontOptions.fauxItalic = true;\n return family;\n }\n }\n if (!bold && !italic) {\n if (Object.prototype.hasOwnProperty.call(doc._registeredFonts, family)) {\n return family;\n }\n }\n // Use standard fonts as fallback\n if (family.match(/(?:^|,)\\s*serif\\s*$/)) {\n if (bold && italic) {\n return 'Times-BoldItalic';\n }\n if (bold && !italic) {\n return 'Times-Bold';\n }\n if (!bold && italic) {\n return 'Times-Italic';\n }\n if (!bold && !italic) {\n return 'Times-Roman';\n }\n } else if (family.match(/(?:^|,)\\s*monospace\\s*$/)) {\n if (bold && italic) {\n return 'Courier-BoldOblique';\n }\n if (bold && !italic) {\n return 'Courier-Bold';\n }\n if (!bold && italic) {\n return 'Courier-Oblique';\n }\n if (!bold && !italic) {\n return 'Courier';\n }\n } /*if (family.match(/(?:^|,)\\s*sans-serif\\s*$/) || true)*/ else {\n if (bold && italic) {\n return 'Helvetica-BoldOblique';\n }\n if (bold && !italic) {\n return 'Helvetica-Bold';\n }\n if (!bold && italic) {\n return 'Helvetica-Oblique';\n }\n if (!bold && !italic) {\n return 'Helvetica';\n }\n }\n };\n }\n if (typeof imageCallback !== 'function') {\n imageCallback = function (link) {\n return { src: link.trim() };\n };\n }\n if (typeof colorCallback !== 'function') {\n colorCallback = null;\n } else {\n for (let color in DefaultColors) {\n let newColor = colorCallback(DefaultColors[color], color);\n DefaultColors[color][0] = newColor[0];\n DefaultColors[color][1] = newColor[1];\n }\n }\n if (typeof documentCallback !== 'function') {\n documentCallback = null;\n }\n\n if (typeof svg === 'string') {\n svg = parseXml(svg);\n }\n if (svg) {\n let styles = svg.getElementsByTagName('style');\n for (let i = 0; i < styles.length; i++) {\n styleRules = styleRules.concat(parseStyleSheet(styles[i].textContent));\n }\n let elem = createSVGElement(svg, null);\n if (typeof elem.drawInDocument === 'function') {\n if (options.useCSS && !useCSS) {\n warningCallback('SVGtoPDF: useCSS option can only be used for SVG *elements* in compatible browsers');\n }\n let savedFillColor = doc._fillColor;\n doc\n .save()\n .translate(x || 0, y || 0)\n .scale(pxToPt);\n elem.drawInDocument();\n for (let i = 0; i < links.length; i++) {\n doc.page.annotations.push(links[i]);\n }\n doc.restore();\n doc._fillColor = savedFillColor;\n } else {\n warningCallback(\"SVGtoPDF: this element can't be rendered directly: \" + svg.nodeName);\n }\n } else {\n warningCallback('SVGtoPDF: the input does not look like a valid SVG');\n }\n}\n"],"names":["doc","svg","x","y","options","NamedColors","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","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","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","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","DefaultColors","transparent","Entities","quot","amp","lt","gt","apos","OElig","oelig","Scaron","scaron","Yuml","circ","tilde","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","permil","lsaquo","rsaquo","euro","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","copy","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","fnof","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","bull","hellip","prime","Prime","oline","frasl","weierp","image","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","empty","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","prop","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","lang","rang","loz","spades","clubs","hearts","diams","PathArguments","A","a","C","c","H","h","L","l","M","m","Q","q","S","s","T","t","V","v","Z","z","PathFlags","A3","A4","a3","a4","Properties","color","inherit","initial","undefined","visibility","values","hidden","collapse","visible","fill","stroke","nonzero","evenodd","miter","round","bevel","butt","square","small","medium","large","bold","bolder","normal","lighter","italic","oblique","start","middle","end","direction","ltr","rtl","auto","baseline","central","ideographic","alphabetic","hanging","mathematical","super","none","underline","overline","css","preserve","default","pre","nowrap","opacity","transform","display","inline","block","mask","overflow","scroll","blendModeMap","multiply","screen","overlay","darken","lighten","softlight","difference","exclusion","hue","saturation","luminosity","docBeginGroup","bbox","group","PDFGroup","name","_groupCount","resources","ref","xobj","Type","Subtype","FormType","BBox","Group","CS","colorSpace","I","K","Resources","write","savedMatrix","_ctm","savedPage","page","groupStack","push","width","height","data","fonts","xobjects","ext_gstates","patterns","docEndGroup","pop","Object","keys","length","Font","XObject","ExtGState","Pattern","docInsertGroup","addContent","docApplyMask","clip","_maskCount","gstate","CA","ca","BM","SMask","G","BC","applyBlendMode","blendMode","key","String","toLowerCase","pdfBlendMode","docCreatePattern","dx","dy","matrix","pattern","PDFPattern","docUsePattern","_patternCount","PatternType","PaintType","TilingType","XStep","YStep","Matrix","multiplyMatrix","ProcSet","temp","docBeginText","font","size","id","docSetTextMatrix","b","d","e","f","validateNumber","docSetTextMode","mode","docWriteGlyphs","positions","commands","commandStr","skew","fauxItalic","addChar","char","glyph","kern","flush","join","i","pos","isEqual","continuous","cos","Math","rotate","sin","scale","docEndText","docFillColor","constructor","fillOpacity","fillColor","docStrokeColor","strokeOpacity","strokeColor","docInsertLink","w","url","Rect","Border","URI","links","parseXml","xml","SvgNode","tag","type","value","error","nodeName","nodeValue","nodeType","attributes","create","childNodes","parentNode","textContent","classList","prototype","getAttribute","attr","getElementById","result","recursive","node","getElementsByTagName","parser","StringParser","trim","child","match","decodeEntities","split","warningCallback","matchAll","str","replace","mt","m0","m1","m2","fromCharCode","parseInt","parseColor","raw","slice","parseFloat","colorCallback","opacityToColor","isMask","newColor","newOpacity","arguments","transformPoint","p","getGlobalMatrix","ctm","getPageBBox","SvgShape","inverseMatrix","getBoundingBox","dt","validateMatrix","m3","m4","m5","isNotEqual","solveEquation","curve","sqrt","getCurveValue","number","abs","n","isArrayLike","parseTranform","func","nums","parser2","temp2","matchNumber","Number","matchSeparator","PI","parseAspectRatio","aspectRatio","availWidth","availHeight","elemWidth","elemHeight","initAlign","ratioType","xAlign","yAlign","scaleX","scaleY","Min","Mid","Max","max","min","parseStyleAttr","fontFamily","fontSize","fontStyle","fontWeight","fontVariant","parts","parseSelector","ids","classes","tags","specificity","parseStyleSheet","rules","selectors","selector","matchesSelector","elem","indexOf","getStyle","specificities","styleRules","rule","combineArrays","array1","array2","concat","getAscent","ascender","maxY","getDescent","descender","minY","getXHeight","xHeight","getBaseline","shift","dy1","dy2","getTextPos","text","encoded","encode","hex","unicode","charCodeAt","advanceWidth","xAdvance","xOffset","yOffset","yAdvance","createSVGElement","obj","inherits","SvgElemUse","SvgElemSymbol","SvgElemGroup","SvgElemLink","SvgElemSvg","SVGElemImage","SvgElemRect","SvgElemCircle","SvgElemEllipse","SvgElemLine","SvgElemPolyline","SvgElemPolygon","SvgElemPath","SvgElemText","SvgElemTspan","SvgElemTextPath","SvgElemTextNode","SvgElem","getObjectStyles","style","styles","reduce","acc","parseCSSBlendMode","map","string","charAt","toUpperCase","exp","all","index","substring","matchSpace","matchLengthUnit","BezierSegment","p1x","p1y","c1x","c1y","c2x","c2y","p2x","p2y","divisions","precision","equationX","equationY","derivativeX","derivativeY","lengthMap","totalLength","startPoint","atan2","endPoint","minX","maxX","rootsX","rootsY","getPointAtLength","l1","l2","LineSegment","r","pathCommands","pathSegments","startX","startY","currX","currY","lastCom","lastCtrlX","lastCtrlY","move","line","segment","close","addCommand","apply","hasStart","hasEnd","cx","cy","rx","ry","fi","fa","fs","x1","y1","x2","y2","th1","th2","segms","ceil","th3","th4","endX","endY","path","command","Infinity","addBounds","bbox1","j","mergeShape","shape","clone","insertInDocument","moveTo","lineTo","bezierCurveTo","closePath","getSubPaths","subPaths","getMarkers","markers","subPath","subPathMarkers","startMarker","prevEndMarker","endMarker","styleCache","childrenCache","isOuterElement","stack","useCSS","getComputedStyle","allowedChildren","resolveUrl","file","svgObj","documentCallback","svgs","documentCache","computeUnits","unit","percent","isFontSize","getViewport","em","ex","get","px","pt","cm","mm","in","pc","computeLength","temp1","computeLengthList","strict","getLength","getLengthList","getUrl","getNumberList","getViewbox","viewBox","getPercent","chooseValue","keyInfo","parsed","isNaN","object","fallbackColor","SvgElemGradient","SvgElemPattern","dasharray","getChildren","children","getParentVWidth","getVWidth","viewportWidth","getParentVHeight","getVHeight","viewportHeight","getParentViewport","getBoundingShape","SvgElemStylable","call","getTransformation","clipPath","SvgElemClipPath","useMask","SvgElemMask","getFill","isClip","getPaint","getStroke","SvgElemHasChildren","childShape","drawChildren","drawInDocument","SvgElemContainer","drawContent","clipped","masked","save","restore","link","addLink","isText","preserveAspectRatio","src","imageSrc","properties","imageCallback","openImage","rect","translate","fallback","_attr","_getChildren","bBox","gOpacity","bBoxUnitsPattern","bBoxUnitsContent","aspectRatioMatrix","stopColor","bBoxUnits","spread","grad","r2","nAfter","nBefore","nTotal","pow","multiplier","inv","corner1","corner2","corner3","corner4","linearGradient","radialGradient","offset","inOrder","stop","setTransform","SvgElemBasicShape","dashScale","lineWidth","lineCap","circle","dashArray","dashOffset","miterLimit","lineJoin","dash","phase","fillAndStroke","markerStart","markerMid","markerEnd","markersPos","marker","SvgElemMarker","drawMarker","points","pathLength","posArray","strokeWidth","orient","units","refX","refY","SvgElemTextContainer","_pos","dx0","ascent","dy0","dx1","descent","dx2","drawTextInDocument","decorate","_font","fauxBold","childElem","linePosition","pathObject","pathScale","pathElem","textParentElem","processedText","remainingText","textPaths","currentChunk","currentAnchor","currentDirection","currentX","currentY","doAnchoring","last","first","anchordx","startltr","middleltr","endltr","startrtl","middlertl","endrtl","adjustLength","spacingAndGlyphs","firstChar","lastChar","textScale","spaceDiff","currentElem","parentElem","_x","_y","_dx","_dy","_rot","_defRot","fontOptions","fontNameorLink","fontCallback","_index","textLength","wordSpacing","letterSpacing","textAnchor","textDirection","rawText","renderedText","words","xAttr","yAttr","dxAttr","dyAttr","rotAttr","position","textOnPath","textOffset","charMidX","pointOnPath","pxToPt","assumePt","SVGElement","_activeColorProfile","console","warn","family","hasOwnProperty","_registeredFonts","savedFillColor","_fillColor","annotations"],"mappings":"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"}
1
+ {"version":3,"file":"write_svg.es.js","sources":["../lib/write_svg.js"],"sourcesContent":["/* global getComputedStyle, SVGElement */\n\n// This directly taken from SVG-to-PDF\n// Contains some minor patches and changes\nexport default function (doc, svg, x, y, options) {\n 'use strict';\n\n const NamedColors = {\n aliceblue: [240, 248, 255],\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 134, 11],\n darkgray: [169, 169, 169],\n darkgrey: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 250, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n grey: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgrey: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 221],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n rebeccapurple: [102, 51, 153],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [112, 128, 144],\n slategrey: [112, 128, 144],\n snow: [255, 250, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n };\n const DefaultColors = {\n black: [NamedColors.black, 1],\n white: [NamedColors.white, 1],\n transparent: [NamedColors.black, 0],\n };\n const Entities = {\n quot: 34,\n amp: 38,\n lt: 60,\n gt: 62,\n apos: 39,\n OElig: 338,\n oelig: 339,\n Scaron: 352,\n scaron: 353,\n Yuml: 376,\n circ: 710,\n tilde: 732,\n ensp: 8194,\n emsp: 8195,\n thinsp: 8201,\n zwnj: 8204,\n zwj: 8205,\n lrm: 8206,\n rlm: 8207,\n ndash: 8211,\n mdash: 8212,\n lsquo: 8216,\n rsquo: 8217,\n sbquo: 8218,\n ldquo: 8220,\n rdquo: 8221,\n bdquo: 8222,\n dagger: 8224,\n Dagger: 8225,\n permil: 8240,\n lsaquo: 8249,\n rsaquo: 8250,\n euro: 8364,\n nbsp: 160,\n iexcl: 161,\n cent: 162,\n pound: 163,\n curren: 164,\n yen: 165,\n brvbar: 166,\n sect: 167,\n uml: 168,\n copy: 169,\n ordf: 170,\n laquo: 171,\n not: 172,\n shy: 173,\n reg: 174,\n macr: 175,\n deg: 176,\n plusmn: 177,\n sup2: 178,\n sup3: 179,\n acute: 180,\n micro: 181,\n para: 182,\n middot: 183,\n cedil: 184,\n sup1: 185,\n ordm: 186,\n raquo: 187,\n frac14: 188,\n frac12: 189,\n frac34: 190,\n iquest: 191,\n Agrave: 192,\n Aacute: 193,\n Acirc: 194,\n Atilde: 195,\n Auml: 196,\n Aring: 197,\n AElig: 198,\n Ccedil: 199,\n Egrave: 200,\n Eacute: 201,\n Ecirc: 202,\n Euml: 203,\n Igrave: 204,\n Iacute: 205,\n Icirc: 206,\n Iuml: 207,\n ETH: 208,\n Ntilde: 209,\n Ograve: 210,\n Oacute: 211,\n Ocirc: 212,\n Otilde: 213,\n Ouml: 214,\n times: 215,\n Oslash: 216,\n Ugrave: 217,\n Uacute: 218,\n Ucirc: 219,\n Uuml: 220,\n Yacute: 221,\n THORN: 222,\n szlig: 223,\n agrave: 224,\n aacute: 225,\n acirc: 226,\n atilde: 227,\n auml: 228,\n aring: 229,\n aelig: 230,\n ccedil: 231,\n egrave: 232,\n eacute: 233,\n ecirc: 234,\n euml: 235,\n igrave: 236,\n iacute: 237,\n icirc: 238,\n iuml: 239,\n eth: 240,\n ntilde: 241,\n ograve: 242,\n oacute: 243,\n ocirc: 244,\n otilde: 245,\n ouml: 246,\n divide: 247,\n oslash: 248,\n ugrave: 249,\n uacute: 250,\n ucirc: 251,\n uuml: 252,\n yacute: 253,\n thorn: 254,\n yuml: 255,\n fnof: 402,\n Alpha: 913,\n Beta: 914,\n Gamma: 915,\n Delta: 916,\n Epsilon: 917,\n Zeta: 918,\n Eta: 919,\n Theta: 920,\n Iota: 921,\n Kappa: 922,\n Lambda: 923,\n Mu: 924,\n Nu: 925,\n Xi: 926,\n Omicron: 927,\n Pi: 928,\n Rho: 929,\n Sigma: 931,\n Tau: 932,\n Upsilon: 933,\n Phi: 934,\n Chi: 935,\n Psi: 936,\n Omega: 937,\n alpha: 945,\n beta: 946,\n gamma: 947,\n delta: 948,\n epsilon: 949,\n zeta: 950,\n eta: 951,\n theta: 952,\n iota: 953,\n kappa: 954,\n lambda: 955,\n mu: 956,\n nu: 957,\n xi: 958,\n omicron: 959,\n pi: 960,\n rho: 961,\n sigmaf: 962,\n sigma: 963,\n tau: 964,\n upsilon: 965,\n phi: 966,\n chi: 967,\n psi: 968,\n omega: 969,\n thetasym: 977,\n upsih: 978,\n piv: 982,\n bull: 8226,\n hellip: 8230,\n prime: 8242,\n Prime: 8243,\n oline: 8254,\n frasl: 8260,\n weierp: 8472,\n image: 8465,\n real: 8476,\n trade: 8482,\n alefsym: 8501,\n larr: 8592,\n uarr: 8593,\n rarr: 8594,\n darr: 8595,\n harr: 8596,\n crarr: 8629,\n lArr: 8656,\n uArr: 8657,\n rArr: 8658,\n dArr: 8659,\n hArr: 8660,\n forall: 8704,\n part: 8706,\n exist: 8707,\n empty: 8709,\n nabla: 8711,\n isin: 8712,\n notin: 8713,\n ni: 8715,\n prod: 8719,\n sum: 8721,\n minus: 8722,\n lowast: 8727,\n radic: 8730,\n prop: 8733,\n infin: 8734,\n ang: 8736,\n and: 8743,\n or: 8744,\n cap: 8745,\n cup: 8746,\n int: 8747,\n there4: 8756,\n sim: 8764,\n cong: 8773,\n asymp: 8776,\n ne: 8800,\n equiv: 8801,\n le: 8804,\n ge: 8805,\n sub: 8834,\n sup: 8835,\n nsub: 8836,\n sube: 8838,\n supe: 8839,\n oplus: 8853,\n otimes: 8855,\n perp: 8869,\n sdot: 8901,\n lceil: 8968,\n rceil: 8969,\n lfloor: 8970,\n rfloor: 8971,\n lang: 9001,\n rang: 9002,\n loz: 9674,\n spades: 9824,\n clubs: 9827,\n hearts: 9829,\n diams: 9830,\n };\n const PathArguments = {\n A: 7,\n a: 7,\n C: 6,\n c: 6,\n H: 1,\n h: 1,\n L: 2,\n l: 2,\n M: 2,\n m: 2,\n Q: 4,\n q: 4,\n S: 4,\n s: 4,\n T: 2,\n t: 2,\n V: 1,\n v: 1,\n Z: 0,\n z: 0,\n };\n const PathFlags = { A3: true, A4: true, a3: true, a4: true };\n const Properties = {\n color: { inherit: true, initial: undefined },\n visibility: {\n inherit: true,\n initial: 'visible',\n values: { hidden: 'hidden', collapse: 'hidden', visible: 'visible' },\n },\n fill: { inherit: true, initial: DefaultColors.black },\n stroke: { inherit: true, initial: 'none' },\n 'stop-color': { inherit: false, initial: DefaultColors.black },\n 'fill-opacity': { inherit: true, initial: 1 },\n 'stroke-opacity': { inherit: true, initial: 1 },\n 'stop-opacity': { inherit: false, initial: 1 },\n 'fill-rule': {\n inherit: true,\n initial: 'nonzero',\n values: { nonzero: 'nonzero', evenodd: 'evenodd' },\n },\n 'clip-rule': {\n inherit: true,\n initial: 'nonzero',\n values: { nonzero: 'nonzero', evenodd: 'evenodd' },\n },\n 'stroke-width': { inherit: true, initial: 1 },\n 'stroke-dasharray': { inherit: true, initial: [] },\n 'stroke-dashoffset': { inherit: true, initial: 0 },\n 'stroke-miterlimit': { inherit: true, initial: 4 },\n 'stroke-linejoin': {\n inherit: true,\n initial: 'miter',\n values: { miter: 'miter', round: 'round', bevel: 'bevel' },\n },\n 'stroke-linecap': {\n inherit: true,\n initial: 'butt',\n values: { butt: 'butt', round: 'round', square: 'square' },\n },\n 'font-size': {\n inherit: true,\n initial: 16,\n values: {\n 'xx-small': 9,\n 'x-small': 10,\n small: 13,\n medium: 16,\n large: 18,\n 'x-large': 24,\n 'xx-large': 32,\n },\n },\n 'font-family': { inherit: true, initial: 'sans-serif' },\n 'font-weight': {\n inherit: true,\n initial: 'normal',\n values: {\n 600: 'bold',\n 700: 'bold',\n 800: 'bold',\n 900: 'bold',\n bold: 'bold',\n bolder: 'bold',\n 500: 'normal',\n 400: 'normal',\n 300: 'normal',\n 200: 'normal',\n 100: 'normal',\n normal: 'normal',\n lighter: 'normal',\n },\n },\n 'font-style': {\n inherit: true,\n initial: 'normal',\n values: { italic: 'italic', oblique: 'italic', normal: 'normal' },\n },\n 'text-anchor': {\n inherit: true,\n initial: 'start',\n values: { start: 'start', middle: 'middle', end: 'end' },\n },\n direction: {\n inherit: true,\n initial: 'ltr',\n values: { ltr: 'ltr', rtl: 'rtl' },\n },\n 'dominant-baseline': {\n inherit: true,\n initial: 'baseline',\n values: {\n auto: 'baseline',\n baseline: 'baseline',\n 'before-edge': 'before-edge',\n 'text-before-edge': 'before-edge',\n middle: 'middle',\n central: 'central',\n 'after-edge': 'after-edge',\n 'text-after-edge': 'after-edge',\n ideographic: 'ideographic',\n alphabetic: 'alphabetic',\n hanging: 'hanging',\n mathematical: 'mathematical',\n },\n },\n 'alignment-baseline': {\n inherit: false,\n initial: undefined,\n values: {\n auto: 'baseline',\n baseline: 'baseline',\n 'before-edge': 'before-edge',\n 'text-before-edge': 'before-edge',\n middle: 'middle',\n central: 'central',\n 'after-edge': 'after-edge',\n 'text-after-edge': 'after-edge',\n ideographic: 'ideographic',\n alphabetic: 'alphabetic',\n hanging: 'hanging',\n mathematical: 'mathematical',\n },\n },\n 'baseline-shift': {\n inherit: true,\n initial: 'baseline',\n values: { baseline: 'baseline', sub: 'sub', super: 'super' },\n },\n 'word-spacing': { inherit: true, initial: 0, values: { normal: 0 } },\n 'letter-spacing': { inherit: true, initial: 0, values: { normal: 0 } },\n 'text-decoration': {\n inherit: false,\n initial: 'none',\n values: {\n none: 'none',\n underline: 'underline',\n overline: 'overline',\n 'line-through': 'line-through',\n },\n },\n 'xml:space': {\n inherit: true,\n initial: 'default',\n css: 'white-space',\n values: {\n preserve: 'preserve',\n default: 'default',\n pre: 'preserve',\n 'pre-line': 'preserve',\n 'pre-wrap': 'preserve',\n nowrap: 'default',\n },\n },\n 'marker-start': { inherit: true, initial: 'none' },\n 'marker-mid': { inherit: true, initial: 'none' },\n 'marker-end': { inherit: true, initial: 'none' },\n opacity: { inherit: false, initial: 1 },\n transform: { inherit: false, initial: [1, 0, 0, 1, 0, 0] },\n display: {\n inherit: false,\n initial: 'inline',\n values: { none: 'none', inline: 'inline', block: 'inline' },\n },\n 'clip-path': { inherit: false, initial: 'none' },\n mask: { inherit: false, initial: 'none' },\n overflow: {\n inherit: false,\n initial: 'hidden',\n values: { hidden: 'hidden', scroll: 'hidden', visible: 'visible' },\n },\n };\n\n const blendModeMap = {\n normal: 'Normal',\n multiply: 'Multiply',\n screen: 'Screen',\n overlay: 'Overlay',\n darken: 'Darken',\n lighten: 'Lighten',\n colorburn: 'ColorBurn',\n colordodge: 'ColorDodge',\n hardlight: 'HardLight',\n softlight: 'SoftLight',\n 'color-dodge': 'ColorDodge',\n 'color-burn': 'ColorBurn',\n 'hard-light': 'HardLight',\n 'soft-light': 'SoftLight',\n difference: 'Difference',\n exclusion: 'Exclusion',\n hue: 'Hue',\n saturation: 'Saturation',\n color: 'Color',\n luminosity: 'Luminosity',\n };\n\n const maskBackdrop = [0, 0, 0];\n if (doc._activeColorProfile) {\n let i = doc._activeColorProfile.channels - 3;\n while (i > 0) {\n maskBackdrop.push(0);\n i--;\n }\n }\n\n function docBeginGroup(bbox) {\n let group = new (function PDFGroup() {})();\n group.name = 'G' + (doc._groupCount = (doc._groupCount || 0) + 1);\n group.resources = doc.ref();\n group.xobj = doc.ref({\n Type: 'XObject',\n Subtype: 'Form',\n FormType: 1,\n BBox: bbox,\n Group: { S: 'Transparency', CS: colorSpace, I: true, K: false },\n Resources: group.resources,\n });\n group.xobj.write('');\n group.savedMatrix = doc._ctm;\n group.savedPage = doc.page;\n groupStack.push(group);\n doc._ctm = [1, 0, 0, 1, 0, 0];\n doc.page = {\n width: doc.page.width,\n height: doc.page.height,\n write: function (data) {\n group.xobj.write(data);\n },\n fonts: {},\n xobjects: {},\n ext_gstates: {},\n patterns: {},\n };\n return group;\n }\n function docEndGroup(group) {\n if (group !== groupStack.pop()) {\n throw 'Group not matching';\n }\n if (Object.keys(doc.page.fonts).length) {\n group.resources.data.Font = doc.page.fonts;\n }\n if (Object.keys(doc.page.xobjects).length) {\n group.resources.data.XObject = doc.page.xobjects;\n }\n if (Object.keys(doc.page.ext_gstates).length) {\n group.resources.data.ExtGState = doc.page.ext_gstates;\n }\n if (Object.keys(doc.page.patterns).length) {\n group.resources.data.Pattern = doc.page.patterns;\n }\n group.resources.end();\n group.xobj.end();\n doc._ctm = group.savedMatrix;\n doc.page = group.savedPage;\n }\n function docInsertGroup(group) {\n doc.page.xobjects[group.name] = group.xobj;\n doc.addContent('/' + group.name + ' Do');\n }\n function docApplyMask(group, clip) {\n let name = 'M' + (doc._maskCount = (doc._maskCount || 0) + 1);\n let gstate = doc.ref({\n Type: 'ExtGState',\n CA: 1,\n ca: 1,\n BM: 'Normal',\n SMask: {\n // Needs to be Alpha for clipping to work with cmyk color space\n // Clipping mode is reproducing svg clip-path by drawing everything inside clip path with DefaultColors.white [1,1,1,1]\n // And everything outside (not draw, defaults to [0,0,0,0]) is masked off\n S: clip ? 'Alpha' : 'Luminosity',\n G: group.xobj,\n BC: maskBackdrop,\n },\n });\n gstate.end();\n doc.page.ext_gstates[name] = gstate;\n doc.addContent('/' + name + ' gs');\n }\n function applyBlendMode(group, blendMode) {\n // map svg blendMode to pdf\n const key = String(blendMode || '').toLowerCase();\n const pdfBlendMode = blendModeMap[key] || 'Normal';\n\n const name = 'M' + pdfBlendMode;\n const gstate = doc.ref({\n Type: 'ExtGState',\n CA: 1,\n ca: 1,\n BM: pdfBlendMode,\n G: group.xobj,\n });\n gstate.end();\n doc.page.ext_gstates[name] = gstate;\n doc.addContent('/' + name + ' gs');\n }\n function docCreatePattern(group, dx, dy, matrix) {\n let pattern = new (function PDFPattern() {})();\n pattern.group = group;\n pattern.dx = dx;\n pattern.dy = dy;\n pattern.matrix = matrix || [1, 0, 0, 1, 0, 0];\n return pattern;\n }\n function docUsePattern(pattern, stroke) {\n let name = 'P' + (doc._patternCount = (doc._patternCount || 0) + 1);\n let ref = doc.ref({\n Type: 'Pattern',\n PatternType: 1,\n PaintType: 1,\n TilingType: 2,\n BBox: [0, 0, pattern.dx, pattern.dy],\n XStep: pattern.dx,\n YStep: pattern.dy,\n Matrix: multiplyMatrix(doc._ctm, pattern.matrix),\n Resources: {\n ProcSet: ['PDF', 'Text', 'ImageB', 'ImageC', 'ImageI'],\n XObject: (function () {\n let temp = {};\n temp[pattern.group.name] = pattern.group.xobj;\n return temp;\n })(),\n },\n });\n ref.write('/' + pattern.group.name + ' Do');\n ref.end();\n doc.page.patterns[name] = ref;\n if (stroke) {\n doc.addContent('/Pattern CS');\n doc.addContent('/' + name + ' SCN');\n } else {\n doc.addContent('/Pattern cs');\n doc.addContent('/' + name + ' scn');\n }\n }\n function docBeginText(font, size) {\n if (!doc.page.fonts[font.id]) {\n doc.page.fonts[font.id] = font.ref();\n }\n doc.addContent('BT').addContent('/' + font.id + ' ' + size + ' Tf');\n }\n function docSetTextMatrix(a, b, c, d, e, f) {\n doc.addContent(\n validateNumber(a) +\n ' ' +\n validateNumber(b) +\n ' ' +\n validateNumber(-c) +\n ' ' +\n validateNumber(-d) +\n ' ' +\n validateNumber(e) +\n ' ' +\n validateNumber(f) +\n ' Tm',\n );\n }\n function docSetTextMode(fill, stroke) {\n let mode = fill && stroke ? 2 : stroke ? 1 : fill ? 0 : 3;\n doc.addContent(mode + ' Tr');\n }\n function docWriteGlyphs(positions, font) {\n let commands = [];\n let commandStr = '';\n const skew = font.fauxItalic ? -0.25 : 0;\n\n // Add the given character to the 'TJ' command string.\n function addChar(char) {\n commandStr += char.glyph;\n if (char.kern === 0) return;\n commands.push(`<${commandStr}> ${validateNumber(char.kern)}`);\n commandStr = '';\n }\n\n // Flush the current TJ command string to the output stream.\n function flush() {\n if (commandStr.length) {\n commands.push(`<${commandStr}> 0`);\n commandStr = '';\n }\n if (commands.length) {\n doc.addContent(`[${commands.join(' ')}] TJ`);\n commands = [];\n }\n }\n\n for (let i = 0; i < positions.length; i++) {\n const pos = positions[i];\n\n if (pos.hidden || isEqual(pos.width, 0)) {\n flush();\n continue;\n }\n\n if (pos.continuous) {\n addChar(pos);\n continue;\n }\n\n // If this character is non-continuous, flush the command buffer.\n flush();\n\n // Start a new TJ command after writing a Text Matrix (Tm)\n const cos = Math.cos(pos.rotate);\n const sin = Math.sin(pos.rotate);\n docSetTextMatrix(cos * pos.scale, sin * pos.scale, cos * skew - sin, sin * skew + cos, pos.x, pos.y);\n addChar(pos);\n }\n\n // Flush any remaining characters in the buffer.\n flush();\n }\n function docEndText() {\n doc.addContent('ET');\n }\n function docFillColor(color) {\n if (color[0].constructor.name === 'PDFPattern') {\n doc.fillOpacity(color[1]);\n docUsePattern(color[0], false);\n } else {\n doc.fillColor(color[0], color[1]);\n }\n }\n function docStrokeColor(color) {\n if (color[0].constructor.name === 'PDFPattern') {\n doc.strokeOpacity(color[1]);\n docUsePattern(color[0], true);\n } else {\n doc.strokeColor(color[0], color[1]);\n }\n }\n function docInsertLink(x, y, w, h, url) {\n let ref = doc.ref({\n Type: 'Annot',\n Subtype: 'Link',\n Rect: [x, y, w, h],\n Border: [0, 0, 0],\n A: {\n S: 'URI',\n URI: new String(url),\n },\n });\n ref.end();\n links.push(ref);\n }\n function parseXml(xml) {\n let SvgNode = function (tag, type, value, error) {\n this.error = error;\n this.nodeName = tag;\n this.nodeValue = value;\n this.nodeType = type;\n this.attributes = Object.create(null);\n this.childNodes = [];\n this.parentNode = null;\n this.id = '';\n this.textContent = '';\n this.classList = [];\n };\n SvgNode.prototype.getAttribute = function (attr) {\n return this.attributes[attr] != null ? this.attributes[attr] : null;\n };\n SvgNode.prototype.getElementById = function (id) {\n let result = null;\n (function recursive(node) {\n if (result) {\n return;\n }\n if (node.nodeType === 1) {\n if (node.id === id) {\n result = node;\n }\n for (let i = 0; i < node.childNodes.length; i++) {\n recursive(node.childNodes[i]);\n }\n }\n })(this);\n return result;\n };\n SvgNode.prototype.getElementsByTagName = function (tag) {\n let result = [];\n (function recursive(node) {\n if (node.nodeType === 1) {\n if (node.nodeName === tag) {\n result.push(node);\n }\n for (let i = 0; i < node.childNodes.length; i++) {\n recursive(node.childNodes[i]);\n }\n }\n })(this);\n return result;\n };\n let parser = new StringParser(xml.trim()),\n result,\n child,\n error = false;\n let recursive = function () {\n let temp, child;\n if ((temp = parser.match(/^<([\\w:.-]+)\\s*/, true))) {\n // Opening tag\n let node = new SvgNode(temp[1], 1, null, error);\n while ((temp = parser.match(/^([\\w:.-]+)(?:\\s*=\\s*\"([^\"]*)\"|\\s*=\\s*'([^']*)')?\\s*/, true))) {\n // Attribute\n let attr = temp[1],\n value = decodeEntities(temp[2] || temp[3] || '');\n if (!node.attributes[attr]) {\n node.attributes[attr] = value;\n if (attr === 'id') {\n node.id = value;\n }\n if (attr === 'class') {\n node.classList = value.split(' ');\n }\n } else {\n warningCallback('parseXml: duplicate attribute \"' + attr + '\"');\n error = true;\n }\n }\n if (parser.match(/^>/)) {\n // End of opening tag\n while ((child = recursive())) {\n node.childNodes.push(child);\n child.parentNode = node;\n node.textContent += child.nodeType === 3 || child.nodeType === 4 ? child.nodeValue : child.textContent;\n }\n if ((temp = parser.match(/^<\\/([\\w:.-]+)\\s*>/, true))) {\n // Closing tag\n if (temp[1] === node.nodeName) {\n return node;\n } else {\n warningCallback(\n 'parseXml: tag not matching, opening \"' + node.nodeName + '\" & closing \"' + temp[1] + '\"',\n );\n error = true;\n return node;\n }\n } else {\n warningCallback('parseXml: tag not matching, opening \"' + node.nodeName + '\" & not closing');\n error = true;\n return node;\n }\n } else if (parser.match(/^\\/>/)) {\n // Self-closing tag\n return node;\n } else {\n warningCallback('parseXml: tag could not be parsed \"' + node.nodeName + '\"');\n error = true;\n }\n } else if ((temp = parser.match(/^<!--[\\s\\S]*?-->/))) {\n // Comment\n return new SvgNode(null, 8, temp, error);\n } else if ((temp = parser.match(/^<\\?[\\s\\S]*?\\?>/))) {\n // Processing instructions\n return new SvgNode(null, 7, temp, error);\n } else if ((temp = parser.match(/^<!DOCTYPE\\s*([\\s\\S]*?)>/))) {\n // Doctype\n return new SvgNode(null, 10, temp, error);\n } else if ((temp = parser.match(/^<!\\[CDATA\\[([\\s\\S]*?)\\]\\]>/, true))) {\n // Cdata node\n return new SvgNode('#cdata-section', 4, temp[1], error);\n } else if ((temp = parser.match(/^([^<]+)/, true))) {\n // Text node\n return new SvgNode('#text', 3, decodeEntities(temp[1]), error);\n }\n };\n while ((child = recursive())) {\n if (child.nodeType === 1 && !result) {\n result = child;\n } else if (child.nodeType === 1 || (child.nodeType === 3 && child.nodeValue.trim() !== '')) {\n warningCallback('parseXml: data after document end has been discarded');\n }\n }\n if (parser.matchAll()) {\n warningCallback('parseXml: parsing error');\n }\n return result;\n }\n function decodeEntities(str) {\n return str.replace(/&(?:#([0-9]+)|#[xX]([0-9A-Fa-f]+)|([0-9A-Za-z]+));/g, function (mt, m0, m1, m2) {\n if (m0) {\n return String.fromCharCode(parseInt(m0, 10));\n } else if (m1) {\n return String.fromCharCode(parseInt(m1, 16));\n } else if (m2 && Entities[m2]) {\n return String.fromCharCode(Entities[m2]);\n } else {\n return mt;\n }\n });\n }\n function parseColor(raw) {\n let temp, result;\n raw = (raw || '').trim();\n if ((temp = NamedColors[raw])) {\n result = [temp.slice(), 1];\n } else if ((temp = raw.match(/^cmyk\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9.]+)\\s*\\)$/i))) {\n temp[1] = parseInt(temp[1]);\n temp[2] = parseInt(temp[2]);\n temp[3] = parseInt(temp[3]);\n temp[4] = parseInt(temp[4]);\n if (temp[1] <= 100 && temp[2] <= 100 && temp[3] <= 100 && temp[4] <= 100) {\n result = [temp.slice(1, 5), 1];\n }\n } else if ((temp = raw.match(/^rgba\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9.]+)\\s*\\)$/i))) {\n temp[1] = parseInt(temp[1]);\n temp[2] = parseInt(temp[2]);\n temp[3] = parseInt(temp[3]);\n temp[4] = parseFloat(temp[4]);\n if (temp[1] < 256 && temp[2] < 256 && temp[3] < 256 && temp[4] <= 1) {\n result = [temp.slice(1, 4), temp[4]];\n }\n } else if ((temp = raw.match(/^rgb\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*\\)$/i))) {\n temp[1] = parseInt(temp[1]);\n temp[2] = parseInt(temp[2]);\n temp[3] = parseInt(temp[3]);\n if (temp[1] < 256 && temp[2] < 256 && temp[3] < 256) {\n result = [temp.slice(1, 4), 1];\n }\n } else if ((temp = raw.match(/^rgb\\(\\s*([0-9.]+)%\\s*,\\s*([0-9.]+)%\\s*,\\s*([0-9.]+)%\\s*\\)$/i))) {\n temp[1] = 2.55 * parseFloat(temp[1]);\n temp[2] = 2.55 * parseFloat(temp[2]);\n temp[3] = 2.55 * parseFloat(temp[3]);\n if (temp[1] < 256 && temp[2] < 256 && temp[3] < 256) {\n result = [temp.slice(1, 4), 1];\n }\n } else if ((temp = raw.match(/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i))) {\n result = [[parseInt(temp[1], 16), parseInt(temp[2], 16), parseInt(temp[3], 16)], 1];\n } else if ((temp = raw.match(/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i))) {\n result = [[0x11 * parseInt(temp[1], 16), 0x11 * parseInt(temp[2], 16), 0x11 * parseInt(temp[3], 16)], 1];\n }\n return colorCallback ? colorCallback(result, raw) : result;\n }\n function opacityToColor(color, opacity, isMask) {\n let newColor = color[0].slice(),\n newOpacity = color[1] * opacity;\n if (isMask) {\n for (let i = 0; i < newColor.length; i++) {\n newColor[i] *= newOpacity;\n }\n return [newColor, 1];\n } else {\n return [newColor, newOpacity];\n }\n }\n function multiplyMatrix() {\n function multiply(a, b) {\n return [\n a[0] * b[0] + a[2] * b[1],\n a[1] * b[0] + a[3] * b[1],\n a[0] * b[2] + a[2] * b[3],\n a[1] * b[2] + a[3] * b[3],\n a[0] * b[4] + a[2] * b[5] + a[4],\n a[1] * b[4] + a[3] * b[5] + a[5],\n ];\n }\n let result = arguments[0];\n for (let i = 1; i < arguments.length; i++) {\n result = multiply(result, arguments[i]);\n }\n return result;\n }\n function transformPoint(p, m) {\n return [m[0] * p[0] + m[2] * p[1] + m[4], m[1] * p[0] + m[3] * p[1] + m[5]];\n }\n function getGlobalMatrix() {\n let ctm = doc._ctm;\n for (let i = groupStack.length - 1; i >= 0; i--) {\n ctm = multiplyMatrix(groupStack[i].savedMatrix, ctm);\n }\n return ctm;\n }\n function getPageBBox() {\n return new SvgShape()\n .M(0, 0)\n .L(doc.page.width, 0)\n .L(doc.page.width, doc.page.height)\n .L(0, doc.page.height)\n .transform(inverseMatrix(getGlobalMatrix()))\n .getBoundingBox();\n }\n function inverseMatrix(m) {\n let dt = m[0] * m[3] - m[1] * m[2];\n return [\n m[3] / dt,\n -m[1] / dt,\n -m[2] / dt,\n m[0] / dt,\n (m[2] * m[5] - m[3] * m[4]) / dt,\n (m[1] * m[4] - m[0] * m[5]) / dt,\n ];\n }\n function validateMatrix(m) {\n let m0 = validateNumber(m[0]),\n m1 = validateNumber(m[1]),\n m2 = validateNumber(m[2]),\n m3 = validateNumber(m[3]),\n m4 = validateNumber(m[4]),\n m5 = validateNumber(m[5]);\n if (isNotEqual(m0 * m3 - m1 * m2, 0)) {\n return [m0, m1, m2, m3, m4, m5];\n }\n }\n function solveEquation(curve) {\n let a = curve[2] || 0,\n b = curve[1] || 0,\n c = curve[0] || 0;\n if (isEqual(a, 0) && isEqual(b, 0)) {\n return [];\n } else if (isEqual(a, 0)) {\n return [-c / b];\n } else {\n let d = b * b - 4 * a * c;\n if (isNotEqual(d, 0) && d > 0) {\n return [(-b + Math.sqrt(d)) / (2 * a), (-b - Math.sqrt(d)) / (2 * a)];\n } else if (isEqual(d, 0)) {\n return [-b / (2 * a)];\n } else {\n return [];\n }\n }\n }\n function getCurveValue(t, curve) {\n return (curve[0] || 0) + (curve[1] || 0) * t + (curve[2] || 0) * t * t + (curve[3] || 0) * t * t * t;\n }\n function isEqual(number, ref) {\n return Math.abs(number - ref) < 1e-10;\n }\n function isNotEqual(number, ref) {\n return Math.abs(number - ref) >= 1e-10;\n }\n function validateNumber(n) {\n return n > -1e21 && n < 1e21 ? Math.round(n * 1e6) / 1e6 : 0;\n }\n function isArrayLike(v) {\n return typeof v === 'object' && v !== null && typeof v.length === 'number';\n }\n function parseTranform(v) {\n let parser = new StringParser((v || '').trim()),\n result = [1, 0, 0, 1, 0, 0],\n temp;\n while ((temp = parser.match(/^([A-Za-z]+)\\s*[(]([^(]+)[)]/, true))) {\n let func = temp[1],\n nums = [],\n parser2 = new StringParser(temp[2].trim()),\n temp2;\n while ((temp2 = parser2.matchNumber())) {\n nums.push(Number(temp2));\n parser2.matchSeparator();\n }\n if (func === 'matrix' && nums.length === 6) {\n result = multiplyMatrix(result, [nums[0], nums[1], nums[2], nums[3], nums[4], nums[5]]);\n } else if (func === 'translate' && nums.length === 2) {\n result = multiplyMatrix(result, [1, 0, 0, 1, nums[0], nums[1]]);\n } else if (func === 'translate' && nums.length === 1) {\n result = multiplyMatrix(result, [1, 0, 0, 1, nums[0], 0]);\n } else if (func === 'scale' && nums.length === 2) {\n result = multiplyMatrix(result, [nums[0], 0, 0, nums[1], 0, 0]);\n } else if (func === 'scale' && nums.length === 1) {\n result = multiplyMatrix(result, [nums[0], 0, 0, nums[0], 0, 0]);\n } else if (func === 'rotate' && nums.length === 3) {\n let a = (nums[0] * Math.PI) / 180;\n result = multiplyMatrix(\n result,\n [1, 0, 0, 1, nums[1], nums[2]],\n [Math.cos(a), Math.sin(a), -Math.sin(a), Math.cos(a), 0, 0],\n [1, 0, 0, 1, -nums[1], -nums[2]],\n );\n } else if (func === 'rotate' && nums.length === 1) {\n let a = (nums[0] * Math.PI) / 180;\n result = multiplyMatrix(result, [Math.cos(a), Math.sin(a), -Math.sin(a), Math.cos(a), 0, 0]);\n } else if (func === 'skewX' && nums.length === 1) {\n let a = (nums[0] * Math.PI) / 180;\n result = multiplyMatrix(result, [1, 0, Math.tan(a), 1, 0, 0]);\n } else if (func === 'skewY' && nums.length === 1) {\n let a = (nums[0] * Math.PI) / 180;\n result = multiplyMatrix(result, [1, Math.tan(a), 0, 1, 0, 0]);\n } else {\n return;\n }\n parser.matchSeparator();\n }\n if (parser.matchAll()) {\n return;\n }\n return result;\n }\n function parseAspectRatio(aspectRatio, availWidth, availHeight, elemWidth, elemHeight, initAlign) {\n let temp = (aspectRatio || '').trim().match(/^(none)$|^x(Min|Mid|Max)Y(Min|Mid|Max)(?:\\s+(meet|slice))?$/) || [],\n ratioType = temp[1] || temp[4] || 'meet',\n xAlign = temp[2] || 'Mid',\n yAlign = temp[3] || 'Mid',\n scaleX = availWidth / elemWidth,\n scaleY = availHeight / elemHeight,\n dx = { Min: 0, Mid: 0.5, Max: 1 }[xAlign] - (initAlign || 0),\n dy = { Min: 0, Mid: 0.5, Max: 1 }[yAlign] - (initAlign || 0);\n if (ratioType === 'slice') {\n scaleY = scaleX = Math.max(scaleX, scaleY);\n } else if (ratioType === 'meet') {\n scaleY = scaleX = Math.min(scaleX, scaleY);\n }\n return [scaleX, 0, 0, scaleY, dx * (availWidth - elemWidth * scaleX), dy * (availHeight - elemHeight * scaleY)];\n }\n function parseStyleAttr(v) {\n let result = Object.create(null);\n v = (v || '').trim().split(/;/);\n for (let i = 0; i < v.length; i++) {\n let key = (v[i].split(':')[0] || '').trim(),\n value = (v[i].split(':')[1] || '').trim();\n if (key) {\n result[key] = value;\n }\n }\n if (result['marker']) {\n if (!result['marker-start']) {\n result['marker-start'] = result['marker'];\n }\n if (!result['marker-mid']) {\n result['marker-mid'] = result['marker'];\n }\n if (!result['marker-end']) {\n result['marker-end'] = result['marker'];\n }\n }\n if (result['font']) {\n let fontFamily = null,\n fontSize = null,\n fontStyle = 'normal',\n fontWeight = 'normal',\n fontVariant = 'normal';\n let parts = result['font'].split(/\\s+/);\n for (let i = 0; i < parts.length; i++) {\n switch (parts[i]) {\n case 'normal':\n break;\n case 'italic':\n case 'oblique':\n fontStyle = parts[i];\n break;\n case 'small-caps':\n fontVariant = parts[i];\n break;\n case 'bold':\n case 'bolder':\n case 'lighter':\n case '100':\n case '200':\n case '300':\n case '400':\n case '500':\n case '600':\n case '700':\n case '800':\n case '900':\n fontWeight = parts[i];\n break;\n default:\n if (!fontSize) {\n fontSize = parts[i].split('/')[0];\n } else {\n if (!fontFamily) {\n fontFamily = parts[i];\n } else {\n fontFamily += ' ' + parts[i];\n }\n }\n break;\n }\n }\n if (!result['font-style']) {\n result['font-style'] = fontStyle;\n }\n if (!result['font-variant']) {\n result['font-variant'] = fontVariant;\n }\n if (!result['font-weight']) {\n result['font-weight'] = fontWeight;\n }\n if (!result['font-size']) {\n result['font-size'] = fontSize;\n }\n if (!result['font-family']) {\n result['font-family'] = fontFamily;\n }\n }\n return result;\n }\n function parseSelector(v) {\n let parts = v.split(/(?=[.#])/g),\n ids = [],\n classes = [],\n tags = [],\n temp;\n for (let i = 0; i < parts.length; i++) {\n if ((temp = parts[i].match(/^[#]([_A-Za-z0-9-]+)$/))) {\n ids.push(temp[1]);\n } else if ((temp = parts[i].match(/^[.]([_A-Za-z0-9-]+)$/))) {\n classes.push(temp[1]);\n } else if ((temp = parts[i].match(/^([_A-Za-z0-9-]+)$/))) {\n tags.push(temp[1]);\n } else if (parts[i] !== '*') {\n return;\n }\n }\n return {\n tags: tags,\n ids: ids,\n classes: classes,\n specificity: ids.length * 10000 + classes.length * 100 + tags.length,\n };\n }\n function parseStyleSheet(v) {\n const parser = new StringParser(v.trim());\n const rules = [];\n let m;\n\n while ((m = parser.match(/^\\s*([^{}]*?)\\s*\\{([^{}]*?)\\}/, true))) {\n const css = parseStyleAttr(m[2]);\n const selectors = m[1].split(',');\n\n for (let i = 0; i < selectors.length; i++) {\n const selector = parseSelector(selectors[i].trim());\n if (selector) rules.push({ selector, css });\n }\n }\n\n return rules;\n }\n function matchesSelector(elem, selector) {\n if (elem.nodeType !== 1) {\n return false;\n }\n for (let i = 0; i < selector.tags.length; i++) {\n if (selector.tags[i] !== elem.nodeName) {\n return false;\n }\n }\n for (let i = 0; i < selector.ids.length; i++) {\n if (selector.ids[i] !== elem.id) {\n return false;\n }\n }\n for (let i = 0; i < selector.classes.length; i++) {\n if (elem.classList.indexOf(selector.classes[i]) === -1) {\n return false;\n }\n }\n return true;\n }\n function getStyle(elem) {\n let result = Object.create(null);\n let specificities = Object.create(null);\n for (let i = 0; i < styleRules.length; i++) {\n let rule = styleRules[i];\n if (matchesSelector(elem, rule.selector)) {\n for (let key in rule.css) {\n if (!(specificities[key] > rule.selector.specificity)) {\n result[key] = rule.css[key];\n specificities[key] = rule.selector.specificity;\n }\n }\n }\n }\n return result;\n }\n function combineArrays(array1, array2) {\n return array1.concat(array2.slice(array1.length));\n }\n function getAscent(font, size) {\n return (Math.max(font.ascender, (font.bbox[3] || font.bbox.maxY) * (font.scale || 1)) * size) / 1000;\n }\n function getDescent(font, size) {\n return (Math.min(font.descender, (font.bbox[1] || font.bbox.minY) * (font.scale || 1)) * size) / 1000;\n }\n function getXHeight(font, size) {\n return ((font.xHeight || 0.5 * (font.ascender - font.descender)) * size) / 1000;\n }\n function getBaseline(font, size, baseline, shift) {\n let dy1, dy2;\n switch (baseline) {\n case 'middle':\n dy1 = 0.5 * getXHeight(font, size);\n break;\n case 'central':\n dy1 = 0.5 * (getDescent(font, size) + getAscent(font, size));\n break;\n case 'after-edge':\n case 'text-after-edge':\n dy1 = getDescent(font, size);\n break;\n case 'alphabetic':\n case 'auto':\n case 'baseline':\n dy1 = 0;\n break;\n case 'mathematical':\n dy1 = 0.5 * getAscent(font, size);\n break;\n case 'hanging':\n dy1 = 0.8 * getAscent(font, size);\n break;\n case 'before-edge':\n case 'text-before-edge':\n dy1 = getAscent(font, size);\n break;\n default:\n dy1 = 0;\n break;\n }\n switch (shift) {\n case 'baseline':\n dy2 = 0;\n break;\n case 'super':\n dy2 = 0.6 * size;\n break;\n case 'sub':\n dy2 = -0.6 * size;\n break;\n default:\n dy2 = shift;\n break;\n }\n return dy1 - dy2;\n }\n function getTextPos(font, size, text) {\n let encoded = font.encode('' + text),\n hex = encoded[0],\n pos = encoded[1],\n data = [];\n for (let i = 0; i < hex.length; i++) {\n let unicode = font.unicode ? font.unicode[parseInt(hex[i], 16)] : [text.charCodeAt(i)];\n data.push({\n glyph: hex[i],\n unicode: unicode,\n kern: pos[i].advanceWidth - pos[i].xAdvance,\n width: (pos[i].advanceWidth * size) / 1000,\n xOffset: (pos[i].xOffset * size) / 1000,\n yOffset: (pos[i].yOffset * size) / 1000,\n xAdvance: (pos[i].xAdvance * size) / 1000,\n yAdvance: (pos[i].yAdvance * size) / 1000,\n });\n }\n return data;\n }\n function createSVGElement(obj, inherits) {\n switch (obj.nodeName) {\n case 'use':\n return new SvgElemUse(obj, inherits);\n case 'symbol':\n return new SvgElemSymbol(obj, inherits);\n case 'g':\n return new SvgElemGroup(obj, inherits);\n case 'a':\n return new SvgElemLink(obj, inherits);\n case 'svg':\n return new SvgElemSvg(obj, inherits);\n case 'image':\n return new SVGElemImage(obj, inherits);\n case 'rect':\n return new SvgElemRect(obj, inherits);\n case 'circle':\n return new SvgElemCircle(obj, inherits);\n case 'ellipse':\n return new SvgElemEllipse(obj, inherits);\n case 'line':\n return new SvgElemLine(obj, inherits);\n case 'polyline':\n return new SvgElemPolyline(obj, inherits);\n case 'polygon':\n return new SvgElemPolygon(obj, inherits);\n case 'path':\n return new SvgElemPath(obj, inherits);\n case 'text':\n return new SvgElemText(obj, inherits);\n case 'tspan':\n return new SvgElemTspan(obj, inherits);\n case 'textPath':\n return new SvgElemTextPath(obj, inherits);\n case '#text':\n case '#cdata-section':\n return new SvgElemTextNode(obj, inherits);\n default:\n return new SvgElem(obj, inherits);\n }\n }\n\n /* Utilities for blend modes */\n function getObjectStyles(obj) {\n if (!obj.attributes.style) return {};\n\n const styles = obj.attributes.style.split(';');\n return styles.reduce((acc, style) => {\n const [key, value] = style.split(':');\n if (!key) {\n return acc;\n }\n acc[key.trim()] = value.trim();\n return acc;\n }, {});\n }\n\n // pdf BlendModes https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdf_reference_archive/blend_modes.pdf\n function parseCSSBlendMode(blendMode) {\n return blendMode\n .split('-')\n .map((string) => string.charAt(0).toUpperCase() + string.slice(1))\n .join('');\n }\n\n var StringParser = function (str) {\n this.match = function (exp, all) {\n let temp = str.match(exp);\n if (!temp || temp.index !== 0) {\n return;\n }\n str = str.substring(temp[0].length);\n return all ? temp : temp[0];\n };\n this.matchSeparator = function () {\n return this.match(/^(?:\\s*,\\s*|\\s*|)/);\n };\n this.matchSpace = function () {\n return this.match(/^(?:\\s*)/);\n };\n this.matchLengthUnit = function () {\n return this.match(/^(?:px|pt|cm|mm|in|pc|em|ex|%|)/);\n };\n this.matchNumber = function () {\n return this.match(/^(?:[-+]?(?:[0-9]+[.][0-9]+|[0-9]+[.]|[.][0-9]+|[0-9]+)(?:[eE][-+]?[0-9]+)?)/);\n };\n this.matchAll = function () {\n return this.match(/^[\\s\\S]+/);\n };\n };\n\n var BezierSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\n let divisions = 6 * precision;\n let equationX = [p1x, -3 * p1x + 3 * c1x, 3 * p1x - 6 * c1x + 3 * c2x, -p1x + 3 * c1x - 3 * c2x + p2x];\n let equationY = [p1y, -3 * p1y + 3 * c1y, 3 * p1y - 6 * c1y + 3 * c2y, -p1y + 3 * c1y - 3 * c2y + p2y];\n let derivativeX = [-3 * p1x + 3 * c1x, 6 * p1x - 12 * c1x + 6 * c2x, -3 * p1x + 9 * c1x - 9 * c2x + 3 * p2x];\n let derivativeY = [-3 * p1y + 3 * c1y, 6 * p1y - 12 * c1y + 6 * c2y, -3 * p1y + 9 * c1y - 9 * c2y + 3 * p2y];\n let lengthMap = [0];\n for (let i = 1; i <= divisions; i++) {\n let t = (i - 0.5) / divisions;\n let dx = getCurveValue(t, derivativeX) / divisions,\n dy = getCurveValue(t, derivativeY) / divisions,\n l = Math.sqrt(dx * dx + dy * dy);\n lengthMap[i] = lengthMap[i - 1] + l;\n }\n this.totalLength = lengthMap[divisions];\n this.startPoint = [\n p1x,\n p1y,\n isEqual(p1x, c1x) && isEqual(p1y, c1y) ? Math.atan2(c2y - c1y, c2x - c1x) : Math.atan2(c1y - p1y, c1x - p1x),\n ];\n this.endPoint = [\n p2x,\n p2y,\n isEqual(c2x, p2x) && isEqual(c2y, p2y) ? Math.atan2(c2y - c1y, c2x - c1x) : Math.atan2(p2y - c2y, p2x - c2x),\n ];\n this.getBoundingBox = function () {\n let temp;\n let minX = getCurveValue(0, equationX),\n minY = getCurveValue(0, equationY),\n maxX = getCurveValue(1, equationX),\n maxY = getCurveValue(1, equationY);\n if (minX > maxX) {\n temp = maxX;\n maxX = minX;\n minX = temp;\n }\n if (minY > maxY) {\n temp = maxY;\n maxY = minY;\n minY = temp;\n }\n let rootsX = solveEquation(derivativeX);\n for (let i = 0; i < rootsX.length; i++) {\n if (rootsX[i] >= 0 && rootsX[i] <= 1) {\n let x = getCurveValue(rootsX[i], equationX);\n if (x < minX) {\n minX = x;\n }\n if (x > maxX) {\n maxX = x;\n }\n }\n }\n let rootsY = solveEquation(derivativeY);\n for (let i = 0; i < rootsY.length; i++) {\n if (rootsY[i] >= 0 && rootsY[i] <= 1) {\n let y = getCurveValue(rootsY[i], equationY);\n if (y < minY) {\n minY = y;\n }\n if (y > maxY) {\n maxY = y;\n }\n }\n }\n return [minX, minY, maxX, maxY];\n };\n this.getPointAtLength = function (l) {\n if (isEqual(l, 0)) {\n return this.startPoint;\n }\n if (isEqual(l, this.totalLength)) {\n return this.endPoint;\n }\n if (l < 0 || l > this.totalLength) {\n return;\n }\n for (let i = 1; i <= divisions; i++) {\n let l1 = lengthMap[i - 1],\n l2 = lengthMap[i];\n if (l1 <= l && l <= l2) {\n let t = (i - (l2 - l) / (l2 - l1)) / divisions,\n x = getCurveValue(t, equationX),\n y = getCurveValue(t, equationY),\n dx = getCurveValue(t, derivativeX),\n dy = getCurveValue(t, derivativeY);\n return [x, y, Math.atan2(dy, dx)];\n }\n }\n };\n };\n\n var LineSegment = function (p1x, p1y, p2x, p2y) {\n this.totalLength = Math.sqrt((p2x - p1x) * (p2x - p1x) + (p2y - p1y) * (p2y - p1y));\n this.startPoint = [p1x, p1y, Math.atan2(p2y - p1y, p2x - p1x)];\n this.endPoint = [p2x, p2y, Math.atan2(p2y - p1y, p2x - p1x)];\n this.getBoundingBox = function () {\n return [\n Math.min(this.startPoint[0], this.endPoint[0]),\n Math.min(this.startPoint[1], this.endPoint[1]),\n Math.max(this.startPoint[0], this.endPoint[0]),\n Math.max(this.startPoint[1], this.endPoint[1]),\n ];\n };\n this.getPointAtLength = function (l) {\n if (l >= 0 && l <= this.totalLength) {\n let r = l / this.totalLength || 0,\n x = this.startPoint[0] + r * (this.endPoint[0] - this.startPoint[0]),\n y = this.startPoint[1] + r * (this.endPoint[1] - this.startPoint[1]);\n return [x, y, this.startPoint[2]];\n }\n };\n };\n\n var SvgShape = function () {\n this.pathCommands = [];\n this.pathSegments = [];\n this.startPoint = null;\n this.endPoint = null;\n this.totalLength = 0;\n let startX = 0,\n startY = 0,\n currX = 0,\n currY = 0,\n lastCom,\n lastCtrlX,\n lastCtrlY;\n this.move = function (x, y) {\n startX = currX = x;\n startY = currY = y;\n return null;\n };\n this.line = function (x, y) {\n let segment = new LineSegment(currX, currY, x, y);\n currX = x;\n currY = y;\n return segment;\n };\n this.curve = function (c1x, c1y, c2x, c2y, x, y) {\n let segment = new BezierSegment(currX, currY, c1x, c1y, c2x, c2y, x, y);\n currX = x;\n currY = y;\n return segment;\n };\n this.close = function () {\n let segment = new LineSegment(currX, currY, startX, startY);\n currX = startX;\n currY = startY;\n return segment;\n };\n this.addCommand = function (data) {\n this.pathCommands.push(data);\n let segment = this[data[0]].apply(this, data.slice(3));\n if (segment) {\n segment.hasStart = data[1];\n segment.hasEnd = data[2];\n this.startPoint = this.startPoint || segment.startPoint;\n this.endPoint = segment.endPoint;\n this.pathSegments.push(segment);\n this.totalLength += segment.totalLength;\n }\n };\n this.M = function (x, y) {\n this.addCommand(['move', true, true, x, y]);\n lastCom = 'M';\n return this;\n };\n this.m = function (x, y) {\n return this.M(currX + x, currY + y);\n };\n this.Z = this.z = function () {\n this.addCommand(['close', true, true]);\n lastCom = 'Z';\n return this;\n };\n this.L = function (x, y) {\n this.addCommand(['line', true, true, x, y]);\n lastCom = 'L';\n return this;\n };\n this.l = function (x, y) {\n return this.L(currX + x, currY + y);\n };\n this.H = function (x) {\n return this.L(x, currY);\n };\n this.h = function (x) {\n return this.L(currX + x, currY);\n };\n this.V = function (y) {\n return this.L(currX, y);\n };\n this.v = function (y) {\n return this.L(currX, currY + y);\n };\n this.C = function (c1x, c1y, c2x, c2y, x, y) {\n this.addCommand(['curve', true, true, c1x, c1y, c2x, c2y, x, y]);\n lastCom = 'C';\n lastCtrlX = c2x;\n lastCtrlY = c2y;\n return this;\n };\n this.c = function (c1x, c1y, c2x, c2y, x, y) {\n return this.C(currX + c1x, currY + c1y, currX + c2x, currY + c2y, currX + x, currY + y);\n };\n this.S = function (c1x, c1y, x, y) {\n return this.C(\n currX + (lastCom === 'C' ? currX - lastCtrlX : 0),\n currY + (lastCom === 'C' ? currY - lastCtrlY : 0),\n c1x,\n c1y,\n x,\n y,\n );\n };\n this.s = function (c1x, c1y, x, y) {\n return this.C(\n currX + (lastCom === 'C' ? currX - lastCtrlX : 0),\n currY + (lastCom === 'C' ? currY - lastCtrlY : 0),\n currX + c1x,\n currY + c1y,\n currX + x,\n currY + y,\n );\n };\n this.Q = function (cx, cy, x, y) {\n let c1x = currX + (2 / 3) * (cx - currX),\n c1y = currY + (2 / 3) * (cy - currY),\n c2x = x + (2 / 3) * (cx - x),\n c2y = y + (2 / 3) * (cy - y);\n this.addCommand(['curve', true, true, c1x, c1y, c2x, c2y, x, y]);\n lastCom = 'Q';\n lastCtrlX = cx;\n lastCtrlY = cy;\n return this;\n };\n this.q = function (c1x, c1y, x, y) {\n return this.Q(currX + c1x, currY + c1y, currX + x, currY + y);\n };\n this.T = function (x, y) {\n return this.Q(\n currX + (lastCom === 'Q' ? currX - lastCtrlX : 0),\n currY + (lastCom === 'Q' ? currY - lastCtrlY : 0),\n x,\n y,\n );\n };\n this.t = function (x, y) {\n return this.Q(\n currX + (lastCom === 'Q' ? currX - lastCtrlX : 0),\n currY + (lastCom === 'Q' ? currY - lastCtrlY : 0),\n currX + x,\n currY + y,\n );\n };\n this.A = function (rx, ry, fi, fa, fs, x, y) {\n if (isEqual(rx, 0) || isEqual(ry, 0)) {\n this.addCommand(['line', true, true, x, y]);\n } else {\n fi = fi * (Math.PI / 180);\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n fa = 1 * !!fa;\n fs = 1 * !!fs;\n let x1 = (Math.cos(fi) * (currX - x)) / 2 + (Math.sin(fi) * (currY - y)) / 2,\n y1 = (Math.cos(fi) * (currY - y)) / 2 - (Math.sin(fi) * (currX - x)) / 2,\n lambda = (x1 * x1) / (rx * rx) + (y1 * y1) / (ry * ry);\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n let r = Math.sqrt(\n Math.max(0, rx * rx * ry * ry - rx * rx * y1 * y1 - ry * ry * x1 * x1) /\n (rx * rx * y1 * y1 + ry * ry * x1 * x1),\n ),\n x2 = ((fa === fs ? -1 : 1) * r * rx * y1) / ry,\n y2 = ((fa === fs ? 1 : -1) * r * ry * x1) / rx;\n let cx = Math.cos(fi) * x2 - Math.sin(fi) * y2 + (currX + x) / 2,\n cy = Math.sin(fi) * x2 + Math.cos(fi) * y2 + (currY + y) / 2,\n th1 = Math.atan2((y1 - y2) / ry, (x1 - x2) / rx),\n th2 = Math.atan2((-y1 - y2) / ry, (-x1 - x2) / rx);\n if (fs === 0 && th2 - th1 > 0) {\n th2 -= 2 * Math.PI;\n } else if (fs === 1 && th2 - th1 < 0) {\n th2 += 2 * Math.PI;\n }\n let segms = Math.ceil(Math.abs(th2 - th1) / (Math.PI / precision));\n for (let i = 0; i < segms; i++) {\n let th3 = th1 + (i * (th2 - th1)) / segms,\n th4 = th1 + ((i + 1) * (th2 - th1)) / segms,\n t = (4 / 3) * Math.tan((th4 - th3) / 4);\n let c1x =\n cx +\n Math.cos(fi) * rx * (Math.cos(th3) - t * Math.sin(th3)) -\n Math.sin(fi) * ry * (Math.sin(th3) + t * Math.cos(th3)),\n c1y =\n cy +\n Math.sin(fi) * rx * (Math.cos(th3) - t * Math.sin(th3)) +\n Math.cos(fi) * ry * (Math.sin(th3) + t * Math.cos(th3)),\n c2x =\n cx +\n Math.cos(fi) * rx * (Math.cos(th4) + t * Math.sin(th4)) -\n Math.sin(fi) * ry * (Math.sin(th4) - t * Math.cos(th4)),\n c2y =\n cy +\n Math.sin(fi) * rx * (Math.cos(th4) + t * Math.sin(th4)) +\n Math.cos(fi) * ry * (Math.sin(th4) - t * Math.cos(th4)),\n endX = cx + Math.cos(fi) * rx * Math.cos(th4) - Math.sin(fi) * ry * Math.sin(th4),\n endY = cy + Math.sin(fi) * rx * Math.cos(th4) + Math.cos(fi) * ry * Math.sin(th4);\n this.addCommand(['curve', i === 0, i === segms - 1, c1x, c1y, c2x, c2y, endX, endY]);\n }\n }\n lastCom = 'A';\n return this;\n };\n this.a = function (rx, ry, fi, fa, fs, x, y) {\n return this.A(rx, ry, fi, fa, fs, currX + x, currY + y);\n };\n this.path = function (d) {\n let command,\n value,\n temp,\n parser = new StringParser((d || '').trim());\n while ((command = parser.match(/^[astvzqmhlcASTVZQMHLC]/))) {\n parser.matchSeparator();\n let values = [];\n while ((value = PathFlags[command + values.length] ? parser.match(/^[01]/) : parser.matchNumber())) {\n parser.matchSeparator();\n if (values.length === PathArguments[command]) {\n this[command].apply(this, values);\n values = [];\n if (command === 'M') {\n command = 'L';\n } else if (command === 'm') {\n command = 'l';\n }\n }\n values.push(Number(value));\n }\n if (values.length === PathArguments[command]) {\n this[command].apply(this, values);\n } else {\n warningCallback('SvgPath: command ' + command + ' with ' + values.length + ' numbers');\n return;\n }\n }\n if ((temp = parser.matchAll())) {\n warningCallback('SvgPath: unexpected string ' + temp);\n }\n return this;\n };\n this.getBoundingBox = function () {\n let bbox = [Infinity, Infinity, -Infinity, -Infinity];\n function addBounds(bbox1) {\n if (bbox1[0] < bbox[0]) {\n bbox[0] = bbox1[0];\n }\n if (bbox1[2] > bbox[2]) {\n bbox[2] = bbox1[2];\n }\n if (bbox1[1] < bbox[1]) {\n bbox[1] = bbox1[1];\n }\n if (bbox1[3] > bbox[3]) {\n bbox[3] = bbox1[3];\n }\n }\n for (let i = 0; i < this.pathSegments.length; i++) {\n addBounds(this.pathSegments[i].getBoundingBox());\n }\n if (bbox[0] === Infinity) {\n bbox[0] = 0;\n }\n if (bbox[1] === Infinity) {\n bbox[1] = 0;\n }\n if (bbox[2] === -Infinity) {\n bbox[2] = 0;\n }\n if (bbox[3] === -Infinity) {\n bbox[3] = 0;\n }\n return bbox;\n };\n this.getPointAtLength = function (l) {\n if (l >= 0 && l <= this.totalLength) {\n let temp;\n for (let i = 0; i < this.pathSegments.length; i++) {\n if ((temp = this.pathSegments[i].getPointAtLength(l))) {\n return temp;\n }\n l -= this.pathSegments[i].totalLength;\n }\n return this.endPoint;\n }\n };\n this.transform = function (m) {\n this.pathSegments = [];\n this.startPoint = null;\n this.endPoint = null;\n this.totalLength = 0;\n for (let i = 0; i < this.pathCommands.length; i++) {\n let data = this.pathCommands.shift();\n for (let j = 3; j < data.length; j += 2) {\n let p = transformPoint([data[j], data[j + 1]], m);\n data[j] = p[0];\n data[j + 1] = p[1];\n }\n this.addCommand(data);\n }\n return this;\n };\n this.mergeShape = function (shape) {\n for (let i = 0; i < shape.pathCommands.length; i++) {\n this.addCommand(shape.pathCommands[i].slice());\n }\n return this;\n };\n this.clone = function () {\n return new SvgShape().mergeShape(this);\n };\n this.insertInDocument = function () {\n for (let i = 0; i < this.pathCommands.length; i++) {\n let command = this.pathCommands[i][0],\n values = this.pathCommands[i].slice(3);\n switch (command) {\n case 'move':\n doc.moveTo(values[0], values[1]);\n break;\n case 'line':\n doc.lineTo(values[0], values[1]);\n break;\n case 'curve':\n doc.bezierCurveTo(values[0], values[1], values[2], values[3], values[4], values[5]);\n break;\n case 'close':\n doc.closePath();\n break;\n }\n }\n };\n this.getSubPaths = function () {\n let subPaths = [],\n shape = new SvgShape();\n for (let i = 0; i < this.pathCommands.length; i++) {\n let data = this.pathCommands[i],\n command = this.pathCommands[i][0];\n if (command === 'move' && i !== 0) {\n subPaths.push(shape);\n shape = new SvgShape();\n }\n shape.addCommand(data);\n }\n subPaths.push(shape);\n return subPaths;\n };\n this.getMarkers = function () {\n let markers = [],\n subPaths = this.getSubPaths();\n for (let i = 0; i < subPaths.length; i++) {\n let subPath = subPaths[i],\n subPathMarkers = [];\n for (let j = 0; j < subPath.pathSegments.length; j++) {\n let segment = subPath.pathSegments[j];\n if (isNotEqual(segment.totalLength, 0) || j === 0 || j === subPath.pathSegments.length - 1) {\n if (segment.hasStart) {\n let startMarker = segment.getPointAtLength(0),\n prevEndMarker = subPathMarkers.pop();\n if (prevEndMarker) {\n startMarker[2] = 0.5 * (prevEndMarker[2] + startMarker[2]);\n }\n subPathMarkers.push(startMarker);\n }\n if (segment.hasEnd) {\n let endMarker = segment.getPointAtLength(segment.totalLength);\n subPathMarkers.push(endMarker);\n }\n }\n }\n markers = markers.concat(subPathMarkers);\n }\n return markers;\n };\n };\n\n var SvgElem = function (obj, inherits) {\n let styleCache = Object.create(null);\n let childrenCache = null;\n this.name = obj.nodeName;\n this.isOuterElement = obj === svg || !obj.parentNode;\n this.inherits = inherits || (!this.isOuterElement ? createSVGElement(obj.parentNode, null) : null);\n this.stack = this.inherits ? this.inherits.stack.concat(obj) : [obj];\n this.style = parseStyleAttr(typeof obj.getAttribute === 'function' && obj.getAttribute('style'));\n this.css = useCSS ? getComputedStyle(obj) : getStyle(obj);\n this.allowedChildren = [];\n this.attr = function (key) {\n if (typeof obj.getAttribute === 'function') {\n return obj.getAttribute(key);\n }\n };\n this.resolveUrl = function (value) {\n let temp =\n (value || '').match(/^\\s*(?:url\\(\"(.*)#(.*)\"\\)|url\\('(.*)#(.*)'\\)|url\\((.*)#(.*)\\)|(.*)#(.*))\\s*$/) || [];\n let file = temp[1] || temp[3] || temp[5] || temp[7],\n id = temp[2] || temp[4] || temp[6] || temp[8];\n if (id) {\n if (!file) {\n let svgObj = svg.getElementById(id);\n if (svgObj) {\n if (this.stack.indexOf(svgObj) === -1) {\n return svgObj;\n } else {\n warningCallback('SVGtoPDF: loop of circular references for id \"' + id + '\"');\n return;\n }\n }\n }\n if (documentCallback) {\n let svgs = documentCache[file];\n if (!svgs) {\n svgs = documentCallback(file);\n if (!isArrayLike(svgs)) {\n svgs = [svgs];\n }\n for (let i = 0; i < svgs.length; i++) {\n if (typeof svgs[i] === 'string') {\n svgs[i] = parseXml(svgs[i]);\n }\n }\n documentCache[file] = svgs;\n }\n for (let i = 0; i < svgs.length; i++) {\n let svgObj = svgs[i].getElementById(id);\n if (svgObj) {\n if (this.stack.indexOf(svgObj) === -1) {\n return svgObj;\n } else {\n warningCallback('SVGtoPDF: loop of circular references for id \"' + file + '#' + id + '\"');\n return;\n }\n }\n }\n }\n }\n };\n this.computeUnits = function (value, unit, percent, isFontSize) {\n if (unit === '%') {\n return (parseFloat(value) / 100) * (isFontSize || percent != null ? percent : this.getViewport());\n } else if (unit === 'ex' || unit === 'em') {\n return value * { em: 1, ex: 0.5 }[unit] * (isFontSize ? percent : this.get('font-size'));\n } else {\n return (\n value *\n {\n '': 1,\n px: 1,\n pt: 96 / 72,\n cm: 96 / 2.54,\n mm: 96 / 25.4,\n in: 96,\n pc: 96 / 6,\n }[unit]\n );\n }\n };\n this.computeLength = function (value, percent, initial, isFontSize) {\n let parser = new StringParser((value || '').trim()),\n temp1,\n temp2;\n if (\n typeof (temp1 = parser.matchNumber()) === 'string' &&\n typeof (temp2 = parser.matchLengthUnit()) === 'string' &&\n !parser.matchAll()\n ) {\n return this.computeUnits(temp1, temp2, percent, isFontSize);\n }\n return initial;\n };\n this.computeLengthList = function (value, percent, strict) {\n let parser = new StringParser((value || '').trim()),\n result = [],\n temp1,\n temp2;\n while (\n typeof (temp1 = parser.matchNumber()) === 'string' &&\n typeof (temp2 = parser.matchLengthUnit()) === 'string'\n ) {\n result.push(this.computeUnits(temp1, temp2, percent));\n parser.matchSeparator();\n }\n if (strict && parser.matchAll()) {\n return;\n }\n return result;\n };\n this.getLength = function (key, percent, initial) {\n return this.computeLength(this.attr(key), percent, initial);\n };\n this.getLengthList = function (key, percent) {\n return this.computeLengthList(this.attr(key), percent);\n };\n this.getUrl = function (key) {\n return this.resolveUrl(this.attr(key));\n };\n this.getNumberList = function (key) {\n let parser = new StringParser((this.attr(key) || '').trim()),\n result = [],\n temp;\n while ((temp = parser.matchNumber())) {\n result.push(Number(temp));\n parser.matchSeparator();\n }\n result.error = parser.matchAll();\n return result;\n };\n this.getViewbox = function (key, initial) {\n let viewBox = this.getNumberList(key);\n if (viewBox.length === 4 && viewBox[2] >= 0 && viewBox[3] >= 0) {\n return viewBox;\n }\n return initial;\n };\n this.getPercent = function (key, initial) {\n const value = this.attr(key);\n const parser = new StringParser((value || '').trim());\n let number = parser.matchNumber();\n if (!number) {\n return initial;\n }\n if (parser.match('%')) {\n number *= 0.01;\n }\n if (parser.matchAll()) {\n return initial;\n }\n return Math.max(0, Math.min(1, number));\n };\n this.chooseValue = function (/*args*/) {\n for (let i = 0; i < arguments.length; i++) {\n if (arguments[i] != null && arguments[i] === arguments[i]) {\n return arguments[i];\n }\n }\n return arguments[arguments.length - 1];\n };\n this.get = function (key) {\n if (styleCache[key] !== undefined) {\n return styleCache[key];\n }\n let keyInfo = Properties[key] || {},\n value,\n result;\n for (let i = 0; i < 3; i++) {\n switch (i) {\n case 0:\n if (key !== 'transform') {\n // the CSS transform behaves strangely\n value = this.css[keyInfo.css || key];\n }\n break;\n case 1:\n value = this.style[key];\n break;\n case 2:\n value = this.attr(key);\n break;\n }\n if (value === 'inherit') {\n result = this.inherits ? this.inherits.get(key) : keyInfo.initial;\n if (result != null) {\n return (styleCache[key] = result);\n }\n }\n if (keyInfo.values != null) {\n result = keyInfo.values[value];\n if (result != null) {\n return (styleCache[key] = result);\n }\n }\n if (value != null) {\n let parsed;\n switch (key) {\n case 'font-size':\n result = this.computeLength(\n value,\n this.inherits ? this.inherits.get(key) : keyInfo.initial,\n undefined,\n true,\n );\n break;\n case 'baseline-shift':\n result = this.computeLength(value, this.get('font-size'));\n break;\n case 'font-family':\n result = value || undefined;\n break;\n case 'opacity':\n case 'stroke-opacity':\n case 'fill-opacity':\n case 'stop-opacity':\n parsed = parseFloat(value);\n if (!isNaN(parsed)) {\n result = Math.max(0, Math.min(1, parsed));\n }\n break;\n case 'transform':\n result = parseTranform(value);\n break;\n case 'stroke-dasharray':\n if (value === 'none') {\n result = [];\n } else if ((parsed = this.computeLengthList(value, this.getViewport(), true))) {\n let sum = 0,\n error = false;\n for (let j = 0; j < parsed.length; j++) {\n if (parsed[j] < 0) {\n error = true;\n }\n sum += parsed[j];\n }\n if (!error) {\n if (parsed.length % 2 === 1) {\n parsed = parsed.concat(parsed);\n }\n result = sum === 0 ? [] : parsed;\n }\n }\n break;\n case 'color':\n if (value === 'none' || value === 'transparent') {\n result = 'none';\n } else {\n result = parseColor(value);\n }\n break;\n case 'fill':\n case 'stroke':\n if (value === 'none' || value === 'transparent') {\n result = 'none';\n } else if (value === 'currentColor') {\n result = this.get('color');\n } else if ((parsed = parseColor(value))) {\n return parsed;\n } else if ((parsed = (value || '').split(' '))) {\n let object = this.resolveUrl(parsed[0]),\n fallbackColor = parseColor(parsed[1]);\n if (object == null) {\n result = fallbackColor;\n } else if (object.nodeName === 'linearGradient' || object.nodeName === 'radialGradient') {\n result = new SvgElemGradient(object, null, fallbackColor);\n } else if (object.nodeName === 'pattern') {\n result = new SvgElemPattern(object, null, fallbackColor);\n } else {\n result = fallbackColor;\n }\n }\n break;\n case 'stop-color':\n if (value === 'none' || value === 'transparent') {\n result = 'none';\n } else if (value === 'currentColor') {\n result = this.get('color');\n } else {\n result = parseColor(value);\n }\n break;\n case 'marker-start':\n case 'marker-mid':\n case 'marker-end':\n case 'clip-path':\n case 'mask':\n if (value === 'none') {\n result = 'none';\n } else {\n result = this.resolveUrl(value);\n }\n break;\n case 'stroke-width':\n parsed = this.computeLength(value, this.getViewport());\n if (parsed != null && parsed >= 0) {\n result = parsed;\n }\n break;\n case 'stroke-miterlimit':\n parsed = parseFloat(value);\n if (parsed != null && parsed >= 1) {\n result = parsed;\n }\n break;\n case 'word-spacing':\n case 'letter-spacing':\n result = this.computeLength(value, this.getViewport());\n break;\n case 'stroke-dashoffset':\n result = this.computeLength(value, this.getViewport());\n if (result != null) {\n if (result < 0) {\n // fix for crbug.com/660850\n let dasharray = this.get('stroke-dasharray');\n for (let j = 0; j < dasharray.length; j++) {\n result += dasharray[j];\n }\n }\n }\n break;\n }\n if (result != null) {\n return (styleCache[key] = result);\n }\n }\n }\n return (styleCache[key] = keyInfo.inherit && this.inherits ? this.inherits.get(key) : keyInfo.initial);\n };\n this.getChildren = function () {\n if (childrenCache != null) {\n return childrenCache;\n }\n let children = [];\n for (let i = 0; i < obj.childNodes.length; i++) {\n let child = obj.childNodes[i];\n if (!child.error && this.allowedChildren.indexOf(child.nodeName) !== -1) {\n children.push(createSVGElement(child, this));\n }\n }\n return (childrenCache = children);\n };\n this.getParentVWidth = function () {\n return this.inherits ? this.inherits.getVWidth() : viewportWidth;\n };\n this.getParentVHeight = function () {\n return this.inherits ? this.inherits.getVHeight() : viewportHeight;\n };\n this.getParentViewport = function () {\n return Math.sqrt(\n 0.5 * this.getParentVWidth() * this.getParentVWidth() + 0.5 * this.getParentVHeight() * this.getParentVHeight(),\n );\n };\n this.getVWidth = function () {\n return this.getParentVWidth();\n };\n this.getVHeight = function () {\n return this.getParentVHeight();\n };\n this.getViewport = function () {\n return Math.sqrt(0.5 * this.getVWidth() * this.getVWidth() + 0.5 * this.getVHeight() * this.getVHeight());\n };\n this.getBoundingBox = function () {\n let shape = this.getBoundingShape();\n return shape.getBoundingBox();\n };\n };\n\n var SvgElemStylable = function (obj, inherits) {\n SvgElem.call(this, obj, inherits);\n this.transform = function () {\n doc.transform.apply(doc, this.getTransformation());\n };\n this.clip = function () {\n if (this.get('clip-path') !== 'none') {\n let clipPath = new SvgElemClipPath(this.get('clip-path'), null);\n clipPath.useMask(this.getBoundingBox());\n return true;\n }\n };\n this.mask = function () {\n if (this.get('mask') !== 'none') {\n let mask = new SvgElemMask(this.get('mask'), null);\n mask.useMask(this.getBoundingBox());\n return true;\n }\n };\n this.getFill = function (isClip, isMask) {\n let opacity = this.get('opacity'),\n fill = this.get('fill'),\n fillOpacity = this.get('fill-opacity');\n if (isClip) {\n return DefaultColors.white;\n }\n if (fill !== 'none' && opacity && fillOpacity) {\n if (fill instanceof SvgElemGradient || fill instanceof SvgElemPattern) {\n return fill.getPaint(this.getBoundingBox(), fillOpacity * opacity, isClip, isMask);\n }\n return opacityToColor(fill, fillOpacity * opacity, isMask);\n }\n };\n this.getStroke = function (isClip, isMask) {\n let opacity = this.get('opacity'),\n stroke = this.get('stroke'),\n strokeOpacity = this.get('stroke-opacity');\n if (isClip || isEqual(this.get('stroke-width'), 0)) {\n return;\n }\n if (stroke !== 'none' && opacity && strokeOpacity) {\n if (stroke instanceof SvgElemGradient || stroke instanceof SvgElemPattern) {\n return stroke.getPaint(this.getBoundingBox(), strokeOpacity * opacity, isClip, isMask);\n }\n return opacityToColor(stroke, strokeOpacity * opacity, isMask);\n }\n };\n };\n\n var SvgElemHasChildren = function (obj, inherits) {\n SvgElemStylable.call(this, obj, inherits);\n this.allowedChildren = [\n 'use',\n 'g',\n 'a',\n 'svg',\n 'image',\n 'rect',\n 'circle',\n 'ellipse',\n 'line',\n 'polyline',\n 'polygon',\n 'path',\n 'text',\n ];\n this.getBoundingShape = function () {\n let shape = new SvgShape(),\n children = this.getChildren();\n for (let i = 0; i < children.length; i++) {\n if (children[i].get('display') !== 'none') {\n if (typeof children[i].getBoundingShape === 'function') {\n let childShape = children[i].getBoundingShape().clone();\n if (typeof children[i].getTransformation === 'function') {\n childShape.transform(children[i].getTransformation());\n }\n shape.mergeShape(childShape);\n }\n }\n }\n return shape;\n };\n this.drawChildren = function (isClip, isMask) {\n let children = this.getChildren();\n for (let i = 0; i < children.length; i++) {\n if (children[i].get('display') !== 'none') {\n if (typeof children[i].drawInDocument === 'function') {\n children[i].drawInDocument(isClip, isMask);\n }\n }\n }\n };\n };\n\n var SvgElemContainer = function (obj, inherits) {\n SvgElemHasChildren.call(this, obj, inherits);\n this.drawContent = function (isClip, isMask, blendMode) {\n this.transform();\n let clipped = this.clip(),\n masked = this.mask(),\n group;\n if ((this.get('opacity') < 1 || clipped || masked || blendMode) && !isClip) {\n group = docBeginGroup(getPageBBox());\n }\n this.drawChildren(isClip, isMask);\n if (group) {\n docEndGroup(group);\n if (blendMode) {\n applyBlendMode(group, blendMode);\n }\n doc.fillOpacity(this.get('opacity'));\n docInsertGroup(group);\n }\n };\n };\n\n var SvgElemUse = function (obj, inherits) {\n SvgElemContainer.call(this, obj, inherits);\n let x = this.getLength('x', this.getVWidth(), 0),\n y = this.getLength('y', this.getVHeight(), 0),\n child = this.getUrl('href') || this.getUrl('xlink:href');\n if (child) {\n child = createSVGElement(child, this);\n }\n this.getChildren = function () {\n return child ? [child] : [];\n };\n this.drawInDocument = function (isClip, isMask) {\n doc.save();\n this.drawContent(isClip, isMask);\n doc.restore();\n };\n this.getTransformation = function () {\n return multiplyMatrix(this.get('transform'), [1, 0, 0, 1, x, y]);\n };\n };\n\n var SvgElemSymbol = function (obj, inherits) {\n SvgElemContainer.call(this, obj, inherits);\n let width = this.getLength('width', this.getParentVWidth(), this.getParentVWidth()),\n height = this.getLength('height', this.getParentVHeight(), this.getParentVHeight());\n if (inherits instanceof SvgElemUse) {\n width = inherits.getLength('width', inherits.getParentVWidth(), width);\n height = inherits.getLength('height', inherits.getParentVHeight(), height);\n }\n let aspectRatio = (this.attr('preserveAspectRatio') || '').trim(),\n viewBox = this.getViewbox('viewBox', [0, 0, width, height]);\n this.getVWidth = function () {\n return viewBox[2];\n };\n this.getVHeight = function () {\n return viewBox[3];\n };\n this.drawInDocument = function (isClip, isMask) {\n doc.save();\n this.drawContent(isClip, isMask);\n doc.restore();\n };\n this.getTransformation = function () {\n return multiplyMatrix(parseAspectRatio(aspectRatio, width, height, viewBox[2], viewBox[3]), [\n 1,\n 0,\n 0,\n 1,\n -viewBox[0],\n -viewBox[1],\n ]);\n };\n };\n\n var SvgElemGroup = function (obj, inherits) {\n SvgElemContainer.call(this, obj, inherits);\n this.drawInDocument = function (isClip, isMask) {\n doc.save();\n if (this.link && !isClip && !isMask) {\n this.addLink();\n }\n\n // parse object styles and apply blendMode\n const styles = getObjectStyles(obj);\n if (styles['mix-blend-mode']) {\n this.drawContent(isClip, isMask, parseCSSBlendMode(styles['mix-blend-mode']));\n } else {\n this.drawContent(isClip, isMask);\n }\n\n doc.restore();\n };\n this.getTransformation = function () {\n return this.get('transform');\n };\n };\n\n var SvgElemLink = function (obj, inherits) {\n if (inherits && inherits.isText) {\n SvgElemTspan.call(this, obj, inherits);\n this.allowedChildren = ['textPath', 'tspan', '#text', '#cdata-section', 'a'];\n } else {\n SvgElemGroup.call(this, obj, inherits);\n }\n this.link = this.attr('href') || this.attr('xlink:href');\n this.addLink = function () {\n if (this.link.match(/^(?:[a-z][a-z0-9+.-]*:|\\/\\/)?/i) && this.getChildren().length) {\n let bbox = this.getBoundingShape().transform(getGlobalMatrix()).getBoundingBox();\n docInsertLink(bbox[0], bbox[1], bbox[2], bbox[3], this.link);\n }\n };\n };\n\n var SvgElemSvg = function (obj, inherits) {\n SvgElemContainer.call(this, obj, inherits);\n let width = this.getLength('width', this.getParentVWidth(), this.getParentVWidth()),\n height = this.getLength('height', this.getParentVHeight(), this.getParentVHeight()),\n x = this.getLength('x', this.getParentVWidth(), 0),\n y = this.getLength('y', this.getParentVHeight(), 0);\n if (inherits instanceof SvgElemUse) {\n width = inherits.getLength('width', inherits.getParentVWidth(), width);\n height = inherits.getLength('height', inherits.getParentVHeight(), height);\n }\n let aspectRatio = this.attr('preserveAspectRatio'),\n viewBox = this.getViewbox('viewBox', [0, 0, width, height]);\n if (this.isOuterElement && preserveAspectRatio) {\n x = y = 0;\n width = viewportWidth;\n height = viewportHeight;\n aspectRatio = preserveAspectRatio;\n }\n this.getVWidth = function () {\n return viewBox[2];\n };\n this.getVHeight = function () {\n return viewBox[3];\n };\n this.drawInDocument = function (isClip, isMask) {\n doc.save();\n if (this.get('overflow') === 'hidden') {\n new SvgShape()\n .M(x, y)\n .L(x + width, y)\n .L(x + width, y + height)\n .L(x, y + height)\n .Z()\n .transform(this.get('transform'))\n .insertInDocument();\n doc.clip();\n }\n this.drawContent(isClip, isMask);\n doc.restore();\n };\n this.getTransformation = function () {\n return multiplyMatrix(\n this.get('transform'),\n [1, 0, 0, 1, x, y],\n parseAspectRatio(aspectRatio, width, height, viewBox[2], viewBox[3]),\n [1, 0, 0, 1, -viewBox[0], -viewBox[1]],\n );\n };\n };\n\n var SVGElemImage = function (obj, inherits) {\n SvgElemStylable.call(this, obj, inherits);\n const { src: imageSrc, properties } = imageCallback(this.attr('href') || this.attr('xlink:href') || '');\n let x = this.getLength('x', this.getVWidth(), 0),\n y = this.getLength('y', this.getVHeight(), 0),\n width = this.getLength('width', this.getVWidth(), 'auto'),\n height = this.getLength('height', this.getVHeight(), 'auto'),\n image;\n try {\n image = doc.openImage(imageSrc, properties);\n } catch (e) {\n warningCallback('SVGElemImage: failed to open image \"' + e + '\" in PDFKit', e);\n }\n if (image) {\n if (width === 'auto' && height !== 'auto') {\n width = (height * image.width) / image.height;\n } else if (height === 'auto' && width !== 'auto') {\n height = (width * image.height) / image.width;\n } else if (width === 'auto' && height === 'auto') {\n width = image.width;\n height = image.height;\n }\n }\n if (width === 'auto' || width < 0) {\n width = 0;\n }\n if (height === 'auto' || height < 0) {\n height = 0;\n }\n this.getTransformation = function () {\n return this.get('transform');\n };\n this.getBoundingShape = function () {\n return new SvgShape()\n .M(x, y)\n .L(x + width, y)\n .M(x + width, y + height)\n .L(x, y + height);\n };\n this.drawInDocument = function (isClip /*isMask*/) {\n if (this.get('visibility') === 'hidden' || !image) {\n return;\n }\n doc.save();\n this.transform();\n if (this.get('overflow') === 'hidden') {\n doc.rect(x, y, width, height).clip();\n }\n this.clip();\n this.mask();\n doc.translate(x, y);\n doc.transform.apply(\n doc,\n parseAspectRatio(\n this.attr('preserveAspectRatio'),\n width,\n height,\n image ? image.width : width,\n image ? image.height : height,\n ),\n );\n if (!isClip) {\n doc.fillOpacity(this.get('opacity'));\n doc.image(image, 0, 0);\n } else {\n doc.rect(0, 0, image.width, image.height);\n docFillColor(DefaultColors.white).fill();\n }\n doc.restore();\n };\n };\n\n var SvgElemPattern = function (obj, inherits, fallback) {\n SvgElemHasChildren.call(this, obj, inherits);\n this.ref = function () {\n let ref = this.getUrl('href') || this.getUrl('xlink:href');\n if (ref && ref.nodeName === obj.nodeName) {\n return new SvgElemPattern(ref, inherits, fallback);\n }\n }.call(this);\n let _attr = this.attr;\n this.attr = function (key) {\n let attr = _attr.call(this, key);\n if (attr != null || key === 'href' || key === 'xlink:href') {\n return attr;\n }\n return this.ref ? this.ref.attr(key) : null;\n };\n let _getChildren = this.getChildren;\n this.getChildren = function () {\n let children = _getChildren.call(this);\n if (children.length > 0) {\n return children;\n }\n return this.ref ? this.ref.getChildren() : [];\n };\n this.getPaint = function (bBox, gOpacity, isClip, isMask) {\n let bBoxUnitsPattern = this.attr('patternUnits') !== 'userSpaceOnUse',\n bBoxUnitsContent = this.attr('patternContentUnits') === 'objectBoundingBox',\n x = this.getLength('x', bBoxUnitsPattern ? 1 : this.getParentVWidth(), 0),\n y = this.getLength('y', bBoxUnitsPattern ? 1 : this.getParentVHeight(), 0),\n width = this.getLength('width', bBoxUnitsPattern ? 1 : this.getParentVWidth(), 0),\n height = this.getLength('height', bBoxUnitsPattern ? 1 : this.getParentVHeight(), 0);\n if (bBoxUnitsContent && !bBoxUnitsPattern) {\n // Use the same units for pattern & pattern content\n x = (x - bBox[0]) / (bBox[2] - bBox[0]) || 0;\n y = (y - bBox[1]) / (bBox[3] - bBox[1]) || 0;\n width = width / (bBox[2] - bBox[0]) || 0;\n height = height / (bBox[3] - bBox[1]) || 0;\n } else if (!bBoxUnitsContent && bBoxUnitsPattern) {\n x = bBox[0] + x * (bBox[2] - bBox[0]);\n y = bBox[1] + y * (bBox[3] - bBox[1]);\n width = width * (bBox[2] - bBox[0]);\n height = height * (bBox[3] - bBox[1]);\n }\n let viewBox = this.getViewbox('viewBox', [0, 0, width, height]),\n aspectRatio = (this.attr('preserveAspectRatio') || '').trim(),\n aspectRatioMatrix = multiplyMatrix(parseAspectRatio(aspectRatio, width, height, viewBox[2], viewBox[3], 0), [\n 1,\n 0,\n 0,\n 1,\n -viewBox[0],\n -viewBox[1],\n ]),\n matrix = parseTranform(this.attr('patternTransform'));\n if (bBoxUnitsContent) {\n matrix = multiplyMatrix([bBox[2] - bBox[0], 0, 0, bBox[3] - bBox[1], bBox[0], bBox[1]], matrix);\n }\n matrix = multiplyMatrix(matrix, [1, 0, 0, 1, x, y]);\n if (\n (matrix = validateMatrix(matrix)) &&\n (aspectRatioMatrix = validateMatrix(aspectRatioMatrix)) &&\n (width = validateNumber(width)) &&\n (height = validateNumber(height))\n ) {\n let group = docBeginGroup([0, 0, width, height]);\n doc.transform.apply(doc, aspectRatioMatrix);\n this.drawChildren(isClip, isMask);\n docEndGroup(group);\n return [docCreatePattern(group, width, height, matrix), gOpacity];\n } else {\n return fallback ? [fallback[0], fallback[1] * gOpacity] : undefined;\n }\n };\n this.getVWidth = function () {\n let bBoxUnitsPattern = this.attr('patternUnits') !== 'userSpaceOnUse',\n width = this.getLength('width', bBoxUnitsPattern ? 1 : this.getParentVWidth(), 0);\n return this.getViewbox('viewBox', [0, 0, width, 0])[2];\n };\n this.getVHeight = function () {\n let bBoxUnitsPattern = this.attr('patternUnits') !== 'userSpaceOnUse',\n height = this.getLength('height', bBoxUnitsPattern ? 1 : this.getParentVHeight(), 0);\n return this.getViewbox('viewBox', [0, 0, 0, height])[3];\n };\n };\n\n var SvgElemGradient = function (obj, inherits, fallback) {\n SvgElem.call(this, obj, inherits);\n this.allowedChildren = ['stop'];\n this.ref = function () {\n let ref = this.getUrl('href') || this.getUrl('xlink:href');\n if (ref && ref.nodeName === obj.nodeName) {\n return new SvgElemGradient(ref, inherits, fallback);\n }\n }.call(this);\n let _attr = this.attr;\n this.attr = function (key) {\n let attr = _attr.call(this, key);\n if (attr != null || key === 'href' || key === 'xlink:href') {\n return attr;\n }\n return this.ref ? this.ref.attr(key) : null;\n };\n let _getChildren = this.getChildren;\n this.getChildren = function () {\n let children = _getChildren.call(this);\n if (children.length > 0) {\n return children;\n }\n return this.ref ? this.ref.getChildren() : [];\n };\n this.getPaint = function (bBox, gOpacity, isClip, isMask) {\n let children = this.getChildren();\n if (children.length === 0) {\n return;\n }\n if (children.length === 1) {\n let child = children[0],\n stopColor = child.get('stop-color');\n if (stopColor === 'none') {\n return;\n }\n return opacityToColor(stopColor, child.get('stop-opacity') * gOpacity, isMask);\n }\n let bBoxUnits = this.attr('gradientUnits') !== 'userSpaceOnUse',\n matrix = parseTranform(this.attr('gradientTransform')),\n spread = this.attr('spreadMethod'),\n grad,\n x1,\n x2,\n y1,\n y2,\n r2,\n nAfter = 0,\n nBefore = 0,\n nTotal = 1;\n if (matrix && bBoxUnits) {\n matrix = multiplyMatrix([bBox[2] - bBox[0], 0, 0, bBox[3] - bBox[1], bBox[0], bBox[1]], matrix);\n }\n if (matrix && (matrix = validateMatrix(matrix))) {\n if (this.name === 'linearGradient') {\n x1 = this.getLength('x1', bBoxUnits ? 1 : this.getVWidth(), 0);\n x2 = this.getLength('x2', bBoxUnits ? 1 : this.getVWidth(), bBoxUnits ? 1 : this.getVWidth());\n y1 = this.getLength('y1', bBoxUnits ? 1 : this.getVHeight(), 0);\n y2 = this.getLength('y2', bBoxUnits ? 1 : this.getVHeight(), 0);\n } else {\n x2 = this.getLength('cx', bBoxUnits ? 1 : this.getVWidth(), bBoxUnits ? 0.5 : 0.5 * this.getVWidth());\n y2 = this.getLength('cy', bBoxUnits ? 1 : this.getVHeight(), bBoxUnits ? 0.5 : 0.5 * this.getVHeight());\n r2 = this.getLength('r', bBoxUnits ? 1 : this.getViewport(), bBoxUnits ? 0.5 : 0.5 * this.getViewport());\n x1 = this.getLength('fx', bBoxUnits ? 1 : this.getVWidth(), x2);\n y1 = this.getLength('fy', bBoxUnits ? 1 : this.getVHeight(), y2);\n if (r2 < 0) {\n warningCallback('SvgElemGradient: negative r value');\n }\n let d = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)),\n multiplier = 1;\n if (d > r2) {\n // according to specification\n multiplier = r2 / d;\n x1 = x2 + (x1 - x2) * multiplier;\n y1 = y2 + (y1 - y2) * multiplier;\n }\n r2 = Math.max(r2, d * multiplier * (1 + 1e-6)); // fix for edge-case gradients see issue #84\n }\n if (spread === 'reflect' || spread === 'repeat') {\n let inv = inverseMatrix(matrix),\n corner1 = transformPoint([bBox[0], bBox[1]], inv),\n corner2 = transformPoint([bBox[2], bBox[1]], inv),\n corner3 = transformPoint([bBox[2], bBox[3]], inv),\n corner4 = transformPoint([bBox[0], bBox[3]], inv);\n if (this.name === 'linearGradient') {\n // See file 'gradient-repeat-maths.png'\n nAfter =\n Math.max(\n (corner1[0] - x2) * (x2 - x1) + (corner1[1] - y2) * (y2 - y1),\n (corner2[0] - x2) * (x2 - x1) + (corner2[1] - y2) * (y2 - y1),\n (corner3[0] - x2) * (x2 - x1) + (corner3[1] - y2) * (y2 - y1),\n (corner4[0] - x2) * (x2 - x1) + (corner4[1] - y2) * (y2 - y1),\n ) /\n (Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\n nBefore =\n Math.max(\n (corner1[0] - x1) * (x1 - x2) + (corner1[1] - y1) * (y1 - y2),\n (corner2[0] - x1) * (x1 - x2) + (corner2[1] - y1) * (y1 - y2),\n (corner3[0] - x1) * (x1 - x2) + (corner3[1] - y1) * (y1 - y2),\n (corner4[0] - x1) * (x1 - x2) + (corner4[1] - y1) * (y1 - y2),\n ) /\n (Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\n } else {\n nAfter =\n Math.sqrt(\n Math.max(\n Math.pow(corner1[0] - x2, 2) + Math.pow(corner1[1] - y2, 2),\n Math.pow(corner2[0] - x2, 2) + Math.pow(corner2[1] - y2, 2),\n Math.pow(corner3[0] - x2, 2) + Math.pow(corner3[1] - y2, 2),\n Math.pow(corner4[0] - x2, 2) + Math.pow(corner4[1] - y2, 2),\n ),\n ) /\n r2 -\n 1;\n }\n nAfter = Math.ceil(nAfter + 0.5); // Add a little more because the stroke can extend outside of the bounding box\n nBefore = Math.ceil(nBefore + 0.5);\n nTotal = nBefore + 1 + nAfter; // How many times the gradient needs to be repeated to fill the object bounding box\n }\n if (this.name === 'linearGradient') {\n grad = doc.linearGradient(\n x1 - nBefore * (x2 - x1),\n y1 - nBefore * (y2 - y1),\n x2 + nAfter * (x2 - x1),\n y2 + nAfter * (y2 - y1),\n );\n } else {\n grad = doc.radialGradient(x1, y1, 0, x2, y2, r2 + nAfter * r2);\n }\n for (let n = 0; n < nTotal; n++) {\n let offset = 0,\n inOrder = spread !== 'reflect' || (n - nBefore) % 2 === 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[inOrder ? i : children.length - 1 - i],\n stopColor = child.get('stop-color');\n if (stopColor === 'none') {\n stopColor = DefaultColors.transparent;\n }\n stopColor = opacityToColor(stopColor, child.get('stop-opacity') * gOpacity, isMask);\n offset = Math.max(offset, inOrder ? child.getPercent('offset', 0) : 1 - child.getPercent('offset', 0));\n if (i === 0 && offset > 0) {\n grad.stop((n + 0) / nTotal, stopColor[0], stopColor[1]);\n }\n grad.stop((n + offset) / (nAfter + nBefore + 1), stopColor[0], stopColor[1]);\n if (i === children.length - 1 && offset < 1) {\n grad.stop((n + 1) / nTotal, stopColor[0], stopColor[1]);\n }\n }\n }\n grad.setTransform.apply(grad, matrix);\n return [grad, 1];\n } else {\n return fallback ? [fallback[0], fallback[1] * gOpacity] : undefined;\n }\n };\n };\n\n var SvgElemBasicShape = function (obj, inherits) {\n SvgElemStylable.call(this, obj, inherits);\n this.dashScale = 1;\n this.getBoundingShape = function () {\n return this.shape;\n };\n this.getTransformation = function () {\n return this.get('transform');\n };\n this.drawInDocument = function (isClip, isMask) {\n if (this.get('visibility') === 'hidden' || !this.shape) {\n return;\n }\n doc.save();\n this.transform();\n this.clip();\n if (!isClip) {\n let masked = this.mask(),\n group;\n if (masked) {\n group = docBeginGroup(getPageBBox());\n }\n let subPaths = this.shape.getSubPaths(),\n fill = this.getFill(isClip, isMask),\n stroke = this.getStroke(isClip, isMask),\n lineWidth = this.get('stroke-width'),\n lineCap = this.get('stroke-linecap');\n if (fill || stroke) {\n if (fill) {\n docFillColor(fill);\n }\n if (stroke) {\n for (let j = 0; j < subPaths.length; j++) {\n if (isEqual(subPaths[j].totalLength, 0)) {\n if ((lineCap === 'square' || lineCap === 'round') && lineWidth > 0) {\n if (subPaths[j].startPoint && subPaths[j].startPoint.length > 1) {\n let x = subPaths[j].startPoint[0],\n y = subPaths[j].startPoint[1];\n docFillColor(stroke);\n if (lineCap === 'square') {\n doc.rect(x - 0.5 * lineWidth, y - 0.5 * lineWidth, lineWidth, lineWidth);\n } else if (lineCap === 'round') {\n doc.circle(x, y, 0.5 * lineWidth);\n }\n doc.fill();\n }\n }\n }\n }\n let dashArray = this.get('stroke-dasharray'),\n dashOffset = this.get('stroke-dashoffset');\n if (isNotEqual(this.dashScale, 1)) {\n for (let j = 0; j < dashArray.length; j++) {\n dashArray[j] *= this.dashScale;\n }\n dashOffset *= this.dashScale;\n }\n docStrokeColor(stroke);\n doc\n .lineWidth(lineWidth)\n .miterLimit(this.get('stroke-miterlimit'))\n .lineJoin(this.get('stroke-linejoin'))\n .lineCap(lineCap)\n .dash(dashArray, { phase: dashOffset });\n }\n for (let j = 0; j < subPaths.length; j++) {\n if (subPaths[j].totalLength > 0) {\n subPaths[j].insertInDocument();\n }\n }\n if (fill && stroke) {\n doc.fillAndStroke(this.get('fill-rule'));\n } else if (fill) {\n doc.fill(this.get('fill-rule'));\n } else if (stroke) {\n doc.stroke();\n }\n }\n let markerStart = this.get('marker-start'),\n markerMid = this.get('marker-mid'),\n markerEnd = this.get('marker-end');\n if (markerStart !== 'none' || markerMid !== 'none' || markerEnd !== 'none') {\n let markersPos = this.shape.getMarkers();\n if (markerStart !== 'none' && markersPos.length > 0) {\n let marker = new SvgElemMarker(markerStart, null);\n marker.drawMarker(false, isMask, markersPos[0], lineWidth);\n }\n if (markerMid !== 'none') {\n for (let i = 1; i < markersPos.length - 1; i++) {\n let marker = new SvgElemMarker(markerMid, null);\n marker.drawMarker(false, isMask, markersPos[i], lineWidth);\n }\n }\n if (markerEnd !== 'none' && markersPos.length > 0) {\n let marker = new SvgElemMarker(markerEnd, null);\n marker.drawMarker(false, isMask, markersPos[markersPos.length - 1], lineWidth);\n }\n }\n if (group) {\n docEndGroup(group);\n docInsertGroup(group);\n }\n } else {\n this.shape.insertInDocument();\n docFillColor(DefaultColors.white);\n doc.fill(this.get('clip-rule'));\n }\n doc.restore();\n };\n };\n\n var SvgElemRect = function (obj, inherits) {\n SvgElemBasicShape.call(this, obj, inherits);\n let x = this.getLength('x', this.getVWidth(), 0),\n y = this.getLength('y', this.getVHeight(), 0),\n w = this.getLength('width', this.getVWidth(), 0),\n h = this.getLength('height', this.getVHeight(), 0),\n rx = this.getLength('rx', this.getVWidth()),\n ry = this.getLength('ry', this.getVHeight());\n if (rx === undefined && ry === undefined) {\n rx = ry = 0;\n } else if (rx === undefined && ry !== undefined) {\n rx = ry;\n } else if (rx !== undefined && ry === undefined) {\n ry = rx;\n }\n if (w > 0 && h > 0) {\n if (rx && ry) {\n rx = Math.min(rx, 0.5 * w);\n ry = Math.min(ry, 0.5 * h);\n this.shape = new SvgShape()\n .M(x + rx, y)\n .L(x + w - rx, y)\n .A(rx, ry, 0, 0, 1, x + w, y + ry)\n .L(x + w, y + h - ry)\n .A(rx, ry, 0, 0, 1, x + w - rx, y + h)\n .L(x + rx, y + h)\n .A(rx, ry, 0, 0, 1, x, y + h - ry)\n .L(x, y + ry)\n .A(rx, ry, 0, 0, 1, x + rx, y)\n .Z();\n } else {\n this.shape = new SvgShape()\n .M(x, y)\n .L(x + w, y)\n .L(x + w, y + h)\n .L(x, y + h)\n .Z();\n }\n } else {\n this.shape = new SvgShape();\n }\n };\n\n var SvgElemCircle = function (obj, inherits) {\n SvgElemBasicShape.call(this, obj, inherits);\n let cx = this.getLength('cx', this.getVWidth(), 0),\n cy = this.getLength('cy', this.getVHeight(), 0),\n r = this.getLength('r', this.getViewport(), 0);\n if (r > 0) {\n this.shape = new SvgShape()\n .M(cx + r, cy)\n .A(r, r, 0, 0, 1, cx - r, cy)\n .A(r, r, 0, 0, 1, cx + r, cy)\n .Z();\n } else {\n this.shape = new SvgShape();\n }\n };\n\n var SvgElemEllipse = function (obj, inherits) {\n SvgElemBasicShape.call(this, obj, inherits);\n let cx = this.getLength('cx', this.getVWidth(), 0),\n cy = this.getLength('cy', this.getVHeight(), 0),\n rx = this.getLength('rx', this.getVWidth(), 0),\n ry = this.getLength('ry', this.getVHeight(), 0);\n if (rx > 0 && ry > 0) {\n this.shape = new SvgShape()\n .M(cx + rx, cy)\n .A(rx, ry, 0, 0, 1, cx - rx, cy)\n .A(rx, ry, 0, 0, 1, cx + rx, cy)\n .Z();\n } else {\n this.shape = new SvgShape();\n }\n };\n\n var SvgElemLine = function (obj, inherits) {\n SvgElemBasicShape.call(this, obj, inherits);\n let x1 = this.getLength('x1', this.getVWidth(), 0),\n y1 = this.getLength('y1', this.getVHeight(), 0),\n x2 = this.getLength('x2', this.getVWidth(), 0),\n y2 = this.getLength('y2', this.getVHeight(), 0);\n this.shape = new SvgShape().M(x1, y1).L(x2, y2);\n };\n\n var SvgElemPolyline = function (obj, inherits) {\n SvgElemBasicShape.call(this, obj, inherits);\n let points = this.getNumberList('points');\n this.shape = new SvgShape();\n for (let i = 0; i < points.length - 1; i += 2) {\n if (i === 0) {\n this.shape.M(points[i], points[i + 1]);\n } else {\n this.shape.L(points[i], points[i + 1]);\n }\n }\n if (points.error) {\n warningCallback('SvgElemPolygon: unexpected string ' + points.error);\n }\n if (points.length % 2 === 1) {\n warningCallback('SvgElemPolyline: uneven number of coordinates');\n }\n };\n\n var SvgElemPolygon = function (obj, inherits) {\n SvgElemBasicShape.call(this, obj, inherits);\n let points = this.getNumberList('points');\n this.shape = new SvgShape();\n for (let i = 0; i < points.length - 1; i += 2) {\n if (i === 0) {\n this.shape.M(points[i], points[i + 1]);\n } else {\n this.shape.L(points[i], points[i + 1]);\n }\n }\n this.shape.Z();\n if (points.error) {\n warningCallback('SvgElemPolygon: unexpected string ' + points.error);\n }\n if (points.length % 2 === 1) {\n warningCallback('SvgElemPolygon: uneven number of coordinates');\n }\n };\n\n var SvgElemPath = function (obj, inherits) {\n SvgElemBasicShape.call(this, obj, inherits);\n this.shape = new SvgShape().path(this.attr('d'));\n let pathLength = this.getLength('pathLength', this.getViewport());\n this.pathLength = pathLength > 0 ? pathLength : undefined;\n this.dashScale = this.pathLength !== undefined ? this.shape.totalLength / this.pathLength : 1;\n };\n\n var SvgElemMarker = function (obj, inherits) {\n SvgElemHasChildren.call(this, obj, inherits);\n let width = this.getLength('markerWidth', this.getParentVWidth(), 3),\n height = this.getLength('markerHeight', this.getParentVHeight(), 3),\n viewBox = this.getViewbox('viewBox', [0, 0, width, height]);\n this.getVWidth = function () {\n return viewBox[2];\n };\n this.getVHeight = function () {\n return viewBox[3];\n };\n this.drawMarker = function (isClip, isMask, posArray, strokeWidth) {\n doc.save();\n let orient = this.attr('orient'),\n units = this.attr('markerUnits'),\n rotate = orient === 'auto' ? posArray[2] : ((parseFloat(orient) || 0) * Math.PI) / 180,\n scale = units === 'userSpaceOnUse' ? 1 : strokeWidth;\n doc.transform(\n Math.cos(rotate) * scale,\n Math.sin(rotate) * scale,\n -Math.sin(rotate) * scale,\n Math.cos(rotate) * scale,\n posArray[0],\n posArray[1],\n );\n let refX = this.getLength('refX', this.getVWidth(), 0),\n refY = this.getLength('refY', this.getVHeight(), 0),\n aspectRatioMatrix = parseAspectRatio(\n this.attr('preserveAspectRatio'),\n width,\n height,\n viewBox[2],\n viewBox[3],\n 0.5,\n );\n if (this.get('overflow') === 'hidden') {\n doc\n .rect(\n aspectRatioMatrix[0] * (viewBox[0] + viewBox[2] / 2 - refX) - width / 2,\n aspectRatioMatrix[3] * (viewBox[1] + viewBox[3] / 2 - refY) - height / 2,\n width,\n height,\n )\n .clip();\n }\n doc.transform.apply(doc, aspectRatioMatrix);\n doc.translate(-refX, -refY);\n let group;\n if (this.get('opacity') < 1 && !isClip) {\n group = docBeginGroup(getPageBBox());\n }\n this.drawChildren(isClip, isMask);\n if (group) {\n docEndGroup(group);\n doc.fillOpacity(this.get('opacity'));\n docInsertGroup(group);\n }\n doc.restore();\n };\n };\n\n var SvgElemClipPath = function (obj, inherits) {\n SvgElemHasChildren.call(this, obj, inherits);\n this.useMask = function (bBox) {\n let group = docBeginGroup(getPageBBox());\n doc.save();\n doc.transform.apply(doc, this.get('transform'));\n if (this.attr('clipPathUnits') === 'objectBoundingBox') {\n doc.transform(bBox[2] - bBox[0], 0, 0, bBox[3] - bBox[1], bBox[0], bBox[1]);\n }\n this.clip();\n this.drawChildren(true, false);\n doc.restore();\n docEndGroup(group);\n docApplyMask(group, true);\n };\n };\n\n var SvgElemMask = function (obj, inherits) {\n SvgElemHasChildren.call(this, obj, inherits);\n this.useMask = function (bBox) {\n let group = docBeginGroup(getPageBBox());\n doc.save();\n /* let x, y, w, h; */\n if (this.attr('maskUnits') === 'userSpaceOnUse') {\n /*x =*/ this.getLength('x', this.getVWidth(), -0.1 * (bBox[2] - bBox[0]) + bBox[0]);\n /*y =*/ this.getLength('y', this.getVHeight(), -0.1 * (bBox[3] - bBox[1]) + bBox[1]);\n /*w =*/ this.getLength('width', this.getVWidth(), 1.2 * (bBox[2] - bBox[0]));\n /*h =*/ this.getLength('height', this.getVHeight(), 1.2 * (bBox[3] - bBox[1]));\n } else {\n /*x =*/ this.getLength('x', this.getVWidth(), -0.1) * (bBox[2] - bBox[0]) + bBox[0];\n /*y =*/ this.getLength('y', this.getVHeight(), -0.1) * (bBox[3] - bBox[1]) + bBox[1];\n /*w =*/ this.getLength('width', this.getVWidth(), 1.2) * (bBox[2] - bBox[0]);\n /*h =*/ this.getLength('height', this.getVHeight(), 1.2) * (bBox[3] - bBox[1]);\n }\n if (this.attr('maskContentUnits') === 'objectBoundingBox') {\n doc.transform(bBox[2] - bBox[0], 0, 0, bBox[3] - bBox[1], bBox[0], bBox[1]);\n }\n this.clip();\n this.drawChildren(false, true);\n doc.restore();\n docEndGroup(group);\n docApplyMask(group, false);\n };\n };\n\n var SvgElemTextContainer = function (obj, inherits) {\n SvgElemStylable.call(this, obj, inherits);\n this.allowedChildren = ['tspan', '#text', '#cdata-section', 'a'];\n this.isText = true;\n this.getBoundingShape = function () {\n let shape = new SvgShape();\n for (let i = 0; i < this._pos.length; i++) {\n let pos = this._pos[i];\n if (!pos.hidden) {\n let dx0 = pos.ascent * Math.sin(pos.rotate),\n dy0 = -pos.ascent * Math.cos(pos.rotate),\n dx1 = pos.descent * Math.sin(pos.rotate),\n dy1 = -pos.descent * Math.cos(pos.rotate),\n dx2 = pos.width * Math.cos(pos.rotate),\n dy2 = pos.width * Math.sin(pos.rotate);\n shape\n .M(pos.x + dx0, pos.y + dy0)\n .L(pos.x + dx0 + dx2, pos.y + dy0 + dy2)\n .M(pos.x + dx1 + dx2, pos.y + dy1 + dy2)\n .L(pos.x + dx1, pos.y + dy1);\n }\n }\n return shape;\n };\n this.drawTextInDocument = function (isClip, isMask) {\n if (this.link && !isClip && !isMask) {\n this.addLink();\n }\n if (this.get('text-decoration') === 'underline') {\n this.decorate(0.05 * this._font.size, -0.075 * this._font.size, isClip, isMask);\n }\n if (this.get('text-decoration') === 'overline') {\n this.decorate(\n 0.05 * this._font.size,\n getAscent(this._font.font, this._font.size) + 0.075 * this._font.size,\n isClip,\n isMask,\n );\n }\n let fill = this.getFill(isClip, isMask),\n stroke = this.getStroke(isClip, isMask),\n strokeWidth = this.get('stroke-width');\n if (this._font.fauxBold) {\n if (!stroke) {\n stroke = fill;\n strokeWidth = this._font.size * 0.03;\n } else {\n strokeWidth += this._font.size * 0.03;\n }\n }\n let children = this.getChildren();\n for (let i = 0; i < children.length; i++) {\n let childElem = children[i];\n switch (childElem.name) {\n case 'tspan':\n case 'textPath':\n case 'a':\n if (childElem.get('display') !== 'none') {\n childElem.drawTextInDocument(isClip, isMask);\n }\n break;\n case '#text':\n case '#cdata-section':\n if (this.get('visibility') === 'hidden') {\n continue;\n }\n if (fill || stroke || isClip) {\n if (fill) {\n docFillColor(fill);\n }\n if (stroke && strokeWidth) {\n docStrokeColor(stroke);\n doc\n .lineWidth(strokeWidth)\n .miterLimit(this.get('stroke-miterlimit'))\n .lineJoin(this.get('stroke-linejoin'))\n .lineCap(this.get('stroke-linecap'))\n .dash(this.get('stroke-dasharray'), {\n phase: this.get('stroke-dashoffset'),\n });\n }\n docBeginText(this._font.font, this._font.size);\n docSetTextMode(!!fill, !!stroke);\n docWriteGlyphs(childElem._pos, this._font);\n docEndText();\n }\n break;\n }\n }\n if (this.get('text-decoration') === 'line-through') {\n this.decorate(\n 0.05 * this._font.size,\n 0.5 * (getAscent(this._font.font, this._font.size) + getDescent(this._font.font, this._font.size)),\n isClip,\n isMask,\n );\n }\n };\n this.decorate = function (lineWidth, linePosition, isClip, isMask) {\n let fill = this.getFill(isClip, isMask),\n stroke = this.getStroke(isClip, isMask);\n if (fill) {\n docFillColor(fill);\n }\n if (stroke) {\n docStrokeColor(stroke);\n doc\n .lineWidth(this.get('stroke-width'))\n .miterLimit(this.get('stroke-miterlimit'))\n .lineJoin(this.get('stroke-linejoin'))\n .lineCap(this.get('stroke-linecap'))\n .dash(this.get('stroke-dasharray'), {\n phase: this.get('stroke-dashoffset'),\n });\n }\n for (let j = 0, pos = this._pos; j < pos.length; j++) {\n if (!pos[j].hidden && isNotEqual(pos[j].width, 0)) {\n let dx0 = (linePosition + lineWidth / 2) * Math.sin(pos[j].rotate),\n dy0 = -(linePosition + lineWidth / 2) * Math.cos(pos[j].rotate),\n dx1 = (linePosition - lineWidth / 2) * Math.sin(pos[j].rotate),\n dy1 = -(linePosition - lineWidth / 2) * Math.cos(pos[j].rotate),\n dx2 = pos[j].width * Math.cos(pos[j].rotate),\n dy2 = pos[j].width * Math.sin(pos[j].rotate);\n new SvgShape()\n .M(pos[j].x + dx0, pos[j].y + dy0)\n .L(pos[j].x + dx0 + dx2, pos[j].y + dy0 + dy2)\n .L(pos[j].x + dx1 + dx2, pos[j].y + dy1 + dy2)\n .L(pos[j].x + dx1, pos[j].y + dy1)\n .Z()\n .insertInDocument();\n if (fill && stroke) {\n doc.fillAndStroke();\n } else if (fill) {\n doc.fill();\n } else if (stroke) {\n doc.stroke();\n }\n }\n }\n };\n };\n\n var SvgElemTextNode = function (obj /*inherits*/) {\n this.name = obj.nodeName;\n this.textContent = obj.nodeValue;\n };\n\n var SvgElemTspan = function (obj, inherits) {\n SvgElemTextContainer.call(this, obj, inherits);\n };\n\n var SvgElemTextPath = function (obj, inherits) {\n SvgElemTextContainer.call(this, obj, inherits);\n let temp;\n if ((temp = this.attr('path')) && temp.trim() !== '') {\n let pathLength = this.getLength('pathLength', this.getViewport());\n this.pathObject = new SvgShape().path(temp);\n this.pathLength = pathLength > 0 ? pathLength : this.pathObject.totalLength;\n this.pathScale = this.pathObject.totalLength / this.pathLength;\n } else if ((temp = this.getUrl('href') || this.getUrl('xlink:href')) && temp.nodeName === 'path') {\n let pathElem = new SvgElemPath(temp, this);\n this.pathObject = pathElem.shape.clone().transform(pathElem.get('transform'));\n this.pathLength = this.chooseValue(pathElem.pathLength, this.pathObject.totalLength);\n this.pathScale = this.pathObject.totalLength / this.pathLength;\n }\n };\n\n var SvgElemText = function (obj, inherits) {\n SvgElemTextContainer.call(this, obj, inherits);\n this.allowedChildren = ['textPath', 'tspan', '#text', '#cdata-section', 'a'];\n (function (textParentElem) {\n let processedText = '',\n remainingText = obj.textContent,\n textPaths = [],\n currentChunk = [],\n currentAnchor,\n currentDirection,\n currentX = 0,\n currentY = 0;\n function doAnchoring() {\n if (currentChunk.length) {\n let last = currentChunk[currentChunk.length - 1];\n let first = currentChunk[0];\n let width = last.x + last.width - first.x;\n let anchordx =\n {\n startltr: 0,\n middleltr: 0.5,\n endltr: 1,\n startrtl: 1,\n middlertl: 0.5,\n endrtl: 0,\n }[currentAnchor + currentDirection] * width || 0;\n for (let i = 0; i < currentChunk.length; i++) {\n currentChunk[i].x -= anchordx;\n }\n }\n currentChunk = [];\n }\n function adjustLength(pos, length, spacingAndGlyphs) {\n let firstChar = pos[0],\n lastChar = pos[pos.length - 1],\n startX = firstChar.x,\n endX = lastChar.x + lastChar.width;\n if (spacingAndGlyphs) {\n let textScale = length / (endX - startX);\n if (textScale > 0 && textScale < Infinity) {\n for (let j = 0; j < pos.length; j++) {\n pos[j].continuous = false;\n pos[j].x = startX + textScale * (pos[j].x - startX);\n pos[j].scale *= textScale;\n pos[j].width *= textScale;\n }\n }\n } else {\n if (pos.length >= 2) {\n let spaceDiff = (length - (endX - startX)) / (pos.length - 1);\n for (let j = 0; j < pos.length; j++) {\n pos[j].continuous = false;\n pos[j].x += j * spaceDiff;\n }\n }\n }\n currentX += length - (endX - startX);\n }\n function recursive(currentElem, parentElem) {\n currentElem._x = combineArrays(\n currentElem.getLengthList('x', currentElem.getVWidth()),\n parentElem ? parentElem._x.slice(parentElem._pos.length) : [],\n );\n currentElem._y = combineArrays(\n currentElem.getLengthList('y', currentElem.getVHeight()),\n parentElem ? parentElem._y.slice(parentElem._pos.length) : [],\n );\n currentElem._dx = combineArrays(\n currentElem.getLengthList('dx', currentElem.getVWidth()),\n parentElem ? parentElem._dx.slice(parentElem._pos.length) : [],\n );\n currentElem._dy = combineArrays(\n currentElem.getLengthList('dy', currentElem.getVHeight()),\n parentElem ? parentElem._dy.slice(parentElem._pos.length) : [],\n );\n currentElem._rot = combineArrays(\n currentElem.getNumberList('rotate'),\n parentElem ? parentElem._rot.slice(parentElem._pos.length) : [],\n );\n currentElem._defRot = currentElem.chooseValue(\n currentElem._rot[currentElem._rot.length - 1],\n parentElem && parentElem._defRot,\n 0,\n );\n if (currentElem.name === 'textPath') {\n currentElem._y = [];\n }\n let fontOptions = { fauxItalic: false, fauxBold: false },\n fontNameorLink = fontCallback(\n currentElem.get('font-family'),\n currentElem.get('font-weight') === 'bold',\n currentElem.get('font-style') === 'italic',\n fontOptions,\n );\n try {\n doc.font(fontNameorLink);\n } catch (e) {\n warningCallback('SVGElemText: failed to open font \"' + fontNameorLink + '\" in PDFKit', e);\n }\n currentElem._pos = [];\n currentElem._index = 0;\n currentElem._font = {\n font: doc._font,\n size: currentElem.get('font-size'),\n fauxItalic: fontOptions.fauxItalic,\n fauxBold: fontOptions.fauxBold,\n };\n let textLength = currentElem.getLength('textLength', currentElem.getVWidth(), undefined),\n spacingAndGlyphs = currentElem.attr('lengthAdjust') === 'spacingAndGlyphs',\n wordSpacing = currentElem.get('word-spacing'),\n letterSpacing = currentElem.get('letter-spacing'),\n textAnchor = currentElem.get('text-anchor'),\n textDirection = currentElem.get('direction'),\n baseline = getBaseline(\n currentElem._font.font,\n currentElem._font.size,\n currentElem.get('alignment-baseline') || currentElem.get('dominant-baseline'),\n currentElem.get('baseline-shift'),\n );\n if (currentElem.name === 'textPath') {\n doAnchoring();\n currentX = currentY = 0;\n }\n let children = currentElem.getChildren();\n for (let i = 0; i < children.length; i++) {\n let childElem = children[i];\n switch (childElem.name) {\n case 'tspan':\n case 'textPath':\n case 'a':\n recursive(childElem, currentElem);\n break;\n case '#text':\n case '#cdata-section': {\n let rawText = childElem.textContent,\n renderedText = rawText,\n words;\n childElem._font = currentElem._font;\n childElem._pos = [];\n remainingText = remainingText.substring(rawText.length);\n if (currentElem.get('xml:space') === 'preserve') {\n renderedText = renderedText.replace(/[\\s]/g, ' ');\n } else {\n renderedText = renderedText.replace(/[\\s]+/g, ' ');\n if (processedText.match(/[\\s]$|^$/)) {\n renderedText = renderedText.replace(/^[\\s]/, '');\n }\n if (remainingText.match(/^[\\s]*$/)) {\n renderedText = renderedText.replace(/[\\s]$/, '');\n }\n }\n processedText += rawText;\n if (wordSpacing === 0) {\n words = [renderedText];\n } else {\n words = renderedText.split(/(\\s)/);\n }\n for (let w = 0; w < words.length; w++) {\n let pos = getTextPos(currentElem._font.font, currentElem._font.size, words[w]);\n for (let j = 0; j < pos.length; j++) {\n let index = currentElem._index,\n xAttr = currentElem._x[index],\n yAttr = currentElem._y[index],\n dxAttr = currentElem._dx[index],\n dyAttr = currentElem._dy[index],\n rotAttr = currentElem._rot[index],\n continuous = !(w === 0 && j === 0);\n if (letterSpacing !== 0) {\n continuous = false;\n }\n if (wordSpacing !== 0) {\n continuous = false;\n }\n if (xAttr !== undefined) {\n continuous = false;\n doAnchoring();\n currentX = xAttr;\n }\n if (yAttr !== undefined) {\n continuous = false;\n doAnchoring();\n currentY = yAttr;\n }\n if (dxAttr !== undefined) {\n continuous = false;\n currentX += dxAttr;\n }\n if (dyAttr !== undefined) {\n continuous = false;\n currentY += dyAttr;\n }\n if (rotAttr !== undefined || currentElem._defRot !== 0) {\n continuous = false;\n }\n let position = {\n glyph: pos[j].glyph,\n rotate: (Math.PI / 180) * currentElem.chooseValue(rotAttr, currentElem._defRot),\n x: currentX + pos[j].xOffset,\n kern: pos[j].kern,\n y: currentY + baseline + pos[j].yOffset,\n width: pos[j].width,\n ascent: getAscent(currentElem._font.font, currentElem._font.size),\n descent: getDescent(currentElem._font.font, currentElem._font.size),\n scale: 1,\n hidden: false,\n continuous: continuous,\n };\n currentChunk.push(position);\n childElem._pos.push(position);\n currentElem._pos.push(position);\n currentElem._index += pos[j].unicode.length;\n if (currentChunk.length === 1) {\n currentAnchor = textAnchor;\n currentDirection = textDirection;\n }\n currentX += pos[j].xAdvance + letterSpacing;\n currentY += pos[j].yAdvance;\n }\n if (words[w] === ' ') {\n currentX += wordSpacing;\n }\n }\n break;\n }\n default:\n remainingText = remainingText.substring(childElem.textContent.length);\n }\n }\n if (textLength && currentElem._pos.length) {\n adjustLength(currentElem._pos, textLength, spacingAndGlyphs);\n }\n if (currentElem.name === 'textPath' || currentElem.name === 'text') {\n doAnchoring();\n }\n if (currentElem.name === 'textPath') {\n textPaths.push(currentElem);\n let pathObject = currentElem.pathObject;\n if (pathObject) {\n currentX = pathObject.endPoint[0];\n currentY = pathObject.endPoint[1];\n }\n }\n if (parentElem) {\n parentElem._pos = parentElem._pos.concat(currentElem._pos);\n parentElem._index += currentElem._index;\n }\n }\n function textOnPath(currentElem) {\n let pathObject = currentElem.pathObject,\n pathLength = currentElem.pathLength,\n pathScale = currentElem.pathScale;\n if (pathObject) {\n let textOffset = currentElem.getLength('startOffset', pathLength, 0);\n for (let j = 0; j < currentElem._pos.length; j++) {\n let charMidX = textOffset + currentElem._pos[j].x + 0.5 * currentElem._pos[j].width;\n if (charMidX > pathLength || charMidX < 0) {\n currentElem._pos[j].hidden = true;\n } else {\n let pointOnPath = pathObject.getPointAtLength(charMidX * pathScale);\n if (isNotEqual(pathScale, 1)) {\n currentElem._pos[j].scale *= pathScale;\n currentElem._pos[j].width *= pathScale;\n }\n currentElem._pos[j].x =\n pointOnPath[0] -\n 0.5 * currentElem._pos[j].width * Math.cos(pointOnPath[2]) -\n currentElem._pos[j].y * Math.sin(pointOnPath[2]);\n currentElem._pos[j].y =\n pointOnPath[1] -\n 0.5 * currentElem._pos[j].width * Math.sin(pointOnPath[2]) +\n currentElem._pos[j].y * Math.cos(pointOnPath[2]);\n currentElem._pos[j].rotate = pointOnPath[2] + currentElem._pos[j].rotate;\n currentElem._pos[j].continuous = false;\n }\n }\n } else {\n for (let j = 0; j < currentElem._pos.length; j++) {\n currentElem._pos[j].hidden = true;\n }\n }\n }\n recursive(textParentElem, null);\n for (let i = 0; i < textPaths.length; i++) {\n textOnPath(textPaths[i]);\n }\n })(this);\n this.getTransformation = function () {\n return this.get('transform');\n };\n this.drawInDocument = function (isClip, isMask) {\n doc.save();\n this.transform();\n this.clip();\n let masked = this.mask(),\n group;\n if (masked) {\n group = docBeginGroup(getPageBBox());\n }\n this.drawTextInDocument(isClip, isMask);\n if (group) {\n docEndGroup(group);\n docInsertGroup(group);\n }\n doc.restore();\n };\n };\n\n options = options || {};\n var pxToPt = options.assumePt ? 1 : 72 / 96, // 1px = 72/96pt, but only if assumePt is false\n viewportWidth = (options.width || doc.page.width) / pxToPt,\n viewportHeight = (options.height || doc.page.height) / pxToPt,\n preserveAspectRatio = options.preserveAspectRatio || null, // default to null so that the attr can override if not passed\n useCSS =\n options.useCSS &&\n typeof SVGElement !== 'undefined' &&\n svg instanceof SVGElement &&\n typeof getComputedStyle === 'function',\n warningCallback = options.warningCallback,\n fontCallback = options.fontCallback,\n imageCallback = options.imageCallback,\n colorCallback = options.colorCallback,\n documentCallback = options.documentCallback,\n precision = Math.ceil(Math.max(1, options.precision)) || 3,\n groupStack = [],\n documentCache = {},\n links = [],\n styleRules = [],\n colorSpace = 'DeviceRGB';\n\n if (doc._activeColorProfile) {\n colorSpace = doc._activeColorProfile.ref;\n }\n\n if (typeof warningCallback !== 'function') {\n warningCallback = function (str) {\n console.warn(str);\n };\n }\n if (typeof fontCallback !== 'function') {\n fontCallback = function (family, bold, italic, fontOptions) {\n // Check if the font is already registered in the document\n if (bold && italic) {\n if (Object.prototype.hasOwnProperty.call(doc._registeredFonts, family + '-BoldItalic')) {\n return family + '-BoldItalic';\n } else if (Object.prototype.hasOwnProperty.call(doc._registeredFonts, family + '-Italic')) {\n fontOptions.fauxBold = true;\n return family + '-Italic';\n } else if (Object.prototype.hasOwnProperty.call(doc._registeredFonts, family + '-Bold')) {\n fontOptions.fauxItalic = true;\n return family + '-Bold';\n } else if (Object.prototype.hasOwnProperty.call(doc._registeredFonts, family)) {\n fontOptions.fauxBold = true;\n fontOptions.fauxItalic = true;\n return family;\n }\n }\n if (bold && !italic) {\n if (Object.prototype.hasOwnProperty.call(doc._registeredFonts, family + '-Bold')) {\n return family + '-Bold';\n } else if (Object.prototype.hasOwnProperty.call(doc._registeredFonts, family)) {\n fontOptions.fauxBold = true;\n return family;\n }\n }\n if (!bold && italic) {\n if (Object.prototype.hasOwnProperty.call(doc._registeredFonts, family + '-Italic')) {\n return family + '-Italic';\n } else if (Object.prototype.hasOwnProperty.call(doc._registeredFonts, family)) {\n fontOptions.fauxItalic = true;\n return family;\n }\n }\n if (!bold && !italic) {\n if (Object.prototype.hasOwnProperty.call(doc._registeredFonts, family)) {\n return family;\n }\n }\n // Use standard fonts as fallback\n if (family.match(/(?:^|,)\\s*serif\\s*$/)) {\n if (bold && italic) {\n return 'Times-BoldItalic';\n }\n if (bold && !italic) {\n return 'Times-Bold';\n }\n if (!bold && italic) {\n return 'Times-Italic';\n }\n if (!bold && !italic) {\n return 'Times-Roman';\n }\n } else if (family.match(/(?:^|,)\\s*monospace\\s*$/)) {\n if (bold && italic) {\n return 'Courier-BoldOblique';\n }\n if (bold && !italic) {\n return 'Courier-Bold';\n }\n if (!bold && italic) {\n return 'Courier-Oblique';\n }\n if (!bold && !italic) {\n return 'Courier';\n }\n } /*if (family.match(/(?:^|,)\\s*sans-serif\\s*$/) || true)*/ else {\n if (bold && italic) {\n return 'Helvetica-BoldOblique';\n }\n if (bold && !italic) {\n return 'Helvetica-Bold';\n }\n if (!bold && italic) {\n return 'Helvetica-Oblique';\n }\n if (!bold && !italic) {\n return 'Helvetica';\n }\n }\n };\n }\n if (typeof imageCallback !== 'function') {\n imageCallback = function (link) {\n return { src: link.trim() };\n };\n }\n if (typeof colorCallback !== 'function') {\n colorCallback = null;\n } else {\n for (let color in DefaultColors) {\n let newColor = colorCallback(DefaultColors[color], color);\n DefaultColors[color][0] = newColor[0];\n DefaultColors[color][1] = newColor[1];\n }\n }\n if (typeof documentCallback !== 'function') {\n documentCallback = null;\n }\n\n if (typeof svg === 'string') {\n svg = parseXml(svg);\n }\n if (svg) {\n let styles = svg.getElementsByTagName('style');\n for (let i = 0; i < styles.length; i++) {\n styleRules = styleRules.concat(parseStyleSheet(styles[i].textContent));\n }\n let elem = createSVGElement(svg, null);\n if (typeof elem.drawInDocument === 'function') {\n if (options.useCSS && !useCSS) {\n warningCallback('SVGtoPDF: useCSS option can only be used for SVG *elements* in compatible browsers');\n }\n let savedFillColor = doc._fillColor;\n doc\n .save()\n .translate(x || 0, y || 0)\n .scale(pxToPt);\n elem.drawInDocument();\n for (let i = 0; i < links.length; i++) {\n doc.page.annotations.push(links[i]);\n }\n doc.restore();\n doc._fillColor = savedFillColor;\n } else {\n warningCallback(\"SVGtoPDF: this element can't be rendered directly: \" + svg.nodeName);\n }\n } else {\n warningCallback('SVGtoPDF: the input does not look like a valid SVG');\n }\n}\n"],"names":["doc","svg","x","y","options","NamedColors","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","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","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","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","DefaultColors","transparent","Entities","quot","amp","lt","gt","apos","OElig","oelig","Scaron","scaron","Yuml","circ","tilde","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","permil","lsaquo","rsaquo","euro","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","copy","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","fnof","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","bull","hellip","prime","Prime","oline","frasl","weierp","image","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","empty","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","prop","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","lang","rang","loz","spades","clubs","hearts","diams","PathArguments","A","a","C","c","H","h","L","l","M","m","Q","q","S","s","T","t","V","v","Z","z","PathFlags","A3","A4","a3","a4","Properties","color","inherit","initial","undefined","visibility","values","hidden","collapse","visible","fill","stroke","nonzero","evenodd","miter","round","bevel","butt","square","small","medium","large","bold","bolder","normal","lighter","italic","oblique","start","middle","end","direction","ltr","rtl","auto","baseline","central","ideographic","alphabetic","hanging","mathematical","super","none","underline","overline","css","preserve","default","pre","nowrap","opacity","transform","display","inline","block","mask","overflow","scroll","blendModeMap","multiply","screen","overlay","darken","lighten","colorburn","colordodge","hardlight","softlight","difference","exclusion","hue","saturation","luminosity","maskBackdrop","_activeColorProfile","i","channels","push","docBeginGroup","bbox","group","PDFGroup","name","_groupCount","resources","ref","xobj","Type","Subtype","FormType","BBox","Group","CS","colorSpace","I","K","Resources","write","savedMatrix","_ctm","savedPage","page","groupStack","width","height","data","fonts","xobjects","ext_gstates","patterns","docEndGroup","pop","Object","keys","length","Font","XObject","ExtGState","Pattern","docInsertGroup","addContent","docApplyMask","clip","_maskCount","gstate","CA","ca","BM","SMask","G","BC","applyBlendMode","blendMode","key","String","toLowerCase","pdfBlendMode","docCreatePattern","dx","dy","matrix","pattern","PDFPattern","docUsePattern","_patternCount","PatternType","PaintType","TilingType","XStep","YStep","Matrix","multiplyMatrix","ProcSet","temp","docBeginText","font","size","id","docSetTextMatrix","b","d","e","f","validateNumber","docSetTextMode","mode","docWriteGlyphs","positions","commands","commandStr","skew","fauxItalic","addChar","char","glyph","kern","flush","join","pos","isEqual","continuous","cos","Math","rotate","sin","scale","docEndText","docFillColor","constructor","fillOpacity","fillColor","docStrokeColor","strokeOpacity","strokeColor","docInsertLink","w","url","Rect","Border","URI","links","parseXml","xml","SvgNode","tag","type","value","error","nodeName","nodeValue","nodeType","attributes","create","childNodes","parentNode","textContent","classList","prototype","getAttribute","attr","getElementById","result","recursive","node","getElementsByTagName","parser","StringParser","trim","child","match","decodeEntities","split","warningCallback","matchAll","str","replace","mt","m0","m1","m2","fromCharCode","parseInt","parseColor","raw","slice","parseFloat","colorCallback","opacityToColor","isMask","newColor","newOpacity","arguments","transformPoint","p","getGlobalMatrix","ctm","getPageBBox","SvgShape","inverseMatrix","getBoundingBox","dt","validateMatrix","m3","m4","m5","isNotEqual","solveEquation","curve","sqrt","getCurveValue","number","abs","n","isArrayLike","parseTranform","func","nums","parser2","temp2","matchNumber","Number","matchSeparator","PI","parseAspectRatio","aspectRatio","availWidth","availHeight","elemWidth","elemHeight","initAlign","ratioType","xAlign","yAlign","scaleX","scaleY","Min","Mid","Max","max","min","parseStyleAttr","fontFamily","fontSize","fontStyle","fontWeight","fontVariant","parts","parseSelector","ids","classes","tags","specificity","parseStyleSheet","rules","selectors","selector","matchesSelector","elem","indexOf","getStyle","specificities","styleRules","rule","combineArrays","array1","array2","concat","getAscent","ascender","maxY","getDescent","descender","minY","getXHeight","xHeight","getBaseline","shift","dy1","dy2","getTextPos","text","encoded","encode","hex","unicode","charCodeAt","advanceWidth","xAdvance","xOffset","yOffset","yAdvance","createSVGElement","obj","inherits","SvgElemUse","SvgElemSymbol","SvgElemGroup","SvgElemLink","SvgElemSvg","SVGElemImage","SvgElemRect","SvgElemCircle","SvgElemEllipse","SvgElemLine","SvgElemPolyline","SvgElemPolygon","SvgElemPath","SvgElemText","SvgElemTspan","SvgElemTextPath","SvgElemTextNode","SvgElem","getObjectStyles","style","styles","reduce","acc","parseCSSBlendMode","map","string","charAt","toUpperCase","exp","all","index","substring","matchSpace","matchLengthUnit","BezierSegment","p1x","p1y","c1x","c1y","c2x","c2y","p2x","p2y","divisions","precision","equationX","equationY","derivativeX","derivativeY","lengthMap","totalLength","startPoint","atan2","endPoint","minX","maxX","rootsX","rootsY","getPointAtLength","l1","l2","LineSegment","r","pathCommands","pathSegments","startX","startY","currX","currY","lastCom","lastCtrlX","lastCtrlY","move","line","segment","close","addCommand","apply","hasStart","hasEnd","cx","cy","rx","ry","fi","fa","fs","x1","y1","x2","y2","th1","th2","segms","ceil","th3","th4","endX","endY","path","command","Infinity","addBounds","bbox1","j","mergeShape","shape","clone","insertInDocument","moveTo","lineTo","bezierCurveTo","closePath","getSubPaths","subPaths","getMarkers","markers","subPath","subPathMarkers","startMarker","prevEndMarker","endMarker","styleCache","childrenCache","isOuterElement","stack","useCSS","getComputedStyle","allowedChildren","resolveUrl","file","svgObj","documentCallback","svgs","documentCache","computeUnits","unit","percent","isFontSize","getViewport","em","ex","get","px","pt","cm","mm","in","pc","computeLength","temp1","computeLengthList","strict","getLength","getLengthList","getUrl","getNumberList","getViewbox","viewBox","getPercent","chooseValue","keyInfo","parsed","isNaN","object","fallbackColor","SvgElemGradient","SvgElemPattern","dasharray","getChildren","children","getParentVWidth","getVWidth","viewportWidth","getParentVHeight","getVHeight","viewportHeight","getParentViewport","getBoundingShape","SvgElemStylable","call","getTransformation","clipPath","SvgElemClipPath","useMask","SvgElemMask","getFill","isClip","getPaint","getStroke","SvgElemHasChildren","childShape","drawChildren","drawInDocument","SvgElemContainer","drawContent","clipped","masked","save","restore","link","addLink","isText","preserveAspectRatio","src","imageSrc","properties","imageCallback","openImage","rect","translate","fallback","_attr","_getChildren","bBox","gOpacity","bBoxUnitsPattern","bBoxUnitsContent","aspectRatioMatrix","stopColor","bBoxUnits","spread","grad","r2","nAfter","nBefore","nTotal","pow","multiplier","inv","corner1","corner2","corner3","corner4","linearGradient","radialGradient","offset","inOrder","stop","setTransform","SvgElemBasicShape","dashScale","lineWidth","lineCap","circle","dashArray","dashOffset","miterLimit","lineJoin","dash","phase","fillAndStroke","markerStart","markerMid","markerEnd","markersPos","marker","SvgElemMarker","drawMarker","points","pathLength","posArray","strokeWidth","orient","units","refX","refY","SvgElemTextContainer","_pos","dx0","ascent","dy0","dx1","descent","dx2","drawTextInDocument","decorate","_font","fauxBold","childElem","linePosition","pathObject","pathScale","pathElem","textParentElem","processedText","remainingText","textPaths","currentChunk","currentAnchor","currentDirection","currentX","currentY","doAnchoring","last","first","anchordx","startltr","middleltr","endltr","startrtl","middlertl","endrtl","adjustLength","spacingAndGlyphs","firstChar","lastChar","textScale","spaceDiff","currentElem","parentElem","_x","_y","_dx","_dy","_rot","_defRot","fontOptions","fontNameorLink","fontCallback","_index","textLength","wordSpacing","letterSpacing","textAnchor","textDirection","rawText","renderedText","words","xAttr","yAttr","dxAttr","dyAttr","rotAttr","position","textOnPath","textOffset","charMidX","pointOnPath","pxToPt","assumePt","SVGElement","console","warn","family","hasOwnProperty","_registeredFonts","savedFillColor","_fillColor","annotations"],"mappings":"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"}