@anglify/components
Advanced tools
Comparing version 0.9.1 to 0.10.0
import { InjectionToken } from '@angular/core'; | ||
export const TOOLTIP_SETTINGS = new InjectionToken('Tooltip Settings'); | ||
export const DEFAULT_TOOLTIP_SETTINGS = { | ||
position: 'BOTTOM', | ||
openDelay: 0, | ||
closeDelay: 0, | ||
position: 'bottom', | ||
hoverOpenDelay: 0, | ||
touchOpenDelay: 0, | ||
hoverCloseDelay: 0, | ||
touchCloseDelay: 1000, | ||
mobileTrigger: 'long', | ||
preventContextMenuOnTouchDevice: false, | ||
defaultOffset: 10, | ||
autoCloseOnTouchDevicesAfterDelay: true, | ||
}; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1zZXR0aW5ncy50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ2xpZnkvc3JjL21vZHVsZXMvdG9vbHRpcC90b29sdGlwLXNldHRpbmdzLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQWtCLGtCQUFrQixDQUFDLENBQUM7QUFFeEYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQThCO0lBQ2pFLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFNBQVMsRUFBRSxDQUFDO0lBQ1osVUFBVSxFQUFFLENBQUM7SUFDYixhQUFhLEVBQUUsTUFBTTtJQUNyQiwrQkFBK0IsRUFBRSxLQUFLO0lBQ3RDLGFBQWEsRUFBRSxFQUFFO0NBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVG9vbHRpcFNldHRpbmdzIH0gZnJvbSAnLi90b29sdGlwLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjb25zdCBUT09MVElQX1NFVFRJTkdTID0gbmV3IEluamVjdGlvblRva2VuPFRvb2x0aXBTZXR0aW5ncz4oJ1Rvb2x0aXAgU2V0dGluZ3MnKTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVE9PTFRJUF9TRVRUSU5HUzogUmVxdWlyZWQ8VG9vbHRpcFNldHRpbmdzPiA9IHtcbiAgcG9zaXRpb246ICdCT1RUT00nLFxuICBvcGVuRGVsYXk6IDAsXG4gIGNsb3NlRGVsYXk6IDAsXG4gIG1vYmlsZVRyaWdnZXI6ICdsb25nJyxcbiAgcHJldmVudENvbnRleHRNZW51T25Ub3VjaERldmljZTogZmFsc2UsXG4gIGRlZmF1bHRPZmZzZXQ6IDEwLFxufTtcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1zZXR0aW5ncy50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ2xpZnkvc3JjL21vZHVsZXMvdG9vbHRpcC90b29sdGlwLXNldHRpbmdzLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQTRCLGtCQUFrQixDQUFDLENBQUM7QUFFbEcsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQThCO0lBQ2pFLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLGVBQWUsRUFBRSxDQUFDO0lBQ2xCLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLGFBQWEsRUFBRSxNQUFNO0lBQ3JCLCtCQUErQixFQUFFLEtBQUs7SUFDdEMsYUFBYSxFQUFFLEVBQUU7SUFDakIsaUNBQWlDLEVBQUUsSUFBSTtDQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvb2x0aXBTZXR0aW5ncyB9IGZyb20gJy4vdG9vbHRpcC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY29uc3QgVE9PTFRJUF9TRVRUSU5HUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZXF1aXJlZDxUb29sdGlwU2V0dGluZ3M+PignVG9vbHRpcCBTZXR0aW5ncycpO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9UT09MVElQX1NFVFRJTkdTOiBSZXF1aXJlZDxUb29sdGlwU2V0dGluZ3M+ID0ge1xuICBwb3NpdGlvbjogJ2JvdHRvbScsXG4gIGhvdmVyT3BlbkRlbGF5OiAwLFxuICB0b3VjaE9wZW5EZWxheTogMCxcbiAgaG92ZXJDbG9zZURlbGF5OiAwLFxuICB0b3VjaENsb3NlRGVsYXk6IDEwMDAsXG4gIG1vYmlsZVRyaWdnZXI6ICdsb25nJyxcbiAgcHJldmVudENvbnRleHRNZW51T25Ub3VjaERldmljZTogZmFsc2UsXG4gIGRlZmF1bHRPZmZzZXQ6IDEwLFxuICBhdXRvQ2xvc2VPblRvdWNoRGV2aWNlc0FmdGVyRGVsYXk6IHRydWUsXG59O1xuIl19 |
import { __decorate } from "tslib"; | ||
import { ContentChild, Directive, HostListener, Inject, Input, Optional, } from '@angular/core'; | ||
import { Directive, HostListener, Inject, Injector, Input, Optional, TemplateRef, } from '@angular/core'; | ||
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'; | ||
import { merge, of, Subject } from 'rxjs'; | ||
import { delay, mergeMap, repeat, takeUntil, tap } from 'rxjs/operators'; | ||
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'; | ||
import { isBooleanLikeTrue, isTouchDevice, observeOnResize } from '../../utils/functions'; | ||
import { isBooleanLikeTrue, isTouchDevice } from '../../utils/functions'; | ||
import { DEFAULT_TOOLTIP_SETTINGS, TOOLTIP_SETTINGS } from './tooltip-settings.token'; | ||
import { TooltipComponent } from './components/tooltip/tooltip.component'; | ||
import * as i0 from "@angular/core"; | ||
let TooltipDirective = class TooltipDirective { | ||
constructor(elementRef, renderer, viewContainerRef, changeDetectorRef, settings) { | ||
var _a; | ||
this.elementRef = elementRef; | ||
constructor(element, renderer, viewContainerRef, injector, resolver, applicationRef, cdRef, settings) { | ||
this.element = element; | ||
this.renderer = renderer; | ||
this.viewContainerRef = viewContainerRef; | ||
this.changeDetectorRef = changeDetectorRef; | ||
this.injector = injector; | ||
this.resolver = resolver; | ||
this.applicationRef = applicationRef; | ||
this.cdRef = cdRef; | ||
this.settings = settings; | ||
this.position = 'BOTTOM'; | ||
this.tooltipOpenDelay = 0; | ||
this.tooltipCloseDelay = 0; | ||
/** Prevents the context menu from opening when the host is long pressed. */ | ||
this.preventContextMenuOnTouchDevice = false; | ||
/** Allows you to define whether the tooltip is opened with a quick press or with a long press. */ | ||
this.tooltipMobileTrigger = 'long'; | ||
this.defaultOffset = 10; | ||
this.tooltip = null; | ||
this.mountingPoint = 'parent'; | ||
this._position = DEFAULT_TOOLTIP_SETTINGS.position; | ||
this._offset = DEFAULT_TOOLTIP_SETTINGS.defaultOffset; | ||
this._openAction = new Subject(); | ||
this._closeAction = new Subject(); | ||
this._repositionAction = new Subject(); | ||
this._visibleHandler$ = merge(this._openAction.pipe(mergeMap(openDelay => of(openDelay).pipe(delay(openDelay), takeUntil(this._closeAction), tap(() => { | ||
if (this.tooltip) | ||
return; | ||
this.tooltip = this.create(); | ||
this._repositionAction.next(); | ||
this.renderer.addClass(this.tooltip, 'anglify-tooltip__open'); | ||
}))), repeat()), this._closeAction.pipe(mergeMap(closeDelay => of(closeDelay).pipe(delay(closeDelay), takeUntil(this._openAction), tap(() => { | ||
if (!this.tooltip) | ||
return; | ||
this.renderer.removeClass(this.tooltip, 'anglify-tooltip__open'); | ||
this.renderer.removeChild(this.nativeElement, this.tooltip); | ||
this.tooltip = null; | ||
}))), repeat())); | ||
this._repositionHandler$ = this._repositionAction.pipe(tap(() => { | ||
if (!this.tooltip) | ||
return; | ||
this.setPosition(); | ||
})); | ||
if (!settings) | ||
this.settings = DEFAULT_TOOLTIP_SETTINGS; | ||
if (settings === null || settings === void 0 ? void 0 : settings.position) | ||
this.position = settings.position; | ||
if (settings === null || settings === void 0 ? void 0 : settings.openDelay) | ||
this.tooltipOpenDelay = settings.openDelay; | ||
if (settings === null || settings === void 0 ? void 0 : settings.closeDelay) | ||
this.tooltipCloseDelay = settings.closeDelay; | ||
if (settings === null || settings === void 0 ? void 0 : settings.preventContextMenuOnTouchDevice) | ||
this.preventContextMenuOnTouchDevice = settings.preventContextMenuOnTouchDevice; | ||
if (settings === null || settings === void 0 ? void 0 : settings.mobileTrigger) | ||
this.tooltipMobileTrigger = settings.mobileTrigger; | ||
if (settings === null || settings === void 0 ? void 0 : settings.defaultOffset) | ||
this.defaultOffset = settings.defaultOffset; | ||
this.nativeElement = this.elementRef.nativeElement; | ||
this.mountingPoint = (_a = this.nativeElement.parentElement) !== null && _a !== void 0 ? _a : document.body; | ||
this.create(); | ||
}))), repeat()), this._closeAction.pipe(mergeMap(closeDelay => of(closeDelay).pipe(delay(closeDelay), takeUntil(this._openAction), tap(() => this._detach()))), repeat())); | ||
const mergedSettings = Object.assign({}, DEFAULT_TOOLTIP_SETTINGS, this.settings); | ||
this.position = mergedSettings.position; | ||
this.hoverOpenDelay = mergedSettings.hoverOpenDelay; | ||
this.hoverCloseDelay = mergedSettings.hoverCloseDelay; | ||
this.touchOpenDelay = mergedSettings.touchOpenDelay; | ||
this.touchCloseDelay = mergedSettings.touchCloseDelay; | ||
this.preventContextMenuOnTouchDevice = mergedSettings.preventContextMenuOnTouchDevice; | ||
this.tooltipMobileTrigger = mergedSettings.mobileTrigger; | ||
this.offset = mergedSettings.defaultOffset; | ||
this.autoCloseOnTouchDevicesAfterDelay = mergedSettings.autoCloseOnTouchDevicesAfterDelay; | ||
this._visibleHandler$.pipe(untilDestroyed(this)).subscribe(); | ||
this._repositionHandler$.pipe(untilDestroyed(this)).subscribe(); | ||
} | ||
/** Distance between the tooltip and the host element */ | ||
set offset(value) { | ||
this._offset = value; | ||
if (this.componentRef) { | ||
this.componentRef.instance.offset = value; | ||
} | ||
} | ||
get offset() { | ||
return this._offset; | ||
} | ||
set position(value) { | ||
this._position = value; | ||
if (this.componentRef) { | ||
this.componentRef.instance.position = value; | ||
} | ||
} | ||
get position() { | ||
return this._position; | ||
} | ||
set contentClass(value) { | ||
this._contentClass = value; | ||
if (this.componentRef) { | ||
this.componentRef.instance.contentClass = value; | ||
} | ||
} | ||
get contentClass() { | ||
return this._contentClass; | ||
} | ||
ngOnDestroy() { | ||
this._detach(); | ||
} | ||
open(delay = 0) { | ||
@@ -73,83 +78,87 @@ this._openAction.next(delay); | ||
toggle(delay = 0) { | ||
this.tooltip ? this._closeAction.next(delay) : this._openAction.next(delay); | ||
this.componentRef ? this._closeAction.next(delay) : this._openAction.next(delay); | ||
} | ||
_detach() { | ||
var _a, _b; | ||
(_a = this.componentRef) === null || _a === void 0 ? void 0 : _a.destroy(); | ||
this.componentRef = undefined; | ||
(_b = this.embeddedView) === null || _b === void 0 ? void 0 : _b.destroy(); | ||
this.embeddedView = undefined; | ||
} | ||
onOpenEventDesktop() { | ||
if (isTouchDevice()) | ||
return; | ||
this.open(this.tooltipOpenDelay); | ||
this.open(this.hoverOpenDelay); | ||
} | ||
onCloseEventDesktop() { | ||
if (isTouchDevice()) | ||
return; | ||
this.close(this.tooltipCloseDelay); | ||
} | ||
onOpenEventMobile(event) { | ||
if (this.tooltipMobileTrigger === 'long' && event.type !== 'contextmenu') | ||
if (!isTouchDevice()) | ||
return; | ||
if (this.tooltipMobileTrigger === 'short' && event.type !== 'click') | ||
if (this.tooltipMobileTrigger === 'long' && event.type === 'touchstart') | ||
return; | ||
if (isTouchDevice()) { | ||
if (isBooleanLikeTrue(this.preventContextMenuOnTouchDevice)) | ||
event.preventDefault(); | ||
setTimeout(() => this.open(), 0); // Open tooltip after other context menus are closed | ||
if (this.tooltipMobileTrigger === 'short' && event.type === 'contextmenu') | ||
return; | ||
if (isBooleanLikeTrue(this.preventContextMenuOnTouchDevice) || isBooleanLikeTrue(this.autoCloseOnTouchDevicesAfterDelay)) { | ||
event.preventDefault(); | ||
} | ||
this.open(this.touchOpenDelay); | ||
} | ||
onCloseEventMobile() { | ||
if (isTouchDevice()) | ||
this.close(); | ||
autoCloseOnMobile() { | ||
if (!isBooleanLikeTrue(this.autoCloseOnTouchDevicesAfterDelay)) | ||
return; | ||
if (!isTouchDevice()) | ||
return; | ||
this.close(this.touchCloseDelay); | ||
} | ||
onClickOutside(event, targetElement) { | ||
if (!this.componentRef) | ||
return; | ||
if (!Boolean(targetElement)) | ||
return; | ||
const clickedInside = this.element.nativeElement.contains(targetElement); | ||
if (!clickedInside) | ||
this.close(0); | ||
} | ||
onCloseEvent() { | ||
this.close(isTouchDevice() ? this.touchCloseDelay : this.hoverCloseDelay); | ||
} | ||
create() { | ||
const tooltip = this.renderer.createElement('span'); | ||
if (this.template) { | ||
const view = this.viewContainerRef.createEmbeddedView(this.template); | ||
view.rootNodes.forEach(node => this.renderer.appendChild(tooltip, node)); | ||
if (this.componentRef) | ||
return; | ||
const factory = this.resolver.resolveComponentFactory(TooltipComponent); | ||
const injector = Injector.create({ | ||
providers: [{ provide: 'tooltipConfig', useValue: { host: this.element.nativeElement } }], | ||
}); | ||
this.componentRef = this.viewContainerRef.createComponent(factory, 0, injector, this.generateNgContent()); | ||
this.componentRef.instance.position = this.position; | ||
this.componentRef.instance.offset = this.offset; | ||
this.componentRef.instance.contentClass = this.contentClass; | ||
this.changeMountingPoint(); | ||
this.cdRef.markForCheck(); | ||
} | ||
generateNgContent() { | ||
if (typeof this.content === 'string') { | ||
return [[this.renderer.createText(this.content)]]; | ||
} | ||
else if (this.text) { | ||
this.renderer.appendChild(tooltip, this.renderer.createText(this.text)); | ||
if (this.content instanceof TemplateRef) { | ||
this.embeddedView = this.content.createEmbeddedView({}); | ||
this.applicationRef.attachView(this.embeddedView); | ||
return [this.embeddedView.rootNodes]; | ||
} | ||
this.renderer.appendChild(this.mountingPoint, tooltip); | ||
this.renderer.addClass(tooltip, 'anglify-tooltip'); | ||
if (this.contentClass) | ||
this.renderer.addClass(tooltip, this.contentClass); | ||
// https://github.com/valentingavran/anglify/issues/19#issuecomment-1030809020 | ||
this.changeDetectorRef.markForCheck(); | ||
observeOnResize(tooltip) | ||
.pipe(takeUntil(this._closeAction)) | ||
.subscribe(() => this.setPosition()); | ||
return tooltip; | ||
return [[this.resolver.resolveComponentFactory(this.content).create(this.injector)]]; | ||
} | ||
setPosition() { | ||
if (!this.tooltip) | ||
changeMountingPoint() { | ||
if (!this.componentRef) | ||
return; | ||
const hostPos = this.nativeElement.getBoundingClientRect(); | ||
const tooltipPos = this.tooltip.getBoundingClientRect(); | ||
const scrollPos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; | ||
let top; | ||
let left; | ||
if (this.position === 'TOP') { | ||
top = hostPos.top - tooltipPos.height - this.defaultOffset; | ||
left = Math.max(hostPos.left + (hostPos.width - tooltipPos.width) / 2, this.defaultOffset); | ||
if (this.mountingPoint === 'parent') { | ||
} | ||
else if (this.position === 'BOTTOM') { | ||
top = hostPos.bottom + this.defaultOffset; | ||
left = Math.max(hostPos.left + (hostPos.width - tooltipPos.width) / 2, this.defaultOffset); | ||
else if (this.mountingPoint === 'body') { | ||
this.renderer.appendChild(document.body, this.componentRef.location.nativeElement); | ||
} | ||
else { | ||
top = hostPos.top + (hostPos.height - tooltipPos.height) / 2; | ||
if (this.position === 'LEFT') { | ||
left = Math.max(hostPos.left - tooltipPos.width - this.defaultOffset, this.defaultOffset); | ||
} | ||
else { | ||
left = Math.min(hostPos.right + this.defaultOffset, window.innerWidth - tooltipPos.width - this.defaultOffset); | ||
} | ||
this.renderer.appendChild(this.mountingPoint, this.componentRef.location.nativeElement); | ||
} | ||
this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`); | ||
this.renderer.setStyle(this.tooltip, 'left', `${left}px`); | ||
} | ||
ngOnDestroy() { | ||
this._closeAction.next(0); | ||
} | ||
}; | ||
TooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: TooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }, { token: TOOLTIP_SETTINGS, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); | ||
TooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.5", type: TooltipDirective, selector: "[anglifyTooltip]", inputs: { text: ["anglifyTooltip", "text"], position: "position", contentClass: ["content-class", "contentClass"], tooltipOpenDelay: "tooltipOpenDelay", tooltipCloseDelay: "tooltipCloseDelay", mountingPoint: ["tooltipMountingPoint", "mountingPoint"], preventContextMenuOnTouchDevice: "preventContextMenuOnTouchDevice", tooltipMobileTrigger: "tooltipMobileTrigger" }, host: { listeners: { "mouseenter": "onOpenEventDesktop()", "focus": "onOpenEventDesktop()", "mouseleave": "onCloseEventDesktop()", "blur": "onCloseEventDesktop()", "click": "onOpenEventMobile($event)", "contextmenu": "onOpenEventMobile($event)", "document:click": "onCloseEventMobile()", "document:contextmenu": "onCloseEventMobile()" } }, queries: [{ propertyName: "template", first: true, predicate: ["tooltipContent"], descendants: true }], exportAs: ["anglifyTooltip"], ngImport: i0 }); | ||
TooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: TooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.ChangeDetectorRef }, { token: TOOLTIP_SETTINGS, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); | ||
TooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.5", type: TooltipDirective, selector: "[anglifyTooltip]", inputs: { content: ["anglifyTooltip", "content"], mountingPoint: ["tooltipMountingPoint", "mountingPoint"], hoverOpenDelay: ["tooltipHoverOpenDelay", "hoverOpenDelay"], hoverCloseDelay: ["tooltipHoverCloseDelay", "hoverCloseDelay"], touchOpenDelay: ["tooltipTouchOpenDelay", "touchOpenDelay"], touchCloseDelay: ["tooltipTouchCloseDelay", "touchCloseDelay"], preventContextMenuOnTouchDevice: "preventContextMenuOnTouchDevice", tooltipMobileTrigger: "tooltipMobileTrigger", autoCloseOnTouchDevicesAfterDelay: "autoCloseOnTouchDevicesAfterDelay", offset: "offset", position: "position", contentClass: "contentClass" }, host: { listeners: { "mouseenter": "onOpenEventDesktop()", "touchstart": "onOpenEventMobile($event)", "contextmenu": "onOpenEventMobile($event)", "touchend": "autoCloseOnMobile()", "document:click": "onClickOutside($event,$event.target)", "document:contextmenu": "onClickOutside($event,$event.target)", "mouseleave": "onCloseEvent()" } }, exportAs: ["anglifyTooltip"], ngImport: i0 }); | ||
TooltipDirective = __decorate([ | ||
@@ -165,3 +174,3 @@ UntilDestroy() | ||
}] | ||
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{ | ||
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{ | ||
type: Optional | ||
@@ -171,20 +180,20 @@ }, { | ||
args: [TOOLTIP_SETTINGS] | ||
}] }]; }, propDecorators: { template: [{ | ||
type: ContentChild, | ||
args: ['tooltipContent'] | ||
}], text: [{ | ||
}] }]; }, propDecorators: { content: [{ | ||
type: Input, | ||
args: ['anglifyTooltip'] | ||
}], position: [{ | ||
type: Input | ||
}], contentClass: [{ | ||
type: Input, | ||
args: ['content-class'] | ||
}], tooltipOpenDelay: [{ | ||
type: Input | ||
}], tooltipCloseDelay: [{ | ||
type: Input | ||
}], mountingPoint: [{ | ||
type: Input, | ||
args: ['tooltipMountingPoint'] | ||
}], hoverOpenDelay: [{ | ||
type: Input, | ||
args: ['tooltipHoverOpenDelay'] | ||
}], hoverCloseDelay: [{ | ||
type: Input, | ||
args: ['tooltipHoverCloseDelay'] | ||
}], touchOpenDelay: [{ | ||
type: Input, | ||
args: ['tooltipTouchOpenDelay'] | ||
}], touchCloseDelay: [{ | ||
type: Input, | ||
args: ['tooltipTouchCloseDelay'] | ||
}], preventContextMenuOnTouchDevice: [{ | ||
@@ -194,27 +203,32 @@ type: Input | ||
type: Input | ||
}], autoCloseOnTouchDevicesAfterDelay: [{ | ||
type: Input | ||
}], offset: [{ | ||
type: Input | ||
}], position: [{ | ||
type: Input | ||
}], contentClass: [{ | ||
type: Input | ||
}], onOpenEventDesktop: [{ | ||
type: HostListener, | ||
args: ['mouseenter'] | ||
}, { | ||
type: HostListener, | ||
args: ['focus'] | ||
}], onCloseEventDesktop: [{ | ||
type: HostListener, | ||
args: ['mouseleave'] | ||
}, { | ||
type: HostListener, | ||
args: ['blur'] | ||
}], onOpenEventMobile: [{ | ||
type: HostListener, | ||
args: ['click', ['$event']] | ||
args: ['touchstart', ['$event']] | ||
}, { | ||
type: HostListener, | ||
args: ['contextmenu', ['$event']] | ||
}], onCloseEventMobile: [{ | ||
}], autoCloseOnMobile: [{ | ||
type: HostListener, | ||
args: ['document:click'] | ||
args: ['touchend'] | ||
}], onClickOutside: [{ | ||
type: HostListener, | ||
args: ['document:click', ['$event', '$event.target']] | ||
}, { | ||
type: HostListener, | ||
args: ['document:contextmenu'] | ||
args: ['document:contextmenu', ['$event', '$event.target']] | ||
}], onCloseEvent: [{ | ||
type: HostListener, | ||
args: ['mouseleave'] | ||
}] } }); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmdsaWZ5L3NyYy9tb2R1bGVzL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxZQUFZLEVBQ1osU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsR0FJVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHMUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0lBT3pFLGdCQUFnQixTQUFoQixnQkFBZ0I7SUFnRTNCLFlBQ21CLFVBQXNCLEVBQ3RCLFFBQW1CLEVBQ25CLGdCQUFrQyxFQUNsQyxpQkFBb0MsRUFDRSxRQUEwQjs7UUFKaEUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNFLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBakVuRSxhQUFRLEdBQW9CLFFBQVEsQ0FBQztRQUVyQyxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDckIsc0JBQWlCLEdBQUcsQ0FBQyxDQUFD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O3VCQUFDLE9BQU87Z0JBUWIsbUJBQW1CO3NCQUYxQixZQUFZO3VCQUFDLFlBQVk7O3NCQUN6QixZQUFZO3VCQUFDLE1BQU07Z0JBUVosaUJBQWlCO3NCQUZ4QixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ2hDLFlBQVk7dUJBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWMvQixrQkFBa0I7c0JBRnpCLFlBQVk7dUJBQUMsZ0JBQWdCOztzQkFDN0IsWUFBWTt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgUmVuZGVyZXIyLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtZXJnZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCBtZXJnZU1hcCwgcmVwZWF0LCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgaXNCb29sZWFuTGlrZVRydWUsIGlzVG91Y2hEZXZpY2UsIG9ic2VydmVPblJlc2l6ZSB9IGZyb20gJy4uLy4uL3V0aWxzL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBCb29sZWFuTGlrZSB9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVG9vbHRpcFBvc2l0aW9uLCBUb29sdGlwU2V0dGluZ3MsIFRvb2x0aXBUb3VjaFRyaWdnZXIgfSBmcm9tICcuL3Rvb2x0aXAuaW50ZXJmYWNlJztcbmltcG9ydCB7IERFRkFVTFRfVE9PTFRJUF9TRVRUSU5HUywgVE9PTFRJUF9TRVRUSU5HUyB9IGZyb20gJy4vdG9vbHRpcC1zZXR0aW5ncy50b2tlbic7XG5cbkBVbnRpbERlc3Ryb3koKVxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FuZ2xpZnlUb29sdGlwXScsXG4gIGV4cG9ydEFzOiAnYW5nbGlmeVRvb2x0aXAnLFxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQENvbnRlbnRDaGlsZCgndG9vbHRpcENvbnRlbnQnKSBwdWJsaWMgdGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgnYW5nbGlmeVRvb2x0aXAnKSBwdWJsaWMgdGV4dD86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb24gPSAnQk9UVE9NJztcbiAgQElucHV0KCdjb250ZW50LWNsYXNzJykgcHVibGljIGNvbnRlbnRDbGFzcz86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHRvb2x0aXBPcGVuRGVsYXkgPSAwO1xuICBASW5wdXQoKSBwdWJsaWMgdG9vbHRpcENsb3NlRGVsYXkgPSAwO1xuICBASW5wdXQoJ3Rvb2x0aXBNb3VudGluZ1BvaW50JykgcHVibGljIG1vdW50aW5nUG9pbnQ6IEhUTUxFbGVtZW50O1xuXG4gIC8qKiBQcmV2ZW50cyB0aGUgY29udGV4dCBtZW51IGZyb20gb3BlbmluZyB3aGVuIHRoZSBob3N0IGlzIGxvbmcgcHJlc3NlZC4gKi9cbiAgQElucHV0KCkgcHVibGljIHByZXZlbnRDb250ZXh0TWVudU9uVG91Y2hEZXZpY2U6IEJvb2xlYW5MaWtlID0gZmFsc2U7XG5cbiAgLyoqIEFsbG93cyB5b3UgdG8gZGVmaW5lIHdoZXRoZXIgdGhlIHRvb2x0aXAgaXMgb3BlbmVkIHdpdGggYSBxdWljayBwcmVzcyBvciB3aXRoIGEgbG9uZyBwcmVzcy4gKi9cbiAgQElucHV0KCkgcHVibGljIHRvb2x0aXBNb2JpbGVUcmlnZ2VyOiBUb29sdGlwVG91Y2hUcmlnZ2VyID0gJ2xvbmcnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdE9mZnNldDogbnVtYmVyID0gMTA7XG4gIHByaXZhdGUgcmVhZG9ubHkgbmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgdG9vbHRpcDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9vcGVuQWN0aW9uID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jbG9zZUFjdGlvbiA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVwb3NpdGlvbkFjdGlvbiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdmlzaWJsZUhhbmRsZXIkID0gbWVyZ2UoXG4gICAgdGhpcy5fb3BlbkFjdGlvbi5waXBlKFxuICAgICAgbWVyZ2VNYXAob3BlbkRlbGF5ID0+XG4gICAgICAgIG9mKG9wZW5EZWxheSkucGlwZShcbiAgICAgICAgICBkZWxheShvcGVuRGVsYXkpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9jbG9zZUFjdGlvbiksXG4gICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRvb2x0aXApIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcCA9IHRoaXMuY3JlYXRlKCk7XG4gICAgICAgICAgICB0aGlzLl9yZXBvc2l0aW9uQWN0aW9uLm5leHQoKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwLCAnYW5nbGlmeS10b29sdGlwX19vcGVuJyk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKSxcbiAgICAgIHJlcGVhdCgpXG4gICAgKSxcbiAgICB0aGlzLl9jbG9zZUFjdGlvbi5waXBlKFxuICAgICAgbWVyZ2VNYXAoY2xvc2VEZWxheSA9PlxuICAgICAgICBvZihjbG9zZURlbGF5KS5waXBlKFxuICAgICAgICAgIGRlbGF5KGNsb3NlRGVsYXkpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vcGVuQWN0aW9uKSxcbiAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnRvb2x0aXApIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy50b29sdGlwLCAnYW5nbGlmeS10b29sdGlwX19vcGVuJyk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcy50b29sdGlwKTtcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcCA9IG51bGw7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKSxcbiAgICAgIHJlcGVhdCgpXG4gICAgKVxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlcG9zaXRpb25IYW5kbGVyJCA9IHRoaXMuX3JlcG9zaXRpb25BY3Rpb24ucGlwZShcbiAgICB0YXAoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnRvb2x0aXApIHJldHVybjtcbiAgICAgIHRoaXMuc2V0UG9zaXRpb24oKTtcbiAgICB9KVxuICApO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRPT0xUSVBfU0VUVElOR1MpIHByaXZhdGUgcmVhZG9ubHkgc2V0dGluZ3M/OiBUb29sdGlwU2V0dGluZ3NcbiAgKSB7XG4gICAgaWYgKCFzZXR0aW5ncykgdGhpcy5zZXR0aW5ncyA9IERFRkFVTFRfVE9PTFRJUF9TRVRUSU5HUztcbiAgICBpZiAoc2V0dGluZ3M/LnBvc2l0aW9uKSB0aGlzLnBvc2l0aW9uID0gc2V0dGluZ3MucG9zaXRpb247XG4gICAgaWYgKHNldHRpbmdzPy5vcGVuRGVsYXkpIHRoaXMudG9vbHRpcE9wZW5EZWxheSA9IHNldHRpbmdzLm9wZW5EZWxheTtcbiAgICBpZiAoc2V0dGluZ3M/LmNsb3NlRGVsYXkpIHRoaXMudG9vbHRpcENsb3NlRGVsYXkgPSBzZXR0aW5ncy5jbG9zZURlbGF5O1xuICAgIGlmIChzZXR0aW5ncz8ucHJldmVudENvbnRleHRNZW51T25Ub3VjaERldmljZSkgdGhpcy5wcmV2ZW50Q29udGV4dE1lbnVPblRvdWNoRGV2aWNlID0gc2V0dGluZ3MucHJldmVudENvbnRleHRNZW51T25Ub3VjaERldmljZTtcbiAgICBpZiAoc2V0dGluZ3M/Lm1vYmlsZVRyaWdnZXIpIHRoaXMudG9vbHRpcE1vYmlsZVRyaWdnZXIgPSBzZXR0aW5ncy5tb2JpbGVUcmlnZ2VyO1xuICAgIGlmIChzZXR0aW5ncz8uZGVmYXVsdE9mZnNldCkgdGhpcy5kZWZhdWx0T2Zmc2V0ID0gc2V0dGluZ3MuZGVmYXVsdE9mZnNldDtcblxuICAgIHRoaXMubmF0aXZlRWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMubW91bnRpbmdQb2ludCA9IHRoaXMubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50ID8/IGRvY3VtZW50LmJvZHk7XG4gICAgdGhpcy5fdmlzaWJsZUhhbmRsZXIkLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX3JlcG9zaXRpb25IYW5kbGVyJC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuKGRlbGF5ID0gMCk6IHZvaWQge1xuICAgIHRoaXMuX29wZW5BY3Rpb24ubmV4dChkZWxheSk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoZGVsYXkgPSAwKTogdm9pZCB7XG4gICAgdGhpcy5fY2xvc2VBY3Rpb24ubmV4dChkZWxheSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlKGRlbGF5ID0gMCk6IHZvaWQge1xuICAgIHRoaXMudG9vbHRpcCA/IHRoaXMuX2Nsb3NlQWN0aW9uLm5leHQoZGVsYXkpIDogdGhpcy5fb3BlbkFjdGlvbi5uZXh0KGRlbGF5KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxuICBASG9zdExpc3RlbmVyKCdmb2N1cycpIC8vIE9wZW4gdG9vbHRpcCB3aGVuIGhvc3QgZ2V0cyBmb2N1c2VkICh3aXRoIGtleWJvYXJkIGZvciBleGFtcGxlKVxuICBwcml2YXRlIG9uT3BlbkV2ZW50RGVza3RvcCgpOiB2b2lkIHtcbiAgICBpZiAoaXNUb3VjaERldmljZSgpKSByZXR1cm47XG4gICAgdGhpcy5vcGVuKHRoaXMudG9vbHRpcE9wZW5EZWxheSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpIC8vIENsb3NlIHRvb2x0aXAgd2hlbiBob3N0IGdldHMgYmx1cnJlZCAod2l0aCBrZXlib2FyZCBmb3IgZXhhbXBsZSlcbiAgcHJpdmF0ZSBvbkNsb3NlRXZlbnREZXNrdG9wKCk6IHZvaWQge1xuICAgIGlmIChpc1RvdWNoRGV2aWNlKCkpIHJldHVybjtcbiAgICB0aGlzLmNsb3NlKHRoaXMudG9vbHRpcENsb3NlRGVsYXkpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdjb250ZXh0bWVudScsIFsnJGV2ZW50J10pXG4gIHByaXZhdGUgb25PcGVuRXZlbnRNb2JpbGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMudG9vbHRpcE1vYmlsZVRyaWdnZXIgPT09ICdsb25nJyAmJiBldmVudC50eXBlICE9PSAnY29udGV4dG1lbnUnKSByZXR1cm47XG4gICAgaWYgKHRoaXMudG9vbHRpcE1vYmlsZVRyaWdnZXIgPT09ICdzaG9ydCcgJiYgZXZlbnQudHlwZSAhPT0gJ2NsaWNrJykgcmV0dXJuO1xuXG4gICAgaWYgKGlzVG91Y2hEZXZpY2UoKSkge1xuICAgICAgaWYgKGlzQm9vbGVhbkxpa2VUcnVlKHRoaXMucHJldmVudENvbnRleHRNZW51T25Ub3VjaERldmljZSkpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5vcGVuKCksIDApOyAvLyBPcGVuIHRvb2x0aXAgYWZ0ZXIgb3RoZXIgY29udGV4dCBtZW51cyBhcmUgY2xvc2VkXG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snKVxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjb250ZXh0bWVudScpIC8vIENsb3NlIHRvb2x0aXAgd2hlbiBvdGhlciB0b29sdGlwcyBhcmUgb3BlbmVkXG4gIHByaXZhdGUgb25DbG9zZUV2ZW50TW9iaWxlKCk6IHZvaWQge1xuICAgIGlmIChpc1RvdWNoRGV2aWNlKCkpIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlKCk6IEhUTUxTcGFuRWxlbWVudCB7XG4gICAgY29uc3QgdG9vbHRpcDogSFRNTFNwYW5FbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgaWYgKHRoaXMudGVtcGxhdGUpIHtcbiAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGUpO1xuICAgICAgdmlldy5yb290Tm9kZXMuZm9yRWFjaChub2RlID0+IHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodG9vbHRpcCwgbm9kZSkpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50ZXh0KSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRvb2x0aXAsIHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dCh0aGlzLnRleHQpKTtcbiAgICB9XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLm1vdW50aW5nUG9pbnQsIHRvb2x0aXApO1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModG9vbHRpcCwgJ2FuZ2xpZnktdG9vbHRpcCcpO1xuICAgIGlmICh0aGlzLmNvbnRlbnRDbGFzcykgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0b29sdGlwLCB0aGlzLmNvbnRlbnRDbGFzcyk7XG5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdmFsZW50aW5nYXZyYW4vYW5nbGlmeS9pc3N1ZXMvMTkjaXNzdWVjb21tZW50LTEwMzA4MDkwMjBcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIG9ic2VydmVPblJlc2l6ZSh0b29sdGlwKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Nsb3NlQWN0aW9uKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zZXRQb3NpdGlvbigpKTtcblxuICAgIHJldHVybiB0b29sdGlwO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudG9vbHRpcCkgcmV0dXJuO1xuICAgIGNvbnN0IGhvc3RQb3MgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgdG9vbHRpcFBvcyA9IHRoaXMudG9vbHRpcC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IHNjcm9sbFBvcyA9IHdpbmRvdy5wYWdlWU9mZnNldCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wIHx8IDA7XG5cbiAgICBsZXQgdG9wO1xuICAgIGxldCBsZWZ0O1xuXG4gICAgaWYgKHRoaXMucG9zaXRpb24gPT09ICdUT1AnKSB7XG4gICAgICB0b3AgPSBob3N0UG9zLnRvcCAtIHRvb2x0aXBQb3MuaGVpZ2h0IC0gdGhpcy5kZWZhdWx0T2Zmc2V0O1xuICAgICAgbGVmdCA9IE1hdGgubWF4KGhvc3RQb3MubGVmdCArIChob3N0UG9zLndpZHRoIC0gdG9vbHRpcFBvcy53aWR0aCkgLyAyLCB0aGlzLmRlZmF1bHRPZmZzZXQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ0JPVFRPTScpIHtcbiAgICAgIHRvcCA9IGhvc3RQb3MuYm90dG9tICsgdGhpcy5kZWZhdWx0T2Zmc2V0O1xuICAgICAgbGVmdCA9IE1hdGgubWF4KGhvc3RQb3MubGVmdCArIChob3N0UG9zLndpZHRoIC0gdG9vbHRpcFBvcy53aWR0aCkgLyAyLCB0aGlzLmRlZmF1bHRPZmZzZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0b3AgPSBob3N0UG9zLnRvcCArIChob3N0UG9zLmhlaWdodCAtIHRvb2x0aXBQb3MuaGVpZ2h0KSAvIDI7XG4gICAgICBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ0xFRlQnKSB7XG4gICAgICAgIGxlZnQgPSBNYXRoLm1heChob3N0UG9zLmxlZnQgLSB0b29sdGlwUG9zLndpZHRoIC0gdGhpcy5kZWZhdWx0T2Zmc2V0LCB0aGlzLmRlZmF1bHRPZmZzZXQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGVmdCA9IE1hdGgubWluKGhvc3RQb3MucmlnaHQgKyB0aGlzLmRlZmF1bHRPZmZzZXQsIHdpbmRvdy5pbm5lcldpZHRoIC0gdG9vbHRpcFBvcy53aWR0aCAtIHRoaXMuZGVmYXVsdE9mZnNldCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXAsICd0b3AnLCBgJHt0b3AgKyBzY3JvbGxQb3N9cHhgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcCwgJ2xlZnQnLCBgJHtsZWZ0fXB4YCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fY2xvc2VBY3Rpb24ubmV4dCgwKTtcbiAgfVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmdsaWZ5L3NyYy9tb2R1bGVzL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFLTCxTQUFTLEVBR1QsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUVMLFFBQVEsRUFFUixXQUFXLEdBR1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFekUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0lBTzdELGdCQUFnQixTQUFoQixnQkFBZ0I7SUFvRjNCLFlBQ21CLE9BQW1CLEVBQ25CLFFBQW1CLEVBQ25CLGdCQUFrQyxFQUNsQyxRQUFrQixFQUNsQixRQUFrQyxFQUNsQyxjQUE4QixFQUM5QixLQUF3QixFQUNjLFFBQW9DO1FBUDFFLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFDbEMsbUJB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aGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBDb21wb25lbnRSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBSZW5kZXJlcjIsXG4gIFRlbXBsYXRlUmVmLFxuICBUeXBlLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgbWVyZ2UsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSwgbWVyZ2VNYXAsIHJlcGVhdCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpc0Jvb2xlYW5MaWtlVHJ1ZSwgaXNUb3VjaERldmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBCb29sZWFuTGlrZSB9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgREVGQVVMVF9UT09MVElQX1NFVFRJTkdTLCBUT09MVElQX1NFVFRJTkdTIH0gZnJvbSAnLi90b29sdGlwLXNldHRpbmdzLnRva2VuJztcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiwgVG9vbHRpcFNldHRpbmdzLCBUb29sdGlwVG91Y2hUcmlnZ2VyIH0gZnJvbSAnLi90b29sdGlwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xuXG5AVW50aWxEZXN0cm95KClcbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thbmdsaWZ5VG9vbHRpcF0nLFxuICBleHBvcnRBczogJ2FuZ2xpZnlUb29sdGlwJyxcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgnYW5nbGlmeVRvb2x0aXAnKSBwdWJsaWMgY29udGVudCE6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gfCBUeXBlPGFueT47XG4gIEBJbnB1dCgndG9vbHRpcE1vdW50aW5nUG9pbnQnKSBwdWJsaWMgbW91bnRpbmdQb2ludDogJ2JvZHknIHwgJ3BhcmVudCcgfCBIVE1MRWxlbWVudCA9ICdwYXJlbnQnO1xuICBASW5wdXQoJ3Rvb2x0aXBIb3Zlck9wZW5EZWxheScpIHB1YmxpYyBob3Zlck9wZW5EZWxheTtcbiAgQElucHV0KCd0b29sdGlwSG92ZXJDbG9zZURlbGF5JykgcHVibGljIGhvdmVyQ2xvc2VEZWxheTtcbiAgQElucHV0KCd0b29sdGlwVG91Y2hPcGVuRGVsYXknKSBwdWJsaWMgdG91Y2hPcGVuRGVsYXk7XG4gIEBJbnB1dCgndG9vbHRpcFRvdWNoQ2xvc2VEZWxheScpIHB1YmxpYyB0b3VjaENsb3NlRGVsYXk7XG4gIC8qKiBQcmV2ZW50cyB0aGUgY29udGV4dCBtZW51IGZyb20gb3BlbmluZyB3aGVuIHRoZSBob3N0IGlzIGxvbmcgcHJlc3NlZC4gKi9cbiAgQElucHV0KCkgcHVibGljIHByZXZlbnRDb250ZXh0TWVudU9uVG91Y2hEZXZpY2U6IEJvb2xlYW5MaWtlO1xuICAvKiogQWxsb3dzIHlvdSB0byBkZWZpbmUgd2hldGhlciB0aGUgdG9vbHRpcCBpcyBvcGVuZWQgd2l0aCBhIHF1aWNrIHByZXNzIG9yIHdpdGggYSBsb25nIHByZXNzLiAqL1xuICBASW5wdXQoKSBwdWJsaWMgdG9vbHRpcE1vYmlsZVRyaWdnZXI6IFRvb2x0aXBUb3VjaFRyaWdnZXI7XG4gIEBJbnB1dCgpIHB1YmxpYyBhdXRvQ2xvc2VPblRvdWNoRGV2aWNlc0FmdGVyRGVsYXk6IEJvb2xlYW5MaWtlO1xuXG4gIC8qKiBEaXN0YW5jZSBiZXR3ZWVuIHRoZSB0b29sdGlwIGFuZCB0aGUgaG9zdCBlbGVtZW50ICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgb2Zmc2V0KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9vZmZzZXQgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLm9mZnNldCA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgb2Zmc2V0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX29mZnNldDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcG9zaXRpb24odmFsdWU6IFRvb2x0aXBQb3NpdGlvbikge1xuICAgIHRoaXMuX3Bvc2l0aW9uID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5wb3NpdGlvbiA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgcG9zaXRpb24oKTogVG9vbHRpcFBvc2l0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fcG9zaXRpb247XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNvbnRlbnRDbGFzcyh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fY29udGVudENsYXNzID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5jb250ZW50Q2xhc3MgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbnRlbnRDbGFzcygpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9jb250ZW50Q2xhc3M7XG4gIH1cblxuICBwcml2YXRlIF9wb3NpdGlvbjogVG9vbHRpcFBvc2l0aW9uID0gREVGQVVMVF9UT09MVElQX1NFVFRJTkdTLnBvc2l0aW9uO1xuICBwcml2YXRlIF9vZmZzZXQgPSBERUZBVUxUX1RPT0xUSVBfU0VUVElOR1MuZGVmYXVsdE9mZnNldDtcbiAgcHJpdmF0ZSBfY29udGVudENsYXNzPzogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VG9vbHRpcENvbXBvbmVudD4gfCB1bmRlZmluZWQ7IC8vIFRvb2x0aXAgQ29tcG9uZW50IFJlZmVyZW5jZVxuICBwcml2YXRlIGVtYmVkZGVkVmlldzogRW1iZWRkZWRWaWV3UmVmPGFueT4gfCB1bmRlZmluZWQ7IC8vIFRvb2x0aXAgQ29udGVudCBUZW1wbGF0ZSBSZWZlcmVuY2VcblxuICBwcml2YXRlIHJlYWRvbmx5IF9vcGVuQWN0aW9uID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jbG9zZUFjdGlvbiA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdmlzaWJsZUhhbmRsZXIkID0gbWVyZ2UoXG4gICAgdGhpcy5fb3BlbkFjdGlvbi5waXBlKFxuICAgICAgbWVyZ2VNYXAob3BlbkRlbGF5ID0+XG4gICAgICAgIG9mKG9wZW5EZWxheSkucGlwZShcbiAgICAgICAgICBkZWxheShvcGVuRGVsYXkpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9jbG9zZUFjdGlvbiksXG4gICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlKCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKSxcbiAgICAgIHJlcGVhdCgpXG4gICAgKSxcbiAgICB0aGlzLl9jbG9zZUFjdGlvbi5waXBlKFxuICAgICAgbWVyZ2VNYXAoY2xvc2VEZWxheSA9PlxuICAgICAgICBvZihjbG9zZURlbGF5KS5waXBlKFxuICAgICAgICAgIGRlbGF5KGNsb3NlRGVsYXkpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vcGVuQWN0aW9uKSxcbiAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5fZGV0YWNoKCkpXG4gICAgICAgIClcbiAgICAgICksXG4gICAgICByZXBlYXQoKVxuICAgIClcbiAgKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVE9PTFRJUF9TRVRUSU5HUykgcHJpdmF0ZSByZWFkb25seSBzZXR0aW5ncz86IFJlcXVpcmVkPFRvb2x0aXBTZXR0aW5ncz5cbiAgKSB7XG4gICAgY29uc3QgbWVyZ2VkU2V0dGluZ3M6IFJlcXVpcmVkPFRvb2x0aXBTZXR0aW5ncz4gPSBPYmplY3QuYXNzaWduKHt9LCBERUZBVUxUX1RPT0xUSVBfU0VUVElOR1MsIHRoaXMuc2V0dGluZ3MpO1xuICAgIHRoaXMucG9zaXRpb24gPSBtZXJnZWRTZXR0aW5ncy5wb3NpdGlvbjtcbiAgICB0aGlzLmhvdmVyT3BlbkRlbGF5ID0gbWVyZ2VkU2V0dGluZ3MuaG92ZXJPcGVuRGVsYXk7XG4gICAgdGhpcy5ob3ZlckNsb3NlRGVsYXkgPSBtZXJnZWRTZXR0aW5ncy5ob3ZlckNsb3NlRGVsYXk7XG4gICAgdGhpcy50b3VjaE9wZW5EZWxheSA9IG1lcmdlZFNldHRpbmdzLnRvdWNoT3BlbkRlbGF5O1xuICAgIHRoaXMudG91Y2hDbG9zZURlbGF5ID0gbWVyZ2VkU2V0dGluZ3MudG91Y2hDbG9zZURlbGF5O1xuICAgIHRoaXMucHJldmVudENvbnRleHRNZW51T25Ub3VjaERldmljZSA9IG1lcmdlZFNldHRpbmdzLnByZXZlbnRDb250ZXh0TWVudU9uVG91Y2hEZXZpY2U7XG4gICAgdGhpcy50b29sdGlwTW9iaWxlVHJpZ2dlciA9IG1lcmdlZFNldHRpbmdzLm1vYmlsZVRyaWdnZXI7XG4gICAgdGhpcy5vZmZzZXQgPSBtZXJnZWRTZXR0aW5ncy5kZWZhdWx0T2Zmc2V0O1xuICAgIHRoaXMuYXV0b0Nsb3NlT25Ub3VjaERldmljZXNBZnRlckRlbGF5ID0gbWVyZ2VkU2V0dGluZ3MuYXV0b0Nsb3NlT25Ub3VjaERldmljZXNBZnRlckRlbGF5O1xuXG4gICAgdGhpcy5fdmlzaWJsZUhhbmRsZXIkLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2RldGFjaCgpO1xuICB9XG5cbiAgcHVibGljIG9wZW4oZGVsYXkgPSAwKTogdm9pZCB7XG4gICAgdGhpcy5fb3BlbkFjdGlvbi5uZXh0KGRlbGF5KTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZShkZWxheSA9IDApOiB2b2lkIHtcbiAgICB0aGlzLl9jbG9zZUFjdGlvbi5uZXh0KGRlbGF5KTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGUoZGVsYXkgPSAwKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnRSZWYgPyB0aGlzLl9jbG9zZUFjdGlvbi5uZXh0KGRlbGF5KSA6IHRoaXMuX29wZW5BY3Rpb24ubmV4dChkZWxheSk7XG4gIH1cblxuICBwcml2YXRlIF9kZXRhY2goKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnRSZWY/LmRlc3Ryb3koKTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmVtYmVkZGVkVmlldz8uZGVzdHJveSgpO1xuICAgIHRoaXMuZW1iZWRkZWRWaWV3ID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG4gIHByaXZhdGUgb25PcGVuRXZlbnREZXNrdG9wKCk6IHZvaWQge1xuICAgIGlmIChpc1RvdWNoRGV2aWNlKCkpIHJldHVybjtcbiAgICB0aGlzLm9wZW4odGhpcy5ob3Zlck9wZW5EZWxheSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcignY29udGV4dG1lbnUnLCBbJyRldmVudCddKVxuICBwcml2YXRlIG9uT3BlbkV2ZW50TW9iaWxlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICghaXNUb3VjaERldmljZSgpKSByZXR1cm47XG4gICAgaWYgKHRoaXMudG9vbHRpcE1vYmlsZVRyaWdnZXIgPT09ICdsb25nJyAmJiBldmVudC50eXBlID09PSAndG91Y2hzdGFydCcpIHJldHVybjtcbiAgICBpZiAodGhpcy50b29sdGlwTW9iaWxlVHJpZ2dlciA9PT0gJ3Nob3J0JyAmJiBldmVudC50eXBlID09PSAnY29udGV4dG1lbnUnKSByZXR1cm47XG4gICAgaWYgKGlzQm9vbGVhbkxpa2VUcnVlKHRoaXMucHJldmVudENvbnRleHRNZW51T25Ub3VjaERldmljZSkgfHwgaXNCb29sZWFuTGlrZVRydWUodGhpcy5hdXRvQ2xvc2VPblRvdWNoRGV2aWNlc0FmdGVyRGVsYXkpKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICB0aGlzLm9wZW4odGhpcy50b3VjaE9wZW5EZWxheSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd0b3VjaGVuZCcpXG4gIHByaXZhdGUgYXV0b0Nsb3NlT25Nb2JpbGUoKTogdm9pZCB7XG4gICAgaWYgKCFpc0Jvb2xlYW5MaWtlVHJ1ZSh0aGlzLmF1dG9DbG9zZU9uVG91Y2hEZXZpY2VzQWZ0ZXJEZWxheSkpIHJldHVybjtcbiAgICBpZiAoIWlzVG91Y2hEZXZpY2UoKSkgcmV0dXJuO1xuICAgIHRoaXMuY2xvc2UodGhpcy50b3VjaENsb3NlRGVsYXkpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCcsICckZXZlbnQudGFyZ2V0J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNvbnRleHRtZW51JywgWyckZXZlbnQnLCAnJGV2ZW50LnRhcmdldCddKVxuICBwdWJsaWMgb25DbGlja091dHNpZGUoZXZlbnQ6IE1vdXNlRXZlbnQsIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbXBvbmVudFJlZikgcmV0dXJuO1xuICAgIGlmICghQm9vbGVhbih0YXJnZXRFbGVtZW50KSkgcmV0dXJuO1xuICAgIGNvbnN0IGNsaWNrZWRJbnNpZGUgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcbiAgICBpZiAoIWNsaWNrZWRJbnNpZGUpIHRoaXMuY2xvc2UoMCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgcHJpdmF0ZSBvbkNsb3NlRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZShpc1RvdWNoRGV2aWNlKCkgPyB0aGlzLnRvdWNoQ2xvc2VEZWxheSA6IHRoaXMuaG92ZXJDbG9zZURlbGF5KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikgcmV0dXJuO1xuICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLnJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFRvb2x0aXBDb21wb25lbnQpO1xuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogJ3Rvb2x0aXBDb25maWcnLCB1c2VWYWx1ZTogeyBob3N0OiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCB9IH1dLFxuICAgIH0pO1xuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5LCAwLCBpbmplY3RvciwgdGhpcy5nZW5lcmF0ZU5nQ29udGVudCgpKTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5wb3NpdGlvbiA9IHRoaXMucG9zaXRpb247XG4gICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2Uub2Zmc2V0ID0gdGhpcy5vZmZzZXQ7XG4gICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuY29udGVudENsYXNzID0gdGhpcy5jb250ZW50Q2xhc3M7XG5cbiAgICB0aGlzLmNoYW5nZU1vdW50aW5nUG9pbnQoKTtcbiAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZU5nQ29udGVudCgpOiBhbnlbXVtdIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBbW3RoaXMucmVuZGVyZXIuY3JlYXRlVGV4dCh0aGlzLmNvbnRlbnQpXV07XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbnRlbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgdGhpcy5lbWJlZGRlZFZpZXcgPSB0aGlzLmNvbnRlbnQuY3JlYXRlRW1iZWRkZWRWaWV3KHt9KTtcbiAgICAgIHRoaXMuYXBwbGljYXRpb25SZWYuYXR0YWNoVmlldyh0aGlzLmVtYmVkZGVkVmlldyk7XG4gICAgICByZXR1cm4gW3RoaXMuZW1iZWRkZWRWaWV3LnJvb3ROb2Rlc107XG4gICAgfVxuICAgIHJldHVybiBbW3RoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy5jb250ZW50KS5jcmVhdGUodGhpcy5pbmplY3RvcildXTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlTW91bnRpbmdQb2ludCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVmKSByZXR1cm47XG4gICAgaWYgKHRoaXMubW91bnRpbmdQb2ludCA9PT0gJ3BhcmVudCcpIHtcbiAgICB9IGVsc2UgaWYgKHRoaXMubW91bnRpbmdQb2ludCA9PT0gJ2JvZHknKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMuY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMubW91bnRpbmdQb2ludCwgdGhpcy5jb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICB9XG59XG4iXX0= |
export {}; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmdsaWZ5L3NyYy9tb2R1bGVzL3Rvb2x0aXAvdG9vbHRpcC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFRvb2x0aXBUb3VjaFRyaWdnZXIgPSAnc2hvcnQnIHwgJ2xvbmcnO1xuXG5leHBvcnQgdHlwZSBUb29sdGlwUG9zaXRpb24gPSAnVE9QJyB8ICdSSUdIVCcgfCAnQk9UVE9NJyB8ICdMRUZUJztcblxuZXhwb3J0IGludGVyZmFjZSBUb29sdGlwU2V0dGluZ3Mge1xuICBwb3NpdGlvbj86IFRvb2x0aXBQb3NpdGlvbjtcbiAgb3BlbkRlbGF5PzogbnVtYmVyO1xuICBjbG9zZURlbGF5PzogbnVtYmVyO1xuICBwcmV2ZW50Q29udGV4dE1lbnVPblRvdWNoRGV2aWNlPzogYm9vbGVhbjtcbiAgbW9iaWxlVHJpZ2dlcj86IFRvb2x0aXBUb3VjaFRyaWdnZXI7XG4gIGRlZmF1bHRPZmZzZXQ/OiBudW1iZXI7XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmdsaWZ5L3NyYy9tb2R1bGVzL3Rvb2x0aXAvdG9vbHRpcC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFRvb2x0aXBUb3VjaFRyaWdnZXIgPSAnc2hvcnQnIHwgJ2xvbmcnO1xuXG5leHBvcnQgdHlwZSBUb29sdGlwUG9zaXRpb24gPSAndG9wJyB8ICdyaWdodCcgfCAnYm90dG9tJyB8ICdsZWZ0JztcblxuZXhwb3J0IHR5cGUgVG9vbHRpcE1vdW50aW5nUG9pbnQgPSBIVE1MRWxlbWVudCB8ICdib2R5JyB8ICdwYXJlbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRvb2x0aXBTZXR0aW5ncyB7XG4gIHBvc2l0aW9uPzogVG9vbHRpcFBvc2l0aW9uO1xuICBob3Zlck9wZW5EZWxheT86IG51bWJlcjtcbiAgdG91Y2hPcGVuRGVsYXk/OiBudW1iZXI7XG4gIGhvdmVyQ2xvc2VEZWxheT86IG51bWJlcjtcbiAgdG91Y2hDbG9zZURlbGF5PzogbnVtYmVyO1xuICBwcmV2ZW50Q29udGV4dE1lbnVPblRvdWNoRGV2aWNlPzogYm9vbGVhbjtcbiAgbW9iaWxlVHJpZ2dlcj86IFRvb2x0aXBUb3VjaFRyaWdnZXI7XG4gIGRlZmF1bHRPZmZzZXQ/OiBudW1iZXI7XG4gIGF1dG9DbG9zZU9uVG91Y2hEZXZpY2VzQWZ0ZXJEZWxheT86IGJvb2xlYW47XG59XG4iXX0= |
import { NgModule } from '@angular/core'; | ||
import { TooltipComponent } from './components/tooltip/tooltip.component'; | ||
import { DEFAULT_TOOLTIP_SETTINGS, TOOLTIP_SETTINGS } from './tooltip-settings.token'; | ||
import { TooltipDirective } from './tooltip.directive'; | ||
import { DEFAULT_TOOLTIP_SETTINGS, TOOLTIP_SETTINGS } from './tooltip-settings.token'; | ||
import { CommonModule } from '@angular/common'; | ||
import * as i0 from "@angular/core"; | ||
@@ -15,11 +17,12 @@ export class TooltipModule { | ||
TooltipModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: TooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); | ||
TooltipModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: TooltipModule, declarations: [TooltipDirective], exports: [TooltipDirective] }); | ||
TooltipModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: TooltipModule }); | ||
TooltipModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: TooltipModule, declarations: [TooltipDirective, TooltipComponent], imports: [CommonModule], exports: [TooltipDirective] }); | ||
TooltipModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: TooltipModule, imports: [[CommonModule]] }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: TooltipModule, decorators: [{ | ||
type: NgModule, | ||
args: [{ | ||
declarations: [TooltipDirective], | ||
declarations: [TooltipDirective, TooltipComponent], | ||
exports: [TooltipDirective], | ||
imports: [CommonModule], | ||
}] | ||
}] }); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmdsaWZ5L3NyYy9tb2R1bGVzL3Rvb2x0aXAvdG9vbHRpcC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBTXRGLE1BQU0sT0FBTyxhQUFhO0lBQ2pCLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBeUI7UUFDN0MsTUFBTSxjQUFjLEdBQThCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLHdCQUF3QixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXhHLE9BQU87WUFDTCxRQUFRLEVBQUUsYUFBYTtZQUN2QixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLENBQUM7U0FDckUsQ0FBQztJQUNKLENBQUM7OzBHQVJVLGFBQWE7MkdBQWIsYUFBYSxpQkFIVCxnQkFBZ0IsYUFDckIsZ0JBQWdCOzJHQUVmLGFBQWE7MkZBQWIsYUFBYTtrQkFKekIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDaEMsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuL3Rvb2x0aXAuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRvb2x0aXBTZXR0aW5ncyB9IGZyb20gJy4vdG9vbHRpcC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgREVGQVVMVF9UT09MVElQX1NFVFRJTkdTLCBUT09MVElQX1NFVFRJTkdTIH0gZnJvbSAnLi90b29sdGlwLXNldHRpbmdzLnRva2VuJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbVG9vbHRpcERpcmVjdGl2ZV0sXG4gIGV4cG9ydHM6IFtUb29sdGlwRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcE1vZHVsZSB7XG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChzZXR0aW5nczogVG9vbHRpcFNldHRpbmdzKTogTW9kdWxlV2l0aFByb3ZpZGVyczxUb29sdGlwTW9kdWxlPiB7XG4gICAgY29uc3QgbWVyZ2VkU2V0dGluZ3M6IFJlcXVpcmVkPFRvb2x0aXBTZXR0aW5ncz4gPSBPYmplY3QuYXNzaWduKHt9LCBERUZBVUxUX1RPT0xUSVBfU0VUVElOR1MsIHNldHRpbmdzKTtcblxuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVG9vbHRpcE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVE9PTFRJUF9TRVRUSU5HUywgdXNlVmFsdWU6IG1lcmdlZFNldHRpbmdzIH1dLFxuICAgIH07XG4gIH1cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmdsaWZ5L3NyYy9tb2R1bGVzL3Rvb2x0aXAvdG9vbHRpcC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQU8vQyxNQUFNLE9BQU8sYUFBYTtJQUNqQixNQUFNLENBQUMsT0FBTyxDQUFDLFFBQXlCO1FBQzdDLE1BQU0sY0FBYyxHQUE4QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSx3QkFBd0IsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUV4RyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGFBQWE7WUFDdkIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxDQUFDO1NBQ3JFLENBQUM7SUFDSixDQUFDOzswR0FSVSxhQUFhOzJHQUFiLGFBQWEsaUJBSlQsZ0JBQWdCLEVBQUUsZ0JBQWdCLGFBRXZDLFlBQVksYUFEWixnQkFBZ0I7MkdBR2YsYUFBYSxZQUZmLENBQUMsWUFBWSxDQUFDOzJGQUVaLGFBQWE7a0JBTHpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ2xELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBERUZBVUxUX1RPT0xUSVBfU0VUVElOR1MsIFRPT0xUSVBfU0VUVElOR1MgfSBmcm9tICcuL3Rvb2x0aXAtc2V0dGluZ3MudG9rZW4nO1xuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4vdG9vbHRpcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVG9vbHRpcFNldHRpbmdzIH0gZnJvbSAnLi90b29sdGlwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtUb29sdGlwRGlyZWN0aXZlLCBUb29sdGlwQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1Rvb2x0aXBEaXJlY3RpdmVdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcE1vZHVsZSB7XG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChzZXR0aW5nczogVG9vbHRpcFNldHRpbmdzKTogTW9kdWxlV2l0aFByb3ZpZGVyczxUb29sdGlwTW9kdWxlPiB7XG4gICAgY29uc3QgbWVyZ2VkU2V0dGluZ3M6IFJlcXVpcmVkPFRvb2x0aXBTZXR0aW5ncz4gPSBPYmplY3QuYXNzaWduKHt9LCBERUZBVUxUX1RPT0xUSVBfU0VUVElOR1MsIHNldHRpbmdzKTtcblxuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVG9vbHRpcE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVE9PTFRJUF9TRVRUSU5HUywgdXNlVmFsdWU6IG1lcmdlZFNldHRpbmdzIH1dLFxuICAgIH07XG4gIH1cbn1cbiJdfQ== |
@@ -24,4 +24,4 @@ import { Observable } from 'rxjs'; | ||
export function isTouchDevice() { | ||
return 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0; | ||
return window.matchMedia('(pointer: coarse)').matches; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5nbGlmeS9zcmMvdXRpbHMvZnVuY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEMsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE1BQVksRUFBRSxNQUF3QztJQUN0RixPQUFPLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQy9CLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNyRixnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sR0FBRyxFQUFFO1lBQ1YsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEMsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUFlO0lBQzdDLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDL0IsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDN0UsY0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQixPQUFPLEdBQUcsRUFBRTtZQUNWLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBa0I7SUFDbEQsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxNQUFNLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQztBQUM1RCxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWE7SUFDM0IsT0FBTyxjQUFjLElBQUksTUFBTSxJQUFJLFNBQVMsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7QUFDcEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJvb2xlYW5MaWtlIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGZ1bmN0aW9uIG9ic2VydmVPbk11dGF0aW9uKHRhcmdldDogTm9kZSwgY29uZmlnOiBNdXRhdGlvbk9ic2VydmVySW5pdCB8IHVuZGVmaW5lZCk6IE9ic2VydmFibGU8TXV0YXRpb25SZWNvcmRbXT4ge1xuICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuICAgIGNvbnN0IG11dGF0aW9uT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbnMgPT4gb2JzZXJ2ZXIubmV4dChtdXRhdGlvbnMpKTtcbiAgICBtdXRhdGlvbk9ic2VydmVyLm9ic2VydmUodGFyZ2V0LCBjb25maWcpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBtdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9O1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9ic2VydmVPblJlc2l6ZSh0YXJnZXQ6IEVsZW1lbnQpOiBPYnNlcnZhYmxlPFJlc2l6ZU9ic2VydmVyRW50cnlbXT4ge1xuICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKGVudHJpZXMgPT4gb2JzZXJ2ZXIubmV4dChlbnRyaWVzKSk7XG4gICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0YXJnZXQpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICByZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Jvb2xlYW5MaWtlVHJ1ZSh2YWx1ZTogQm9vbGVhbkxpa2UpOiBib29sZWFuIHtcbiAgcmV0dXJuIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZScgfHwgdmFsdWUgPT09ICcnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUb3VjaERldmljZSgpOiBib29sZWFuIHtcbiAgcmV0dXJuICdvbnRvdWNoc3RhcnQnIGluIHdpbmRvdyB8fCBuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMgPiAwIHx8IG5hdmlnYXRvci5tc01heFRvdWNoUG9pbnRzID4gMDtcbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5nbGlmeS9zcmMvdXRpbHMvZnVuY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEMsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE1BQVksRUFBRSxNQUF3QztJQUN0RixPQUFPLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQy9CLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNyRixnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sR0FBRyxFQUFFO1lBQ1YsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEMsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUFlO0lBQzdDLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDL0IsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDN0UsY0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQixPQUFPLEdBQUcsRUFBRTtZQUNWLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBa0I7SUFDbEQsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxNQUFNLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQztBQUM1RCxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWE7SUFDM0IsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLENBQUMsT0FBTyxDQUFDO0FBQ3hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCb29sZWFuTGlrZSB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBvYnNlcnZlT25NdXRhdGlvbih0YXJnZXQ6IE5vZGUsIGNvbmZpZzogTXV0YXRpb25PYnNlcnZlckluaXQgfCB1bmRlZmluZWQpOiBPYnNlcnZhYmxlPE11dGF0aW9uUmVjb3JkW10+IHtcbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICBjb25zdCBtdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25zID0+IG9ic2VydmVyLm5leHQobXV0YXRpb25zKSk7XG4gICAgbXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKHRhcmdldCwgY29uZmlnKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgbXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvYnNlcnZlT25SZXNpemUodGFyZ2V0OiBFbGVtZW50KTogT2JzZXJ2YWJsZTxSZXNpemVPYnNlcnZlckVudHJ5W10+IHtcbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICBjb25zdCByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihlbnRyaWVzID0+IG9ic2VydmVyLm5leHQoZW50cmllcykpO1xuICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGFyZ2V0KTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgIH07XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNCb29sZWFuTGlrZVRydWUodmFsdWU6IEJvb2xlYW5MaWtlKTogYm9vbGVhbiB7XG4gIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gJ3RydWUnIHx8IHZhbHVlID09PSAnJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVG91Y2hEZXZpY2UoKTogYm9vbGVhbiB7XG4gIHJldHVybiB3aW5kb3cubWF0Y2hNZWRpYSgnKHBvaW50ZXI6IGNvYXJzZSknKS5tYXRjaGVzO1xufVxuIl19 |
import { InjectionToken } from '@angular/core'; | ||
import { TooltipSettings } from './tooltip.interface'; | ||
export declare const TOOLTIP_SETTINGS: InjectionToken<TooltipSettings>; | ||
export declare const TOOLTIP_SETTINGS: InjectionToken<Required<TooltipSettings>>; | ||
export declare const DEFAULT_TOOLTIP_SETTINGS: Required<TooltipSettings>; |
@@ -1,2 +0,2 @@ | ||
import { ChangeDetectorRef, ElementRef, OnDestroy, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core'; | ||
import { ApplicationRef, ChangeDetectorRef, ComponentFactoryResolver, ElementRef, Injector, OnDestroy, Renderer2, TemplateRef, Type, ViewContainerRef } from '@angular/core'; | ||
import { BooleanLike } from '../../utils/interfaces'; | ||
@@ -6,14 +6,16 @@ import { TooltipPosition, TooltipSettings, TooltipTouchTrigger } from './tooltip.interface'; | ||
export declare class TooltipDirective implements OnDestroy { | ||
private readonly elementRef; | ||
private readonly element; | ||
private readonly renderer; | ||
private readonly viewContainerRef; | ||
private readonly changeDetectorRef; | ||
private readonly injector; | ||
private readonly resolver; | ||
private readonly applicationRef; | ||
private readonly cdRef; | ||
private readonly settings?; | ||
template?: TemplateRef<any>; | ||
text?: string; | ||
position: TooltipPosition; | ||
contentClass?: string; | ||
tooltipOpenDelay: number; | ||
tooltipCloseDelay: number; | ||
mountingPoint: HTMLElement; | ||
content: string | TemplateRef<any> | Type<any>; | ||
mountingPoint: 'body' | 'parent' | HTMLElement; | ||
hoverOpenDelay: number; | ||
hoverCloseDelay: number; | ||
touchOpenDelay: number; | ||
touchCloseDelay: number; | ||
/** Prevents the context menu from opening when the host is long pressed. */ | ||
@@ -23,23 +25,34 @@ preventContextMenuOnTouchDevice: BooleanLike; | ||
tooltipMobileTrigger: TooltipTouchTrigger; | ||
private readonly defaultOffset; | ||
private readonly nativeElement; | ||
private tooltip; | ||
autoCloseOnTouchDevicesAfterDelay: BooleanLike; | ||
/** Distance between the tooltip and the host element */ | ||
set offset(value: number); | ||
get offset(): number; | ||
set position(value: TooltipPosition); | ||
get position(): TooltipPosition; | ||
set contentClass(value: string | undefined); | ||
get contentClass(): string | undefined; | ||
private _position; | ||
private _offset; | ||
private _contentClass?; | ||
private componentRef; | ||
private embeddedView; | ||
private readonly _openAction; | ||
private readonly _closeAction; | ||
private readonly _repositionAction; | ||
private readonly _visibleHandler$; | ||
private readonly _repositionHandler$; | ||
constructor(elementRef: ElementRef, renderer: Renderer2, viewContainerRef: ViewContainerRef, changeDetectorRef: ChangeDetectorRef, settings?: TooltipSettings | undefined); | ||
constructor(element: ElementRef, renderer: Renderer2, viewContainerRef: ViewContainerRef, injector: Injector, resolver: ComponentFactoryResolver, applicationRef: ApplicationRef, cdRef: ChangeDetectorRef, settings?: Required<TooltipSettings> | undefined); | ||
ngOnDestroy(): void; | ||
open(delay?: number): void; | ||
close(delay?: number): void; | ||
toggle(delay?: number): void; | ||
private _detach; | ||
private onOpenEventDesktop; | ||
private onCloseEventDesktop; | ||
private onOpenEventMobile; | ||
private onCloseEventMobile; | ||
private autoCloseOnMobile; | ||
onClickOutside(event: MouseEvent, targetElement: HTMLElement): void; | ||
private onCloseEvent; | ||
private create; | ||
private setPosition; | ||
ngOnDestroy(): void; | ||
static ɵfac: i0.ɵɵFactoryDeclaration<TooltipDirective, [null, null, null, null, { optional: true; }]>; | ||
static ɵdir: i0.ɵɵDirectiveDeclaration<TooltipDirective, "[anglifyTooltip]", ["anglifyTooltip"], { "text": "anglifyTooltip"; "position": "position"; "contentClass": "content-class"; "tooltipOpenDelay": "tooltipOpenDelay"; "tooltipCloseDelay": "tooltipCloseDelay"; "mountingPoint": "tooltipMountingPoint"; "preventContextMenuOnTouchDevice": "preventContextMenuOnTouchDevice"; "tooltipMobileTrigger": "tooltipMobileTrigger"; }, {}, ["template"]>; | ||
private generateNgContent; | ||
private changeMountingPoint; | ||
static ɵfac: i0.ɵɵFactoryDeclaration<TooltipDirective, [null, null, null, null, null, null, null, { optional: true; }]>; | ||
static ɵdir: i0.ɵɵDirectiveDeclaration<TooltipDirective, "[anglifyTooltip]", ["anglifyTooltip"], { "content": "anglifyTooltip"; "mountingPoint": "tooltipMountingPoint"; "hoverOpenDelay": "tooltipHoverOpenDelay"; "hoverCloseDelay": "tooltipHoverCloseDelay"; "touchOpenDelay": "tooltipTouchOpenDelay"; "touchCloseDelay": "tooltipTouchCloseDelay"; "preventContextMenuOnTouchDevice": "preventContextMenuOnTouchDevice"; "tooltipMobileTrigger": "tooltipMobileTrigger"; "autoCloseOnTouchDevicesAfterDelay": "autoCloseOnTouchDevicesAfterDelay"; "offset": "offset"; "position": "position"; "contentClass": "contentClass"; }, {}, never>; | ||
} |
export declare type TooltipTouchTrigger = 'short' | 'long'; | ||
export declare type TooltipPosition = 'TOP' | 'RIGHT' | 'BOTTOM' | 'LEFT'; | ||
export declare type TooltipPosition = 'top' | 'right' | 'bottom' | 'left'; | ||
export declare type TooltipMountingPoint = HTMLElement | 'body' | 'parent'; | ||
export interface TooltipSettings { | ||
position?: TooltipPosition; | ||
openDelay?: number; | ||
closeDelay?: number; | ||
hoverOpenDelay?: number; | ||
touchOpenDelay?: number; | ||
hoverCloseDelay?: number; | ||
touchCloseDelay?: number; | ||
preventContextMenuOnTouchDevice?: boolean; | ||
mobileTrigger?: TooltipTouchTrigger; | ||
defaultOffset?: number; | ||
autoCloseOnTouchDevicesAfterDelay?: boolean; | ||
} |
@@ -5,7 +5,9 @@ import { ModuleWithProviders } from '@angular/core'; | ||
import * as i1 from "./tooltip.directive"; | ||
import * as i2 from "./components/tooltip/tooltip.component"; | ||
import * as i3 from "@angular/common"; | ||
export declare class TooltipModule { | ||
static forRoot(settings: TooltipSettings): ModuleWithProviders<TooltipModule>; | ||
static ɵfac: i0.ɵɵFactoryDeclaration<TooltipModule, never>; | ||
static ɵmod: i0.ɵɵNgModuleDeclaration<TooltipModule, [typeof i1.TooltipDirective], never, [typeof i1.TooltipDirective]>; | ||
static ɵmod: i0.ɵɵNgModuleDeclaration<TooltipModule, [typeof i1.TooltipDirective, typeof i2.TooltipComponent], [typeof i3.CommonModule], [typeof i1.TooltipDirective]>; | ||
static ɵinj: i0.ɵɵInjectorDeclaration<TooltipModule>; | ||
} |
{ | ||
"name": "@anglify/components", | ||
"version": "0.9.1", | ||
"version": "0.10.0", | ||
"peerDependencies": { | ||
@@ -5,0 +5,0 @@ "@angular/common": "^12.1.0", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
1073158
85
6697