fabric
Version:
Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.
1 lines • 1.61 kB
Source Map (JSON)
{"version":3,"file":"getGradientDefs.min.mjs","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"],"names":["tagArray","getGradientDefs","doc","elList","getMultipleNodes","gradientDefs","j","length","el","getAttribute","recursivelyParseGradientsXlink","id"],"mappings":"wJAGA,MAAMA,EAAW,CACf,iBACA,iBACA,qBACA,sBAQK,SAASC,EACdC,GAEA,MAAMC,EAASC,EAAiBF,EAAKF,GAC/BK,EAAmD,CAAA,EACzD,IAAIC,EAAIH,EAAOI,OACf,KAAOD,KAAK,CACV,MAAME,EAAKL,EAAOG,GACdE,EAAGC,aAAa,eAClBC,EAA+BR,EAAKM,GAEtC,MAAMG,EAAKH,EAAGC,aAAa,MACvBE,IACFN,EAAaM,GAAMH,EAEvB,CACA,OAAOH,CACT"}