@ant-design/react-native
Version:
基于蚂蚁金服移动设计规范的 React Native 组件库
1 lines • 6.21 kB
JavaScript
;var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _typeof=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=exports.PopoverItem=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=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _reactNativeModalPopover=require("react-native-modal-popover");var _style=require("../style");var _style2=_interopRequireDefault(require("./style"));function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||_typeof(obj)!=="object"&&typeof obj!=="function"){return{"default":obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj["default"]=obj;if(cache){cache.set(obj,newObj);}return newObj;}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 PopoverItem=function(_React$PureComponent){(0,_inherits2["default"])(PopoverItem,_React$PureComponent);var _super=_createSuper(PopoverItem);function PopoverItem(){(0,_classCallCheck2["default"])(this,PopoverItem);return _super.apply(this,arguments);}(0,_createClass2["default"])(PopoverItem,[{key:"render",value:function render(){var _this$props=this.props,value=_this$props.value,disabled=_this$props.disabled,children=_this$props.children,onSelect=_this$props.onSelect,style=_this$props.style;return _react["default"].createElement(_style.WithTheme,null,function(_,theme){return _react["default"].createElement(_reactNative.TouchableOpacity,{activeOpacity:0.75,disabled:disabled,onPress:function onPress(){if(typeof onSelect==='function'){onSelect(value);}},style:[{padding:theme.v_spacing_md},style]},children);});}}]);return PopoverItem;}(_react["default"].PureComponent);exports.PopoverItem=PopoverItem;var Popover=function(_React$PureComponent2){(0,_inherits2["default"])(Popover,_React$PureComponent2);var _super2=_createSuper(Popover);function Popover(){var _this;(0,_classCallCheck2["default"])(this,Popover);_this=_super2.apply(this,arguments);_this.onSelect=function(value,closePopover){var onSelect=_this.props.onSelect;if(onSelect){onSelect(value);}closePopover();};_this.renderOverlay=function(closePopover){var _this$props2=_this.props,overlay=_this$props2.overlay,renderOverlayComponent=_this$props2.renderOverlayComponent;var items=_react["default"].Children.map(overlay,function(child){if(!(0,_react.isValidElement)(child)){return child;}return _react["default"].cloneElement(child,{onSelect:function onSelect(v){return _this.onSelect(v,closePopover);}});});if(typeof renderOverlayComponent==='function'){return renderOverlayComponent(items,closePopover);}return _react["default"].createElement(_reactNative.ScrollView,null,items);};return _this;}(0,_createClass2["default"])(Popover,[{key:"render",value:function render(){var _this2=this;var _this$props3=this.props,children=_this$props3.children,disabled=_this$props3.disabled,triggerStyle=_this$props3.triggerStyle,styles=_this$props3.styles,placement=_this$props3.placement,duration=_this$props3.duration,easing=_this$props3.easing,useNativeDriver=_this$props3.useNativeDriver,onDismiss=_this$props3.onDismiss;return _react["default"].createElement(_style.WithTheme,{themeStyles:_style2["default"],styles:styles},function(s){return _react["default"].createElement(_reactNativeModalPopover.PopoverController,null,function(_ref){var openPopover=_ref.openPopover,closePopover=_ref.closePopover,popoverVisible=_ref.popoverVisible,setPopoverAnchor=_ref.setPopoverAnchor,popoverAnchorRect=_ref.popoverAnchorRect;return _react["default"].createElement(_reactNative.View,null,_react["default"].createElement(_reactNative.TouchableOpacity,{ref:setPopoverAnchor,onPress:openPopover,style:triggerStyle,disabled:disabled,activeOpacity:0.75},children),_react["default"].createElement(_reactNativeModalPopover.Popover,{contentStyle:s.content,arrowStyle:s.arrow,backgroundStyle:s.background,visible:popoverVisible,onClose:closePopover,fromRect:popoverAnchorRect,supportedOrientations:['portrait','landscape'],placement:placement,duration:duration,easing:easing,useNativeDriver:useNativeDriver,onDismiss:onDismiss},_this2.renderOverlay(closePopover)));});});}}]);return Popover;}(_react["default"].PureComponent);exports["default"]=Popover;Popover.defaultProps={onSelect:function onSelect(){}};Popover.Item=PopoverItem;