@shopmacher/validate
Advanced tools
Comparing version 1.4.0 to 1.5.0
@@ -1,1 +0,1 @@ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.validate=t():e.validate=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(2),i=function(e){return e&&e.__esModule?e:{default:e}}(r);n(14);t.default=i.default,e.exports=t.default},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;t.length>n;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=n(3),u=function(e){return e&&e.__esModule?e:{default:e}}(o),s=n(5),f=r(s),c=n(13),l=r(c);t.default=function(){function e(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(i(this,e),this.$ref=null,this.$errorRef=null,this.options={},this.activeValidators=[],this.register=function(e){var t=n.$ref.getAttribute("data-validate-"+e.attr),r=n.$ref.getAttribute("data-validate-"+e.attr+"-message");(t||r)&&n.activeValidators.push(e.create(n.$ref,{value:t,message:r}))},this.validate=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.CHANGE;return new Promise(function(e){if(!n.options.hidden&&null===n.$ref.offsetParent)return n.$ref.classList.remove("sm-validate-error"),e(!0);var r=n.activeValidators.reduce(function(e,r){var i=r.message||n.options.invalidMessage;if(!1===r[t])return e;var a=r.isValid();return e.concat(new Promise(function(e){return a instanceof Promise?a.then(function(t){return e({isValid:t,message:i})}):e({isValid:a,message:i})}))},[]);return Promise.all(r).then(function(t){var r=t.reduce(function(e,t){var n=t.isValid,r=t.message;return!n&&-1===e.indexOf(r)&&r?e.concat(r):e},[]),i=r.indexOf(n.options.empty.message);i>-1&&(r=[r[i]]);var a=0===r.length;return a?n.$ref.classList.remove("sm-validate-error"):n.$ref.classList.add("sm-validate-error"),n.$errorRef&&(n.$errorRef.innerHTML=r.join("<br/>")),e(a)})})},!(this.$ref=t))throw Error("Validator needs an element reference, to be initialized.");var a=this.$ref.dataset,o=a.validateEmptyMessage,s=a.validateDebounce,c=a.validateMessageCount,d=a.validateInvalidMessage,v=a.validateErrorElement,p=a.validateHidden;switch(this.options={empty:{message:o},trigger:{debounce:s?parseInt(s,10):300},invalidMessage:d,messageCount:c,hidden:void 0===p||"true"===p},v&&(this.$errorRef=document.querySelector(v)),Object.keys(f).forEach(function(e){var t=f[e];t.attr&&n.register(t)}),r.forEach(this.register),this.validateDebounced=(0,u.default)(this.validate,this.options.trigger.debounce),this.$ref.type){case"checkbox":this.$ref.addEventListener("change",this.validate);break;default:this.$ref.addEventListener("keyup",this.validateDebounced),this.$ref.addEventListener("blur",this.validate)}}return a(e,null,[{key:"init",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document,r=n.querySelectorAll('[data-validate="true"]');return Array.prototype.map.call(r,function(n){return new e(n,t)})}},{key:"attachToForm",value:function(e,t){e.addEventListener("submit",function(n){n.preventDefault();var r=t.map(function(e){return e.validate(n,l.SUBMIT)});Promise.all(r).then(function(t){t.some(function(e){return!e})||(e.dispatchEvent(new CustomEvent("smValidate",{detail:{isValid:!0}})),e.submit())})})}}]),e}(),e.exports=t.default},function(e,t,n){"use strict";(function(t){function n(e,t,n){function i(t){var n=m,r=y;return m=y=void 0,M=t,h=e.apply(r,n)}function a(e){return M=e,b=setTimeout(c,t),$?i(e):h}function u(e){var n=e-x,r=e-M,i=t-n;return w?j(i,g-r):i}function f(e){var n=e-x,r=e-M;return void 0===x||n>=t||0>n||w&&r>=g}function c(){var e=O();if(f(e))return l(e);b=setTimeout(c,u(e))}function l(e){return b=void 0,P&&m?i(e):(m=y=void 0,h)}function d(){void 0!==b&&clearTimeout(b),M=0,m=x=y=b=void 0}function v(){return void 0===b?h:l(O())}function p(){var e=O(),n=f(e);if(m=arguments,y=this,x=e,n){if(void 0===b)return a(x);if(w)return b=setTimeout(c,t),i(x)}return void 0===b&&(b=setTimeout(c,t)),h}var m,y,g,h,b,x,M=0,$=!1,w=!1,P=!0;if("function"!=typeof e)throw new TypeError(s);return t=o(t)||0,r(n)&&($=!!n.leading,w="maxWait"in n,g=w?_(o(n.maxWait)||0,t):g,P="trailing"in n?!!n.trailing:P),p.cancel=d,p.flush=v,p}function r(e){var t=void 0===e?"undefined":u(e);return!!e&&("object"==t||"function"==t)}function i(e){return!!e&&"object"==(void 0===e?"undefined":u(e))}function a(e){return"symbol"==(void 0===e?"undefined":u(e))||i(e)&&x.call(e)==c}function o(e){if("number"==typeof e)return e;if(a(e))return f;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(l,"");var n=v.test(e);return n||p.test(e)?m(e.slice(2),n?2:8):d.test(e)?f:+e}var u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s="Expected a function",f=NaN,c="[object Symbol]",l=/^\s+|\s+$/g,d=/^[-+]0x[0-9a-f]+$/i,v=/^0b[01]+$/i,p=/^0o[0-7]+$/i,m=parseInt,y="object"==(void 0===t?"undefined":u(t))&&t&&t.Object===Object&&t,g="object"==("undefined"==typeof self?"undefined":u(self))&&self&&self.Object===Object&&self,h=y||g||Function("return this")(),b=Object.prototype,x=b.toString,_=Math.max,j=Math.min,O=function(){return h.Date.now()};e.exports=n}).call(t,n(4))},function(e,t,n){"use strict";var r,i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(e){"object"===("undefined"==typeof window?"undefined":i(window))&&(r=window)}e.exports=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.compare=t.checked=t.regex=t.dataType=t.empty=t.maxLength=t.minLength=void 0;var i=n(6),a=r(i),o=n(7),u=r(o),s=n(8),f=r(s),c=n(9),l=r(c),d=n(10),v=r(d),p=n(11),m=r(p),y=n(12),g=r(y);t.minLength=a.default,t.maxLength=u.default,t.empty=f.default,t.dataType=l.default,t.regex=v.default,t.checked=m.default,t.compare=g.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={attr:"minlength",create:function(e,t){var n=t.value,r=t.message;return{isValid:function(){return e.value.length>=n},message:r}}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={attr:"maxlength",create:function(e,t){var n=t.value,r=t.message;return{isValid:function(){return n>e.value.length},message:r}}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={attr:"empty",create:function(e,t){var n=t.message;return{isValid:function(){return e.value.length>0},message:n}}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={attr:"type",create:function(e,t){var n=t.value,r=t.message;return{isValid:function(){var t=e.value;switch(n){case"number":var r=parseInt(t,10);return"number"==typeof r&&!isNaN(r);case"text":return"string"==typeof t;case"email":return/.+@.+\..{2,}/i.test(t);default:return!1}},message:r}}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={attr:"regex",create:function(e,t){var n=t.value,r=t.message;return{isValid:function(){return 0===e.value.length||RegExp(n).test(e.value)},message:r}}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={attr:"checked",create:function(e,t){var n=t.value,r=t.message;return{isValid:function(){return e.checked===("true"===n)},message:r}}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={attr:"compare",create:function(e,t){var n=t.value,r=t.message;return{isValid:function(){var t=document.querySelector(n);if(t)return t.value===e.value},message:r}}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.SUBMIT="triggerOnSubmit",t.CHANGE="triggerOnChange"},function(e,t){}])}); | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.validate=t():e.validate=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(2),i=function(e){return e&&e.__esModule?e:{default:e}}(r);n(14);t.default=i.default,e.exports=t.default},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;t.length>n;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=n(3),u=function(e){return e&&e.__esModule?e:{default:e}}(o),s=n(5),f=r(s),c=n(13),l=r(c);t.default=function(){function e(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(i(this,e),this.$ref=null,this.$errorRef=null,this.options={},this.activeValidators=[],this.register=function(e){var t=n.$ref.getAttribute("data-validate-"+e.attr),r=n.$ref.getAttribute("data-validate-"+e.attr+"-message");(t||r)&&n.activeValidators.push(e.create(n.$ref,{value:t,message:r}))},this.validate=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.CHANGE;return new Promise(function(e){if(!n.options.hidden&&null===n.$ref.offsetParent)return n.$ref.classList.remove("sm-validate-error"),e(!0);var r=n.activeValidators.reduce(function(e,r){var i=r.message||n.options.invalidMessage;if(!1===r[t])return e;var a=r.isValid();return e.concat(new Promise(function(e){return a instanceof Promise?a.then(function(t){return e({isValid:t,message:i})}):e({isValid:a,message:i})}))},[]);return Promise.all(r).then(function(t){var r=t.reduce(function(e,t){var n=t.isValid,r=t.message;return!n&&-1===e.indexOf(r)&&r?e.concat(r):e},[]),i=r.indexOf(n.options.empty.message);i>-1&&(r=[r[i]]);var a=0===r.length;return a?n.$ref.classList.remove("sm-validate-error"):n.$ref.classList.add("sm-validate-error"),n.$errorRef&&(n.$errorRef.innerHTML=r.join("<br/>")),e(a)})})},!(this.$ref=t))throw Error("Validator needs an element reference, to be initialized.");var a=this.$ref.dataset,o=a.validateEmptyMessage,s=a.validateDebounce,c=a.validateMessageCount,d=a.validateInvalidMessage,v=a.validateErrorElement,p=a.validateHidden;switch(this.options={empty:{message:o},trigger:{debounce:s?parseInt(s,10):300},invalidMessage:d,messageCount:c,hidden:void 0===p||"true"===p},v&&(this.$errorRef=document.querySelector(v)),Object.keys(f).forEach(function(e){var t=f[e];t.attr&&n.register(t)}),r.forEach(this.register),this.validateDebounced=(0,u.default)(this.validate,this.options.trigger.debounce),this.$ref.type){case"checkbox":this.$ref.addEventListener("change",this.validate);break;default:this.$ref.addEventListener("keyup",this.validateDebounced),this.$ref.addEventListener("blur",this.validate)}}return a(e,null,[{key:"init",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document,r=n.querySelectorAll('[data-validate="true"]');return Array.prototype.map.call(r,function(n){return new e(n,t)})}},{key:"attachToForm",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.preventSubmit;e.addEventListener("submit",function(n){n.preventDefault();var i=t.map(function(e){return e.validate(n,l.SUBMIT)});Promise.all(i).then(function(t){t.some(function(e){return!e})||(e.dispatchEvent(new CustomEvent("smValidate",{detail:{isValid:!0}})),r||e.submit())})})}}]),e}(),e.exports=t.default},function(e,t,n){"use strict";(function(t){function n(e,t,n){function i(t){var n=m,r=y;return m=y=void 0,M=t,h=e.apply(r,n)}function a(e){return M=e,b=setTimeout(c,t),$?i(e):h}function u(e){var n=e-x,r=e-M,i=t-n;return w?j(i,g-r):i}function f(e){var n=e-x,r=e-M;return void 0===x||n>=t||0>n||w&&r>=g}function c(){var e=O();if(f(e))return l(e);b=setTimeout(c,u(e))}function l(e){return b=void 0,P&&m?i(e):(m=y=void 0,h)}function d(){void 0!==b&&clearTimeout(b),M=0,m=x=y=b=void 0}function v(){return void 0===b?h:l(O())}function p(){var e=O(),n=f(e);if(m=arguments,y=this,x=e,n){if(void 0===b)return a(x);if(w)return b=setTimeout(c,t),i(x)}return void 0===b&&(b=setTimeout(c,t)),h}var m,y,g,h,b,x,M=0,$=!1,w=!1,P=!0;if("function"!=typeof e)throw new TypeError(s);return t=o(t)||0,r(n)&&($=!!n.leading,w="maxWait"in n,g=w?_(o(n.maxWait)||0,t):g,P="trailing"in n?!!n.trailing:P),p.cancel=d,p.flush=v,p}function r(e){var t=void 0===e?"undefined":u(e);return!!e&&("object"==t||"function"==t)}function i(e){return!!e&&"object"==(void 0===e?"undefined":u(e))}function a(e){return"symbol"==(void 0===e?"undefined":u(e))||i(e)&&x.call(e)==c}function o(e){if("number"==typeof e)return e;if(a(e))return f;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(l,"");var n=v.test(e);return n||p.test(e)?m(e.slice(2),n?2:8):d.test(e)?f:+e}var u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s="Expected a function",f=NaN,c="[object Symbol]",l=/^\s+|\s+$/g,d=/^[-+]0x[0-9a-f]+$/i,v=/^0b[01]+$/i,p=/^0o[0-7]+$/i,m=parseInt,y="object"==(void 0===t?"undefined":u(t))&&t&&t.Object===Object&&t,g="object"==("undefined"==typeof self?"undefined":u(self))&&self&&self.Object===Object&&self,h=y||g||Function("return this")(),b=Object.prototype,x=b.toString,_=Math.max,j=Math.min,O=function(){return h.Date.now()};e.exports=n}).call(t,n(4))},function(e,t,n){"use strict";var r,i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(e){"object"===("undefined"==typeof window?"undefined":i(window))&&(r=window)}e.exports=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.compare=t.checked=t.regex=t.dataType=t.empty=t.maxLength=t.minLength=void 0;var i=n(6),a=r(i),o=n(7),u=r(o),s=n(8),f=r(s),c=n(9),l=r(c),d=n(10),v=r(d),p=n(11),m=r(p),y=n(12),g=r(y);t.minLength=a.default,t.maxLength=u.default,t.empty=f.default,t.dataType=l.default,t.regex=v.default,t.checked=m.default,t.compare=g.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={attr:"minlength",create:function(e,t){var n=t.value,r=t.message;return{isValid:function(){return e.value.length>=n},message:r}}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={attr:"maxlength",create:function(e,t){var n=t.value,r=t.message;return{isValid:function(){return n>e.value.length},message:r}}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={attr:"empty",create:function(e,t){var n=t.message;return{isValid:function(){return e.value.length>0},message:n}}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={attr:"type",create:function(e,t){var n=t.value,r=t.message;return{isValid:function(){var t=e.value;switch(n){case"number":var r=parseInt(t,10);return"number"==typeof r&&!isNaN(r);case"text":return"string"==typeof t;case"email":return/.+@.+\..{2,}/i.test(t);default:return!1}},message:r}}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={attr:"regex",create:function(e,t){var n=t.value,r=t.message;return{isValid:function(){return 0===e.value.length||RegExp(n).test(e.value)},message:r}}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={attr:"checked",create:function(e,t){var n=t.value,r=t.message;return{isValid:function(){return e.checked===("true"===n)},message:r}}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={attr:"compare",create:function(e,t){var n=t.value,r=t.message;return{isValid:function(){var t=document.querySelector(n);if(t)return t.value===e.value},message:r}}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.SUBMIT="triggerOnSubmit",t.CHANGE="triggerOnChange"},function(e,t){}])}); |
{ | ||
"name": "@shopmacher/validate", | ||
"version": "1.4.0", | ||
"version": "1.5.0", | ||
"description": "Extensible JavaScript form validation library", | ||
@@ -65,3 +65,6 @@ "main": "lib/validate.js", | ||
"lodash.debounce": "^4.0.8" | ||
}, | ||
"publishOptions": { | ||
"access": "public" | ||
} | ||
} |
@@ -88,3 +88,3 @@ # sm-validate | ||
const validators = Validator.init(); | ||
Validator.attachToForm($form, validators); | ||
Validator.attachToForm($form, validators, {}); | ||
``` | ||
@@ -95,2 +95,8 @@ | ||
Additionally, the third argument of the `attachToForm` method is an options | ||
object that can be used to configure the behavior of the validation further. | ||
It can have the following options: | ||
* `preventSubmit` (boolean, default: false) - prevents the submitting of the form, even if it is valid | ||
### Configuration | ||
@@ -97,0 +103,0 @@ To validate an input, the library provides a set of basic validators that |
@@ -162,4 +162,7 @@ import debounce from 'lodash.debounce'; | ||
* @param validators | ||
* @param options | ||
*/ | ||
static attachToForm($form, validators) { | ||
static attachToForm($form, validators, options = {}) { | ||
const { preventSubmit } = options; | ||
$form.addEventListener('submit', (event) => { | ||
@@ -180,3 +183,5 @@ event.preventDefault(); | ||
$form.submit(); | ||
if (!preventSubmit) { | ||
$form.submit(); | ||
} | ||
}); | ||
@@ -183,0 +188,0 @@ }); |
Sorry, the diff of this file is not supported yet
38729
29
355
240