@ant-design/react-native
Version:
基于蚂蚁金服移动设计规范的 React Native 组件库
1 lines • 5.54 kB
JavaScript
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _style=require("../style");var _Wheel=_interopRequireDefault(require("./Wheel"));var _index=_interopRequireDefault(require("./style/index"));function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=(0,_getPrototypeOf2["default"])(Derived),result;if(hasNativeReflectConstruct){var NewTarget=(0,_getPrototypeOf2["default"])(this).constructor;result=Reflect.construct(Super,arguments,NewTarget);}else{result=Super.apply(this,arguments);}return(0,_possibleConstructorReturn2["default"])(this,result);};}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true;}catch(e){return false;}}var RMCPickerView=function(_React$Component){(0,_inherits2["default"])(RMCPickerView,_React$Component);var _super=_createSuper(RMCPickerView);function RMCPickerView(props){var _this;(0,_classCallCheck2["default"])(this,RMCPickerView);_this=_super.call(this,props);_this.wrapperMeasure=function(e){var height=e.nativeEvent.layout.height;_this.setState({wheelHeight:height});};_this.itemHeightMeasure=function(e){var height=e.nativeEvent.layout.height;_this.setState({itemHeight:height});};_this.renderLabel=function(item,index){var _a,_b;return _react["default"].createElement(_reactNative.View,{key:item.key||item.value,style:[{height:_this.props.itemHeight||_this.state.itemHeight||'auto',overflow:'hidden',justifyContent:'center'}]},((_b=(_a=_this.props).renderLabel)===null||_b===void 0?void 0:_b.call(_a,item,index))||_react["default"].createElement(_reactNative.Text,{style:[{fontSize:16,color:'#333',textAlign:'center',includeFontPadding:false,padding:8},_this.props.itemStyle,{height:'auto'}],numberOfLines:_this.props.numberOfLines},item.label));};_this.renderMask=function(s){var _a,_b,_c,_d;return _react["default"].createElement(_reactNative.View,{style:s.mask,pointerEvents:"none"},_react["default"].createElement(_reactNative.View,{style:s.maskTop},(_b=(_a=_this.props).renderMaskTop)===null||_b===void 0?void 0:_b.call(_a)),_react["default"].createElement(_reactNative.View,{style:[s.maskMiddle,{height:_this.props.itemHeight||_this.state.itemHeight}]}),_react["default"].createElement(_reactNative.View,{style:s.maskBottom},(_d=(_c=_this.props).renderMaskBottom)===null||_d===void 0?void 0:_d.call(_c)));};_this.state={itemHeight:0,wheelHeight:0};return _this;}(0,_createClass2["default"])(RMCPickerView,[{key:"render",value:function render(){var _this2=this;var wheelHeight=this.state.wheelHeight;var _this$props=this.props,style=_this$props.style,styles=_this$props.styles,columns=_this$props.columns,value=_this$props.value,loading=_this$props.loading,indicatorStyle=_this$props.indicatorStyle,numberOfLines=_this$props.numberOfLines,handleSelect=_this$props.handleSelect,loadingContent=_this$props.loadingContent;var itemHeight=this.props.itemHeight||this.state.itemHeight;return _react["default"].createElement(_style.WithTheme,{themeStyles:_index["default"],styles:styles},function(s){return itemHeight===0?_react["default"].createElement(_reactNative.View,{onLayout:_this2.itemHeightMeasure},_this2.renderLabel({value:'layout',label:_react["default"].createElement(_react["default"].Fragment,null,Array(numberOfLines).join('\n'),"\u3000")},0)):_react["default"].createElement(_reactNative.View,{style:[{height:7*itemHeight},style,s.wrappper],onLayout:_this2.wrapperMeasure},_react["default"].createElement(_reactNative.View,{style:[s.wheelWrapper,{height:wheelHeight}]},(loading||(columns===null||columns===void 0?void 0:columns.length)===0)&&loading!==false?loadingContent||_react["default"].createElement(_reactNative.View,{style:{flex:1,alignSelf:'center'}},_react["default"].createElement(_reactNative.ActivityIndicator,{animating:true,style:indicatorStyle||{}})):itemHeight>0&&wheelHeight>0&&columns.map(function(column,index){return _react["default"].createElement(_Wheel["default"],{key:index,index:index,column:column,value:value===null||value===void 0?void 0:value[index],onSelect:handleSelect,itemHeight:itemHeight,wheelHeight:wheelHeight,renderLabel:_this2.renderLabel});})),_this2.renderMask(s));});}}]);return RMCPickerView;}(_react["default"].Component);exports["default"]=RMCPickerView;RMCPickerView.defaultProps={value:[],itemHeight:0,numberOfLines:1,renderMaskTop:function renderMaskTop(){return _react["default"].createElement(_reactNative.View,{style:{flex:1,backgroundColor:'rgba(255,255,255,0.8)'}});},renderMaskBottom:function renderMaskBottom(){return _react["default"].createElement(_reactNative.View,{style:{flex:1,backgroundColor:'rgba(255,255,255,0.8)'}});}};