{"version":3,"file":"novo-elements-elements-popover.mjs","sources":["../../../projects/novo-elements/src/elements/popover/PopOverContent.ts","../../../projects/novo-elements/src/elements/popover/PopOver.ts","../../../projects/novo-elements/src/elements/popover/PopOver.module.ts","../../../projects/novo-elements/src/elements/popover/novo-elements-elements-popover.ts"],"sourcesContent":["import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, ViewChild } from '@angular/core';\nimport { PopOverDirective } from './PopOver';\n\n@Component({\n    selector: 'popover-content',\n    template: `\n    <div\n      #popoverDiv\n      class=\"popover {{ effectivePlacement }}\"\n      [style.top]=\"top + 'px'\"\n      [style.left]=\"left + 'px'\"\n      [class.fade]=\"animation\"\n      style=\"display: block\"\n      role=\"popover\"\n    >\n      <div class=\"arrow {{ effectiveAlignment }}\"></div>\n      <div class=\"popover-title\" [hidden]=\"!title\">{{ title }}</div>\n      <div class=\"popover-content\">\n        <ng-content></ng-content>\n        <div *ngIf=\"htmlContent\" class=\"popover-content-text\" [innerHTML]=\"htmlContent\"></div>\n        <div *ngIf=\"!htmlContent\" class=\"popover-content-text\">{{ content }}</div>\n      </div>\n    </div>\n  `,\n    styleUrls: ['./PopOver.scss'],\n    standalone: false,\n})\nexport class PopOverContent implements AfterViewInit {\n  @Input()\n  content: string;\n  @Input()\n  htmlContent: string;\n  @Input()\n  placement: string = 'top';\n  @Input()\n  title: string;\n  @Input()\n  animation: boolean = true;\n\n  @ViewChild('popoverDiv')\n  popoverDiv: ElementRef;\n  popover: PopOverDirective;\n  onCloseFromOutside = new EventEmitter();\n  top: number = -10000;\n  left: number = -10000;\n  displayType: string = 'none';\n  effectivePlacement: string;\n  effectiveAlignment: string;\n  isHidden: boolean = false;\n\n  constructor(protected element: ElementRef, protected cdr: ChangeDetectorRef) {}\n\n  ngAfterViewInit(): void {\n    this.show();\n    this.cdr.detectChanges();\n  }\n\n  toggle(): void {\n    if (this.isHidden) {\n      this.show();\n    } else {\n      this.hide();\n    }\n  }\n\n  show(): void {\n    if (!this.popover || !this.popover.getElement()) {\n      return;\n    }\n\n    const p = this.positionElements(this.popover.getElement(), this.popoverDiv.nativeElement, this.placement);\n    this.displayType = 'block';\n    this.top = p.top;\n    this.left = p.left;\n    this.isHidden = false;\n  }\n\n  hide(): void {\n    this.top = -10000;\n    this.left = -10000;\n    this.isHidden = true;\n    this.popover.hide();\n  }\n\n  hideFromPopover() {\n    this.top = -10000;\n    this.left = -10000;\n  }\n\n  protected positionElements(\n    hostEl: HTMLElement,\n    targetEl: HTMLElement,\n    positionStr: string,\n    appendToBody = false,\n  ): { top: number; left: number } {\n    const positionStrParts = positionStr.split('-');\n    const mainSide = (this.effectivePlacement = this.getEffectivePlacement(positionStrParts[0] || 'right', hostEl, targetEl));\n    const orientation = (this.effectiveAlignment = positionStrParts[1] || 'center');\n    const hostElPos = appendToBody ? this.offset(hostEl) : this.position(hostEl);\n    const targetElWidth = targetEl.offsetWidth;\n    const targetElHeight = targetEl.offsetHeight;\n\n    const shiftWidth: any = {\n      center(): number {\n        return hostElPos.left + (hostElPos.width - targetElWidth) / 2;\n      },\n      right(): number {\n        return hostElPos.left;\n      },\n      left(): number {\n        return hostElPos.left + (hostElPos.width - targetElWidth);\n      },\n    };\n\n    const shiftHeight: any = {\n      center(): number {\n        return hostElPos.top + (hostElPos.height - targetElHeight) / 2;\n      },\n      bottom(): number {\n        return hostElPos.top;\n      },\n      top(): number {\n        return hostElPos.top + (hostElPos.height - targetElHeight);\n      },\n    };\n\n    let targetElPos: { top: number; left: number };\n    switch (mainSide) {\n      case 'right':\n        targetElPos = {\n          top: shiftHeight[orientation](),\n          left: hostElPos.left + hostElPos.width,\n        };\n        break;\n\n      case 'left':\n        targetElPos = {\n          top: shiftHeight[orientation](),\n          left: hostElPos.left - targetElWidth,\n        };\n        break;\n\n      case 'bottom':\n        targetElPos = {\n          top: hostElPos.top + hostElPos.height,\n          left: shiftWidth[orientation](),\n        };\n        break;\n\n      default:\n        targetElPos = {\n          top: hostElPos.top - targetElHeight,\n          left: shiftWidth[orientation](),\n        };\n        break;\n    }\n\n    return targetElPos;\n  }\n\n  protected position(nativeEl: HTMLElement): { width: number; height: number; top: number; left: number } {\n    let offsetParentBCR = { top: 0, left: 0 };\n    const elBCR = this.offset(nativeEl);\n    const offsetParentEl = this.parentOffsetEl(nativeEl);\n    if (offsetParentEl !== window.document) {\n      offsetParentBCR = this.offset(offsetParentEl);\n      offsetParentBCR.top += offsetParentEl.clientTop - offsetParentEl.scrollTop;\n      offsetParentBCR.left += offsetParentEl.clientLeft - offsetParentEl.scrollLeft;\n    }\n\n    const boundingClientRect = nativeEl.getBoundingClientRect();\n    return {\n      width: boundingClientRect.width || nativeEl.offsetWidth,\n      height: boundingClientRect.height || nativeEl.offsetHeight,\n      top: elBCR.top - offsetParentBCR.top,\n      left: elBCR.left - offsetParentBCR.left,\n    };\n  }\n\n  protected offset(nativeEl: any): { width: number; height: number; top: number; left: number } {\n    const boundingClientRect = nativeEl.getBoundingClientRect();\n    return {\n      width: boundingClientRect.width || nativeEl.offsetWidth,\n      height: boundingClientRect.height || nativeEl.offsetHeight,\n      top: boundingClientRect.top + (window.pageYOffset || window.document.documentElement.scrollTop),\n      left: boundingClientRect.left + (window.pageXOffset || window.document.documentElement.scrollLeft),\n    };\n  }\n\n  protected getStyle(nativeEl: HTMLElement, cssProp: string): string {\n    if ((nativeEl as any).currentStyle) {\n      return (nativeEl as any).currentStyle[cssProp];\n    }\n\n    if (window.getComputedStyle) {\n      return (window.getComputedStyle as any)(nativeEl)[cssProp];\n    }\n\n    return (nativeEl.style as any)[cssProp];\n  }\n\n  protected isStaticPositioned(nativeEl: HTMLElement): boolean {\n    return (this.getStyle(nativeEl, 'position') || 'static') === 'static';\n  }\n\n  protected parentOffsetEl(nativeEl: HTMLElement): any {\n    let offsetParent: any = nativeEl.offsetParent || window.document;\n    while (offsetParent && offsetParent !== window.document && this.isStaticPositioned(offsetParent)) {\n      offsetParent = offsetParent.offsetParent;\n    }\n    return offsetParent || window.document;\n  }\n\n  protected getEffectivePlacement(desiredPlacement: string, hostElement: HTMLElement, targetElement: HTMLElement): string {\n    const hostElBoundingRect = hostElement.getBoundingClientRect();\n\n    if (desiredPlacement === 'top' && hostElBoundingRect.top - targetElement.offsetHeight < 0) {\n      return 'bottom';\n    }\n    if (desiredPlacement === 'bottom' && hostElBoundingRect.bottom + targetElement.offsetHeight > window.innerHeight) {\n      return 'top';\n    }\n    if (desiredPlacement === 'left' && hostElBoundingRect.left - targetElement.offsetWidth < 0) {\n      return 'right';\n    }\n    if (desiredPlacement === 'right' && hostElBoundingRect.right + targetElement.offsetWidth > window.innerWidth) {\n      return 'left';\n    }\n\n    return desiredPlacement;\n  }\n}\n","// NG2\nimport {\n  ComponentFactoryResolver,\n  ComponentRef,\n  Directive,\n  EventEmitter,\n  HostListener,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Output,\n  SimpleChange,\n  ViewContainerRef,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { PopOverContent } from './PopOverContent';\n\n@Directive({\n    /**\n     *  [popover] selector retained for backwards compatability, but should be avoived as\n     *  it interferes with the newly added (2023) HTML standard spec popover attribute.\n     */\n    selector: '[popover], [novoPopover]',\n    standalone: false,\n})\nexport class PopOverDirective implements OnChanges, OnDestroy {\n  protected PopoverComponent = PopOverContent;\n  protected popover: ComponentRef<PopOverContent>;\n  protected visible: boolean;\n  private subscriptions = new Subscription();\n\n  constructor(protected viewContainerRef: ViewContainerRef, protected resolver: ComponentFactoryResolver) {}\n\n  @Input('popover')\n  content: string | PopOverContent;\n  @Input('novoPopover')\n  set novoPopover(content: string | PopOverContent) {\n    this.content = content;\n  }\n  @Input()\n  popoverHtmlContent: string;\n  @Input()\n  popoverDisabled: boolean;\n  @Input()\n  popoverAlways: boolean;\n  @Input()\n  popoverAnimation: boolean;\n  @Input()\n  popoverPlacement: string;\n  @Input()\n  popoverTitle: string;\n  @Input()\n  popoverOnHover: boolean = false;\n  @Input()\n  popoverDismissTimeout: number = 0;\n\n  @Output()\n  onShown = new EventEmitter<PopOverDirective>();\n  @Output()\n  onHidden = new EventEmitter<PopOverDirective>();\n\n  // ---------------------------------------------------\n  // Event listeners\n  // ---------------------------------------------------\n  @HostListener('click')\n  showOrHideOnClick(): void {\n    if (this.popoverOnHover || this.popoverDisabled) {\n      return;\n    }\n    this.toggle();\n  }\n\n  @HostListener('focusin')\n  @HostListener('mouseenter')\n  showOnHover(): void {\n    if (!this.popoverOnHover || this.popoverDisabled) {\n      return;\n    }\n    this.show();\n  }\n\n  @HostListener('focusout')\n  @HostListener('mouseleave')\n  hideOnHover(): void {\n    if (!this.popoverOnHover || this.popoverDisabled) {\n      return;\n    }\n    this.hide();\n  }\n\n  ngOnChanges(changes: { [propertyName: string]: SimpleChange }) {\n    if (changes.popoverDisabled) {\n      if (changes.popoverDisabled.currentValue) {\n        this.hide();\n      }\n    }\n    if (changes.popoverAlways) {\n      if (changes.popoverAlways.currentValue) {\n        this.show();\n      }\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.subscriptions.unsubscribe();\n  }\n\n  toggle() {\n    if (!this.visible) {\n      this.show();\n    } else {\n      this.hide();\n    }\n  }\n\n  show() {\n    if (this.visible || (!this.content && !this.popoverHtmlContent)) {\n      return;\n    }\n\n    this.visible = true;\n    if (typeof this.content === 'string' || this.popoverHtmlContent) {\n      const factory = this.resolver.resolveComponentFactory(this.PopoverComponent);\n      if (!this.visible) {\n        return;\n      }\n\n      this.popover = this.viewContainerRef.createComponent(factory);\n      const popover = this.popover.instance as PopOverContent;\n      popover.popover = this;\n      if (this.content) {\n        popover.content = this.content as string;\n      }\n      if (this.popoverHtmlContent) {\n        popover.htmlContent = this.popoverHtmlContent;\n      }\n      if (this.popoverPlacement !== undefined) {\n        popover.placement = this.popoverPlacement;\n      }\n      if (this.popoverAnimation !== undefined) {\n        popover.animation = this.popoverAnimation;\n      }\n      if (this.popoverTitle !== undefined) {\n        popover.title = this.popoverTitle;\n      }\n\n      this.subscriptions.add(popover.onCloseFromOutside.subscribe(() => this.hide()));\n      if (this.popoverDismissTimeout > 0) {\n        setTimeout(() => this.hide(), this.popoverDismissTimeout);\n      }\n    } else {\n      const popover = this.content as PopOverContent;\n      popover.popover = this;\n      if (this.popoverPlacement !== undefined) {\n        popover.placement = this.popoverPlacement;\n      }\n      if (this.popoverAnimation !== undefined) {\n        popover.animation = this.popoverAnimation;\n      }\n      if (this.popoverTitle !== undefined) {\n        popover.title = this.popoverTitle;\n      }\n\n      this.subscriptions.add(popover.onCloseFromOutside.subscribe(() => this.hide()));\n      if (this.popoverDismissTimeout > 0) {\n        setTimeout(() => this.hide(), this.popoverDismissTimeout);\n      }\n      popover.show();\n    }\n\n    this.onShown.emit(this);\n  }\n\n  hide() {\n    if (!this.visible) {\n      return;\n    }\n\n    this.visible = false;\n    if (this.popover) {\n      this.popover.destroy();\n    }\n\n    if (this.content instanceof PopOverContent) {\n      (this.content as PopOverContent).hideFromPopover();\n    }\n\n    this.onHidden.emit(this);\n  }\n\n  getElement() {\n    return this.viewContainerRef.element.nativeElement;\n  }\n}\n","// NG2\nimport { NgModule } from '@angular/core';\nimport { PopOverDirective } from './PopOver';\n// APP\nimport { PopOverContent } from './PopOverContent';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n  declarations: [PopOverContent, PopOverDirective],\n  exports: [PopOverContent, PopOverDirective],\n  imports: [\n    CommonModule,\n  ],\n})\nexport class NovoPopOverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}