UNPKG

lct-components

Version:
59 lines 6.92 kB
import { Directive, HostListener, Input } from '@angular/core'; import { TooltipComponent } from "./tooltip/tooltip.component"; import * as i0 from "@angular/core"; export class TooltipDirective { constructor(renderer, viewContainerRef, resolver) { this.renderer = renderer; this.viewContainerRef = viewContainerRef; this.resolver = resolver; this.tooltipText = ''; this.secondaryMessage = ''; this.position = 'top'; this.color = 'primary'; this.marginBottom = ''; } onMouseEnter() { const componentFactory = this.resolver.resolveComponentFactory(TooltipComponent); const componentRef = this.viewContainerRef.createComponent(componentFactory); if (this.tooltipText) { componentRef.instance.message = this.tooltipText; } if (this.secondaryMessage) { componentRef.instance.secondaryMessage = this.secondaryMessage; } if (this.marginBottom) { componentRef.instance.marginBottom = this.marginBottom; } componentRef.instance.classes = `${this.position} ${this.color} `; } onMouseLeave() { if (this.viewContainerRef) { this.viewContainerRef.clear(); } } } TooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: TooltipDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Directive }); TooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.5", type: TooltipDirective, selector: "[lctTooltip]", inputs: { tooltipText: "tooltipText", secondaryMessage: "secondaryMessage", position: "position", color: "color", marginBottom: "marginBottom" }, host: { listeners: { "mouseover": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: TooltipDirective, decorators: [{ type: Directive, args: [{ selector: '[lctTooltip]', }] }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }]; }, propDecorators: { tooltipText: [{ type: Input }], secondaryMessage: [{ type: Input }], position: [{ type: Input }], color: [{ type: Input }], marginBottom: [{ type: Input }], onMouseEnter: [{ type: HostListener, args: ["mouseover"] }], onMouseLeave: [{ type: HostListener, args: ["mouseleave"] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9sY3QtY29tcG9uZW50cy9zcmMvbGliL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFJTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7QUFLN0QsTUFBTSxPQUFPLGdCQUFnQjtJQUUzQixZQUNVLFFBQW1CLEVBQ25CLGdCQUFrQyxFQUNsQyxRQUFrQztRQUZsQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFHbkMsZ0JBQVcsR0FBVSxFQUFFLENBQUM7UUFDeEIscUJBQWdCLEdBQVksRUFBRSxDQUFDO1FBQy9CLGFBQVEsR0FBNkIsS0FBSyxDQUFDO1FBQzNDLFVBQUssR0FBeUMsU0FBUyxDQUFDO1FBQ3hELGlCQUFZLEdBQVksRUFBRSxDQUFDO0lBTmpDLENBQUM7SUFRdUIsWUFBWTtRQUNyQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNqRixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDN0UsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDbEQ7UUFDRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixZQUFZLENBQUMsUUFBUSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUNoRTtRQUNELElBQUcsSUFBSSxDQUFDLFlBQVksRUFBQztZQUNuQixZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQ3hEO1FBQ0QsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQztJQUVwRSxDQUFDO0lBRTJCLFlBQVk7UUFDdEMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQzs7NkdBbENVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBSDVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7aUJBQ3pCO3NLQVNVLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRXFCLFlBQVk7c0JBQXRDLFlBQVk7dUJBQUMsV0FBVztnQkFnQkcsWUFBWTtzQkFBdkMsWUFBWTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDb21wb25lbnRSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgUmVuZGVyZXIyLFxuICBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUb29sdGlwQ29tcG9uZW50fSBmcm9tIFwiLi90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50XCI7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tsY3RUb29sdGlwXScsXG59KVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBEaXJlY3RpdmUge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICApIHt9XG5cbiAgQElucHV0KCkgdG9vbHRpcFRleHQ6IHN0cmluZz0gJyc7XG4gIEBJbnB1dCgpIHNlY29uZGFyeU1lc3NhZ2U/OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcG9zaXRpb246ICd0b3AnIHwgJ3JpZ2h0JyB8ICdsZWZ0JyA9ICd0b3AnO1xuICBASW5wdXQoKSBjb2xvcjogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAndGVydGlhcnknID0gJ3ByaW1hcnknO1xuICBASW5wdXQoKSBtYXJnaW5Cb3R0b20/OiBzdHJpbmcgPSAnJztcblxuICBASG9zdExpc3RlbmVyKFwibW91c2VvdmVyXCIpIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShUb29sdGlwQ29tcG9uZW50KTtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnkpO1xuICAgIGlmICh0aGlzLnRvb2x0aXBUZXh0KSB7XG4gICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UubWVzc2FnZSA9IHRoaXMudG9vbHRpcFRleHQ7XG4gICAgfVxuICAgIGlmICh0aGlzLnNlY29uZGFyeU1lc3NhZ2UpIHtcbiAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWNvbmRhcnlNZXNzYWdlID0gdGhpcy5zZWNvbmRhcnlNZXNzYWdlO1xuICAgIH1cbiAgICBpZih0aGlzLm1hcmdpbkJvdHRvbSl7XG4gICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UubWFyZ2luQm90dG9tID0gdGhpcy5tYXJnaW5Cb3R0b207XG4gICAgfVxuICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jbGFzc2VzID0gYCR7dGhpcy5wb3NpdGlvbn0gJHt0aGlzLmNvbG9yfSBgO1xuICAgIFxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIikgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgIH1cbiAgfVxufSJdfQ==