{"ast":null,"code":"function _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n\n  _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    if (enumerableOnly) symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    });\n    keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nfunction _objectSpread(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n\n    if (i % 2) {\n      ownKeys(Object(source), true).forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    } else if (Object.getOwnPropertyDescriptors) {\n      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n    } else {\n      ownKeys(Object(source)).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n  }\n\n  return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nimport deepDiffer from \"../deepDiffer\";\nimport * as React from 'react';\nimport StyleSheet from \"../../../exports/StyleSheet\";\nimport View from \"../../../exports/View\";\nimport ScrollView from \"../../../exports/ScrollView\";\nimport VirtualizedList from \"../VirtualizedList\";\nimport invariant from 'fbjs/lib/invariant';\n\nvar defaultProps = _objectSpread(_objectSpread({}, VirtualizedList.defaultProps), {}, {\n  numColumns: 1\n});\n\nvar FlatList = function (_React$PureComponent) {\n  _inheritsLoose(FlatList, _React$PureComponent);\n\n  var _proto = FlatList.prototype;\n\n  _proto.scrollToEnd = function scrollToEnd(params) {\n    if (this._listRef) {\n      this._listRef.scrollToEnd(params);\n    }\n  };\n\n  _proto.scrollToIndex = function scrollToIndex(params) {\n    if (this._listRef) {\n      this._listRef.scrollToIndex(params);\n    }\n  };\n\n  _proto.scrollToItem = function scrollToItem(params) {\n    if (this._listRef) {\n      this._listRef.scrollToItem(params);\n    }\n  };\n\n  _proto.scrollToOffset = function scrollToOffset(params) {\n    if (this._listRef) {\n      this._listRef.scrollToOffset(params);\n    }\n  };\n\n  _proto.recordInteraction = function recordInteraction() {\n    if (this._listRef) {\n      this._listRef.recordInteraction();\n    }\n  };\n\n  _proto.flashScrollIndicators = function flashScrollIndicators() {\n    if (this._listRef) {\n      this._listRef.flashScrollIndicators();\n    }\n  };\n\n  _proto.getScrollResponder = function getScrollResponder() {\n    if (this._listRef) {\n      return this._listRef.getScrollResponder();\n    }\n  };\n\n  _proto.getNativeScrollRef = function getNativeScrollRef() {\n    if (this._listRef) {\n      return this._listRef.getScrollRef();\n    }\n  };\n\n  _proto.getScrollableNode = function getScrollableNode() {\n    if (this._listRef) {\n      return this._listRef.getScrollableNode();\n    }\n  };\n\n  _proto.setNativeProps = function setNativeProps(props) {\n    if (this._listRef) {\n      this._listRef.setNativeProps(props);\n    }\n  };\n\n  function FlatList(_props) {\n    var _this;\n\n    _this = _React$PureComponent.call(this, _props) || this;\n    _this._virtualizedListPairs = [];\n\n    _this._captureRef = function (ref) {\n      _this._listRef = ref;\n    };\n\n    _this._getItem = function (data, index) {\n      var numColumns = _this.props.numColumns;\n\n      if (numColumns > 1) {\n        var ret = [];\n\n        for (var kk = 0; kk < numColumns; kk++) {\n          var _item = data[index * numColumns + kk];\n\n          if (_item != null) {\n            ret.push(_item);\n          }\n        }\n\n        return ret;\n      } else {\n        return data[index];\n      }\n    };\n\n    _this._getItemCount = function (data) {\n      if (data) {\n        var numColumns = _this.props.numColumns;\n        return numColumns > 1 ? Math.ceil(data.length / numColumns) : data.length;\n      } else {\n        return 0;\n      }\n    };\n\n    _this._keyExtractor = function (items, index) {\n      var _this$props = _this.props,\n          keyExtractor = _this$props.keyExtractor,\n          numColumns = _this$props.numColumns;\n\n      if (numColumns > 1) {\n        invariant(Array.isArray(items), 'FlatList: Encountered internal consistency error, expected each item to consist of an ' + 'array with 1-%s columns; instead, received a single item.', numColumns);\n        return items.map(function (it, kk) {\n          return keyExtractor(it, index * numColumns + kk);\n        }).join(':');\n      } else {\n        return keyExtractor(items, index);\n      }\n    };\n\n    _this._renderer = function () {\n      var _ref;\n\n      var _this$props2 = _this.props,\n          ListItemComponent = _this$props2.ListItemComponent,\n          renderItem = _this$props2.renderItem,\n          numColumns = _this$props2.numColumns,\n          columnWrapperStyle = _this$props2.columnWrapperStyle;\n      var virtualizedListRenderKey = ListItemComponent ? 'ListItemComponent' : 'renderItem';\n\n      var renderer = function renderer(props) {\n        if (ListItemComponent) {\n          return React.createElement(ListItemComponent, props);\n        } else if (renderItem) {\n          return renderItem(props);\n        } else {\n          return null;\n        }\n      };\n\n      return _ref = {}, _ref[virtualizedListRenderKey] = function (info) {\n        if (numColumns > 1) {\n          var _item2 = info.item,\n              _index = info.index;\n          invariant(Array.isArray(_item2), 'Expected array of items with numColumns > 1');\n          return React.createElement(View, {\n            style: StyleSheet.compose(styles.row, columnWrapperStyle)\n          }, _item2.map(function (it, kk) {\n            var element = renderer({\n              item: it,\n              index: _index * numColumns + kk,\n              separators: info.separators\n            });\n            return element != null ? React.createElement(React.Fragment, {\n              key: kk\n            }, element) : null;\n          }));\n        } else {\n          return renderer(info);\n        }\n      }, _ref;\n    };\n\n    _this._checkProps(_this.props);\n\n    if (_this.props.viewabilityConfigCallbackPairs) {\n      _this._virtualizedListPairs = _this.props.viewabilityConfigCallbackPairs.map(function (pair) {\n        return {\n          viewabilityConfig: pair.viewabilityConfig,\n          onViewableItemsChanged: _this._createOnViewableItemsChanged(pair.onViewableItemsChanged)\n        };\n      });\n    } else if (_this.props.onViewableItemsChanged) {\n      _this._virtualizedListPairs.push({\n        viewabilityConfig: _this.props.viewabilityConfig,\n        onViewableItemsChanged: _this._createOnViewableItemsChanged(_this.props.onViewableItemsChanged)\n      });\n    }\n\n    return _this;\n  }\n\n  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n    invariant(prevProps.numColumns === this.props.numColumns, 'Changing numColumns on the fly is not supported. Change the key prop on FlatList when ' + 'changing the number of columns to force a fresh render of the component.');\n    invariant(prevProps.onViewableItemsChanged === this.props.onViewableItemsChanged, 'Changing onViewableItemsChanged on the fly is not supported');\n    invariant(!deepDiffer(prevProps.viewabilityConfig, this.props.viewabilityConfig), 'Changing viewabilityConfig on the fly is not supported');\n    invariant(prevProps.viewabilityConfigCallbackPairs === this.props.viewabilityConfigCallbackPairs, 'Changing viewabilityConfigCallbackPairs on the fly is not supported');\n\n    this._checkProps(this.props);\n  };\n\n  _proto._checkProps = function _checkProps(props) {\n    var getItem = props.getItem,\n        getItemCount = props.getItemCount,\n        horizontal = props.horizontal,\n        numColumns = props.numColumns,\n        columnWrapperStyle = props.columnWrapperStyle,\n        onViewableItemsChanged = props.onViewableItemsChanged,\n        viewabilityConfigCallbackPairs = props.viewabilityConfigCallbackPairs;\n    invariant(!getItem && !getItemCount, 'FlatList does not support custom data formats.');\n\n    if (numColumns > 1) {\n      invariant(!horizontal, 'numColumns does not support horizontal.');\n    } else {\n      invariant(!columnWrapperStyle, 'columnWrapperStyle not supported for single column lists');\n    }\n\n    invariant(!(onViewableItemsChanged && viewabilityConfigCallbackPairs), 'FlatList does not support setting both onViewableItemsChanged and ' + 'viewabilityConfigCallbackPairs.');\n  };\n\n  _proto._pushMultiColumnViewable = function _pushMultiColumnViewable(arr, v) {\n    var _this$props3 = this.props,\n        numColumns = _this$props3.numColumns,\n        keyExtractor = _this$props3.keyExtractor;\n    v.item.forEach(function (item, ii) {\n      invariant(v.index != null, 'Missing index!');\n      var index = v.index * numColumns + ii;\n      arr.push(_objectSpread(_objectSpread({}, v), {}, {\n        item: item,\n        key: keyExtractor(item, index),\n        index: index\n      }));\n    });\n  };\n\n  _proto._createOnViewableItemsChanged = function _createOnViewableItemsChanged(onViewableItemsChanged) {\n    var _this2 = this;\n\n    return function (info) {\n      var numColumns = _this2.props.numColumns;\n\n      if (onViewableItemsChanged) {\n        if (numColumns > 1) {\n          var changed = [];\n          var viewableItems = [];\n          info.viewableItems.forEach(function (v) {\n            return _this2._pushMultiColumnViewable(viewableItems, v);\n          });\n          info.changed.forEach(function (v) {\n            return _this2._pushMultiColumnViewable(changed, v);\n          });\n          onViewableItemsChanged({\n            viewableItems: viewableItems,\n            changed: changed\n          });\n        } else {\n          onViewableItemsChanged(info);\n        }\n      }\n    };\n  };\n\n  _proto.render = function render() {\n    var _this$props4 = this.props,\n        numColumns = _this$props4.numColumns,\n        columnWrapperStyle = _this$props4.columnWrapperStyle,\n        restProps = _objectWithoutPropertiesLoose(_this$props4, [\"numColumns\", \"columnWrapperStyle\"]);\n\n    return React.createElement(VirtualizedList, _extends({}, restProps, {\n      getItem: this._getItem,\n      getItemCount: this._getItemCount,\n      keyExtractor: this._keyExtractor,\n      ref: this._captureRef,\n      viewabilityConfigCallbackPairs: this._virtualizedListPairs\n    }, this._renderer()));\n  };\n\n  return FlatList;\n}(React.PureComponent);\n\nFlatList.defaultProps = defaultProps;\nvar styles = StyleSheet.create({\n  row: {\n    flexDirection: 'row'\n  }\n});\nexport default FlatList;","map":{"version":3,"sources":["/Users/rohitsingh/Documents/projects/new-nativebase-setup/NativeBase/example/node_modules/react-native-web/dist/vendor/react-native/FlatList/index.js"],"names":["_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_objectWithoutPropertiesLoose","excluded","sourceKeys","keys","indexOf","_inheritsLoose","subClass","superClass","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","__proto__","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","deepDiffer","React","StyleSheet","View","ScrollView","VirtualizedList","invariant","defaultProps","numColumns","FlatList","_React$PureComponent","_proto","scrollToEnd","params","_listRef","scrollToIndex","scrollToItem","scrollToOffset","recordInteraction","flashScrollIndicators","getScrollResponder","getNativeScrollRef","getScrollRef","getScrollableNode","setNativeProps","props","_props","_this","_virtualizedListPairs","_captureRef","ref","_getItem","data","index","ret","kk","_item","_getItemCount","Math","ceil","_keyExtractor","items","_this$props","keyExtractor","Array","isArray","map","it","join","_renderer","_ref","_this$props2","ListItemComponent","renderItem","columnWrapperStyle","virtualizedListRenderKey","renderer","createElement","info","_item2","item","_index","style","compose","styles","row","element","separators","Fragment","_checkProps","viewabilityConfigCallbackPairs","pair","viewabilityConfig","onViewableItemsChanged","_createOnViewableItemsChanged","componentDidUpdate","prevProps","getItem","getItemCount","horizontal","_pushMultiColumnViewable","arr","v","_this$props3","ii","_this2","changed","viewableItems","render","_this$props4","restProps","PureComponent","flexDirection"],"mappings":"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","sourcesContent":["function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport deepDiffer from '../deepDiffer';\nimport * as React from 'react';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport View from '../../../exports/View';\nimport ScrollView from '../../../exports/ScrollView';\nimport VirtualizedList from '../VirtualizedList';\nimport invariant from 'fbjs/lib/invariant';\n\nvar defaultProps = _objectSpread(_objectSpread({}, VirtualizedList.defaultProps), {}, {\n  numColumns: 1\n});\n\n/**\n * A performant interface for rendering simple, flat lists, supporting the most handy features:\n *\n *  - Fully cross-platform.\n *  - Optional horizontal mode.\n *  - Configurable viewability callbacks.\n *  - Header support.\n *  - Footer support.\n *  - Separator support.\n *  - Pull to Refresh.\n *  - Scroll loading.\n *  - ScrollToIndex support.\n *\n * If you need section support, use [`<SectionList>`](docs/sectionlist.html).\n *\n * Minimal Example:\n *\n *     <FlatList\n *       data={[{key: 'a'}, {key: 'b'}]}\n *       renderItem={({item}) => <Text>{item.key}</Text>}\n *     />\n *\n * More complex, multi-select example demonstrating `PureComponent` usage for perf optimization and avoiding bugs.\n *\n * - By binding the `onPressItem` handler, the props will remain `===` and `PureComponent` will\n *   prevent wasteful re-renders unless the actual `id`, `selected`, or `title` props change, even\n *   if the components rendered in `MyListItem` did not have such optimizations.\n * - By passing `extraData={this.state}` to `FlatList` we make sure `FlatList` itself will re-render\n *   when the `state.selected` changes. Without setting this prop, `FlatList` would not know it\n *   needs to re-render any items because it is also a `PureComponent` and the prop comparison will\n *   not show any changes.\n * - `keyExtractor` tells the list to use the `id`s for the react keys instead of the default `key` property.\n *\n *\n *     class MyListItem extends React.PureComponent {\n *       _onPress = () => {\n *         this.props.onPressItem(this.props.id);\n *       };\n *\n *       render() {\n *         const textColor = this.props.selected ? \"red\" : \"black\";\n *         return (\n *           <TouchableOpacity onPress={this._onPress}>\n *             <View>\n *               <Text style={{ color: textColor }}>\n *                 {this.props.title}\n *               </Text>\n *             </View>\n *           </TouchableOpacity>\n *         );\n *       }\n *     }\n *\n *     class MultiSelectList extends React.PureComponent {\n *       state = {selected: (new Map(): Map<string, boolean>)};\n *\n *       _keyExtractor = (item, index) => item.id;\n *\n *       _onPressItem = (id: string) => {\n *         // updater functions are preferred for transactional updates\n *         this.setState((state) => {\n *           // copy the map rather than modifying state.\n *           const selected = new Map(state.selected);\n *           selected.set(id, !selected.get(id)); // toggle\n *           return {selected};\n *         });\n *       };\n *\n *       _renderItem = ({item}) => (\n *         <MyListItem\n *           id={item.id}\n *           onPressItem={this._onPressItem}\n *           selected={!!this.state.selected.get(item.id)}\n *           title={item.title}\n *         />\n *       );\n *\n *       render() {\n *         return (\n *           <FlatList\n *             data={this.props.data}\n *             extraData={this.state}\n *             keyExtractor={this._keyExtractor}\n *             renderItem={this._renderItem}\n *           />\n *         );\n *       }\n *     }\n *\n * This is a convenience wrapper around [`<VirtualizedList>`](docs/virtualizedlist.html),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n *   your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n *   equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n *   (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n *   changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n *   offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n *   blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n *   and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n *   Alternatively, you can provide a custom `keyExtractor` prop.\n *\n * Also inherits [ScrollView Props](docs/scrollview.html#props), unless it is nested in another FlatList of same orientation.\n */\nvar FlatList = /*#__PURE__*/function (_React$PureComponent) {\n  _inheritsLoose(FlatList, _React$PureComponent);\n\n  var _proto = FlatList.prototype;\n\n  /**\n   * Scrolls to the end of the content. May be janky without `getItemLayout` prop.\n   */\n  _proto.scrollToEnd = function scrollToEnd(params) {\n    if (this._listRef) {\n      this._listRef.scrollToEnd(params);\n    }\n  }\n  /**\n   * Scrolls to the item at the specified index such that it is positioned in the viewable area\n   * such that `viewPosition` 0 places it at the top, 1 at the bottom, and 0.5 centered in the\n   * middle. `viewOffset` is a fixed number of pixels to offset the final target position.\n   *\n   * Note: cannot scroll to locations outside the render window without specifying the\n   * `getItemLayout` prop.\n   */\n  ;\n\n  _proto.scrollToIndex = function scrollToIndex(params) {\n    if (this._listRef) {\n      this._listRef.scrollToIndex(params);\n    }\n  }\n  /**\n   * Requires linear scan through data - use `scrollToIndex` instead if possible.\n   *\n   * Note: cannot scroll to locations outside the render window without specifying the\n   * `getItemLayout` prop.\n   */\n  ;\n\n  _proto.scrollToItem = function scrollToItem(params) {\n    if (this._listRef) {\n      this._listRef.scrollToItem(params);\n    }\n  }\n  /**\n   * Scroll to a specific content pixel offset in the list.\n   *\n   * Check out [scrollToOffset](docs/virtualizedlist.html#scrolltooffset) of VirtualizedList\n   */\n  ;\n\n  _proto.scrollToOffset = function scrollToOffset(params) {\n    if (this._listRef) {\n      this._listRef.scrollToOffset(params);\n    }\n  }\n  /**\n   * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n   * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n   * taps on items or by navigation actions.\n   */\n  ;\n\n  _proto.recordInteraction = function recordInteraction() {\n    if (this._listRef) {\n      this._listRef.recordInteraction();\n    }\n  }\n  /**\n   * Displays the scroll indicators momentarily.\n   *\n   * @platform ios\n   */\n  ;\n\n  _proto.flashScrollIndicators = function flashScrollIndicators() {\n    if (this._listRef) {\n      this._listRef.flashScrollIndicators();\n    }\n  }\n  /**\n   * Provides a handle to the underlying scroll responder.\n   */\n  ;\n\n  _proto.getScrollResponder = function getScrollResponder() {\n    if (this._listRef) {\n      return this._listRef.getScrollResponder();\n    }\n  }\n  /**\n   * Provides a reference to the underlying host component\n   */\n  ;\n\n  _proto.getNativeScrollRef = function getNativeScrollRef() {\n    if (this._listRef) {\n      /* $FlowFixMe[incompatible-return] Suppresses errors found when fixing\n       * TextInput typing */\n      return this._listRef.getScrollRef();\n    }\n  };\n\n  _proto.getScrollableNode = function getScrollableNode() {\n    if (this._listRef) {\n      return this._listRef.getScrollableNode();\n    }\n  };\n\n  _proto.setNativeProps = function setNativeProps(props) {\n    if (this._listRef) {\n      this._listRef.setNativeProps(props);\n    }\n  };\n\n  function FlatList(_props) {\n    var _this;\n\n    _this = _React$PureComponent.call(this, _props) || this;\n    _this._virtualizedListPairs = [];\n\n    _this._captureRef = function (ref) {\n      _this._listRef = ref;\n    };\n\n    _this._getItem = function (data, index) {\n      var numColumns = _this.props.numColumns;\n\n      if (numColumns > 1) {\n        var ret = [];\n\n        for (var kk = 0; kk < numColumns; kk++) {\n          var _item = data[index * numColumns + kk];\n\n          if (_item != null) {\n            ret.push(_item);\n          }\n        }\n\n        return ret;\n      } else {\n        return data[index];\n      }\n    };\n\n    _this._getItemCount = function (data) {\n      if (data) {\n        var numColumns = _this.props.numColumns;\n        return numColumns > 1 ? Math.ceil(data.length / numColumns) : data.length;\n      } else {\n        return 0;\n      }\n    };\n\n    _this._keyExtractor = function (items, index) {\n      var _this$props = _this.props,\n          keyExtractor = _this$props.keyExtractor,\n          numColumns = _this$props.numColumns;\n\n      if (numColumns > 1) {\n        invariant(Array.isArray(items), 'FlatList: Encountered internal consistency error, expected each item to consist of an ' + 'array with 1-%s columns; instead, received a single item.', numColumns);\n        return items // $FlowFixMe[incompatible-call]\n        .map(function (it, kk) {\n          return keyExtractor(it, index * numColumns + kk);\n        }).join(':');\n      } else {\n        // $FlowFixMe Can't call keyExtractor with an array\n        return keyExtractor(items, index);\n      }\n    };\n\n    _this._renderer = function () {\n      var _ref;\n\n      var _this$props2 = _this.props,\n          ListItemComponent = _this$props2.ListItemComponent,\n          renderItem = _this$props2.renderItem,\n          numColumns = _this$props2.numColumns,\n          columnWrapperStyle = _this$props2.columnWrapperStyle;\n      var virtualizedListRenderKey = ListItemComponent ? 'ListItemComponent' : 'renderItem';\n\n      var renderer = function renderer(props) {\n        if (ListItemComponent) {\n          // $FlowFixMe Component isn't valid\n          return /*#__PURE__*/React.createElement(ListItemComponent, props);\n        } else if (renderItem) {\n          // $FlowFixMe[incompatible-call]\n          return renderItem(props);\n        } else {\n          return null;\n        }\n      };\n\n      return _ref = {}, _ref[virtualizedListRenderKey] = function (info) {\n        if (numColumns > 1) {\n          var _item2 = info.item,\n              _index = info.index;\n          invariant(Array.isArray(_item2), 'Expected array of items with numColumns > 1');\n          return /*#__PURE__*/React.createElement(View, {\n            style: StyleSheet.compose(styles.row, columnWrapperStyle)\n          }, _item2.map(function (it, kk) {\n            var element = renderer({\n              item: it,\n              index: _index * numColumns + kk,\n              separators: info.separators\n            });\n            return element != null ? /*#__PURE__*/React.createElement(React.Fragment, {\n              key: kk\n            }, element) : null;\n          }));\n        } else {\n          return renderer(info);\n        }\n      }, _ref;\n    };\n\n    _this._checkProps(_this.props);\n\n    if (_this.props.viewabilityConfigCallbackPairs) {\n      _this._virtualizedListPairs = _this.props.viewabilityConfigCallbackPairs.map(function (pair) {\n        return {\n          viewabilityConfig: pair.viewabilityConfig,\n          onViewableItemsChanged: _this._createOnViewableItemsChanged(pair.onViewableItemsChanged)\n        };\n      });\n    } else if (_this.props.onViewableItemsChanged) {\n      _this._virtualizedListPairs.push({\n        /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an\n         * error found when Flow v0.63 was deployed. To see the error delete\n         * this comment and run Flow. */\n        viewabilityConfig: _this.props.viewabilityConfig,\n        onViewableItemsChanged: _this._createOnViewableItemsChanged(_this.props.onViewableItemsChanged)\n      });\n    }\n\n    return _this;\n  }\n\n  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n    invariant(prevProps.numColumns === this.props.numColumns, 'Changing numColumns on the fly is not supported. Change the key prop on FlatList when ' + 'changing the number of columns to force a fresh render of the component.');\n    invariant(prevProps.onViewableItemsChanged === this.props.onViewableItemsChanged, 'Changing onViewableItemsChanged on the fly is not supported');\n    invariant(!deepDiffer(prevProps.viewabilityConfig, this.props.viewabilityConfig), 'Changing viewabilityConfig on the fly is not supported');\n    invariant(prevProps.viewabilityConfigCallbackPairs === this.props.viewabilityConfigCallbackPairs, 'Changing viewabilityConfigCallbackPairs on the fly is not supported');\n\n    this._checkProps(this.props);\n  };\n\n  _proto._checkProps = function _checkProps(props) {\n    var getItem = props.getItem,\n        getItemCount = props.getItemCount,\n        horizontal = props.horizontal,\n        numColumns = props.numColumns,\n        columnWrapperStyle = props.columnWrapperStyle,\n        onViewableItemsChanged = props.onViewableItemsChanged,\n        viewabilityConfigCallbackPairs = props.viewabilityConfigCallbackPairs;\n    invariant(!getItem && !getItemCount, 'FlatList does not support custom data formats.');\n\n    if (numColumns > 1) {\n      invariant(!horizontal, 'numColumns does not support horizontal.');\n    } else {\n      invariant(!columnWrapperStyle, 'columnWrapperStyle not supported for single column lists');\n    }\n\n    invariant(!(onViewableItemsChanged && viewabilityConfigCallbackPairs), 'FlatList does not support setting both onViewableItemsChanged and ' + 'viewabilityConfigCallbackPairs.');\n  };\n\n  _proto._pushMultiColumnViewable = function _pushMultiColumnViewable(arr, v) {\n    var _this$props3 = this.props,\n        numColumns = _this$props3.numColumns,\n        keyExtractor = _this$props3.keyExtractor;\n    v.item.forEach(function (item, ii) {\n      invariant(v.index != null, 'Missing index!');\n      var index = v.index * numColumns + ii;\n      arr.push(_objectSpread(_objectSpread({}, v), {}, {\n        item: item,\n        key: keyExtractor(item, index),\n        index: index\n      }));\n    });\n  };\n\n  _proto._createOnViewableItemsChanged = function _createOnViewableItemsChanged(onViewableItemsChanged) {\n    var _this2 = this;\n\n    return function (info) {\n      var numColumns = _this2.props.numColumns;\n\n      if (onViewableItemsChanged) {\n        if (numColumns > 1) {\n          var changed = [];\n          var viewableItems = [];\n          info.viewableItems.forEach(function (v) {\n            return _this2._pushMultiColumnViewable(viewableItems, v);\n          });\n          info.changed.forEach(function (v) {\n            return _this2._pushMultiColumnViewable(changed, v);\n          });\n          onViewableItemsChanged({\n            viewableItems: viewableItems,\n            changed: changed\n          });\n        } else {\n          onViewableItemsChanged(info);\n        }\n      }\n    };\n  };\n\n  _proto.render = function render() {\n    var _this$props4 = this.props,\n        numColumns = _this$props4.numColumns,\n        columnWrapperStyle = _this$props4.columnWrapperStyle,\n        restProps = _objectWithoutPropertiesLoose(_this$props4, [\"numColumns\", \"columnWrapperStyle\"]);\n\n    return /*#__PURE__*/React.createElement(VirtualizedList, _extends({}, restProps, {\n      getItem: this._getItem,\n      getItemCount: this._getItemCount,\n      keyExtractor: this._keyExtractor,\n      ref: this._captureRef,\n      viewabilityConfigCallbackPairs: this._virtualizedListPairs\n    }, this._renderer()));\n  };\n\n  return FlatList;\n}(React.PureComponent);\n\nFlatList.defaultProps = defaultProps;\nvar styles = StyleSheet.create({\n  row: {\n    flexDirection: 'row'\n  }\n});\nexport default FlatList;"]},"metadata":{},"sourceType":"module"}