{"version":3,"file":"alyle-ui-tooltip.mjs","sources":["../../../lib/tooltip/tooltip.ts","../../../lib/tooltip/tooltip.module.ts","../../../lib/tooltip/alyle-ui-tooltip.ts"],"sourcesContent":["import {\n  ChangeDetectorRef,\n  Directive,\n  ElementRef,\n  Input,\n  NgZone,\n  OnDestroy,\n  TemplateRef,\n  OnInit,\n  Renderer2,\n  InjectionToken,\n  Optional,\n  Inject\n  } from '@angular/core';\nimport {\n  LyFocusState,\n  LyOverlay,\n  LyTheme2,\n  OverlayFactory,\n  Placement,\n  ThemeVariables,\n  XPosition,\n  YPosition,\n  Positioning,\n  StyleCollection,\n  LyClasses,\n  StyleTemplate,\n  ThemeRef\n  } from '@alyle/ui';\nimport { Subscription } from 'rxjs';\nimport { ScrollDispatcher } from '@angular/cdk/scrolling';\nimport { normalizePassiveListenerOptions, Platform } from '@angular/cdk/platform';\nimport { coerceNumberProperty, NumberInput } from '@angular/cdk/coercion';\n\n/** Options used to bind passive event listeners. */\nconst passiveListenerOptions = normalizePassiveListenerOptions({passive: true});\n\nexport interface LyTooltipDefaultOptions {\n  /** Default delay when the tooltip is shown. */\n  showDelay: number;\n\n  /** Default delay when the tooltip is hidden. */\n  hideDelay: number;\n\n  /** Default delay when hiding the tooltip on a touch device. */\n  touchendHideDelay: number;\n}\n\nexport const LY_TOOLTIP_DEFAULT_OPTIONS =\n  new InjectionToken<LyTooltipDefaultOptions>('LY_TOOLTIP_DEFAULT_OPTIONS');\n\n/** Possible positions for a tooltip. */\nexport type LyTooltipPosition = 'left' | 'right' | 'above' | 'below' | 'before' | 'after';\n\nexport interface LyTooltipTheme {\n  /** Styles for Tooltip Component */\n  root?: StyleCollection<((classes: LyClasses<typeof STYLES>) => StyleTemplate)>\n    | ((classes: LyClasses<typeof STYLES>) => StyleTemplate);\n}\n\nexport interface LyTooltipVariables {\n  tooltip?: LyTooltipTheme;\n}\n\nconst DEFAULT_PLACEMENT = YPosition.below;\nconst STYLE_PRIORITY = -2;\nexport const STYLES = (theme: ThemeVariables & LyTooltipVariables, ref: ThemeRef) => {\n  const __ = ref.selectorsOf(STYLES);\n  return {\n    $priority: STYLE_PRIORITY,\n    root: () => (theme.tooltip\n      && theme.tooltip.root\n      && (theme.tooltip.root instanceof StyleCollection\n        ? theme.tooltip.root.setTransformer(fn => fn(__)).css\n        : theme.tooltip.root(__))\n    )\n  };\n};\n\n@Directive({\n  selector: '[lyTooltip]',\n  exportAs: 'lyTooltip',\n  standalone: false\n})\nexport class LyTooltip implements OnInit, OnDestroy {\n  /** @docs-private */\n  readonly classes = this._theme.renderStyleSheet(STYLES);\n  private _tooltip: string | TemplateRef<any> | null;\n  private _tooltipOverlay: OverlayFactory | null;\n  private _listeners: (readonly [string, EventListenerOrEventListenerObject])[] = [];\n  private _scrollSub: Subscription;\n  private _scrollVal = 0;\n  private _showTimeoutId: number | null;\n  private _hideTimeoutId: number | null;\n  @Input('lyTooltip')\n  set tooltip(val: string | TemplateRef<any> | null) {\n    this._tooltip = val;\n  }\n  get tooltip() {\n    return this._tooltip;\n  }\n\n  @Input('lyTooltipShowDelay')\n  get showDelay(): number {\n    return this._showDelay;\n  }\n  set showDelay(value: NumberInput) {\n    this._showDelay = coerceNumberProperty(value);\n  }\n  private _showDelay = this._defaults?.showDelay ?? 0;\n\n  @Input('lyTooltipHideDelay')\n  get hideDelay(): number {\n    return this._hideDelay;\n  }\n  set hideDelay(value: NumberInput) {\n    this._hideDelay = coerceNumberProperty(value);\n  }\n  private _hideDelay = this._defaults?.hideDelay ?? 0;\n\n\n  @Input('lyTooltipPlacement') placement: Placement;\n  @Input('lyTooltipXPosition') xPosition: `${XPosition}`;\n  @Input('lyTooltipYPosition') yPosition: `${YPosition}`;\n  constructor(\n    private _theme: LyTheme2,\n    private _overlay: LyOverlay,\n    private _el: ElementRef,\n    private _renderer: Renderer2,\n    private _cd: ChangeDetectorRef,\n    private _focusState: LyFocusState,\n    @Optional() @Inject(LY_TOOLTIP_DEFAULT_OPTIONS)\n    private _defaults: LyTooltipDefaultOptions,\n    ngZone: NgZone,\n    scroll: ScrollDispatcher,\n    private _platform: Platform,\n  ) {\n    if (_platform.isBrowser) {\n      const element: HTMLElement = _el.nativeElement;\n      if (this._platformSupportsMouseEvents()) {\n        this._listeners.push(['mouseenter', () => this.show()]);\n        this._listeners.push(['mouseleave', () => this.hide()]);\n      } else {\n        this._listeners.push(['touchstart', () => this.show()]);\n        this._listeners.push(['touchend', () => this.hide(this._defaults?.touchendHideDelay ?? 1500)]);\n        this._listeners.push(['touchcancel', () => this.hide(this._defaults?.touchendHideDelay ?? 1500)]);\n      }\n\n      this._addListeners(this._listeners);\n\n      this._scrollSub = scroll.scrolled().subscribe(() => {\n        if (this._tooltipOverlay) {\n          this._scrollVal++;\n          if (this._scrollVal > 15) {\n            ngZone.run(() => this.hide(0));\n            this._scrollVal = 0;\n          }\n        }\n      });\n\n      _focusState.listen(element)!.subscribe(ev => {\n        if (ev === 'keyboard') {\n          ngZone.run(() => this.show());\n        } else if (ev == null) {\n          ngZone.run(() => this.hide());\n        }\n      });\n    }\n  }\n\n  ngOnInit() {\n    if (!this.placement && !this.xPosition && !this.yPosition) {\n      this.placement = DEFAULT_PLACEMENT;\n    }\n  }\n\n  ngOnDestroy() {\n    this.hide(0);\n\n    // Clean up the event listeners set in the constructor\n    this._listeners.forEach(([event, listener]) => {\n      this._el.nativeElement.removeEventListener(event, listener, passiveListenerOptions);\n    });\n    this._listeners.length = 0;\n\n    if (this._scrollSub) {\n      this._scrollSub.unsubscribe();\n    }\n\n    this._focusState.unlisten(this._el);\n  }\n\n  show(delay = this.showDelay) {\n    if (this._hideTimeoutId) {\n      clearTimeout(this._hideTimeoutId);\n      this._hideTimeoutId = null;\n    }\n    if (!this._platformSupportsMouseEvents()) {\n      this._updatePosition();\n    }\n    if (!this._tooltipOverlay && this.tooltip && !this._showTimeoutId) {\n      const tooltipRef = this.tooltip;\n      this._showTimeoutId = setTimeout(() => {\n        // const rect = this._el.nativeElement.getBoundingClientRect();\n        const tooltip = this._tooltipOverlay = this._overlay.create(tooltipRef, undefined, {\n          styles: {\n            // top: rect.y,\n            // left: rect.x\n          },\n          onResizeScroll: this._updatePosition.bind(this),\n          classes: [\n            this.classes.root,\n            this._theme.addStyle('LyTooltip', (theme: ThemeVariables) => ({\n              borderRadius: '4px',\n              fontSize: '10px',\n              padding: '6px 8px',\n              opacity: 0,\n              transition: `opacity ${theme.animations.curves.standard} 300ms`,\n              left: 0,\n              margin: '8px',\n              pointerEvents: 'all',\n              [theme.getBreakpoint('XSmall')]: {\n                padding: '8px 16px',\n                fontSize: '14px',\n              }\n            }), undefined, undefined, STYLE_PRIORITY)\n          ],\n          hasBackdrop: false\n        });\n        this._updatePosition();\n\n        this._theme.requestAnimationFrame(() => {\n          this._theme.addStyle('lyTooltip:open', ({\n            opacity: 1,\n          }), tooltip.containerElement, undefined, STYLE_PRIORITY);\n        });\n\n        this._showTimeoutId = null;\n        this._markForCheck();\n      }, delay) as any;\n    }\n  }\n\n  hide(delay = this.hideDelay) {\n    const tooltipOverlay = this._tooltipOverlay;\n    if (this._showTimeoutId) {\n      clearTimeout(this._showTimeoutId);\n      this._showTimeoutId = null;\n    }\n    if (!this._platformSupportsMouseEvents()) {\n      this._updatePosition();\n    }\n    if (tooltipOverlay && !this._hideTimeoutId) {\n      this._hideTimeoutId = setTimeout(() => {\n        this._renderer.removeClass(tooltipOverlay.containerElement, this._theme.addStyle('lyTooltip:open', null));\n        setTimeout(() => tooltipOverlay.destroy(), 300);\n        this._tooltipOverlay = null;\n\n        this._hideTimeoutId = null;\n        this._markForCheck();\n      }, delay) as any;\n    }\n  }\n\n  toggle() {\n    if (this._tooltipOverlay) {\n      this.hide();\n    } else {\n      this.show();\n    }\n  }\n\n  private _markForCheck() {\n    this._cd.markForCheck();\n  }\n\n  private _updatePosition() {\n    const tooltip = this._tooltipOverlay;\n    if (tooltip) {\n      const position = new Positioning(\n        this.placement, this.xPosition,\n        this.yPosition,\n        this._el.nativeElement,\n        tooltip.containerElement,\n        this._theme.variables,\n        13\n      );\n      tooltip.containerElement.style.transform = `translate3d(${position.x}px,${position.y}px,0)`;\n    }\n  }\n\n  private _addListeners(listeners: (readonly [string, EventListenerOrEventListenerObject])[]) {\n    listeners.forEach(([event, listener]) => {\n      this._el.nativeElement.addEventListener(event, listener, passiveListenerOptions);\n    });\n  }\n\n  private _platformSupportsMouseEvents() {\n    return !this._platform.IOS && !this._platform.ANDROID;\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { LyTooltip } from './tooltip';\nimport { LyOverlayModule } from '@alyle/ui';\n\n@NgModule({\n  imports: [LyOverlayModule],\n  declarations: [LyTooltip],\n  exports: [LyTooltip]\n})\nexport class LyTooltipModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}