UNPKG

mobx-react-form

Version:
2 lines 3.14 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 s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.DVR=void 0;const i=s(a(479));class l{constructor({config:e,state:t=null,promises:a=[]}){Object.defineProperty(this,"promises",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"config",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"extend",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"validator",{enumerable:!0,configurable:!0,writable:!0,value:null}),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};i.default.forIn(e.rules[t.path],(e=>{if("string"==typeof e.value&&e.name.match(/^(required_|same|different)/))i.default.forIn(e.value.split(","),((t,s)=>{if(!e.name.match(/^required_(if|unless)/)||s%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(i.default.isEmpty(a[0]))return;const s={[e.path]:a},l=new this.validator(t,s);this.makeLabels(l,e),l.passes()||e.invalidate(i.default.head(l.errors.get(e.path)),!1)}validateFieldAsync(e,t){const a=this.rules(e.rules,"async");if(i.default.isEmpty(a[0]))return;const s={[e.path]:a},l=new this.validator(t,s);this.makeLabels(l,e);const n=new Promise((t=>l.checkAsync((()=>this.handleAsyncPasses(e,t)),(()=>this.handleAsyncFails(e,l,t)))));this.promises.push(n)}handleAsyncPasses(e,t){e.setValidationAsyncData(!0),t()}handleAsyncFails(e,t,a){e.setValidationAsyncData(!1,i.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=i.default.isString(e)?i.default.split(e,"|"):e,s=new this.validator;return i.default.filter(a,(e=>"async"===t?s.getRule(i.default.split(e,":")[0]).async:!s.getRule(i.default.split(e,":")[0]).async))}}t.DVR=l,t.default=e=>({class:l,config:e})},479:t=>{t.exports=e}},a={};return function e(s){var i=a[s];if(void 0!==i)return i.exports;var l=a[s]={exports:{}};return t[s].call(l.exports,l,l.exports,e),l.exports}(823)})())); //# sourceMappingURL=MobxReactFormValidatorDVR.umd.min.js.map