{"version":3,"file":"mdb-angular-ui-kit-forms.mjs","sources":["../../../projects/mdb-angular-ui-kit/forms/form-control.ts","../../../projects/mdb-angular-ui-kit/forms/label.directive.ts","../../../projects/mdb-angular-ui-kit/forms/form-control.component.ts","../../../projects/mdb-angular-ui-kit/forms/form-control.component.html","../../../projects/mdb-angular-ui-kit/forms/input.directive.ts","../../../projects/mdb-angular-ui-kit/forms/forms.module.ts","../../../projects/mdb-angular-ui-kit/forms/mdb-angular-ui-kit-forms.ts"],"sourcesContent":["import { Observable } from 'rxjs';\nimport { Directive } from '@angular/core';\n\n@Directive()\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport abstract class MdbAbstractFormControl<T> {\n  readonly stateChanges: Observable<void>;\n  readonly input: HTMLInputElement;\n  readonly labelActive: boolean;\n}\n","import { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n  // eslint-disable-next-line @angular-eslint/directive-selector\n  selector: '[mdbLabel]',\n  exportAs: 'mdbLabel',\n  standalone: false,\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class MdbLabelDirective {\n  constructor() {}\n}\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  HostBinding,\n  ViewChild,\n  ContentChild,\n  ElementRef,\n  AfterContentInit,\n  Renderer2,\n  OnDestroy,\n  AfterContentChecked,\n  afterEveryRender,\n  Injector,\n  inject,\n} from '@angular/core';\nimport { MdbAbstractFormControl } from './form-control';\nimport { MdbLabelDirective } from './label.directive';\nimport { ContentObserver } from '@angular/cdk/observers';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n  selector: 'mdb-form-control',\n  templateUrl: './form-control.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: false,\n})\nexport class MdbFormControlComponent implements AfterContentInit, AfterContentChecked, OnDestroy {\n  @ViewChild('notchLeading', { static: true }) _notchLeading: ElementRef;\n  @ViewChild('notchMiddle', { static: true }) _notchMiddle: ElementRef;\n  @ContentChild(MdbAbstractFormControl, { static: true }) _formControl: MdbAbstractFormControl<any>;\n  @ContentChild(MdbLabelDirective, { static: false, read: ElementRef }) _label: ElementRef;\n\n  @HostBinding('class.form-outline') outline = true;\n  @HostBinding('class.d-block') display = true;\n\n  private _cdRef = inject(ChangeDetectorRef);\n\n  get input(): HTMLInputElement {\n    return this._formControl.input;\n  }\n\n  constructor(\n    private _renderer: Renderer2,\n    private _contentObserver: ContentObserver,\n    private _elementRef: ElementRef,\n    private _injector: Injector\n  ) {\n    // Use afterEveryRender instead of NgZone.onStable for zoneless compatibility\n    afterEveryRender(\n      () => {\n        if (this.hasLabel && this._recalculateGapWhenVisible) {\n          this._updateBorderGap();\n        }\n      },\n      { injector: this._injector }\n    );\n  }\n\n  readonly _destroy$: Subject<void> = new Subject<void>();\n\n  private _notchLeadingLength = 9;\n  private _labelMarginLeft = 0;\n  private _labelGapPadding = 8;\n  private _labelScale = 0.8;\n  private _recalculateGapWhenVisible = false;\n\n  private _previousLabel: ElementRef | null = null;\n\n  ngAfterContentInit(): void {\n    if (this.hasLabel) {\n      setTimeout(() => {\n        this._updateBorderGap();\n      }, 0);\n      this._previousLabel = this._label;\n    } else {\n      this._renderer.addClass(this.input, 'placeholder-active');\n    }\n    this._updateLabelActiveState();\n\n    if (this.hasLabel) {\n      this._contentObserver\n        .observe(this._label.nativeElement)\n        .pipe(takeUntil(this._destroy$))\n        .subscribe(() => {\n          this._updateBorderGap();\n        });\n    }\n\n    this._formControl.stateChanges.pipe(takeUntil(this._destroy$)).subscribe(() => {\n      this._updateLabelActiveState();\n      if (this.hasLabel) {\n        this._updateBorderGap();\n      }\n      this._cdRef.markForCheck();\n    });\n  }\n\n  ngAfterContentChecked(): void {\n    if (!this._previousLabel && this.hasLabel) {\n      setTimeout(() => this._updateBorderGap());\n    }\n    this._previousLabel = this._label;\n  }\n\n  ngOnDestroy(): void {\n    this._destroy$.next();\n    this._destroy$.unsubscribe();\n  }\n\n  get hasLabel(): boolean {\n    return !!this._label;\n  }\n\n  private _getLabelWidth(): number {\n    return this._label.nativeElement.clientWidth * this._labelScale + this._labelGapPadding;\n  }\n\n  private _updateBorderGap(): void {\n    // Element is in DOM but is not visible, we need to recalculate the gap when element\n    // is displayed. This problem may occur in components such as tabs where content of\n    // inactive tabs has display:none styles\n\n    if (this._isHidden()) {\n      this._recalculateGapWhenVisible = true;\n      return;\n    }\n\n    const notchLeadingWidth = `${this._labelMarginLeft + this._notchLeadingLength}px`;\n    const notchMiddleWidth = `${this._getLabelWidth()}px`;\n\n    this._notchLeading.nativeElement.style.width = notchLeadingWidth;\n    this._notchMiddle.nativeElement.style.width = notchMiddleWidth;\n    this._label.nativeElement.style.marginLeft = `${this._labelMarginLeft}px`;\n\n    this._recalculateGapWhenVisible = false;\n  }\n\n  private _updateLabelActiveState(): void {\n    if (this._isLabelActive()) {\n      this._renderer.addClass(this.input, 'active');\n    } else {\n      this._renderer.removeClass(this.input, 'active');\n    }\n  }\n\n  private _isLabelActive(): boolean {\n    return this._formControl && this._formControl.labelActive;\n  }\n\n  private _isHidden(): boolean {\n    const el = this._elementRef.nativeElement;\n\n    return !el.offsetHeight && !el.offsetWidth;\n  }\n}\n","<ng-content></ng-content>\n<div class=\"form-notch\">\n  <div #notchLeading class=\"form-notch-leading\"></div>\n  <div #notchMiddle class=\"form-notch-middle\"></div>\n  <div class=\"form-notch-trailing\"></div>\n</div>\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n  AfterViewInit,\n  ChangeDetectorRef,\n  DestroyRef,\n  Directive,\n  DoCheck,\n  ElementRef,\n  HostBinding,\n  HostListener,\n  Input,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Renderer2,\n  Self,\n  inject,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { MdbAbstractFormControl } from './form-control';\nimport { AutofillEvent, AutofillMonitor } from '@angular/cdk/text-field';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n@Directive({\n  // eslint-disable-next-line @angular-eslint/directive-selector\n  selector: '[mdbInput]',\n  exportAs: 'mdbInput',\n  providers: [{ provide: MdbAbstractFormControl, useExisting: MdbInputDirective }],\n  standalone: false,\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class MdbInputDirective\n  implements MdbAbstractFormControl<any>, DoCheck, AfterViewInit, OnInit, OnDestroy\n{\n  private _cdRef = inject(ChangeDetectorRef);\n\n  constructor(\n    private _elementRef: ElementRef,\n    private _renderer: Renderer2,\n    @Optional() @Self() private _ngControl: NgControl,\n    private _autofill: AutofillMonitor,\n    private _destroyRef: DestroyRef\n  ) {}\n\n  readonly stateChanges: Subject<void> = new Subject<void>();\n\n  private _focused = false;\n  private _autofilled = false;\n  private _color = '';\n\n  ngOnInit(): void {\n    if (this._ngControl?.control) {\n      this._ngControl.control.valueChanges\n        .pipe(takeUntilDestroyed(this._destroyRef))\n        .subscribe(() => {\n          this.stateChanges.next();\n          this._cdRef.markForCheck();\n        });\n\n      this._ngControl.control.statusChanges\n        .pipe(takeUntilDestroyed(this._destroyRef))\n        .subscribe(() => {\n          this.stateChanges.next();\n          this._cdRef.markForCheck();\n        });\n    }\n  }\n\n  ngAfterViewInit() {\n    if (typeof getComputedStyle === 'function') {\n      this._color = getComputedStyle(this._elementRef.nativeElement).color;\n\n      if (this._hasTypeInterferingPlaceholder()) {\n        this._updateTextColorForDateType();\n      }\n    }\n\n    this._autofill.monitor(this.input).subscribe((event: AutofillEvent) => {\n      this._autofilled = event.isAutofilled;\n      this.stateChanges.next();\n    });\n\n    this.stateChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n      if (this._hasTypeInterferingPlaceholder()) {\n        this._updateTextColorForDateType();\n      }\n    });\n  }\n\n  private _currentNativeValue: any;\n\n  @HostBinding('disabled')\n  @Input('disabled')\n  get disabled(): boolean {\n    if (this._ngControl?.disabled !== null && this._ngControl?.disabled !== undefined) {\n      return this._ngControl.disabled || this._disabled;\n    }\n    return this._disabled;\n  }\n  set disabled(value: boolean) {\n    this._disabled = coerceBooleanProperty(value);\n    this.stateChanges.next();\n  }\n  private _disabled = false;\n\n  @Input('readonly')\n  get readonly(): boolean {\n    return this._readonly;\n  }\n  set readonly(value: boolean) {\n    if (value) {\n      this._renderer.setAttribute(this._elementRef.nativeElement, 'readonly', '');\n    } else {\n      this._renderer.removeAttribute(this._elementRef.nativeElement, 'readonly');\n    }\n    this._readonly = coerceBooleanProperty(value);\n  }\n  private _readonly = false;\n\n  @Input()\n  get value(): string {\n    return this._elementRef.nativeElement.value;\n  }\n  set value(value: string) {\n    if (value !== this.value) {\n      this._elementRef.nativeElement.value = value;\n      this._value = value;\n      this.stateChanges.next();\n    }\n  }\n  private _value: any;\n\n  private _updateTextColorForDateType() {\n    const actualColor = getComputedStyle(this._elementRef.nativeElement).color;\n    this._color = actualColor !== 'rgba(0, 0, 0, 0)' ? actualColor : this._color;\n\n    const color = this.labelActive ? this._color : `transparent`;\n\n    this._renderer.setStyle(this._elementRef.nativeElement, 'color', color);\n  }\n\n  @HostListener('focus')\n  _onFocus(): void {\n    this._focused = true;\n    this.stateChanges.next();\n  }\n\n  @HostListener('blur')\n  _onBlur(): void {\n    this._focused = false;\n    this.stateChanges.next();\n  }\n\n  ngDoCheck(): void {\n    const value = this._elementRef.nativeElement.value;\n    if (this._currentNativeValue !== value) {\n      this._currentNativeValue = value;\n      this.stateChanges.next();\n    }\n  }\n\n  get hasValue(): boolean {\n    return this._elementRef.nativeElement.value !== '';\n  }\n\n  get focused(): boolean {\n    return this._focused;\n  }\n\n  get autofilled(): boolean {\n    return this._autofilled;\n  }\n\n  get input(): HTMLInputElement {\n    return this._elementRef.nativeElement;\n  }\n\n  get labelActive(): boolean {\n    return this.focused || this.hasValue || this.autofilled;\n  }\n\n  private _hasTypeInterferingPlaceholder() {\n    const typesArray = ['date', 'datetime-local', 'time', 'month', 'week'];\n    return typesArray.includes(this._elementRef.nativeElement.type);\n  }\n\n  static ngAcceptInputType_disabled: BooleanInput;\n  static ngAcceptInputType_readonly: BooleanInput;\n\n  ngOnDestroy(): void {\n    this._autofill.stopMonitoring(this.input);\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { MdbFormControlComponent } from './form-control.component';\nimport { MdbInputDirective } from './input.directive';\nimport { MdbLabelDirective } from './label.directive';\n\n@NgModule({\n  declarations: [MdbFormControlComponent, MdbInputDirective, MdbLabelDirective],\n  exports: [MdbFormControlComponent, MdbInputDirective, MdbLabelDirective],\n  imports: [CommonModule, FormsModule],\n})\nexport class MdbFormsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}