{"version":3,"file":"ngx-tc-dropdown.mjs","sources":["../../../../projects/ngx-tc/dropdown/src/lib/dropdown-trigger/dropdown-trigger.directive.ts","../../../../projects/ngx-tc/dropdown/src/lib/dropdown-content/dropdown-content.component.ts","../../../../projects/ngx-tc/dropdown/src/lib/dropdown-content/dropdown-content.component.html","../../../../projects/ngx-tc/dropdown/src/lib/dropdown-host/dropdown-host.directive.ts","../../../../projects/ngx-tc/dropdown/src/lib/dropdown.component.ts","../../../../projects/ngx-tc/dropdown/src/lib/dropdown.component.html","../../../../projects/ngx-tc/dropdown/src/lib/dropdown.module.ts","../../../../projects/ngx-tc/dropdown/src/public-api.ts","../../../../projects/ngx-tc/dropdown/src/ngx-tc-dropdown.ts"],"sourcesContent":["import {\n  Directive,\n  ElementRef,\n  EventEmitter,\n  HostBinding,\n  HostListener,\n  OnInit,\n  Output\n} from '@angular/core';\nimport { fromEvent, map, merge, Observable } from 'rxjs';\n\n@Directive({\n  selector: '[tc-dropdown-trigger]'\n})\nexport class DropdownTriggerDirective implements OnInit {\n  @HostBinding('class.tc-dropdown-trigger') private dropdownTrigger = true;\n  @HostBinding('class.opened') private active: boolean = false;\n  @HostListener('click', ['$event']) onClick(event: PointerEvent) {\n    event.preventDefault();\n\n    this.active = !this.active;\n    this.toggle.emit([this.active, this.triggerParams$]);\n  }\n  @Output() toggle: EventEmitter<[boolean, Observable<DOMRect>]> = new EventEmitter<[boolean, Observable<DOMRect>]>();\n  private triggerParams$: Observable<DOMRect>;\n  private windowClick$ = fromEvent(window, 'click');\n  private windowResize$ = merge(fromEvent(window, 'resize'), fromEvent(window, 'orientationchange'));\n\n  constructor(private element: ElementRef) {}\n\n  ngOnInit() {\n    this.triggerParams$ = merge(\n      this.windowClick$,\n      this.windowResize$\n    ).pipe(\n      map(() => this.getTriggerParams())\n    );\n  }\n\n  private getTriggerParams(): DOMRect {\n    return this.element.nativeElement.getBoundingClientRect();\n  }\n\n  close() {\n    this.active = false;\n  }\n}\n\n","import {\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostBinding,\n  HostListener,\n  Inject,\n  Input,\n  OnInit,\n  Output\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport {\n  combineLatest,\n  map,\n  Observable,\n  fromEvent,\n  startWith,\n  distinctUntilChanged,\n  shareReplay,\n} from 'rxjs';\n\nimport { Align } from '@ngx-tc/base';\nimport { Position } from '../dropdown.component';\n\n@Component({\n  selector: 'tc-dropdown-content',\n  templateUrl: './dropdown-content.component.html',\n  styleUrls: ['./dropdown-content.component.scss']\n})\nexport class DropdownContentComponent implements OnInit {\n  @HostBinding('class.tc-dropdown-content-wrap') private dropdownContent = true;\n  @HostBinding('class.opened') @Input() opened: boolean = false;\n  @HostBinding('class.tc-dropdown-content-outside') @Input() appendToBody: boolean;\n  @HostBinding('class') get additionalClasses(): string {\n    return `tc-dropdown-content-${this.align} tc-dropdown-content-${this.position} ${this.panelClass || ''}`;\n  }\n  @HostBinding('style.--tc-dropdown-width.px') @Input() width: number;\n  @HostBinding('style.--tc-dropdown-max-height.px') @Input() maxHeight: number;\n  @HostBinding('style.--tc-dropdown-bg') @Input() bg: string;\n  @Input() panelClass: string;\n  @Input() align: Align;\n  @Input() position: Position;\n  @Input() overlay: boolean;\n  @Input() animation: string;\n  @Output() closeDropdown: EventEmitter<void> = new EventEmitter<void>();\n  readonly direction: 'ltr' | 'rtl' = 'ltr';\n\n  positionStart$: Observable<number>;\n  positionAbove$: Observable<number>;\n  positionBelow$: Observable<number>;\n  private windowScroll$ = fromEvent(window, 'scroll').pipe(\n    map(() => window.scrollY),\n    startWith(0), distinctUntilChanged(), shareReplay(1)\n  );\n  triggerParams$: Observable<DOMRect>;\n\n  // animation type\n  @HostBinding('class.fadeInUp-animation') get fadeInUp () {\n    return this.animation === 'fadeInUp' ? true : false;\n  }\n  @HostBinding('class.fadeInDown-animation') get fadeInDown () {\n    return this.animation === 'fadeInDown' ? true : false;\n  }\n  @HostBinding('class.fadeInLeft-animation') get fadeInLeft () {\n    return this.animation === 'fadeInLeft' ? true : false;\n  }\n  @HostBinding('class.fadeInRight-animation') get fadeInRight () {\n    return this.animation === 'fadeInRight' ? true : false;\n  }\n  @HostBinding('class.zoom-animation') get zoom () {\n    return this.animation === 'zoom' ? true : false;\n  }\n\n  // close from Esc key\n  @HostListener('window:keydown', ['$event']) keyboardInput(event: KeyboardEvent) {\n    if (this.opened && event.key === 'Escape') {\n      this.hide();\n    }\n  }\n\n  constructor(\n    private element: ElementRef,\n    @Inject(DOCUMENT) private document: Document\n  ) {\n    this.direction = this.document.dir && this.document.dir === 'rtl' ? 'rtl' : 'ltr';\n  }\n\n  ngOnInit() {\n    this.setYPosition();\n    this.setStartPosition();\n  }\n\n  // show dropdown content\n  show() {\n    this.opened = true;\n  }\n\n  // hide dropdown content\n  hide() {\n    this.opened = false;\n    this.closeDropdown.emit();\n  }\n\n  // append to body\n  appendComponentToBody() {\n    this.document.body.appendChild(this.element.nativeElement);\n  }\n\n  // set start position\n  private setStartPosition() {\n    this.positionStart$ = combineLatest([this.triggerParams$]).pipe(\n      map(([params]) => this.direction === 'rtl'\n        ?  this.document.body.offsetWidth - params.left - params.width\n        : params.left\n      ),\n      map((positionLeft) => this.appendToBody ? positionLeft : 0)\n    );\n  }\n\n  // set Y position\n  private setYPosition() {\n    this.positionBelow$ = combineLatest([this.triggerParams$, this.windowScroll$]).pipe(\n      map(([params, scroll]) => params.height + (this.appendToBody ? params.top - scroll : 0))\n    );\n\n    this.positionAbove$ = combineLatest([this.triggerParams$, this.windowScroll$]).pipe(\n      map(([params, scroll]) => !this.appendToBody ? params.height : (window.innerHeight - params.top + scroll))\n    );\n  }\n}\n","<div\n  class=\"tc-dropdown-content\"\n  [style.--tc-dropdown-position-below.px]=\"(positionBelow$ | async)\"\n  [style.--tc-dropdown-position-above.px]=\"(positionAbove$ | async)\"\n  [style.--tc-dropdown-position-start.px]=\"(positionStart$ | async)\"\n  [style.--tc-dropdown-trigger-width.px]=\"(triggerParams$ | async)?.width\"\n>\n  <ng-content></ng-content>\n</div>\n\n<div class=\"tc-dropdown-overlay\" [ngClass]=\"{ 'tc-dropdown-overlay-bg': overlay }\" (click)=\"hide()\"></div>\n","import { Directive, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Directive({\n  selector: '[tc-dropdown-host]'\n})\nexport class DropdownHostDirective {\n  constructor(\n    public viewContainerRef: ViewContainerRef,\n    public templateRef: TemplateRef<unknown>\n  ) { }\n}\n","import {\n  Component,\n  ContentChild,\n  EventEmitter,\n  HostBinding,\n  Inject,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n  ViewChild\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Observable } from 'rxjs';\n\nimport { Align, align } from '@ngx-tc/base';\n\nimport { DropdownTriggerDirective } from './dropdown-trigger/dropdown-trigger.directive';\nimport { DropdownContentComponent } from './dropdown-content/dropdown-content.component';\nimport { DropdownHostDirective } from './dropdown-host/dropdown-host.directive';\n\nexport type Position = 'below' | 'above';\nexport enum position {\n  below = 'below',\n  above = 'above'\n}\n\n@Component({\n  selector: 'tc-dropdown',\n  templateUrl: './dropdown.component.html',\n  styleUrls: ['./dropdown.component.scss']\n})\nexport class DropdownComponent implements OnInit, OnDestroy {\n  @HostBinding('class.opened') private opened: boolean = false;\n  @ContentChild(DropdownTriggerDirective, { static: true }) private dropdownButton: DropdownTriggerDirective;\n  @ViewChild(DropdownHostDirective, { static: true }) private dropdownHost!: DropdownHostDirective;\n  @Input() overlay: boolean = true;\n  @Input() appendToBody: boolean = false;\n  @Input() animation: string;\n  @Input() width: number;\n  @Input() maxHeight: number;\n  @Input() bg: string;\n  @Input() panelClass: string;\n  @Input() align: Align = align.start;\n  @Input() position: Position = position.below;\n  @Output() closed: EventEmitter<void> = new EventEmitter<void>;\n  private delay: number = 0;\n\n  constructor(@Inject(DOCUMENT) private document: Document) { }\n\n  ngOnInit() {\n    if (this.dropdownButton) {\n      this.dropdownButton.toggle.subscribe(([state, params$]) => {\n        this.toggleDropdown(state, params$);\n      });\n    }\n  }\n\n  ngOnDestroy() {\n    this.removeDynamicComponent();\n  }\n\n  private toggleDropdown(state: boolean, params$?: Observable<DOMRect>) {\n    if (state) {\n      this.createDynamicComponent(params$);\n    } else {\n      this.removeDynamicComponent();\n    }\n  }\n\n  private createDynamicComponent(params$: Observable<DOMRect>) {\n    const contentView = this.dropdownHost.templateRef.createEmbeddedView(null);\n    contentView.detectChanges();\n\n    const viewContainerRef = this.dropdownHost.viewContainerRef;\n\n    viewContainerRef.clear();\n\n    const componentRef = viewContainerRef.createComponent<DropdownContentComponent>(\n      DropdownContentComponent,\n      { projectableNodes: [contentView.rootNodes] }\n    );\n\n    this.setComponentProperties(componentRef.instance, params$);\n    this.document.body.classList.add('opened-tc-dropdown');\n    this.opened = true;\n  }\n\n  private removeDynamicComponent() {\n    const viewContainerRef = this.dropdownHost.viewContainerRef;\n\n    this.closed.emit();\n    this.document.body.classList.remove('opened-tc-dropdown');\n    this.opened = false;\n    setTimeout(() => {\n      viewContainerRef.clear();\n    }, 300);\n  }\n\n  private setComponentProperties(component: DropdownContentComponent, params$: Observable<DOMRect>) {\n    component.overlay = this.overlay;\n    component.appendToBody = this.appendToBody;\n    component.animation = this.animation;\n    component.width = this.width;\n    component.maxHeight = this.maxHeight;\n    component.bg = this.bg;\n    component.panelClass = this.panelClass;\n    component.align = this.align;\n    component.position = this.position;\n    component.triggerParams$ = params$;\n\n    // append dropdown content to the body\n    if (this.appendToBody) {\n      this.delay = 100;\n\n      component.appendComponentToBody();\n    }\n\n    setTimeout(() => {\n      component.show();\n    }, this.delay);\n\n    component.closeDropdown.subscribe(() => {\n      this.toggleDropdown(false);\n      this.dropdownButton.close();\n    });\n  }\n}\n","<ng-content select=\"[tc-dropdown-trigger]\"></ng-content>\n\n<ng-template tc-dropdown-host><ng-content></ng-content></ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TcBaseModule } from '@ngx-tc/base';\n\nimport { DropdownComponent } from './dropdown.component';\nimport { DropdownTriggerDirective } from './dropdown-trigger/dropdown-trigger.directive';\nimport { DropdownContentComponent } from './dropdown-content/dropdown-content.component';\nimport { DropdownHostDirective } from './dropdown-host/dropdown-host.directive';\n\n@NgModule({\n  declarations: [\n    DropdownComponent,\n    DropdownTriggerDirective,\n    DropdownContentComponent,\n    DropdownHostDirective\n  ],\n  imports: [\n    CommonModule,\n    TcBaseModule\n  ],\n  exports: [\n    TcBaseModule,\n    DropdownComponent,\n    DropdownTriggerDirective,\n  ]\n})\nexport class TcDropdownModule { }\n","/*\n * Public API Surface of dropdown\n */\n\nexport * from './lib/dropdown.component';\nexport * from './lib/dropdown-content/dropdown-content.component';\nexport * from './lib/dropdown-trigger/dropdown-trigger.directive';\nexport * from './lib/dropdown-host/dropdown-host.directive';\nexport * from './lib/dropdown.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DropdownHostDirective"],"mappings":"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"}