react-native-mock-tmp-build
Version:
A fully mocked and test-friendly version of react native
324 lines (305 loc) • 13.5 kB
JavaScript
var _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;};var _propTypes=require('prop-types');var _propTypes2=_interopRequireDefault(_propTypes);
var _react=require('react');var _react2=_interopRequireDefault(_react);
var _EdgeInsetsPropType=require('../propTypes/EdgeInsetsPropType');var _EdgeInsetsPropType2=_interopRequireDefault(_EdgeInsetsPropType);
var _PointPropType=require('../propTypes/PointPropType');var _PointPropType2=_interopRequireDefault(_PointPropType);
var _ScrollResponder=require('../mixins/ScrollResponder');var _ScrollResponder2=_interopRequireDefault(_ScrollResponder);
var _View=require('./View');var _View2=_interopRequireDefault(_View);
var _ViewStylePropTypes=require('../propTypes/ViewStylePropTypes');var _ViewStylePropTypes2=_interopRequireDefault(_ViewStylePropTypes);
var _ScrollViewManager=require('../NativeModules/ScrollViewManager');var _ScrollViewManager2=_interopRequireDefault(_ScrollViewManager);
var _StyleSheetPropType=require('../propTypes/StyleSheetPropType');var _StyleSheetPropType2=_interopRequireDefault(_StyleSheetPropType);
var _createReactClass=require('create-react-class');var _createReactClass2=_interopRequireDefault(_createReactClass);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
var SCROLLVIEW='ScrollView';
var INNERVIEW='InnerScrollView';
var ScrollView=(0,_createReactClass2['default'])({displayName:'ScrollView',
propTypes:_extends({},
_View2['default'].propTypes,{
/**
* Controls whether iOS should automatically adjust the content inset
* for scroll views that are placed behind a navigation bar or
* tab bar/ toolbar. The default value is true.
* @platform ios
*/
automaticallyAdjustContentInsets:_propTypes2['default'].bool,
/**
* The amount by which the scroll view content is inset from the edges
* of the scroll view. Defaults to `{0, 0, 0, 0}`.
* @platform ios
*/
contentInset:_EdgeInsetsPropType2['default'],
/**
* Used to manually set the starting scroll offset.
* The default value is `{x: 0, y: 0}`.
* @platform ios
*/
contentOffset:_PointPropType2['default'],
/**
* When true, the scroll view bounces when it reaches the end of the
* content if the content is larger then the scroll view along the axis of
* the scroll direction. When false, it disables all bouncing even if
* the `alwaysBounce*` props are true. The default value is true.
* @platform ios
*/
bounces:_propTypes2['default'].bool,
/**
* When true, gestures can drive zoom past min/max and the zoom will animate
* to the min/max value at gesture end, otherwise the zoom will not exceed
* the limits.
* @platform ios
*/
bouncesZoom:_propTypes2['default'].bool,
/**
* When true, the scroll view bounces horizontally when it reaches the end
* even if the content is smaller than the scroll view itself. The default
* value is true when `horizontal={true}` and false otherwise.
* @platform ios
*/
alwaysBounceHorizontal:_propTypes2['default'].bool,
/**
* When true, the scroll view bounces vertically when it reaches the end
* even if the content is smaller than the scroll view itself. The default
* value is false when `horizontal={true}` and true otherwise.
* @platform ios
*/
alwaysBounceVertical:_propTypes2['default'].bool,
/**
* When true, the scroll view automatically centers the content when the
* content is smaller than the scroll view bounds; when the content is
* larger than the scroll view, this property has no effect. The default
* value is false.
* @platform ios
*/
centerContent:_propTypes2['default'].bool,
/**
* These styles will be applied to the scroll view content container which
* wraps all of the child views. Example:
*
* return (
* <ScrollView contentContainerStyle={styles.contentContainer}>
* </ScrollView>
* );
* ...
* var styles = StyleSheet.create({
* contentContainer: {
* paddingVertical: 20
* }
* });
*/
contentContainerStyle:(0,_StyleSheetPropType2['default'])(_ViewStylePropTypes2['default']),
/**
* A floating-point number that determines how quickly the scroll view
* decelerates after the user lifts their finger. You may also use string
* shortcuts `"normal"` and `"fast"` which match the underlying iOS settings
* for `UIScrollViewDecelerationRateNormal` and
* `UIScrollViewDecelerationRateFast` respectively.
* - Normal: 0.998 (the default)
* - Fast: 0.9
* @platform ios
*/
decelerationRate:_propTypes2['default'].oneOfType([
_propTypes2['default'].oneOf(['fast','normal']),
_propTypes2['default'].number]),
/**
* When true, the scroll view's children are arranged horizontally in a row
* instead of vertically in a column. The default value is false.
*/
horizontal:_propTypes2['default'].bool,
/**
* The style of the scroll indicators.
* - `default` (the default), same as `black`.
* - `black`, scroll indicator is black.
* - `white`, scroll indicator is white.
* @platform ios
*/
indicatorStyle:_propTypes2['default'].oneOf([
'default',// default
'black',
'white']),
/**
* When true, the ScrollView will try to lock to only vertical or horizontal
* scrolling while dragging. The default value is false.
* @platform ios
*/
directionalLockEnabled:_propTypes2['default'].bool,
/**
* When false, once tracking starts, won't try to drag if the touch moves.
* The default value is true.
* @platform ios
*/
canCancelContentTouches:_propTypes2['default'].bool,
/**
* Determines whether the keyboard gets dismissed in response to a drag.
* - 'none' (the default), drags do not dismiss the keyboard.
* - 'on-drag', the keyboard is dismissed when a drag begins.
* - 'interactive', the keyboard is dismissed interactively with the drag and moves in
* synchrony with the touch; dragging upwards cancels the dismissal.
* On android this is not supported and it will have the same behavior as 'none'.
*/
keyboardDismissMode:_propTypes2['default'].oneOf([
'none',// default
'interactive',
'on-drag']),
/**
* Determines when the keyboard should stay visible after a tap.
*
* - 'never' (the default), tapping outside of the focused text input when the keyboard
* is up dismisses the keyboard. When this happens, children won't receive the tap.
* - 'always', the keyboard will not dismiss automatically, and the scroll view will not
* catch taps, but children of the scroll view can catch taps.
* - 'handled', the keyboard will not dismiss automatically when the tap was handled by
* a children, (or captured by an ancestor).
* - false, deprecated, use 'never' instead
* - true, deprecated, use 'always' instead
*/
keyboardShouldPersistTaps:_propTypes2['default'].oneOf(['always','never','handled',false,true]),
/**
* The maximum allowed zoom scale. The default value is 1.0.
* @platform ios
*/
maximumZoomScale:_propTypes2['default'].number,
/**
* The minimum allowed zoom scale. The default value is 1.0.
* @platform ios
*/
minimumZoomScale:_propTypes2['default'].number,
/**
* Fires at most once per frame during scrolling. The frequency of the
* events can be controlled using the `scrollEventThrottle` prop.
*/
onScroll:_propTypes2['default'].func,
/**
* Called when a scrolling animation ends.
* @platform ios
*/
onScrollAnimationEnd:_propTypes2['default'].func,
/**
* Called when scrollable content view of the ScrollView changes. It's
* implemented using onLayout handler attached to the content container
* which this ScrollView renders.
*/
onContentSizeChange:_propTypes2['default'].func,
/**
* When true, the scroll view stops on multiples of the scroll view's size
* when scrolling. This can be used for horizontal pagination. The default
* value is false.
* @platform ios
*/
pagingEnabled:_propTypes2['default'].bool,
/**
* When false, the content does not scroll.
* The default value is true.
* @platform ios
*/
scrollEnabled:_propTypes2['default'].bool,
/**
* This controls how often the scroll event will be fired while scrolling
* (in events per seconds). A higher number yields better accuracy for code
* that is tracking the scroll position, but can lead to scroll performance
* problems due to the volume of information being send over the bridge.
* The default value is zero, which means the scroll event will be sent
* only once each time the view is scrolled.
* @platform ios
*/
scrollEventThrottle:_propTypes2['default'].number,
/**
* The amount by which the scroll view indicators are inset from the edges
* of the scroll view. This should normally be set to the same value as
* the `contentInset`. Defaults to `{0, 0, 0, 0}`.
* @platform ios
*/
scrollIndicatorInsets:_EdgeInsetsPropType2['default'],
/**
* When true, the scroll view scrolls to top when the status bar is tapped.
* The default value is true.
* @platform ios
*/
scrollsToTop:_propTypes2['default'].bool,
/**
* When true, momentum events will be sent from Android
* This is internal and set automatically by the framework if you have
* onMomentumScrollBegin or onMomentumScrollEnd set on your ScrollView
* @platform android
*/
sendMomentumEvents:_propTypes2['default'].bool,
/**
* When true, shows a horizontal scroll indicator.
*/
showsHorizontalScrollIndicator:_propTypes2['default'].bool,
/**
* When true, shows a vertical scroll indicator.
*/
showsVerticalScrollIndicator:_propTypes2['default'].bool,
/**
* An array of child indices determining which children get docked to the
* top of the screen when scrolling. For example, passing
* `stickyHeaderIndices={[0]}` will cause the first child to be fixed to the
* top of the scroll view. This property is not supported in conjunction
* with `horizontal={true}`.
* @platform ios
*/
stickyHeaderIndices:_propTypes2['default'].arrayOf(_propTypes2['default'].number),
style:(0,_StyleSheetPropType2['default'])(_ViewStylePropTypes2['default']),
/**
* When set, causes the scroll view to stop at multiples of the value of
* `snapToInterval`. This can be used for paginating through children
* that have lengths smaller than the scroll view. Used in combination
* with `snapToAlignment`.
* @platform ios
*/
snapToInterval:_propTypes2['default'].number,
/**
* When `snapToInterval` is set, `snapToAlignment` will define the relationship
* of the the snapping to the scroll view.
* - `start` (the default) will align the snap at the left (horizontal) or top (vertical)
* - `center` will align the snap in the center
* - `end` will align the snap at the right (horizontal) or bottom (vertical)
* @platform ios
*/
snapToAlignment:_propTypes2['default'].oneOf([
'start',// default
'center',
'end']),
/**
* Experimental: When true, offscreen child views (whose `overflow` value is
* `hidden`) are removed from their native backing superview when offscreen.
* This can improve scrolling performance on long lists. The default value is
* true.
*/
removeClippedSubviews:_propTypes2['default'].bool,
/**
* The current scale of the scroll view content. The default value is 1.0.
* @platform ios
*/
zoomScale:_propTypes2['default'].number,
/**
* A RefreshControl component, used to provide pull-to-refresh
* functionality for the ScrollView.
*
* See [RefreshControl](http://facebook.github.io/react-native/docs/refreshcontrol.html).
*/
refreshControl:_propTypes2['default'].element}),
mixins:[_ScrollResponder2['default'].Mixin],
setNativeProps:function(){function setNativeProps(props){
this.refs[SCROLLVIEW].setNativeProps(props);
}return setNativeProps;}(),
/**
* Returns a reference to the underlying scroll responder, which supports
* operations like `scrollTo`. All ScrollView-like components should
* implement this method so that they can be composed while providing access
* to the underlying scroll responder's methods.
*/
getScrollResponder:function(){function getScrollResponder(){
return this;
}return getScrollResponder;}(),
getInnerViewNode:function(){function getInnerViewNode(){
return _react2['default'].findNodeHandle(this.refs[INNERVIEW]);
}return getInnerViewNode;}(),
endRefreshin:function(){function endRefreshin(){
_ScrollViewManager2['default'].endRefreshing(
_react2['default'].findNodeHandle(this));
}return endRefreshin;}(),
scrollTo:function(){function scrollTo(){var destY=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0;var destX=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;var animated=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;
}return scrollTo;}(),
render:function(){function render(){
return null;
}return render;}()});
module.exports=ScrollView;