fabric
Version:
Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.
1 lines • 1.48 kB
Source Map (JSON)
{"version":3,"file":"getGradientDefs.mjs","names":[],"sources":["../../../src/parser/getGradientDefs.ts"],"sourcesContent":["import { getMultipleNodes } from './getMultipleNodes';\nimport { recursivelyParseGradientsXlink } from './recursivelyParseGradientsXlink';\n\nconst tagArray = [\n 'linearGradient',\n 'radialGradient',\n 'svg:linearGradient',\n 'svg:radialGradient',\n];\n\n/**\n * Parses an SVG document, returning all of the gradient declarations found in it\n * @param {SVGDocument} doc SVG document to parse\n * @return {Object} Gradient definitions; key corresponds to element id, value -- to gradient definition element\n */\nexport function getGradientDefs(\n doc: Document,\n): Record<string, SVGGradientElement> {\n const elList = getMultipleNodes(doc, tagArray);\n const gradientDefs: Record<string, SVGGradientElement> = {};\n let j = elList.length;\n while (j--) {\n const el = elList[j];\n if (el.getAttribute('xlink:href')) {\n recursivelyParseGradientsXlink(doc, el);\n }\n const id = el.getAttribute('id');\n if (id) {\n gradientDefs[id] = el as SVGGradientElement;\n }\n }\n return gradientDefs;\n}\n"],"mappings":";;;AAGA,MAAM,WAAW;CACf;CACA;CACA;CACA;CACD;;;;;;AAOD,SAAgB,gBACd,KACoC;CACpC,MAAM,SAAS,iBAAiB,KAAK,SAAS;CAC9C,MAAM,eAAmD,EAAE;CAC3D,IAAI,IAAI,OAAO;AACf,QAAO,KAAK;EACV,MAAM,KAAK,OAAO;AAClB,MAAI,GAAG,aAAa,aAAa,CAC/B,gCAA+B,KAAK,GAAG;EAEzC,MAAM,KAAK,GAAG,aAAa,KAAK;AAChC,MAAI,GACF,cAAa,MAAM;;AAGvB,QAAO"}