@alyle/ui
Version:
Minimal Design, a set of components for Angular
1 lines • 71.5 kB
Source Map (JSON)
{"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\"> *</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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"}