{"version":3,"file":"notiz-toolbelt-overlay.mjs","sources":["../../../../libs/toolbelt/overlay/src/transition-origin.pipe.ts","../../../../libs/toolbelt/overlay/src/overlay.component.ts","../../../../libs/toolbelt/overlay/src/notiz-toolbelt-overlay.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'transformOrigin',\n  pure: true,\n  standalone: true,\n})\nexport class TransformOriginPipe implements PipeTransform {\n  transform(\n    quadrant:\n      | 'top-left'\n      | 'top-right'\n      | 'bottom-left'\n      | 'bottom-right'\n      | 'top-center'\n      | 'bottom-center'\n      | undefined,\n  ): string {\n    switch (quadrant) {\n      case 'top-left':\n        return 'left top';\n      case 'top-right':\n        return 'right top';\n      case 'bottom-left':\n        return 'left bottom';\n      case 'bottom-right':\n        return 'right bottom';\n      case 'top-center':\n        return 'center top';\n      case 'bottom-center':\n        return 'center bottom';\n      default:\n        return 'center';\n    }\n  }\n}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n  Component,\n  ElementRef,\n  HostBinding,\n  Inject,\n  Injector,\n  Input,\n  OnInit,\n  Output,\n  PLATFORM_ID,\n  ViewChild,\n  runInInjectionContext,\n} from '@angular/core';\nimport { box$ } from '@notiz/toolbelt/box';\nimport { intersection$ } from '@notiz/toolbelt/intersection';\nimport { Let } from '@notiz/toolbelt/let';\nimport { Portal } from '@notiz/toolbelt/portal';\nimport { SpringPipe } from '@notiz/toolbelt/spring';\nimport {\n  Observable,\n  filter,\n  fromEvent,\n  map,\n  of,\n  share,\n  shareReplay,\n} from 'rxjs';\nimport { TransformOriginPipe } from './transition-origin.pipe';\n\n@Component({\n  selector: 'niz-overlay',\n  standalone: true,\n  imports: [CommonModule, Portal, Let, SpringPipe, TransformOriginPipe],\n  template: `\n    <portal>\n      <div\n        #overlay\n        [style.zIndex]=\"zIndex\"\n        class=\"fixed block transform transition-[opacity,transform] duration-100 ease-out\"\n        [ngClass]=\"{\n          'scale-95 opacity-0': !(bounds$ | async) || !(inViewport$ | async),\n          'opacity-1 scale-100': (bounds$ | async) && (inViewport$ | async)\n        }\"\n        [ngStyle]=\"{\n          width: align === 'stretch' && connected.clientWidth + 'px'\n        }\"\n        [style.left.px]=\"(bounds$ | async)?.left\"\n        [style.top.px]=\"(bounds$ | async)?.top\"\n        [style.transformOrigin]=\"quadrant | transformOrigin\"\n      >\n        <ng-content></ng-content>\n      </div>\n    </portal>\n  `,\n  styles: [],\n})\nexport class Overlay implements OnInit {\n  @HostBinding() hidden = true;\n  @Input() connected!: HTMLElement;\n  @Input() scrollContainer: HTMLElement | string =\n    typeof document === 'undefined'\n      ? ({ scrollTop: 0 } as HTMLElement)\n      : (document.scrollingElement as HTMLElement) || document.documentElement;\n  @Input() verticalOffset = 0;\n  @Input() horizontalOffset = 0;\n  @Input() zIndex = 50;\n  @Input() align: 'center' | 'left' | 'right' | 'stretch' = 'left';\n  @Input() verticalPosition: 'above' | 'below' | 'auto' = 'auto';\n  @Input() windowPadding: number = 8;\n  quadrant?:\n    | 'top-left'\n    | 'top-right'\n    | 'bottom-left'\n    | 'bottom-right'\n    | 'top-center'\n    | 'bottom-center';\n\n  box$!: Observable<DOMRect>;\n  bounds$!: Observable<DOMRect>;\n  inViewport$!: Observable<boolean>;\n  @ViewChild('overlay', { static: true }) overlay!: ElementRef<HTMLElement>;\n\n  @Output() clickOutside =\n    typeof document === 'undefined'\n      ? of()\n      : fromEvent(document, 'mousedown').pipe(\n          filter((event: Event) => {\n            return !this.overlay.nativeElement.contains(\n              event.target as HTMLElement,\n            );\n          }),\n          share(),\n        );\n\n  constructor(\n    @Inject(PLATFORM_ID) private platformId: Object,\n    private injector: Injector,\n  ) {}\n\n  ngOnInit(): void {\n    if (!isPlatformBrowser(this.platformId)) {\n      return;\n    }\n\n\n    this.bounds$ = runInInjectionContext(this.injector, () =>\n      box$(this.connected).pipe(\n        map((rect) => this.map(rect)),\n        shareReplay(1),\n      ),\n    );\n\n    this.inViewport$ = intersection$(this.connected, {}).pipe(\n      map((intersect) => intersect.isIntersecting),\n      shareReplay(1),\n    );\n  }\n\n  map(position: DOMRect) {\n    const width = this.overlay?.nativeElement.clientWidth || 0;\n    const height = this.overlay?.nativeElement.clientHeight || 0;\n    this.quadrant = this.getQuadrant(position);\n    const align =\n      this.align === 'center'\n        ? position.width / 2 - width / 2\n        : this.align === 'left' || this.align === 'stretch'\n          ? 0\n          : position.width - width;\n    let left: number;\n    let top: number;\n\n    const bottomTop =\n      position.top + position.height - height - this.verticalOffset;\n    const topTop = position.top + this.verticalOffset;\n\n    switch (this.quadrant) {\n      case 'top-center':\n      case 'top-left':\n        // left = position.left + this.horizontalOffset;\n        left = position.left + align + this.horizontalOffset;\n        top =\n          this.verticalPosition === 'auto' || this.verticalPosition === 'below'\n            ? topTop\n            : bottomTop;\n        break;\n      case 'top-right':\n        left = position.left - this.horizontalOffset + align;\n        top =\n          this.verticalPosition === 'auto' || this.verticalPosition === 'below'\n            ? topTop\n            : bottomTop;\n        break;\n      case 'bottom-center':\n      case 'bottom-left':\n        left = position.left + align + this.horizontalOffset;\n        top =\n          this.verticalPosition === 'auto' || this.verticalPosition === 'above'\n            ? bottomTop\n            : topTop;\n        break;\n      case 'bottom-right':\n        left = position.left - this.horizontalOffset + align;\n        top =\n          this.verticalPosition === 'auto' || this.verticalPosition === 'above'\n            ? bottomTop\n            : topTop;\n        break;\n      default:\n        left = position.left + align + this.horizontalOffset;\n        top = topTop;\n    }\n\n    // move left and top if the overlay is outside the viewport\n    if (left < this.windowPadding) {\n      left = this.windowPadding;\n    }\n    if (top < this.windowPadding) {\n      top = this.windowPadding;\n    }\n    if (left + width + this.windowPadding > window.innerWidth) {\n      left = window.innerWidth - width - this.windowPadding;\n    }\n    if (top + height + this.windowPadding > window.innerHeight) {\n      top = window.innerHeight - height - this.windowPadding;\n    }\n\n    return new DOMRect(left, top, width, height);\n  }\n\n  getQuadrant(position: DOMRect) {\n    let quadrant: typeof this.quadrant;\n    if (position.left < window.innerWidth / 2) {\n      if (position.top < window.innerHeight / 2) {\n        quadrant = 'top-left';\n      } else {\n        quadrant = 'bottom-left';\n      }\n    } else if (position.top < window.innerHeight / 2) {\n      quadrant = 'top-right';\n    } else {\n      quadrant = 'bottom-right';\n    }\n\n    if (this.align === 'center' || this.align === 'stretch') {\n      if (quadrant.includes('bottom')) {\n        quadrant = 'bottom-center';\n      } else {\n        quadrant = 'top-center';\n      }\n    }\n\n    return quadrant;\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}