diff --git a/dist/es6/maska.esm.js b/dist/es6/maska.esm.js index 04b3e8d..3b8856e 100644 --- a/dist/es6/maska.esm.js +++ b/dist/es6/maska.esm.js @@ -3,4 +3,4 @@ * (c) 2019-2021 Alexander Shabunevich * Released under the MIT License. */ -var t={"#":{pattern:/[0-9]/},X:{pattern:/[0-9a-zA-Z]/},S:{pattern:/[a-zA-Z]/},A:{pattern:/[a-zA-Z]/,uppercase:!0},a:{pattern:/[a-zA-Z]/,lowercase:!0},"!":{escape:!0},"*":{repeat:!0}};function e(e,s,r=t,i=!0){return n(s).length>1?function(t){const e=n(t).sort(((t,e)=>t.length-e.length));return function(t,n,r,i=!0){const o=e.map((e=>a(t,e,r,!1))).pop();for(let n in e)if(s(o,e[n],r))return a(t,e[n],r,i);return""};function s(t,e,n){for(let t in n)n[t].escape&&(e=e.replace(new RegExp(t+".{1}","g"),""));return e.split("").filter((t=>n[t]&&n[t].pattern)).length>=t.length}}(s)(e,s,r,i):a(e,s,r,i)}function n(t){try{return JSON.parse(t)}catch{return[t]}}function a(t,e,n,a=!0){let r=0,i=0,o="",u="";for(;rthis.updateValue(t.target,t),this.init()}init(){for(let t=0;tthis.updateValue(e)),0),e.dataset.maskInited||(e.dataset.maskInited=!0,e.addEventListener("input",this.inputEvent),e.addEventListener("beforeinput",this.beforeInput))}}destroy(){for(let t=0;t{const t=new WeakMap;return(e,n)=>{n.value&&(t.has(e)&&!function(t){return!(i(t.value)&&t.value===t.oldValue||Array.isArray(t.value)&&JSON.stringify(t.value)===JSON.stringify(t.oldValue)||t.value&&t.value.mask&&t.oldValue&&t.oldValue.mask&&t.value.mask===t.oldValue.mask)}(n)||t.set(e,new o(e,function(t){const e={};return t.mask?(e.mask=Array.isArray(t.mask)?JSON.stringify(t.mask):t.mask,e.tokens=t.tokens?{...t.tokens}:{}):e.mask=Array.isArray(t)?JSON.stringify(t):t,e}(n.value))))}})();function l(t){t.directive("maska",u)}function p(t,e){return new o(t,e)}"undefined"!=typeof window&&window.Vue&&window.Vue.use&&window.Vue.use(l);export default l;export{p as create,l as install,e as mask,u as maska,t as tokens}; +var t={"#":{pattern:/[0-9]/},X:{pattern:/[0-9a-zA-Z]/},S:{pattern:/[a-zA-Z]/},A:{pattern:/[a-zA-Z]/,uppercase:!0},a:{pattern:/[a-zA-Z]/,lowercase:!0},"!":{escape:!0},"*":{repeat:!0}};function e(e,s,r=t,o=!0){return n(s).length>1?function(t){const e=n(t).sort(((t,e)=>t.length-e.length));return function(t,n,r,o=!0){const i=e.map((e=>a(t,e,r,!1))).pop();for(let n in e)if(s(i,e[n],r))return a(t,e[n],r,o);return""};function s(t,e,n){for(let t in n)n[t].escape&&(e=e.replace(new RegExp(t+".{1}","g"),""));return e.split("").filter((t=>n[t]&&n[t].pattern)).length>=t.length}}(s)(e,s,r,o):a(e,s,r,o)}function n(t){try{return JSON.parse(t)}catch{return[t]}}function a(t,e,n,a=!0){let r=0,o=0,i="",u="";for(;rthis.updateValue(t.target,t),this.init()}init(){for(let t=0;tthis.updateValue(e)),0),e.dataset.maskInited||(e.dataset.maskInited=!0,e.addEventListener("input",this.inputEvent),e.addEventListener("beforeinput",this.beforeInput))}}destroy(){for(let t=0;t{const t=new WeakMap;return(e,n)=>{n.value&&(t.has(e)&&!function(t){return!(o(t.value)&&t.value===t.oldValue||Array.isArray(t.value)&&JSON.stringify(t.value)===JSON.stringify(t.oldValue)||t.value&&t.value.mask&&t.oldValue&&t.oldValue.mask&&t.value.mask===t.oldValue.mask)}(n)||t.set(e,new i(e,function(t){const e={};return t.mask?(e.mask=Array.isArray(t.mask)?JSON.stringify(t.mask):t.mask,e.tokens=t.tokens?{...t.tokens}:{},e.preprocessor=t.preprocessor):e.mask=Array.isArray(t)?JSON.stringify(t):t,e}(n.value))))}})();function p(t){t.directive("maska",u)}function l(t,e){return new i(t,e)}"undefined"!=typeof window&&window.Vue&&window.Vue.use&&window.Vue.use(p);export default p;export{l as create,p as install,e as mask,u as maska,t as tokens}; diff --git a/dist/es6/maska.js b/dist/es6/maska.js index 91e459f..9309861 100644 --- a/dist/es6/maska.js +++ b/dist/es6/maska.js @@ -3,4 +3,4 @@ * (c) 2019-2021 Alexander Shabunevich * Released under the MIT License. */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Maska={})}(this,(function(t){"use strict";var e={"#":{pattern:/[0-9]/},X:{pattern:/[0-9a-zA-Z]/},S:{pattern:/[a-zA-Z]/},A:{pattern:/[a-zA-Z]/,uppercase:!0},a:{pattern:/[a-zA-Z]/,lowercase:!0},"!":{escape:!0},"*":{repeat:!0}};function n(t,n,r=e,i=!0){return a(n).length>1?function(t){const e=a(t).sort(((t,e)=>t.length-e.length));return function(t,a,r,i=!0){const o=e.map((e=>s(t,e,r,!1))).pop();for(let a in e)if(n(o,e[a],r))return s(t,e[a],r,i);return""};function n(t,e,n){for(let t in n)n[t].escape&&(e=e.replace(new RegExp(t+".{1}","g"),""));return e.split("").filter((t=>n[t]&&n[t].pattern)).length>=t.length}}(n)(t,n,r,i):s(t,n,r,i)}function a(t){try{return JSON.parse(t)}catch{return[t]}}function s(t,e,n,a=!0){let s=0,i=0,o="",u="";for(;sthis.updateValue(t.target,t),this.init()}init(){for(let t=0;tthis.updateValue(e)),0),e.dataset.maskInited||(e.dataset.maskInited=!0,e.addEventListener("input",this.inputEvent),e.addEventListener("beforeinput",this.beforeInput))}}destroy(){for(let t=0;t{const t=new WeakMap;return(e,n)=>{n.value&&(t.has(e)&&!function(t){return!(o(t.value)&&t.value===t.oldValue||Array.isArray(t.value)&&JSON.stringify(t.value)===JSON.stringify(t.oldValue)||t.value&&t.value.mask&&t.oldValue&&t.oldValue.mask&&t.value.mask===t.oldValue.mask)}(n)||t.set(e,new u(e,function(t){const e={};return t.mask?(e.mask=Array.isArray(t.mask)?JSON.stringify(t.mask):t.mask,e.tokens=t.tokens?{...t.tokens}:{}):e.mask=Array.isArray(t)?JSON.stringify(t):t,e}(n.value))))}})();function p(t){t.directive("maska",l)}"undefined"!=typeof window&&window.Vue&&window.Vue.use&&window.Vue.use(p),t.create=function(t,e){return new u(t,e)},t.default=p,t.install=p,t.mask=n,t.maska=l,t.tokens=e,Object.defineProperty(t,"__esModule",{value:!0})})); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Maska={})}(this,(function(e){"use strict";var t={"#":{pattern:/[0-9]/},X:{pattern:/[0-9a-zA-Z]/},S:{pattern:/[a-zA-Z]/},A:{pattern:/[a-zA-Z]/,uppercase:!0},a:{pattern:/[a-zA-Z]/,lowercase:!0},"!":{escape:!0},"*":{repeat:!0}};function n(e,n,r=t,o=!0){return s(n).length>1?function(e){const t=s(e).sort(((e,t)=>e.length-t.length));return function(e,s,r,o=!0){const i=t.map((t=>a(e,t,r,!1))).pop();for(let s in t)if(n(i,t[s],r))return a(e,t[s],r,o);return""};function n(e,t,n){for(let e in n)n[e].escape&&(t=t.replace(new RegExp(e+".{1}","g"),""));return t.split("").filter((e=>n[e]&&n[e].pattern)).length>=e.length}}(n)(e,n,r,o):a(e,n,r,o)}function s(e){try{return JSON.parse(e)}catch{return[e]}}function a(e,t,n,s=!0){let a=0,o=0,i="",u="";for(;athis.updateValue(e.target,e),this.init()}init(){for(let e=0;ethis.updateValue(t)),0),t.dataset.maskInited||(t.dataset.maskInited=!0,t.addEventListener("input",this.inputEvent),t.addEventListener("beforeinput",this.beforeInput))}}destroy(){for(let e=0;e{const e=new WeakMap;return(t,n)=>{n.value&&(e.has(t)&&!function(e){return!(i(e.value)&&e.value===e.oldValue||Array.isArray(e.value)&&JSON.stringify(e.value)===JSON.stringify(e.oldValue)||e.value&&e.value.mask&&e.oldValue&&e.oldValue.mask&&e.value.mask===e.oldValue.mask)}(n)||e.set(t,new u(t,function(e){const t={};return e.mask?(t.mask=Array.isArray(e.mask)?JSON.stringify(e.mask):e.mask,t.tokens=e.tokens?{...e.tokens}:{},t.preprocessor=e.preprocessor):t.mask=Array.isArray(e)?JSON.stringify(e):e,t}(n.value))))}})();function l(e){e.directive("maska",p)}"undefined"!=typeof window&&window.Vue&&window.Vue.use&&window.Vue.use(l),e.create=function(e,t){return new u(e,t)},e.default=l,e.install=l,e.mask=n,e.maska=p,e.tokens=t,Object.defineProperty(e,"__esModule",{value:!0})})); diff --git a/dist/es6/maska.umd.js b/dist/es6/maska.umd.js index 91e459f..9309861 100644 --- a/dist/es6/maska.umd.js +++ b/dist/es6/maska.umd.js @@ -3,4 +3,4 @@ * (c) 2019-2021 Alexander Shabunevich * Released under the MIT License. */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Maska={})}(this,(function(t){"use strict";var e={"#":{pattern:/[0-9]/},X:{pattern:/[0-9a-zA-Z]/},S:{pattern:/[a-zA-Z]/},A:{pattern:/[a-zA-Z]/,uppercase:!0},a:{pattern:/[a-zA-Z]/,lowercase:!0},"!":{escape:!0},"*":{repeat:!0}};function n(t,n,r=e,i=!0){return a(n).length>1?function(t){const e=a(t).sort(((t,e)=>t.length-e.length));return function(t,a,r,i=!0){const o=e.map((e=>s(t,e,r,!1))).pop();for(let a in e)if(n(o,e[a],r))return s(t,e[a],r,i);return""};function n(t,e,n){for(let t in n)n[t].escape&&(e=e.replace(new RegExp(t+".{1}","g"),""));return e.split("").filter((t=>n[t]&&n[t].pattern)).length>=t.length}}(n)(t,n,r,i):s(t,n,r,i)}function a(t){try{return JSON.parse(t)}catch{return[t]}}function s(t,e,n,a=!0){let s=0,i=0,o="",u="";for(;sthis.updateValue(t.target,t),this.init()}init(){for(let t=0;tthis.updateValue(e)),0),e.dataset.maskInited||(e.dataset.maskInited=!0,e.addEventListener("input",this.inputEvent),e.addEventListener("beforeinput",this.beforeInput))}}destroy(){for(let t=0;t{const t=new WeakMap;return(e,n)=>{n.value&&(t.has(e)&&!function(t){return!(o(t.value)&&t.value===t.oldValue||Array.isArray(t.value)&&JSON.stringify(t.value)===JSON.stringify(t.oldValue)||t.value&&t.value.mask&&t.oldValue&&t.oldValue.mask&&t.value.mask===t.oldValue.mask)}(n)||t.set(e,new u(e,function(t){const e={};return t.mask?(e.mask=Array.isArray(t.mask)?JSON.stringify(t.mask):t.mask,e.tokens=t.tokens?{...t.tokens}:{}):e.mask=Array.isArray(t)?JSON.stringify(t):t,e}(n.value))))}})();function p(t){t.directive("maska",l)}"undefined"!=typeof window&&window.Vue&&window.Vue.use&&window.Vue.use(p),t.create=function(t,e){return new u(t,e)},t.default=p,t.install=p,t.mask=n,t.maska=l,t.tokens=e,Object.defineProperty(t,"__esModule",{value:!0})})); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Maska={})}(this,(function(e){"use strict";var t={"#":{pattern:/[0-9]/},X:{pattern:/[0-9a-zA-Z]/},S:{pattern:/[a-zA-Z]/},A:{pattern:/[a-zA-Z]/,uppercase:!0},a:{pattern:/[a-zA-Z]/,lowercase:!0},"!":{escape:!0},"*":{repeat:!0}};function n(e,n,r=t,o=!0){return s(n).length>1?function(e){const t=s(e).sort(((e,t)=>e.length-t.length));return function(e,s,r,o=!0){const i=t.map((t=>a(e,t,r,!1))).pop();for(let s in t)if(n(i,t[s],r))return a(e,t[s],r,o);return""};function n(e,t,n){for(let e in n)n[e].escape&&(t=t.replace(new RegExp(e+".{1}","g"),""));return t.split("").filter((e=>n[e]&&n[e].pattern)).length>=e.length}}(n)(e,n,r,o):a(e,n,r,o)}function s(e){try{return JSON.parse(e)}catch{return[e]}}function a(e,t,n,s=!0){let a=0,o=0,i="",u="";for(;athis.updateValue(e.target,e),this.init()}init(){for(let e=0;ethis.updateValue(t)),0),t.dataset.maskInited||(t.dataset.maskInited=!0,t.addEventListener("input",this.inputEvent),t.addEventListener("beforeinput",this.beforeInput))}}destroy(){for(let e=0;e{const e=new WeakMap;return(t,n)=>{n.value&&(e.has(t)&&!function(e){return!(i(e.value)&&e.value===e.oldValue||Array.isArray(e.value)&&JSON.stringify(e.value)===JSON.stringify(e.oldValue)||e.value&&e.value.mask&&e.oldValue&&e.oldValue.mask&&e.value.mask===e.oldValue.mask)}(n)||e.set(t,new u(t,function(e){const t={};return e.mask?(t.mask=Array.isArray(e.mask)?JSON.stringify(e.mask):e.mask,t.tokens=e.tokens?{...e.tokens}:{},t.preprocessor=e.preprocessor):t.mask=Array.isArray(e)?JSON.stringify(e):e,t}(n.value))))}})();function l(e){e.directive("maska",p)}"undefined"!=typeof window&&window.Vue&&window.Vue.use&&window.Vue.use(l),e.create=function(e,t){return new u(e,t)},e.default=l,e.install=l,e.mask=n,e.maska=p,e.tokens=t,Object.defineProperty(e,"__esModule",{value:!0})})); diff --git a/dist/maska.esm.js b/dist/maska.esm.js index 5d32158..06f7a2d 100644 --- a/dist/maska.esm.js +++ b/dist/maska.esm.js @@ -3,4 +3,4 @@ * (c) 2019-2021 Alexander Shabunevich * Released under the MIT License. */ -function e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function t(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:i,a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return u(t).length>1?s(t)(e,t,n,a):l(e,t,n,a)}function u(e){try{return JSON.parse(e)}catch(t){return[e]}}function s(e){var t=u(e).sort((function(e,t){return e.length-t.length}));return function(e,a,r){var i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=t.map((function(t){return l(e,t,r,!1)})),u=o.pop();for(var s in t)if(n(u,t[s],r))return l(e,t[s],r,i);return""};function n(e,t,n){for(var a in n)n[a].escape&&(t=t.replace(new RegExp(a+".{1}","g"),""));return t.split("").filter((function(e){return n[e]&&n[e].pattern})).length>=e.length}}function l(e,t,n){for(var a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=0,i=0,o="",u="";r1&&void 0!==arguments[1]?arguments[1]:{};if(e(this,n),!t)throw new Error("Maska: no element for mask");if(o.tokens)for(var u in o.tokens)o.tokens[u]=r({},o.tokens[u]),o.tokens[u].pattern&&f(o.tokens[u].pattern)&&(o.tokens[u].pattern=new RegExp(o.tokens[u].pattern));this._opts={mask:o.mask,tokens:r(r({},i),o.tokens)},this._el=f(t)?document.querySelectorAll(t):t.length?t:[t],this.inputEvent=function(e){return a.updateValue(e.target,e)},this.init()}var a,u,s;return a=n,(u=[{key:"init",value:function(){for(var e=this,t=function(t){var n=c(e._el[t]);!e._opts.mask||n.dataset.mask&&n.dataset.mask===e._opts.mask||(n.dataset.mask=e._opts.mask),setTimeout((function(){return e.updateValue(n)}),0),n.dataset.maskInited||(n.dataset.maskInited=!0,n.addEventListener("input",e.inputEvent),n.addEventListener("beforeinput",e.beforeInput))},n=0;n1&&void 0!==arguments[1]?arguments[1]:null,n=document.createEvent("Event");return n.initEvent(e,!0,!0),t&&(n.inputType=t),n}(e,n&&n.inputType||null))}}])&&t(a.prototype,u),s&&t(a,s),n}();var d,k=(d=new WeakMap,function(e,t){t.value&&(d.has(e)&&!function(e){return!(f(e.value)&&e.value===e.oldValue||Array.isArray(e.value)&&JSON.stringify(e.value)===JSON.stringify(e.oldValue)||e.value&&e.value.mask&&e.oldValue&&e.oldValue.mask&&e.value.mask===e.oldValue.mask)}(t)||d.set(e,new v(e,function(e){var t={};return e.mask?(t.mask=Array.isArray(e.mask)?JSON.stringify(e.mask):e.mask,t.tokens=e.tokens?r({},e.tokens):{}):t.mask=Array.isArray(e)?JSON.stringify(e):e,t}(t.value))))});function h(e){e.directive("maska",k)}function m(e,t){return new v(e,t)}"undefined"!=typeof window&&window.Vue&&window.Vue.use&&window.Vue.use(h);export default h;export{m as create,h as install,o as mask,k as maska,i as tokens}; +function e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function t(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:o,r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return i(t).length>1?u(t)(e,t,n,r):p(e,t,n,r)}function i(e){try{return JSON.parse(e)}catch(t){return[e]}}function u(e){var t=i(e).sort((function(e,t){return e.length-t.length}));return function(e,r,a){var o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],s=t.map((function(t){return p(e,t,a,!1)})),i=s.pop();for(var u in t)if(n(i,t[u],a))return p(e,t[u],a,o);return""};function n(e,t,n){for(var r in n)n[r].escape&&(t=t.replace(new RegExp(r+".{1}","g"),""));return t.split("").filter((function(e){return n[e]&&n[e].pattern})).length>=e.length}}function p(e,t,n){for(var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=0,o=0,s="",i="";a1&&void 0!==arguments[1]?arguments[1]:{};if(e(this,n),!t)throw new Error("Maska: no element for mask");if(null!=s.preprocessor&&"function"!=typeof s.preprocessor)throw new Error("Maska: preprocessor must be a function");if(s.tokens)for(var i in s.tokens)s.tokens[i]=a({},s.tokens[i]),s.tokens[i].pattern&&f(s.tokens[i].pattern)&&(s.tokens[i].pattern=new RegExp(s.tokens[i].pattern));this._opts={mask:s.mask,tokens:a(a({},o),s.tokens),preprocessor:s.preprocessor},this._el=f(t)?document.querySelectorAll(t):t.length?t:[t],this.inputEvent=function(e){return r.updateValue(e.target,e)},this.init()}var r,i,u;return r=n,(i=[{key:"init",value:function(){for(var e=this,t=function(t){var n=c(e._el[t]);!e._opts.mask||n.dataset.mask&&n.dataset.mask===e._opts.mask||(n.dataset.mask=e._opts.mask),setTimeout((function(){return e.updateValue(n)}),0),n.dataset.maskInited||(n.dataset.maskInited=!0,n.addEventListener("input",e.inputEvent),n.addEventListener("beforeinput",e.beforeInput))},n=0;n1&&void 0!==arguments[1]?arguments[1]:null,n=document.createEvent("Event");return n.initEvent(e,!0,!0),t&&(n.inputType=t),n}(e,n&&n.inputType||null))}}])&&t(r.prototype,i),u&&t(r,u),n}();var d,h=(d=new WeakMap,function(e,t){t.value&&(d.has(e)&&!function(e){return!(f(e.value)&&e.value===e.oldValue||Array.isArray(e.value)&&JSON.stringify(e.value)===JSON.stringify(e.oldValue)||e.value&&e.value.mask&&e.oldValue&&e.oldValue.mask&&e.value.mask===e.oldValue.mask)}(t)||d.set(e,new v(e,function(e){var t={};return e.mask?(t.mask=Array.isArray(e.mask)?JSON.stringify(e.mask):e.mask,t.tokens=e.tokens?a({},e.tokens):{},t.preprocessor=e.preprocessor):t.mask=Array.isArray(e)?JSON.stringify(e):e,t}(t.value))))});function k(e){e.directive("maska",h)}function m(e,t){return new v(e,t)}"undefined"!=typeof window&&window.Vue&&window.Vue.use&&window.Vue.use(k);export default k;export{m as create,k as install,s as mask,h as maska,o as tokens}; diff --git a/dist/maska.js b/dist/maska.js index ba485d0..b876326 100644 --- a/dist/maska.js +++ b/dist/maska.js @@ -3,4 +3,4 @@ * (c) 2019-2021 Alexander Shabunevich * Released under the MIT License. */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Maska={})}(this,(function(e){"use strict";function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:o,a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return u(t).length>1?l(t)(e,t,n,a):c(e,t,n,a)}function u(e){try{return JSON.parse(e)}catch(t){return[e]}}function l(e){var t=u(e).sort((function(e,t){return e.length-t.length}));return function(e,a,r){var i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=t.map((function(t){return c(e,t,r,!1)})),s=o.pop();for(var u in t)if(n(s,t[u],r))return c(e,t[u],r,i);return""};function n(e,t,n){for(var a in n)n[a].escape&&(t=t.replace(new RegExp(a+".{1}","g"),""));return t.split("").filter((function(e){return n[e]&&n[e].pattern})).length>=e.length}}function c(e,t,n){for(var a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=0,i=0,o="",s="";r1&&void 0!==arguments[1]?arguments[1]:{};if(t(this,e),!n)throw new Error("Maska: no element for mask");if(r.tokens)for(var s in r.tokens)r.tokens[s]=i({},r.tokens[s]),r.tokens[s].pattern&&v(r.tokens[s].pattern)&&(r.tokens[s].pattern=new RegExp(r.tokens[s].pattern));this._opts={mask:r.mask,tokens:i(i({},o),r.tokens)},this._el=v(n)?document.querySelectorAll(n):n.length?n:[n],this.inputEvent=function(e){return a.updateValue(e.target,e)},this.init()}var a,r,u;return a=e,(r=[{key:"init",value:function(){for(var e=this,t=function(t){var n=f(e._el[t]);!e._opts.mask||n.dataset.mask&&n.dataset.mask===e._opts.mask||(n.dataset.mask=e._opts.mask),setTimeout((function(){return e.updateValue(n)}),0),n.dataset.maskInited||(n.dataset.maskInited=!0,n.addEventListener("input",e.inputEvent),n.addEventListener("beforeinput",e.beforeInput))},n=0;n1&&void 0!==arguments[1]?arguments[1]:null,n=document.createEvent("Event");return n.initEvent(e,!0,!0),t&&(n.inputType=t),n}(e,n&&n.inputType||null))}}])&&n(a.prototype,r),u&&n(a,u),e}();var k,h=(k=new WeakMap,function(e,t){t.value&&(k.has(e)&&!function(e){return!(v(e.value)&&e.value===e.oldValue||Array.isArray(e.value)&&JSON.stringify(e.value)===JSON.stringify(e.oldValue)||e.value&&e.value.mask&&e.oldValue&&e.oldValue.mask&&e.value.mask===e.oldValue.mask)}(t)||k.set(e,new d(e,function(e){var t={};return e.mask?(t.mask=Array.isArray(e.mask)?JSON.stringify(e.mask):e.mask,t.tokens=e.tokens?i({},e.tokens):{}):t.mask=Array.isArray(e)?JSON.stringify(e):e,t}(t.value))))});function m(e){e.directive("maska",h)}"undefined"!=typeof window&&window.Vue&&window.Vue.use&&window.Vue.use(m),e.create=function(e,t){return new d(e,t)},e.default=m,e.install=m,e.mask=s,e.maska=h,e.tokens=o,Object.defineProperty(e,"__esModule",{value:!0})})); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Maska={})}(this,(function(e){"use strict";function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:s,r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return u(t).length>1?l(t)(e,t,n,r):p(e,t,n,r)}function u(e){try{return JSON.parse(e)}catch(t){return[e]}}function l(e){var t=u(e).sort((function(e,t){return e.length-t.length}));return function(e,r,a){var o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],s=t.map((function(t){return p(e,t,a,!1)})),i=s.pop();for(var u in t)if(n(i,t[u],a))return p(e,t[u],a,o);return""};function n(e,t,n){for(var r in n)n[r].escape&&(t=t.replace(new RegExp(r+".{1}","g"),""));return t.split("").filter((function(e){return n[e]&&n[e].pattern})).length>=e.length}}function p(e,t,n){for(var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=0,o=0,s="",i="";a1&&void 0!==arguments[1]?arguments[1]:{};if(t(this,e),!n)throw new Error("Maska: no element for mask");if(null!=a.preprocessor&&"function"!=typeof a.preprocessor)throw new Error("Maska: preprocessor must be a function");if(a.tokens)for(var i in a.tokens)a.tokens[i]=o({},a.tokens[i]),a.tokens[i].pattern&&v(a.tokens[i].pattern)&&(a.tokens[i].pattern=new RegExp(a.tokens[i].pattern));this._opts={mask:a.mask,tokens:o(o({},s),a.tokens),preprocessor:a.preprocessor},this._el=v(n)?document.querySelectorAll(n):n.length?n:[n],this.inputEvent=function(e){return r.updateValue(e.target,e)},this.init()}var r,a,u;return r=e,(a=[{key:"init",value:function(){for(var e=this,t=function(t){var n=f(e._el[t]);!e._opts.mask||n.dataset.mask&&n.dataset.mask===e._opts.mask||(n.dataset.mask=e._opts.mask),setTimeout((function(){return e.updateValue(n)}),0),n.dataset.maskInited||(n.dataset.maskInited=!0,n.addEventListener("input",e.inputEvent),n.addEventListener("beforeinput",e.beforeInput))},n=0;n1&&void 0!==arguments[1]?arguments[1]:null,n=document.createEvent("Event");return n.initEvent(e,!0,!0),t&&(n.inputType=t),n}(e,n&&n.inputType||null))}}])&&n(r.prototype,a),u&&n(r,u),e}();var h,k=(h=new WeakMap,function(e,t){t.value&&(h.has(e)&&!function(e){return!(v(e.value)&&e.value===e.oldValue||Array.isArray(e.value)&&JSON.stringify(e.value)===JSON.stringify(e.oldValue)||e.value&&e.value.mask&&e.oldValue&&e.oldValue.mask&&e.value.mask===e.oldValue.mask)}(t)||h.set(e,new d(e,function(e){var t={};return e.mask?(t.mask=Array.isArray(e.mask)?JSON.stringify(e.mask):e.mask,t.tokens=e.tokens?o({},e.tokens):{},t.preprocessor=e.preprocessor):t.mask=Array.isArray(e)?JSON.stringify(e):e,t}(t.value))))});function m(e){e.directive("maska",k)}"undefined"!=typeof window&&window.Vue&&window.Vue.use&&window.Vue.use(m),e.create=function(e,t){return new d(e,t)},e.default=m,e.install=m,e.mask=i,e.maska=k,e.tokens=s,Object.defineProperty(e,"__esModule",{value:!0})})); diff --git a/dist/maska.umd.js b/dist/maska.umd.js index ba485d0..b876326 100644 --- a/dist/maska.umd.js +++ b/dist/maska.umd.js @@ -3,4 +3,4 @@ * (c) 2019-2021 Alexander Shabunevich * Released under the MIT License. */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Maska={})}(this,(function(e){"use strict";function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:o,a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return u(t).length>1?l(t)(e,t,n,a):c(e,t,n,a)}function u(e){try{return JSON.parse(e)}catch(t){return[e]}}function l(e){var t=u(e).sort((function(e,t){return e.length-t.length}));return function(e,a,r){var i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=t.map((function(t){return c(e,t,r,!1)})),s=o.pop();for(var u in t)if(n(s,t[u],r))return c(e,t[u],r,i);return""};function n(e,t,n){for(var a in n)n[a].escape&&(t=t.replace(new RegExp(a+".{1}","g"),""));return t.split("").filter((function(e){return n[e]&&n[e].pattern})).length>=e.length}}function c(e,t,n){for(var a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=0,i=0,o="",s="";r1&&void 0!==arguments[1]?arguments[1]:{};if(t(this,e),!n)throw new Error("Maska: no element for mask");if(r.tokens)for(var s in r.tokens)r.tokens[s]=i({},r.tokens[s]),r.tokens[s].pattern&&v(r.tokens[s].pattern)&&(r.tokens[s].pattern=new RegExp(r.tokens[s].pattern));this._opts={mask:r.mask,tokens:i(i({},o),r.tokens)},this._el=v(n)?document.querySelectorAll(n):n.length?n:[n],this.inputEvent=function(e){return a.updateValue(e.target,e)},this.init()}var a,r,u;return a=e,(r=[{key:"init",value:function(){for(var e=this,t=function(t){var n=f(e._el[t]);!e._opts.mask||n.dataset.mask&&n.dataset.mask===e._opts.mask||(n.dataset.mask=e._opts.mask),setTimeout((function(){return e.updateValue(n)}),0),n.dataset.maskInited||(n.dataset.maskInited=!0,n.addEventListener("input",e.inputEvent),n.addEventListener("beforeinput",e.beforeInput))},n=0;n1&&void 0!==arguments[1]?arguments[1]:null,n=document.createEvent("Event");return n.initEvent(e,!0,!0),t&&(n.inputType=t),n}(e,n&&n.inputType||null))}}])&&n(a.prototype,r),u&&n(a,u),e}();var k,h=(k=new WeakMap,function(e,t){t.value&&(k.has(e)&&!function(e){return!(v(e.value)&&e.value===e.oldValue||Array.isArray(e.value)&&JSON.stringify(e.value)===JSON.stringify(e.oldValue)||e.value&&e.value.mask&&e.oldValue&&e.oldValue.mask&&e.value.mask===e.oldValue.mask)}(t)||k.set(e,new d(e,function(e){var t={};return e.mask?(t.mask=Array.isArray(e.mask)?JSON.stringify(e.mask):e.mask,t.tokens=e.tokens?i({},e.tokens):{}):t.mask=Array.isArray(e)?JSON.stringify(e):e,t}(t.value))))});function m(e){e.directive("maska",h)}"undefined"!=typeof window&&window.Vue&&window.Vue.use&&window.Vue.use(m),e.create=function(e,t){return new d(e,t)},e.default=m,e.install=m,e.mask=s,e.maska=h,e.tokens=o,Object.defineProperty(e,"__esModule",{value:!0})})); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Maska={})}(this,(function(e){"use strict";function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:s,r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return u(t).length>1?l(t)(e,t,n,r):p(e,t,n,r)}function u(e){try{return JSON.parse(e)}catch(t){return[e]}}function l(e){var t=u(e).sort((function(e,t){return e.length-t.length}));return function(e,r,a){var o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],s=t.map((function(t){return p(e,t,a,!1)})),i=s.pop();for(var u in t)if(n(i,t[u],a))return p(e,t[u],a,o);return""};function n(e,t,n){for(var r in n)n[r].escape&&(t=t.replace(new RegExp(r+".{1}","g"),""));return t.split("").filter((function(e){return n[e]&&n[e].pattern})).length>=e.length}}function p(e,t,n){for(var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=0,o=0,s="",i="";a1&&void 0!==arguments[1]?arguments[1]:{};if(t(this,e),!n)throw new Error("Maska: no element for mask");if(null!=a.preprocessor&&"function"!=typeof a.preprocessor)throw new Error("Maska: preprocessor must be a function");if(a.tokens)for(var i in a.tokens)a.tokens[i]=o({},a.tokens[i]),a.tokens[i].pattern&&v(a.tokens[i].pattern)&&(a.tokens[i].pattern=new RegExp(a.tokens[i].pattern));this._opts={mask:a.mask,tokens:o(o({},s),a.tokens),preprocessor:a.preprocessor},this._el=v(n)?document.querySelectorAll(n):n.length?n:[n],this.inputEvent=function(e){return r.updateValue(e.target,e)},this.init()}var r,a,u;return r=e,(a=[{key:"init",value:function(){for(var e=this,t=function(t){var n=f(e._el[t]);!e._opts.mask||n.dataset.mask&&n.dataset.mask===e._opts.mask||(n.dataset.mask=e._opts.mask),setTimeout((function(){return e.updateValue(n)}),0),n.dataset.maskInited||(n.dataset.maskInited=!0,n.addEventListener("input",e.inputEvent),n.addEventListener("beforeinput",e.beforeInput))},n=0;n1&&void 0!==arguments[1]?arguments[1]:null,n=document.createEvent("Event");return n.initEvent(e,!0,!0),t&&(n.inputType=t),n}(e,n&&n.inputType||null))}}])&&n(r.prototype,a),u&&n(r,u),e}();var h,k=(h=new WeakMap,function(e,t){t.value&&(h.has(e)&&!function(e){return!(v(e.value)&&e.value===e.oldValue||Array.isArray(e.value)&&JSON.stringify(e.value)===JSON.stringify(e.oldValue)||e.value&&e.value.mask&&e.oldValue&&e.oldValue.mask&&e.value.mask===e.oldValue.mask)}(t)||h.set(e,new d(e,function(e){var t={};return e.mask?(t.mask=Array.isArray(e.mask)?JSON.stringify(e.mask):e.mask,t.tokens=e.tokens?o({},e.tokens):{},t.preprocessor=e.preprocessor):t.mask=Array.isArray(e)?JSON.stringify(e):e,t}(t.value))))});function m(e){e.directive("maska",k)}"undefined"!=typeof window&&window.Vue&&window.Vue.use&&window.Vue.use(m),e.create=function(e,t){return new d(e,t)},e.default=m,e.install=m,e.mask=i,e.maska=k,e.tokens=s,Object.defineProperty(e,"__esModule",{value:!0})})); diff --git a/src/directive.js b/src/directive.js index 874082c..1c5b936 100644 --- a/src/directive.js +++ b/src/directive.js @@ -7,6 +7,7 @@ function getOpts (mask) { if (mask.mask) { opts.mask = Array.isArray(mask.mask) ? JSON.stringify(mask.mask) : mask.mask opts.tokens = mask.tokens ? { ...mask.tokens } : {} + opts.preprocessor = mask.preprocessor; } else { opts.mask = Array.isArray(mask) ? JSON.stringify(mask) : mask } @@ -31,7 +32,7 @@ const directive = () => { if (state.has(el) && !needUpdate(mask)) { return } - + state.set(el, new Maska(el, getOpts(mask.value))) } } diff --git a/src/maska.js b/src/maska.js index 6687f22..0b6daff 100644 --- a/src/maska.js +++ b/src/maska.js @@ -6,6 +6,10 @@ export default class Maska { constructor (el, opts = {}) { if (!el) throw new Error('Maska: no element for mask') + if (opts.preprocessor != null && typeof opts.preprocessor != 'function') { + throw new Error('Maska: preprocessor must be a function') + } + if (opts.tokens) { for (const i in opts.tokens) { opts.tokens[i] = { ...opts.tokens[i] } @@ -15,9 +19,11 @@ export default class Maska { } } + this._opts = { mask: opts.mask, - tokens: { ...tokens, ...opts.tokens } + tokens: { ...tokens, ...opts.tokens }, + preprocessor: opts.preprocessor } this._el = isString(el) ? document.querySelectorAll(el) : !el.length ? [el] : el this.inputEvent = (e) => this.updateValue(e.target, e) @@ -65,7 +71,13 @@ export default class Maska { const digit = oldValue[position - 1] el.dataset.maskRawValue = mask(el.value, el.dataset.mask, this._opts.tokens, false) - el.value = mask(el.value, el.dataset.mask, this._opts.tokens) + let elValue = el.value; + + if (this._opts.preprocessor) { + elValue = this._opts.preprocessor(elValue); + } + + el.value = mask(elValue, el.dataset.mask, this._opts.tokens) if (evt && evt.inputType === 'insertText' && position === oldValue.length) { position = el.value.length diff --git a/types/maska.d.ts b/types/maska.d.ts index 4908156..df87b81 100644 --- a/types/maska.d.ts +++ b/types/maska.d.ts @@ -3,6 +3,7 @@ export default class Maska { _opts: { mask: any; tokens: any; + preprocessor?: (value: string) => string; }; _el: any; init(): void;