UNPKG

mobx-react-form

Version:
2 lines 3.32 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("_")):"function"==typeof define&&define.amd?define(["_"],t):"object"==typeof exports?exports.MobxReactFormValidatorDVR=t(require("_")):e.MobxReactFormValidatorDVR=t(e._)}(self,(e=>(()=>{"use strict";var t={823:function(e,t,a){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.DVR=void 0;const s=i(a(479));class l{constructor({config:e,state:t=null,promises:a=[]}){Object.defineProperty(this,"promises",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"config",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"extend",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"validator",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"schema",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.state=t,this.promises=a,this.extend=null==e?void 0:e.extend,this.validator=e.package,this.extendValidator()}extendValidator(){"function"==typeof this.extend&&this.extend({validator:this.validator,form:this.state.form})}validate(e){const t=this.state.form.validatedValues;this.validateFieldAsync(e,t),this.validateFieldSync(e,t)}makeLabels(e,t){const a={[t.path]:t.label};s.default.forIn(e.rules[t.path],(e=>{if("string"==typeof e.value&&e.name.match(/^(required_|same|different)/))s.default.forIn(e.value.split(","),((t,i)=>{if(!e.name.match(/^required_(if|unless)/)||i%2==0){const e=this.state.form.$(t);e&&e.path&&e.label&&(a[e.path]=e.label)}}));else if("string"==typeof e.value&&e.name.match(/^(before|after)/)){const t=this.state.form.$(e.value);t&&t.path&&t.label&&(a[t.path]=t.label)}})),e.setAttributeNames(a)}validateFieldSync(e,t){const a=this.rules(e.rules,"sync");if(s.default.isEmpty(a[0]))return;const i={[e.path]:a},l=new this.validator(t,i);this.makeLabels(l,e),l.passes()||e.invalidate(s.default.head(l.errors.get(e.path)),!1)}validateFieldAsync(e,t){const a=this.rules(e.rules,"async");if(s.default.isEmpty(a[0]))return;const i={[e.path]:a},l=new this.validator(t,i);this.makeLabels(l,e);const r=new Promise((t=>l.checkAsync((()=>this.handleAsyncPasses(e,t)),(()=>this.handleAsyncFails(e,l,t)))));this.promises.push(r)}handleAsyncPasses(e,t){e.setValidationAsyncData(!0),t()}handleAsyncFails(e,t,a){e.setValidationAsyncData(!1,s.default.head(t.errors.get(e.path))),this.executeAsyncValidation(e),a()}executeAsyncValidation(e){!1===e.validationAsyncData.valid&&e.invalidate(e.validationAsyncData.message,!1,!0)}rules(e,t){const a=s.default.isString(e)?s.default.split(e,"|"):e,i=new this.validator;return s.default.filter(a,(e=>{var a,l;return"async"===t?null===(a=i.getRule(s.default.split(e,":")[0]))||void 0===a?void 0:a.async:!(null===(l=i.getRule(s.default.split(e,":")[0]))||void 0===l?void 0:l.async)}))}}t.DVR=l,t.default=e=>({class:l,config:e})},479:t=>{t.exports=e}},a={};return function e(i){var s=a[i];if(void 0!==s)return s.exports;var l=a[i]={exports:{}};return t[i].call(l.exports,l,l.exports,e),l.exports}(823)})())); //# sourceMappingURL=MobxReactFormValidatorDVR.umd.min.js.map