@matthew.ngo/reform
Version:
A flexible and powerful React form management library with advanced validation, state observation, and multi-group support
1 lines • 54.2 kB
JavaScript
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var r,t=require("react"),n=e(t),o=e(require("lodash/get")),a=require("react-hook-form"),u=require("@hookform/resolvers/yup"),i=require("yup");function s(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function c(e,r,t,n,o,a,u){try{var i=e[a](u),s=i.value}catch(e){return void t(e)}i.done?r(s):Promise.resolve(s).then(n,o)}function l(e){return function(){var r=this,t=arguments;return new Promise((function(n,o){var a=e.apply(r,t);function u(e){c(a,n,o,u,i,"next",e)}function i(e){c(a,n,o,u,i,"throw",e)}u(void 0)}))}}function f(e,r){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(t)return(t=t.call(e)).next.bind(t);if(Array.isArray(e)||(t=function(e,r){if(e){if("string"==typeof e)return s(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?s(e,r):void 0}}(e))||r&&e&&"number"==typeof e.length){t&&(e=t);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function d(){return(d=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)({}).hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(null,arguments)}function p(e,r){if(null==e)return{};var t={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(r.includes(n))continue;t[n]=e[n]}return t}function v(){v=function(){return r};var e,r={},t=Object.prototype,n=t.hasOwnProperty,o=Object.defineProperty||function(e,r,t){e[r]=t.value},a="function"==typeof Symbol?Symbol:{},u=a.iterator||"@@iterator",i=a.asyncIterator||"@@asyncIterator",s=a.toStringTag||"@@toStringTag";function c(e,r,t){return Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[r]}try{c({},"")}catch(e){c=function(e,r,t){return e[r]=t}}function l(e,r,t,n){var a=Object.create((r&&r.prototype instanceof h?r:h).prototype),u=new G(n||[]);return o(a,"_invoke",{value:V(e,t,u)}),a}function f(e,r,t){try{return{type:"normal",arg:e.call(r,t)}}catch(e){return{type:"throw",arg:e}}}r.wrap=l;var d="suspendedStart",p="executing",g="completed",m={};function h(){}function y(){}function b(){}var S={};c(S,u,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(F([])));E&&E!==t&&n.call(E,u)&&(S=E);var w=b.prototype=h.prototype=Object.create(S);function C(e){["next","throw","return"].forEach((function(r){c(e,r,(function(e){return this._invoke(r,e)}))}))}function k(e,r){function t(o,a,u,i){var s=f(e[o],e,a);if("throw"!==s.type){var c=s.arg,l=c.value;return l&&"object"==typeof l&&n.call(l,"__await")?r.resolve(l.__await).then((function(e){t("next",e,u,i)}),(function(e){t("throw",e,u,i)})):r.resolve(l).then((function(e){c.value=e,u(c)}),(function(e){return t("throw",e,u,i)}))}i(s.arg)}var a;o(this,"_invoke",{value:function(e,n){function o(){return new r((function(r,o){t(e,n,r,o)}))}return a=a?a.then(o,o):o()}})}function V(r,t,n){var o=d;return function(a,u){if(o===p)throw Error("Generator is already running");if(o===g){if("throw"===a)throw u;return{value:e,done:!0}}for(n.method=a,n.arg=u;;){var i=n.delegate;if(i){var s=O(i,n);if(s){if(s===m)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===d)throw o=g,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=p;var c=f(r,t,n);if("normal"===c.type){if(o=n.done?g:"suspendedYield",c.arg===m)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(o=g,n.method="throw",n.arg=c.arg)}}}function O(r,t){var n=t.method,o=r.iterator[n];if(o===e)return t.delegate=null,"throw"===n&&r.iterator.return&&(t.method="return",t.arg=e,O(r,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var a=f(o,r.iterator,t.arg);if("throw"===a.type)return t.method="throw",t.arg=a.arg,t.delegate=null,m;var u=a.arg;return u?u.done?(t[r.resultName]=u.value,t.next=r.nextLoc,"return"!==t.method&&(t.method="next",t.arg=e),t.delegate=null,m):u:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,m)}function I(e){var r={tryLoc:e[0]};1 in e&&(r.catchLoc=e[1]),2 in e&&(r.finallyLoc=e[2],r.afterLoc=e[3]),this.tryEntries.push(r)}function R(e){var r=e.completion||{};r.type="normal",delete r.arg,e.completion=r}function G(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(I,this),this.reset(!0)}function F(r){if(r||""===r){var t=r[u];if(t)return t.call(r);if("function"==typeof r.next)return r;if(!isNaN(r.length)){var o=-1,a=function t(){for(;++o<r.length;)if(n.call(r,o))return t.value=r[o],t.done=!1,t;return t.value=e,t.done=!0,t};return a.next=a}}throw new TypeError(typeof r+" is not iterable")}return y.prototype=b,o(w,"constructor",{value:b,configurable:!0}),o(b,"constructor",{value:y,configurable:!0}),y.displayName=c(b,s,"GeneratorFunction"),r.isGeneratorFunction=function(e){var r="function"==typeof e&&e.constructor;return!!r&&(r===y||"GeneratorFunction"===(r.displayName||r.name))},r.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,c(e,s,"GeneratorFunction")),e.prototype=Object.create(w),e},r.awrap=function(e){return{__await:e}},C(k.prototype),c(k.prototype,i,(function(){return this})),r.AsyncIterator=k,r.async=function(e,t,n,o,a){void 0===a&&(a=Promise);var u=new k(l(e,t,n,o),a);return r.isGeneratorFunction(t)?u:u.next().then((function(e){return e.done?e.value:u.next()}))},C(w),c(w,s,"Generator"),c(w,u,(function(){return this})),c(w,"toString",(function(){return"[object Generator]"})),r.keys=function(e){var r=Object(e),t=[];for(var n in r)t.push(n);return t.reverse(),function e(){for(;t.length;){var n=t.pop();if(n in r)return e.value=n,e.done=!1,e}return e.done=!0,e}},r.values=F,G.prototype={constructor:G,reset:function(r){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(R),!r)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(r){if(this.done)throw r;var t=this;function o(n,o){return i.type="throw",i.arg=r,t.next=n,o&&(t.method="next",t.arg=e),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var u=this.tryEntries[a],i=u.completion;if("root"===u.tryLoc)return o("end");if(u.tryLoc<=this.prev){var s=n.call(u,"catchLoc"),c=n.call(u,"finallyLoc");if(s&&c){if(this.prev<u.catchLoc)return o(u.catchLoc,!0);if(this.prev<u.finallyLoc)return o(u.finallyLoc)}else if(s){if(this.prev<u.catchLoc)return o(u.catchLoc,!0)}else{if(!c)throw Error("try statement without catch or finally");if(this.prev<u.finallyLoc)return o(u.finallyLoc)}}}},abrupt:function(e,r){for(var t=this.tryEntries.length-1;t>=0;--t){var o=this.tryEntries[t];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=r&&r<=a.finallyLoc&&(a=null);var u=a?a.completion:{};return u.type=e,u.arg=r,a?(this.method="next",this.next=a.finallyLoc,m):this.complete(u)},complete:function(e,r){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&r&&(this.next=r),m},finish:function(e){for(var r=this.tryEntries.length-1;r>=0;--r){var t=this.tryEntries[r];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),R(t),m}},catch:function(e){for(var r=this.tryEntries.length-1;r>=0;--r){var t=this.tryEntries[r];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var o=n.arg;R(t)}return o}}throw Error("illegal catch attempt")},delegateYield:function(r,t,n){return this.delegate={iterator:F(r),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=e),m}},r}function g(e,r){return(g=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,r){return e.__proto__=r,e})(e,r)}!function(e){e.RESET_FORM="reset_form",e.RETRY_OPERATION="retry_operation",e.IGNORE="ignore",e.CUSTOM="custom"}(r||(r={}));var m=function(e){var t=e.errorInfo,o=e.resetErrorBoundary,a=e.recover;return n.createElement("div",{className:"reform-error-boundary"},n.createElement("h2",null,"Something went wrong in the form"),n.createElement("details",null,n.createElement("summary",null,"Error details"),n.createElement("p",null,t.error.message),n.createElement("pre",null,t.error.stack)),n.createElement("div",{className:"reform-error-actions"},n.createElement("button",{onClick:function(){return a(r.RESET_FORM)},className:"reform-error-reset-btn"},"Reset Form"),n.createElement("button",{onClick:o,className:"reform-error-retry-btn"},"Try Again")))},h=function(e){function t(t){var n;return(n=e.call(this,t)||this).resetErrorBoundary=function(){n.setState({hasError:!1,errorInfo:null}),n.props.onReset&&n.props.onReset()},n.recover=function(e){if("function"==typeof e)return e(n.state.errorInfo),void n.resetErrorBoundary();switch(e){case r.RESET_FORM:case r.RETRY_OPERATION:case r.IGNORE:break;case r.CUSTOM:n.props.onCustomRecovery&&n.state.errorInfo&&n.props.onCustomRecovery(n.state.errorInfo)}n.resetErrorBoundary()},n.state={hasError:!1,errorInfo:null},n}var o,a;a=e,(o=t).prototype=Object.create(a.prototype),o.prototype.constructor=o,g(o,a),t.getDerivedStateFromError=function(e){return{hasError:!0}};var u=t.prototype;return u.componentDidCatch=function(e,r){this.setState({errorInfo:{error:e,errorInfo:r,formGroups:this.props.formGroups,context:{}}}),this.props.onError&&this.props.onError(e,r)},u.render=function(){var e=this.state,r=e.errorInfo,t=this.props,o=t.fallback,a=t.fallbackRender,u=t.FallbackComponent,i=void 0===u?m:u,s=t.children;if(e.hasError&&r){var c={errorInfo:r,resetErrorBoundary:this.resetErrorBoundary,recover:this.recover};return n.isValidElement(o)?o:"function"==typeof a?a(c):n.createElement(i,Object.assign({},c))}return s},t}(n.Component);function y(e,r){var n=t.useRef(e),o=t.useRef(r);return r.some((function(e,r){return!Object.is(e,o.current[r])}))&&(n.current=e,o.current=r),t.useCallback((function(){return n.current.apply(n,arguments)}),[])}h.displayName="FormErrorBoundary";var b={format:"plain",includeLabels:!0,includeRuleNames:!1},S=function(e,r){var n=t.useMemo((function(){return r}),[JSON.stringify(r)]),a=t.useState((function(){return d({},b,n)})),u=a[0],i=a[1],s=t.useRef({}),c=t.useCallback((function(e){return s.current[e]?s.current[e]:s.current["*"]?s.current["*"]:void 0}),[]),l=y((function(r,t,n){var a=e.getGroups()[n]||{id:"",data:{}},i=e.config.labels||{},s="string"==typeof t?o(i,t)||o(i,t):void 0,c=r;return u.includeLabels&&s&&(c=s+": "+c),{content:c,format:u.format,fieldPath:t,fieldLabel:s,meta:{groupId:a.id,groupIndex:n}}}),[u,e.getGroups,e.config.labels]),f=y((function(r,t,n){var o=c(r),a=e.getGroups();return o?o.transform(t,r,{group:a[n]||{id:"",data:{}},groupIndex:n,labels:e.config.labels||{},formatConfig:u}):l(t,r,n)}),[l,u,c,e.getGroups,e.config.labels]),p=y((function(r,t){var n=e.getGroups();return{content:r,format:u.format,meta:{groupId:(n[t]||{id:"",data:{}}).id,groupIndex:t,isGroupError:!0}}}),[u.format,e.getGroups]),v=t.useCallback((function(e){return{content:e,format:u.format,meta:{isFormError:!0}}}),[u.format]),g=t.useCallback((function(e,r){s.current[e]=r}),[]),m=t.useCallback((function(e){i((function(r){return d({},r,e)}))}),[]);return t.useMemo((function(){return{formatFieldError:f,formatGroupError:p,formatFormError:v,registerTransformer:g,updateFormatConfig:m}}),[f,p,v,g,m])},x=function(e){var r=e.error,t=Array.isArray(r)?r[0]:r;return n.createElement("div",{className:"reform-error"},t)},E=function(e){var r=t.useState({defaultRenderer:x,fieldRenderers:[],showAllErrors:!1,contextData:{}}),n=r[0],o=r[1],a=y((function(e){var r=e.field,t=e.renderer,n=e.priority,a=void 0===n?0:n;return o((function(e){var n=[].concat(e.fieldRenderers,[{field:r,renderer:t,priority:a}]);return n.sort((function(e,r){return(r.priority||0)-(e.priority||0)})),d({},e,{fieldRenderers:n})})),function(){o((function(r){return d({},r,{fieldRenderers:r.fieldRenderers.filter((function(r){return r!==e}))})}))}}),[]),u=y((function(e){o((function(r){return d({},r,{defaultRenderer:e})}))}),[]),i=y((function(e,r){return"function"==typeof e?e(r):e instanceof RegExp?e.test(String(r)):e===r}),[]),s=y((function(e){var r=n.fieldRenderers.find((function(r){return i(r.field,e)}));return(null==r?void 0:r.renderer)||n.defaultRenderer}),[n.fieldRenderers,n.defaultRenderer,i]),c=y((function(r,t,o){return t?s(r)({field:r,error:t,value:o>=0&&o<e.length?e[o].data[r]:void 0,groupIndex:o,groups:e,meta:n.contextData}):null}),[e,n.contextData,s]),l=y((function(e){o((function(r){return d({},r,{showAllErrors:e})}))}),[]),f=y((function(e){o((function(r){return d({},r,{contextData:d({},r.contextData,e)})}))}),[]);return t.useMemo((function(){return{registerErrorRenderer:a,setDefaultRenderer:u,renderError:c,getRendererForField:s,setShowAllErrors:l,updateContextData:f,context:n}}),[a,u,c,s,l,f,n])},w=function(e){return{control:e.control}},C=function(e){var r=e.methods,t=e.defaultData,n=e.minGroups;return{resetForm:function(e,t){r.reset(e,t)},resetToCleanState:function(e){void 0===e&&(e=n);var o=Array.from({length:e}).map((function(){return{id:Math.random().toString(36).substr(2,9),data:d({},t)}}));r.reset({groups:o})},resetGroup:function(e){var n=r.getValues().groups;if(e>=0&&e<n.length){var o=[].concat(n);o[e]={id:o[e].id,data:d({},t)},r.reset({groups:o})}}}},k=function(e){return{fieldState:{isDirty:function(r,t){return e.getFieldState("groups."+r+".data."+String(t)).isDirty},isTouched:function(r,t){return e.getFieldState("groups."+r+".data."+String(t)).isTouched},get:function(r,t){return e.getFieldState("groups."+r+".data."+String(t))}},formState:{isDirty:e.formState.isDirty,isValid:e.formState.isValid,touched:Object.keys(e.formState.touchedFields).length>0,isSubmitting:e.formState.isSubmitting,submitCount:e.formState.submitCount,isValidating:e.formState.isValidating},reset:e.reset,trigger:e.trigger,watch:e.watch}},V=function(e){var r=e.methods,n=e.onChange,o=t.useRef(r);t.useEffect((function(){o.current=r}),[r]);var a=t.useRef(n);t.useEffect((function(){a.current=n}),[n]);var u=y((function(e,r){return"groups."+e+".data."+String(r)}),[]),i=y((function(e,r){var t=u(e,r),n=o.current.getValues(t);return Array.isArray(n)?n:[]}),[u]),s=y((function(){a.current&&a.current(o.current.getValues().groups)}),[]),c=y((function(e,r,t,n){var a=u(e,r),c=i(e,r);o.current.setValue(a,[].concat(c,[t]),{shouldValidate:!0,shouldDirty:!0,shouldTouch:!0}),s()}),[u,i,s]),l=y((function(e,r,t){var n=u(e,r),a=i(e,r);if(!(t<0||t>=a.length)){var c=[].concat(a.slice(0,t),a.slice(t+1));o.current.setValue(n,c,{shouldValidate:!0,shouldDirty:!0,shouldTouch:!0}),s()}}),[u,i,s]),f=y((function(e,r,t,n){var a=u(e,r),c=i(e,r);if(!(t<0||t>=c.length)){var l=[].concat(c);l[t]=n,o.current.setValue(a,l,{shouldValidate:!0,shouldDirty:!0,shouldTouch:!0}),s()}}),[u,i,s]),d=y((function(e,r,t,n){var a=u(e,r),c=i(e,r);if(!(t<0||t>=c.length||n<0||n>=c.length)){var l=[].concat(c),f=l.splice(t,1);l.splice(n,0,f[0]),o.current.setValue(a,l,{shouldValidate:!0,shouldDirty:!0,shouldTouch:!0}),s()}}),[u,i,s]),p=y((function(e,r,t,n){var a=u(e,r),c=i(e,r);if(!(t<0||t>=c.length||n<0||n>=c.length)){var l=[].concat(c),f=l[t];l[t]=l[n],l[n]=f,o.current.setValue(a,l,{shouldValidate:!0,shouldDirty:!0,shouldTouch:!0}),s()}}),[u,i,s]),v=y((function(e,r,t,n){var a=u(e,r),c=i(e,r);if(!(t<0||t>c.length)){var l=[].concat(c.slice(0,t),[n],c.slice(t));o.current.setValue(a,l,{shouldValidate:!0,shouldDirty:!0,shouldTouch:!0}),s()}}),[u,i,s]),g=y((function(e,r,t){var n=u(e,r);o.current.setValue(n,t,{shouldValidate:!0,shouldDirty:!0,shouldTouch:!0}),s()}),[u,s]);return t.useMemo((function(){return{getArray:i,append:c,remove:l,update:f,move:d,swap:p,insert:v,replace:g}}),[i,c,l,f,d,p,v,g])},O=function(e){var r,n=e.methods,o=t.useRef(n);t.useEffect((function(){o.current=n}),[n]);var u=a.useWatch({control:n.control}),i=t.useMemo((function(){return u}),[JSON.stringify(null==u||null==(r=u.groups)?void 0:r.map((function(e){return{id:e.id,data:e.data}})))]),s=y((function(e,r,t){var n,a=t||{},u=a.clearWhenHidden,s=void 0===u||u,c=a.validateWhenHidden,l=void 0!==c&&c,f=null==i||null==(n=i.groups)||null==(n=n[e])?void 0:n.data;if(!f)return{shouldShow:!1,shouldValidate:l,render:function(){return null},registerIf:function(r){return{name:"groups."+e+".data."+String(r),onChange:function(){},onBlur:function(){},ref:function(){}}},validateIf:function(){}};var d=r(f);return{shouldShow:d,shouldValidate:d||l,render:function(e){return d?e:null},registerIf:function(r,t){if(d||l)return o.current.register("groups."+e+".data."+String(r),t);if(s){var n="groups."+e+".data."+String(r);o.current.setValue(n,null,{shouldValidate:!1})}return{name:"groups."+e+".data."+String(r),onChange:function(){},onBlur:function(){},ref:function(){}}},validateIf:function(e,r){if(d||l)return r(f[e])}}}),[i]),c=y((function(e,r){var t=(r||{}).validateWhenHidden,n=void 0!==t&&t,o=null==i?void 0:i.groups;if(!o||!Array.isArray(o))return{shouldShow:!1,shouldValidate:n,render:function(){return null}};var a=e(o);return{shouldShow:a,shouldValidate:a||n,render:function(e){return a?e:null}}}),[i]),l=y((function(e,r,t){var n,o=null==i||null==(n=i.groups)||null==(n=n[e])?void 0:n.data;o&&t(r.reduce((function(e,r){return e[r]=o[r],e}),{}))}),[i]),f=y((function(e){if(!i||!i.groups)return{shouldShow:!1,shouldValidate:!1,render:function(){return null}};var r=e({groups:i.groups.map((function(e){return{id:e.id||"",data:e.data||{}}}))});return{shouldShow:r,shouldValidate:r,render:function(e){return r?e:null}}}),[i]);return t.useMemo((function(){return{when:s,whenAny:c,whenCross:f,createDependencyTracker:l}}),[s,c,f,l])},I=function(e){var r=t.useRef(e);r.current!==e&&(r.current=e);var n=t.useState({}),o=n[0],a=n[1];return{createValidationContext:y((function(e,t){var n,a=r.current;return{groups:a,groupIndex:e,formData:(null==(n=a[e])?void 0:n.data)||{},contextData:o,fieldPath:t}}),[o]),createSchemaWithContext:y((function(e){var r=e.clone(),t=function(){var e=l(v().mark((function e(t,n){return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,r.validate(t,{context:n,abortEarly:!1});case 3:return e.abrupt("return",{value:e.sent,error:null});case 7:return e.prev=7,e.t0=e.catch(0),e.abrupt("return",{value:null,error:e.t0});case 10:case"end":return e.stop()}}),e,null,[[0,7]])})));return function(r,t){return e.apply(this,arguments)}}();return r.validateWithContext=t,r}),[]),updateContextData:y((function(e){a((function(r){return d({},r,e)}))}),[]),getContextData:y((function(){return o}),[o]),formatValidationError:y((function(e,t){var n=e;if(n.groupIndex=t,e.path){var a;n.fieldPath=e.path;var u=(null==(a=r.current[t])?void 0:a.data)||{};try{for(var i,s=e.path.split("."),c=u,l=f(s);!(i=l()).done&&void 0!==(c=c[i.value]););n.fieldValue=c}catch(e){}}return n.context=d({},o),n}),[o])}},R=function(e){var r=t.useRef(e);r.current!==e&&(r.current=e);var n=t.useState([]),o=n[0],a=n[1],u=t.useState({}),i=u[0],s=u[1],c=y((function(e){return a((function(r){return[].concat(r,[e])})),function(){a((function(r){return r.filter((function(r){return r!==e}))}))}}),[]),l=y((function(e,t){var n,o=r.current;return{formData:(null==(n=o[t])?void 0:n.data)||{},groupIndex:t,groups:o,fieldPath:e,contextData:i}}),[i]),f=y((function(e,r,t,n,a){var u=o.filter((function(r){return r.field===e&&(r.transformOn===a||"both"===r.transformOn)}));if(0===u.length)return r;var i=l(e,n);return u.reduce((function(e,r){return(0,r.transformer)(e,t,i)}),r)}),[o,l]),p=y((function(e){var r=e.clone(),t=Array.from(new Set(o.map((function(e){return e.field})))),n={};return t.forEach((function(e){var t=String(e);try{if(r.describe().fields[t]){var o=r.fields[t];o&&"function"==typeof o.transform&&(n[t]=o.transform((function(r,t,n){var o,a=(null==n||null==(o=n.options)||null==(o=o.context)?void 0:o.groupIndex)||0;return f(e,r,t,a,"input")})))}}catch(e){console.warn("Could not apply transformer to field "+t+":",e)}})),r}),[o,f]),v=y((function(e){s((function(r){return d({},r,e)}))}),[]),g=y((function(){return o}),[o]);return{registerTransformer:c,transformValue:f,createSchemaWithTransformers:p,getTransformers:g,updateContextData:v}},G=function(e){var r=e.getGroups(),n=I(r),o=R(r),a=t.useMemo((function(){return function(e,r){var t=o.createSchemaWithTransformers(e);return n.createSchemaWithContext(t)}}),[n,o]),u=t.useMemo((function(){return function(){var r=l(v().mark((function r(t,o,u){var i,s,c,l;return v().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(i=n.createValidationContext(o,u),!(s=e.config.groupSchema)&&e.config.groupsSchema&&console.warn("groupsSchema is for array of groups, not for a single group"),s){r.next=5;break}return r.abrupt("return",{value:t,error:null});case 5:return r.prev=5,c=a(s),r.next=9,c.validateWithContext(t,i);case 9:return r.abrupt("return",r.sent);case 13:return r.prev=13,r.t0=r.catch(5),l=n.formatValidationError(r.t0,o),r.abrupt("return",{value:null,error:l});case 17:case"end":return r.stop()}}),r,null,[[5,13]])})));return function(e,t,n){return r.apply(this,arguments)}}()}),[e.config.groupSchema,e.config.groupsSchema,n,a]),i=t.useMemo((function(){return function(e){n.updateContextData(e),o.updateContextData(e)}}),[n,o]);return t.useMemo((function(){return d({},n,o,{createEnhancedSchema:a,validateWithContext:u,updateContextData:i,validateAllGroups:(e=l(v().mark((function e(){var t,n;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=[],n=0;case 2:if(!(n<r.length)){e.next=11;break}return e.t0=t,e.next=6,u(r[n].data,n);case 6:e.t1=e.sent,e.t0.push.call(e.t0,e.t1);case 8:n++,e.next=2;break;case 11:return e.abrupt("return",t);case 12:case"end":return e.stop()}}),e)}))),function(){return e.apply(this,arguments)})});var e}),[n,o,a,u,i,r])},F=function(e,r){var n=t.useRef(e),a=t.useMemo((function(){return{validations:r.validations,getContextData:r.getContextData}}),[JSON.stringify(r.validations),r.getContextData]),u=a.validations,i=a.getContextData,s=t.useState((null==i?void 0:i())||{}),c=s[0],l=s[1],p=y((function(e){var r=n.current.getGroups();return{groups:r,currentGroup:r[e]||{id:"",data:{}},groupIndex:e,contextData:c}}),[c]),v=y((function(e,r){var t=u.find((function(e){return e.field===r}));if(!t)return[];var n=p(e),a=o(n.currentGroup.data,r);return t.rules.filter((function(e){return!e.when||e.when(a,n)}))}),[u,p]),g=y((function(e,r,t){var n=p(e),o=v(e,r);if(0===o.length)return{isValid:!0};for(var a,u=f(o);!(a=u()).done;){var i=a.value,s=i.validate(t,n);if(!1===s||"string"==typeof s)return{isValid:!1,message:"string"==typeof s?s:"function"==typeof i.message?i.message(t,n):i.message||"Validation failed"}}return{isValid:!0}}),[p,v]),m=y((function(e){for(var r,t=p(e).currentGroup,n=f(u.map((function(e){return e.field})).filter((function(e,r,t){return t.indexOf(e)===r})));!(r=n()).done;){var a=r.value,i=o(t.data,a);if(!g(e,a,i).isValid)return!1}return!0}),[p,u,g]),h=y((function(e){l((function(r){return d({},r,e)}))}),[]);return t.useMemo((function(){n.current=e,u.forEach((function(e){}))}),[e,u,g]),t.useMemo((function(){return{validateField:g,validateGroup:m,getFieldRules:v,updateContext:h}}),[g,m,v,h])},D=function(){function e(){}var r=e.prototype;return r.save=function(){var e=l(v().mark((function e(r,t){return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.prev=0,localStorage.setItem(r,JSON.stringify(t)),e.next=8;break;case 4:throw e.prev=4,e.t0=e.catch(0),console.error("Error saving form state to localStorage:",e.t0),e.t0;case 8:case"end":return e.stop()}}),e,null,[[0,4]])})));return function(r,t){return e.apply(this,arguments)}}(),r.load=function(){var e=l(v().mark((function e(r){var t;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,t=localStorage.getItem(r)){e.next=4;break}return e.abrupt("return",null);case 4:return e.abrupt("return",JSON.parse(t));case 7:return e.prev=7,e.t0=e.catch(0),console.error("Error loading form state from localStorage:",e.t0),e.abrupt("return",null);case 11:case"end":return e.stop()}}),e,null,[[0,7]])})));return function(r){return e.apply(this,arguments)}}(),r.remove=function(){var e=l(v().mark((function e(r){return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.prev=0,localStorage.removeItem(r),e.next=8;break;case 4:throw e.prev=4,e.t0=e.catch(0),console.error("Error removing form state from localStorage:",e.t0),e.t0;case 8:case"end":return e.stop()}}),e,null,[[0,4]])})));return function(r){return e.apply(this,arguments)}}(),e}(),M=function(e,r){void 0===r&&(r={});var n=t.useRef(e);t.useEffect((function(){n.current=e}),[e]);var o=t.useMemo((function(){var e,t,n,o,a,u,i;return{enabled:null!=(e=r.enabled)&&e,storageKey:null!=(t=r.storageKey)?t:"reform-form-state",storageProvider:null!=(n=r.storageProvider)?n:new D,autoSave:null!=(o=r.autoSave)&&o,autoSaveInterval:null!=(a=r.autoSaveInterval)?a:5e3,debounceAutoSave:null==(u=r.debounceAutoSave)||u,debounceDelay:null!=(i=r.debounceDelay)?i:500,onBeforeSave:r.onBeforeSave,onAfterSave:r.onAfterSave,onAfterRestore:r.onAfterRestore,metadata:r.metadata}}),[r.enabled,r.storageKey,r.storageProvider,r.autoSave,r.autoSaveInterval,r.debounceAutoSave,r.debounceDelay,r.onBeforeSave,r.onAfterSave,r.onAfterRestore,"function"==typeof r.metadata?r.metadata:JSON.stringify(r.metadata)]),a=o.enabled,u=o.storageKey,i=o.storageProvider,s=o.autoSave,c=o.autoSaveInterval,f=o.debounceAutoSave,d=o.debounceDelay,p=o.onBeforeSave,g=o.onAfterSave,m=o.onAfterRestore,h=o.metadata,b=t.useState(!1),S=b[0],x=b[1],E=t.useState(!1),w=E[0],C=E[1],k=t.useState(null),V=k[0],O=k[1],I=t.useState(s),R=I[0],G=I[1],F=t.useRef(null),M=t.useRef(null),A=t.useRef(!0);t.useEffect((function(){return function(){F.current&&clearInterval(F.current),M.current&&clearTimeout(M.current)}}),[]);var N=y((function(){return"function"==typeof h?h():h||{}}),[h]),T=y(l(v().mark((function e(){var r,t;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a){e.next=2;break}return e.abrupt("return");case 2:if(e.prev=2,x(!0),r=n.current.getGroups(),!p){e.next=11;break}return e.next=8,Promise.resolve(p(r));case 8:if(e.sent){e.next=11;break}return e.abrupt("return");case 11:return t={groups:r,timestamp:Date.now(),version:"1.0",metadata:N()},e.next=14,i.save(u,t);case 14:O(t.timestamp),g&&g(r),e.next=21;break;case 18:e.prev=18,e.t0=e.catch(2),console.error("Error saving form state:",e.t0);case 21:return e.prev=21,x(!1),e.finish(21);case 24:case"end":return e.stop()}}),e,null,[[2,18,21,24]])}))),[a,i,u,N,p,g]),j=y(l(v().mark((function e(){var r;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a){e.next=2;break}return e.abrupt("return");case 2:return e.prev=2,C(!0),e.next=6,i.load(u);case 6:(r=e.sent)&&r.groups&&(n.current.setGroups(r.groups),O(r.timestamp),m&&m(r.groups)),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(2),console.error("Error loading form state:",e.t0);case 13:return e.prev=13,C(!1),e.finish(13);case 16:case"end":return e.stop()}}),e,null,[[2,10,13,16]])}))),[a,i,u,m]),L=y(l(v().mark((function e(){return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a){e.next=2;break}return e.abrupt("return");case 2:return e.prev=2,e.next=5,i.remove(u);case 5:O(null),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(2),console.error("Error clearing form state:",e.t0);case 11:case"end":return e.stop()}}),e,null,[[2,8]])}))),[a,i,u]),P=y((function(){R&&(F.current&&clearInterval(F.current),F.current=setInterval((function(){T()}),c))}),[R,c,T]);return t.useEffect((function(){if(a&&R){if(!A.current)return f?(M.current&&clearTimeout(M.current),M.current=setTimeout((function(){T()}),d)):P(),function(){M.current&&clearTimeout(M.current)};A.current=!1}}),[a,R,f,d,P,T,e.getGroups]),t.useEffect((function(){return a&&R&&!f&&P(),function(){F.current&&clearInterval(F.current)}}),[a,R,f,P]),t.useEffect((function(){a&&j()}),[a,j]),t.useMemo((function(){return{isSaving:S,isLoading:w,lastSaved:V,saveState:T,loadState:j,clearState:L,resetAutoSaveTimer:P,setAutoSave:G,isAutoSaveEnabled:R}}),[S,w,V,T,j,L,P,R])},A=function(e){var r=t.useRef(new Map),n=t.useRef(null),o=function(e,r){return String(e)+(void 0!==r?":"+r:"")},a=t.useCallback((function(e,t,a,u){var i=o(e,t),s=o(e);if(n.current=u,r.current.has(i)){var c=r.current.get(i),l=c.previousValues[t];if(a!==l){var f=c.config,d=f.callback,p=f.debounce;c.timeoutId&&clearTimeout(c.timeoutId),p&&p>0?c.timeoutId=setTimeout((function(){d(a,l,t,u),c.previousValues[t]=a}),p):(d(a,l,t,u),c.previousValues[t]=a)}}if(r.current.has(s)){var v=r.current.get(s),g=v.previousValues[t];if(a!==g){var m=v.config,h=m.callback,y=m.debounce;v.timeoutId&&clearTimeout(v.timeoutId),y&&y>0?v.timeoutId=setTimeout((function(){h(a,g,t,u),v.previousValues[t]=a}),y):(h(a,g,t,u),v.previousValues[t]=a)}}}),[]);t.useEffect((function(){var r=e((function(e,r){var t=r.name;if(null!=e&&e.groups&&"change"===r.type&&t&&t.includes(".data.")){var n=t.match(/groups\.(\d+)\.data\.(.+)/);if(n&&n[1]&&n[2]){var o,u=parseInt(n[1],10),i=n[2].split(".")[0],s=e.groups[u];if(!s||!s.id)return;var c=null==(o=s.data)?void 0:o[i];void 0!==c&&a(i,u,c,e)}}}));return function(){return r.unsubscribe()}}),[e,a]);var u=y((function(e){var t,u=e.field,i=e.groupIndex,s=e.immediate,c=void 0!==s&&s,l=o(u,i);if(r.current.set(l,{config:e,previousValues:{}}),c&&null!=(t=n.current)&&t.groups){var f=n.current;if(void 0!==i){var d,p=null==(d=f.groups[i])||null==(d=d.data)?void 0:d[u];void 0!==p&&a(u,i,p,f)}else f.groups.forEach((function(e,r){var t,n=null==(t=e.data)?void 0:t[u];void 0!==n&&a(u,r,n,f)}))}return function(){var e=r.current.get(l);null!=e&&e.timeoutId&&clearTimeout(e.timeoutId),r.current.delete(l)}}),[a]),i=y((function(e){var r=e.map((function(e){return u(e)}));return function(){r.forEach((function(e){return e()}))}}),[u]),s=y((function(e,r){var t;if(null!=(t=n.current)&&null!=(t=t.groups)&&null!=(t=t[r])&&t.data)return n.current.groups[r].data[e]}),[]),c=y((function(e,r){var t;if(null!=(t=n.current)&&t.groups){var o=n.current;if(void 0!==r){var u,i=null==(u=o.groups[r])||null==(u=u.data)?void 0:u[e];void 0!==i&&a(e,r,i,o)}else o.groups.forEach((function(r,t){var n,u=null==(n=r.data)?void 0:n[e];void 0!==u&&a(e,t,u,o)}))}}),[a]);return{watchField:u,watchFields:i,getFieldValue:s,triggerFieldWatch:c}},N=function(e,r){void 0===r&&(r={});var n=t.useRef(null),o=t.useRef(e),a=t.useRef(new Set),u=function(e,r){return e!==r&&(typeof e!=typeof r||"object"!=typeof e||null===e||null===r||JSON.stringify(e)!==JSON.stringify(r))};return t.useEffect((function(){return r.onChange&&a.current.add(r.onChange),function(){r.onChange&&a.current.delete(r.onChange)}}),[r.onChange]),t.useEffect((function(){var t=d({},e),i=n.current;o.current=t,a.current.forEach((function(e){e(t,i)})),r.onDirtyChange&&(null==i?void 0:i.isDirty)!==t.isDirty&&r.onDirtyChange(t.isDirty),r.onErrorsChange&&u(null==i?void 0:i.errors,t.errors)&&r.onErrorsChange(Object.keys(t.errors).length>0,t.errors),r.onSubmitCountChange&&(null==i?void 0:i.submitCount)!==t.submitCount&&r.onSubmitCountChange(t.submitCount),r.onTouchedChange&&u(null==i?void 0:i.touchedFields,t.touchedFields)&&r.onTouchedChange(Object.keys(t.touchedFields||{}).length>0,t.touchedFields),r.onValidChange&&(null==i?void 0:i.isValid)!==t.isValid&&r.onValidChange(t.isValid),r.onSubmittingChange&&(null==i?void 0:i.isSubmitting)!==t.isSubmitting&&r.onSubmittingChange(t.isSubmitting),n.current=t}),[e,r]),{subscribe:y((function(e){return a.current.add(e),{unsubscribe:function(){a.current.delete(e)}}}),[]),getState:y((function(){return d({},o.current)}),[]),getPreviousState:y((function(){return n.current?d({},n.current):null}),[]),isDirty:y((function(){return o.current.isDirty}),[]),hasErrors:y((function(){return Object.keys(o.current.errors).length>0}),[]),isSubmitting:y((function(){return o.current.isSubmitting}),[]),isValid:y((function(){return o.current.isValid}),[])}},T=["isEnabled","isCompleted"],j=["isEnabled","isCompleted"],L=["isEnabled","isCompleted"],P=function(e,r){var n=t.useMemo((function(){var e,t,n,o,a;return{steps:r.steps,initialStepId:r.initialStepId,validateOnNext:null==(e=r.validateOnNext)||e,allowSkipSteps:null!=(t=r.allowSkipSteps)&&t,markCompletedOnLeave:null==(n=r.markCompletedOnLeave)||n,persistState:null!=(o=r.persistState)&&o,persistStateKey:null!=(a=r.persistStateKey)?a:"reform-wizard-state",onStepCompleted:r.onStepCompleted,onWizardCompleted:r.onWizardCompleted}}),[JSON.stringify(r.steps),r.initialStepId,r.validateOnNext,r.allowSkipSteps,r.markCompletedOnLeave,r.persistState,r.persistStateKey,r.onStepCompleted,r.onWizardCompleted]),o=n.steps,a=n.initialStepId,u=n.validateOnNext,i=n.allowSkipSteps,s=n.markCompletedOnLeave,c=n.persistState,f=n.persistStateKey,g=n.onStepCompleted,m=n.onWizardCompleted,h=t.useRef(e);t.useEffect((function(){h.current=e}),[e]);var b=t.useMemo((function(){var e;if(c)try{var r=localStorage.getItem(f);if(r)return JSON.parse(r)}catch(e){console.error("Error loading wizard state from storage:",e)}return{currentStepId:a||(null==(e=o[0])?void 0:e.id)||"",completedSteps:[],isValidating:!1,isTransitioning:!1,isCompleted:!1}}),[c,f,a,o]),S=t.useState(b.currentStepId),x=S[0],E=S[1],w=t.useState(b.completedSteps),C=w[0],k=w[1],V=t.useState(!1),O=V[0],I=V[1],R=t.useState(!1),G=R[0],F=R[1],D=t.useMemo((function(){return o.every((function(e){return C.includes(e.id)}))}),[o,C]);t.useEffect((function(){c&&localStorage.setItem(f,JSON.stringify({currentStepId:x,completedSteps:C,isValidating:O,isTransitioning:G,isCompleted:D}))}),[x,C,O,G,D,c,f]);var M=t.useMemo((function(){return o.find((function(e){return e.id===x}))||o[0]}),[o,x]),A=y((function(e){var r=h.current.getGroups();return e.groupIndices.map((function(e){return r[e]})).filter(Boolean)}),[]),N=y(function(){var e=l(v().mark((function e(r){var t,n;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=o.find((function(e){return e.id===r}))){e.next=3;break}return e.abrupt("return",!1);case 3:if(I(!0),e.prev=4,n=A(t),!t.validate){e.next=8;break}return e.abrupt("return",t.validate(n));case 8:return e.next=11,Promise.resolve(!0);case 11:return e.abrupt("return",e.sent);case 12:return e.prev=12,I(!1),e.finish(12);case 15:case"end":return e.stop()}}),e,null,[[4,,12,15]])})));return function(r){return e.apply(this,arguments)}}(),[o,A]),P=y((function(e){if(C.includes(e))return!0;var r=o.find((function(r){return r.id===e}));if(!r)return!1;if(r.isCompleted){var t=A(r);return r.isCompleted(t)}return!1}),[C,o,A]),_=y((function(e){if(i)return!0;var r=o.find((function(r){return r.id===e}));if(!r)return!1;if(r.isEnabled){var t=h.current.getGroups();return r.isEnabled(t,C)}var n=o.findIndex((function(r){return r.id===e}));return 0===n||o.slice(0,n).every((function(e){return C.includes(e.id)}))}),[o,i,C]),W=y((function(e){if(!C.includes(e)){var r=[].concat(C,[e]);if(k(r),g&&o.find((function(r){return r.id===e}))){var t=h.current.getGroups();g(e,t)}if(o.every((function(e){return r.includes(e.id)}))&&m){var n=h.current.getGroups();m(n)}}}),[o,C,g,m]),J=y((function(e){C.includes(e)&&k(C.filter((function(r){return r!==e})))}),[C]),B=y(function(){var e=l(v().mark((function e(r){var t,n,a,u;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=o.find((function(e){return e.id===r}))){e.next=3;break}return e.abrupt("return",!1);case 3:if(_(r)){e.next=5;break}return e.abrupt("return",!1);case 5:if(F(!0),e.prev=6,!M||!M.onLeave){e.next=15;break}return n=o.findIndex((function(e){return e.id===r}))>o.findIndex((function(e){return e.id===x}))?"next":"prev",a=h.current.getGroups(),e.next=12,Promise.resolve(M.onLeave(a,n));case 12:if(!1!==e.sent){e.next=15;break}return e.abrupt("return",!1);case 15:if(!s||!x){e.next=20;break}return e.next=18,N(x);case 18:e.sent&&W(x);case 20:if(!t.onEnter){e.next=24;break}return u=h.current.getGroups(),e.next=24,Promise.resolve(t.onEnter(u));case 24:return E(r),e.abrupt("return",!0);case 26:return e.prev=26,F(!1),e.finish(26);case 29:case"end":return e.stop()}}),e,null,[[6,,26,29]])})));return function(r){return e.apply(this,arguments)}}(),[o,M,x,_,s,N,W]),K=y(l(v().mark((function e(){var r;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(-1===(r=o.findIndex((function(e){return e.id===x})))||r>=o.length-1)){e.next=3;break}return e.abrupt("return",!1);case 3:if(!u){e.next=10;break}return e.next=6,N(x);case 6:if(e.sent){e.next=9;break}return e.abrupt("return",!1);case 9:W(x);case 10:return e.abrupt("return",B(o[r+1].id));case 12:case"end":return e.stop()}}),e)}))),[o,x,u,N,W,B]),z=y(l(v().mark((function e(){var r;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!((r=o.findIndex((function(e){return e.id===x})))<=0)){e.next=3;break}return e.abrupt("return",!1);case 3:return e.abrupt("return",B(o[r-1].id));case 5:case"end":return e.stop()}}),e)}))),[o,x,B]),q=y((function(e){var r,t=e||{},n=t.resetFormData,u=void 0!==n&&n,i=t.clearCompletedSteps,s=void 0===i||i;E(a||(null==(r=o[0])?void 0:r.id)||""),s&&k([]),u&&h.current.formMethods.reset()}),[a,o]),U=y((function(){return o.map((function(e){var r=e.isEnabled,t=e.isCompleted;return d({},p(e,T),{isActive:e.id===x,isCompleted:P(e.id),isEnabled:_(e.id),checkEnabled:r,checkCompleted:t})}))}),[o,x,P,_]),Y=y((function(e){var r=o.find((function(r){return r.id===e}));if(r){var t=r.isEnabled,n=r.isCompleted;return d({},p(r,j),{isActive:r.id===x,isCompleted:P(r.id),isEnabled:_(r.id),checkEnabled:t,checkCompleted:n})}}),[o,x,P,_]),H=y((function(){var e=o.find((function(e){return e.id===x}))||o[0],r=e.isEnabled,t=e.isCompleted;return d({},p(e,L),{isActive:!0,isCompleted:P(e.id),isEnabled:_(e.id),checkEnabled:r,checkCompleted:t})}),[o,x,P,_]),$=y((function(){return o.findIndex((function(e){return e.id===x}))<o.length-1}),[o,x]),Q=y((function(){return o.findIndex((function(e){return e.id===x}))>0}),[o,x]),X=y((function(e){return o.findIndex((function(r){return r.id===e}))}),[o]),Z=y((function(){return o.findIndex((function(e){return e.id===x}))}),[o,x]),ee=y(function(){var e=l(v().mark((function e(r){return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(r<0||r>=o.length)){e.next=2;break}return e.abrupt("return",!1);case 2:return e.abrupt("return",B(o[r].id));case 3:case"end":return e.stop()}}),e)})));return function(r){return e.apply(this,arguments)}}(),[o,B]),re=y((function(e){return e===x}),[x]);return t.useMemo((function(){return{steps:o,currentStep:M,currentStepId:x,completedSteps:C,isCompleted:D,isValidating:O,isTransitioning:G,isStepCompleted:P,isStepEnabled:_,isCurrentStep:re,markStepCompleted:W,markStepNotCompleted:J,validateStep:N,goToStep:B,next:K,prev:z,canGoNext:$(),canGoPrev:Q(),resetWizard:q,getSteps:U,getStep:Y,getCurrentStep:H,getStepGroups:A,getStepIndex:X,getCurrentStepIndex:Z,goToStepByIndex:ee,config:n}}),[o,M,x,C,D,O,G,P,_,re,W,J,N,B,K,z,$,Q,q,U,Y,H,A,X,Z,ee,n])};exports.ErrorMessage=function(e){var r=e.error,t=e.className,o=void 0===t?"reform-error":t,a=e.showIcon,u=void 0===a||a;if(!r)return null;if("string"==typeof r)return n.createElement("div",{className:o},u&&n.createElement("span",{className:"reform-error-icon"},"⚠️"),n.createElement("span",null,r));var i=r.content,s=r.meta;switch(r.format){case"jsx":return n.createElement("div",{className:o,"data-error-meta":JSON.stringify(s||{})},i);case"html":return n.createElement("div",{className:o,"data-error-meta":JSON.stringify(s||{}),dangerouslySetInnerHTML:{__html:i}});case"markdown":return n.createElement("div",{className:o,"data-error-meta":JSON.stringify(s||{})},n.createElement("span",null,i));case"plain":default:return n.createElement("div",{className:o,"data-error-meta":JSON.stringify(s||{})},u&&n.createElement("span",{className:"reform-error-icon"},"⚠️"),n.createElement("span",null,i))}},exports.FormErrorBoundary=h,exports.ReformController=function(e){return n.createElement(a.Controller,{name:"groups."+e.index+".data."+e.field,control:e.control,rules:e.rules,defaultValue:e.defaultValue,shouldUnregister:e.shouldUnregister,render:e.render})},exports.createReformSchema=function(e){var r;if("function"==typeof e){var t=e(i);r=i.object().shape(t)}else r=e instanceof i.ObjectSchema?e:i.object().shape(e);var n=i.object({data:r});return i.object({groups:i.array().of(n).required().min(1)})},exports.debounce=function(e,r){var t=null;return function(){for(var n=arguments.length,o=new Array(n),a=0;a<n;a++)o[a]=arguments[a];return new Promise((function(n){t&&clearTimeout(t),t=setTimeout(l(v().mark((function r(){return v().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.apply(void 0,o);case 2:n(r.sent);case 4:case"end":return r.stop()}}),r)}))),r)}))}},exports.useConditionalFields=O,exports.useDynamicValidation=F,exports.useErrorFormatter=S,exports.useErrorRenderer=E,exports.useFieldArrayHelpers=V,exports.useFieldWatcher=A,exports.useFormController=w,exports.useFormErrorBoundary=function(e,r){return n.useMemo((function(){var t=function(t){var o=t.children;return n.createElement(h,Object.assign({formGroups:e},r),o)};return t.displayName="FormErrorBoundaryWrapper",t}),[e,r])},exports.useFormPersistence=M,exports.useFormReset=C,exports.useFormState=k,exports.useFormStateObserver=N,exports.useFormWizard=P,exports.useReform=function(e){var r=t.useMemo((function(){var r=e.minGroups,t=e.maxGroups,n=e.defaultData,o=e.validationMode,a=e.reValidateMode,u=e.criteriaMode,i=e.yupConfig;return{value:e.value,onChange:e.onChange,minGroups:void 0===r?1:r,maxGroups:void 0===t?Infinity:t,defaultData:void 0===n?{}:n,schema:e.schema,validationMode:void 0===o?"onChange":o,reValidateMode:void 0===a?"onChange":a,criteriaMode:void 0===u?"firstError":u,labels:e.labels,yupConfig:void 0===i?{}:i}}),[e.value,e.onChange,e.minGroups,e.maxGroups,JSON.stringify(e.defaultData),e.schema,e.validationMode,e.reValidateMode,e.criteriaMode,JSON.stringify(e.labels),JSON.stringify(e.yupConfig)]),n=r.value,o=r.onChange,i=r.minGroups,s=r.maxGroups,c=r.defaultData,p=r.schema,g=r.validationMode,m=r.reValidateMode,h=r.criteriaMode,b=t.useMemo((function(){return{groups:null!=n?n:Array(i).fill(null).map((function(){return{id:Math.random().toString(36).substr(2,9),data:c}}))}}),[n,i,c]),S=a.useForm({defaultValues:b,mode:g,reValidateMode:m,criteriaMode:h,resolver:p?u.yupResolver(p):void 0,shouldUnregister:!1,delayError:0}),x=function(e){var r=e.methods,n=e.minGroups,o=e.maxGroups,u=e.defaultData,i=e.onChange,s=t.useMemo((function(){return u}),[JSON.stringify(u)]),c=a.useFieldArray({control:r.control,name:"groups"}),p=c.fields,g=c.append,m=c.remove,h=c.move,b=c.update,S=c.replace,x=t.useCallback((function(e){return void 0===e&&(e=s),{id:Math.random().toString(36).substring(2,9),data:d({},e)}}),[s]),E=y(l(v().mark((function e(){var t;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(p.length>=o)){e.next=2;break}return e.abrupt("return",{isValid:!1,message:"Maximum "+o+" groups allowed"});case 2:return g(x()),e.next=5,r.trigger();case 5:return t=e.sent,null==i||i(r.getValues().groups),e.abrupt("return",{isValid:t});case 8:case"end":return e.stop()}}),e)}))),[p.length,o,g,x,r.trigger,r.getValues,i]),w=y(function(){var e=l(v().mark((function e(t){var o;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(p.length<=n)){e.next=2;break}return e.abrupt("return",{isValid:!1,message:"Minimum "+n+" groups required"});case 2:return m(t),e.next=5,r.trigger();case 5:return o=e.sent,null==i||i(r.getValues().groups),e.abrupt("return",{isValid:o});case 8:case"end":return e.stop()}}),e)})));return function(r){return e.apply(this,arguments)}}(),[p.length,n,m,r.trigger,r.getValues,i]),C=y(function(){var e=l(v().mark((function e(t,n){var o;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t<0||t>=p.length||n<0||n>=p.length)){e.next=2;break}return e.abrupt("return",{isValid:!1,message:"Invalid group indices"});case 2:return h(t,n),e.next=5,r.trigger();case 5:return o=e.sent,null==i||i(r.getValues().groups),e.abrupt("return",{isValid:o});case 8:case"end":return e.stop()}}),e)})));return function(r,t){return e.apply(this,arguments)}}(),[p.length,h,r.trigger,r.getValues,i]),k=y(function(){var e=l(v().mark((function e(t){var n,a;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(p.length>=o)){e.next=2;break}return e.abrupt("return",{isValid:!1,message:"Maximum "+o+" groups allowed"});case 2:if(n=r.getValues("groups."+t)){e.next=5;break}return e.abrupt("return",{isValid:!1,message:"Group not found"});case 5:return g(x(n.data)),e.next=8,r.trigger();case 8:return a=e.sent,null==i||i(r.getValues().groups),e.abrupt("return",{isValid:a});case 11:case"end":return e.stop()}}),e)})));return function(r){return e.apply(this,arguments)}}(),[p.length,o,r.getValues,g,x,r.trigger,i]),V=y(function(){var e=l(v().mark((function e(t,n){var o,a,u,s,c,l,g;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!((o=t.filter((function(e){return e<0||e>=p.length}))).length>0)){e.next=3;break}return e.abrupt("return",{isValid:!1,message:"Invalid indices: "+o.join(", ")});case 3:for(a=f(t);!(u=a()).done;)(c=r.getValues("groups."+(s=u.value)))&&(l=d({},c.data,n(c.data)),b(s,d({},c,{data:l})));return e.next=6,r.trigger();case 6:return g=e.sent,null==i||i(r.getValues().groups),e.abrupt("return",{isValid:g});case 9:case"end":return e.stop()}}),e)})));return function(r,t){return e.apply(this,arguments)}}(),[p.length,r.getValues,r.trigger,b,i]),O=y(function(){var e=l(v().mark((function e(t){var o,a,u,s,c;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=[].concat(t).sort((function(e,r){return r-e})),!(p.length-o.length<n)){e.next=3;break}return e.abrupt("return",{isValid:!1,message:"Cannot remove "+o.length+" groups. Minimum "+n+" groups required."});case 3:if(!((a=o.filter((function(e){return e<0||e>=p.length}))).length>0)){e.next=6;break}return e.abrupt("return",{isValid:!1,message:"Invalid indices: "+a.join(", ")});case 6:for(u=f(o);!(s=u()).done;)m(s.value);return e.next=9,r.trigger();case 9:return c=e.sent,null==i||i(r.getValues().groups),e.abrupt("return",{isValid:c});case 12:case"end":return e.stop()}}),e)})));return function(r){return e.apply(this,arguments)}}(),[p.length,n,m,r.trigger,r.getValues,i]),I=t.useCallback((function(){return r.getValues().groups||[]}),[r]),R=t.useCallback(function(){var e=l(v().mark((function e(t){var a;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t.length<n)){e.next=2;break}return e.abrupt("return",{isValid:!1,message:"Minimum "+n+" groups required"});case 2:if(!(t.length>o)){e.next=4;break}return e.abrupt("return",{isValid:!1,message:"Maximum "+o+" groups allowed"});case 4:return S(t),e.next=7,r.trigger();case 7:return a=e.sent,null==i||i(r.getValues().groups),e.abrupt("return",{isValid:a});case 10:case"end":return e.stop()}}),e)})));return function(r){return e.apply(this,arguments)}}(),[r,n,o,S,i]);return t.useMemo((function(){return{groups:p,canAddGroup:p.length<o,canRemoveGroup:p.length>n,register:function(e,t,n){return r.register(function(e,r){return"groups."+e+".data."+r}(e,t),n)},getGroups:I,setGroups:R,addGroup:E,removeGroup:w,moveGroup:C,duplicateGroup:k,batchUpdate:V,batchRemove:O}}),[p,o,n,r.register,I,R,E,w,C,k,V,O])}({methods:S,minGroups:i,maxGroups:s,defaultData:c,onChange:o}),E=k(S),I=w(S),R=V({methods:S,onChange:o}),F=O({methods:S}),D=C({methods:S,defaultData:c,minGroups:i}),M=t.useMemo((function(){return{getGroups:function(){return S.getValues().groups},getGroupData:function(e){var r;return null==(r=S.getValues().groups[e])?void 0:r.data},config:r}}),[S,r]),A=G(M);return t.useMemo((function(){return d({formMethods:S},x,E,I,R,F,D,{config:r,yup:A})}),[S,x,E,I,R,F,D,r,A])},exports.useReformDynamicValidation=function(e,r){var n=t.useMemo((function(){return{validations:r.validations,getContextData:r.getContextData}}),[JSON.stringify(r.validations),r.getContextData]);return F(e,n)},exports.useReformErrorFormatter=function(e,r){return S(e,r)},exports.useReformErrorRenderer=function(e){var r=e.getGroups(),n=E(r);return t.useMemo((function(){return d({},n,{renderFieldError:function(r,t){var o=e.getFieldError(r,t);return n.renderError(t,o,r)},renderGroupErrors:function(r){var t=e.getGroupErrors(r);return Object.entries(t).map((function(e){return n.renderError(e[0],e[1],r)}))}})}),[n,e])},exports.useReformErrors=function(e){var r=e.formMethods,n=r.formState,o=r.clearErrors;t.useEffect((function(){Object.keys(n.errors||{}).length>0&&console.log("Current form errors:",n.errors)}),[n.errors]);var a,u,i,s=function(e){var r;if(e)return Array.isArray(e)?null==(r=e[0])?void 0:r.message:e.message},c=function(e){return n.errors[e]},l=function(e,r){var t,o=c(e+"."+r);if(o)return s(o);var a=null==(t=n.errors)||null==(t=t.groups)||null==(t=t[e])?void 0:t.data;return a?s(a[r]):void 0},f=function(e){var r,t;for(var o in n.errors||{})if(o.startsWith(e+"."))return!0;return!(null==(r=n.errors)||null==(r=r.groups)||null==(r=r[e])||!r.data)&&Object.keys((null==(t=n.errors)||null==(t=t.groups)||null==(t=t[e])?void 0:t.data)||{}).length>0},d=function(r,t){if(f(r))return!1;var n=e.getGroups()[r];return!!n&&t.every((function(e){var r=n.data[e];return Array.isArray(r)?r.length>0:null!=r&&("string"!=typeof r||""!==r.trim())}))},p=function(r){return e.getGroups().every((function(e,t){return d(t,r)}))};return{errors:(u={},i=n.errors,Object.keys(n.errors||{}).forEach((function(e){/^\d+\.\w+$/.test(e)&&(u[e]=i[e])})),null!=(a=n.errors)&&a.groups&&Object.keys(n.errors.g