{"version":3,"file":"usitsdasdesign-dds-ng-input.mjs","sources":["../../src/app/dds/input/directives/input.directive.ts","../../src/app/dds/input/typings.ts","../../src/app/dds/input/input/constants.ts","../../src/app/dds/input/input/input.component.ts","../../src/app/dds/input/input/input.component.html","../../src/app/dds/input/input.module.ts","../../src/app/dds/input/usitsdasdesign-dds-ng-input.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding, Optional, Self } from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { FocusHandlerDirective } from '@usitsdasdesign/dds-ng/core/focus-handler';\n\n@Directive({\n  selector: '[ddsInput]',\n  hostDirectives: [FocusHandlerDirective],\n  standalone: true\n})\nexport class InputFieldDirective {\n  // Bind the CSS class 'dds-input__field' to the host element\n  @HostBinding(`class.dds-input__field`) inputField = true;\n\n  constructor(\n    // Inject NgControl if available\n    @Optional() @Self() public ngControl: NgControl,\n    // Inject parent NgForm if available\n    @Optional() public parentForm: NgForm,\n    // Inject parent FormGroupDirective if available\n    @Optional() public parentFormGroup: FormGroupDirective,\n    // Reference to the host element\n    public elementRef: ElementRef<HTMLInputElement>\n  ) { }\n}\n","import {\n  DecimalMarkers,\n  ErrorState,\n  LabelPosition,\n  MaxLengthPositions,\n  PositionState,\n  Size,\n  Themes,\n  ThousandSeparators,\n} from '@usitsdasdesign/dds-ng/shared';\nimport { InvokeType, TooltipType } from '@usitsdasdesign/dds-ng/tooltip';\n\nexport interface InputOptions {\n  label?: string;\n  labelPosition?: LabelPosition | string;\n  placeholder?: string;\n  value?: string;\n  customClass?: string;\n  disabled?: boolean;\n  isInverse?: boolean;\n  isFocused?: boolean;\n  isError?: boolean;\n  isRequired?: boolean;\n  isTrimValue?: boolean;\n  errorState?: ErrorState | string;\n  size?: Size | string;\n  description?: string;\n  errorMessage?: string;\n  descriptionType?: DescriptionType | string;\n  maxLength?: number;\n  maxLengthPosition?: MaxLengthPositions | string;\n  textAlign?: TextAlign | string;\n  ariaLabel?: string;\n  type?: string;\n\n  mask?: string;\n  prefix?: string;\n  suffix?: string;\n  thousandSeparator?: ThousandSeparators | string;\n  decimalMarker?: DecimalMarkers | '.' | ',';\n  allowNegativeNumbers?: boolean;\n  dropSpecialCharacters?: boolean;\n  showMaskTyped?: boolean;\n  customPatterns?: MaskPatterns;\n\n  accept?: string;\n  alt?: string;\n  autocomplete?: string;\n  autofocus?: boolean;\n  capture?: string;\n  checked?: boolean;\n  dirname?: string;\n  form?: string;\n  height?: number;\n  list?: string;\n  max?: number;\n  min?: number;\n  minlength?: number;\n  multiple?: boolean;\n  name?: string;\n  pattern?: string;\n  readonly?: boolean;\n  src?: string;\n  step?: number;\n  width?: number;\n\n  tooltipIcon?: string;\n  tooltipCustomClass?: string;\n  tooltipWidth?: number;\n  tooltipShift?: number;\n  tooltipShowDelay?: number;\n  tooltipHideDelay?: number;\n  tooltipIsDisabled?: boolean;\n  tooltipIsOutsideClick?: boolean;\n  tooltipType?: TooltipType | string;\n  tooltipSize?: Size | string;\n  tooltipHasBeak?: boolean;\n  tooltipIndent?: number;\n  tooltipInvokeType?: InvokeType | string;\n  tooltipPosition?: PositionState | string;\n  tooltipTheme?: Themes | string;\n}\n\nexport interface MaskPatterns {\n  [character: string]: MaskPattern;\n}\n\ninterface MaskPattern {\n  pattern: RegExp;\n  optional?: boolean;\n  symbol?: string;\n}\n\nexport enum DescriptionType {\n  tooltip = 'tooltip',\n  text = 'text',\n}\n\nexport enum TextAlign {\n  left = 'left',\n  right = 'right',\n}\n\nexport const MASK_DEFAULT_OPTIONS = {\n  patterns: {\n    '0': {\n      pattern: new RegExp('\\\\d'),\n    },\n    '9': {\n      pattern: new RegExp('\\\\d'),\n      optional: true,\n    },\n    X: {\n      pattern: new RegExp('\\\\d'),\n      symbol: '*',\n    },\n    A: {\n      pattern: new RegExp('[a-zA-Z0-9]'),\n    },\n    S: {\n      pattern: new RegExp('[a-zA-Z]'),\n    },\n    d: {\n      pattern: new RegExp('\\\\d'),\n    },\n    m: {\n      pattern: new RegExp('\\\\d'),\n    },\n    M: {\n      pattern: new RegExp('\\\\d'),\n    },\n    H: {\n      pattern: new RegExp('\\\\d'),\n    },\n    h: {\n      pattern: new RegExp('\\\\d'),\n    },\n    s: {\n      pattern: new RegExp('\\\\d'),\n    },\n  },\n};\n","import { Size } from '@usitsdasdesign/dds-ng/shared';\nimport { ThemeClassesMap, ThemeMapEnum } from '@usitsdasdesign/dds-ng/core/theme';\n\nexport const INDENT = 20;\nexport const DEFAULT_PLACEHOLDER = '';\nexport const DEFAULT_INFO_BTN_ICON = 'dds-icon_info';\nexport const DEFAULT_TYPE = 'text';\nexport const themeClassesMap: ThemeClassesMap = {\n  [ThemeMapEnum.Size]: {\n    [Size.lg]: 'dds-input_lg',\n    [Size.sm]: 'dds-input_sm',\n  },\n};\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  DoCheck,\n  ElementRef,\n  EventEmitter,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnInit,\n  Optional,\n  Output,\n  Renderer2,\n  Self,\n  SimpleChanges,\n  ViewChild,\n} from '@angular/core';\nimport { FormGroupDirective, FormsModule, NgControl, NgForm } from '@angular/forms';\nimport {\n  DestroyCtor,\n  DestroyMixin,\n  ErrorStateCtor,\n  ErrorStateMixin,\n  FormAccessorCtor,\n  FormAccessorMixin,\n  I18nCtor,\n  I18nMixin,\n} from '@usitsdasdesign/dds-ng/core/common-behaviors';\nimport { FocusHandlerModule } from '@usitsdasdesign/dds-ng/core/focus-handler';\nimport { ThemeClassesMap, ThemeModule } from '@usitsdasdesign/dds-ng/core/theme';\nimport { coerceBooleanProperty, generateId } from '@usitsdasdesign/dds-ng/core/utils';\nimport {\n  AdditionalClass,\n  DecimalMarkers,\n  ErrorState,\n  KeyCodes,\n  LabelPosition,\n  MaxLengthPositions,\n  PositionState,\n  Size,\n  Themes,\n  ThousandSeparators,\n} from '@usitsdasdesign/dds-ng/shared';\nimport { DdsConfigService } from '@usitsdasdesign/dds-ng/shared/dds-config';\nimport { I18nModule, I18nService, ITranslation } from '@usitsdasdesign/dds-ng/shared/i18n';\nimport { InvokeType, TooltipModule, TooltipType } from '@usitsdasdesign/dds-ng/tooltip';\nimport { NgxMaskDirective, NgxMaskPipe, provideNgxMask } from 'ngx-mask';\nimport { fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { InputFieldDirective } from '../directives/input.directive';\nimport { DescriptionType, MASK_DEFAULT_OPTIONS, MaskPatterns, TextAlign } from '../typings';\nimport { DEFAULT_INFO_BTN_ICON, DEFAULT_PLACEHOLDER, DEFAULT_TYPE, INDENT, themeClassesMap } from './constants';\n\nconst InputBase: DestroyCtor & I18nCtor & FormAccessorCtor & ErrorStateCtor = DestroyMixin(I18nMixin(FormAccessorMixin(ErrorStateMixin())));\n\n@Component({\n  selector: 'dds-input',\n  templateUrl: './input.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [CommonModule, TooltipModule, FocusHandlerModule, ThemeModule, I18nModule, FormsModule, NgxMaskDirective],\n  providers: [provideNgxMask()],\n})\nexport class InputComponent extends InputBase implements OnChanges, OnInit, DoCheck, AfterContentInit {\n  // Host bindings for CSS classes\n  @HostBinding(`class.${AdditionalClass.disabled}`) @Input() disabled: boolean | undefined;\n  @HostBinding(`class.${AdditionalClass.focus}`) @Input() isFocused: boolean | undefined;\n  @HostBinding(`attr.data-is-empty`) isEmptyValue: boolean; // WalkMe\n\n  // ViewChild and ContentChild for accessing template and content elements\n  @ViewChild('inputField') inputField: ElementRef<HTMLInputElement>;\n  @ContentChild(InputFieldDirective) inputFieldExternal: InputFieldDirective;\n\n  // Input properties for various configurations\n  @Input() label: string | undefined;\n  @Input() description: string | undefined;\n  @Input() errorMessage: string | undefined;\n  @Input() customClass: string | undefined;\n  @Input() labelPosition: LabelPosition | string | undefined = this.ddsConfig.getConfig().labelPosition;\n  @Input() size: Size | string | undefined = this.ddsConfig.getConfig().size;\n  @Input() descriptionType: DescriptionType | string | undefined;\n  @Input() maxLengthPosition: MaxLengthPositions | string | undefined = MaxLengthPositions.topLeft;\n  @Input() maxLength: number | undefined = null;\n  @Input() isError: boolean | undefined;\n  @Input() isInverse: boolean | undefined;\n  @Input() errorState: string | ErrorState | undefined = this.ddsConfig.getConfig().errorState;\n  @Input() textAlign: TextAlign | string | undefined;\n  @Input() placeholder: string | undefined = DEFAULT_PLACEHOLDER;\n  @Input() ariaLabel: string | undefined;\n  @Input() isRequired: boolean | undefined = false;\n  @Input() isTrimValue: boolean | undefined;\n  @Input() type: string | undefined = DEFAULT_TYPE;\n  @Input()\n  set value(value: string | undefined) {\n    const newValue = value ?? '';\n    this._value = `${newValue}`;\n    this.checkIsEmpty();\n    this.genMaxLengthValue();\n  }\n\n  get value(): string | undefined {\n    return this._value;\n  }\n\n  @Input() mask: string | undefined = '';\n  @Input() prefix: string | undefined = '';\n  @Input() suffix: string | undefined = '';\n  @Input() thousandSeparator: ThousandSeparators | string | undefined;\n  @Input() decimalMarker: DecimalMarkers | string | undefined;\n  @Input() allowNegativeNumbers: boolean | undefined;\n  @Input() dropSpecialCharacters: boolean | undefined;\n  @Input() showMaskTyped: boolean | undefined;\n  @Input() customPatterns: MaskPatterns | undefined = {};\n\n  // Input properties for HTML input attributes\n  @Input() accept: string | undefined;\n  @Input() alt: string | undefined;\n  @Input() autocomplete: string | undefined;\n  @Input() autofocus: boolean | undefined;\n  @Input() capture: string | undefined;\n  @Input() checked: boolean | undefined;\n  @Input() dirname: string | undefined;\n  @Input() form: string | undefined;\n  @Input() height: number | undefined;\n  @Input() list: string | undefined;\n  @Input() max: number | undefined;\n  @Input() min: number | undefined;\n  @Input() minlength: number | undefined;\n  @Input() multiple: boolean | undefined;\n  @Input() name: string | undefined;\n  @Input() pattern: string | undefined;\n  @Input() readonly: boolean | undefined;\n  @Input() src: string | undefined;\n  @Input() step: number | undefined;\n  @Input() width: number | undefined;\n\n  // Input properties for tooltip configurations\n  @Input() tooltipIcon: string | undefined = DEFAULT_INFO_BTN_ICON;\n  @Input() tooltipCustomClass: string | undefined;\n  @Input() tooltipWidth: number | undefined;\n  @Input() tooltipShift: number | undefined;\n  @Input() tooltipIsDisabled: boolean | undefined;\n  @Input() tooltipIsOutsideClick: boolean | undefined;\n  @Input() tooltipType: TooltipType | string | undefined;\n  @Input() tooltipSize: Size | string | undefined;\n  @Input() tooltipHasBeak: boolean | undefined = true;\n  @Input() tooltipIndent: number | undefined = INDENT;\n  @Input() tooltipShowDelay: number | undefined;\n  @Input() tooltipHideDelay: number | undefined;\n  @Input() tooltipInvokeType: InvokeType | string | undefined = InvokeType.hover;\n  @Input() tooltipPosition: PositionState | string | undefined = PositionState.right;\n  @Input() tooltipTheme: Themes | string | undefined = this.ddsConfig.getConfig().theme;\n\n  // Output events for various actions\n  @Output() valueChanged = new EventEmitter<string>();\n  @Output() onBlur = new EventEmitter<string>();\n  @Output() onFocus = new EventEmitter<string>();\n  @Output() onEnterEvent = new EventEmitter<Event>();\n\n  // Public properties for internal state management\n  public maxLengthValue: string;\n  public characterLimitText: string[] = [];\n  public isExternalLabel: boolean;\n  public isTextAlignRight: boolean;\n  public themeConfig: ThemeClassesMap = themeClassesMap;\n  public patterns: MaskPatterns = MASK_DEFAULT_OPTIONS.patterns;\n  public defaultPlaceholder = DEFAULT_PLACEHOLDER;\n  public maxLimitText: string;\n  public id: string;\n\n  private _value = '';\n\n  // Getter for checking if description type is tooltip\n  get isDescriptionTypeTooltip(): boolean {\n    return this.descriptionType === DescriptionType.tooltip && ((this._isError && !!this.errorMessage) || !!this.description);\n  }\n\n  // Getter for checking if error message should be shown\n  get isErrorMessageShown(): boolean {\n    return this._isError && this.errorMessage && !this.isDescriptionTypeTooltip;\n  }\n\n  // Getter for checking if header should be shown\n  get isHeaderShown(): boolean {\n    return (this.label && this.isExternalLabel) || (this.description && !this.isDescriptionTypeTooltip) || !!this.maxLength;\n  }\n\n  // Getter for checking if max length error exists\n  get maxLengthError(): boolean {\n    return this.value && this.value.length === Number(this.maxLength);\n  }\n\n  // Getter for checking if max length is right aligned\n  get isMaxLengthRight(): boolean {\n    return this.maxLengthPosition === MaxLengthPositions.topRight || this.maxLengthPosition === MaxLengthPositions.bottomRight;\n  }\n\n  // Getter for checking if max length is top left\n  get isMaxLengthTopLeft(): boolean {\n    return this.maxLength && this.maxLengthPosition === MaxLengthPositions.topLeft;\n  }\n\n  // Getter for checking if max length is top right\n  get isMaxLengthTopRight(): boolean {\n    return this.maxLength && this.maxLengthPosition === MaxLengthPositions.topRight;\n  }\n\n  // Getter for checking if max length is bottom\n  get isMaxLengthBottom(): boolean {\n    return (\n      this.maxLength &&\n      (this.maxLengthPosition === MaxLengthPositions.bottomLeft || this.maxLengthPosition === MaxLengthPositions.bottomRight)\n    );\n  }\n\n  // Getter for checking if max length is bottom right\n  get isMaxLengthBottomRight(): boolean {\n    return this.maxLengthPosition === MaxLengthPositions.bottomRight;\n  }\n\n  // Getter for checking if footer max length should be shown\n  get isFooterMaxLengthShown(): boolean {\n    return this.isMaxLengthBottom && (!this.isErrorMessageShown || this.isMaxLengthBottomRight);\n  }\n\n  // Getter for tooltip text\n  get tooltipText(): string {\n    return this._isError && this.errorMessage ? this.errorMessage : this.description;\n  }\n\n  // Getter for tooltip type value\n  get tooltipTypeValue(): TooltipType | string {\n    return this._isError ? TooltipType.error : this.tooltipType;\n  }\n\n  // Getter for aria description\n  get ariaDescription(): string {\n    return this.maxLength ? this.maxLimitText?.replace('{{counter}}', `${this.maxLength}`) : '';\n  }\n\n  constructor(\n    @Optional() @Self() public ngControl: NgControl,\n    @Optional() public parentForm: NgForm,\n    @Optional() public parentFormGroup: FormGroupDirective,\n    public cdr: ChangeDetectorRef,\n    public i18n: I18nService,\n    private ddsConfig: DdsConfigService,\n    private renderer: Renderer2\n  ) {\n    super();\n\n    if (this.ngControl !== null) {\n      this.ngControl.valueAccessor = this;\n    }\n  }\n\n  public ngOnInit(): void {\n    this.id = generateId();\n    this.checkIsEmpty();\n    this.checkLabelPosition(this.labelPosition);\n    super.ngOnInit();\n  }\n\n  public ngOnChanges(changes: SimpleChanges): void {\n    if (changes.maxLength) {\n      this.genMaxLengthValue();\n    }\n\n    if (changes.isRequired) {\n      this.isRequired = coerceBooleanProperty(changes.isRequired.currentValue);\n    }\n\n    this.checkLabelPosition(changes.labelPosition);\n\n    if (changes.textAlign && changes.textAlign.currentValue) {\n      this.isTextAlignRight = this.textAlign === TextAlign.right;\n    }\n\n    if (changes.customPatterns) {\n      this.updPatterns(changes.customPatterns.currentValue);\n    }\n\n    super.ngOnChanges(changes);\n\n    if (changes.descriptionType || changes.isError) {\n      this.updTooltipOptions();\n    }\n\n    if (changes.disabled && this.inputFieldExternal) {\n      const inputFieldExternalEl = this.inputFieldExternal.elementRef.nativeElement;\n\n      this.disabled\n        ? this.renderer.setAttribute(inputFieldExternalEl, 'disabled', 'disabled')\n        : this.renderer.removeAttribute(inputFieldExternalEl, 'disabled');\n    }\n  }\n\n  public ngDoCheck() {\n    super.ngDoCheck();\n\n    if (this.ngControl && this.inputFieldExternal) {\n      if (this.ngControl.disabled !== null && this.ngControl.disabled !== this.disabled) {\n        this.disabled = this.ngControl.disabled;\n        this.cdr.markForCheck();\n      }\n    }\n  }\n\n  public ngAfterContentInit(): void {\n    if (this.inputFieldExternal) {\n      this.ngControl = this.inputFieldExternal.ngControl;\n      this.parentForm = this.inputFieldExternal.parentForm;\n      this.parentFormGroup = this.inputFieldExternal.parentFormGroup;\n\n      this.externalInputSetAttr();\n    }\n  }\n\n  // Handle keydown event\n  public handleKeydown(event: KeyboardEvent): void {\n    if (event.keyCode === KeyCodes.ENTER) {\n      event.preventDefault();\n    }\n  }\n\n  // Handle keyup event\n  public handleKeyup(event: KeyboardEvent): void {\n    if (event.keyCode === KeyCodes.ENTER) {\n      event.preventDefault();\n      this.onEnterEvent.emit(event);\n    }\n  }\n\n  // Handle change event\n  public changeHandle(e: Event): void {\n    const value = (e.target as HTMLInputElement).value;\n\n    if ((e.target as HTMLInputElement).value.length > this.maxLength && this.maxLength) {\n      (e.target as HTMLInputElement).value = (this.isTrimValue ? value.trim() : value).slice(0, this.maxLength);\n    } else {\n      this.value = this.isTrimValue ? value.trim() : value;\n      this.onModelChange(this.value);\n      this.valueChanged.emit(this.value);\n    }\n\n    this.genMaxLengthValue();\n    this.checkError();\n  }\n\n  // Write value to the input\n  public writeValue(value: string): void {\n    this.value = value;\n    super.writeValue(value);\n    this.cdr.detectChanges();\n  }\n\n  // Set disabled state\n  public setDisabledState(disabled: boolean): void {\n    this.disabled = disabled;\n    this.cdr.detectChanges();\n  }\n\n  // Reset the input value\n  public reset(): void {\n    this.value = null;\n    this.genMaxLengthValue();\n    this.onModelChange(this.value);\n    this.valueChanged.emit(this.value);\n    this.checkError();\n    this.cdr.markForCheck();\n  }\n\n  // Handle blur event\n  public blur(e: Event): void {\n    this.isFocused = false;\n    if (this.errorState === ErrorState.focusOut) this.checkError();\n\n    if (this.isTrimValue) {\n      (e.target as HTMLInputElement).value = (e.target as HTMLInputElement).value.trim();\n    }\n\n    this.onBlur.emit(this.value);\n    this.onModelTouched();\n  }\n\n  // Focus the input field\n  public focus(): void {\n    this.isFocused = true;\n    this.inputField.nativeElement.focus();\n    this.onFocus.emit(this.value);\n  }\n\n  // Get aria label for the input\n  public getAriaLabel(): string {\n    return this.ariaLabel || this.label;\n  }\n\n  // Check for errors\n  public checkError(): void {\n    super.checkError();\n\n    this.updTooltipOptions();\n    this.cdr.detectChanges();\n  }\n\n  // Generate max length value\n  private genMaxLengthValue(): void {\n    if (this.maxLength) {\n      this.maxLengthValue = `${this.value ? this.value.length : 0}/${Math.round(this.maxLength)}`;\n      this.cdr.markForCheck();\n    }\n  }\n\n  // Update mask patterns\n  private updPatterns(patterns: MaskPatterns): void {\n    this.patterns = { ...MASK_DEFAULT_OPTIONS.patterns, ...patterns };\n  }\n\n  // Update tooltip options\n  private updTooltipOptions() {\n    if (this._isError) {\n      this.tooltipType = TooltipType.error;\n    }\n\n    if (this.labelPosition === LabelPosition.external) {\n      this.tooltipIndent = 9;\n    }\n  }\n\n  // Check if the input value is empty\n  private checkIsEmpty(): void {\n    this.isEmptyValue = this._value && this._value.length ? false : true;\n  }\n\n  // Check label position\n  private checkLabelPosition(labelPosition: unknown): void {\n    if (labelPosition) {\n      this.isExternalLabel = this.labelPosition === LabelPosition.external;\n    }\n  }\n\n  // Set attributes for external input\n  private externalInputSetAttr(): void {\n    const externalInputEl = this.inputFieldExternal.elementRef.nativeElement;\n\n    if (externalInputEl.maxLength > 0) {\n      this.maxLength = externalInputEl.maxLength;\n      this.genMaxLengthValue();\n    } else if (this.maxLength) {\n      this.renderer.setAttribute(externalInputEl, 'maxLength', `${this.maxLength}`);\n    }\n\n    this.renderer.setAttribute(externalInputEl, 'id', this.id);\n\n    this.value = externalInputEl.value;\n\n    fromEvent(externalInputEl, 'input')\n      .pipe(takeUntil(this.destroy))\n      .subscribe((e) => (this.value = (e.target as HTMLInputElement).value));\n  }\n\n  // Set i18n texts\n  protected setI18nTexts(translation: ITranslation): void {\n    this.maxLimitText = translation.INPUT.MAX_LIMIT_TEXT;\n    this.characterLimitText = this.i18n.splitByValue('{{counter}}', translation.INPUT.MAX_LIMIT_TEXT);\n    this.cdr.detectChanges();\n  }\n}\n","<div [ngClass]=\"{\n       'dds-input_external': isExternalLabel,\n       'dds-input_inverse': isInverse,\n       'dds-input_disabled': disabled,\n       'dds-input_error': _isError,\n       'dds-input_with-icon': isDescriptionTypeTooltip,\n       'dds-input_text-align-right': isTextAlignRight,\n       'dds-input_counter-align-right': isMaxLengthRight,\n       'dds-input_readonly': readonly\n     }\"\n     [size]=\"size\"\n     [ddsTheme]=\"themeConfig\"\n     class=\"dds-input {{customClass}}\">\n\n  @if (isHeaderShown) {\n    <div class=\"dds-input__header\">\n      @if (isExternalLabel) {\n        <div class=\"dds-input__info\">\n          @if (label) {\n            <label [for]=\"id\"\n                   data-qa=\"label-external\"\n                   class=\"dds-input__label\">{{ label }}\n              @if (isRequired) {<span class=\"dds-required\"></span>}\n            </label>\n          }\n\n          @if (isMaxLengthTopRight) {\n            <span class=\"dds-input__length-limit\">\n              <ng-container *ngTemplateOutlet=\"maxLengthCounter\"></ng-container>\n            </span>\n          }\n        </div>\n      }\n\n      @if (!isDescriptionTypeTooltip && description) {\n        <span class=\"dds-input__description\">{{ description }}</span>\n      }\n\n      @if (isMaxLengthTopLeft) {\n        <div class=\"dds-input__length-limit\">\n          {{characterLimitText[0]}}\n          <ng-container *ngTemplateOutlet=\"maxLengthCounter\"></ng-container>\n          {{characterLimitText[1]}}\n        </div>\n      }\n    </div>\n  }\n\n  <div class=\"dds-input__wrap\">\n    @if (!isExternalLabel) {\n      <div class=\"dds-input__info dds-input__info_internal\">\n        @if (label) {\n          <label [for]=\"id\"\n                 data-qa=\"label-internal\"\n                 class=\"dds-input__label dds-input__label_internal\">{{ label }}\n            @if (isRequired) {<span class=\"dds-required\"></span>}\n          </label>\n        }\n\n        @if (isMaxLengthTopRight) {\n          <div class=\"dds-input__length-limit\">\n            <ng-container *ngTemplateOutlet=\"maxLengthCounter\"></ng-container>\n          </div>\n        }\n      </div>\n    }\n\n    @if (inputFieldExternal) {\n      <ng-content></ng-content>\n    } @else {\n      <input [placeholder]=\"placeholder || defaultPlaceholder\"\n             [disabled]=\"disabled\"\n             ddsFocus\n             [attr.maxlength]=\"maxLength\"\n             [attr.aria-disabled]=\"disabled\"\n             [attr.aria-label]=\"getAriaLabel()\"\n             [attr.aria-description]=\"ariaDescription\"\n             [attr.aria-invalid]=\"_isError\"\n             [attr.aria-required]=\"isRequired || _isFormControlRequired\"\n             [attr.accept]=\"accept\"\n             [attr.alt]=\"alt\"\n             [attr.autocomplete]=\"autocomplete\"\n             [attr.autofocus]=\"autofocus\"\n             [attr.capture]=\"capture\"\n             [attr.checked]=\"checked\"\n             [attr.dirname]=\"dirname\"\n             [attr.form]=\"form\"\n             [attr.height]=\"height\"\n             [attr.list]=\"list\"\n             [attr.max]=\"max\"\n             [attr.min]=\"min\"\n             [attr.minlength]=\"minlength\"\n             [attr.multiple]=\"multiple\"\n             [attr.name]=\"name\"\n             [attr.pattern]=\"pattern\"\n             [readonly]=\"readonly\"\n             [attr.src]=\"src\"\n             [attr.step]=\"step\"\n             [attr.width]=\"width\"\n             [mask]=\"mask\"\n             [prefix]=\"prefix\"\n             [suffix]=\"suffix\"\n             [thousandSeparator]=\"thousandSeparator\"\n             [decimalMarker]=\"decimalMarker\"\n             [allowNegativeNumbers]=\"allowNegativeNumbers\"\n             [dropSpecialCharacters]=\"dropSpecialCharacters\"\n             [showMaskTyped]=\"showMaskTyped\"\n             [patterns]=\"patterns\"\n             [required]=\"isRequired\"\n             [attr.id]=\"id\"\n             [type]=\"type\"\n             [(ngModel)]=\"value\"\n             data-qa=\"input\"\n             class=\"dds-input__field\"\n             (keydown)=\"handleKeydown($event)\"\n             (keyup)=\"handleKeyup($event)\"\n             (input)=\"changeHandle($event)\"\n             (focus)=\"focus()\"\n             (blur)=\"blur($event)\"\n             #inputField />\n    }\n\n    @if (isDescriptionTypeTooltip) {\n      <span [ddsTooltip]=\"tooltipText\"\n            [tooltipInvokeType]=\"tooltipInvokeType\"\n            [tooltipType]=\"tooltipTypeValue\"\n            [tooltipSize]=\"tooltipSize\"\n            [tooltipPosition]=\"tooltipPosition\"\n            [tooltipIndent]=\"tooltipIndent\"\n            [tooltipShowDelay]=\"tooltipShowDelay\"\n            [tooltipHideDelay]=\"tooltipHideDelay\"\n            [tooltipWidth]=\"tooltipWidth\"\n            [tooltipShift]=\"tooltipShift\"\n            [tooltipHasBeak]=\"tooltipHasBeak\"\n            [tooltipIsDisabled]=\"tooltipIsDisabled\"\n            [tooltipIsOutsideClick]=\"tooltipIsOutsideClick\"\n            [tooltipKeyboardFocusEl]=\"inputField?.nativeElement || inputFieldExternal?.elementRef?.nativeElement\"\n            [tooltipCustomClass]=\"tooltipCustomClass\"\n            [tooltipIsInverse]=\"isInverse\"\n            [tooltipTheme]=\"tooltipTheme\"\n            class=\"dds-input__icon dds-icon {{tooltipIcon}}\"></span>\n    }\n  </div>\n\n  @if (isErrorMessageShown || isFooterMaxLengthShown) {\n    <div class=\"dds-input__footer\">\n      @if (isErrorMessageShown) {\n        <span data-qa=\"error-message\"\n              class=\"dds-input__error-message\">{{errorMessage}}</span>\n      }\n\n      @if (isFooterMaxLengthShown) {\n        <div class=\"dds-input__length-limit\">\n          <ng-container *ngTemplateOutlet=\"maxLengthCounter\"></ng-container>\n        </div>\n      }\n    </div>\n  }\n</div>\n\n<ng-template #maxLengthCounter>\n  <span [ngClass]=\"{\n          'dds-input__symbols-count_error': maxLengthError,\n          'dds-input__symbols-count_right': isMaxLengthRight\n        }\"\n        class=\"dds-input__symbols-count\">{{ maxLengthValue }}</span>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { InputFieldDirective } from './directives/input.directive';\nimport { InputComponent } from './input/input.component';\n\n@NgModule({\n  declarations: [],\n  imports: [InputFieldDirective, InputComponent],\n  exports: [InputFieldDirective, InputComponent],\n})\nexport class InputModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i6"],"mappings":"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"}