@koobiq/components-experimental 18.18.0 → 18.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-experimental-form-field.mjs","sources":["../../../packages/components-experimental/form-field/cleaner.ts","../../../packages/components-experimental/form-field/hint.ts","../../../packages/components-experimental/form-field/hint.html","../../../packages/components-experimental/form-field/label.ts","../../../packages/components-experimental/form-field/password-toggle.ts","../../../packages/components-experimental/form-field/prefix.ts","../../../packages/components-experimental/form-field/stepper.ts","../../../packages/components-experimental/form-field/suffix.ts","../../../packages/components-experimental/form-field/form-field.ts","../../../packages/components-experimental/form-field/form-field.html","../../../packages/components-experimental/form-field/form-field.module.ts","../../../packages/components-experimental/form-field/koobiq-components-experimental-form-field.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { KBQ_FORM_FIELD_REF } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqFormField } from './form-field';\n\n/**\n * KbqCleaner to be placed in end of the form field.\n * Resets form control by click.\n */\n@Component({\n standalone: true,\n imports: [KbqIconModule],\n selector: 'kbq-cleaner',\n exportAs: 'kbqCleaner',\n template: `\n <i [autoColor]=\"true\" color=\"contrast-fade\" kbq-icon-button=\"kbq-xmark-circle_16\"></i>\n `,\n styleUrl: './cleaner.scss',\n host: {\n class: 'kbq-cleaner___EXPERIMENTAL',\n '(click)': 'clean($event)',\n '[style.visibility]': 'visible ? \"visible\" : \"hidden\"',\n '[attr.aria-hidden]': '!visible'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqCleaner {\n // @TODO fix types (#DS-2915)\n private readonly formField = inject(KBQ_FORM_FIELD_REF, { optional: true }) as unknown as KbqFormField | undefined;\n\n /** Whether to display the cleaner. */\n get visible(): boolean {\n return !this.formField?.disabled && !!this.formField?.control?.ngControl?.value;\n }\n\n /** Clean the form field control. */\n protected clean(event: MouseEvent): void {\n event.stopPropagation();\n\n this.formField?.control?.ngControl?.reset();\n this.formField?.control?.focus();\n }\n}\n","import { NgClass } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { KBQ_FORM_FIELD_REF, KbqComponentColors } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqFormField } from './form-field';\n\nlet nextUniqueId = 0;\n\n/** Hint text to be shown below the form field control. */\n@Component({\n standalone: true,\n selector: 'kbq-hint',\n exportAs: 'kbqHint',\n templateUrl: './hint.html',\n styleUrls: [\n './hint.scss',\n './hint-tokens.scss'\n ],\n host: {\n class: 'kbq-hint___EXPERIMENTAL',\n '[attr.id]': 'id',\n '[class.kbq-error]': 'color === colors.Error',\n '[class.kbq-contrast-fade]': 'color === colors.ContrastFade',\n '[class.kbq-success]': 'color === colors.Success',\n '[class.kbq-warning]': 'color === colors.Warning',\n '[class.kbq-hint_fill-text-off]': 'fillTextOff',\n '[class.kbq-hint_compact]': 'compact'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqHint {\n /** Unique ID for the hint. */\n @Input() id: string = `kbq-hint-${nextUniqueId++}`;\n\n /** Component colors */\n protected colors = KbqComponentColors;\n\n /** Hint color */\n @Input() set color(color: KbqComponentColors) {\n this._color = color;\n }\n\n get color(): KbqComponentColors | undefined {\n return this._color;\n }\n\n private _color: KbqComponentColors | undefined;\n\n /** Disables `color` for the hint text. */\n @Input({ transform: booleanAttribute }) set fillTextOff(fillTextOff: boolean) {\n this._fillTextOff = fillTextOff;\n }\n\n get fillTextOff(): boolean {\n return this._fillTextOff;\n }\n\n private _fillTextOff: boolean = false;\n\n /** Makes the hint size smaller. */\n @Input({ transform: booleanAttribute }) compact: boolean = false;\n}\n\n/** Error text to be shown below the form field control. */\n@Component({\n standalone: true,\n selector: 'kbq-error',\n exportAs: 'kbqError',\n templateUrl: './hint.html',\n styleUrls: [\n './hint.scss',\n './hint-tokens.scss'\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqError extends KbqHint {\n /** @docs-private */\n @Input() set color(_color: null) {}\n\n /** Overrides the hint `color` property. */\n get color(): KbqComponentColors.Error {\n return KbqComponentColors.Error;\n }\n\n /** @docs-private */\n @Input() set fillTextOff(_fillTextOff: null) {}\n\n /** Overrides the hint `fillTextOff` property. */\n get fillTextOff(): boolean {\n return false;\n }\n}\n\n/** Password hint to be shown below the password form field control. */\n@Component({\n standalone: true,\n imports: [NgClass, KbqIconModule],\n selector: 'kbq-password-hint',\n template: `\n <i [ngClass]=\"icon\" kbq-icon=\"\"></i>\n\n <span class=\"kbq-hint__text\">\n <ng-content />\n </span>\n `,\n host: {\n class: 'kbq-password-hint___EXPERIMENTAL'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqPasswordHint extends KbqHint {\n /** Whether the form field control has an error. */\n @Input({ transform: booleanAttribute }) hasError: boolean = false;\n\n /** @docs-private */\n @Input() set fillTextOff(_fillTextOff: null) {}\n\n /** Overrides the hint `fillTextOff` property. */\n get fillTextOff(): boolean {\n return true;\n }\n\n // @TODO fix types (#DS-2915)\n private readonly formField = inject(KBQ_FORM_FIELD_REF, { optional: true }) as unknown as KbqFormField | undefined;\n\n /** @docs-private */\n @Input() set color(_color: null) {}\n\n /** Overrides the hint `color` property. */\n get color(): KbqComponentColors {\n if (this.formField?.invalid && this.hasError) {\n return KbqComponentColors.Error;\n }\n\n if ((!this.formField?.invalid && !this.hasError) || !this.hasError) {\n return KbqComponentColors.Success;\n }\n\n return KbqComponentColors.ContrastFade;\n }\n\n /** The form field hint icon. */\n protected get icon(): string {\n return this.hasError ? 'kbq-xmark-s_16' : 'kbq-check-s_16';\n }\n}\n","<ng-content select=\"[kbq-icon]\" />\n\n<span class=\"kbq-hint__text\">\n <ng-content />\n</span>\n","import { Directive, Input } from '@angular/core';\n\nlet nextUniqueId = 0;\n\n/** Label for the form field. */\n@Directive({\n selector: 'kbq-label',\n standalone: true,\n host: {\n class: 'kbq-label___EXPERIMENTAL',\n '[attr.id]': 'id'\n }\n})\nexport class KbqLabel {\n /** Unique id for the label. */\n @Input() id: string = `kbq-label-${nextUniqueId++}`;\n}\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { KBQ_FORM_FIELD_REF } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqInputPassword } from '@koobiq/components/input';\nimport { KbqFormField } from './form-field';\n\n/** @docs-private */\nconst getKbqPasswordToggleMissingControlError = (): Error => {\n return Error('kbq-password-toggle should use with kbqInputPassword');\n};\n\n/** Component which changes password visibility. */\n@Component({\n standalone: true,\n imports: [NgClass, KbqIconModule],\n selector: `kbq-password-toggle`,\n exportAs: 'kbqPasswordToggle',\n template: `\n <i [ngClass]=\"icon\" [autoColor]=\"true\" color=\"contrast-fade\" kbq-icon-button=\"\"></i>\n `,\n styleUrl: './password-toggle.scss',\n host: {\n class: 'kbq-password-toggle___EXPERIMENTAL',\n\n '[style.visibility]': 'visible ? \"visible\" : \"hidden\"',\n '[attr.aria-hidden]': '!visible',\n\n '(click)': 'toggleType($event)',\n '(keydown.ENTER)': 'toggleType($event)',\n '(keydown.SPACE)': 'toggleType($event)'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class KbqPasswordToggle {\n // @TODO fix types (#DS-2915)\n private readonly formField = inject(KBQ_FORM_FIELD_REF, { optional: true }) as unknown as KbqFormField | undefined;\n\n /** Form field password control. */\n protected get control(): KbqInputPassword {\n const control = this.formField?.control;\n if (!(control instanceof KbqInputPassword)) {\n throw getKbqPasswordToggleMissingControlError();\n }\n return control;\n }\n\n /** The icon selector. */\n protected get icon(): string {\n return this.control.elementType === 'password' ? 'kbq-eye_16' : 'kbq-eye-slash_16';\n }\n\n /** Whether to display the password toggle. */\n get visible(): boolean {\n return !this.formField?.disabled && !!this.control?.ngControl?.value;\n }\n\n /** Toggles the password visibility. */\n protected toggleType(event: KeyboardEvent | MouseEvent): void {\n event.stopPropagation();\n\n this.control.toggleType();\n }\n}\n","import { Directive } from '@angular/core';\n\n/** KbqPrefix to be placed in front of the form field. */\n@Directive({\n standalone: true,\n selector: '[kbqPrefix]',\n host: {\n class: 'kbq-prefix___EXPERIMENTAL'\n }\n})\nexport class KbqPrefix {}\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { KBQ_FORM_FIELD_REF } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqInput, KbqNumberInput } from '@koobiq/components/input';\nimport { KbqFormField } from './form-field';\n\n/** @docs-private */\nconst getKbqStepperToggleMissingControlError = (): Error => {\n return Error('kbq-stepper should use with kbqNumberInput');\n};\n\n/** Component which allow to increment or decrement number value. */\n@Component({\n standalone: true,\n selector: 'kbq-stepper',\n exportAs: 'kbqStepper',\n imports: [KbqIconModule],\n template: `\n <i\n class=\"kbq-stepper__step-up\"\n [small]=\"true\"\n [tabindex]=\"-1\"\n [autoColor]=\"true\"\n (click)=\"stepUp($event)\"\n color=\"contrast-fade\"\n kbq-icon-button=\"kbq-chevron-down_16\"\n ></i>\n <i\n class=\"kbq-stepper__step-down\"\n [small]=\"true\"\n [tabindex]=\"-1\"\n [autoColor]=\"true\"\n (mousedown)=\"stepDown($event)\"\n color=\"contrast-fade\"\n kbq-icon-button=\"kbq-chevron-down_16\"\n ></i>\n `,\n styleUrl: './stepper.scss',\n host: {\n class: 'kbq-stepper___EXPERIMENTAL',\n '[style.visibility]': 'visible ? \"visible\" : \"hidden\"',\n '[attr.aria-hidden]': '!visible'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class KbqStepper {\n // @TODO fix types (#DS-2915)\n private readonly formField = inject(KBQ_FORM_FIELD_REF, { optional: true }) as unknown as KbqFormField | undefined;\n\n /** Whether the stepper is visible. */\n get visible(): boolean {\n return !!((this.formField?.focused || this.formField?.hovered) && !this.formField?.disabled);\n }\n\n /** Form field number control. */\n protected get control(): KbqNumberInput {\n const control = this.formField?.control;\n if (!(control instanceof KbqInput && control.numberInput)) {\n throw getKbqStepperToggleMissingControlError();\n }\n return control.numberInput;\n }\n\n protected stepUp(event: MouseEvent) {\n event.stopPropagation();\n this.control.stepUp(this.control.step);\n }\n\n protected stepDown(event: MouseEvent) {\n event.stopPropagation();\n this.control.stepDown(this.control.step);\n }\n}\n","import { Directive } from '@angular/core';\n\n/** KbqSuffix to be placed at the end of the form field. */\n@Directive({\n standalone: true,\n selector: '[kbqSuffix]',\n host: {\n class: 'kbq-suffix___EXPERIMENTAL'\n }\n})\nexport class KbqSuffix {}\n","import {\n AfterContentInit,\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n ElementRef,\n inject,\n InjectionToken,\n Input,\n Provider,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControlDirective } from '@angular/forms';\nimport { ESCAPE, F8 } from '@koobiq/cdk/keycodes';\nimport { KBQ_FORM_FIELD_REF } from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { merge } from 'rxjs';\nimport { KbqCleaner } from './cleaner';\nimport { KbqError, KbqHint, KbqPasswordHint } from './hint';\nimport { KbqLabel } from './label';\nimport { KbqPasswordToggle } from './password-toggle';\nimport { KbqPrefix } from './prefix';\nimport { KbqStepper } from './stepper';\nimport { KbqSuffix } from './suffix';\n\n/**\n * Default options for the kbq-form-field that can be configured using the `KBQ_FORM_FIELD_DEFAULT_OPTIONS` injection token.\n */\nexport type KbqFormFieldDefaultOptions = Partial<{\n /** Disables form field borders and shadows. */\n noBorders: boolean;\n}>;\n\n/** Injection token that can be used to configure the default options for all kbq-form-field's. */\nexport const KBQ_FORM_FIELD_DEFAULT_OPTIONS = new InjectionToken<KbqFormFieldDefaultOptions>(\n 'KBQ_FORM_FIELD_DEFAULT_OPTIONS'\n);\n\n/** Utility provider for `KBQ_FORM_FIELD_DEFAULT_OPTIONS`. */\nexport const kbqFormFieldDefaultOptionsProvider = (options: KbqFormFieldDefaultOptions): Provider => ({\n provide: KBQ_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: options\n});\n\n/** @docs-private */\nexport const getKbqFormFieldMissingControlError = (): Error => {\n return Error('kbq-form-field must contain a KbqFormFieldControl');\n};\n\n/** Container for form controls that applies styling and behavior. */\n@Component({\n standalone: true,\n selector: 'kbq-form-field',\n exportAs: 'kbqFormField',\n templateUrl: './form-field.html',\n styleUrls: [\n './form-field.scss',\n './form-field-tokens.scss',\n /**\n * KbqInput is a directive and can't have styles, so we need to include its styles here.\n * The KbqInput styles are fairly minimal so it shouldn't be a big deal for people who aren't using KbqInput.\n * @TODO should be refactored (#DS-2910)\n */\n './../../components/input/input.scss',\n './../../components/input/input-tokens.scss',\n './../../components/tags/tag-input-tokens.scss',\n './../../components/timepicker/timepicker.scss',\n './../../components/datepicker/datepicker-input.scss',\n './../../components/textarea/textarea.scss',\n './../../components/textarea/textarea-tokens.scss'\n ],\n host: {\n class: 'kbq-form-field___EXPERIMENTAL',\n '[class.kbq-form-field_invalid]': 'invalid',\n '[class.kbq-form-field_focused]': 'focused',\n '[class.kbq-form-field_disabled]': 'disabled',\n '[class.kbq-form-field_no-borders]': 'noBorders',\n\n '[class.ng-untouched]': 'shouldBeForwarded(\"untouched\")',\n '[class.ng-touched]': 'shouldBeForwarded(\"touched\")',\n '[class.ng-pristine]': 'shouldBeForwarded(\"pristine\")',\n '[class.ng-dirty]': 'shouldBeForwarded(\"dirty\")',\n '[class.ng-valid]': 'shouldBeForwarded(\"valid\")',\n '[class.ng-invalid]': 'shouldBeForwarded(\"invalid\")',\n '[class.ng-pending]': 'shouldBeForwarded(\"pending\")',\n\n '(keydown)': 'onKeyDown($event)',\n '(mouseenter)': 'mouseenter($event)',\n '(mouseleave)': 'mouseleave($event)'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: KBQ_FORM_FIELD_REF, useExisting: KbqFormField }]\n})\nexport class KbqFormField implements AfterContentInit {\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly elementRef = inject(ElementRef);\n private readonly defaultOptions = inject(KBQ_FORM_FIELD_DEFAULT_OPTIONS, { optional: true });\n\n /** Disables form field borders and shadows. */\n @Input({ transform: booleanAttribute }) noBorders: boolean | undefined = this.defaultOptions?.noBorders;\n\n @ContentChild(KbqFormFieldControl) private readonly _control: KbqFormFieldControl<unknown>;\n @ViewChild('connectionContainer') private readonly connectionContainerRef: ElementRef;\n @ContentChild(KbqStepper) private readonly stepper: KbqStepper;\n @ContentChild(KbqCleaner) private readonly cleaner: KbqCleaner | null;\n @ContentChild(KbqLabel) private readonly label: KbqLabel | null;\n @ContentChild(KbqPasswordToggle) private readonly passwordToggle: KbqPasswordToggle | null;\n @ContentChildren(KbqHint) private readonly hint: QueryList<KbqHint>;\n @ContentChildren(KbqPasswordHint) private readonly passwordHint: QueryList<KbqPasswordHint>;\n @ContentChildren(KbqSuffix) private readonly suffix: QueryList<KbqSuffix>;\n @ContentChildren(KbqPrefix) private readonly prefix: QueryList<KbqPrefix>;\n @ContentChildren(KbqError) private readonly error: QueryList<KbqError>;\n\n canCleanerClearByEsc: boolean = true;\n\n /** The form field's control. */\n get control() {\n if (!this._control) {\n throw getKbqFormFieldMissingControlError();\n }\n return this._control;\n }\n\n /** Whether the form field control is focused. */\n get focused(): boolean {\n return !!this.control?.focused;\n }\n\n /** Whether the form field is hovered. */\n get hovered(): boolean {\n return !!this._hovered;\n }\n\n /** Whether the form field is invalid. */\n get invalid(): boolean {\n return !!this.control?.errorState;\n }\n\n /** Checks whether the form-field contains kbq-hint */\n get hasHint(): boolean {\n return this.hint?.length > 0;\n }\n\n /** Checks whether the form-field contains kbq-password-hint */\n get hasPasswordHint(): boolean {\n return this.passwordHint?.length > 0;\n }\n\n /** Checks whether the form-field contains kbq-password-toggle */\n get hasPasswordToggle(): boolean {\n return !!this.passwordToggle;\n }\n\n /** Checks whether the form-field contains kbq-label */\n get hasLabel(): boolean {\n return !!this.label;\n }\n\n /** Checks whether the form-field contains kbqSuffix */\n get hasSuffix(): boolean {\n return this.suffix?.length > 0;\n }\n\n /** Checks whether the form-field contains kbqPrefix */\n get hasPrefix(): boolean {\n return this.prefix?.length > 0;\n }\n\n /** Checks whether the form-field contains kbq-cleaner */\n get hasCleaner(): boolean {\n return !!this.cleaner;\n }\n\n /** Checks whether the form-field contains kbq-stepper */\n get hasStepper(): boolean {\n return !!this.stepper;\n }\n\n /** Checks whether the form-field contains kbq-error */\n get hasError(): boolean {\n return this.error.length > 0;\n }\n\n /** Whether the form field is disabled. */\n get disabled(): boolean {\n return !!this.control?.disabled;\n }\n\n private _hovered: boolean = false;\n\n constructor() {\n afterNextRender(() => {\n // Should be called after the view has been initialized\n this.changeDetectorRef.detectChanges();\n });\n }\n\n ngAfterContentInit(): void {\n this.initializeControl();\n this.initializePrefixAndSuffix();\n this.initializeHint();\n }\n\n /** Focuses the control. */\n focus(options?: FocusOptions): void {\n this.control.focus(options);\n }\n\n /** Handles a click on the control's container. */\n protected onContainerClick(event: MouseEvent): void {\n if (this.control.onContainerClick) {\n this.control.onContainerClick(event);\n }\n }\n\n /** Handles keydown events. */\n protected onKeyDown(event: KeyboardEvent): void {\n // @TODO should move into KbqPasswordToggle (#DS-2910)\n if (this.control.controlType === 'input-password' && event.altKey && event.keyCode === F8) {\n (this.control as unknown as { toggleType(): void }).toggleType();\n }\n // @TODO should move into KbqCleaner (#DS-2910)\n if (this.canCleanerClearByEsc && event.keyCode === ESCAPE && this.focused && this.hasCleaner) {\n this.control?.ngControl?.reset();\n event.preventDefault();\n }\n }\n\n /** Handles mouseenter events. */\n protected mouseenter(_event: MouseEvent): void {\n this._hovered = true;\n }\n\n /** Handles mouseleave events. */\n protected mouseleave(_event: MouseEvent): void {\n this._hovered = false;\n }\n\n /**\n * Gets an ElementRef for the element that a overlay attached to the form-field should be positioned relative to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this.connectionContainerRef || this.elementRef;\n }\n\n /**\n * Determines whether a class from the AbstractControlDirective should be forwarded to the host element.\n */\n protected shouldBeForwarded(property: keyof AbstractControlDirective): boolean {\n return this.control.ngControl?.[property];\n }\n\n /** Initializes the kbqPrefix and kbqSuffix containers. */\n private initializePrefixAndSuffix(): void {\n // Mark the form field as dirty whenever the prefix or suffix children change. This is necessary because we\n // conditionally display the prefix/suffix containers based on whether there is projected content.\n merge(this.prefix.changes, this.suffix.changes)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.changeDetectorRef.markForCheck();\n });\n }\n\n /** Initializes the KbqHint, KbqError and KbqPasswordHint containers. */\n private initializeHint(): void {\n merge(this.hint.changes, this.error.changes, this.passwordHint.changes)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.changeDetectorRef.markForCheck();\n });\n }\n\n /** Initializes the form field control. */\n private initializeControl(): void {\n if (this.control.controlType) {\n this.elementRef.nativeElement.classList.add(`kbq-form-field-type-${this.control.controlType}`);\n }\n\n this.control.stateChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.changeDetectorRef.markForCheck();\n });\n\n this.control.ngControl?.valueChanges?.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.changeDetectorRef.markForCheck();\n });\n }\n}\n","@if (hasLabel) {\n <label class=\"kbq-form-field__label\" [attr.for]=\"control.id\">\n <ng-content select=\"kbq-label\" />\n </label>\n}\n\n<div #connectionContainer class=\"kbq-form-field__container\" (click)=\"onContainerClick($event)\">\n @if (hasPrefix) {\n <div class=\"kbq-form-field__prefix\">\n <ng-content select=\"[kbqPrefix]\" />\n </div>\n }\n\n <div class=\"kbq-form-field__control\">\n <ng-content />\n </div>\n\n @if (hasSuffix || hasCleaner || hasPasswordToggle || hasStepper) {\n <div class=\"kbq-form-field__suffix\">\n <ng-content select=\"kbq-cleaner\" />\n\n <ng-content select=\"kbq-password-toggle\" />\n\n <ng-content select=\"kbq-stepper\" />\n\n <ng-content select=\"[kbqSuffix]\" />\n </div>\n }\n</div>\n\n@if (hasHint || hasPasswordHint || hasError) {\n <div class=\"kbq-form-field__hint\">\n @if (invalid) {\n <ng-content select=\"kbq-error\" />\n }\n\n <ng-content select=\"kbq-hint, kbq-password-hint\" />\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { KbqCleaner } from './cleaner';\nimport { KbqFormField } from './form-field';\nimport { KbqError, KbqHint, KbqPasswordHint } from './hint';\nimport { KbqLabel } from './label';\nimport { KbqPasswordToggle } from './password-toggle';\nimport { KbqPrefix } from './prefix';\nimport { KbqStepper } from './stepper';\nimport { KbqSuffix } from './suffix';\n\nconst COMPONENTS = [\n KbqFormField,\n KbqHint,\n KbqError,\n KbqPrefix,\n KbqSuffix,\n KbqCleaner,\n KbqStepper,\n KbqPasswordToggle,\n KbqLabel,\n KbqPasswordHint\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqFormFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextUniqueId"],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-experimental-form-field.mjs","sources":["../../../packages/components-experimental/form-field/cleaner.ts","../../../packages/components-experimental/form-field/hint.ts","../../../packages/components-experimental/form-field/hint.html","../../../packages/components-experimental/form-field/label.ts","../../../packages/components-experimental/form-field/password-toggle.ts","../../../packages/components-experimental/form-field/prefix.ts","../../../packages/components-experimental/form-field/stepper.ts","../../../packages/components-experimental/form-field/suffix.ts","../../../packages/components-experimental/form-field/form-field.ts","../../../packages/components-experimental/form-field/form-field.html","../../../packages/components-experimental/form-field/form-field.module.ts","../../../packages/components-experimental/form-field/koobiq-components-experimental-form-field.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { KBQ_FORM_FIELD_REF } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqFormField } from './form-field';\n\n/**\n * KbqCleaner to be placed in end of the form field.\n * Resets form control by click.\n */\n@Component({\n standalone: true,\n imports: [KbqIconModule],\n selector: 'kbq-cleaner',\n exportAs: 'kbqCleaner',\n template: `\n <i [autoColor]=\"true\" color=\"contrast-fade\" kbq-icon-button=\"kbq-xmark-circle_16\"></i>\n `,\n styleUrl: './cleaner.scss',\n host: {\n class: 'kbq-cleaner___EXPERIMENTAL',\n '(click)': 'clean($event)',\n '[style.visibility]': 'visible ? \"visible\" : \"hidden\"',\n '[attr.aria-hidden]': '!visible'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqCleaner {\n // @TODO fix types (#DS-2915)\n private readonly formField = inject(KBQ_FORM_FIELD_REF, { optional: true }) as unknown as KbqFormField | undefined;\n\n /** Whether to display the cleaner. */\n get visible(): boolean {\n return !this.formField?.disabled && !!this.formField?.control?.ngControl?.value;\n }\n\n /** Clean the form field control. */\n protected clean(event: MouseEvent): void {\n event.stopPropagation();\n\n this.formField?.control?.ngControl?.reset();\n this.formField?.control?.focus();\n }\n}\n","import { NgClass } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { KBQ_FORM_FIELD_REF, KbqComponentColors } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqFormField } from './form-field';\n\nlet nextUniqueId = 0;\n\n/** Hint text to be shown below the form field control. */\n@Component({\n standalone: true,\n selector: 'kbq-hint',\n exportAs: 'kbqHint',\n templateUrl: './hint.html',\n styleUrls: [\n './hint.scss',\n './hint-tokens.scss'\n ],\n host: {\n class: 'kbq-hint___EXPERIMENTAL',\n '[attr.id]': 'id',\n '[class.kbq-error]': 'color === colors.Error',\n '[class.kbq-contrast-fade]': 'color === colors.ContrastFade',\n '[class.kbq-success]': 'color === colors.Success',\n '[class.kbq-warning]': 'color === colors.Warning',\n '[class.kbq-hint_fill-text-off]': 'fillTextOff',\n '[class.kbq-hint_compact]': 'compact'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqHint {\n /** Unique ID for the hint. */\n @Input() id: string = `kbq-hint-${nextUniqueId++}`;\n\n /** Component colors */\n protected colors = KbqComponentColors;\n\n /** Hint color */\n @Input() set color(color: KbqComponentColors) {\n this._color = color;\n }\n\n get color(): KbqComponentColors | undefined {\n return this._color;\n }\n\n private _color: KbqComponentColors | undefined;\n\n /** Disables `color` for the hint text. */\n @Input({ transform: booleanAttribute }) set fillTextOff(fillTextOff: boolean) {\n this._fillTextOff = fillTextOff;\n }\n\n get fillTextOff(): boolean {\n return this._fillTextOff;\n }\n\n private _fillTextOff: boolean = false;\n\n /** Makes the hint size smaller. */\n @Input({ transform: booleanAttribute }) compact: boolean = false;\n}\n\n/** Error text to be shown below the form field control. */\n@Component({\n standalone: true,\n selector: 'kbq-error',\n exportAs: 'kbqError',\n templateUrl: './hint.html',\n styleUrls: [\n './hint.scss',\n './hint-tokens.scss'\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqError extends KbqHint {\n /** @docs-private */\n @Input() set color(_color: null) {}\n\n /** Overrides the hint `color` property. */\n get color(): KbqComponentColors.Error {\n return KbqComponentColors.Error;\n }\n\n /** @docs-private */\n @Input() set fillTextOff(_fillTextOff: null) {}\n\n /** Overrides the hint `fillTextOff` property. */\n get fillTextOff(): boolean {\n return false;\n }\n}\n\n/** Password hint to be shown below the password form field control. */\n@Component({\n standalone: true,\n imports: [NgClass, KbqIconModule],\n selector: 'kbq-password-hint',\n template: `\n <i [ngClass]=\"icon\" kbq-icon=\"\"></i>\n\n <span class=\"kbq-hint__text\">\n <ng-content />\n </span>\n `,\n host: {\n class: 'kbq-password-hint___EXPERIMENTAL'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqPasswordHint extends KbqHint {\n /** Whether the form field control has an error. */\n @Input({ transform: booleanAttribute }) hasError: boolean = false;\n\n /** @docs-private */\n @Input() set fillTextOff(_fillTextOff: null) {}\n\n /** Overrides the hint `fillTextOff` property. */\n get fillTextOff(): boolean {\n return true;\n }\n\n // @TODO fix types (#DS-2915)\n private readonly formField = inject(KBQ_FORM_FIELD_REF, { optional: true }) as unknown as KbqFormField | undefined;\n\n /** @docs-private */\n @Input() set color(_color: null) {}\n\n /** Overrides the hint `color` property. */\n get color(): KbqComponentColors {\n if (this.formField?.invalid && this.hasError) {\n return KbqComponentColors.Error;\n }\n\n if ((!this.formField?.invalid && !this.hasError) || !this.hasError) {\n return KbqComponentColors.Success;\n }\n\n return KbqComponentColors.ContrastFade;\n }\n\n /** The form field hint icon. */\n protected get icon(): string {\n return this.hasError ? 'kbq-xmark-s_16' : 'kbq-check-s_16';\n }\n}\n","<ng-content select=\"[kbq-icon]\" />\n\n<span class=\"kbq-hint__text\">\n <ng-content />\n</span>\n","import { Directive, Input } from '@angular/core';\n\nlet nextUniqueId = 0;\n\n/** Label for the form field. */\n@Directive({\n selector: 'kbq-label',\n standalone: true,\n host: {\n class: 'kbq-label___EXPERIMENTAL',\n '[attr.id]': 'id'\n }\n})\nexport class KbqLabel {\n /** Unique id for the label. */\n @Input() id: string = `kbq-label-${nextUniqueId++}`;\n}\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { KBQ_FORM_FIELD_REF } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqInputPassword } from '@koobiq/components/input';\nimport { KbqFormField } from './form-field';\n\n/** @docs-private */\nconst getKbqPasswordToggleMissingControlError = (): Error => {\n return Error('kbq-password-toggle should use with kbqInputPassword');\n};\n\n/** Component which changes password visibility. */\n@Component({\n standalone: true,\n imports: [NgClass, KbqIconModule],\n selector: `kbq-password-toggle`,\n exportAs: 'kbqPasswordToggle',\n template: `\n <i [ngClass]=\"icon\" [autoColor]=\"true\" color=\"contrast-fade\" kbq-icon-button=\"\"></i>\n `,\n styleUrl: './password-toggle.scss',\n host: {\n class: 'kbq-password-toggle___EXPERIMENTAL',\n\n '[style.visibility]': 'visible ? \"visible\" : \"hidden\"',\n '[attr.aria-hidden]': '!visible',\n\n '(click)': 'toggleType($event)',\n '(keydown.ENTER)': 'toggleType($event)',\n '(keydown.SPACE)': 'toggleType($event)'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class KbqPasswordToggle {\n // @TODO fix types (#DS-2915)\n private readonly formField = inject(KBQ_FORM_FIELD_REF, { optional: true }) as unknown as KbqFormField | undefined;\n\n /** Form field password control. */\n protected get control(): KbqInputPassword {\n const control = this.formField?.control;\n if (!(control instanceof KbqInputPassword)) {\n throw getKbqPasswordToggleMissingControlError();\n }\n return control;\n }\n\n /** The icon selector. */\n protected get icon(): string {\n return this.control.elementType === 'password' ? 'kbq-eye_16' : 'kbq-eye-slash_16';\n }\n\n /** Whether to display the password toggle. */\n get visible(): boolean {\n return !this.formField?.disabled && !!this.control?.ngControl?.value;\n }\n\n /** Toggles the password visibility. */\n protected toggleType(event: KeyboardEvent | MouseEvent): void {\n event.stopPropagation();\n\n this.control.toggleType();\n }\n}\n","import { Directive } from '@angular/core';\n\n/** KbqPrefix to be placed in front of the form field. */\n@Directive({\n standalone: true,\n selector: '[kbqPrefix]',\n host: {\n class: 'kbq-prefix___EXPERIMENTAL'\n }\n})\nexport class KbqPrefix {}\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { KBQ_FORM_FIELD_REF } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqInput, KbqNumberInput } from '@koobiq/components/input';\nimport { KbqFormField } from './form-field';\n\n/** @docs-private */\nconst getKbqStepperToggleMissingControlError = (): Error => {\n return Error('kbq-stepper should use with kbqNumberInput');\n};\n\n/** Component which allow to increment or decrement number value. */\n@Component({\n standalone: true,\n selector: 'kbq-stepper',\n exportAs: 'kbqStepper',\n imports: [KbqIconModule],\n template: `\n <i\n class=\"kbq-stepper__step-up\"\n [small]=\"true\"\n [tabindex]=\"-1\"\n [autoColor]=\"true\"\n (click)=\"stepUp($event)\"\n color=\"contrast-fade\"\n kbq-icon-button=\"kbq-chevron-down_16\"\n ></i>\n <i\n class=\"kbq-stepper__step-down\"\n [small]=\"true\"\n [tabindex]=\"-1\"\n [autoColor]=\"true\"\n (mousedown)=\"stepDown($event)\"\n color=\"contrast-fade\"\n kbq-icon-button=\"kbq-chevron-down_16\"\n ></i>\n `,\n styleUrl: './stepper.scss',\n host: {\n class: 'kbq-stepper___EXPERIMENTAL',\n '[style.visibility]': 'visible ? \"visible\" : \"hidden\"',\n '[attr.aria-hidden]': '!visible'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class KbqStepper {\n // @TODO fix types (#DS-2915)\n private readonly formField = inject(KBQ_FORM_FIELD_REF, { optional: true }) as unknown as KbqFormField | undefined;\n\n /** Whether the stepper is visible. */\n get visible(): boolean {\n return !!((this.formField?.focused || this.formField?.hovered) && !this.formField?.disabled);\n }\n\n /** Form field number control. */\n protected get control(): KbqNumberInput {\n const control = this.formField?.control;\n if (!(control instanceof KbqInput && control.numberInput)) {\n throw getKbqStepperToggleMissingControlError();\n }\n return control.numberInput;\n }\n\n protected stepUp(event: MouseEvent) {\n event.stopPropagation();\n this.control.stepUp(this.control.step);\n }\n\n protected stepDown(event: MouseEvent) {\n event.stopPropagation();\n this.control.stepDown(this.control.step);\n }\n}\n","import { Directive } from '@angular/core';\n\n/** KbqSuffix to be placed at the end of the form field. */\n@Directive({\n standalone: true,\n selector: '[kbqSuffix]',\n host: {\n class: 'kbq-suffix___EXPERIMENTAL'\n }\n})\nexport class KbqSuffix {}\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport {\n AfterContentInit,\n afterNextRender,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n ElementRef,\n inject,\n InjectionToken,\n Input,\n OnDestroy,\n Provider,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControlDirective } from '@angular/forms';\nimport { ESCAPE, F8 } from '@koobiq/cdk/keycodes';\nimport { KBQ_FORM_FIELD_REF } from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { merge } from 'rxjs';\nimport { KbqCleaner } from './cleaner';\nimport { KbqError, KbqHint, KbqPasswordHint } from './hint';\nimport { KbqLabel } from './label';\nimport { KbqPasswordToggle } from './password-toggle';\nimport { KbqPrefix } from './prefix';\nimport { KbqStepper } from './stepper';\nimport { KbqSuffix } from './suffix';\n\n/**\n * Default options for the kbq-form-field that can be configured using the `KBQ_FORM_FIELD_DEFAULT_OPTIONS` injection token.\n */\nexport type KbqFormFieldDefaultOptions = Partial<{\n /** Disables form field borders and shadows. */\n noBorders: boolean;\n}>;\n\n/** Injection token that can be used to configure the default options for all kbq-form-field's. */\nexport const KBQ_FORM_FIELD_DEFAULT_OPTIONS = new InjectionToken<KbqFormFieldDefaultOptions>(\n 'KBQ_FORM_FIELD_DEFAULT_OPTIONS'\n);\n\n/** Utility provider for `KBQ_FORM_FIELD_DEFAULT_OPTIONS`. */\nexport const kbqFormFieldDefaultOptionsProvider = (options: KbqFormFieldDefaultOptions): Provider => ({\n provide: KBQ_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: options\n});\n\n/** @docs-private */\nexport const getKbqFormFieldMissingControlError = (): Error => {\n return Error('kbq-form-field must contain a KbqFormFieldControl');\n};\n\n/** Container for form controls that applies styling and behavior. */\n@Component({\n standalone: true,\n selector: 'kbq-form-field',\n exportAs: 'kbqFormField',\n templateUrl: './form-field.html',\n styleUrls: [\n './form-field.scss',\n './form-field-tokens.scss',\n /**\n * KbqInput is a directive and can't have styles, so we need to include its styles here.\n * The KbqInput styles are fairly minimal so it shouldn't be a big deal for people who aren't using KbqInput.\n * @TODO should be refactored (#DS-2910)\n */\n './../../components/input/input.scss',\n './../../components/input/input-tokens.scss',\n './../../components/tags/tag-input-tokens.scss',\n './../../components/timepicker/timepicker.scss',\n './../../components/datepicker/datepicker-input.scss',\n './../../components/textarea/textarea.scss',\n './../../components/textarea/textarea-tokens.scss'\n ],\n host: {\n class: 'kbq-form-field___EXPERIMENTAL',\n '[class.kbq-form-field_invalid]': 'invalid',\n '[class.kbq-form-field_disabled]': 'disabled',\n '[class.kbq-form-field_no-borders]': 'noBorders',\n\n '[class.ng-untouched]': 'shouldBeForwarded(\"untouched\")',\n '[class.ng-touched]': 'shouldBeForwarded(\"touched\")',\n '[class.ng-pristine]': 'shouldBeForwarded(\"pristine\")',\n '[class.ng-dirty]': 'shouldBeForwarded(\"dirty\")',\n '[class.ng-valid]': 'shouldBeForwarded(\"valid\")',\n '[class.ng-invalid]': 'shouldBeForwarded(\"invalid\")',\n '[class.ng-pending]': 'shouldBeForwarded(\"pending\")',\n\n '(keydown)': 'onKeyDown($event)',\n '(mouseenter)': 'mouseenter($event)',\n '(mouseleave)': 'mouseleave($event)'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: KBQ_FORM_FIELD_REF, useExisting: KbqFormField }]\n})\nexport class KbqFormField implements AfterContentInit, AfterViewInit, OnDestroy {\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly elementRef = inject(ElementRef);\n private readonly defaultOptions = inject(KBQ_FORM_FIELD_DEFAULT_OPTIONS, { optional: true });\n private readonly focusMonitor = inject(FocusMonitor);\n\n /** Disables form field borders and shadows. */\n @Input({ transform: booleanAttribute }) noBorders: boolean | undefined = this.defaultOptions?.noBorders;\n\n @ContentChild(KbqFormFieldControl) private readonly _control: KbqFormFieldControl<unknown>;\n @ViewChild('connectionContainer') private readonly connectionContainerRef: ElementRef;\n @ContentChild(KbqStepper) private readonly stepper: KbqStepper;\n @ContentChild(KbqCleaner) private readonly cleaner: KbqCleaner | null;\n @ContentChild(KbqLabel) private readonly label: KbqLabel | null;\n @ContentChild(KbqPasswordToggle) private readonly passwordToggle: KbqPasswordToggle | null;\n @ContentChildren(KbqHint) private readonly hint: QueryList<KbqHint>;\n @ContentChildren(KbqPasswordHint) private readonly passwordHint: QueryList<KbqPasswordHint>;\n @ContentChildren(KbqSuffix) private readonly suffix: QueryList<KbqSuffix>;\n @ContentChildren(KbqPrefix) private readonly prefix: QueryList<KbqPrefix>;\n @ContentChildren(KbqError) private readonly error: QueryList<KbqError>;\n\n /**\n * @docs-private\n */\n canCleanerClearByEsc: boolean = true;\n\n /** The form field's control. */\n get control() {\n if (!this._control) {\n throw getKbqFormFieldMissingControlError();\n }\n return this._control;\n }\n\n /**\n * Whether the form field control is focused.\n *\n * @docs-private\n */\n get focused(): boolean {\n return !!this.control?.focused;\n }\n\n /**\n * Whether the form field is hovered.\n *\n * @docs-private\n */\n get hovered(): boolean {\n return !!this._hovered;\n }\n\n private _hovered: boolean = false;\n\n /** Whether the form field is invalid. */\n get invalid(): boolean {\n return !!this.control?.errorState;\n }\n\n /**\n * Whether the form-field contains kbq-hint.\n *\n * @docs-private\n */\n get hasHint(): boolean {\n return this.hint?.length > 0;\n }\n\n /**\n * Whether the form-field contains kbq-password-hint.\n *\n * @docs-private\n */\n get hasPasswordHint(): boolean {\n return this.passwordHint?.length > 0;\n }\n\n /**\n * Whether the form-field contains kbq-password-toggle.\n *\n * @docs-private\n */\n get hasPasswordToggle(): boolean {\n return !!this.passwordToggle;\n }\n\n /**\n * Whether the form-field contains kbq-label.\n *\n * @docs-private\n */\n get hasLabel(): boolean {\n return !!this.label;\n }\n\n /**\n * Whether the form-field contains kbqSuffix.\n *\n * @docs-private\n */\n get hasSuffix(): boolean {\n return this.suffix?.length > 0;\n }\n\n /**\n * Whether the form-field contains kbqPrefix.\n *\n * @docs-private\n */\n get hasPrefix(): boolean {\n return this.prefix?.length > 0;\n }\n\n /**\n * Whether the form-field contains kbq-cleaner.\n *\n * @docs-private\n */\n get hasCleaner(): boolean {\n return !!this.cleaner;\n }\n\n /**\n * Whether the form-field contains kbq-stepper.\n *\n * @docs-private\n */\n get hasStepper(): boolean {\n return !!this.stepper;\n }\n\n /**\n * Whether the form-field contains kbq-error.\n *\n * @docs-private\n */\n get hasError(): boolean {\n return this.error.length > 0;\n }\n\n /** Whether the form field is disabled. */\n get disabled(): boolean {\n return !!this.control?.disabled;\n }\n\n /**\n * Current focus origin state.\n *\n * @docs-private\n */\n get focusOrigin(): FocusOrigin {\n return this._focusOrigin;\n }\n\n private _focusOrigin: FocusOrigin = null;\n\n constructor() {\n afterNextRender(() => {\n // Should be called after the view has been initialized\n this.changeDetectorRef.detectChanges();\n });\n }\n\n ngAfterContentInit(): void {\n this.initializeControl();\n this.initializePrefixAndSuffix();\n this.initializeHint();\n }\n\n ngAfterViewInit(): void {\n this.runFocusMonitor();\n }\n\n ngOnDestroy(): void {\n this.stopFocusMonitor();\n }\n\n /** Focuses the control. */\n focus(options?: FocusOptions): void {\n this.control.focus(options);\n }\n\n /**\n * @deprecated Use `focus` instead.\n */\n focusViaKeyboard(options?: FocusOptions): void {\n this.control.focus(options);\n }\n\n /**\n * Runs the focus monitor for the form field.\n *\n * @docs-private\n */\n runFocusMonitor(): void {\n this.focusMonitor.monitor(this.elementRef, true).subscribe((origin) => {\n this._focusOrigin = origin;\n });\n }\n\n /**\n * Stops the focus monitor for the form field.\n *\n * @docs-private\n */\n stopFocusMonitor(): void {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n /** Handles a click on the control's container. */\n protected onContainerClick(event: MouseEvent): void {\n if (this.control.onContainerClick) {\n this.control.onContainerClick(event);\n }\n }\n\n /**\n * Handles keydown events.\n *\n * @docs-private\n */\n protected onKeyDown(event: KeyboardEvent): void {\n // @TODO should move into KbqPasswordToggle (#DS-2910)\n if (this.control.controlType === 'input-password' && event.altKey && event.keyCode === F8) {\n (this.control as unknown as { toggleType(): void }).toggleType();\n }\n // @TODO should move into KbqCleaner (#DS-2910)\n if (this.canCleanerClearByEsc && event.keyCode === ESCAPE && this.focused && this.hasCleaner) {\n this.control?.ngControl?.reset();\n event.preventDefault();\n }\n }\n\n /**\n * Handles mouseenter events.\n *\n * @docs-private\n */\n protected mouseenter(_event: MouseEvent): void {\n this._hovered = true;\n }\n\n /**\n * Handles mouseleave events.\n *\n * @docs-private\n */\n protected mouseleave(_event: MouseEvent): void {\n this._hovered = false;\n }\n\n /**\n * Gets an ElementRef for the element that a overlay attached to the form-field should be positioned relative to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this.connectionContainerRef || this.elementRef;\n }\n\n /**\n * Determines whether a class from the AbstractControlDirective should be forwarded to the host element.\n *\n * @docs-private\n */\n protected shouldBeForwarded(property: keyof AbstractControlDirective): boolean {\n return this.control.ngControl?.[property];\n }\n\n /** Initializes the kbqPrefix and kbqSuffix containers. */\n private initializePrefixAndSuffix(): void {\n // Mark the form field as dirty whenever the prefix or suffix children change. This is necessary because we\n // conditionally display the prefix/suffix containers based on whether there is projected content.\n merge(this.prefix.changes, this.suffix.changes)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.changeDetectorRef.markForCheck();\n });\n }\n\n /** Initializes the KbqHint, KbqError and KbqPasswordHint containers. */\n private initializeHint(): void {\n merge(this.hint.changes, this.error.changes, this.passwordHint.changes)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.changeDetectorRef.markForCheck();\n });\n }\n\n /** Initializes the form field control. */\n private initializeControl(): void {\n if (this.control.controlType) {\n this.elementRef.nativeElement.classList.add(`kbq-form-field-type-${this.control.controlType}`);\n }\n\n this.control.stateChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.changeDetectorRef.markForCheck();\n });\n\n this.control.ngControl?.valueChanges?.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.changeDetectorRef.markForCheck();\n });\n }\n}\n","@if (hasLabel) {\n <label class=\"kbq-form-field__label\" [attr.for]=\"control.id\">\n <ng-content select=\"kbq-label\" />\n </label>\n}\n\n<div #connectionContainer class=\"kbq-form-field__container\" (click)=\"onContainerClick($event)\">\n @if (hasPrefix) {\n <div class=\"kbq-form-field__prefix\">\n <ng-content select=\"[kbqPrefix]\" />\n </div>\n }\n\n <div class=\"kbq-form-field__control\">\n <ng-content />\n </div>\n\n @if (hasSuffix || hasCleaner || hasPasswordToggle || hasStepper) {\n <div class=\"kbq-form-field__suffix\">\n <ng-content select=\"kbq-cleaner\" />\n\n <ng-content select=\"kbq-password-toggle\" />\n\n <ng-content select=\"kbq-stepper\" />\n\n <ng-content select=\"[kbqSuffix]\" />\n </div>\n }\n</div>\n\n@if (hasHint || hasPasswordHint || hasError) {\n <div class=\"kbq-form-field__hint\">\n @if (invalid) {\n <ng-content select=\"kbq-error\" />\n }\n\n <ng-content select=\"kbq-hint, kbq-password-hint\" />\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { KbqCleaner } from './cleaner';\nimport { KbqFormField } from './form-field';\nimport { KbqError, KbqHint, KbqPasswordHint } from './hint';\nimport { KbqLabel } from './label';\nimport { KbqPasswordToggle } from './password-toggle';\nimport { KbqPrefix } from './prefix';\nimport { KbqStepper } from './stepper';\nimport { KbqSuffix } from './suffix';\n\nconst COMPONENTS = [\n KbqFormField,\n KbqHint,\n KbqError,\n KbqPrefix,\n KbqSuffix,\n KbqCleaner,\n KbqStepper,\n KbqPasswordToggle,\n KbqLabel,\n KbqPasswordHint\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqFormFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextUniqueId"],"mappings":"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"}
@@ -39,20 +39,25 @@
39
39
  }
40
40
  }
41
41
 
42
- &.kbq-form-field_focused {
42
+ &.cdk-focused:not(.kbq-form-field-type-select),
43
+ &.cdk-keyboard-focused.kbq-form-field-type-select {
43
44
  @include kbq-form-field-state(states-focused);
44
45
 
45
- & .kbq-form-field__container {
46
+ .kbq-form-field__container {
46
47
  box-shadow: 0 0 0.1px 1px var(--kbq-form-field-states-focused-focus-outline);
47
48
  }
49
+
50
+ &.kbq-form-field_invalid {
51
+ @include kbq-form-field-state(states-error);
52
+
53
+ .kbq-form-field__container {
54
+ box-shadow: 0 0 0.1px 1px var(--kbq-form-field-states-error-focused-focus-outline);
55
+ }
56
+ }
48
57
  }
49
58
 
50
59
  &.kbq-form-field_invalid {
51
60
  @include kbq-form-field-state(states-error);
52
-
53
- &.kbq-form-field_focused .kbq-form-field__container {
54
- box-shadow: 0 0 0.1px 1px var(--kbq-form-field-states-error-focused-focus-outline);
55
- }
56
61
  }
57
62
 
58
63
  &.kbq-form-field_disabled {
@@ -1,4 +1,5 @@
1
- import { AfterContentInit, ElementRef, InjectionToken, Provider } from '@angular/core';
1
+ import { FocusOrigin } from '@angular/cdk/a11y';
2
+ import { AfterContentInit, AfterViewInit, ElementRef, InjectionToken, OnDestroy, Provider } from '@angular/core';
2
3
  import { AbstractControlDirective } from '@angular/forms';
3
4
  import { KbqFormFieldControl } from '@koobiq/components/form-field';
4
5
  import * as i0 from "@angular/core";
@@ -19,11 +20,12 @@ export declare const kbqFormFieldDefaultOptionsProvider: (options: KbqFormFieldD
19
20
  /** @docs-private */
20
21
  export declare const getKbqFormFieldMissingControlError: () => Error;
21
22
  /** Container for form controls that applies styling and behavior. */
22
- export declare class KbqFormField implements AfterContentInit {
23
+ export declare class KbqFormField implements AfterContentInit, AfterViewInit, OnDestroy {
23
24
  private readonly changeDetectorRef;
24
25
  private readonly destroyRef;
25
26
  private readonly elementRef;
26
27
  private readonly defaultOptions;
28
+ private readonly focusMonitor;
27
29
  /** Disables form field borders and shadows. */
28
30
  noBorders: boolean | undefined;
29
31
  private readonly _control;
@@ -37,47 +39,131 @@ export declare class KbqFormField implements AfterContentInit {
37
39
  private readonly suffix;
38
40
  private readonly prefix;
39
41
  private readonly error;
42
+ /**
43
+ * @docs-private
44
+ */
40
45
  canCleanerClearByEsc: boolean;
41
46
  /** The form field's control. */
42
47
  get control(): KbqFormFieldControl<unknown>;
43
- /** Whether the form field control is focused. */
48
+ /**
49
+ * Whether the form field control is focused.
50
+ *
51
+ * @docs-private
52
+ */
44
53
  get focused(): boolean;
45
- /** Whether the form field is hovered. */
54
+ /**
55
+ * Whether the form field is hovered.
56
+ *
57
+ * @docs-private
58
+ */
46
59
  get hovered(): boolean;
60
+ private _hovered;
47
61
  /** Whether the form field is invalid. */
48
62
  get invalid(): boolean;
49
- /** Checks whether the form-field contains kbq-hint */
63
+ /**
64
+ * Whether the form-field contains kbq-hint.
65
+ *
66
+ * @docs-private
67
+ */
50
68
  get hasHint(): boolean;
51
- /** Checks whether the form-field contains kbq-password-hint */
69
+ /**
70
+ * Whether the form-field contains kbq-password-hint.
71
+ *
72
+ * @docs-private
73
+ */
52
74
  get hasPasswordHint(): boolean;
53
- /** Checks whether the form-field contains kbq-password-toggle */
75
+ /**
76
+ * Whether the form-field contains kbq-password-toggle.
77
+ *
78
+ * @docs-private
79
+ */
54
80
  get hasPasswordToggle(): boolean;
55
- /** Checks whether the form-field contains kbq-label */
81
+ /**
82
+ * Whether the form-field contains kbq-label.
83
+ *
84
+ * @docs-private
85
+ */
56
86
  get hasLabel(): boolean;
57
- /** Checks whether the form-field contains kbqSuffix */
87
+ /**
88
+ * Whether the form-field contains kbqSuffix.
89
+ *
90
+ * @docs-private
91
+ */
58
92
  get hasSuffix(): boolean;
59
- /** Checks whether the form-field contains kbqPrefix */
93
+ /**
94
+ * Whether the form-field contains kbqPrefix.
95
+ *
96
+ * @docs-private
97
+ */
60
98
  get hasPrefix(): boolean;
61
- /** Checks whether the form-field contains kbq-cleaner */
99
+ /**
100
+ * Whether the form-field contains kbq-cleaner.
101
+ *
102
+ * @docs-private
103
+ */
62
104
  get hasCleaner(): boolean;
63
- /** Checks whether the form-field contains kbq-stepper */
105
+ /**
106
+ * Whether the form-field contains kbq-stepper.
107
+ *
108
+ * @docs-private
109
+ */
64
110
  get hasStepper(): boolean;
65
- /** Checks whether the form-field contains kbq-error */
111
+ /**
112
+ * Whether the form-field contains kbq-error.
113
+ *
114
+ * @docs-private
115
+ */
66
116
  get hasError(): boolean;
67
117
  /** Whether the form field is disabled. */
68
118
  get disabled(): boolean;
69
- private _hovered;
119
+ /**
120
+ * Current focus origin state.
121
+ *
122
+ * @docs-private
123
+ */
124
+ get focusOrigin(): FocusOrigin;
125
+ private _focusOrigin;
70
126
  constructor();
71
127
  ngAfterContentInit(): void;
128
+ ngAfterViewInit(): void;
129
+ ngOnDestroy(): void;
72
130
  /** Focuses the control. */
73
131
  focus(options?: FocusOptions): void;
132
+ /**
133
+ * @deprecated Use `focus` instead.
134
+ */
135
+ focusViaKeyboard(options?: FocusOptions): void;
136
+ /**
137
+ * Runs the focus monitor for the form field.
138
+ *
139
+ * @docs-private
140
+ */
141
+ runFocusMonitor(): void;
142
+ /**
143
+ * Stops the focus monitor for the form field.
144
+ *
145
+ * @docs-private
146
+ */
147
+ stopFocusMonitor(): void;
74
148
  /** Handles a click on the control's container. */
75
149
  protected onContainerClick(event: MouseEvent): void;
76
- /** Handles keydown events. */
150
+ /**
151
+ * Handles keydown events.
152
+ *
153
+ * @docs-private
154
+ */
77
155
  protected onKeyDown(event: KeyboardEvent): void;
78
- /** Handles mouseenter events. */
156
+ /**
157
+ * Handles mouseenter events.
158
+ *
159
+ * @docs-private
160
+ */
79
161
  protected mouseenter(_event: MouseEvent): void;
80
- /** Handles mouseleave events. */
162
+ /**
163
+ * Handles mouseleave events.
164
+ *
165
+ * @docs-private
166
+ */
81
167
  protected mouseleave(_event: MouseEvent): void;
82
168
  /**
83
169
  * Gets an ElementRef for the element that a overlay attached to the form-field should be positioned relative to.
@@ -85,6 +171,8 @@ export declare class KbqFormField implements AfterContentInit {
85
171
  getConnectedOverlayOrigin(): ElementRef;
86
172
  /**
87
173
  * Determines whether a class from the AbstractControlDirective should be forwarded to the host element.
174
+ *
175
+ * @docs-private
88
176
  */
89
177
  protected shouldBeForwarded(property: keyof AbstractControlDirective): boolean;
90
178
  /** Initializes the kbqPrefix and kbqSuffix containers. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koobiq/components-experimental",
3
- "version": "18.18.0",
3
+ "version": "18.19.0",
4
4
  "description": "koobiq",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,8 +25,8 @@
25
25
  "@angular/cdk": "^18.0.0",
26
26
  "@angular/core": "^18.0.0",
27
27
  "@angular/forms": "^18.0.0",
28
- "@koobiq/cdk": "18.18.0",
29
- "@koobiq/components": "18.18.0"
28
+ "@koobiq/cdk": "18.19.0",
29
+ "@koobiq/components": "18.19.0"
30
30
  },
31
31
  "dependencies": {
32
32
  "tslib": "^2.6.2"