lct-components
Version:
LCT basic components
59 lines • 6.92 kB
JavaScript
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==