@ng-doc/ui-kit
Version:
<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/ng-doc/ng-doc"> <img src="https://ng-doc.com/assets/images/ng-doc.svg?raw=true" alt="Logo" height="150px"> </a>
1 lines • 3.42 kB
Source Map (JSON)
{"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;;;;"}