react-am-formutil
Version:
Happy to use react-formutil in the project based on antd-mobile^_^
2 lines (1 loc) • 4.47 kB
JavaScript
import{__extends as e,__rest as r,__assign as a}from"tslib";import{Checkbox,Radio,List,Switch,PickerView,DatePickerView,DatePicker,Range,Picker,ImagePicker,InputItem,TextareaItem,Slider,Modal}from"antd-mobile";import t,{Component as n,Children as o,cloneElement as c}from"react";import{EasyField as i}from"react-formutil";export*from"react-formutil";var u=Checkbox.CheckboxItem;var l=function(n){e(o,n);function o(){return n!==null&&n.apply(this,arguments)||this}o.prototype.render=function(){var e=this;var n=this.props,o=n.onChange,c=n.value,i=n.onFocus,l=n.onBlur,s=n.data,v=r(n,["onChange","value","onFocus","onBlur","data"]);var d=function(e,r){var a=r.target.checked;o(a?c.concat(e):c.filter(function(r){return r!==e}))};return s.map(function(r){return t.createElement(u,a({key:r.value},v,r,{checked:c.indexOf(r.value)>-1,children:r.title,onChange:d.bind(e,r.value),onFocus:i,onBlur:l}))})};o.propTypes=undefined;o.defaultProps={value:[]};return o}(n);var s=Radio.RadioItem;var v=function(n){e(o,n);function o(){return n!==null&&n.apply(this,arguments)||this}o.prototype.render=function(){var e=this;var n=this.props,o=n.onChange,c=n.value,i=n.onFocus,u=n.onBlur,l=n.data,v=r(n,["onChange","value","onFocus","onBlur","data"]);var d=function(e){o(e)};return l.map(function(r){return t.createElement(s,a({key:r.value},v,r,{checked:c===r.value,children:r.title,onChange:d.bind(e,r.value),onFocus:i,onBlur:u}))})};o.propTypes=undefined;return o}(n);var d=List.Item;var f=1;var p=function(e){f=e};var h=Switch.name!=="Switch";function m(e){if(e){if(typeof e.type==="function"){var r=e.type;if(r.formutilType){return r.formutilType}if(h){return r}return r.displayName||r.name}else{return e.props.type||e.type}}}var k=h?Checkbox:"Checkbox";var y=h?Radio:"Radio";var b=h?PickerView:"PickerView";var g=h?DatePickerView:"DatePickerView";var C=h?DatePicker:"DatePicker";var I=h?Switch:"Switch";var P=h?Range:"Range";var _=h?Picker:"Picker";var E=h?ImagePicker:"ImagePicker";var x=h?InputItem:"InputItem";var T=h?TextareaItem:"TextareaItem";var w=h?Slider:"Slider";var B=h?Checkbox.CheckboxItem:"CheckboxItem";var F=h?Radio.RadioItem:"RadioItem";var N=h?Checkbox.AgreeItem:"AgreeItem";var $=h?l:"CheckboxGroup";var R=h?v:"RadioGroup";var j=function(n){e(u,n);function u(){return n!==null&&n.apply(this,arguments)||this}u.prototype.render=function(){var e=this.props;var n=e,u=n.children,l=n.className,s=n.label,v=n.errorLevel,p=v===void 0?f:v,h=r(n,["children","className","label","errorLevel"]);var j=o.only(u);var O=m(j);switch(O){case k:case y:case I:case B:case F:case N:h.__TYPE__="checked";break;case"checked":case"array":case"object":case"number":case"empty":h.__TYPE__=O;break;default:h.__TYPE__="empty";break}return t.createElement(i,a({},h,{passUtil:"$fieldutil",children:function(n){var o,i;var u=e.valuePropName,v=u===void 0?"value":u,f=e.changePropName,h=f===void 0?"onChange":f,m=e.focusPropName,S=m===void 0?"onFocus":m,Y=e.blurPropName,A=Y===void 0?"onBlur":Y;var D=n.$fieldutil,G=h,L=n[G],V=S,U=n[V],q=A,z=n[q],H=v,J=n[H],K=r(n,["$fieldutil",typeof G==="symbol"?G:G+"",typeof V==="symbol"?V:V+"",typeof q==="symbol"?q:q+"",typeof H==="symbol"?H:H+""]);var M=D.$invalid,Q=D.$dirty,W=D.$touched,X=D.$getFirstError,Z=D.$focused;var ee;switch(O){case k:case y:case I:case B:case F:case N:case"checked":var re=e.checked,ae=re===void 0?true:re,te=e.unchecked,ne=te===void 0?false:te;ee={checked:J===ae,onChange:function(e){var r=e&&e.target?e.target.checked:e;L(r?ae:ne,e)}};break;case E:ee={onChange:L,files:J};break;default:ee=(o={},o[h]=L,o[v]=J,o);break}Object.assign(ee,(i={},i[S]=U,i[A]=z,i));var oe;switch(p){case 0:oe=M&&Q&&W;break;case 1:oe=M&&Q;break;case 2:oe=M;break;default:oe=false;break}var ce={invalid:M,valid:!M,dirty:Q,pristine:!Q,touched:W,untouched:!W,focused:Z};K.className=Object.keys(ce).filter(function(e){return ce[e]}).map(function(e){return"am-formutil-"+e}).concat(l).filter(Boolean).join(" ");var ie=oe?{error:true}:{};switch(O){case x:case T:ie.onErrorClick=function(){Modal.alert("Error info",X())};case B:case F:case N:case P:case w:case b:case g:return c(j,a({},K,ie,ee,s?{title:s,children:s}:{}));case C:case _:return c(j,a({},ee,{children:t.createElement(d,a({},K,ie),s)}));case $:case R:return c(j,a({},K,ie,ee));default:var ue=c(j,ee);return t.createElement(d,a({},K,ie,s?{extra:ue,children:s}:{children:ue}))}}}))};u.propTypes=undefined;return u}(n);export{l as CheckboxGroup,j as FormItem,v as RadioGroup,p as setErrorLevel};