UNPKG

@ng-bootstrap/ng-bootstrap

Version:
1 lines 24.5 kB
{"version":3,"file":"ng-bootstrap-ng-bootstrap-popover.mjs","sources":["../../../src/popover/popover-config.ts","../../../src/popover/popover.ts","../../../src/popover/popover.module.ts","../../../src/popover/ng-bootstrap-ng-bootstrap-popover.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 [`NgbPopover`](#/components/popover/api#NgbPopover) 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 popovers used in the application.\n */\n@Injectable({ providedIn: 'root' })\nexport class NgbPopoverConfig {\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 = 'click';\n\tcontainer: string;\n\tdisablePopover = false;\n\tpopoverClass: 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';\nimport { NgTemplateOutlet } from '@angular/common';\n\nimport {\n\tisString,\n\tlistenToTriggers,\n\tngbAutoClose,\n\tngbPositioning,\n\tPopupService,\n\taddPopperOffset,\n\tngbCompleteTransition,\n} from './_ngb-ngbootstrap-utilities.mjs';\n\nimport { NgbPopoverConfig } from './popover-config';\n\nimport { Subject } from 'rxjs';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'ngb-popover-window',\n\timports: [NgTemplateOutlet],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\t'[class]': '\"popover\" + (popoverClass ? \" \" + popoverClass : \"\")',\n\t\t'[class.fade]': 'animation',\n\t\trole: 'tooltip',\n\t\t'[id]': 'id',\n\t\tstyle: 'position: absolute;',\n\t\t'(mouseenter)': 'onMouseEnter()',\n\t\t'(mouseleave)': 'onMouseLeave()',\n\t},\n\ttemplate: `\n\t\t<div class=\"popover-arrow\" data-popper-arrow></div>\n\t\t@if (title) {\n\t\t\t<h3 class=\"popover-header\">\n\t\t\t\t<ng-template #simpleTitle>{{ title }}</ng-template>\n\t\t\t\t<ng-template\n\t\t\t\t\t[ngTemplateOutlet]=\"isTitleTemplate() ? $any(title) : simpleTitle\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"context\"\n\t\t\t\t/>\n\t\t\t</h3>\n\t\t}\n\t\t<div class=\"popover-body\">\n\t\t\t<ng-content />\n\t\t</div>\n\t`,\n})\nexport class NgbPopoverWindow {\n\t@Input() animation: boolean;\n\t@Input() title: string | TemplateRef<any> | null | undefined;\n\t@Input() id: string;\n\t@Input() popoverClass: string;\n\t@Input() context: any;\n\t@Input() onMouseEnter: () => void;\n\t@Input() onMouseLeave: () => void;\n\n\tisTitleTemplate() {\n\t\treturn this.title instanceof TemplateRef;\n\t}\n}\n\n/**\n * A lightweight and extensible directive for fancy popover creation.\n */\n@Directive({ selector: '[ngbPopover]', exportAs: 'ngbPopover' })\nexport class NgbPopover implements OnInit, OnDestroy, OnChanges {\n\tstatic ngAcceptInputType_autoClose: boolean | string;\n\n\tprivate _config = inject(NgbPopoverConfig);\n\n\t/**\n\t * If `true`, popover 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 popover 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 string content or a `TemplateRef` for the content to be displayed in the popover.\n\t *\n\t * If the title and the content are falsy, the popover won't open.\n\t */\n\t@Input() ngbPopover: string | TemplateRef<any> | null | undefined;\n\n\t/**\n\t * The title of the popover.\n\t *\n\t * If the title and the content are falsy, the popover won't open.\n\t */\n\t@Input() popoverTitle: string | TemplateRef<any> | null | undefined;\n\n\t/**\n\t * The preferred placement of the popover, 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 popover.\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/popover/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 popover should be positioned against.\n\t * By default, the element `ngbPopover` 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 popover 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`, popover is disabled and won't be displayed.\n\t *\n\t * @since 1.1.0\n\t */\n\t@Input() disablePopover = this._config.disablePopover;\n\n\t/**\n\t * An optional class applied to the popover window element.\n\t *\n\t * @since 2.2.0\n\t */\n\t@Input() popoverClass = this._config.popoverClass;\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() popoverContext: 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 popover opening animation has finished. Contains no payload.\n\t */\n\t@Output() shown = new EventEmitter<void>();\n\n\t/**\n\t * An event emitted when the popover closing animation has finished. Contains no payload.\n\t *\n\t * At this point popover is not in the DOM anymore.\n\t */\n\t@Output() hidden = new EventEmitter<void>();\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 _ngbPopoverWindowId = `ngb-popover-${nextId++}`;\n\tprivate _popupService = new PopupService(NgbPopoverWindow);\n\tprivate _windowRef: ComponentRef<NgbPopoverWindow> | null = null;\n\tprivate _unregisterListenersFn;\n\tprivate _positioning = ngbPositioning();\n\tprivate _afterRenderRef: AfterRenderRef;\n\n\tprivate _mouseEnterPopover = new Subject<void>();\n\tprivate _mouseLeavePopover = new Subject<void>();\n\n\tprivate _opening = true;\n\tprivate _transitioning = false;\n\n\t/**\n\t * Opens the popover.\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 popover 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._isDisabled()) {\n\t\t\t// this type assertion is safe because otherwise _isDisabled would return true\n\t\t\tconst { windowRef, transition$ } = this._popupService.open(\n\t\t\t\tthis.ngbPopover as string | TemplateRef<any>,\n\t\t\t\tcontext ?? this.popoverContext,\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('title', this.popoverTitle);\n\t\t\tthis._windowRef.setInput('context', context ?? this.popoverContext);\n\t\t\tthis._windowRef.setInput('popoverClass', this.popoverClass);\n\t\t\tthis._windowRef.setInput('id', this._ngbPopoverWindowId);\n\t\t\tthis._windowRef.setInput('onMouseEnter', () => this._mouseEnterPopover.next());\n\t\t\tthis._windowRef.setInput('onMouseLeave', () => this._mouseLeavePopover.next());\n\n\t\t\tthis._getPositionTargetElement().setAttribute('aria-describedby', this._ngbPopoverWindowId);\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 popover 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 popover won't work inside the OnPush component.\n\t\t\t// Ex. when we use expression like `{{ popover.isOpen() : 'opened' : 'closed' }}`\n\t\t\t// inside the template of an OnPush component and we change the popover 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-popover',\n\t\t\t\t\tupdatePopperOptions: (options) => this.popperOptions(addPopperOffset([0, 8])(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(this._ngZone, this._document, this.autoClose, () => this.close(), this.hidden, [\n\t\t\t\tthis._windowRef.location.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 popover.\n\t *\n\t * This is considered to be a \"manual\" triggering of the popover.\n\t */\n\tclose(animation = this.animation) {\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) {\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 popover.\n\t *\n\t * This is considered to be a \"manual\" triggering of the popover.\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 popover 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._mouseEnterPopover,\n\t\t\tthis._mouseLeavePopover,\n\t\t);\n\t}\n\n\tngOnChanges({ ngbPopover, popoverTitle, disablePopover, popoverClass }: SimpleChanges) {\n\t\tif (popoverClass && this.isOpen()) {\n\t\t\tthis._windowRef!.setInput('popoverClass', popoverClass.currentValue);\n\t\t}\n\t\t// close popover if title and content become empty, or disablePopover set to true\n\t\tif ((ngbPopover || popoverTitle || disablePopover) && this._isDisabled()) {\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tthis.close(false);\n\t\t// This check is needed as it might happen that ngOnDestroy is called 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 _isDisabled(): boolean {\n\t\treturn this.disablePopover ? true : !this.ngbPopover && !this.popoverTitle;\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 { NgbPopover } from './popover';\n\nexport { NgbPopover } from './popover';\nexport { NgbPopoverConfig } from './popover-config';\nexport { Placement } from './_ngb-ngbootstrap-utilities.mjs';\n\n@NgModule({\n\timports: [NgbPopover],\n\texports: [NgbPopover],\n})\nexport class NgbPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}