nw-style-guide 21.2.2-beta.0 → 21.2.3-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -122,6 +122,7 @@ class TooltipDirective {
|
|
|
122
122
|
this.nwShown = new EventEmitter();
|
|
123
123
|
this.nwHidden = new EventEmitter();
|
|
124
124
|
this.nwClose = new EventEmitter();
|
|
125
|
+
this._overlayRef = null;
|
|
125
126
|
this._destroyed$ = new Subject();
|
|
126
127
|
this._tooltipArrowSize = 5;
|
|
127
128
|
this._manualToggleEvent$ = new Subject();
|
|
@@ -130,19 +131,19 @@ class TooltipDirective {
|
|
|
130
131
|
* A subject that emits when the TooltipContainerComponent is destroyed
|
|
131
132
|
*/
|
|
132
133
|
this._tooltipContainerDestroyed$ = new Subject();
|
|
134
|
+
this._outsideClick$ = new Subject();
|
|
133
135
|
}
|
|
134
136
|
ngOnInit() {
|
|
135
137
|
this._setInputDefaults();
|
|
136
|
-
this._createOverlay();
|
|
137
138
|
this._subscribeToEvents();
|
|
138
139
|
if (this.isOpen) {
|
|
139
140
|
this._manualToggleEvent$.next(this.isOpen);
|
|
140
141
|
}
|
|
141
142
|
if (this.updatePositionOnAnimationFrame) {
|
|
142
143
|
interval(0, animationFrameScheduler)
|
|
143
|
-
.pipe(filter(_ => this.updatePositionOnAnimationFrame && this._overlayRef
|
|
144
|
+
.pipe(filter(_ => this.updatePositionOnAnimationFrame && this._overlayRef?.hasAttached()), takeUntil(this._destroyed$))
|
|
144
145
|
.subscribe(() => {
|
|
145
|
-
this._overlayRef
|
|
146
|
+
this._overlayRef?.updatePosition();
|
|
146
147
|
});
|
|
147
148
|
}
|
|
148
149
|
}
|
|
@@ -150,10 +151,10 @@ class TooltipDirective {
|
|
|
150
151
|
const shouldUpdatePositionStrategy = ['placement', 'withArrow', 'autoFlip'].some(inputProp => c[inputProp]?.previousValue !== c[inputProp]?.currentValue && !c[inputProp]?.firstChange);
|
|
151
152
|
const isOpenChange = c.isOpen?.previousValue !== c.isOpen?.currentValue && !c.isOpen.firstChange;
|
|
152
153
|
const shouldUpdateScrollStrategy = c.closeOnScroll?.previousValue !== c.closeOnScroll?.currentValue && !c.closeOnScroll.firstChange;
|
|
153
|
-
if (shouldUpdatePositionStrategy) {
|
|
154
|
+
if (shouldUpdatePositionStrategy && this._overlayRef) {
|
|
154
155
|
this._updatePositionStrategy(this.placement);
|
|
155
156
|
}
|
|
156
|
-
if (shouldUpdateScrollStrategy) {
|
|
157
|
+
if (shouldUpdateScrollStrategy && this._overlayRef) {
|
|
157
158
|
this._updateScrollStrategy(this.closeOnScroll);
|
|
158
159
|
}
|
|
159
160
|
if (isOpenChange) {
|
|
@@ -176,7 +177,7 @@ class TooltipDirective {
|
|
|
176
177
|
* Can be called manually from the exported directive to toggle the tooltip
|
|
177
178
|
*/
|
|
178
179
|
toggle() {
|
|
179
|
-
const isOpen = this._overlayRef
|
|
180
|
+
const isOpen = this._overlayRef?.hasAttached();
|
|
180
181
|
this._manualToggleEvent$.next(!isOpen);
|
|
181
182
|
}
|
|
182
183
|
/**
|
|
@@ -213,6 +214,18 @@ class TooltipDirective {
|
|
|
213
214
|
return this.tooltip || this.popover;
|
|
214
215
|
}
|
|
215
216
|
_open() {
|
|
217
|
+
if (!this._overlayRef) {
|
|
218
|
+
/**
|
|
219
|
+
* Create the overlay the first time the tooltip is opened
|
|
220
|
+
*/
|
|
221
|
+
this._createOverlay();
|
|
222
|
+
if (this.closeOnOutsideClick) {
|
|
223
|
+
this._overlayRef
|
|
224
|
+
.outsidePointerEvents()
|
|
225
|
+
.pipe(filter(_ => this._overlayRef?.hasAttached()), filter(event => event.target !== this._elRef.nativeElement), map(_ => false), takeUntil(this._destroyed$))
|
|
226
|
+
.subscribe(v => this._outsideClick$.next(v));
|
|
227
|
+
}
|
|
228
|
+
}
|
|
216
229
|
if (!this._overlayRef.hasAttached()) {
|
|
217
230
|
const portal = new ComponentPortal(TooltipContainerComponent, this._vcRef, this._createInjector());
|
|
218
231
|
const ref = this._overlayRef.attach(portal);
|
|
@@ -221,7 +234,7 @@ class TooltipDirective {
|
|
|
221
234
|
}
|
|
222
235
|
}
|
|
223
236
|
_close() {
|
|
224
|
-
if (this._overlayRef
|
|
237
|
+
if (this._overlayRef?.hasAttached()) {
|
|
225
238
|
this._overlayRef.detach();
|
|
226
239
|
this.nwHidden.emit();
|
|
227
240
|
}
|
|
@@ -259,15 +272,13 @@ class TooltipDirective {
|
|
|
259
272
|
}
|
|
260
273
|
_subscribeToEvents() {
|
|
261
274
|
const openEvents$ = this.openEvents.map(eventName => {
|
|
262
|
-
return fromEvent(this._elRef.nativeElement, eventName).pipe(filter(_ => !this._overlayRef
|
|
275
|
+
return fromEvent(this._elRef.nativeElement, eventName).pipe(filter(_ => !this._overlayRef?.hasAttached()), map(_ => true));
|
|
263
276
|
});
|
|
264
277
|
const closeEvents$ = this.closeEvents.map(eventName => {
|
|
265
|
-
return fromEvent(this._elRef.nativeElement, eventName).pipe(tap(_ => this._cancelDelayedOpen$.next()), filter(_ => this._overlayRef
|
|
278
|
+
return fromEvent(this._elRef.nativeElement, eventName).pipe(tap(_ => this._cancelDelayedOpen$.next()), filter(_ => this._overlayRef?.hasAttached()), map(_ => false));
|
|
266
279
|
});
|
|
267
280
|
const outsideClick$ = this.closeOnOutsideClick
|
|
268
|
-
? this.
|
|
269
|
-
// The element that this tooltip is attached to should not be included as an outside click
|
|
270
|
-
filter(event => event.target !== this._elRef.nativeElement), map(_ => false))
|
|
281
|
+
? this._outsideClick$.asObservable()
|
|
271
282
|
: EMPTY;
|
|
272
283
|
/**
|
|
273
284
|
* Merge all open and close events into a single stream that emits a boolean that indicates whether
|
|
@@ -422,7 +433,7 @@ class TooltipDirective {
|
|
|
422
433
|
this.hide();
|
|
423
434
|
this._destroyed$.next();
|
|
424
435
|
this._destroyed$.complete();
|
|
425
|
-
this._overlayRef
|
|
436
|
+
this._overlayRef?.dispose();
|
|
426
437
|
}
|
|
427
438
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: TooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
428
439
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: TooltipDirective, isStandalone: true, selector: "[nwTooltip],[nwPopover]", inputs: { tooltip: ["nwTooltip", "tooltip"], popover: ["nwPopover", "popover"], context: "context", placement: "placement", isOpen: "isOpen", isDisabled: "isDisabled", delay: "delay", autoFlip: "autoFlip", openEvents: "openEvents", closeEvents: "closeEvents", containerClass: "containerClass", withArrow: "withArrow", withClose: "withClose", closeOnScroll: "closeOnScroll", closeOnOutsideClick: "closeOnOutsideClick", updatePositionOnAnimationFrame: "updatePositionOnAnimationFrame", connectedTo: "connectedTo", pointerEvents: "pointerEvents", breakpoint: "breakpoint", hostElementZIndex: "hostElementZIndex" }, outputs: { nwShown: "nwShown", nwHidden: "nwHidden", nwClose: "nwClose" }, exportAs: ["nw-tooltip", "nw-popover"], usesOnChanges: true, ngImport: i0 }); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nw-style-guide-tooltips.mjs","sources":["../../../projects/nw-style-guide/tooltips/config/tooltip-context-token.ts","../../../projects/nw-style-guide/tooltips/tooltip-container.component.ts","../../../projects/nw-style-guide/tooltips/config/placement-flip-map.ts","../../../projects/nw-style-guide/tooltips/tooltip.directive.ts","../../../projects/nw-style-guide/tooltips/nw-style-guide-tooltips.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { ITooltipData } from '../models/ITooltipData';\n\nexport const TOOLTIP_CONTEXT_TOKEN = new InjectionToken<ITooltipData>('tooltip-context');\n","import { Component, ChangeDetectionStrategy, TemplateRef, EventEmitter, inject } from '@angular/core';\nimport { ITooltipData } from './models/ITooltipData';\nimport { TOOLTIP_CONTEXT_TOKEN } from './config/tooltip-context-token';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector: 'nw-tooltip-container',\n template: `\n <div\n class=\"tooltip\"\n [ngClass]=\"data.containerClass\">\n @if (data.withArrow) {\n <div class=\"tooltip-arrow\"></div>\n }\n <div class=\"tooltip-inner\">\n @if (data.withClose) {\n <button\n (click)=\"close.emit()\"\n class=\"btn btn-ghost-alt btn-sm btn-close close-button\"></button>\n }\n @if (isTemplateRef) {\n <ng-container *ngTemplateOutlet=\"data.tooltip; context: data.templateRefContext\"></ng-container>\n } @else {\n <div [outerHTML]=\"data.tooltip\"></div>\n }\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass, NgTemplateOutlet]\n})\nexport class TooltipContainerComponent {\n data = inject<ITooltipData>(TOOLTIP_CONTEXT_TOKEN);\n\n public close: EventEmitter<void> = new EventEmitter();\n public isTemplateRef: boolean = false;\n\n constructor() {\n const data = this.data;\n\n this.isTemplateRef = data.tooltip instanceof TemplateRef;\n }\n}\n","import { PlacementFlipMap } from '../models/PlacementFlipMap.type';\n\nexport const placementFlipMap: PlacementFlipMap = {\n top: 'bottom',\n 'top-start': 'bottom-start',\n 'top-end': 'bottom-end',\n bottom: 'top',\n 'bottom-start': 'top-start',\n 'bottom-end': 'top-end',\n right: 'left',\n 'right-start': 'left-start',\n 'right-end': 'left-end',\n left: 'right',\n 'left-start': 'right-start',\n 'left-end': 'right-end'\n};\n","import {\n CloseScrollStrategy,\n ConnectionPositionPair,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayRef,\n RepositionScrollStrategy\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n Directive,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewContainerRef,\n inject\n} from '@angular/core';\nimport { Placement } from './models/Placement.type';\nimport { Subject, fromEvent, merge, EMPTY, of, Observable, animationFrameScheduler, timer, interval } from 'rxjs';\nimport { takeUntil, filter, tap, map, debounce, switchMap, delay } from 'rxjs/operators';\nimport { TOOLTIP_CONTEXT_TOKEN } from './config/tooltip-context-token';\nimport { TooltipContainerComponent } from './tooltip-container.component';\nimport { ITooltipData } from './models/ITooltipData';\nimport { placementFlipMap } from './config/placement-flip-map';\n\n@Directive({\n selector: '[nwTooltip],[nwPopover]',\n exportAs: 'nw-tooltip,nw-popover'\n})\nexport class TooltipDirective implements OnInit, OnChanges, OnDestroy {\n private _elRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _overlay = inject(Overlay);\n private _vcRef = inject(ViewContainerRef);\n private _injector = inject(Injector);\n\n /**\n * This directive can be invoked by using the `nwTooltip` or `nwPopover` attributes. The only differences between using these\n * attributes are the default values of certain properties, e.g. `delay` and open and close events\n */\n @Input('nwTooltip') tooltip: string | TemplateRef<any>;\n @Input('nwPopover') popover: string | TemplateRef<any>;\n /**\n * An object that can be passed when the `nwTooltip` or `nwPopover` input is a `TemplateRef`\n * ref: https://angular.io/api/core/ng-template#context\n */\n @Input() context: any;\n /**\n * One or more preferred placement options\n */\n @Input() placement: Placement | Placement[];\n /**\n * Manually control the opening and closing of the tooltip\n */\n @Input() isOpen: boolean;\n /**\n * When true, the tooltip will not not respond to any open or close events. Nor will it\n * respond to changes to the `isOpen` input\n */\n @Input() isDisabled: boolean = false;\n /**\n * Number of ms to wait before opening\n */\n @Input() delay: number;\n /**\n * Change the placement of the tooltip to its opposite position when it moves outside the viewport\n */\n @Input() autoFlip: boolean = true;\n /**\n * A list of events that open the tooltip\n */\n @Input() openEvents: string[];\n /**\n * A list of events that close the tooltip\n */\n @Input() closeEvents: string[];\n /**\n * A class to apply to the tooltip container\n */\n @Input() containerClass: string;\n /**\n * Display an arrow or not. The location of the arrow is dependant on the current `placement`\n */\n @Input() withArrow: boolean = true;\n /**\n * Display a close button or not\n */\n @Input() withClose: boolean = false;\n @Input() closeOnScroll: boolean;\n @Input() closeOnOutsideClick: boolean = false;\n /**\n * WARNING: Use with caution - there are potential performance issues with this\n *\n * Update the position of the tooltip before the next browser repaint. An example of where this may be required is if\n * the tooltip is attached (and open) to an element that transitions or animates to a new position\n */\n @Input() updatePositionOnAnimationFrame: boolean = false;\n /**\n * In the case where the tooltip should not be attached to the host element, a reference to another element can be used\n */\n @Input() connectedTo: ElementRef<HTMLElement> | Element;\n /**\n * Determines whether pointer events are enabled on the cdk-overlay-pane element\n */\n @Input() pointerEvents: 'auto' | 'none';\n /**\n * The screen size at which the tooltip should treated as a popover as there is no hover events on mobile\n */\n @Input() breakpoint: number = 767;\n @Input() hostElementZIndex: number;\n\n @Output() nwShown: EventEmitter<null> = new EventEmitter();\n @Output() nwHidden: EventEmitter<null> = new EventEmitter();\n @Output() nwClose: EventEmitter<null> = new EventEmitter();\n\n private _overlayRef: OverlayRef;\n private _destroyed$: Subject<void> = new Subject();\n private _tooltipArrowSize: number = 5;\n private _manualToggleEvent$: Subject<boolean> = new Subject();\n private _cancelDelayedOpen$: Subject<void> = new Subject();\n /**\n * A subject that emits when the TooltipContainerComponent is destroyed\n */\n private _tooltipContainerDestroyed$: Subject<void> = new Subject();\n\n ngOnInit() {\n this._setInputDefaults();\n this._createOverlay();\n this._subscribeToEvents();\n\n if (this.isOpen) {\n this._manualToggleEvent$.next(this.isOpen);\n }\n\n if (this.updatePositionOnAnimationFrame) {\n interval(0, animationFrameScheduler)\n .pipe(\n filter(_ => this.updatePositionOnAnimationFrame && this._overlayRef.hasAttached()),\n takeUntil(this._destroyed$)\n )\n .subscribe(() => {\n this._overlayRef.updatePosition();\n });\n }\n }\n\n ngOnChanges(c: SimpleChanges): void {\n const shouldUpdatePositionStrategy = ['placement', 'withArrow', 'autoFlip'].some(\n inputProp => c[inputProp]?.previousValue !== c[inputProp]?.currentValue && !c[inputProp]?.firstChange\n );\n const isOpenChange: boolean = c.isOpen?.previousValue !== c.isOpen?.currentValue && !c.isOpen.firstChange;\n const shouldUpdateScrollStrategy: boolean =\n c.closeOnScroll?.previousValue !== c.closeOnScroll?.currentValue && !c.closeOnScroll.firstChange;\n\n if (shouldUpdatePositionStrategy) {\n this._updatePositionStrategy(this.placement);\n }\n\n if (shouldUpdateScrollStrategy) {\n this._updateScrollStrategy(this.closeOnScroll);\n }\n\n if (isOpenChange) {\n this._manualToggleEvent$.next(this.isOpen);\n }\n }\n\n /**\n * Can be called manually from the exported directive to open the tooltip\n */\n show(): void {\n this._manualToggleEvent$.next(true);\n }\n\n /**\n * Can be called manually from the exported directive to close the tooltip\n */\n hide(): void {\n this._manualToggleEvent$.next(false);\n }\n\n /**\n * Can be called manually from the exported directive to toggle the tooltip\n */\n toggle(): void {\n const isOpen = this._overlayRef.hasAttached();\n this._manualToggleEvent$.next(!isOpen);\n }\n\n /**\n * Based on the selector used, choose different default if inputs are not defined\n */\n private _setInputDefaults(): void {\n const getDefaultValue = <T>(currVal: T, defaultVal: T): T => {\n return currVal ?? defaultVal;\n };\n const isMobileScreenSize = window.innerWidth < this.breakpoint;\n\n /**\n * Check for undefined and null, not empty strings. This prevents errors when an empty\n * string is passed in the popover or tooltip input\n */\n if ((this.popover !== undefined && this.popover !== null) || isMobileScreenSize) {\n this.delay = getDefaultValue(this.delay, 0);\n this.openEvents = getDefaultValue(this.openEvents, ['click']);\n this.closeEvents = getDefaultValue(this.closeEvents, ['click']);\n this.closeOnScroll = getDefaultValue(this.closeOnScroll, false);\n this.pointerEvents = getDefaultValue(this.pointerEvents, 'auto');\n if (isMobileScreenSize) {\n this.closeOnOutsideClick = true;\n }\n } else {\n this.delay = getDefaultValue(this.delay, 500);\n this.openEvents = getDefaultValue(this.openEvents, ['mouseenter']);\n this.closeEvents = getDefaultValue(this.closeEvents, ['click', 'mouseleave']);\n this.closeOnScroll = getDefaultValue(this.closeOnScroll, true);\n this.pointerEvents = getDefaultValue(this.pointerEvents, 'none');\n }\n }\n\n private _getTooltipContent(): string | TemplateRef<any> {\n return this.tooltip || this.popover;\n }\n\n private _open(): ComponentRef<TooltipContainerComponent> {\n if (!this._overlayRef.hasAttached()) {\n const portal = new ComponentPortal(TooltipContainerComponent, this._vcRef, this._createInjector());\n const ref = this._overlayRef.attach(portal);\n this.nwShown.emit();\n return ref;\n }\n }\n\n private _close(): void {\n if (this._overlayRef.hasAttached()) {\n this._overlayRef.detach();\n this.nwHidden.emit();\n }\n }\n\n private _createOverlay() {\n const positionStrategy = this._getPositionStrategy(this.placement);\n const scrollStrategy = this._getScrollStrategy(this.closeOnScroll);\n const disposeOnNavigation = true;\n const panelClasses: string[] = ['tooltip-overlay', `pointer-events-${this.pointerEvents}`];\n this._overlayRef = this._overlay.create({\n positionStrategy,\n scrollStrategy,\n disposeOnNavigation,\n panelClass: panelClasses\n });\n\n if (this.hostElementZIndex) {\n this._overlayRef.hostElement.style.zIndex = this.hostElementZIndex.toString();\n }\n }\n\n /**\n * Create and return a custom injector that provides the tooltip text as an injectable dependency\n */\n private _createInjector(): Injector {\n const tooltipData: ITooltipData = {\n tooltip: this._getTooltipContent(),\n containerClass: this.containerClass,\n withArrow: this.withArrow,\n withClose: this.withClose,\n templateRefContext: this.context\n };\n\n return Injector.create({\n parent: this._injector,\n providers: [{ provide: TOOLTIP_CONTEXT_TOKEN, useValue: tooltipData }]\n });\n }\n\n private _subscribeToEvents() {\n const openEvents$: Observable<boolean>[] = this.openEvents.map(eventName => {\n return fromEvent(this._elRef.nativeElement, eventName).pipe(\n filter(_ => !this._overlayRef.hasAttached()),\n map(_ => true)\n );\n });\n\n const closeEvents$: Observable<boolean>[] = this.closeEvents.map(eventName => {\n return fromEvent(this._elRef.nativeElement, eventName).pipe(\n tap(_ => this._cancelDelayedOpen$.next()),\n filter(_ => this._overlayRef.hasAttached()),\n map(_ => false)\n );\n });\n\n const outsideClick$: Observable<boolean> = this.closeOnOutsideClick\n ? this._overlayRef.outsidePointerEvents().pipe(\n filter(_ => this._overlayRef.hasAttached()),\n // The element that this tooltip is attached to should not be included as an outside click\n filter(event => event.target !== this._elRef.nativeElement),\n map(_ => false)\n )\n : EMPTY;\n\n /**\n * Merge all open and close events into a single stream that emits a boolean that indicates whether\n * the tooltip should be opened or closed\n */\n const toggleEvents$ = merge(...openEvents$.concat(this._manualToggleEvent$, closeEvents$, outsideClick$));\n\n toggleEvents$\n .pipe(\n /**\n * This debounce prevents instantaneous opening and closing (or vice-versa) in the scenario where `openEvents` contains the\n * same event as `closeEvents`. For example, if both contain the \"click\" event, this will be fired twice in the space of a few ms\n */\n debounce(() => {\n if (this.openEvents.some(e => this.closeEvents.includes(e))) {\n return timer(5);\n }\n return of(0);\n }),\n filter(_ => !this.isDisabled),\n /**\n * If this is an open event, use the input delay. Don't apply the delay to the close event\n */\n switchMap(isOpenEvent => {\n if (isOpenEvent && this.delay) {\n return of(isOpenEvent).pipe(delay(this.delay), takeUntil(this._cancelDelayedOpen$));\n }\n return of(isOpenEvent);\n }),\n takeUntil(this._destroyed$)\n )\n .subscribe(isOpenEvent => {\n if (isOpenEvent) {\n const ref = this._open();\n\n /**\n * No ref will be returned if the overlay is already attached\n */\n if (ref) {\n ref.changeDetectorRef.detectChanges();\n ref.instance.close.pipe(takeUntil(this._tooltipContainerDestroyed$)).subscribe(_ => {\n this.nwClose.emit();\n this._close();\n });\n\n /**\n * When the TooltipContainerComponent is destroyed we fire the _tooltipContainerDestroyed$\n * so that our subscription to TooltipContainerComponent.close is unsubscribed from\n */\n ref.onDestroy(() => {\n this._tooltipContainerDestroyed$.next();\n this._tooltipContainerDestroyed$.complete();\n });\n }\n } else {\n this._close();\n }\n });\n }\n\n private _getPositionPair(placement: Placement): ConnectionPositionPair {\n // Include a 3px offset so that the tooltip is not flush with the element\n const offset = this._tooltipArrowSize + 3;\n const getXOffset = (placement: Placement) => {\n if (!this.withArrow) {\n return 0;\n }\n if (placement.startsWith('right')) {\n return offset;\n }\n if (placement.startsWith('left')) {\n return -offset;\n }\n };\n const getYOffset = (placement: Placement) => {\n if (!this.withArrow) {\n return 0;\n }\n if (placement.startsWith('top')) {\n return -offset;\n }\n if (placement.startsWith('bottom')) {\n return offset;\n }\n };\n const getPanelClass = (placement: Placement): string => `tooltip-${placement}`;\n /**\n * The default position when no placement is specified\n */\n const bottom = new ConnectionPositionPair(\n { originX: 'center', originY: 'bottom' },\n { overlayX: 'center', overlayY: 'top' },\n null,\n getYOffset('bottom'),\n getPanelClass('bottom')\n );\n\n switch (placement) {\n case 'top':\n return new ConnectionPositionPair(\n { originX: 'center', originY: 'top' },\n { overlayX: 'center', overlayY: 'bottom' },\n null,\n getYOffset(placement),\n getPanelClass(placement)\n );\n\n case 'top-start':\n return new ConnectionPositionPair(\n { originX: 'start', originY: 'top' },\n { overlayX: 'start', overlayY: 'bottom' },\n null,\n getYOffset(placement),\n getPanelClass(placement)\n );\n\n case 'top-end':\n return new ConnectionPositionPair(\n { originX: 'end', originY: 'top' },\n { overlayX: 'end', overlayY: 'bottom' },\n null,\n getYOffset(placement),\n getPanelClass(placement)\n );\n\n case 'bottom':\n return bottom;\n\n case 'bottom-start':\n return new ConnectionPositionPair(\n { originX: 'start', originY: 'bottom' },\n { overlayX: 'start', overlayY: 'top' },\n null,\n getYOffset(placement),\n getPanelClass(placement)\n );\n\n case 'bottom-end':\n return new ConnectionPositionPair(\n { originX: 'end', originY: 'bottom' },\n { overlayX: 'end', overlayY: 'top' },\n null,\n getYOffset(placement),\n getPanelClass(placement)\n );\n\n case 'right':\n return new ConnectionPositionPair(\n { originX: 'end', originY: 'center' },\n { overlayX: 'start', overlayY: 'center' },\n getXOffset(placement),\n null,\n getPanelClass(placement)\n );\n\n case 'right-start':\n return new ConnectionPositionPair(\n { originX: 'end', originY: 'top' },\n { overlayX: 'start', overlayY: 'top' },\n getXOffset(placement),\n null,\n getPanelClass(placement)\n );\n\n case 'right-end':\n return new ConnectionPositionPair(\n { originX: 'end', originY: 'bottom' },\n { overlayX: 'start', overlayY: 'bottom' },\n getXOffset(placement),\n null,\n getPanelClass(placement)\n );\n\n case 'left':\n return new ConnectionPositionPair(\n { originX: 'start', originY: 'center' },\n { overlayX: 'end', overlayY: 'center' },\n getXOffset(placement),\n null,\n getPanelClass(placement)\n );\n\n case 'left-start':\n return new ConnectionPositionPair(\n { originX: 'start', originY: 'top' },\n { overlayX: 'end', overlayY: 'top' },\n getXOffset(placement),\n null,\n getPanelClass(placement)\n );\n\n case 'left-end':\n return new ConnectionPositionPair(\n { originX: 'start', originY: 'bottom' },\n { overlayX: 'end', overlayY: 'bottom' },\n getXOffset(placement),\n null,\n getPanelClass(placement)\n );\n\n default:\n return bottom;\n }\n }\n\n private _getPositionStrategy(placement: Placement | Placement[]): FlexibleConnectedPositionStrategy {\n /**\n * Format `placement` into a consistent data type of `Placement[]`\n */\n const placementsList: Placement[] = [placement].flat();\n /**\n * Get positions from preferred placements\n */\n const primaryPositions = placementsList.map(p => this._getPositionPair(p));\n /**\n * If `autoFlip` is enabled, include the inverse position of each `placement` input. Each of this inverse positions\n * will have a lower priority than each of the preferred positions generated from the `placement` input\n */\n const positions = this.autoFlip\n ? [...primaryPositions, ...placementsList.map(p => this._getPositionPair(placementFlipMap[p]))]\n : [...primaryPositions];\n\n return this._overlay\n .position()\n .flexibleConnectedTo(this.connectedTo || this._elRef)\n .withFlexibleDimensions(false)\n .withPositions(positions)\n .withPush(false);\n }\n\n private _updatePositionStrategy(placement: Placement | Placement[]): void {\n const positionStrategy = this._getPositionStrategy(placement);\n this._overlayRef.updatePositionStrategy(positionStrategy);\n }\n\n private _getScrollStrategy(closeOnScroll: boolean): RepositionScrollStrategy | CloseScrollStrategy {\n if (closeOnScroll) {\n return this._overlay.scrollStrategies.close();\n }\n return this._overlay.scrollStrategies.reposition();\n }\n\n private _updateScrollStrategy(closeOnScroll: boolean): void {\n const scrollStrategy = this._getScrollStrategy(closeOnScroll);\n this._overlayRef.updateScrollStrategy(scrollStrategy);\n }\n\n ngOnDestroy() {\n this.hide();\n this._destroyed$.next();\n this._destroyed$.complete();\n this._overlayRef.dispose();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nw-style-guide-tooltips.mjs","sources":["../../../projects/nw-style-guide/tooltips/config/tooltip-context-token.ts","../../../projects/nw-style-guide/tooltips/tooltip-container.component.ts","../../../projects/nw-style-guide/tooltips/config/placement-flip-map.ts","../../../projects/nw-style-guide/tooltips/tooltip.directive.ts","../../../projects/nw-style-guide/tooltips/nw-style-guide-tooltips.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { ITooltipData } from '../models/ITooltipData';\n\nexport const TOOLTIP_CONTEXT_TOKEN = new InjectionToken<ITooltipData>('tooltip-context');\n","import { Component, ChangeDetectionStrategy, TemplateRef, EventEmitter, inject } from '@angular/core';\nimport { ITooltipData } from './models/ITooltipData';\nimport { TOOLTIP_CONTEXT_TOKEN } from './config/tooltip-context-token';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector: 'nw-tooltip-container',\n template: `\n <div\n class=\"tooltip\"\n [ngClass]=\"data.containerClass\">\n @if (data.withArrow) {\n <div class=\"tooltip-arrow\"></div>\n }\n <div class=\"tooltip-inner\">\n @if (data.withClose) {\n <button\n (click)=\"close.emit()\"\n class=\"btn btn-ghost-alt btn-sm btn-close close-button\"></button>\n }\n @if (isTemplateRef) {\n <ng-container *ngTemplateOutlet=\"data.tooltip; context: data.templateRefContext\"></ng-container>\n } @else {\n <div [outerHTML]=\"data.tooltip\"></div>\n }\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass, NgTemplateOutlet]\n})\nexport class TooltipContainerComponent {\n data = inject<ITooltipData>(TOOLTIP_CONTEXT_TOKEN);\n\n public close: EventEmitter<void> = new EventEmitter();\n public isTemplateRef: boolean = false;\n\n constructor() {\n const data = this.data;\n\n this.isTemplateRef = data.tooltip instanceof TemplateRef;\n }\n}\n","import { PlacementFlipMap } from '../models/PlacementFlipMap.type';\n\nexport const placementFlipMap: PlacementFlipMap = {\n top: 'bottom',\n 'top-start': 'bottom-start',\n 'top-end': 'bottom-end',\n bottom: 'top',\n 'bottom-start': 'top-start',\n 'bottom-end': 'top-end',\n right: 'left',\n 'right-start': 'left-start',\n 'right-end': 'left-end',\n left: 'right',\n 'left-start': 'right-start',\n 'left-end': 'right-end'\n};\n","import {\n CloseScrollStrategy,\n ConnectionPositionPair,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayRef,\n RepositionScrollStrategy\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n Directive,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewContainerRef,\n inject\n} from '@angular/core';\nimport { Placement } from './models/Placement.type';\nimport { Subject, fromEvent, merge, EMPTY, of, Observable, animationFrameScheduler, timer, interval } from 'rxjs';\nimport { takeUntil, filter, tap, map, debounce, switchMap, delay } from 'rxjs/operators';\nimport { TOOLTIP_CONTEXT_TOKEN } from './config/tooltip-context-token';\nimport { TooltipContainerComponent } from './tooltip-container.component';\nimport { ITooltipData } from './models/ITooltipData';\nimport { placementFlipMap } from './config/placement-flip-map';\n\n@Directive({\n selector: '[nwTooltip],[nwPopover]',\n exportAs: 'nw-tooltip,nw-popover'\n})\nexport class TooltipDirective implements OnInit, OnChanges, OnDestroy {\n private _elRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _overlay = inject(Overlay);\n private _vcRef = inject(ViewContainerRef);\n private _injector = inject(Injector);\n\n /**\n * This directive can be invoked by using the `nwTooltip` or `nwPopover` attributes. The only differences between using these\n * attributes are the default values of certain properties, e.g. `delay` and open and close events\n */\n @Input('nwTooltip') tooltip: string | TemplateRef<any>;\n @Input('nwPopover') popover: string | TemplateRef<any>;\n /**\n * An object that can be passed when the `nwTooltip` or `nwPopover` input is a `TemplateRef`\n * ref: https://angular.io/api/core/ng-template#context\n */\n @Input() context: any;\n /**\n * One or more preferred placement options\n */\n @Input() placement: Placement | Placement[];\n /**\n * Manually control the opening and closing of the tooltip\n */\n @Input() isOpen: boolean;\n /**\n * When true, the tooltip will not not respond to any open or close events. Nor will it\n * respond to changes to the `isOpen` input\n */\n @Input() isDisabled: boolean = false;\n /**\n * Number of ms to wait before opening\n */\n @Input() delay: number;\n /**\n * Change the placement of the tooltip to its opposite position when it moves outside the viewport\n */\n @Input() autoFlip: boolean = true;\n /**\n * A list of events that open the tooltip\n */\n @Input() openEvents: string[];\n /**\n * A list of events that close the tooltip\n */\n @Input() closeEvents: string[];\n /**\n * A class to apply to the tooltip container\n */\n @Input() containerClass: string;\n /**\n * Display an arrow or not. The location of the arrow is dependant on the current `placement`\n */\n @Input() withArrow: boolean = true;\n /**\n * Display a close button or not\n */\n @Input() withClose: boolean = false;\n @Input() closeOnScroll: boolean;\n @Input() closeOnOutsideClick: boolean = false;\n /**\n * WARNING: Use with caution - there are potential performance issues with this\n *\n * Update the position of the tooltip before the next browser repaint. An example of where this may be required is if\n * the tooltip is attached (and open) to an element that transitions or animates to a new position\n */\n @Input() updatePositionOnAnimationFrame: boolean = false;\n /**\n * In the case where the tooltip should not be attached to the host element, a reference to another element can be used\n */\n @Input() connectedTo: ElementRef<HTMLElement> | Element;\n /**\n * Determines whether pointer events are enabled on the cdk-overlay-pane element\n */\n @Input() pointerEvents: 'auto' | 'none';\n /**\n * The screen size at which the tooltip should treated as a popover as there is no hover events on mobile\n */\n @Input() breakpoint: number = 767;\n @Input() hostElementZIndex: number;\n\n @Output() nwShown: EventEmitter<null> = new EventEmitter();\n @Output() nwHidden: EventEmitter<null> = new EventEmitter();\n @Output() nwClose: EventEmitter<null> = new EventEmitter();\n\n private _overlayRef: OverlayRef | null = null;\n private _destroyed$: Subject<void> = new Subject();\n private _tooltipArrowSize: number = 5;\n private _manualToggleEvent$: Subject<boolean> = new Subject();\n private _cancelDelayedOpen$: Subject<void> = new Subject();\n /**\n * A subject that emits when the TooltipContainerComponent is destroyed\n */\n private _tooltipContainerDestroyed$: Subject<void> = new Subject();\n private _outsideClick$: Subject<boolean> = new Subject();\n\n ngOnInit() {\n this._setInputDefaults();\n this._subscribeToEvents();\n\n if (this.isOpen) {\n this._manualToggleEvent$.next(this.isOpen);\n }\n\n if (this.updatePositionOnAnimationFrame) {\n interval(0, animationFrameScheduler)\n .pipe(\n filter(_ => this.updatePositionOnAnimationFrame && this._overlayRef?.hasAttached()),\n takeUntil(this._destroyed$)\n )\n .subscribe(() => {\n this._overlayRef?.updatePosition();\n });\n }\n }\n\n ngOnChanges(c: SimpleChanges): void {\n const shouldUpdatePositionStrategy = ['placement', 'withArrow', 'autoFlip'].some(\n inputProp => c[inputProp]?.previousValue !== c[inputProp]?.currentValue && !c[inputProp]?.firstChange\n );\n const isOpenChange: boolean = c.isOpen?.previousValue !== c.isOpen?.currentValue && !c.isOpen.firstChange;\n const shouldUpdateScrollStrategy: boolean =\n c.closeOnScroll?.previousValue !== c.closeOnScroll?.currentValue && !c.closeOnScroll.firstChange;\n\n if (shouldUpdatePositionStrategy && this._overlayRef) {\n this._updatePositionStrategy(this.placement);\n }\n\n if (shouldUpdateScrollStrategy && this._overlayRef) {\n this._updateScrollStrategy(this.closeOnScroll);\n }\n\n if (isOpenChange) {\n this._manualToggleEvent$.next(this.isOpen);\n }\n }\n\n /**\n * Can be called manually from the exported directive to open the tooltip\n */\n show(): void {\n this._manualToggleEvent$.next(true);\n }\n\n /**\n * Can be called manually from the exported directive to close the tooltip\n */\n hide(): void {\n this._manualToggleEvent$.next(false);\n }\n\n /**\n * Can be called manually from the exported directive to toggle the tooltip\n */\n toggle(): void {\n const isOpen = this._overlayRef?.hasAttached();\n this._manualToggleEvent$.next(!isOpen);\n }\n\n /**\n * Based on the selector used, choose different default if inputs are not defined\n */\n private _setInputDefaults(): void {\n const getDefaultValue = <T>(currVal: T, defaultVal: T): T => {\n return currVal ?? defaultVal;\n };\n const isMobileScreenSize = window.innerWidth < this.breakpoint;\n\n /**\n * Check for undefined and null, not empty strings. This prevents errors when an empty\n * string is passed in the popover or tooltip input\n */\n if ((this.popover !== undefined && this.popover !== null) || isMobileScreenSize) {\n this.delay = getDefaultValue(this.delay, 0);\n this.openEvents = getDefaultValue(this.openEvents, ['click']);\n this.closeEvents = getDefaultValue(this.closeEvents, ['click']);\n this.closeOnScroll = getDefaultValue(this.closeOnScroll, false);\n this.pointerEvents = getDefaultValue(this.pointerEvents, 'auto');\n if (isMobileScreenSize) {\n this.closeOnOutsideClick = true;\n }\n } else {\n this.delay = getDefaultValue(this.delay, 500);\n this.openEvents = getDefaultValue(this.openEvents, ['mouseenter']);\n this.closeEvents = getDefaultValue(this.closeEvents, ['click', 'mouseleave']);\n this.closeOnScroll = getDefaultValue(this.closeOnScroll, true);\n this.pointerEvents = getDefaultValue(this.pointerEvents, 'none');\n }\n }\n\n private _getTooltipContent(): string | TemplateRef<any> {\n return this.tooltip || this.popover;\n }\n\n private _open(): ComponentRef<TooltipContainerComponent> {\n if (!this._overlayRef) {\n /**\n * Create the overlay the first time the tooltip is opened\n */\n this._createOverlay();\n\n if (this.closeOnOutsideClick) {\n this._overlayRef\n .outsidePointerEvents()\n .pipe(\n filter(_ => this._overlayRef?.hasAttached()),\n filter(event => event.target !== this._elRef.nativeElement),\n map(_ => false),\n takeUntil(this._destroyed$)\n )\n .subscribe(v => this._outsideClick$.next(v));\n }\n }\n\n if (!this._overlayRef.hasAttached()) {\n const portal = new ComponentPortal(TooltipContainerComponent, this._vcRef, this._createInjector());\n const ref = this._overlayRef.attach(portal);\n this.nwShown.emit();\n return ref;\n }\n }\n\n private _close(): void {\n if (this._overlayRef?.hasAttached()) {\n this._overlayRef.detach();\n this.nwHidden.emit();\n }\n }\n\n private _createOverlay() {\n const positionStrategy = this._getPositionStrategy(this.placement);\n const scrollStrategy = this._getScrollStrategy(this.closeOnScroll);\n const disposeOnNavigation = true;\n const panelClasses: string[] = ['tooltip-overlay', `pointer-events-${this.pointerEvents}`];\n this._overlayRef = this._overlay.create({\n positionStrategy,\n scrollStrategy,\n disposeOnNavigation,\n panelClass: panelClasses\n });\n\n if (this.hostElementZIndex) {\n this._overlayRef.hostElement.style.zIndex = this.hostElementZIndex.toString();\n }\n }\n\n /**\n * Create and return a custom injector that provides the tooltip text as an injectable dependency\n */\n private _createInjector(): Injector {\n const tooltipData: ITooltipData = {\n tooltip: this._getTooltipContent(),\n containerClass: this.containerClass,\n withArrow: this.withArrow,\n withClose: this.withClose,\n templateRefContext: this.context\n };\n\n return Injector.create({\n parent: this._injector,\n providers: [{ provide: TOOLTIP_CONTEXT_TOKEN, useValue: tooltipData }]\n });\n }\n\n private _subscribeToEvents() {\n const openEvents$: Observable<boolean>[] = this.openEvents.map(eventName => {\n return fromEvent(this._elRef.nativeElement, eventName).pipe(\n filter(_ => !this._overlayRef?.hasAttached()),\n map(_ => true)\n );\n });\n\n const closeEvents$: Observable<boolean>[] = this.closeEvents.map(eventName => {\n return fromEvent(this._elRef.nativeElement, eventName).pipe(\n tap(_ => this._cancelDelayedOpen$.next()),\n filter(_ => this._overlayRef?.hasAttached()),\n map(_ => false)\n );\n });\n\n const outsideClick$: Observable<boolean> = this.closeOnOutsideClick\n ? this._outsideClick$.asObservable()\n : EMPTY;\n\n /**\n * Merge all open and close events into a single stream that emits a boolean that indicates whether\n * the tooltip should be opened or closed\n */\n const toggleEvents$ = merge(...openEvents$.concat(this._manualToggleEvent$, closeEvents$, outsideClick$));\n\n toggleEvents$\n .pipe(\n /**\n * This debounce prevents instantaneous opening and closing (or vice-versa) in the scenario where `openEvents` contains the\n * same event as `closeEvents`. For example, if both contain the \"click\" event, this will be fired twice in the space of a few ms\n */\n debounce(() => {\n if (this.openEvents.some(e => this.closeEvents.includes(e))) {\n return timer(5);\n }\n return of(0);\n }),\n filter(_ => !this.isDisabled),\n /**\n * If this is an open event, use the input delay. Don't apply the delay to the close event\n */\n switchMap(isOpenEvent => {\n if (isOpenEvent && this.delay) {\n return of(isOpenEvent).pipe(delay(this.delay), takeUntil(this._cancelDelayedOpen$));\n }\n return of(isOpenEvent);\n }),\n takeUntil(this._destroyed$)\n )\n .subscribe(isOpenEvent => {\n if (isOpenEvent) {\n const ref = this._open();\n\n /**\n * No ref will be returned if the overlay is already attached\n */\n if (ref) {\n ref.changeDetectorRef.detectChanges();\n ref.instance.close.pipe(takeUntil(this._tooltipContainerDestroyed$)).subscribe(_ => {\n this.nwClose.emit();\n this._close();\n });\n\n /**\n * When the TooltipContainerComponent is destroyed we fire the _tooltipContainerDestroyed$\n * so that our subscription to TooltipContainerComponent.close is unsubscribed from\n */\n ref.onDestroy(() => {\n this._tooltipContainerDestroyed$.next();\n this._tooltipContainerDestroyed$.complete();\n });\n }\n } else {\n this._close();\n }\n });\n }\n\n private _getPositionPair(placement: Placement): ConnectionPositionPair {\n // Include a 3px offset so that the tooltip is not flush with the element\n const offset = this._tooltipArrowSize + 3;\n const getXOffset = (placement: Placement) => {\n if (!this.withArrow) {\n return 0;\n }\n if (placement.startsWith('right')) {\n return offset;\n }\n if (placement.startsWith('left')) {\n return -offset;\n }\n };\n const getYOffset = (placement: Placement) => {\n if (!this.withArrow) {\n return 0;\n }\n if (placement.startsWith('top')) {\n return -offset;\n }\n if (placement.startsWith('bottom')) {\n return offset;\n }\n };\n const getPanelClass = (placement: Placement): string => `tooltip-${placement}`;\n /**\n * The default position when no placement is specified\n */\n const bottom = new ConnectionPositionPair(\n { originX: 'center', originY: 'bottom' },\n { overlayX: 'center', overlayY: 'top' },\n null,\n getYOffset('bottom'),\n getPanelClass('bottom')\n );\n\n switch (placement) {\n case 'top':\n return new ConnectionPositionPair(\n { originX: 'center', originY: 'top' },\n { overlayX: 'center', overlayY: 'bottom' },\n null,\n getYOffset(placement),\n getPanelClass(placement)\n );\n\n case 'top-start':\n return new ConnectionPositionPair(\n { originX: 'start', originY: 'top' },\n { overlayX: 'start', overlayY: 'bottom' },\n null,\n getYOffset(placement),\n getPanelClass(placement)\n );\n\n case 'top-end':\n return new ConnectionPositionPair(\n { originX: 'end', originY: 'top' },\n { overlayX: 'end', overlayY: 'bottom' },\n null,\n getYOffset(placement),\n getPanelClass(placement)\n );\n\n case 'bottom':\n return bottom;\n\n case 'bottom-start':\n return new ConnectionPositionPair(\n { originX: 'start', originY: 'bottom' },\n { overlayX: 'start', overlayY: 'top' },\n null,\n getYOffset(placement),\n getPanelClass(placement)\n );\n\n case 'bottom-end':\n return new ConnectionPositionPair(\n { originX: 'end', originY: 'bottom' },\n { overlayX: 'end', overlayY: 'top' },\n null,\n getYOffset(placement),\n getPanelClass(placement)\n );\n\n case 'right':\n return new ConnectionPositionPair(\n { originX: 'end', originY: 'center' },\n { overlayX: 'start', overlayY: 'center' },\n getXOffset(placement),\n null,\n getPanelClass(placement)\n );\n\n case 'right-start':\n return new ConnectionPositionPair(\n { originX: 'end', originY: 'top' },\n { overlayX: 'start', overlayY: 'top' },\n getXOffset(placement),\n null,\n getPanelClass(placement)\n );\n\n case 'right-end':\n return new ConnectionPositionPair(\n { originX: 'end', originY: 'bottom' },\n { overlayX: 'start', overlayY: 'bottom' },\n getXOffset(placement),\n null,\n getPanelClass(placement)\n );\n\n case 'left':\n return new ConnectionPositionPair(\n { originX: 'start', originY: 'center' },\n { overlayX: 'end', overlayY: 'center' },\n getXOffset(placement),\n null,\n getPanelClass(placement)\n );\n\n case 'left-start':\n return new ConnectionPositionPair(\n { originX: 'start', originY: 'top' },\n { overlayX: 'end', overlayY: 'top' },\n getXOffset(placement),\n null,\n getPanelClass(placement)\n );\n\n case 'left-end':\n return new ConnectionPositionPair(\n { originX: 'start', originY: 'bottom' },\n { overlayX: 'end', overlayY: 'bottom' },\n getXOffset(placement),\n null,\n getPanelClass(placement)\n );\n\n default:\n return bottom;\n }\n }\n\n private _getPositionStrategy(placement: Placement | Placement[]): FlexibleConnectedPositionStrategy {\n /**\n * Format `placement` into a consistent data type of `Placement[]`\n */\n const placementsList: Placement[] = [placement].flat();\n /**\n * Get positions from preferred placements\n */\n const primaryPositions = placementsList.map(p => this._getPositionPair(p));\n /**\n * If `autoFlip` is enabled, include the inverse position of each `placement` input. Each of this inverse positions\n * will have a lower priority than each of the preferred positions generated from the `placement` input\n */\n const positions = this.autoFlip\n ? [...primaryPositions, ...placementsList.map(p => this._getPositionPair(placementFlipMap[p]))]\n : [...primaryPositions];\n\n return this._overlay\n .position()\n .flexibleConnectedTo(this.connectedTo || this._elRef)\n .withFlexibleDimensions(false)\n .withPositions(positions)\n .withPush(false);\n }\n\n private _updatePositionStrategy(placement: Placement | Placement[]): void {\n const positionStrategy = this._getPositionStrategy(placement);\n this._overlayRef.updatePositionStrategy(positionStrategy);\n }\n\n private _getScrollStrategy(closeOnScroll: boolean): RepositionScrollStrategy | CloseScrollStrategy {\n if (closeOnScroll) {\n return this._overlay.scrollStrategies.close();\n }\n return this._overlay.scrollStrategies.reposition();\n }\n\n private _updateScrollStrategy(closeOnScroll: boolean): void {\n const scrollStrategy = this._getScrollStrategy(closeOnScroll);\n this._overlayRef.updateScrollStrategy(scrollStrategy);\n }\n\n ngOnDestroy() {\n this.hide();\n this._destroyed$.next();\n this._destroyed$.complete();\n this._overlayRef?.dispose();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -94,6 +94,7 @@ declare class TooltipDirective implements OnInit, OnChanges, OnDestroy {
|
|
|
94
94
|
* A subject that emits when the TooltipContainerComponent is destroyed
|
|
95
95
|
*/
|
|
96
96
|
private _tooltipContainerDestroyed$;
|
|
97
|
+
private _outsideClick$;
|
|
97
98
|
ngOnInit(): void;
|
|
98
99
|
ngOnChanges(c: SimpleChanges): void;
|
|
99
100
|
/**
|