{"version":3,"file":"ngx-tippy-wrapper.mjs","sources":["../../../projects/ngx-tippy-wrapper/src/lib/consts/messages-dict.ts","../../../projects/ngx-tippy-wrapper/src/lib/consts/tippy-instance.fixture.ts","../../../projects/ngx-tippy-wrapper/src/lib/ngx-tippy.tokens.ts","../../../projects/ngx-tippy-wrapper/src/lib/components/ngx-tippy-group.component.ts","../../../projects/ngx-tippy-wrapper/src/lib/services/dev-mode.service.ts","../../../projects/ngx-tippy-wrapper/src/lib/ngx-tippy.interfaces.ts","../../../projects/ngx-tippy-wrapper/src/lib/utils/comp-ref.ts","../../../projects/ngx-tippy-wrapper/src/lib/utils/is-component.ts","../../../projects/ngx-tippy-wrapper/src/lib/utils/is-html-template.ts","../../../projects/ngx-tippy-wrapper/src/lib/utils/is-template-ref.ts","../../../projects/ngx-tippy-wrapper/src/lib/utils/set-template-visible.ts","../../../projects/ngx-tippy-wrapper/src/lib/utils/tpl-ref.ts","../../../projects/ngx-tippy-wrapper/src/lib/services/ngx-view.service.ts","../../../projects/ngx-tippy-wrapper/src/lib/services/ngx-tippy.service.ts","../../../projects/ngx-tippy-wrapper/src/lib/components/ngx-tippy-singleton.component.ts","../../../projects/ngx-tippy-wrapper/src/lib/ngx-tippy.directive.ts","../../../projects/ngx-tippy-wrapper/src/lib/ngx-tippy.module.ts","../../../projects/ngx-tippy-wrapper/src/public-api.ts","../../../projects/ngx-tippy-wrapper/src/ngx-tippy-wrapper.ts"],"sourcesContent":["export const messagesDict = {\n  instanceAlreadyExist: `Instance with name #tippyName already exist, please pick unique [tippyName]`,\n  instanceNotExist: `Instance with name #tippyName does not exist`,\n  childrenInstancesNotFoundGrouped: `No children tippy instances found within 'ngx-tippy-group' component`,\n  childrenInstancesNotFoundSingleton: `No children tippy instances found within 'ngx-tippy-singleton' component`,\n  singletonInstanceAlreadyExist: `Singleton instance with name #singletonName already exist, please pick unique [singletonName]`,\n};\n","export const tippyFakeInstance = {\n  clearDelayTimeouts: () => {},\n  destroy: () => {},\n  disable: () => {},\n  enable: () => {},\n  hide: () => {},\n  hideWithInteractivity: () => {},\n  id: 0,\n  plugins: [\n    {\n      name: 'followCursor',\n      defaultValue: false,\n    },\n  ],\n  popper: {\n    state: {},\n  },\n  popperInstance: {},\n  props: {},\n  reference: {},\n  setContent: () => {},\n  setProps: () => {},\n  show: () => {},\n  state: {\n    isEnabled: true,\n    isVisible: true,\n    isDestroyed: false,\n    isMounted: true,\n    isShown: false,\n  },\n  unmount: () => {},\n};\n","import { InjectionToken } from '@angular/core';\nimport { messagesDict, tippyFakeInstance } from './consts';\nimport { NgxTippyProps } from './ngx-tippy.interfaces';\n\nexport const NGX_TIPPY_MESSAGES = new InjectionToken<{ [key: string]: string }>('NGX_TIPPY_MESSAGES', {\n  providedIn: 'root',\n  factory: () => messagesDict,\n});\nexport const TIPPY_FAKE_INSTANCE = new InjectionToken<object>('TIPPY_FAKE_INSTANCE', {\n  providedIn: 'root',\n  factory: () => tippyFakeInstance,\n});\n\nexport const NGX_TIPPY_CONFIG = new InjectionToken<NgxTippyProps>('NGX_TIPPY_CONFIG', {\n  providedIn: 'root',\n  factory: () => ({}),\n});\n","import { isPlatformServer } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, Inject, Input, PLATFORM_ID, ViewChild } from '@angular/core';\nimport tippy from 'tippy.js';\nimport { NgxTippyMessagesDict, NgxTippyProps } from '../ngx-tippy.interfaces';\nimport { NGX_TIPPY_CONFIG, NGX_TIPPY_MESSAGES } from '../ngx-tippy.tokens';\n\n/**\n * Different tooltip content to many different elements, but only one tippy instance\n */\n@Component({\n  selector: 'ngx-tippy-group',\n  template: `\n    <div #contentWrapper>\n      <ng-content></ng-content>\n    </div>\n  `,\n})\nexport class NgxTippyGroupComponent implements AfterViewInit {\n  @Input() groupedProps?: NgxTippyProps;\n  @ViewChild('contentWrapper', { read: ElementRef, static: false }) contentWrapper!: ElementRef;\n\n  constructor(\n    @Inject(PLATFORM_ID) private platform: Object,\n    @Inject(NGX_TIPPY_MESSAGES) private messagesDict: NgxTippyMessagesDict,\n    @Inject(NGX_TIPPY_CONFIG) private ngxTippyConfig: NgxTippyProps,\n  ) {}\n\n  ngAfterViewInit() {\n    if (isPlatformServer(this.platform)) return;\n    this.setTooltips();\n  }\n\n  setTooltips() {\n    const contentWrapperNativeEl: HTMLElement = this.contentWrapper.nativeElement;\n    const tooltips: HTMLElement[] = Array.from(contentWrapperNativeEl.querySelectorAll('[data-tippy-grouped]'));\n\n    if (tooltips.length) {\n      this.initTippy(tooltips);\n    } else {\n      throw new Error(this.messagesDict.childrenInstancesNotFoundGrouped);\n    }\n  }\n\n  initTippy(tooltips: HTMLElement[]) {\n    tippy(tooltips, {\n      ...this.ngxTippyConfig,\n      ...this.groupedProps,\n    });\n  }\n}\n","import { Injectable, isDevMode } from '@angular/core';\n\ninterface isDevMode {\n  isDevMode: () => boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class DevModeService implements isDevMode {\n  public isDevMode() {\n    return isDevMode();\n  }\n}\n","import { TemplateRef, Type } from '@angular/core';\nimport { Content, DefaultProps, Instance, Props } from 'tippy.js';\nimport { messagesDict } from './consts';\n\nexport interface NgxTippyProps extends Partial<Props> {}\n\nexport interface NgxTippyDefaultProps extends Partial<DefaultProps> {}\n\nexport interface NgxSingletonProps extends Partial<Props> {\n  overrides?: Array<keyof NgxTippyProps>;\n}\n\nexport interface NgxTippyInstance extends Instance {\n  tippyName: string;\n  viewRef?: ViewRef;\n}\n\nexport interface NgxTippySingletonInstance extends Omit<NgxTippyInstance, 'tippyName'> {\n  setInstances(instances: Instance<any>[]): void;\n  show(singletonTarget?: string | Instance | number): void;\n  showNext(): void;\n  showPrevious(): void;\n}\n\nexport type NgxTippyContent = NgxTippyTemplate | null | undefined;\n\nexport type NgxTippyTemplate = Content | TemplateRef<any> | Type<any>;\n\nexport type NgxTippyContext = Record<string, any>;\n\nexport interface NgxTippyHideAllOptions {\n  duration?: number;\n  excludeName?: string;\n}\n\nexport enum InstanceChangeReasonEnum {\n  SetInstance = 'setInstance',\n  Show = 'show',\n  Hide = 'hide',\n  HideWithInteractivity = 'hideWithInteractivity',\n  Disable = 'disable',\n  Enable = 'enable',\n  SetProps = 'setProps',\n  SetContent = 'setContent',\n  Unmount = 'unmount',\n  ClearDelayTimeouts = 'clearDelayTimeouts',\n  Destroy = 'destroy',\n}\n\nexport type InstanceChangeReason = `${InstanceChangeReasonEnum}`;\n\nexport interface InstancesChanges {\n  name: string;\n  reason: InstanceChangeReason;\n  instance: NgxTippyInstance;\n}\n\nexport interface TippyHTMLElement extends HTMLElement {\n  _tippy: Instance;\n}\n\nexport interface ViewRef {\n  getElement(): Content | null;\n  detectChanges?(): void;\n  destroy?(): void;\n}\n\nexport type NgxTippyMessagesDict = typeof messagesDict;\n\nexport type NgxTippyMessagesTypes = keyof typeof messagesDict;\n\nexport enum NgxTippyNamesEnum {\n  TippyName = 'tippyName',\n  SingletonName = 'singletonName',\n}\n","import { ComponentRef, Type, ViewContainerRef } from '@angular/core';\nimport { ViewRef } from '../ngx-tippy.interfaces';\n\ninterface Args<C> {\n  component: Type<C>;\n  viewContainerRef: ViewContainerRef;\n}\n\nexport class CompRef<T> implements ViewRef {\n  private compRef: ComponentRef<T> | null;\n\n  constructor(private args: Args<T>) {\n    this.compRef = this.args.viewContainerRef.createComponent<T>(this.args.component);\n  }\n\n  detectChanges() {\n    this.compRef?.changeDetectorRef.detectChanges();\n    return this;\n  }\n\n  getElement<T extends Element>(): T {\n    return this.compRef?.location.nativeElement;\n  }\n\n  destroy() {\n    this.compRef?.destroy();\n    this.compRef = null;\n  }\n}\n","import { Type } from '@angular/core';\n\nexport const isComponent = (value: any): value is Type<any> => typeof value === 'function';\n","export const isHTMLTemplate = (value: any): value is HTMLTemplateElement => value instanceof HTMLTemplateElement;\n","import { TemplateRef } from '@angular/core';\n\nexport const isTemplateRef = (value: any): value is TemplateRef<any> => value instanceof TemplateRef;\n","import { Renderer2 } from '@angular/core';\nimport { NgxTippyContent } from '../ngx-tippy.interfaces';\n\n/**\n * Set display: \"block\" for content wrapper element\n *\n * @param tippyContent  { NgxTippyContent }\n * @param renderer { Renderer2 }\n */\nexport const setTemplateVisible = (tippyContent: NgxTippyContent, renderer: Renderer2) => {\n  tippyContent && tippyContent instanceof Element && renderer.setStyle(tippyContent, 'display', 'block');\n};\n","import { ApplicationRef, EmbeddedViewRef, TemplateRef } from '@angular/core';\nimport { ViewRef } from '../ngx-tippy.interfaces';\n\ninterface CustomTmlRefArgs<C> {\n  tpl: TemplateRef<C>;\n  context: C;\n  appRef: ApplicationRef;\n}\n\nexport class TplRef<C> implements ViewRef {\n  private viewRef: EmbeddedViewRef<C> | null;\n  private element!: Element | null;\n\n  constructor(private args: CustomTmlRefArgs<C>) {\n    this.viewRef = this.args.tpl.createEmbeddedView(this.args.context || ({} as C));\n    this.viewRef.detectChanges();\n    this.args.appRef.attachView(this.viewRef);\n  }\n\n  detectChanges() {\n    this.viewRef?.detectChanges();\n    return this;\n  }\n\n  getElement(): Element | null {\n    if (!this.viewRef) return null;\n\n    const rootNodes = this.viewRef.rootNodes;\n\n    if (rootNodes.length === 1 && rootNodes[0].nodeType === Node.ELEMENT_NODE) {\n      this.element = rootNodes[0];\n    } else {\n      this.element = document.createElement('div');\n      this.element.append(...rootNodes);\n    }\n\n    return this.element;\n  }\n\n  destroy() {\n    if (!this.viewRef) return;\n\n    if (this.viewRef.rootNodes[0] !== 1) {\n      this.element?.parentNode?.removeChild(this.element);\n      this.element = null;\n    }\n\n    this.viewRef.destroy();\n    this.viewRef = null;\n  }\n}\n","import { ApplicationRef, Injectable, TemplateRef, Type, ViewContainerRef } from '@angular/core';\nimport { NgxTippyContext, NgxTippyTemplate, ViewRef } from '../ngx-tippy.interfaces';\nimport { CompRef, isComponent, isHTMLTemplate, isTemplateRef, TplRef } from '../utils';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxViewService {\n  public viewContainerRef!: ViewContainerRef;\n\n  constructor(private appRef: ApplicationRef) {}\n\n  getViewRefInstance(content: NgxTippyTemplate, tippyName?: string, tippyContext: NgxTippyContext = {}): ViewRef {\n    let viewRef!: ViewRef;\n\n    if (isTemplateRef(content)) {\n      tippyContext.$implicit = tippyName;\n      viewRef = this.createTemplate(content, tippyContext);\n    } else if (isComponent(content)) {\n      viewRef = this.createComponent(content);\n    } else if (isHTMLTemplate(content)) {\n      viewRef = {\n        getElement: () => content.content,\n      };\n    } else {\n      viewRef = {\n        getElement: () => content,\n      };\n    }\n\n    return viewRef;\n  }\n\n  private createTemplate<C>(tpl: TemplateRef<any>, context: C) {\n    return new TplRef<C>({\n      tpl,\n      context,\n      appRef: this.appRef,\n    });\n  }\n\n  private createComponent<C>(component: Type<C>) {\n    return new CompRef<C>({\n      component,\n      viewContainerRef: this.viewContainerRef,\n    });\n  }\n}\n","import { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport tippy, { hideAll } from 'tippy.js';\nimport {\n  InstanceChangeReason,\n  InstanceChangeReasonEnum,\n  InstancesChanges,\n  NgxTippyContent,\n  NgxTippyContext,\n  NgxTippyDefaultProps,\n  NgxTippyHideAllOptions,\n  NgxTippyInstance,\n  NgxTippyMessagesDict,\n  NgxTippyMessagesTypes,\n  NgxTippyNamesEnum,\n  NgxTippyProps,\n  NgxTippySingletonInstance,\n} from '../ngx-tippy.interfaces';\nimport { NGX_TIPPY_MESSAGES } from '../ngx-tippy.tokens';\nimport { setTemplateVisible } from '../utils';\nimport { DevModeService } from './dev-mode.service';\nimport { NgxViewService } from './ngx-view.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class NgxTippyService {\n  private tippyInstances: Map<string, NgxTippyInstance> = new Map();\n  private tippySingletonEntryInstances: Map<string, NgxTippySingletonInstance> = new Map();\n  private tippyInstances$ = new Subject<InstancesChanges>();\n  private renderer!: Renderer2;\n\n  constructor(\n    rendererFactory: RendererFactory2,\n    private devModeService: DevModeService,\n    private ngxViewService: NgxViewService,\n    @Inject(NGX_TIPPY_MESSAGES) private messagesDict: NgxTippyMessagesDict\n  ) {\n    this.createRenderer(rendererFactory);\n  }\n  /**\n   * Working with storage\n   */\n\n  /**\n   * Write tippy instances to storage\n   *\n   * @param name { string } name of tippy instance\n   * @param state { NgxTippyInstance } tippy instance\n   */\n  setInstance(name: string, state: NgxTippyInstance) {\n    const instance = this.tippyInstances.get(name);\n\n    if (instance) {\n      const errMessage = this.getMessage({\n        reason: 'instanceAlreadyExist',\n        messageFor: NgxTippyNamesEnum.TippyName,\n        name,\n      });\n      this.throwError(errMessage);\n    } else {\n      this.tippyInstances.set(name, state);\n      this.emitInstancesChange({\n        name,\n        reason: InstanceChangeReasonEnum.SetInstance,\n        instance: state,\n      });\n    }\n  }\n\n  /**\n   * Get specific tippy instance\n   *\n   * @param name { string } name of tippy instance\n   * @returns { NgxTippyInstance | null } specific tippy instance or null\n   */\n  getInstance(name: string): NgxTippyInstance | null {\n    return this.tippyInstances.has(name) ? this.tippyInstances.get(name)! : null;\n  }\n\n  /**\n   * Get all tippy instances from storage\n   *\n   * @returns { Map<string, NgxTippyInstance> | null } all tippy instances or null\n   */\n  getInstances(): Map<string, NgxTippyInstance> | null {\n    return this.tippyInstances.size ? this.tippyInstances : null;\n  }\n\n  /**\n   * Write singleton instances to storage\n   *\n   * @param name { string } name of tippy instance\n   * @param state { NgxTippyInstance } tippy instance\n   */\n  setSingletonInstance(name: string, state: NgxTippySingletonInstance) {\n    if (this.tippySingletonEntryInstances.has(name)) {\n      const errMessage = this.getMessage({\n        reason: 'singletonInstanceAlreadyExist',\n        messageFor: NgxTippyNamesEnum.SingletonName,\n        name,\n      });\n      this.throwError(errMessage);\n    } else {\n      this.tippySingletonEntryInstances.set(name, state);\n    }\n  }\n\n  /**\n   * Get specific singleton tippy instance\n   *\n   * @param name { string } name of singleton tippy instance\n   * @returns { NgxTippySingletonInstance | null } specific singleton tippy instance or null\n   */\n  getSingletonInstance(name: string): NgxTippySingletonInstance | null {\n    return this.tippySingletonEntryInstances.has(name) ? this.tippySingletonEntryInstances.get(name)! : null;\n  }\n\n  /**\n   * Get all singleton tippy instances\n   *\n   * @returns { Map<string, NgxTippyInstance> | null } all singleton tippy instances or null\n   */\n  getSingletonInstances(): Map<string, NgxTippySingletonInstance> | null {\n    return this.tippySingletonEntryInstances.size ? this.tippySingletonEntryInstances : null;\n  }\n\n  /**\n   * Working with tippy instance methods\n   */\n\n  /**\n   * Programmatically show the tippy\n   *\n   * @param name { string } name of tippy instance\n   */\n  show(name: string) {\n    this.callNativeTippyMethod(name, InstanceChangeReasonEnum.Show);\n  }\n\n  /**\n   * Programmatically hide the tippy\n   *\n   * @param name { string } name of tippy instance\n   */\n  hide(name: string) {\n    this.callNativeTippyMethod(name, InstanceChangeReasonEnum.Hide);\n  }\n\n  /**\n   * Will hide the tippy only if the cursor is outside of the tippy's interactive region\n   * This allows you to programmatically hook into interactive behavior upon a mouseleave event if implementing custom event listeners\n   *\n   * @param name { string } name of tippy instance\n   * @param name { mouseEvent } pass the mouse event object in from your event listener\n   */\n  hideWithInteractivity(name: string, mouseEvent: MouseEvent) {\n    this.callNativeTippyMethod(name, InstanceChangeReasonEnum.HideWithInteractivity, mouseEvent);\n  }\n\n  /**\n   * Prevent a tippy from showing or hiding\n   *\n   * @param name { string } name of tippy instance\n   */\n  disable(name: string) {\n    this.callNativeTippyMethod(name, InstanceChangeReasonEnum.Disable);\n  }\n\n  /**\n   * Re-enable a tippy\n   *\n   * @param name { string } name of tippy instance\n   */\n  enable(name: string) {\n    this.callNativeTippyMethod(name, InstanceChangeReasonEnum.Enable);\n  }\n\n  /**\n   * Update any tippy props\n   *\n   * @param name { string } name of tippy instance\n   * @param tippyProps { NgxTippyProps } new props\n   */\n  setProps(name: string, tippyProps: NgxTippyProps) {\n    this.callNativeTippyMethod(name, InstanceChangeReasonEnum.SetProps, tippyProps);\n  }\n\n  /**\n   * Update the content for tippy\n   *\n   * @param name { string } name of tippy instance\n   * @param tippyContent { NgxTippyContent } new content\n   */\n  setContent(name: string, tippyContent: NgxTippyContent, tippyContext?: NgxTippyContext) {\n    const instance = this.getInstance(name);\n\n    if (!instance) {\n      this.throwErrorInstanceNotExist(name);\n      return;\n    }\n\n    if (tippyContent) {\n      const viewRef = this.ngxViewService.getViewRefInstance(tippyContent, instance.tippyName, tippyContext);\n      const content = viewRef.getElement();\n\n      if (content) {\n        setTemplateVisible(content, this.renderer);\n        instance.setContent(content);\n        instance.viewRef = viewRef;\n        this.emitInstancesChange({\n          name,\n          reason: 'setContent',\n          instance,\n        });\n      } else {\n        this.throwError('message');\n      }\n    }\n  }\n\n  /**\n   * Unmount the tippy from the DOM\n   *\n   * @param name { string } name of tippy instance\n   */\n  unmount(name: string) {\n    this.callNativeTippyMethod(name, InstanceChangeReasonEnum.Unmount);\n  }\n\n  /**\n   * Clears the instances delay timeouts\n   *\n   * @param name { string } name of tippy instance\n   */\n  clearDelayTimeouts(name: string) {\n    this.callNativeTippyMethod(name, InstanceChangeReasonEnum.ClearDelayTimeouts);\n  }\n\n  /**\n   * Permanently destroy and clean up the tippy instance\n   *\n   * @param name { string } name of tippy instance\n   */\n  destroy(name: string) {\n    this.callNativeTippyMethod(name, InstanceChangeReasonEnum.Destroy);\n    this.tippyInstances.delete(name);\n  }\n\n  /** Working with tippy static methods */\n\n  /**\n   * Set the default props for each new tippy instance\n   *\n   * @param tippyProps { NgxTippyDefaultProps } default props\n   */\n  setDefaultProps(tippyProps: NgxTippyDefaultProps) {\n    tippy.setDefaultProps(tippyProps);\n  }\n\n  /**\n   * Show all tippies\n   */\n  showAll() {\n    this.tippyInstances.forEach((instance: NgxTippyInstance, name: string) => {\n      instance.show();\n      this.emitInstancesChange({\n        name,\n        reason: 'show',\n        instance,\n      });\n    });\n  }\n\n  /**\n   * Hide all tippies or hide all except a particular one\n   * Additional hide them with duration\n   *\n   * @param { NgxTippyHideAllOptions } [options] - additional hiding options\n   */\n  hideAll(options?: NgxTippyHideAllOptions) {\n    const exclude = this.getInstance(options?.excludeName || '');\n    const duration = options?.duration;\n\n    hideAll({ duration, ...exclude });\n  }\n\n  /**\n   * Subscription to change of tippy instances\n   *\n   * @returns { Observable<InstancesChanges> } observable of tippy instances change\n   */\n  get instancesChanges(): Observable<InstancesChanges> {\n    return this.tippyInstances$.asObservable();\n  }\n\n  /**\n   * Service methods\n   */\n\n  private callNativeTippyMethod(name: string, method: any, arg?: any) {\n    const instance = this.getInstance(name);\n\n    if (instance) {\n      instance[method as Exclude<InstanceChangeReason, 'setInstance'>](arg);\n\n      this.emitInstancesChange({\n        name,\n        reason: method,\n        instance,\n      });\n    } else {\n      this.throwErrorInstanceNotExist(name);\n    }\n  }\n\n  private emitInstancesChange({\n    name,\n    reason,\n    instance,\n  }: {\n    reason: InstanceChangeReason;\n    name: string;\n    instance: NgxTippyInstance;\n  }) {\n    this.tippyInstances$.next({ name, reason, instance });\n  }\n\n  private createRenderer(rendererFactory: RendererFactory2) {\n    this.renderer = rendererFactory.createRenderer(null, null);\n  }\n\n  private throwErrorInstanceNotExist(name: string) {\n    const errMessage = this.getMessage({\n      reason: 'instanceNotExist',\n      messageFor: NgxTippyNamesEnum.TippyName,\n      name,\n    });\n    this.throwError(errMessage);\n  }\n\n  private throwError(message: string, errorConstructor: ErrorConstructor = Error) {\n    if (this.devModeService.isDevMode()) throw new errorConstructor(message);\n  }\n\n  private getMessage({\n    reason,\n    messageFor,\n    name,\n  }: {\n    reason: NgxTippyMessagesTypes;\n    messageFor: string;\n    name: string;\n  }): string {\n    return this.messagesDict[reason].replace(`#${messageFor}`, `'${name}'`);\n  }\n}\n","import { isPlatformServer } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, Inject, Input, OnDestroy, PLATFORM_ID, ViewChild } from '@angular/core';\nimport { createSingleton } from 'tippy.js';\nimport {\n  NgxSingletonProps,\n  NgxTippyInstance,\n  NgxTippyMessagesDict,\n  NgxTippyProps,\n  NgxTippySingletonInstance,\n  TippyHTMLElement,\n} from '../ngx-tippy.interfaces';\nimport { NGX_TIPPY_CONFIG, NGX_TIPPY_MESSAGES } from '../ngx-tippy.tokens';\nimport { NgxTippyService } from '../services';\n\n/**\n * Tippy singleton - single tippy element that takes the place of an array of regular tippy instances\n */\n@Component({\n  selector: 'ngx-tippy-singleton',\n  template: `\n    <div #contentWrapper>\n      <ng-content></ng-content>\n    </div>\n  `,\n})\nexport class NgxTippySingletonComponent implements AfterViewInit, OnDestroy {\n  @Input() singletonProps?: NgxSingletonProps;\n  @Input() singletonName?: string;\n  @ViewChild('contentWrapper', { read: ElementRef, static: false }) contentWrapper!: ElementRef;\n\n  private singletonInstance!: NgxTippySingletonInstance;\n  private currentSingletonChildrenTippyInstances!: NgxTippyInstance[] | null;\n\n  constructor(\n    @Inject(PLATFORM_ID) private platform: Object,\n    private ngxTippyService: NgxTippyService,\n    @Inject(NGX_TIPPY_MESSAGES) private messagesDict: NgxTippyMessagesDict,\n    @Inject(NGX_TIPPY_CONFIG) private ngxTippyConfig: NgxTippyProps,\n  ) {}\n\n  ngAfterViewInit() {\n    if (isPlatformServer(this.platform)) return;\n    this.setSingleton();\n  }\n\n  ngOnDestroy() {\n    this.clearSingletonInstance();\n  }\n\n  /**\n   * Take projected in component tooltips element\n   * Take initiated tippy instances\n   * Initiate `singleton addon` only for projected tooltips for current component instance\n   */\n  private setSingleton() {\n    const contentWrapperNativeEl: HTMLElement = this.contentWrapper.nativeElement;\n    const singletonTooltipIDs: number[] = Array.from<TippyHTMLElement>(\n      contentWrapperNativeEl.querySelectorAll('[data-tippy-singleton]')\n    ).map((el: TippyHTMLElement) => el._tippy.id);\n\n    const tippyInstances = this.ngxTippyService.getInstances();\n\n    const tippyInstancesSerialized = tippyInstances && [...tippyInstances.values()];\n\n    this.currentSingletonChildrenTippyInstances =\n      tippyInstancesSerialized &&\n      tippyInstancesSerialized.filter(tippyInstance => singletonTooltipIDs.includes(tippyInstance.id));\n\n    if (this.currentSingletonChildrenTippyInstances?.length) {\n      this.initTippySingletonEntry(this.currentSingletonChildrenTippyInstances);\n    } else {\n      throw new Error(this.messagesDict.childrenInstancesNotFoundSingleton);\n    }\n  }\n\n  private initTippySingletonEntry(childrenSingletonInstances: NgxTippyInstance[]) {\n    this.singletonInstance = createSingleton(childrenSingletonInstances, {\n      ...this.ngxTippyConfig,\n      ...this.singletonProps,\n    });\n    this.writeSingletonInstanceToStorage(this.singletonInstance);\n  }\n\n  /**\n   * To manipulate singleton groups, write all instances to storage\n   * `singletonName` used as unique key\n   * If `singletonName` does not provided - it will be generated using id of singletonInstance\n   *\n   * @param tippyInstance { NgxTippySingletonInstance }\n   */\n  private writeSingletonInstanceToStorage(singletonInstance: NgxTippySingletonInstance) {\n    const extendedSingletonInstance = this.extendShowFn(singletonInstance);\n\n    this.ngxTippyService.setSingletonInstance(\n      this.singletonName || `singleton-${singletonInstance.id}`,\n      extendedSingletonInstance\n    );\n  }\n\n  /**\n   * Extend original `show` method\n   * Purpose: manipulate tooltip state by [tippyName]\n   *\n   * @param singletonInstance { NgxTippySingletonInstance }\n   * @returns { NgxTippySingletonInstance }\n   */\n  private extendShowFn(singletonInstance: NgxTippySingletonInstance): NgxTippySingletonInstance {\n    const originalShowFn = singletonInstance.show;\n\n    singletonInstance.show = (singletonInstanceIdentifier: string | number | NgxTippyInstance) => {\n      if (typeof singletonInstanceIdentifier === 'string') {\n        const instance = this.ngxTippyService.getInstance(singletonInstanceIdentifier);\n        instance && originalShowFn(instance);\n      } else {\n        originalShowFn(singletonInstanceIdentifier);\n      }\n    };\n\n    return singletonInstance;\n  }\n\n  private clearSingletonInstance() {\n    const singletonInstances = this.ngxTippyService.getSingletonInstances();\n\n    if (singletonInstances && this.singletonInstance) {\n      this.destroySingletonInstance();\n      this.deleteEntryInStorage(singletonInstances);\n    }\n  }\n\n  private destroySingletonInstance() {\n    this.singletonInstance.destroy();\n  }\n\n  private deleteEntryInStorage(singletonInstances: Map<string, NgxTippySingletonInstance>) {\n    singletonInstances.delete(this.singletonName || `singleton-${this.singletonInstance.id}`);\n  }\n}\n","import { isPlatformServer } from '@angular/common';\nimport {\n  Directive,\n  ElementRef,\n  Inject,\n  Input,\n  OnDestroy,\n  OnInit,\n  PLATFORM_ID,\n  Renderer2,\n  SimpleChange,\n  SimpleChanges,\n  ViewContainerRef,\n} from '@angular/core';\nimport tippy from 'tippy.js';\nimport {\n  NgxTippyContent,\n  NgxTippyContext,\n  NgxTippyInstance,\n  NgxTippyProps,\n  TippyHTMLElement,\n  ViewRef,\n} from './ngx-tippy.interfaces';\nimport { NgxTippyService, NgxViewService } from './services';\nimport { setTemplateVisible } from './utils';\nimport { NGX_TIPPY_CONFIG } from './ngx-tippy.tokens';\n\n@Directive({\n  selector: '[ngxTippy]',\n})\nexport class NgxTippyDirective implements OnInit, OnDestroy {\n  @Input() ngxTippy?: NgxTippyContent;\n  @Input() tippyProps?: NgxTippyProps;\n  @Input() tippyName?: string;\n  @Input() tippyClassName?: string;\n  @Input() tippyContext?: NgxTippyContext;\n\n  private tippyInstance: NgxTippyInstance | undefined;\n  private cachedInstances = new Map();\n\n  constructor(\n    private tippyEl: ElementRef,\n    private renderer: Renderer2,\n    private ngxTippyService: NgxTippyService,\n    private ngxViewService: NgxViewService,\n    private viewContainerRef: ViewContainerRef,\n    @Inject(PLATFORM_ID) private platform: Object,\n    @Inject(NGX_TIPPY_CONFIG) private ngxTippyConfig: NgxTippyProps,\n  ) {}\n\n  ngOnInit() {\n    if (isPlatformServer(this.platform)) return;\n    this.ngxViewService.viewContainerRef = this.viewContainerRef;\n    this.initTippy();\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    this.handleChanges(changes);\n  }\n\n  ngOnDestroy() {\n    this.destroyTippy();\n  }\n\n  /**\n   * Tooltip initialize\n   * Content can be directly passed through `ngxTippy` selector\n   */\n  private initTippy() {\n    const tippyTarget: TippyHTMLElement = this.tippyEl.nativeElement;\n\n    if (this.ngxTippy === null || this.ngxTippy === undefined) return;\n\n    const viewRef = this.ngxViewService.getViewRefInstance(this.ngxTippy, this.tippyName, this.tippyContext);\n    const tippyElement = viewRef.getElement();\n\n    const tInstance = tippy(tippyTarget, {\n      ...(this.ngxTippyConfig),\n      ...(this.tippyProps || {}),\n      ...(tippyElement && { content: tippyElement }),\n    });\n\n    this.tippyName = this.tippyName || `tippy-${tInstance.id}`;\n\n    setTemplateVisible(tippyElement, this.renderer);\n    this.setTippyInstance({ tippyTarget, tippyName: this.tippyName, viewRef });\n    this.setClassName(this.tippyInstance, this.tippyClassName);\n    this.writeInstancesToStorage(this.tippyInstance, this.tippyName);\n  }\n\n  private setTippyInstance({\n    tippyTarget,\n    tippyName,\n    viewRef,\n  }: {\n    tippyTarget: TippyHTMLElement;\n    tippyName: string;\n    viewRef: ViewRef;\n  }) {\n    this.tippyInstance = { ...tippyTarget._tippy, tippyName, viewRef };\n  }\n\n  private setClassName(tippyInstance: NgxTippyInstance | undefined, className: string | undefined) {\n    if (!className || !tippyInstance) return;\n    const classNames = className.split(' ');\n\n    classNames.length &&\n      classNames.forEach(className => {\n        this.renderer.addClass(tippyInstance.popper.firstElementChild, className);\n      });\n  }\n\n  private removeClassName(tippyInstance: NgxTippyInstance | undefined, className: string | undefined) {\n    if (!className || !tippyInstance) return;\n    const classNames = className.split(' ');\n\n    classNames.length &&\n      classNames.forEach(className => {\n        this.renderer.removeClass(tippyInstance.popper.firstElementChild, className);\n      });\n  }\n\n  /**\n   * To manipulate tooltips, write all instances to storage\n   * `tippyName` used as unique key\n   * If `tippyName` does not provided - it will be generated using `tippyInstance.id`\n   *\n   * @param tippyInstance { NgxTippyInstance }\n   */\n  private writeInstancesToStorage(tippyInstance: NgxTippyInstance | undefined, tippyName: string) {\n    tippyInstance && this.ngxTippyService.setInstance(tippyName, tippyInstance);\n  }\n\n  private handleChanges({ tippyName, ngxTippy, tippyProps, tippyClassName, tippyContext }: SimpleChanges) {\n    tippyName && !tippyName.firstChange && this.handleNameChanges(tippyName);\n    ngxTippy && !ngxTippy.firstChange && this.handleContentChanges(ngxTippy);\n    tippyProps && !tippyProps.firstChange && this.handlePropsChanges(tippyProps);\n    tippyClassName && !tippyClassName.firstChange && this.handleClassChanges(tippyClassName);\n    tippyContext && !tippyContext.firstChange && this.handleContextChanges(tippyContext);\n  }\n\n  private handleNameChanges({ previousValue, currentValue }: SimpleChange) {\n    const tippyInstances = this.cachedTippyInstances();\n    if (!tippyInstances || !this.tippyInstance) return;\n\n    this.deleteEntryInStorage(tippyInstances, previousValue);\n    this.tippyInstance = { ...this.tippyInstance, tippyName: currentValue };\n    tippyInstances.set(currentValue, this.tippyInstance);\n  }\n\n  private handleContentChanges({ currentValue }: SimpleChange) {\n    if (this.tippyInstance && this.tippyName) {\n      this.ngxTippyService.setContent(this.tippyName, currentValue);\n\n      if (currentValue === null || currentValue === undefined) {\n        this.ngxTippyService.disable(this.tippyName);\n      } else {\n        this.ngxTippyService.enable(this.tippyName);\n      }\n    } else {\n      this.initTippy();\n    }\n  }\n\n  private handlePropsChanges({ currentValue }: SimpleChange) {\n    this.tippyName && this.ngxTippyService.setProps(this.tippyName, currentValue);\n  }\n\n  private handleClassChanges({ previousValue, currentValue }: SimpleChange) {\n    this.removeClassName(this.tippyInstance, previousValue);\n    this.setClassName(this.tippyInstance, currentValue);\n  }\n\n  private handleContextChanges({ currentValue }: SimpleChange) {\n    if (this.tippyInstance && this.tippyName && this.ngxTippy) {\n      this.ngxTippyService.setContent(this.tippyName, this.ngxTippy, currentValue);\n    } else {\n      this.initTippy();\n    }\n  }\n\n  private cachedTippyInstances(): Map<string, NgxTippyInstance> | null {\n    const tippyInstances = this.ngxTippyService.getInstances();\n\n    if (this.cachedInstances.has(tippyInstances)) {\n      return this.cachedInstances.get(tippyInstances);\n    } else {\n      this.cachedInstances.set(tippyInstances, tippyInstances);\n      return tippyInstances;\n    }\n  }\n\n  private destroyTippy() {\n    const tippyInstances = this.cachedTippyInstances();\n    const tippyInstance = this.tippyInstance;\n\n    if (!tippyInstance || !tippyInstances) return;\n\n    this.clearInstance({ tippyInstance, tippyInstances });\n    this.resetLocalInstance();\n    this.clearCachedInstances();\n  }\n\n  private clearInstance({\n    tippyInstance,\n    tippyInstances,\n  }: {\n    tippyInstance: NgxTippyInstance;\n    tippyInstances: Map<string, NgxTippyInstance>;\n  }) {\n    const { tippyName } = tippyInstance;\n    this.clearViewRef(tippyInstance);\n    this.destroyTippyInstance(tippyInstance);\n    this.deleteEntryInStorage(tippyInstances, tippyName);\n  }\n\n  private clearViewRef(tippyInstance: NgxTippyInstance) {\n    tippyInstance.viewRef?.destroy && tippyInstance.viewRef.destroy();\n  }\n\n  private destroyTippyInstance(tippyInstance: NgxTippyInstance) {\n    tippyInstance.destroy();\n  }\n\n  private deleteEntryInStorage(tippyInstances: Map<string, NgxTippyInstance>, tippyName: string) {\n    tippyInstances.delete(tippyName);\n  }\n\n  private resetLocalInstance() {\n    this.tippyInstance = undefined;\n  }\n\n  private clearCachedInstances() {\n    this.cachedInstances.clear();\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgxTippyGroupComponent, NgxTippySingletonComponent } from './components';\nimport { NgxTippyDirective } from './ngx-tippy.directive';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [NgxTippyDirective, NgxTippyGroupComponent, NgxTippySingletonComponent],\n  exports: [NgxTippyDirective, NgxTippyGroupComponent, NgxTippySingletonComponent],\n})\nexport class NgxTippyModule {}\n","/*\n * Public API Surface of ngx-tippy-wrapper\n */\n\nexport { NgxTippyGroupComponent, NgxTippySingletonComponent } from './lib/components';\nexport { NgxTippyDirective } from './lib/ngx-tippy.directive';\nexport {\n  InstanceChangeReason,\n  InstancesChanges,\n  NgxSingletonProps,\n  NgxTippyContent,\n  NgxTippyDefaultProps,\n  NgxTippyHideAllOptions,\n  NgxTippyInstance,\n  NgxTippyProps,\n  NgxTippySingletonInstance,\n  NgxTippyTemplate,\n} from './lib/ngx-tippy.interfaces';\nexport { NgxTippyModule } from './lib/ngx-tippy.module';\nexport { NgxTippyService } from './lib/services';\nexport { NGX_TIPPY_CONFIG } from './lib/ngx-tippy.tokens';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgxTippyService","i1.NgxViewService"],"mappings":"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"}