@ng-bootstrap/ng-bootstrap
Version:
Angular powered Bootstrap
1 lines • 22.9 kB
Source Map (JSON)
{"version":3,"file":"ng-bootstrap-ng-bootstrap-tooltip.mjs","sources":["../../../src/tooltip/tooltip-config.ts","../../../src/tooltip/tooltip.ts","../../../src/tooltip/tooltip.module.ts","../../../src/tooltip/ng-bootstrap-ng-bootstrap-tooltip.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { PlacementArray } from './_ngb-ngbootstrap-utilities.mjs';\nimport { NgbConfig } from '@ng-bootstrap/ng-bootstrap/config';\nimport { Options } from '@popperjs/core';\n\n/**\n * A configuration service for the [`NgbTooltip`](#/components/tooltip/api#NgbTooltip) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the tooltips used in the application.\n */\n@Injectable({ providedIn: 'root' })\nexport class NgbTooltipConfig {\n\tprivate _ngbConfig = inject(NgbConfig);\n\tprivate _animation: boolean;\n\n\tautoClose: boolean | 'inside' | 'outside' = true;\n\tplacement: PlacementArray = 'auto';\n\tpopperOptions = (options: Partial<Options>) => options;\n\ttriggers = 'hover focus';\n\tcontainer: string;\n\tdisableTooltip = false;\n\ttooltipClass: string;\n\topenDelay = 0;\n\tcloseDelay = 0;\n\n\tget animation(): boolean {\n\t\treturn this._animation ?? this._ngbConfig.animation;\n\t}\n\tset animation(animation: boolean) {\n\t\tthis._animation = animation;\n\t}\n}\n","import {\n\tafterEveryRender,\n\tAfterRenderRef,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tComponentRef,\n\tDirective,\n\tElementRef,\n\tEventEmitter,\n\tinject,\n\tInjector,\n\tInput,\n\tNgZone,\n\tOnChanges,\n\tOnDestroy,\n\tOnInit,\n\tOutput,\n\tSimpleChanges,\n\tTemplateRef,\n\tViewEncapsulation,\n\tDOCUMENT,\n} from '@angular/core';\n\nimport {\n\tisString,\n\tlistenToTriggers,\n\tngbAutoClose,\n\tngbPositioning,\n\tPopupService,\n\taddPopperOffset,\n\tngbCompleteTransition,\n} from './_ngb-ngbootstrap-utilities.mjs';\n\nimport { NgbTooltipConfig } from './tooltip-config';\nimport { Subject } from 'rxjs';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'ngb-tooltip-window',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\t'[class]': '\"tooltip\" + (tooltipClass ? \" \" + tooltipClass : \"\")',\n\t\t'[class.fade]': 'animation',\n\t\trole: 'tooltip',\n\t\t'[id]': 'id',\n\t\t'(mouseenter)': 'onMouseEnter()',\n\t\t'(mouseleave)': 'onMouseLeave()',\n\t},\n\tstyleUrl: './tooltip.scss',\n\ttemplate: `\n\t\t<div class=\"tooltip-arrow\" data-popper-arrow></div>\n\t\t<div class=\"tooltip-inner\">\n\t\t\t<ng-content />\n\t\t</div>\n\t`,\n})\nexport class NgbTooltipWindow {\n\t@Input() animation: boolean;\n\t@Input() id: string;\n\t@Input() tooltipClass: string;\n\t@Input() onMouseEnter: () => void;\n\t@Input() onMouseLeave: () => void;\n}\n\n/**\n * A lightweight and extensible directive for fancy tooltip creation.\n */\n@Directive({ selector: '[ngbTooltip]', exportAs: 'ngbTooltip' })\nexport class NgbTooltip implements OnInit, OnDestroy, OnChanges {\n\tstatic ngAcceptInputType_autoClose: boolean | string;\n\n\tprivate _config = inject(NgbTooltipConfig);\n\n\t/**\n\t * If `true`, tooltip opening and closing will be animated.\n\t *\n\t * @since 8.0.0\n\t */\n\t@Input() animation = this._config.animation;\n\n\t/**\n\t * Indicates whether the tooltip should be closed on `Escape` key and inside/outside clicks:\n\t *\n\t * * `true` - closes on both outside and inside clicks as well as `Escape` presses\n\t * * `false` - disables the autoClose feature (NB: triggers still apply)\n\t * * `\"inside\"` - closes on inside clicks as well as Escape presses\n\t * * `\"outside\"` - closes on outside clicks (sometimes also achievable through triggers)\n\t * as well as `Escape` presses\n\t *\n\t * @since 3.0.0\n\t */\n\t@Input() autoClose = this._config.autoClose;\n\n\t/**\n\t * The preferred placement of the tooltip, among the [possible values](#/guides/positioning#api).\n\t *\n\t * The default order of preference is `\"auto\"`.\n\t *\n\t * Please see the [positioning overview](#/positioning) for more details.\n\t */\n\t@Input() placement = this._config.placement;\n\n\t/**\n\t * Allows to change default Popper options when positioning the tooltip.\n\t * Receives current popper options and returns modified ones.\n\t *\n\t * @since 13.1.0\n\t */\n\t@Input() popperOptions = this._config.popperOptions;\n\n\t/**\n\t * Specifies events that should trigger the tooltip.\n\t *\n\t * Supports a space separated list of event names.\n\t * For more details see the [triggers demo](#/components/tooltip/examples#triggers).\n\t */\n\t@Input() triggers = this._config.triggers;\n\n\t/**\n\t * A css selector or html element specifying the element the tooltip should be positioned against.\n\t * By default, the element `ngbTooltip` directive is applied to will be set as a target.\n\t *\n\t * @since 13.1.0\n\t */\n\t@Input() positionTarget?: string | HTMLElement;\n\n\t/**\n\t * A selector specifying the element the tooltip should be appended to.\n\t *\n\t * Currently only supports `\"body\"`.\n\t */\n\t@Input() container = this._config.container;\n\n\t/**\n\t * If `true`, tooltip is disabled and won't be displayed.\n\t *\n\t * @since 1.1.0\n\t */\n\t@Input() disableTooltip = this._config.disableTooltip;\n\n\t/**\n\t * An optional class applied to the tooltip window element.\n\t *\n\t * @since 3.2.0\n\t */\n\t@Input() tooltipClass = this._config.tooltipClass;\n\n\t/**\n\t * Default template context for `TemplateRef`, can be overridden with `open` method.\n\t *\n\t * @since 15.1.0\n\t */\n\t@Input() tooltipContext: any;\n\n\t/**\n\t * The opening delay in ms. Works only for \"non-manual\" opening triggers defined by the `triggers` input.\n\t *\n\t * @since 4.1.0\n\t */\n\t@Input() openDelay = this._config.openDelay;\n\n\t/**\n\t * The closing delay in ms. Works only for \"non-manual\" opening triggers defined by the `triggers` input.\n\t *\n\t * @since 4.1.0\n\t */\n\t@Input() closeDelay = this._config.closeDelay;\n\n\t/**\n\t * An event emitted when the tooltip opening animation has finished. Contains no payload.\n\t */\n\t@Output() shown = new EventEmitter();\n\n\t/**\n\t * An event emitted when the tooltip closing animation has finished. Contains no payload.\n\t */\n\t@Output() hidden = new EventEmitter();\n\n\tprivate _nativeElement = inject(ElementRef).nativeElement as HTMLElement;\n\tprivate _ngZone = inject(NgZone);\n\tprivate _document = inject(DOCUMENT);\n\tprivate _changeDetector = inject(ChangeDetectorRef);\n\tprivate _injector = inject(Injector);\n\n\tprivate _ngbTooltip: string | TemplateRef<any> | null | undefined;\n\tprivate _ngbTooltipWindowId = `ngb-tooltip-${nextId++}`;\n\tprivate _popupService = new PopupService(NgbTooltipWindow);\n\tprivate _windowRef: ComponentRef<NgbTooltipWindow> | null = null;\n\tprivate _unregisterListenersFn;\n\tprivate _positioning = ngbPositioning();\n\tprivate _afterRenderRef: AfterRenderRef | undefined;\n\n\tprivate _mouseEnterTooltip = new Subject<void>();\n\tprivate _mouseLeaveTooltip = new Subject<void>();\n\n\tprivate _opening = true;\n\tprivate _transitioning = false;\n\n\t/**\n\t * The string content or a `TemplateRef` for the content to be displayed in the tooltip.\n\t *\n\t * If the content if falsy, the tooltip won't open.\n\t */\n\t@Input()\n\tset ngbTooltip(value: string | TemplateRef<any> | null | undefined) {\n\t\tthis._ngbTooltip = value;\n\t\tif (!value && this._windowRef) {\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\tget ngbTooltip() {\n\t\treturn this._ngbTooltip;\n\t}\n\n\t/**\n\t * Opens the tooltip.\n\t *\n\t * This is considered to be a \"manual\" triggering.\n\t * The `context` is an optional value to be injected into the tooltip template when it is created.\n\t */\n\topen(context?: any) {\n\t\tif (!this._opening && this._transitioning) {\n\t\t\tthis._transitioning = false;\n\t\t\tngbCompleteTransition(this._windowRef!.location.nativeElement);\n\t\t}\n\t\tif (!this._windowRef && this._ngbTooltip && !this.disableTooltip) {\n\t\t\tconst { windowRef, transition$ } = this._popupService.open(\n\t\t\t\tthis._ngbTooltip,\n\t\t\t\tcontext ?? this.tooltipContext,\n\t\t\t\tthis.animation,\n\t\t\t);\n\t\t\tthis._opening = true;\n\t\t\tthis._transitioning = true;\n\t\t\tthis._windowRef = windowRef;\n\t\t\tthis._windowRef.setInput('animation', this.animation);\n\t\t\tthis._windowRef.setInput('tooltipClass', this.tooltipClass);\n\t\t\tthis._windowRef.setInput('id', this._ngbTooltipWindowId);\n\t\t\tthis._windowRef.setInput('onMouseEnter', () => this._mouseEnterTooltip.next());\n\t\t\tthis._windowRef.setInput('onMouseLeave', () => this._mouseLeaveTooltip.next());\n\n\t\t\tthis._getPositionTargetElement().setAttribute('aria-describedby', this._ngbTooltipWindowId);\n\n\t\t\tif (this.container === 'body') {\n\t\t\t\tthis._document.body.appendChild(this._windowRef.location.nativeElement);\n\t\t\t}\n\n\t\t\t// We need to detect changes, because we don't know where .open() might be called from.\n\t\t\t// Ex. opening tooltip from one of lifecycle hooks that run after the CD\n\t\t\t// (say from ngAfterViewInit) will result in 'ExpressionHasChanged' exception\n\t\t\tthis._windowRef.changeDetectorRef.detectChanges();\n\n\t\t\t// We need to mark for check, because tooltip won't work inside the OnPush component.\n\t\t\t// Ex. when we use expression like `{{ tooltip.isOpen() : 'opened' : 'closed' }}`\n\t\t\t// inside the template of an OnPush component and we change the tooltip from\n\t\t\t// open -> closed, the expression in question won't be updated unless we explicitly\n\t\t\t// mark the parent component to be checked.\n\t\t\tthis._windowRef.changeDetectorRef.markForCheck();\n\n\t\t\t// Setting up popper and scheduling updates when zone is stable\n\t\t\tthis._ngZone.runOutsideAngular(() => {\n\t\t\t\tthis._positioning.createPopper({\n\t\t\t\t\thostElement: this._getPositionTargetElement(),\n\t\t\t\t\ttargetElement: this._windowRef!.location.nativeElement,\n\t\t\t\t\tplacement: this.placement,\n\t\t\t\t\tbaseClass: 'bs-tooltip',\n\t\t\t\t\tupdatePopperOptions: (options) => this.popperOptions(addPopperOffset([0, 6])(options)),\n\t\t\t\t});\n\n\t\t\t\tPromise.resolve().then(() => {\n\t\t\t\t\t// This update is required for correct arrow placement\n\t\t\t\t\tthis._positioning.update();\n\t\t\t\t});\n\t\t\t\tthis._afterRenderRef = afterEveryRender(\n\t\t\t\t\t{\n\t\t\t\t\t\tmixedReadWrite: () => {\n\t\t\t\t\t\t\tthis._positioning.update();\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{ injector: this._injector },\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tngbAutoClose(\n\t\t\t\tthis._ngZone,\n\t\t\t\tthis._document,\n\t\t\t\tthis.autoClose,\n\t\t\t\t() => this.close(),\n\t\t\t\tthis.hidden,\n\t\t\t\t[this._windowRef.location.nativeElement],\n\t\t\t\t[this._nativeElement],\n\t\t\t);\n\n\t\t\ttransition$.subscribe(() => {\n\t\t\t\tif (this._transitioning) {\n\t\t\t\t\tthis._transitioning = false;\n\t\t\t\t\tthis.shown.emit();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Closes the tooltip.\n\t *\n\t * This is considered to be a \"manual\" triggering of the tooltip.\n\t */\n\tclose(animation = this.animation): void {\n\t\tif (this._opening && this._transitioning) {\n\t\t\tthis._transitioning = false;\n\t\t\tngbCompleteTransition(this._windowRef!.location.nativeElement);\n\t\t}\n\t\tif (this._windowRef != null) {\n\t\t\tthis._getPositionTargetElement().removeAttribute('aria-describedby');\n\t\t\tthis._opening = false;\n\t\t\tthis._transitioning = true;\n\t\t\tthis._popupService.close(animation).subscribe(() => {\n\t\t\t\tthis._windowRef = null;\n\t\t\t\tthis._positioning.destroy();\n\t\t\t\tthis._afterRenderRef?.destroy();\n\t\t\t\tif (this._transitioning) {\n\t\t\t\t\tthis._transitioning = false;\n\t\t\t\t\tthis.hidden.emit();\n\t\t\t\t}\n\t\t\t\tthis._changeDetector.markForCheck();\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Toggles the tooltip.\n\t *\n\t * This is considered to be a \"manual\" triggering of the tooltip.\n\t */\n\ttoggle(): void {\n\t\tif (this._windowRef) {\n\t\t\tthis.close();\n\t\t} else {\n\t\t\tthis.open();\n\t\t}\n\t}\n\n\t/**\n\t * Returns `true`, if the tooltip is currently shown.\n\t */\n\tisOpen(): boolean {\n\t\treturn this._windowRef != null;\n\t}\n\n\tngOnInit() {\n\t\tthis._unregisterListenersFn = listenToTriggers(\n\t\t\tthis._nativeElement,\n\t\t\tthis.triggers,\n\t\t\tthis.isOpen.bind(this),\n\t\t\tthis.open.bind(this),\n\t\t\tthis.close.bind(this),\n\t\t\t+this.openDelay,\n\t\t\t+this.closeDelay,\n\t\t\tthis._mouseEnterTooltip,\n\t\t\tthis._mouseLeaveTooltip,\n\t\t);\n\t}\n\n\tngOnChanges({ tooltipClass }: SimpleChanges) {\n\t\tif (tooltipClass && this.isOpen()) {\n\t\t\tthis._windowRef!.setInput('tooltipClass', tooltipClass.currentValue);\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tthis.close(false);\n\t\t// This check is necessary because it's possible that ngOnDestroy could be invoked before ngOnInit.\n\t\t// under certain conditions, see: https://github.com/ng-bootstrap/ng-bootstrap/issues/2199\n\t\tthis._unregisterListenersFn?.();\n\t}\n\n\tprivate _getPositionTargetElement(): HTMLElement {\n\t\treturn (\n\t\t\t(isString(this.positionTarget) ? this._document.querySelector(this.positionTarget) : this.positionTarget) ||\n\t\t\tthis._nativeElement\n\t\t);\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { NgbTooltip } from './tooltip';\n\nexport { NgbTooltipConfig } from './tooltip-config';\nexport { NgbTooltip } from './tooltip';\nexport { Placement } from './_ngb-ngbootstrap-utilities.mjs';\n\n@NgModule({\n\timports: [NgbTooltip],\n\texports: [NgbTooltip],\n})\nexport class NgbTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}