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.
Files changed (136) hide show
  1. package/README.md +8 -7
  2. package/dist/cache.js +1 -0
  3. package/dist/cache.js.map +1 -1
  4. package/dist/debounce.js +1 -0
  5. package/dist/debounce.js.map +1 -1
  6. package/dist/dom.js +1 -0
  7. package/dist/dom.js.map +1 -1
  8. package/dist/encode.js +1 -0
  9. package/dist/encode.js.map +1 -1
  10. package/dist/events.js +1 -0
  11. package/dist/events.js.map +1 -1
  12. package/dist/form.js +1 -0
  13. package/dist/form.js.map +1 -1
  14. package/dist/google-analytics.js +1 -0
  15. package/dist/google-analytics.js.map +1 -1
  16. package/dist/hash.d.ts +3 -0
  17. package/dist/hash.js +16 -3
  18. package/dist/hash.js.map +1 -1
  19. package/dist/history.js +1 -0
  20. package/dist/history.js.map +1 -1
  21. package/dist/hsml-app.d.ts +2 -3
  22. package/dist/hsml-app.js +6 -6
  23. package/dist/hsml-app.js.map +1 -1
  24. package/dist/hsml-convert.js +1 -0
  25. package/dist/hsml-convert.js.map +1 -1
  26. package/dist/hsml-dom.js +1 -0
  27. package/dist/hsml-dom.js.map +1 -1
  28. package/dist/hsml-h.js +1 -0
  29. package/dist/hsml-h.js.map +1 -1
  30. package/dist/hsml-html.js +1 -0
  31. package/dist/hsml-html.js.map +1 -1
  32. package/dist/hsml-idom.js +2 -1
  33. package/dist/hsml-idom.js.map +1 -1
  34. package/dist/hsml-svac-ctrl.js +1 -0
  35. package/dist/hsml-svac-ctrl.js.map +1 -1
  36. package/dist/hsml-svac-html.js +1 -0
  37. package/dist/hsml-svac-html.js.map +1 -1
  38. package/dist/hsml-widget.js +1 -0
  39. package/dist/hsml-widget.js.map +1 -1
  40. package/dist/hsml.js +1 -0
  41. package/dist/hsml.js.map +1 -1
  42. package/dist/http.js +1 -0
  43. package/dist/http.js.map +1 -1
  44. package/dist/index.js +1 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/load.js +1 -0
  47. package/dist/load.js.map +1 -1
  48. package/dist/objpaths.js +1 -0
  49. package/dist/objpaths.js.map +1 -1
  50. package/dist/router.js +1 -0
  51. package/dist/router.js.map +1 -1
  52. package/dist/settings.js +1 -0
  53. package/dist/settings.js.map +1 -1
  54. package/dist/signal.js +1 -0
  55. package/dist/signal.js.map +1 -1
  56. package/dist/template.js +1 -0
  57. package/dist/template.js.map +1 -1
  58. package/dist/tmpl.js +1 -0
  59. package/dist/tmpl.js.map +1 -1
  60. package/dist/umd/cache.js +1 -1
  61. package/dist/umd/cache.js.map +1 -1
  62. package/dist/umd/debounce.js +1 -1
  63. package/dist/umd/debounce.js.map +1 -1
  64. package/dist/umd/dom.js +1 -1
  65. package/dist/umd/dom.js.map +1 -1
  66. package/dist/umd/encode.js +1 -1
  67. package/dist/umd/encode.js.map +1 -1
  68. package/dist/umd/events.js +1 -1
  69. package/dist/umd/events.js.map +1 -1
  70. package/dist/umd/form.js +1 -1
  71. package/dist/umd/form.js.map +1 -1
  72. package/dist/umd/google-analytics.js +1 -1
  73. package/dist/umd/google-analytics.js.map +1 -1
  74. package/dist/umd/hash.js +1 -1
  75. package/dist/umd/hash.js.map +1 -1
  76. package/dist/umd/history.js +1 -1
  77. package/dist/umd/history.js.map +1 -1
  78. package/dist/umd/hsml-app.js +1 -1
  79. package/dist/umd/hsml-app.js.map +1 -1
  80. package/dist/umd/hsml-convert.js +1 -1
  81. package/dist/umd/hsml-convert.js.map +1 -1
  82. package/dist/umd/hsml-dom.js +1 -1
  83. package/dist/umd/hsml-dom.js.map +1 -1
  84. package/dist/umd/hsml-h.js +1 -1
  85. package/dist/umd/hsml-h.js.map +1 -1
  86. package/dist/umd/hsml-html.js +1 -1
  87. package/dist/umd/hsml-html.js.map +1 -1
  88. package/dist/umd/hsml-idom.js +1 -1
  89. package/dist/umd/hsml-idom.js.map +1 -1
  90. package/dist/umd/hsml-svac-ctrl.js +1 -1
  91. package/dist/umd/hsml-svac-ctrl.js.map +1 -1
  92. package/dist/umd/hsml-svac-html.js +1 -1
  93. package/dist/umd/hsml-svac-html.js.map +1 -1
  94. package/dist/umd/hsml-widget.js +1 -1
  95. package/dist/umd/hsml-widget.js.map +1 -1
  96. package/dist/umd/hsml.js +1 -1
  97. package/dist/umd/hsml.js.map +1 -1
  98. package/dist/umd/http.js +1 -1
  99. package/dist/umd/http.js.map +1 -1
  100. package/dist/umd/index.js +1 -1
  101. package/dist/umd/index.js.map +1 -1
  102. package/dist/umd/load.js +1 -1
  103. package/dist/umd/load.js.map +1 -1
  104. package/dist/umd/objpaths.js +1 -1
  105. package/dist/umd/objpaths.js.map +1 -1
  106. package/dist/umd/router.js +1 -1
  107. package/dist/umd/router.js.map +1 -1
  108. package/dist/umd/settings.js +1 -1
  109. package/dist/umd/settings.js.map +1 -1
  110. package/dist/umd/signal.js +1 -1
  111. package/dist/umd/signal.js.map +1 -1
  112. package/dist/umd/template.js +1 -1
  113. package/dist/umd/template.js.map +1 -1
  114. package/dist/umd/tmpl.js +1 -1
  115. package/dist/umd/tmpl.js.map +1 -1
  116. package/dist/umd/validators-moment.js +1 -1
  117. package/dist/umd/validators-moment.js.map +1 -1
  118. package/dist/umd/validators-numeral.js +1 -1
  119. package/dist/umd/validators-numeral.js.map +1 -1
  120. package/dist/umd/validators-object.js +1 -1
  121. package/dist/umd/validators-object.js.map +1 -1
  122. package/dist/umd/validators.js +1 -1
  123. package/dist/umd/validators.js.map +1 -1
  124. package/dist/validators-moment.js +1 -0
  125. package/dist/validators-moment.js.map +1 -1
  126. package/dist/validators-numeral.js +1 -0
  127. package/dist/validators-numeral.js.map +1 -1
  128. package/dist/validators-object.js +1 -0
  129. package/dist/validators-object.js.map +1 -1
  130. package/dist/validators.js +1 -4
  131. package/dist/validators.js.map +1 -1
  132. package/package.json +1 -1
  133. package/src/hash.ts +20 -2
  134. package/src/hsml-app.ts +6 -8
  135. package/src/hsml-idom.ts +2 -2
  136. 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 s 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.StringValidator=s;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 s=!1;if(isNaN(n)&&(s=!0),r.strict&&t!==this.objToStr(n).str&&(s=!0),s){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(),a=t=>t.toLocaleDateString();r.DateValidator=class extends n{constructor(t,r){super(t,r),this.dateToStr=(null==t?void 0:t.dateOnly)?a: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 s=new Date(n);r.dateOnly&&(s=new Date(s.getFullYear(),s.getMonth(),s.getDate()));let o=!1;if(isNaN(n)&&(o=!0),o){const t=isNaN(n)?new Date:s;return{obj:isNaN(n)?null:s,err:e.invalid_format?i(e.invalid_format,Object.assign(Object.assign({},r.data),{date:this.objToStr(t).str||""})):"invalid_format"}}return{obj:s,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}}};const l=new s({required:!0,min:8}),u=l.format("");console.log(u,l)},31:function(t,r,e){"use strict";Object.defineProperty(r,"__esModule",{value:!0});const n=e(3),i=e(32);class s 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 s=i(t,r.format||"L LT",r.locale||"en",r.strict||!1);let o=!1;if(s.isValid()||(o=!0),"strict"in r&&r.strict&&t!==this.objToStr(s).str&&(o=!0),o){const t=s.isValid()?s:i(new Date);return{obj:s.isValid()?s: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:s,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=s;class o extends n.Validator{constructor(t,r){super(t,r),this.mv=new s(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=o},32:function(r,e){r.exports=t}})}));
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 s 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.StringValidator=s;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 s=!1;if(isNaN(n)&&(s=!0),r.strict&&t!==this.objToStr(n).str&&(s=!0),s){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(),a=t=>t.toLocaleDateString();r.DateValidator=class extends n{constructor(t,r){super(t,r),this.dateToStr=(null==t?void 0:t.dateOnly)?a: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 s=new Date(n);r.dateOnly&&(s=new Date(s.getFullYear(),s.getMonth(),s.getDate()));let o=!1;if(isNaN(n)&&(o=!0),o){const t=isNaN(n)?new Date:s;return{obj:isNaN(n)?null:s,err:e.invalid_format?i(e.invalid_format,Object.assign(Object.assign({},r.data),{date:this.objToStr(t).str||""})):"invalid_format"}}return{obj:s,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}}};const l=new s({required:!0,min:8}),u=l.format("");console.log(u,l)},33:function(t,r,e){"use strict";Object.defineProperty(r,"__esModule",{value:!0});const n=e(3),i=e(34);class s 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 s=i(t);let o=!1;if(null===s.value()&&(o=!0),"strict"in r&&r.strict&&t!==this.objToStr(s).str&&(o=!0),o){const t=null!==s.value()?s:i(1234.45);return{obj:null!==s.value()?s: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:s,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=s;class o extends n.Validator{constructor(t,r){super(t,r),this.nv=new s(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=o},34:function(r,e){r.exports=t}})}));
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