@mobx-ecosystem/mobx-form 2.3.19 → 2.3.21

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.
@@ -1,4 +1,5 @@
1
1
  import { FieldService } from './field-service';
2
+ import { FormErrors, FormValues } from 'types';
2
3
  export declare class FormService<T extends Record<string, FieldService<unknown> | Record<string, unknown>>> {
3
4
  fields: T;
4
5
  validationSchema?: unknown;
@@ -30,7 +31,7 @@ export declare class FormService<T extends Record<string, FieldService<unknown>
30
31
  *
31
32
  * @returns Object of field values
32
33
  */
33
- getValues: () => Record<string, unknown>;
34
+ getValues: () => FormValues<this>;
34
35
  private getValue;
35
36
  /**
36
37
  * Set fields by this
@@ -41,11 +42,11 @@ export declare class FormService<T extends Record<string, FieldService<unknown>
41
42
  /**
42
43
  * Set object to init values by form service keys
43
44
  */
44
- setInitValues: (values: Record<string, unknown>) => void;
45
+ setInitValues: (values: FormValues<this>) => void;
45
46
  /**
46
47
  * Set object to values by form service keys
47
48
  */
48
- setValues: (values: Record<string, unknown>) => void;
49
+ setValues: (values: FormValues<this>) => void;
49
50
  /**
50
51
  * Set field errors to undefined
51
52
  */
@@ -54,7 +55,7 @@ export declare class FormService<T extends Record<string, FieldService<unknown>
54
55
  * Set errors for fields
55
56
  * @param errors object of string which provides errors for fields
56
57
  */
57
- setErrors(error: any): void;
58
+ setErrors(error: FormErrors<this>): void;
58
59
  /**
59
60
  * Set field values to init values
60
61
  */
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './field-service';
2
2
  export * from './form-service';
3
3
  export * from './configure-form';
4
+ export * from './types';
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{isEqual as e}from"lodash";import{makeAutoObservable as t}from"mobx";var i=function(){return i=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},i.apply(this,arguments)};function r(e,t,i,r){return new(i||(i=Promise))((function(n,o){function a(e){try{u(r.next(e))}catch(e){o(e)}}function l(e){try{u(r.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?n(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,l)}u((r=r.apply(e,t||[])).next())}))}function n(e,t){var i,r,n,o,a={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return o={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function l(l){return function(u){return function(l){if(i)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(a=0)),a;)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 a.label++,{value:l[1],done:!1};case 5:a.label++,r=l[1],l=[0];continue;case 7:l=a.ops.pop(),a.trys.pop();continue;default:if(!(n=a.trys,(n=n.length>0&&n[n.length-1])||6!==l[0]&&2!==l[0])){a=0;continue}if(3===l[0]&&(!n||l[1]>n[0]&&l[1]<n[3])){a.label=l[1];break}if(6===l[0]&&a.label<n[1]){a.label=n[1],n=l;break}if(n&&a.label<n[2]){a.label=n[2],a.ops.push(l);break}n[2]&&a.ops.pop(),a.trys.pop();continue}l=t.call(e,a)}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,u])}}}var o,a=function(){function r(e,i){var r=this;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,"options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e,t){r.value=t,r.validate&&r.validate()}}),t(this),this.initValue=e,this.options=i}return Object.defineProperty(r.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(r.prototype,"value",{get:function(){return this._value},set:function(e){this._value=e},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"error",{get:function(){return this._error},set:function(e){this._error=e},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"isValid",{get:function(){return!this._error},enumerable:!1,configurable:!0}),Object.defineProperty(r.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(r.prototype,"props",{get:function(){var e,t=this,r={value:this.value,error:this.error,disabled:this.disabled};return(null===(e=this.options)||void 0===e?void 0:e.onError)&&(r=i(i({},r),{onError:function(e){t.error=t.error||(null==e?void 0:e.toString())}})),i(i({},r),{onChange:this.onChange})},enumerable:!1,configurable:!0}),r}(),l=function(e){o=e.validation.validate},u=function(){if(!o)throw new Error("You must define configureForm to configure mobx-form")},s=function(){function e(e,i){var l=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,"validate",{enumerable:!0,configurable:!0,writable:!0,value:function(){return r(l,void 0,void 0,(function(){var e,t;return n(this,(function(i){switch(i.label){case 0:return e=this.getValues(),console.log(e),[4,null==o?void 0:o(e,this.validationSchema)];case 1:return t=i.sent(),console.log(t),t&&0!=Object.keys(t||[]).length?this.setErrors(t):this.resetErrors(),[2]}}))}))}}),Object.defineProperty(this,"setValidationSchema",{enumerable:!0,configurable:!0,writable:!0,value:function(e){l.validationSchema=e}}),Object.defineProperty(this,"getValues",{enumerable:!0,configurable:!0,writable:!0,value:function(){for(var e,t={},i=0,r=l.keys;i<r.length;i++){var n=r[i];t[n]=l.getValue(null===(e=l.fields[n])||void 0===e?void 0:e.value)}return t}}),Object.defineProperty(this,"getValue",{enumerable:!0,configurable:!0,writable:!0,value:function(e){if(e){if(e instanceof a)return l.getValue(null==e?void 0:e.value);if("object"==typeof e){for(var t={},i=0,r=Object.keys(e);i<r.length;i++){var n=r[i];t[n]=l.getValue(null==e?void 0:e[n])}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&&(t[i]=e[i])})),l.fields=t,l.setValidationToFields()}}),Object.defineProperty(this,"bypassFields",{enumerable:!0,configurable:!0,writable:!0,value:function(e,t,i){e instanceof a?t(e,i):"object"==typeof e&&Object.keys(e||{}).forEach((function(r){l.bypassFields(null==e?void 0:e[r],t,null==i?void 0:i[r])}))}}),Object.defineProperty(this,"setValidationToFields",{enumerable:!0,configurable:!0,writable:!0,value:function(){l.bypassFields(l.fields,(function(e){return e.validate=l.validate}))}}),Object.defineProperty(this,"setInitValues",{enumerable:!0,configurable:!0,writable:!0,value:function(e){l.bypassFields(l.fields,(function(e,t){return e.initValue=t}),e)}}),Object.defineProperty(this,"setValues",{enumerable:!0,configurable:!0,writable:!0,value:function(e){l.bypassFields(l.fields,(function(e,t){return e.value=t}),e)}}),Object.defineProperty(this,"resetErrors",{enumerable:!0,configurable:!0,writable:!0,value:function(){l.bypassFields(l.fields,(function(e){return e.error=void 0}))}}),Object.defineProperty(this,"setValuesAsInit",{enumerable:!0,configurable:!0,writable:!0,value:function(){l.bypassFields(l.fields,(function(e){return e.initValue=e.value}))}}),Object.defineProperty(this,"reset",{enumerable:!0,configurable:!0,writable:!0,value:function(){l.bypassFields(l.fields,(function(e){return e.value=e.initValue})),l.validate()}}),Object.defineProperty(this,"disable",{enumerable:!0,configurable:!0,writable:!0,value:function(){l.bypassFields(l.fields,(function(e){return e.disabled=!0}))}}),Object.defineProperty(this,"enable",{enumerable:!0,configurable:!0,writable:!0,value:function(){l.bypassFields(l.fields,(function(e){return e.disabled=!1}))}}),u(),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.isInit||(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,"setErrors",{enumerable:!1,configurable:!0,writable:!0,value:function(e){this.bypassFields(this.fields,(function(e,t){console.log(e),console.log(t),e.error=t}),e)}}),e}();export{a as FieldService,s as FormService,u as _checkConfiguration,l as configureForm,o as validate};
1
+ import{isEqual as e}from"lodash";import{makeAutoObservable as t}from"mobx";var i=function(){return i=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},i.apply(this,arguments)};function r(e,t,i,r){return new(i||(i=Promise))((function(n,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function l(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?n(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,l)}u((r=r.apply(e,t||[])).next())}))}function n(e,t){var i,r,n,a,o={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return a={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(l){return function(u){return function(l){if(i)throw new TypeError("Generator is already executing.");for(;a&&(a=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,u])}}}var a,o=function(){function r(e,i){var r=this;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,"options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onChange",{enumerable:!0,configurable:!0,writable:!0,value:function(e,t){r.value=t,r.validate&&r.validate()}}),t(this),this.initValue=e,this.options=i}return Object.defineProperty(r.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(r.prototype,"value",{get:function(){return this._value},set:function(e){this._value=e},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"error",{get:function(){return this._error},set:function(e){this._error=e},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"isValid",{get:function(){return!this._error},enumerable:!1,configurable:!0}),Object.defineProperty(r.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(r.prototype,"props",{get:function(){var e,t=this,r={value:this.value,error:this.error,disabled:this.disabled};return(null===(e=this.options)||void 0===e?void 0:e.onError)&&(r=i(i({},r),{onError:function(e){t.error=t.error||(null==e?void 0:e.toString())}})),i(i({},r),{onChange:this.onChange})},enumerable:!1,configurable:!0}),r}(),l=function(e){a=e.validation.validate},u=function(){if(!a)throw new Error("You must define configureForm to configure mobx-form")},s=function(){function e(e,i){var l=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,"validate",{enumerable:!0,configurable:!0,writable:!0,value:function(){return r(l,void 0,void 0,(function(){var e,t;return n(this,(function(i){switch(i.label){case 0:return e=this.getValues(),[4,null==a?void 0:a(e,this.validationSchema)];case 1:return(t=i.sent())&&0!=Object.keys(t||[]).length?this.setErrors(t):this.resetErrors(),[2]}}))}))}}),Object.defineProperty(this,"setValidationSchema",{enumerable:!0,configurable:!0,writable:!0,value:function(e){l.validationSchema=e}}),Object.defineProperty(this,"getValues",{enumerable:!0,configurable:!0,writable:!0,value:function(){for(var e={},t=0,i=l.keys;t<i.length;t++){var r=i[t];e[r]=l.getValue(l.fields[r])}return e}}),Object.defineProperty(this,"getValue",{enumerable:!0,configurable:!0,writable:!0,value:function(e){if(e instanceof o)return null==e?void 0:e.value;if("object"==typeof e){for(var t={},i=0,r=Object.keys(e);i<r.length;i++){var n=r[i];t[n]=l.getValue(null==e?void 0:e[n])}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 o&&(t[i]=e[i])})),l.fields=t,l.setValidationToFields()}}),Object.defineProperty(this,"bypassFields",{enumerable:!0,configurable:!0,writable:!0,value:function(e,t,i){e instanceof o?t(e,i):"object"==typeof e&&Object.keys(e||{}).forEach((function(r){l.bypassFields(null==e?void 0:e[r],t,null==i?void 0:i[r])}))}}),Object.defineProperty(this,"setValidationToFields",{enumerable:!0,configurable:!0,writable:!0,value:function(){l.bypassFields(l.fields,(function(e){return e.validate=l.validate}))}}),Object.defineProperty(this,"setInitValues",{enumerable:!0,configurable:!0,writable:!0,value:function(e){l.bypassFields(l.fields,(function(e,t){return e.initValue=t}),e)}}),Object.defineProperty(this,"setValues",{enumerable:!0,configurable:!0,writable:!0,value:function(e){l.bypassFields(l.fields,(function(e,t){return e.value=t}),e)}}),Object.defineProperty(this,"resetErrors",{enumerable:!0,configurable:!0,writable:!0,value:function(){l.bypassFields(l.fields,(function(e){return e.error=void 0}))}}),Object.defineProperty(this,"setValuesAsInit",{enumerable:!0,configurable:!0,writable:!0,value:function(){l.bypassFields(l.fields,(function(e){return e.initValue=e.value}))}}),Object.defineProperty(this,"reset",{enumerable:!0,configurable:!0,writable:!0,value:function(){l.bypassFields(l.fields,(function(e){return e.value=e.initValue})),l.validate()}}),Object.defineProperty(this,"disable",{enumerable:!0,configurable:!0,writable:!0,value:function(){l.bypassFields(l.fields,(function(e){return e.disabled=!0}))}}),Object.defineProperty(this,"enable",{enumerable:!0,configurable:!0,writable:!0,value:function(){l.bypassFields(l.fields,(function(e){return e.disabled=!1}))}}),u(),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.isInit||(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,"setErrors",{enumerable:!1,configurable:!0,writable:!0,value:function(e){this.bypassFields(this.fields,(function(e,t){e.error=t}),e)}}),e}();export{o as FieldService,s as FormService,u as _checkConfiguration,l as configureForm,a as validate};
@@ -0,0 +1,18 @@
1
+ import { FieldService } from "field-service";
2
+ type RecursiveFormValues<Type> = Type extends FieldService<unknown> ? Type['value'] : {
3
+ -readonly [Property in keyof Type]: RecursiveFormValues<Type[Property]>;
4
+ };
5
+ type RecursiveFormErrors<Type> = Type extends FieldService<unknown> ? Type['error'] : {
6
+ -readonly [Property in keyof Type]: RecursiveFormValues<Type[Property]>;
7
+ };
8
+ export type FormValues<Type extends {
9
+ fields: Record<string, unknown>;
10
+ }> = {
11
+ -readonly [Property in keyof Type['fields']]: RecursiveFormValues<Type['fields'][Property]>;
12
+ };
13
+ export type FormErrors<Type extends {
14
+ fields: Record<string, unknown>;
15
+ }> = {
16
+ -readonly [Property in keyof Type['fields']]: RecursiveFormErrors<Type['fields'][Property]>;
17
+ };
18
+ export {};
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.3.19",
5
+ "version": "2.3.21",
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",