{"version":3,"file":"nitro-otp.mjs","sources":["../../../projects/otp/src/lib/otp.service.ts","../../../projects/otp/src/lib/otp.component.ts","../../../projects/otp/src/lib/otp.module.ts","../../../projects/otp/src/public-api.ts","../../../projects/otp/src/nitro-otp.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class OtpService {\r\n\r\n  constructor() { }\r\n}\r\n","import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'nitro-otp',\r\n  template: `\r\n  <div class=\"otpInput _{{appearance}}\" [ngClass]=\"{\r\n    error: isError.value\r\n  }\" (click)=\"editMode()\" #otpInput>\r\n    <i *ngFor=\"let i of otp\" [attr.data-char]=\"passwordChar\"></i>\r\n    <input #password type=\"password\" [attr.maxlength]=\"size\" autocomplete=\"off\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" (input)=\"onInput()\">\r\n    <div class=\"message\">{{message}}</div>\r\n  </div>\r\n  `,\r\n  styleUrls: ['./otp.component.scss']\r\n})\r\nexport class OtpComponent implements OnInit, AfterViewInit {\r\n  @Input()\r\n  appearance!: string;\r\n  @Input() autoFocus: boolean;\r\n  @Input()\r\n  message!: BehaviorSubject<string> | string;\r\n  @Input()\r\n  passwordChar!: string | number;\r\n  @Input()\r\n  revealChar!: boolean;\r\n  @Input()\r\n  size!: BehaviorSubject<number> | number;\r\n  @Input() isError: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n\r\n  @Output() otpChange = new EventEmitter<any>();\r\n\r\n  @ViewChild('otpInput', { static: true })\r\n  otpInput!: ElementRef;\r\n  @ViewChild('password', { static: false })\r\n  password!: ElementRef;\r\n\r\n  otp!: any[];\r\n\r\n  constructor(private cdr: ChangeDetectorRef) {\r\n    this.autoFocus = true;\r\n    this.size = this.size ? this.size : 4;\r\n    this.passwordChar = this.passwordChar || '•';\r\n    this.revealChar = this.revealChar ? this.revealChar : false;\r\n    this.appearance = this.appearance || 'legacy';\r\n\r\n    if (this.revealChar) {\r\n      this.passwordChar = '';\r\n    }\r\n  }\r\n\r\n  // counter(i: number) {\r\n  //   return new Array(i);\r\n  // }\r\n\r\n  editMode(): void {\r\n    this.password.nativeElement.focus();\r\n  }\r\n\r\n  onFocus(): void {\r\n    this.otpProp();\r\n    // console.log(this.password.nativeElement.value);\r\n    this.otpInput.nativeElement.classList.add('focus');\r\n  }\r\n\r\n  onInput(): void {\r\n    this.otpProp();\r\n  }\r\n\r\n  private otpProp(): void {\r\n    let v = this.password.nativeElement.value;\r\n    v = v ? v.split('') : [];\r\n    // console.log(v);\r\n    document.querySelectorAll('.otpInput > i').forEach((el) => {\r\n      // console.log(el, i);\r\n      // console.log(this.passwordChar);\r\n      el.classList.remove('_');\r\n      el.setAttribute('data-char', '' + this.passwordChar);\r\n    });\r\n\r\n    if (v.length >= this.size) {\r\n      // console.log('PASS');\r\n      this.otpInput.nativeElement.classList.remove('error');\r\n      this.otpChange.emit([this.password.nativeElement.value, true]);\r\n    } else {\r\n      this.otpInput.nativeElement.classList.add('error');\r\n      // console.log('FAIL');\r\n      this.otpChange.emit([this.password.nativeElement.value, false]);\r\n    }\r\n\r\n    v.forEach((el: any, i: any) => {\r\n      if (this.revealChar) {\r\n        document.querySelectorAll('.otpInput > i')[i].setAttribute('data-char', this.password.nativeElement.value[i]);\r\n      }\r\n      document.querySelectorAll('.otpInput > i')[i].classList.add('_');\r\n    });\r\n  }\r\n\r\n  onBlur(): void {\r\n    this.otpInput.nativeElement.classList.remove('focus');\r\n  }\r\n\r\n  setValue(v: any): void {\r\n    this.password.nativeElement.value = v;\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    // console.log(this.size);\r\n    this.otp = Array(this.size);\r\n    if (this.revealChar) {\r\n      this.passwordChar = '';\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.password.nativeElement.value = '';\r\n    if (this.autoFocus) {\r\n      this.editMode();\r\n    }\r\n    this.cdr.detectChanges();\r\n  }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { OtpComponent } from './otp.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    OtpComponent\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    OtpComponent\r\n  ]\r\n})\r\nexport class OtpModule { }\r\n","/*\r\n * Public API Surface of otp\r\n */\r\n\r\nexport * from './lib/otp.service';\r\nexport * from './lib/otp.component';\r\nexport * from './lib/otp.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}