fabric
Version:
Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.
1 lines • 2.76 kB
Source Map (JSON)
{"version":3,"file":"recursivelyParseGradientsXlink.mjs","sources":["../../../src/parser/recursivelyParseGradientsXlink.ts"],"sourcesContent":["const gradientsAttrs = [\n 'gradientTransform',\n 'x1',\n 'x2',\n 'y1',\n 'y2',\n 'gradientUnits',\n 'cx',\n 'cy',\n 'r',\n 'fx',\n 'fy',\n];\nconst xlinkAttr = 'xlink:href';\n\nexport function recursivelyParseGradientsXlink(\n doc: Document,\n gradient: Element,\n) {\n const xLink = gradient.getAttribute(xlinkAttr)?.slice(1) || '',\n referencedGradient = doc.getElementById(xLink);\n if (referencedGradient && referencedGradient.getAttribute(xlinkAttr)) {\n recursivelyParseGradientsXlink(doc, referencedGradient as Element);\n }\n if (referencedGradient) {\n gradientsAttrs.forEach((attr) => {\n const value = referencedGradient.getAttribute(attr);\n if (!gradient.hasAttribute(attr) && value) {\n gradient.setAttribute(attr, value);\n }\n });\n if (!gradient.children.length) {\n const referenceClone = referencedGradient.cloneNode(true);\n while (referenceClone.firstChild) {\n gradient.appendChild(referenceClone.firstChild);\n }\n }\n }\n gradient.removeAttribute(xlinkAttr);\n}\n"],"names":["gradientsAttrs","xlinkAttr","recursivelyParseGradientsXlink","doc","gradient","_gradient$getAttribut","xLink","getAttribute","slice","referencedGradient","getElementById","forEach","attr","value","hasAttribute","setAttribute","children","length","referenceClone","cloneNode","firstChild","appendChild","removeAttribute"],"mappings":"AAAA,MAAMA,cAAc,GAAG,CACrB,mBAAmB,EACnB,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,eAAe,EACf,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,CACL,CAAA;AACD,MAAMC,SAAS,GAAG,YAAY,CAAA;AAEvB,SAASC,8BAA8BA,CAC5CC,GAAa,EACbC,QAAiB,EACjB;AAAA,EAAA,IAAAC,qBAAA,CAAA;EACA,MAAMC,KAAK,GAAG,CAAAD,CAAAA,qBAAA,GAAAD,QAAQ,CAACG,YAAY,CAACN,SAAS,CAAC,MAAAI,IAAAA,IAAAA,qBAAA,uBAAhCA,qBAAA,CAAkCG,KAAK,CAAC,CAAC,CAAC,KAAI,EAAE;AAC5DC,IAAAA,kBAAkB,GAAGN,GAAG,CAACO,cAAc,CAACJ,KAAK,CAAC,CAAA;EAChD,IAAIG,kBAAkB,IAAIA,kBAAkB,CAACF,YAAY,CAACN,SAAS,CAAC,EAAE;AACpEC,IAAAA,8BAA8B,CAACC,GAAG,EAAEM,kBAA6B,CAAC,CAAA;AACpE,GAAA;AACA,EAAA,IAAIA,kBAAkB,EAAE;AACtBT,IAAAA,cAAc,CAACW,OAAO,CAAEC,IAAI,IAAK;AAC/B,MAAA,MAAMC,KAAK,GAAGJ,kBAAkB,CAACF,YAAY,CAACK,IAAI,CAAC,CAAA;MACnD,IAAI,CAACR,QAAQ,CAACU,YAAY,CAACF,IAAI,CAAC,IAAIC,KAAK,EAAE;AACzCT,QAAAA,QAAQ,CAACW,YAAY,CAACH,IAAI,EAAEC,KAAK,CAAC,CAAA;AACpC,OAAA;AACF,KAAC,CAAC,CAAA;AACF,IAAA,IAAI,CAACT,QAAQ,CAACY,QAAQ,CAACC,MAAM,EAAE;AAC7B,MAAA,MAAMC,cAAc,GAAGT,kBAAkB,CAACU,SAAS,CAAC,IAAI,CAAC,CAAA;MACzD,OAAOD,cAAc,CAACE,UAAU,EAAE;AAChChB,QAAAA,QAAQ,CAACiB,WAAW,CAACH,cAAc,CAACE,UAAU,CAAC,CAAA;AACjD,OAAA;AACF,KAAA;AACF,GAAA;AACAhB,EAAAA,QAAQ,CAACkB,eAAe,CAACrB,SAAS,CAAC,CAAA;AACrC;;;;"}