@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
152 lines • 10.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: tooltip.directive.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Directive, HostListener, Input, ComponentFactoryResolver, ElementRef, } from '@angular/core';
import { OverlayContainerRef } from '@duoduo-oba/ng-devui/overlay-container';
import { TooltipComponent } from './tooltip.component';
export class TooltipDirective {
/**
* @param {?} triggerElementRef
* @param {?} overlayContainerRef
* @param {?} componentFactoryResolver
*/
constructor(triggerElementRef, overlayContainerRef, componentFactoryResolver) {
this.triggerElementRef = triggerElementRef;
this.overlayContainerRef = overlayContainerRef;
this.componentFactoryResolver = componentFactoryResolver;
this.position = 'bottom';
}
/**
* @return {?}
*/
onMouseEnter() {
this.show();
}
/**
* @return {?}
*/
onMouseLeave() {
this.hide();
}
/**
* @return {?}
*/
onFocus() {
this.show();
}
/**
* @return {?}
*/
onBlur() {
this.hide();
}
/**
* @return {?}
*/
createTooltip() {
this.tooltipComponentRef = this.overlayContainerRef.createComponent(this.componentFactoryResolver.resolveComponentFactory(TooltipComponent));
Object.assign(this.tooltipComponentRef.instance, {
content: this.content,
position: this.position,
showAnimate: this.showAnimate,
triggerElementRef: this.triggerElementRef,
});
}
/**
* @return {?}
*/
show() {
if (!this.content) {
return;
}
if (this.tooltipComponentRef) {
this.destroy();
}
this.createTooltip();
if (this.showAnimate) {
this.tooltipComponentRef.instance.onShow();
}
}
/**
* @return {?}
*/
destroy() {
if (this.tooltipComponentRef) {
this.tooltipComponentRef.destroy();
this.tooltipComponentRef = null;
}
}
/**
* @return {?}
*/
hide() {
if (this.tooltipComponentRef) {
this.tooltipComponentRef.instance.onHide();
if (!this.showAnimate) {
this.destroy();
return;
}
this.tooltipComponentRef.instance.onHidden = (/**
* @return {?}
*/
() => {
this.destroy();
});
}
}
/**
* @return {?}
*/
ngOnDestroy() {
this.destroy();
}
}
TooltipDirective.decorators = [
{ type: Directive, args: [{
selector: '[dTooltip]',
exportAs: 'dTooltip',
},] }
];
/** @nocollapse */
TooltipDirective.ctorParameters = () => [
{ type: ElementRef },
{ type: OverlayContainerRef },
{ type: ComponentFactoryResolver }
];
TooltipDirective.propDecorators = {
content: [{ type: Input }],
position: [{ type: Input }],
showAnimate: [{ type: Input }],
onMouseEnter: [{ type: HostListener, args: ['mouseenter',] }],
onMouseLeave: [{ type: HostListener, args: ['mouseleave',] }],
onFocus: [{ type: HostListener, args: ['focus',] }],
onBlur: [{ type: HostListener, args: ['blur',] }]
};
if (false) {
/** @type {?} */
TooltipDirective.prototype.content;
/** @type {?} */
TooltipDirective.prototype.position;
/** @type {?} */
TooltipDirective.prototype.showAnimate;
/** @type {?} */
TooltipDirective.prototype.tooltipComponentRef;
/**
* @type {?}
* @private
*/
TooltipDirective.prototype.triggerElementRef;
/**
* @type {?}
* @private
*/
TooltipDirective.prototype.overlayContainerRef;
/**
* @type {?}
* @private
*/
TooltipDirective.prototype.componentFactoryResolver;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1kZXZ1aS90b29sdGlwLyIsInNvdXJjZXMiOlsidG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsd0JBQXdCLEVBRXhCLFVBQVUsR0FFWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU92RCxNQUFNLE9BQU8sZ0JBQWdCOzs7Ozs7SUFNM0IsWUFBb0IsaUJBQTZCLEVBQzdCLG1CQUF3QyxFQUN4Qyx3QkFBa0Q7UUFGbEQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFZO1FBQzdCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQU43RCxhQUFRLEdBQWlCLFFBQVEsQ0FBQztJQU94QyxDQUFDOzs7O0lBRXdCLFlBQVk7UUFDdEMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQzs7OztJQUUyQixZQUFZO1FBQ3RDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7Ozs7SUFFc0IsT0FBTztRQUM1QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDOzs7O0lBRXFCLE1BQU07UUFDMUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQzs7OztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FDakUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLGdCQUFnQixDQUFDLENBQ3hFLENBQUM7UUFFRixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUU7WUFDL0MsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtTQUMxQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLE9BQU87U0FDUjtRQUVELElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzVCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNoQjtRQUVELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUM1QztJQUNILENBQUM7Ozs7SUFFRCxPQUFPO1FBQ0wsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7U0FDakM7SUFDSCxDQUFDOzs7O0lBRUQsSUFBSTtRQUNGLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzVCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDZixPQUFPO2FBQ1I7WUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLFFBQVE7OztZQUFHLEdBQUcsRUFBRTtnQkFDaEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLENBQUMsQ0FBQSxDQUFDO1NBQ0g7SUFDSCxDQUFDOzs7O0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDOzs7WUFqRkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxZQUFZO2dCQUN0QixRQUFRLEVBQUUsVUFBVTthQUNyQjs7OztZQVZDLFVBQVU7WUFHSCxtQkFBbUI7WUFMMUIsd0JBQXdCOzs7c0JBY3ZCLEtBQUs7dUJBQ0wsS0FBSzswQkFDTCxLQUFLOzJCQVFMLFlBQVksU0FBQyxZQUFZOzJCQUl6QixZQUFZLFNBQUMsWUFBWTtzQkFJekIsWUFBWSxTQUFDLE9BQU87cUJBSXBCLFlBQVksU0FBQyxNQUFNOzs7O0lBdEJwQixtQ0FBeUI7O0lBQ3pCLG9DQUEyQzs7SUFDM0MsdUNBQThCOztJQUM5QiwrQ0FBb0Q7Ozs7O0lBRXhDLDZDQUFxQzs7Ozs7SUFDckMsK0NBQWdEOzs7OztJQUNoRCxvREFBMEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5wdXQsXHJcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIENvbXBvbmVudFJlZixcclxuICBFbGVtZW50UmVmLFxyXG4gIE9uRGVzdHJveSxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT3ZlcmxheUNvbnRhaW5lclJlZiB9IGZyb20gJ25nLWRldnVpL292ZXJsYXktY29udGFpbmVyJztcclxuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vdG9vbHRpcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQb3NpdGlvblR5cGUgfSBmcm9tICcuL3Rvb2x0aXAudHlwZXMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbZFRvb2x0aXBdJyxcclxuICBleHBvcnRBczogJ2RUb29sdGlwJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRvb2x0aXBEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGNvbnRlbnQ6IHN0cmluZztcclxuICBASW5wdXQoKSBwb3NpdGlvbjogUG9zaXRpb25UeXBlID0gJ2JvdHRvbSc7XHJcbiAgQElucHV0KCkgc2hvd0FuaW1hdGU6IGJvb2xlYW47XHJcbiAgdG9vbHRpcENvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFRvb2x0aXBDb21wb25lbnQ+O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyaWdnZXJFbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgb3ZlcmxheUNvbnRhaW5lclJlZjogT3ZlcmxheUNvbnRhaW5lclJlZixcclxuICAgICAgICAgICAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyXHJcbiAgKSB7fVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJykgb25Nb3VzZUVudGVyKCkge1xyXG4gICAgdGhpcy5zaG93KCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJykgb25Nb3VzZUxlYXZlKCkge1xyXG4gICAgdGhpcy5oaWRlKCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdmb2N1cycpIG9uRm9jdXMoKSB7XHJcbiAgICB0aGlzLnNob3coKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKSBvbkJsdXIoKSB7XHJcbiAgICB0aGlzLmhpZGUoKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZVRvb2x0aXAoKSB7XHJcbiAgICB0aGlzLnRvb2x0aXBDb21wb25lbnRSZWYgPSB0aGlzLm92ZXJsYXlDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFxyXG4gICAgICB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShUb29sdGlwQ29tcG9uZW50KVxyXG4gICAgKTtcclxuXHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMudG9vbHRpcENvbXBvbmVudFJlZi5pbnN0YW5jZSwge1xyXG4gICAgICBjb250ZW50OiB0aGlzLmNvbnRlbnQsXHJcbiAgICAgIHBvc2l0aW9uOiB0aGlzLnBvc2l0aW9uLFxyXG4gICAgICBzaG93QW5pbWF0ZTogdGhpcy5zaG93QW5pbWF0ZSxcclxuICAgICAgdHJpZ2dlckVsZW1lbnRSZWY6IHRoaXMudHJpZ2dlckVsZW1lbnRSZWYsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNob3coKSB7XHJcbiAgICBpZiAoIXRoaXMuY29udGVudCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMudG9vbHRpcENvbXBvbmVudFJlZikge1xyXG4gICAgICB0aGlzLmRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNyZWF0ZVRvb2x0aXAoKTtcclxuICAgIGlmICh0aGlzLnNob3dBbmltYXRlKSB7XHJcbiAgICAgIHRoaXMudG9vbHRpcENvbXBvbmVudFJlZi5pbnN0YW5jZS5vblNob3coKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy50b29sdGlwQ29tcG9uZW50UmVmKSB7XHJcbiAgICAgIHRoaXMudG9vbHRpcENvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMudG9vbHRpcENvbXBvbmVudFJlZiA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoaWRlKCkge1xyXG4gICAgaWYgKHRoaXMudG9vbHRpcENvbXBvbmVudFJlZikge1xyXG4gICAgICB0aGlzLnRvb2x0aXBDb21wb25lbnRSZWYuaW5zdGFuY2Uub25IaWRlKCk7XHJcbiAgICAgIGlmICghdGhpcy5zaG93QW5pbWF0ZSkge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRvb2x0aXBDb21wb25lbnRSZWYuaW5zdGFuY2Uub25IaWRkZW4gPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95KCk7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuZGVzdHJveSgpO1xyXG4gIH1cclxufVxyXG4iXX0=