react-formutil
Version:
Happy to build the forms in React ^_^
2 lines (1 loc) • 42.7 kB
JavaScript
import e,{createContext as t,createElement as r,Children as n,cloneElement as i,Component as a,forwardRef as o}from"react";import u from"warning";import{unstable_batchedUpdates as s}from"react-dom";import l from"react-is";import f from"hoist-non-react-statics";import $ from"react-fast-compare";function c(e){"@babel/helpers - typeof";return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function d(e,t){if(c(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==undefined){var n=r.call(e,t||"default");if(c(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function v(e){var t=d(e,"string");return c(t)==="symbol"?t:String(t)}function p(e,t,r){t=v(t);if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}function h(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function m(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?h(Object(r),!0).forEach((function(t){p(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):h(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function g(e,t){if(t==null||t>e.length)t=e.length;for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function y(e){if(Array.isArray(e))return g(e)}function b(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function w(e,t){if(!e)return;if(typeof e==="string")return g(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor)r=e.constructor.name;if(r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return g(e,t)}function F(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function P(e){return y(e)||b(e)||w(e)||F()}function V(e){if(Array.isArray(e))return e}function S(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,a,o,u=[],s=!0,l=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=a.call(r)).done)&&(u.push(n.value),u.length!==t);s=!0);}catch(e){l=!0,i=e}finally{try{if(!s&&null!=r["return"]&&(o=r["return"](),Object(o)!==o))return}finally{if(l)throw i}}return u}}function k(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function C(e,t){return V(e)||S(e,t)||w(e,t)||k()}function O(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}function E(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||false;n.configurable=true;if("value"in n)n.writable=true;Object.defineProperty(e,v(n.key),n)}}function _(e,t,r){if(t)E(e.prototype,t);if(r)E(e,r);Object.defineProperty(e,"prototype",{writable:false});return e}function j(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function A(e,t){A=Object.setPrototypeOf?Object.setPrototypeOf.bind():function e(t,r){t.__proto__=r;return t};return A(e,t)}function R(e,t){if(typeof t!=="function"&&t!==null){throw new TypeError("Super expression must either be null or a function")}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:true,configurable:true}});Object.defineProperty(e,"prototype",{writable:false});if(t)A(e,t)}function D(e){D=Object.setPrototypeOf?Object.getPrototypeOf.bind():function e(t){return t.__proto__||Object.getPrototypeOf(t)};return D(e)}function x(){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}}function N(e,t){if(t&&(c(t)==="object"||typeof t==="function")){return t}else if(t!==void 0){throw new TypeError("Derived constructors may only return object or undefined")}return j(e)}function U(e){var t=x();return function r(){var n=D(e),i;if(t){var a=D(this).constructor;i=Reflect.construct(n,arguments,a)}else{i=n.apply(this,arguments)}return N(this,i)}}var T=t((function(){return{}}));var I=l.isValidElementType;var H=Object.getPrototypeOf({});var M=/\s*(?:\]\s*\.|\]\s*\[|\.|\[|\])\s*/g;var L=typeof window==="undefined"?global:window;function B(e){return typeof e==="undefined"}function Y(e){return typeof e==="function"}function Q(e){return B(e)||e===null||e+""===""}function G(e){return!!e&&Y(e.then)}function z(e){return Object.prototype.toString.call(e)==="[object Object]"}function q(e){if(!z(e))return false;if(null===Object.getPrototypeOf(e))return true;if(!Y(e.constructor))return false;return e.constructor.prototype===H}function K(e){return I(e)&&typeof e!=="string"}function W(e){if(Array.isArray(e)){var t=[];for(var r=0,n=e.length;r<n;r++){t[r]=W(e[r])}return t}else if(q(e)){var i={};for(var a in e){if(e.hasOwnProperty(a))i[a]=W(e[a])}return i}return e}var J=function e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++){n[i-1]=arguments[i]}if(Y(t)){t.apply(void 0,n)}return n[0]};function X(e){return function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++){r[n]=arguments[n]}if(K(r[0])){return e.apply(void 0,r)}return function(t){return e(t,r[0])}}}var Z=["minlength","maxlength","max","min","required","pattern","step"];function ee(e){return Z.indexOf(e.toLowerCase())>-1}var te=function e(t){try{var r=new Function("origin","global","return typeof ".concat(t," === 'number' || (typeof ").concat(t," !== 'undefined' && !(origin in global)) ? ").concat(t," : origin"));return r(t,L)}catch(e){return t}};function re(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++){t[r]=arguments[r]}var n=t[0],i=t[1],a=t[2];u(typeof i==="string","The second parameter(".concat(JSON.stringify(i),") of parsePath() must be a string."));var o=(i.match(M)||[]).map((function(e){return e.replace(/\s/g,"")}));var s=i.split(M).map((function(e){return e.trim()})).filter((function(e){return e!==""}));var l=n;try{if(t.length<3){for(var f=0,$=s.length;f<$;f++){var c=te(s[f]);if(f+1===$){return l[c]}if(B(l[c])){break}l=l[c]}}else{for(var d=0,v=s.length;d<v;d++){var p=te(s[d]);var h=s[d+1];var g=o[d];if(B(h)){l[p]=a;break}switch(g){case"].":case".":l=l[p]=B(l[p])?{}:m({},l[p]);break;case"][":case"[":var y=te(h);l=l[p]=B(l[p])?typeof y==="number"&&y>=0?[]:{}:Array.isArray(l[p])?P(l[p]):m({},l[p]);break;default:l[p]=a;break}}}}catch(e){u(false,"The name '%s' of Field seems is not a legal expression.",i)}if(t.length>2){return n}}function ne(e,t){var r=t.split(M).map((function(e){return e.trim()})).filter((function(e){return e!==""}));for(var n=0,i=r.length;n<i;n++){var a=te(r[n]);if(!(a in e)){break}if(n+1===i){return{data:e[a]}}e=e[a]}}function ie(e,t){if(e){if(Y(e)){e(t)}else if("current"in e){e.current=t}}}var ae=function e(t,r){for(var n=0,i=t.length;n<i;n++){if(r(t[n])===true){return t[n]}}};var oe=function e(t,r){return Object.keys(t).reduce((function(e,n){e[n]=r(t[n],n,t);return e}),{})};var ue=function e(t,r){return Object.keys(t).forEach((function(e){return r(t[e],e,t)}))};var se=undefined;function le(e,t,r){ue(e,(function(t,r){if(t===se){delete e[r]}else if(q(t)||Array.isArray(t)){le(t,r,e)}}));if(r&&Object.keys(e).every((function(t){return e[t]===se}))){r[t]=se;le(r)}}var fe=function e(t,r){if(!B(re(t,r))){re(t,r,se);le(t)}};function $e(e,t){if(e===t){return true}var r=Object.keys(e);if(r.length!==Object.keys(t).length){return false}for(var n=0;n<r.length;n++){if(e[r[n]]!==t[r[n]]){return false}}return true}var ce="FORM_VALIDATE_RESULT";var de,ve;if(typeof requestAnimationFrame==="function"){de=requestAnimationFrame;ve=cancelAnimationFrame}else{de=setTimeout;ve=clearTimeout}var pe=function(t){R(o,t);var a=U(o);function o(e){var t;O(this,o);t=a.call(this,e);t.$$formPending=void 0;t.$$formValidatePromise=void 0;t.$$registers={};t.$$deepRegisters={};t.getFormContext=function(){return{$$registers:t.$$registers,$$register:t.$$register,$$unregister:t.$$unregister,$$onChange:t.$$onChange,$$getDefault:t.$$getDefault,$formutil:t.$formutil}};t.$$regDuplications={};t.$$duplicateTimer=void 0;t.$$checkDuplication=function(){var e=j(t),r=e.$$regDuplications;var n;ue(r,(function(e,i){var a=C(e,2),o=a[0],s=a[1];u(o.$$reserved,"The Field with a name '".concat(i,"' has been registered!"));s.$$reset(o.$getState());n=delete r[i];t.$$formShouldUpdateFields[i]=true}));if(n){t.$render()}};t.$$register=function(e,r,n){t.$$unregister(n,r);if(e){var i=t.$$getRegister(e);if(i){ve(t.$$duplicateTimer);t.$$regDuplications[e]=[i,r];t.$$duplicateTimer=de((function(){return s(t.$$checkDuplication)}))}else{t.$$fieldChangedQueue.push({name:e,$newValue:r.$getState().$value});fe(t.$$defaultValues,e)}t.$$registers[r.$name=e]=r;t.$$formShouldUpdateFields[e]=true;t.createDeepRegisters();t.$render()}};t.$$unregister=function(e,r,n){if(e){if(n){r.$$reserved=true}else{if(e in t.$$regDuplications){var i=C(t.$$regDuplications[e],2),a=i[0],o=i[1];t.$$fieldChangedQueue.push({name:e,$newValue:o.$getState().$value,$prevValue:a.$getState().$value});delete t.$$regDuplications[e]}else if(t.$$registers[e]===r){delete t.$$registers[e];t.$$fieldChangedQueue.push({name:e,$prevValue:r.$getState().$value});fe(t.$$defaultValues,e)}}t.$$formShouldUpdateAll=true;t.createDeepRegisters();t.$render()}};t.$$defaultInitialize=function(){var e=t.props,r=e.$defaultValues,n=e.$defaultStates;t.$$defaultValues=t.$$deepParseObject(W(Y(r)?r(t.props)||{}:r));t.$$defaultStates=t.$$deepParseObject(W(Y(n)?n(t.props)||{}:n))};t.$$getDefault=function(){return{$$defaultStates:t.$$defaultStates,$$defaultValues:t.$$defaultValues}};t.$$formShouldUpdateFields={};t.$$formShouldUpdateAll=false;t.$$fieldChangedQueue=[];t.$$triggerFormChange=function(){if(t.$$fieldChangedQueue.length){var e=P(t.$$fieldChangedQueue);t.$$fieldChangedQueue.length=0;var r={};var n={};var i=t.$$registers;var a=false;e.forEach((function(e){if(!(e.name in i)){delete e.$newValue}if(e.$newValue!==e.$prevValue){if("$newValue"in e&&"$prevValue"in e){var o=t.$$getRegister(e.name);if(o){o.$$triggerChange(e)}}"$newValue"in e&&re(r,e.name,e.$newValue);!e.$dirty&&"$prevValue"in e&&re(n,e.name,e.$prevValue);a=true}}));if(a){if(Y(t.props.$validator)){t.$$formValidate()}if(Y(t.props.$onFormChange)){t.props.$onFormChange(t.$formutil,r,n)}}}};t.createDeepRegisters=function(){return t.$$deepRegisters=t.$$deepParseObject(t.$$registers)};t.$$getRegister=function(e){if(e){var r=t.$$registers[e]||re(t.$$deepRegisters,e);if(r){return r}}};t.$$formValidate=function(){return t.$$formValidatePromise=new Promise((function(e){var r=t.props.$validator;var n;var i;var a;var o;var u=r(t.$formutil.$params,t.$formutil);var s=function t(r){return e(J(a,r))};if(G(u)){if(!t.$$formPending){t.$$formPending=true;t.$render()}i=function e(t){return n=t(s)};o=u.then((function(){return void 0}),(function(e){return e})).then((function(e){if(n){return n}t.$shouldCancelPrevAsyncValidate=null;t.$$formPending=false;return t.$$setFormErrors(e,s)}))}else{if(t.$$formPending){t.$$formPending=false}o=t.$$setFormErrors(u,s)}if(t.$shouldCancelPrevAsyncValidate){t.$shouldCancelPrevAsyncValidate((function(e){a=e;return o}))}t.$shouldCancelPrevAsyncValidate=i}))};t.$$setFormErrors=function(e,r){if(e&&(e instanceof Error||typeof e!=="object")){u(false,"The result of $validator in <Form /> should always return None(null,undefined) or an object contains error message of Field.");return t.$render(r)}return t.$$setStates(e||{},(function(e,t){var r=t.$getState(),n=r.$error,i=n===void 0?{}:n;if(e){return{$error:m(m({},i),{},p({},ce,e))}}if(i[ce]){delete i[ce];return{$error:i}}}),r,true)};t.$getField=function(e){var r=t.$$getRegister(e);u(!e||r,"$getField('".concat(e,"') fail to find the matched Field. Maybe it has been unmounted."));u(e,"You should pass a name of the mounted Field to $getField().");if(r){var n;return(n=r.$new)===null||n===void 0?void 0:n.call(r)}};t.$$onChange=function(e,r,n){return t.$setStates(p({},e,r),n)};t.$$setStates=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var r=arguments.length>1?arguments[1]:undefined;var n=arguments.length>2?arguments[2]:undefined;var i=arguments.length>3?arguments[3]:undefined;var a=t.$$deepParseObject(e);var o=[];ue(t.$$registers,(function(e,n){var u=ne(a,n);if(i||u){var s=e.$getState();var l=r(u&&u.data,e);if(l){var f=e.$$merge(l),$=f.$value;o.push([e,l]);if("$value"in l||"$viewValue"in l){var c=ae(t.$$fieldChangedQueue,(function(e){return e.name===n}));if(c){if(!("$prevValue"in c)){c.$dirty=true;c.$prevValue=c.$newValue}c.$newValue=$}else{t.$$fieldChangedQueue.push({name:n,$newValue:$,$prevValue:s.$value})}}t.$$formShouldUpdateFields[n]=true}}}));return s((function(){o.forEach((function(e){var t=C(e,2),r=t[0],n=t[1];return r.$$detectChange(n)}));return t.$render(n)}))};t.$render=function(e){return new Promise((function(r){return t.forceUpdate((function(){return r(J(e,t.$formutil))}))}))};t.$validates=function(){var e;for(var r=arguments.length,n=new Array(r),i=0;i<r;i++){n[i]=arguments[i]}if(Y(n[n.length-1])){e=n.pop()}if(n.length){var a=function e(r){r.forEach((function(r){if(Array.isArray(r)){e(r)}else{var n=t.$getField(r);if(n){n.$validate()}}}))};a(n)}else{ue(t.$$registers,(function(e){return e.$validate()}));if(Y(t.props.$validator)){t.$$formValidate()}}return t.$onValidates(e)};t.$onValidates=function(e){var r=Object.keys(t.$$registers).map((function(e){return t.$$registers[e].$onValidate()}));r.push(t.$$formValidatePromise);return Promise.all(r).then((function(){return J(e,t.$formutil)}))};t.$validate=function(e,r){var n=t.$getField(e);if(n){return n.$validate(r)}return J(r)};t.$reset=function(e,r){t.$$defaultInitialize();if(Y(e)){r=e;e={}}return t.$$setStates(e,(function(e,t){return t.$$reset(e)}),r,true)};t.$setStates=function(e,r){return t.$$setStates(e,(function(e){return e}),r)};t.$setValues=function(e,r){t.$$deepParseObject(W(e),t.$$defaultValues);le(t.$$defaultValues);return t.$$setStates(e,(function(e){return{$value:e}}),r)};t.$setFocuses=function(e,r){return t.$$setStates(e,(function(e){return{$focused:e}}),r)};t.$setDirts=function(e,r){return t.$$setStates(e,(function(e){return{$dirty:e}}),r)};t.$setTouches=function(e,r){return t.$$setStates(e,(function(e){return{$touched:e}}),r)};t.$setPendings=function(e,r){return t.$$setStates(e,(function(e){return{$pending:e}}),r)};t.$setErrors=function(e,r){return t.$$setStates(e,(function(e){return{$error:e}}),r)};t.$batchState=function(e,r){return t.$setStates(oe(t.$$registers,(function(){return e})),r)};t.$batchDirty=function(e,r){return t.$batchState({$dirty:e},r)};t.$batchTouched=function(e,r){return t.$batchState({$touched:e},r)};t.$batchFocused=function(e,r){return t.$batchState({$focused:e},r)};t.$batchPending=function(e,r){return t.$batchState({$pending:e},r)};t.$batchError=function(e,r){return t.$batchState({$error:e},r)};t.$getFirstError=function(e){var r=t.$formutil;if(e){var n=r.$getField(e);return n&&n.$getFirstError()}for(var i in r.$weakErrors){if(r.$weakErrors.hasOwnProperty(i)){var a=r.$weakErrors[i];for(var o in a){if(a.hasOwnProperty(o)){return a[o]instanceof Error?a[o].message:a[o]}}}}};t.$new=function(){return t.$formutil};t.$$defaultInitialize();return t}_(o,[{key:"$$deepParseObject",value:function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};ue(t,(function(e,t){return re(r,t,e)}));return r}},{key:"$$resetFormUpdateFields",value:function e(){this.$$formShouldUpdateFields={};this.$$formShouldUpdateAll=false}},{key:"componentDidMount",value:function e(){ie(this.props.$ref,this.$formutil)}},{key:"componentDidUpdate",value:function e(t){ie(this.props.$ref,this.$formutil);this.$$triggerFormChange()}},{key:"componentWillUnmount",value:function e(){ie(this.props.$ref,null)}},{key:"_render",value:function e(){var t=this.$formutil;var a=this.props,o=a.children,u=a.render,s=a.component;if(s){return r(s,{$formutil:t})}if(Y(u)){return u(t)}if(Y(o)){return o(t)}return n.map(o,(function(e){return e&&K(e.type)?i(e,{$formutil:t}):e}))}},{key:"render",value:function t(){var r=this;var n=this.props.$processer;var i=Object.keys(this.$$registers).map((function(e){return{path:e,$state:r.$$registers[e].$getState()}}));var a=this.$$formShouldUpdateAll;var o=this.$formutil||{};var u=i.some((function(e){var t=e.$state;return t.$invalid}));var s=i.some((function(e){var t=e.$state;return t.$dirty}));var l=i.some((function(e){var t=e.$state;return t.$touched}));var f=i.some((function(e){var t=e.$state;return t.$focused}));var $=this.$$formPending||i.some((function(e){var t=e.$state;return t.$pending}));var c=a?{}:m({},o.$pureParams);var d=a?{}:m({},o.$states);var v=a?{}:m({},o.$errors);var p=a?{}:m({},o.$dirts);var h=a?{}:m({},o.$touches);var g=a?{}:m({},o.$focuses);var y=a?{}:m({},o.$pendings);var b=a?{}:m({},o.$weakStates);var w=a?{}:m({},o.$weakParams);var F=a?{}:m({},o.$weakErrors);var P=a?{}:m({},o.$weakDirts);var V=a?{}:m({},o.$weakFocuses);var S=a?{}:m({},o.$weakTouches);var k=a?{}:m({},o.$weakPendings);for(var C=0,O=i.length;C<O;C++){var E=i[C],_=E.$state,j=E.path;if(!a){if(!this.$$formShouldUpdateFields[j]){continue}}if(n){n(_,j)}if(j in w&&_.$pristine&&B(_.$value)){delete w[j];fe(c,j)}else if(w[j]!==_.$value){w[j]=_.$value;re(c,j,_.$value)}re(d,j,_);b[j]=_;if(F[j]!==_.$error){if(_.$invalid){re(v,j,_.$error);F[j]=_.$error}else if(j in F){fe(v,j);delete F[j]}}if(P[j]!==_.$dirty){re(p,j,_.$dirty);P[j]=_.$dirty}if(S[j]!==_.$touched){re(h,j,_.$touched);S[j]=_.$touched}if(V[j]!==_.$focused){re(g,j,_.$focused);V[j]=_.$focused}if(k[j]!==_.$pending){re(y,j,_.$pending);k[j]=_.$pending}}this.$formutil={$$registers:m({},this.$$registers),$$deepRegisters:this.$$deepRegisters,$states:d,$pureParams:c,$params:m(m({},this.$$defaultValues),c),$errors:v,$dirts:p,$touches:h,$focuses:g,$pendings:y,$weakStates:b,$weakParams:w,$weakErrors:F,$weakDirts:P,$weakTouches:S,$weakFocuses:V,$weakPendings:k,$getFirstError:this.$getFirstError,$render:this.$render,$getField:this.$getField,$onValidates:this.$onValidates,$new:this.$new,$setStates:this.$setStates,$setValues:this.$setValues,$setErrors:this.$setErrors,$setTouches:this.$setTouches,$setDirts:this.$setDirts,$setFocuses:this.$setFocuses,$setPendings:this.$setPendings,$batchState:this.$batchState,$batchTouched:this.$batchTouched,$batchDirty:this.$batchDirty,$batchFocused:this.$batchFocused,$batchPending:this.$batchPending,$reset:this.$reset,$validates:this.$validates,$validate:this.$validate,$valid:!u,$invalid:u,$dirty:s,$pristine:!s,$touched:l,$untouched:!l,$focused:f,$pending:$};this.$$resetFormUpdateFields();return e.createElement(T.Provider,{value:this.getFormContext},this._render())}}]);return o}(a);pe.displayName="React.Formutil.Form";pe.defaultProps={$defaultValues:{},$defaultStates:{}};function he(e,t){if(e==null)return{};var r={};var n=Object.keys(e);var i,a;for(a=0;a<n.length;a++){i=n[a];if(t.indexOf(i)>=0)continue;r[i]=e[i]}return r}function me(e,t){if(e==null)return{};var r=he(e,t);var n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++){n=a[i];if(t.indexOf(n)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(e,n))continue;r[n]=e[n]}}return r}var ge=["__forwardRef__"],ye=["component"];var be=["render","component","children","$defaultValues","$defaultStates","$onFormChange","$validator","$processer","$ref"];function we(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var n=function(n){R(a,n);var i=U(a);function a(){var r;O(this,a);for(var n=arguments.length,o=new Array(n),u=0;u<n;u++){o[u]=arguments[u]}r=i.call.apply(i,[this].concat(o));r.renderChildren=function(n){return e.createElement(t,Object.assign({},r.othersProps,{$formutil:n,ref:r.props.__forwardRef__}))};return r}_(a,[{key:"render",value:function t(){var n=this.props,i=n.__forwardRef__,a=me(n,ge);var o=this.props,u=o.component,s=me(o,ye);be.forEach((function(e){if(e in a){if(e==="$defaultStates"||e==="$defaultValues"){s[e]=m(m({},r[e]),a[e])}delete a[e]}}));this.othersProps=a;return e.createElement(pe,Object.assign({},r,s,{render:this.renderChildren}))}}]);return a}(a);n.displayName="React.Formutil.withForm."+(t.displayName||t.name||"Anonymous");var i=o((function(t,r){return e.createElement(n,Object.assign({__forwardRef__:r},t))}));i.displayName="React.Formutil.withForm.ForwardRef."+(t.displayName||t.name||"Anonymous");return f(i,t)}var Fe=X(we);function Pe(e){if(e==null)throw new TypeError("Cannot destructure "+e)}var Ve=0;var Se={$valid:true,$invalid:false,$dirty:false,$pristine:true,$touched:false,$untouched:true,$focused:false,$pending:false,$error:{}};function ke(e){return e!==true}function Ce(e,t,r){u(!B(e),"You should return a string or Error when the validation('".concat(r&&r+": ").concat(t,"') failed, otherwise return true."))}var Oe="React.Formutil.Field";function Ee(){return Ve++}function _e(e,t){var a=t.children,o=t.render,u=t.component;if(u){return r(u,{$fieldutil:e})}if(Y(o)){return o(e)}if(Y(a)){return a(e)}return n.map(a,(function(t){return t&&K(t.type)?i(t,{$fieldutil:e}):t}))}function je(e,t){var r={$$FIELD_UUID:e.$$FIELD_UUID,$$reset:u,$$merge:b,$$detectChange:i,$$triggerChange:a,$onValidate:o,$new:function t(){return e.$fieldutil},$picker:s,$getState:s,$getComponent:function e(){return t},$reset:function t(r,n){return e.$setState(u(r),n)},$getFirstError:y,$validate:l,$setState:e.$setState,$render:f,$setValue:$,$setTouched:c,$setDirty:d,$setFocused:v,$setValidity:h,$setError:p,$setPending:g};var n;function i(e){if("$value"in e||"$viewValue"in e){l()}}function a(t){var r=t.$newValue,n=t.$prevValue;var i=e.props.$onFieldChange;if(Y(i)){i(r,n,e.$formContext.$formutil)}}function o(e){n.then(e);return n}function u(t){var r;var n=e.props,i=e.$formContext;if(i.$$getDefault){var a=n.name;var o=i.$$getDefault(),u=o.$$defaultStates,s=o.$$defaultValues;if(a&&s){var l=re(s,a);r=re(u,a)||{};if(!B(l)){r.$value=l}}}var f=n.$defaultValue,$=n.$defaultState;return b(m(m(m(m({},Se),Y($)?$(n):$),{},{$value:Y(f)?f(n):"$defaultValue"in n?f:""},r),t))}function s(){return m({},e.$state)}function l(t){return n=new Promise((function(r){var n=e.props,i=e.$formContext;var a=m(m({},n.$validators),n.$asyncValidators);var o=e.$state,u=o.$value,s=o.$pending,l=Object.assign({},(Pe(o.$error),o.$error));var f=i.$formutil;var $={};var c=false;var d;var v;var y;var b;delete l[ce];var w=Object.keys(a).reduce((function(t,r){delete l[r];if(!c&&n[r]!=null){var i=a[r](u,n[r],m(m({},n),{},{$formutil:f,$fieldutil:e.$fieldutil,$validError:$}));if(G(i)){t.push(i.catch((function(e){if(!d){h(r,e||r)}})))}else if(ke(i)){$[r]=i||r;Ce(i,r,n.name);if(n.$validateLazy){c=true}}}return t}),[]);var F=function e(n){return r(J(t,J(y,n)))};if(w.length){if(!s){g(true)}v=function e(t){return d=t(F)};w.push(p(m(m({},l),$)));b=Promise.all(w).then((function(){if(d){return d}e.$shouldCancelPrevAsyncValidate=null;return g(false,F)}))}else{if(s){g(false)}b=p(m(m({},l),$),F)}if(e.$shouldCancelPrevAsyncValidate){e.$shouldCancelPrevAsyncValidate((function(e){y=e;return b}))}e.$shouldCancelPrevAsyncValidate=v}))}function f(t,r){return e.$setState({$viewValue:t,$dirty:true},r)}function $(t,r){return e.$setState({$value:t},r)}function c(t,r){return e.$setState({$touched:t},r)}function d(t,r){return e.$setState({$dirty:t},r)}function v(t,r){return e.$setState({$focused:t},r)}function p(t,r){return e.$setState({$error:t},r)}function h(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var n=arguments.length>2?arguments[2]:undefined;var i=Object.assign({},(Pe(e.$state.$error),e.$state.$error));if(ke(r)){i[t]=r||t;Ce(r,t,e.props.name)}else{delete i[t]}return p(i,n)}function g(t,r){return e.$setState({$pending:t},r)}function y(){var t=e.$state.$error,r=t===void 0?{}:t;for(var n in r){if(r.hasOwnProperty(n)){return r[n]instanceof Error?r[n].message:r[n]}}}function b(t){var r=Object.assign({},(Pe(t),t));if("$error"in r){if(!r.$error){r.$error={}}r.$valid=Object.keys(r.$error).length===0}var n=e.props,i=n.$parser,a=n.$formatter;if("$viewValue"in r&&!("$value"in r)){var o=function e(t){return r.$viewValue=t};r.$value=i?i(r.$viewValue,o):r.$viewValue}else if("$value"in r&&!("$viewValue"in r)){var u=function e(t){return r.$value=t};r.$viewValue=a?a(r.$value,u):r.$value}if("$valid"in r){r.$invalid=!r.$valid}else if("$invalid"in r){r.$valid=!r.$invalid}if("$dirty"in r){r.$pristine=!r.$dirty}else if("$pristine"in r){r.$dirty=!r.$pristine}if("$touched"in r){r.$untouched=!r.$touched}else if("$untouched"in r){r.$touched=!r.$untouched}e.$state=m(m({},e.$state),r);return s()}return r}var Ae=function(t){R(n,t);var r=U(n);function n(){var e;O(this,n);for(var t=arguments.length,i=new Array(t),a=0;a<t;a++){i[a]=arguments[a]}e=r.call.apply(r,[this].concat(i));e.$$FIELD_UUID=Ee();e.$formContext=void 0;e.$state=void 0;e.shouldRendered=false;e.$setState=function(t,r){return new Promise((function(n){var i=function t(){return n(J(r,e.$fieldutil))};if(e.isMounting){var a=e.props.name;if(a in(e.$formContext.$$registers||{})){e.shouldRendered=false;e.$formContext.$$onChange(a,t,i);if(!e.shouldRendered){e.forceUpdate()}}else{e.$registered.$$merge(t);e.$registered.$$detectChange(t);e.forceUpdate(i)}}else{e.$registered.$$merge(t);i()}}))};return e}_(n,[{key:"componentDidMount",value:function e(){this.isMounting=true;var t=this.props.name,r=this.$formContext;u(!t||r.$formutil,"You should enusre that the <Field /> with the name '".concat(t,"' must be used underneath a <Form /> component or withForm() HOC, otherwise it's isolated."));u(t,"You should assign a name to <Field />, otherwise it will be isolated!");if(r.$$register){r.$$register(t,this.$fieldHandler)}this.$prevState=this.$state;ie(this.props.$ref,this.$fieldutil)}},{key:"componentWillUnmount",value:function e(){if(this.$formContext.$$unregister){this.$formContext.$$unregister(this.props.name,this.$fieldHandler,this.props.$reserveOnUnmount)}this.isMounting=false;ie(this.props.$ref,null)}},{key:"componentDidUpdate",value:function e(t){var r=this.props.name;if(r!==t.name){if(this.$formContext.$$register){this.$formContext.$$register(r,this.$fieldHandler,t.name)}}ie(this.props.$ref,this.$fieldutil);if(this.$state.$value!==this.$prevState.$value){if(!(r in(this.$formContext.$$registers||{}))){this.$registered.$$triggerChange({$newValue:this.$state.$value,$prevValue:this.$prevState.$value})}}this.$prevState=this.$state}},{key:"shouldComponentUpdate",value:function e(t){var r=t.$memo;return!r||!$e(this.$registered.$getState(),this.$prevState)||!(Array.isArray(r)?$(r,this.props.$memo):$(this.props,t))}},{key:"_render",value:function e(){var t=this.$fieldutil=m(m(m({$name:this.props.name},this.$registered.$getState()),this.$registered),{},{$$formutil:this.$formContext.$formutil});return _e(t,this.props)}},{key:"render",value:function t(){var r=this;this.shouldRendered=true;return e.createElement(T.Consumer,null,(function(e){var t=!r.$formContext;r.$formContext=e();if(!r.$fieldHandler){r.$fieldHandler=je(r,r)}r.$registered=(r.$formContext.$$registers||{})[r.$fieldHandler.$name]||r.$fieldHandler;if(t){r.$fieldHandler.$$reset();r.$fieldHandler.$validate()}return r._render()}))}}]);return n}(a);Ae.displayName=Oe;var Re=["__forwardRef__"],De=["component"];var xe=["name","$defaultValue","$defaultState","$onFieldChange","$validators","$asyncValidators","$validateLazy","$memo","$reserveOnUnmount","$ref","$parser","$formatter","render","component","children"];function Ne(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var n=function(n){R(a,n);var i=U(a);function a(){var r;O(this,a);for(var n=arguments.length,o=new Array(n),u=0;u<n;u++){o[u]=arguments[u]}r=i.call.apply(i,[this].concat(o));r.renderChildren=function(n){return e.createElement(t,Object.assign({},r.othersProps,{$fieldutil:n,ref:r.props.__forwardRef__}))};return r}_(a,[{key:"render",value:function t(){var n=this.props,i=n.__forwardRef__,a=me(n,Re);var o=this.props,u=o.component,s=me(o,De);xe.concat(Object.keys(m(m(m(m({},r.$validators),r.$asyncValidators),a.$validators),a.$asyncValidators))).forEach((function(e){if(e in a){if(e==="$validators"||e==="$asyncValidators"||e==="$defaultState"){s[e]=m(m({},r[e]),a[e])}delete a[e]}}));this.othersProps=a;return e.createElement(Ae,Object.assign({},r,s,{render:this.renderChildren}))}}]);return a}(a);n.displayName="React.Formutil.withField."+(t.displayName||t.name||"Anonymous");var i=o((function(t,r){return e.createElement(n,Object.assign({__forwardRef__:r},t))}));i.displayName="React.Formutil.withField.ForwardRef."+(t.displayName||t.name||"Anonymous");return f(i,t)}var Ue=X(Ne);var Te=["$fieldutil","value","onChange","onFocus","onBlur","checked","unchecked"];var Ie=function(t){R(n,t);var r=U(n);function n(){O(this,n);return r.apply(this,arguments)}_(n,[{key:"render",value:function t(){var r=this;var n=this.props,i=n.$fieldutil,a=n.value,o=n.onChange,u=n.onFocus,s=n.onBlur,l=n.checked,f=n.unchecked,$=me(n,Te);var c=this.props.type;var d={value:"compositionValue"in this?this.compositionValue:a,onCompositionEnd:function e(t){r.isComposing=false;delete r.compositionValue;d.onChange(t)},onCompositionStart:function e(){return r.isComposing=true},onChange:function e(t){var n=t.target.value;if(r.isComposing){r.compositionValue=n;r.forceUpdate()}else{o(n,t)}},onFocus:u,onBlur:function e(t){if(r.isComposing){r.isComposing=false;delete r.compositionValue;d.onChange(t)}return s(t)}};var v="input";switch(c){case"select":v=c;d.onChange=function(e){var t=e.target;var r=t.multiple?[].slice.call(t.options).filter((function(e){return e.selected})).map((function(e){return e.value})):t.value;o(r,e)};delete $.type;break;case"textarea":v=c;delete $.type;break;case"checkbox":case"radio":d={checked:a===l,onChange:function e(t){o(t.target.checked?l:f,t)},onFocus:u,onBlur:s};break}return e.createElement(v,Object.assign({},$,d))}}]);return n}(a);Ie.displayName="React.Formutil.EasyField.Native";Ie.defaultProps={value:"",type:"text",checked:true,unchecked:false};var He=["$value","onChange","onFocus","onBlur"];var Me=t((function(){return{}})),Le=Me.Provider,Be=Me.Consumer;var Ye=function(t){R(a,t);var r=U(a);function a(){var e;O(this,a);for(var t=arguments.length,n=new Array(t),i=0;i<t;i++){n[i]=arguments[i]}e=r.call.apply(r,[this].concat(n));e.getGroupContext=function(){return e.props};return e}_(a,[{key:"_render",value:function t(){var r=this.props,a=r.className,o=r.groupNode,u=r.children;var s={GroupOption:Qe,Field:Ge};var l=Y(u)?u(s):n.map(u,(function(e){return i(e,s)}));if(o===null){return l}return e.createElement(o,{className:a},l)}},{key:"render",value:function t(){return e.createElement(Le,{value:this.getGroupContext},this._render())}}]);return a}(a);Ye.displayName="React.Formutil.EasyField.Group";Ye.defaultProps={type:"checkbox",groupNode:"div"};var Qe=function(t){R(n,t);var r=U(n);function n(){O(this,n);return r.apply(this,arguments)}_(n,[{key:"componentDidMount",value:function e(){u("$value"in this.props,"You should pass a $value to <GroupOption />.")}},{key:"render",value:function t(){var r=this.props,n=r.$value,i=r.onChange,a=r.onFocus,o=r.onBlur,u=me(r,He);return e.createElement(Be,null,(function(t){var r=t();var s=r.type,l=r.name;var f=s==="radio"?{checked:r.value===n,onChange:function e(t){r.onChange(n,t);i&&i(t)}}:s==="checkbox"?{checked:r.value.indexOf(n)>-1,onChange:function e(t){r.onChange(t.target.checked?r.value.concat(n):r.value.filter((function(e){return e!==n})),t);i&&i(t)}}:{value:r.value,onChange:function e(t){r.onChange(t);i&&i(t)}};return e.createElement("input",Object.assign({name:l},u,f,{type:s,onFocus:function e(t){r.onFocus(t);a&&a(t)},onBlur:function e(t){r.onBlur(t);o&&o(t)}}))}))}}]);return n}(a);Qe.displayName="React.Formutil.EasyField.Group.Option";var Ge=function(t){R(n,t);var r=U(n);function n(){O(this,n);return r.apply(this,arguments)}_(n,[{key:"componentDidMount",value:function e(){u(false,'The "Field" property in EasyField\'s children-props has been deprecated. Please use "GroupOption" instead.')}},{key:"render",value:function t(){return e.createElement(Qe,this.props)}}]);return n}(a);Ge.displayName="React.Formutil.EasyField.Group.Option.Deprecated";var ze=e.Frament||"div";var qe=function(t){R(n,t);var r=U(n);function n(e){var t;O(this,n);t=r.call(this,e);t.id=0;t.latestValue=t.props.value;t.$formutil=void 0;t.FieldValidators={required:function e(t){return t!==null}};t.$onFormChange=function(e){e.$onValidates((function(e){var r=e.$invalid,n=e.$params;if(r){if(t.props.value.length){t.props.onChange(t.latestValue=[])}}else if(!$(t.props.value,n.list)){t.props.onChange(t.latestValue=n.list)}}))};t.swap=function(e,r,n){return t.$setState((function(t){var n=t.items;var i=[n[e],n[r]];n[r]=i[0];n[e]=i[1];return n}),n)};t.insert=function(){var e,r,n;for(var i=arguments.length,a=new Array(i),o=0;o<i;o++){a[o]=arguments[o]}a.forEach((function(t){if(Y(t)){n=t}else if(typeof t==="number"){e=t}else if(typeof t==="object"){r=t}}));return t.$setState((function(n){var i=n.items;if(B(e)){i.push(t.getId(r))}else{i.splice(e,0,t.getId(r))}return{items:i}}),n)};t.remove=function(){var e,r;for(var n=arguments.length,i=new Array(n),a=0;a<n;a++){i[a]=arguments[a]}i.forEach((function(t){if(Y(t)){r=t}else if(typeof t==="number"){e=t}}));return t.$setState((function(r){var n=r.items;if(B(e)){n.pop()}else{n.splice(e,1)}if(!n.length){n=[t.getId()]}return{items:n}}),r)};t.$setState=function(e,r){return new Promise((function(n){return t.setState(e,(function(){return t.$formutil.$onValidates((function(e){return n(J(r,e))}))}))}))};t.state={items:e.value.length?e.value.map((function(){return t.getId()})):[t.getId()],formKey:0};return t}_(n,[{key:"componentDidUpdate",value:function e(t){var r=this;if(this.props.value!==this.latestValue){this.setState({items:this.props.value.length?this.props.value.map((function(){return r.getId()})):[this.getId()],formKey:this.state.formKey+1});this.latestValue=this.props.value}}},{key:"getId",value:function e(t){return{id:this.id++,values:t}}},{key:"render",value:function t(){var r=this;var n=this.props,i=n.children,a=n.onFocus,o=n.onBlur,u=n.value;var s=this;if(!Y(i)){return null}var l={$insert:this.insert,$remove:this.remove,$swap:this.swap,$push:function e(t,n){return r.insert(t,n)},$pop:function e(t){return r.remove(t)},$shift:function e(t){return r.remove(0,t)},$unshift:function e(t,n){return r.insert(0,t,n)},onFocus:a,onBlur:o};return e.createElement(pe,{key:this.state.formKey,$defaultValues:{list:u},$onFormChange:this.$onFormChange,children:function t(n){r.$formutil=n;return e.createElement(ze,null,r.state.items.map((function(t,a){var o=t.id,u=t.values;return e.createElement(Ae,{key:o,required:true,$defaultValue:u||null,$validators:r.FieldValidators,name:"list[".concat(a,"]"),children:function t(o){return e.createElement(pe,{$defaultValues:o.$value||{},$onFormChange:function e(t){return t.$onValidates((function(e){var t=e.$invalid,r=e.$params;if(!$(o.$viewValue,r)){o.$setState({$viewValue:r,$value:t?null:r})}}))},children:function e(t){return i(m(m({get $length(){return s.state.items.length},$index:a,$isLast:function e(){return a===r.state.items.length-1},$isFirst:function e(){return a===0}},l),t),n)}})}})})))}})}}]);return n}(a);qe.displayName="React.Formutil.EasyField.List";var Ke=["children","component","render"],We=["name","type","defaultValue","valuePropName","changePropName","focusPropName","blurPropName","getValueFromEvent","validMessage","checked","unchecked","__TYPE__","__DIFF__","passUtil","$defaultValue","$defaultState","$onFieldChange","$validators","$asyncValidators","$validateLazy","$memo","$reserveOnUnmount","$parser","$formatter","$ref"];var Je="__TYPE__";var Xe=[["required",function(e,t,r){var n=r.__TYPE__,i=r.checked,a=i===void 0?true:i;return t===false||(n==="checked"?e===a:!Q(e))}],["maxLength",function(e,t){return Q(e)||e.length<=t*1}],["minLength",function(e,t){return Q(e)||e.length>=t*1}],["max",function(e,t){return Q(e)||e*1<=t*1}],["min",function(e,t){return Q(e)||e*1>=t*1}],["pattern",function(e,t){return Q(e)||t.test(e)}],["enum",function(e,t){return Q(e)||t.indexOf(e)>-1}],["checker",function(e,t,r){return t(e,r)}]].reduce((function(e,t){var r=C(t,2),n=r[0],i=r[1];e[n]=function e(t,r,a){var o=a.validMessage,u=o===void 0?{}:o;return i.apply(void 0,arguments)||u[n]||"Error input: ".concat(n)};return e}),{});var Ze="React.Formutil.EasyField";var et={validMessage:{},valuePropName:"value",changePropName:"onChange",focusPropName:"onFocus",blurPropName:"onBlur",$parser:function e(t){return typeof t==="string"?t.trim():t}};function tt(e,t,r){var n;var i=t.valuePropName,a=t.changePropName,o=t.focusPropName,u=t.blurPropName,s=t.getValueFromEvent,l=t.passUtil;var f=function e(t){return t&&t.target?t.target[i]:t};var $=m(m({},r),{},(n={},p(n,i,e.$viewValue),p(n,a,(function(r){var n;for(var i=arguments.length,o=new Array(i>1?i-1:0),u=1;u<i;u++){o[u-1]=arguments[u]}if(((n=o[0])===null||n===void 0?void 0:n.nativeEvent)instanceof Event){o.push(r)}else{o.unshift(r)}var l=t[a];l&&l.apply(void 0,o);var $=s?s.apply(void 0,o):f(r);e.$render($)})),p(n,o,(function(){var r=t[o];r&&r.apply(void 0,arguments);e.$setFocused(true)})),p(n,u,(function(){var r=t[u];r&&r.apply(void 0,arguments);if(e.$untouched){e.$setTouched(true)}e.$setFocused(false)})),n));if(l){$[l===true?"$fieldutil":String(l)]=e}return $}function rt(e){var t=e.children,r=e.component,n=e.render,i=me(e,Ke);var a=i.name,o=i.type,u=i.defaultValue,s=i.valuePropName,l=i.changePropName,f=i.focusPropName,$=i.blurPropName,c=i.getValueFromEvent,d=i.validMessage,v=i.checked,p=i.unchecked,h=i.__TYPE__,g=i.__DIFF__,y=i.passUtil,b=i.$defaultValue,w=i.$defaultState,F=i.$onFieldChange,P=i.$validators,V=i.$asyncValidators,S=i.$validateLazy,k=i.$memo,O=i.$reserveOnUnmount,E=i.$parser,_=i.$formatter,j=i.$ref,A=me(i,We);var R={children:t,component:r,render:n};if(k===true&&B(g)){i.__DIFF__=[t,r,n]}var D=!B(o)||B(t)&&B(r)&&B(n);Object.keys(m(m({},i.$validators=m(m({},Xe),i.$validators)),i.$asyncValidators)).forEach((function(e){if(e in A){if(!D||!ee(e)){delete A[e]}}}));if(D){var x=(o||"").split("."),N=C(x,2),U=N[0],T=U===void 0?"text":U,I=N[1];R.component=T==="group"?Ye:T==="list"?qe:Ie;if(a){A.name=a}if(o){A.type=T}if(t){A.children=t}A.checked=v;A.unchecked=p;switch(T){case"select":case"textarea":if(e.multiple){i[Je]="array"}break;case"group":if(I==="checkbox"){i[Je]="array"}A.type=I;break;case"checkbox":case"radio":i[Je]="checked";break;case"list":i[Je]="array";break}}if(!("$defaultValue"in i)&&"defaultValue"in e){i.$defaultValue=u}if(!("$defaultValue"in i)&&Je in i){var H;switch(i[Je]){case"checked":var M=i.unchecked,L=M===void 0?false:M;H=L;break;case"array":H=[];break;case"object":H={};break;case"number":H=0;break}i.$defaultValue=H}return{fieldProps:i,childProps:A,renderProps:R}}function nt(e,t){var a=t.component,o=t.render,u=t.children;if(a){return r(a,e)}if(Y(o)){return o(e)}if(Y(u)){return u(e)}return n.map(u,(function(t){return i(t,e)}))}var it=function(t){R(n,t);var r=U(n);function n(){var e;O(this,n);for(var t=arguments.length,i=new Array(t),a=0;a<t;a++){i[a]=arguments[a]}e=r.call.apply(r,[this].concat(i));e.renderChildren=function(t){var r=e.parsedProps,n=r.fieldProps,i=r.childProps,a=r.renderProps;return nt(tt(t,n,i),a)};e.parsedProps={};return e}_(n,[{key:"render",value:function t(){var r=this.parsedProps=rt(this.props),n=r.fieldProps;return e.createElement(Ae,Object.assign({},n,{children:this.renderChildren}))}}]);return n}(a);it.displayName=Ze;it.defaultProps=et;function at(t){var r=o((function(r,n){return e.createElement(T.Consumer,null,(function(i){return e.createElement(t,Object.assign({},r,{$formutil:i().$formutil,ref:n}))}))}));r.displayName="React.Formutil.connect."+(t.displayName||t.name||"Anonymous");return f(r,t)}function ot(){if(!e.useState){throw new Error("Hooks api need react@>=16.8, Please upgrade your reactjs.")}var t=e.useContext;var r=t(T);return r()}function ut(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(!e.useState){throw new Error("Hooks api need react@>=16.8, Please upgrade your reactjs.")}var n=e.useState,i=e.useLayoutEffect,a=e.useEffect,o=e.useRef;var s=typeof window==="undefined"?a:i;var l;if(t){if(typeof t==="string"){l=t;r.name=l}else{r=t;l=r.name}}var f=ot();var $=o({}).current;var c=o([]);var d;$.$formContext=f;$.props=r;$.$setState=g;$.shouldRendered=true;var v=n((function(){$.$$FIELD_UUID=Ee();$.$fieldHandler=d=je($);$.$fieldHandler.$$reset();$.$fieldHandler.$validate()})),p=C(v,2),h=p[1];if(!d){d=(f.$$registers||{})[$.$fieldHandler.$name]||$.$fieldHandler}s((function(){var e=$.$state;if($.isMounting){if(!(l in(f.$$registers||{}))){d.$$triggerChange({$newValue:e.$value,$prevValue:$.$prevState.$value})}}$.$prevState=e}),[$.$state.$value]);s((function(){$.isMounting=true;u(!l||f.$formutil,"You should enusre that the useField() with the name '".concat(l,"' must be used underneath a <Form /> component or withForm() HOC, otherwise it's isolated."));u(l,"You should pass a name argument to useField(), otherwise it will be isolated!");return function(){$.isMounting=false;ie(r.$ref,null)}}),[]);s((function(){if(f.$$register){f.$$register(l,$.$fieldHandler)}return function(){if(f.$$unregister){f.$$unregister(l,$.$fieldHandler,!$.isMounting&&r.$reserveOnUnmount)}}}),[l]);s((function(){ie(r.$ref,$.$fieldutil)}));s((function(){if(c.current.length>0){var e=P(c.current);c.current.length=0;while(e.length){e.pop()($.$fieldutil)}}}));function g(e,t){return new Promise((function(r){var n=function e(){return r(J(t,$.$fieldutil))};if($.isMounting){if(l in(f.$$registers||{})){$.shouldRendered=false;f.$$onChange(l,e,n);if(!$.shouldRendered){h({})}}else{d.$$merge(e);d.$$detectChange(e);h({});c.current.push(n)}}else{d.$$merge(e);n()}}))}return $.$fieldutil=m(m(m({$name:l},d.$getState()),d),{},{$$formutil:f.$formutil})}function st(){var e=ot(),t=e.$formutil;return t}function lt(e){e=m(m(m({},et),e),{},{children:null});var t=rt(e),r=t.fieldProps,n=t.childProps;var i=ut(r);return tt(i,r,n)}export{it as EasyField,Ae as Field,pe as Form,at as connect,T as formContext,ut as useField,st as useForm,lt as useHandler,Ue as withField,Fe as withForm};