{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/extends\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nvar _jsxFileName = \"/Users/rohitsingh/Documents/projects/new-nativebase-setup/NativeBase/example/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/lib/tab-bar-item-ios.js\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nimport isEqual from \"lodash.isequal\";\nimport pick from \"lodash.pick\";\nimport React, { PureComponent } from \"react\";\nimport PropTypes from \"prop-types\";\nvar TabBarIOS = {\n  Item: function Item() {}\n};\nvar ICON_PROP_NAMES = [\"iconName\", \"iconSize\", \"iconColor\"];\nvar SELECTED_ICON_PROP_NAMES = [].concat(ICON_PROP_NAMES, [\"selectedIconName\", \"selectedIconColor\"]);\n\nvar arePropsEqual = function arePropsEqual(keys) {\n  return function (prevProps, nextProps) {\n    return isEqual(pick(prevProps, keys), pick(nextProps, keys));\n  };\n};\n\nvar areIconPropsEqual = arePropsEqual(ICON_PROP_NAMES);\nvar areSelectedIconPropsEqual = arePropsEqual(SELECTED_ICON_PROP_NAMES);\nexport default function createTabBarItemIOSComponent(IconNamePropType, getImageSource) {\n  var _class, _temp;\n\n  return _temp = _class = function (_PureComponent) {\n    _inherits(TabBarItemIOS, _PureComponent);\n\n    var _super = _createSuper(TabBarItemIOS);\n\n    function TabBarItemIOS() {\n      var _this;\n\n      _classCallCheck(this, TabBarItemIOS);\n\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      _this = _super.call.apply(_super, [this].concat(args));\n      _this.state = {\n        icon: undefined,\n        selectedIcon: undefined\n      };\n      return _this;\n    }\n\n    _createClass(TabBarItemIOS, [{\n      key: \"componentDidMount\",\n      value: function componentDidMount() {\n        this.updateIconSource();\n        this.updateSelectedIconSource();\n      }\n    }, {\n      key: \"componentDidUpdate\",\n      value: function componentDidUpdate(prevProps) {\n        if (!areIconPropsEqual(prevProps, this.props)) {\n          this.updateIconSource();\n        }\n\n        if (!areSelectedIconPropsEqual(prevProps, this.props)) {\n          this.updateSelectedIconSource();\n        }\n      }\n    }, {\n      key: \"updateIconSource\",\n      value: function updateIconSource() {\n        var _this$props, iconName, iconSize, iconColor, icon;\n\n        return _regeneratorRuntime.async(function updateIconSource$(_context) {\n          while (1) {\n            switch (_context.prev = _context.next) {\n              case 0:\n                _this$props = this.props, iconName = _this$props.iconName, iconSize = _this$props.iconSize, iconColor = _this$props.iconColor;\n\n                if (!iconName) {\n                  _context.next = 8;\n                  break;\n                }\n\n                _context.next = 4;\n                return _regeneratorRuntime.awrap(getImageSource(iconName, iconSize, iconColor));\n\n              case 4:\n                icon = _context.sent;\n                this.setState({\n                  icon: icon\n                });\n                _context.next = 9;\n                break;\n\n              case 8:\n                if (this.state.icon) {\n                  this.setState({\n                    icon: undefined\n                  });\n                }\n\n              case 9:\n              case \"end\":\n                return _context.stop();\n            }\n          }\n        }, null, this, null, Promise);\n      }\n    }, {\n      key: \"updateSelectedIconSource\",\n      value: function updateSelectedIconSource() {\n        var _this$props2, iconName, iconColor, iconSize, selectedIconName, selectedIconColor, selectedIcon;\n\n        return _regeneratorRuntime.async(function updateSelectedIconSource$(_context2) {\n          while (1) {\n            switch (_context2.prev = _context2.next) {\n              case 0:\n                _this$props2 = this.props, iconName = _this$props2.iconName, iconColor = _this$props2.iconColor, iconSize = _this$props2.iconSize, selectedIconName = _this$props2.selectedIconName, selectedIconColor = _this$props2.selectedIconColor;\n\n                if (!(selectedIconName || selectedIconColor)) {\n                  _context2.next = 8;\n                  break;\n                }\n\n                _context2.next = 4;\n                return _regeneratorRuntime.awrap(getImageSource(selectedIconName || iconName, iconSize, selectedIconColor || iconColor));\n\n              case 4:\n                selectedIcon = _context2.sent;\n                this.setState({\n                  selectedIcon: selectedIcon\n                });\n                _context2.next = 9;\n                break;\n\n              case 8:\n                if (this.state.selectedIcon) {\n                  this.setState({\n                    selectedIcon: undefined\n                  });\n                }\n\n              case 9:\n              case \"end\":\n                return _context2.stop();\n            }\n          }\n        }, null, this, null, Promise);\n      }\n    }, {\n      key: \"render\",\n      value: function render() {\n        return React.createElement(TabBarIOS.Item, _extends({}, this.state, this.props));\n      }\n    }]);\n\n    return TabBarItemIOS;\n  }(PureComponent), _class.defaultProps = {\n    iconSize: 30\n  }, _temp;\n}","map":{"version":3,"sources":["/Users/rohitsingh/Documents/projects/new-nativebase-setup/NativeBase/example/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/lib/tab-bar-item-ios.js"],"names":["isEqual","pick","React","PureComponent","PropTypes","TabBarIOS","Item","ICON_PROP_NAMES","SELECTED_ICON_PROP_NAMES","arePropsEqual","keys","prevProps","nextProps","areIconPropsEqual","areSelectedIconPropsEqual","createTabBarItemIOSComponent","IconNamePropType","getImageSource","state","icon","undefined","selectedIcon","updateIconSource","updateSelectedIconSource","props","iconName","iconSize","iconColor","setState","selectedIconName","selectedIconColor","defaultProps"],"mappings":";;;;;;;;;;;;;AACA,OAAOA,OAAP,MAAoB,gBAApB;AACA,OAAOC,IAAP,MAAiB,aAAjB;AACA,OAAOC,KAAP,IAAgBC,aAAhB,QAAqC,OAArC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,IAAMC,SAAS,GAAG;AAChBC,EAAAA,IAAI,EAAE,gBAAY,CAAE;AADJ,CAAlB;AAIA,IAAMC,eAAe,GAAG,CAAC,UAAD,EAAa,UAAb,EAAyB,WAAzB,CAAxB;AACA,IAAMC,wBAAwB,aACzBD,eADyB,GAE5B,kBAF4B,EAG5B,mBAH4B,EAA9B;;AAMA,IAAME,aAAa,GAAG,SAAhBA,aAAgB,CAACC,IAAD;AAAA,SAAU,UAACC,SAAD,EAAYC,SAAZ;AAAA,WAC9BZ,OAAO,CAACC,IAAI,CAACU,SAAD,EAAYD,IAAZ,CAAL,EAAwBT,IAAI,CAACW,SAAD,EAAYF,IAAZ,CAA5B,CADuB;AAAA,GAAV;AAAA,CAAtB;;AAGA,IAAMG,iBAAiB,GAAGJ,aAAa,CAACF,eAAD,CAAvC;AACA,IAAMO,yBAAyB,GAAGL,aAAa,CAACD,wBAAD,CAA/C;AAEA,eAAe,SAASO,4BAAT,CACbC,gBADa,EAEbC,cAFa,EAGb;AAAA;;AACA;AAAA;;AAAA;;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA,YAKEC,KALF,GAKU;AACNC,QAAAA,IAAI,EAAEC,SADA;AAENC,QAAAA,YAAY,EAAED;AAFR,OALV;AAAA;AAAA;;AAAA;AAAA;AAAA,0CAUsB;AAClB,aAAKE,gBAAL;AACA,aAAKC,wBAAL;AACD;AAbH;AAAA;AAAA,yCAeqBZ,SAfrB,EAegC;AAC5B,YAAI,CAACE,iBAAiB,CAACF,SAAD,EAAY,KAAKa,KAAjB,CAAtB,EAA+C;AAC7C,eAAKF,gBAAL;AACD;;AACD,YAAI,CAACR,yBAAyB,CAACH,SAAD,EAAY,KAAKa,KAAjB,CAA9B,EAAuD;AACrD,eAAKD,wBAAL;AACD;AACF;AAtBH;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,8BAyB8C,KAAKC,KAzBnD,EAyBYC,QAzBZ,eAyBYA,QAzBZ,EAyBsBC,QAzBtB,eAyBsBA,QAzBtB,EAyBgCC,SAzBhC,eAyBgCA,SAzBhC;;AAAA,qBA0BQF,QA1BR;AAAA;AAAA;AAAA;;AAAA;AAAA,iDA2ByBR,cAAc,CAACQ,QAAD,EAAWC,QAAX,EAAqBC,SAArB,CA3BvC;;AAAA;AA2BYR,gBAAAA,IA3BZ;AA4BM,qBAAKS,QAAL,CAAc;AAAET,kBAAAA,IAAI,EAAJA;AAAF,iBAAd;AA5BN;AAAA;;AAAA;AA8BW,oBAAI,KAAKD,KAAL,CAAWC,IAAf,EAAqB;AAC1B,uBAAKS,QAAL,CAAc;AAAET,oBAAAA,IAAI,EAAEC;AAAR,mBAAd;AACD;;AAhCL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,+BA0CQ,KAAKI,KA1Cb,EAqCMC,QArCN,gBAqCMA,QArCN,EAsCME,SAtCN,gBAsCMA,SAtCN,EAuCMD,QAvCN,gBAuCMA,QAvCN,EAwCMG,gBAxCN,gBAwCMA,gBAxCN,EAyCMC,iBAzCN,gBAyCMA,iBAzCN;;AAAA,sBA2CQD,gBAAgB,IAAIC,iBA3C5B;AAAA;AAAA;AAAA;;AAAA;AAAA,iDA4CiCb,cAAc,CACvCY,gBAAgB,IAAIJ,QADmB,EAEvCC,QAFuC,EAGvCI,iBAAiB,IAAIH,SAHkB,CA5C/C;;AAAA;AA4CYN,gBAAAA,YA5CZ;AAiDM,qBAAKO,QAAL,CAAc;AAAEP,kBAAAA,YAAY,EAAZA;AAAF,iBAAd;AAjDN;AAAA;;AAAA;AAmDW,oBAAI,KAAKH,KAAL,CAAWG,YAAf,EAA6B;AAClC,uBAAKO,QAAL,CAAc;AAAEP,oBAAAA,YAAY,EAAED;AAAhB,mBAAd;AACD;;AArDL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAwDW;AACP,eAAO,oBAAC,SAAD,CAAW,IAAX,eAAoB,KAAKF,KAAzB,EAAoC,KAAKM,KAAzC,EAAP;AACD;AA1DH;;AAAA;AAAA,IAAmCrB,aAAnC,UACS4B,YADT,GACwB;AACpBL,IAAAA,QAAQ,EAAE;AADU,GADxB;AA4DD","sourcesContent":["/* eslint-disable react/no-unused-prop-types */\nimport isEqual from \"lodash.isequal\";\nimport pick from \"lodash.pick\";\nimport React, { PureComponent } from \"react\";\nimport PropTypes from \"prop-types\";\nconst TabBarIOS = {\n  Item: function () {},\n};\n\nconst ICON_PROP_NAMES = [\"iconName\", \"iconSize\", \"iconColor\"];\nconst SELECTED_ICON_PROP_NAMES = [\n  ...ICON_PROP_NAMES,\n  \"selectedIconName\",\n  \"selectedIconColor\",\n];\n\nconst arePropsEqual = (keys) => (prevProps, nextProps) =>\n  isEqual(pick(prevProps, keys), pick(nextProps, keys));\n\nconst areIconPropsEqual = arePropsEqual(ICON_PROP_NAMES);\nconst areSelectedIconPropsEqual = arePropsEqual(SELECTED_ICON_PROP_NAMES);\n\nexport default function createTabBarItemIOSComponent(\n  IconNamePropType,\n  getImageSource\n) {\n  return class TabBarItemIOS extends PureComponent {\n    static defaultProps = {\n      iconSize: 30,\n    };\n\n    state = {\n      icon: undefined,\n      selectedIcon: undefined,\n    };\n\n    componentDidMount() {\n      this.updateIconSource();\n      this.updateSelectedIconSource();\n    }\n\n    componentDidUpdate(prevProps) {\n      if (!areIconPropsEqual(prevProps, this.props)) {\n        this.updateIconSource();\n      }\n      if (!areSelectedIconPropsEqual(prevProps, this.props)) {\n        this.updateSelectedIconSource();\n      }\n    }\n\n    async updateIconSource() {\n      const { iconName, iconSize, iconColor } = this.props;\n      if (iconName) {\n        const icon = await getImageSource(iconName, iconSize, iconColor);\n        this.setState({ icon });\n        // eslint-disable-next-line react/destructuring-assignment\n      } else if (this.state.icon) {\n        this.setState({ icon: undefined });\n      }\n    }\n\n    async updateSelectedIconSource() {\n      const {\n        iconName,\n        iconColor,\n        iconSize,\n        selectedIconName,\n        selectedIconColor,\n      } = this.props;\n      if (selectedIconName || selectedIconColor) {\n        const selectedIcon = await getImageSource(\n          selectedIconName || iconName,\n          iconSize,\n          selectedIconColor || iconColor\n        );\n        this.setState({ selectedIcon });\n        // eslint-disable-next-line react/destructuring-assignment\n      } else if (this.state.selectedIcon) {\n        this.setState({ selectedIcon: undefined });\n      }\n    }\n\n    render() {\n      return <TabBarIOS.Item {...this.state} {...this.props} />;\n    }\n  };\n}\n"]},"metadata":{},"sourceType":"module"}