UNPKG

@ngx-mask/core

Version:

[@ngx-mask/core](https://github.com/IKatsuba/ngx-mask#readme)

16 lines (14 loc) 8.6 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("@angular/forms"),require("@angular/cdk/keycodes"),require("rxjs")):"function"==typeof define&&define.amd?define("@ngx-mask/core",["exports","@angular/core","@angular/common","@angular/forms","@angular/cdk/keycodes","rxjs"],t):t(((e=e||self)["ngx-mask"]=e["ngx-mask"]||{},e["ngx-mask"].core={}),e.ng.core,e.ng.common,e.ng.forms,e.ng.cdk.keycodes,e.rxjs)}(this,(function(e,t,n,r,o,i){"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 a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function s(e,t,n,r){var o,i=arguments.length,a=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function u(e,t){return function(n,r){t(n,r,e)}}function p(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function c(e,t,n,r){return r&&"function"==typeof r.transform&&(t=r.transform(t)),e+t}(e.MaskPatterns||(e.MaskPatterns={})).number="\\d";var l=function(){function t(e,t){var n,r;this.pattern=e,this.options={useDefaults:(r=null===(n=t)||void 0===n?void 0:n.useDefaults,null!=r&&r),tokens:t.tokens}}return t.process=function(e,n,r){return new t(n,r).process(e)},t.applyMask=function(e,n,r){return new t(n,r).apply(e)},t.validate=function(e,n,r){return new t(n,r).validate(e)},t.prototype.process=function(t){if(!t)return{result:"",valid:!1};var n=this.options.tokens,r=this.pattern,o=!0,i="",a=0,s=0,u=function(t,n,r){var o=Object.keys(r).find((function(t){return r[t].pattern===e.MaskPatterns.number}));if(!o)return 0;var i=t.replace(new RegExp("[^"+o+"]","g"),"").length;return n.replace(/[^\d]/g,"").length-i}(r,t,n),p=!1,l=0,f=(r.length,1);function d(){return!!function e(t,n,r,o){var i=t.charAt(n),a=o[i];return""!==i&&(!(!a||a.escape)||e(t,n+r,r,o))}(r,s,f,n)||s<r.length&&s>=0}for(s=l;d();){var h=t.charAt(a),g=r.charAt(s),y=n[g];if(p)i=c(i,g,this.options,y),p=!1,s+=f;else if(y&&y.escape)p=!0,s+=f;else{if(y)if(y.optional)new RegExp(y.pattern).test(h)&&u&&(i=c(i,h,this.options,y),a+=f,u--);else if(new RegExp(y.pattern).test(h))i=c(i,h,this.options,y),a+=f;else{if(h||!y.default||!this.options.useDefaults){if(h){a+=f;continue}o=!1;break}i=c(i,y.default,this.options,y)}else i=c(i,g,this.options,y),g===h&&(a+=f);s+=f}}return{result:i,valid:o}},t.prototype.apply=function(e){return this.process(e).result},t.prototype.validate=function(e){return this.process(e).valid},t}(),f=new t.InjectionToken("NGX_MASK_OPTIONS",{providedIn:"root",factory:function(){return{tokens:{0:{pattern:e.MaskPatterns.number,default:"0"},9:{pattern:e.MaskPatterns.number,optional:!0},A:{pattern:"[a-zA-Z0-9]"},S:{pattern:"[a-zA-Z]"},U:{pattern:"[a-zA-Z]",transform:function(e){return e.toLocaleUpperCase()}},L:{pattern:"[a-zA-Z]",transform:function(e){return e.toLocaleLowerCase()}},$:{escape:!0}}}}}),d=function(){function e(e){this.options=e,this.validateTokens(e.tokens)}return e.prototype.applyMask=function(e,t,n){return l.applyMask(e,t,a(a({},this.options),n))},e.prototype.validateTokens=function(e){var t=Object.keys(null!=e?e:{}).find((function(e){return 1!==e.length}));if(t)throw new Error("Token length must be 1! Actual token '"+t+"'")},e.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[f]}]}]},e.ɵprov=t["ɵɵdefineInjectable"]({factory:function(){return new e(t["ɵɵinject"](f))},token:e,providedIn:"root"}),e=s([t.Injectable({providedIn:"root"}),u(0,t.Inject(f)),p("design:paramtypes",[Object])],e)}(),h=function(){function e(e){this.maskService=e}return e.prototype.transform=function(e,t,n){return this.maskService.applyMask(e,t,n)},e.ctorParameters=function(){return[{type:d}]},e=s([t.Pipe({name:"ngxMask"}),p("design:paramtypes",[d])],e)}(),g=function(){function e(e,n,r,o){this.maskService=e,this.elementRef=n,this.renderer=r,this.ngControl=o,this.valueChange=new t.EventEmitter,this._mask="",this.onChange=function(e){},this.onTouched=function(){},o&&(o.valueAccessor=this)}var n;return n=e,Object.defineProperty(e.prototype,"value",{get:function(){return this.elementRef.nativeElement.value},set:function(e){this.nativeValue=e,this._onInput()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mask",{get:function(){return this._mask},set:function(e){this._mask=e,this._onInput()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nativeValue",{set:function(e){this.lastNativeValue=e,this.elementRef.nativeElement.value=e,this.valueChange.emit(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"input",{get:function(){return this.elementRef.nativeElement},enumerable:!0,configurable:!0}),e.indexOfFirstDifferentChar=function(e,t){var n;void 0===t&&(t="");for(var r=0;r<t.length&&r<e.length;r++)if(e.charAt(r)!==t.charAt(r)){n=r;break}return null!=n?n:e.length},e.prototype.registerOnChange=function(e){this.onChange=e},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.setDisabledState=function(e){e?this.renderer.setAttribute(this.elementRef,"disabled","disabled"):this.renderer.removeAttribute(this.elementRef,"disabled")},e.prototype.writeValue=function(e){this.value=e,this._onInput()},e.prototype.onBlur=function(){this.onTouched()},e.prototype._onKeydown=function(e){var t=this.input,n=t.selectionStart,r=t.selectionEnd;this.isBackspaceChange=e.keyCode===o.BACKSPACE&&r===n},e.prototype._onInput=function(e){var t=(void 0===e?{}:e).emitChange,r=void 0===t||t,o=this.input,i=o.value,a=o.selectionStart,s=this.maskService.applyMask(i,this.mask),u=this.lastNativeValue?n.indexOfFirstDifferentChar(s,this.lastNativeValue):s.length;this.nativeValue=s,this.input.selectionStart=this.input.selectionEnd=this.isBackspaceChange?a:u+1,this.isBackspaceChange=!1,r&&this.onChange(this.value)},e.prototype.ngAfterViewInit=function(){var e=this;this.ngControl&&this.ngControl.value!==this.value&&i.timer(0).subscribe((function(){return e.onChange(e.value)}))},e.ctorParameters=function(){return[{type:d},{type:t.ElementRef},{type:t.Renderer2},{type:r.NgControl,decorators:[{type:t.Optional}]}]},s([t.Output(),p("design:type",Object)],e.prototype,"valueChange",void 0),s([t.Input(),p("design:type",String),p("design:paramtypes",[String])],e.prototype,"value",null),s([t.Input("ngxMask"),p("design:type",String),p("design:paramtypes",[String])],e.prototype,"mask",null),s([t.HostListener("blur"),p("design:type",Function),p("design:paramtypes",[]),p("design:returntype",void 0)],e.prototype,"onBlur",null),s([t.HostListener("keydown",["$event"]),p("design:type",Function),p("design:paramtypes",[KeyboardEvent]),p("design:returntype",void 0)],e.prototype,"_onKeydown",null),s([t.HostListener("change"),t.HostListener("input"),p("design:type",Function),p("design:paramtypes",[Object]),p("design:returntype",void 0)],e.prototype,"_onInput",null),e=n=s([t.Directive({selector:"input[ngxMask][type=text]"}),u(3,t.Optional()),p("design:paramtypes",[d,t.ElementRef,t.Renderer2,r.NgControl])],e)}(),y=function(){function e(){}var r;return r=e,e.configure=function(e){return{ngModule:r,providers:[{provide:f,useValue:e}]}},e=r=s([t.NgModule({imports:[n.CommonModule],exports:[g],declarations:[h,g]})],e)}();e.Mask=l,e.NGX_MASK_OPTIONS=f,e.NgxMaskCoreModule=y,e.NgxMaskDirective=g,e.NgxMaskPipe=h,e.NgxMaskService=d,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=ngx-mask-core.umd.min.js.map