@mobx-ecosystem/mobx-form 2.10.15 → 2.10.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
- ## Installation
2
- ```bash
3
- npm install @mobx-ecosystem/mobx-form mobx
4
-
5
-
6
- yarn add @mobx-ecosystem/mobx-form mobx
1
+ ## Installation
2
+ ```bash
3
+ npm install @mobx-ecosystem/mobx-form mobx
4
+
5
+
6
+ yarn add @mobx-ecosystem/mobx-form mobx
7
7
  ```
@@ -14,6 +14,7 @@ export declare class AutocompleteFieldService<T = ValueType<unknown>> implements
14
14
  reset: () => void;
15
15
  setAsInit: () => void;
16
16
  onInputChange: (e: any, value: string) => void;
17
+ touch: () => void;
17
18
  get value(): ValueType<T>;
18
19
  set value(value: ValueType<T>);
19
20
  get error(): string | undefined;
@@ -26,4 +26,5 @@ export declare class CombinedFormFieldService<T extends IFormable = IFormable> i
26
26
  reset: () => void;
27
27
  setAsInit: () => void;
28
28
  getValues: () => FormValues<T["formService"]["fields"]>[];
29
+ touch: () => void;
29
30
  }
@@ -17,4 +17,5 @@ export declare class CombinedFormService implements IForm<any> {
17
17
  reset: () => void;
18
18
  disable: () => void;
19
19
  enable: () => void;
20
+ touch: () => void;
20
21
  }
@@ -38,6 +38,7 @@ export declare class FieldService<T = ValueType<unknown>> implements IField {
38
38
  onBlur: (_: any) => void;
39
39
  reset: () => void;
40
40
  setAsInit: () => void;
41
+ touch: () => void;
41
42
  get props(): any;
42
43
  }
43
44
  export {};
@@ -81,4 +81,5 @@ export declare class FormService<T extends Record<string, FieldService<any> | Co
81
81
  * Pass false to the property 'disabled'
82
82
  */
83
83
  enable: () => void;
84
+ touch: () => void;
84
85
  }
package/dist/index.d.ts CHANGED
@@ -3,5 +3,3 @@ export * from './form-service';
3
3
  export * from './combined-form-field-service';
4
4
  export * from './configure-form';
5
5
  export * from './types';
6
- export * from './combined-form-service';
7
- export * from './autocompete-field-service';
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{isEqual as e}from"lodash";import{makeAutoObservable as t}from"mobx";import i from"mitt";var r=function(){return r=Object.assign||function(e){for(var t,i=1,r=arguments.length;i<r;i++)for(var n in t=arguments[i])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},r.apply(this,arguments)};function n(e,t,i,r){return new(i||(i=Promise))((function(n,u){function o(e){try{a(r.next(e))}catch(e){u(e)}}function l(e){try{a(r.throw(e))}catch(e){u(e)}}function a(e){var t;e.done?n(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,l)}a((r=r.apply(e,t||[])).next())}))}function u(e,t){var i,r,n,u,o={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return u={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function l(l){return function(a){return function(l){if(i)throw new TypeError("Generator is already executing.");for(;u&&(u=0,l[0]&&(o=0)),o;)try{if(i=1,r&&(n=2&l[0]?r.return:l[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,l[1])).done)return n;switch(r=0,n&&(l=[2&l[0],n.value]),l[0]){case 0:case 1:n=l;break;case 4:return o.label++,{value:l[1],done:!1};case 5:o.label++,r=l[1],l=[0];continue;case 7:l=o.ops.pop(),o.trys.pop();continue;default:if(!(n=o.trys,(n=n.length>0&&n[n.length-1])||6!==l[0]&&2!==l[0])){o=0;continue}if(3===l[0]&&(!n||l[1]>n[0]&&l[1]<n[3])){o.label=l[1];break}if(6===l[0]&&o.label<n[1]){o.label=n[1],n=l;break}if(n&&o.label<n[2]){o.label=n[2],o.ops.push(l);break}n[2]&&o.ops.pop(),o.trys.pop();continue}l=t.call(e,o)}catch(e){l=[6,e],r=0}finally{i=n=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,a])}}}var o,l,a=function(){function n(e,r){var n=this;Object.defineProperty(this,"_isListenerWorks",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"eventBus",{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:void 0}),Object.defineProperty(this,"createListener",{enumerable:!0,configurable:!0,writable:!0,value:function(){n._isListenerWorks=!0,n.eventBus=i()}}),Object.defineProperty(this,"pauseListener",{enumerable:!0,configurable:!0,writable:!0,value:function(){n._isListenerWorks=!1}}),Object.defineProperty(this,"resumeListener",{enumerable:!0,configurable:!0,writable:!0,value:function(){n._isListenerWorks=!0}}),Object.defineProperty(this,"destroyListener",{enumerable:!0,configurable:!0,writable:!0,value:function(){n.eventBus=void 0}}),Object.defineProperty(this,"onChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e,t){var i;n.value=t,null===(i=n.validate)||void 0===i||i.call(n)}}),Object.defineProperty(this,"onBlur",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t;n.isBlurred=!0,null===(t=n.validate)||void 0===t||t.call(n)}}),Object.defineProperty(this,"reset",{enumerable:!0,configurable:!0,writable:!0,value:function(){n.value=n.initValue,n.isBlurred=!1}}),Object.defineProperty(this,"setAsInit",{enumerable:!0,configurable:!0,writable:!0,value:function(){n.initValue=n.value,n.isBlurred=!1}}),t(this),this.initValue=e,this.options=r}return Object.defineProperty(n.prototype,"initValue",{get:function(){return this._initValue},set:function(e){this._initValue=e,this._value=e,this.validate&&this.validate()},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"value",{get:function(){return this._value},set:function(e){var t,i=this._value;this._value=e,i!==e&&this._isListenerWorks&&(null===(t=this.eventBus)||void 0===t||t.emit("ON_CHANGE",e))},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"error",{get:function(){return this._error},set:function(e){this._error=e},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"isValid",{get:function(){return!this._error},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"isInit",{get:function(){return null!==(t=this.value)&&"object"==typeof t?e(this.value,this._initValue):this._value===this._initValue;var t},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"isBlurred",{get:function(){return this._isBlurred},set:function(e){this._isBlurred=e},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"isTouched",{get:function(){return!this.isInit||this.isBlurred},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"props",{get:function(){var e,t=this,i={value:this.value,error:this.error,disabled:this.disabled};return(null===(e=this.options)||void 0===e?void 0:e.onError)&&(i=r(r({},i),{onError:function(e){t.error=t.error||(null==e?void 0:e.toString())}})),r(r({},i),{onChange:this.onChange,onBlur:this.onBlur})},enumerable:!1,configurable:!0}),n}(),s=function(e){o=e.validation.validate,l=e.validation.preSubmitValidationError},c=function(){if(!o||!l)throw new Error("You must define configureForm to configure mobx-form")},f=function(){function e(e){var i=this;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,"setTouched",{enumerable:!0,configurable:!0,writable:!0,value:function(e){i._touched=e}}),Object.defineProperty(this,"add",{enumerable:!0,configurable:!0,writable:!0,value:function(e){i.value.push(e),i.setTouched(!0),i._validate()}}),Object.defineProperty(this,"removeByIndex",{enumerable:!0,configurable:!0,writable:!0,value:function(e){i.value.splice(e,1),i.setTouched(!0),i._validate()}}),Object.defineProperty(this,"_validate",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e;i.value.forEach((function(e){return e.formService.validate()})),null===(e=i.validate)||void 0===e||e.call(i)}}),Object.defineProperty(this,"reset",{enumerable:!0,configurable:!0,writable:!0,value:function(){i._value=i.initValue,i._value.forEach((function(e){return e.formService.reset()})),i.setTouched(!1)}}),Object.defineProperty(this,"setAsInit",{enumerable:!0,configurable:!0,writable:!0,value:function(){i._initValue=i.value,i._value.forEach((function(e){return e.formService.setValuesAsInit()})),i.setTouched(!1)}}),Object.defineProperty(this,"getValues",{enumerable:!0,configurable:!0,writable:!0,value:function(){return i.value.map((function(e){return e.formService.getValues()}))}}),t(this),this.initValue=e||[]}return Object.defineProperty(e.prototype,"initValue",{get:function(){return this._initValue},set:function(e){this._initValue=e,this._value=e.slice(0),this.setTouched(!1),this._validate()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this._value},set:function(e){this._value=e,this.setTouched(!0)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=e,e?this.value.forEach((function(e){return e.formService.disable()})):this.value.forEach((function(e){return e.formService.enable()}))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"error",{get:function(){return this._error},set:function(e){this._error=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"isValid",{get:function(){return!this._error&&this.value.every((function(e){return e.formService.isValid}))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"isTouched",{get:function(){return this._touched||this.value.some((function(e){return e.formService.isTouched}))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"isInit",{get:function(){return!this.isTouched},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"hasItems",{get:function(){return Boolean(this.value.length)},enumerable:!1,configurable:!0}),e}(),b=function(){function e(e){var i=this;Object.defineProperty(this,"field",{enumerable:!0,configurable:!0,writable:!0,value:new a(null)}),Object.defineProperty(this,"inputField",{enumerable:!0,configurable:!0,writable:!0,value:new a("")}),Object.defineProperty(this,"setValue",{enumerable:!0,configurable:!0,writable:!0,value:function(e,t){var r,n,u,o,l=t.inputValue,a=void 0===l?"":l,s=t.withNotification,c=void 0===s||s,f=t.withBlur,b=void 0===f||f;if(c?(i.field.value=e,i.inputField.value=a):(i.field.pauseListener(),i.inputField.pauseListener(),i.field.value=e,i.inputField.value=a,null===(n=(r=i.field).validate)||void 0===n||n.call(r),null===(o=(u=i.inputField).validate)||void 0===o||o.call(u),i.field.resumeListener(),i.inputField.resumeListener()),b)return i.field.isBlurred=!0}}),Object.defineProperty(this,"reset",{enumerable:!0,configurable:!0,writable:!0,value:function(){i.field.reset()}}),Object.defineProperty(this,"setAsInit",{enumerable:!0,configurable:!0,writable:!0,value:function(){i.field.setAsInit()}}),Object.defineProperty(this,"onInputChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e,t){i.inputField.value=t}}),t(this),this.field.initValue=e}return Object.defineProperty(e.prototype,"validate",{get:function(){return this.field.validate},set:function(e){this.field.validate=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this.field.value},set:function(e){this.field.value=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"error",{get:function(){return this.field.error},set:function(e){this.field.error=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this.field.disabled},set:function(e){this.field.disabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"isValid",{get:function(){return this.field.isValid},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"isInit",{get:function(){return this.field.isInit},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"initValue",{get:function(){return this.field.initValue},set:function(e){this.field.initValue=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"isTouched",{get:function(){return this.field.isTouched},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"props",{get:function(){return r(r({},this.field.props),{inputValue:this.inputField.value,onInputChange:this.onInputChange})},enumerable:!1,configurable:!0}),e}(),d=function(){function e(e,i){var r=this;Object.defineProperty(this,"fields",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),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,"setOnSubmit",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.onSubmit=e}}),Object.defineProperty(this,"submit",{enumerable:!0,configurable:!0,writable:!0,value:function(){return n(r,void 0,void 0,(function(){var e;return u(this,(function(t){switch(t.label){case 0:return[4,this.validate("everything")];case 1:return t.sent(),this.canBeSubmitted?[2,null===(e=this.onSubmit)||void 0===e?void 0:e.call(this)]:(null==l||l(),[2])}}))}))}}),Object.defineProperty(this,"validate",{enumerable:!0,configurable:!0,writable:!0,value:function(e){return void 0===e&&(e="only-touched"),n(r,void 0,void 0,(function(){var t,i;return u(this,(function(r){switch(r.label){case 0:return t=this.getValues(),[4,null==o?void 0:o(t,this.validationSchema)];case 1:return(i=r.sent())&&0!=Object.keys(i||[]).length?this.setErrors(i,e):this.resetErrors(),[2]}}))}))}}),Object.defineProperty(this,"setValidationSchema",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.validationSchema=e,r.setValidationToFields()}}),Object.defineProperty(this,"getValues",{enumerable:!0,configurable:!0,writable:!0,value:function(){for(var e={},t=0,i=r.keys;t<i.length;t++){var n=i[t];e[n]=r.getValue(r.fields[n])}return e}}),Object.defineProperty(this,"getValue",{enumerable:!0,configurable:!0,writable:!0,value:function(e){if(e instanceof a||e instanceof f||e instanceof b)return null==e?void 0:e.value;if("object"==typeof e){for(var t={},i=0,n=Object.keys(e);i<n.length;i++){var u=n[i];t[u]=r.getValue(null==e?void 0:e[u])}return t}return e}}),Object.defineProperty(this,"setFieldsByThis",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t={};Object.keys(e).forEach((function(i){(e[i]&&e[i]instanceof a||e[i]instanceof f||e[i]instanceof b)&&(t[i]=e[i])})),r.fields=t,r.setValidationToFields()}}),Object.defineProperty(this,"bypassFields",{enumerable:!0,configurable:!0,writable:!0,value:function(e,t,i){e instanceof a||e instanceof f||e instanceof b?t(e,i):"object"==typeof e&&Object.keys(e||{}).forEach((function(n){r.bypassFields(null==e?void 0:e[n],t,null==i?void 0:i[n])}))}}),Object.defineProperty(this,"setValidationToFields",{enumerable:!0,configurable:!0,writable:!0,value:function(){r.bypassFields(r.fields,(function(e){return e.validate=r.validate}))}}),Object.defineProperty(this,"setInitValues",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.bypassFields(r.fields,(function(e,t){return e.initValue=t}),e)}}),Object.defineProperty(this,"setValues",{enumerable:!0,configurable:!0,writable:!0,value:function(e){r.bypassFields(r.fields,(function(e,t){return e.value=t}),e)}}),Object.defineProperty(this,"resetErrors",{enumerable:!0,configurable:!0,writable:!0,value:function(){r.bypassFields(r.fields,(function(e){return e.error=void 0}))}}),Object.defineProperty(this,"setValuesAsInit",{enumerable:!0,configurable:!0,writable:!0,value:function(){r.bypassFields(r.fields,(function(e){e.setAsInit()}))}}),Object.defineProperty(this,"reset",{enumerable:!0,configurable:!0,writable:!0,value:function(){r.bypassFields(r.fields,(function(e){return e.reset()})),r.validate()}}),Object.defineProperty(this,"disable",{enumerable:!0,configurable:!0,writable:!0,value:function(){r.bypassFields(r.fields,(function(e){return e.disabled=!0}))}}),Object.defineProperty(this,"enable",{enumerable:!0,configurable:!0,writable:!0,value:function(){r.bypassFields(r.fields,(function(e){return e.disabled=!1}))}}),c(),t(this),this.fields=e,this.validationSchema=i,this.setValidationToFields()}return Object.defineProperty(e.prototype,"keys",{get:function(){return Object.keys(this.fields)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"isValid",{get:function(){var e=!0;return this.bypassFields(this.fields,(function(t){t.isValid||(e=!1)})),e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"isTouched",{get:function(){var e=!1;return this.bypassFields(this.fields,(function(t){t.isTouched&&(e=!0)})),e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"canBeSubmitted",{get:function(){return this.isTouched&&this.isValid},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){var e=!0;return this.bypassFields(this.fields,(function(t){t.disabled||(e=!1)})),e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"setErrors",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){void 0===t&&(t="only-touched"),this.bypassFields(this.fields,(function(e,i){(e.isTouched||"everything"===t)&&(e.error=i)}),e)}}),e}(),h=function(){function e(){var e=this;Object.defineProperty(this,"formServices",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"setForms",{enumerable:!0,configurable:!0,writable:!0,value:function(t){e.formServices=t}}),Object.defineProperty(this,"validate",{enumerable:!0,configurable:!0,writable:!0,value:function(t){return n(e,void 0,void 0,(function(){var e,i;return u(this,(function(r){switch(r.label){case 0:e=0,i=this.formServices,r.label=1;case 1:return e<i.length?[4,i[e].validate(t)]:[3,4];case 2:r.sent(),r.label=3;case 3:return e++,[3,1];case 4:return[2]}}))}))}}),Object.defineProperty(this,"getValues",{enumerable:!0,configurable:!0,writable:!0,value:function(){return e.formServices.map((function(e){return e.getValues()}))}}),Object.defineProperty(this,"resetErrors",{enumerable:!0,configurable:!0,writable:!0,value:function(){return e.formServices.forEach((function(e){return e.resetErrors()}))}}),Object.defineProperty(this,"setValuesAsInit",{enumerable:!0,configurable:!0,writable:!0,value:function(){return e.formServices.forEach((function(e){return e.setValuesAsInit()}))}}),Object.defineProperty(this,"reset",{enumerable:!0,configurable:!0,writable:!0,value:function(){return e.formServices.forEach((function(e){return e.reset()}))}}),Object.defineProperty(this,"disable",{enumerable:!0,configurable:!0,writable:!0,value:function(){return e.formServices.forEach((function(e){return e.disable()}))}}),Object.defineProperty(this,"enable",{enumerable:!0,configurable:!0,writable:!0,value:function(){return e.formServices.forEach((function(e){return e.enable()}))}}),t(this)}return Object.defineProperty(e.prototype,"fields",{get:function(){return this.formServices.map((function(e){return e.fields})).flat()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"keys",{get:function(){return this.formServices.map((function(e){return e.keys})).flat()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"isValid",{get:function(){return this.formServices.every((function(e){return e.isValid}))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"isTouched",{get:function(){return this.formServices.some((function(e){return e.isTouched}))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"canBeSubmitted",{get:function(){return this.isTouched&&this.isValid},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this.formServices.every((function(e){return e.disabled}))},enumerable:!1,configurable:!0}),e}();export{b as AutocompleteFieldService,f as CombinedFormFieldService,h as CombinedFormService,a as FieldService,d as FormService,c as _checkConfiguration,s as configureForm,l as preSubmitValidationError,o as validate};
1
+ import{isEqual as e}from"lodash";import{makeAutoObservable as i}from"mobx";import t from"mitt";class r{constructor(e,r){Object.defineProperty(this,"_isListenerWorks",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"eventBus",{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:void 0}),Object.defineProperty(this,"createListener",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this._isListenerWorks=!0,this.eventBus=t()}}),Object.defineProperty(this,"pauseListener",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this._isListenerWorks=!1}}),Object.defineProperty(this,"resumeListener",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this._isListenerWorks=!0}}),Object.defineProperty(this,"destroyListener",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.eventBus=void 0}}),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:()=>{this.value=this.initValue,this.isBlurred=!1}}),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}}),i(this),this.initValue=e,this.options=r}get initValue(){return this._initValue}set initValue(e){this._initValue=e,this._value=e,this.validate&&this.validate()}get value(){return this._value}set value(e){var i;const t=this._value;this._value=e,t!==e&&this._isListenerWorks&&(null===(i=this.eventBus)||void 0===i||i.emit("ON_CHANGE",e))}get error(){return this._error}set error(e){this._error=e}get disabled(){return this._disabled}set disabled(e){this._disabled=e}get isValid(){return!this._error}get isInit(){return null!==(i=this.value)&&"object"==typeof i?e(this.value,this._initValue):this._value===this._initValue;var i}get isBlurred(){return this._isBlurred}set isBlurred(e){this._isBlurred=e}get isTouched(){return!this.isInit||this.isBlurred}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})}}function l(e,i,t,r){return new(t||(t=Promise))((function(l,s){function a(e){try{u(r.next(e))}catch(e){s(e)}}function n(e){try{u(r.throw(e))}catch(e){s(e)}}function u(e){var i;e.done?l(e.value):(i=e.value,i instanceof t?i:new t((function(e){e(i)}))).then(a,n)}u((r=r.apply(e,i||[])).next())}))}let s,a;const n=e=>{s=e.validation.validate,a=e.validation.preSubmitValidationError},u=()=>{if(!s||!a)throw new Error("You must define configureForm to configure mobx-form")};class o{constructor(e){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,"setTouched",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this._touched=e}}),Object.defineProperty(this,"add",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.value.push(e),this.setTouched(!0),this._validate()}}),Object.defineProperty(this,"removeByIndex",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.value.splice(e,1),this.setTouched(!0),this._validate()}}),Object.defineProperty(this,"_validate",{enumerable:!0,configurable:!0,writable:!0,value:()=>{var e;this.value.forEach((e=>e.formService.validate())),null===(e=this.validate)||void 0===e||e.call(this)}}),Object.defineProperty(this,"reset",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this._value=this.initValue,this._value.forEach((e=>e.formService.reset())),this.setTouched(!1)}}),Object.defineProperty(this,"setAsInit",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this._initValue=this.value,this._value.forEach((e=>e.formService.setValuesAsInit())),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.setTouched(!0)}}),i(this),this.initValue=e||[]}get initValue(){return this._initValue}set initValue(e){this._initValue=e,this._value=e.slice(0),this.setTouched(!1),this._validate()}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(e){Object.defineProperty(this,"field",{enumerable:!0,configurable:!0,writable:!0,value:new r(null)}),Object.defineProperty(this,"inputField",{enumerable:!0,configurable:!0,writable:!0,value:new r("")}),Object.defineProperty(this,"setValue",{enumerable:!0,configurable:!0,writable:!0,value:(e,{inputValue:i="",withNotification:t=!0,withBlur:r=!0})=>{var l,s,a,n;if(t?(this.field.value=e,this.inputField.value=i):(this.field.pauseListener(),this.inputField.pauseListener(),this.field.value=e,this.inputField.value=i,null===(s=(l=this.field).validate)||void 0===s||s.call(l),null===(n=(a=this.inputField).validate)||void 0===n||n.call(a),this.field.resumeListener(),this.inputField.resumeListener()),r)return this.field.isBlurred=!0}}),Object.defineProperty(this,"reset",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.field.reset()}}),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)=>{this.inputField.value=i}}),Object.defineProperty(this,"touch",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.field.touch()}}),i(this),this.field.initValue=e}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(){return Object.assign(Object.assign({},this.field.props),{inputValue:this.inputField.value,onInputChange:this.onInputChange})}}class b{constructor(e,t){Object.defineProperty(this,"fields",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),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,"setOnSubmit",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.onSubmit=e}}),Object.defineProperty(this,"submit",{enumerable:!0,configurable:!0,writable:!0,value:()=>l(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==a||a()}))}),Object.defineProperty(this,"validate",{enumerable:!0,configurable:!0,writable:!0,value:(e="only-touched")=>l(this,void 0,void 0,(function*(){const i=this.getValues(),t=yield null==s?void 0:s(i,this.validationSchema);t&&0!=Object.keys(t||[]).length?this.setErrors(t,e):this.resetErrors()}))}),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)e[i]=this.getValue(this.fields[i]);return e}}),Object.defineProperty(this,"getValue",{enumerable:!0,configurable:!0,writable:!0,value:e=>{if(e instanceof r||e instanceof o||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 r||e[t]instanceof o||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 r||e instanceof o||e instanceof h?i(e,t):"object"==typeof e&&Object.keys(e||{}).forEach((r=>{this.bypassFields(null==e?void 0:e[r],i,null==t?void 0:t[r])}))}}),Object.defineProperty(this,"setValidationToFields",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.bypassFields(this.fields,(e=>e.validate=this.validate))}}),Object.defineProperty(this,"setInitValues",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.bypassFields(this.fields,((e,i)=>e.initValue=i),e)}}),Object.defineProperty(this,"setValues",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.bypassFields(this.fields,((e,i)=>e.value=i),e)}}),Object.defineProperty(this,"resetErrors",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.bypassFields(this.fields,(e=>e.error=void 0))}}),Object.defineProperty(this,"setValuesAsInit",{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:()=>{this.bypassFields(this.fields,(e=>e.reset())),this.validate()}}),Object.defineProperty(this,"disable",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.bypassFields(this.fields,(e=>e.disabled=!0))}}),Object.defineProperty(this,"enable",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.bypassFields(this.fields,(e=>e.disabled=!1))}}),Object.defineProperty(this,"touch",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.bypassFields(this.fields,(e=>e.touch()))}}),u(),i(this),this.fields=e,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)&&(e.error=t)}),e)}}export{o as CombinedFormFieldService,r as FieldService,b as FormService,u as _checkConfiguration,n as configureForm,a as preSubmitValidationError,s as validate};
package/dist/types.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { FormService } from "./form-service";
2
2
  import { FieldService } from "./field-service";
3
+ import { CombinedFormFieldService } from "combined-form-field-service";
3
4
  export type ValueType<T> = T | null | undefined;
4
5
  export type FormValues<Type> = Type extends IField ? Type['value'] : {
5
6
  -readonly [Property in keyof Type]: FormValues<Type[Property]>;
@@ -16,6 +17,7 @@ export interface IField {
16
17
  validate?: () => Promise<void>;
17
18
  reset(): void;
18
19
  setAsInit(): void;
20
+ touch(): void;
19
21
  }
20
22
  export interface IForm<T> {
21
23
  fields: T;
@@ -31,8 +33,9 @@ export interface IForm<T> {
31
33
  reset: () => void;
32
34
  disable: () => void;
33
35
  enable: () => void;
36
+ touch: () => void;
34
37
  }
35
- export type FormServiceValuesType = Record<string, FieldService<unknown> | Record<string, unknown>>;
38
+ export type FormServiceValuesType = Record<string, FieldService<unknown> | Record<string, CombinedFormFieldService> | Record<string, unknown>>;
36
39
  export interface IFormable<T extends FormServiceValuesType = FormServiceValuesType> {
37
40
  formService: FormService<T>;
38
41
  }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "type": "module",
3
3
  "name": "@mobx-ecosystem/mobx-form",
4
4
  "private": false,
5
- "version": "2.10.15",
5
+ "version": "2.10.17",
6
6
  "description": "provides the ability to use forms with validation in MobX stores",
7
7
  "main": "dist/index.js",
8
8
  "module": "dist/index.js",