UNPKG

ngx-mask-fork

Version:
16 lines (14 loc) 34.2 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/forms"),require("@angular/common")):"function"==typeof define&&define.amd?define("ngx-mask-fork",["exports","@angular/core","@angular/forms","@angular/common"],t):t((e=e||self)["ngx-mask-fork"]={},e.ng.core,e.ng.forms,e.ng.common)}(this,(function(e,t,i,r){"use strict"; /*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */var s=function(e,t){return(s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)};var a=function(){return(a=Object.assign||function(e){for(var t,i=1,r=arguments.length;i<r;i++)for(var s in t=arguments[i])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e}).apply(this,arguments)};function n(e,t,i,r){var s,a=arguments.length,n=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,r);else for(var o=e.length-1;o>=0;o--)(s=e[o])&&(n=(a<3?s(n):a>3?s(t,i,n):s(t,i))||n);return a>3&&n&&Object.defineProperty(t,i,n),n}function o(e,t){return function(i,r){t(i,r,e)}}function l(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function h(e,t){var i,r,s,a,n={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(i)throw new TypeError("Generator is already executing.");for(;n;)try{if(i=1,r&&(s=2&a[0]?r.return:a[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,a[1])).done)return s;switch(r=0,s&&(a=[2&a[0],s.value]),a[0]){case 0:case 1:s=a;break;case 4:return n.label++,{value:a[1],done:!1};case 5:n.label++,r=a[1],a=[0];continue;case 7:a=n.ops.pop(),n.trys.pop();continue;default:if(!(s=n.trys,(s=s.length>0&&s[s.length-1])||6!==a[0]&&2!==a[0])){n=0;continue}if(3===a[0]&&(!s||a[1]>s[0]&&a[1]<s[3])){n.label=a[1];break}if(6===a[0]&&n.label<s[1]){n.label=s[1],s=a;break}if(s&&n.label<s[2]){n.label=s[2],n.ops.push(a);break}s[2]&&n.ops.pop(),n.trys.pop();continue}a=t.call(e,n)}catch(e){a=[6,e],r=0}finally{i=s=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,o])}}}function c(e,t){var i="function"==typeof Symbol&&e[Symbol.iterator];if(!i)return e;var r,s,a=i.call(e),n=[];try{for(;(void 0===t||t-- >0)&&!(r=a.next()).done;)n.push(r.value)}catch(e){s={error:e}}finally{try{r&&!r.done&&(i=a.return)&&i.call(a)}finally{if(s)throw s.error}}return n}var p=new t.InjectionToken("config"),u=new t.InjectionToken("NEW_CONFIG"),f=new t.InjectionToken("INITIAL_CONFIG"),m={suffix:"",prefix:"",thousandSeparator:" ",decimalMarker:".",clearIfNotMatch:!1,showTemplate:!1,showMaskTyped:!1,placeHolderCharacter:"_",dropSpecialCharacters:!0,hiddenInput:void 0,shownMaskExpression:"",separatorLimit:"",allowNegativeNumbers:!1,validation:!0,specialCharacters:["-","/","(",")",".",":"," ","+",",","@","[","]",'"',"'"],patterns:{0:{pattern:new RegExp("\\d")},9:{pattern:new RegExp("\\d"),optional:!0},X:{pattern:new RegExp("\\d"),symbol:"*"},A:{pattern:new RegExp("[a-zA-Z0-9]")},S:{pattern:new RegExp("[a-zA-Z]")},d:{pattern:new RegExp("\\d")},m:{pattern:new RegExp("\\d")},M:{pattern:new RegExp("\\d")},H:{pattern:new RegExp("\\d")},h:{pattern:new RegExp("\\d")},s:{pattern:new RegExp("\\d")}}},d=["Hh:m0:s0","Hh:m0","m0:s0"],g=["percent","Hh","s0","m0","separator","d0/M0/0000","d0/M0","d0","M0"],k=function(){function e(e){var t=this;this._config=e,this.maskExpression="",this.actualValue="",this.shownMaskExpression="",this._formatWithSeparators=function(e,i,r,s){var a=e.split(r),n=a.length>1?""+r+a[1]:"",o=a[0],l=t.separatorLimit.replace(/\s/g,"");l&&+l&&(o="-"===o[0]?"-"+o.slice(1,o.length).slice(0,l.length):o.slice(0,l.length));for(var h=/(\d+)(\d{3})/;i&&h.test(o);)o=o.replace(h,"$1"+i+"$2");return void 0===s?o+n:0===s?o:o+n.substr(0,s+1)},this.percentage=function(e){return Number(e)>=0&&Number(e)<=100},this.getPrecision=function(e){var t=e.split(".");return t.length>1?Number(t[t.length-1]):1/0},this.checkInputPrecision=function(e,i,r){if(i<1/0){var s=new RegExp(t._charToRegExpExpression(r)+"\\d{"+i+"}.*$"),a=e.match(s);(a&&a[0].length-1>i||0===i&&e.endsWith(r))&&(e=e.substring(0,e.length-1))}return e},this._shift=new Set,this.clearIfNotMatch=this._config.clearIfNotMatch,this.dropSpecialCharacters=this._config.dropSpecialCharacters,this.maskSpecialCharacters=this._config.specialCharacters,this.maskAvailablePatterns=this._config.patterns,this.prefix=this._config.prefix,this.suffix=this._config.suffix,this.thousandSeparator=this._config.thousandSeparator,this.decimalMarker=this._config.decimalMarker,this.hiddenInput=this._config.hiddenInput,this.showMaskTyped=this._config.showMaskTyped,this.placeHolderCharacter=this._config.placeHolderCharacter,this.validation=this._config.validation,this.separatorLimit=this._config.separatorLimit,this.allowNegativeNumbers=this._config.allowNegativeNumbers}return e.prototype.applyMaskWithPattern=function(e,t){var i=c(t,2),r=i[0],s=i[1];return this.customPattern=s,this.applyMask(e,r)},e.prototype.applyMask=function(e,t,i,r){if(void 0===i&&(i=0),void 0===r&&(r=function(){}),null==e||void 0===t)return"";var s=0,a="",n=!1,o=!1,l=1,h=!1;e.slice(0,this.prefix.length)===this.prefix&&(e=e.slice(this.prefix.length,e.length)),this.suffix&&e.endsWith(this.suffix)&&(e=e.slice(0,e.length-this.suffix.length));var c=e.toString().split("");"IP"===t&&(this.ipError=!!(c.filter((function(e){return"."===e})).length<3&&c.length<7),t="099.099.099.099");for(var p=[],u=0;u<e.length;u++)e[u].match("\\d")&&p.push(e[u]);if("CPF_CNPJ"===t&&(this.cpfCnpjError=!(11===p.length||14===p.length||15===p.length),t=p.length>11?"00.000.000/0000-00":"000.000.000-00"),t.startsWith("percent")){if(e.match("[a-z]|[A-Z]")||e.match(/[-!$%^&*()_+|~=`{}\[\]:";'<>?,\/]/)){e=this._stripToDecimal(e);var f=this.getPrecision(t);e=this.checkInputPrecision(e,f,".")}if(e.indexOf(".")>0&&!this.percentage(e.substring(0,e.indexOf(".")))){var m=e.substring(0,e.indexOf(".")-1);e=""+m+e.substring(e.indexOf("."),e.length)}a=this.percentage(e)?e:e.substring(0,e.length-1)}else if(t.startsWith("separator")){(e.match("[wа-яА-Я]")||e.match("[ЁёА-я]")||e.match("[a-z]|[A-Z]")||e.match(/[-@#!$%\\^&*()_£¬'+|~=`{}\[\]:";<>.?\/]/)||e.match("[^A-Za-z0-9,]"))&&(e=this._stripToDecimal(e)),e=e.length>1&&"0"===e[0]&&e[1]!==this.decimalMarker?e.slice(1,e.length):e;var d=this._charToRegExpExpression(this.thousandSeparator),g=this._charToRegExpExpression(this.decimalMarker),k='@#!$%^&*()_+|~=`{}\\[\\]:\\s,";<>?\\/'.replace(d,"").replace(g,""),v=new RegExp("["+k+"]");e.match(v)&&(e=e.substring(0,e.length-1));f=this.getPrecision(t);var _=(e=this.checkInputPrecision(e,f,this.decimalMarker)).replace(new RegExp(d,"g"),""),y=(a=this._formatWithSeparators(_,this.thousandSeparator,this.decimalMarker,f)).indexOf(",")-e.indexOf(",");if((C=a.length-e.length)>0&&","!==a[i]){o=!0;var S=0;do{this._shift.add(i+S),S++}while(S<C)}else 0!==y&&i>0&&!(a.indexOf(",")>=i&&i>3)||!(a.indexOf(".")>=i&&i>3)&&C<=0?(this._shift.clear(),o=!0,l=C,i+=C,this._shift.add(i)):this._shift.clear()}else{u=0;for(var x=c[0];u<c.length&&s!==t.length;x=c[++u])if(this._checkSymbolMask(x,t[s])&&"?"===t[s+1])a+=x,s+=2;else if("*"===t[s+1]&&n&&this._checkSymbolMask(x,t[s+2]))a+=x,s+=3,n=!1;else if(this._checkSymbolMask(x,t[s])&&"*"===t[s+1])a+=x,n=!0;else if("?"===t[s+1]&&this._checkSymbolMask(x,t[s+2]))a+=x,s+=3;else if(this._checkSymbolMask(x,t[s])||this.hiddenInput&&this.maskAvailablePatterns[t[s]]&&this.maskAvailablePatterns[t[s]].symbol===x){if("H"===t[s]&&Number(x)>2){s+=1;var C=/[*?]/g.test(t.slice(0,s))?c.length:s;this._shift.add(C+this.prefix.length||0),u--;continue}if("h"===t[s]&&"2"===a&&Number(x)>3){s+=1,u--;continue}if("m"===t[s]&&Number(x)>5){s+=1;C=/[*?]/g.test(t.slice(0,s))?c.length:s;this._shift.add(C+this.prefix.length||0),u--;continue}if("s"===t[s]&&Number(x)>5){s+=1;C=/[*?]/g.test(t.slice(0,s))?c.length:s;this._shift.add(C+this.prefix.length||0),u--;continue}if("d"===t[s]&&(Number(e.slice(s,s+2))>31||"/"===e[s+1])){s+=1;C=/[*?]/g.test(t.slice(0,s))?c.length:s;this._shift.add(C+this.prefix.length||0),u--;continue}if("M"===t[s]){var b=0===s&&(Number(x)>2||Number(e.slice(s,s+2))>12||"/"===e[s+1]),E=e.slice(s-3,s-1).includes("/")&&("/"===e[s-2]&&Number(e.slice(s-1,s+1))>12&&"/"!==e[s]||"/"===e[s]||"/"===e[s-3]&&Number(e.slice(s-2,s))>12&&"/"!==e[s-1]||"/"===e[s-1]),M=Number(e.slice(s-3,s-1))<=31&&!e.slice(s-3,s-1).includes("/")&&"/"===e[s-1]&&(Number(e.slice(s,s+2))>12||"/"===e[s+1]),V=Number(e.slice(s-3,s-1))>31&&!e.slice(s-3,s-1).includes("/")&&!e.slice(s-2,s).includes("/")&&Number(e.slice(s-2,s))>12,w=Number(e.slice(s-3,s-1))<=31&&!e.slice(s-3,s-1).includes("/")&&"/"!==e[s-1]&&Number(e.slice(s-1,s+1))>12;if(b||E||M||V||w){s+=1;C=/[*?]/g.test(t.slice(0,s))?c.length:s;this._shift.add(C+this.prefix.length||0),u--;continue}}a+=x,s++}else if(-1!==this.maskSpecialCharacters.indexOf(t[s])){a+=t[s],s++;C=/[*?]/g.test(t.slice(0,s))?c.length:s;this._shift.add(C+this.prefix.length||0),u--}else this.maskSpecialCharacters.indexOf(x)>-1&&this.maskAvailablePatterns[t[s]]&&this.maskAvailablePatterns[t[s]].optional?(c[s]&&"099.099.099.099"!==t&&"000.000.000-00"!==t&&"00.000.000/0000-00"!==t&&(a+=c[s]),s++,u--):"*"===this.maskExpression[s+1]&&this._findSpecialChar(this.maskExpression[s+2])&&this._findSpecialChar(x)===this.maskExpression[s+2]&&n||"?"===this.maskExpression[s+1]&&this._findSpecialChar(this.maskExpression[s+2])&&this._findSpecialChar(x)===this.maskExpression[s+2]&&n?(s+=3,a+=x):this.showMaskTyped&&this.maskSpecialCharacters.indexOf(x)<0&&x!==this.placeHolderCharacter&&(h=!0)}a.length+1===t.length&&-1!==this.maskSpecialCharacters.indexOf(t[t.length-1])&&(a+=t[t.length-1]);for(var I=i+1;this._shift.has(I);)l++,I++;var O=this._shift.has(i)?l:0;h&&O--,r(O,o),l<0&&this._shift.clear();var N=""+this.prefix+a+this.suffix;return 0===a.length&&(N=""+this.prefix+a),N},e.prototype._findSpecialChar=function(e){return this.maskSpecialCharacters.find((function(t){return t===e}))},e.prototype._checkSymbolMask=function(e,t){return this.maskAvailablePatterns=this.customPattern?this.customPattern:this.maskAvailablePatterns,this.maskAvailablePatterns[t]&&this.maskAvailablePatterns[t].pattern&&this.maskAvailablePatterns[t].pattern.test(e)},e.prototype._stripToDecimal=function(e){var t=this;return e.split("").filter((function(e,i){return e.match("^-?\\d")||"."===e||","===e||"-"===e&&0===i&&t.allowNegativeNumbers})).join("")},e.prototype._charToRegExpExpression=function(e){if(e){return" "===e?"\\s":"[\\^$.|?*+()".indexOf(e)>=0?"\\"+e:e}return e},e.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[p]}]}]},e=n([t.Injectable(),o(0,t.Inject(p)),l("design:paramtypes",[Object])],e)}(),v=function(e){function i(t,i,r,s){var a=e.call(this,i)||this;return a.document=t,a._config=i,a._elementRef=r,a._renderer=s,a.maskExpression="",a.isNumberValue=!1,a.placeHolderCharacter="_",a.maskIsShown="",a.selStart=null,a.selEnd=null,a.writingValue=!1,a.onChange=function(e){},a._formElement=a._elementRef.nativeElement,a}return function(e,t){function i(){this.constructor=e}s(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}(i,e),i.prototype.applyMask=function(t,i,r,s){var a=this;if(void 0===r&&(r=0),void 0===s&&(s=function(){}),!i)return t;if(this.maskIsShown=this.showMaskTyped?this.showMaskInInput():"","IP"===this.maskExpression&&this.showMaskTyped&&(this.maskIsShown=this.showMaskInInput(t||"#")),"CPF_CNPJ"===this.maskExpression&&this.showMaskTyped&&(this.maskIsShown=this.showMaskInInput(t||"#")),!t&&this.showMaskTyped)return this.formControlResult(this.prefix),this.prefix+this.maskIsShown;var n=t&&"number"==typeof this.selStart?t[this.selStart]:"",o="";if(void 0!==this.hiddenInput){var l=this.actualValue.split("");""!==t&&l.length?"number"==typeof this.selStart&&"number"==typeof this.selEnd&&(t.length>l.length?l.splice(this.selStart,0,n):t.length<l.length&&(l.length-t.length==1?l.splice(this.selStart-1,1):l.splice(this.selStart,this.selEnd-this.selStart))):l=[],o=this.actualValue.length?this.shiftTypedSymbols(l.join("")):t}o=Boolean(o)&&o.length?o:t;var h=e.prototype.applyMask.call(this,o,i,r,s);if(this.actualValue=this.getActualValue(h),"."===this.thousandSeparator&&"."===this.decimalMarker&&(this.decimalMarker=","),this.maskExpression.startsWith("separator")&&!0===this.dropSpecialCharacters&&(this.maskSpecialCharacters=this.maskSpecialCharacters.filter((function(e){return e!==a.decimalMarker}))),this.formControlResult(h),!this.showMaskTyped)return this.hiddenInput&&h&&h.length?this.hideInput(h,this.maskExpression):h;var c=h.length,p=this.prefix+this.maskIsShown;return h+("IP"===this.maskExpression||"CPF_CNPJ"===this.maskExpression?p:p.slice(c))},i.prototype.applyValueChanges=function(e,t){void 0===e&&(e=0),void 0===t&&(t=function(){}),this._formElement.value=this.applyMask(this._formElement.value,this.maskExpression,e,t),this._formElement!==this.document.activeElement&&this.clearIfNotMatchFn()},i.prototype.hideInput=function(e,t){var i=this;return e.split("").map((function(e,r){return i.maskAvailablePatterns&&i.maskAvailablePatterns[t[r]]&&i.maskAvailablePatterns[t[r]].symbol?i.maskAvailablePatterns[t[r]].symbol:e})).join("")},i.prototype.getActualValue=function(e){var t=this,i=e.split("").filter((function(e,i){return t._checkSymbolMask(e,t.maskExpression[i])||t.maskSpecialCharacters.includes(t.maskExpression[i])&&e===t.maskExpression[i]}));return i.join("")===e?i.join(""):e},i.prototype.shiftTypedSymbols=function(e){var t=this,i="";return(e&&e.split("").map((function(r,s){if(t.maskSpecialCharacters.includes(e[s+1])&&e[s+1]!==t.maskExpression[s+1])return i=r,e[s+1];if(i.length){var a=i;return i="",a}return r}))||[]).join("")},i.prototype.showMaskInInput=function(e){if(this.showMaskTyped&&this.shownMaskExpression){if(this.maskExpression.length!==this.shownMaskExpression.length)throw new Error("Mask expression must match mask placeholder length");return this.shownMaskExpression}if(this.showMaskTyped){if(e){if("IP"===this.maskExpression)return this._checkForIp(e);if("CPF_CNPJ"===this.maskExpression)return this._checkForCpfCnpj(e)}return this.maskExpression.replace(/\w/g,this.placeHolderCharacter)}return""},i.prototype.clearIfNotMatchFn=function(){this.clearIfNotMatch&&this.prefix.length+this.maskExpression.length+this.suffix.length!==this._formElement.value.replace(/_/g,"").length&&(this.formElementProperty(["value",""]),this.applyMask(this._formElement.value,this.maskExpression))},i.prototype.formElementProperty=function(e){var t=c(e,2),i=t[0],r=t[1];this._renderer.setProperty(this._formElement,i,r)},i.prototype.checkSpecialCharAmount=function(e){var t=this;return e.split("").filter((function(e){return t._findSpecialChar(e)})).length},i.prototype.removeMask=function(e){return this._removeMask(this._removeSuffix(this._removePrefix(e)),this.maskSpecialCharacters.concat("_").concat(this.placeHolderCharacter))},i.prototype._checkForIp=function(e){if("#"===e)return this.placeHolderCharacter+"."+this.placeHolderCharacter+"."+this.placeHolderCharacter+"."+this.placeHolderCharacter;for(var t=[],i=0;i<e.length;i++)e[i].match("\\d")&&t.push(e[i]);return t.length<=3?this.placeHolderCharacter+"."+this.placeHolderCharacter+"."+this.placeHolderCharacter:t.length>3&&t.length<=6?this.placeHolderCharacter+"."+this.placeHolderCharacter:t.length>6&&t.length<=9?this.placeHolderCharacter:(t.length>9&&t.length,"")},i.prototype._checkForCpfCnpj=function(e){var t=""+this.placeHolderCharacter+this.placeHolderCharacter+this.placeHolderCharacter+"."+this.placeHolderCharacter+this.placeHolderCharacter+this.placeHolderCharacter+"."+this.placeHolderCharacter+this.placeHolderCharacter+this.placeHolderCharacter+"-"+this.placeHolderCharacter+this.placeHolderCharacter,i=""+this.placeHolderCharacter+this.placeHolderCharacter+"."+this.placeHolderCharacter+this.placeHolderCharacter+this.placeHolderCharacter+"."+this.placeHolderCharacter+this.placeHolderCharacter+this.placeHolderCharacter+"/"+this.placeHolderCharacter+this.placeHolderCharacter+this.placeHolderCharacter+this.placeHolderCharacter+"-"+this.placeHolderCharacter+this.placeHolderCharacter;if("#"===e)return t;for(var r=[],s=0;s<e.length;s++)e[s].match("\\d")&&r.push(e[s]);return r.length<=3?t.slice(r.length,t.length):r.length>3&&r.length<=6?t.slice(r.length+1,t.length):r.length>6&&r.length<=9?t.slice(r.length+2,t.length):r.length>9&&r.length<11?t.slice(r.length+3,t.length):11===r.length?"":12===r.length?17===e.length?i.slice(16,i.length):i.slice(15,i.length):r.length>12&&r.length<=14?i.slice(r.length+4,i.length):""},i.prototype.formControlResult=function(e){this.writingValue||(Array.isArray(this.dropSpecialCharacters)?this.onChange(this._removeMask(this._removeSuffix(this._removePrefix(e)),this.dropSpecialCharacters)):this.dropSpecialCharacters?this.onChange(this._checkSymbols(e)):this.onChange(this._removeSuffix(this._removePrefix(e))))},i.prototype._removeMask=function(e,t){return e?e.replace(this._regExpForRemove(t),""):e},i.prototype._removePrefix=function(e){return this.prefix&&e?e.replace(this.prefix,""):e},i.prototype._removeSuffix=function(e){return this.suffix&&e?e.replace(this.suffix,""):e},i.prototype._retrieveSeparatorValue=function(e){return this._removeMask(this._removeSuffix(this._removePrefix(e)),this.maskSpecialCharacters)},i.prototype._regExpForRemove=function(e){return new RegExp(e.map((function(e){return"\\"+e})).join("|"),"gi")},i.prototype._checkSymbols=function(e){if(""===e)return e;var t=this._retrieveSeparatorPrecision(this.maskExpression),i=this._retrieveSeparatorValue(e);return"."!==this.decimalMarker&&(i=i.replace(this.decimalMarker,".")),this.isNumberValue?t?e===this.decimalMarker?null:this._checkPrecision(this.maskExpression,i):Number(i):i},i.prototype._retrieveSeparatorPrecision=function(e){var t=e.match(new RegExp("^separator\\.([^d]*)"));return t?Number(t[1]):null},i.prototype._checkPrecision=function(e,t){return e.indexOf("2")>0?Number(t).toFixed(2):Number(t)},i.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[r.DOCUMENT]}]},{type:void 0,decorators:[{type:t.Inject,args:[p]}]},{type:t.ElementRef},{type:t.Renderer2}]},i=n([t.Injectable(),o(0,t.Inject(r.DOCUMENT)),o(1,t.Inject(p)),l("design:paramtypes",[Object,Object,t.ElementRef,t.Renderer2])],i)}(k),_=function(){function e(e,t,r,s){this.document=e,this._maskService=t,this._config=r,this._elementRef=s,this.maskExpression="",this.specialCharacters=[],this.patterns={},this.prefix="",this.suffix="",this.thousandSeparator=" ",this.decimalMarker=".",this.dropSpecialCharacters=null,this.hiddenInput=null,this.showMaskTyped=null,this.placeHolderCharacter=null,this.shownMaskExpression=null,this.showTemplate=null,this.clearIfNotMatch=null,this.validation=null,this.separatorLimit=null,this.allowNegativeNumbers=null,this._formControl=new i.FormControl,this._maskValue="",this._position=null,this._maskExpressionArray=[],this.onChange=function(e){},this.onTouch=function(){},this._formElement=this._elementRef.nativeElement}var s;return s=e,e.prototype.ngOnChanges=function(e){var t=e.maskExpression,i=e.specialCharacters,r=e.patterns,s=e.prefix,a=e.suffix,n=e.thousandSeparator,o=e.decimalMarker,l=e.dropSpecialCharacters,h=e.hiddenInput,c=e.showMaskTyped,p=e.placeHolderCharacter,u=e.shownMaskExpression,f=e.showTemplate,m=e.clearIfNotMatch,d=e.validation,g=e.separatorLimit,k=e.allowNegativeNumbers;if(t&&(this._maskValue=t.currentValue||"",t.currentValue&&t.currentValue.split("||").length>1&&(this._maskExpressionArray=t.currentValue.split("||").sort((function(e,t){return e.length-t.length})),this._setMask())),i){if(!i.currentValue||!Array.isArray(i.currentValue))return;this._maskService.maskSpecialCharacters=i.currentValue||[]}r&&r.currentValue&&(this._maskService.maskAvailablePatterns=r.currentValue),s&&(this._maskService.prefix=s.currentValue),a&&(this._maskService.suffix=a.currentValue),n&&(this._maskService.thousandSeparator=n.currentValue),o&&(this._maskService.decimalMarker=o.currentValue),l&&(this._maskService.dropSpecialCharacters=l.currentValue),h&&(this._maskService.hiddenInput=h.currentValue),c&&(this._maskService.showMaskTyped=c.currentValue),p&&(this._maskService.placeHolderCharacter=p.currentValue),u&&(this._maskService.shownMaskExpression=u.currentValue),f&&(this._maskService.showTemplate=f.currentValue),m&&(this._maskService.clearIfNotMatch=m.currentValue),d&&(this._maskService.validation=d.currentValue),g&&(this._maskService.separatorLimit=g.currentValue),k&&(this._maskService.allowNegativeNumbers=k.currentValue,this._maskService.allowNegativeNumbers&&(this._maskService.maskSpecialCharacters=this._maskService.maskSpecialCharacters.filter((function(e){return"-"!==e})))),this._applyMask()},e.prototype.validate=function(e){var t=e.value;if(!this._maskService.validation||!this._maskValue)return null;if(this._maskService.ipError)return this._createValidationError(t);if(this._maskService.cpfCnpjError)return this._createValidationError(t);if(this._maskValue.startsWith("separator"))return null;if(g.includes(this._maskValue))return null;if(this._maskService.clearIfNotMatch)return null;if(d.includes(this._maskValue))return this._validateTime(t);if(t&&t.toString().length>=1){var i=0,r=function(e){if(s._maskService.maskAvailablePatterns[e].optional&&!0===s._maskService.maskAvailablePatterns[e].optional){if(s._maskValue.indexOf(e)!==s._maskValue.lastIndexOf(e)){var r=s._maskValue.split("").filter((function(t){return t===e})).join("");i+=r.length}else-1!==s._maskValue.indexOf(e)&&i++;if(-1!==s._maskValue.indexOf(e)&&t.toString().length>=s._maskValue.indexOf(e))return{value:null};if(i===s._maskValue.length)return{value:null}}},s=this;for(var a in this._maskService.maskAvailablePatterns){var n=r(a);if("object"==typeof n)return n.value}if(1===this._maskValue.indexOf("{")&&t.toString().length===this._maskValue.length+Number(this._maskValue.split("{")[1].split("}")[0])-4)return null;if(1===this._maskValue.indexOf("*")||1===this._maskValue.indexOf("?"))return null;if(this._maskValue.indexOf("*")>1&&t.toString().length<this._maskValue.indexOf("*")||this._maskValue.indexOf("?")>1&&t.toString().length<this._maskValue.indexOf("?")||1===this._maskValue.indexOf("{"))return this._createValidationError(t);if(-1===this._maskValue.indexOf("*")||-1===this._maskValue.indexOf("?")){var o=this._maskService.dropSpecialCharacters?this._maskValue.length-this._maskService.checkSpecialCharAmount(this._maskValue)-i:this._maskValue.length-i;if(t.toString().length<o)return this._createValidationError(t)}}return null},e.prototype.onInput=function(e){var t=e.target;if(this._inputValue=t.value,this._setMask(),this._maskValue){var i=1===t.selectionStart?t.selectionStart+this._maskService.prefix.length:t.selectionStart,r=0,s=!1;if(this._maskService.applyValueChanges(i,(function(e,t){r=e,s=t})),this.document.activeElement===t){this._position=1===this._position&&1===this._inputValue.length?null:this._position;var a=this._position?this._inputValue.length+i+r:i+("Backspace"!==this._code||s?r:0);a>this._getActualInputLength()&&(a=this._getActualInputLength()),t.setSelectionRange(a,a),(this.maskExpression.includes("H")||this.maskExpression.includes("M"))&&0===r&&t.setSelectionRange(t.selectionStart+1,t.selectionStart+1),this._position=null}}else this.onChange(t.value)},e.prototype.onBlur=function(){this._maskValue&&this._maskService.clearIfNotMatchFn(),this.onTouch()},e.prototype.onFocus=function(e){if(this._maskValue){var t=e.target;null!==t&&null!==t.selectionStart&&t.selectionStart===t.selectionEnd&&t.selectionStart>this._maskService.prefix.length&&38!==e.keyCode&&this._maskService.showMaskTyped&&(this._maskService.maskIsShown=this._maskService.showMaskInInput(),t.setSelectionRange&&this._maskService.prefix+this._maskService.maskIsShown===t.value?(t.focus(),t.setSelectionRange(0,0)):t.selectionStart>this._maskService.actualValue.length&&t.setSelectionRange(this._maskService.actualValue.length,this._maskService.actualValue.length));var i=t.value&&t.value!==this._maskService.prefix?t.value:this._maskService.prefix+this._maskService.maskIsShown;t.value!==i&&(t.value=i),(t.selectionStart||t.selectionEnd)<=this._maskService.prefix.length?t.selectionStart=this._maskService.prefix.length:t.selectionEnd>this._getActualInputLength()&&(t.selectionEnd=this._getActualInputLength())}},e.prototype.onKeyDown=function(e){if(this._maskValue){this._code=e.code?e.code:e.key;var t=e.target;if(this._inputValue=t.value,this._setMask(),38===e.keyCode&&e.preventDefault(),37===e.keyCode||8===e.keyCode||46===e.keyCode){if(8===e.keyCode&&0===t.value.length&&(t.selectionStart=t.selectionEnd),8===e.keyCode&&0!==t.selectionStart)if(this.specialCharacters=this.specialCharacters||this._config.specialCharacters,this.prefix.length>1&&t.selectionStart<=this.prefix.length)t.setSelectionRange(this.prefix.length,this.prefix.length);else{if(this._inputValue.length!==t.selectionStart&&1!==t.selectionStart)for(;this.specialCharacters.includes(this._inputValue[t.selectionStart-1].toString())&&(this.prefix.length>=1&&t.selectionStart>this.prefix.length||0===this.prefix.length);)t.setSelectionRange(t.selectionStart-1,t.selectionStart-1);this.suffixCheckOnPressDelete(e.keyCode,t)}this.suffixCheckOnPressDelete(e.keyCode,t),this._maskService.prefix.length&&t.selectionStart<=this._maskService.prefix.length&&t.selectionEnd<=this._maskService.prefix.length&&e.preventDefault();var i=t.selectionStart;8!==e.keyCode||t.readOnly||0!==i||t.selectionEnd!==t.value.length||0===t.value.length||(this._position=this._maskService.prefix?this._maskService.prefix.length:0,this._maskService.applyMask(this._maskService.prefix,this._maskService.maskExpression,this._position))}this.suffix&&this.suffix.length>1&&this._inputValue.length-this.suffix.length<t.selectionStart?t.setSelectionRange(this._inputValue.length-this.suffix.length,this._inputValue.length):(65===e.keyCode&&!0===e.ctrlKey||65===e.keyCode&&!0===e.metaKey)&&(t.setSelectionRange(0,this._getActualInputLength()),e.preventDefault()),this._maskService.selStart=t.selectionStart,this._maskService.selEnd=t.selectionEnd}},e.prototype.writeValue=function(e){return t=this,i=void 0,s=function(){return h(this,(function(t){return void 0===e&&(e=""),"number"==typeof e&&(e=String(e),e="."!==this.decimalMarker?e.replace(".",this.decimalMarker):e,this._maskService.isNumberValue=!0),e&&this._maskService.maskExpression||this._maskService.maskExpression&&(this._maskService.prefix||this._maskService.showMaskTyped)?(this._maskService.writingValue=!0,this._maskService.formElementProperty(["value",this._maskService.applyMask(e,this._maskService.maskExpression)]),this._maskService.writingValue=!1):this._maskService.formElementProperty(["value",e]),this._inputValue=e,[2]}))},new((r=void 0)||(r=Promise))((function(e,a){function n(e){try{l(s.next(e))}catch(e){a(e)}}function o(e){try{l(s.throw(e))}catch(e){a(e)}}function l(t){t.done?e(t.value):new r((function(e){e(t.value)})).then(n,o)}l((s=s.apply(t,i||[])).next())}));var t,i,r,s},e.prototype.registerOnChange=function(e){this.onChange=e,this._maskService.onChange=this.onChange},e.prototype.registerOnTouched=function(e){this.onTouch=e},e.prototype.suffixCheckOnPressDelete=function(e,t){46===e&&this.suffix.length>0&&this._inputValue.length-this.suffix.length<=t.selectionStart&&t.setSelectionRange(this._inputValue.length-this.suffix.length,this._inputValue.length),8===e&&(this.suffix.length>1&&this._inputValue.length-this.suffix.length<t.selectionStart&&t.setSelectionRange(this._inputValue.length-this.suffix.length,this._inputValue.length),1===this.suffix.length&&this._inputValue.length===t.selectionStart&&t.setSelectionRange(t.selectionStart-1,t.selectionStart-1))},e.prototype.setDisabledState=function(e){this._maskService.formElementProperty(["disabled",e])},e.prototype.onModelChange=function(e){e||(this._maskService.actualValue="")},e.prototype._repeatPatternSymbols=function(e){var t=this;return e.match(/{[0-9]+}/)&&e.split("").reduce((function(i,r,s){if(t._start="{"===r?s:t._start,"}"!==r)return t._maskService._findSpecialChar(r)?i+r:i;t._end=s;var a=Number(e.slice(t._start+1,t._end));return i+new Array(a+1).join(e[t._start-1])}),"")||e},e.prototype._applyMask=function(){this._maskService.maskExpression=this._repeatPatternSymbols(this._maskValue||""),this._maskService.formElementProperty(["value",this._maskService.applyMask(this._inputValue,this._maskService.maskExpression)])},e.prototype._validateTime=function(e){var t=this._maskValue.split("").filter((function(e){return":"!==e})).length;return null===e||0===e.length?null:0==+e[e.length-1]&&e.length<t||e.length<=t-2?this._createValidationError(e):null},e.prototype._getActualInputLength=function(){return this._maskService.actualValue.length||this._maskService.actualValue.length+this._maskService.prefix.length},e.prototype._createValidationError=function(e){return{mask:{requiredMask:this._maskValue,actualValue:e}}},e.prototype._setMask=function(){var e=this;this._maskExpressionArray.length>0&&this._maskExpressionArray.some((function(t){var i=e._inputValue||e._ngModel||e._formControl.value||e._formElement.value||"",r=e._maskService.removeMask(i).length<=e._maskService.removeMask(t).length;if(r)return e._maskValue=t,e.maskExpression=t,e._maskService.maskExpression=t,r}))},e.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[r.DOCUMENT]}]},{type:v},{type:void 0,decorators:[{type:t.Inject,args:[p]}]},{type:t.ElementRef}]},n([t.Input("mask"),l("design:type",String)],e.prototype,"maskExpression",void 0),n([t.Input(),l("design:type",Object)],e.prototype,"specialCharacters",void 0),n([t.Input(),l("design:type",Object)],e.prototype,"patterns",void 0),n([t.Input(),l("design:type",Object)],e.prototype,"prefix",void 0),n([t.Input(),l("design:type",Object)],e.prototype,"suffix",void 0),n([t.Input(),l("design:type",Object)],e.prototype,"thousandSeparator",void 0),n([t.Input(),l("design:type",Object)],e.prototype,"decimalMarker",void 0),n([t.Input(),l("design:type",Object)],e.prototype,"dropSpecialCharacters",void 0),n([t.Input(),l("design:type",Object)],e.prototype,"hiddenInput",void 0),n([t.Input(),l("design:type",Object)],e.prototype,"showMaskTyped",void 0),n([t.Input(),l("design:type",Object)],e.prototype,"placeHolderCharacter",void 0),n([t.Input(),l("design:type",Object)],e.prototype,"shownMaskExpression",void 0),n([t.Input(),l("design:type",Object)],e.prototype,"showTemplate",void 0),n([t.Input(),l("design:type",Object)],e.prototype,"clearIfNotMatch",void 0),n([t.Input(),l("design:type",Object)],e.prototype,"validation",void 0),n([t.Input(),l("design:type",Object)],e.prototype,"separatorLimit",void 0),n([t.Input(),l("design:type",Object)],e.prototype,"allowNegativeNumbers",void 0),n([t.Input("ngModel"),l("design:type",Object)],e.prototype,"_ngModel",void 0),n([t.Input("formControl"),l("design:type",i.FormControl)],e.prototype,"_formControl",void 0),n([t.HostListener("input",["$event"]),l("design:type",Function),l("design:paramtypes",[Object]),l("design:returntype",void 0)],e.prototype,"onInput",null),n([t.HostListener("blur"),l("design:type",Function),l("design:paramtypes",[]),l("design:returntype",void 0)],e.prototype,"onBlur",null),n([t.HostListener("click",["$event"]),l("design:type",Function),l("design:paramtypes",[Object]),l("design:returntype",void 0)],e.prototype,"onFocus",null),n([t.HostListener("keydown",["$event"]),l("design:type",Function),l("design:paramtypes",[Object]),l("design:returntype",void 0)],e.prototype,"onKeyDown",null),n([t.HostListener("ngModelChange",["$event"]),l("design:type",Function),l("design:paramtypes",[Object]),l("design:returntype",void 0)],e.prototype,"onModelChange",null),e=s=n([t.Directive({selector:"[mask]",providers:[{provide:i.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return s})),multi:!0},{provide:i.NG_VALIDATORS,useExisting:t.forwardRef((function(){return s})),multi:!0},v]}),o(0,t.Inject(r.DOCUMENT)),o(2,t.Inject(p)),l("design:paramtypes",[Object,v,Object,t.ElementRef])],e)}(),y=function(){function e(e){this._maskService=e}return e.prototype.transform=function(e,t,i){return void 0===i&&(i=null),e||"number"==typeof e?(i&&(this._maskService.thousandSeparator=i),"string"==typeof t?this._maskService.applyMask(""+e,t):this._maskService.applyMaskWithPattern(""+e,t)):""},e.ctorParameters=function(){return[{type:k}]},e=n([t.Pipe({name:"mask",pure:!0}),l("design:paramtypes",[k])],e)}(),S=function(){function e(){}var i;return i=e,e.forRoot=function(e){return{ngModule:i,providers:[{provide:u,useValue:e},{provide:f,useValue:m},{provide:p,useFactory:x,deps:[f,u]},k]}},e.forChild=function(){return{ngModule:i}},e=i=n([t.NgModule({exports:[_,y],declarations:[_,y]})],e)}();function x(e,t){return a(a({},e),t instanceof Function?t():t)}e.INITIAL_CONFIG=f,e.MaskApplierService=k,e.MaskDirective=_,e.MaskPipe=y,e.MaskService=v,e.NEW_CONFIG=u,e.NgxMaskModule=S,e._configFactory=x,e.config=p,e.initialConfig=m,e.timeMasks=d,e.withoutValidation=g,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=ngx-mask-fork.umd.min.js.map