{"version":3,"file":"usitsdasdesign-dds-ng-tooltip.mjs","sources":["../../src/app/dds/tooltip/typings.ts","../../src/app/dds/tooltip/tooltip/tooltip.component.ts","../../src/app/dds/tooltip/directives/constants.ts","../../src/app/dds/tooltip/services/tooltip.service.ts","../../src/app/dds/tooltip/directives/tooltip.directive.ts","../../src/app/dds/tooltip/tooltip.module.ts","../../src/app/dds/tooltip/usitsdasdesign-dds-ng-tooltip.ts"],"sourcesContent":["import { TemplateRef } from '@angular/core';\nimport { PositionState, Size, Themes } from '@usitsdasdesign/dds-ng/shared';\n\nexport interface TooltipOptions {\n  ddsTooltip?: string | TemplateRef<unknown>;\n  tooltipKeyboardFocusEl?: HTMLElement;\n  tooltipInvokeType?: InvokeType | string;\n  tooltipType?: TooltipType | string;\n  tooltipSize?: Size | string;\n  tooltipPosition?: PositionState | string;\n  tooltipCustomClass?: string;\n  tooltipIndent?: number;\n  tooltipWidth?: number;\n  tooltipMaxWidth?: number;\n  tooltipShift?: number;\n  tooltipShowDelay?: number;\n  tooltipHideDelay?: number;\n  tooltipHasBeak?: boolean;\n  tooltipIsDisabled?: boolean;\n  tooltipIsInverse?: boolean;\n  tooltipIsOutsideClick?: boolean;\n  tooltipIsDynamic?: boolean;\n  tooltipTheme?: Themes | string;\n}\n\nexport enum TooltipType {\n  regular = 'regular',\n  error = 'error',\n}\n\nexport enum TooltipClass {\n  tooltip = 'dds-tooltip',\n  tooltipLarge = 'dds-tooltip_lg',\n  error = 'dds-tooltip_error',\n  isInverse = 'dds-tooltip_inverse',\n  blueTheme = 'dds-tooltip_blue',\n  greenTheme = 'dds-tooltip_green',\n}\n\nexport enum InvokeType {\n  click = 'click',\n  hover = 'hover',\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Input, OnInit, Renderer2 } from '@angular/core';\nimport { FocusHandlerModule } from '@usitsdasdesign/dds-ng/core/focus-handler';\nimport { PopupClass, PositionState, Size, Themes } from '@usitsdasdesign/dds-ng/shared';\nimport { DdsConfigService } from '@usitsdasdesign/dds-ng/shared/dds-config';\nimport { TooltipClass, TooltipType } from '../typings';\n\n@Component({\n  selector: 'dds-tooltip',\n  template: ` <ng-content></ng-content> `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [FocusHandlerModule],\n  standalone: true,\n})\nexport class TooltipComponent implements OnInit {\n  @HostBinding('style.width') @Input() width: number | undefined;\n  @HostBinding('style.max-width') @Input() maxWidth: number | undefined;\n  @Input() position: PositionState | string | undefined = PositionState.top;\n  @Input() type: TooltipType | string | undefined = TooltipType.regular;\n  @Input() size: Size | string | undefined = this.ddsConfig.getConfig().size;\n  @Input() customClass: string | undefined;\n  @Input() isInverse: boolean | undefined;\n  @Input() theme: Themes | string | undefined = this.ddsConfig.getConfig().theme;\n\n  constructor(public el: ElementRef, private renderer: Renderer2, private ddsConfig: DdsConfigService) { }\n\n  public ngOnInit(): void {\n    if (this.type === TooltipType.error) {\n      this.renderer.addClass(this.el.nativeElement, TooltipClass.error);\n    }\n\n    if (this.size === Size.lg) {\n      this.renderer.addClass(this.el.nativeElement, TooltipClass.tooltipLarge);\n    }\n\n    if (this.isInverse) {\n      this.renderer.addClass(this.el.nativeElement, TooltipClass.isInverse);\n    }\n\n    if (this.customClass) {\n      this.renderer.addClass(this.el.nativeElement, this.customClass);\n    }\n\n    if (this.theme === Themes.blue) {\n      this.renderer.addClass(this.el.nativeElement, TooltipClass.blueTheme);\n    }\n\n    if (this.theme === Themes.green) {\n      this.renderer.addClass(this.el.nativeElement, TooltipClass.greenTheme);\n    }\n\n    this.renderer.addClass(this.el.nativeElement, TooltipClass.tooltip);\n    this.renderer.addClass(this.el.nativeElement, PopupClass.popup);\n    this.renderer.addClass(this.el.nativeElement, PopupClass.popup_active);\n  }\n}\n","export const INDENT = 15;\nexport const SHIFT = 0;\nexport const HIDE_DELAY = 100;\nexport const BACKDROP_DEFAULT_STYLES = 'position:fixed;top:0;bottom:0;left:0;right:0;';\nexport const ATTR_ARIA_DESCRIBEDBY = 'aria-describedby';\nexport const ATTR_ID = 'id';\nexport const ATTR_ROLE = 'role';\nexport const ATTR_LIVE = 'aria-live';\nexport const ATTR_INVALID = 'aria-invalid';\nexport const ATTR_LIVE_POLITE = 'polite';\nexport const ROLE_TOOLTIP = 'tooltip';\n","import { Injectable } from '@angular/core';\nimport { PopupService } from '@usitsdasdesign/dds-ng/core/popup';\n\n// @dynamic\n@Injectable({\n  providedIn: 'root'\n})\nexport class TooltipService extends PopupService {}\n","\nimport {\n  AfterViewInit,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  Inject,\n  Input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  Output,\n  Renderer2,\n  SimpleChanges,\n  TemplateRef,\n  DOCUMENT\n} from '@angular/core';\nimport { FocusHandlerService } from '@usitsdasdesign/dds-ng/core/focus-handler';\nimport { BeakClass, Coordinates, PopupLocationConfig, addPosition, checkPosition } from '@usitsdasdesign/dds-ng/core/popup';\nimport { KeyCodes, PopupClass, PositionState, Size, Themes } from '@usitsdasdesign/dds-ng/shared';\nimport { Subject, Subscription, fromEvent } from 'rxjs';\nimport { takeUntil, throttleTime } from 'rxjs/operators';\nimport { TooltipService } from '../services/tooltip.service';\nimport { TooltipComponent } from '../tooltip/tooltip.component';\nimport { InvokeType, TooltipType } from '../typings';\nimport {\n  ATTR_ARIA_DESCRIBEDBY,\n  ATTR_ID,\n  ATTR_INVALID,\n  ATTR_LIVE,\n  ATTR_LIVE_POLITE,\n  ATTR_ROLE,\n  INDENT,\n  ROLE_TOOLTIP,\n  SHIFT,\n} from './constants';\n\n@Directive({\n  selector: '[ddsTooltip]',\n  exportAs: 'dds-tooltip',\n  standalone: true\n})\nexport class TooltipDirective implements AfterViewInit, OnChanges, OnDestroy {\n  // Input properties for the tooltip directive\n  @Input() ddsTooltip: string | TemplateRef<unknown>; // Tooltip content\n  @Input() tooltipKeyboardFocusEl: HTMLElement; // Element to focus on keyboard interaction\n  @Input() tooltipWidth: number; // Width of the tooltip\n  @Input() tooltipMaxWidth: number; // Maximum width of the tooltip\n  @Input() tooltipIsDisabled: boolean; // Flag to disable the tooltip\n  @Input() tooltipIsInverse: boolean; // Flag for inverse tooltip style\n  @Input() tooltipIsOutsideClick: boolean; // Flag to close tooltip on outside click\n  @Input() tooltipIsDynamic = true; // Flag for dynamic positioning\n  @Input() tooltipShift: number = SHIFT; // Shift value for tooltip position\n  @Input() tooltipIndent: number = INDENT; // Indent value for tooltip position\n  @Input() tooltipShowDelay: number; // Delay before showing the tooltip\n  @Input() tooltipHideDelay: number; // Delay before hiding the tooltip\n  @Input() tooltipInvokeType: InvokeType | string = InvokeType.hover; // Type of invocation (hover or click)\n  @Input() tooltipPosition: PositionState | string = PositionState.top; // Position of the tooltip\n  @Input() tooltipType: TooltipType | string = TooltipType.regular; // Type of the tooltip (regular or error)\n  @Input() tooltipTheme: Themes | string; // Theme of the tooltip\n  @Input() tooltipSize: Size | string = Size.md; // Size of the tooltip\n  @Input() tooltipHasBeak = true; // Flag to show/hide the beak\n  @Input() tooltipCustomClass: string; // Custom CSS class for the tooltip\n\n  // Output events for the tooltip directive\n  @Output() onShown: EventEmitter<void> = new EventEmitter(); // Event emitted when the tooltip is shown\n  @Output() onHidden: EventEmitter<void> = new EventEmitter(); // Event emitted when the tooltip is hidden\n\n  // Element reference for the tooltip popup\n  public popupEl: HTMLElement;\n\n  // Element reference for the tooltip beak\n  public beakEl: HTMLElement;\n\n  // Subscriptions for resize and scroll events\n  private resize: Subscription;\n  private scroll: Subscription;\n\n  // Event listeners for mouse enter and leave events\n  private mouseenter: () => void;\n  private mouseleave: () => void;\n\n  // Event listener for element click event\n  private elClick: () => void;\n\n  // Event listener for outside click event\n  private outsideCLick: () => void;\n\n  // Subject to handle component destruction\n  private destroy = new Subject<void>();\n\n  // Timeout variables for show and hide delays\n  private showTimeoutVar: ReturnType<typeof setTimeout> | undefined;\n  private hideTimeoutVar: ReturnType<typeof setTimeout> | undefined;\n\n  public constructor(\n    @Inject(DOCUMENT) public document,\n    public renderer: Renderer2,\n    public el: ElementRef<HTMLElement>,\n    public ngZone: NgZone,\n    private tooltipService: TooltipService,\n    private focusHandlerService: FocusHandlerService\n  ) { }\n\n  // Handle changes to input properties\n  public ngOnChanges(changes: SimpleChanges): void {\n    if (changes.ddsTooltip && typeof changes.ddsTooltip.currentValue === 'string' && this.popupEl) {\n      this.popupEl.innerText = changes.ddsTooltip.currentValue;\n    }\n  }\n\n  // Initialize the directive after the view has been initialized\n  public ngAfterViewInit(): void {\n    this.bindListeners();\n    this.tooltipService.closedPopup.pipe(takeUntil(this.destroy)).subscribe((item) => {\n      if (item === this.popupEl) {\n        this.onHidden.emit();\n      }\n    });\n\n    this.keyboardInteraction();\n  }\n\n  // Cleanup when the directive is destroyed\n  public ngOnDestroy(): void {\n    this.hide();\n\n    if (this.elClick) {\n      this.elClick();\n    }\n\n    if (this.mouseenter) {\n      this.mouseenter();\n    }\n\n    if (this.mouseleave) {\n      this.mouseleave();\n    }\n\n    this.destroy.next();\n    this.destroy.complete();\n  }\n\n  // Show the tooltip\n  public show(): void {\n    if (!this.tooltipIsDisabled) {\n      this.hide();\n      // Cancel the delayed hide if it is scheduled\n      if (this.hideTimeoutVar != null) {\n        clearTimeout(this.hideTimeoutVar);\n      }\n\n      this.showTimeoutVar = setTimeout(() => {\n        const stickerWidth = this.tooltipWidth ? `${this.tooltipWidth}px` : 'auto';\n        const stickerMaxWidth = this.tooltipMaxWidth ? `${this.tooltipMaxWidth}px` : 'none';\n\n        if (typeof this.ddsTooltip === 'string') {\n          this.popupEl = this.tooltipService.open(\n            TooltipComponent,\n            undefined,\n            {\n              width: stickerWidth,\n              maxWidth: stickerMaxWidth,\n              position: this.tooltipPosition,\n              type: this.tooltipType,\n              size: this.tooltipSize,\n              theme: this.tooltipTheme,\n              isInverse: this.tooltipIsInverse,\n              customClass: this.tooltipCustomClass,\n            },\n            this.tooltipInvokeType\n          );\n\n          this.popupEl.innerText = this.ddsTooltip;\n        } else {\n          this.popupEl = this.tooltipService.open(\n            TooltipComponent,\n            this.ddsTooltip,\n            {\n              width: stickerWidth,\n              maxWidth: stickerMaxWidth,\n              position: this.tooltipPosition,\n              type: this.tooltipType,\n              size: this.tooltipSize,\n              theme: this.tooltipTheme,\n              isInverse: this.tooltipIsInverse,\n              customClass: this.tooltipCustomClass,\n            },\n            this.tooltipInvokeType\n          );\n        }\n\n        if (this.tooltipHasBeak) {\n          this.createBeak();\n        }\n\n        if (!this.tooltipIsOutsideClick) {\n          this.outsideCLick = this.renderer.listen(this.popupEl, 'click', (e) => this.hide(e));\n        }\n\n        if (this.tooltipIsDynamic) {\n          this.resizeAndScrollListeners();\n        }\n\n        this.checkCoords();\n        this.setAria();\n        this.onShown.emit();\n        this.showTimeoutVar = undefined;\n      }, this.tooltipShowDelay);\n    }\n  }\n\n  // Hide the tooltip\n  public hide(event?: Event): void {\n    // Cancel the delayed show if it is scheduled\n    if (this.showTimeoutVar != null) {\n      clearTimeout(this.showTimeoutVar);\n    }\n\n    this.hideTimeoutVar = setTimeout(() => {\n      this.tooltipService.close(event);\n\n      if (this.outsideCLick) {\n        this.outsideCLick();\n      }\n\n      if (this.resize && this.scroll) {\n        this.resize.unsubscribe();\n        this.scroll.unsubscribe();\n      }\n\n      this.el.nativeElement.removeAttribute(ATTR_ARIA_DESCRIBEDBY);\n      this.hideTimeoutVar = undefined;\n    }, this.tooltipHideDelay);\n  }\n\n  // Update the position of the tooltip\n  public updPosition(): void {\n    this.checkCoords();\n  }\n\n  // Handle keyboard interactions\n  private keyboardInteraction(): void {\n    this.ngZone.runOutsideAngular(() => {\n      this.focusHandlerService.keyup$.pipe(takeUntil(this.destroy)).subscribe((e: KeyboardEvent) => {\n        if (e.keyCode === KeyCodes.TAB && this.tooltipInvokeType === InvokeType.hover) this.keyboardFocus(e);\n      });\n\n      this.focusHandlerService.keydown$.pipe(takeUntil(this.destroy)).subscribe((e: KeyboardEvent) => {\n        if (e.keyCode === KeyCodes.TAB) this.keyboardUnFocus(e);\n      });\n    });\n  }\n\n  // Show tooltip on keyboard focus\n  private keyboardFocus(event: KeyboardEvent): void {\n    if (this.tooltipKeyboardFocusEl === event.target || this.el.nativeElement === event.target) {\n      this.show();\n    }\n  }\n\n  // Hide tooltip on keyboard unfocus\n  private keyboardUnFocus(event: KeyboardEvent): void {\n    if (this.tooltipKeyboardFocusEl === event.target || this.el.nativeElement === event.target) {\n      this.hide();\n    }\n  }\n\n  // Set ARIA attributes for accessibility\n  private setAria(): void {\n    const elemID = `${ROLE_TOOLTIP}${Math.ceil(Math.random() * 1000)}`;\n    this.el.nativeElement.setAttribute(ATTR_ARIA_DESCRIBEDBY, elemID);\n    this.popupEl.setAttribute(ATTR_ID, elemID);\n    this.popupEl.setAttribute(ATTR_ROLE, ROLE_TOOLTIP);\n    this.popupEl.setAttribute(ATTR_LIVE, ATTR_LIVE_POLITE);\n    this.popupEl.setAttribute(ATTR_INVALID, `${this.tooltipType === TooltipType.error}`);\n\n    if (this.tooltipKeyboardFocusEl) {\n      this.tooltipKeyboardFocusEl.setAttribute(ATTR_ARIA_DESCRIBEDBY, elemID);\n    }\n\n    setTimeout(() => this.checkCoords(true));\n  }\n\n  // Bind event listeners based on the invoke type\n  private bindListeners(): void {\n    if (this.tooltipInvokeType === InvokeType.hover) {\n      this.hoverListener();\n    } else {\n      this.clickListener();\n    }\n  }\n\n  // Create the beak element for the tooltip\n  private createBeak(): void {\n    this.beakEl = this.renderer.createElement('span');\n    this.renderer.addClass(this.beakEl, BeakClass.beak);\n    this.checkBeak(this.tooltipPosition);\n    this.renderer.appendChild(this.popupEl, this.beakEl);\n  }\n\n  // Check the position of the beak and update its class\n  private checkBeak(position: PositionState | string): void {\n    if (this.beakEl) {\n      this.renderer.removeClass(this.beakEl, BeakClass.top);\n      this.renderer.removeClass(this.beakEl, BeakClass.bottom);\n      this.renderer.removeClass(this.beakEl, BeakClass.left);\n      this.renderer.removeClass(this.beakEl, BeakClass.right);\n\n      switch (position) {\n        case PositionState.top:\n        case PositionState.topLeft:\n        case PositionState.topRight:\n          this.renderer.addClass(this.beakEl, BeakClass.top);\n          break;\n        case PositionState.bottom:\n        case PositionState.bottomLeft:\n        case PositionState.bottomRight:\n          this.renderer.addClass(this.beakEl, BeakClass.bottom);\n          break;\n        case PositionState.left:\n        case PositionState.leftBottom:\n        case PositionState.leftTop:\n          this.renderer.addClass(this.beakEl, BeakClass.left);\n          break;\n        case PositionState.right:\n        case PositionState.rightBottom:\n        case PositionState.rightTop:\n          this.renderer.addClass(this.beakEl, BeakClass.right);\n          break;\n      }\n    }\n  }\n\n  // Add hover event listeners\n  private hoverListener(): void {\n    this.mouseenter = this.renderer.listen(this.el.nativeElement, 'mouseenter', () => this.show());\n    this.mouseleave = this.renderer.listen(this.el.nativeElement, 'mouseleave', () => this.hide());\n  }\n\n  // Check the coordinates of the tooltip and update its position\n  private checkCoords = (setFinishCoords = false): void => {\n    const popupLocationConfig: PopupLocationConfig = {\n      elRect: this.el.nativeElement.getBoundingClientRect(),\n      beakRect: this.popupEl && this.beakEl ? this.beakEl.getBoundingClientRect() : null,\n      popupRect: this.popupEl.getBoundingClientRect(),\n      indent: this.tooltipIndent,\n      shift: this.tooltipShift,\n      isDynamic: this.tooltipIsDynamic,\n    };\n    const currentCoords: Coordinates = checkPosition(this.tooltipPosition, popupLocationConfig);\n    let setMaxWidth = setFinishCoords;\n\n    if (this.tooltipMaxWidth) setMaxWidth = false;\n\n    addPosition(this.popupEl, currentCoords.popupCoords, setMaxWidth);\n    addPosition(this.beakEl, currentCoords.beakCoords);\n    this.checkBeak(currentCoords.beakPosition);\n\n    if (setFinishCoords) {\n      this.renderer.addClass(this.popupEl, PopupClass.popup_position);\n    }\n  };\n\n  // Add click event listener\n  private clickListener(): void {\n    this.elClick = this.renderer.listen(this.el.nativeElement, 'click', () => this.show());\n  }\n\n  // Add resize and scroll event listeners\n  private resizeAndScrollListeners(): void {\n    this.ngZone.runOutsideAngular(() => {\n      this.resize = fromEvent(window, 'resize')\n        .pipe(throttleTime(30))\n        .subscribe((_) => this.checkCoords(true));\n\n      this.scroll = fromEvent(this.document, 'scroll')\n        .pipe(throttleTime(30))\n        .subscribe((_) => this.checkCoords(true));\n    });\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { TooltipDirective } from './directives/tooltip.directive';\nimport { TooltipService } from './services/tooltip.service';\nimport { TooltipComponent } from './tooltip/tooltip.component';\n\n@NgModule({\n  declarations: [],\n  imports: [TooltipDirective, TooltipComponent],\n  exports: [TooltipDirective],\n  providers: [TooltipService],\n})\nexport class TooltipModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TooltipService"],"mappings":"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"}