UNPKG

@alyle/ui

Version:

Minimal Design, a set of components for Angular

1 lines 71.5 kB
{"version":3,"file":"alyle-ui-field.mjs","sources":["../../../lib/field/label.ts","../../../lib/field/placeholder.ts","../../../lib/field/field-styles-token.ts","../../../lib/field/hint.ts","../../../lib/field/prefix.ts","../../../lib/field/suffix.ts","../../../lib/field/error.ts","../../../lib/field/field-control-base.ts","../../../lib/field/display-with.ts","../../../lib/field/field.ts","../../../lib/field/field.html","../../../lib/field/field.module.ts","../../../lib/field/alyle-ui-field.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n  selector: 'ly-field > ly-label',\n  standalone: false\n})\nexport class LyLabel { }\n","import { Directive } from '@angular/core';\n\n@Directive({\n  selector: 'ly-field > ly-placeholder',\n  standalone: false\n})\nexport class LyPlaceholder { }\n","import { InjectionToken } from '@angular/core';\n\n/**\n * For internal use only.\n * @docs-private\n */\nexport const LY_FIELD_STYLES_TOKEN = new InjectionToken('LY_FIELD_STYLES_TOKEN');\n","import { Directive, Renderer2, ElementRef, Input, Inject } from '@angular/core';\nimport { LyTheme2 } from '@alyle/ui';\nimport { LY_FIELD_STYLES_TOKEN } from './field-styles-token';\n\nexport type LyHintAlign = 'before' | 'after';\n\n/** LyHint */\nconst STYLE_PRIORITY = -2;\n\n/** Hint text to be shown underneath the field. */\n@Directive({\n  selector: 'ly-field > ly-hint',\n  standalone: false\n})\nexport class LyHint {\n  readonly classes: {\n    [key: string]: string\n  };\n  private _align: LyHintAlign;\n  private _alignClass?: string;\n  @Input()\n  set align(val: LyHintAlign) {\n    if (val) {\n      if (val === 'after') {\n        this._renderer.addClass(this._el.nativeElement, this.classes.hintAfter);\n        this._alignClass = this.classes.hintAfter;\n      } else {\n        this._renderer.addClass(this._el.nativeElement, this.classes.hintBefore);\n        this._alignClass = this.classes.hintBefore;\n      }\n    } else if (this._alignClass) {\n      this._renderer.removeClass(this._el.nativeElement, this._alignClass);\n      this._alignClass = undefined;\n    }\n    this._align = val;\n  }\n  get align() {\n    return this._align;\n  }\n  constructor(\n    private _renderer: Renderer2,\n    private _el: ElementRef,\n    private _theme: LyTheme2,\n    @Inject(LY_FIELD_STYLES_TOKEN) styles: any\n    ) {\n      this.classes = this._theme.addStyleSheet(styles, STYLE_PRIORITY);\n      _renderer.addClass(_el.nativeElement, this.classes.hint);\n  }\n}\n","import {Directive} from '@angular/core';\n\n\n/** Prefix to be placed the before of the field. */\n@Directive({\n  selector: '[lyPrefix]',\n  standalone: false\n})\nexport class LyPrefix {}\n","import {Directive} from '@angular/core';\n\n\n/** Suffix to be placed the after of the field. */\n@Directive({\n  selector: '[lySuffix]',\n  standalone: false\n})\nexport class LySuffix {}\n","import { Directive, Renderer2, ElementRef, Inject } from '@angular/core';\nimport { LyTheme2 } from '@alyle/ui';\nimport { LY_FIELD_STYLES_TOKEN } from './field-styles-token';\n\nconst STYLE_PRIORITY = -2;\n\n@Directive({\n  selector: 'ly-error',\n  standalone: false\n})\nexport class LyError {\n  constructor(\n    renderer: Renderer2,\n    el: ElementRef,\n    theme: LyTheme2,\n    @Inject(LY_FIELD_STYLES_TOKEN) styles: any\n    ) {\n    const className = theme.addStyleSheet(styles, STYLE_PRIORITY).error;\n    renderer.addClass(el.nativeElement, className);\n  }\n}\n","import { NgControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { StyleRenderer } from '@alyle/ui';\n\n/** An interface which allows a control to work inside of a `LyField`. */\nexport abstract class LyFieldControlBase<T = any> {\n  value: T | null;\n  readonly stateChanges: Subject<void>;\n  // private _form: NgForm | FormGroupDirective | null = this._parentForm || this._parentFormGroup;\n  readonly errorState: boolean;\n  readonly placeholder: string;\n  readonly ngControl: NgControl | null;\n  readonly focused: boolean;\n  readonly empty: boolean;\n  readonly disabled: boolean;\n  readonly required: boolean;\n  readonly floatingLabel: boolean;\n  readonly sRenderer: StyleRenderer;\n  /**\n   * Whether the input is currently in an autofilled state. If the property is not present on the\n   * control, it is assumed to be false.\n   */\n  readonly autofilled?: boolean;\n  /** Handles a click on the control's container. */\n  abstract onContainerClick?(event: MouseEvent): void;\n}\n","import { Directive, Inject } from '@angular/core';\nimport { StyleRenderer, WithStyles } from '@alyle/ui';\nimport { LY_FIELD_STYLES_TOKEN } from './field-styles-token';\n\n/**\n * Only show when input is not focused, and hides input`.\n * You can use it to display formatted values.\n */\n@Directive({\n  selector: 'ly-display-with',\n  providers: [\n    StyleRenderer\n  ],\n  standalone: false\n})\nexport class LyDisplayWith implements WithStyles {\n  constructor(\n    readonly sRenderer: StyleRenderer,\n    @Inject(LY_FIELD_STYLES_TOKEN) styles: any\n  ) {\n    sRenderer.renderSheet(styles, 'displayWith');\n  }\n}\n","import {\n  AfterContentInit,\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ElementRef,\n  Input,\n  OnInit,\n  Renderer2,\n  ViewChild,\n  ViewEncapsulation,\n  ContentChildren,\n  QueryList,\n  NgZone,\n  Directive,\n  OnDestroy,\n  HostListener,\n  HostBinding,\n  Optional,\n  Self,\n  DoCheck,\n  InjectionToken,\n  Inject,\n  } from '@angular/core';\nimport {\n  LyTheme2,\n  ThemeVariables,\n  StyleCollection,\n  LyClasses,\n  StyleTemplate,\n  StyleRenderer,\n  st2c,\n  ThemeRef,\n  LY_COMMON_STYLES,\n  keyframesUniqueId,\n  WithStyles,\n  Style } from '@alyle/ui';\nimport { LyLabel } from './label';\nimport { LyPlaceholder } from './placeholder';\nimport { LyHint } from './hint';\nimport { LyPrefix } from './prefix';\nimport { LySuffix } from './suffix';\nimport { Subject, merge } from 'rxjs';\nimport { NgControl, NgForm, FormGroupDirective } from '@angular/forms';\nimport { LyError } from './error';\nimport { LyFieldControlBase } from './field-control-base';\nimport { Platform } from '@angular/cdk/platform';\nimport { LyDisplayWith } from './display-with';\nimport { takeUntil, take } from 'rxjs/operators';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { AutofillMonitor } from '@angular/cdk/text-field';\n\nexport interface LyFieldTheme {\n  /** Styles for Field Component */\n  root?: StyleCollection<((classes: LyClasses<typeof STYLES>) => StyleTemplate)>\n    | ((classes: LyClasses<typeof STYLES>) => StyleTemplate);\n  appearance?: {\n    standard?: StyleCollection<((classes: LyClasses<typeof STYLES>) => StyleTemplate)>\n      | ((classes: LyClasses<typeof STYLES>) => StyleTemplate)\n    filled?: StyleCollection<((classes: LyClasses<typeof STYLES>) => StyleTemplate)>\n      | ((classes: LyClasses<typeof STYLES>) => StyleTemplate)\n    outlined?: StyleCollection<((classes: LyClasses<typeof STYLES>) => StyleTemplate)>\n      | ((classes: LyClasses<typeof STYLES>) => StyleTemplate)\n    [name: string]: StyleCollection<((classes: LyClasses<typeof STYLES>) => StyleTemplate)>\n      | ((classes: LyClasses<typeof STYLES>) => StyleTemplate) | undefined\n  };\n}\n\nexport interface LyFieldVariables {\n  field?: LyFieldTheme;\n}\n\nexport interface LyFieldDefaultOptions {\n  appearance?: string;\n  /**\n   * Whether the label is floating.\n   * false (default): The label will only float when needed\n   * true: The label will always be floating\n   */\n  floatingLabel?: boolean;\n  /**\n   * Whether the hint will always show.\n   * false (default): The hint will only be shown when the text is focused\n   * true: The hint will always show\n   */\n  persistentHint?: boolean;\n  /**\n   * Floating label size\n   * Default: 0.75\n   */\n  floatingLabelSize?: number;\n  /**\n   * Whether the required marker should be hidden.\n   */\n  hideRequiredMarker?: boolean;\n}\n\nexport const LY_FIELD_DEFAULT_OPTIONS =\n  new InjectionToken<LyFieldDefaultOptions>('LY_FIELD_DEFAULT_OPTIONS');\n\n/** LyField */\nconst STYLE_PRIORITY = -2;\nconst DEFAULT_APPEARANCE = 'standard';\nconst DEFAULT_WITH_COLOR = 'primary';\nconst DEFAULT_FLOATING_LABEL_SIZE = 0.75;\n\nconst inputText = [\n  'text',\n  'number',\n  'password',\n  'search',\n  'tel',\n  'url'\n];\n\n\nexport const STYLE_SELECT_ARROW = (_className: string) => `${_className}::after{position:absolute;content:'';width:0;height:0;border-left:0.3125em solid transparent;border-right:0.3125em solid transparent;border-top:0.3125em solid;top:50%;{after}:0;margin-top:-0.15625em;pointer-events:none;}`;\n\nconst MIXIN_CDK_TEXTAREA_AUTOSIZE_MEASURING_BASE = (_className: string) => `${_className}{padding:2px 0 !important;box-sizing:content-box !important;}`;\n\nconst STYLE_AUTOSIZE = (_className: string) => `${_className} textarea.cdk-textarea-autosize{resize:none;}${st2c((MIXIN_CDK_TEXTAREA_AUTOSIZE_MEASURING_BASE), `${_className} textarea.cdk-textarea-autosize-measuring`)}${_className} textarea.cdk-textarea-autosize-measuring{height:auto !important;overflow:hidden !important;}${st2c((MIXIN_CDK_TEXTAREA_AUTOSIZE_MEASURING_BASE), `${_className} textarea.cdk-textarea-autosize-measuring-firefox`)}${_className} textarea.cdk-textarea-autosize-measuring-firefox{height:0 !important;}`;\n\n/**\n * Core styles that enable monitoring autofill state of text fields from Angular CDK.\n */\nconst TEXT_FIELD_AUTOFILL = (_className: string) => `@keyframes cdk-text-field-autofill-start{@keyframes cdk-text-field-autofill-start{/*!*/;}}@keyframes cdk-text-field-autofill-end{@keyframes cdk-text-field-autofill-end{/*!*/;}}${_className} .cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms;}${_className} .cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms;}`;\n\nexport const STYLES = (theme: ThemeVariables & LyFieldVariables, ref: ThemeRef) => {\n  const classes = ref.selectorsOf(STYLES);\n  const { before, after } = theme;\n  const shake = keyframesUniqueId.next();\n  return {\n    $priority: STYLE_PRIORITY,\n    $global: (_className: string) => `@keyframes ${shake}{0%{margin-${before}:0;}40%{margin-${before}:2px;}50%{margin-${before}:-2px;}70%{margin-${before}:2px;}100%{margin-${before}:0;}}${st2c((STYLE_AUTOSIZE), `${_className}`)}${st2c((TEXT_FIELD_AUTOFILL), `${_className}`)}`,\n    root: ( ) => (_className: string) => `${_className}{display:inline-block;position:relative;line-height:1.125;}${_className} ${classes.hint},${_className} ${classes.error}{display:block;}${_className} ${classes.label} ly-icon,${_className} ${classes.placeholder} ly-icon{font-size:inherit;}${_className} ${classes.prefix},${_className} ${classes.suffix}{position:relative;white-space:nowrap;flex:none;}${st2c((\n          (theme.field\n            && theme.field.root\n            && (theme.field.root instanceof StyleCollection\n              ? theme.field.root.setTransformer(fn => fn(classes))\n              : theme.field.root(classes))\n          )), `${_className}`)}`,\n    animations: ( ) => (_className: string) => `${_className} ${classes.labelSpan}{transition:${theme.animations.curves.deceleration} .${theme.animations.durations.complex}s;}${_className} ${classes.label}{transition:${theme.animations.curves.deceleration} .${theme.animations.durations.complex}s;}`,\n    container: (_className: string) => `${_className}{height:100%;display:flex;align-items:baseline;position:relative;-webkit-tap-highlight-color:transparent;box-sizing:border-box;}${st2c((LY_COMMON_STYLES.fill), `${_className}:after`)}${_className}:after{content:'';pointer-events:none;}`,\n    fieldset: (_className: string) => `${st2c((LY_COMMON_STYLES.fill), `${_className}`)}${_className}{margin:0;border-style:solid;border-width:0;}`,\n    fieldsetSpan: (_className: string) => `${_className}{padding:0;height:2px;}`,\n    prefix: (_className: string) => `${_className}{max-height:2em;}`,\n    infix: (_className: string) => `${_className}{display:inline-flex;position:relative;min-width:0;width:180px;flex:auto;}`,\n    suffix: (_className: string) => `${_className}{max-height:2em;}`,\n    labelContainer: (_className: string) => `${st2c((LY_COMMON_STYLES.fill), `${_className}`)}${_className}{pointer-events:none;display:flex;width:100%;}`,\n    labelSpacingStart: null,\n    labelCenter: (_className: string) => `${_className}{display:flex;max-width:100%;}`,\n    labelSpacingEnd: (_className: string) => `${_className}{flex:1;}`,\n    label: (_className: string) => `${st2c((LY_COMMON_STYLES.fill), `${_className}`)}${_className}{margin:0;border:none;pointer-events:none;overflow:hidden;width:100%;height:100%;}`,\n    labelSpan: (_className: string) => `${_className}{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;width:100%;height:100%;transform-origin:${before} 0;}`,\n    isFloatingLabel: null,\n    floatingLabel: null,\n    placeholder: (_className: string) => `${st2c((LY_COMMON_STYLES.fill), `${_className}`)}${_className}{pointer-events:none;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}`,\n    focused: () => (_className: string) => `${_className}:not(${classes.errorState}) ${classes.fieldRequiredMarker}{color:${theme.accent.default};}`,\n    inputNative: (_className: string) => `${_className}{padding:0;outline:none;border:none;background-color:transparent;color:inherit;font:inherit;width:100%;}textarea${_className}{padding:2px 0;margin:-2px 0;resize:vertical;overflow:auto;}select${_className}{-moz-appearance:none;-webkit-appearance:none;position:relative;background-color:transparent;display:inline-flex;box-sizing:border-box;padding-${after}:1em;}select${_className} option:not([disabled]){color:initial;}select${_className} optgroup:not([disabled]){color:initial;}select${_className}::-ms-expand{display:none;}select${_className}::-moz-focus-inner{border:0;}select${_className}:not(:disabled){cursor:pointer;}select${_className}::-ms-value{color:inherit;background:0 0;}`,\n    /** Is used to hide the input when `displayWith` is shown */\n    _hiddenInput: (_className: string) => `${_className}{color:transparent;}`,\n    displayWith: (_className: string) => `${st2c((LY_COMMON_STYLES.fill), `${_className}`)}${_className}{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%;pointer-events:none;}`,\n    hintContainer: (_className: string) => `${_className}{min-height:1.25em;font-size:0.75em;margin-top:.25em;}${_className} > div{display:flex;max-width:100%;overflow:hidden;justify-content:space-between;align-items:center;}`,\n    disabled: ( ) => (_className: string) => `${_className},${_className} ${classes.label},${_className} ${classes.container}:after{color:${theme.disabled.contrast};cursor:default;}`,\n    hint: null,\n    fieldRequiredMarker: null,\n    error: null,\n    errorState: ( ) => (_className: string) => `${_className} ${classes.label},${_className} ${classes.hintContainer},${_className}${classes.selectArrow} ${classes.infix}:after{color:${theme.warn.default}!important;}${_className} ${classes.fieldset},${_className} ${classes.container}:after{border-color:${theme.warn.default}!important;}${_className} ${classes.inputNative}{caret-color:${theme.warn.default}!important;}${_className} ${classes.hintContainer} ly-hint:not(${classes.hintAfter}){display:none;}${_className} ${classes.labelSpan}{animation:${shake} ${theme.animations.durations.complex}ms ${theme.animations.curves.deceleration};}${_className} ${classes.inputNative}::selection,${_className} ${classes.inputNative}::-moz-selection{background-color:${theme.warn.default} !important;color:${theme.warn.contrast} !important;}`,\n    hintAfter: (_className: string) => `${_className}{margin-${before}:auto;}`,\n    hintBefore: (_className: string) => `${_className}{margin-${after}:auto;}`,\n    selectArrow: ( ) => (_className: string) => `${_className} ${classes.infix}::after{position:absolute;content:'';width:0;height:0;border-left:0.3125em solid transparent;border-right:0.3125em solid transparent;border-top:0.3125em solid;top:0;${after}:0;pointer-events:none;}`\n  };\n};\n\n/**\n * @dynamic\n */\n@Component({\n  selector: 'ly-field',\n  exportAs: 'lyFormField',\n  templateUrl: 'field.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  providers: [\n    StyleRenderer,\n  ],\n  standalone: false\n})\nexport class LyField implements WithStyles, OnInit, AfterContentInit, AfterViewInit, OnDestroy {\n  /**\n   * styles\n   * @docs-private\n   */\n  readonly classes = this._theme.renderStyleSheet(STYLES);\n  protected _appearance: string;\n  protected _appearanceClass: string;\n  protected _color: string;\n  protected _colorClass: string;\n  protected _isFloating: boolean;\n  protected _floatingLabel: boolean;\n  private _destroyed = new Subject<void>();\n  private _fielsetSpanClass: string;\n  private _fullWidth: boolean;\n  private _fullWidthClass?: string;\n  private _updateFielsetSpanOnStable: boolean;\n  @ViewChild('_container', { static: true }) _container: ElementRef<HTMLDivElement>;\n  @ViewChild('_labelContainer') _labelContainer: ElementRef<HTMLDivElement>;\n  @ViewChild('_labelContainer2') _labelContainer2: ElementRef<HTMLDivElement>;\n  @ViewChild('_labelSpan') _labelSpan: ElementRef<HTMLDivElement>;\n  @ViewChild('_prefixContainer') _prefixContainer: ElementRef<HTMLDivElement>;\n  @ViewChild('_suffixContainer') _suffixContainer: ElementRef<HTMLDivElement>;\n  @ContentChild(LyFieldControlBase) _controlNonStatic?: LyFieldControlBase;\n  @ContentChild(LyFieldControlBase, { static: true }) _controlStatic: LyFieldControlBase<any>;\n  get _control() {\n    // Support both Ivy and ViewEngine.\n    return this._controlNonStatic || this._controlStatic;\n  }\n  @ContentChild(LyPlaceholder) _placeholderChild: LyPlaceholder;\n  @ContentChild(LyLabel) _labelChild: LyLabel;\n  @ContentChild(LyDisplayWith) readonly _displayWithChild: QueryList<LyDisplayWith>;\n  @ContentChildren(LyHint) _hintChildren: QueryList<LyHint>;\n  @ContentChildren(LyPrefix) _prefixChildren: QueryList<LyPrefix>;\n  @ContentChildren(LySuffix) _suffixChildren: QueryList<LySuffix>;\n  @ContentChildren(LyError) _errorChildren: QueryList<LyError>;\n\n  get errorState() {\n    return this._control ? this._control.errorState : false;\n  }\n\n  get displayWithStatus() {\n    return !!(this._displayWithChild\n      && this._control\n      && !this._control.empty\n      && !this._control.focused\n      && !this._control.errorState);\n  }\n\n  /** Whether the required marker should be hidden. */\n  @Input()\n  get hideRequiredMarker(): boolean {\n    return this._hideRequiredMarker;\n  }\n  set hideRequiredMarker(value: boolean) {\n    this._hideRequiredMarker = coerceBooleanProperty(value);\n  }\n  private _hideRequiredMarker: boolean;\n\n  @Input() persistentHint: boolean;\n\n  /**\n   * Floating label size\n   * Default: 0.75\n   */\n  @Input()\n  @Style(\n    (val, media) => ({ breakpoints }: ThemeVariables, ref: ThemeRef) => {\n      const classes = ref.selectorsOf(STYLES);\n      return (_className: string) => `@media ${(media && breakpoints[media]) || 'all'}{${_className} ${classes.floatingLabel} ${classes.labelSpan}{transform:scale(${val});width:${Math.round(100 / 0.75)}%;}}`;\n    }\n  )\n  floatingLabelSize: number | null;\n\n  @Input()\n  set fullWidth(val: BooleanInput) {\n    const newVal = coerceBooleanProperty(val);\n    if (newVal) {\n      this._fullWidthClass = this._theme.addStyle(\n        `fullWidth`,\n        {\n          display: 'block',\n          width: '100%'\n        },\n        this._getHostElement(),\n        this._fullWidthClass,\n        STYLE_PRIORITY\n      );\n    } else if (this._fullWidthClass) {\n      this._renderer.removeClass(this._getHostElement(), this._fullWidthClass);\n      this._fullWidthClass = undefined;\n    }\n    this._fullWidth = newVal;\n  }\n  get fullWidth(): boolean {\n    return this._fullWidth;\n  }\n\n  /** Whether the label is floating. */\n  @Input()\n  set floatingLabel(val: BooleanInput) {\n    this._floatingLabel = coerceBooleanProperty(val);\n    this._updateFloatingLabel();\n  }\n  get floatingLabel(): boolean {\n    return this._floatingLabel;\n  }\n\n  /** Theme color for the component. */\n  @Input()\n  @Style<string>(\n    val => (theme: ThemeVariables, ref: ThemeRef) => {\n      const classes = ref.selectorsOf(STYLES);\n      const color = theme.colorOf(val);\n      const contrast = theme.colorOf(`${val}:contrast`);\n      return (_className: string) => `${_className}${classes.focused} ${classes.container}:after,${_className}${classes.focused}${classes.selectArrow} ${classes.infix}:after{color:${color};}${_className}${classes.focused} ${classes.fieldset}{border-color:${color};}${_className}${classes.focused} ${classes.label}{color:${color};}${_className} ${classes.inputNative}{caret-color:${color};}${_className} ${classes.inputNative}::selection{background-color:${color};color:${contrast};}${_className} ${classes.inputNative}::-moz-selection{background-color:${color};color:${contrast};}`;\n    }\n  ) color: string;\n\n  /** The field appearance style. */\n  @Input()\n  @Style<string | null>(\n    val => (theme: LyFieldVariables, ref: ThemeRef) => {\n      const classes = ref.selectorsOf(STYLES);\n      if (theme.field?.appearance) {\n        const appearance = theme.field.appearance[val];\n        if (appearance) {\n          return appearance instanceof StyleCollection\n            ? appearance.setTransformer((_) => _(classes)).css\n            : appearance(classes);\n        }\n      }\n      throw new Error(`[${val}] not found in theme.field.appearance`);\n    },\n    STYLE_PRIORITY\n  )\n  set appearance(val: string | null) {\n    if (val === 'outlined') {\n      this._updateFielsetSpanOnStable = true;\n    }\n  }\n\n  @HostListener('focus') onFocus() {\n    this._el.nativeElement.focus();\n  }\n\n  constructor(\n    private _renderer: Renderer2,\n    private _el: ElementRef,\n    private _theme: LyTheme2,\n    private _cd: ChangeDetectorRef,\n    private _ngZone: NgZone,\n    readonly sRenderer: StyleRenderer,\n    private _platform: Platform,\n    @Optional() @Inject(LY_FIELD_DEFAULT_OPTIONS)\n    private _defaults: LyFieldDefaultOptions\n  ) {\n    _renderer.addClass(_el.nativeElement, this.classes.root);\n    this._hideRequiredMarker =\n      _defaults?.hideRequiredMarker != null ? _defaults.hideRequiredMarker : false;\n  }\n\n  ngOnInit() {\n    if (!this.color) {\n      this.color = DEFAULT_WITH_COLOR;\n    }\n    if (this.floatingLabelSize == null) {\n      this.floatingLabelSize = (this._defaults?.floatingLabelSize != null)\n        ? this._defaults?.floatingLabelSize\n        : DEFAULT_FLOATING_LABEL_SIZE;\n    }\n    if (!this.appearance) {\n      this.appearance = this._defaults?.appearance ? this._defaults?.appearance : DEFAULT_APPEARANCE;\n    }\n    if (this.persistentHint == null) {\n      this.persistentHint = (this._defaults?.persistentHint != null) ? this._defaults.persistentHint : false;\n    }\n    if (this.floatingLabel == null) {\n      this.floatingLabel = (this._defaults?.floatingLabel != null) ? this._defaults.floatingLabel : false;\n    }\n  }\n\n  ngAfterContentInit() {\n    this._control!.stateChanges.subscribe(() => {\n      this._updateFloatingLabel();\n      this._updateDisplayWith();\n      this._markForCheck();\n    });\n\n    const ngControl = this._control!.ngControl;\n\n    // Run change detection if the value changes.\n    if (ngControl && ngControl.valueChanges) {\n      ngControl.valueChanges.pipe(takeUntil(this._destroyed)).subscribe(() => {\n        this._updateFloatingLabel();\n        this._updateDisplayWith();\n        this._markForCheck();\n      });\n    }\n\n    this._ngZone.runOutsideAngular(() => {\n      this._ngZone.onStable.pipe(takeUntil(this._destroyed)).subscribe(() => {\n        if (this._updateFielsetSpanOnStable) {\n          this._updateFielsetSpan();\n        }\n      });\n      this._ngZone.onStable.pipe(take(1), takeUntil(this._destroyed)).subscribe(() => {\n        this._updateDisplayWith();\n        this._renderer.addClass(this._el.nativeElement, this.classes.animations);\n      });\n    });\n\n    merge(this._prefixChildren.changes, this._suffixChildren.changes).subscribe(() => {\n      this._updateFielsetSpanOnStable = true;\n      this._markForCheck();\n    });\n\n  }\n\n  ngAfterViewInit() {\n    this._updateFielsetSpan();\n    this._updateFloatingLabel();\n  }\n\n  ngOnDestroy() {\n    this._destroyed.next();\n    this._destroyed.complete();\n  }\n\n  _updateFielsetSpan() {\n    if (!this._platform.isBrowser) {\n      return;\n    }\n\n    if (this.floatingLabelSize == null) {\n      return;\n    }\n\n    if (this.appearance !== 'outlined') {\n      return;\n    }\n\n    const label = this._isLabel() ? this._labelSpan.nativeElement : null;\n    const labelChildren = this._isLabel()\n      ? this._labelSpan.nativeElement.children\n      : null;\n    if (!label) {\n      return;\n    }\n    const before = this._theme.variables.before;\n    const fieldsetLegend = this._getHostElement().querySelector('legend');\n    if (!fieldsetLegend) {\n      this._updateFielsetSpanOnStable = true;\n      return;\n    }\n    const labelRect = label.getBoundingClientRect();\n    const container = this._container.nativeElement;\n    const containerRect = this._container.nativeElement.getBoundingClientRect();\n    let width = 0;\n    for (let index = 0; index < labelChildren!.length; index++) {\n      width += labelChildren![index].getBoundingClientRect().width;\n    }\n    const percent = containerRect.width / container.offsetWidth;\n    const labelPercent = labelRect.width / label.offsetWidth;\n    let beforeMargin = Math.abs(\n      (containerRect[before] - labelRect[before]) / percent) - 12;\n    width /= labelPercent;\n    width *= this.floatingLabelSize;\n    // add 6px of space\n    width += 6;\n    width = width > (label.parentElement!.offsetWidth)\n      ? (label.parentElement!.offsetWidth)\n      : width;\n    width = Math.round(width);\n    beforeMargin = Math.round(beforeMargin);\n    fieldsetLegend.style[`margin-right`] = ``;\n    fieldsetLegend.style[`margin-left`] = ``;\n    fieldsetLegend.style[`margin-${before}`] = `${beforeMargin}px`;\n    this._updateFielsetSpanOnStable = false;\n    this._fielsetSpanClass = this._theme.addStyle(`style.fieldsetSpanFocused:${width}`, {\n      [`&.${this.classes.isFloatingLabel} .${this.classes.fieldsetSpan}`]: {width: `${width}px`}\n    }, this._el.nativeElement, this._fielsetSpanClass, STYLE_PRIORITY);\n  }\n  /** @ignore */\n  _isLabel() {\n    if (this._control && this._control.placeholder && !this._labelChild) {\n      return true;\n    } else if (this._labelChild || this._placeholderChild) {\n      return true;\n    }\n    return false;\n  }\n\n  /** @ignore */\n  _isPlaceholder() {\n    if ((this._labelChild && this._control && this._control.placeholder) || (this._labelChild && this._placeholderChild)) {\n      return true;\n    }\n    return false;\n  }\n\n  /** @ignore */\n  _isEmpty() {\n    const val = this._control ? this._control.value : null;\n    return val === '' || val === null || val === undefined;\n  }\n\n  private _updateFloatingLabel() {\n    if (this._labelContainer2) {\n      const isFloating = this._control!.floatingLabel || this.floatingLabel;\n      if (this._isFloating !== isFloating) {\n        this._isFloating = isFloating;\n        if (isFloating) {\n          this._renderer.addClass(this._labelContainer2.nativeElement, this.classes.floatingLabel);\n          this._renderer.addClass(this._el.nativeElement, this.classes.isFloatingLabel);\n        } else {\n          this._renderer.removeClass(this._labelContainer2.nativeElement, this.classes.floatingLabel);\n          this._renderer.removeClass(this._el.nativeElement, this.classes.isFloatingLabel);\n        }\n      }\n    }\n    if (this._control) {\n      if (this._control.focused) {\n        this._renderer.addClass(this._el.nativeElement, this.classes.focused);\n      } else {\n        this._renderer.removeClass(this._el.nativeElement, this.classes.focused);\n      }\n    }\n  }\n\n  private _updateDisplayWith() {\n    if (this._control) {\n      this._control.sRenderer.toggleClass(this.classes._hiddenInput, this.displayWithStatus);\n    }\n  }\n\n  private _markForCheck() {\n    this._cd.markForCheck();\n  }\n\n  _getHostElement() {\n    return this._el.nativeElement;\n  }\n\n  static ngAcceptInputType_hideRequiredMarker: BooleanInput;\n\n}\n\n@Directive({\n  selector:\n      'input[lyInput], textarea[lyInput], input[lyNativeControl], textarea[lyNativeControl], select[lyNativeControl]',\n  exportAs: 'LyNativeControl',\n  providers: [\n    StyleRenderer,\n    { provide: LyFieldControlBase, useExisting: LyNativeControl }\n  ],\n  standalone: false\n})\nexport class LyNativeControl implements LyFieldControlBase, OnInit, AfterViewInit, DoCheck, OnDestroy {\n  protected _disabled = false;\n  protected _required = false;\n  protected _placeholder: string;\n  readonly stateChanges: Subject<void> = new Subject<void>();\n  private _hasDisabledClass?: boolean;\n  private _errorClass?: string;\n  private _cursorClass: string | null;\n  private _isSelectInput: boolean;\n  private _form: NgForm | FormGroupDirective | null = this._parentForm || this._parentFormGroup;\n  _focused: boolean = false;\n  errorState: boolean = false;\n  autofilled = false;\n\n  @HostListener('input') _onInput() {\n    this.stateChanges.next();\n  }\n\n  @HostListener('blur') _onBlur() {\n    if (this._focused !== false) {\n      this._focused = false;\n      this.stateChanges.next();\n    }\n  }\n  @HostListener('focus') _onFocus() {\n    if (this._focused !== true) {\n      this._focused = true;\n      this.stateChanges.next();\n    }\n  }\n\n  /** @ignore */\n  @Input()\n  set value(val: any) {\n    if (val !== this.value) {\n      this._getHostElement().value = val;\n      this.stateChanges.next();\n    }\n  }\n  get value(): any {\n    return this._getHostElement().value;\n  }\n\n  /** Whether the input is disabled. */\n  @HostBinding()\n  @Input()\n  set disabled(val: BooleanInput) {\n    if (val !== this._disabled) {\n      this._disabled = coerceBooleanProperty(val);\n      if (this._field) {\n        if (!val && this._hasDisabledClass) {\n          this._renderer.removeClass(this._field._getHostElement(), this._field.classes.disabled);\n          if (this._cursorClass) {\n            this._renderer.addClass(this._field._getHostElement(), this._cursorClass);\n          }\n          this._hasDisabledClass = undefined;\n        } else if (val) {\n          this._renderer.addClass(this._field._getHostElement(), this._field.classes.disabled);\n          if (this._cursorClass) {\n            this._renderer.removeClass(this._field._getHostElement(), this._cursorClass);\n          }\n          this._hasDisabledClass = true;\n        }\n      }\n    }\n  }\n  get disabled(): boolean {\n    if (this.ngControl && this.ngControl.disabled !== null) {\n      return this.ngControl.disabled;\n    }\n    return this._disabled;\n  }\n\n  @HostBinding()\n  @Input()\n  set required(value: BooleanInput) {\n    this._required = coerceBooleanProperty(value);\n  }\n  get required(): boolean { return this._required; }\n\n  @Input()\n  set placeholder(val: string) {\n    this._placeholder = val;\n  }\n  get placeholder(): string { return this._placeholder; }\n\n  get focused() {\n    return this._focused;\n  }\n\n  get empty() {\n    const val = this._el.nativeElement.value;\n    return (\n      !val &&\n      !this.autofilled\n    );\n  }\n\n  get floatingLabel() {\n    return this.focused || !this.empty || (this._isSelectInput ? this._hasLabelSelectionOption() : false);\n  }\n\n  constructor(\n    private _theme: LyTheme2,\n    readonly sRenderer: StyleRenderer,\n    private _el: ElementRef<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>,\n    private _renderer: Renderer2,\n    @Optional() private _field: LyField,\n    /** @docs-private */\n    @Optional() @Self() public ngControl: NgControl,\n    @Optional() private _parentForm: NgForm,\n    @Optional() private _parentFormGroup: FormGroupDirective,\n    private _autofillMonitor: AutofillMonitor,\n    private _platform: Platform\n  ) { }\n\n  ngOnInit() {\n    this._renderer.setAttribute(this._getHostElement(), 'placeholder', '­');\n\n    const { nativeElement } = this._el;\n\n    if (nativeElement.nodeName.toLowerCase() === 'select') {\n      this._isSelectInput = true;\n    }\n\n    // apply class {selectArrow} to `<select> not multiple`\n    if (this._field && nativeElement.type === 'select-one') {\n      this._renderer.addClass(this._field._getHostElement(), this._field.classes.selectArrow);\n    }\n\n    // apply style cursor only for input of type text\n    if (nativeElement instanceof HTMLTextAreaElement ||\n        inputText.some(type => type === nativeElement.type)) {\n      this._cursorClass = this._theme.addSimpleStyle('lyField.text', {\n        '& {infix}': {\n          cursor: 'text'\n        }\n      }, STYLE_PRIORITY, STYLES);\n    }\n\n    if (this._isSelectInput) {\n      this._cursorClass = this._theme.addSimpleStyle('lyField.select', {\n        '& {infix}': {\n          cursor: 'pointer'\n        }\n      }, STYLE_PRIORITY, STYLES);\n    }\n\n    if (this._cursorClass) {\n      this._renderer.addClass(this._field._getHostElement(), this._cursorClass);\n    }\n\n    // apply default styles\n    this._renderer.addClass(nativeElement, this._field.classes.inputNative);\n\n    const ngControl = this.ngControl;\n    // update styles on disabled\n    if (ngControl && ngControl.statusChanges) {\n      ngControl.statusChanges.subscribe(() => {\n        this.disabled = !!ngControl.disabled;\n      });\n    }\n  }\n\n  ngDoCheck() {\n    if (this._field._control) {\n      const oldVal = this.errorState;\n      const newVal = !!(this.ngControl && this.ngControl.invalid && (this.ngControl.touched || (this._form && this._form.submitted)));\n      if (newVal !== oldVal) {\n        this.errorState = newVal;\n        if (this._field) {\n          const errorClass = this._field.classes.errorState;\n          if (newVal) {\n            this._renderer.addClass(this._field._getHostElement(), errorClass);\n            this._errorClass = errorClass;\n          } else if (this._errorClass) {\n            this._renderer.removeClass(this._field._getHostElement(), errorClass);\n            this._errorClass = undefined;\n          }\n          this.stateChanges.next();\n        }\n      }\n    }\n  }\n\n  ngAfterViewInit() {\n    if (this._platform.isBrowser) {\n      this._autofillMonitor.monitor(this._el.nativeElement).subscribe(event => {\n        this.autofilled = event.isAutofilled;\n        this.stateChanges.next();\n      });\n    }\n  }\n\n  ngOnDestroy() {\n    this.stateChanges.complete();\n    if (this._platform.isBrowser) {\n      this._autofillMonitor.stopMonitoring(this._el.nativeElement);\n    }\n  }\n\n  /** @docs-private */\n  onContainerClick(_e: MouseEvent) {\n    this._getHostElement().focus();\n  }\n\n  /** Focuses the input. */\n  focus(): void { this._getHostElement().focus(); }\n\n  _getHostElement() {\n    return this._el.nativeElement;\n  }\n\n  private _hasLabelSelectionOption() {\n    const el = this._getHostElement() as HTMLSelectElement;\n    const option = el.selectedOptions ? el.selectedOptions.item(0) : null;\n    return option ? !!option.label : false;\n  }\n\n}\n","<div #_container\n  [className]=\"classes.container\"\n  (click)=\"_control && _control.onContainerClick && _control.onContainerClick($event)\">\n  <fieldset\n    *ngIf=\"appearance === 'outlined'\"\n    [className]=\"classes.fieldset\"><legend [className]=\"classes.fieldsetSpan\"></legend></fieldset>\n  <div [className]=\"classes.prefix\" *ngIf=\"_prefixChildren.length\" #_prefixContainer>\n    <ng-content select=\"[lyPrefix]\"></ng-content>\n  </div>\n  <div [className]=\"classes.infix\">\n    <ng-container\n      *ngIf=\"displayWithStatus\"\n    >\n      <ng-content select=\"ly-display-with\"></ng-content>\n    </ng-container>\n    <ng-content></ng-content>\n    <span [className]=\"classes.label\" *ngIf=\"_isLabel()\" #_labelContainer2>\n      <span #_labelSpan [className]=\"classes.labelSpan\"\n        (cdkObserveContent)=\"_updateFielsetSpan()\"\n        [cdkObserveContentDisabled]=\"appearance != 'outlined'\"\n      >\n        <ng-container *ngTemplateOutlet=\"_labelTemplate\"></ng-container>\n      </span>\n    </span>\n    <div [className]=\"classes.placeholder\"\n      *ngIf=\"_isPlaceholder() && _control?.empty && (_control?.floatingLabel || floatingLabel)\"\n    >\n      <ng-container *ngTemplateOutlet=\"_placeholderTemplate\"></ng-container>\n    </div>\n  </div>\n  <div [className]=\"classes.suffix\" *ngIf=\"_suffixChildren.length\" #_suffixContainer>\n    <ng-content select=\"[lySuffix]\"></ng-content>\n  </div>\n</div>\n\n<div [className]=\"classes.hintContainer\">\n  <div *ngIf=\"(_hintChildren.length || _errorChildren.length) && (persistentHint || _control?.errorState || _control?.focused)\">\n    <ng-container *ngIf=\"_control?.errorState\">\n      <ng-content select=\"ly-error\"></ng-content>\n    </ng-container>\n    <ng-content select=\"ly-hint\"></ng-content>\n  </div>\n</div>\n\n<ng-template #_labelTemplate>\n  <ng-content select=\"ly-label\"></ng-content>\n  <ng-container *ngIf=\"!_labelChild\">\n    <ng-template *ngTemplateOutlet=\"_placeholderTemplate\"></ng-template>\n  </ng-container>\n  <span\n    [className]=\"classes.fieldRequiredMarker\"\n    aria-hidden=\"true\"\n    *ngIf=\"!hideRequiredMarker && _control.required && !_control.disabled\">&#32;*</span>\n</ng-template>\n\n<ng-template #_placeholderTemplate>\n  <ng-content select=\"ly-placeholder\"></ng-content>\n  <span *ngIf=\"_control?.placeholder\">{{ _control.placeholder }}</span>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LyCommonModule } from '@alyle/ui';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { LyField, LyNativeControl, STYLES } from './field';\nimport { LyPlaceholder } from './placeholder';\nimport { LyLabel } from './label';\nimport { LyPrefix } from './prefix';\nimport { LySuffix } from './suffix';\nimport { LyHint } from './hint';\nimport { LyError } from './error';\nimport { LY_FIELD_STYLES_TOKEN } from './field-styles-token';\nimport { LyDisplayWith } from './display-with';\nimport { TextFieldModule } from '@angular/cdk/text-field';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    LyCommonModule,\n    ObserversModule,\n    TextFieldModule\n  ],\n  exports: [\n    LyField,\n    LyPlaceholder,\n    LyLabel,\n    LyNativeControl,\n    LyPrefix,\n    LySuffix,\n    LyHint,\n    LyError,\n    LyDisplayWith,\n    LyCommonModule\n  ],\n  providers: [\n    {\n      provide: LY_FIELD_STYLES_TOKEN,\n      useValue: STYLES\n    }\n  ],\n  declarations: [\n    LyField,\n    LyPlaceholder,\n    LyLabel,\n    LyNativeControl,\n    LyPrefix,\n    LySuffix,\n    LyHint,\n    LyError,\n    LyDisplayWith\n  ]\n})\nexport class LyFieldModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["STYLE_PRIORITY"],"mappings":"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"}