{"version":3,"file":"angular-material-extensions-password-strength.mjs","sources":["../../../../projects/angular-material-extensions/password-strength/src/lib/enum/colors.enum.ts","../../../../projects/angular-material-extensions/password-strength/src/lib/enum/criteria.enum.ts","../../../../projects/angular-material-extensions/password-strength/src/lib/component/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.ts","../../../../projects/angular-material-extensions/password-strength/src/lib/component/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.html","../../../../projects/angular-material-extensions/password-strength/src/lib/validator/mat-password-strength-validator.ts","../../../../projects/angular-material-extensions/password-strength/src/lib/validator/regexp.class.ts","../../../../projects/angular-material-extensions/password-strength/src/lib/component/mat-password-strength/mat-password-strength.component.ts","../../../../projects/angular-material-extensions/password-strength/src/lib/component/mat-password-strength/mat-password-strength.component.html","../../../../projects/angular-material-extensions/password-strength/src/lib/animations/index.ts","../../../../projects/angular-material-extensions/password-strength/src/lib/component/mat-password-strength-info/mat-password-strength-info.component.ts","../../../../projects/angular-material-extensions/password-strength/src/lib/component/mat-password-strength-info/mat-password-strength-info.component.html","../../../../projects/angular-material-extensions/password-strength/src/lib/mat-password-strength.module.ts","../../../../projects/angular-material-extensions/password-strength/src/public-api.ts","../../../../projects/angular-material-extensions/password-strength/src/angular-material-extensions-password-strength.ts"],"sourcesContent":["export enum Colors {\n  primary = 'primary',\n  accent = 'accent',\n  warn = 'warn'\n}\n","export enum Criteria {\n  at_least_eight_chars = 'minChar',\n  at_least_one_lower_case_char = 'lowerCase',\n  at_least_one_upper_case_char = 'upperCase',\n  at_least_one_digit_char = 'digit',\n  at_least_one_special_char = ' specialChar',\n  at_custom_chars = 'customChars'\n}\n","import {Component, Input, ViewEncapsulation} from '@angular/core';\n\n@Component({\n  selector: 'mat-pass-toggle-visibility',\n  templateUrl: './mat-pass-toggle-visibility.component.html',\n  styleUrls: ['./mat-pass-toggle-visibility.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class MatPassToggleVisibilityComponent {\n\n  @Input()\n  isVisible: boolean;\n\n  @Input()\n  tabindex?: string;\n\n  get type() {\n    return this.isVisible ? 'text' : 'password';\n  }\n\n}\n","<button\n  (click)=\"isVisible = !isVisible\"\n  class=\"mat-icon-button cdk-focused cdk-mouse-focused\"\n  mat-icon-button\n  matRipple\n  matRippleCentered=\"true\"\n  matRipple\n  [attr.tabindex]=\"tabindex ? tabindex : null\"\n  type=\"button\"\n>\n  <mat-icon>{{ isVisible ? \"visibility\" : \"visibility_off\" }}</mat-icon>\n</button>\n","import {AbstractControl, ValidatorFn} from '@angular/forms';\n\nexport class MatPasswordStrengthValidator {\n\n  isUndefinedOrEmpty(control: AbstractControl): any | undefined {\n    if (!control || !control.value || control.value.length === 0) {\n      return undefined;\n    }\n  }\n\n  validate(criteria: string, regex: RegExp): ValidatorFn {\n    const validator = (control: AbstractControl): { [key: string]: any } => {\n      this.isUndefinedOrEmpty(control);\n      if (!regex.test(control.value)) {\n        const failed = {};\n        failed[criteria] = {\n          actualValue: control.value,\n          requiredPattern: regex\n        };\n        return failed;\n      }\n      return undefined;\n    };\n    return validator;\n  }\n\n  confirm(password: string): ValidatorFn {\n    const validator = (control: AbstractControl): { [key: string]: any } => {\n      this.isUndefinedOrEmpty(control);\n      if (control.value !== password) {\n        return {\n          notConfirmed: {\n            password: password,\n            passwordConfirmation: control.value\n          }\n        }\n      }\n      return undefined;\n    };\n    return validator;\n  }\n\n}\n","export const RegExpValidator = {\n  'lowerCase': RegExp(/^(?=.*?[a-z])/),\n  'upperCase': RegExp(/^(?=.*?[A-Z])/),\n  'digit': RegExp(/^(?=.*?[0-9])/),\n  'specialChar': RegExp(/^(?=.*?[\" !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\"])/),\n};\n","import {\n  AfterContentChecked,\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  forwardRef,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChanges\n} from '@angular/core';\nimport {ControlValueAccessor, UntypedFormControl, NG_VALUE_ACCESSOR, ValidatorFn, Validators} from '@angular/forms';\nimport {Colors, Criteria} from '../../enum';\nimport {MatPasswordStrengthValidator} from '../../validator';\nimport {RegExpValidator} from '../../validator/regexp.class';\nimport {ThemePalette} from '@angular/material/core';\n\n\n@Component({\n  selector: 'mat-password-strength',\n  exportAs: 'matPasswordStrength',\n  templateUrl: './mat-password-strength.component.html',\n  styleUrls: ['./mat-password-strength.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => MatPasswordStrengthComponent),\n      multi: true\n    }\n  ]\n})\nexport class MatPasswordStrengthComponent implements OnInit, OnChanges, AfterContentChecked, ControlValueAccessor {\n\n  @Input() password: string;\n  @Input() externalError: boolean;\n\n  @Input() enableLengthRule = true;\n  @Input() enableLowerCaseLetterRule = true;\n  @Input() enableUpperCaseLetterRule = true;\n  @Input() enableDigitRule = true;\n  @Input() enableSpecialCharRule = true;\n\n  @Input() min = 8;\n  @Input() max = 30;\n  @Input() customValidator: RegExp;\n\n  @Input() warnThreshold = 21;\n  @Input() accentThreshold = 81;\n\n  @Output()\n  onStrengthChanged: EventEmitter<number> = new EventEmitter();\n\n  criteriaMap = new Map<Criteria, RegExp>();\n\n  containAtLeastMinChars: boolean;\n  containAtLeastOneLowerCaseLetter: boolean;\n  containAtLeastOneUpperCaseLetter: boolean;\n  containAtLeastOneDigit: boolean;\n  containAtLeastOneSpecialChar: boolean;\n  containAtCustomChars: boolean;\n\n  // TO ACCESS VIA CONTENT CHILD\n  passwordFormControl: UntypedFormControl = new UntypedFormControl();\n  passwordConfirmationFormControl: UntypedFormControl = new UntypedFormControl();\n\n  validatorsArray: ValidatorFn[] = [];\n  Validators: ValidatorFn;\n  matPasswordStrengthValidator = new MatPasswordStrengthValidator();\n\n  private _strength = 0;\n\n  get strength(): number {\n    return this._strength ? this._strength : 0;\n  }\n\n  private _color: ThemePalette;\n\n  get color(): ThemePalette {\n\n    if (this._strength < this.warnThreshold) {\n      return Colors.warn;\n    } else if (this._strength < this.accentThreshold) {\n      return Colors.accent;\n    } else {\n      return Colors.primary;\n    }\n  }\n\n  propagateChange = (_: any) => {\n  };\n\n  ngOnInit(): void {\n    this.setRulesAndValidators();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if ((changes.externalError && changes.externalError.firstChange) || (changes.password && changes.password.firstChange)) {\n      return;\n    } else if (changes.externalError && changes.externalError.currentValue) {\n      this._color = Colors.warn;\n      return;\n    } else if (changes.password && changes.password.previousValue === changes.password.currentValue && !changes.password.firstChange) {\n      this.calculatePasswordStrength();\n    } else {\n      this.password && this.password.length > 0 ?\n        this.calculatePasswordStrength() : this.reset();\n    }\n  }\n\n  parseCustomValidatorsRegex(value: string | RegExp = this.customValidator) {\n    if (this.customValidator instanceof RegExp) {\n      return this.customValidator;\n    } else if (typeof this.customValidator === 'string') {\n      return RegExp(this.customValidator);\n    }\n  }\n\n  setRulesAndValidators(): void {\n    this.validatorsArray = [];\n    this.criteriaMap = new Map<Criteria, RegExp>();\n    this.passwordConfirmationFormControl\n      .setValidators(Validators.compose([\n        Validators.required, this.matPasswordStrengthValidator.confirm(this.password)\n      ]));\n    this.validatorsArray.push(Validators.required);\n    if (this.enableLengthRule) {\n      this.criteriaMap.set(Criteria.at_least_eight_chars, RegExp(`^.{${this.min},${this.max}}$`));\n      this.validatorsArray.push(Validators.minLength(this.min));\n      this.validatorsArray.push(Validators.maxLength(this.max));\n    }\n    if (this.enableLowerCaseLetterRule) {\n      this.criteriaMap.set(Criteria.at_least_one_lower_case_char, RegExpValidator.lowerCase);\n      this.validatorsArray.push(Validators.pattern(RegExpValidator.lowerCase));\n    }\n    if (this.enableUpperCaseLetterRule) {\n      this.criteriaMap.set(Criteria.at_least_one_upper_case_char, RegExpValidator.upperCase);\n      this.validatorsArray.push(Validators.pattern(RegExpValidator.upperCase));\n    }\n    if (this.enableDigitRule) {\n      this.criteriaMap.set(Criteria.at_least_one_digit_char, RegExpValidator.digit);\n      this.validatorsArray.push(Validators.pattern(RegExpValidator.digit));\n    }\n    if (this.enableSpecialCharRule) {\n      this.criteriaMap.set(Criteria.at_least_one_special_char, RegExpValidator.specialChar);\n      this.validatorsArray.push(Validators.pattern(RegExpValidator.specialChar));\n    }\n    if (this.customValidator) {\n      this.criteriaMap.set(Criteria.at_custom_chars, this.parseCustomValidatorsRegex());\n      this.validatorsArray.push(Validators.pattern(this.parseCustomValidatorsRegex()));\n    }\n\n    this.criteriaMap.forEach((value: any, key: string) => {\n      this.validatorsArray.push(this.matPasswordStrengthValidator.validate(key, value));\n    });\n\n    this.passwordFormControl.setValidators(Validators.compose([...this.validatorsArray]));\n    this.Validators = Validators.compose([...this.validatorsArray]);\n\n  }\n\n  calculatePasswordStrength(): void {\n    const requirements: Array<boolean> = [];\n    const unit = 100 / this.criteriaMap.size;\n\n    // console.log('this.criteriaMap.size = ', this.criteriaMap.size);\n    // console.log('unit = ', unit);\n\n    requirements.push(\n      this.enableLengthRule ? this._containAtLeastMinChars() : false,\n      this.enableLowerCaseLetterRule ? this._containAtLeastOneLowerCaseLetter() : false,\n      this.enableUpperCaseLetterRule ? this._containAtLeastOneUpperCaseLetter() : false,\n      this.enableDigitRule ? this._containAtLeastOneDigit() : false,\n      this.enableSpecialCharRule ? this._containAtLeastOneSpecialChar() : false,\n      this.customValidator ? this._containCustomChars() : false\n    );\n\n    this._strength = requirements.filter(v => v).length * unit;\n    this.propagateChange(this.strength);\n    // console.log('length = ', this._strength / unit);\n    this.onStrengthChanged.emit(this.strength);\n    this.setRulesAndValidators();\n  }\n\n  reset() {\n    this._strength = 0;\n    this.containAtLeastMinChars =\n      this.containAtLeastOneLowerCaseLetter =\n        this.containAtLeastOneUpperCaseLetter =\n          this.containAtLeastOneDigit =\n            this.containAtCustomChars =\n              this.containAtLeastOneSpecialChar = false;\n  }\n\n  writeValue(obj: any): void {\n    if (obj) {\n      this._strength = obj;\n    }\n  }\n\n  registerOnChange(fn: any): void {\n    this.propagateChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    // throw new Error(\"Method not implemented.\");\n  }\n\n  setDisabledState?(isDisabled: boolean): void {\n    // throw new Error(\"Method not implemented.\");\n  }\n\n  private _containAtLeastMinChars(): boolean {\n    this.containAtLeastMinChars = this.password.length >= this.min;\n    return this.containAtLeastMinChars;\n  }\n\n  private _containAtLeastOneLowerCaseLetter(): boolean {\n    this.containAtLeastOneLowerCaseLetter =\n      this.criteriaMap\n        .get(Criteria.at_least_one_lower_case_char)\n        .test(this.password);\n    return this.containAtLeastOneLowerCaseLetter;\n  }\n\n  private _containAtLeastOneUpperCaseLetter(): boolean {\n    this.containAtLeastOneUpperCaseLetter =\n      this.criteriaMap\n        .get(Criteria.at_least_one_upper_case_char)\n        .test(this.password);\n    return this.containAtLeastOneUpperCaseLetter;\n  }\n\n  private _containAtLeastOneDigit(): boolean {\n    this.containAtLeastOneDigit =\n      this.criteriaMap\n        .get(Criteria.at_least_one_digit_char)\n        .test(this.password);\n    return this.containAtLeastOneDigit;\n  }\n\n  private _containAtLeastOneSpecialChar(): boolean {\n    this.containAtLeastOneSpecialChar =\n      this.criteriaMap\n        .get(Criteria.at_least_one_special_char)\n        .test(this.password);\n    return this.containAtLeastOneSpecialChar;\n  }\n\n  private _containCustomChars(): boolean {\n    this.containAtCustomChars =\n      this.criteriaMap\n        .get(Criteria.at_custom_chars)\n        .test(this.password);\n    return this.containAtCustomChars;\n  }\n\n  ngAfterContentChecked(): void {\n    if (this.password) {\n      this.calculatePasswordStrength();\n    }\n  }\n}\n","<mat-progress-bar [color]=\"color\"\n                  [value]=\"strength\"\n                  mode=\"determinate\">\n</mat-progress-bar>\n","import {animate, animation, AnimationReferenceMetadata, keyframes, style} from '@angular/animations';\n\nexport function flipIn(timing: number, rotateX: number, rotateY: number): AnimationReferenceMetadata {\n  const params = {timing: timing, delay: 0, rotateX, rotateY};\n\n  return animation(\n    [\n      style({'backface-visibility': 'visible'}),\n      animate(\n        '{{ timing }}s {{ delay }}s ease-in',\n        keyframes([\n          style({\n            opacity: 0,\n            transform:\n              'perspective(400px) rotate3d({{ rotateX }}, {{ rotateY }}, 0, 90deg)',\n            offset: 0,\n          }),\n          style({\n            opacity: 1,\n            transform:\n              'perspective(400px) rotate3d({{ rotateX }}, {{ rotateY }}, 0, -20deg)',\n            offset: 0.4,\n          }),\n          style({\n            transform:\n              'perspective(400px) rotate3d({{ rotateX }}, {{ rotateY }}, 0, 10deg)',\n            offset: 0.6,\n          }),\n          style({\n            transform:\n              'perspective(400px) rotate3d({{ rotateX }}, {{ rotateY }}, 0, -5deg)',\n            offset: 0.8,\n          }),\n          style({\n            transform: 'perspective(400px) rotate3d(0, 0, 0, 0)',\n            offset: 1,\n          }),\n        ])\n      ),\n    ],\n    {params}\n  );\n}\n\nexport const flipInX = flipIn(1, 1, 0);\nexport const flipInY = flipIn(1, 0, 1);\n\nexport const shake = animation(\n  animate(\n    '{{ timing }}s {{ delay }}s',\n    keyframes([\n      style({transform: 'translate3d(0, 0, 0)', offset: 0}),\n      style({transform: 'translate3d(-10px, 0, 0)', offset: 0.1}),\n      style({transform: 'translate3d(10px, 0, 0)', offset: 0.2}),\n      style({transform: 'translate3d(-10px, 0, 0)', offset: 0.3}),\n      style({transform: 'translate3d(10px, 0, 0)', offset: 0.4}),\n      style({transform: 'translate3d(-10px, 0, 0)', offset: 0.5}),\n      style({transform: 'translate3d(10px, 0, 0)', offset: 0.6}),\n      style({transform: 'translate3d(-10px, 0, 0)', offset: 0.7}),\n      style({transform: 'translate3d(10px, 0, 0)', offset: 0.8}),\n      style({transform: 'translate3d(-10px, 0, 0)', offset: 0.9}),\n      style({transform: 'translate3d(0, 0, 0)', offset: 1}),\n    ])\n  ),\n  {params: {timing: 1, delay: 0}}\n);\n","import {Component, Input, OnInit} from '@angular/core';\nimport {MatPasswordStrengthComponent} from '../mat-password-strength/mat-password-strength.component';\nimport {animate, animateChild, keyframes, query, stagger, style, transition, trigger, useAnimation} from '@angular/animations';\nimport {shake} from '../../animations/index';\n\n@Component({\n  selector: 'mat-password-strength-info',\n  exportAs: 'matPasswordStrengthInfo',\n  templateUrl: './mat-password-strength-info.component.html',\n  styleUrls: ['./mat-password-strength-info.component.scss'],\n  animations: [\n    // nice stagger effect when showing existing elements\n    trigger('list', [\n      transition(':enter', [\n        // child animation selector + stagger\n        query('@items',\n          stagger(300, animateChild())\n        )\n      ]),\n    ]),\n    trigger('items', [\n      // cubic-bezier for a tiny bouncing feel\n      transition(':enter', [\n        style({transform: 'scale(0.5)', opacity: 0}),\n        animate('1s cubic-bezier(.8,-0.6,0.2,1.5)',\n          style({transform: 'scale(1)', opacity: 1}))\n      ]),\n      transition(':leave', [\n        style({transform: 'scale(1)', opacity: 1, height: '*'}),\n        animate('1s cubic-bezier(.8,-0.6,0.2,1.5)',\n          style({transform: 'scale(0.5)', opacity: 0, height: '0px', margin: '0px'}))\n      ]),\n    ]),\n    trigger('positiveState', [\n      transition(':enter', [\n        style({'backface-visibility': 'visible'}),\n        animate(\n          '{{ timing }}s {{ delay }}s ease-in',\n          keyframes([\n            style({\n              opacity: 0,\n              transform:\n                'perspective(400px) rotate3d({{ rotateX }}, {{ rotateY }}, 0, 90deg)',\n              offset: 0,\n            }),\n            style({\n              opacity: 1,\n              transform:\n                'perspective(400px) rotate3d({{ rotateX }}, {{ rotateY }}, 0, -20deg)',\n              offset: 0.4,\n            }),\n            style({\n              transform:\n                'perspective(400px) rotate3d({{ rotateX }}, {{ rotateY }}, 0, 10deg)',\n              offset: 0.6,\n            }),\n            style({\n              transform:\n                'perspective(400px) rotate3d({{ rotateX }}, {{ rotateY }}, 0, -5deg)',\n              offset: 0.8,\n            }),\n            style({\n              transform: 'perspective(400px) rotate3d(0, 0, 0, 0)',\n              offset: 1,\n            }),\n          ])\n        ),\n      ], {params: {timing: 1, delay: 0, rotateX: 1, rotateY: 0}}),\n    ]),\n    trigger('negativeState', [\n      transition(':enter', useAnimation(shake)),\n    ]),\n  ],\n})\nexport class MatPasswordStrengthInfoComponent implements OnInit {\n\n  @Input()\n  passwordComponent: MatPasswordStrengthComponent;\n\n  @Input()\n  enableScoreInfo = false;\n\n  @Input()\n  lowerCaseCriteriaMsg = 'contains at least one lower character';\n\n  @Input()\n  upperCaseCriteriaMsg = 'contains at least one upper character';\n\n  @Input()\n  digitsCriteriaMsg = 'contains at least one digit character';\n\n  @Input()\n  specialCharsCriteriaMsg = 'contains at least one special character';\n\n  @Input()\n  customCharsCriteriaMsg = 'contains at least one custom character';\n\n  @Input()\n  minCharsCriteriaMsg: string;\n\n  @Input()\n  matIconDone = 'done';\n\n  @Input()\n  matIconError = 'error';\n\n  ngOnInit(): void {\n    if (!this.minCharsCriteriaMsg) {\n      this.minCharsCriteriaMsg = `contains at least ${this.passwordComponent.min} characters`\n    }\n  }\n\n}\n","<mat-card @list>\n  <mat-card-content>\n    <div *ngIf=\"passwordComponent.enableLowerCaseLetterRule\" @items class=\"info-row\">\n      <div *ngIf=\"passwordComponent.containAtLeastOneLowerCaseLetter; then done else error\" @flipY>\n      </div>\n      <ng-template #done>\n        <mat-icon @positiveState color=\"primary\">{{matIconDone}}</mat-icon>\n      </ng-template>\n      <ng-template #error>\n        <mat-icon @negativeState color=\"warn\">{{matIconError}}</mat-icon>\n      </ng-template>\n      <span>{{lowerCaseCriteriaMsg}}</span>\n    </div>\n\n    <div *ngIf=\"passwordComponent.enableUpperCaseLetterRule\" @items class=\"info-row\">\n      <div *ngIf=\"passwordComponent.containAtLeastOneUpperCaseLetter; then done else error\">\n      </div>\n      <ng-template #done>\n        <mat-icon @positiveState color=\"primary\">{{matIconDone}}</mat-icon>\n      </ng-template>\n      <ng-template #error>\n        <mat-icon @negativeState color=\"warn\">{{matIconError}}</mat-icon>\n      </ng-template>\n      <span>{{upperCaseCriteriaMsg}}</span>\n    </div>\n\n    <div *ngIf=\"passwordComponent.enableDigitRule\" @items class=\"info-row\">\n      <div *ngIf=\"passwordComponent.containAtLeastOneDigit; then done else error\">\n      </div>\n      <ng-template #done>\n        <mat-icon @positiveState color=\"primary\">{{matIconDone}}</mat-icon>\n      </ng-template>\n      <ng-template #error>\n        <mat-icon @negativeState color=\"warn\">{{matIconError}}</mat-icon>\n      </ng-template>\n      <span>{{digitsCriteriaMsg}}</span>\n    </div>\n\n    <div *ngIf=\"passwordComponent.enableSpecialCharRule\" @items class=\"info-row\">\n      <div *ngIf=\"passwordComponent.containAtLeastOneSpecialChar; then done else error\">\n      </div>\n      <ng-template #done>\n        <mat-icon @positiveState color=\"primary\">{{matIconDone}}</mat-icon>\n      </ng-template>\n      <ng-template #error>\n        <mat-icon @negativeState color=\"warn\">{{matIconError}}</mat-icon>\n      </ng-template>\n      <span>{{specialCharsCriteriaMsg}}</span>\n    </div>\n\n    <div *ngIf=\"passwordComponent.enableLengthRule\" @items class=\"info-row\">\n      <div *ngIf=\"passwordComponent.containAtLeastMinChars; then done else error\">\n      </div>\n      <ng-template #done>\n        <mat-icon @positiveState color=\"primary\">{{matIconDone}}</mat-icon>\n      </ng-template>\n      <ng-template #error>\n        <mat-icon @negativeState color=\"warn\">{{matIconError}}</mat-icon>\n      </ng-template>\n      <span>{{minCharsCriteriaMsg}}</span>\n    </div>\n\n    <div *ngIf=\"passwordComponent.customValidator\" @items class=\"info-row\">\n      <div *ngIf=\"passwordComponent.containAtCustomChars; then done else error\">\n      </div>\n      <ng-template #done>\n        <mat-icon @positiveState color=\"primary\">{{matIconDone}}</mat-icon>\n      </ng-template>\n      <ng-template #error>\n        <mat-icon @negativeState color=\"warn\">{{matIconError}}</mat-icon>\n      </ng-template>\n      <span>{{customCharsCriteriaMsg}}</span>\n    </div>\n\n    <div *ngIf=\"enableScoreInfo\" @items class=\"info-row\">\n      <div *ngIf=\"passwordComponent.strength === 100; then done else error\">\n      </div>\n      <ng-template #done>\n        <mat-icon @positiveState color=\"primary\">{{matIconDone}}</mat-icon>\n      </ng-template>\n      <ng-template #error>\n        <mat-icon @negativeState color=\"warn\">{{matIconError}}</mat-icon>\n      </ng-template>\n      <span>Password's strength = {{passwordComponent.strength}} %100</span>\n    </div>\n\n  </mat-card-content>\n</mat-card>","import {CommonModule} from '@angular/common';\nimport {ModuleWithProviders, NgModule} from '@angular/core';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatProgressBarModule} from '@angular/material/progress-bar';\nimport {MatCardModule} from '@angular/material/card';\nimport {MatPassToggleVisibilityComponent, MatPasswordStrengthComponent, MatPasswordStrengthInfoComponent} from './component';\nimport {MatRippleModule} from '@angular/material/core';\nimport {MatButtonModule} from '@angular/material/button';\n\n// validator\nexport {RegExpValidator} from './validator/regexp.class';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    MatProgressBarModule,\n    MatButtonModule,\n    MatCardModule,\n    MatIconModule,\n    MatRippleModule\n  ],\n  exports: [\n    MatPasswordStrengthComponent,\n    MatPasswordStrengthInfoComponent,\n    MatPassToggleVisibilityComponent\n  ],\n  declarations: [\n    MatPasswordStrengthComponent,\n    MatPasswordStrengthInfoComponent,\n    MatPassToggleVisibilityComponent\n  ]\n})\nexport class MatPasswordStrengthModule {\n  static forRoot(): ModuleWithProviders<MatPasswordStrengthModule> {\n    return {\n      ngModule: MatPasswordStrengthModule,\n      providers: []\n    };\n  }\n}\n","/*\n * Public API Surface of password-strength\n */\n\nexport * from './lib/enum';\nexport * from './lib/component';\nexport * from './lib/animations';\nexport * from './lib/validator';\nexport * from './lib/mat-password-strength.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3"],"mappings":"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"}