@kittl/pdfkit 0.17.4 → 0.17.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.yarn/install-state.gz +0 -0
- package/js/pdfkit.es.js +114 -16
- package/js/pdfkit.es.js.map +1 -1
- package/js/pdfkit.js +114 -16
- package/js/pdfkit.js.map +1 -1
- package/js/pdfkit.standalone.js +18594 -35280
- package/js/writeSvg.es.js +3684 -0
- package/js/writeSvg.es.js.map +1 -0
- package/js/writeSvg.js +3686 -0
- package/js/writeSvg.js.map +1 -0
- package/js/write_svg.es.js +3706 -0
- package/js/write_svg.es.js.map +1 -0
- package/js/write_svg.js +3708 -0
- package/js/write_svg.js.map +1 -0
- package/package.json +16 -5
- package/types/{index.d.ts → pdfkit.d.ts} +32 -32
- package/types/write_svg.d.ts +76 -0
- package/js/pdfkit.es5.js +0 -6091
- package/js/pdfkit.es5.js.map +0 -1
- package/js/pdfkit.esnext.js +0 -5392
- package/js/pdfkit.esnext.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeSvg.es.js","sources":["../lib/write_svg.js"],"sourcesContent":["// This directly taken from SVG-to-PDF\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 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 let name = 'M' + blendMode;\n let gstate = doc.ref({\n Type: 'ExtGState',\n CA: 1,\n ca: 1,\n BM: blendMode,\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(\n cos * pos.scale,\n sin * pos.scale,\n cos * skew - sin,\n sin * skew + cos,\n pos.x,\n pos.y,\n );\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 (\n (temp = parser.match(\n /^([\\w:.-]+)(?:\\s*=\\s*\"([^\"]*)\"|\\s*=\\s*'([^']*)')?\\s*/,\n true,\n ))\n ) {\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 +=\n child.nodeType === 3 || child.nodeType === 4\n ? child.nodeValue\n : 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 \"' +\n node.nodeName +\n '\" & closing \"' +\n temp[1] +\n '\"',\n );\n error = true;\n return node;\n }\n } else {\n warningCallback(\n 'parseXml: tag not matching, opening \"' +\n node.nodeName +\n '\" & not closing',\n );\n error = true;\n return node;\n }\n } else if (parser.match(/^\\/>/)) {\n // Self-closing tag\n return node;\n } else {\n warningCallback(\n 'parseXml: tag could not be parsed \"' + node.nodeName + '\"',\n );\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 (\n child.nodeType === 1 ||\n (child.nodeType === 3 && child.nodeValue.trim() !== '')\n ) {\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(\n /&(?:#([0-9]+)|#[xX]([0-9A-Fa-f]+)|([0-9A-Za-z]+));/g,\n 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 }\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 (\n (temp = raw.match(\n /^cmyk\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9.]+)\\s*\\)$/i,\n ))\n ) {\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 (\n temp[1] <= 100 &&\n temp[2] <= 100 &&\n temp[3] <= 100 &&\n temp[4] <= 100\n ) {\n result = [temp.slice(1, 5), 1];\n }\n } else if (\n (temp = raw.match(\n /^rgba\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9.]+)\\s*\\)$/i,\n ))\n ) {\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 (\n (temp = raw.match(\n /^rgb\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*\\)$/i,\n ))\n ) {\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 (\n (temp = raw.match(\n /^rgb\\(\\s*([0-9.]+)%\\s*,\\s*([0-9.]+)%\\s*,\\s*([0-9.]+)%\\s*\\)$/i,\n ))\n ) {\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 (\n (temp = raw.match(/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i))\n ) {\n result = [\n [parseInt(temp[1], 16), parseInt(temp[2], 16), parseInt(temp[3], 16)],\n 1,\n ];\n } else if ((temp = raw.match(/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i))) {\n result = [\n [\n 0x11 * parseInt(temp[1], 16),\n 0x11 * parseInt(temp[2], 16),\n 0x11 * parseInt(temp[3], 16),\n ],\n 1,\n ];\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 (\n (curve[0] || 0) +\n (curve[1] || 0) * t +\n (curve[2] || 0) * t * t +\n (curve[3] || 0) * t * t * t\n );\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, [\n nums[0],\n nums[1],\n nums[2],\n nums[3],\n nums[4],\n nums[5],\n ]);\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, [\n Math.cos(a),\n Math.sin(a),\n -Math.sin(a),\n Math.cos(a),\n 0,\n 0,\n ]);\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(\n aspectRatio,\n availWidth,\n availHeight,\n elemWidth,\n elemHeight,\n initAlign,\n ) {\n let temp =\n (aspectRatio || '')\n .trim()\n .match(\n /^(none)$|^x(Min|Mid|Max)Y(Min|Mid|Max)(?:\\s+(meet|slice))?$/,\n ) || [],\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 [\n scaleX,\n 0,\n 0,\n scaleY,\n dx * (availWidth - elemWidth * scaleX),\n dy * (availHeight - elemHeight * scaleY),\n ];\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 let parser = new StringParser(v.trim()),\n rules = [],\n rule;\n while ((rule = parser.match(/^\\s*([^\\{\\}]*?)\\s*\\{([^\\{\\}]*?)\\}/, true))) {\n let selectors = rule[1].split(/\\s*,\\s*/g),\n css = parseStyleAttr(rule[2]);\n for (let i = 0; i < selectors.length; i++) {\n let selector = parseSelector(selectors[i]);\n if (selector) {\n rules.push({ selector: selector, css: 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 (\n (Math.max(\n font.ascender,\n (font.bbox[3] || font.bbox.maxY) * (font.scale || 1),\n ) *\n size) /\n 1000\n );\n }\n function getDescent(font, size) {\n return (\n (Math.min(\n font.descender,\n (font.bbox[1] || font.bbox.minY) * (font.scale || 1),\n ) *\n size) /\n 1000\n );\n }\n function getXHeight(font, size) {\n return (\n ((font.xHeight || 0.5 * (font.ascender - font.descender)) * size) / 1000\n );\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\n ? font.unicode[parseInt(hex[i], 16)]\n : [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(\n /^(?:[-+]?(?:[0-9]+[.][0-9]+|[0-9]+[.]|[.][0-9]+|[0-9]+)(?:[eE][-+]?[0-9]+)?)/,\n );\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 = [\n p1x,\n -3 * p1x + 3 * c1x,\n 3 * p1x - 6 * c1x + 3 * c2x,\n -p1x + 3 * c1x - 3 * c2x + p2x,\n ];\n let equationY = [\n p1y,\n -3 * p1y + 3 * c1y,\n 3 * p1y - 6 * c1y + 3 * c2y,\n -p1y + 3 * c1y - 3 * c2y + p2y,\n ];\n let derivativeX = [\n -3 * p1x + 3 * c1x,\n 6 * p1x - 12 * c1x + 6 * c2x,\n -3 * p1x + 9 * c1x - 9 * c2x + 3 * p2x,\n ];\n let derivativeY = [\n -3 * p1y + 3 * c1y,\n 6 * p1y - 12 * c1y + 6 * c2y,\n -3 * p1y + 9 * c1y - 9 * c2y + 3 * p2y,\n ];\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)\n ? Math.atan2(c2y - c1y, c2x - c1x)\n : Math.atan2(c1y - p1y, c1x - p1x),\n ];\n this.endPoint = [\n p2x,\n p2y,\n isEqual(c2x, p2x) && isEqual(c2y, p2y)\n ? Math.atan2(c2y - c1y, c2x - c1x)\n : 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(\n (p2x - p1x) * (p2x - p1x) + (p2y - p1y) * (p2y - p1y),\n );\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(\n currX + c1x,\n currY + c1y,\n currX + c2x,\n currY + c2y,\n currX + x,\n currY + 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 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 =\n (Math.cos(fi) * (currX - x)) / 2 + (Math.sin(fi) * (currY - y)) / 2,\n y1 =\n (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(\n 0,\n rx * rx * ry * ry - rx * rx * y1 * y1 - ry * ry * x1 * x1,\n ) /\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 =\n cx +\n Math.cos(fi) * rx * Math.cos(th4) -\n Math.sin(fi) * ry * Math.sin(th4),\n endY =\n cy +\n Math.sin(fi) * rx * Math.cos(th4) +\n Math.cos(fi) * ry * Math.sin(th4);\n this.addCommand([\n 'curve',\n i === 0,\n i === segms - 1,\n c1x,\n c1y,\n c2x,\n c2y,\n endX,\n endY,\n ]);\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 (\n (value = PathFlags[command + values.length]\n ? parser.match(/^[01]/)\n : parser.matchNumber())\n ) {\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(\n 'SvgPath: command ' +\n command +\n ' with ' +\n values.length +\n ' numbers',\n );\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(\n values[0],\n values[1],\n values[2],\n values[3],\n values[4],\n values[5],\n );\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 (\n isNotEqual(segment.totalLength, 0) ||\n j === 0 ||\n j === subPath.pathSegments.length - 1\n ) {\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 =\n inherits ||\n (!this.isOuterElement ? createSVGElement(obj.parentNode, null) : null);\n this.stack = this.inherits ? this.inherits.stack.concat(obj) : [obj];\n this.style = parseStyleAttr(\n typeof obj.getAttribute === 'function' && obj.getAttribute('style'),\n );\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(\n /^\\s*(?:url\\(\"(.*)#(.*)\"\\)|url\\('(.*)#(.*)'\\)|url\\((.*)#(.*)\\)|(.*)#(.*))\\s*$/,\n ) || [];\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(\n 'SVGtoPDF: loop of circular references for id \"' + id + '\"',\n );\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(\n 'SVGtoPDF: loop of circular references for id \"' +\n file +\n '#' +\n id +\n '\"',\n );\n return;\n }\n }\n }\n }\n }\n };\n this.computeUnits = function (value, unit, percent, isFontSize) {\n if (unit === '%') {\n return (\n (parseFloat(value) / 100) *\n (isFontSize || percent != null ? percent : this.getViewport())\n );\n } else if (unit === 'ex' || unit === 'em') {\n return (\n value *\n { em: 1, ex: 0.5 }[unit] *\n (isFontSize ? percent : this.get('font-size'))\n );\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 let value = this.attr(key);\n let parser = new StringParser((value || '').trim()),\n temp1,\n temp2;\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 (\n (parsed = this.computeLengthList(\n value,\n this.getViewport(),\n true,\n ))\n ) {\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 (\n object.nodeName === 'linearGradient' ||\n object.nodeName === 'radialGradient'\n ) {\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] =\n keyInfo.inherit && this.inherits\n ? this.inherits.get(key)\n : 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 (\n !child.error &&\n this.allowedChildren.indexOf(child.nodeName) !== -1\n ) {\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() +\n 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(\n 0.5 * this.getVWidth() * this.getVWidth() +\n 0.5 * this.getVHeight() * this.getVHeight(),\n );\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(\n this.getBoundingBox(),\n fillOpacity * opacity,\n isClip,\n isMask,\n );\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 (\n stroke instanceof SvgElemGradient ||\n stroke instanceof SvgElemPattern\n ) {\n return stroke.getPaint(\n this.getBoundingBox(),\n strokeOpacity * opacity,\n isClip,\n isMask,\n );\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 (\n (this.get('opacity') < 1 || clipped || masked || blendMode) &&\n !isClip\n ) {\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(\n 'width',\n this.getParentVWidth(),\n this.getParentVWidth(),\n ),\n height = this.getLength(\n 'height',\n this.getParentVHeight(),\n this.getParentVHeight(),\n );\n if (inherits instanceof SvgElemUse) {\n width = inherits.getLength('width', inherits.getParentVWidth(), width);\n height = inherits.getLength(\n 'height',\n inherits.getParentVHeight(),\n height,\n );\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(\n parseAspectRatio(aspectRatio, width, height, viewBox[2], viewBox[3]),\n [1, 0, 0, 1, -viewBox[0], -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(\n isClip,\n isMask,\n parseCSSBlendMode(styles['mix-blend-mode']),\n );\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 = [\n 'textPath',\n 'tspan',\n '#text',\n '#cdata-section',\n 'a',\n ];\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 (\n this.link.match(/^(?:[a-z][a-z0-9+.-]*:|\\/\\/)?/i) &&\n this.getChildren().length\n ) {\n let bbox = this.getBoundingShape()\n .transform(getGlobalMatrix())\n .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(\n 'width',\n this.getParentVWidth(),\n this.getParentVWidth(),\n ),\n height = this.getLength(\n 'height',\n this.getParentVHeight(),\n this.getParentVHeight(),\n ),\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(\n 'height',\n inherits.getParentVHeight(),\n height,\n );\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(\n this.attr('href') || this.attr('xlink:href') || '',\n );\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(\n 'SVGElemImage: failed to open image \"' + e + '\" in PDFKit',\n e,\n );\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 =\n this.attr('patternContentUnits') === 'objectBoundingBox',\n x = this.getLength(\n 'x',\n bBoxUnitsPattern ? 1 : this.getParentVWidth(),\n 0,\n ),\n y = this.getLength(\n 'y',\n bBoxUnitsPattern ? 1 : this.getParentVHeight(),\n 0,\n ),\n width = this.getLength(\n 'width',\n bBoxUnitsPattern ? 1 : this.getParentVWidth(),\n 0,\n ),\n height = this.getLength(\n 'height',\n bBoxUnitsPattern ? 1 : this.getParentVHeight(),\n 0,\n );\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(\n parseAspectRatio(\n aspectRatio,\n width,\n height,\n viewBox[2],\n viewBox[3],\n 0,\n ),\n [1, 0, 0, 1, -viewBox[0], -viewBox[1]],\n ),\n matrix = parseTranform(this.attr('patternTransform'));\n if (bBoxUnitsContent) {\n matrix = multiplyMatrix(\n [bBox[2] - bBox[0], 0, 0, bBox[3] - bBox[1], bBox[0], bBox[1]],\n matrix,\n );\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(\n 'width',\n bBoxUnitsPattern ? 1 : this.getParentVWidth(),\n 0,\n );\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(\n 'height',\n bBoxUnitsPattern ? 1 : this.getParentVHeight(),\n 0,\n );\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(\n stopColor,\n child.get('stop-opacity') * gOpacity,\n isMask,\n );\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(\n [bBox[2] - bBox[0], 0, 0, bBox[3] - bBox[1], bBox[0], bBox[1]],\n matrix,\n );\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(\n 'x2',\n bBoxUnits ? 1 : this.getVWidth(),\n bBoxUnits ? 1 : this.getVWidth(),\n );\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(\n 'cx',\n bBoxUnits ? 1 : this.getVWidth(),\n bBoxUnits ? 0.5 : 0.5 * this.getVWidth(),\n );\n y2 = this.getLength(\n 'cy',\n bBoxUnits ? 1 : this.getVHeight(),\n bBoxUnits ? 0.5 : 0.5 * this.getVHeight(),\n );\n r2 = this.getLength(\n 'r',\n bBoxUnits ? 1 : this.getViewport(),\n bBoxUnits ? 0.5 : 0.5 * this.getViewport(),\n );\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(\n stopColor,\n child.get('stop-opacity') * gOpacity,\n isMask,\n );\n offset = Math.max(\n offset,\n inOrder\n ? child.getPercent('offset', 0)\n : 1 - child.getPercent('offset', 0),\n );\n if (i === 0 && offset > 0) {\n grad.stop((n + 0) / nTotal, stopColor[0], stopColor[1]);\n }\n grad.stop(\n (n + offset) / (nAfter + nBefore + 1),\n stopColor[0],\n stopColor[1],\n );\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 (\n (lineCap === 'square' || lineCap === 'round') &&\n lineWidth > 0\n ) {\n if (\n subPaths[j].startPoint &&\n subPaths[j].startPoint.length > 1\n ) {\n let x = subPaths[j].startPoint[0],\n y = subPaths[j].startPoint[1];\n docFillColor(stroke);\n if (lineCap === 'square') {\n doc.rect(\n x - 0.5 * lineWidth,\n y - 0.5 * lineWidth,\n lineWidth,\n lineWidth,\n );\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 (\n markerStart !== 'none' ||\n markerMid !== 'none' ||\n markerEnd !== 'none'\n ) {\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(\n false,\n isMask,\n markersPos[markersPos.length - 1],\n lineWidth,\n );\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 =\n this.pathLength !== undefined\n ? this.shape.totalLength / this.pathLength\n : 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 =\n orient === 'auto'\n ? posArray[2]\n : ((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) -\n width / 2,\n aspectRatioMatrix[3] * (viewBox[1] + viewBox[3] / 2 - refY) -\n 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(\n bBox[2] - bBox[0],\n 0,\n 0,\n bBox[3] - bBox[1],\n bBox[0],\n bBox[1],\n );\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(\n 'x',\n this.getVWidth(),\n -0.1 * (bBox[2] - bBox[0]) + bBox[0],\n );\n y = this.getLength(\n 'y',\n this.getVHeight(),\n -0.1 * (bBox[3] - bBox[1]) + bBox[1],\n );\n w = this.getLength(\n 'width',\n this.getVWidth(),\n 1.2 * (bBox[2] - bBox[0]),\n );\n h = this.getLength(\n 'height',\n this.getVHeight(),\n 1.2 * (bBox[3] - bBox[1]),\n );\n } else {\n x =\n this.getLength('x', this.getVWidth(), -0.1) * (bBox[2] - bBox[0]) +\n bBox[0];\n y =\n this.getLength('y', this.getVHeight(), -0.1) * (bBox[3] - bBox[1]) +\n bBox[1];\n w =\n this.getLength('width', this.getVWidth(), 1.2) * (bBox[2] - bBox[0]);\n h =\n this.getLength('height', this.getVHeight(), 1.2) *\n (bBox[3] - bBox[1]);\n }\n if (this.attr('maskContentUnits') === 'objectBoundingBox') {\n doc.transform(\n bBox[2] - bBox[0],\n 0,\n 0,\n bBox[3] - bBox[1],\n bBox[0],\n bBox[1],\n );\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(\n 0.05 * this._font.size,\n -0.075 * this._font.size,\n isClip,\n isMask,\n );\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 *\n (getAscent(this._font.font, this._font.size) +\n 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 pathObject, pathLength, 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 =\n pathLength > 0 ? pathLength : this.pathObject.totalLength;\n this.pathScale = this.pathObject.totalLength / this.pathLength;\n } else if (\n (temp = this.getUrl('href') || this.getUrl('xlink:href')) &&\n temp.nodeName === 'path'\n ) {\n let pathElem = new SvgElemPath(temp, this);\n this.pathObject = pathElem.shape\n .clone()\n .transform(pathElem.get('transform'));\n this.pathLength = this.chooseValue(\n pathElem.pathLength,\n this.pathObject.totalLength,\n );\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 = [\n 'textPath',\n 'tspan',\n '#text',\n '#cdata-section',\n 'a',\n ];\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(\n 'SVGElemText: failed to open font \"' +\n fontNameorLink +\n '\" in PDFKit',\n );\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(\n 'textLength',\n currentElem.getVWidth(),\n undefined,\n ),\n spacingAndGlyphs =\n 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') ||\n 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(\n currentElem._font.font,\n currentElem._font.size,\n words[w],\n );\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:\n (Math.PI / 180) *\n 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(\n currentElem._font.font,\n currentElem._font.size,\n ),\n descent: getDescent(\n currentElem._font.font,\n currentElem._font.size,\n ),\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 default:\n remainingText = remainingText.substring(\n childElem.textContent.length,\n );\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 =\n textOffset +\n currentElem._pos[j].x +\n 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(\n charMidX * pathScale,\n );\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 =\n 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 = doc._activeColorProfile || 'DeviceRGB';\n\n if (typeof warningCallback !== 'function') {\n warningCallback = function (str) {\n if (typeof console !== undefined && typeof console.warn === 'function') {\n console.warn(str);\n }\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 (doc._registeredFonts.hasOwnProperty(family + '-BoldItalic')) {\n return family + '-BoldItalic';\n } else if (doc._registeredFonts.hasOwnProperty(family + '-Italic')) {\n fontOptions.fauxBold = true;\n return family + '-Italic';\n } else if (doc._registeredFonts.hasOwnProperty(family + '-Bold')) {\n fontOptions.fauxItalic = true;\n return family + '-Bold';\n } else if (doc._registeredFonts.hasOwnProperty(family)) {\n fontOptions.fauxBold = true;\n fontOptions.fauxItalic = true;\n return family;\n }\n }\n if (bold && !italic) {\n if (doc._registeredFonts.hasOwnProperty(family + '-Bold')) {\n return family + '-Bold';\n } else if (doc._registeredFonts.hasOwnProperty(family)) {\n fontOptions.fauxBold = true;\n return family;\n }\n }\n if (!bold && italic) {\n if (doc._registeredFonts.hasOwnProperty(family + '-Italic')) {\n return family + '-Italic';\n } else if (doc._registeredFonts.hasOwnProperty(family)) {\n fontOptions.fauxItalic = true;\n return family;\n }\n }\n if (!bold && !italic) {\n if (doc._registeredFonts.hasOwnProperty(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 } else if (family.match(/(?:^|,)\\s*sans-serif\\s*$/) || true) {\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]);\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(\n 'SVGtoPDF: useCSS option can only be used for SVG *elements* in compatible browsers',\n );\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(\n \"SVGtoPDF: this element can't be rendered directly: \" + svg.nodeName,\n );\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","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","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","String","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","multiply","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","key","fontFamily","fontSize","fontStyle","fontWeight","fontVariant","parts","parseSelector","ids","classes","tags","specificity","parseStyleSheet","rules","rule","selectors","selector","matchesSelector","elem","indexOf","getStyle","specificities","styleRules","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","args","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","_registeredFonts","hasOwnProperty","savedFillColor","_fillColor","annotations"],"mappings":"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"}
|