peryl 1.4.39 → 1.4.42
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/README.md +8 -7
- package/dist/cache.js +1 -0
- package/dist/cache.js.map +1 -1
- package/dist/debounce.js +1 -0
- package/dist/debounce.js.map +1 -1
- package/dist/dom.js +1 -0
- package/dist/dom.js.map +1 -1
- package/dist/encode.js +1 -0
- package/dist/encode.js.map +1 -1
- package/dist/events.js +1 -0
- package/dist/events.js.map +1 -1
- package/dist/form.js +1 -0
- package/dist/form.js.map +1 -1
- package/dist/google-analytics.js +1 -0
- package/dist/google-analytics.js.map +1 -1
- package/dist/hash.d.ts +3 -0
- package/dist/hash.js +16 -3
- package/dist/hash.js.map +1 -1
- package/dist/history.js +1 -0
- package/dist/history.js.map +1 -1
- package/dist/hsml-app.d.ts +2 -3
- package/dist/hsml-app.js +6 -6
- package/dist/hsml-app.js.map +1 -1
- package/dist/hsml-convert.js +1 -0
- package/dist/hsml-convert.js.map +1 -1
- package/dist/hsml-dom.js +1 -0
- package/dist/hsml-dom.js.map +1 -1
- package/dist/hsml-h.js +1 -0
- package/dist/hsml-h.js.map +1 -1
- package/dist/hsml-html.js +1 -0
- package/dist/hsml-html.js.map +1 -1
- package/dist/hsml-idom.js +2 -1
- package/dist/hsml-idom.js.map +1 -1
- package/dist/hsml-svac-ctrl.js +1 -0
- package/dist/hsml-svac-ctrl.js.map +1 -1
- package/dist/hsml-svac-html.js +1 -0
- package/dist/hsml-svac-html.js.map +1 -1
- package/dist/hsml-widget.js +1 -0
- package/dist/hsml-widget.js.map +1 -1
- package/dist/hsml.js +1 -0
- package/dist/hsml.js.map +1 -1
- package/dist/http.js +1 -0
- package/dist/http.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/load.js +1 -0
- package/dist/load.js.map +1 -1
- package/dist/objpaths.js +1 -0
- package/dist/objpaths.js.map +1 -1
- package/dist/router.js +1 -0
- package/dist/router.js.map +1 -1
- package/dist/settings.js +1 -0
- package/dist/settings.js.map +1 -1
- package/dist/signal.js +1 -0
- package/dist/signal.js.map +1 -1
- package/dist/template.js +1 -0
- package/dist/template.js.map +1 -1
- package/dist/tmpl.js +1 -0
- package/dist/tmpl.js.map +1 -1
- package/dist/umd/cache.js +1 -1
- package/dist/umd/cache.js.map +1 -1
- package/dist/umd/debounce.js +1 -1
- package/dist/umd/debounce.js.map +1 -1
- package/dist/umd/dom.js +1 -1
- package/dist/umd/dom.js.map +1 -1
- package/dist/umd/encode.js +1 -1
- package/dist/umd/encode.js.map +1 -1
- package/dist/umd/events.js +1 -1
- package/dist/umd/events.js.map +1 -1
- package/dist/umd/form.js +1 -1
- package/dist/umd/form.js.map +1 -1
- package/dist/umd/google-analytics.js +1 -1
- package/dist/umd/google-analytics.js.map +1 -1
- package/dist/umd/hash.js +1 -1
- package/dist/umd/hash.js.map +1 -1
- package/dist/umd/history.js +1 -1
- package/dist/umd/history.js.map +1 -1
- package/dist/umd/hsml-app.js +1 -1
- package/dist/umd/hsml-app.js.map +1 -1
- package/dist/umd/hsml-convert.js +1 -1
- package/dist/umd/hsml-convert.js.map +1 -1
- package/dist/umd/hsml-dom.js +1 -1
- package/dist/umd/hsml-dom.js.map +1 -1
- package/dist/umd/hsml-h.js +1 -1
- package/dist/umd/hsml-h.js.map +1 -1
- package/dist/umd/hsml-html.js +1 -1
- package/dist/umd/hsml-html.js.map +1 -1
- package/dist/umd/hsml-idom.js +1 -1
- package/dist/umd/hsml-idom.js.map +1 -1
- package/dist/umd/hsml-svac-ctrl.js +1 -1
- package/dist/umd/hsml-svac-ctrl.js.map +1 -1
- package/dist/umd/hsml-svac-html.js +1 -1
- package/dist/umd/hsml-svac-html.js.map +1 -1
- package/dist/umd/hsml-widget.js +1 -1
- package/dist/umd/hsml-widget.js.map +1 -1
- package/dist/umd/hsml.js +1 -1
- package/dist/umd/hsml.js.map +1 -1
- package/dist/umd/http.js +1 -1
- package/dist/umd/http.js.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/dist/umd/load.js +1 -1
- package/dist/umd/load.js.map +1 -1
- package/dist/umd/objpaths.js +1 -1
- package/dist/umd/objpaths.js.map +1 -1
- package/dist/umd/router.js +1 -1
- package/dist/umd/router.js.map +1 -1
- package/dist/umd/settings.js +1 -1
- package/dist/umd/settings.js.map +1 -1
- package/dist/umd/signal.js +1 -1
- package/dist/umd/signal.js.map +1 -1
- package/dist/umd/template.js +1 -1
- package/dist/umd/template.js.map +1 -1
- package/dist/umd/tmpl.js +1 -1
- package/dist/umd/tmpl.js.map +1 -1
- package/dist/umd/validators-moment.js +1 -1
- package/dist/umd/validators-moment.js.map +1 -1
- package/dist/umd/validators-numeral.js +1 -1
- package/dist/umd/validators-numeral.js.map +1 -1
- package/dist/umd/validators-object.js +1 -1
- package/dist/umd/validators-object.js.map +1 -1
- package/dist/umd/validators.js +1 -1
- package/dist/umd/validators.js.map +1 -1
- package/dist/validators-moment.js +1 -0
- package/dist/validators-moment.js.map +1 -1
- package/dist/validators-numeral.js +1 -0
- package/dist/validators-numeral.js.map +1 -1
- package/dist/validators-object.js +1 -0
- package/dist/validators-object.js.map +1 -1
- package/dist/validators.js +1 -4
- package/dist/validators.js.map +1 -1
- package/package.json +1 -1
- package/src/hash.ts +20 -2
- package/src/hsml-app.ts +6 -8
- package/src/hsml-idom.ts +2 -2
- package/src/validators.ts +4 -4
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(t,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r(require("moment"));else if("function"==typeof define&&define.amd)define(["moment"],r);else{var e="object"==typeof exports?r(require("moment")):r(t.moment);for(var n in e)("object"==typeof exports?exports:t)[n]=e[n]}}(window,(function(t){return function(t){var r={};function e(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,e),i.l=!0,i.exports}return e.m=t,e.c=r,e.d=function(t,r,n){e.o(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:n})},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.t=function(t,r){if(1&r&&(t=e(t)),8&r)return t;if(4&r&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(e.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&r&&"string"!=typeof t)for(var i in t)e.d(n,i,function(r){return t[r]}.bind(null,i));return n},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,"a",r),r},e.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},e.p="",e(e.s=31)}({3:function(t,r,e){"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.emailRegex=/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/,r.phoneRgex=/^(((00)([- ]?)|\+)(\d{1,3})([- ]?))?((\d{3})([- ]?))((\d{3})([- ]?))(\d{3})$/,r.pscRgex=/^\d{3} ?\d{2}$/,r.rodneCisloRgex=/^\s*(\d\d)(\d\d)(\d\d)[ /]*(\d\d\d)(\d?)\s*$/;class n{constructor(t,r){this.str=null,this.err=null,this.obj=null,this.opts=t||{},this.msgs=r||{}}validate(t){if("string"==typeof t||null==t){const r=t;this.str=r;const e=this.strToObj(r);if(this.obj=e.obj,e.err)return this.err=e.err,{str:null==r?"":r,obj:e.obj,err:e.err};const n=this.objCheck(e.obj);return this.err=n,{str:null==r?"":r,obj:e.obj,err:n}}{this.str=null==t?null:""+t;const r=this.objCheck(t);return this.err=r,{str:this.str,obj:t,err:r}}}format(t,r){const e=this.objToStr(t,r);return{str:void 0===e.str||null===e.str?"":e.str,err:e.err}}}function i(t,r){return Object.keys(r).map(t=>[t,r[t]]).reduce((t,r)=>t.replace(new RegExp(`\\{\\{${r[0]}\\}\\}`,"g"),String(r[1])),t)}r.Validator=n,r.tpl=i;r.SelectValidator=class extends n{constructor(t,r){super(t,r)}strToObj(t){const r=this.opts,e=this.msgs;return"required"in r&&r.required&&!t?{obj:null,err:e.required?i(e.required,Object.assign(Object.assign({},r.data),{options:"options"in r?r.options.join(", "):""})):"required"}:{obj:void 0===t?null:t,err:""}}objCheck(t){if(null==t)return"";const r=this.opts,e=this.msgs;return"options"in r&&t&&-1===r.options.indexOf(t)?e.invalid_option?i(e.invalid_option,Object.assign(Object.assign({},r.data),{option:null===t?"":t,options:"options"in r?r.options.join(", "):""})):"invalid_option":""}objToStr(t,r){return{str:t||"",err:""}}};class
|
|
1
|
+
!function(t,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r(require("moment"));else if("function"==typeof define&&define.amd)define(["moment"],r);else{var e="object"==typeof exports?r(require("moment")):r(t.moment);for(var n in e)("object"==typeof exports?exports:t)[n]=e[n]}}(window,(function(t){return function(t){var r={};function e(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,e),i.l=!0,i.exports}return e.m=t,e.c=r,e.d=function(t,r,n){e.o(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:n})},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.t=function(t,r){if(1&r&&(t=e(t)),8&r)return t;if(4&r&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(e.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&r&&"string"!=typeof t)for(var i in t)e.d(n,i,function(r){return t[r]}.bind(null,i));return n},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,"a",r),r},e.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},e.p="",e(e.s=31)}({3:function(t,r,e){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.FormValidator=r.BooleanValidator=r.DateValidator=r.NumberValidator=r.StringValidator=r.SelectValidator=r.tpl=r.Validator=r.rodneCisloRgex=r.pscRgex=r.phoneRgex=r.emailRegex=void 0;r.emailRegex=/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/,r.phoneRgex=/^(((00)([- ]?)|\+)(\d{1,3})([- ]?))?((\d{3})([- ]?))((\d{3})([- ]?))(\d{3})$/,r.pscRgex=/^\d{3} ?\d{2}$/,r.rodneCisloRgex=/^\s*(\d\d)(\d\d)(\d\d)[ /]*(\d\d\d)(\d?)\s*$/;class n{constructor(t,r){this.str=null,this.err=null,this.obj=null,this.opts=t||{},this.msgs=r||{}}validate(t){if("string"==typeof t||null==t){const r=t;this.str=r;const e=this.strToObj(r);if(this.obj=e.obj,e.err)return this.err=e.err,{str:null==r?"":r,obj:e.obj,err:e.err};const n=this.objCheck(e.obj);return this.err=n,{str:null==r?"":r,obj:e.obj,err:n}}{this.str=null==t?null:""+t;const r=this.objCheck(t);return this.err=r,{str:this.str,obj:t,err:r}}}format(t,r){const e=this.objToStr(t,r);return{str:void 0===e.str||null===e.str?"":e.str,err:e.err}}}function i(t,r){return Object.keys(r).map(t=>[t,r[t]]).reduce((t,r)=>t.replace(new RegExp(`\\{\\{${r[0]}\\}\\}`,"g"),String(r[1])),t)}r.Validator=n,r.tpl=i;r.SelectValidator=class extends n{constructor(t,r){super(t,r)}strToObj(t){const r=this.opts,e=this.msgs;return"required"in r&&r.required&&!t?{obj:null,err:e.required?i(e.required,Object.assign(Object.assign({},r.data),{options:"options"in r?r.options.join(", "):""})):"required"}:{obj:void 0===t?null:t,err:""}}objCheck(t){if(null==t)return"";const r=this.opts,e=this.msgs;return"options"in r&&t&&-1===r.options.indexOf(t)?e.invalid_option?i(e.invalid_option,Object.assign(Object.assign({},r.data),{option:null===t?"":t,options:"options"in r?r.options.join(", "):""})):"invalid_option":""}objToStr(t,r){return{str:t||"",err:""}}};r.StringValidator=class extends n{constructor(t,r){super(t,r)}strToObj(t){const r=this.opts,e=this.msgs;return"required"in r&&r.required&&!t?{obj:null,err:e.required?i(e.required,Object.assign(Object.assign({},r.data),{min:"min"in r?""+r.min:"",max:"max"in r?""+r.max:"",regexp:"regexp"in r?""+r.regexp:""})):"required"}:t?"regexp"in r&&!r.regexp.test(t)?{obj:null,err:e.invalid_format?i(e.invalid_format,Object.assign(Object.assign({},r.data),{regexp:"regexp"in r?""+r.regexp:""})):"invalid_format"}:{obj:t,err:""}:{obj:null,err:""}}objCheck(t){if(null==t)return"";const r=this.opts,e=this.msgs;let n=!1;return"max"in r&&t.length>r.max&&(n=!0),"min"in r&&t.length<r.min&&(n=!0),"min"in r&&"max"in r&&t.length>r.max&&t.length<r.min&&(n=!0),n?e.not_in_range?i(e.not_in_range,Object.assign(Object.assign({},r.data),{min:"min"in r?""+r.min:"",max:"max"in r?""+r.max:""})):"not_in_range":""}objToStr(t,r){return{str:t||"",err:""}}};r.NumberValidator=class extends n{constructor(t,r){super(t,r)}strToObj(t){const r=this.opts,e=this.msgs;if("required"in r&&r.required&&!t)return{obj:null,err:e.required?i(e.required,Object.assign(Object.assign({},r.data),{min:"min"in r?""+r.min:"",max:"max"in r?""+r.max:""})):"required"};if(t){const n=Number(t);let o=!1;if(isNaN(n)&&(o=!0),r.strict&&t!==this.objToStr(n).str&&(o=!0),o){const t=isNaN(n)?1234.45:n;return{obj:isNaN(n)?null:n,err:e.invalid_format?i(e.invalid_format,Object.assign(Object.assign({},r.data),{num:this.objToStr(t).str||""})):"invalid_format"}}return{obj:n,err:""}}return{obj:null,err:""}}objCheck(t){if(null==t)return"";const r=this.opts,e=this.msgs;let n=!1;return"max"in r&&t>r.max&&(n=!0),"min"in r&&t<r.min&&(n=!0),n?e.not_in_range?i(e.not_in_range,Object.assign(Object.assign({},r.data),{min:"min"in r?""+r.min:"",max:"max"in r?""+r.max:""})):"not_in_range":""}objToStr(t,r){let e;return e=null==t?"":"decimals"in this.opts?t.toFixed(this.opts.decimals):String(t),{str:e,err:""}}};const o=t=>t.toLocaleString(),s=t=>t.toLocaleDateString();r.DateValidator=class extends n{constructor(t,r){super(t,r),this.dateToStr=(null==t?void 0:t.dateOnly)?s:o,(null==t?void 0:t.dateOnly)&&(null==t?void 0:t.min)&&(t.min=new Date(t.min.getFullYear(),t.min.getMonth(),t.min.getDate())),(null==t?void 0:t.dateOnly)&&(null==t?void 0:t.max)&&(t.max=new Date(t.max.getFullYear(),t.max.getMonth(),t.max.getDate()+1))}strToObj(t){const r=this.opts,e=this.msgs;if("required"in r&&r.required&&!t)return{obj:null,err:e.required?i(e.required,Object.assign(Object.assign({},r.data),{min:"min"in r&&r.min?this.dateToStr(r.min):"",max:"max"in r&&r.max?this.dateToStr(r.max):""})):"required"};if(t){const n=Date.parse(t);let o=new Date(n);r.dateOnly&&(o=new Date(o.getFullYear(),o.getMonth(),o.getDate()));let s=!1;if(isNaN(n)&&(s=!0),s){const t=isNaN(n)?new Date:o;return{obj:isNaN(n)?null:o,err:e.invalid_format?i(e.invalid_format,Object.assign(Object.assign({},r.data),{date:this.objToStr(t).str||""})):"invalid_format"}}return{obj:o,err:""}}return{obj:null,err:""}}objCheck(t){if(null==t)return"";const r=this.opts,e=this.msgs;let n=!1;return"max"in r&&r.max&&t.getTime()>r.max.getTime()&&(n=!0),"min"in r&&r.min&&t<r.min&&(n=!0),n?e.not_in_range?i(e.not_in_range,Object.assign(Object.assign({},r.data),{min:"min"in r&&r.min?this.dateToStr(r.min):"",max:"max"in r&&r.max?this.dateToStr(r.max):""})):"not_in_range":""}objToStr(t,r){return{str:null==t?"":this.dateToStr(t),err:""}}};r.BooleanValidator=class extends n{constructor(t,r){super(t,r)}strToObj(t){const r=this.opts,e=this.msgs;if("required"in r&&r.required&&!t)return{obj:null,err:e.required?i(e.required,Object.assign({},r.data)):"required"};let n;switch(t){case"true":case"1":case"on":case"yes":n=!0;break;default:n=!1}return{obj:n,err:""}}objCheck(t){if(null==t)return"";const r=this.opts,e=this.msgs;let n=!1;return"value"in r&&t!==r.value&&(n=!0),n?e.invalid_value?i(e.invalid_value,Object.assign(Object.assign({},r.data),{value:"value"in r?""+r.value:""})):"invalid_value":""}objToStr(t,r){return{str:null==t?"":""+t,err:""}}};r.FormValidator=class{constructor(){this.validators={}}addValidator(t,r){return this.validators[t]=r,this}validate(t){const r=Object.keys(this.validators).reduce((r,e)=>{const n=t[e],i=this.validators[e].validate(n);return r.str[e]=i.str,r.obj[e]=i.obj,r.err[e]=i.err,i.err&&(r.valid=!1),r},{str:{},obj:{},err:{},valid:!0});return this.str=r.str,this.obj=r.obj,this.err=r.err,this.valid=r.valid,this}format(t){const r=Object.keys(this.validators).reduce((r,e)=>{const n=t[e],i=this.validators[e].format(n);return r.str[e]=i.str,r.obj[e]=n,r.err[e]=i.err,i.err&&(r.valid=!1),r},{str:{},obj:{},err:{},valid:!0});return this.str=r.str,this.obj=r.obj,this.err=r.err,this.valid=r.valid,this}data(){return{str:this.str,obj:this.obj,err:this.err,valid:this.valid}}}},31:function(t,r,e){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.MomentDateValidator=r.MomentValidator=void 0;const n=e(3),i=e(32);class o extends n.Validator{constructor(t,r){super(t,r)}strToObj(t){const r=this.opts,e=this.msgs;if("required"in r&&r.required&&!t)return{obj:null,err:e.required?n.tpl(e.required,{min:"min"in r?""+r.min:"",max:"max"in r?""+r.max:"",locale:"locale"in r?r.locale:"en",format:"format"in r?r.format:"L LT"}):"required"};if(t){const o=i(t,r.format||"L LT",r.locale||"en",r.strict||!1);let s=!1;if(o.isValid()||(s=!0),"strict"in r&&r.strict&&t!==this.objToStr(o).str&&(s=!0),s){const t=o.isValid()?o:i(new Date);return{obj:o.isValid()?o:null,err:e.invalid_format?n.tpl(e.invalid_format,{date:this.objToStr(t).str||"",locale:"locale"in r?r.locale:"en",format:"format"in r?r.format:"L LT"}):"invalid_format"}}return{obj:o,err:""}}return{obj:null,err:""}}objCheck(t){if(null==t)return"";const r=this.opts,e=this.msgs;let i=!1;return"max"in r&&t.isAfter(r.max)&&(i=!0),"min"in r&&t.isBefore(r.min)&&(i=!0),i?e.not_in_range?n.tpl(e.not_in_range,{min:"min"in r?""+r.min:"",max:"max"in r?""+r.max:"",locale:"locale"in r?r.locale:"en",format:"format"in r?r.format:"L LT"}):"not_in_range":""}objToStr(t,r){return{str:null==t?"":t.locale(this.opts.locale||"en").format(r||(this.opts.format||"L LT")),err:""}}}r.MomentValidator=o;class s extends n.Validator{constructor(t,r){super(t,r),this.mv=new o(t,r)}strToObj(t){const r=this.mv.strToObj(t);return r.obj&&(r.obj=r.obj.toDate()),r}objCheck(t){const r=t?i(t):t;return this.mv.objCheck(r)}objToStr(t,r){const e=t?i(t):t;return this.mv.objToStr(e,r)}}r.MomentDateValidator=s},32:function(r,e){r.exports=t}})}));
|
|
2
2
|
//# sourceMappingURL=validators-moment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///./src/validators.ts","webpack:///./src/validators-moment.ts","webpack:///external \"moment\""],"names":["root","factory","exports","module","require","define","amd","a","i","window","__WEBPACK_EXTERNAL_MODULE__32__","installedModules","__webpack_require__","moduleId","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","emailRegex","phoneRgex","pscRgex","rodneCisloRgex","Validator","opts","msgs","str","err","obj","this","v","sto","strToObj","objCheck","format","ots","objToStr","undefined","tpl","tmpl","data","keys","map","k","reduce","replace","RegExp","String","super","required","options","join","indexOf","invalid_option","option","StringValidator","min","max","regexp","test","invalid_format","length","not_in_range","Number","isNaN","strict","num","toFixed","decimals","dateToLocaleString","date","toLocaleString","dateToLocaleDateString","toLocaleDateString","dateToStr","dateOnly","Date","getFullYear","getMonth","getDate","dt","parse","getTime","b","invalid_value","validators","field","validator","res","validate","valid","sr","console","log","MomentValidator","locale","moment","isValid","isAfter","isBefore","MomentDateValidator","mv","toDate","mObj"],"mappings":"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","file":"validators-moment.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"moment\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"moment\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"moment\")) : factory(root[\"moment\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function(__WEBPACK_EXTERNAL_MODULE__32__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 31);\n","const requiredMsg = \"required\";\nconst notInRangeMsg = \"not_in_range\";\nconst invalidFormatMsg = \"invalid_format\";\nconst invalidOptionMsg = \"invalid_option\";\nconst invalidValueMsg = \"invalid_value\";\n\n// name@doamin.net\nexport const emailRegex = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/;\n\n// +421901123456 or +421 901 123 456 or +421-901-123-456 or 901123456 or 901 123 456 or 901-123-456\nexport const phoneRgex = /^(((00)([- ]?)|\\+)(\\d{1,3})([- ]?))?((\\d{3})([- ]?))((\\d{3})([- ]?))(\\d{3})$/;\n\n// 123 45 or 12345\nexport const pscRgex = /^\\d{3} ?\\d{2}$/;\n\n// 450115/8346\nexport const rodneCisloRgex = /^\\s*(\\d\\d)(\\d\\d)(\\d\\d)[ /]*(\\d\\d\\d)(\\d?)\\s*$/;\n\nexport abstract class Validator<TYPE, OPTS, MSGS> {\n\n readonly opts: OPTS;\n readonly msgs: MSGS;\n\n readonly str: string | null = null;\n readonly err: string | null = null;\n readonly obj: TYPE | null = null;\n\n constructor(opts?: OPTS, msgs?: MSGS) {\n this.opts = opts || {} as OPTS;\n this.msgs = msgs || {} as MSGS;\n }\n\n protected abstract strToObj(str?: string | null): { obj: TYPE | null, err: string };\n\n protected abstract objCheck(obj?: TYPE | null): string;\n\n protected abstract objToStr(obj?: TYPE | null,\n format?: string): { str: string, err: string };\n\n validate(value?: string | TYPE): { str?: string | null, obj?: TYPE | null, err: string } {\n if (typeof value === \"string\" || value === undefined || value === null) {\n const v = value as string | null | undefined;\n (this.str as any) = v;\n const sto = this.strToObj(v);\n (this.obj as any) = sto.obj;\n if (sto.err) {\n (this.err as any) = sto.err;\n return {\n str: (v === undefined || v === null) ? \"\" : v,\n obj: sto.obj,\n err: sto.err };\n }\n const err = this.objCheck(sto.obj);\n (this.err as any) = err;\n return {\n str: (v === undefined || v === null) ? \"\" : v,\n obj: sto.obj,\n err\n };\n } else {\n (this.str as any) = (value === undefined || value === null) ? null : (\"\" + value);\n const err = this.objCheck(value);\n (this.err as any) = err;\n return {\n str: this.str,\n obj: value,\n err\n };\n }\n }\n\n format(obj?: TYPE | null, format?: string): { str: string, err: string } {\n // const err = this.objCheck(obj);\n const ots = this.objToStr(obj, format);\n return {\n str: (ots.str === undefined || ots.str === null) ? \"\" : ots.str,\n // err: ots.err ? ots.err : err\n err: ots.err\n };\n }\n\n}\n\nexport function tpl(tmpl: string, data: { [k: string]: any }): string {\n return Object.keys(data)\n .map(k => [k, data[k]])\n .reduce((t, d) =>\n t.replace(new RegExp(`\\\\{\\\\{${d[0]}\\\\}\\\\}`, \"g\"), String(d[1])), tmpl);\n}\n\nexport interface ValidatorDataOpts {\n data?: { [key: string]: any };\n}\n\nexport interface SelectValidatorOpts extends ValidatorDataOpts {\n required?: boolean;\n options?: string[];\n}\n\nexport interface SelectValidatorMsgs {\n required?: string;\n invalid_option?: string;\n}\n\nexport class SelectValidator\n extends Validator<string, SelectValidatorOpts, SelectValidatorMsgs> {\n\n constructor(opts?: SelectValidatorOpts, msgs?: SelectValidatorMsgs) {\n super(opts, msgs);\n }\n\n protected strToObj(str?: string | null): { obj: string | null, err: string } {\n const opts = this.opts;\n const msgs = this.msgs;\n if (\"required\" in opts) {\n if (opts.required && !str) {\n return {\n obj: null,\n err: msgs.required\n ? tpl(msgs.required,\n {\n ...opts.data,\n options: (\"options\" in opts)\n ? opts.options!.join(\", \")\n : \"\"\n })\n : requiredMsg\n };\n }\n }\n return {\n obj: str === undefined ? null : str,\n err: \"\"\n };\n }\n\n protected objCheck(obj?: string | null): string {\n if (obj === undefined || obj === null) {\n return \"\";\n }\n const opts = this.opts;\n const msgs = this.msgs;\n if (\"options\" in opts) {\n if (obj && opts.options!.indexOf(obj) === -1) {\n return msgs.invalid_option\n ? tpl(msgs.invalid_option,\n {\n ...opts.data,\n option: obj === null ? \"\" : obj,\n options: (\"options\" in opts)\n ? opts.options!.join(\", \")\n : \"\"\n })\n : invalidOptionMsg;\n }\n }\n return \"\";\n }\n\n protected objToStr(obj?: string | null,\n format?: string): { str: string, err: string } {\n return { str: obj || \"\", err: \"\" };\n }\n\n}\n\nexport interface StringValidatorOpts extends ValidatorDataOpts {\n required?: boolean;\n min?: number;\n max?: number;\n regexp?: RegExp;\n}\n\nexport interface StringValidatorMsgs {\n required?: string;\n invalid_format?: string;\n not_in_range?: string;\n}\n\nexport class StringValidator\n extends Validator<string, StringValidatorOpts, StringValidatorMsgs> {\n\n constructor(opts?: StringValidatorOpts, msgs?: StringValidatorMsgs) {\n super(opts, msgs);\n }\n\n protected strToObj(str?: string | null): { obj: string | null, err: string } {\n const opts = this.opts;\n const msgs = this.msgs;\n if (\"required\" in opts) {\n if (opts.required && !str) {\n return {\n obj: null,\n err: msgs.required\n ? tpl(msgs.required,\n {\n ...opts.data,\n min: (\"min\" in opts) ? (\"\" + opts.min) : \"\",\n max: (\"max\" in opts) ? (\"\" + opts.max) : \"\",\n regexp: (\"regexp\" in opts)\n ? (\"\" + opts.regexp)\n : \"\"\n })\n : requiredMsg\n };\n }\n }\n if (str) {\n if (\"regexp\" in opts) {\n if (!opts.regexp!.test(str)) {\n return {\n obj: null,\n err: msgs.invalid_format\n ? tpl(msgs.invalid_format,\n {\n ...opts.data,\n regexp: (\"regexp\" in opts)\n ? (\"\" + opts.regexp)\n : \"\"\n })\n : invalidFormatMsg\n };\n }\n }\n return { obj: str , err: \"\" };\n } else {\n return { obj: null, err: \"\" };\n }\n }\n\n protected objCheck(obj?: string | null): string {\n if (obj === undefined || obj === null) {\n return \"\";\n }\n const opts = this.opts;\n const msgs = this.msgs;\n let err: boolean = false;\n if (\"max\" in opts) {\n if (obj.length > opts.max!) {\n err = true;\n }\n }\n if (\"min\" in opts) {\n if (obj.length < opts.min!) {\n err = true;\n }\n }\n if ((\"min\" in opts) && (\"max\" in opts)) {\n if (obj.length > opts.max! && obj.length < opts.min!) {\n err = true;\n }\n }\n if (err) {\n return msgs.not_in_range\n ? tpl(msgs.not_in_range,\n {\n ...opts.data,\n min: (\"min\" in opts) ? (\"\" + opts.min) : \"\",\n max: (\"max\" in opts) ? (\"\" + opts.max) : \"\",\n })\n : notInRangeMsg;\n }\n return \"\";\n }\n\n protected objToStr(obj?: string | null,\n format?: string): { str: string, err: string } {\n return { str: obj || \"\", err: \"\" };\n }\n\n}\n\nexport interface NumberValidatorOpts extends ValidatorDataOpts {\n required?: boolean;\n min?: number;\n max?: number;\n strict?: boolean;\n decimals?: number;\n}\n\nexport interface NumberValidatorMsgs {\n required?: string;\n invalid_format?: string;\n not_in_range?: string;\n}\n\nexport class NumberValidator\n extends Validator<number, NumberValidatorOpts, NumberValidatorMsgs> {\n\n constructor(opts?: NumberValidatorOpts, msgs?: NumberValidatorMsgs) {\n super(opts, msgs);\n }\n\n protected strToObj(str?: string | null): { obj: number | null, err: string } {\n const opts = this.opts;\n const msgs = this.msgs;\n if (\"required\" in opts) {\n if (opts.required && !str) {\n return {\n obj: null,\n err: msgs.required\n ? tpl(msgs.required,\n {\n ...opts.data,\n min: (\"min\" in opts) ? (\"\" + opts.min) : \"\",\n max: (\"max\" in opts) ? (\"\" + opts.max) : \"\",\n })\n : requiredMsg\n };\n }\n }\n if (str) {\n const n = Number(str);\n let err: boolean = false;\n if (isNaN(n)) {\n err = true;\n }\n if (opts.strict && (str !== this.objToStr(n).str)) {\n err = true;\n }\n if (err) {\n const num = isNaN(n) ? 1234.45 : n;\n return {\n obj: isNaN(n) ? null : n,\n err: msgs.invalid_format\n ? tpl(msgs.invalid_format,\n {\n ...opts.data,\n num: this.objToStr(num).str || \"\"\n })\n : invalidFormatMsg\n };\n }\n return { obj: n, err: \"\" };\n } else {\n return { obj: null, err: \"\" };\n }\n }\n\n protected objCheck(obj?: number | null): string {\n if (obj === undefined || obj === null) {\n return \"\";\n }\n const opts = this.opts;\n const msgs = this.msgs;\n let err: boolean = false;\n if (\"max\" in opts) {\n if (obj > opts.max!) {\n err = true;\n }\n }\n if (\"min\" in opts) {\n if (obj < opts.min!) {\n err = true;\n }\n }\n if (err) {\n return msgs.not_in_range\n ? tpl(msgs.not_in_range,\n {\n ...opts.data,\n min: (\"min\" in opts) ? (\"\" + opts.min) : \"\",\n max: (\"max\" in opts) ? (\"\" + opts.max) : \"\",\n })\n : notInRangeMsg;\n }\n return \"\";\n }\n\n protected objToStr(obj?: number | null,\n format?: string): { str: string, err: string } {\n let str;\n if (obj === undefined || obj === null) {\n str = \"\";\n } else {\n if (\"decimals\" in this.opts) {\n str = obj.toFixed(this.opts.decimals);\n } else {\n str = String(obj);\n }\n }\n return {\n str,\n err: \"\"\n };\n }\n\n}\n\nexport interface DateValidatorOpts extends ValidatorDataOpts {\n required?: boolean;\n min?: Date;\n max?: Date;\n dateOnly?: boolean;\n // strict?: boolean;\n\n}\n\nexport interface DateValidatorMsgs {\n required?: string;\n invalid_format?: string;\n not_in_range?: string;\n}\n\nconst dateToLocaleString = (date: Date) => date.toLocaleString();\nconst dateToLocaleDateString = (date: Date) => date.toLocaleDateString();\n\nexport class DateValidator\n extends Validator<Date, DateValidatorOpts, DateValidatorMsgs> {\n\n dateToStr: (date: Date) => string;\n\n constructor(opts?: DateValidatorOpts, msgs?: DateValidatorMsgs) {\n super(opts, msgs);\n this.dateToStr = opts?.dateOnly ? dateToLocaleDateString : dateToLocaleString;\n if (opts?.dateOnly && opts?.min) {\n opts.min = new Date(opts.min.getFullYear(), opts.min.getMonth(), opts.min.getDate());\n }\n if (opts?.dateOnly && opts?.max) {\n opts.max = new Date(opts.max.getFullYear(), opts.max.getMonth(), opts.max.getDate() + 1);\n }\n }\n\n protected strToObj(str?: string | null): { obj: Date | null, err: string } {\n const opts = this.opts;\n const msgs = this.msgs;\n if (\"required\" in opts) {\n if (opts.required && !str) {\n return {\n obj: null,\n err: msgs.required\n ? tpl(msgs.required,\n {\n ...opts.data,\n min: (\"min\" in opts && opts.min) ? this.dateToStr(opts.min) : \"\",\n max: (\"max\" in opts && opts.max) ? this.dateToStr(opts.max) : \"\"\n })\n : requiredMsg\n };\n }\n }\n if (str) {\n const dt = Date.parse(str);\n let d = new Date(dt);\n if (opts.dateOnly) {\n d = new Date(d.getFullYear(), d.getMonth(), d.getDate());\n }\n let err: boolean = false;\n if (isNaN(dt)) {\n err = true;\n }\n // if (opts.strict && (str !== this.objToStr(d).str)) {\n // err = true;\n // }\n if (err) {\n const date = isNaN(dt) ? new Date() : d;\n return {\n obj: isNaN(dt) ? null : d,\n err: msgs.invalid_format\n ? tpl(msgs.invalid_format,\n {\n ...opts.data,\n date: this.objToStr(date).str || \"\"\n })\n : invalidFormatMsg\n };\n }\n return { obj: d, err: \"\" };\n } else {\n return { obj: null, err: \"\" };\n }\n }\n\n protected objCheck(obj?: Date | null): string {\n if (obj === undefined || obj === null) {\n return \"\";\n }\n const opts = this.opts;\n const msgs = this.msgs;\n let err: boolean = false;\n if (\"max\" in opts) {\n if (opts.max && obj.getTime() > opts.max.getTime()) {\n err = true;\n }\n }\n if (\"min\" in opts) {\n if (opts.min && obj < opts.min) {\n err = true;\n }\n }\n if (err) {\n return msgs.not_in_range\n ? tpl(msgs.not_in_range,\n {\n ...opts.data,\n min: (\"min\" in opts && opts.min) ? this.dateToStr(opts.min) : \"\",\n max: (\"max\" in opts && opts.max) ? this.dateToStr(opts.max) : \"\"\n })\n : notInRangeMsg;\n }\n return \"\";\n }\n\n protected objToStr(obj?: Date | null,\n format?: string): { str: string, err: string } {\n return {\n str: (obj === undefined || obj === null) ? \"\" : this.dateToStr(obj),\n err: \"\"\n };\n }\n\n}\n\nexport interface BooleanValidatorOpts extends ValidatorDataOpts {\n required?: boolean;\n value?: boolean;\n}\n\nexport interface BooleanValidatorMsgs {\n required?: string;\n invalid_value?: string;\n}\n\nexport class BooleanValidator\n extends Validator<boolean, BooleanValidatorOpts, BooleanValidatorMsgs> {\n\n constructor(opts?: BooleanValidatorOpts, msgs?: BooleanValidatorMsgs) {\n super(opts, msgs);\n }\n\n protected strToObj(str?: string | null): { obj: boolean | null, err: string } {\n const opts = this.opts;\n const msgs = this.msgs;\n if (\"required\" in opts) {\n if (opts.required && !str) {\n return {\n obj: null,\n err: msgs.required\n ? tpl(msgs.required,\n {\n ...opts.data\n })\n : requiredMsg\n };\n }\n }\n let b;\n switch (str) {\n case \"true\":\n case \"1\":\n case \"on\":\n case \"yes\":\n b = true;\n break;\n default:\n b = false;\n }\n return { obj: b, err: \"\" };\n }\n\n protected objCheck(obj?: boolean | null): string {\n if (obj === undefined || obj === null) {\n return \"\";\n }\n const opts = this.opts;\n const msgs = this.msgs;\n let err = false;\n if (\"value\" in opts) {\n if (obj !== opts.value) {\n err = true;\n }\n }\n if (err) {\n return msgs.invalid_value\n ? tpl(msgs.invalid_value,\n {\n ...opts.data,\n value: (\"value\" in opts) ? (\"\" + opts.value) : \"\",\n })\n : invalidValueMsg;\n }\n return \"\";\n }\n\n protected objToStr(obj?: boolean | null,\n format?: string): { str: string, err: string } {\n return {\n str: (obj === undefined || obj === null) ? \"\" : (\"\" + obj),\n err: \"\"\n };\n }\n\n}\n\ntype FormValidators<TYPE> = { [key in keyof TYPE]: Validator<any, any, any> };\n\nexport type Str<TYPE> = { [key in keyof TYPE]: string };\nexport type Obj<TYPE> = { [key in keyof TYPE]: any };\nexport type Err<TYPE> = { [key in keyof TYPE]: string };\n\nexport interface FormValidatorData<TYPE> {\n str: Str<TYPE>;\n obj: Obj<TYPE>;\n err: Err<TYPE>;\n valid: boolean;\n}\n\nexport class FormValidator<TYPE extends { [key: string]: any }> {\n\n readonly validators: FormValidators<TYPE> = {} as FormValidators<TYPE>;\n\n readonly str?: Str<TYPE>;\n readonly obj?: Obj<TYPE>;\n readonly err?: Err<TYPE>;\n\n readonly valid?: boolean;\n\n addValidator(field: keyof TYPE, validator: Validator<any, any, any>): this {\n this.validators[field] = validator;\n return this;\n }\n\n validate(data: { [key in keyof TYPE]?: string }): this {\n const res = Object.keys(this.validators)\n .reduce(\n (a, k) => {\n const v = (data as any)[k];\n const r = (this.validators as any)[k].validate(v);\n (a.str as any)[k] = r.str;\n (a.obj as any)[k] = r.obj;\n (a.err as any)[k] = r.err;\n r.err && (a.valid = false);\n return a;\n },\n { str: {}, obj: {}, err: {}, valid: true });\n (this.str as any) = res.str;\n (this.obj as any) = res.obj;\n (this.err as any) = res.err;\n (this.valid as any) = res.valid;\n return this;\n }\n\n format(data: { [key in keyof TYPE]: any }): this {\n const res = Object.keys(this.validators)\n .reduce(\n (a, k) => {\n const v = (data as any)[k];\n const r = (this.validators as any)[k].format(v);\n (a.str as any)[k] = r.str;\n (a.obj as any)[k] = v;\n (a.err as any)[k] = r.err;\n r.err && (a.valid = false);\n return a;\n },\n { str: {}, obj: {}, err: {}, valid: true });\n (this.str as any) = res.str;\n (this.obj as any) = res.obj;\n (this.err as any) = res.err;\n (this.valid as any) = res.valid;\n return this;\n }\n\n data(): FormValidatorData<TYPE> {\n return {\n str: this.str!,\n obj: this.obj!,\n err: this.err!,\n valid: this.valid!\n };\n }\n\n}\n\n\n// TEST\n\n// const sv = new StringValidator(\n// {\n// required: true,\n// min: 3,\n// max: 5,\n// // regexp: /^[0123]+$/\n// data: {\n// xxx: \"xXx\"\n// }\n// },\n// {\n// required: \"required {{min}} {{max}} {{regexp}}\",\n// invalid_format: \"invalid_format {{regexp}}\",\n// not_in_range: \"not_in_range {{min}} {{max}} | data.xxx={{xxx}}\"\n// });\n\n// [\n// \"x1234\",\n// \"x1234y\",\n// \"xy\"\n// ].forEach(v => {\n// console.log();\n// console.log(v);\n// const r = sv.validate(v);\n// console.log(r);\n// if (r.obj) {\n// const f = sv.format(r.obj);\n// console.log(f);\n// }\n// });\n\n// console.log();\n\n// const nv = new NumberValidator(\n// {\n// required: true,\n// min: 3,\n// max: 500000,\n// decimals: 2,\n// strict: true\n// },\n// {\n// required: \"required {{min}} {{max}}\",\n// invalid_format: \"invalid_format {{num}}\",\n// not_in_range: \"not_in_range {{min}} {{max}}\"\n// });\n\n// console.log(nv.format(undefined));\n// console.log(nv.format(12345.6789));\n\n// console.log(nv.validate(\"12345.6789\"));\n// console.log(nv.validate(\"12345,6789\"));\n// console.log(nv.validate(\"12,345.6789\"));\n\n// const dv = new DateValidator(\n// {\n// required: false,\n// // min: new Date(),\n// max: new Date(),\n// clearTime: false\n// // strict: true\n// },\n// {\n// required: \"required {{min}} {{max}}\",\n// invalid_format: \"invalid_format {{date}}\",\n// not_in_range: \"not_in_range {{min}} {{max}}\"\n// });\n\n// console.log(dv.opts);\n\n// console.log(dv.format(undefined));\n\n// console.log(dv.format(new Date));\n\n// console.log(dv.validate(\"9/17/2020, 10:46:07 AM\"));\n// console.log(dv.format(dv.obj).str);\n// console.log(dv.validate(\"9/17/2020\"));\n// console.log(dv.format(dv.obj).str);\n// console.log(dv.validate(\"2020-09-17T08:46:07.000Z\"));\n// console.log(dv.format(dv.obj).str);\n// console.log(dv.validate(\"\"));\n// console.log(dv.format(dv.obj).str);\n\n// console.log(new Date().toString());\n// console.log(new Date().toDateString());\n// console.log(new Date().toTimeString());\n// console.log(new Date().toLocaleString());\n// console.log(new Date().toLocaleDateString());\n// console.log(new Date().toLocaleTimeString());\n// console.log();\n// console.log(new Date(Date.parse(new Date().toString())));\n// console.log(new Date(Date.parse(new Date().toDateString())));\n// console.log(new Date(Date.parse(new Date().toTimeString())));\n// console.log(new Date(Date.parse(new Date().toLocaleString())));\n// console.log(new Date(Date.parse(new Date().toLocaleDateString())));\n// console.log(new Date(Date.parse(new Date().toLocaleTimeString())));\n\n// const formData = { str: \"123a\", num: \"123456.789\", date: \"9/17/2020, 10:46:07 AM\" };\n// const formData = { str: \"\", num: \"\", date: \"\" };\n// const formData = { str: undefined, num: undefined, date: undefined };\n\n// const fv = new FormValidator<typeof formData>()\n// .addValidator(\"str\", sv)\n// .addValidator(\"num\", nv)\n// .addValidator(\"date\", dv)\n// .validate(formData);\n\n// console.log(fv.data());\n\n// fv.format(fv.obj!);\n// console.log(fv);\n\n// const ovData = { str: \"123a\", num: \"123.45\", date: \"02.01.2019 12:12\" };\n\n// const ov = new ObjectValidator<typeof ovData>()\n// .addValidator(\"str\", sv)\n// .addValidator(\"num\", nv)\n// // .addValidator(\"date\", dv)\n// .validate(ovData);\n\n// // console.log(ov);\n\n// ov.format(ov.obj!);\n// console.log(ov);\n\n// console.log();\n\n// interface ReportFormData {\n// spz: string;\n// tachometer: string;\n// dateCreated: string;\n// user: {\n// // name: string[];\n// email: string;\n// };\n// }\n\n// const dov = new ObjectValidator<ReportFormData>()\n// .addValidator(\"spz\", new StringValidator({ required: true }))\n// .addValidator(\"tachometer\", new NumberValidator({ required: true, min: 1 } ))\n// .addValidator(\"dateCreated\", new StringValidator({ required: true }))\n// .addValidator(\"user\", new ObjectValidator<ReportFormData[\"user\"]>()\n// .addValidator(\"email\", new StringValidator({ required: true}))\n// // .addValidator(\"name\", { })\n// // new ArrayValidator({\n// // required: true,\n// // validator: new StringValidator({ required: true })\n// // })\n// );\n\n// dov.validate(\n// {\n// spz: \"dasdas\",\n// tachometer: \"111222\",\n// // dateCreated: \"10.02.2019\",\n// user: {\n// // email: \"dsafasdf\",\n// }\n// },\n// {\n// dateCreated: \"01.03.2011\",\n// spz: \"32ds9f0f\",\n// tachometer: \"3213214214\",\n// user: {\n// email: \"sadmaskdmk2@dsadsamkl.com\"\n// }\n// });\n\n// const avn = new ArrayValidator<number>(new NumberValidator());\n// const rn = avn.validate([345, 123]);\n// console.log(rn);\n\n\n// interface D {\n// a: number;\n// b?: string;\n// }\n\n// const av = new ArrayValidator<T>(new ObjectValidator<T>()\n// .addValidator(\"a\", new NumberValidator())\n// .addValidator(\"b\", new StringValidator({ required: true }))\n// );\n\n// const d: D[] = [\n// { a: 123, b: \"text\" },\n// // { a: 5.6, b: \"\" },\n// { a: 5.6 }\n// ];\n\n// const r = av.validate(d);\n// console.log(r);\n\n// const ro = new ObjectValidator<T>()\n// .addValidator(\"a\", new NumberValidator())\n// .addValidator(\"b\", new StringValidator({ required: true }))\n// .validate({\n// a: \"5.6\",\n// b: undefined\n// // b: \"text\"\n// });\n// console.log(\"---\", ro);\n\n// const v = new StringValidator({ required: true });\n// const str = undefined;\n// const sr = v.validate(str!);\n// console.log(sr);\n\nconst v = new StringValidator({ required: true, min: 8 });\nconst str = \"\";\nconst sr = v.format(str);\nconsole.log(sr, v);\n","import { Validator, tpl } from \"./validators\";\nimport * as moment from \"moment\";\nimport { Moment } from \"moment\";\n\nconst requiredMsg = \"required\";\nconst notInRangeMsg = \"not_in_range\";\nconst invalidFormatMsg = \"invalid_format\";\n\nconst localeDefault = \"en\";\nconst dateFormatDefault = \"L LT\";\n\nexport interface MomentValidatorOpts {\n required?: boolean;\n min?: moment.Moment;\n max?: moment.Moment;\n locale?: string;\n format?: string;\n strict?: boolean;\n}\n\nexport interface MomentValidatorMsgs {\n required?: string;\n invalid_format?: string;\n not_in_range?: string;\n}\n\nexport class MomentValidator\n extends Validator<Moment, MomentValidatorOpts, MomentValidatorMsgs> {\n\n constructor(opts?: MomentValidatorOpts, msgs?: MomentValidatorMsgs) {\n super(opts, msgs);\n }\n\n protected strToObj(str?: string | null): { obj: Moment | null, err: string } {\n const opts = this.opts;\n const msgs = this.msgs;\n if (\"required\" in opts) {\n if (opts.required && !str) {\n return {\n obj: null,\n err: msgs.required\n ? tpl(msgs.required,\n {\n min: (\"min\" in opts) ? (\"\" + opts.min) : \"\",\n max: (\"max\" in opts) ? (\"\" + opts.max) : \"\",\n locale: (\"locale\" in opts)\n ? opts.locale!\n : localeDefault,\n format: (\"format\" in opts)\n ? opts.format!\n : dateFormatDefault\n })\n : requiredMsg\n };\n }\n }\n if (str) {\n const d = moment(str,\n opts.format || dateFormatDefault,\n opts.locale || localeDefault,\n opts.strict || false);\n let err: boolean = false;\n if (!d.isValid()) {\n err = true;\n }\n if (\"strict\" in opts) {\n if (opts.strict && (str !== this.objToStr(d).str)) {\n err = true;\n }\n }\n if (err) {\n const date = d.isValid() ? d : moment(new Date());\n return {\n obj: d.isValid() ? d : null,\n err: msgs.invalid_format\n ? tpl(msgs.invalid_format,\n {\n date: this.objToStr(date).str || \"\",\n locale: (\"locale\" in opts)\n ? opts.locale!\n : localeDefault,\n format: (\"format\" in opts)\n ? opts.format!\n : dateFormatDefault\n })\n : invalidFormatMsg\n };\n }\n return { obj: d, err: \"\" };\n } else {\n return { obj: null, err: \"\" };\n }\n }\n\n protected objCheck(obj?: Moment | null): string {\n if (obj === undefined || obj === null) {\n return \"\";\n }\n // if (obj.constructor === Date) {\n // obj = moment(obj);\n // }\n const opts = this.opts;\n const msgs = this.msgs;\n let err: boolean = false;\n if (\"max\" in opts) {\n if (obj.isAfter(opts.max)) {\n err = true;\n }\n }\n if (\"min\" in opts) {\n if (obj.isBefore(opts.min)) {\n err = true;\n }\n }\n if (err) {\n return msgs.not_in_range\n ? tpl(msgs.not_in_range,\n {\n min: (\"min\" in opts) ? (\"\" + opts.min) : \"\",\n max: (\"max\" in opts) ? (\"\" + opts.max) : \"\",\n locale: (\"locale\" in opts)\n ? opts.locale!\n : localeDefault,\n format: (\"format\" in opts)\n ? opts.format!\n : dateFormatDefault\n })\n : notInRangeMsg;\n }\n return \"\";\n }\n\n protected objToStr(obj?: Moment | null,\n format?: string): { str: string, err: string } {\n // if (obj && obj.constructor === Date) {\n // obj = moment(obj);\n // }\n return {\n str: (obj === undefined || obj === null)\n ? \"\"\n : obj\n .locale(this.opts.locale || localeDefault)\n .format(format\n ? format\n : this.opts.format || dateFormatDefault),\n err: \"\"\n };\n }\n\n}\n\nexport class MomentDateValidator\n extends Validator<Date, MomentValidatorOpts, MomentValidatorMsgs> {\n\n mv: MomentValidator;\n\n constructor(opts?: MomentValidatorOpts, msgs?: MomentValidatorMsgs) {\n super(opts, msgs);\n this.mv = new MomentValidator(opts, msgs);\n }\n\n protected strToObj(str?: string | null): { obj: Date | null, err: string } {\n const res = (this.mv as any).strToObj(str);\n if (res.obj) {\n res.obj = res.obj.toDate();\n }\n return res;\n }\n\n protected objCheck(obj?: Date | null): string {\n const mObj = obj ? moment(obj) : obj;\n return (this.mv as any).objCheck(mObj);\n }\n\n protected objToStr(obj?: Date | null,\n format?: string): { str: string, err: string } {\n const mObj = obj ? moment(obj) : obj;\n return (this.mv as any).objToStr(mObj, format);\n }\n\n}\n\n// TEST\n\n// // const mv = new MomentValidator(\n// const mv = new MomentDateValidator(\n// {\n// required: true,\n// locale: \"sk\",\n// format: \"L LT\",\n// min: moment(\"03/01/2017\", \"L\", \"en\"),\n// max: moment(\"03/01/2020\", \"L\", \"en\"),\n// strict: true\n// },\n// {\n// required: \"required {{min}} {{max}} {{locale}} {{format}}\",\n// invalid_format: \"invalid_format {{date}} {{locale}}\",\n// not_in_range: \"not_in_range {{min}} {{max}} {{locale}} {{format}}\"\n// });\n\n// [\n// \"01.03.2018 5:35\",\n// \"1.3.2018 5:35\",\n// \"5:35\",\n// \"01.13.2018\",\n// \"1.13.2018\",\n// \"03/01/2018\",\n// \"3/1/2018\"\n// ].forEach(v => {\n// console.log();\n// console.log(v);\n// const r = mv.validate(v);\n// console.log(r);\n// if (r.obj) {\n// const f = mv.format(r.obj);\n// console.log(f);\n// }\n// });\n","module.exports = __WEBPACK_EXTERNAL_MODULE__32__;"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///./src/validators.ts","webpack:///./src/validators-moment.ts","webpack:///external \"moment\""],"names":["root","factory","exports","module","require","define","amd","a","i","window","__WEBPACK_EXTERNAL_MODULE__32__","installedModules","__webpack_require__","moduleId","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","emailRegex","phoneRgex","pscRgex","rodneCisloRgex","Validator","opts","msgs","str","err","obj","this","v","sto","strToObj","objCheck","format","ots","objToStr","undefined","tpl","tmpl","data","keys","map","k","reduce","replace","RegExp","String","super","required","options","join","indexOf","invalid_option","option","min","max","regexp","test","invalid_format","length","not_in_range","Number","isNaN","strict","num","toFixed","decimals","dateToLocaleString","date","toLocaleString","dateToLocaleDateString","toLocaleDateString","dateToStr","dateOnly","Date","getFullYear","getMonth","getDate","dt","parse","getTime","b","invalid_value","validators","field","validator","res","validate","valid","MomentValidator","locale","moment","isValid","isAfter","isBefore","MomentDateValidator","mv","toDate","mObj"],"mappings":"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","file":"validators-moment.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"moment\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"moment\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"moment\")) : factory(root[\"moment\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function(__WEBPACK_EXTERNAL_MODULE__32__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 31);\n","const requiredMsg = \"required\";\nconst notInRangeMsg = \"not_in_range\";\nconst invalidFormatMsg = \"invalid_format\";\nconst invalidOptionMsg = \"invalid_option\";\nconst invalidValueMsg = \"invalid_value\";\n\n// name@doamin.net\nexport const emailRegex = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/;\n\n// +421901123456 or +421 901 123 456 or +421-901-123-456 or 901123456 or 901 123 456 or 901-123-456\nexport const phoneRgex = /^(((00)([- ]?)|\\+)(\\d{1,3})([- ]?))?((\\d{3})([- ]?))((\\d{3})([- ]?))(\\d{3})$/;\n\n// 123 45 or 12345\nexport const pscRgex = /^\\d{3} ?\\d{2}$/;\n\n// 450115/8346\nexport const rodneCisloRgex = /^\\s*(\\d\\d)(\\d\\d)(\\d\\d)[ /]*(\\d\\d\\d)(\\d?)\\s*$/;\n\nexport abstract class Validator<TYPE, OPTS, MSGS> {\n\n readonly opts: OPTS;\n readonly msgs: MSGS;\n\n readonly str: string | null = null;\n readonly err: string | null = null;\n readonly obj: TYPE | null = null;\n\n constructor(opts?: OPTS, msgs?: MSGS) {\n this.opts = opts || {} as OPTS;\n this.msgs = msgs || {} as MSGS;\n }\n\n protected abstract strToObj(str?: string | null): { obj: TYPE | null, err: string };\n\n protected abstract objCheck(obj?: TYPE | null): string;\n\n protected abstract objToStr(obj?: TYPE | null,\n format?: string): { str: string, err: string };\n\n validate(value?: string | TYPE): { str?: string | null, obj?: TYPE | null, err: string } {\n if (typeof value === \"string\" || value === undefined || value === null) {\n const v = value as string | null | undefined;\n (this.str as any) = v;\n const sto = this.strToObj(v);\n (this.obj as any) = sto.obj;\n if (sto.err) {\n (this.err as any) = sto.err;\n return {\n str: (v === undefined || v === null) ? \"\" : v,\n obj: sto.obj,\n err: sto.err };\n }\n const err = this.objCheck(sto.obj);\n (this.err as any) = err;\n return {\n str: (v === undefined || v === null) ? \"\" : v,\n obj: sto.obj,\n err\n };\n } else {\n (this.str as any) = (value === undefined || value === null) ? null : (\"\" + value);\n const err = this.objCheck(value);\n (this.err as any) = err;\n return {\n str: this.str,\n obj: value,\n err\n };\n }\n }\n\n format(obj?: TYPE | null, format?: string): { str: string, err: string } {\n // const err = this.objCheck(obj);\n const ots = this.objToStr(obj, format);\n return {\n str: (ots.str === undefined || ots.str === null) ? \"\" : ots.str,\n // err: ots.err ? ots.err : err\n err: ots.err\n };\n }\n\n}\n\nexport function tpl(tmpl: string, data: { [k: string]: any }): string {\n return Object.keys(data)\n .map(k => [k, data[k]])\n .reduce((t, d) =>\n t.replace(new RegExp(`\\\\{\\\\{${d[0]}\\\\}\\\\}`, \"g\"), String(d[1])), tmpl);\n}\n\nexport interface ValidatorDataOpts {\n data?: { [key: string]: any };\n}\n\nexport interface SelectValidatorOpts extends ValidatorDataOpts {\n required?: boolean;\n options?: string[];\n}\n\nexport interface SelectValidatorMsgs {\n required?: string;\n invalid_option?: string;\n}\n\nexport class SelectValidator\n extends Validator<string, SelectValidatorOpts, SelectValidatorMsgs> {\n\n constructor(opts?: SelectValidatorOpts, msgs?: SelectValidatorMsgs) {\n super(opts, msgs);\n }\n\n protected strToObj(str?: string | null): { obj: string | null, err: string } {\n const opts = this.opts;\n const msgs = this.msgs;\n if (\"required\" in opts) {\n if (opts.required && !str) {\n return {\n obj: null,\n err: msgs.required\n ? tpl(msgs.required,\n {\n ...opts.data,\n options: (\"options\" in opts)\n ? opts.options!.join(\", \")\n : \"\"\n })\n : requiredMsg\n };\n }\n }\n return {\n obj: str === undefined ? null : str,\n err: \"\"\n };\n }\n\n protected objCheck(obj?: string | null): string {\n if (obj === undefined || obj === null) {\n return \"\";\n }\n const opts = this.opts;\n const msgs = this.msgs;\n if (\"options\" in opts) {\n if (obj && opts.options!.indexOf(obj) === -1) {\n return msgs.invalid_option\n ? tpl(msgs.invalid_option,\n {\n ...opts.data,\n option: obj === null ? \"\" : obj,\n options: (\"options\" in opts)\n ? opts.options!.join(\", \")\n : \"\"\n })\n : invalidOptionMsg;\n }\n }\n return \"\";\n }\n\n protected objToStr(obj?: string | null,\n format?: string): { str: string, err: string } {\n return { str: obj || \"\", err: \"\" };\n }\n\n}\n\nexport interface StringValidatorOpts extends ValidatorDataOpts {\n required?: boolean;\n min?: number;\n max?: number;\n regexp?: RegExp;\n}\n\nexport interface StringValidatorMsgs {\n required?: string;\n invalid_format?: string;\n not_in_range?: string;\n}\n\nexport class StringValidator\n extends Validator<string, StringValidatorOpts, StringValidatorMsgs> {\n\n constructor(opts?: StringValidatorOpts, msgs?: StringValidatorMsgs) {\n super(opts, msgs);\n }\n\n protected strToObj(str?: string | null): { obj: string | null, err: string } {\n const opts = this.opts;\n const msgs = this.msgs;\n if (\"required\" in opts) {\n if (opts.required && !str) {\n return {\n obj: null,\n err: msgs.required\n ? tpl(msgs.required,\n {\n ...opts.data,\n min: (\"min\" in opts) ? (\"\" + opts.min) : \"\",\n max: (\"max\" in opts) ? (\"\" + opts.max) : \"\",\n regexp: (\"regexp\" in opts)\n ? (\"\" + opts.regexp)\n : \"\"\n })\n : requiredMsg\n };\n }\n }\n if (str) {\n if (\"regexp\" in opts) {\n if (!opts.regexp!.test(str)) {\n return {\n obj: null,\n err: msgs.invalid_format\n ? tpl(msgs.invalid_format,\n {\n ...opts.data,\n regexp: (\"regexp\" in opts)\n ? (\"\" + opts.regexp)\n : \"\"\n })\n : invalidFormatMsg\n };\n }\n }\n return { obj: str , err: \"\" };\n } else {\n return { obj: null, err: \"\" };\n }\n }\n\n protected objCheck(obj?: string | null): string {\n if (obj === undefined || obj === null) {\n return \"\";\n }\n const opts = this.opts;\n const msgs = this.msgs;\n let err: boolean = false;\n if (\"max\" in opts) {\n if (obj.length > opts.max!) {\n err = true;\n }\n }\n if (\"min\" in opts) {\n if (obj.length < opts.min!) {\n err = true;\n }\n }\n if ((\"min\" in opts) && (\"max\" in opts)) {\n if (obj.length > opts.max! && obj.length < opts.min!) {\n err = true;\n }\n }\n if (err) {\n return msgs.not_in_range\n ? tpl(msgs.not_in_range,\n {\n ...opts.data,\n min: (\"min\" in opts) ? (\"\" + opts.min) : \"\",\n max: (\"max\" in opts) ? (\"\" + opts.max) : \"\",\n })\n : notInRangeMsg;\n }\n return \"\";\n }\n\n protected objToStr(obj?: string | null,\n format?: string): { str: string, err: string } {\n return { str: obj || \"\", err: \"\" };\n }\n\n}\n\nexport interface NumberValidatorOpts extends ValidatorDataOpts {\n required?: boolean;\n min?: number;\n max?: number;\n strict?: boolean;\n decimals?: number;\n}\n\nexport interface NumberValidatorMsgs {\n required?: string;\n invalid_format?: string;\n not_in_range?: string;\n}\n\nexport class NumberValidator\n extends Validator<number, NumberValidatorOpts, NumberValidatorMsgs> {\n\n constructor(opts?: NumberValidatorOpts, msgs?: NumberValidatorMsgs) {\n super(opts, msgs);\n }\n\n protected strToObj(str?: string | null): { obj: number | null, err: string } {\n const opts = this.opts;\n const msgs = this.msgs;\n if (\"required\" in opts) {\n if (opts.required && !str) {\n return {\n obj: null,\n err: msgs.required\n ? tpl(msgs.required,\n {\n ...opts.data,\n min: (\"min\" in opts) ? (\"\" + opts.min) : \"\",\n max: (\"max\" in opts) ? (\"\" + opts.max) : \"\",\n })\n : requiredMsg\n };\n }\n }\n if (str) {\n const n = Number(str);\n let err: boolean = false;\n if (isNaN(n)) {\n err = true;\n }\n if (opts.strict && (str !== this.objToStr(n).str)) {\n err = true;\n }\n if (err) {\n const num = isNaN(n) ? 1234.45 : n;\n return {\n obj: isNaN(n) ? null : n,\n err: msgs.invalid_format\n ? tpl(msgs.invalid_format,\n {\n ...opts.data,\n num: this.objToStr(num).str || \"\"\n })\n : invalidFormatMsg\n };\n }\n return { obj: n, err: \"\" };\n } else {\n return { obj: null, err: \"\" };\n }\n }\n\n protected objCheck(obj?: number | null): string {\n if (obj === undefined || obj === null) {\n return \"\";\n }\n const opts = this.opts;\n const msgs = this.msgs;\n let err: boolean = false;\n if (\"max\" in opts) {\n if (obj > opts.max!) {\n err = true;\n }\n }\n if (\"min\" in opts) {\n if (obj < opts.min!) {\n err = true;\n }\n }\n if (err) {\n return msgs.not_in_range\n ? tpl(msgs.not_in_range,\n {\n ...opts.data,\n min: (\"min\" in opts) ? (\"\" + opts.min) : \"\",\n max: (\"max\" in opts) ? (\"\" + opts.max) : \"\",\n })\n : notInRangeMsg;\n }\n return \"\";\n }\n\n protected objToStr(obj?: number | null,\n format?: string): { str: string, err: string } {\n let str;\n if (obj === undefined || obj === null) {\n str = \"\";\n } else {\n if (\"decimals\" in this.opts) {\n str = obj.toFixed(this.opts.decimals);\n } else {\n str = String(obj);\n }\n }\n return {\n str,\n err: \"\"\n };\n }\n\n}\n\nexport interface DateValidatorOpts extends ValidatorDataOpts {\n required?: boolean;\n min?: Date;\n max?: Date;\n dateOnly?: boolean;\n // strict?: boolean;\n\n}\n\nexport interface DateValidatorMsgs {\n required?: string;\n invalid_format?: string;\n not_in_range?: string;\n}\n\nconst dateToLocaleString = (date: Date) => date.toLocaleString();\nconst dateToLocaleDateString = (date: Date) => date.toLocaleDateString();\n\nexport class DateValidator\n extends Validator<Date, DateValidatorOpts, DateValidatorMsgs> {\n\n dateToStr: (date: Date) => string;\n\n constructor(opts?: DateValidatorOpts, msgs?: DateValidatorMsgs) {\n super(opts, msgs);\n this.dateToStr = opts?.dateOnly ? dateToLocaleDateString : dateToLocaleString;\n if (opts?.dateOnly && opts?.min) {\n opts.min = new Date(opts.min.getFullYear(), opts.min.getMonth(), opts.min.getDate());\n }\n if (opts?.dateOnly && opts?.max) {\n opts.max = new Date(opts.max.getFullYear(), opts.max.getMonth(), opts.max.getDate() + 1);\n }\n }\n\n protected strToObj(str?: string | null): { obj: Date | null, err: string } {\n const opts = this.opts;\n const msgs = this.msgs;\n if (\"required\" in opts) {\n if (opts.required && !str) {\n return {\n obj: null,\n err: msgs.required\n ? tpl(msgs.required,\n {\n ...opts.data,\n min: (\"min\" in opts && opts.min) ? this.dateToStr(opts.min) : \"\",\n max: (\"max\" in opts && opts.max) ? this.dateToStr(opts.max) : \"\"\n })\n : requiredMsg\n };\n }\n }\n if (str) {\n const dt = Date.parse(str);\n let d = new Date(dt);\n if (opts.dateOnly) {\n d = new Date(d.getFullYear(), d.getMonth(), d.getDate());\n }\n let err: boolean = false;\n if (isNaN(dt)) {\n err = true;\n }\n // if (opts.strict && (str !== this.objToStr(d).str)) {\n // err = true;\n // }\n if (err) {\n const date = isNaN(dt) ? new Date() : d;\n return {\n obj: isNaN(dt) ? null : d,\n err: msgs.invalid_format\n ? tpl(msgs.invalid_format,\n {\n ...opts.data,\n date: this.objToStr(date).str || \"\"\n })\n : invalidFormatMsg\n };\n }\n return { obj: d, err: \"\" };\n } else {\n return { obj: null, err: \"\" };\n }\n }\n\n protected objCheck(obj?: Date | null): string {\n if (obj === undefined || obj === null) {\n return \"\";\n }\n const opts = this.opts;\n const msgs = this.msgs;\n let err: boolean = false;\n if (\"max\" in opts) {\n if (opts.max && obj.getTime() > opts.max.getTime()) {\n err = true;\n }\n }\n if (\"min\" in opts) {\n if (opts.min && obj < opts.min) {\n err = true;\n }\n }\n if (err) {\n return msgs.not_in_range\n ? tpl(msgs.not_in_range,\n {\n ...opts.data,\n min: (\"min\" in opts && opts.min) ? this.dateToStr(opts.min) : \"\",\n max: (\"max\" in opts && opts.max) ? this.dateToStr(opts.max) : \"\"\n })\n : notInRangeMsg;\n }\n return \"\";\n }\n\n protected objToStr(obj?: Date | null,\n format?: string): { str: string, err: string } {\n return {\n str: (obj === undefined || obj === null) ? \"\" : this.dateToStr(obj),\n err: \"\"\n };\n }\n\n}\n\nexport interface BooleanValidatorOpts extends ValidatorDataOpts {\n required?: boolean;\n value?: boolean;\n}\n\nexport interface BooleanValidatorMsgs {\n required?: string;\n invalid_value?: string;\n}\n\nexport class BooleanValidator\n extends Validator<boolean, BooleanValidatorOpts, BooleanValidatorMsgs> {\n\n constructor(opts?: BooleanValidatorOpts, msgs?: BooleanValidatorMsgs) {\n super(opts, msgs);\n }\n\n protected strToObj(str?: string | null): { obj: boolean | null, err: string } {\n const opts = this.opts;\n const msgs = this.msgs;\n if (\"required\" in opts) {\n if (opts.required && !str) {\n return {\n obj: null,\n err: msgs.required\n ? tpl(msgs.required,\n {\n ...opts.data\n })\n : requiredMsg\n };\n }\n }\n let b;\n switch (str) {\n case \"true\":\n case \"1\":\n case \"on\":\n case \"yes\":\n b = true;\n break;\n default:\n b = false;\n }\n return { obj: b, err: \"\" };\n }\n\n protected objCheck(obj?: boolean | null): string {\n if (obj === undefined || obj === null) {\n return \"\";\n }\n const opts = this.opts;\n const msgs = this.msgs;\n let err = false;\n if (\"value\" in opts) {\n if (obj !== opts.value) {\n err = true;\n }\n }\n if (err) {\n return msgs.invalid_value\n ? tpl(msgs.invalid_value,\n {\n ...opts.data,\n value: (\"value\" in opts) ? (\"\" + opts.value) : \"\",\n })\n : invalidValueMsg;\n }\n return \"\";\n }\n\n protected objToStr(obj?: boolean | null,\n format?: string): { str: string, err: string } {\n return {\n str: (obj === undefined || obj === null) ? \"\" : (\"\" + obj),\n err: \"\"\n };\n }\n\n}\n\ntype FormValidators<TYPE> = { [key in keyof TYPE]: Validator<any, any, any> };\n\nexport type Str<TYPE> = { [key in keyof TYPE]: string };\nexport type Obj<TYPE> = { [key in keyof TYPE]: any };\nexport type Err<TYPE> = { [key in keyof TYPE]: string };\n\nexport interface FormValidatorData<TYPE> {\n str: Str<TYPE>;\n obj: Obj<TYPE>;\n err: Err<TYPE>;\n valid: boolean;\n}\n\nexport class FormValidator<TYPE extends { [key: string]: any }> {\n\n readonly validators: FormValidators<TYPE> = {} as FormValidators<TYPE>;\n\n readonly str?: Str<TYPE>;\n readonly obj?: Obj<TYPE>;\n readonly err?: Err<TYPE>;\n\n readonly valid?: boolean;\n\n addValidator(field: keyof TYPE, validator: Validator<any, any, any>): this {\n this.validators[field] = validator;\n return this;\n }\n\n validate(data: { [key in keyof TYPE]?: string }): this {\n const res = Object.keys(this.validators)\n .reduce(\n (a, k) => {\n const v = (data as any)[k];\n const r = (this.validators as any)[k].validate(v);\n (a.str as any)[k] = r.str;\n (a.obj as any)[k] = r.obj;\n (a.err as any)[k] = r.err;\n r.err && (a.valid = false);\n return a;\n },\n { str: {}, obj: {}, err: {}, valid: true });\n (this.str as any) = res.str;\n (this.obj as any) = res.obj;\n (this.err as any) = res.err;\n (this.valid as any) = res.valid;\n return this;\n }\n\n format(data: { [key in keyof TYPE]: any }): this {\n const res = Object.keys(this.validators)\n .reduce(\n (a, k) => {\n const v = (data as any)[k];\n const r = (this.validators as any)[k].format(v);\n (a.str as any)[k] = r.str;\n (a.obj as any)[k] = v;\n (a.err as any)[k] = r.err;\n r.err && (a.valid = false);\n return a;\n },\n { str: {}, obj: {}, err: {}, valid: true });\n (this.str as any) = res.str;\n (this.obj as any) = res.obj;\n (this.err as any) = res.err;\n (this.valid as any) = res.valid;\n return this;\n }\n\n data(): FormValidatorData<TYPE> {\n return {\n str: this.str!,\n obj: this.obj!,\n err: this.err!,\n valid: this.valid!\n };\n }\n\n}\n\n\n// TEST\n\n// const sv = new StringValidator(\n// {\n// required: true,\n// min: 3,\n// max: 5,\n// // regexp: /^[0123]+$/\n// data: {\n// xxx: \"xXx\"\n// }\n// },\n// {\n// required: \"required {{min}} {{max}} {{regexp}}\",\n// invalid_format: \"invalid_format {{regexp}}\",\n// not_in_range: \"not_in_range {{min}} {{max}} | data.xxx={{xxx}}\"\n// });\n\n// [\n// \"x1234\",\n// \"x1234y\",\n// \"xy\"\n// ].forEach(v => {\n// console.log();\n// console.log(v);\n// const r = sv.validate(v);\n// console.log(r);\n// if (r.obj) {\n// const f = sv.format(r.obj);\n// console.log(f);\n// }\n// });\n\n// console.log();\n\n// const nv = new NumberValidator(\n// {\n// required: true,\n// min: 3,\n// max: 500000,\n// decimals: 2,\n// strict: true\n// },\n// {\n// required: \"required {{min}} {{max}}\",\n// invalid_format: \"invalid_format {{num}}\",\n// not_in_range: \"not_in_range {{min}} {{max}}\"\n// });\n\n// console.log(nv.format(undefined));\n// console.log(nv.format(12345.6789));\n\n// console.log(nv.validate(\"12345.6789\"));\n// console.log(nv.validate(\"12345,6789\"));\n// console.log(nv.validate(\"12,345.6789\"));\n\n// const dv = new DateValidator(\n// {\n// required: false,\n// // min: new Date(),\n// max: new Date(),\n// clearTime: false\n// // strict: true\n// },\n// {\n// required: \"required {{min}} {{max}}\",\n// invalid_format: \"invalid_format {{date}}\",\n// not_in_range: \"not_in_range {{min}} {{max}}\"\n// });\n\n// console.log(dv.opts);\n\n// console.log(dv.format(undefined));\n\n// console.log(dv.format(new Date));\n\n// console.log(dv.validate(\"9/17/2020, 10:46:07 AM\"));\n// console.log(dv.format(dv.obj).str);\n// console.log(dv.validate(\"9/17/2020\"));\n// console.log(dv.format(dv.obj).str);\n// console.log(dv.validate(\"2020-09-17T08:46:07.000Z\"));\n// console.log(dv.format(dv.obj).str);\n// console.log(dv.validate(\"\"));\n// console.log(dv.format(dv.obj).str);\n\n// console.log(new Date().toString());\n// console.log(new Date().toDateString());\n// console.log(new Date().toTimeString());\n// console.log(new Date().toLocaleString());\n// console.log(new Date().toLocaleDateString());\n// console.log(new Date().toLocaleTimeString());\n// console.log();\n// console.log(new Date(Date.parse(new Date().toString())));\n// console.log(new Date(Date.parse(new Date().toDateString())));\n// console.log(new Date(Date.parse(new Date().toTimeString())));\n// console.log(new Date(Date.parse(new Date().toLocaleString())));\n// console.log(new Date(Date.parse(new Date().toLocaleDateString())));\n// console.log(new Date(Date.parse(new Date().toLocaleTimeString())));\n\n// const formData = { str: \"123a\", num: \"123456.789\", date: \"9/17/2020, 10:46:07 AM\" };\n// const formData = { str: \"\", num: \"\", date: \"\" };\n// const formData = { str: undefined, num: undefined, date: undefined };\n\n// const fv = new FormValidator<typeof formData>()\n// .addValidator(\"str\", sv)\n// .addValidator(\"num\", nv)\n// .addValidator(\"date\", dv)\n// .validate(formData);\n\n// console.log(fv.data());\n\n// fv.format(fv.obj!);\n// console.log(fv);\n\n// const ovData = { str: \"123a\", num: \"123.45\", date: \"02.01.2019 12:12\" };\n\n// const ov = new ObjectValidator<typeof ovData>()\n// .addValidator(\"str\", sv)\n// .addValidator(\"num\", nv)\n// // .addValidator(\"date\", dv)\n// .validate(ovData);\n\n// // console.log(ov);\n\n// ov.format(ov.obj!);\n// console.log(ov);\n\n// console.log();\n\n// interface ReportFormData {\n// spz: string;\n// tachometer: string;\n// dateCreated: string;\n// user: {\n// // name: string[];\n// email: string;\n// };\n// }\n\n// const dov = new ObjectValidator<ReportFormData>()\n// .addValidator(\"spz\", new StringValidator({ required: true }))\n// .addValidator(\"tachometer\", new NumberValidator({ required: true, min: 1 } ))\n// .addValidator(\"dateCreated\", new StringValidator({ required: true }))\n// .addValidator(\"user\", new ObjectValidator<ReportFormData[\"user\"]>()\n// .addValidator(\"email\", new StringValidator({ required: true}))\n// // .addValidator(\"name\", { })\n// // new ArrayValidator({\n// // required: true,\n// // validator: new StringValidator({ required: true })\n// // })\n// );\n\n// dov.validate(\n// {\n// spz: \"dasdas\",\n// tachometer: \"111222\",\n// // dateCreated: \"10.02.2019\",\n// user: {\n// // email: \"dsafasdf\",\n// }\n// },\n// {\n// dateCreated: \"01.03.2011\",\n// spz: \"32ds9f0f\",\n// tachometer: \"3213214214\",\n// user: {\n// email: \"sadmaskdmk2@dsadsamkl.com\"\n// }\n// });\n\n// const avn = new ArrayValidator<number>(new NumberValidator());\n// const rn = avn.validate([345, 123]);\n// console.log(rn);\n\n\n// interface D {\n// a: number;\n// b?: string;\n// }\n\n// const av = new ArrayValidator<T>(new ObjectValidator<T>()\n// .addValidator(\"a\", new NumberValidator())\n// .addValidator(\"b\", new StringValidator({ required: true }))\n// );\n\n// const d: D[] = [\n// { a: 123, b: \"text\" },\n// // { a: 5.6, b: \"\" },\n// { a: 5.6 }\n// ];\n\n// const r = av.validate(d);\n// console.log(r);\n\n// const ro = new ObjectValidator<T>()\n// .addValidator(\"a\", new NumberValidator())\n// .addValidator(\"b\", new StringValidator({ required: true }))\n// .validate({\n// a: \"5.6\",\n// b: undefined\n// // b: \"text\"\n// });\n// console.log(\"---\", ro);\n\n// const v = new StringValidator({ required: true });\n// const str = undefined;\n// const sr = v.validate(str!);\n// console.log(sr);\n\n// const v = new StringValidator({ required: true, min: 8 });\n// const str = \"\";\n// const sr = v.format(str);\n// console.log(sr, v);\n","import { Validator, tpl } from \"./validators\";\nimport * as moment from \"moment\";\nimport { Moment } from \"moment\";\n\nconst requiredMsg = \"required\";\nconst notInRangeMsg = \"not_in_range\";\nconst invalidFormatMsg = \"invalid_format\";\n\nconst localeDefault = \"en\";\nconst dateFormatDefault = \"L LT\";\n\nexport interface MomentValidatorOpts {\n required?: boolean;\n min?: moment.Moment;\n max?: moment.Moment;\n locale?: string;\n format?: string;\n strict?: boolean;\n}\n\nexport interface MomentValidatorMsgs {\n required?: string;\n invalid_format?: string;\n not_in_range?: string;\n}\n\nexport class MomentValidator\n extends Validator<Moment, MomentValidatorOpts, MomentValidatorMsgs> {\n\n constructor(opts?: MomentValidatorOpts, msgs?: MomentValidatorMsgs) {\n super(opts, msgs);\n }\n\n protected strToObj(str?: string | null): { obj: Moment | null, err: string } {\n const opts = this.opts;\n const msgs = this.msgs;\n if (\"required\" in opts) {\n if (opts.required && !str) {\n return {\n obj: null,\n err: msgs.required\n ? tpl(msgs.required,\n {\n min: (\"min\" in opts) ? (\"\" + opts.min) : \"\",\n max: (\"max\" in opts) ? (\"\" + opts.max) : \"\",\n locale: (\"locale\" in opts)\n ? opts.locale!\n : localeDefault,\n format: (\"format\" in opts)\n ? opts.format!\n : dateFormatDefault\n })\n : requiredMsg\n };\n }\n }\n if (str) {\n const d = moment(str,\n opts.format || dateFormatDefault,\n opts.locale || localeDefault,\n opts.strict || false);\n let err: boolean = false;\n if (!d.isValid()) {\n err = true;\n }\n if (\"strict\" in opts) {\n if (opts.strict && (str !== this.objToStr(d).str)) {\n err = true;\n }\n }\n if (err) {\n const date = d.isValid() ? d : moment(new Date());\n return {\n obj: d.isValid() ? d : null,\n err: msgs.invalid_format\n ? tpl(msgs.invalid_format,\n {\n date: this.objToStr(date).str || \"\",\n locale: (\"locale\" in opts)\n ? opts.locale!\n : localeDefault,\n format: (\"format\" in opts)\n ? opts.format!\n : dateFormatDefault\n })\n : invalidFormatMsg\n };\n }\n return { obj: d, err: \"\" };\n } else {\n return { obj: null, err: \"\" };\n }\n }\n\n protected objCheck(obj?: Moment | null): string {\n if (obj === undefined || obj === null) {\n return \"\";\n }\n // if (obj.constructor === Date) {\n // obj = moment(obj);\n // }\n const opts = this.opts;\n const msgs = this.msgs;\n let err: boolean = false;\n if (\"max\" in opts) {\n if (obj.isAfter(opts.max)) {\n err = true;\n }\n }\n if (\"min\" in opts) {\n if (obj.isBefore(opts.min)) {\n err = true;\n }\n }\n if (err) {\n return msgs.not_in_range\n ? tpl(msgs.not_in_range,\n {\n min: (\"min\" in opts) ? (\"\" + opts.min) : \"\",\n max: (\"max\" in opts) ? (\"\" + opts.max) : \"\",\n locale: (\"locale\" in opts)\n ? opts.locale!\n : localeDefault,\n format: (\"format\" in opts)\n ? opts.format!\n : dateFormatDefault\n })\n : notInRangeMsg;\n }\n return \"\";\n }\n\n protected objToStr(obj?: Moment | null,\n format?: string): { str: string, err: string } {\n // if (obj && obj.constructor === Date) {\n // obj = moment(obj);\n // }\n return {\n str: (obj === undefined || obj === null)\n ? \"\"\n : obj\n .locale(this.opts.locale || localeDefault)\n .format(format\n ? format\n : this.opts.format || dateFormatDefault),\n err: \"\"\n };\n }\n\n}\n\nexport class MomentDateValidator\n extends Validator<Date, MomentValidatorOpts, MomentValidatorMsgs> {\n\n mv: MomentValidator;\n\n constructor(opts?: MomentValidatorOpts, msgs?: MomentValidatorMsgs) {\n super(opts, msgs);\n this.mv = new MomentValidator(opts, msgs);\n }\n\n protected strToObj(str?: string | null): { obj: Date | null, err: string } {\n const res = (this.mv as any).strToObj(str);\n if (res.obj) {\n res.obj = res.obj.toDate();\n }\n return res;\n }\n\n protected objCheck(obj?: Date | null): string {\n const mObj = obj ? moment(obj) : obj;\n return (this.mv as any).objCheck(mObj);\n }\n\n protected objToStr(obj?: Date | null,\n format?: string): { str: string, err: string } {\n const mObj = obj ? moment(obj) : obj;\n return (this.mv as any).objToStr(mObj, format);\n }\n\n}\n\n// TEST\n\n// // const mv = new MomentValidator(\n// const mv = new MomentDateValidator(\n// {\n// required: true,\n// locale: \"sk\",\n// format: \"L LT\",\n// min: moment(\"03/01/2017\", \"L\", \"en\"),\n// max: moment(\"03/01/2020\", \"L\", \"en\"),\n// strict: true\n// },\n// {\n// required: \"required {{min}} {{max}} {{locale}} {{format}}\",\n// invalid_format: \"invalid_format {{date}} {{locale}}\",\n// not_in_range: \"not_in_range {{min}} {{max}} {{locale}} {{format}}\"\n// });\n\n// [\n// \"01.03.2018 5:35\",\n// \"1.3.2018 5:35\",\n// \"5:35\",\n// \"01.13.2018\",\n// \"1.13.2018\",\n// \"03/01/2018\",\n// \"3/1/2018\"\n// ].forEach(v => {\n// console.log();\n// console.log(v);\n// const r = mv.validate(v);\n// console.log(r);\n// if (r.obj) {\n// const f = mv.format(r.obj);\n// console.log(f);\n// }\n// });\n","module.exports = __WEBPACK_EXTERNAL_MODULE__32__;"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(t,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r(require("numeral"));else if("function"==typeof define&&define.amd)define(["numeral"],r);else{var e="object"==typeof exports?r(require("numeral")):r(t.numeral);for(var n in e)("object"==typeof exports?exports:t)[n]=e[n]}}(window,(function(t){return function(t){var r={};function e(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,e),i.l=!0,i.exports}return e.m=t,e.c=r,e.d=function(t,r,n){e.o(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:n})},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.t=function(t,r){if(1&r&&(t=e(t)),8&r)return t;if(4&r&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(e.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&r&&"string"!=typeof t)for(var i in t)e.d(n,i,function(r){return t[r]}.bind(null,i));return n},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,"a",r),r},e.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},e.p="",e(e.s=33)}({3:function(t,r,e){"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.emailRegex=/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/,r.phoneRgex=/^(((00)([- ]?)|\+)(\d{1,3})([- ]?))?((\d{3})([- ]?))((\d{3})([- ]?))(\d{3})$/,r.pscRgex=/^\d{3} ?\d{2}$/,r.rodneCisloRgex=/^\s*(\d\d)(\d\d)(\d\d)[ /]*(\d\d\d)(\d?)\s*$/;class n{constructor(t,r){this.str=null,this.err=null,this.obj=null,this.opts=t||{},this.msgs=r||{}}validate(t){if("string"==typeof t||null==t){const r=t;this.str=r;const e=this.strToObj(r);if(this.obj=e.obj,e.err)return this.err=e.err,{str:null==r?"":r,obj:e.obj,err:e.err};const n=this.objCheck(e.obj);return this.err=n,{str:null==r?"":r,obj:e.obj,err:n}}{this.str=null==t?null:""+t;const r=this.objCheck(t);return this.err=r,{str:this.str,obj:t,err:r}}}format(t,r){const e=this.objToStr(t,r);return{str:void 0===e.str||null===e.str?"":e.str,err:e.err}}}function i(t,r){return Object.keys(r).map(t=>[t,r[t]]).reduce((t,r)=>t.replace(new RegExp(`\\{\\{${r[0]}\\}\\}`,"g"),String(r[1])),t)}r.Validator=n,r.tpl=i;r.SelectValidator=class extends n{constructor(t,r){super(t,r)}strToObj(t){const r=this.opts,e=this.msgs;return"required"in r&&r.required&&!t?{obj:null,err:e.required?i(e.required,Object.assign(Object.assign({},r.data),{options:"options"in r?r.options.join(", "):""})):"required"}:{obj:void 0===t?null:t,err:""}}objCheck(t){if(null==t)return"";const r=this.opts,e=this.msgs;return"options"in r&&t&&-1===r.options.indexOf(t)?e.invalid_option?i(e.invalid_option,Object.assign(Object.assign({},r.data),{option:null===t?"":t,options:"options"in r?r.options.join(", "):""})):"invalid_option":""}objToStr(t,r){return{str:t||"",err:""}}};class
|
|
1
|
+
!function(t,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r(require("numeral"));else if("function"==typeof define&&define.amd)define(["numeral"],r);else{var e="object"==typeof exports?r(require("numeral")):r(t.numeral);for(var n in e)("object"==typeof exports?exports:t)[n]=e[n]}}(window,(function(t){return function(t){var r={};function e(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,e),i.l=!0,i.exports}return e.m=t,e.c=r,e.d=function(t,r,n){e.o(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:n})},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.t=function(t,r){if(1&r&&(t=e(t)),8&r)return t;if(4&r&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(e.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&r&&"string"!=typeof t)for(var i in t)e.d(n,i,function(r){return t[r]}.bind(null,i));return n},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,"a",r),r},e.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},e.p="",e(e.s=33)}({3:function(t,r,e){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.FormValidator=r.BooleanValidator=r.DateValidator=r.NumberValidator=r.StringValidator=r.SelectValidator=r.tpl=r.Validator=r.rodneCisloRgex=r.pscRgex=r.phoneRgex=r.emailRegex=void 0;r.emailRegex=/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/,r.phoneRgex=/^(((00)([- ]?)|\+)(\d{1,3})([- ]?))?((\d{3})([- ]?))((\d{3})([- ]?))(\d{3})$/,r.pscRgex=/^\d{3} ?\d{2}$/,r.rodneCisloRgex=/^\s*(\d\d)(\d\d)(\d\d)[ /]*(\d\d\d)(\d?)\s*$/;class n{constructor(t,r){this.str=null,this.err=null,this.obj=null,this.opts=t||{},this.msgs=r||{}}validate(t){if("string"==typeof t||null==t){const r=t;this.str=r;const e=this.strToObj(r);if(this.obj=e.obj,e.err)return this.err=e.err,{str:null==r?"":r,obj:e.obj,err:e.err};const n=this.objCheck(e.obj);return this.err=n,{str:null==r?"":r,obj:e.obj,err:n}}{this.str=null==t?null:""+t;const r=this.objCheck(t);return this.err=r,{str:this.str,obj:t,err:r}}}format(t,r){const e=this.objToStr(t,r);return{str:void 0===e.str||null===e.str?"":e.str,err:e.err}}}function i(t,r){return Object.keys(r).map(t=>[t,r[t]]).reduce((t,r)=>t.replace(new RegExp(`\\{\\{${r[0]}\\}\\}`,"g"),String(r[1])),t)}r.Validator=n,r.tpl=i;r.SelectValidator=class extends n{constructor(t,r){super(t,r)}strToObj(t){const r=this.opts,e=this.msgs;return"required"in r&&r.required&&!t?{obj:null,err:e.required?i(e.required,Object.assign(Object.assign({},r.data),{options:"options"in r?r.options.join(", "):""})):"required"}:{obj:void 0===t?null:t,err:""}}objCheck(t){if(null==t)return"";const r=this.opts,e=this.msgs;return"options"in r&&t&&-1===r.options.indexOf(t)?e.invalid_option?i(e.invalid_option,Object.assign(Object.assign({},r.data),{option:null===t?"":t,options:"options"in r?r.options.join(", "):""})):"invalid_option":""}objToStr(t,r){return{str:t||"",err:""}}};r.StringValidator=class extends n{constructor(t,r){super(t,r)}strToObj(t){const r=this.opts,e=this.msgs;return"required"in r&&r.required&&!t?{obj:null,err:e.required?i(e.required,Object.assign(Object.assign({},r.data),{min:"min"in r?""+r.min:"",max:"max"in r?""+r.max:"",regexp:"regexp"in r?""+r.regexp:""})):"required"}:t?"regexp"in r&&!r.regexp.test(t)?{obj:null,err:e.invalid_format?i(e.invalid_format,Object.assign(Object.assign({},r.data),{regexp:"regexp"in r?""+r.regexp:""})):"invalid_format"}:{obj:t,err:""}:{obj:null,err:""}}objCheck(t){if(null==t)return"";const r=this.opts,e=this.msgs;let n=!1;return"max"in r&&t.length>r.max&&(n=!0),"min"in r&&t.length<r.min&&(n=!0),"min"in r&&"max"in r&&t.length>r.max&&t.length<r.min&&(n=!0),n?e.not_in_range?i(e.not_in_range,Object.assign(Object.assign({},r.data),{min:"min"in r?""+r.min:"",max:"max"in r?""+r.max:""})):"not_in_range":""}objToStr(t,r){return{str:t||"",err:""}}};r.NumberValidator=class extends n{constructor(t,r){super(t,r)}strToObj(t){const r=this.opts,e=this.msgs;if("required"in r&&r.required&&!t)return{obj:null,err:e.required?i(e.required,Object.assign(Object.assign({},r.data),{min:"min"in r?""+r.min:"",max:"max"in r?""+r.max:""})):"required"};if(t){const n=Number(t);let o=!1;if(isNaN(n)&&(o=!0),r.strict&&t!==this.objToStr(n).str&&(o=!0),o){const t=isNaN(n)?1234.45:n;return{obj:isNaN(n)?null:n,err:e.invalid_format?i(e.invalid_format,Object.assign(Object.assign({},r.data),{num:this.objToStr(t).str||""})):"invalid_format"}}return{obj:n,err:""}}return{obj:null,err:""}}objCheck(t){if(null==t)return"";const r=this.opts,e=this.msgs;let n=!1;return"max"in r&&t>r.max&&(n=!0),"min"in r&&t<r.min&&(n=!0),n?e.not_in_range?i(e.not_in_range,Object.assign(Object.assign({},r.data),{min:"min"in r?""+r.min:"",max:"max"in r?""+r.max:""})):"not_in_range":""}objToStr(t,r){let e;return e=null==t?"":"decimals"in this.opts?t.toFixed(this.opts.decimals):String(t),{str:e,err:""}}};const o=t=>t.toLocaleString(),s=t=>t.toLocaleDateString();r.DateValidator=class extends n{constructor(t,r){super(t,r),this.dateToStr=(null==t?void 0:t.dateOnly)?s:o,(null==t?void 0:t.dateOnly)&&(null==t?void 0:t.min)&&(t.min=new Date(t.min.getFullYear(),t.min.getMonth(),t.min.getDate())),(null==t?void 0:t.dateOnly)&&(null==t?void 0:t.max)&&(t.max=new Date(t.max.getFullYear(),t.max.getMonth(),t.max.getDate()+1))}strToObj(t){const r=this.opts,e=this.msgs;if("required"in r&&r.required&&!t)return{obj:null,err:e.required?i(e.required,Object.assign(Object.assign({},r.data),{min:"min"in r&&r.min?this.dateToStr(r.min):"",max:"max"in r&&r.max?this.dateToStr(r.max):""})):"required"};if(t){const n=Date.parse(t);let o=new Date(n);r.dateOnly&&(o=new Date(o.getFullYear(),o.getMonth(),o.getDate()));let s=!1;if(isNaN(n)&&(s=!0),s){const t=isNaN(n)?new Date:o;return{obj:isNaN(n)?null:o,err:e.invalid_format?i(e.invalid_format,Object.assign(Object.assign({},r.data),{date:this.objToStr(t).str||""})):"invalid_format"}}return{obj:o,err:""}}return{obj:null,err:""}}objCheck(t){if(null==t)return"";const r=this.opts,e=this.msgs;let n=!1;return"max"in r&&r.max&&t.getTime()>r.max.getTime()&&(n=!0),"min"in r&&r.min&&t<r.min&&(n=!0),n?e.not_in_range?i(e.not_in_range,Object.assign(Object.assign({},r.data),{min:"min"in r&&r.min?this.dateToStr(r.min):"",max:"max"in r&&r.max?this.dateToStr(r.max):""})):"not_in_range":""}objToStr(t,r){return{str:null==t?"":this.dateToStr(t),err:""}}};r.BooleanValidator=class extends n{constructor(t,r){super(t,r)}strToObj(t){const r=this.opts,e=this.msgs;if("required"in r&&r.required&&!t)return{obj:null,err:e.required?i(e.required,Object.assign({},r.data)):"required"};let n;switch(t){case"true":case"1":case"on":case"yes":n=!0;break;default:n=!1}return{obj:n,err:""}}objCheck(t){if(null==t)return"";const r=this.opts,e=this.msgs;let n=!1;return"value"in r&&t!==r.value&&(n=!0),n?e.invalid_value?i(e.invalid_value,Object.assign(Object.assign({},r.data),{value:"value"in r?""+r.value:""})):"invalid_value":""}objToStr(t,r){return{str:null==t?"":""+t,err:""}}};r.FormValidator=class{constructor(){this.validators={}}addValidator(t,r){return this.validators[t]=r,this}validate(t){const r=Object.keys(this.validators).reduce((r,e)=>{const n=t[e],i=this.validators[e].validate(n);return r.str[e]=i.str,r.obj[e]=i.obj,r.err[e]=i.err,i.err&&(r.valid=!1),r},{str:{},obj:{},err:{},valid:!0});return this.str=r.str,this.obj=r.obj,this.err=r.err,this.valid=r.valid,this}format(t){const r=Object.keys(this.validators).reduce((r,e)=>{const n=t[e],i=this.validators[e].format(n);return r.str[e]=i.str,r.obj[e]=n,r.err[e]=i.err,i.err&&(r.valid=!1),r},{str:{},obj:{},err:{},valid:!0});return this.str=r.str,this.obj=r.obj,this.err=r.err,this.valid=r.valid,this}data(){return{str:this.str,obj:this.obj,err:this.err,valid:this.valid}}}},33:function(t,r,e){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.NumeralNumberValidator=r.NumeralValidator=void 0;const n=e(3),i=e(34);class o extends n.Validator{constructor(t,r){super(t,r)}strToObj(t){const r=this.opts,e=this.msgs;if("required"in r&&r.required&&!t)return{obj:null,err:e.required?n.tpl(e.required,{min:"min"in r?""+r.min:"",max:"max"in r?""+r.max:"",locale:"locale"in r?r.locale:"en",format:"format"in r?r.format:"0,0.[00]"}):"required"};if(t){i.locale(r.locale||"en");const o=i(t);let s=!1;if(null===o.value()&&(s=!0),"strict"in r&&r.strict&&t!==this.objToStr(o).str&&(s=!0),s){const t=null!==o.value()?o:i(1234.45);return{obj:null!==o.value()?o:null,err:e.invalid_format?n.tpl(e.invalid_format,{num:this.objToStr(t).str||"",locale:"locale"in r?r.locale:"en",format:"format"in r?r.format:"0,0.[00]"}):"invalid_format"}}return{obj:o,err:""}}return{obj:null,err:""}}objCheck(t){if(null==t)return"";const r=this.opts,e=this.msgs;let i=!1;return"max"in r&&t.value()>r.max&&(i=!0),"min"in r&&t.value()<r.min&&(i=!0),i?e.not_in_range?n.tpl(e.not_in_range,{min:"min"in r?""+r.min:"",max:"max"in r?""+r.max:"",locale:"locale"in r?r.locale:"en",format:"format"in r?r.format:"0,0.[00]"}):"not_in_range":""}objToStr(t,r){return i.locale(this.opts.locale||"en"),{str:null==t?"":t.format(r||(this.opts.format||"0,0.[00]")),err:""}}}r.NumeralValidator=o;class s extends n.Validator{constructor(t,r){super(t,r),this.nv=new o(t,r)}strToObj(t){const r=this.nv.strToObj(t);return r.obj&&(r.obj=r.obj.value()),r}objCheck(t){const r="number"==typeof t?i(t):t;return this.nv.objCheck(r)}objToStr(t,r){const e="number"==typeof t?i(t):t;return this.nv.objToStr(e,r)}}r.NumeralNumberValidator=s},34:function(r,e){r.exports=t}})}));
|
|
2
2
|
//# sourceMappingURL=validators-numeral.js.map
|