{"version":3,"file":"kara-ui-alfa-components-form-select.mjs","sources":["../../../libs/kara-ui/components/form/select/components/option/loading/options-loading.component.ts","../../../libs/kara-ui/components/form/select/components/option/loading/options-loading.component.html","../../../libs/kara-ui/components/form/select/components/option/not-found/options-not-found.component.ts","../../../libs/kara-ui/components/form/select/components/option/options.tokens.ts","../../../libs/kara-ui/components/form/select/components/abstract-select.component.ts","../../../libs/kara-ui/components/form/select/select.tokens.ts","../../../libs/kara-ui/components/form/select/components/multi-select/select-multi.component.ts","../../../libs/kara-ui/components/form/select/components/multi-select/select-multi.component.html","../../../libs/kara-ui/components/form/select/components/select/select.component.ts","../../../libs/kara-ui/components/form/select/components/select/select.component.html","../../../libs/kara-ui/components/form/select/components/select-modal/select-modal.component.ts","../../../libs/kara-ui/components/form/select/components/select-modal/select-modal.component.html","../../../libs/kara-ui/components/form/select/components/select-date/select-date.component.ts","../../../libs/kara-ui/components/form/select/components/select-date/select-date.component.html","../../../libs/kara-ui/components/form/select/components/option/base-option.ts","../../../libs/kara-ui/components/form/select/components/option/option-container/option-container.component.ts","../../../libs/kara-ui/components/form/select/components/option/option-container/option-container.component.html","../../../libs/kara-ui/components/form/select/components/option/list/option.component.ts","../../../libs/kara-ui/components/form/select/components/option/list/option.component.html","../../../libs/kara-ui/components/form/select/components/option/bank/option-bank.component.ts","../../../libs/kara-ui/components/form/select/components/option/bank/option-bank.component.html","../../../libs/kara-ui/components/form/select/components/option/account/account-content/account-content.component.ts","../../../libs/kara-ui/components/form/select/components/option/account/account-content/account-content.component.html","../../../libs/kara-ui/components/form/select/components/option/account/option-account.component.ts","../../../libs/kara-ui/components/form/select/components/option/account/option-account.component.html","../../../libs/kara-ui/components/form/select/components/option/group-options/group-options.component.ts","../../../libs/kara-ui/components/form/select/components/option/group-options/group-options.component.html","../../../libs/kara-ui/components/form/select/options-search.pipe.ts","../../../libs/kara-ui/components/form/select/select.module.ts","../../../libs/kara-ui/components/form/select/kara-ui-alfa-components-form-select.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { AsyncPipe } from '@angular/common';\nimport { KARA_LANGUAGE } from 'kara-ui-alfa/i18n';\nimport { KSpinnerComponent } from 'kara-ui-alfa/components/loader';\n\n@Component({\n  selector: 'k-options-loading',\n  templateUrl: './options-loading.component.html',\n  styleUrls: ['./options-loading.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [KSpinnerComponent, AsyncPipe],\n})\nexport class KOptionsLoadingComponent {\n  readonly language$ = inject(KARA_LANGUAGE).pipe(map(({ selectOption }) => selectOption));\n}\n","<k-spinner size=\"S\"></k-spinner>\n<span class=\"kui-base-default-medium\">{{ (language$ | async)?.loading }}</span>\n","import { ChangeDetectionStrategy, Component, Input, inject } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { AsyncPipe } from '@angular/common';\nimport { KARA_LANGUAGE } from 'kara-ui-alfa/i18n';\nimport { KStatesComponent } from 'kara-ui-alfa/components/states';\n\n@Component({\n  selector: 'k-options-not-found',\n  template: `\n    <k-states [icon]=\"'list-empty'\" [title]=\"notFoundText || (language$ | async)?.defaultNotFoundText\"></k-states>\n  `,\n  styleUrls: ['./options-not-found.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [AsyncPipe, KStatesComponent],\n})\nexport class KOptionsNotFoundComponent {\n  @Input() notFoundText?: string;\n  readonly language$ = inject(KARA_LANGUAGE).pipe(map(({ selectOption }) => selectOption));\n}\n","import { InjectionToken } from '@angular/core';\nimport { KBaseOption } from './base-option';\n\nexport const KARA_OPTION_PROVIDER = new InjectionToken<KBaseOption<unknown>>(\n  'KARA provider for search different option',\n);\n","import {\n  AfterContentInit,\n  AfterViewInit,\n  ContentChildren,\n  DestroyRef,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Input,\n  NgZone,\n  OnChanges,\n  OnInit,\n  Output,\n  QueryList,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n  inject,\n  input,\n  signal,\n  viewChild,\n} from '@angular/core';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { fromEvent, merge } from 'rxjs';\nimport { distinctUntilChanged, startWith, switchMap, tap } from 'rxjs/operators';\nimport { CdkConnectedOverlay, CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';\nimport { FormControl } from '@angular/forms';\nimport { KBaseInputComponent, KInputControlValueWithMask } from 'kara-ui-alfa/components/form/base';\nimport { DOCUMENT } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KBaseOption } from './option/base-option';\nimport { KARA_OPTION_PROVIDER } from './option/options.tokens';\n\n@Directive()\nexport abstract class KAbstractSelectComponent<T, R>\n  extends KInputControlValueWithMask<R>\n  implements OnInit, AfterContentInit, OnChanges, AfterViewInit\n{\n  protected readonly destroyRef = inject(DestroyRef);\n\n  @Input() placeholder: string = '';\n  @Input() clearButton: boolean = false;\n  @Input() label?: string;\n  @Input() searchable: boolean = false;\n  @Input() name?: string;\n  @Input() hint?: string;\n\n  @Input() valueContent?: TemplateRef<unknown>;\n  /** Если `true` то скрывает label у селекта когда опция выбрана */\n  @Input() showOnlySelectedContent = false;\n\n  /** Не отображает дропдаун с опшенами пока, не будут получены первые данные */\n  @Input() isHideDefaultEmptyOptions = false;\n  /** Показывает лоадер вместо опшенов */\n  @Input() isOptionsLoading = false;\n  /** Сообщений когда нет опшенов */\n  @Input() notFoundText?: string;\n  /** Ссылка на кастомный шааблон плейсхолдера пустого списка */\n  readonly emptyTemplateRef = input<TemplateRef<Element>>();\n\n  @Input() compareWith: (v1: T, v2: T) => boolean = (v1, v2) => v1 === v2;\n\n  @Input() tabIndex = 0;\n\n  @Output() readonly opened = new EventEmitter<void>();\n  @Output() readonly closed = new EventEmitter<void>();\n  @Output() readonly selectionChanged = new EventEmitter<R>();\n  @Output() readonly searchChanged = new EventEmitter<string>();\n  readonly searchControl = new FormControl<string>('');\n\n  @ViewChild('panel', { read: ElementRef }) panelElement?: ElementRef<HTMLElement>;\n  @ViewChild('searchInput', { read: ElementRef }) searchInputEl?: ElementRef<HTMLInputElement>;\n  @ViewChild(KBaseInputComponent, { read: ElementRef }) inputContainer?: ElementRef<HTMLInputElement>;\n  @ViewChild(CdkConnectedOverlay) connectedOverlay?: CdkConnectedOverlay;\n  protected readonly overlayOrigin = viewChild(CdkOverlayOrigin);\n\n  @ContentChildren(KARA_OPTION_PROVIDER, { descendants: true }) options!: QueryList<KBaseOption<T>>;\n\n  public isOpen = false;\n\n  protected selectionModel: SelectionModel<T> = new SelectionModel<T>();\n  private optionMap = new Map<T | null, KBaseOption<T>>();\n  private listKeyManager!: ActiveDescendantKeyManager<KBaseOption<T>>;\n\n  private ngZone = inject(NgZone);\n  private document = inject(DOCUMENT);\n\n  readonly positions: ConnectedPosition[] = [\n    {\n      originX: 'start',\n      originY: 'bottom',\n      overlayX: 'start',\n      overlayY: 'top',\n    },\n    {\n      originX: 'end',\n      originY: 'bottom',\n      overlayX: 'end',\n      overlayY: 'top',\n    },\n    {\n      originX: 'start',\n      originY: 'top',\n      overlayX: 'start',\n      overlayY: 'bottom',\n      panelClass: 'k-cdk-position-above',\n    },\n    {\n      originX: 'end',\n      originY: 'top',\n      overlayX: 'end',\n      overlayY: 'bottom',\n      panelClass: 'k-cdk-position-above',\n    },\n  ];\n\n  abstract get selected(): any;\n  abstract get selectedOption(): any;\n  abstract get isSelected(): boolean;\n\n  get isActive(): boolean {\n    return (this.placeholder && this.isOpen) || (this.searchable && this.isOpen) || this.isSelected;\n  }\n\n  get withLabel(): boolean {\n    if (this.label) {\n      if (this.isOpen && this.searchable) {\n        return true;\n      }\n\n      if (this.showOnlySelectedContent && this.isSelected) {\n        return false;\n      }\n\n      return true;\n    }\n\n    return false;\n  }\n\n  get isEmptyOptions(): boolean {\n    return !this.isOptionsLoading && this.options?.length === 0;\n  }\n\n  get isHidePanel(): boolean {\n    return this.isHideDefaultEmptyOptions && !this.searchControl.value && this.options?.length === 0;\n  }\n\n  protected readonly panelWidth = signal<number | null>(null);\n\n  constructor(private host: ElementRef<HTMLElement>) {\n    super();\n  }\n\n  @HostListener('keydown', ['$event'])\n  protected onKeyDown(e: KeyboardEvent): void {\n    const element = this.searchInputEl?.nativeElement || this.inputContainer?.nativeElement;\n    if (element && this.document.activeElement !== element) {\n      element.focus();\n    }\n\n    if (e.key === 'ArrowDown' && !this.isOpen) {\n      this.open();\n      return;\n    }\n    if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && this.isOpen) {\n      this.listKeyManager.onKeydown(e);\n      return;\n    }\n    if (['Space', 'Enter'].includes(e.code) && this.isOpen && this.listKeyManager.activeItem) {\n      this.handleSelection(this.listKeyManager.activeItem.value);\n    }\n  }\n\n  ngOnInit(): void {\n    this.searchListener();\n  }\n\n  ngAfterContentInit(): void {\n    fromEvent(document, 'click', { capture: true })\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe((event) => {\n        if (\n          this.host.nativeElement.contains(event.target as Node) ||\n          this.panelElement?.nativeElement.contains(event.target as Node)\n        ) {\n          return;\n        }\n\n        this.close();\n      });\n\n    this.listKeyManager = new ActiveDescendantKeyManager(this.options).withWrap();\n    this.listKeyManager.change.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((itemIndex) => {\n      this.options.get(itemIndex)?.scrollIntoView({\n        behavior: 'smooth',\n        block: 'center',\n      });\n    });\n\n    this.selectionModel.changed.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((values) => {\n      values.removed.forEach((removed) => this.optionMap.get(removed)?.deselect());\n      values.added.forEach((added) => this.optionMap.get(added)?.highlightAsSelected());\n    });\n\n    this.options.changes\n      .pipe(\n        startWith<QueryList<KBaseOption<T>>>(this.options),\n        tap(() => {\n          this.refreshOptionsMap();\n          this.highlightSelectedOptions();\n        }),\n        switchMap((options) => merge(...options.map((o) => o.selected))),\n        takeUntilDestroyed(this.destroyRef),\n      )\n      .subscribe((selectedOption) => {\n        this.handleSelection(selectedOption.value);\n      });\n  }\n\n  ngAfterViewInit(): void {\n    const el = this.overlayOrigin()?.elementRef.nativeElement;\n    if (!el || typeof ResizeObserver === 'undefined') return;\n\n    const resizeObserver = new ResizeObserver((entries) => {\n      const entry = entries[0];\n      const width = entry.borderBoxSize?.[0]?.inlineSize ?? el.offsetWidth;\n      this.panelWidth.set(width);\n    });\n    resizeObserver.observe(el, { box: 'border-box' });\n\n    this.destroyRef.onDestroy(() => resizeObserver?.disconnect());\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.value) {\n      this.setupValue(changes.value.currentValue);\n      this.highlightSelectedOptions();\n    }\n\n    if (changes.disabled) {\n      this.setDisabledState(changes.disabled.currentValue);\n    }\n  }\n\n  public onBlur(): void {\n    this.onTouched();\n    this.cdr.markForCheck();\n  }\n\n  public onFocus(): void {\n    this.open();\n  }\n\n  public clearInput(event: Event): void {\n    event.stopPropagation();\n\n    this.onTouched();\n\n    this.selectionModel.clear();\n    this.selectionChanged.emit(this.selected);\n    this.onChange(this.selected);\n    this.searchControl.setValue('');\n  }\n\n  public setFocus(event: MouseEvent): void {\n    if (!this.searchInputEl || event.target === this.searchInputEl.nativeElement) {\n      return;\n    }\n\n    event.preventDefault();\n    this.searchInputEl.nativeElement.focus();\n  }\n\n  @HostListener('click')\n  open(): void {\n    if (this.disabled || this.isOpen || this.readonly) {\n      return;\n    }\n\n    this.isOpen = true;\n\n    if (this.searchable) {\n      requestAnimationFrame(() => {\n        this.searchInputEl?.nativeElement?.focus();\n      });\n    }\n\n    this.opened.emit();\n    this.cdr.markForCheck();\n  }\n\n  close(): void {\n    if (this.isOpen) {\n      this.isOpen = false;\n      this.onTouched();\n      this.host.nativeElement.focus();\n      this.closed.emit();\n      this.searchControl.setValue('');\n      this.cdr.markForCheck();\n    }\n  }\n\n  public override writeValue(value: R): void {\n    super.writeValue(value);\n    this.setupValue(value);\n  }\n\n  toggle(event: Event): void {\n    event.stopPropagation();\n\n    if (this.isOpen) {\n      this.close();\n      return;\n    }\n\n    this.open();\n  }\n\n  scrollToFirstSelected(): void {\n    if (this.selectionModel.selected[0]) {\n      const option = this.findOptionsByValue(this.selectionModel.selected[0]);\n\n      this.ngZone.runOutsideAngular(() => {\n        requestAnimationFrame(() => {\n          option?.scrollIntoView();\n        });\n      });\n    }\n  }\n\n  override setDisabledState(isDisabled: boolean): void {\n    if (isDisabled) {\n      this.searchControl.disable();\n    } else {\n      this.searchControl.enable();\n    }\n\n    super.setDisabledState(isDisabled);\n  }\n\n  public searchListener(): void {\n    this.searchControl.valueChanges\n      .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\n      .subscribe((value) => {\n        this.searchChanged.emit(value || '');\n      });\n  }\n\n  public deselect(event: Event, value: T): void {\n    event.stopPropagation();\n\n    this.handleSelection(value);\n  }\n\n  private refreshOptionsMap(): void {\n    this.optionMap.clear();\n    this.options.forEach((o) => this.optionMap.set(o.value, o));\n  }\n\n  private highlightSelectedOptions(): void {\n    const valuesWithUpdatedReferences = this.selectionModel.selected.map((value) => {\n      const correspondingOption = this.findOptionsByValue(value);\n      return correspondingOption ? correspondingOption.value : value;\n    });\n\n    this.selectionModel.clear();\n    this.selectionModel.select(...valuesWithUpdatedReferences);\n    this.cdr.markForCheck();\n  }\n\n  protected findOptionsByValue(value: T): KBaseOption<T> | undefined {\n    if (typeof this.compareWith === 'function') {\n      return this.options?.find((o) => this.compareWith(o.value, value));\n    }\n\n    if (this.optionMap.has(value)) {\n      return this.optionMap.get(value);\n    }\n\n    return undefined;\n  }\n\n  protected handleSelection(value: T): void {\n    this.selectionModel.toggle(value);\n    this.selectionChanged.emit(this.selected);\n    this.onChange(this.selected);\n    this.searchControl.setValue('');\n    this.cdr.markForCheck();\n  }\n\n  protected abstract setupValue(_newValue: R): void;\n}\n","import { InjectionToken } from '@angular/core';\nimport type { KAbstractSelectComponent } from './components/abstract-select.component';\n\nexport const KARA_MULTI_SELECT = new InjectionToken<boolean>('KARA options for multi select');\n\nexport const KARA_SELECT = new InjectionToken<KAbstractSelectComponent<unknown, unknown>>(\n  'KARA select for option search pipe to get access to search stream',\n);\n","import { AfterContentInit, ChangeDetectionStrategy, Component, OnChanges } from '@angular/core';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { NgxMaskDirective } from 'ngx-mask';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { kTransformPanel } from 'kara-ui-alfa/animation';\nimport { KBaseInputComponent } from 'kara-ui-alfa/components/form/base';\nimport { KMaskShadowDirective } from 'kara-ui-alfa/components/form/mask-shadow';\nimport { KFieldErrorComponent } from 'kara-ui-alfa/components/form/field-error';\nimport { KScrollbarComponent } from 'kara-ui-alfa/components/scrollbar';\nimport { KChipsComponent } from 'kara-ui-alfa/components/chips';\nimport { KHintComponent } from 'kara-ui-alfa/components/form/hint';\nimport { KButtonComponent } from 'kara-ui-alfa/components/button';\nimport { KOptionsLoadingComponent } from '../option/loading/options-loading.component';\nimport { KOptionsNotFoundComponent } from '../option/not-found/options-not-found.component';\nimport { KBaseOption } from '../option/base-option';\nimport { KAbstractSelectComponent } from '../abstract-select.component';\nimport { KARA_MULTI_SELECT, KARA_SELECT } from '../../select.tokens';\n\ntype SelectValue<T> = T[] | undefined;\n\n@Component({\n  selector: 'k-select-multi',\n  templateUrl: './select-multi.component.html',\n  styleUrls: ['../../../input/input.component.scss', './select-multi.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [kTransformPanel],\n  providers: [\n    {\n      provide: KARA_MULTI_SELECT,\n      useValue: true,\n    },\n    {\n      provide: KARA_SELECT,\n      useExisting: KMultiSelectComponent,\n    },\n  ],\n  imports: [\n    OverlayModule,\n    KBaseInputComponent,\n    NgTemplateOutlet,\n    ReactiveFormsModule,\n    KFieldErrorComponent,\n    KScrollbarComponent,\n    KChipsComponent,\n    KHintComponent,\n    KButtonComponent,\n    NgxMaskDirective,\n    KOptionsLoadingComponent,\n    KOptionsNotFoundComponent,\n    KMaskShadowDirective,\n  ],\n})\nexport class KMultiSelectComponent<T>\n  extends KAbstractSelectComponent<T, SelectValue<T>>\n  implements AfterContentInit, OnChanges\n{\n  private cacheOption = new WeakMap<T[], KBaseOption<T>[]>();\n\n  get selected(): T[] | undefined {\n    if (this.selectionModel.isEmpty()) {\n      return undefined;\n    }\n\n    return this.selectionModel.selected;\n  }\n\n  get selectedOption(): KBaseOption<T>[] | undefined {\n    if (typeof this.selected === 'undefined') {\n      return undefined;\n    }\n\n    if (this.cacheOption.has(this.selected)) {\n      return this.cacheOption.get(this.selected);\n    }\n\n    const options = this.selected.reduce<KBaseOption<T>[]>((acc, value) => {\n      const option = this.findOptionsByValue(value);\n      if (option) {\n        acc.push(option);\n      }\n\n      return acc;\n    }, []);\n\n    this.cacheOption.set(this.selected, options);\n    return options;\n  }\n\n  get isSelected(): boolean {\n    return this.valueContent ? !!this.selected?.length : !!this.selectedOption?.length;\n  }\n\n  protected override selectionModel = new SelectionModel<T>(true);\n\n  protected override setupValue(newValue: SelectValue<T>): void {\n    this.selectionModel.clear();\n    if (!Array.isArray(newValue)) {\n      return;\n    }\n\n    this.selectionModel.select(...newValue);\n    this.cdr.markForCheck();\n  }\n\n  protected override handleSelection(value: T): void {\n    if (this.disabled) {\n      return;\n    }\n\n    super.handleSelection(value);\n\n    requestAnimationFrame(() => {\n      if (this.isOpen && this.connectedOverlay) {\n        this.connectedOverlay.overlayRef.updatePosition();\n      }\n    });\n  }\n}\n","<k-input-container\n  #origin=\"cdkOverlayOrigin\"\n  cdkOverlayOrigin\n  class=\"k-input_container\"\n  [class.k-select-not-searchable]=\"!searchable\"\n  [id]=\"id\"\n  [label]=\"withLabel ? label : null\"\n  [isActive]=\"isActive\"\n  [disabled]=\"disabled\"\n  [isLoading]=\"isLoading\"\n  [attr.tabindex]=\"tabIndex\"\n  (mousedown)=\"setFocus($event)\"\n>\n  <ng-container *ngTemplateOutlet=\"multipleMode\"></ng-container>\n\n  <ng-container ngProjectAs=\"[kuiActions]\">\n    <ng-content select=\"[kuiActions]\"></ng-content>\n    @if (!(disabled || readonly) && isOpen && clearButton && selectedOption) {\n      <button\n        type=\"button\"\n        kButton\n        theme=\"phantom-secondary\"\n        icon=\"dismiss-m\"\n        size=\"M\"\n        [onlyIcon]=\"true\"\n        (click)=\"clearInput($event)\"\n      ></button>\n    }\n\n    <button\n      type=\"button\"\n      kButton\n      theme=\"phantom-secondary\"\n      icon=\"chevron-down-m\"\n      size=\"M\"\n      tabindex=\"-1\"\n      class=\"k-input_icon-dropdown\"\n      [disabled]=\"disabled || readonly\"\n      [class.open]=\"isOpen\"\n      [onlyIcon]=\"true\"\n      (click)=\"toggle($event)\"\n    ></button>\n  </ng-container>\n</k-input-container>\n\n@if (control && control.touched && !disabled) {\n  <k-field-error [control]=\"control.control\" [errorMessages]=\"errorMessages()\"></k-field-error>\n}\n@if (hint) {\n  <k-hint [disabled]=\"disabled\">{{ hint }}</k-hint>\n}\n\n<ng-template\n  cdkConnectedOverlay\n  [cdkConnectedOverlayOrigin]=\"origin\"\n  [cdkConnectedOverlayOpen]=\"isOpen\"\n  [cdkConnectedOverlayWidth]=\"panelWidth()\"\n  [cdkConnectedOverlayPositions]=\"positions\"\n  (attach)=\"scrollToFirstSelected()\"\n  (detach)=\"close()\"\n>\n  <k-scrollbar\n    #panel\n    class=\"k-select-panel kui-paragraph-default-medium\"\n    [@kTransformPanel]=\"'showing'\"\n    [class.k-hide-dropdown]=\"isHidePanel\"\n  >\n    <div class=\"k-select-panel__content\">\n      @switch (true) {\n        @case (isOptionsLoading) {\n          <k-options-loading></k-options-loading>\n        }\n        @case (isEmptyOptions) {\n          @if (emptyTemplateRef()) {\n            <ng-container *ngTemplateOutlet=\"emptyTemplateRef()\" />\n          } @else {\n            <k-options-not-found [notFoundText]=\"notFoundText\" />\n          }\n        }\n        @default {\n          <ng-content></ng-content>\n        }\n      }\n    </div>\n  </k-scrollbar>\n</ng-template>\n\n<ng-template #multipleMode>\n  <div\n    class=\"k-input_input kui-base-default-medium\"\n    [class.filled]=\"isSelected || isOpen\"\n    [class.with-label]=\"label\"\n    (click)=\"toggle($event)\"\n  >\n    <div class=\"k-select-multiple-value\">\n      <ng-container *ngTemplateOutlet=\"valueContent ? defaultTemplate : optionTemplate\"></ng-container>\n      <ng-template #defaultTemplate>\n        @for (data of selected; track data) {\n          <ng-container\n            *ngTemplateOutlet=\"multipleContent; context: { $implicit: data, template: valueContent }\"\n          ></ng-container>\n        }\n      </ng-template>\n\n      <ng-template #optionTemplate>\n        @for (data of selectedOption; track data) {\n          <ng-container\n            *ngTemplateOutlet=\"multipleContent; context: { $implicit: data.value, template: data.selectedTemplate }\"\n          ></ng-container>\n        }\n      </ng-template>\n\n      <ng-template #multipleContent let-value let-template=\"template\">\n        <k-chips [closeable]=\"readonly ? false : true\" (closed)=\"deselect($event, value)\">\n          <ng-container\n            *ngTemplateOutlet=\"template; context: { $implicit: value, disabled: isDisabled }\"\n          ></ng-container>\n        </k-chips>\n      </ng-template>\n\n      <ng-container *ngTemplateOutlet=\"singleMode\"></ng-container>\n    </div>\n  </div>\n</ng-template>\n\n<ng-template #singleMode>\n  <div class=\"k-input-shadow-container kui-base-default-medium\">\n    @if (name) {\n      <input type=\"hidden\" [attr.name]=\"name\" [value]=\"selected\" />\n    }\n    @if (searchable && isOpen) {\n      <input\n        #searchInput\n        autocomplete=\"off\"\n        class=\"k-input_input kui-base-default-medium\"\n        [mask]=\"mask\"\n        [kMaskShadow]=\"maskShadow\"\n        [specialCharacters]=\"specialCharacters\"\n        [dropSpecialCharacters]=\"dropSpecialCharacters\"\n        [prefix]=\"prefix\"\n        [suffix]=\"suffix\"\n        [id]=\"id\"\n        [class.filled]=\"value\"\n        [class.with-label]=\"withLabel\"\n        [attr.placeholder]=\"placeholder || null\"\n        [attr.readonly]=\"readonly ? 'readonly' : undefined\"\n        [formControl]=\"searchControl\"\n        (focus)=\"onFocus()\"\n        (blur)=\"onBlur()\"\n      />\n    } @else {\n      <div\n        class=\"k-input_input kui-base-default-medium\"\n        [class.filled]=\"isSelected || isOpen\"\n        [class.with-label]=\"withLabel\"\n        (click)=\"toggle($event)\"\n      >\n        @if (!isSelected) {\n          <div class=\"k-input_input_placeholder\">{{ placeholder }}</div>\n        }\n      </div>\n    }\n  </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { NgxMaskDirective } from 'ngx-mask';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { kTransformPanel } from 'kara-ui-alfa/animation';\nimport { KBaseInputComponent } from 'kara-ui-alfa/components/form/base';\nimport { KFieldErrorComponent } from 'kara-ui-alfa/components/form/field-error';\nimport { KScrollbarComponent } from 'kara-ui-alfa/components/scrollbar';\nimport { KHintComponent } from 'kara-ui-alfa/components/form/hint';\nimport { KButtonComponent } from 'kara-ui-alfa/components/button';\nimport { KMaskShadowDirective } from 'kara-ui-alfa/components/form/mask-shadow';\nimport { KOptionsLoadingComponent } from '../option/loading/options-loading.component';\nimport { KOptionsNotFoundComponent } from '../option/not-found/options-not-found.component';\nimport { KBaseOption } from '../option/base-option';\nimport { KARA_SELECT } from '../../select.tokens';\nimport { KAbstractSelectComponent } from '../abstract-select.component';\n\ntype SelectValue<T> = T | undefined;\n\n@Component({\n  selector: 'k-select',\n  templateUrl: './select.component.html',\n  styleUrls: ['../../../input/input.component.scss', './select.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [kTransformPanel],\n  imports: [\n    KBaseInputComponent,\n    OverlayModule,\n    NgTemplateOutlet,\n    ReactiveFormsModule,\n    KFieldErrorComponent,\n    KScrollbarComponent,\n    KHintComponent,\n    KButtonComponent,\n    NgxMaskDirective,\n    KOptionsLoadingComponent,\n    KOptionsNotFoundComponent,\n    KMaskShadowDirective,\n  ],\n  providers: [\n    {\n      provide: KARA_SELECT,\n      useExisting: KSelectComponent,\n    },\n  ],\n})\nexport class KSelectComponent<T> extends KAbstractSelectComponent<T, SelectValue<T>> {\n  get selected(): SelectValue<T> {\n    if (this.selectionModel.isEmpty()) {\n      return undefined;\n    }\n\n    return this.selectionModel.selected[0];\n  }\n\n  get selectedOption(): KBaseOption<T> | undefined {\n    if (typeof this.selected === 'undefined') {\n      return undefined;\n    }\n\n    return this.findOptionsByValue(this.selected);\n  }\n\n  get isSelected(): boolean {\n    if (this.valueContent) {\n      return this.selected !== undefined && this.selected !== null;\n    }\n\n    return this.selectedOption !== undefined;\n  }\n\n  protected override setupValue(newValue: SelectValue<T>): void {\n    this.selectionModel.clear();\n\n    this.selectionModel.select(newValue!);\n    this.cdr.markForCheck();\n  }\n\n  protected override handleSelection(value: T): void {\n    if (this.disabled) {\n      return;\n    }\n\n    if (!this.selectionModel.isSelected(value)) {\n      super.handleSelection(value);\n    }\n\n    this.close();\n  }\n}\n","<k-input-container\n  #origin=\"cdkOverlayOrigin\"\n  cdkOverlayOrigin\n  class=\"k-input_container\"\n  [class.k-select-not-searchable]=\"!searchable\"\n  [id]=\"id\"\n  [label]=\"withLabel ? label : null\"\n  [isActive]=\"isActive\"\n  [disabled]=\"disabled\"\n  [isLoading]=\"isLoading\"\n  [attr.tabindex]=\"tabIndex\"\n  (mousedown)=\"setFocus($event)\"\n>\n  <ng-container *ngTemplateOutlet=\"singleMode\"></ng-container>\n\n  <ng-container ngProjectAs=\"[kuiActions]\">\n    <ng-content select=\"[kuiActions]\"></ng-content>\n    @if (!(disabled || readonly) && isOpen && clearButton && isSelected) {\n      <button\n        type=\"button\"\n        kButton\n        theme=\"phantom-secondary\"\n        icon=\"dismiss-m\"\n        size=\"M\"\n        [onlyIcon]=\"true\"\n        (click)=\"clearInput($event)\"\n      ></button>\n    }\n\n    <button\n      type=\"button\"\n      kButton\n      theme=\"phantom-secondary\"\n      icon=\"chevron-down-m\"\n      size=\"M\"\n      tabindex=\"-1\"\n      class=\"k-input_icon-dropdown\"\n      [disabled]=\"disabled || readonly\"\n      [class.open]=\"isOpen\"\n      [onlyIcon]=\"true\"\n      (click)=\"toggle($event)\"\n    ></button>\n  </ng-container>\n</k-input-container>\n\n@if (control && control.touched && !disabled) {\n  <k-field-error [control]=\"control.control\" [errorMessages]=\"errorMessages()\"></k-field-error>\n}\n@if (hint) {\n  <k-hint [disabled]=\"disabled\">{{ hint }}</k-hint>\n}\n\n<ng-template\n  cdkConnectedOverlay\n  [cdkConnectedOverlayOrigin]=\"origin\"\n  [cdkConnectedOverlayOpen]=\"isOpen\"\n  [cdkConnectedOverlayPositions]=\"positions\"\n  [cdkConnectedOverlayWidth]=\"panelWidth()\"\n  (attach)=\"scrollToFirstSelected()\"\n  (detach)=\"close()\"\n>\n  <k-scrollbar\n    #panel\n    class=\"k-select-panel kui-paragraph-default-medium\"\n    [@kTransformPanel]=\"'showing'\"\n    [class.k-hide-dropdown]=\"isHidePanel\"\n  >\n    <div class=\"k-select-panel__content\">\n      @switch (true) {\n        @case (isOptionsLoading) {\n          <k-options-loading></k-options-loading>\n        }\n        @case (isEmptyOptions) {\n          @if (emptyTemplateRef()) {\n            <ng-container *ngTemplateOutlet=\"emptyTemplateRef()\" />\n          } @else {\n            <k-options-not-found [notFoundText]=\"notFoundText\" />\n          }\n        }\n        @default {\n          <ng-content></ng-content>\n        }\n      }\n    </div>\n  </k-scrollbar>\n</ng-template>\n\n<ng-template #singleMode>\n  <div class=\"k-input-shadow-container kui-base-default-medium\">\n    @if (name) {\n      <input type=\"hidden\" [attr.name]=\"name\" [value]=\"selected\" />\n    }\n    @if (searchable && isOpen) {\n      <input\n        #searchInput\n        autocomplete=\"off\"\n        class=\"k-input_input kui-base-default-medium\"\n        [id]=\"id\"\n        [mask]=\"mask\"\n        [kMaskShadow]=\"maskShadow\"\n        [specialCharacters]=\"specialCharacters\"\n        [dropSpecialCharacters]=\"dropSpecialCharacters\"\n        [prefix]=\"prefix\"\n        [suffix]=\"suffix\"\n        [class.filled]=\"value || isOpen\"\n        [class.with-label]=\"withLabel\"\n        [attr.readonly]=\"readonly ? 'readonly' : undefined\"\n        [attr.placeholder]=\"placeholder || null\"\n        [formControl]=\"searchControl\"\n        (focus)=\"onFocus()\"\n        (blur)=\"onBlur()\"\n      />\n    } @else {\n      <div\n        class=\"k-input_input kui-base-default-medium\"\n        [class.filled]=\"isSelected || isOpen\"\n        [class.with-label]=\"withLabel\"\n        (click)=\"toggle($event)\"\n      >\n        @if (!isSelected) {\n          <div class=\"k-input_input_placeholder\">{{ placeholder }}</div>\n        } @else {\n          <ng-container\n            *ngTemplateOutlet=\"\n              valueContent ? valueContent : selectedOption?.selectedTemplate;\n              context: { $implicit: selected, disabled: isDisabled }\n            \"\n          ></ng-container>\n        }\n      </div>\n    }\n  </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, ElementRef, TemplateRef, ViewChild, inject } from '@angular/core';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { DialogRef } from '@angular/cdk/dialog';\nimport { map, takeUntil } from 'rxjs/operators';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { kTransformPanel } from 'kara-ui-alfa/animation';\nimport { KBaseInputComponent } from 'kara-ui-alfa/components/form/base';\nimport { KFieldErrorComponent } from 'kara-ui-alfa/components/form/field-error';\nimport { KScrollbarComponent } from 'kara-ui-alfa/components/scrollbar';\nimport { KHintComponent } from 'kara-ui-alfa/components/form/hint';\nimport { KButtonComponent } from 'kara-ui-alfa/components/button';\nimport { KModalModule, KModalService } from 'kara-ui-alfa/components/modal';\nimport { KInputComponent } from 'kara-ui-alfa/components/form/input';\nimport { KARA_LANGUAGE } from 'kara-ui-alfa/i18n';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KSelectComponent } from '../select/select.component';\nimport { KOptionsLoadingComponent } from '../option/loading/options-loading.component';\nimport { KOptionsNotFoundComponent } from '../option/not-found/options-not-found.component';\nimport { KARA_SELECT } from '../../select.tokens';\n\n@Component({\n  selector: 'k-select-modal',\n  templateUrl: './select-modal.component.html',\n  styleUrls: [\n    '../../../input/input.component.scss',\n    './../select/select.component.scss',\n    './select-modal.component.scss',\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [kTransformPanel],\n  imports: [\n    KBaseInputComponent,\n    OverlayModule,\n    NgTemplateOutlet,\n    AsyncPipe,\n    ReactiveFormsModule,\n    KFieldErrorComponent,\n    KScrollbarComponent,\n    KHintComponent,\n    KButtonComponent,\n    KOptionsLoadingComponent,\n    KOptionsNotFoundComponent,\n    KModalModule,\n    KInputComponent,\n  ],\n  providers: [\n    {\n      provide: KARA_SELECT,\n      useExisting: KSelectModalComponent,\n    },\n  ],\n})\nexport class KSelectModalComponent<T> extends KSelectComponent<T> {\n  override searchable = true;\n  readonly language$ = inject(KARA_LANGUAGE).pipe(map(({ selectModal }) => selectModal));\n\n  @ViewChild('modal', { static: true }) private modalRef!: TemplateRef<unknown>;\n  private dialogService = inject(KModalService);\n  private dialogRef?: DialogRef;\n\n  override open(): void {\n    if (this.disabled || this.isOpen || this.readonly) {\n      return;\n    }\n\n    this.dialogRef = this.dialogService.open(this.modalRef);\n\n    this.dialogRef.keydownEvents\n      .pipe(takeUntil(this.closed.asObservable()), takeUntilDestroyed(this.destroyRef))\n      .subscribe((event) => this.onKeyDown(event));\n\n    this.scrollToFirstSelected();\n\n    requestAnimationFrame(() => {\n      const searchElement =\n        this.dialogRef?.overlayRef.hostElement.querySelector<HTMLInputElement>('.k-select-modal-search input');\n      this.searchInputEl = searchElement ? new ElementRef(searchElement) : undefined;\n\n      searchElement?.focus();\n    });\n\n    super.open();\n  }\n\n  override close(): void {\n    this.dialogRef?.close();\n\n    super.close();\n  }\n}\n","<k-input-container\n  class=\"k-input_container\"\n  [class.k-select-not-searchable]=\"!searchable\"\n  [id]=\"id\"\n  [label]=\"withLabel ? label : null\"\n  [isActive]=\"isActive\"\n  [disabled]=\"disabled\"\n  [isLoading]=\"isLoading\"\n  [attr.tabindex]=\"tabIndex\"\n  (mousedown)=\"setFocus($event)\"\n>\n  <ng-container *ngTemplateOutlet=\"singleMode\"></ng-container>\n\n  <ng-container ngProjectAs=\"[kuiActions]\">\n    <ng-content select=\"[kuiActions]\"></ng-content>\n    @if (!(disabled || readonly) && isOpen && clearButton && isSelected) {\n      <button\n        type=\"button\"\n        kButton\n        theme=\"phantom-secondary\"\n        icon=\"dismiss-m\"\n        size=\"M\"\n        [onlyIcon]=\"true\"\n        (click)=\"clearInput($event)\"\n      ></button>\n    }\n\n    <button\n      type=\"button\"\n      kButton\n      theme=\"phantom-secondary\"\n      icon=\"chevron-down-m\"\n      size=\"M\"\n      tabindex=\"-1\"\n      class=\"k-input_icon-dropdown\"\n      [disabled]=\"disabled || readonly\"\n      [class.open]=\"isOpen\"\n      [onlyIcon]=\"true\"\n      (click)=\"toggle($event)\"\n    ></button>\n  </ng-container>\n</k-input-container>\n\n@if (control && control.touched && !disabled) {\n  <k-field-error [control]=\"control.control\" [errorMessages]=\"errorMessages()\"></k-field-error>\n}\n@if (hint) {\n  <k-hint [disabled]=\"disabled\">{{ hint }}</k-hint>\n}\n\n<ng-template #modal>\n  <k-base-modal #panel size=\"M\" class=\"k-select-modal\" [title]=\"label\">\n    @if (searchable) {\n      <k-input\n        #searchInput\n        class=\"k-select-modal-search\"\n        [label]=\"(language$ | async)?.search\"\n        [placeholder]=\"placeholder || null\"\n        [disabled]=\"disabled\"\n        [readonly]=\"readonly\"\n        [mask]=\"mask\"\n        [prefix]=\"prefix\"\n        [suffix]=\"suffix\"\n        [maskShadow]=\"maskShadow\"\n        [specialCharacters]=\"specialCharacters\"\n        [dropSpecialCharacters]=\"dropSpecialCharacters\"\n        [formControl]=\"searchControl\"\n        (focus)=\"onFocus()\"\n        (blur)=\"onBlur()\"\n      ></k-input>\n    }\n    <k-scrollbar\n      #panel\n      class=\"k-select-panel k-select-modal-panel kui-paragraph-default-medium\"\n      [@kTransformPanel]=\"'showing'\"\n    >\n      <div class=\"k-select-panel__content k-select-modal-panel__content\" [class.k-hide-dropdown]=\"isHidePanel\">\n        @switch (true) {\n          @case (isOptionsLoading) {\n            <k-options-loading></k-options-loading>\n          }\n          @case (isEmptyOptions) {\n            @if (emptyTemplateRef()) {\n              <ng-container *ngTemplateOutlet=\"emptyTemplateRef()\" />\n            } @else {\n              <k-options-not-found [notFoundText]=\"notFoundText\" />\n            }\n          }\n          @default {\n            <ng-content></ng-content>\n          }\n        }\n      </div>\n    </k-scrollbar>\n  </k-base-modal>\n</ng-template>\n\n<ng-template #singleMode>\n  @if (name) {\n    <input type=\"hidden\" [attr.name]=\"name\" [value]=\"selected\" />\n  }\n  <div\n    class=\"k-input_input kui-base-default-medium\"\n    [class.filled]=\"isSelected || isOpen\"\n    [class.with-label]=\"withLabel\"\n    (click)=\"toggle($event)\"\n  >\n    @if (!isSelected) {\n      <div class=\"k-input_input_placeholder\">{{ placeholder }}</div>\n    } @else {\n      <ng-container\n        *ngTemplateOutlet=\"\n          valueContent ? valueContent : selectedOption?.selectedTemplate;\n          context: { $implicit: selected, disabled: isDisabled }\n        \"\n      ></ng-container>\n    }\n  </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { kTransformPanel } from 'kara-ui-alfa/animation';\nimport { KIconComponent } from 'kara-ui-alfa/components/icon';\nimport { KFieldErrorComponent } from 'kara-ui-alfa/components/form/field-error';\nimport { KScrollbarComponent } from 'kara-ui-alfa/components/scrollbar';\nimport { KSelectComponent } from '../select/select.component';\n\n@Component({\n  selector: 'k-select-date',\n  templateUrl: './select-date.component.html',\n  styleUrls: ['../../../input/input.component.scss', './select-date.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [kTransformPanel],\n  imports: [OverlayModule, KIconComponent, KFieldErrorComponent, KScrollbarComponent, NgTemplateOutlet],\n})\nexport class KSelectDateComponent<T> extends KSelectComponent<T> {}\n","<div\n  #origin=\"cdkOverlayOrigin\"\n  cdkOverlayOrigin\n  class=\"k-calendar-select\"\n  [id]=\"id\"\n  [attr.tabindex]=\"tabIndex\"\n  (click)=\"toggle($event)\"\n>\n  <ng-container *ngTemplateOutlet=\"isSelected ? selectedTemplate : labelTemplate\"></ng-container>\n\n  <k-icon icon=\"chevron-down-xs\" class=\"k-calendar-select_icon-dropdown\" [class.open]=\"isOpen\"></k-icon>\n</div>\n\n@if (control && control.touched && !disabled) {\n  <k-field-error [control]=\"control.control\" [errorMessages]=\"errorMessages()\"></k-field-error>\n}\n\n<ng-template\n  cdkConnectedOverlay\n  [cdkConnectedOverlayOrigin]=\"origin\"\n  [cdkConnectedOverlayOpen]=\"isOpen\"\n  [cdkConnectedOverlayPositions]=\"positions\"\n  (attach)=\"scrollToFirstSelected()\"\n  (detach)=\"close()\"\n>\n  <k-scrollbar #panel class=\"k-calendar-select-panel kui-paragraph-default-medium\" [@kTransformPanel]=\"'showing'\">\n    <div class=\"k-calendar-select-panel__content\"><ng-content></ng-content></div>\n  </k-scrollbar>\n</ng-template>\n\n<ng-template #labelTemplate>\n  <label class=\"k-calendar-select_label\" [attr.for]=\"id\">{{ label }}</label>\n</ng-template>\n\n<ng-template #selectedTemplate let-disabled=\"disabled\">\n  <div class=\"k-calendar-select_content kui-paragraph-default-medium\" [class.disabled]=\"disabled\">\n    <ng-container\n      *ngTemplateOutlet=\"valueContent ? valueContent : defaultValueContent; context: { $implicit: selected }\"\n    ></ng-container>\n  </div>\n</ng-template>\n\n<ng-template #defaultValueContent let-data>\n  {{ data }}\n</ng-template>\n","import { Highlightable } from '@angular/cdk/a11y';\nimport {\n  Directive,\n  ElementRef,\n  EventEmitter,\n  Host,\n  Inject,\n  Input,\n  Optional,\n  Output,\n  TemplateRef,\n  ViewChild,\n  signal,\n} from '@angular/core';\nimport { KARA_MULTI_SELECT } from '../../select.tokens';\n\n@Directive({\n  host: {\n    '[class.disabled]': 'disabled',\n    '[class.selected]': 'isSelected()',\n    '[class.active]': 'isActive()',\n    '[class.multiple]': 'isMultiple',\n    '(click)': 'select($event)',\n  },\n})\nexport abstract class KBaseOption<T> implements Highlightable {\n  @Input({ required: true }) value!: T;\n\n  @Input() disabled = false;\n\n  @Output() selected = new EventEmitter<KBaseOption<T>>();\n\n  protected select(event: Event): void {\n    event.stopPropagation();\n    if (!this.disabled) {\n      this.highlightAsSelected();\n      this.selected.emit(this);\n    }\n  }\n\n  protected readonly isSelected = signal(false);\n  protected readonly isActive = signal(false);\n\n  @ViewChild('selectedTemplate', { static: true }) selectedTemplate?: TemplateRef<unknown>;\n\n  constructor(\n    private host: ElementRef<HTMLElement>,\n    @Inject(KARA_MULTI_SELECT) @Host() @Optional() protected isMultiple: boolean,\n  ) {}\n\n  setActiveStyles(): void {\n    this.isActive.set(true);\n  }\n\n  setInactiveStyles(): void {\n    this.isActive.set(false);\n  }\n\n  scrollIntoView(options?: ScrollIntoViewOptions): void {\n    requestAnimationFrame(() => {\n      this.host.nativeElement.scrollIntoView(options);\n    });\n  }\n\n  highlightAsSelected(): void {\n    this.isSelected.set(true);\n  }\n\n  deselect(): void {\n    this.isSelected.set(false);\n  }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\nimport { KCheckboxComponent } from 'kara-ui-alfa/components/form/checkbox';\nimport { KIconComponent } from 'kara-ui-alfa/components/icon';\n\n@Component({\n  selector: 'k-option-container',\n  templateUrl: './option-container.component.html',\n  styleUrls: ['./option-container.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [KCheckboxComponent, KIconComponent],\n})\nexport class KOptionContainerComponent {\n  @Input()\n  @HostBinding('class.disabled')\n  disabled = false;\n\n  @Input()\n  @HostBinding('class.selected')\n  isSelected = false;\n\n  @Input()\n  @HostBinding('class.active')\n  isActive = false;\n\n  @Input()\n  @HostBinding('class.multiple')\n  multiple?: boolean;\n}\n","@if (multiple) {\n  <k-checkbox class=\"k-option-checkbox\" [value]=\"isSelected\" [disabled]=\"disabled\"></k-checkbox>\n}\n\n<div class=\"k-option-content\">\n  <ng-content></ng-content>\n</div>\n\n@if (!multiple) {\n  <div class=\"k-option-selected\">\n    @if (isSelected) {\n      <k-icon icon=\"checkmark-m\"></k-icon>\n    }\n  </div>\n}\n","import { ChangeDetectionStrategy, Component, Input, input } from '@angular/core';\nimport { type KIcon, KIconComponent } from 'kara-ui-alfa/components/icon';\nimport { KBaseOption } from '../base-option';\nimport { KOptionContainerComponent } from '../option-container/option-container.component';\nimport { KARA_OPTION_PROVIDER } from '../options.tokens';\n\n@Component({\n  selector: 'k-option',\n  templateUrl: './option.component.html',\n  styleUrls: ['./option.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [KOptionContainerComponent, KIconComponent],\n  providers: [\n    {\n      provide: KARA_OPTION_PROVIDER,\n      useExisting: KOptionComponent,\n    },\n  ],\n})\nexport class KOptionComponent<T> extends KBaseOption<T> {\n  /** Заголовок */\n  @Input({ required: true }) title!: string;\n\n  /** Будет отображаться вместо `title` в селекте */\n  @Input() selectedView?: string;\n\n  /** Иконка */\n  readonly icon = input<KIcon>();\n}\n","<k-option-container [disabled]=\"disabled\" [isSelected]=\"isSelected()\" [isActive]=\"isActive()\" [multiple]=\"isMultiple\">\n  <div class=\"k-option-content kui-paragraph-default-small\" [class.disabled]=\"disabled\">\n    <div class=\"k-option-title\">\n      @if (icon()) {\n        <div class=\"k-option-icon\">\n          <k-icon [icon]=\"icon()\" />\n        </div>\n      }\n      <span class=\"k-option-content-title\">\n        {{ title }}\n      </span>\n    </div>\n    <ng-content></ng-content>\n  </div>\n</k-option-container>\n\n<ng-template #selectedTemplate let-disabled=\"disabled\">\n  <div class=\"k-option-title\">\n    @if (icon()) {\n      <k-icon [icon]=\"icon()\" />\n    }\n    {{ selectedView || title }}\n  </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { KIconComponent } from 'kara-ui-alfa/components/icon';\nimport { KLogoViewBankComponent } from 'kara-ui-alfa/components/logo-view';\nimport { KBaseOption } from '../base-option';\nimport { KOptionContainerComponent } from '../option-container/option-container.component';\nimport { KARA_OPTION_PROVIDER } from '../options.tokens';\n\n@Component({\n  selector: 'k-option-bank',\n  templateUrl: './option-bank.component.html',\n  styleUrls: ['./option-bank.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [KOptionContainerComponent, NgTemplateOutlet, KIconComponent, KLogoViewBankComponent],\n  providers: [\n    {\n      provide: KARA_OPTION_PROVIDER,\n      useExisting: KOptionBankComponent,\n    },\n  ],\n})\nexport class KOptionBankComponent<T> extends KBaseOption<T> {\n  /** Название */\n  @Input({ required: true }) label!: string;\n  /** Описание банка */\n  @Input() description?: string;\n  /** Bic или SWIFT номер банка */\n  @Input({ required: true }) bic!: string;\n  /** Предупреждающее сообщение */\n  @Input() warningMessage?: string;\n}\n","<k-option-container [disabled]=\"disabled\" [isSelected]=\"isSelected()\" [isActive]=\"isActive()\" [multiple]=\"isMultiple\">\n  <ng-container *ngTemplateOutlet=\"selectedTemplate; context: { disabled: disabled }\"></ng-container>\n</k-option-container>\n\n<ng-template #selectedTemplate let-disabled=\"disabled\">\n  <div class=\"k-option-account-content\" [class.disabled]=\"disabled\">\n    <k-logo-view-bank class=\"k-account-content-logo\" [bic]=\"bic\"></k-logo-view-bank>\n\n    <div class=\"k-account-content\">\n      <div class=\"k-account-content-label kui-base-default-medium\">{{ label }}</div>\n      @if (description) {\n        <div class=\"k-account-content-description kui-base-default-small\">{{ description }}</div>\n      }\n    </div>\n\n    @if (warningMessage) {\n      <div class=\"k-account-warning kui-base-default-xsmall\">\n        <k-icon size=\"XS\" icon=\"alert-xs\" class=\"k-account-warning-icon\"></k-icon>\n        <span>{{ warningMessage }}</span>\n      </div>\n    }\n  </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, computed, input } from '@angular/core';\nimport { CurrencyCodes } from 'kara-ui-alfa/pipes';\nimport { KAmountComponent } from 'kara-ui-alfa/components/amount';\nimport { KIconComponent } from 'kara-ui-alfa/components/icon';\nimport {\n  type KCardType,\n  KLogoViewAccountComponent,\n  KLogoViewCardComponent,\n  K_CARD_TYPES,\n} from 'kara-ui-alfa/components/logo-view';\nimport { KDataContentComponent } from 'kara-ui-alfa/components/data-content';\n\nconst LATEST_FOUR_SYMBOL = -4;\n\n@Component({\n  selector: 'k-option-account-content',\n  imports: [KAmountComponent, KIconComponent, KLogoViewAccountComponent, KLogoViewCardComponent, KDataContentComponent],\n  templateUrl: './account-content.component.html',\n  styleUrls: ['./account-content.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class KOptionAccountContentComponent {\n  /** Тип счета */\n  readonly type = input<'account' | KCardType | 'deposit'>('account');\n\n  /** Валюта счета */\n  @Input({ required: true }) currency!: CurrencyCodes | string;\n  /** Сумма на счету */\n  @Input({ required: true }) amount!: number;\n  /** номер счета */\n  @Input({ required: true }) number!: string | number;\n  /** Название */\n  @Input({ required: true }) label!: string;\n  @Input() contentValue?: string;\n  @Input() subValue?: string;\n  /** Предупреждающее сообщение */\n  @Input() warningMessage?: string;\n  @Input() @HostBinding('class.disabled') disabled = false;\n\n  protected readonly cardType = computed(() => K_CARD_TYPES.find((type) => type === this.type()));\n\n  get formattedNumber(): string {\n    return this.number?.toString().trimEnd().slice(LATEST_FOUR_SYMBOL);\n  }\n}\n","<div class=\"k-option-account-content\">\n  @if (cardType(); as cType) {\n    <k-logo-view-card class=\"k-account-flag\" [type]=\"cType\"></k-logo-view-card>\n  } @else {\n    <k-logo-view-account class=\"k-account-flag\" [currency]=\"currency\"></k-logo-view-account>\n  }\n\n  <k-data-content\n    class=\"k-account-content\"\n    [revers]=\"true\"\n    [subtitle]=\"label + ' • ' + formattedNumber\"\n    [subvalue]=\"subValue\"\n  >\n    <ng-container kDataContentTitle>\n      <k-amount class=\"kui-mono-medium\" [currency]=\"currency\" [value]=\"amount\"></k-amount>\n    </ng-container>\n\n    @if (contentValue) {\n      <ng-container kDataContentValue>{{ contentValue }}</ng-container>\n    }\n  </k-data-content>\n\n  @if (warningMessage) {\n    <div class=\"k-account-warning kui-base-default-xsmall\">\n      <k-icon size=\"XS\" icon=\"alert-xs\" class=\"k-account-warning-icon\"></k-icon>\n      <span>{{ warningMessage }}</span>\n    </div>\n  }\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport type { CurrencyCodes } from 'kara-ui-alfa/pipes';\nimport type { KCardType } from 'kara-ui-alfa/components/logo-view';\nimport { KBaseOption } from '../base-option';\nimport { KOptionContainerComponent } from '../option-container/option-container.component';\nimport { KARA_OPTION_PROVIDER } from '../options.tokens';\nimport { KOptionAccountContentComponent } from './account-content/account-content.component';\n\n@Component({\n  selector: 'k-option-account',\n  templateUrl: './option-account.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [KOptionContainerComponent, KOptionAccountContentComponent, NgTemplateOutlet],\n  providers: [\n    {\n      provide: KARA_OPTION_PROVIDER,\n      useExisting: KOptionAccountComponent,\n    },\n  ],\n})\nexport class KOptionAccountComponent<T> extends KBaseOption<T> {\n  /** Тип счета */\n  @Input() type: 'account' | KCardType | 'deposit' = 'account';\n\n  /** Валюта счета */\n  @Input({ required: true }) currency!: CurrencyCodes | string;\n  /** Сумма на счету */\n  @Input({ required: true }) amount!: number;\n  /** номер счета */\n  @Input({ required: true }) number!: string | number;\n  /** Название */\n  @Input({ required: true }) label!: string;\n  /** Контент справа */\n  @Input() contentValue?: string;\n  /** Контент справа */\n  @Input() subValue?: string;\n  /** Предупреждающее сообщение */\n  @Input() warningMessage?: string;\n}\n","<k-option-container [disabled]=\"disabled\" [isSelected]=\"isSelected()\" [isActive]=\"isActive()\" [multiple]=\"isMultiple\">\n  <ng-container *ngTemplateOutlet=\"selectedTemplate; context: { disabled: disabled }\"></ng-container>\n</k-option-container>\n\n<ng-template #selectedTemplate let-disabled=\"disabled\">\n  <k-option-account-content\n    [disabled]=\"disabled\"\n    [type]=\"type\"\n    [label]=\"label\"\n    [number]=\"number\"\n    [currency]=\"currency\"\n    [amount]=\"amount\"\n    [warningMessage]=\"warningMessage\"\n    [contentValue]=\"contentValue\"\n    [subValue]=\"subValue\"\n  ></k-option-account-content>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'k-group-options',\n  imports: [],\n  templateUrl: './group-options.component.html',\n  styleUrls: ['./group-options.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class KGroupOptionsComponent {\n  @Input({ required: true }) label!: string;\n  @Input() description?: string;\n}\n","<div class=\"k-group\">\n  <h5 class=\"k-group-title kui-title-accent-xsmall\">{{ label }}</h5>\n  @if (description) {\n    <span class=\"k-group-description kui-subtitle-xsmall\">{{ description }}</span>\n  }\n</div>\n\n<ng-content></ng-content>\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map, startWith } from 'rxjs/operators';\nimport { KARA_SELECT } from './select.tokens';\n\ntype KOptionsSearchCompactor<T> = (item: T, term: string) => boolean;\ntype KOptionsSearchSort<T> = (a: T, b: T, term: string) => number;\n\n@Pipe({ name: 'kOptionsSearch' })\nexport class KOptionsSearchPipe implements PipeTransform {\n  private select = inject(KARA_SELECT, { host: true });\n\n  private items$ = new BehaviorSubject<any[]>([]);\n  private searchCompactor?: KOptionsSearchCompactor<any> | (keyof any)[];\n  private searchSort?: KOptionsSearchSort<any>;\n\n  filteredItems$ = combineLatest([\n    this.items$,\n    this.select.searchControl.valueChanges.pipe(startWith(''), debounceTime(300), distinctUntilChanged()),\n  ]).pipe(\n    debounceTime(50),\n    map(([items, term]) => this.filterLogic(items, term)),\n  );\n\n  transform<T extends string>(\n    data: T[],\n    searchCompactor?: undefined,\n    searchSort?: KOptionsSearchSort<T>,\n  ): Observable<T[]>;\n\n  transform<T>(\n    data: T[],\n    searchCompactor: KOptionsSearchCompactor<T> | (keyof T)[],\n    searchSort?: KOptionsSearchSort<T>,\n  ): Observable<T[]>;\n\n  transform<T>(\n    data: T[],\n    searchCompactor?: KOptionsSearchCompactor<T> | (keyof T)[],\n    searchSort?: KOptionsSearchSort<T>,\n  ): Observable<T[]> {\n    if (this.searchCompactor !== searchCompactor) {\n      this.searchCompactor = searchCompactor;\n    }\n\n    if (this.searchSort !== searchSort) {\n      this.searchSort = searchSort;\n    }\n\n    if (this.items$.value !== data) {\n      this.items$.next(data);\n    }\n\n    return this.filteredItems$;\n  }\n\n  private filterLogic<T extends Record<string | number | symbol, unknown>>(items: T[], term: string | null): T[] {\n    const { searchCompactor } = this;\n\n    if (term) {\n      let result =\n        typeof searchCompactor === 'function'\n          ? items.filter((item) => searchCompactor(item, term))\n          : items.filter((item) => this.defaultSearch(item, term, searchCompactor));\n\n      if (result && typeof this.searchSort === 'function') {\n        result = result.sort((a, b) => this.searchSort!(a, b, term));\n      }\n\n      if (Array.isArray(result)) {\n        return result;\n      }\n    }\n\n    return items;\n  }\n\n  private defaultSearch<T>(item: T, term: string, searchCompactor?: (keyof T)[]): boolean {\n    if (item && typeof item === 'object' && searchCompactor?.length) {\n      return searchCompactor.some((key) => item[key] && `${item[key]}`.toLowerCase().includes(term.toLowerCase()));\n    }\n\n    if (item && typeof item !== 'object') {\n      return `${item}`.toLowerCase().includes(term.toLowerCase());\n    }\n\n    return false;\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { KSelectComponent } from './components/select/select.component';\nimport { KMultiSelectComponent } from './components/multi-select/select-multi.component';\nimport { KOptionComponent } from './components/option/list/option.component';\nimport { KOptionAccountComponent } from './components/option/account/option-account.component';\nimport { KOptionsSearchPipe } from './options-search.pipe';\nimport { KGroupOptionsComponent } from './components/option/group-options/group-options.component';\nimport { KOptionAccountContentComponent } from './components/option/account/account-content/account-content.component';\nimport { KSelectModalComponent } from './components/select-modal/select-modal.component';\nimport { KOptionBankComponent } from './components/option/bank/option-bank.component';\n\n@NgModule({\n  exports: [\n    KSelectComponent,\n    KSelectModalComponent,\n    KMultiSelectComponent,\n    KOptionComponent,\n    KOptionBankComponent,\n    KOptionAccountComponent,\n    KOptionAccountContentComponent,\n    KOptionsSearchPipe,\n    KGroupOptionsComponent,\n  ],\n  imports: [\n    KSelectComponent,\n    KSelectModalComponent,\n    KMultiSelectComponent,\n    KOptionComponent,\n    KOptionBankComponent,\n    KOptionAccountComponent,\n    KOptionAccountContentComponent,\n    KOptionsSearchPipe,\n    KGroupOptionsComponent,\n  ],\n})\nexport class KSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}