1{"version":3,"file":"LinearGradient.js","sourceRoot":"","sources":["../src/LinearGradient.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAQ,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAW1D,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,KAAK,CAAC,SAAgB;IAShE,MAAM;QACJ,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE7D,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE;YACnD,OAAO,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;YAC9F,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;SAC/C;QAED,OAAO,CACL,CAAC,oBAAoB,CACnB,IAAI,KAAK,CAAC,CACV,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CACjC,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,UAAU,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CACnC,QAAQ,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAC/B,CACH,CAAC;IACJ,CAAC;;AAzBM,wBAAS,GAAG;IACjB,GAAG,aAAa;IAChB,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,UAAU;IACnD,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;IAC9C,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACnF,GAAG,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CAClF,CAAC;AAsBJ,SAAS,eAAe,CAAC,KAA+B;IACtD,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,SAAS,CAAC;KAClB;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9C,OAAO,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;QAC7F,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport { ColorPropType, View, ViewPropTypes, processColor } from 'react-native';\n\nimport NativeLinearGradient from './NativeLinearGradient';\n\ntype Props = {\n  colors: string[];\n  locations?: number[] | null;\n  start?: Point | null;\n  end?: Point | null;\n} & React.ComponentProps<typeof View>;\n\ntype Point = { x: number; y: number } | [number, number];\n\nexport default class LinearGradient extends React.Component<Props> {\n  static propTypes = {\n    ...ViewPropTypes,\n    colors: PropTypes.arrayOf(ColorPropType).isRequired,\n    locations: PropTypes.arrayOf(PropTypes.number),\n    start: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.object]),\n    end: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.object]),\n  };\n\n  render() {\n    let { colors, locations, start, end, ...props } = this.props;\n\n    if (locations && colors.length !== locations.length) {\n      console.warn('LinearGradient colors and locations props should be arrays of the same length');\n      locations = locations.slice(0, colors.length);\n    }\n\n    return (\n      <NativeLinearGradient\n        {...props}\n        colors={colors.map(processColor)}\n        locations={locations}\n        startPoint={_normalizePoint(start)}\n        endPoint={_normalizePoint(end)}\n      />\n    );\n  }\n}\n\nfunction _normalizePoint(point: Point | null | undefined): [number, number] | undefined {\n  if (!point) {\n    return undefined;\n  }\n\n  if (Array.isArray(point) && point.length !== 2) {\n    console.warn('start and end props for LinearGradient must be of the format [x,y] or {x, y}');\n    return undefined;\n  }\n\n  return Array.isArray(point) ? point : [point.x, point.y];\n}\n"]}