UNPKG

@ant-design/react-native

Version:

基于蚂蚁金服移动设计规范的 React Native 组件库

1 lines 5.9 kB
"use strict";"use client";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _typeof=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _dayjs=_interopRequireDefault(require("dayjs"));var _useMergedState3=_interopRequireDefault(require("rc-util/lib/hooks/useMergedState"));var _react=_interopRequireWildcard(require("react"));var _getLocale=require("../_util/getLocale");var _withDefaultProps=require("../_util/with-default-props");var _useRenderLabel=_interopRequireDefault(require("../date-picker-view/useRenderLabel"));var _localeProvider=require("../locale-provider");var _Picker=_interopRequireDefault(require("../picker/Picker"));var _columnsExtend=require("./columns-extend");var _datePickerUtils=require("./date-picker-utils");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;}var __rest=void 0&&(void 0).__rest||function(s,e){var t={};for(var p in s){if(Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0)t[p]=s[p];}if(s!=null&&typeof Object.getOwnPropertySymbols==="function")for(var i=0,p=Object.getOwnPropertySymbols(s);i<p.length;i++){if(e.indexOf(p[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p[i]))t[p[i]]=s[p[i]];}return t;};var defaultProps={minDate:(0,_dayjs.default)('2000-1-1').toDate(),maxDate:(0,_dayjs.default)('2030-1-1').toDate(),precision:'day'};var DatePicker=(0,_react.forwardRef)(function(props,ref){var p=(0,_withDefaultProps.mergeProps)(defaultProps,props);var value=p.value,defaultValue=p.defaultValue,defaultDate=p.defaultDate,minDate=p.minDate,maxDate=p.maxDate,mode=p.mode,precision=p.precision,renderLabel=p.renderLabel,filter=p.filter,restProps=__rest(p,["value","defaultValue","defaultDate","minDate","maxDate","mode","precision","renderLabel","filter"]);var _precision=precision||(mode==='date'?'day':mode)||'day';var _useMergedState=(0,_useMergedState3.default)(undefined,{value:value,defaultValue:defaultValue||defaultDate}),_useMergedState2=(0,_slicedToArray2.default)(_useMergedState,2),valueProp=_useMergedState2[0],setValueProp=_useMergedState2[1];var _useState=(0,_react.useState)(valueProp),_useState2=(0,_slicedToArray2.default)(_useState,2),innerValue=_useState2[0],setInnerValue=_useState2[1];(0,_react.useEffect)(function(){setInnerValue(valueProp);},[valueProp]);var pickerInnerValue=(0,_columnsExtend.usePickerValue)(innerValue,minDate,maxDate,_precision);var _locale=(0,_getLocale.getComponentLocale)(p,(0,_react.useContext)(_localeProvider.LocaleContext),'DatePicker',function(){return require('./locale/zh_CN');});var mergedRenderLabel=(0,_useRenderLabel.default)(renderLabel,_locale.DatePickerLocale);var pickerRef=_react.default.useRef(null);(0,_react.useImperativeHandle)(ref,function(){return pickerRef.current;});var columns=(0,_react.useMemo)(function(){return(0,_datePickerUtils.generateDatePickerColumns)(pickerInnerValue,minDate,maxDate,_precision,mergedRenderLabel,filter,false);},[maxDate,mergedRenderLabel,minDate,_precision,filter,pickerInnerValue]);var handleSelect=(0,_react.useCallback)(function(val,i){var _a;var pvalue=pickerInnerValue.slice(0);pvalue[i]=val;var _getValueExtend=(0,_columnsExtend.getValueExtend)(columns,pvalue,_precision),dateValue=_getValueExtend.dateValue;setInnerValue(dateValue);(_a=p.onValueChange)===null||_a===void 0?void 0:_a.call(p,dateValue,i);},[columns,_precision,p,pickerInnerValue]);var handleOk=(0,_react.useCallback)(function(val,ext){var _a;(_a=p.onOk)===null||_a===void 0?void 0:_a.call(p,(0,_datePickerUtils.convertStringArrayToDate)(val,_precision),ext);setValueProp(val);},[_precision,p,setValueProp]);var handleChange=(0,_react.useCallback)(function(val,ext){var _a;(_a=p.onChange)===null||_a===void 0?void 0:_a.call(p,(0,_datePickerUtils.convertStringArrayToDate)(val,_precision),ext);},[_precision,p]);var format=(0,_react.useCallback)(function(labels){var date=(0,_datePickerUtils.convertStringArrayToDate)(labels,_precision);if(typeof p.format==='function'){return p.format(date);}return(0,_dayjs.default)(date).format(typeof p.format==='string'?p.format:_precision==='day'?'YYYY-MM-DD':'YYYY-MM-DD HH:mm:ss');},[_precision,p]);var onVisibleChange=(0,_react.useCallback)(function(visible){var _a;(_a=p.onVisibleChange)===null||_a===void 0?void 0:_a.call(p,visible);if(visible&&!valueProp){setInnerValue(new Date());}else{setInnerValue(valueProp);}},[p,valueProp]);return _react.default.createElement(_Picker.default,(0,_extends2.default)({},restProps,{locale:_locale,value:pickerInnerValue,columns:columns,handleSelect:handleSelect,onVisibleChange:onVisibleChange,onOk:handleOk,onChange:handleChange,format:format,ref:pickerRef}));});DatePicker.displayName='Picker';var _default=DatePicker;exports.default=_default;