{"version":3,"file":"getGradientDefs.min.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":"wJAGA,MAAM,EAAW,CACf,iBACA,iBACA,qBACA,qBAAA,CAQF,SAAgB,EACd,EAAA,CAEA,IAAM,EAAS,EAAiB,EAAK,EAAA,CAC/B,EAAmD,EAAA,CACrD,EAAI,EAAO,OACf,KAAO,KAAK,CACV,IAAM,EAAK,EAAO,GACd,EAAG,aAAa,aAAA,EAClB,EAA+B,EAAK,EAAA,CAEtC,IAAM,EAAK,EAAG,aAAa,KAAA,CACvB,IACF,EAAa,GAAM,GAGvB,OAAO,EAAA,OAAA,KAAA"}