{"version":3,"file":"setStrokeFillOpacity.mjs","names":[],"sources":["../../../src/parser/setStrokeFillOpacity.ts"],"sourcesContent":["import { Color } from '../color/Color';\nimport { toFixed } from '../util/misc/toFixed';\nimport { FabricObject } from '../shapes/Object/FabricObject';\n\nconst colorAttributesMap = {\n  stroke: 'strokeOpacity',\n  fill: 'fillOpacity',\n};\n\n/**\n * @private\n * @param {Object} attributes Array of attributes to parse\n */\n\nexport function setStrokeFillOpacity(\n  attributes: Record<string, any>,\n): Record<string, any> {\n  const defaults = FabricObject.getDefaults();\n  Object.entries(colorAttributesMap).forEach(([attr, colorAttr]) => {\n    if (\n      typeof attributes[colorAttr] === 'undefined' ||\n      attributes[attr] === ''\n    ) {\n      return;\n    }\n    if (typeof attributes[attr] === 'undefined') {\n      if (!defaults[attr]) {\n        return;\n      }\n      attributes[attr] = defaults[attr];\n    }\n    if (attributes[attr].indexOf('url(') === 0) {\n      return;\n    }\n    const color = new Color(attributes[attr]);\n    attributes[attr] = color\n      .setAlpha(toFixed(color.getAlpha() * attributes[colorAttr], 2))\n      .toRgba();\n  });\n  return attributes;\n}\n"],"mappings":";;;;AAIA,MAAM,qBAAqB;CACzB,QAAQ;CACR,MAAM;CACP;;;;;AAOD,SAAgB,qBACd,YACqB;CACrB,MAAM,WAAW,aAAa,aAAa;AAC3C,QAAO,QAAQ,mBAAmB,CAAC,SAAS,CAAC,MAAM,eAAe;AAChE,MACE,OAAO,WAAW,eAAe,eACjC,WAAW,UAAU,GAErB;AAEF,MAAI,OAAO,WAAW,UAAU,aAAa;AAC3C,OAAI,CAAC,SAAS,MACZ;AAEF,cAAW,QAAQ,SAAS;;AAE9B,MAAI,WAAW,MAAM,QAAQ,OAAO,KAAK,EACvC;EAEF,MAAM,QAAQ,IAAI,MAAM,WAAW,MAAM;AACzC,aAAW,QAAQ,MAChB,SAAS,QAAQ,MAAM,UAAU,GAAG,WAAW,YAAY,EAAE,CAAC,CAC9D,QAAQ;GACX;AACF,QAAO"}