@mobx-ecosystem/mobx-form 2.10.32 → 2.11.0
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/dist/autocompete-field-service.d.ts +25 -3
- package/dist/combined-form-field-service.d.ts +2 -0
- package/dist/field-service.d.ts +16 -14
- package/dist/index.js +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/isEqual.d.ts +1 -0
- package/package.json +2 -6
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import { FieldService } from "./field-service";
|
|
2
2
|
import { IField, ValueType } from "./types";
|
|
3
3
|
export declare class AutocompleteFieldService<T = ValueType<unknown>> implements IField {
|
|
4
|
-
field: FieldService<T
|
|
5
|
-
|
|
4
|
+
field: FieldService<T, {
|
|
5
|
+
value: T;
|
|
6
|
+
onChange: (_: any, value: ValueType<T>) => void;
|
|
7
|
+
onBlur: (_: any) => void;
|
|
8
|
+
error?: string | undefined;
|
|
9
|
+
disabled?: boolean | undefined;
|
|
10
|
+
}>;
|
|
11
|
+
inputField: FieldService<string, {
|
|
12
|
+
value: string;
|
|
13
|
+
onChange: (_: any, value: ValueType<string>) => void;
|
|
14
|
+
onBlur: (_: any) => void;
|
|
15
|
+
error?: string | undefined;
|
|
16
|
+
disabled?: boolean | undefined;
|
|
17
|
+
}>;
|
|
6
18
|
constructor(initValue?: ValueType<T>);
|
|
7
19
|
get validate(): (() => Promise<unknown>) | undefined;
|
|
8
20
|
set validate(validate: (() => Promise<unknown>) | undefined);
|
|
@@ -15,6 +27,8 @@ export declare class AutocompleteFieldService<T = ValueType<unknown>> implements
|
|
|
15
27
|
setAsInit: () => void;
|
|
16
28
|
onInputChange: (e: any, value: string) => void;
|
|
17
29
|
touch: () => void;
|
|
30
|
+
disable: () => void;
|
|
31
|
+
enable: () => void;
|
|
18
32
|
get value(): ValueType<T>;
|
|
19
33
|
set value(value: ValueType<T>);
|
|
20
34
|
get error(): string | undefined;
|
|
@@ -26,5 +40,13 @@ export declare class AutocompleteFieldService<T = ValueType<unknown>> implements
|
|
|
26
40
|
set initValue(initValue: ValueType<T>);
|
|
27
41
|
get isTouched(): boolean;
|
|
28
42
|
get initValue(): ValueType<T>;
|
|
29
|
-
get props():
|
|
43
|
+
get props(): {
|
|
44
|
+
inputValue: ValueType<string>;
|
|
45
|
+
onInputChange: (e: any, value: string) => void;
|
|
46
|
+
value: T;
|
|
47
|
+
onChange: (_: any, value: ValueType<T>) => void;
|
|
48
|
+
onBlur: (_: any) => void;
|
|
49
|
+
error?: string | undefined;
|
|
50
|
+
disabled?: boolean | undefined;
|
|
51
|
+
};
|
|
30
52
|
}
|
|
@@ -28,4 +28,6 @@ export declare class CombinedFormFieldService<T extends IFormable<FormServiceVal
|
|
|
28
28
|
touch: () => void;
|
|
29
29
|
validateFields: (type?: ValidationType) => Promise<void[]>;
|
|
30
30
|
validate: (type?: ValidationType) => Promise<[unknown, void[]]>;
|
|
31
|
+
disable: () => void;
|
|
32
|
+
enable: () => void;
|
|
31
33
|
}
|
package/dist/field-service.d.ts
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { IField, ValueType } from './types';
|
|
2
|
-
|
|
3
|
-
type FieldOptionsType = {
|
|
2
|
+
type FieldOptionsType<T> = {
|
|
4
3
|
onError?: boolean;
|
|
4
|
+
onChange?: (value: ValueType<T>) => void;
|
|
5
|
+
beforeChange?: (value: ValueType<T>) => void | 'abort';
|
|
5
6
|
};
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
type FieldProps<T> = {
|
|
8
|
+
value: T;
|
|
9
|
+
onChange: (_: any, value: ValueType<T>) => void;
|
|
10
|
+
onBlur: (_: any) => void;
|
|
11
|
+
error?: string;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
};
|
|
14
|
+
export declare class FieldService<T = ValueType<unknown>, P extends FieldProps<T> = FieldProps<T>> implements IField {
|
|
11
15
|
validate?: () => Promise<unknown>;
|
|
12
16
|
_serviceType: string;
|
|
13
17
|
private _initValue?;
|
|
@@ -15,8 +19,8 @@ export declare class FieldService<T = ValueType<unknown>> implements IField {
|
|
|
15
19
|
private _error?;
|
|
16
20
|
private _disabled;
|
|
17
21
|
private _isBlurred;
|
|
18
|
-
options?: FieldOptionsType
|
|
19
|
-
constructor(initValue?: ValueType<T>, options?: FieldOptionsType);
|
|
22
|
+
options?: FieldOptionsType<T>;
|
|
23
|
+
constructor(initValue?: ValueType<T>, options?: FieldOptionsType<T>);
|
|
20
24
|
get initValue(): ValueType<T>;
|
|
21
25
|
set initValue(initValue: ValueType<T>);
|
|
22
26
|
get value(): ValueType<T>;
|
|
@@ -30,15 +34,13 @@ export declare class FieldService<T = ValueType<unknown>> implements IField {
|
|
|
30
34
|
get isBlurred(): boolean;
|
|
31
35
|
set isBlurred(isBlurred: boolean);
|
|
32
36
|
get isTouched(): boolean;
|
|
33
|
-
createListener: () => void;
|
|
34
|
-
pauseListener: () => void;
|
|
35
|
-
resumeListener: () => void;
|
|
36
|
-
destroyListener: () => void;
|
|
37
37
|
onChange: (_: any, value: ValueType<T>) => void;
|
|
38
38
|
onBlur: (_: any) => void;
|
|
39
39
|
reset: () => void;
|
|
40
40
|
setAsInit: () => void;
|
|
41
41
|
touch: () => void;
|
|
42
|
-
|
|
42
|
+
disable: () => void;
|
|
43
|
+
enable: () => void;
|
|
44
|
+
get props(): P;
|
|
43
45
|
}
|
|
44
46
|
export {};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
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){var i;this._initValue=e,this._value=e,null===(i=this.validate)||void 0===i||i.call(this)}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,"_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,"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.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")=>l(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)])}))}),i(this),this.initValue=e||[]}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 d{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 h{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();yield this.bypassFields(this.fields,(i=>l(this,void 0,void 0,(function*(){var t;if(i instanceof o)return yield null===(t=i.validateFields)||void 0===t?void 0:t.call(i,e)}))));const 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 d)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 d)&&(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 d?i(e,t):"object"==typeof e?Promise.all(Object.keys(e||{}).map((r=>this.bypassFields(null==e?void 0:e[r],i,null==t?void 0:t[r])))):void 0}),Object.defineProperty(this,"setValidationToFields",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.bypassFields(this.fields,(e=>{e instanceof o?e._validate=this.validate: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{d as AutocompleteFieldService,o as CombinedFormFieldService,r as FieldService,h as FormService,u as _checkConfiguration,n as configureForm,a as preSubmitValidationError,s as validate};
|
|
1
|
+
import{makeAutoObservable as e}from"mobx";function i(e,t){if(e===t)return!0;if(null===e||null===t||"object"!=typeof e||"object"!=typeof t)return!1;if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(e instanceof RegExp&&t instanceof RegExp)return e.toString()===t.toString();if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,l]of e)if(!t.has(r)||!i(l,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const i of e)if(!t.has(i))return!1;return!0}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!i(e[r],t[r]))return!1;return!0}const r=Object.keys(e),l=Object.keys(t);if(r.length!==l.length)return!1;for(const l of r)if(!Object.hasOwnProperty.call(t,l)||!i(e[l],t[l]))return!1;return!0}class t{constructor(i,t){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,"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}}),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}}),e(this),this.initValue=i,this.options=t}get initValue(){return this._initValue}set initValue(e){var i;this._initValue=e,this._value=e,null===(i=this.validate)||void 0===i||i.call(this)}get value(){return this._value}set value(e){var i,t,r,l;if("abort"===(null===(t=null===(i=this.options)||void 0===i?void 0:i.beforeChange)||void 0===t?void 0:t.call(i,e)))return;const a=this._value;this._value=e,a!==e&&(null===(l=null===(r=this.options)||void 0===r?void 0:r.onChange)||void 0===l||l.call(r,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!==(e=this.value)&&"object"==typeof e?i(this.value,this._initValue):this._value===this._initValue;var e}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 r(e,i,t,r){return new(t||(t=Promise))((function(l,a){function s(e){try{u(r.next(e))}catch(e){a(e)}}function n(e){try{u(r.throw(e))}catch(e){a(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(s,n)}u((r=r.apply(e,i||[])).next())}))}let l,a;const s=e=>{l=e.validation.validate,a=e.validation.preSubmitValidationError},n=()=>{if(!l||!a)throw new Error("You must define configureForm to configure mobx-form")};class u{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,"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.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")=>r(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}}),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 o{constructor(i){Object.defineProperty(this,"field",{enumerable:!0,configurable:!0,writable:!0,value:new t(null)}),Object.defineProperty(this,"inputField",{enumerable:!0,configurable:!0,writable:!0,value:new t("")}),Object.defineProperty(this,"setValue",{enumerable:!0,configurable:!0,writable:!0,value:(e,{inputValue:i="",withNotification:t=!0,withBlur:r=!0})=>{var l,a,s,n;if(t?(this.field.value=e,this.inputField.value=i):(this.field.value=e,this.inputField.value=i,null===(a=(l=this.field).validate)||void 0===a||a.call(l),null===(n=(s=this.inputField).validate)||void 0===n||n.call(s)),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()}}),Object.defineProperty(this,"disable",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.field.disabled=!0}}),Object.defineProperty(this,"enable",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.field.disabled=!1}}),e(this),this.field.initValue=i}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 d{constructor(i,s){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:()=>r(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")=>r(this,void 0,void 0,(function*(){const i=this.getValues();yield this.bypassFields(this.fields,(i=>r(this,void 0,void 0,(function*(){var t;if(i instanceof u)return yield null===(t=i.validateFields)||void 0===t?void 0:t.call(i,e)}))));const t=yield null==l?void 0:l(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 t||e instanceof u||e instanceof o)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((r=>{(e[r]&&e[r]instanceof t||e[r]instanceof u||e[r]instanceof o)&&(i[r]=e[r])})),this.fields=i,this.setValidationToFields()}}),Object.defineProperty(this,"bypassFields",{enumerable:!0,configurable:!0,writable:!0,value:(e,i,r)=>e instanceof t||e instanceof u||e instanceof o?i(e,r):"object"==typeof e?Promise.all(Object.keys(e||{}).map((t=>this.bypassFields(null==e?void 0:e[t],i,null==r?void 0:r[t])))):void 0}),Object.defineProperty(this,"setValidationToFields",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.bypassFields(this.fields,(e=>{e instanceof u?e._validate=this.validate: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.disable()))}}),Object.defineProperty(this,"enable",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.bypassFields(this.fields,(e=>e.enable()))}}),Object.defineProperty(this,"touch",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.bypassFields(this.fields,(e=>e.touch()))}}),n(),e(this),this.fields=i,this.validationSchema=s,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 AutocompleteFieldService,u as CombinedFormFieldService,t as FieldService,d as FormService,n as _checkConfiguration,s as configureForm,a as preSubmitValidationError,l as validate};
|
package/dist/types.d.ts
CHANGED
package/dist/utils/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isEqual(value: any, other: any): boolean;
|
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.
|
|
5
|
+
"version": "2.11.0",
|
|
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",
|
|
@@ -43,7 +43,6 @@
|
|
|
43
43
|
"@rollup/plugin-node-resolve": "^15.0.2",
|
|
44
44
|
"@rollup/plugin-terser": "^0.4.0",
|
|
45
45
|
"@rollup/plugin-typescript": "^11.1.0",
|
|
46
|
-
"@types/lodash": "^4.14.192",
|
|
47
46
|
"mobx": "^6.9.0",
|
|
48
47
|
"npm-run-all": "^4.1.5",
|
|
49
48
|
"rimraf": "^5.0.0",
|
|
@@ -57,8 +56,5 @@
|
|
|
57
56
|
"type": "git",
|
|
58
57
|
"url": "https://github.com/RudikS-git/mobx-ecosystem"
|
|
59
58
|
},
|
|
60
|
-
"dependencies": {
|
|
61
|
-
"lodash": "^4.17.21",
|
|
62
|
-
"mitt": "^3.0.1"
|
|
63
|
-
}
|
|
59
|
+
"dependencies": {}
|
|
64
60
|
}
|