{"version":3,"file":"ng-doc-ui-kit-directives-event-switcher.mjs","sources":["../../../../libs/ui-kit/directives/event-switcher/event-switcher.directive.ts","../../../../libs/ui-kit/directives/event-switcher/ng-doc-ui-kit-directives-event-switcher.ts"],"sourcesContent":["import { DestroyRef, Directive, ElementRef, inject, Input, NgZone, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { asArray } from '@ng-doc/core/helpers/as-array';\nimport { Constructor } from '@ng-doc/core/types';\nimport { toElement } from '@ng-doc/ui-kit/helpers';\nimport { ngDocZoneDetach } from '@ng-doc/ui-kit/observables';\nimport { BaseElement } from '@ng-doc/ui-kit/types';\nimport { fromEvent, merge } from 'rxjs';\n\n@Directive({\n  selector: '[ngDocEventSwitcher]',\n  standalone: true,\n})\nexport class NgDocEventSwitcherDirective implements OnInit {\n  private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n  private ngZone = inject(NgZone);\n\n  @Input('ngDocEventSwitcher')\n  switchTo: BaseElement<HTMLElement> | null = null;\n\n  @Input()\n  events: string | string[] = [];\n\n  private readonly destroyRef = inject(DestroyRef);\n\n  constructor() {}\n\n  ngOnInit(): void {\n    merge(\n      ...asArray(this.events).map((eventName: string) =>\n        fromEvent(this.elementRef.nativeElement, eventName),\n      ),\n    )\n      .pipe(ngDocZoneDetach(this.ngZone), takeUntilDestroyed(this.destroyRef))\n      .subscribe((event: Event) => {\n        if (this.switchTo && !event.defaultPrevented && event.bubbles) {\n          event.stopPropagation();\n          this.makeEvent(event, toElement(this.switchTo));\n        }\n      });\n  }\n\n  private makeEvent(from: Event, target: Element): void {\n    const eventConstructor: Constructor<Event> = from.constructor as Constructor<Event>;\n    target.dispatchEvent(new eventConstructor(from.type, from));\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;MAaa,2BAA2B,CAAA;AAYtC,IAAA,WAAA,GAAA;AAXQ,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AACxD,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAG/B,IAAA,CAAA,QAAQ,GAAoC,IAAI;QAGhD,IAAA,CAAA,MAAM,GAAsB,EAAE;AAEb,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IAEjC;IAEf,QAAQ,GAAA;QACN,KAAK,CACH,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,SAAiB,KAC5C,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC,CACpD;AAEA,aAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACtE,aAAA,SAAS,CAAC,CAAC,KAAY,KAAI;AAC1B,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,OAAO,EAAE;gBAC7D,KAAK,CAAC,eAAe,EAAE;AACvB,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjD;AACF,QAAA,CAAC,CAAC;IACN;IAEQ,SAAS,CAAC,IAAW,EAAE,MAAe,EAAA;AAC5C,QAAA,MAAM,gBAAgB,GAAuB,IAAI,CAAC,WAAiC;AACnF,QAAA,MAAM,CAAC,aAAa,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7D;8GAhCW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,EAAA,UAAA,CAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;sBAKE,KAAK;uBAAC,oBAAoB;;sBAG1B;;;ACpBH;;AAEG;;;;"}