{"version":3,"file":"ngx-show-hide-password.mjs","sources":["../../../projects/ngx-show-hide-password/src/lib/show-hide.service.ts","../../../projects/ngx-show-hide-password/src/lib/show-hide-trigger.directive.ts","../../../projects/ngx-show-hide-password/src/lib/show-hide-status.directive.ts","../../../projects/ngx-show-hide-password/src/lib/show-hide-input.directive.ts","../../../projects/ngx-show-hide-password/src/lib/show-hide-password.component.ts","../../../projects/ngx-show-hide-password/src/public_api.ts","../../../projects/ngx-show-hide-password/src/ngx-show-hide-password.ts"],"sourcesContent":["import { Injectable, WritableSignal, signal } from '@angular/core';\n\ninterface IState {\n  id: string;\n  show: boolean;\n  subject: WritableSignal<boolean>;\n}\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ShowHideService {\n  private readonly states: IState[] = [];\n\n  private getIO(id: string): IState {\n    let io = this.states.find((o) => o.id === id);\n    if (!io) {\n      io = this.init(id);\n    }\n    return io;\n  }\n\n  private init(id: string): IState {\n    const subject = signal(false);\n    const io = {\n      id,\n      show: false,\n      subject,\n    };\n    this.states.push(io);\n    return io;\n  }\n\n  private saveAndProadcast(io: IState, show: boolean) {\n    io.show = show;\n    io.subject.set(io.show);\n  }\n\n  public getSignal(id: string): WritableSignal<boolean> {\n    return this.getIO(id).subject;\n  }\n\n  public setShow(id: string, show: boolean): void {\n    this.saveAndProadcast(this.getIO(id), show);\n  }\n\n  public toggleShow(id: string): void {\n    const io = this.getIO(id);\n    this.saveAndProadcast(io, !io.show);\n  }\n}\n","import { Directive, HostListener, inject, input } from '@angular/core';\nimport { ShowHideService } from './show-hide.service';\n\n@Directive({\n  // eslint-disable-next-line @angular-eslint/directive-selector\n  selector: '[showHideTrigger]',\n  standalone: true,\n})\nexport class ShowHideTriggerDirective {\n  private service = inject(ShowHideService);\n\n  showHideTrigger = input.required<string>();\n\n  @HostListener('click')\n  onClick() {\n    this.service.toggleShow(this.showHideTrigger());\n  }\n}\n","/* eslint-disable @angular-eslint/directive-selector */\nimport {\n  Directive,\n  ElementRef,\n  Renderer2,\n  Input,\n  ErrorHandler,\n  effect,\n  Injector,\n  inject,\n} from '@angular/core';\nimport { ShowHideService } from './show-hide.service';\n\nexport interface ShowHideStatusConfig {\n  id?: string;\n  show?: string;\n  hide?: string;\n  materialIcon?: boolean;\n}\nconst defaultConfig: Partial<ShowHideStatusConfig> = {\n  show: 'visibility',\n  hide: 'visibility_off',\n  materialIcon: false,\n};\n\n// TODO: don't trigger on disabled element\n@Directive({\n  selector: '[showHideStatus]',\n  standalone: true,\n})\nexport class ShowHideStatusDirective {\n  private service = inject(ShowHideService);\n  private el = inject(ElementRef);\n  private renderer = inject(Renderer2);\n  private errorHandler = inject(ErrorHandler);\n  private injector = inject(Injector);\n\n  private config: Partial<ShowHideStatusConfig> = defaultConfig;\n\n  // TODO: Skipped for migration because:\n  //  Accessor inputs cannot be migrated as they are too complex.\n  @Input({ required: true }) set showHideStatus(config: ShowHideStatusConfig) {\n    this.init(config);\n  }\n\n  private init(config: ShowHideStatusConfig): void {\n    this.config = {\n      ...defaultConfig,\n      ...config,\n    };\n    if (this.config.id) {\n      effect(\n        () => {\n          this.updateStatus(this.service.getSignal(this.config.id!!)());\n        },\n        { injector: this.injector }\n      );\n    } else {\n      this.errorHandler.handleError(new Error(`Status can not be set without [id].`));\n    }\n  }\n\n  private updateStatus(show: boolean) {\n    if (this.config.materialIcon) {\n      this.renderer.setProperty(\n        this.el.nativeElement,\n        'innerHTML',\n        show ? this.config.hide : this.config.show\n      );\n    } else {\n      this.renderer.removeClass(\n        this.el.nativeElement,\n        (!show ? this.config.hide : this.config.show) ?? ''\n      );\n      this.renderer.addClass(\n        this.el.nativeElement,\n        (show ? this.config.hide : this.config.show) ?? ''\n      );\n    }\n  }\n}\n","import {\n  Directive,\n  ElementRef,\n  Renderer2,\n  OnInit,\n  effect,\n  Injector,\n  inject,\n  input,\n} from '@angular/core';\nimport { ShowHideService } from './show-hide.service';\n\n@Directive({\n  // eslint-disable-next-line @angular-eslint/directive-selector\n  selector: 'input[showHideInput]',\n  standalone: true,\n})\nexport class ShowHideInputDirective implements OnInit {\n  private service = inject(ShowHideService);\n  private el = inject(ElementRef);\n  private renderer = inject(Renderer2);\n  private injector = inject(Injector);\n\n  id = input.required<string>();\n  disabled = input(false, {\n    transform: (value: boolean | string) => (typeof value === 'string' ? value === '' : value),\n  });\n\n  ngOnInit(): void {\n    this.service.setShow(this.id(), this.el.nativeElement.type !== 'password');\n    effect(\n      () => {\n        if (this.disabled()) return;\n        this.renderer.setAttribute(\n          this.el.nativeElement,\n          'type',\n          this.service.getSignal(this.id())() ? 'text' : 'password'\n        );\n      },\n      { injector: this.injector }\n    );\n  }\n}\n","/* eslint-disable no-bitwise */\nimport {\n  Component,\n  ElementRef,\n  OnInit,\n  Renderer2,\n  ChangeDetectionStrategy,\n  effect,\n  Injector,\n  inject,\n  input,\n} from '@angular/core';\nimport { faEye, faEyeSlash } from '@fortawesome/free-solid-svg-icons';\nimport { ShowHideService } from './show-hide.service';\nimport { ShowHideStatusDirective } from './show-hide-status.directive';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { ShowHideTriggerDirective } from './show-hide-trigger.directive';\nimport { NgClass } from '@angular/common';\n\nexport enum BtnStyle {\n  Primary = 'primary',\n  Secondary = 'secondary',\n  Success = 'success',\n  Danger = 'danger',\n  Warning = 'warning',\n  Info = 'info',\n  Dark = 'dark',\n  Light = 'light',\n}\n\n// hail jed https://gist.github.com/jed/982883\nconst uuid = (a?: any) =>\n  a\n    ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)\n    : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid);\n\n/**\n * Add a split input button to password or text input. Toggles input type between \"text\" and \"password\".\n *\n * @example\n * <show-hide-password size=\"sm|lg\">\n * <input type=\"password\" name=... />\n * </show-hide-password>\n */\n\n@Component({\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'show-hide-password',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <ng-content />\n    <button\n      class=\"btn ngx-show-hide-password\"\n      [ngClass]=\"btnOutline() ? 'btn-outline-' + btnStyle() : 'btn-' + btnStyle()\"\n      type=\"button\"\n      [showHideTrigger]=\"id\"\n    >\n      <fa-icon\n        [fixedWidth]=\"true\"\n        size=\"lg\"\n        [icon]=\"isHidden ? faEye : faEyeSlash\"\n        [showHideStatus]=\"{ id: id }\"\n      ></fa-icon>\n    </button>\n  `,\n  imports: [NgClass, ShowHideTriggerDirective, FontAwesomeModule, ShowHideStatusDirective],\n})\nexport class ShowHidePasswordComponent implements OnInit {\n  private service = inject(ShowHideService);\n  private elem = inject(ElementRef);\n  private renderer = inject(Renderer2);\n  private injector = inject(Injector);\n\n  btnStyle = input<BtnStyle>(BtnStyle.Secondary);\n\n  btnOutline = input(true, {\n    transform: (value: boolean | string) => (typeof value === 'string' ? value === '' : value),\n  });\n\n  size = input<'sm' | 'lg' | ''>('');\n\n  public input: any;\n\n  public isHidden?: boolean;\n\n  public id!: string;\n\n  public faEye = faEye;\n  public faEyeSlash = faEyeSlash;\n\n  ngOnInit(): void {\n    this.input = this.elem.nativeElement.querySelector('input');\n    if (!this.input) {\n      throw new Error(`No input element found.`);\n    }\n    this.id = this.input.getAttribute('id');\n    if (!this.id) {\n      this.id = 'showHideInput_' + uuid();\n      this.renderer.setAttribute(this.input, 'id', this.id);\n    }\n    this.renderer.addClass(this.elem.nativeElement, 'input-group');\n    if (this.size() === 'sm') {\n      this.renderer.addClass(this.elem.nativeElement, 'input-group-sm');\n    } else if (this.size() === 'lg') {\n      this.renderer.addClass(this.elem.nativeElement, 'input-group-lg');\n    }\n    this.isHidden = this.input.type === 'password';\n    this.renderer.addClass(this.input, 'form-control'); // just to be sure\n    this.service.setShow(this.id, this.input.type !== 'password');\n\n    effect(\n      () => {\n        const show = this.service.getSignal(this.id)();\n        this.isHidden = !show;\n        this.renderer.setAttribute(this.input, 'type', show ? 'text' : 'password');\n      },\n      { injector: this.injector }\n    );\n  }\n}\n","/*\n * Public API Surface of ngx-show-hide-password\n */\n\nexport * from './lib/show-hide.service';\nexport * from './lib/show-hide-trigger.directive';\nexport * from './lib/show-hide-status.directive';\nexport * from './lib/show-hide-input.directive';\nexport * from './lib/show-hide-password.component';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}