{"version":3,"file":"primeng-password.mjs","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, Output, EventEmitter} 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 {OverlayService, PrimeNGConfig, PrimeTemplate, TranslationKeys, SharedModule} from 'primeng/api';\nimport {ZIndexUtils} from 'primeng/utils';\nimport {InputTextModule} from 'primeng/inputtext';\nimport { Subscription } from 'rxjs';\n\n@Directive({\n selector: '[pPassword]',\n host: {\n 'class': 'p-inputtext p-component p-element',\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
\n \n \n
\n \n \n \n \n \n
\n
\n
\n
{{infoText}}
\n
\n \n
\n
\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-element p-inputwrapper',\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 @Output() onFocus: EventEmitter = new EventEmitter();\n\n @Output() onBlur: EventEmitter = new EventEmitter();\n\n contentTemplate: TemplateRef;\n\n footerTemplate: TemplateRef;\n\n headerTemplate: TemplateRef;\n\n @ContentChildren(PrimeTemplate) templates: QueryList;\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 translationSubscription: Subscription;\n\n constructor(private cd: ChangeDetectorRef, private config: PrimeNGConfig, public el: ElementRef, public overlayService: OverlayService) {}\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 this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.updateUI(this.value || \"\");\n });\n }\n\n onAnimationStart(event) {\n switch(event.toState) {\n case 'visible':\n this.overlay = event.element;\n ZIndexUtils.set('overlay', this.overlay, this.config.zIndex.overlay);\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 onAnimationEnd(event) {\n switch(event.toState) {\n case 'void':\n ZIndexUtils.clear(event.element);\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 onInputFocus(event: Event) {\n this.focused = true;\n if (this.feedback) {\n this.overlayVisible = true;\n }\n\n this.onFocus.emit(event);\n }\n\n onInputBlur(event: Event) {\n this.focused = false;\n if (this.feedback) {\n this.overlayVisible = false;\n }\n\n this.onBlur.emit(event);\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 onOverlayClick(event) {\n this.overlayService.add({\n originalEvent: event,\n target: this.el.nativeElement\n });\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 if (this.overlay) {\n ZIndexUtils.clear(this.overlay);\n this.overlay = null;\n }\n\n this.restoreAppend();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule, InputTextModule],\n exports: [PasswordDirective, Password, SharedModule],\n declarations: [PasswordDirective, Password]\n})\nexport class PasswordModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}