{"version":3,"file":"chunk-jbq27wod.js","sources":["node_modules/@angular/material/fesm2022/tooltip.mjs"],"sourcesContent":["import { takeUntil } from 'rxjs/operators';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, inject, Injector, ElementRef, afterNextRender, Directive, Inject, Optional, Input, ANIMATION_MODULE_TYPE, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, NgModule } from '@angular/core';\nimport { DOCUMENT, NgClass, CommonModule } from '@angular/common';\nimport * as i2 from '@angular/cdk/platform';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport * as i3 from '@angular/cdk/a11y';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport * as i4 from '@angular/cdk/bidi';\nimport * as i1 from '@angular/cdk/overlay';\nimport { Overlay, OverlayModule } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Subject } from 'rxjs';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport { MatCommonModule } from '@angular/material/core';\n\n/** Time in ms to throttle repositioning after scroll events. */\nconst _c0 = [\"tooltip\"];\nconst SCROLL_THROTTLE_MS = 20;\n/**\n * Creates an error to be thrown if the user supplied an invalid tooltip position.\n * @docs-private\n */\nfunction getMatTooltipInvalidPositionError(position) {\n return Error(`Tooltip position \"${position}\" is invalid.`);\n}\n/** Injection token that determines the scroll handling while a tooltip is visible. */\nconst MAT_TOOLTIP_SCROLL_STRATEGY = /*#__PURE__*/new InjectionToken('mat-tooltip-scroll-strategy', {\n providedIn: 'root',\n factory: () => {\n const overlay = inject(Overlay);\n return () => overlay.scrollStrategies.reposition({\n scrollThrottle: SCROLL_THROTTLE_MS\n });\n }\n});\n/** @docs-private */\nfunction MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY(overlay) {\n return () => overlay.scrollStrategies.reposition({\n scrollThrottle: SCROLL_THROTTLE_MS\n });\n}\n/** @docs-private */\nconst MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: MAT_TOOLTIP_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY\n};\n/** @docs-private */\nfunction MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY() {\n return {\n showDelay: 0,\n hideDelay: 0,\n touchendHideDelay: 1500\n };\n}\n/** Injection token to be used to override the default options for `matTooltip`. */\nconst MAT_TOOLTIP_DEFAULT_OPTIONS = /*#__PURE__*/new InjectionToken('mat-tooltip-default-options', {\n providedIn: 'root',\n factory: MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY\n});\n/**\n * CSS class that will be attached to the overlay panel.\n * @deprecated\n * @breaking-change 13.0.0 remove this variable\n */\nconst TOOLTIP_PANEL_CLASS = 'mat-mdc-tooltip-panel';\nconst PANEL_CLASS = 'tooltip-panel';\n/** Options used to bind passive event listeners. */\nconst passiveListenerOptions = /*#__PURE__*/normalizePassiveListenerOptions({\n passive: true\n});\n// These constants were taken from MDC's `numbers` object. We can't import them from MDC,\n// because they have some top-level references to `window` which break during SSR.\nconst MIN_VIEWPORT_TOOLTIP_THRESHOLD = 8;\nconst UNBOUNDED_ANCHOR_GAP = 8;\nconst MIN_HEIGHT = 24;\nconst MAX_WIDTH = 200;\n/**\n * Directive that attaches a material design tooltip to the host element. Animates the showing and\n * hiding of a tooltip provided position (defaults to below the element).\n *\n * https://material.io/design/components/tooltips.html\n */\nlet MatTooltip = /*#__PURE__*/(() => {\n class MatTooltip {\n /** Allows the user to define the position of the tooltip relative to the parent element */\n get position() {\n return this._position;\n }\n set position(value) {\n if (value !== this._position) {\n this._position = value;\n if (this._overlayRef) {\n this._updatePosition(this._overlayRef);\n this._tooltipInstance?.show(0);\n this._overlayRef.updatePosition();\n }\n }\n }\n /**\n * Whether tooltip should be relative to the click or touch origin\n * instead of outside the element bounding box.\n */\n get positionAtOrigin() {\n return this._positionAtOrigin;\n }\n set positionAtOrigin(value) {\n this._positionAtOrigin = coerceBooleanProperty(value);\n this._detach();\n this._overlayRef = null;\n }\n /** Disables the display of the tooltip. */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n const isDisabled = coerceBooleanProperty(value);\n if (this._disabled !== isDisabled) {\n this._disabled = isDisabled;\n // If tooltip is disabled, hide immediately.\n if (isDisabled) {\n this.hide(0);\n } else {\n this._setupPointerEnterEventsIfNeeded();\n }\n this._syncAriaDescription(this.message);\n }\n }\n /** The default delay in ms before showing the tooltip after show is called */\n get showDelay() {\n return this._showDelay;\n }\n set showDelay(value) {\n this._showDelay = coerceNumberProperty(value);\n }\n /** The default delay in ms before hiding the tooltip after hide is called */\n get hideDelay() {\n return this._hideDelay;\n }\n set hideDelay(value) {\n this._hideDelay = coerceNumberProperty(value);\n if (this._tooltipInstance) {\n this._tooltipInstance._mouseLeaveHideDelay = this._hideDelay;\n }\n }\n /** The message to be displayed in the tooltip */\n get message() {\n return this._message;\n }\n set message(value) {\n const oldMessage = this._message;\n // If the message is not a string (e.g. number), convert it to a string and trim it.\n // Must convert with `String(value)`, not `${value}`, otherwise Closure Compiler optimises\n // away the string-conversion: https://github.com/angular/components/issues/20684\n this._message = value != null ? String(value).trim() : '';\n if (!this._message && this._isTooltipVisible()) {\n this.hide(0);\n } else {\n this._setupPointerEnterEventsIfNeeded();\n this._updateTooltipMessage();\n }\n this._syncAriaDescription(oldMessage);\n }\n /** Classes to be passed to the tooltip. Supports the same syntax as `ngClass`. */\n get tooltipClass() {\n return this._tooltipClass;\n }\n set tooltipClass(value) {\n this._tooltipClass = value;\n if (this._tooltipInstance) {\n this._setTooltipClass(this._tooltipClass);\n }\n }\n constructor(_overlay, _elementRef, _scrollDispatcher, _viewContainerRef, _ngZone, _platform, _ariaDescriber, _focusMonitor, scrollStrategy, _dir, _defaultOptions, _document) {\n this._overlay = _overlay;\n this._elementRef = _elementRef;\n this._scrollDispatcher = _scrollDispatcher;\n this._viewContainerRef = _viewContainerRef;\n this._ngZone = _ngZone;\n this._platform = _platform;\n this._ariaDescriber = _ariaDescriber;\n this._focusMonitor = _focusMonitor;\n this._dir = _dir;\n this._defaultOptions = _defaultOptions;\n this._position = 'below';\n this._positionAtOrigin = false;\n this._disabled = false;\n this._viewInitialized = false;\n this._pointerExitEventsInitialized = false;\n this._tooltipComponent = TooltipComponent;\n this._viewportMargin = 8;\n this._cssClassPrefix = 'mat-mdc';\n /**\n * How touch gestures should be handled by the tooltip. On touch devices the tooltip directive\n * uses a long press gesture to show and hide, however it can conflict with the native browser\n * gestures. To work around the conflict, Angular Material disables native gestures on the\n * trigger, but that might not be desirable on particular elements (e.g. inputs and draggable\n * elements). The different values for this option configure the touch event handling as follows:\n * - `auto` - Enables touch gestures for all elements, but tries to avoid conflicts with native\n * browser gestures on particular elements. In particular, it allows text selection on inputs\n * and textareas, and preserves the native browser dragging on elements marked as `draggable`.\n * - `on` - Enables touch gestures for all elements and disables native\n * browser gestures with no exceptions.\n * - `off` - Disables touch gestures. Note that this will prevent the tooltip from\n * showing on touch devices.\n */\n this.touchGestures = 'auto';\n this._message = '';\n /** Manually-bound passive event listeners. */\n this._passiveListeners = [];\n /** Timer started at the last `touchstart` event. */\n this._touchstartTimeout = null;\n /** Emits when the component is destroyed. */\n this._destroyed = new Subject();\n this._injector = inject(Injector);\n this._scrollStrategy = scrollStrategy;\n this._document = _document;\n if (_defaultOptions) {\n this._showDelay = _defaultOptions.showDelay;\n this._hideDelay = _defaultOptions.hideDelay;\n if (_defaultOptions.position) {\n this.position = _defaultOptions.position;\n }\n if (_defaultOptions.positionAtOrigin) {\n this.positionAtOrigin = _defaultOptions.positionAtOrigin;\n }\n if (_defaultOptions.touchGestures) {\n this.touchGestures = _defaultOptions.touchGestures;\n }\n if (_defaultOptions.tooltipClass) {\n this.tooltipClass = _defaultOptions.tooltipClass;\n }\n }\n _dir.change.pipe(takeUntil(this._destroyed)).subscribe(() => {\n if (this._overlayRef) {\n this._updatePosition(this._overlayRef);\n }\n });\n this._viewportMargin = MIN_VIEWPORT_TOOLTIP_THRESHOLD;\n }\n ngAfterViewInit() {\n // This needs to happen after view init so the initial values for all inputs have been set.\n this._viewInitialized = true;\n this._setupPointerEnterEventsIfNeeded();\n this._focusMonitor.monitor(this._elementRef).pipe(takeUntil(this._destroyed)).subscribe(origin => {\n // Note that the focus monitor runs outside the Angular zone.\n if (!origin) {\n this._ngZone.run(() => this.hide(0));\n } else if (origin === 'keyboard') {\n this._ngZone.run(() => this.show());\n }\n });\n }\n /**\n * Dispose the tooltip when destroyed.\n */\n ngOnDestroy() {\n const nativeElement = this._elementRef.nativeElement;\n // Optimization: Do not call clearTimeout unless there is an active timer.\n if (this._touchstartTimeout) {\n clearTimeout(this._touchstartTimeout);\n }\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._tooltipInstance = null;\n }\n // Clean up the event listeners set in the constructor\n this._passiveListeners.forEach(([event, listener]) => {\n nativeElement.removeEventListener(event, listener, passiveListenerOptions);\n });\n this._passiveListeners.length = 0;\n this._destroyed.next();\n this._destroyed.complete();\n this._ariaDescriber.removeDescription(nativeElement, this.message, 'tooltip');\n this._focusMonitor.stopMonitoring(nativeElement);\n }\n /** Shows the tooltip after the delay in ms, defaults to tooltip-delay-show or 0ms if no input */\n show(delay = this.showDelay, origin) {\n if (this.disabled || !this.message || this._isTooltipVisible()) {\n this._tooltipInstance?._cancelPendingAnimations();\n return;\n }\n const overlayRef = this._createOverlay(origin);\n this._detach();\n this._portal = this._portal || new ComponentPortal(this._tooltipComponent, this._viewContainerRef);\n const instance = this._tooltipInstance = overlayRef.attach(this._portal).instance;\n instance._triggerElement = this._elementRef.nativeElement;\n instance._mouseLeaveHideDelay = this._hideDelay;\n instance.afterHidden().pipe(takeUntil(this._destroyed)).subscribe(() => this._detach());\n this._setTooltipClass(this._tooltipClass);\n this._updateTooltipMessage();\n instance.show(delay);\n }\n /** Hides the tooltip after the delay in ms, defaults to tooltip-delay-hide or 0ms if no input */\n hide(delay = this.hideDelay) {\n const instance = this._tooltipInstance;\n if (instance) {\n if (instance.isVisible()) {\n instance.hide(delay);\n } else {\n instance._cancelPendingAnimations();\n this._detach();\n }\n }\n }\n /** Shows/hides the tooltip */\n toggle(origin) {\n this._isTooltipVisible() ? this.hide() : this.show(undefined, origin);\n }\n /** Returns true if the tooltip is currently visible to the user */\n _isTooltipVisible() {\n return !!this._tooltipInstance && this._tooltipInstance.isVisible();\n }\n /** Create the overlay config and position strategy */\n _createOverlay(origin) {\n if (this._overlayRef) {\n const existingStrategy = this._overlayRef.getConfig().positionStrategy;\n if ((!this.positionAtOrigin || !origin) && existingStrategy._origin instanceof ElementRef) {\n return this._overlayRef;\n }\n this._detach();\n }\n const scrollableAncestors = this._scrollDispatcher.getAncestorScrollContainers(this._elementRef);\n // Create connected position strategy that listens for scroll events to reposition.\n const strategy = this._overlay.position().flexibleConnectedTo(this.positionAtOrigin ? origin || this._elementRef : this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(false).withViewportMargin(this._viewportMargin).withScrollableContainers(scrollableAncestors);\n strategy.positionChanges.pipe(takeUntil(this._destroyed)).subscribe(change => {\n this._updateCurrentPositionClass(change.connectionPair);\n if (this._tooltipInstance) {\n if (change.scrollableViewProperties.isOverlayClipped && this._tooltipInstance.isVisible()) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n this._ngZone.run(() => this.hide(0));\n }\n }\n });\n this._overlayRef = this._overlay.create({\n direction: this._dir,\n positionStrategy: strategy,\n panelClass: `${this._cssClassPrefix}-${PANEL_CLASS}`,\n scrollStrategy: this._scrollStrategy()\n });\n this._updatePosition(this._overlayRef);\n this._overlayRef.detachments().pipe(takeUntil(this._destroyed)).subscribe(() => this._detach());\n this._overlayRef.outsidePointerEvents().pipe(takeUntil(this._destroyed)).subscribe(() => this._tooltipInstance?._handleBodyInteraction());\n this._overlayRef.keydownEvents().pipe(takeUntil(this._destroyed)).subscribe(event => {\n if (this._isTooltipVisible() && event.keyCode === ESCAPE && !hasModifierKey(event)) {\n event.preventDefault();\n event.stopPropagation();\n this._ngZone.run(() => this.hide(0));\n }\n });\n if (this._defaultOptions?.disableTooltipInteractivity) {\n this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`);\n }\n return this._overlayRef;\n }\n /** Detaches the currently-attached tooltip. */\n _detach() {\n if (this._overlayRef && this._overlayRef.hasAttached()) {\n this._overlayRef.detach();\n }\n this._tooltipInstance = null;\n }\n /** Updates the position of the current tooltip. */\n _updatePosition(overlayRef) {\n const position = overlayRef.getConfig().positionStrategy;\n const origin = this._getOrigin();\n const overlay = this._getOverlayPosition();\n position.withPositions([this._addOffset({\n ...origin.main,\n ...overlay.main\n }), this._addOffset({\n ...origin.fallback,\n ...overlay.fallback\n })]);\n }\n /** Adds the configured offset to a position. Used as a hook for child classes. */\n _addOffset(position) {\n const offset = UNBOUNDED_ANCHOR_GAP;\n const isLtr = !this._dir || this._dir.value == 'ltr';\n if (position.originY === 'top') {\n position.offsetY = -offset;\n } else if (position.originY === 'bottom') {\n position.offsetY = offset;\n } else if (position.originX === 'start') {\n position.offsetX = isLtr ? -offset : offset;\n } else if (position.originX === 'end') {\n position.offsetX = isLtr ? offset : -offset;\n }\n return position;\n }\n /**\n * Returns the origin position and a fallback position based on the user's position preference.\n * The fallback position is the inverse of the origin (e.g. `'below' -> 'above'`).\n */\n _getOrigin() {\n const isLtr = !this._dir || this._dir.value == 'ltr';\n const position = this.position;\n let originPosition;\n if (position == 'above' || position == 'below') {\n originPosition = {\n originX: 'center',\n originY: position == 'above' ? 'top' : 'bottom'\n };\n } else if (position == 'before' || position == 'left' && isLtr || position == 'right' && !isLtr) {\n originPosition = {\n originX: 'start',\n originY: 'center'\n };\n } else if (position == 'after' || position == 'right' && isLtr || position == 'left' && !isLtr) {\n originPosition = {\n originX: 'end',\n originY: 'center'\n };\n } else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throw getMatTooltipInvalidPositionError(position);\n }\n const {\n x,\n y\n } = this._invertPosition(originPosition.originX, originPosition.originY);\n return {\n main: originPosition,\n fallback: {\n originX: x,\n originY: y\n }\n };\n }\n /** Returns the overlay position and a fallback position based on the user's preference */\n _getOverlayPosition() {\n const isLtr = !this._dir || this._dir.value == 'ltr';\n const position = this.position;\n let overlayPosition;\n if (position == 'above') {\n overlayPosition = {\n overlayX: 'center',\n overlayY: 'bottom'\n };\n } else if (position == 'below') {\n overlayPosition = {\n overlayX: 'center',\n overlayY: 'top'\n };\n } else if (position == 'before' || position == 'left' && isLtr || position == 'right' && !isLtr) {\n overlayPosition = {\n overlayX: 'end',\n overlayY: 'center'\n };\n } else if (position == 'after' || position == 'right' && isLtr || position == 'left' && !isLtr) {\n overlayPosition = {\n overlayX: 'start',\n overlayY: 'center'\n };\n } else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throw getMatTooltipInvalidPositionError(position);\n }\n const {\n x,\n y\n } = this._invertPosition(overlayPosition.overlayX, overlayPosition.overlayY);\n return {\n main: overlayPosition,\n fallback: {\n overlayX: x,\n overlayY: y\n }\n };\n }\n /** Updates the tooltip message and repositions the overlay according to the new message length */\n _updateTooltipMessage() {\n // Must wait for the message to be painted to the tooltip so that the overlay can properly\n // calculate the correct positioning based on the size of the text.\n if (this._tooltipInstance) {\n this._tooltipInstance.message = this.message;\n this._tooltipInstance._markForCheck();\n afterNextRender(() => {\n if (this._tooltipInstance) {\n this._overlayRef.updatePosition();\n }\n }, {\n injector: this._injector\n });\n }\n }\n /** Updates the tooltip class */\n _setTooltipClass(tooltipClass) {\n if (this._tooltipInstance) {\n this._tooltipInstance.tooltipClass = tooltipClass;\n this._tooltipInstance._markForCheck();\n }\n }\n /** Inverts an overlay position. */\n _invertPosition(x, y) {\n if (this.position === 'above' || this.position === 'below') {\n if (y === 'top') {\n y = 'bottom';\n } else if (y === 'bottom') {\n y = 'top';\n }\n } else {\n if (x === 'end') {\n x = 'start';\n } else if (x === 'start') {\n x = 'end';\n }\n }\n return {\n x,\n y\n };\n }\n /** Updates the class on the overlay panel based on the current position of the tooltip. */\n _updateCurrentPositionClass(connectionPair) {\n const {\n overlayY,\n originX,\n originY\n } = connectionPair;\n let newPosition;\n // If the overlay is in the middle along the Y axis,\n // it means that it's either before or after.\n if (overlayY === 'center') {\n // Note that since this information is used for styling, we want to\n // resolve `start` and `end` to their real values, otherwise consumers\n // would have to remember to do it themselves on each consumption.\n if (this._dir && this._dir.value === 'rtl') {\n newPosition = originX === 'end' ? 'left' : 'right';\n } else {\n newPosition = originX === 'start' ? 'left' : 'right';\n }\n } else {\n newPosition = overlayY === 'bottom' && originY === 'top' ? 'above' : 'below';\n }\n if (newPosition !== this._currentPosition) {\n const overlayRef = this._overlayRef;\n if (overlayRef) {\n const classPrefix = `${this._cssClassPrefix}-${PANEL_CLASS}-`;\n overlayRef.removePanelClass(classPrefix + this._currentPosition);\n overlayRef.addPanelClass(classPrefix + newPosition);\n }\n this._currentPosition = newPosition;\n }\n }\n /** Binds the pointer events to the tooltip trigger. */\n _setupPointerEnterEventsIfNeeded() {\n // Optimization: Defer hooking up events if there's no message or the tooltip is disabled.\n if (this._disabled || !this.message || !this._viewInitialized || this._passiveListeners.length) {\n return;\n }\n // The mouse events shouldn't be bound on mobile devices, because they can prevent the\n // first tap from firing its click event or can cause the tooltip to open for clicks.\n if (this._platformSupportsMouseEvents()) {\n this._passiveListeners.push(['mouseenter', event => {\n this._setupPointerExitEventsIfNeeded();\n let point = undefined;\n if (event.x !== undefined && event.y !== undefined) {\n point = event;\n }\n this.show(undefined, point);\n }]);\n } else if (this.touchGestures !== 'off') {\n this._disableNativeGesturesIfNecessary();\n this._passiveListeners.push(['touchstart', event => {\n const touch = event.targetTouches?.[0];\n const origin = touch ? {\n x: touch.clientX,\n y: touch.clientY\n } : undefined;\n // Note that it's important that we don't `preventDefault` here,\n // because it can prevent click events from firing on the element.\n this._setupPointerExitEventsIfNeeded();\n if (this._touchstartTimeout) {\n clearTimeout(this._touchstartTimeout);\n }\n const DEFAULT_LONGPRESS_DELAY = 500;\n this._touchstartTimeout = setTimeout(() => {\n this._touchstartTimeout = null;\n this.show(undefined, origin);\n }, this._defaultOptions.touchLongPressShowDelay ?? DEFAULT_LONGPRESS_DELAY);\n }]);\n }\n this._addListeners(this._passiveListeners);\n }\n _setupPointerExitEventsIfNeeded() {\n if (this._pointerExitEventsInitialized) {\n return;\n }\n this._pointerExitEventsInitialized = true;\n const exitListeners = [];\n if (this._platformSupportsMouseEvents()) {\n exitListeners.push(['mouseleave', event => {\n const newTarget = event.relatedTarget;\n if (!newTarget || !this._overlayRef?.overlayElement.contains(newTarget)) {\n this.hide();\n }\n }], ['wheel', event => this._wheelListener(event)]);\n } else if (this.touchGestures !== 'off') {\n this._disableNativeGesturesIfNecessary();\n const touchendListener = () => {\n if (this._touchstartTimeout) {\n clearTimeout(this._touchstartTimeout);\n }\n this.hide(this._defaultOptions.touchendHideDelay);\n };\n exitListeners.push(['touchend', touchendListener], ['touchcancel', touchendListener]);\n }\n this._addListeners(exitListeners);\n this._passiveListeners.push(...exitListeners);\n }\n _addListeners(listeners) {\n listeners.forEach(([event, listener]) => {\n this._elementRef.nativeElement.addEventListener(event, listener, passiveListenerOptions);\n });\n }\n _platformSupportsMouseEvents() {\n return !this._platform.IOS && !this._platform.ANDROID;\n }\n /** Listener for the `wheel` event on the element. */\n _wheelListener(event) {\n if (this._isTooltipVisible()) {\n const elementUnderPointer = this._document.elementFromPoint(event.clientX, event.clientY);\n const element = this._elementRef.nativeElement;\n // On non-touch devices we depend on the `mouseleave` event to close the tooltip, but it\n // won't fire if the user scrolls away using the wheel without moving their cursor. We\n // work around it by finding the element under the user's cursor and closing the tooltip\n // if it's not the trigger.\n if (elementUnderPointer !== element && !element.contains(elementUnderPointer)) {\n this.hide();\n }\n }\n }\n /** Disables the native browser gestures, based on how the tooltip has been configured. */\n _disableNativeGesturesIfNecessary() {\n const gestures = this.touchGestures;\n if (gestures !== 'off') {\n const element = this._elementRef.nativeElement;\n const style = element.style;\n // If gestures are set to `auto`, we don't disable text selection on inputs and\n // textareas, because it prevents the user from typing into them on iOS Safari.\n if (gestures === 'on' || element.nodeName !== 'INPUT' && element.nodeName !== 'TEXTAREA') {\n style.userSelect = style.msUserSelect = style.webkitUserSelect = style.MozUserSelect = 'none';\n }\n // If we have `auto` gestures and the element uses native HTML dragging,\n // we don't set `-webkit-user-drag` because it prevents the native behavior.\n if (gestures === 'on' || !element.draggable) {\n style.webkitUserDrag = 'none';\n }\n style.touchAction = 'none';\n style.webkitTapHighlightColor = 'transparent';\n }\n }\n /** Updates the tooltip's ARIA description based on it current state. */\n _syncAriaDescription(oldMessage) {\n if (this._ariaDescriptionPending) {\n return;\n }\n this._ariaDescriptionPending = true;\n this._ariaDescriber.removeDescription(this._elementRef.nativeElement, oldMessage, 'tooltip');\n this._ngZone.runOutsideAngular(() => {\n // The `AriaDescriber` has some functionality that avoids adding a description if it's the\n // same as the `aria-label` of an element, however we can't know whether the tooltip trigger\n // has a data-bound `aria-label` or when it'll be set for the first time. We can avoid the\n // issue by deferring the description by a tick so Angular has time to set the `aria-label`.\n Promise.resolve().then(() => {\n this._ariaDescriptionPending = false;\n if (this.message && !this.disabled) {\n this._ariaDescriber.describe(this._elementRef.nativeElement, this.message, 'tooltip');\n }\n });\n });\n }\n static {\n this.ɵfac = function MatTooltip_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatTooltip)(i0.ɵɵdirectiveInject(i1.Overlay), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.ScrollDispatcher), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(i3.AriaDescriber), i0.ɵɵdirectiveInject(i3.FocusMonitor), i0.ɵɵdirectiveInject(MAT_TOOLTIP_SCROLL_STRATEGY), i0.ɵɵdirectiveInject(i4.Directionality), i0.ɵɵdirectiveInject(MAT_TOOLTIP_DEFAULT_OPTIONS, 8), i0.ɵɵdirectiveInject(DOCUMENT));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatTooltip,\n selectors: [[\"\", \"matTooltip\", \"\"]],\n hostAttrs: [1, \"mat-mdc-tooltip-trigger\"],\n hostVars: 2,\n hostBindings: function MatTooltip_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-mdc-tooltip-disabled\", ctx.disabled);\n }\n },\n inputs: {\n position: [0, \"matTooltipPosition\", \"position\"],\n positionAtOrigin: [0, \"matTooltipPositionAtOrigin\", \"positionAtOrigin\"],\n disabled: [0, \"matTooltipDisabled\", \"disabled\"],\n showDelay: [0, \"matTooltipShowDelay\", \"showDelay\"],\n hideDelay: [0, \"matTooltipHideDelay\", \"hideDelay\"],\n touchGestures: [0, \"matTooltipTouchGestures\", \"touchGestures\"],\n message: [0, \"matTooltip\", \"message\"],\n tooltipClass: [0, \"matTooltipClass\", \"tooltipClass\"]\n },\n exportAs: [\"matTooltip\"],\n standalone: true\n });\n }\n }\n return MatTooltip;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Internal component that wraps the tooltip's content.\n * @docs-private\n */\nlet TooltipComponent = /*#__PURE__*/(() => {\n class TooltipComponent {\n constructor(_changeDetectorRef, _elementRef, animationMode) {\n this._changeDetectorRef = _changeDetectorRef;\n this._elementRef = _elementRef;\n /* Whether the tooltip text overflows to multiple lines */\n this._isMultiline = false;\n /** Whether interactions on the page should close the tooltip */\n this._closeOnInteraction = false;\n /** Whether the tooltip is currently visible. */\n this._isVisible = false;\n /** Subject for notifying that the tooltip has been hidden from the view */\n this._onHide = new Subject();\n /** Name of the show animation and the class that toggles it. */\n this._showAnimation = 'mat-mdc-tooltip-show';\n /** Name of the hide animation and the class that toggles it. */\n this._hideAnimation = 'mat-mdc-tooltip-hide';\n this._animationsDisabled = animationMode === 'NoopAnimations';\n }\n /**\n * Shows the tooltip with an animation originating from the provided origin\n * @param delay Amount of milliseconds to the delay showing the tooltip.\n */\n show(delay) {\n // Cancel the delayed hide if it is scheduled\n if (this._hideTimeoutId != null) {\n clearTimeout(this._hideTimeoutId);\n }\n this._showTimeoutId = setTimeout(() => {\n this._toggleVisibility(true);\n this._showTimeoutId = undefined;\n }, delay);\n }\n /**\n * Begins the animation to hide the tooltip after the provided delay in ms.\n * @param delay Amount of milliseconds to delay showing the tooltip.\n */\n hide(delay) {\n // Cancel the delayed show if it is scheduled\n if (this._showTimeoutId != null) {\n clearTimeout(this._showTimeoutId);\n }\n this._hideTimeoutId = setTimeout(() => {\n this._toggleVisibility(false);\n this._hideTimeoutId = undefined;\n }, delay);\n }\n /** Returns an observable that notifies when the tooltip has been hidden from view. */\n afterHidden() {\n return this._onHide;\n }\n /** Whether the tooltip is being displayed. */\n isVisible() {\n return this._isVisible;\n }\n ngOnDestroy() {\n this._cancelPendingAnimations();\n this._onHide.complete();\n this._triggerElement = null;\n }\n /**\n * Interactions on the HTML body should close the tooltip immediately as defined in the\n * material design spec.\n * https://material.io/design/components/tooltips.html#behavior\n */\n _handleBodyInteraction() {\n if (this._closeOnInteraction) {\n this.hide(0);\n }\n }\n /**\n * Marks that the tooltip needs to be checked in the next change detection run.\n * Mainly used for rendering the initial text before positioning a tooltip, which\n * can be problematic in components with OnPush change detection.\n */\n _markForCheck() {\n this._changeDetectorRef.markForCheck();\n }\n _handleMouseLeave({\n relatedTarget\n }) {\n if (!relatedTarget || !this._triggerElement.contains(relatedTarget)) {\n if (this.isVisible()) {\n this.hide(this._mouseLeaveHideDelay);\n } else {\n this._finalizeAnimation(false);\n }\n }\n }\n /**\n * Callback for when the timeout in this.show() gets completed.\n * This method is only needed by the mdc-tooltip, and so it is only implemented\n * in the mdc-tooltip, not here.\n */\n _onShow() {\n this._isMultiline = this._isTooltipMultiline();\n this._markForCheck();\n }\n /** Whether the tooltip text has overflown to the next line */\n _isTooltipMultiline() {\n const rect = this._elementRef.nativeElement.getBoundingClientRect();\n return rect.height > MIN_HEIGHT && rect.width >= MAX_WIDTH;\n }\n /** Event listener dispatched when an animation on the tooltip finishes. */\n _handleAnimationEnd({\n animationName\n }) {\n if (animationName === this._showAnimation || animationName === this._hideAnimation) {\n this._finalizeAnimation(animationName === this._showAnimation);\n }\n }\n /** Cancels any pending animation sequences. */\n _cancelPendingAnimations() {\n if (this._showTimeoutId != null) {\n clearTimeout(this._showTimeoutId);\n }\n if (this._hideTimeoutId != null) {\n clearTimeout(this._hideTimeoutId);\n }\n this._showTimeoutId = this._hideTimeoutId = undefined;\n }\n /** Handles the cleanup after an animation has finished. */\n _finalizeAnimation(toVisible) {\n if (toVisible) {\n this._closeOnInteraction = true;\n } else if (!this.isVisible()) {\n this._onHide.next();\n }\n }\n /** Toggles the visibility of the tooltip element. */\n _toggleVisibility(isVisible) {\n // We set the classes directly here ourselves so that toggling the tooltip state\n // isn't bound by change detection. This allows us to hide it even if the\n // view ref has been detached from the CD tree.\n const tooltip = this._tooltip.nativeElement;\n const showClass = this._showAnimation;\n const hideClass = this._hideAnimation;\n tooltip.classList.remove(isVisible ? hideClass : showClass);\n tooltip.classList.add(isVisible ? showClass : hideClass);\n if (this._isVisible !== isVisible) {\n this._isVisible = isVisible;\n this._changeDetectorRef.markForCheck();\n }\n // It's common for internal apps to disable animations using `* { animation: none !important }`\n // which can break the opening sequence. Try to detect such cases and work around them.\n if (isVisible && !this._animationsDisabled && typeof getComputedStyle === 'function') {\n const styles = getComputedStyle(tooltip);\n // Use `getPropertyValue` to avoid issues with property renaming.\n if (styles.getPropertyValue('animation-duration') === '0s' || styles.getPropertyValue('animation-name') === 'none') {\n this._animationsDisabled = true;\n }\n }\n if (isVisible) {\n this._onShow();\n }\n if (this._animationsDisabled) {\n tooltip.classList.add('_mat-animation-noopable');\n this._finalizeAnimation(isVisible);\n }\n }\n static {\n this.ɵfac = function TooltipComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TooltipComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TooltipComponent,\n selectors: [[\"mat-tooltip-component\"]],\n viewQuery: function TooltipComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tooltip = _t.first);\n }\n },\n hostAttrs: [\"aria-hidden\", \"true\"],\n hostBindings: function TooltipComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"mouseleave\", function TooltipComponent_mouseleave_HostBindingHandler($event) {\n return ctx._handleMouseLeave($event);\n });\n }\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 4,\n vars: 4,\n consts: [[\"tooltip\", \"\"], [1, \"mdc-tooltip\", \"mat-mdc-tooltip\", 3, \"animationend\", \"ngClass\"], [1, \"mat-mdc-tooltip-surface\", \"mdc-tooltip__surface\"]],\n template: function TooltipComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 1, 0);\n i0.ɵɵlistener(\"animationend\", function TooltipComponent_Template_div_animationend_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handleAnimationEnd($event));\n });\n i0.ɵɵelementStart(2, \"div\", 2);\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-tooltip--multiline\", ctx._isMultiline);\n i0.ɵɵproperty(\"ngClass\", ctx.tooltipClass);\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(ctx.message);\n }\n },\n dependencies: [NgClass],\n styles: [\".mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.mat-mdc-tooltip::before{content:\\\"\\\";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mdc-plain-tooltip-container-color, var(--mat-app-inverse-surface));color:var(--mdc-plain-tooltip-supporting-text-color, var(--mat-app-inverse-on-surface));border-radius:var(--mdc-plain-tooltip-container-shape, var(--mat-app-corner-extra-small));font-family:var(--mdc-plain-tooltip-supporting-text-font, var(--mat-app-body-small-font));font-size:var(--mdc-plain-tooltip-supporting-text-size, var(--mat-app-body-small-size));font-weight:var(--mdc-plain-tooltip-supporting-text-weight, var(--mat-app-body-small-weight));line-height:var(--mdc-plain-tooltip-supporting-text-line-height, var(--mat-app-body-small-line-height));letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, var(--mat-app-body-small-tracking))}.mat-mdc-tooltip-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return TooltipComponent;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Animations used by MatTooltip.\n * @docs-private\n */\nconst matTooltipAnimations = {\n /** Animation that transitions a tooltip in and out. */\n tooltipState: /*#__PURE__*/trigger('state', [\n /*#__PURE__*/\n // TODO(crisbeto): these values are based on MDC's CSS.\n // We should be able to use their styles directly once we land #19432.\n state('initial, void, hidden', /*#__PURE__*/style({\n opacity: 0,\n transform: 'scale(0.8)'\n })), /*#__PURE__*/state('visible', /*#__PURE__*/style({\n transform: 'scale(1)'\n })), /*#__PURE__*/transition('* => visible', /*#__PURE__*/animate('150ms cubic-bezier(0, 0, 0.2, 1)')), /*#__PURE__*/transition('* => hidden', /*#__PURE__*/animate('75ms cubic-bezier(0.4, 0, 1, 1)'))])\n};\nlet MatTooltipModule = /*#__PURE__*/(() => {\n class MatTooltipModule {\n static {\n this.ɵfac = function MatTooltipModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatTooltipModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatTooltipModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER],\n imports: [A11yModule, CommonModule, OverlayModule, MatCommonModule, MatCommonModule, CdkScrollableModule]\n });\n }\n }\n return MatTooltipModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_TOOLTIP_DEFAULT_OPTIONS, MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY, MAT_TOOLTIP_SCROLL_STRATEGY, MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY, MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER, MatTooltip, MatTooltipModule, SCROLL_THROTTLE_MS, TOOLTIP_PANEL_CLASS, TooltipComponent, getMatTooltipInvalidPositionError, matTooltipAnimations };\n"],"names":["_c0","SCROLL_THROTTLE_MS","MAT_TOOLTIP_SCROLL_STRATEGY","InjectionToken","overlay","inject","Overlay","MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY","MAT_TOOLTIP_DEFAULT_OPTIONS","PANEL_CLASS","passiveListenerOptions","normalizePassiveListenerOptions","MIN_VIEWPORT_TOOLTIP_THRESHOLD","UNBOUNDED_ANCHOR_GAP","MIN_HEIGHT","MAX_WIDTH","MatTooltip","_MatTooltip","value","_a","coerceBooleanProperty","isDisabled","coerceNumberProperty","oldMessage","_overlay","_elementRef","_scrollDispatcher","_viewContainerRef","_ngZone","_platform","_ariaDescriber","_focusMonitor","scrollStrategy","_dir","_defaultOptions","_document","TooltipComponent","Subject","Injector","takeUntil","origin","nativeElement","event","listener","delay","overlayRef","ComponentPortal","instance","existingStrategy","ElementRef","scrollableAncestors","strategy","change","hasModifierKey","position","__spreadValues","d","offset","isLtr","originPosition","x","y","overlayPosition","afterNextRender","tooltipClass","connectionPair","overlayY","originX","originY","newPosition","classPrefix","point","touch","DEFAULT_LONGPRESS_DELAY","exitListeners","newTarget","touchendListener","listeners","elementUnderPointer","element","gestures","style","__ngFactoryType__","ɵɵdirectiveInject","ScrollDispatcher","ViewContainerRef","NgZone","Platform","AriaDescriber","FocusMonitor","Directionality","DOCUMENT","ɵɵdefineDirective","rf","ctx","ɵɵclassProp","_TooltipComponent","_changeDetectorRef","animationMode","relatedTarget","rect","animationName","toVisible","isVisible","tooltip","showClass","hideClass","styles","ChangeDetectorRef","ANIMATION_MODULE_TYPE","ɵɵdefineComponent","ɵɵviewQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵlistener","$event","ɵɵStandaloneFeature","_r1","ɵɵgetCurrentView","ɵɵelementStart","ɵɵrestoreView","ɵɵresetView","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵadvance","ɵɵtextInterpolate","NgClass"],"mappings":"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","x_google_ignoreList":[0]}