{"version":3,"file":"recursivelyParseGradientsXlink.min.mjs","names":[],"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"],"mappings":"AAAA,MAAM,EAAiB,CACrB,oBACA,KACA,KACA,KACA,KACA,gBACA,KACA,KACA,IACA,KACA,KAAA,CAEI,EAAY,aAElB,SAAgB,EACd,EACA,EAAA,CAAA,IAAA,EAEA,IAAM,IAAA,EAAQ,EAAS,aAAa,EAAA,GAAU,KAAA,IAAA,GAAA,EAAE,MAAM,EAAA,GAAM,GAC1D,EAAqB,EAAI,eAAe,EAAA,CAI1C,GAHI,GAAsB,EAAmB,aAAa,EAAA,EACxD,EAA+B,EAAK,EAAA,CAElC,IACF,EAAe,QAAS,GAAA,CACtB,IAAM,EAAQ,EAAmB,aAAa,EAAA,CAAA,CACzC,EAAS,aAAa,EAAA,EAAS,GAClC,EAAS,aAAa,EAAM,EAAA,EAAA,CAAA,CAG3B,EAAS,SAAS,QAAQ,CAC7B,IAAM,EAAiB,EAAmB,UAAA,CAAU,EAAA,CACpD,KAAO,EAAe,YACpB,EAAS,YAAY,EAAe,WAAA,CAI1C,EAAS,gBAAgB,EAAA,CAAA,OAAA,KAAA"}