{"version":3,"file":"ngx-tooltip-directives.mjs","sources":["../../../projects/ngx-tooltip-directives/src/lib/config/default-options.const.ts","../../../projects/ngx-tooltip-directives/src/lib/config/tooltip-options.service.ts","../../../projects/ngx-tooltip-directives/src/lib/tooltip/tooltip.component.ts","../../../projects/ngx-tooltip-directives/src/lib/tooltip/tooltip.component.html","../../../projects/ngx-tooltip-directives/src/lib/directives/base-tooltip.directive.ts","../../../projects/ngx-tooltip-directives/src/lib/directives/tooltip-str.directive.ts","../../../projects/ngx-tooltip-directives/src/lib/directives/tooltip-html.directive.ts","../../../projects/ngx-tooltip-directives/src/lib/directives/tooltip-template.directive.ts","../../../projects/ngx-tooltip-directives/src/lib/ngx-tooltip-directives.module.ts","../../../projects/ngx-tooltip-directives/src/lib/mocks/mock-ngx-tooltip-directives.module.ts","../../../projects/ngx-tooltip-directives/src/public-api.ts","../../../projects/ngx-tooltip-directives/src/ngx-tooltip-directives.ts"],"sourcesContent":["import { TooltipOptions } from \"./options.interface\";\n\nexport const defaultOptions: TooltipOptions = {\n\tid: 0,\n\tplacement: 'top',\n\tautoPlacement: true,\n\tcontentType: 'string',\n\ttextColor: 'black',\n\tbackgroundColor: 'white',\n\tborderColor: 'blue',\n\ttextAlign: 'center',\n\tpadding: '5px 8px',\n\tshadow: true,\n\tshowDelay: 0,\n\thideDelay: 0,\n\thideDelayTouchscreen: 0,\n\thideDelayAfterClick: 0,\n\tzIndex: 1100,\n\tanimationDuration: 100,\n\tanimationDurationDefault: 100,\n\ttrigger: 'hover',\n\ttooltipClass: '',\n\tdisplay: true,\n\tdisplayTouchscreen: true,\n\toffset: 8,\n\tmaxWidth: '200px',\n\tpointerEvents: 'auto', // 'none' would mean that there is no reaction to clicks\n\tappendTooltipToBody: true\n}\n","import { InjectionToken } from '@angular/core';\nimport { TooltipOptions } from './options.interface';\n\n/**\n * This is not a real service, but it looks like it from the outside.\n * It's just an InjectionToken used to import the config (initOptions) object, provided from the outside\n */\nexport const TooltipOptionsService = new InjectionToken<TooltipOptions>('TooltipOptions');\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, ElementRef, inject, OnDestroy, OnInit, signal, TemplateRef } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { Subject, filter, fromEvent, takeUntil, tap } from 'rxjs';\nimport { ContentType } from '../directives/base-tooltip.directive';\nimport { defaultOptions } from '../config/default-options.const';\nimport { TooltipOptions } from '../config/options.interface';\nimport { Placement } from '../types/placement.type';\nimport { TooltipEventType } from '../types/tooltip-event.type';\nimport { TooltipDto } from './tooltip.dto';\n\ninterface TooltipStyles {\n\tplacement: Placement;\n\ttopStyle: number;\n\tleftStyle: number;\n\ttooltipHeight: number;\n\ttooltipWidth: number;\n\tclientWidth: number;\n\tadjustScrollY: number;\n}\n\n@Component({\n\tselector: 'tooltip',\n\ttemplateUrl: './tooltip.component.html',\n\tstyleUrls: ['./tooltip.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgTemplateOutlet],\n\thost: {\n\t\t// --- Host-classes reading the signals ---\n\n\t\t'[class]': '_classList()',\n\n\t\t// --- Host-styles reading the signals ---\n\n\t\t'[style.position]': 'hostPosition()', // Set 'absolute' or 'fixed' based on whether tooltip is appended to body or not\n\t\t'[style.top]': '_hostTop()',\n\t\t'[style.left]': '_hostLeft()',\n\t\t'[style.padding]': '_hostStylePadding()',\n\t\t'[style.zIndex]': '_hostStyleZIndex()',\n\t\t'[style.width]': '_hostStyleWidth()',\n\t\t'[style.minWidth]': '_hostStyleMinWidth()',\n\t\t'[style.maxWidth]': '_hostStyleMaxWidth()',\n\t\t'[style.pointerEvents]': '_hostStylePointerEvents()',\n\t\t'[style.--transition-time]': '_transitionTime()',\n\t\t'[style.--tooltip-text-color]': '_textColor()',\n\t\t'[style.--tooltip-text-align]': '_textAlign()',\n\t\t'[style.--tooltip-background-color]': '_backgroundColor()',\n\t\t'[style.--tooltip-border-color]': '_borderColor()',\n\t}\n})\n\n\nexport class TooltipComponent implements OnInit, OnDestroy {\n\tprivate readonly elementRef = inject(ElementRef);\n\n\t// The observable below will inform base-tooltip-directive when user clicked outside tooltip:\n\tprivate userClickOutsideTooltipSubject = new Subject<MouseEvent>();\n\tuserClickOutsideTooltip$ = this.userClickOutsideTooltipSubject.asObservable();\n\n\t// This information is purely for the user to know when the tooltip is shown or hidden:\n\tprivate visibilityChangeCompletedSubject = new Subject<{ type: Extract<TooltipEventType, 'shown' | 'hidden'> }>();\n\tvisibilityChangeCompleted$ = this.visibilityChangeCompletedSubject.asObservable();\n\n\t// --- Tooltip Content ---\n\tprotected contentType         = signal<ContentType>(defaultOptions.contentType!); // default to 'string'\n\tprotected tooltipStr          = signal<string>('');\n\tprotected tooltipHtml         = signal<SafeHtml | null>(null);\n\tprotected tooltipTemplate!: TemplateRef<any>;\n\tprotected tooltipContext \t  = signal<any | null>(null);\n\n\tprivate readonly prioritizedPlacements: Placement[] = [ 'bottom', 'right', 'top', 'left', 'bottom-left', 'top-left' ];\n\n\tprivate autoPlacement!: boolean;\n\tprivate hostElement!: any;\n\tpublic hostElementPosition!: { top: number, left: number } | DOMRect;\n\tprivate tooltipOffset!: number;\n\n\t// --- State as signals ---\n\n\t// Initialize all host styles\n\tpublic hostPosition = signal<string>('absolute');\n\tprivate _hostStyleTop = signal<number>(0);\n\tprivate _hostStyleLeft = signal<number>(0);\n\tprotected readonly _hostStylePadding = signal<string>(defaultOptions.padding!);\n\tprotected readonly _hostStyleZIndex = signal<number>(defaultOptions.zIndex!);\n\tprotected readonly _hostStyleWidth = signal<string | null>(null);\n\tprotected readonly _hostStyleMinWidth = signal<string | null>(null);\n\tprotected readonly _hostStyleMaxWidth = signal<string>(defaultOptions.maxWidth!);\n\tprotected readonly _hostStylePointerEvents = signal<string>(defaultOptions.pointerEvents!);\n\tprotected readonly _transitionTime = signal<string>(`${defaultOptions.animationDurationDefault}ms`);\n\tprotected readonly _textColor = signal<string>(defaultOptions.textColor!);\n\tprotected readonly _textAlign = signal<string>(defaultOptions.textAlign!);\n\tprotected readonly _backgroundColor = signal<string>(defaultOptions.backgroundColor!);\n\tprotected readonly _borderColor = signal<string>(defaultOptions.borderColor!);\n\n\tprotected readonly _hostTop = computed(() => `${this._hostStyleTop()}px`);\n\tprotected readonly _hostLeft = computed(() => `${this._hostStyleLeft()}px`);\n\n\t// Initialize all host classes\n\tprivate _state      = signal<'show'|'hide'>('hide');\n\tprivate _placement  = signal<Placement>(defaultOptions.placement!); // placement defined by user\n\tprivate _placementClass = computed(() => `tooltip-${this._placement()}`);\n\tprivate _hasShadow = signal<boolean>(defaultOptions.shadow!);\n\tprivate _shadowClass = computed(() => this._hasShadow() ? 'tooltip-shadow' : '');\n\tprivate _customClass = signal<string>('');\n\n\tprotected readonly _classList = computed(() => {\n\t\tconst parts = [\n\t\t\t'tooltip',               // static base class\n\t\t\tthis._state(),           // 'show' | 'hide'\n\t\t\tthis._placementClass(),  // e.g. 'tooltip-bottom'\n\t\t\tthis._shadowClass(),\t // 'tooltip-shadow' | ''\n\t\t\tthis._customClass().trim()\n\t\t];\n\t\treturn parts.filter(Boolean).join(' ');\n\t});\n\n\n\tprivate readonly destroy$ = new Subject<void>();\n\n\n\tngOnInit() {\n\t\tthis.listenToClicksOutsideTooltip();\n\t\tthis.listenToFadeInEnd();\n\t\tthis.listenToFadeOutEnd();\n\t}\n\n\n\t/* Methods that are invoked by base-tooltip.directive.ts */\n\n\tshowTooltip(config: TooltipDto) {\n\t\tthis.setTooltipProperties(config);\n\t\tthis._state.set('show');\n\n\t\t// 'requestAnimationFrame()' prevents the tooltip from 'jumping around'\n\t\trequestAnimationFrame(() => {\n\t\t\tconst appendToBody = config.options.appendTooltipToBody ?? defaultOptions.appendTooltipToBody!;\n\t\t\tconst isFixed = !appendToBody;\n\t\t\tthis.setPosition(isFixed);\n\t\t});\n\t}\n\n\thideTooltip() {\n\t\tthis._state.set('hide');\n\t}\n\n\tsetPosition(isFixedPosition: boolean): void {\n\t\tconst primary = this._placement();\n\n\t\t// 1) Check primary placement\n\t\tlet primaryStyles = this.calculateTooltipStylesForPlacement(primary, isFixedPosition);\n\t\tif (!this.autoPlacement || this.isPlacementInsideVisibleArea(primaryStyles, isFixedPosition)) {\n\t\t\tthis.setPlacementStyles(primaryStyles);\n\t\t\treturn;\n\t\t}\n\n\t\t// 2) Auto-placement fallback\n\t\tfor (const placement of this.prioritizedPlacements) {\n\n\t\t\t// Skip primary placement – we already checked it\n\t\t\tif (placement === primary) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst styles = this.calculateTooltipStylesForPlacement(placement, isFixedPosition);\n\t\t\tif (this.isPlacementInsideVisibleArea(styles, isFixedPosition)) {\n\t\t\t\tthis.setPlacementStyles(styles);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// 3) Final fallback (nothing visible) → use primary anyway\n\t\tthis.setPlacementStyles(primaryStyles);\n\t}\n\n\n\t/* Private helper methods */\n\n\tprivate listenToClicksOutsideTooltip() {\n\t\tfromEvent<MouseEvent>(window, 'click')\n\t\t\t.pipe(\n\t\t\t\ttap((event: MouseEvent) => {\n\t\t\t\t\tconst targetElement = event.target as HTMLElement;\n\t\t\t\t\t// Check if the clicked element is not within the tooltip element\n\t\t\t\t\tif (this.elementRef.nativeElement &&\n\t\t\t\t\t\t!this.elementRef.nativeElement.contains(targetElement)) {\n\t\t\t\t\t\tthis.userClickOutsideTooltipSubject.next(event);\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.destroy$)\n\t\t\t)\n\t\t\t.subscribe();\n\t}\n\n\tprivate listenToFadeInEnd() {\n\t\tfromEvent<TransitionEvent>(this.elementRef.nativeElement, 'transitionend')\n\t\t\t.pipe(\n\t\t\t\tfilter(event => event.propertyName === 'opacity' && this._state() === 'show'),\n\t\t\t\ttap(() => {\n\t\t\t\t\tthis.visibilityChangeCompletedSubject.next({ type: 'shown' })\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.destroy$),\n\t\t\t)\n\t\t\t.subscribe();\n\t}\n\n\tprivate listenToFadeOutEnd() {\n\t\tfromEvent<TransitionEvent>(this.elementRef.nativeElement, 'transitionend')\n\t\t\t.pipe(\n\t\t\t\tfilter(event => event.propertyName === 'opacity' && this._state() === 'hide'),\n\t\t\t\ttap(() => {\n\t\t\t\t\tthis.visibilityChangeCompletedSubject.next({ type: 'hidden' })\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.destroy$)\n\t\t\t)\n\t\t\t.subscribe();\n\t}\n\n\tprivate setTooltipProperties(config: TooltipDto) {\n\t\tconst type = config.options.contentType ?? defaultOptions.contentType!;\n\t\tthis.contentType.set(type);\n\n\t\tif (type === 'string' && config.tooltipStr) {\n\t\t\tthis.tooltipStr.set(config.tooltipStr);\n\t\t}\n\t\tif (type === 'html' && config.tooltipHtml) {\n\t\t\tthis.tooltipHtml.set(config.tooltipHtml);\n\t\t}\n\t\tif (type === 'template' && config.tooltipTemplate) {\n\t\t\tthis.tooltipTemplate = config.tooltipTemplate;\n\t\t\tthis.tooltipContext.set(config.tooltipContext ?? null);\n\t\t}\n\n\t\tthis.hostElement = config.hostElement;\n\t\tthis.hostElementPosition = config.hostElementPosition;\n\t\tthis._placement.set(config.options.placement ?? defaultOptions.placement!);\n\t\tthis.autoPlacement = config.options.autoPlacement ?? defaultOptions.autoPlacement!;\n\t\tthis.tooltipOffset = !!config.options.offset ? +config.options.offset : +defaultOptions.offset!;\n\n\t\tthis.applyStyleOptions(config.options);\n\t}\n\n\tprivate setPlacementStyles(s: TooltipStyles): void {\n\t\t// update coordinates\n\t\tthis._hostStyleTop.set(s.topStyle);\n\t\tthis._hostStyleLeft.set(s.leftStyle);\n\n\t\t// update placement → recomputes class list automatically\n\t\tthis._placement.set(s.placement);\n\t}\n\n\tprivate calculateTooltipStylesForPlacement(placement: Placement, isFixedPosition: boolean): TooltipStyles {\n\t\tconst isFormCtrlSVG = this.hostElement instanceof SVGElement;\n\t\tconst tooltip = this.elementRef.nativeElement;\n\t\tconst tooltipHeight = tooltip.clientHeight;\n\t\tconst tooltipWidth = tooltip.clientWidth;\n\t\tconst adjustScrollY = isFixedPosition ? 0 : window.scrollY;\n\n\t\tlet formControlHeight = isFormCtrlSVG\n\t\t\t? this.hostElement.getBoundingClientRect().height\n\t\t\t: this.hostElement.offsetHeight;\n\n\t\tlet formControlWidth = isFormCtrlSVG\n\t\t\t? this.hostElement.getBoundingClientRect().width\n\t\t\t: this.hostElement.offsetWidth;\n\n\t\t// In case the user passed a custom position, the object would just contain {top: number, left: number}\n\t\tconst isCustomPosition = !(this.hostElementPosition instanceof DOMRect);\n\n\t\tif (isCustomPosition) {\n\t\t\tformControlHeight = 0;\n\t\t\tformControlWidth = 0;\n\t\t}\n\n\t\tlet topStyle, leftStyle;\n\n\t\tswitch (placement) {\n\t\t\tcase 'top':\n\t\t\tcase 'top-left':\n\t\t\t\ttopStyle = (this.hostElementPosition.top + adjustScrollY) - (tooltipHeight + this.tooltipOffset);\n\t\t\t\tbreak;\n\n\t\t\tcase 'bottom':\n\t\t\tcase 'bottom-left':\n\t\t\t\ttopStyle = (this.hostElementPosition.top + adjustScrollY) + (formControlHeight + this.tooltipOffset);\n\t\t\t\tbreak;\n\n\t\t\tcase 'left':\n\t\t\tcase 'right':\n\t\t\t\ttopStyle = (this.hostElementPosition.top + adjustScrollY) + (formControlHeight / 2) - (tooltip.clientHeight / 2);\n\t\t\t\tbreak;\n\t\t}\n\n\t\tswitch (placement) {\n\t\t\tcase 'top':\n\t\t\tcase 'bottom':\n\t\t\t\tleftStyle = (this.hostElementPosition.left + formControlWidth / 2) - (tooltipWidth / 2);\n\t\t\t\tbreak;\n\n\t\t\tcase 'top-left':\n\t\t\tcase 'bottom-left':\n\t\t\t\tleftStyle = this.hostElementPosition.left;\n\t\t\t\tbreak;\n\n\t\t\tcase 'left':\n\t\t\t\tleftStyle = this.hostElementPosition.left - tooltipWidth - this.tooltipOffset;\n\t\t\t\tbreak;\n\n\t\t\tcase 'right':\n\t\t\t\tleftStyle = this.hostElementPosition.left + formControlWidth + this.tooltipOffset;\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn {\n\t\t\tplacement,\n\t\t\ttopStyle,\n\t\t\tleftStyle,\n\t\t\ttooltipHeight,\n\t\t\ttooltipWidth,\n\t\t\tclientWidth: document.body.clientWidth,\n\t\t\tadjustScrollY\n\t\t}\n\t}\n\n\tprivate isPlacementInsideVisibleArea(styleData: TooltipStyles, isFixedPosition: boolean): boolean {\n\t\tconst topEdge = isFixedPosition\n\t\t\t? styleData.topStyle\n\t\t\t: styleData.topStyle - styleData.adjustScrollY;\n\n\t\tconst bottomEdge = isFixedPosition\n\t\t\t? styleData.topStyle + styleData.tooltipHeight\n\t\t\t: styleData.topStyle + styleData.tooltipHeight - styleData.adjustScrollY;\n\n\t\tconst leftEdge = styleData.leftStyle;\n\t\tconst rightEdge = styleData.leftStyle + styleData.tooltipWidth;\n\n\t\tconst bodyHeight = window.innerHeight;\n\t\tconst bodyWidth = styleData.clientWidth;\n\n\t\treturn topEdge >= 0 && bottomEdge <= bodyHeight && leftEdge >= 0 && rightEdge <= bodyWidth;\n\t}\n\n\n\tprivate applyStyleOptions(options: TooltipOptions) {\n\t\tthis._customClass.set(options.tooltipClass ?? '');\n\n\t\tconst zIndex = typeof options.zIndex === 'number' ? options.zIndex : defaultOptions.zIndex!;\n\t\tthis._hostStyleZIndex.set(zIndex);\n\n\t\tthis._hostStylePointerEvents.set(options.pointerEvents ?? defaultOptions.pointerEvents!);\n\n\t\tconst durationMs = (options.animationDuration ?? defaultOptions.animationDurationDefault) + 'ms';\n\t\tthis._transitionTime.set(durationMs);\n\n\t\tthis._textColor.set(options.textColor ?? defaultOptions.textColor!);\n\t\tthis._textAlign.set(options.textAlign ?? defaultOptions.textAlign!);\n\t\tthis._hostStylePadding.set(options.padding ?? defaultOptions.padding!);\n\t\tthis._backgroundColor.set(options.backgroundColor ?? defaultOptions.backgroundColor!);\n\t\tthis._borderColor.set(options.borderColor ?? defaultOptions.borderColor!);\n\n\t\tthis._hasShadow.set(options.shadow ?? defaultOptions.shadow!);\n\n\t\tthis._hostStyleMinWidth.set(options.minWidth ?? null);\n\t\tthis._hostStyleMaxWidth.set(options.maxWidth ?? defaultOptions.maxWidth!);\n\t\tthis._hostStyleWidth.set(options.width ?? null);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.destroy$.next();\n\t\tthis.destroy$.unsubscribe();\n\t}\n}\n","\n<div class=\"tooltip-arrow\"></div>\n\n@switch (contentType()) {\n    @case ('string') {\n\t\t<div class=\"tooltip-label\">\n\t\t\t{{ tooltipStr() }}\n\t\t</div>\n    }\n    @case ('html') {\n\t\t<div class=\"tooltip-label\"\n\t\t\t[innerHTML]=\"tooltipHtml()\">\n\t\t</div>\n    }\n\t@case ('template') {\n\t\t<div>\n\t\t\t<ng-container *ngTemplateOutlet=\"tooltipTemplate; context: this.tooltipContext()\"></ng-container>\n\t\t</div>\n    }\n}","import { ComponentRef, computed, Directive, ElementRef, EventEmitter, inject, Injector, input, OnDestroy, OnInit, Output, signal, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { auditTime, filter, first, fromEvent, merge, race, Subject, switchMap, takeUntil, tap, timer } from 'rxjs';\nimport { defaultOptions } from '../config/default-options.const';\nimport { TooltipOptions } from '../config/options.interface';\nimport { TooltipOptionsService } from '../config/tooltip-options.service';\nimport { Placement } from '../types/placement.type';\nimport { TooltipEvent } from '../types/tooltip-event.type';\nimport { TooltipComponent } from '../tooltip/tooltip.component';\nimport { TooltipDto } from '../tooltip/tooltip.dto';\n\nexport type ContentType = 'string' | 'html' | 'template';\n\n@Directive()\n\nexport abstract class BaseTooltipDirective implements OnInit, OnDestroy {\n\tprivate readonly hostElementRef = inject(ElementRef<HTMLElement>);\n\tprivate readonly viewContainerRef = inject(ViewContainerRef);\n\tprivate readonly injector = inject(Injector);\n\n\tprivate readonly initOptions = inject(TooltipOptionsService, {\n\t\toptional: true\n\t});\n\n\n\t// Will be populated by child-directive\n\tprivate _tooltipContent!: string | SafeHtml | TemplateRef<any>;\n\tprivate _tooltipContext: any | undefined;\n\n\tprivate readonly tooltipContentType = signal<ContentType | undefined>(undefined);\n\n\tget contentType(): ContentType | undefined {\n\t\treturn this.mergedOptions().contentType;\n\t}\n\n\t// Pass options as a single object:\n\treadonly options = input<TooltipOptions>({});\n\n\treadonly id = input<string | number | null>(null);\n\treadonly placement = input<Placement | null>(null);\n\treadonly autoPlacement = input<boolean | null>(null);\n\treadonly textColor = input<string | null>(null);\n\treadonly backgroundColor = input<string | null>(null);\n\treadonly borderColor = input<string | null>(null);\n\treadonly textAlign = input<'left' | 'center' | 'right' | null>(null);\n\treadonly padding = input<string | null>(null);\n\treadonly hideDelayTouchscreen = input<number | null>(null);\n\treadonly zIndex = input<number | null>(null);\n\treadonly animationDuration = input<number | null>(null);\n\treadonly trigger = input<'hover' | 'click' | null>(null);\n\treadonly tooltipClass = input<string | null>(null);\n\treadonly display = input<boolean | null>(null);\n\treadonly displayTouchscreen = input<boolean | null>(null);\n\treadonly shadow = input<boolean | null>(null);\n\treadonly offset = input<number | null>(null);\n\treadonly width = input<string | null>(null);\n\treadonly minWidth = input<string | null>(null);\n\treadonly maxWidth = input<string | null>(null);\n\treadonly showDelay = input<number | null>(null);\n\treadonly hideDelay = input<number | null>(null);\n\treadonly hideDelayAfterClick = input<number | null>(null);\n\treadonly pointerEvents = input<'auto' | 'none' | null>(null);\n\treadonly position = input<{ top: number; left: number } | null>(null);\n\treadonly appendTooltipToBody = input<boolean | null>(null);\n\n\t// A merge of all options that were passed in various ways:\n\tprivate readonly mergedOptions = computed<TooltipOptions>(() => ({\n\t\t...defaultOptions,\n\t\t...(this.initOptions || {}),\n\t\t...this.options(),\n\t\t...(this.id() != null ? { id: this.id()! } : {}),\n\t\t...(this.placement() != null ? { placement: this.placement()! } : {}),\n\t\t...(this.autoPlacement() != null ? { autoPlacement: this.autoPlacement()! } : {}),\n\t\t...(this.textColor() != null ? { textColor: this.textColor()! } : {}),\n\t\t...(this.backgroundColor() != null ? { backgroundColor: this.backgroundColor()! } : {}),\n\t\t...(this.borderColor() != null ? { borderColor: this.borderColor()! } : {}),\n\t\t...(this.textAlign() != null ? { textAlign: this.textAlign()! } : {}),\n\t\t...(this.padding() != null ? { padding: this.padding()! } : {}),\n\t\t...(this.hideDelayTouchscreen() != null ? { hideDelayTouchscreen: this.hideDelayTouchscreen()! } : {}),\n\t\t...(this.zIndex() != null ? { zIndex: this.zIndex()! } : {}),\n\t\t...(this.animationDuration() != null ? { animationDuration: this.animationDuration()! } : {}),\n\t\t...(this.trigger() != null ? { trigger: this.trigger()! } : {}),\n\t\t...(this.tooltipClass() != null ? { tooltipClass: this.tooltipClass()! } : {}),\n\t\t...(this.display() != null ? { display: this.display()! } : {}),\n\t\t...(this.displayTouchscreen() != null ? { displayTouchscreen: this.displayTouchscreen()! } : {}),\n\t\t...(this.shadow() != null ? { shadow: this.shadow()! } : {}),\n\t\t...(this.offset() != null ? { offset: this.offset()! } : {}),\n\t\t...(this.width() != null ? { width: this.width()! } : {}),\n\t\t...(this.minWidth() != null ? { minWidth: this.minWidth()! } : {}),\n\t\t...(this.maxWidth() != null ? { maxWidth: this.maxWidth()! } : {}),\n\t\t...(this.showDelay() != null ? { showDelay: this.showDelay()! } : {}),\n\t\t...(this.hideDelay() != null ? { hideDelay: this.hideDelay()! } : {}),\n\t\t...(this.hideDelayAfterClick() != null ? { hideDelayAfterClick: this.hideDelayAfterClick()! } : {}),\n\t\t...(this.pointerEvents() != null ? { pointerEvents: this.pointerEvents()! } : {}),\n\t\t...(this.position() != null ? { position: this.position()! } : {}),\n\t\t...(this.appendTooltipToBody() != null ? { appendTooltipToBody: this.appendTooltipToBody()! } : {}),\n\t\t...(this.tooltipContentType() != null ? { contentType: this.tooltipContentType()! } : {})\n\t}));\n\n\n\t@Output()\n\tevents = new EventEmitter<TooltipEvent>();\n\n\n\tprivate refToTooltipComponent: ComponentRef<TooltipComponent> | undefined;\n\tprivate tooltipComponent: TooltipComponent | undefined;\n\n\tprivate isTooltipVisible = false;\n\n\tprivate get isTooltipComponentDestroyed(): boolean {\n\t\treturn !this.refToTooltipComponent?.location.nativeElement.isConnected;\n\t}\n\n\tprivate get hostElementPosition(): { top: number, left: number } | DOMRect {\n\t\treturn this.mergedOptions().position ?? this.hostElementRef.nativeElement.getBoundingClientRect();\n\t}\n\n\tprivate get isDisplayOnHover(): boolean {\n\t\tif (this.mergedOptions().display == false ||\n\t\t\t(this.mergedOptions().displayTouchscreen == false && this.isTouchScreen) ||\n\t\t\tthis.mergedOptions().trigger !== 'hover') {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\n\tprivate get isDisplayOnClick(): boolean {\n\t\tif (this.mergedOptions().display == false ||\n\t\t\t(this.mergedOptions().displayTouchscreen == false && this.isTouchScreen) ||\n\t\t\tthis.mergedOptions().trigger != 'click') {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\n\tprivate get isTouchScreen() {\n\t\treturn ('ontouchstart' in window) || window.matchMedia('(any-pointer: coarse)').matches;\n\t}\n\n\tprivate clearTimeouts$ = new Subject<void>();\n\tprivate unsubscribeInputListeners$ = new Subject<void>();\n\tprivate destroy$ = new Subject<void>();\n\n\tngOnInit(): void {\n\t\tthis.subscribeToShowTriggers();\n\t}\n\n\t/* Will be called from child-directive */\n\n\tsetTooltipContent(tooltipContent: string | SafeHtml | TemplateRef<any>, contentType: ContentType) {\n\t\t// Set user-inputs:\n\t\tthis._tooltipContent = tooltipContent;\n\t\tthis.tooltipContentType.set(contentType);\n\t}\n\n\tsetTooltipContext(tooltipContext: any | undefined) {\n\t\t// Set user-inputs:\n\t\tthis._tooltipContext = tooltipContext;\n\t}\n\n\t/* Public methods for library-users */\n\n\tpublic show() {\n\t\tthis.showTooltip({ subscribeToAutomaticHideListeners: false });\n\t}\n\n\tpublic hide() {\n\t\tthis.hideTooltip({ subscribeToAutomaticShowListeners: false });\n\t}\n\n\tprivate showFromTrigger() {\n\t\tthis.showTooltip({ subscribeToAutomaticHideListeners: true });\n\t}\n\n\tprivate hideFromTrigger() {\n\t\tthis.hideTooltip({ subscribeToAutomaticShowListeners: true });\n\t}\n\n\tprivate showTooltip(options: { subscribeToAutomaticHideListeners: boolean }) {\n\t\tif (this._tooltipContent && this.contentType) {\n\t\t\t// Stop all ongoing processes:\n\t\t\tthis.clearTimeouts$.next();\n\t\t\tthis.unsubscribeInputListeners$.next();\n\n\t\t\tif (this.tooltipComponent && !this.isTooltipComponentDestroyed) {\n\t\t\t\tthis.setTooltipVisibility('visible');\n\t\t\t\t// Subscribe to input-events:\n\t\t\t\tif (options.subscribeToAutomaticHideListeners) {\n\t\t\t\t\tthis.subscribeToHideTriggers();\n\t\t\t\t\tthis.subscribeToResizeEvents();\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.createTooltip({\n\t\t\t\t\tsubscribeToAutomaticHideListeners: options.subscribeToAutomaticHideListeners\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate hideTooltip(options: { subscribeToAutomaticShowListeners: boolean }) {\n\t\tif (this.isTooltipVisible) {\n\t\t\t// Stop all ongoing processes:\n\t\t\tthis.clearTimeouts$.next();\n\t\t\tthis.unsubscribeInputListeners$.next();\n\n\t\t\tthis.setTooltipVisibility('hidden');\n\n\t\t\t// Subscribe to input-events:\n\t\t\tif (options.subscribeToAutomaticShowListeners) {\n\t\t\t\tthis.subscribeToShowTriggers();\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/** Private library-Methods **/\n\n\tprivate subscribeToShowTriggers() {\n\t\tconst raceObservables$ = [];\n\n\t\tif (this.isDisplayOnHover) {\n\t\t\tconst mouseEnter$ = fromEvent<MouseEvent>(this.hostElementRef.nativeElement, 'mouseenter');\n\t\t\tconst focusIn$ = fromEvent<FocusEvent>(this.hostElementRef.nativeElement, 'focusin');\n\t\t\traceObservables$.push(mouseEnter$, focusIn$);\n\t\t}\n\t\telse if (this.isDisplayOnClick) {\n\t\t\tconst clickOnHostElement$ = fromEvent(this.hostElementRef.nativeElement, 'click');\n\t\t\traceObservables$.push(clickOnHostElement$);\n\t\t}\n\n\t\tif (raceObservables$.length === 0) { return; }\n\n\t\trace(raceObservables$)\n\t\t\t.pipe(\n\t\t\t\tswitchMap(() => {\n\t\t\t\t\tthis.clearTimeouts$.next();  // Cancel any ongoing hide tooltip actions\n\t\t\t\t\treturn this.showTooltipAfterDelay(this.mergedOptions().showDelay ?? 0);\n\t\t\t\t}),\n\t\t\t\ttakeUntil(merge(this.unsubscribeInputListeners$, this.destroy$))\n\t\t\t)\n\t\t\t.subscribe();\n\t}\n\n\n\tprivate subscribeToHideTriggers() {\n\t\tconst raceObservables$ = [fromEvent(document, 'scroll')];\n\n\t\tif (this.isDisplayOnHover) {\n\t\t\tconst mouseLeave$ = fromEvent<MouseEvent>(this.hostElementRef.nativeElement, 'mouseleave');\n\t\t\tconst focusOut$ = fromEvent<FocusEvent>(this.hostElementRef.nativeElement, 'focusout');\n\t\t\traceObservables$.push(mouseLeave$, focusOut$);\n\t\t}\n\n\t\t// Only add `clickOutside$` if it is defined\n\t\tif (this.tooltipComponent) {\n\t\t\tconst clickOutsideTooltip$ = this.tooltipComponent.userClickOutsideTooltip$;\n\t\t\traceObservables$.push(clickOutsideTooltip$);\n\t\t}\n\n\t\trace(raceObservables$)\n\t\t\t.pipe(\n\t\t\t\tswitchMap(() => {\n\t\t\t\t\tthis.clearTimeouts$.next();  // Cancel any ongoing show tooltip actions\n\t\t\t\t\treturn this.hideTooltipAfterDelay(this.mergedOptions().hideDelay ?? 0);\n\t\t\t\t}),\n\t\t\t\ttakeUntil(merge(this.unsubscribeInputListeners$, this.destroy$))\n\t\t\t)\n\t\t\t.subscribe();\n\t}\n\n\n\t/* The tooltip-position needs to be adjusted when user resizes the window */\n\tprivate subscribeToResizeEvents() {\n\t\tconst resize$ = fromEvent(window, 'resize');\n\n\t\tmerge(resize$)\n\t\t\t.pipe(\n\t\t\t\t// For 'auditTime' check the following stackoverflow-article:\n\t\t\t\t// 'Rxjs: How to use bufferTime while only triggering an emission when new values have arrived'\n\t\t\t\tauditTime(100),\n\t\t\t\tfilter(() => this.isTooltipVisible && !!this.tooltipComponent),\n\t\t\t\ttap(() => {\n\t\t\t\t\tif (this.tooltipComponent) {\n\t\t\t\t\t\tthis.tooltipComponent.hostElementPosition = this.hostElementPosition;\n\t\t\t\t\t\tconst appendTooltipToBody = this.mergedOptions().appendTooltipToBody ?? defaultOptions.appendTooltipToBody!;\n\t\t\t\t\t\tconst isFixedPosition = !appendTooltipToBody;\n\t\t\t\t\t\tthis.tooltipComponent.setPosition(isFixedPosition);\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttakeUntil(merge(this.unsubscribeInputListeners$, this.destroy$))\n\t\t\t)\n\t\t\t.subscribe();\n\t}\n\n\tprivate createTooltip(options: { subscribeToAutomaticHideListeners: boolean }) {\n\t\t// Stop all ongoing processes:\n\t\tthis.clearTimeouts$.next();\n\n\t\ttimer(this.mergedOptions().showDelay ?? 0)\n\t\t\t.pipe(\n\t\t\t\tfirst(),\n\t\t\t\ttakeUntil(merge(this.destroy$, this.clearTimeouts$)),\n\t\t\t\ttap(() => {\n\t\t\t\t\tconst appendToTooltipBody = this.mergedOptions().appendTooltipToBody ?? defaultOptions.appendTooltipToBody!;\n\t\t\t\t\tthis.appendTooltipToDomElement(appendToTooltipBody);\n\t\t\t\t\tthis.setTooltipVisibility('visible');\n\t\t\t\t\t// Subscribe to input-events:\n\t\t\t\t\tif (options.subscribeToAutomaticHideListeners) {\n\t\t\t\t\t\tthis.subscribeToHideTriggers();\n\t\t\t\t\t\tthis.subscribeToResizeEvents();\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.destroy$)\n\t\t\t)\n\t\t\t.subscribe();\n\t}\n\n\tprivate showTooltipAfterDelay(delayInMillis: number) {\n\t\treturn timer(delayInMillis)\n\t\t\t.pipe(\n\t\t\t\ttakeUntil(this.clearTimeouts$),\n\t\t\t\ttap(() => this.showFromTrigger())\n\t\t\t);\n\t}\n\n\tprivate hideTooltipAfterDelay(delayInMillis: number) {\n\t\treturn timer(delayInMillis)\n\t\t\t.pipe(\n\t\t\t\ttakeUntil(this.clearTimeouts$),\n\t\t\t\ttap(() => this.hideFromTrigger())\n\t\t\t);\n\t}\n\n\tprivate appendTooltipToDomElement(appendTooltipToBody: boolean): void {\n\t\t// Create the component using the ViewContainerRef.\n\t\t// This way the component is automatically added to the change detection cycle of the Angular application\n\t\tthis.refToTooltipComponent = this.viewContainerRef.createComponent(TooltipComponent, { injector: this.injector });\n\t\tthis.tooltipComponent = this.refToTooltipComponent.instance;\n\t\tthis.tooltipComponent.hostPosition.set(appendTooltipToBody ? 'absolute' : 'fixed');\n\n\t\tif (!this.tooltipComponent) { return; }\n\n\t\t// Get the DOM element from the component's view.\n\t\tconst domElemTooltip = (this.refToTooltipComponent.location.nativeElement as HTMLElement);\n\n\t\t// Get the host element from hostElementRef.\n\t\tconst hostElem = this.hostElementRef.nativeElement;\n\n\t\tif (!appendTooltipToBody && !hostElem) {\n\t\t\tconsole.warn('Host element not found, appending to body instead.');\n\t\t\tdocument.body.appendChild(domElemTooltip); // fallback if host element is not available\n\t\t}\n\t\telse if (!appendTooltipToBody && hostElem) {\n\t\t\t// Append the DOM element (tooltip) to the host element instead of the body.\n\t\t\thostElem.appendChild(domElemTooltip);\n\t\t}\n\t\telse {\n\t\t\t// Append the DOM element (tooltip) to the body since appendTooltipToBody is true.\n\t\t\tdocument.body.appendChild(domElemTooltip);\n\t\t}\n\n\t\t// Subscribe to events from the component.\n\t\tthis.tooltipComponent?.visibilityChangeCompleted$\n\t\t\t.pipe(\n\t\t\t\ttap(({ type }) => {\n\t\t\t\t\ttype === 'shown' && this.events.emit({ type: 'shown', position: this.hostElementPosition });\n\t\t\t\t\ttype === 'hidden' && this.events.emit({ type: 'hidden', position: this.hostElementPosition });\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.destroy$)\n\t\t\t)\n\t\t\t.subscribe();\n\t}\n\n\tprivate setTooltipVisibility(targetVisibility: 'visible' | 'hidden'): void {\n\n\t\tif (targetVisibility === 'visible' && this.tooltipComponent && this._tooltipContent && this.contentType) {\n\n\t\t\tthis.events.emit({ type: 'show', position: this.hostElementPosition });\n\n\t\t\t// Set the data property of the component instance\n\t\t\tconst tooltipData: TooltipDto = this.assembleTooltipData();\n\t\t\tthis.showTooltipOnHostComponent(tooltipData);\n\t\t\tthis.isTooltipVisible = true;\n\t\t}\n\t\telse if (targetVisibility === 'hidden' && this.isTooltipVisible && !this.isTooltipComponentDestroyed) {\n\n\t\t\tthis.events.emit({ type: 'hide', position: this.hostElementPosition });\n\n\t\t\tthis.hideTooltipOnHostComponent();\n\t\t\tthis.isTooltipVisible = false;\n\t\t}\n\t}\n\n\tprivate showTooltipOnHostComponent(tooltipData: TooltipDto) {\n\t\tif (this.tooltipComponent) {\n\t\t\tthis.tooltipComponent.showTooltip(tooltipData);\n\t\t}\n\t}\n\n\tprivate hideTooltipOnHostComponent() {\n\t\tif (this.tooltipComponent) {\n\t\t\tthis.tooltipComponent?.hideTooltip();\n\t\t}\n\t}\n\n\tprivate assembleTooltipData(): TooltipDto {\n\t\treturn {\n\t\t\ttooltipStr: this.contentType === 'string' ? this._tooltipContent as string : undefined,\n\t\t\ttooltipHtml: this.contentType === 'html' ? this._tooltipContent : undefined,\n\t\t\ttooltipTemplate: this.contentType === 'template' ? this._tooltipContent as TemplateRef<any> : undefined,\n\t\t\ttooltipContext: this.contentType === 'template' ? this._tooltipContext : undefined,\n\t\t\thostElement: this.hostElementRef.nativeElement,\n\t\t\thostElementPosition: this.hostElementPosition,\n\t\t\toptions: this.mergedOptions()\n\t\t};\n\t}\n\n\tprivate destroyTooltip(): void {\n\t\tthis.clearTimeouts$?.next();\n\t\tthis.destroy$?.next();\n\n\t\tif (!this.isTooltipComponentDestroyed && this.refToTooltipComponent) {\n\t\t\tconst tooltipVisibleAtStart = this.isTooltipVisible;\n\n\t\t\tif (tooltipVisibleAtStart) {\n\t\t\t\tthis.events.emit({ type: 'hide', position: this.hostElementPosition });\n\t\t\t}\n\n\t\t\tthis.refToTooltipComponent?.destroy();\n\n\t\t\tif (tooltipVisibleAtStart) {\n\t\t\t\tthis.events.emit({ type: 'hidden', position: this.hostElementPosition });\n\t\t\t}\n\t\t}\n\n\t\tthis.tooltipComponent = undefined;\n\t\tthis.refToTooltipComponent = undefined;\n\t}\n\n\n\tngOnDestroy(): void {\n\t\tthis.destroyTooltip();\n\t\tthis.clearTimeouts$.unsubscribe();\n\t\tthis.destroy$.unsubscribe();\n\t}\n}\n","import { Directive, effect, input } from '@angular/core';\nimport { BaseTooltipDirective } from './base-tooltip.directive';\n\n@Directive({\n\tselector: '[tooltipStr]',\n\texportAs: 'tooltipStr',\n})\nexport class TooltipStrDirective extends BaseTooltipDirective {\n\n\treadonly tooltipStr = input.required<string>();\n\n\tconstructor() {\n\t\tsuper();\n\n\t\teffect(() => {\n\t\t\tsuper.setTooltipContent(this.tooltipStr(), 'string');\n\t\t});\n\t}\n}","import { Directive, effect, input } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { BaseTooltipDirective } from './base-tooltip.directive';\n\n@Directive({\n\tselector: '[tooltipHtml]',\n\texportAs: 'tooltipHtml',\n})\nexport class TooltipHtmlDirective extends BaseTooltipDirective {\n\n\treadonly tooltipHtml = input.required<SafeHtml>();\n\n\tconstructor() {\n\t\tsuper();\n\n\t\teffect(() => {\n\t\t\tsuper.setTooltipContent(this.tooltipHtml(), 'html');\n\t\t});\n\t}\n}","import { Directive, effect, input, TemplateRef } from '@angular/core';\nimport { BaseTooltipDirective } from './base-tooltip.directive';\n\n@Directive({\n\tselector: '[tooltipTemplate]',\n\texportAs: 'tooltipTemplate'\n})\nexport class TooltipTemplateDirective extends BaseTooltipDirective {\n\n\treadonly tooltipTemplate = input.required<TemplateRef<any>>();\n\treadonly tooltipContext = input<any>();\n\n\tconstructor() {\n\t\tsuper();\n\n\t\teffect(() => {\n\t\t\tsuper.setTooltipContent(this.tooltipTemplate(), 'template');\n\t\t});\n\n\t\teffect(() => {\n\t\t\tsuper.setTooltipContext(this.tooltipContext());\n\t\t});\n\t}\n}","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { TooltipOptions } from './config/options.interface';\nimport { TooltipOptionsService } from './config/tooltip-options.service';\nimport { TooltipHtmlDirective } from './directives/tooltip-html.directive';\nimport { TooltipStrDirective } from './directives/tooltip-str.directive';\nimport { TooltipTemplateDirective } from './directives/tooltip-template.directive';\nimport { TooltipComponent } from './tooltip/tooltip.component';\n\n@NgModule({\n  imports: [\n    TooltipComponent,\n    TooltipStrDirective,\n    TooltipHtmlDirective,\n    TooltipTemplateDirective,\n  ],\n  exports: [\n    TooltipStrDirective,\n    TooltipHtmlDirective,\n    TooltipTemplateDirective,\n  ]\n})\n\nexport class NgxTooltipDirectivesModule {\n  \n\tstatic forRoot(initOptions: TooltipOptions): ModuleWithProviders<NgxTooltipDirectivesModule> {\n\t\treturn {\n\t\t\tngModule: NgxTooltipDirectivesModule,\n\t\t\tproviders: [\n\t\t\t\t{\n\t\t\t\t\tprovide: TooltipOptionsService,\n\t\t\t\t\tuseValue: initOptions\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\t}\n}\n","import { Directive, Input, NgModule, TemplateRef } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { ContentType } from '../directives/base-tooltip.directive';\nimport { TooltipOptions } from '../config/options.interface';\nimport { Placement } from '../types/placement.type';\n\n@Directive()\n\nexport abstract class MockBaseTooltipDirective {\n\n    // Will be populated by child-directive\n    tooltipContent!: string | SafeHtml | TemplateRef<any>;\n\n    get contentType(): ContentType | undefined {\n        return this.mergedOptions.contentType;\n    }\n\n\t// A merge of all options that were passed in various ways:\n\tprivate mergedOptions: TooltipOptions = {};\n\n    // Will contain all options collected from the @Inputs\n\tprivate collectedOptions: Partial<TooltipOptions> = {};\n\n    // Pass options as a single object:\n    @Input()\n\toptions: TooltipOptions = {};\n\n\t@Input()\n\tset id(val: string | number) {\n\t  \tthis.collectedOptions.id = val;\n\t}\n\n\t@Input()\n\tset placement(val: Placement) {\n\t  \tthis.collectedOptions.placement = val;\n\t}\n\n\t@Input()\n\tset autoPlacement(val: boolean) {\n\t \t this.collectedOptions.autoPlacement = val;\n\t}\n\n    @Input()\n    set textColor(val: string) {\n        this.collectedOptions.textColor = val;\n    }\n\n    @Input()\n    set backgroundColor(val: string) {\n        this.collectedOptions.backgroundColor = val;\n    }\n\n    @Input()\n    set borderColor(val: string) {\n        this.collectedOptions.borderColor = val;\n    }\n\n    @Input()\n\tset textAlign(val: 'left' | 'center' | 'right') {\n\t \t this.collectedOptions.textAlign = val;\n\t}\n\n    @Input()\n    set padding(val: string) {\n        this.collectedOptions.padding = val;\n    }\n\n    @Input()\n    set hideDelayTouchscreen(val: number) {\n        this.collectedOptions.hideDelayTouchscreen = val;\n    }\n\n\t@Input()\n\tset zIndex(val: number) {\n\t  \tthis.collectedOptions.zIndex = val;\n\t}\n\n    @Input()\n    set animationDuration(val: number) {\n        this.collectedOptions.animationDuration = val;\n    }\n\n    @Input()\n    set trigger(val: 'hover' | 'click') {\n        this.collectedOptions.trigger = val;\n    }\n\n    @Input()\n    set tooltipClass(val: string) {\n        this.collectedOptions.tooltipClass = val;\n    }\n\n    @Input()\n    set display(val: boolean) {\n        this.collectedOptions.display = val;\n    }\n\n    @Input()\n    set displayTouchscreen(val: boolean) {\n        this.collectedOptions.displayTouchscreen = val;\n    }\n\n    @Input()\n    set shadow(val: boolean) {\n        this.collectedOptions.shadow = val;\n    }\n\n    @Input()\n    set offset(val: number) {\n        this.collectedOptions.offset = val;\n    }\n\n    @Input()\n    set width(val: string) {\n        this.collectedOptions.width = val;\n    }\n\n    @Input()\n    set maxWidth(val: string) {\n        this.collectedOptions.maxWidth = val;\n    }\n\n    @Input()\n    set showDelay(val: number) {\n        this.collectedOptions.showDelay = val;\n    }\n    \n    @Input()\n    set hideDelay(val: number) {\n        this.collectedOptions.hideDelay = val;\n    }\n\n    @Input()\n    set hideDelayAfterClick(val: number) {\n        this.collectedOptions.hideDelayAfterClick = val;\n    }\n\n    @Input()\n    set pointerEvents(val: 'auto' | 'none') {\n        this.collectedOptions.pointerEvents = val;\n    }\n\n\t@Input()\n\tset position(val: { top: number; left: number }) {\n\t \tthis.collectedOptions.position = val;\n\t}\n}\n\n@Directive({\n  selector: '[tooltipStr]',\n  exportAs: 'tooltipStr',\n  standalone: true\n})\nexport class MockTooltipStrDirective extends MockBaseTooltipDirective {\n  @Input() tooltipStr!: string;\n}\n\n@Directive({\n  selector: '[tooltipHtml]',\n  exportAs: 'tooltipHtml',\n  standalone: true\n})\nexport class MockTooltipHtmlDirective extends MockBaseTooltipDirective {\n  @Input() tooltipHtml!: string;\n}\n\n@Directive({\n  selector: '[tooltipTemplate]',\n  exportAs: 'tooltipTemplate',\n  standalone: true\n})\nexport class MockTooltipTemplateDirective extends MockBaseTooltipDirective {\n  @Input() tooltipTemplate!: any;\n  @Input() tooltipContext: any;\n}\n\n@NgModule({\n  imports: [\n    MockTooltipStrDirective,\n    MockTooltipHtmlDirective,\n    MockTooltipTemplateDirective,\n  ],\n  exports: [\n    MockTooltipStrDirective,\n    MockTooltipHtmlDirective,\n    MockTooltipTemplateDirective,\n  ]\n})\nexport class MockNgxTooltipDirectivesModule {}\n\nexport const MOCK_NGX_TOOLTIP_DIRECTIVES = [\n  MockTooltipStrDirective,\n  MockTooltipHtmlDirective,\n  MockTooltipTemplateDirective,\n] as const;\n","/*\n * Public API Surface of ngx-tooltip-directives\n */\n\nexport * from './lib/directives/tooltip-str.directive';\nexport * from './lib/directives/tooltip-html.directive';\nexport * from './lib/directives/tooltip-template.directive';\nexport * from './lib/ngx-tooltip-directives.module';\nexport * from './lib/config/options.interface';\nexport * from './lib/types/tooltip-event.type';\n\n// Export the mocks\nexport * from './lib/mocks/mock-ngx-tooltip-directives.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}