{"version":3,"file":"ng-nest-ui-tooltip.mjs","sources":["../../../../lib/ng-nest/ui/tooltip/tooltip.property.ts","../../../../lib/ng-nest/ui/tooltip/tooltip-portal.component.ts","../../../../lib/ng-nest/ui/tooltip/tooltip-portal.component.html","../../../../lib/ng-nest/ui/tooltip/tooltip.directive.ts","../../../../lib/ng-nest/ui/tooltip/tooltip.module.ts","../../../../lib/ng-nest/ui/tooltip/ng-nest-ui-tooltip.ts"],"sourcesContent":["import { XPropertyFunction, XToBoolean, XToNumber } from '@ng-nest/ui/core';\r\nimport { Directive, ElementRef, input, model } from '@angular/core';\r\nimport type { XPlacement, XBoolean, XTemplate, XNumber } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Tooltip\r\n * @selector x-tooltip\r\n * @decorator directive\r\n */\r\nexport const XTooltipPrefix = 'x-tooltip';\r\nconst X_TOOLTIP_CONFIG_NAME = 'tooltip';\r\n\r\n/**\r\n * Tooltip Property\r\n */\r\n@Directive({ selector: `[${XTooltipPrefix}], ${XTooltipPrefix}` })\r\nexport class XTooltipProperty extends XPropertyFunction(X_TOOLTIP_CONFIG_NAME) {\r\n  /**\r\n   * @zh_CN 内容\r\n   * @en_US Content\r\n   */\r\n  readonly content = input<XTemplate>();\r\n  /**\r\n   * @zh_CN 显示位置\r\n   * @en_US Display position\r\n   */\r\n  readonly placement = input<XPlacement>(this.config?.placement ?? 'top');\r\n  /**\r\n   * @zh_CN 显示/隐藏\r\n   * @en_US Show/hide\r\n   */\r\n  readonly visible = model<boolean>(false);\r\n  /**\r\n   * @zh_CN 内部样式\r\n   * @en_US panel class\r\n   */\r\n  readonly panelClass = input<string | string[]>();\r\n  /**\r\n   * @zh_CN 指定参考对象\r\n   * @en_US specify reference object\r\n   */\r\n  readonly connectTo = input<ElementRef<HTMLElement> | HTMLElement>();\r\n  /**\r\n   * @zh_CN 背景颜色\r\n   * @en_US Background color\r\n   */\r\n  readonly backgroundColor = input<string>();\r\n  /**\r\n   * @zh_CN 文字颜色\r\n   * @en_US Text color\r\n   */\r\n  readonly color = input<string>();\r\n  /**\r\n   * @zh_CN 手动处理关闭事件\r\n   * @en_US Manually handle the shutdown event\r\n   */\r\n  readonly manual = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 鼠标移入后延时多少才显示\r\n   * @en_US How much is the mouse transfer after transfer\r\n   */\r\n  readonly mouseEnterDelay = input<number, XNumber>(150, { transform: XToNumber });\r\n  /**\r\n   * @zh_CN 鼠标移出后延时多少才隐藏\r\n   * @en_US How much hidden is hidden after the mouse is removed\r\n   */\r\n  readonly mouseLeaveDelay = input<number, XNumber>(100, { transform: XToNumber });\r\n  /**\r\n   * @zh_CN 禁用显示\r\n   * @en_US Disable display\r\n   */\r\n  readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n}\r\n\r\n/**\r\n * Tooltip Portal\r\n * @selector x-tooltip-portal\r\n * @decorator component\r\n */\r\nexport const XTooltipPortalPrefix = 'x-tooltip-portal';\r\n","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  ElementRef,\r\n  HostListener,\r\n  HostBinding,\r\n  inject,\r\n  input,\r\n  computed,\r\n  viewChild,\r\n  signal,\r\n  output,\r\n  DestroyRef\r\n} from '@angular/core';\r\nimport { XTooltipPortalPrefix } from './tooltip.property';\r\nimport { XPlacement, XTemplate, XIsEmpty } from '@ng-nest/ui/core';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n  selector: `${XTooltipPortalPrefix}`,\r\n  imports: [NgClass, XOutletDirective],\r\n  templateUrl: './tooltip-portal.component.html',\r\n  styleUrls: ['./tooltip-portal.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTooltipPortalComponent {\r\n  placement = input<XPlacement>();\r\n  content = input<XTemplate>();\r\n  box = input<DOMRect>();\r\n  color = input<string>();\r\n  backgroundColor = input<string>();\r\n  hoverChanged = output<boolean>();\r\n  destroy = signal(false);\r\n  private destroyRef = inject(DestroyRef);\r\n\r\n  constructor() {\r\n    this.destroyRef.onDestroy(() => {\r\n      this.destroy.set(true);\r\n    });\r\n  }\r\n\r\n  @HostListener('mouseenter') mouseenter() {\r\n    if (this.destroy()) return;\r\n    this.hoverChanged.emit(true);\r\n  }\r\n  @HostListener('mouseleave') mouseleave() {\r\n    if (this.destroy()) return;\r\n    this.hoverChanged.emit(false);\r\n  }\r\n\r\n  @HostBinding('animate.enter') animateEnter = 'x-fade-enter';\r\n  @HostBinding('animate.leave') animateLeave = 'x-fade-leave';\r\n\r\n  tooltipPortal = viewChild.required('tooltipPortal', { read: ElementRef<HTMLElement> });\r\n\r\n  classMap = computed(() => ({\r\n    [`${XTooltipPortalPrefix}-${this.placement()}`]: !XIsEmpty(this.placement())\r\n  }));\r\n}\r\n","<div #tooltipPortal class=\"x-tooltip-portal\" [ngClass]=\"classMap()\">\r\n  <div class=\"x-tooltip-portal-inner\" [style.backgroundColor]=\"backgroundColor()\" [style.color]=\"color()\">\r\n    <ng-container *xOutlet=\"content()\"><div [innerHTML]=\"content()\"></div></ng-container>\r\n  </div>\r\n</div>\r\n","import {\r\n  ElementRef,\r\n  ViewContainerRef,\r\n  Directive,\r\n  HostListener,\r\n  OnDestroy,\r\n  HostBinding,\r\n  inject,\r\n  signal,\r\n  ComponentRef,\r\n  effect,\r\n  SimpleChanges\r\n} from '@angular/core';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { XTooltipPortalComponent } from './tooltip-portal.component';\r\nimport { XTooltipPrefix, XTooltipProperty } from './tooltip.property';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport {\r\n  OverlayConfig,\r\n  FlexibleConnectedPositionStrategy,\r\n  ConnectedOverlayPositionChange,\r\n  Overlay\r\n} from '@angular/cdk/overlay';\r\nimport { XIsChange, type XPlacement } from '@ng-nest/ui/core';\r\nimport { toObservable } from '@angular/core/rxjs-interop';\r\n\r\n@Directive({ selector: `[${XTooltipPrefix}], ${XTooltipPrefix}` })\r\nexport class XTooltipDirective extends XTooltipProperty implements OnDestroy {\r\n  portal!: XPortalOverlayRef<XTooltipPortalComponent>;\r\n  box = signal<DOMRect | null>(null);\r\n  timeoutHide: any;\r\n  timeoutShow: any;\r\n  mouseover = signal(false);\r\n  private unSubject = new Subject<void>();\r\n  private realPlacement = signal<XPlacement | null>(null);\r\n  private elementRef = inject(ElementRef);\r\n  private portalService = inject(XPortalService);\r\n  private viewContainerRef = inject(ViewContainerRef);\r\n  private overlay = inject(Overlay);\r\n\r\n  @HostBinding('class.x-tooltip-show') get _show() {\r\n    return this.visible();\r\n  }\r\n\r\n  @HostListener('mouseenter') mouseenter() {\r\n    this.mouseover.set(true);\r\n    !this.disabled() && !this.manual() && this.show();\r\n  }\r\n\r\n  @HostListener('mouseleave') mouseleave() {\r\n    this.mouseover.set(false);\r\n    !this.disabled() && !this.manual() && this.hide();\r\n  }\r\n\r\n  portalComponent = signal<ComponentRef<XTooltipPortalComponent> | null>(null);\r\n  visibleChanged = toObservable(this.visible);\r\n\r\n  constructor() {\r\n    super();\r\n    effect(() => this.portalComponent()?.setInput('content', this.content()));\r\n    effect(() => this.portalComponent()?.setInput('box', this.box()));\r\n    effect(() => this.portalComponent()?.setInput('color', this.color()));\r\n    effect(() => this.portalComponent()?.setInput('backgroundColor', this.backgroundColor()));\r\n    effect(() => this.portalComponent()?.setInput('placement', this.realPlacement()));\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.unSubject.next();\r\n    this.unSubject.complete();\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    const { visible } = changes;\r\n    XIsChange(visible) && this.setVisible();\r\n  }\r\n\r\n  setVisible() {\r\n    if (this.visible()) {\r\n      this.show(false);\r\n    } else {\r\n      this.hide(false);\r\n    }\r\n  }\r\n\r\n  show(event = true) {\r\n    if (this.timeoutHide) clearTimeout(this.timeoutHide);\r\n    if (this.timeoutShow) clearTimeout(this.timeoutShow);\r\n    if (!this.portal || (this.portal && !this.portal.overlayRef?.hasAttached())) {\r\n      if ((event && this.mouseover()) || !event) {\r\n        this.timeoutShow = setTimeout(() => {\r\n          this.createPortal();\r\n          this.visible.set(true);\r\n        }, this.mouseEnterDelay());\r\n      }\r\n    }\r\n  }\r\n\r\n  hide(event = true) {\r\n    if (this.timeoutHide) clearTimeout(this.timeoutHide);\r\n    if (this.timeoutShow) clearTimeout(this.timeoutShow);\r\n    if (this.portal?.overlayRef?.hasAttached() && !this.mouseover()) {\r\n      if ((event && !this.mouseover()) || !event) {\r\n        this.timeoutHide = setTimeout(() => {\r\n          this.portal.overlayRef?.detach();\r\n          this.visible.set(false);\r\n        }, this.mouseLeaveDelay());\r\n      }\r\n    }\r\n  }\r\n\r\n  createPortal() {\r\n    const connectTo = this.connectTo();\r\n    const config: OverlayConfig = {\r\n      panelClass: this.panelClass(),\r\n      backdropClass: '',\r\n      positionStrategy: this.portalService.setPlacement({\r\n        elementRef: connectTo\r\n          ? connectTo instanceof ElementRef\r\n            ? connectTo\r\n            : new ElementRef(connectTo)\r\n          : this.elementRef,\r\n        placement: [this.placement(), 'top', 'bottom', 'left', 'right']\r\n      }),\r\n      scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n    };\r\n    this.setPosition(config);\r\n    this.portal = this.portalService.attach({\r\n      content: XTooltipPortalComponent,\r\n      viewContainerRef: this.viewContainerRef,\r\n      overlayConfig: config\r\n    });\r\n    this.setInstance();\r\n  }\r\n\r\n  setPosition(config: OverlayConfig) {\r\n    let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n    position.positionChanges.pipe(takeUntil(this.unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n      const place = XPortalConnectedPosition.get(pos.connectionPair) as XPlacement;\r\n      if (place !== this.realPlacement()) {\r\n        this.realPlacement.set(place);\r\n        this.portal.overlayRef?.updatePosition();\r\n      }\r\n    });\r\n  }\r\n\r\n  setInstance() {\r\n    let componentRef = this.portal?.componentRef;\r\n    if (!componentRef) return;\r\n    this.portalComponent.set(componentRef);\r\n    this.realPlacement.set(this.placement());\r\n    this.box.set(this.elementRef.nativeElement.getBoundingClientRect());\r\n    const { hoverChanged } = componentRef.instance;\r\n    hoverChanged.subscribe((hover: boolean) => {\r\n      if (this.timeoutHide && hover) {\r\n        clearTimeout(this.timeoutHide);\r\n      } else {\r\n        this.hide();\r\n      }\r\n    });\r\n  }\r\n\r\n  updatePortal() {\r\n    this.portal.overlayRef?.updatePosition();\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { XTooltipDirective } from './tooltip.directive';\r\n\r\n@NgModule({\r\n  exports: [XTooltipDirective],\r\n  imports: [XTooltipDirective]\r\n})\r\nexport class XTooltipModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}