{"version":3,"file":"favian-headwind-ui.mjs","sources":["../../../projects/headwind-ui/src/components/headwind-accordion/headwind-accordion-content/headwind-accordion-content.directive.ts","../../../projects/headwind-ui/src/components/headwind-accordion/service/headwind-accordion.service.ts","../../../projects/headwind-ui/src/components/headwind-accordion/headwind-accordion.component.ts","../../../projects/headwind-ui/src/components/headwind-accordion/headwind-accordion.component.html","../../../projects/headwind-ui/src/components/headwind-accordion/headwind-accordion-button/headwind-accordion-button.component.ts","../../../projects/headwind-ui/src/components/headwind-accordion/headwind-accordion-button/headwind-accordion-button.component.html","../../../projects/headwind-ui/src/abstracts/headwind-control-value-accessor.ts","../../../projects/headwind-ui/src/constants/headwind-errors.ts","../../../projects/headwind-ui/src/services/headwind-platform.service.ts","../../../projects/headwind-ui/src/services/headwind-click-detector.service.ts","../../../projects/headwind-ui/src/components/headwind-checkbox/service/headwind-checkbox.service.ts","../../../projects/headwind-ui/src/components/headwind-checkbox/headwind-checkbox.component.ts","../../../projects/headwind-ui/src/components/headwind-checkbox/headwind-checkbox.component.html","../../../projects/headwind-ui/src/components/headwind-checkbox/headwind-checkbox-button/headwind-checkbox-checked/headwind-checkbox-checked.directive.ts","../../../projects/headwind-ui/src/components/headwind-checkbox/headwind-checkbox-button/headwind-checkbox-button.component.ts","../../../projects/headwind-ui/src/components/headwind-checkbox/headwind-checkbox-button/headwind-checkbox-button.component.html","../../../projects/headwind-ui/src/components/headwind-popover/services/headwind-popover.service.ts","../../../projects/headwind-ui/src/services/headwind-window.service.ts","../../../projects/headwind-ui/src/components/headwind-popover/headwind-popover-overlay/headwind-popover-overlay.component.ts","../../../projects/headwind-ui/src/components/headwind-popover/headwind-popover-overlay/headwind-popover-overlay.component.html","../../../projects/headwind-ui/src/components/headwind-popover/headwind-popover-overlay/headwind-popover-overlay.directive.ts","../../../projects/headwind-ui/src/components/headwind-popover/headwind-popover-button/headwind-popover-button.directive.ts","../../../projects/headwind-ui/src/components/headwind-overlay-outlet/headwind-overlay-outlet.component.ts","../../../projects/headwind-ui/src/components/headwind-overlay-outlet/headwind-overlay-outlet.component.html","../../../projects/headwind-ui/src/services/headwind-overlay.service.ts","../../../projects/headwind-ui/src/services/headwind-animator.ts","../../../projects/headwind-ui/src/components/headwind-popover/headwind-popover.component.ts","../../../projects/headwind-ui/src/components/headwind-popover/headwind-popover.component.html","../../../projects/headwind-ui/src/components/headwind-radio-group/headwind-radio/headwind-radio-button/headwind-radio-selected/headwind-radio-selected.directive.ts","../../../projects/headwind-ui/src/components/headwind-radio-group/headwind-radio/headwind-radio-button/headwind-radio-button.component.ts","../../../projects/headwind-ui/src/components/headwind-radio-group/headwind-radio/headwind-radio-button/headwind-radio-button.component.html","../../../projects/headwind-ui/src/components/headwind-radio-group/service/headwind-radio-group.service.ts","../../../projects/headwind-ui/src/components/headwind-radio-group/headwind-radio/headwind-radio.component.ts","../../../projects/headwind-ui/src/components/headwind-radio-group/headwind-radio/headwind-radio.component.html","../../../projects/headwind-ui/src/services/headwind-query-list.service.ts","../../../projects/headwind-ui/src/components/headwind-radio-group/headwind-radio-group.component.ts","../../../projects/headwind-ui/src/components/headwind-radio-group/headwind-radio-group.component.html","../../../projects/headwind-ui/src/components/headwind-select/service/headwind-select.service.ts","../../../projects/headwind-ui/src/components/headwind-select/headwind-options-overlay/headwind-options-overlay.directive.ts","../../../projects/headwind-ui/src/components/headwind-select/headwind-options-overlay/headwind-option/headwind-option.component.ts","../../../projects/headwind-ui/src/components/headwind-select/headwind-options-overlay/headwind-option/headwind-option.component.html","../../../projects/headwind-ui/src/components/headwind-select/headwind-options-overlay/headwind-options-overlay.component.ts","../../../projects/headwind-ui/src/components/headwind-select/headwind-options-overlay/headwind-options-overlay.component.html","../../../projects/headwind-ui/src/components/headwind-select/headwind-select.component.ts","../../../projects/headwind-ui/src/components/headwind-select/headwind-select.component.html","../../../projects/headwind-ui/src/components/headwind-switch/service/headwind-switch.service.ts","../../../projects/headwind-ui/src/components/headwind-switch/headwind-switch.component.ts","../../../projects/headwind-ui/src/components/headwind-switch/headwind-switch.component.html","../../../projects/headwind-ui/src/components/headwind-switch/headwind-switch-track/headwind-switch-track.component.ts","../../../projects/headwind-ui/src/components/headwind-switch/headwind-switch-track/headwind-switch-track.component.html","../../../projects/headwind-ui/src/components/headwind-switch/headwind-switch-track/headwind-switch-thumb/headwind-switch-thumb.component.ts","../../../projects/headwind-ui/src/components/headwind-switch/headwind-switch-track/headwind-switch-thumb/headwind-switch-thumb.component.html","../../../projects/headwind-ui/src/components/headwind-tab-group/service/headwind-tab-group.service.ts","../../../projects/headwind-ui/src/components/headwind-tab-group/headwind-tab-group.component.ts","../../../projects/headwind-ui/src/components/headwind-tab-group/headwind-tab-group.component.html","../../../projects/headwind-ui/src/components/headwind-tab-group/headwind-tab-button-group/headwind-tab-button-group.component.ts","../../../projects/headwind-ui/src/components/headwind-tab-group/headwind-tab-button-group/headwind-tab-button-group.component.html","../../../projects/headwind-ui/src/components/headwind-tab-group/headwind-tab-content-group/headwind-tab-content/headwind-tab-content.directive.ts","../../../projects/headwind-ui/src/components/headwind-tab-group/headwind-tab-content-group/headwind-tab-content-group.component.ts","../../../projects/headwind-ui/src/components/headwind-tab-group/headwind-tab-content-group/headwind-tab-content-group.component.html","../../../projects/headwind-ui/src/components/headwind-tab-group/headwind-tab-button-group/headwind-tab-button/headwind-tab-button.component.ts","../../../projects/headwind-ui/src/components/headwind-tab-group/headwind-tab-button-group/headwind-tab-button/headwind-tab-button.component.html","../../../projects/headwind-ui/src/public-api.ts","../../../projects/headwind-ui/src/favian-headwind-ui.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: 'ng-template[headwindAccordionContent]',\r\n  standalone: true,\r\n})\r\nexport class HeadwindAccordionContentDirective {\r\n  constructor(public readonly templateRef: TemplateRef<any>) {}\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class HeadwindAccordionService {\r\n  /** Emits to toggle opened status */\r\n  toggleOpened = new EventEmitter<void>();\r\n\r\n  opened$ = new BehaviorSubject(false);\r\n\r\n  get opened(): boolean {\r\n    return this.opened$.value;\r\n  }\r\n\r\n  set opened(value: boolean) {\r\n    this.opened$.next(value);\r\n  }\r\n}\r\n","import {\r\n  AfterViewInit,\r\n  Component,\r\n  ContentChild,\r\n  EmbeddedViewRef,\r\n  EventEmitter,\r\n  Input,\r\n  OnDestroy,\r\n  Output,\r\n  ViewChild,\r\n  ViewContainerRef,\r\n} from '@angular/core';\r\nimport { HeadwindAccordionContentDirective } from './headwind-accordion-content/headwind-accordion-content.directive';\r\nimport { HeadwindAccordionService } from './service/headwind-accordion.service';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n  selector: 'headwind-accordion',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './headwind-accordion.component.html',\r\n  styleUrl: './headwind-accordion.component.scss',\r\n  providers: [HeadwindAccordionService],\r\n  host: {\r\n    class: 'headwind-accordion',\r\n    ['[class.headwind-opened]']: 'opened',\r\n  },\r\n})\r\nexport class HeadwindAccordionComponent implements AfterViewInit, OnDestroy {\r\n  @Output() openedChange = new EventEmitter<boolean>();\r\n  @ViewChild('accordionContentContainer', { read: ViewContainerRef }) accordionContentContainer?: ViewContainerRef;\r\n  @ContentChild(HeadwindAccordionContentDirective, { descendants: true })\r\n  accordionContent?: HeadwindAccordionContentDirective;\r\n\r\n  private _contentEmbeddedViewRef?: EmbeddedViewRef<any>;\r\n  private _openTimeoutId?: any;\r\n\r\n  constructor(private readonly _headwindAccordionService: HeadwindAccordionService) {\r\n    this._headwindAccordionService.toggleOpened.pipe(takeUntilDestroyed()).subscribe(() => {\r\n      const opened = !this.opened;\r\n\r\n      this.opened = opened; // to toggle content\r\n      this.openedChange.emit(opened);\r\n    });\r\n  }\r\n\r\n  get opened(): boolean {\r\n    return this._headwindAccordionService.opened;\r\n  }\r\n\r\n  @Input()\r\n  set opened(value: boolean) {\r\n    this._headwindAccordionService.opened = value;\r\n\r\n    if (value) {\r\n      this.open();\r\n    } else {\r\n      this.close();\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    // use timeout to prevent NG0100 error\r\n    this._openTimeoutId = setTimeout(() => {\r\n      if (this.opened) {\r\n        this.open();\r\n      }\r\n    });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    clearTimeout(this._openTimeoutId);\r\n  }\r\n\r\n  toggle(): void {\r\n    if (this.opened) {\r\n      this.close();\r\n    } else {\r\n      this.open();\r\n    }\r\n  }\r\n\r\n  open(): void {\r\n    if (this.accordionContentContainer && this.accordionContent && !this._contentEmbeddedViewRef) {\r\n      this._contentEmbeddedViewRef = this.accordionContentContainer.createEmbeddedView(\r\n        this.accordionContent.templateRef,\r\n      );\r\n    }\r\n\r\n    this.openedChange.emit(true);\r\n    this._headwindAccordionService.opened = true;\r\n  }\r\n\r\n  close(): void {\r\n    this._contentEmbeddedViewRef?.destroy();\r\n\r\n    delete this._contentEmbeddedViewRef;\r\n\r\n    this.openedChange.emit(false);\r\n    this._headwindAccordionService.opened = false;\r\n  }\r\n}\r\n","<ng-content></ng-content>\r\n\r\n<ng-container #accordionContentContainer></ng-container>\r\n","import { Component, HostListener } from '@angular/core';\r\nimport { HeadwindAccordionService } from '../service/headwind-accordion.service';\r\n\r\n@Component({\r\n  selector: 'headwind-accordion-button',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './headwind-accordion-button.component.html',\r\n  styleUrl: './headwind-accordion-button.component.scss',\r\n  host: {\r\n    tabindex: '0',\r\n    role: 'button',\r\n    class: 'headwind-accordion-button',\r\n    ['[attr.aria-expanded]']: 'opened',\r\n  },\r\n})\r\nexport class HeadwindAccordionButtonComponent {\r\n  constructor(private readonly _headwindAccordionService: HeadwindAccordionService) {}\r\n\r\n  get opened(): boolean {\r\n    return this._headwindAccordionService.opened;\r\n  }\r\n\r\n  @HostListener('click')\r\n  onHostClick(): void {\r\n    this._headwindAccordionService.toggleOpened.emit();\r\n  }\r\n\r\n  @HostListener('keydown.space', ['$event'])\r\n  onHostSpaceKeydown(event: Event): void {\r\n    event.stopPropagation();\r\n    event.preventDefault();\r\n\r\n    this._headwindAccordionService.toggleOpened.emit();\r\n  }\r\n\r\n  @HostListener('keydown.enter', ['$event'])\r\n  onHostEnterKeydown(event: Event): void {\r\n    event.stopPropagation();\r\n    event.preventDefault();\r\n\r\n    this._headwindAccordionService.toggleOpened.emit();\r\n  }\r\n}\r\n","<ng-content></ng-content>\r\n","import { ControlValueAccessor, NgControl } from '@angular/forms';\r\nimport { ElementRef, inject, Renderer2 } from '@angular/core';\r\n\r\nexport abstract class HeadwindControlValueAccessor implements ControlValueAccessor {\r\n  isDisabled = false;\r\n\r\n  private readonly _internalNgControl: NgControl | null;\r\n  private readonly _internalRenderer: Renderer2;\r\n  private readonly _internalElementRef: ElementRef<HTMLElement>;\r\n\r\n  protected constructor() {\r\n    this._internalNgControl = inject(NgControl, { optional: true });\r\n    this._internalRenderer = inject(Renderer2);\r\n    this._internalElementRef = inject(ElementRef);\r\n\r\n    if (this._internalNgControl) {\r\n      this._internalNgControl.valueAccessor = this;\r\n    }\r\n  }\r\n\r\n  onChange = (value: any) => {};\r\n\r\n  onTouched = () => {};\r\n\r\n  abstract writeValue(obj: any): void;\r\n\r\n  registerOnChange(fn = (value: any) => {}): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn = () => {}): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean): void {\r\n    this.isDisabled = isDisabled;\r\n\r\n    if (isDisabled) {\r\n      this._setAttribute('disabled');\r\n    } else {\r\n      this._removeAttribute('disabled');\r\n    }\r\n  }\r\n\r\n  updateValue(value: any): void {\r\n    this.onChange(value);\r\n    this.writeValue(value);\r\n  }\r\n\r\n  private _setAttribute(name: string): void {\r\n    this._internalRenderer.setAttribute(this._internalElementRef.nativeElement, name, '');\r\n  }\r\n\r\n  private _removeAttribute(name: string): void {\r\n    this._internalRenderer.removeAttribute(this._internalElementRef.nativeElement, name);\r\n  }\r\n}\r\n","export const HeadwindErrors = {\r\n  headwindError0001:\r\n    '[HEADWIND_E0001] HeadwindOptionsOverlayDirective should be bound to HeadwindOptionsOverlayComponent to open options of HeadwindSelectComponent',\r\n  headwindError0002:\r\n    '[HEADWIND_E0002] HeadwindOptionsOverlayComponent is required in HeadwindSelectComponent to open options',\r\n  headwindError0003:\r\n    '[HEADWIND_E0003] HeadwindPopoverOverlayDirective should be bound to HeadwindPopoverOverlayComponent to open popover of HeadwindPopoverComponent',\r\n  headwindError0004:\r\n    '[HEADWIND_E0004] HeadwindPopoverOverlayComponent is required in HeadwindPopoverComponent to open popover',\r\n} as const;\r\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class HeadwindPlatformService {\r\n  constructor(@Inject(PLATFORM_ID) private readonly _platformId: Object) {}\r\n\r\n  get isBrowser(): boolean {\r\n    return isPlatformBrowser(this._platformId);\r\n  }\r\n}\r\n","import { EventEmitter, Injectable, OnDestroy } from '@angular/core';\r\nimport { HeadwindErrors } from '../constants/headwind-errors';\r\nimport { HeadwindPlatformService } from './headwind-platform.service';\r\n\r\n@Injectable()\r\nexport class HeadwindClickDetector implements OnDestroy {\r\n  outsideClick = new EventEmitter<void>();\r\n  insideClick = new EventEmitter<void>();\r\n\r\n  private _container?: Node;\r\n  private _mouseDownDetectedFromOutside = false;\r\n  private _mouseDownDetectedFromInside = false;\r\n\r\n  constructor(private readonly _headwindPlatformService: HeadwindPlatformService) {}\r\n\r\n  ngOnDestroy() {\r\n    this.unregister();\r\n  }\r\n\r\n  register(container: Node): void {\r\n    this._container = container;\r\n\r\n    this._removeEventListeners();\r\n    this._addEventListeners();\r\n  }\r\n\r\n  unregister(): void {\r\n    delete this._container;\r\n\r\n    this._removeEventListeners();\r\n  }\r\n\r\n  private _addEventListeners(): void {\r\n    if (this._headwindPlatformService.isBrowser) {\r\n      window.addEventListener('mousedown', this._windowMousedownListener);\r\n      window.addEventListener('mouseup', this._windowMouseupListener);\r\n    }\r\n  }\r\n\r\n  private _removeEventListeners(): void {\r\n    if (this._headwindPlatformService.isBrowser) {\r\n      window.removeEventListener('mousedown', this._windowMousedownListener);\r\n      window.removeEventListener('mouseup', this._windowMouseupListener);\r\n    }\r\n  }\r\n\r\n  private _windowMousedownListener = (event: Event) => {\r\n    if (!this._container) {\r\n      console.error(HeadwindErrors.headwindError0003);\r\n      return;\r\n    }\r\n\r\n    this._mouseDownDetectedFromOutside = event.target instanceof Node && !this._container.contains(event.target);\r\n    this._mouseDownDetectedFromInside = event.target instanceof Node && this._container.contains(event.target);\r\n  };\r\n\r\n  private _windowMouseupListener = (event: Event) => {\r\n    if (!this._container) {\r\n      console.error(HeadwindErrors.headwindError0003);\r\n      return;\r\n    }\r\n\r\n    if (this._mouseDownDetectedFromOutside && event.target instanceof Node && !this._container.contains(event.target)) {\r\n      this.outsideClick.emit();\r\n    }\r\n\r\n    if (this._mouseDownDetectedFromInside && event.target instanceof Node && this._container.contains(event.target)) {\r\n      this.insideClick.emit();\r\n    }\r\n  };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class HeadwindCheckboxService {\r\n  checked$ = new BehaviorSubject(false);\r\n\r\n  get checked(): boolean {\r\n    return this.checked$.value;\r\n  }\r\n\r\n  set checked(value: boolean) {\r\n    this.checked$.next(value);\r\n  }\r\n}\r\n","import { booleanAttribute, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\nimport { HeadwindControlValueAccessor } from '../../abstracts/headwind-control-value-accessor';\r\nimport { HeadwindClickDetector } from '../../services/headwind-click-detector.service';\r\nimport { HeadwindCheckboxService } from './service/headwind-checkbox.service';\r\n\r\n@Component({\r\n  selector: 'headwind-checkbox',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './headwind-checkbox.component.html',\r\n  styleUrl: './headwind-checkbox.component.scss',\r\n  providers: [HeadwindClickDetector, HeadwindCheckboxService],\r\n  host: {\r\n    tabindex: '0',\r\n    class: 'headwind-checkbox',\r\n    role: 'checkbox',\r\n    ['[attr.aria-checked]']: 'checked',\r\n    ['[class.headwind-checked]']: 'checked',\r\n  },\r\n})\r\nexport class HeadwindCheckboxComponent extends HeadwindControlValueAccessor {\r\n  @Output() checkedChange = new EventEmitter<boolean>();\r\n\r\n  constructor(private readonly _headwindCheckboxService: HeadwindCheckboxService) {\r\n    super();\r\n  }\r\n\r\n  @Input({ transform: booleanAttribute })\r\n  get disabled(): boolean {\r\n    return this.isDisabled;\r\n  }\r\n\r\n  set disabled(value: boolean) {\r\n    this.setDisabledState(value);\r\n  }\r\n\r\n  @Input({ transform: booleanAttribute })\r\n  get checked(): boolean {\r\n    return this._headwindCheckboxService.checked;\r\n  }\r\n\r\n  set checked(value: boolean) {\r\n    this._headwindCheckboxService.checked = value;\r\n  }\r\n\r\n  @HostListener('click')\r\n  onHostClick(): void {\r\n    this.toggle();\r\n  }\r\n\r\n  @HostListener('blur')\r\n  onHostBlur(): void {\r\n    this.onTouched();\r\n  }\r\n\r\n  @HostListener('keydown.space', ['$event'])\r\n  onHostSpaceKeydown(event: Event): void {\r\n    event.stopPropagation();\r\n    event.preventDefault();\r\n\r\n    this.toggle();\r\n  }\r\n\r\n  override writeValue(obj: any) {\r\n    this.checked = obj;\r\n  }\r\n\r\n  override updateValue(value: any) {\r\n    super.updateValue(value);\r\n    this.checkedChange.emit(value);\r\n  }\r\n\r\n  check(): void {\r\n    if (this.disabled) {\r\n      return;\r\n    }\r\n\r\n    this.updateValue(true);\r\n  }\r\n\r\n  uncheck(): void {\r\n    if (this.disabled) {\r\n      return;\r\n    }\r\n\r\n    this.updateValue(false);\r\n  }\r\n\r\n  toggle(): void {\r\n    if (this.checked) {\r\n      this.uncheck();\r\n    } else {\r\n      this.check();\r\n    }\r\n  }\r\n}\r\n","<ng-content></ng-content>\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: 'ng-template[headwindCheckboxChecked]',\r\n  standalone: true,\r\n})\r\nexport class HeadwindCheckboxCheckedDirective {\r\n  constructor(public readonly templateRef: TemplateRef<any>) {}\r\n}\r\n","import {\r\n  AfterViewInit,\r\n  Component,\r\n  ContentChild,\r\n  DestroyRef,\r\n  EmbeddedViewRef,\r\n  OnDestroy,\r\n  ViewChild,\r\n  ViewContainerRef,\r\n} from '@angular/core';\r\nimport { HeadwindCheckboxCheckedDirective } from './headwind-checkbox-checked/headwind-checkbox-checked.directive';\r\nimport { HeadwindCheckboxService } from '../service/headwind-checkbox.service';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n  selector: 'headwind-checkbox-button',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './headwind-checkbox-button.component.html',\r\n  styleUrl: './headwind-checkbox-button.component.scss',\r\n  host: {\r\n    class: 'headwind-checkbox-button',\r\n  },\r\n})\r\nexport class HeadwindCheckboxButtonComponent implements AfterViewInit, OnDestroy {\r\n  @ViewChild('checkboxCheckedContainer', { read: ViewContainerRef }) checkboxCheckedContainer?: ViewContainerRef;\r\n\r\n  @ContentChild(HeadwindCheckboxCheckedDirective, { descendants: true })\r\n  checkboxChecked?: HeadwindCheckboxCheckedDirective;\r\n\r\n  private _timeoutId?: any;\r\n  private _checkedEmbeddedViewRef?: EmbeddedViewRef<any>;\r\n\r\n  constructor(\r\n    private readonly _destroyRef: DestroyRef,\r\n    private readonly _headwindCheckboxService: HeadwindCheckboxService,\r\n  ) {}\r\n\r\n  get checked(): boolean {\r\n    return this._headwindCheckboxService.checked;\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    // use timeout to prevent NG0100 error\r\n    this._timeoutId = setTimeout(() => {\r\n      this._headwindCheckboxService.checked$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((checked) => {\r\n        if (this.checkboxCheckedContainer && this.checkboxChecked) {\r\n          if (checked) {\r\n            if (!this._checkedEmbeddedViewRef) {\r\n              this._checkedEmbeddedViewRef = this.checkboxCheckedContainer.createEmbeddedView(\r\n                this.checkboxChecked.templateRef,\r\n              );\r\n            }\r\n          } else {\r\n            this._checkedEmbeddedViewRef?.destroy();\r\n            delete this._checkedEmbeddedViewRef;\r\n          }\r\n        }\r\n      });\r\n    });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    clearTimeout(this._timeoutId);\r\n  }\r\n}\r\n","<ng-container #checkboxCheckedContainer></ng-container>\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class HeadwindPopoverService {\r\n  /** Emits to open popover */\r\n  openPopover = new EventEmitter<void>();\r\n\r\n  /** Emits to close popover */\r\n  closePopover = new EventEmitter<void>();\r\n\r\n  /** Popover opened status */\r\n  popoverOpened$ = new BehaviorSubject(false);\r\n\r\n  get popoverOpened(): boolean {\r\n    return this.popoverOpened$.value;\r\n  }\r\n\r\n  set popoverOpened(value: boolean) {\r\n    this.popoverOpened$.next(value);\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class HeadwindWindowService {\r\n  /**\r\n   * Returns whether there is space for an element at the bottom of the Window\r\n   * @param y - Y-axis position of the top of the element\r\n   * @param height - Height of the element\r\n   */\r\n  isBottomSpaceAvailable(y: number, height: number): boolean {\r\n    return y + height < window.innerHeight;\r\n  }\r\n\r\n  /**\r\n   * Returns whether there is space for an element at the top of the Window\r\n   * @param y - Y-axis position of the bottom of the element\r\n   * @param height - Height of the element\r\n   */\r\n  isTopSpaceAvailable(y: number, height: number): boolean {\r\n    return y - height > 0;\r\n  }\r\n\r\n  isRightSpaceAvailable(x: number, width: number): boolean {\r\n    return x + width < window.innerWidth;\r\n  }\r\n\r\n  isLeftSpaceAvailable(x: number, width: number): boolean {\r\n    return x - width > 0;\r\n  }\r\n}\r\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, Output, Renderer2 } from '@angular/core';\r\nimport { HeadwindWindowService } from '../../../services/headwind-window.service';\r\nimport { HeadwindClickDetector } from '../../../services/headwind-click-detector.service';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { HeadwindPopoverService } from '../services/headwind-popover.service';\r\nimport { LinearDirections } from '../../../types/linear-directions';\r\nimport { XYDirections } from '../../../types/xy-directions';\r\n\r\n@Component({\r\n  selector: 'headwind-popover-overlay',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './headwind-popover-overlay.component.html',\r\n  styleUrl: './headwind-popover-overlay.component.scss',\r\n  host: {\r\n    class: 'headwind-popover-overlay',\r\n  },\r\n  providers: [HeadwindClickDetector],\r\n})\r\nexport class HeadwindPopoverOverlayComponent implements AfterViewInit {\r\n  @Input() direction: LinearDirections = 'vertical';\r\n  @Input() directionPriority: XYDirections = 'bottom';\r\n  @Input() pinPriority: XYDirections = 'left';\r\n\r\n  @Output() actualDirectionChange = new EventEmitter<XYDirections>();\r\n  @Output() actualPinChange = new EventEmitter<XYDirections>();\r\n\r\n  constructor(\r\n    private readonly _renderer: Renderer2,\r\n    private readonly _elementRef: ElementRef<HTMLElement>,\r\n    private readonly _headwindWindowService: HeadwindWindowService,\r\n    private readonly _headwindClickDetector: HeadwindClickDetector,\r\n    private readonly _headwindPopoverService: HeadwindPopoverService,\r\n  ) {\r\n    this._headwindClickDetector.outsideClick.pipe(takeUntilDestroyed()).subscribe(() => {\r\n      if (this._headwindPopoverService.popoverOpened) {\r\n        this._headwindPopoverService.closePopover.emit();\r\n      }\r\n    });\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this._headwindClickDetector.register(this._elementRef.nativeElement);\r\n  }\r\n\r\n  updatePosition(button: HTMLElement): void {\r\n    if (this._elementRef) {\r\n      const host = this._elementRef.nativeElement;\r\n\r\n      // clear all styles\r\n      this._renderer.removeStyle(host, 'position');\r\n      this._renderer.removeStyle(host, 'top');\r\n      this._renderer.removeStyle(host, 'bottom');\r\n      this._renderer.removeStyle(host, 'left');\r\n      this._renderer.removeStyle(host, 'right');\r\n\r\n      this._renderer.setStyle(host, 'position', 'fixed');\r\n\r\n      const buttonDomRect = button.getBoundingClientRect();\r\n      const hostDomRect = host.getBoundingClientRect();\r\n\r\n      switch (this.direction) {\r\n        case 'vertical': {\r\n          this._updateVerticalDirectionByPriority(host, hostDomRect, buttonDomRect);\r\n          this._updateVerticalDirectionPin(host, hostDomRect, buttonDomRect);\r\n\r\n          break;\r\n        }\r\n\r\n        case 'horizontal': {\r\n          this._updateHorizontalDirectionByPriority(host, hostDomRect, buttonDomRect);\r\n          this._updateHorizontalDirectionPin(host, hostDomRect, buttonDomRect);\r\n\r\n          break;\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  private _updateVerticalDirectionByPriority(host: HTMLElement, hostDomRect: DOMRect, buttonDomRect: DOMRect): void {\r\n    if (this.directionPriority === 'top') {\r\n      if (this._headwindWindowService.isTopSpaceAvailable(buttonDomRect.top, hostDomRect.height)) {\r\n        this._renderer.setStyle(host, 'bottom', `calc(100% - ${buttonDomRect.top}px)`);\r\n        this._emitActualDirectionTop();\r\n      } else if (this._headwindWindowService.isBottomSpaceAvailable(buttonDomRect.bottom, hostDomRect.height)) {\r\n        this._renderer.setStyle(host, 'top', buttonDomRect.bottom + 'px');\r\n        this._emitActualDirectionBottom();\r\n      } else {\r\n        this._renderer.setStyle(host, 'bottom', `calc(100% - ${buttonDomRect.top}px)`);\r\n        this._emitActualDirectionTop();\r\n      }\r\n    } else {\r\n      if (this._headwindWindowService.isBottomSpaceAvailable(buttonDomRect.bottom, hostDomRect.height)) {\r\n        this._renderer.setStyle(host, 'top', buttonDomRect.bottom + 'px');\r\n        this._emitActualDirectionBottom();\r\n      } else if (this._headwindWindowService.isTopSpaceAvailable(buttonDomRect.top, hostDomRect.height)) {\r\n        this._renderer.setStyle(host, 'bottom', `calc(100% - ${buttonDomRect.top}px)`);\r\n        this._emitActualDirectionTop();\r\n      } else {\r\n        this._renderer.setStyle(host, 'top', buttonDomRect.bottom + 'px');\r\n        this._emitActualDirectionBottom();\r\n      }\r\n    }\r\n  }\r\n\r\n  private _updateHorizontalDirectionByPriority(host: HTMLElement, hostDomRect: DOMRect, buttonDomRect: DOMRect): void {\r\n    if (this.directionPriority === 'left') {\r\n      if (this._headwindWindowService.isLeftSpaceAvailable(buttonDomRect.left, hostDomRect.width)) {\r\n        this._renderer.setStyle(host, 'right', `calc(100% - ${buttonDomRect.left}px)`);\r\n        this._emitActualDirectionLeft();\r\n      } else if (this._headwindWindowService.isRightSpaceAvailable(buttonDomRect.right, hostDomRect.width)) {\r\n        this._renderer.setStyle(host, 'left', buttonDomRect.right + 'px');\r\n        this._emitActualDirectionRight();\r\n      } else {\r\n        this._renderer.setStyle(host, 'right', `calc(100% - ${buttonDomRect.left}px)`);\r\n        this._emitActualDirectionLeft();\r\n      }\r\n    } else {\r\n      if (this._headwindWindowService.isRightSpaceAvailable(buttonDomRect.right, hostDomRect.width)) {\r\n        this._renderer.setStyle(host, 'left', buttonDomRect.right + 'px');\r\n        this._emitActualDirectionRight();\r\n      } else if (this._headwindWindowService.isLeftSpaceAvailable(buttonDomRect.left, hostDomRect.width)) {\r\n        this._renderer.setStyle(host, 'right', `calc(100% - ${buttonDomRect.left}px)`);\r\n        this._emitActualDirectionLeft();\r\n      } else {\r\n        this._renderer.setStyle(host, 'left', buttonDomRect.right + 'px');\r\n        this._emitActualDirectionRight();\r\n      }\r\n    }\r\n  }\r\n\r\n  private _updateVerticalDirectionPin(host: HTMLElement, hostDomRect: DOMRect, buttonDomRect: DOMRect): void {\r\n    if (this.pinPriority === 'right') {\r\n      if (this._headwindWindowService.isLeftSpaceAvailable(buttonDomRect.right, hostDomRect.width)) {\r\n        this._renderer.setStyle(host, 'right', `calc(100% - ${buttonDomRect.right}px)`);\r\n        this._emitActualPinRight();\r\n      } else if (this._headwindWindowService.isRightSpaceAvailable(buttonDomRect.left, hostDomRect.width)) {\r\n        this._renderer.setStyle(host, 'left', buttonDomRect.left + 'px');\r\n        this._emitActualPinLeft();\r\n      } else {\r\n        this._renderer.setStyle(host, 'right', `calc(100% - ${buttonDomRect.right}px)`);\r\n        this._emitActualPinRight();\r\n      }\r\n    } else {\r\n      if (this._headwindWindowService.isRightSpaceAvailable(buttonDomRect.left, hostDomRect.width)) {\r\n        this._renderer.setStyle(host, 'left', buttonDomRect.left + 'px');\r\n        this._emitActualPinLeft();\r\n      } else if (this._headwindWindowService.isLeftSpaceAvailable(buttonDomRect.right, hostDomRect.width)) {\r\n        this._renderer.setStyle(host, 'right', `calc(100% - ${buttonDomRect.right}px)`);\r\n        this._emitActualPinRight();\r\n      } else {\r\n        this._renderer.setStyle(host, 'left', buttonDomRect.left + 'px');\r\n        this._emitActualPinLeft();\r\n      }\r\n    }\r\n  }\r\n\r\n  private _updateHorizontalDirectionPin(host: HTMLElement, hostDomRect: DOMRect, buttonDomRect: DOMRect): void {\r\n    if (this.pinPriority === 'bottom') {\r\n      if (this._headwindWindowService.isTopSpaceAvailable(buttonDomRect.bottom, hostDomRect.height)) {\r\n        this._renderer.setStyle(host, 'bottom', `calc(100% - ${buttonDomRect.bottom}px)`);\r\n        this._emitActualPinTop();\r\n      } else if (this._headwindWindowService.isBottomSpaceAvailable(buttonDomRect.top, hostDomRect.height)) {\r\n        this._renderer.setStyle(host, 'top', buttonDomRect.top + 'px');\r\n        this._emitActualPinBottom();\r\n      } else {\r\n        this._renderer.setStyle(host, 'bottom', `calc(100% - ${buttonDomRect.bottom}px)`);\r\n        this._emitActualPinTop();\r\n      }\r\n    } else {\r\n      if (this._headwindWindowService.isBottomSpaceAvailable(buttonDomRect.top, hostDomRect.height)) {\r\n        this._renderer.setStyle(host, 'top', buttonDomRect.top + 'px');\r\n        this._emitActualPinBottom();\r\n      } else if (this._headwindWindowService.isTopSpaceAvailable(buttonDomRect.bottom, hostDomRect.height)) {\r\n        this._renderer.setStyle(host, 'bottom', `calc(100% - ${buttonDomRect.bottom}px)`);\r\n        this._emitActualPinTop();\r\n      } else {\r\n        this._renderer.setStyle(host, 'top', buttonDomRect.top + 'px');\r\n        this._emitActualPinBottom();\r\n      }\r\n    }\r\n  }\r\n\r\n  private _emitActualDirectionTop(): void {\r\n    this.actualDirectionChange.emit('top');\r\n  }\r\n\r\n  private _emitActualDirectionBottom(): void {\r\n    this.actualDirectionChange.emit('bottom');\r\n  }\r\n\r\n  private _emitActualDirectionLeft(): void {\r\n    this.actualDirectionChange.emit('left');\r\n  }\r\n\r\n  private _emitActualDirectionRight(): void {\r\n    this.actualDirectionChange.emit('right');\r\n  }\r\n\r\n  private _emitActualPinTop(): void {\r\n    this.actualPinChange.emit('top');\r\n  }\r\n\r\n  private _emitActualPinBottom(): void {\r\n    this.actualPinChange.emit('bottom');\r\n  }\r\n\r\n  private _emitActualPinLeft(): void {\r\n    this.actualPinChange.emit('left');\r\n  }\r\n\r\n  private _emitActualPinRight(): void {\r\n    this.actualPinChange.emit('right');\r\n  }\r\n}\r\n","<ng-content></ng-content>\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[headwindPopoverOverlay]',\r\n  standalone: true,\r\n})\r\nexport class HeadwindPopoverOverlayDirective {\r\n  constructor(public readonly templateRef: TemplateRef<any>) {}\r\n}\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\nimport { HeadwindPopoverService } from '../services/headwind-popover.service';\r\n\r\n@Directive({\r\n  selector: '[headwindPopoverButton]',\r\n  standalone: true,\r\n  host: {\r\n    class: 'headwind-popover-button',\r\n  },\r\n})\r\nexport class HeadwindPopoverButtonDirective {\r\n  constructor(\r\n    private readonly _elementRef: ElementRef<HTMLElement>,\r\n    private readonly _headwindPopoverService: HeadwindPopoverService,\r\n  ) {}\r\n\r\n  get nativeElement(): HTMLElement {\r\n    return this._elementRef.nativeElement;\r\n  }\r\n\r\n  @HostListener('click')\r\n  onHostClick(): void {\r\n    this._headwindPopoverService.openPopover.emit();\r\n  }\r\n}\r\n","import { Component, HostListener, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';\r\nimport { HeadwindOverlayService } from '../../services/headwind-overlay.service';\r\n\r\n@Component({\r\n  selector: 'headwind-overlay-outlet',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './headwind-overlay-outlet.component.html',\r\n  styleUrl: './headwind-overlay-outlet.component.scss',\r\n  host: {\r\n    class: 'headwind-overlay-outlet',\r\n  },\r\n  encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class HeadwindOverlayOutletComponent {\r\n  @ViewChild('container', { read: ViewContainerRef }) viewContainerRef!: ViewContainerRef;\r\n\r\n  constructor(private readonly _headwindOverlayService: HeadwindOverlayService) {}\r\n\r\n  @HostListener('window:keydown.escape')\r\n  onWindowEscapeKeydown(): void {\r\n    this._headwindOverlayService.closeLatest();\r\n  }\r\n}\r\n","<ng-container #container></ng-container>\r\n","import { ApplicationRef, EmbeddedViewRef, Injectable, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { HeadwindOverlayOutletComponent } from '../components/headwind-overlay-outlet/headwind-overlay-outlet.component';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class HeadwindOverlayService {\r\n  private _openedViewRefs: EmbeddedViewRef<any>[] = [];\r\n\r\n  /**\r\n   * By default, opening an overlay will create viewContainerRef to render overlay.\r\n   * Once viewContainerRef is created, that is cached to this property to prevent creating multiple viewContainerRefs.\r\n   */\r\n  private _cachedViewContainerRef?: ViewContainerRef;\r\n\r\n  constructor(private readonly _applicationRef: ApplicationRef) {}\r\n\r\n  get viewContainerRef(): ViewContainerRef {\r\n    if (!this._cachedViewContainerRef) {\r\n      const rootViewContainerRef = this._applicationRef.components[0].injector.get(ViewContainerRef);\r\n      const overlayOutletRef = rootViewContainerRef.createComponent(HeadwindOverlayOutletComponent);\r\n\r\n      overlayOutletRef.changeDetectorRef.detectChanges();\r\n\r\n      this._cachedViewContainerRef = overlayOutletRef.instance.viewContainerRef;\r\n    }\r\n\r\n    return this._cachedViewContainerRef;\r\n  }\r\n\r\n  /**\r\n   * Open a template as overlay\r\n   * @param templateRef - TemplateRef to open as an overlay\r\n   * @param onDestroy - Callback to call when destroying EmbeddedViewRef\r\n   */\r\n  open<C = any>(templateRef: TemplateRef<C>, onDestroy?: () => void): EmbeddedViewRef<C> {\r\n    const embeddedViewRef = this.viewContainerRef.createEmbeddedView(templateRef);\r\n\r\n    this._openedViewRefs.push(embeddedViewRef);\r\n\r\n    embeddedViewRef.onDestroy(() => {\r\n      this._openedViewRefs = this._openedViewRefs.filter((_openedViewRef) => _openedViewRef !== embeddedViewRef);\r\n\r\n      if (onDestroy) {\r\n        onDestroy();\r\n      }\r\n    });\r\n\r\n    return embeddedViewRef;\r\n  }\r\n\r\n  closeLatest(): void {\r\n    const latestViewRef = this._openedViewRefs[this._openedViewRefs.length - 1]; // item is removed from the `onDestroy()` method\r\n\r\n    latestViewRef?.destroy();\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nexport type HeadwindAnimatorListener = () => void;\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class HeadwindAnimator {\r\n  private _frame: any;\r\n  private _animating = false;\r\n  private _registeredListeners: HeadwindAnimatorListener[] = [];\r\n\r\n  get hasListeners(): boolean {\r\n    return this._registeredListeners.length > 0;\r\n  }\r\n\r\n  addListener(listener: HeadwindAnimatorListener): void {\r\n    this.removeListener(listener); // remove duplicated one\r\n    this._registeredListeners.push(listener);\r\n\r\n    if (this.hasListeners && !this._animating) {\r\n      this._animating = true;\r\n      this._runAnimation();\r\n    }\r\n  }\r\n\r\n  removeListener(listener: HeadwindAnimatorListener): void {\r\n    this._registeredListeners = this._registeredListeners.filter((item) => item !== listener);\r\n\r\n    if (!this.hasListeners) {\r\n      this._stopAnimation();\r\n    }\r\n  }\r\n\r\n  private _runAnimation(): void {\r\n    this._registeredListeners.forEach((listener) => listener());\r\n\r\n    if (this._animating) {\r\n      this._frame = requestAnimationFrame(() => this._runAnimation());\r\n    }\r\n  }\r\n\r\n  private _stopAnimation(): void {\r\n    cancelAnimationFrame(this._frame);\r\n    this._animating = false;\r\n  }\r\n}\r\n","import { Component, ContentChild, EmbeddedViewRef, OnDestroy } from '@angular/core';\r\nimport { HeadwindPopoverService } from './services/headwind-popover.service';\r\nimport { HeadwindOverlayService } from '../../services/headwind-overlay.service';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { HeadwindPopoverOverlayComponent } from './headwind-popover-overlay/headwind-popover-overlay.component';\r\nimport { HeadwindAnimator } from '../../services/headwind-animator';\r\nimport { HeadwindPopoverOverlayDirective } from './headwind-popover-overlay/headwind-popover-overlay.directive';\r\nimport { HeadwindErrors } from '../../constants/headwind-errors';\r\nimport { HeadwindPopoverButtonDirective } from './headwind-popover-button/headwind-popover-button.directive';\r\n\r\n@Component({\r\n  selector: 'headwind-popover',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './headwind-popover.component.html',\r\n  styleUrl: './headwind-popover.component.scss',\r\n  host: {\r\n    class: 'headwind-popover',\r\n  },\r\n  providers: [HeadwindPopoverService],\r\n})\r\nexport class HeadwindPopoverComponent implements OnDestroy {\r\n  @ContentChild(HeadwindPopoverOverlayDirective, { descendants: true })\r\n  popoverOverlayTemplate?: HeadwindPopoverOverlayDirective;\r\n\r\n  @ContentChild(HeadwindPopoverOverlayComponent, { descendants: true })\r\n  popoverOverlay?: HeadwindPopoverOverlayComponent;\r\n\r\n  @ContentChild(HeadwindPopoverButtonDirective, { descendants: true })\r\n  popoverButton?: HeadwindPopoverButtonDirective;\r\n\r\n  private _popoverEmbeddedViewRef?: EmbeddedViewRef<any>;\r\n  private _openTimeoutId?: any;\r\n  private _closeTimeoutId?: any;\r\n\r\n  constructor(\r\n    private readonly _headwindOverlayService: HeadwindOverlayService,\r\n    private readonly _headwindPopoverService: HeadwindPopoverService,\r\n    private readonly _headwindAnimator: HeadwindAnimator,\r\n  ) {\r\n    this._headwindPopoverService.openPopover.pipe(takeUntilDestroyed()).subscribe(() => {\r\n      this.open();\r\n    });\r\n\r\n    this._headwindPopoverService.closePopover.pipe(takeUntilDestroyed()).subscribe(() => {\r\n      this.close();\r\n    });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    clearTimeout(this._openTimeoutId);\r\n    clearTimeout(this._closeTimeoutId);\r\n  }\r\n\r\n  open(): void {\r\n    if (!this.popoverOverlayTemplate) {\r\n      console.error(HeadwindErrors.headwindError0003);\r\n      return;\r\n    }\r\n\r\n    if (this._popoverEmbeddedViewRef) {\r\n      return;\r\n    }\r\n\r\n    this._popoverEmbeddedViewRef = this._headwindOverlayService.open(this.popoverOverlayTemplate.templateRef, () =>\r\n      this._afterClosed(),\r\n    );\r\n\r\n    this._headwindPopoverService.popoverOpened = true;\r\n\r\n    this._headwindAnimator.addListener(this._popoverPositionListener);\r\n\r\n    clearTimeout(this._openTimeoutId);\r\n\r\n    this._openTimeoutId = setTimeout(() => {\r\n      if (!this.popoverOverlay) {\r\n        console.error(HeadwindErrors.headwindError0004);\r\n        return;\r\n      }\r\n    });\r\n  }\r\n\r\n  close(): void {\r\n    this._popoverEmbeddedViewRef?.destroy();\r\n\r\n    this._afterClosed();\r\n  }\r\n\r\n  private _afterClosed(): void {\r\n    clearTimeout(this._closeTimeoutId);\r\n\r\n    // to prevent instant re-opening after closing, set a delay\r\n    this._closeTimeoutId = setTimeout(() => {\r\n      this._headwindAnimator.removeListener(this._popoverPositionListener);\r\n      this._headwindPopoverService.popoverOpened = false;\r\n\r\n      delete this._popoverEmbeddedViewRef;\r\n    });\r\n  }\r\n\r\n  private _popoverPositionListener = () => {\r\n    if (this.popoverButton) {\r\n      this.popoverOverlay?.updatePosition(this.popoverButton.nativeElement);\r\n    }\r\n  };\r\n}\r\n","<ng-content></ng-content>\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: 'ng-template[headwindRadioSelected]',\r\n  standalone: true,\r\n})\r\nexport class HeadwindRadioSelectedDirective {\r\n  constructor(public readonly templateRef: TemplateRef<any>) {}\r\n}\r\n","import { AfterViewInit, Component, ContentChild, EmbeddedViewRef, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { HeadwindRadioSelectedDirective } from './headwind-radio-selected/headwind-radio-selected.directive';\r\n\r\n@Component({\r\n  selector: 'headwind-radio-button',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './headwind-radio-button.component.html',\r\n  styleUrl: './headwind-radio-button.component.scss',\r\n  host: {\r\n    class: 'headwind-radio-button',\r\n  },\r\n})\r\nexport class HeadwindRadioButtonComponent implements AfterViewInit {\r\n  @ViewChild('radioSelectedContainer', { read: ViewContainerRef }) radioSelectedContainer?: ViewContainerRef;\r\n  @ContentChild(HeadwindRadioSelectedDirective, { descendants: true }) radioSelected?: HeadwindRadioSelectedDirective;\r\n\r\n  private _selectedEmbeddedViewRef?: EmbeddedViewRef<any>;\r\n\r\n  /** Internal selected status to show and hide selected icon */\r\n  private _selected = false;\r\n\r\n  get selected(): boolean {\r\n    return this._selected;\r\n  }\r\n\r\n  set selected(value: boolean) {\r\n    this._selected = value;\r\n    this._renderRadioSelected();\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this._renderRadioSelected();\r\n  }\r\n\r\n  private _renderRadioSelected(): void {\r\n    if (this.radioSelectedContainer && this.radioSelected) {\r\n      if (this.selected) {\r\n        if (!this._selectedEmbeddedViewRef) {\r\n          this._selectedEmbeddedViewRef = this.radioSelectedContainer.createEmbeddedView(\r\n            this.radioSelected.templateRef,\r\n          );\r\n        }\r\n      } else {\r\n        this._selectedEmbeddedViewRef?.destroy();\r\n        delete this._selectedEmbeddedViewRef;\r\n      }\r\n    }\r\n  }\r\n}\r\n","<ng-container #radioSelectedContainer></ng-container>\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class HeadwindRadioGroupService {\r\n  /** Emits with value of option when selected */\r\n  selectOption = new EventEmitter<any>();\r\n\r\n  /** Selected value */\r\n  value$ = new BehaviorSubject<any>(undefined);\r\n\r\n  get value(): any {\r\n    return this.value$.value;\r\n  }\r\n\r\n  set value(value: any) {\r\n    this.value$.next(value);\r\n  }\r\n}\r\n","import { AfterContentInit, Component, ContentChild, DestroyRef, HostListener, Input } from '@angular/core';\r\nimport { HeadwindClickDetector } from '../../../services/headwind-click-detector.service';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { HeadwindRadioButtonComponent } from './headwind-radio-button/headwind-radio-button.component';\r\nimport { HeadwindRadioGroupService } from '../service/headwind-radio-group.service';\r\n\r\n@Component({\r\n  selector: 'headwind-radio',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './headwind-radio.component.html',\r\n  styleUrl: './headwind-radio.component.scss',\r\n  providers: [HeadwindClickDetector],\r\n  host: {\r\n    class: 'headwind-radio',\r\n    ['[class.headwind-selected]']: 'selected',\r\n  },\r\n})\r\nexport class HeadwindRadioComponent implements AfterContentInit {\r\n  @Input({ required: true }) value: any;\r\n\r\n  @ContentChild(HeadwindRadioButtonComponent, { descendants: true }) button?: HeadwindRadioButtonComponent;\r\n\r\n  private _selected = false;\r\n\r\n  constructor(\r\n    private readonly _destroyRef: DestroyRef,\r\n    private readonly _headwindRadioGroupService: HeadwindRadioGroupService,\r\n  ) {}\r\n\r\n  get selected(): boolean {\r\n    return this._selected;\r\n  }\r\n\r\n  ngAfterContentInit() {\r\n    this._headwindRadioGroupService.value$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((value) => {\r\n      this._selected = this.value === value;\r\n\r\n      if (this.button) {\r\n        this.button.selected = this.selected;\r\n      }\r\n    });\r\n  }\r\n\r\n  @HostListener('click')\r\n  onHostClick(): void {\r\n    this._headwindRadioGroupService.selectOption.emit(this.value);\r\n  }\r\n}\r\n","<ng-content></ng-content>\r\n","import { Injectable, QueryList } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class HeadwindQueryListService {\r\n  findIndex<Comp>(queryList: QueryList<Comp> | undefined, comparator: (component: Comp) => boolean): number {\r\n    let searchedIndex = -1;\r\n\r\n    // To stop when searched, use 'some()' method\r\n    queryList?.some((component, index) => {\r\n      const result = comparator(component);\r\n\r\n      if (result) {\r\n        searchedIndex = index;\r\n      }\r\n\r\n      return result;\r\n    });\r\n\r\n    return searchedIndex;\r\n  }\r\n}\r\n","import {\r\n  booleanAttribute,\r\n  Component,\r\n  ContentChildren,\r\n  EventEmitter,\r\n  HostListener,\r\n  Input,\r\n  Output,\r\n  QueryList,\r\n} from '@angular/core';\r\nimport { HeadwindControlValueAccessor } from '../../abstracts/headwind-control-value-accessor';\r\nimport { HeadwindRadioComponent } from './headwind-radio/headwind-radio.component';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { HeadwindRadioGroupService } from './service/headwind-radio-group.service';\r\nimport { HeadwindQueryListService } from '../../services/headwind-query-list.service';\r\n\r\n@Component({\r\n  selector: 'headwind-radio-group',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './headwind-radio-group.component.html',\r\n  styleUrl: './headwind-radio-group.component.scss',\r\n  host: {\r\n    tabindex: '0',\r\n    class: 'headwind-radio-group',\r\n  },\r\n  providers: [HeadwindRadioGroupService],\r\n})\r\nexport class HeadwindRadioGroupComponent extends HeadwindControlValueAccessor {\r\n  @Output() valueChange = new EventEmitter<any>();\r\n\r\n  @ContentChildren(HeadwindRadioComponent, { descendants: true }) radioList?: QueryList<HeadwindRadioComponent>;\r\n\r\n  constructor(\r\n    private readonly _headwindQueryListService: HeadwindQueryListService,\r\n    private readonly _headwindRadioGroupService: HeadwindRadioGroupService,\r\n  ) {\r\n    super();\r\n\r\n    this._headwindRadioGroupService.selectOption.pipe(takeUntilDestroyed()).subscribe((value) => {\r\n      if (!this.disabled) {\r\n        this.updateValue(value);\r\n      }\r\n    });\r\n  }\r\n\r\n  get value(): any {\r\n    return this._headwindRadioGroupService.value;\r\n  }\r\n\r\n  @Input()\r\n  set value(value: any) {\r\n    this._headwindRadioGroupService.value = value;\r\n  }\r\n\r\n  @Input({ transform: booleanAttribute })\r\n  get disabled(): boolean {\r\n    return this.isDisabled;\r\n  }\r\n\r\n  set disabled(value: boolean) {\r\n    this.setDisabledState(value);\r\n  }\r\n\r\n  @HostListener('blur')\r\n  onHostBlur(): void {\r\n    this.onTouched();\r\n  }\r\n\r\n  @HostListener('keydown.arrowUp', ['$event'])\r\n  onHostArrowUpKeydown(event: Event): void {\r\n    event.stopPropagation();\r\n    event.preventDefault();\r\n\r\n    this.toPreviousOption();\r\n  }\r\n\r\n  @HostListener('keydown.arrowDown', ['$event'])\r\n  onHostArrowDownKeydown(event: Event): void {\r\n    event.stopPropagation();\r\n    event.preventDefault();\r\n\r\n    this.toNextOption();\r\n  }\r\n\r\n  @HostListener('keydown.arrowLeft', ['$event'])\r\n  onHostArrowLeftKeydown(event: Event): void {\r\n    event.stopPropagation();\r\n    event.preventDefault();\r\n\r\n    this.toPreviousOption();\r\n  }\r\n\r\n  @HostListener('keydown.arrowRight', ['$event'])\r\n  onHostArrowRightKeydown(event: Event): void {\r\n    event.stopPropagation();\r\n    event.preventDefault();\r\n\r\n    this.toNextOption();\r\n  }\r\n\r\n  override updateValue(value: any) {\r\n    super.updateValue(value);\r\n    this.valueChange.emit(value);\r\n  }\r\n\r\n  override writeValue(obj: any) {\r\n    this.value = obj;\r\n  }\r\n\r\n  toPreviousOption(): void {\r\n    if (!this.disabled) {\r\n      const currentOptionIndex = this._findIndexOfSelectedRadio();\r\n      const previousOptionIndex = Math.max(currentOptionIndex - 1, 0);\r\n\r\n      const previousOption = this.radioList?.get(previousOptionIndex);\r\n\r\n      if (previousOption) {\r\n        this.updateValue(previousOption.value);\r\n      }\r\n    }\r\n  }\r\n\r\n  toNextOption(): void {\r\n    if (!this.disabled) {\r\n      const currentOptionIndex = this._findIndexOfSelectedRadio();\r\n      const lastOptionIndex = (this.radioList?.length || 0) - 1;\r\n      const nextOptionIndex = Math.min(currentOptionIndex + 1, lastOptionIndex);\r\n\r\n      const nextOption = this.radioList?.get(nextOptionIndex);\r\n\r\n      if (nextOption) {\r\n        this.updateValue(nextOption.value);\r\n      }\r\n    }\r\n  }\r\n\r\n  private _findIndexOfSelectedRadio(): number {\r\n    return this._headwindQueryListService.findIndex(this.radioList, (radio) => radio.selected);\r\n  }\r\n}\r\n","<ng-content></ng-content>\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class HeadwindSelectService {\r\n  /** Emits with value of option when selected */\r\n  selectOption = new EventEmitter<any>();\r\n\r\n  /** Emits with value of option when focused */\r\n  focusOption = new EventEmitter<any>();\r\n\r\n  /** Emits when option hovered */\r\n  hoverOption = new EventEmitter<void>();\r\n\r\n  /** Emits to close options */\r\n  closeOptions = new EventEmitter<void>();\r\n\r\n  /** Current value of select */\r\n  value$ = new BehaviorSubject<any>(undefined);\r\n\r\n  /** Multiple status */\r\n  multiple$ = new BehaviorSubject(false);\r\n\r\n  /** Options opened status */\r\n  optionsOpened$ = new BehaviorSubject(false);\r\n\r\n  get value(): any {\r\n    return this.value$.value;\r\n  }\r\n\r\n  set value(value: any) {\r\n    this.value$.next(value);\r\n  }\r\n\r\n  get multiple(): boolean {\r\n    return this.multiple$.value;\r\n  }\r\n\r\n  set multiple(value: boolean) {\r\n    this.multiple$.next(value);\r\n  }\r\n\r\n  get optionsOpened(): boolean {\r\n    return this.optionsOpened$.value;\r\n  }\r\n\r\n  set optionsOpened(value: boolean) {\r\n    this.optionsOpened$.next(value);\r\n  }\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: 'ng-template[headwindOptionsOverlay]',\r\n  standalone: true,\r\n})\r\nexport class HeadwindOptionsOverlayDirective {\r\n  constructor(public readonly templateRef: TemplateRef<any>) {}\r\n}\r\n","import { Component, DestroyRef, ElementRef, HostListener, Input, OnInit } from '@angular/core';\r\nimport { HeadwindSelectService } from '../../service/headwind-select.service';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { combineLatest } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'headwind-option',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './headwind-option.component.html',\r\n  styleUrl: './headwind-option.component.scss',\r\n  host: {\r\n    class: 'headwind-option',\r\n    role: 'option',\r\n    ['[class.headwind-focused]']: 'focused',\r\n    ['[class.headwind-selected]']: 'selected',\r\n  },\r\n})\r\nexport class HeadwindOptionComponent implements OnInit {\r\n  /** Value of option to apply to select */\r\n  @Input({ required: true }) value: any;\r\n\r\n  constructor(\r\n    private readonly _destroyRef: DestroyRef,\r\n    private readonly _elementRef: ElementRef<HTMLElement>,\r\n    private readonly _headwindSelectService: HeadwindSelectService,\r\n  ) {\r\n    this._headwindSelectService.focusOption.pipe(takeUntilDestroyed()).subscribe((value) => {\r\n      this._focused = this.value === value;\r\n    });\r\n\r\n    this._headwindSelectService.hoverOption.pipe(takeUntilDestroyed()).subscribe(() => {\r\n      this._focused = false;\r\n    });\r\n  }\r\n\r\n  private _focused = false;\r\n\r\n  get focused(): boolean {\r\n    return this._focused;\r\n  }\r\n\r\n  private _selected = false;\r\n\r\n  get selected(): boolean {\r\n    return this._selected;\r\n  }\r\n\r\n  private _label?: string;\r\n\r\n  /** Get displayable label. When label isn't set, it returns textContent of host element */\r\n  get label(): string {\r\n    return this._label || this._elementRef?.nativeElement.textContent || '';\r\n  }\r\n\r\n  /**\r\n   * Set label to display when option is selected\r\n   * @param value - Label value\r\n   */\r\n  @Input()\r\n  set label(value: string) {\r\n    this._label = value;\r\n  }\r\n\r\n  ngOnInit() {\r\n    // subscribe after init to wait 'value' input\r\n    combineLatest([this._headwindSelectService.multiple$, this._headwindSelectService.value$])\r\n      .pipe(takeUntilDestroyed(this._destroyRef))\r\n      .subscribe(([multiple, value]) => {\r\n        if (multiple) {\r\n          this._selected = (value || []).includes(this.value);\r\n        } else {\r\n          this._selected = value === this.value;\r\n        }\r\n      });\r\n  }\r\n\r\n  @HostListener('click')\r\n  onHostClick(): void {\r\n    this._headwindSelectService.selectOption.emit(this.value);\r\n  }\r\n\r\n  @HostListener('mouseenter')\r\n  onHostMouseEnter(): void {\r\n    this._headwindSelectService.hoverOption.emit();\r\n  }\r\n\r\n  focus(): void {\r\n    this._headwindSelectService.focusOption.emit(this.value);\r\n  }\r\n\r\n  getBoundingClientRect(): DOMRect | undefined {\r\n    return this._elementRef?.nativeElement.getBoundingClientRect();\r\n  }\r\n}\r\n","<ng-content></ng-content>\r\n","import {\r\n  AfterContentInit,\r\n  Component,\r\n  ContentChildren,\r\n  ElementRef,\r\n  EventEmitter,\r\n  HostListener,\r\n  Output,\r\n  QueryList,\r\n  Renderer2,\r\n} from '@angular/core';\r\nimport { HeadwindOptionComponent } from './headwind-option/headwind-option.component';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { HeadwindClickDetector } from '../../../services/headwind-click-detector.service';\r\nimport { HeadwindWindowService } from '../../../services/headwind-window.service';\r\nimport { HeadwindPlatformService } from '../../../services/headwind-platform.service';\r\nimport { HeadwindSelectService } from '../service/headwind-select.service';\r\nimport { YDirections } from '../../../types/y-directions';\r\nimport { HeadwindQueryListService } from '../../../services/headwind-query-list.service';\r\n\r\n@Component({\r\n  selector: 'headwind-options-overlay',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './headwind-options-overlay.component.html',\r\n  styleUrl: './headwind-options-overlay.component.scss',\r\n  providers: [HeadwindClickDetector],\r\n  host: {\r\n    class: 'headwind-options-overlay',\r\n    role: 'listbox',\r\n  },\r\n})\r\nexport class HeadwindOptionsOverlayComponent implements AfterContentInit {\r\n  @Output() actualDirectionChange = new EventEmitter<YDirections>();\r\n\r\n  @ContentChildren(HeadwindOptionComponent, { descendants: true })\r\n  optionList?: QueryList<HeadwindOptionComponent>;\r\n\r\n  private _focusedIndex = -1;\r\n\r\n  constructor(\r\n    private readonly _renderer: Renderer2,\r\n    private readonly _elementRef: ElementRef<HTMLElement>,\r\n    private readonly _headwindWindowService: HeadwindWindowService,\r\n    private readonly _headwindPlatformService: HeadwindPlatformService,\r\n    private readonly _headwindClickDetector: HeadwindClickDetector,\r\n    private readonly _headwindQueryListService: HeadwindQueryListService,\r\n    private readonly _headwindSelectService: HeadwindSelectService,\r\n  ) {\r\n    this._headwindClickDetector.outsideClick.pipe(takeUntilDestroyed()).subscribe(() => {\r\n      if (this._headwindSelectService.optionsOpened) {\r\n        this._headwindSelectService.closeOptions.emit();\r\n      }\r\n    });\r\n\r\n    this._headwindSelectService.focusOption.pipe(takeUntilDestroyed()).subscribe((value) => {\r\n      this._focusedIndex = this.findOptionIndexByValue(value);\r\n      this.scrollToOptionByValue(value);\r\n    });\r\n\r\n    this._headwindSelectService.hoverOption.pipe(takeUntilDestroyed()).subscribe(() => {\r\n      this._focusedIndex = -1;\r\n    });\r\n\r\n    this._headwindSelectService.optionsOpened$.pipe(takeUntilDestroyed()).subscribe((opened) => {\r\n      if (opened) {\r\n        this._headwindClickDetector.register(this._elementRef.nativeElement);\r\n      } else {\r\n        this._headwindClickDetector.unregister();\r\n      }\r\n    });\r\n  }\r\n\r\n  get optionsLastIndex(): number {\r\n    return this.optionList ? this.optionList.length - 1 : 0;\r\n  }\r\n\r\n  ngAfterContentInit() {\r\n    this.focusToSelected();\r\n    this.scrollToOptionByValue(this._headwindSelectService.value);\r\n  }\r\n\r\n  @HostListener('window:keydown.arrowUp', ['$event'])\r\n  onWindowArrowUpKeydown(event: Event): void {\r\n    if (!this._headwindSelectService.optionsOpened) {\r\n      return;\r\n    }\r\n\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n\r\n    this.focusToPrevious();\r\n  }\r\n\r\n  @HostListener('window:keydown.arrowDown', ['$event'])\r\n  onWindowArrowDownKeydown(event: Event): void {\r\n    if (!this._headwindSelectService.optionsOpened) {\r\n      return;\r\n    }\r\n\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n\r\n    this.focusToNext();\r\n  }\r\n\r\n  @HostListener('window:keydown.space', ['$event'])\r\n  onWindowSpaceKeydown(event: Event): void {\r\n    if (!this._headwindSelectService.optionsOpened) {\r\n      return;\r\n    }\r\n\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n\r\n    this.selectFocusedOption();\r\n\r\n    if (!this._headwindSelectService.multiple) {\r\n      this._headwindSelectService.closeOptions.emit();\r\n    }\r\n  }\r\n\r\n  @HostListener('window:keydown.enter', ['$event'])\r\n  onWindowEnterKeydown(event: Event): void {\r\n    if (!this._headwindSelectService.optionsOpened) {\r\n      return;\r\n    }\r\n\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n\r\n    this.selectFocusedOption();\r\n\r\n    if (!this._headwindSelectService.multiple) {\r\n      this._headwindSelectService.closeOptions.emit();\r\n    }\r\n  }\r\n\r\n  /** Focus to option that is equal to value */\r\n  focusToSelected(): void {\r\n    this._elementRef?.nativeElement.focus();\r\n\r\n    const { multiple, value } = this._headwindSelectService;\r\n\r\n    let targetOption: HeadwindOptionComponent | undefined;\r\n\r\n    if (multiple) {\r\n      targetOption = this.findOptionByValue(value[value.length - 1]);\r\n    } else {\r\n      targetOption = this.findOptionByValue(value);\r\n    }\r\n\r\n    if (!targetOption) {\r\n      targetOption = this.optionList?.get(0);\r\n    }\r\n\r\n    targetOption?.focus();\r\n  }\r\n\r\n  focusToPrevious(): void {\r\n    this.optionList?.get(Math.max(this._focusedIndex - 1, 0))?.focus();\r\n  }\r\n\r\n  focusToNext(): void {\r\n    this.optionList?.get(Math.min(this._focusedIndex + 1, this.optionsLastIndex))?.focus();\r\n  }\r\n\r\n  selectFocusedOption(): void {\r\n    const focusedOption = this.optionList?.get(this._focusedIndex);\r\n\r\n    if (focusedOption) {\r\n      this._headwindSelectService.selectOption.emit(focusedOption.value);\r\n    }\r\n  }\r\n\r\n  findOptionByValue(value: any): HeadwindOptionComponent | undefined {\r\n    return this.optionList?.get(this.findOptionIndexByValue(value));\r\n  }\r\n\r\n  findOptionIndexByValue(value: any): number {\r\n    return this._headwindQueryListService.findIndex(this.optionList, (option) => option.value === value);\r\n  }\r\n\r\n  updatePosition(select: HTMLElement): void {\r\n    if (this._headwindPlatformService.isBrowser && this._elementRef) {\r\n      const options = this._elementRef.nativeElement;\r\n\r\n      this._renderer.removeStyle(options, 'top');\r\n      this._renderer.removeStyle(options, 'bottom');\r\n\r\n      const selectDomRect = select.getBoundingClientRect();\r\n      const optionsDomRect = options.getBoundingClientRect();\r\n\r\n      this._renderer.setStyle(options, 'width', selectDomRect.width + 'px');\r\n      this._renderer.setStyle(options, 'left', selectDomRect.left + 'px');\r\n\r\n      if (this._headwindWindowService.isBottomSpaceAvailable(selectDomRect.bottom, optionsDomRect.height)) {\r\n        this._renderer.setStyle(options, 'top', selectDomRect.bottom + 'px');\r\n        this._emitActualDirectionBottom();\r\n      } else if (this._headwindWindowService.isTopSpaceAvailable(selectDomRect.top, optionsDomRect.height)) {\r\n        this._renderer.setStyle(options, 'bottom', `calc(100% - ${selectDomRect.top}px)`);\r\n        this._emitActualDirectionTop();\r\n      } else {\r\n        this._renderer.setStyle(options, 'top', selectDomRect.bottom + 'px');\r\n        this._emitActualDirectionBottom();\r\n      }\r\n    }\r\n  }\r\n\r\n  scrollToOptionByValue(value: any): void {\r\n    const optionIndex = this.findOptionIndexByValue(value);\r\n    const option = this.optionList?.get(optionIndex);\r\n    const host = this._elementRef?.nativeElement;\r\n\r\n    const optionDomRect = option?.getBoundingClientRect();\r\n    const hostDomRect = host?.getBoundingClientRect();\r\n\r\n    if (host && optionDomRect && hostDomRect) {\r\n      const scrollTop = host.scrollTop;\r\n\r\n      host.scrollTop =\r\n        scrollTop + (optionDomRect.y - hostDomRect.y) - hostDomRect.height / 2 + optionDomRect.height / 2;\r\n    }\r\n  }\r\n\r\n  private _emitActualDirectionTop(): void {\r\n    this.actualDirectionChange.emit('top');\r\n  }\r\n\r\n  private _emitActualDirectionBottom(): void {\r\n    this.actualDirectionChange.emit('bottom');\r\n  }\r\n}\r\n","<ng-content></ng-content>\r\n","import {\r\n  AfterViewInit,\r\n  booleanAttribute,\r\n  Component,\r\n  ContentChild,\r\n  ElementRef,\r\n  EmbeddedViewRef,\r\n  EventEmitter,\r\n  HostListener,\r\n  Input,\r\n  OnDestroy,\r\n  Output,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { HeadwindOverlayService } from '../../services/headwind-overlay.service';\r\nimport { HeadwindErrors } from '../../constants/headwind-errors';\r\nimport { HeadwindClickDetector } from '../../services/headwind-click-detector.service';\r\nimport { HeadwindControlValueAccessor } from '../../abstracts/headwind-control-value-accessor';\r\nimport { HeadwindAnimator } from '../../services/headwind-animator';\r\nimport { HeadwindSelectService } from './service/headwind-select.service';\r\nimport { HeadwindOptionsOverlayDirective } from './headwind-options-overlay/headwind-options-overlay.directive';\r\nimport { HeadwindOptionsOverlayComponent } from './headwind-options-overlay/headwind-options-overlay.component';\r\n\r\n@Component({\r\n  selector: 'headwind-select',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './headwind-select.component.html',\r\n  styleUrl: './headwind-select.component.scss',\r\n  exportAs: 'headwindSelect',\r\n  host: {\r\n    tabindex: '0',\r\n    class: 'headwind-select',\r\n    role: 'combobox',\r\n    ['aria-haspopup']: 'listbox',\r\n    ['[attr.aria-expanded]']: 'opened',\r\n    ['[class.headwind-opened]']: 'opened',\r\n  },\r\n  providers: [HeadwindClickDetector, HeadwindSelectService],\r\n})\r\nexport class HeadwindSelectComponent extends HeadwindControlValueAccessor implements AfterViewInit, OnDestroy {\r\n  @Output() valueChange = new EventEmitter<any>();\r\n\r\n  @ContentChild(HeadwindOptionsOverlayDirective, { descendants: true })\r\n  optionsTemplate?: HeadwindOptionsOverlayDirective;\r\n\r\n  @ContentChild(HeadwindOptionsOverlayComponent, { descendants: true }) options?: HeadwindOptionsOverlayComponent;\r\n\r\n  private _optionsViewRef?: EmbeddedViewRef<any>;\r\n  private _openTimeoutId?: any;\r\n  private _closeTimeoutId?: any;\r\n\r\n  constructor(\r\n    private readonly _elementRef: ElementRef<HTMLElement>,\r\n    private readonly _headwindOverlayService: HeadwindOverlayService,\r\n    private readonly _headwindClickDetector: HeadwindClickDetector,\r\n    private readonly _headwindAnimator: HeadwindAnimator,\r\n    private readonly _headwindSelectService: HeadwindSelectService,\r\n  ) {\r\n    super();\r\n\r\n    // options should be closed from the options component\r\n    this._headwindSelectService.selectOption.pipe(takeUntilDestroyed()).subscribe((optionValue) => {\r\n      if (this.multiple) {\r\n        const { value } = this;\r\n\r\n        if ((value as any[]).includes(optionValue)) {\r\n          this.updateValue(value.filter((item: any) => item !== optionValue));\r\n        } else {\r\n          this.updateValue([...value, optionValue]);\r\n        }\r\n      } else {\r\n        this.updateValue(optionValue);\r\n        this.close();\r\n      }\r\n    });\r\n\r\n    this._headwindSelectService.closeOptions.pipe(takeUntilDestroyed()).subscribe(() => {\r\n      this.close();\r\n    });\r\n  }\r\n\r\n  @Input({ transform: booleanAttribute })\r\n  get multiple(): boolean {\r\n    return this._headwindSelectService.multiple;\r\n  }\r\n\r\n  set multiple(value: boolean) {\r\n    this._headwindSelectService.multiple = value;\r\n  }\r\n\r\n  get value(): any {\r\n    return this._headwindSelectService.value;\r\n  }\r\n\r\n  @Input()\r\n  set value(value: any) {\r\n    this._headwindSelectService.value = value;\r\n  }\r\n\r\n  @Input({ transform: booleanAttribute })\r\n  get disabled(): boolean {\r\n    return this.isDisabled;\r\n  }\r\n\r\n  set disabled(value: boolean) {\r\n    this.setDisabledState(value);\r\n  }\r\n\r\n  get opened(): boolean {\r\n    return !!this._optionsViewRef;\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this._headwindClickDetector.register(this._elementRef.nativeElement);\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    clearTimeout(this._openTimeoutId);\r\n    clearTimeout(this._closeTimeoutId);\r\n  }\r\n\r\n  override writeValue(obj: any) {\r\n    this._headwindSelectService.value = obj;\r\n  }\r\n\r\n  override updateValue(value: any) {\r\n    super.updateValue(value);\r\n    this.valueChange.emit(value);\r\n  }\r\n\r\n  @HostListener('blur')\r\n  onHostBlur(): void {\r\n    this.onTouched();\r\n  }\r\n\r\n  @HostListener('click')\r\n  onHostClick(): void {\r\n    this.open();\r\n  }\r\n\r\n  @HostListener('keydown.enter', ['$event'])\r\n  onHostEnterKeydown(event: Event): void {\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n\r\n    this.open();\r\n  }\r\n\r\n  @HostListener('keydown.arrowUp', ['$event'])\r\n  onHostArrowUpKeydown(event: Event): void {\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n\r\n    this.open();\r\n  }\r\n\r\n  @HostListener('keydown.arrowDown', ['$event'])\r\n  onHostArrowDownKeydown(event: Event): void {\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n\r\n    this.open();\r\n  }\r\n\r\n  open(): void {\r\n    if (this.isDisabled || this._headwindSelectService.optionsOpened) {\r\n      return;\r\n    }\r\n\r\n    if (!this.optionsTemplate) {\r\n      console.error(HeadwindErrors.headwindError0001);\r\n      return;\r\n    }\r\n\r\n    if (this._optionsViewRef) {\r\n      // already opened\r\n      return;\r\n    }\r\n\r\n    this._optionsViewRef = this._headwindOverlayService.open(this.optionsTemplate.templateRef, () =>\r\n      this._afterClosed(),\r\n    );\r\n\r\n    this._headwindAnimator.addListener(this._optionsPositionListener);\r\n\r\n    this._elementRef.nativeElement.blur();\r\n    this._headwindSelectService.optionsOpened = true;\r\n\r\n    clearTimeout(this._openTimeoutId);\r\n\r\n    // timeout to wait until options rendered\r\n    this._openTimeoutId = setTimeout(() => {\r\n      if (!this.options) {\r\n        console.error(HeadwindErrors.headwindError0002);\r\n        return;\r\n      }\r\n    });\r\n  }\r\n\r\n  close(): void {\r\n    this._optionsViewRef?.destroy();\r\n\r\n    this._afterClosed();\r\n  }\r\n\r\n  private _afterClosed(): void {\r\n    clearTimeout(this._closeTimeoutId);\r\n\r\n    // timeout to prevent re-opening options after closed\r\n    this._closeTimeoutId = setTimeout(() => {\r\n      this._headwindAnimator.removeListener(this._optionsPositionListener);\r\n      this._headwindSelectService.optionsOpened = false;\r\n\r\n      delete this._optionsViewRef;\r\n    });\r\n  }\r\n\r\n  private _optionsPositionListener = () => {\r\n    this.options?.updatePosition(this._elementRef.nativeElement);\r\n  };\r\n}\r\n","<ng-content></ng-content>\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class HeadwindSwitchService {\r\n  checked$ = new BehaviorSubject(false);\r\n\r\n  get checked(): boolean {\r\n    return this.checked$.value;\r\n  }\r\n\r\n  set checked(value: boolean) {\r\n    this.checked$.next(value);\r\n  }\r\n}\r\n","import { booleanAttribute, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\nimport { HeadwindSwitchService } from './service/headwind-switch.service';\r\nimport { HeadwindControlValueAccessor } from '../../abstracts/headwind-control-value-accessor';\r\n\r\n@Component({\r\n  selector: 'headwind-switch',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './headwind-switch.component.html',\r\n  styleUrl: './headwind-switch.component.scss',\r\n  host: {\r\n    tabindex: '0',\r\n    class: 'headwind-switch',\r\n    role: 'switch',\r\n    ['[attr.aria-checked]']: 'checked',\r\n    ['[class.headwind-checked]']: 'checked',\r\n  },\r\n  providers: [HeadwindSwitchService],\r\n})\r\nexport class HeadwindSwitchComponent extends HeadwindControlValueAccessor {\r\n  @Output() checkedChange = new EventEmitter<boolean>();\r\n\r\n  constructor(private readonly _headwindSwitchService: HeadwindSwitchService) {\r\n    super();\r\n  }\r\n\r\n  @Input({ transform: booleanAttribute })\r\n  get checked(): boolean {\r\n    return this._headwindSwitchService.checked;\r\n  }\r\n\r\n  set checked(value: boolean) {\r\n    this._headwindSwitchService.checked = value;\r\n  }\r\n\r\n  @Input({ transform: booleanAttribute })\r\n  get disabled(): boolean {\r\n    return this.isDisabled;\r\n  }\r\n\r\n  set disabled(value: boolean) {\r\n    this.setDisabledState(value);\r\n  }\r\n\r\n  @HostListener('click')\r\n  onHostClick(): void {\r\n    this.toggle();\r\n  }\r\n\r\n  @HostListener('blur')\r\n  onHostBlur(): void {\r\n    this.onTouched();\r\n  }\r\n\r\n  @HostListener('keydown.space', ['$event'])\r\n  onHostSpaceKeydown(event: Event): void {\r\n    event.stopPropagation();\r\n    event.preventDefault();\r\n\r\n    this.toggle();\r\n  }\r\n\r\n  override writeValue(obj: any) {\r\n    this.checked = obj;\r\n  }\r\n\r\n  override updateValue(value: any) {\r\n    super.updateValue(value);\r\n    this.checkedChange.emit(value);\r\n  }\r\n\r\n  check(): void {\r\n    if (this.disabled) {\r\n      return;\r\n    }\r\n\r\n    this.updateValue(true);\r\n  }\r\n\r\n  uncheck(): void {\r\n    if (this.disabled) {\r\n      return;\r\n    }\r\n\r\n    this.updateValue(false);\r\n  }\r\n\r\n  toggle(): void {\r\n    if (this.checked) {\r\n      this.uncheck();\r\n    } else {\r\n      this.check();\r\n    }\r\n  }\r\n}\r\n","<ng-content></ng-content>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'headwind-switch-track',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './headwind-switch-track.component.html',\r\n  styleUrl: './headwind-switch-track.component.scss',\r\n  host: {\r\n    class: 'headwind-switch-track',\r\n  },\r\n})\r\nexport class HeadwindSwitchTrackComponent {}\r\n","<ng-content></ng-content>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'headwind-switch-thumb',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './headwind-switch-thumb.component.html',\r\n  styleUrl: './headwind-switch-thumb.component.scss',\r\n  host: {\r\n    class: 'headwind-switch-thumb',\r\n  },\r\n})\r\nexport class HeadwindSwitchThumbComponent {}\r\n","","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class HeadwindTabGroupService {\r\n  /** Current activated tab key */\r\n  tab$ = new BehaviorSubject<any>(undefined);\r\n\r\n  get tab(): any {\r\n    return this.tab$.value;\r\n  }\r\n\r\n  set tab(value: any) {\r\n    this.tab$.next(value);\r\n  }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { HeadwindTabGroupService } from './service/headwind-tab-group.service';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n  selector: 'headwind-tab-group',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './headwind-tab-group.component.html',\r\n  styleUrl: './headwind-tab-group.component.scss',\r\n  host: {\r\n    class: 'headwind-tab-group',\r\n  },\r\n  providers: [HeadwindTabGroupService],\r\n})\r\nexport class HeadwindTabGroupComponent {\r\n  @Output() tabKeyChange = new EventEmitter<any>();\r\n\r\n  private _previousTabKey: any;\r\n\r\n  constructor(private readonly _headwindTabGroupService: HeadwindTabGroupService) {\r\n    this._headwindTabGroupService.tab$.pipe(takeUntilDestroyed()).subscribe((tabKey) => {\r\n      if (this._previousTabKey !== tabKey) {\r\n        this._previousTabKey = tabKey;\r\n        this.tabKeyChange.emit(tabKey);\r\n      }\r\n    });\r\n  }\r\n\r\n  @Input()\r\n  set tabKey(value: any) {\r\n    this._headwindTabGroupService.tab = value;\r\n  }\r\n}\r\n","<ng-content></ng-content>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'headwind-tab-button-group',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './headwind-tab-button-group.component.html',\r\n  styleUrl: './headwind-tab-button-group.component.scss',\r\n  host: {\r\n    class: 'headwind-tab-button-group',\r\n  },\r\n})\r\nexport class HeadwindTabButtonGroupComponent {}\r\n","<ng-content></ng-content>\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: 'ng-template[headwindTabContent]',\r\n  standalone: true,\r\n})\r\nexport class HeadwindTabContentDirective {\r\n  @Input({ required: true }) tabKey: any;\r\n\r\n  constructor(public readonly templateRef: TemplateRef<any>) {}\r\n}\r\n","import {\r\n  AfterViewInit,\r\n  Component,\r\n  ContentChildren,\r\n  DestroyRef,\r\n  EmbeddedViewRef,\r\n  OnDestroy,\r\n  QueryList,\r\n  ViewChild,\r\n  ViewContainerRef,\r\n} from '@angular/core';\r\nimport { HeadwindTabContentDirective } from './headwind-tab-content/headwind-tab-content.directive';\r\nimport { HeadwindTabGroupService } from '../service/headwind-tab-group.service';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n  selector: 'headwind-tab-content-group',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './headwind-tab-content-group.component.html',\r\n  styleUrl: './headwind-tab-content-group.component.scss',\r\n  host: {\r\n    class: 'headwind-tab-content-group',\r\n  },\r\n})\r\nexport class HeadwindTabContentGroupComponent implements AfterViewInit, OnDestroy {\r\n  @ViewChild('tabContentContainer', { read: ViewContainerRef }) tabContentContainer?: ViewContainerRef;\r\n  @ContentChildren(HeadwindTabContentDirective, { descendants: true })\r\n  tabContentTemplateList?: QueryList<HeadwindTabContentDirective>;\r\n\r\n  private _previousTabKey: any;\r\n  private _tabContentEmbeddedViewRef?: EmbeddedViewRef<any>;\r\n  private _timeoutId?: any;\r\n\r\n  constructor(\r\n    private readonly _destroyRef: DestroyRef,\r\n    private readonly _headwindTabGroupService: HeadwindTabGroupService,\r\n  ) {}\r\n\r\n  ngOnDestroy() {\r\n    clearTimeout(this._timeoutId);\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    // to prevent NG0100 error\r\n    this._timeoutId = setTimeout(() => {\r\n      this._headwindTabGroupService.tab$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((tabKey) => {\r\n        if (this._previousTabKey !== tabKey) {\r\n          const tabContent = this.getTabContentByKey(tabKey);\r\n\r\n          if (tabContent && this.tabContentContainer) {\r\n            this._tabContentEmbeddedViewRef?.destroy();\r\n            this._tabContentEmbeddedViewRef = this.tabContentContainer.createEmbeddedView(tabContent.templateRef);\r\n          }\r\n\r\n          this._previousTabKey = tabKey;\r\n        }\r\n      });\r\n    });\r\n  }\r\n\r\n  getTabContentByKey(key: string): HeadwindTabContentDirective | undefined {\r\n    return this.tabContentTemplateList?.find((tabContentTemplate) => tabContentTemplate.tabKey === key);\r\n  }\r\n}\r\n","<ng-container #tabContentContainer></ng-container>\r\n","import { Component, DestroyRef, HostListener, Input, OnInit } from '@angular/core';\r\nimport { HeadwindTabGroupService } from '../../service/headwind-tab-group.service';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n  selector: 'headwind-tab-button',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './headwind-tab-button.component.html',\r\n  styleUrl: './headwind-tab-button.component.scss',\r\n  host: {\r\n    role: 'button',\r\n    tabindex: '0',\r\n    class: 'headwind-tab-button',\r\n    ['[class.headwind-selected]']: 'selected',\r\n  },\r\n})\r\nexport class HeadwindTabButtonComponent implements OnInit {\r\n  @Input({ required: true }) tabKey!: any;\r\n\r\n  constructor(\r\n    private readonly _destroyRef: DestroyRef,\r\n    private readonly _headwindTabGroupService: HeadwindTabGroupService,\r\n  ) {}\r\n\r\n  private _selected = false;\r\n\r\n  get selected(): boolean {\r\n    return this._selected;\r\n  }\r\n\r\n  ngOnInit() {\r\n    // to wait until 'tabKey' is provided by input\r\n    this._headwindTabGroupService.tab$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((tabKey) => {\r\n      this._selected = tabKey === this.tabKey;\r\n    });\r\n  }\r\n\r\n  @HostListener('click')\r\n  onHostClick(): void {\r\n    this._headwindTabGroupService.tab = this.tabKey;\r\n  }\r\n\r\n  @HostListener('keydown.space', ['$event'])\r\n  onHostSpaceKeydown(event: Event): void {\r\n    event.stopPropagation();\r\n    event.preventDefault();\r\n\r\n    this._headwindTabGroupService.tab = this.tabKey;\r\n  }\r\n\r\n  @HostListener('keydown.enter', ['$event'])\r\n  onHostEnterKeydown(event: Event): void {\r\n    event.stopPropagation();\r\n    event.preventDefault();\r\n\r\n    this._headwindTabGroupService.tab = this.tabKey;\r\n  }\r\n}\r\n","<ng-content></ng-content>\r\n","// Accordion\r\nexport * from './components/headwind-accordion/headwind-accordion.component';\r\nexport * from './components/headwind-accordion/headwind-accordion-button/headwind-accordion-button.component';\r\nexport * from './components/headwind-accordion/headwind-accordion-content/headwind-accordion-content.directive';\r\n\r\n// Checkbox\r\nexport * from './components/headwind-checkbox/headwind-checkbox.component';\r\nexport * from './components/headwind-checkbox/headwind-checkbox-button/headwind-checkbox-button.component';\r\nexport * from './components/headwind-checkbox/headwind-checkbox-button/headwind-checkbox-checked/headwind-checkbox-checked.directive';\r\n\r\n// Popover\r\nexport * from './components/headwind-popover/headwind-popover.component';\r\nexport * from './components/headwind-popover/headwind-popover-button/headwind-popover-button.directive';\r\nexport * from './components/headwind-popover/headwind-popover-overlay/headwind-popover-overlay.directive';\r\nexport * from './components/headwind-popover/headwind-popover-overlay/headwind-popover-overlay.component';\r\n\r\n// Radio Group\r\nexport * from './components/headwind-radio-group/headwind-radio-group.component';\r\nexport * from './components/headwind-radio-group/headwind-radio/headwind-radio.component';\r\nexport * from './components/headwind-radio-group/headwind-radio/headwind-radio-button/headwind-radio-button.component';\r\nexport * from './components/headwind-radio-group/headwind-radio/headwind-radio-button/headwind-radio-selected/headwind-radio-selected.directive';\r\n\r\n// Select\r\nexport * from './components/headwind-select/headwind-select.component';\r\nexport * from './components/headwind-select/headwind-options-overlay/headwind-options-overlay.directive';\r\nexport * from './components/headwind-select/headwind-options-overlay/headwind-options-overlay.component';\r\nexport * from './components/headwind-select/headwind-options-overlay/headwind-option/headwind-option.component';\r\n\r\n// Switch\r\nexport * from './components/headwind-switch/headwind-switch.component';\r\nexport * from './components/headwind-switch/headwind-switch-track/headwind-switch-track.component';\r\nexport * from './components/headwind-switch/headwind-switch-track/headwind-switch-thumb/headwind-switch-thumb.component';\r\n\r\n// Tab Group\r\nexport * from './components/headwind-tab-group/headwind-tab-group.component';\r\nexport * from './components/headwind-tab-group/headwind-tab-button-group/headwind-tab-button-group.component';\r\nexport * from './components/headwind-tab-group/headwind-tab-content-group/headwind-tab-content-group.component';\r\nexport * from './components/headwind-tab-group/headwind-tab-button-group/headwind-tab-button/headwind-tab-button.component';\r\nexport * from './components/headwind-tab-group/headwind-tab-content-group/headwind-tab-content/headwind-tab-content.directive';\r\n\r\n// Services\r\nexport * from './services/headwind-overlay.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.HeadwindAccordionService","i1.HeadwindPlatformService","i1.HeadwindCheckboxService","i1.HeadwindWindowService","i2.HeadwindClickDetector","i3.HeadwindPopoverService","i1.HeadwindPopoverService","i1.HeadwindOverlayService","i2.HeadwindPopoverService","i3.HeadwindAnimator","i1.HeadwindRadioGroupService","i1.HeadwindQueryListService","i2.HeadwindRadioGroupService","i1.HeadwindSelectService","i2.HeadwindPlatformService","i3.HeadwindClickDetector","i4.HeadwindQueryListService","i5.HeadwindSelectService","i4.HeadwindSelectService","i1.HeadwindSwitchService","i1.HeadwindTabGroupService"],"mappings":"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"}