UNPKG

react-mui-formutil

Version:

Happy to use react-formutil in the project based on @mui/material ^_^

2 lines (1 loc) 7.71 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:true});var e=require("react-formutil");var r=require("@babel/runtime/helpers/defineProperty");var t=require("@babel/runtime/helpers/objectSpread2");var a=require("@babel/runtime/helpers/toPropertyKey");var l=require("@babel/runtime/helpers/objectWithoutProperties");var n=require("@babel/runtime/helpers/classCallCheck");var o=require("@babel/runtime/helpers/createClass");var i=require("@babel/runtime/helpers/inherits");var u=require("@babel/runtime/helpers/createSuper");var c=require("@mui/material");var s=require("react");var d=require("react-fast-compare");function f(e){return e&&typeof e==="object"&&"default"in e?e:{default:e}}var p=f(r);var v=f(t);var m=f(a);var h=f(l);var b=f(n);var y=f(o);var g=f(i);var E=f(u);var k=f(s);var C=f(d);var P=["children","name","onChange","value","onFocus","onBlur"];var $=function(e){g["default"](t,e);var r=E["default"](t);function t(){b["default"](this,t);return r.apply(this,arguments)}y["default"](t,[{key:"render",value:function e(){var r=this.props,t=r.children,a=r.name,l=r.onChange,n=r.value,o=r.onFocus,i=r.onBlur,u=h["default"](r,P);var d=function e(r){var t=r.target,a=t.checked,o=t.value;var i=n||[];l===null||l===void 0?void 0:l(a?i.concat(o):i.filter((function(e){return e!==o})))};return k["default"].createElement(c.FormGroup,u,s.Children.map(t,(function(e){var r=e.props.value;return s.cloneElement(e,{checked:!!n&&n.indexOf(r)>-1,onChange:d,onFocus:o,onBlur:i,name:a})})))}}]);return t}(k["default"].Component);$.formutilType="array";var F=["children","label","helperText","noStyle","errorLevel"];var _=s.createContext(null),x=_.Consumer,V=_.Provider;var T=1;var A=function e(r){T=r};function q(e){var r=e===null||e===void 0?void 0:e.type;if(r===c.FormControlLabel){r=q(e.props.control)}return r}var j=[c.TextField,c.Input,c.OutlinedInput,c.FilledInput,c.Autocomplete,c.Select];var O=[c.Select,c.OutlinedInput];var S=[c.Rating,c.Autocomplete,c.ToggleButtonGroup,c.Slider];var w=function(r){g["default"](a,r);var t=E["default"](a);function a(){var e;b["default"](this,a);for(var r=arguments.length,l=new Array(r),n=0;n<r;n++){l[n]=arguments[n]}e=t.call.apply(t,[this].concat(l));e.$fieldutil=void 0;e.registerAncestorField=void 0;e.compositionValue=void 0;e.isComposing=void 0;e.fields={};e.registerField=function(r,t){return t?e.fields[r]=t:delete e.fields[r]};e.latestValidationProps=null;e.checkHasError=function(e,r,t,a){switch(e){case 0:return r&&t&&a;case 1:return r&&t;case 2:return r;default:return false}};e.fetchCurrentValidationProps=function(r){var t=Object.keys(e.fields).map((function(r){return e.fields[r].$new()}));var a=t.filter((function(e){return e.$invalid}));var l=a.length>0;var n=t.some((function(e){return e.$dirty}));var o=t.some((function(e){return e.$touched}));var i=t.some((function(e){return e.$focused}));var u=a.map((function(t){var a=t.$invalid,l=t.$touched,n=t.$dirty,o=t.$getFirstError;var i=e.checkHasError(r,a,n,l);return i&&o()})).filter(Boolean);return e.getValidationProps(r,l,n,o,i,u)};e.getValidationProps=function(r,t,a,l,n,o){var i=e.checkHasError(r,t,a,l);var u={};if(i){u.error=true}return{validationProps:u,error:i?Array.isArray(o)?o.map((function(e,r){return k["default"].createElement(s.Fragment,{key:r},r>0&&k["default"].createElement("br",null),e)})):o:null}};return e}y["default"](a,[{key:"componentDidMount",value:function e(){var r;(r=this.registerAncestorField)===null||r===void 0?void 0:r.call(this,this.props.name,this.$fieldutil)}},{key:"componentWillUnmount",value:function e(){var r;(r=this.registerAncestorField)===null||r===void 0?void 0:r.call(this,this.props.name,null)}},{key:"render",value:function r(){var t=this;var a=this.props;var l=a.children,n=a.label,o=a.helperText,i=a.noStyle,u=a.errorLevel,d=u===void 0?T:u,f=h["default"](a,F);var b=q(l);if(!a.name){var y=this.latestValidationProps=this.fetchCurrentValidationProps(d),g=y.error,E=y.validationProps;Promise.resolve().then((function(){if(!C["default"](t.latestValidationProps,t.fetchCurrentValidationProps(d))){t.forceUpdate()}}));var P=typeof l==="function"?l():l;var _=g||o;return k["default"].createElement(V,{value:this.registerField},k["default"].createElement(c.Box,f,n&&k["default"].createElement(c.FormLabel,E,n),P,_&&k["default"].createElement(c.FormHelperText,E,_)))}if(f.$memo===true){f.__DIFF__={children:l,compositionValue:this.compositionValue}}else if(Array.isArray(f.$memo)){f.$memo=f.$memo.concat(this.compositionValue)}switch(b){case c.Switch:case c.Checkbox:case c.Radio:f.__TYPE__="checked";break;case c.Select:case c.Autocomplete:if(l.props.multiple){f.__TYPE__="array"}else if(!("$defaultValue"in f)&&b===c.Autocomplete){f.$defaultValue=null}break;case $:f.__TYPE__="array";break;case c.Slider:case c.Rating:if(!("$defaultValue"in f)){f.$defaultValue=null}break;case"checked":case"array":case"object":case"number":case"empty":f.__TYPE__=b;break}return k["default"].createElement(e.EasyField,Object.assign({},f,{passUtil:"$fieldutil",render:function e(r){var u,y,g;var E=a.valuePropName,C=E===void 0?"value":E,P=a.changePropName,$=P===void 0?"onChange":P,F=a.focusPropName,_=F===void 0?"onFocus":F,V=a.blurPropName,T=V===void 0?"onBlur":V;var A=r.$fieldutil,q=r[$],w=r[_],I=r[T],B=r[C],L=h["default"](r,["$fieldutil",$,_,T,C].map(m["default"]));var H=A.$invalid,Y=A.$dirty,N=A.$touched,U=A.$focused,G=A.$getFirstError;var R;switch(f.__TYPE__){case"checked":case"checkbox":case"radio":var D=a.checked,M=D===void 0?true:D,W=a.unchecked,K=W===void 0?false:W;R={checked:B===M,onChange:function e(r){var t=r&&r.target?r.target.checked:r;q(t?M:K,r)}};break;default:var z=S.includes(b)?function(e,r){q(r)}:q;var J={onCompositionEnd:function e(r){t.isComposing=false;delete t.compositionValue;q(r)},onCompositionStart:function e(){return t.isComposing=true}};R=v["default"](v["default"]({},S.includes(b)?{}:J),{},(y={},p["default"](y,$,(function(e){if(t.isComposing){t.compositionValue=e.target[C];t.forceUpdate()}else{for(var r=arguments.length,a=new Array(r>1?r-1:0),l=1;l<r;l++){a[l-1]=arguments[l]}z.apply(void 0,[e].concat(a))}})),p["default"](y,C,(u=t.compositionValue)!==null&&u!==void 0?u:B),p["default"](y,T,(function(){if(t.isComposing){t.isComposing=false;delete t.compositionValue;q.apply(void 0,arguments)}return I.apply(void 0,arguments)})),y));break}var Q=t.getValidationProps(d,H,Y,N,U,G()),X=Q.validationProps,Z=Q.error;R=Object.assign((g={},p["default"](g,_,w),p["default"](g,T,I),g),R);if(O.includes(b)&&n){R.label=n}var ee=typeof l==="function"?l(R):s.cloneElement(l,R);return k["default"].createElement(x,null,(function(e){var r;if(i){t.$fieldutil=A;t.registerAncestorField=e}switch(b){case c.TextField:return s.cloneElement(ee,v["default"](v["default"](v["default"]({},L),X),{},{helperText:i?l.props.helperText:(r=Z||o)!==null&&r!==void 0?r:l.props.helperText,label:n!==null&&n!==void 0?n:l.props.label}));case c.Autocomplete:var a=l.props.renderInput;return s.cloneElement(ee,{renderInput:function e(r){var t;var u=a(r);return s.cloneElement(u,v["default"](v["default"](v["default"]({},L),X),{},{helperText:i?l.props.helperText:(t=Z||o)!==null&&t!==void 0?t:l.props.helperText,label:n!==null&&n!==void 0?n:u.props.label}))}});default:var u=Z||o;return k["default"].createElement(c.FormControl,Object.assign({},L,X),n&&s.createElement(j.includes(b)?c.InputLabel:c.FormLabel,{children:n}),ee,u&&!i&&k["default"].createElement(c.FormHelperText,null,u))}}))}}))}}]);return a}(s.Component);exports.CheckboxGroup=$;exports.FormControl=w;exports.setErrorLevel=A;Object.keys(e).forEach((function(r){if(r!=="default"&&!exports.hasOwnProperty(r))Object.defineProperty(exports,r,{enumerable:true,get:function(){return e[r]}})}));