{"version":3,"file":"chartNative.js","names":[],"sources":["esm/platform/chartNative.js"],"sourcesContent":["import { processColor } from \"react-native-web\";\nfunction nativeColor(name, color) {\n  const processed = processColor(color);\n  if (typeof processed !== \"number\") throw new Error(`Swift.Chart ${name} must be a color string or number`);\n  return processed;\n}\nfunction chartPointsNative(name, points) {\n  if (!Array.isArray(points)) throw new Error(`Swift.Chart ${name} must be an array`);\n  return JSON.stringify(\n    points.map((point, index) => {\n      if (typeof point?.x !== \"string\" && (typeof point?.x !== \"number\" || !Number.isFinite(point.x)))\n        throw new Error(`Swift.Chart ${name}[${index}].x must be a string or finite number`);\n      if (typeof point.y !== \"number\" || !Number.isFinite(point.y))\n        throw new Error(`Swift.Chart ${name}[${index}].y must be a finite number`);\n      return {\n        x: point.x,\n        y: point.y,\n        ...point.color === void 0 ? {} : { color: nativeColor(`${name}[${index}].color`, point.color) }\n      };\n    })\n  );\n}\nconst pointStyles = [\"circle\", \"square\", \"diamond\"];\nfunction chartStyleNative(name, style, fields) {\n  if (style === void 0) return \"{}\";\n  if (typeof style !== \"object\" || style === null) throw new Error(`Swift.Chart ${name} must be an object`);\n  const native = {};\n  for (const [key, value] of Object.entries(style)) {\n    if (value === void 0) continue;\n    if (!fields.includes(key)) throw new Error(`Swift.Chart ${name} has unknown field ${key}`);\n    if (key === \"color\") native.color = nativeColor(`${name}.color`, value);\n    else if (key === \"pointStyle\") {\n      if (!pointStyles.includes(value)) throw new Error(`Swift.Chart ${name}.pointStyle must be one of ${pointStyles.join(\", \")}`);\n      native.pointStyle = value;\n    } else if (key === \"dashArray\") {\n      if (!Array.isArray(value) || value.some((item) => typeof item !== \"number\" || !Number.isFinite(item) || item < 0))\n        throw new Error(`Swift.Chart ${name}.dashArray must be an array of non-negative numbers`);\n      native.dashArray = value;\n    } else {\n      if (typeof value !== \"number\" || !Number.isFinite(value)) throw new Error(`Swift.Chart ${name}.${key} must be a finite number`);\n      native[key] = value;\n    }\n  }\n  return JSON.stringify(native);\n}\nexport {\n  chartPointsNative,\n  chartStyleNative\n};\n//# sourceMappingURL=chartNative.js.map\n"],"mappings":";;;AACA,SAAS,YAAY,MAAM,OAAO;CAChC,MAAM,YAAY,aAAa,KAAK;CACpC,IAAI,OAAO,cAAc,UAAU,MAAM,IAAI,MAAM,eAAe,KAAK,kCAAkC;CACzG,OAAO;AACT;AACA,SAAS,kBAAkB,MAAM,QAAQ;CACvC,IAAI,CAAC,MAAM,QAAQ,MAAM,GAAG,MAAM,IAAI,MAAM,eAAe,KAAK,kBAAkB;CAClF,OAAO,KAAK,UACV,OAAO,KAAK,OAAO,UAAU;EAC3B,IAAI,OAAO,OAAO,MAAM,aAAa,OAAO,OAAO,MAAM,YAAY,CAAC,OAAO,SAAS,MAAM,CAAC,IAC3F,MAAM,IAAI,MAAM,eAAe,KAAK,GAAG,MAAM,sCAAsC;EACrF,IAAI,OAAO,MAAM,MAAM,YAAY,CAAC,OAAO,SAAS,MAAM,CAAC,GACzD,MAAM,IAAI,MAAM,eAAe,KAAK,GAAG,MAAM,4BAA4B;EAC3E,OAAO;GACL,GAAG,MAAM;GACT,GAAG,MAAM;GACT,GAAG,MAAM,UAAU,KAAK,IAAI,CAAC,IAAI,EAAE,OAAO,YAAY,GAAG,KAAK,GAAG,MAAM,UAAU,MAAM,KAAK,EAAE;EAChG;CACF,CAAC,CACH;AACF;AACA,MAAM,cAAc;CAAC;CAAU;CAAU;AAAS;AAClD,SAAS,iBAAiB,MAAM,OAAO,QAAQ;CAC7C,IAAI,UAAU,KAAK,GAAG,OAAO;CAC7B,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM,MAAM,IAAI,MAAM,eAAe,KAAK,mBAAmB;CACxG,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,KAAK,GAAG;EAChD,IAAI,UAAU,KAAK,GAAG;EACtB,IAAI,CAAC,OAAO,SAAS,GAAG,GAAG,MAAM,IAAI,MAAM,eAAe,KAAK,qBAAqB,KAAK;EACzF,IAAI,QAAQ,SAAS,OAAO,QAAQ,YAAY,GAAG,KAAK,SAAS,KAAK;OACjE,IAAI,QAAQ,cAAc;GAC7B,IAAI,CAAC,YAAY,SAAS,KAAK,GAAG,MAAM,IAAI,MAAM,eAAe,KAAK,6BAA6B,YAAY,KAAK,IAAI,GAAG;GAC3H,OAAO,aAAa;EACtB,OAAO,IAAI,QAAQ,aAAa;GAC9B,IAAI,CAAC,MAAM,QAAQ,KAAK,KAAK,MAAM,MAAM,SAAS,OAAO,SAAS,YAAY,CAAC,OAAO,SAAS,IAAI,KAAK,OAAO,CAAC,GAC9G,MAAM,IAAI,MAAM,eAAe,KAAK,oDAAoD;GAC1F,OAAO,YAAY;EACrB,OAAO;GACL,IAAI,OAAO,UAAU,YAAY,CAAC,OAAO,SAAS,KAAK,GAAG,MAAM,IAAI,MAAM,eAAe,KAAK,GAAG,IAAI,yBAAyB;GAC9H,OAAO,OAAO;EAChB;CACF;CACA,OAAO,KAAK,UAAU,MAAM;AAC9B"}