UNPKG

@mobx-ecosystem/mobx-form

Version:

provides the ability to use forms with validation in MobX stores

2 lines (1 loc) 21.6 kB
import{makeAutoObservable as e}from"mobx";import i from"mitt";const t=e=>null!==e&&"object"==typeof e,l=e=>"boolean"==typeof e;function r(e,i){if(e===i)return!0;if(null===e||null===i||"object"!=typeof e||"object"!=typeof i)return!1;if(e instanceof Date&&i instanceof Date)return e.getTime()===i.getTime();if(e instanceof RegExp&&i instanceof RegExp)return e.toString()===i.toString();if(e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(const[t,l]of e)if(!i.has(t)||!r(l,i.get(t)))return!1;return!0}if(e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(const t of e)if(!i.has(t))return!1;return!0}if(Array.isArray(e)&&Array.isArray(i)){if(e.length!==i.length)return!1;for(let t=0;t<e.length;t++)if(!r(e[t],i[t]))return!1;return!0}const t=Object.keys(e),l=Object.keys(i);if(t.length!==l.length)return!1;for(const l of t)if(!Object.hasOwnProperty.call(i,l)||!r(e[l],i[l]))return!1;return!0}function a(e,i){var t={};for(var l in e)Object.prototype.hasOwnProperty.call(e,l)&&i.indexOf(l)<0&&(t[l]=e[l]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(l=Object.getOwnPropertySymbols(e);r<l.length;r++)i.indexOf(l[r])<0&&Object.prototype.propertyIsEnumerable.call(e,l[r])&&(t[l[r]]=e[l[r]])}return t}function s(e,i,t,l){return new(t||(t=Promise))((function(r,a){function s(e){try{o(l.next(e))}catch(e){a(e)}}function n(e){try{o(l.throw(e))}catch(e){a(e)}}function o(e){var i;e.done?r(e.value):(i=e.value,i instanceof t?i:new t((function(e){e(i)}))).then(s,n)}o((l=l.apply(e,i||[])).next())}))}let n,o;const u=e=>{n=e.validation.validate,o=e.validation.preSubmitValidationError},d=()=>{if(!n||!o)throw new Error("You must define configureForm to configure mobx-form")};class b{constructor(i){Object.defineProperty(this,"_touched",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_disabled",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_error",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_initValue",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_value",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_validate",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"setTouched",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this._touched=e}}),Object.defineProperty(this,"add",{enumerable:!0,configurable:!0,writable:!0,value:e=>{var i;this.value.push(e),this.setTouched(!0),null===(i=this.validate)||void 0===i||i.call(this,"only-touched")}}),Object.defineProperty(this,"removeByIndex",{enumerable:!0,configurable:!0,writable:!0,value:e=>{var i;this.value.splice(e,1),this.setTouched(!0),null===(i=this.validate)||void 0===i||i.call(this,"only-touched")}}),Object.defineProperty(this,"reset",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this._value=this.initValue.slice(0),this._value.forEach((e=>e.formService.reset())),this.setTouched(!1)}}),Object.defineProperty(this,"clear",{enumerable:!0,configurable:!0,writable:!0,value:({validate:e=!0})=>{this._value=this.initValue.slice(0),this._value.forEach((i=>i.formService.clear({validate:e}))),this.setTouched(!1)}}),Object.defineProperty(this,"setAsInit",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.initValue=this.value,this._value.forEach((e=>e.formService.setAsInit())),this.setTouched(!1)}}),Object.defineProperty(this,"getValues",{enumerable:!0,configurable:!0,writable:!0,value:()=>this.value.map((e=>e.formService.getValues()))}),Object.defineProperty(this,"touch",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.value.forEach((e=>e.formService.touch())),this.setTouched(!0)}}),Object.defineProperty(this,"validateFields",{enumerable:!0,configurable:!0,writable:!0,value:(e="everything")=>Promise.all(this.value.map((i=>i.formService.validate(e))))}),Object.defineProperty(this,"validate",{enumerable:!0,configurable:!0,writable:!0,value:(e="everything")=>s(this,void 0,void 0,(function*(){var i;return Promise.all([null===(i=this._validate)||void 0===i?void 0:i.call(this),this.validateFields(e)])}))}),Object.defineProperty(this,"disable",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.disabled=!0}}),Object.defineProperty(this,"enable",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.disabled=!1}}),Object.defineProperty(this,"setDisabledFn",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.value.forEach((i=>i.formService.setDisabledFn(e)))}}),Object.defineProperty(this,"setInitValue",{enumerable:!0,configurable:!0,writable:!0,value:(e,{validate:i}={})=>{var t;this._initValue=e,this._value=e.slice(0),this.setTouched(!1),i&&(null===(t=this.validate)||void 0===t||t.call(this,"only-touched"))}}),e(this),this.initValue=i||[]}get initValue(){return this._initValue}set initValue(e){var i;this._initValue=e,this._value=e.slice(0),this.setTouched(!1),null===(i=this.validate)||void 0===i||i.call(this,"only-touched")}get value(){return this._value}set value(e){this._value=e,this.setTouched(!0)}get disabled(){return this._disabled}set disabled(e){this._disabled=e,e?this.value.forEach((e=>e.formService.disable())):this.value.forEach((e=>e.formService.enable()))}get error(){return this._error}set error(e){this._error=e}get isValid(){return!this._error&&this.value.every((e=>e.formService.isValid))}get isTouched(){return this._touched||this.value.some((e=>e.formService.isTouched))}get isInit(){return!this.isTouched}get hasItems(){return Boolean(this.value.length)}}class h{constructor(i,t){Object.defineProperty(this,"field",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"inputField",{enumerable:!0,configurable:!0,writable:!0,value:new y("")}),Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"setValue",{enumerable:!0,configurable:!0,writable:!0,value:(e,{inputValue:i="",withNotification:t=!0,withBlur:l=!0})=>{var r,a,s,n;if(t?(this.field.value=e,this.inputField.value=i):(this.field.value=e,this.inputField.value=i,null===(a=(r=this.field).validate)||void 0===a||a.call(r),null===(n=(s=this.inputField).validate)||void 0===n||n.call(s)),l)return this.field.isBlurred=!0}}),Object.defineProperty(this,"reset",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.field.reset()}}),Object.defineProperty(this,"clear",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.field.clear()}}),Object.defineProperty(this,"setAsInit",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.field.setAsInit()}}),Object.defineProperty(this,"onInputChange",{enumerable:!0,configurable:!0,writable:!0,value:(e,i)=>{var t,l,r,a;if("abort"===(null===(l=null===(t=this.options)||void 0===t?void 0:t.onInputBeforeChange)||void 0===l?void 0:l.call(t,i)))return;const s=this.inputField.value;this.inputField.value=i,s!==i&&(null===(a=null===(r=this.options)||void 0===r?void 0:r.onInputChange)||void 0===a||a.call(r,i))}}),Object.defineProperty(this,"onFocus",{enumerable:!0,configurable:!0,writable:!0,value:()=>{var e,i;null===(i=null===(e=this.options)||void 0===e?void 0:e.onFocus)||void 0===i||i.call(e)}}),Object.defineProperty(this,"touch",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.field.touch()}}),Object.defineProperty(this,"disable",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.field.disabled=!0}}),Object.defineProperty(this,"setDisabledFn",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.field.setDisabledFn(e)}}),Object.defineProperty(this,"enable",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.field.disabled=!1}}),Object.defineProperty(this,"setInitValue",{enumerable:!0,configurable:!0,writable:!0,value:(e,{validate:i}={})=>{var t;this.field.setInitValue(e,{validate:i}),i&&(null===(t=this.validate)||void 0===t||t.call(this))}}),Object.defineProperty(this,"dispose",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.field.dispose()}}),e(this),this.options=t,this.field=new y(i,{onChange:null==t?void 0:t.onChange,beforeOnChange:null==t?void 0:t.beforeOnChange,hasEvents:null==t?void 0:t.hasEvents,disabledFn:null==t?void 0:t.disabledFn})}get events(){return this.field.events}get validate(){return this.field.validate}set validate(e){this.field.validate=e}get value(){return this.field.value}set value(e){this.field.value=e}get error(){return this.field.error}set error(e){this.field.error=e}get disabled(){return this.field.disabled}set disabled(e){this.field.disabled=e}get isValid(){return this.field.isValid}get isInit(){return this.field.isInit}set initValue(e){this.field.initValue=e}get isTouched(){return this.field.isTouched}get initValue(){return this.field.initValue}get props(){var e,i,t,l,r,a,s,n,o,u;const d=null===(i=null===(e=this.options)||void 0===e?void 0:e.optionsFn)||void 0===i?void 0:i.call(e),b=null===(l=null===(t=this.options)||void 0===t?void 0:t.loadingFn)||void 0===l?void 0:l.call(t),h=null===(r=this.options)||void 0===r?void 0:r.onInputBeforeChange,c=null===(a=this.options)||void 0===a?void 0:a.onInputChange;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},this.field.props),{onFocus:this.onFocus}),(void 0!==h||void 0!==c)&&{onSearchChange:this.onInputChange||void 0}),void 0!==b&&{loading:(null===(n=null===(s=this.options)||void 0===s?void 0:s.loadingFn)||void 0===n?void 0:n.call(s))||!1}),void 0!==d&&{options:(null===(u=null===(o=this.options)||void 0===o?void 0:o.optionsFn)||void 0===u?void 0:u.call(o))||[]})}}class c{constructor(i,t){Object.defineProperty(this,"fields",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"validationSchema",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onSubmit",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onValidate",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onClear",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onReset",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"setOnSubmit",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.onSubmit=e}}),Object.defineProperty(this,"setOnValidate",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.onValidate=e}}),Object.defineProperty(this,"setOnClear",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.onClear=e}}),Object.defineProperty(this,"setOnReset",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.onReset=e}}),Object.defineProperty(this,"submit",{enumerable:!0,configurable:!0,writable:!0,value:()=>s(this,void 0,void 0,(function*(){var e;if(yield this.validate("everything"),this.canBeSubmitted)return null===(e=this.onSubmit)||void 0===e?void 0:e.call(this);null==o||o()}))}),Object.defineProperty(this,"validate",{enumerable:!0,configurable:!0,writable:!0,value:(e="only-touched")=>s(this,void 0,void 0,(function*(){var i;const t=this.getValues();if(yield this.bypassFields(this.fields,(i=>s(this,void 0,void 0,(function*(){var t;return f(i)?yield i.validate(e):i instanceof b?yield null===(t=i.validateFields)||void 0===t?void 0:t.call(i,e):null})))),t){const i=yield null==n?void 0:n(t,this.validationSchema);i&&0!=Object.keys(i||[]).length?this.setValidationError(i,e):this.resetValidationErrors()}null===(i=this.onValidate)||void 0===i||i.call(this,e)}))}),Object.defineProperty(this,"setValidationSchema",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.validationSchema=e,this.setValidationToFields()}}),Object.defineProperty(this,"getValues",{enumerable:!0,configurable:!0,writable:!0,value:()=>{const e={};for(const i of this.keys){const t=this.fields[i];v(t)?e[i]=t.formService.getValues():e[i]=this.getValue(t)}return e}}),Object.defineProperty(this,"getValue",{enumerable:!0,configurable:!0,writable:!0,value:e=>{if(e instanceof y||e instanceof b||e instanceof h)return null==e?void 0:e.value;if("object"==typeof e){const i={};for(const t of Object.keys(e))i[t]=this.getValue(null==e?void 0:e[t]);return i}return e}}),Object.defineProperty(this,"setFieldsByThis",{enumerable:!0,configurable:!0,writable:!0,value:e=>{const i={};Object.keys(e).forEach((t=>{(e[t]&&e[t]instanceof y||e[t]instanceof b||e[t]instanceof h)&&(i[t]=e[t])})),this.fields=i,this.setValidationToFields()}}),Object.defineProperty(this,"bypassFields",{enumerable:!0,configurable:!0,writable:!0,value:(e,i,t)=>e instanceof y||e instanceof b||e instanceof h?i(e,t):v(e)?i(e.formService,t):"object"==typeof e?Promise.all(Object.keys(e||{}).map((l=>this.bypassFields(null==e?void 0:e[l],i,null==t?void 0:t[l])))):void 0}),Object.defineProperty(this,"setValidationToFields",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.bypassFields(this.fields,(e=>{f(e)||(e instanceof y||e instanceof h?e.validate=this.validate:e._validate=this.validate)}))}}),Object.defineProperty(this,"getFieldsByKeys",{enumerable:!0,configurable:!0,writable:!0,value:({keyType:e="include",keys:i=[]})=>{let t=[];t="include"===e?i:Object.keys(this.fields).filter((e=>!i.includes(e)));let l={};return t.forEach((e=>{var i;return l[e]=null===(i=this.fields)||void 0===i?void 0:i[e]})),l}}),Object.defineProperty(this,"setInitValues",{enumerable:!0,configurable:!0,writable:!0,value:(e,{validate:i}={})=>{const t=this.getFieldsByKeys({keyType:"include",keys:Object.keys(e)});this.bypassFields(t,((e,t)=>{f(e)?e.setInitValues(t,{validate:i}):e.setInitValue(t,{validate:i})}),e),i&&this.validate()}}),Object.defineProperty(this,"setValues",{enumerable:!0,configurable:!0,writable:!0,value:(e,{validate:i}={})=>{const t=this.getFieldsByKeys({keyType:"include",keys:Object.keys(e)});this.bypassFields(t,((e,i)=>{f(e)?e.setValues(i):e.value=i}),e),i&&this.validate("everything")}}),Object.defineProperty(this,"resetValidationErrors",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.bypassFields(this.fields,(e=>{f(e)||(e.error=void 0)}))}}),Object.defineProperty(this,"resetErrors",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.bypassFields(this.fields,(e=>{f(e)?e.resetErrors():e.error=void 0}))}}),Object.defineProperty(this,"setValidationError",{enumerable:!0,configurable:!0,writable:!0,value:(e,i="only-touched")=>{this.bypassFields(this.fields,((e,t)=>{(e.isTouched||"everything"===i)&&(f(e)||(e.error=t))}),e)}}),Object.defineProperty(this,"setAsInit",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.bypassFields(this.fields,(e=>{e.setAsInit()}))}}),Object.defineProperty(this,"reset",{enumerable:!0,configurable:!0,writable:!0,value:e=>{var i;const t=e||{},{to:l,validate:r=!0}=t,s=a(t,["to","validate"]),n=(null==s?void 0:s.keys)?this.getFieldsByKeys(s):this.fields;this.bypassFields(n,(e=>{e.reset({to:l})})),null===(i=this.onReset)||void 0===i||i.call(this,{to:l}),r&&this.validate()}}),Object.defineProperty(this,"clear",{enumerable:!0,configurable:!0,writable:!0,value:e=>{var i;const t=e||{},{validate:l=!0}=t,r=a(t,["validate"]),s=(null==r?void 0:r.keys)?this.getFieldsByKeys(r):this.fields;this.bypassFields(s,(e=>{e.clear({validate:l})})),null===(i=this.onClear)||void 0===i||i.call(this),l&&this.validate()}}),Object.defineProperty(this,"disable",{enumerable:!0,configurable:!0,writable:!0,value:e=>{const i=a(e||{},[]),t=(null==i?void 0:i.keys)?this.getFieldsByKeys(i):this.fields;this.bypassFields(t,(e=>e.disable()))}}),Object.defineProperty(this,"enable",{enumerable:!0,configurable:!0,writable:!0,value:e=>{const i=a(e||{},[]),t=(null==i?void 0:i.keys)?this.getFieldsByKeys(i):this.fields;this.bypassFields(t,(e=>e.enable()))}}),Object.defineProperty(this,"touch",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.bypassFields(this.fields,(e=>e.touch()))}}),Object.defineProperty(this,"setDisabledFn",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.bypassFields(this.fields,(i=>{f(i),i.setDisabledFn(e)}))}}),d(),e(this),this.fields=i,this.validationSchema=t,this.setValidationToFields()}get keys(){return Object.keys(this.fields)}get isValid(){let e=!0;return this.bypassFields(this.fields,(i=>{i.isValid||(e=!1)})),e}get isTouched(){let e=!1;return this.bypassFields(this.fields,(i=>{i.isTouched&&(e=!0)})),e}get canBeSubmitted(){return this.isTouched&&this.isValid}get disabled(){let e=!0;return this.bypassFields(this.fields,(i=>{i.disabled||(e=!1)})),e}setErrors(e,i="only-touched"){this.bypassFields(this.fields,((e,t)=>{(e.isTouched||"everything"===i)&&(f(e)?t&&e.setErrors(t,i):e.error=t)}),e)}}const v=e=>e&&"object"==typeof e&&"formService"in e,f=e=>e&&e instanceof c;class y{constructor(r,a){var s,n;Object.defineProperty(this,"events",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_emptyValueType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"validate",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_serviceType",{enumerable:!0,configurable:!0,writable:!0,value:"field-service"}),Object.defineProperty(this,"_initValue",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_value",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_error",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_disabled",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_isBlurred",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"emit",{enumerable:!0,configurable:!0,writable:!0,value:(e,i)=>{var t;(null===(t=this.options)||void 0===t?void 0:t.hasEvents)&&this.events&&this.events.emit(e,i)}}),Object.defineProperty(this,"setDisabledFn",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.options.disabledFn=e}}),Object.defineProperty(this,"setOptions",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.options=e}}),Object.defineProperty(this,"setInitValue",{enumerable:!0,configurable:!0,writable:!0,value:(e,{validate:i}={})=>{var t;this.initValue=e,i&&(null===(t=this.validate)||void 0===t||t.call(this))}}),Object.defineProperty(this,"setValue",{enumerable:!0,configurable:!0,writable:!0,value:(e,{validate:i}={})=>{var t;this.value=e,i&&(null===(t=this.validate)||void 0===t||t.call(this))}}),Object.defineProperty(this,"onChange",{enumerable:!0,configurable:!0,writable:!0,value:(e,i)=>{var t;this.value=i,null===(t=this.validate)||void 0===t||t.call(this)}}),Object.defineProperty(this,"onBlur",{enumerable:!0,configurable:!0,writable:!0,value:e=>{var i;this.isBlurred=!0,null===(i=this.validate)||void 0===i||i.call(this)}}),Object.defineProperty(this,"reset",{enumerable:!0,configurable:!0,writable:!0,value:e=>{const{to:i="initValue"}=e||{};this._value="initValue"===i?this.initValue:this._emptyValueType,this.isBlurred=!1}}),Object.defineProperty(this,"clear",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.value=this._emptyValueType,this.isBlurred=!0}}),Object.defineProperty(this,"setAsInit",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.initValue=this.value,this.isBlurred=!1}}),Object.defineProperty(this,"touch",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.isBlurred=!0}}),Object.defineProperty(this,"disable",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.disabled=!0}}),Object.defineProperty(this,"enable",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.disabled=!1}}),Object.defineProperty(this,"dispose",{enumerable:!0,configurable:!0,writable:!0,value:()=>{var e;this.events&&(null===(e=this.events)||void 0===e||e.all.clear(),this.events=void 0)}}),e(this),this._emptyValueType="string"==typeof(n=r)?"":(e=>"number"==typeof e)(n)?0:!l(n)&&(Array.isArray(n)?[]:null===n||t(n)||l(n)?null:void 0),this.initValue=r,this.options=a||{},(null===(s=this.options)||void 0===s?void 0:s.hasEvents)&&(this.events=i())}get initValue(){return this._initValue}set initValue(e){var i;e||e===this._emptyValueType?this._initValue=e:this._initValue=this._emptyValueType,this._value=this._initValue,null===(i=this.validate)||void 0===i||i.call(this)}get value(){return this._value}set value(e){var i,t,l,r;if("abort"===(null===(t=null===(i=this.options)||void 0===i?void 0:i.beforeOnChange)||void 0===t?void 0:t.call(i,e)))return;const a=this._value;this._value=e,a!==e&&(null===(r=null===(l=this.options)||void 0===l?void 0:l.onChange)||void 0===r||r.call(l,e),this.emit("ON_CHANGE",e))}get error(){return this._error}set error(e){this._error=e}get disabled(){var e,i;return this._disabled||Boolean(null===(i=null===(e=this.options)||void 0===e?void 0:e.disabledFn)||void 0===i?void 0:i.call(e))}set disabled(e){this._disabled=e}get isValid(){return!this._error}get isInit(){return t(this.value)?r(this.value,this._initValue):this._value===this._initValue}get isBlurred(){return this._isBlurred}set isBlurred(e){this._isBlurred=e}get isTouched(){return!this.isInit}get props(){var e;let i={value:this.value,error:this.error,disabled:this.disabled};return(null===(e=this.options)||void 0===e?void 0:e.onError)&&(i=Object.assign(Object.assign({},i),{onError:e=>{this.error=this.error||(null==e?void 0:e.toString())}})),Object.assign(Object.assign({},i),{onChange:this.onChange,onBlur:this.onBlur})}}export{h as AutocompleteFieldService,b as CombinedFormFieldService,y as FieldService,c as FormService,d as _checkConfiguration,u as configureForm,o as preSubmitValidationError,n as validate};