UNPKG

fabric

Version:

Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.

1 lines 2.02 kB
{"version":3,"file":"getGradientDefs.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":";;;AAGA,MAAMA,QAAQ,GAAG,CACf,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,CACrB,CAAA;;AAED;AACA;AACA;AACA;AACA;AACO,SAASC,eAAeA,CAC7BC,GAAa,EACuB;AACpC,EAAA,MAAMC,MAAM,GAAGC,gBAAgB,CAACF,GAAG,EAAEF,QAAQ,CAAC,CAAA;EAC9C,MAAMK,YAAgD,GAAG,EAAE,CAAA;AAC3D,EAAA,IAAIC,CAAC,GAAGH,MAAM,CAACI,MAAM,CAAA;EACrB,OAAOD,CAAC,EAAE,EAAE;AACV,IAAA,MAAME,EAAE,GAAGL,MAAM,CAACG,CAAC,CAAC,CAAA;AACpB,IAAA,IAAIE,EAAE,CAACC,YAAY,CAAC,YAAY,CAAC,EAAE;AACjCC,MAAAA,8BAA8B,CAACR,GAAG,EAAEM,EAAE,CAAC,CAAA;AACzC,KAAA;AACA,IAAA,MAAMG,EAAE,GAAGH,EAAE,CAACC,YAAY,CAAC,IAAI,CAAC,CAAA;AAChC,IAAA,IAAIE,EAAE,EAAE;AACNN,MAAAA,YAAY,CAACM,EAAE,CAAC,GAAGH,EAAwB,CAAA;AAC7C,KAAA;AACF,GAAA;AACA,EAAA,OAAOH,YAAY,CAAA;AACrB;;;;"}