UNPKG

ngx-phone-mask-br

Version:

Angular directive for autoformatting brazilian phone numbers.

3 lines (2 loc) 2.6 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("@angular/forms")):"function"==typeof define&&define.amd?define(["exports","@angular/core","@angular/common","@angular/forms"],t):t(e["ngx-phone-mask-br"]={},e.ng.core,e.ng.common,e.ng.forms)}(this,function(e,t,n,o){"use strict";var r=function(){},u=["(1","(11","(11) 1","(11) 11","(11) 111","(11) 1111","(11) 1111-1","(11) 1111-11","(11) 1111-111","(11) 1111-1111","(11) 11111-1111"],i=function(){function e(e){this.input=e,this.onTouchedCallback=r,this.onChangeCallback=r,this.valueType="clean",this.showMask=!0,this.oldValue=""}return e.prototype.updateInputView=function(){var e=this.input.nativeElement,t=e.selectionStart,n=this._value,o=function(e){var n=0,o=e.toString().replace(/[^\d\^]/gm,""),t=o.replace(/\^/gm,"").length;if(0===t)return{formatted:"",cursorPosition:0};var r,i=u[t-1];if(1<t&&!i)return null;var a=i.split("").map(function(e,t){return"1"===e?("^"==o[n]&&(r=t+1,n++),o[++n-1]):e}).join("");return r||(r=a.length),{formatted:""+a,cursorPosition:++r}}(n.substring(0,t)+"^"+n.substring(t));if(""!==n)if(o){var r=o.formatted;r!=e.value&&(e.value=r,e.setSelectionRange(o.cursorPosition,o.cursorPosition)),this.oldValue=r,this.emitValue(r)}else e.value=this.oldValue},e.prototype.emitValue=function(e){var t;switch(this.valueType){case"clean":t=e.replace(/[^\d\+]/gm,"");break;case"full":t=e}this.onChangeCallback(t)},e.prototype.onInput=function(){this._value=this.input.nativeElement.value,this.updateInputView()},Object.defineProperty(e.prototype,"value",{set:function(e){var t=e||"";this._value=t,this.updateInputView()},enumerable:!0,configurable:!0}),e.prototype.writeValue=function(e){this.value=e},e.prototype.registerOnChange=function(e){this.onChangeCallback=e},e.prototype.registerOnTouched=function(e){this.onTouchedCallback=e},e.prototype.setDisabledState=function(e){this.disabled=e},e}();i.decorators=[{type:t.Directive,args:[{selector:"[ngxPhoneMaskBr]",providers:[{provide:o.NG_VALUE_ACCESSOR,useExisting:t.forwardRef(function(){return i}),multi:!0}]}]}],i.ctorParameters=function(){return[{type:t.ElementRef}]},i.propDecorators={valueType:[{type:t.Input}],showMask:[{type:t.Input}],onInput:[{type:t.HostListener,args:["input"]}]};var a=function(){};a.decorators=[{type:t.NgModule,args:[{imports:[n.CommonModule],declarations:[i],exports:[i]}]}],a.ctorParameters=function(){return[]},e.NgxPhoneMaskBrModule=a,e.ɵa=i,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=ngx-phone-mask-br.umd.min.js.map