{"version":3,"file":"cisstech-nge-directives.mjs","sources":["../../../projects/nge/directives/src/dynamic-component.directive.ts","../../../projects/nge/directives/src/long-press-detector.directive.ts","../../../projects/nge/directives/src/touch-detector.directive.ts","../../../projects/nge/directives/src/viewport-intersection.directive.ts","../../../projects/nge/directives/cisstech-nge-directives.ts"],"sourcesContent":["import { Directive, Input, NgModule, OnChanges, Type, ViewContainerRef } from '@angular/core'\nimport { CompilerService } from '@cisstech/nge/services'\n\n@Directive({\n  selector: '[dynamic-component]',\n  standalone: true,\n})\nexport class DynamicComponentDirective implements OnChanges {\n  @Input('dynamic-component')\n  type!: () => Type<any> | Promise<Type<any>>\n\n  @Input('dynamic-componentInputs') inputs: any\n\n  constructor(\n    private readonly compilerService: CompilerService,\n    private readonly viewContainerRef: ViewContainerRef\n  ) {}\n\n  async ngOnChanges(): Promise<void> {\n    this.viewContainerRef.clear()\n    await this.compilerService.render({\n      container: this.viewContainerRef,\n      type: await this.type(),\n      inputs: this.inputs,\n    })\n  }\n}\n\n/**\n * @deprecated in favor of standalone api, so please use direclty the directive as a standalone. Will be removed in/after v18\n */\n@NgModule({\n  imports: [DynamicComponentDirective],\n  exports: [DynamicComponentDirective],\n})\nexport class DynamicComponentDirectiveModule {}\n","import { Directive, EventEmitter, HostListener, Input, NgModule, Output } from '@angular/core'\n\n@Directive({ selector: '[long-press-detector]', standalone: true })\nexport class LongPressDetectorDirective {\n  @Input() longPressDuration = 400\n  @Output() longPress = new EventEmitter<MouseEvent | TouchEvent>()\n  @Output() longPressEnd = new EventEmitter<boolean>()\n\n  private timeout?: ReturnType<typeof setTimeout>\n  private pressing = false\n\n  @HostListener('mousedown', ['$event'])\n  @HostListener('touchstart', ['$event'])\n  onMouseDown(event: MouseEvent | TouchEvent) {\n    event.preventDefault()\n    this.pressing = false\n    this.timeout = setTimeout(() => {\n      this.longPress.emit(event)\n      this.pressing = true\n      event.preventDefault()\n      event.stopPropagation()\n    }, this.longPressDuration)\n  }\n\n  @HostListener('mouseup')\n  @HostListener('touchend')\n  onMouseUp() {\n    if (this.timeout) {\n      clearTimeout(this.timeout)\n    }\n\n    setTimeout(() => {\n      this.longPressEnd.emit(this.pressing)\n      this.pressing = false\n    })\n  }\n}\n\n/**\n * @deprecated in favor of standalone api, so please use direclty the directive as a standalone. Will be removed in/after v18\n */\n@NgModule({\n  imports: [LongPressDetectorDirective],\n  exports: [LongPressDetectorDirective],\n})\nexport class LongPressDetectorDirectiveModule {}\n","import { Directive, ElementRef, EventEmitter, HostListener, NgModule, Output } from '@angular/core'\n\n@Directive({\n  selector: '[touch-detector]',\n  exportAs: 'touch-detector',\n  standalone: true,\n})\nexport class TouchDetectorDirective {\n  private _hover = false\n\n  get hover(): boolean {\n    return this._hover\n  }\n\n  @Output() onUpWhileHovering = new EventEmitter<void>()\n\n  constructor(private readonly el: ElementRef<HTMLElement>) {}\n\n  @HostListener('document:mousemove', ['$event'])\n  @HostListener('document:touchmove', ['$event'])\n  protected touchmove(event: any) {\n    const mouseX = event.clientX || event.touches[0].clientX\n    const mouseY = event.clientY || event.touches[0].clientY\n    const rect = this.el.nativeElement.getBoundingClientRect()\n    const { x, y, width, height } = rect\n    const h = mouseX >= x && mouseX <= x + width\n    const v = mouseY >= y && mouseY <= y + height\n    this._hover = h && v\n  }\n\n  @HostListener('document:mouseup', [])\n  @HostListener('document:touchend', [])\n  protected touchup() {\n    if (this.hover) {\n      this.onUpWhileHovering.emit()\n    }\n  }\n}\n\n/**\n * @deprecated in favor of standalone api, so please use direclty the directive as a standalone. Will be removed in/after v18\n */\n@NgModule({\n  imports: [TouchDetectorDirective],\n  exports: [TouchDetectorDirective],\n})\nexport class TouchDetectorDirectiveModule {}\n","import {\n  AfterViewInit,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  Output,\n  booleanAttribute,\n} from '@angular/core'\n\n@Directive({\n  selector: '[viewportIntersection]',\n  standalone: true,\n})\nexport class ViewportIntersectionDirective implements AfterViewInit, OnDestroy {\n  /**\n   * An optional reference to a container element with its own scrollable area. If not provided, the viewport is used as the default container.\n   */\n  @Input() scrollContainer?: HTMLElement | null\n\n  /**\n   * A single number or an array of numbers indicating at what percentage of the target's\n   * visibility the observer's callback should be executed.\n   * For example, a threshold of 1.0 means the callback will trigger when 100% of the target is visible within the observed area.\n   *\n   * Please refers to the official documentation of Intersection API for more informations.\n   */\n  @Input() threshold?: number | number[]\n\n  /**\n   * A margin around the root element.\n   * This margin works like the CSS margin property, setting how much of the root should be seen before the intersection is observed.\n   * It's specified in pixels or percentages.\n   *\n   * Please refers to the official documentation of Intersection API for more informations.\n   */\n  @Input() rootMargin?: string\n  @Input({ transform: booleanAttribute }) debug = false\n\n  /**\n   * This event is emitted whenever the observed element intersects with the viewport or the specified scrollContainer\n   * according to the given threshold and rootMargin.\n   */\n  @Output() intersected: EventEmitter<void> = new EventEmitter()\n\n  private intersectionObserver?: IntersectionObserver\n\n  constructor(private readonly element: ElementRef<HTMLElement>) {}\n\n  ngAfterViewInit(): void {\n    this.intersectionObserver = new IntersectionObserver(\n      (entries) => {\n        const entry = entries[0]\n        if (entry.isIntersecting) {\n          this.intersected.emit()\n          if (this.debug) {\n            this.element.nativeElement.style.border = '2px solid red'\n          }\n        } else {\n          if (this.debug) {\n            this.element.nativeElement.style.border = '2px solid transparent'\n          }\n        }\n      },\n      {\n        root: this.scrollContainer ? this.scrollContainer : null,\n        rootMargin: this.rootMargin,\n        threshold: this.threshold,\n      }\n    )\n\n    this.intersectionObserver.observe(this.element.nativeElement)\n  }\n\n  ngOnDestroy(): void {\n    if (this.intersectionObserver) {\n      this.intersectionObserver.disconnect()\n    }\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}