{"version":3,"file":"primeng-password.umd.js","sources":["../../src/app/components/password/password.ts","../../src/app/components/password/primeng-password.ts"],"sourcesContent":["import {NgModule,Directive,ElementRef,HostListener,Input,OnDestroy,DoCheck,NgZone, OnInit, ViewEncapsulation, ChangeDetectionStrategy, ContentChildren, QueryList, TemplateRef, Component, AfterContentInit, ViewChild, ChangeDetectorRef, forwardRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {animate, style, transition, trigger} from '@angular/animations';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {DomHandler, ConnectedOverlayScrollHandler} from 'primeng/dom';\nimport {PrimeNGConfig, PrimeTemplate, TranslationKeys} from 'primeng/api';\nimport {InputTextModule} from 'primeng/inputtext';\n\n@Directive({\n selector: '[pPassword]',\n host: {\n '[class.p-inputtext]': 'true',\n '[class.p-component]': 'true',\n '[class.p-filled]': 'filled'\n }\n})\nexport class PasswordDirective implements OnDestroy,DoCheck {\n\n @Input() promptLabel: string = 'Enter a password';\n\n @Input() weakLabel: string = 'Weak';\n\n @Input() mediumLabel: string = 'Medium';\n\n @Input() strongLabel: string = 'Strong';\n\n @Input() feedback: boolean = true;\n\n @Input() set showPassword(show: boolean) {\n this.el.nativeElement.type = show ? 'text' : 'password';\n }\n\n panel: HTMLDivElement;\n\n meter: any;\n\n info: any;\n\n filled: boolean;\n\n scrollHandler: any;\n\n documentResizeListener: any;\n\n constructor(public el: ElementRef, public zone: NgZone) {}\n\n ngDoCheck() {\n this.updateFilledState();\n }\n\n @HostListener('input', ['$event'])\n onInput(e) {\n this.updateFilledState();\n }\n\n updateFilledState() {\n this.filled = this.el.nativeElement.value && this.el.nativeElement.value.length;\n }\n\n createPanel() {\n this.panel = document.createElement('div');\n this.panel.className = 'p-password-panel p-component p-password-panel-overlay p-connected-overlay';\n this.meter = document.createElement('div');\n this.meter.className = 'p-password-meter';\n this.info = document.createElement('div');\n this.info.className = 'p-password-info';\n this.info.textContent = this.promptLabel;\n this.panel.appendChild(this.meter);\n this.panel.appendChild(this.info);\n this.panel.style.minWidth = DomHandler.getOuterWidth(this.el.nativeElement) + 'px';\n document.body.appendChild(this.panel);\n }\n\n showOverlay() {\n if (this.feedback) {\n if (!this.panel) {\n this.createPanel();\n }\n\n this.panel.style.zIndex = String(++DomHandler.zindex);\n this.panel.style.display = 'block';\n this.zone.runOutsideAngular(() => {\n\n setTimeout(() => {\n DomHandler.addClass(this.panel, 'p-connected-overlay-visible');\n this.bindScrollListener();\n this.bindDocumentResizeListener();\n }, 1);\n });\n DomHandler.absolutePosition(this.panel, this.el.nativeElement);\n }\n }\n\n hideOverlay() {\n if (this.feedback && this.panel) {\n DomHandler.addClass(this.panel, 'p-connected-overlay-hidden');\n DomHandler.removeClass(this.panel, 'p-connected-overlay-visible');\n this.unbindScrollListener();\n this.unbindDocumentResizeListener();\n\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.ngOnDestroy();\n }, 150);\n });\n }\n }\n\n @HostListener('focus')\n onFocus() {\n this.showOverlay();\n }\n\n @HostListener('blur')\n onBlur() {\n this.hideOverlay();\n }\n\n @HostListener('keyup', ['$event'])\n onKeyup(e) {\n if (this.feedback) {\n let value = e.target.value,\n label = null,\n meterPos = null;\n\n if (value.length === 0) {\n label = this.promptLabel;\n meterPos = '0px 0px';\n }\n else {\n var score = this.testStrength(value);\n\n if (score < 30) {\n label = this.weakLabel;\n meterPos = '0px -10px';\n }\n else if (score >= 30 && score < 80) {\n label = this.mediumLabel;\n meterPos = '0px -20px';\n }\n else if (score >= 80) {\n label = this.strongLabel;\n meterPos = '0px -30px';\n }\n }\n\n if (!this.panel || !DomHandler.hasClass(this.panel, 'p-connected-overlay-visible')) {\n this.showOverlay();\n }\n\n this.meter.style.backgroundPosition = meterPos;\n this.info.textContent = label;\n }\n }\n\n testStrength(str: string) {\n let grade: number = 0;\n let val: RegExpMatchArray;\n\n val = str.match('[0-9]');\n grade += this.normalize(val ? val.length : 1/4, 1) * 25;\n\n val = str.match('[a-zA-Z]');\n grade += this.normalize(val ? val.length : 1/2, 3) * 10;\n\n val = str.match('[!@#$%^&*?_~.,;=]');\n grade += this.normalize(val ? val.length : 1/6, 1) * 35;\n\n val = str.match('[A-Z]');\n grade += this.normalize(val ? val.length : 1/6, 1) * 30;\n\n grade *= str.length / 8;\n\n return grade > 100 ? 100 : grade;\n }\n\n normalize(x, y) {\n let diff = x - y;\n\n if (diff <= 0)\n return x / y;\n else\n return 1 + 0.5 * (x / (x + y/4));\n }\n\n get disabled(): boolean {\n return this.el.nativeElement.disabled;\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.el.nativeElement, () => {\n if (DomHandler.hasClass(this.panel, 'p-connected-overlay-visible')) {\n this.hideOverlay();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n bindDocumentResizeListener() {\n this.documentResizeListener = this.onWindowResize.bind(this);\n window.addEventListener('resize', this.documentResizeListener);\n }\n\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n\n onWindowResize() {\n this.hideOverlay();\n }\n\n ngOnDestroy() {\n if (this.panel) {\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n this.unbindDocumentResizeListener();\n\n document.body.removeChild(this.panel);\n this.panel = null;\n this.meter = null;\n this.info = null;\n }\n }\n}\n\n\nexport const Password_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Password),\n multi: true\n};\n@Component({\n selector: 'p-password',\n template: `\n <div [ngClass]=\"containerClass()\" [ngStyle]=\"style\" [class]=\"styleClass\">\n <input #input [attr.id]=\"inputId\" pInputText [ngClass]=\"inputFieldClass()\" [ngStyle]=\"inputStyle\" [class]=\"inputStyleClass\" [attr.type]=\"inputType()\" [attr.placeholder]=\"placeholder\" [value]=\"value\" (input)=\"onInput($event)\" (focus)=\"onFocus()\" \n (blur)=\"onBlur()\" (keyup)=\"onKeyUp($event)\" />\n <i *ngIf=\"toggleMask\" [ngClass]=\"toggleIconClass()\" (click)=\"onMaskToggle()\"></i>\n <div #overlay *ngIf=\"overlayVisible\" [ngClass]=\"'p-password-panel p-component'\" \n [@overlayAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\" (@overlayAnimation.start)=\"onAnimationStart($event)\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <ng-container *ngIf=\"contentTemplate; else content\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n <ng-template #content>\n <div class=\"p-password-meter\">\n <div [ngClass]=\"strengthClass()\" [ngStyle]=\"{'width': meter ? meter.width : ''}\"></div>\n </div>\n <div className=\"p-password-info\">{{infoText}}</div>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n </div>\n `,\n animations: [\n trigger('overlayAnimation', [\n transition(':enter', [\n style({opacity: 0, transform: 'scaleY(0.8)'}),\n animate('{{showTransitionParams}}')\n ]),\n transition(':leave', [\n animate('{{hideTransitionParams}}', style({ opacity: 0 }))\n ])\n ])\n ],\n host: {\n '[class.p-inputwrapper-filled]': 'filled()',\n '[class.p-inputwrapper-focus]': 'focused'\n },\n providers: [Password_VALUE_ACCESSOR],\n styleUrls: ['./password.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class Password implements AfterContentInit,OnInit {\n \n @Input() disabled: boolean;\n\n @Input() promptLabel: string;\n\n @Input() mediumRegex: string = '^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})';\n\n @Input() strongRegex: string = '^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})';\n\n @Input() weakLabel: string;\n\n @Input() mediumLabel: string;\n\n @Input() strongLabel: string;\n\n @Input() inputId: string;\n\n @Input() feedback: boolean = true;\n\n @Input() appendTo: any;\n\n @Input() toggleMask: boolean;\n\n @Input() inputStyleClass: string;\n\n @Input() styleClass: string;\n\n @Input() style: any;\n\n @Input() inputStyle: any;\n\n @Input() showTransitionOptions: string = '.12s cubic-bezier(0, 0, 0.2, 1)';\n\n @Input() hideTransitionOptions: string = '.1s linear';\n\n @Input() placeholder: string;\n\n @ViewChild('input') input: ElementRef;\n\n contentTemplate: TemplateRef<any>;\n\n footerTemplate: TemplateRef<any>;\n\n headerTemplate: TemplateRef<any>;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n \n overlayVisible: boolean = false;\n\n meter: any;\n \n infoText: string;\n \n focused: boolean = false;\n \n unmasked: boolean = false;\n\n mediumCheckRegExp: any;\n\n strongCheckRegExp: any;\n\n resizeListener: any;\n\n outsideClickListener: any;\n\n scrollHandler: any;\n\n overlay: any;\n\n value: string = null;\n\n onModelChange: Function = () => {};\n\n onModelTouched: Function = () => {};\n\n\n constructor(private cd: ChangeDetectorRef, private config: PrimeNGConfig) {}\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n \n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n }\n\n ngOnInit() {\n this.infoText = this.promptText();\n this.mediumCheckRegExp = new RegExp(this.mediumRegex);\n this.strongCheckRegExp = new RegExp(this.strongRegex);\n }\n\n onAnimationStart(event) {\n switch(event.toState) {\n case 'visible':\n this.overlay = event.element;\n this.overlay.style.zIndex = String(DomHandler.generateZIndex());\n this.appendContainer();\n this.alignOverlay();\n this.bindScrollListener();\n this.bindResizeListener();\n break;\n\n case 'void':\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.overlay = null;\n break;\n }\n }\n\n appendContainer() {\n if (this.appendTo) {\n if (this.appendTo === 'body')\n document.body.appendChild(this.overlay);\n else\n document.getElementById(this.appendTo).appendChild(this.overlay);\n }\n }\n\n alignOverlay() {\n if (this.appendTo) {\n this.overlay.style.minWidth = DomHandler.getOuterWidth(this.input.nativeElement) + 'px';\n DomHandler.absolutePosition(this.overlay, this.input.nativeElement);\n }\n else {\n DomHandler.relativePosition(this.overlay, this.input.nativeElement);\n }\n }\n\n onInput(event) {\n this.value = event.target.value;\n this.onModelChange(this.value);\n this.onModelTouched();\n }\n\n onFocus() {\n this.focused = true;\n if (this.feedback) {\n this.overlayVisible = true;\n }\n }\n\n onBlur() {\n this.focused = false;\n if (this.feedback) {\n this.overlayVisible = false;\n }\n }\n\n onKeyUp(event) {\n if (this.feedback) {\n let value = event.target.value;\n this.updateUI(value);\n\n if (!this.overlayVisible) {\n this.overlayVisible = true;\n }\n }\n }\n \n updateUI(value) {\n let label = null;\n let meter = null;\n\n switch (this.testStrength(value)) {\n case 1:\n label = this.weakText();\n meter = {\n strength: 'weak',\n width: '33.33%'\n };\n break;\n\n case 2:\n label = this.mediumText();\n meter = {\n strength: 'medium',\n width: '66.66%'\n };\n break;\n\n case 3:\n label = this.strongText();\n meter = {\n strength: 'strong',\n width: '100%'\n };\n break;\n\n default:\n label = this.promptText();\n meter = null;\n break;\n }\n\n this.meter = meter;\n this.infoText = label;\n }\n\n onMaskToggle() {\n this.unmasked = !this.unmasked;\n }\n\n testStrength(str) {\n let level = 0;\n\n if (this.strongCheckRegExp.test(str))\n level = 3;\n else if (this.mediumCheckRegExp.test(str))\n level = 2;\n else if (str.length)\n level = 1;\n\n return level;\n }\n\n writeValue(value: any) : void {\n if (value === undefined)\n this.value = null;\n else \n this.value = value;\n\n if (this.feedback)\n this.updateUI(this.value || \"\");\n \n this.cd.markForCheck();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val: boolean): void {\n this.disabled = val;\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.input.nativeElement, () => {\n if (this.overlayVisible) {\n this.overlayVisible = false;\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible) {\n this.overlayVisible = false;\n }\n };\n window.addEventListener('resize', this.resizeListener);\n }\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n }\n\n containerClass() {\n return {'p-password p-component p-inputwrapper': true,\n 'p-input-icon-right': this.toggleMask\n };\n }\n\n inputFieldClass() {\n return {'p-password-input' : true, \n 'p-disabled': this.disabled\n };\n }\n\n toggleIconClass() {\n return this.unmasked ? 'pi pi-eye-slash' : 'pi pi-eye';\n }\n\n strengthClass() {\n return `p-password-strength ${this.meter ? this.meter.strength : ''}`;\n }\n\n filled() {\n return (this.value != null && this.value.toString().length > 0)\n }\n\n promptText() {\n return this.promptLabel || this.getTranslation(TranslationKeys.PASSWORD_PROMPT);\n }\n\n weakText() {\n return this.weakLabel || this.getTranslation(TranslationKeys.WEAK);\n }\n\n mediumText() {\n return this.mediumLabel || this.getTranslation(TranslationKeys.MEDIUM);\n }\n\n strongText() {\n return this.strongLabel || this.getTranslation(TranslationKeys.STRONG);\n }\n\n restoreAppend() {\n if (this.overlay && this.appendTo) {\n if (this.appendTo === 'body')\n document.body.removeChild(this.overlay);\n else\n document.getElementById(this.appendTo).removeChild(this.overlay);\n }\n }\n\n inputType() {\n return this.unmasked ? 'text' : 'password';\n }\n\n getTranslation(option: string) {\n return this.config.getTranslation(option);\n }\n\n ngOnDestroy() {\n this.restoreAppend();\n this.unbindResizeListener();\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule, InputTextModule],\n exports: [PasswordDirective, Password],\n declarations: [PasswordDirective, Password]\n})\nexport class PasswordModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["DomHandler","ConnectedOverlayScrollHandler","Directive","Input","HostListener","NG_VALUE_ACCESSOR","forwardRef","TranslationKeys","PrimeTemplate","trigger","transition","style","animate","Component","ChangeDetectionStrategy","ViewEncapsulation","ViewChild","ContentChildren","CommonModule","InputTextModule","NgModule"],"mappings":"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"}