{"version":3,"file":"clr-angular-forms-password.mjs","sources":["../../../projects/angular/forms/password/password-container.ts","../../../projects/angular/forms/password/password.ts","../../../projects/angular/forms/password/password.module.ts","../../../projects/angular/forms/password/index.ts","../../../projects/angular/forms/password/clr-angular-forms-password.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, Inject, InjectionToken, Input, Optional } from '@angular/core';\nimport {\n  ClrAbstractContainer,\n  ControlClassService,\n  ControlIdService,\n  FormsFocusService,\n  LayoutService,\n  NgControlService,\n} from '@clr/angular/forms/common';\nimport { ClrCommonStringsService } from '@clr/angular/utils';\nimport { BehaviorSubject } from 'rxjs';\n\nexport const TOGGLE_SERVICE = new InjectionToken<BehaviorSubject<boolean>>(undefined);\nexport function ToggleServiceFactory() {\n  return new BehaviorSubject<boolean>(false);\n}\nexport const TOGGLE_SERVICE_PROVIDER = { provide: TOGGLE_SERVICE, useFactory: ToggleServiceFactory };\n\n@Component({\n  selector: 'clr-password-container',\n  template: `\n    <ng-content select=\"label\"></ng-content>\n    @if (!label && addGrid()) {\n      <label></label>\n    }\n    <div class=\"clr-control-container\" [ngClass]=\"controlClass()\">\n      <div class=\"clr-input-wrapper\">\n        <div class=\"clr-input-group\" [class.clr-focus]=\"focus\">\n          <ng-content select=\"[clrPassword]\"></ng-content>\n          @if (clrToggle) {\n            <button (click)=\"toggle()\" [disabled]=\"control?.disabled\" class=\"clr-input-group-icon-action\" type=\"button\">\n              <cds-icon class=\"clr-password-eye-icon\" [shape]=\"show ? 'eye-hide' : 'eye'\"></cds-icon>\n              <span class=\"clr-sr-only\">\n                {{ show ? hidePasswordText(label?.labelText) : showPasswordText(label?.labelText) }}\n              </span>\n            </button>\n          }\n        </div>\n      </div>\n      @if (showHelper) {\n        <ng-content select=\"clr-control-helper\"></ng-content>\n      }\n      @if (showInvalid) {\n        <ng-content select=\"clr-control-error\"></ng-content>\n      }\n      @if (showValid) {\n        <ng-content select=\"clr-control-success\"></ng-content>\n      }\n    </div>\n  `,\n  host: {\n    '[class.clr-form-control]': 'true',\n    '[class.clr-form-control-disabled]': 'control?.disabled',\n    '[class.clr-row]': 'addGrid()',\n  },\n  providers: [NgControlService, ControlIdService, ControlClassService, FormsFocusService, TOGGLE_SERVICE_PROVIDER],\n  standalone: false,\n})\nexport class ClrPasswordContainer extends ClrAbstractContainer {\n  show = false;\n  focus = false;\n\n  private _toggle = true;\n\n  constructor(\n    @Optional() layoutService: LayoutService,\n    controlClassService: ControlClassService,\n    ngControlService: NgControlService,\n    public focusService: FormsFocusService,\n    @Inject(TOGGLE_SERVICE) private toggleService: BehaviorSubject<boolean>,\n    public commonStrings: ClrCommonStringsService\n  ) {\n    super(layoutService, controlClassService, ngControlService);\n\n    /* The unsubscribe is handle inside the ClrAbstractContainer */\n    this.subscriptions.push(\n      focusService.focusChange.subscribe(state => {\n        this.focus = state;\n      })\n    );\n  }\n\n  @Input('clrToggle')\n  get clrToggle() {\n    return this._toggle;\n  }\n  set clrToggle(state: boolean) {\n    this._toggle = state;\n    if (!state) {\n      this.show = false;\n    }\n  }\n\n  toggle() {\n    this.show = !this.show;\n    this.toggleService.next(this.show);\n  }\n\n  showPasswordText(label: string) {\n    return this.commonStrings.parse(this.commonStrings.keys.passwordShow, { LABEL: label });\n  }\n\n  hidePasswordText(label: string) {\n    return this.commonStrings.parse(this.commonStrings.keys.passwordHide, { LABEL: label });\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport {\n  Directive,\n  ElementRef,\n  HostListener,\n  Inject,\n  Injector,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Renderer2,\n  Self,\n  ViewContainerRef,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { FormsFocusService, WrappedFormControl } from '@clr/angular/forms/common';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { ClrPasswordContainer, TOGGLE_SERVICE } from './password-container';\n\n@Directive({\n  selector: '[clrPassword]',\n  host: { '[class.clr-input]': 'true' },\n  standalone: false,\n})\nexport class ClrPassword extends WrappedFormControl<ClrPasswordContainer> implements OnInit, OnDestroy {\n  protected override index = 1;\n\n  constructor(\n    vcr: ViewContainerRef,\n    injector: Injector,\n    @Self()\n    @Optional()\n    control: NgControl,\n    renderer: Renderer2,\n    el: ElementRef<HTMLInputElement>,\n    @Optional() private focusService: FormsFocusService,\n    @Optional()\n    @Inject(TOGGLE_SERVICE)\n    toggleService: BehaviorSubject<boolean>\n  ) {\n    super(vcr, ClrPasswordContainer, injector, control, renderer, el);\n\n    if (!focusService) {\n      throw new Error('clrPassword requires being wrapped in <clr-password-container>');\n    }\n\n    this.subscriptions.push(\n      toggleService.subscribe(toggle => {\n        renderer.setProperty(el.nativeElement, 'type', toggle ? 'text' : 'password');\n      })\n    );\n  }\n\n  @HostListener('focus')\n  triggerFocus() {\n    if (this.focusService) {\n      this.focusService.focused = true;\n    }\n  }\n\n  override triggerValidation() {\n    super.triggerValidation();\n    if (this.focusService) {\n      this.focusService.focused = false;\n    }\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ClrCommonFormsModule } from '@clr/angular/forms/common';\nimport { ClarityIcons, ClrIcon, errorStandardIcon, eyeHideIcon, eyeIcon, successStandardIcon } from '@clr/angular/icon';\n\nimport { ClrPassword } from './password';\nimport { ClrPasswordContainer } from './password-container';\n\n@NgModule({\n  imports: [CommonModule, FormsModule, ClrIcon, ClrCommonFormsModule],\n  declarations: [ClrPassword, ClrPasswordContainer],\n  exports: [ClrCommonFormsModule, ClrPassword, ClrPasswordContainer],\n})\nexport class ClrPasswordModule {\n  constructor() {\n    ClarityIcons.addIcons(eyeHideIcon, eyeIcon, successStandardIcon, errorStandardIcon);\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './password';\nexport * from './password-container';\nexport * from './password.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}