@angular-mdl/core
Version:
Angular components, directives and styles based on material design lite https://getmdl.io.
119 lines • 14.4 kB
JavaScript
import { Component, ElementRef, HostBinding, Input, Renderer2, ViewEncapsulation, } from "@angular/core";
import { MdlTooltipPositionService } from "./mdl-tooltip-position.service";
import * as i0 from "@angular/core";
import * as i1 from "./mdl-tooltip-position.service";
const IS_ACTIVE = "is-active";
export class MdlSimpleTooltipComponent {
constructor(elRef, renderer, mdlTooltipPositionService) {
this.elRef = elRef;
this.renderer = renderer;
this.mdlTooltipPositionService = mdlTooltipPositionService;
this.large = false;
this.position = "top";
this.isTooltip = true;
this.tooltipText = "";
this.active = false;
this.element = elRef.nativeElement;
}
get isBottom() {
return this.position === "bottom";
}
get isRight() {
return this.position === "right";
}
get isLeft() {
return this.position === "left";
}
isTop() {
return this.position === "top";
}
mouseLeave() {
if (this.delayTimeout) {
clearTimeout(this.delayTimeout);
}
this.setActive(false);
}
mouseEnter(event) {
if (this.delay) {
this.delayTimeout = setTimeout(() => {
this.show(event.target);
}, this.delay);
}
else {
this.show(event.target);
}
}
isActive() {
return this.active;
}
show(element) {
const props = element.getBoundingClientRect();
const offsetWidth = this.element.offsetWidth;
const offsetHeight = this.element.offsetHeight;
const style = this.mdlTooltipPositionService.calcStyle(offsetWidth, offsetHeight, props, this.position);
for (const key of Object.keys(style)) {
this.renderer.setStyle(this.elRef.nativeElement, key, style[key]);
}
this.setActive(true);
}
setActive(active) {
this.active = active;
if (active) {
this.renderer.addClass(this.elRef.nativeElement, IS_ACTIVE);
}
else {
this.renderer.removeClass(this.elRef.nativeElement, IS_ACTIVE);
}
}
}
MdlSimpleTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MdlSimpleTooltipComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.MdlTooltipPositionService }], target: i0.ɵɵFactoryTarget.Component });
MdlSimpleTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: MdlSimpleTooltipComponent, selector: "mdl-simple-tooltip", inputs: { position: "position", delay: "delay" }, host: { properties: { "class.mdl-tooltip--large": "this.large", "class.mdl-tooltip": "this.isTooltip", "class.mdl-tooltip--bottom": "this.isBottom", "class.mdl-tooltip--right": "this.isRight", "class.mdl-tooltip--left": "this.isLeft", "class.mdl-tooltip--top": "this.isTop" } }, providers: [MdlTooltipPositionService], ngImport: i0, template: "<div>{{tooltipText}}</div>", isInline: true, encapsulation: i0.ViewEncapsulation.None });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MdlSimpleTooltipComponent, decorators: [{
type: Component,
args: [{
selector: "mdl-simple-tooltip",
template: "<div>{{tooltipText}}</div>",
providers: [MdlTooltipPositionService],
encapsulation: ViewEncapsulation.None,
}]
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.MdlTooltipPositionService }]; }, propDecorators: { large: [{
type: HostBinding,
args: ["class.mdl-tooltip--large"]
}], position: [{
type: Input
}], delay: [{
type: Input
}], isTooltip: [{
type: HostBinding,
args: ["class.mdl-tooltip"]
}], isBottom: [{
type: HostBinding,
args: ["class.mdl-tooltip--bottom"]
}], isRight: [{
type: HostBinding,
args: ["class.mdl-tooltip--right"]
}], isLeft: [{
type: HostBinding,
args: ["class.mdl-tooltip--left"]
}], isTop: [{
type: HostBinding,
args: ["class.mdl-tooltip--top"]
}] } });
export class MdlTooltipComponent extends MdlSimpleTooltipComponent {
constructor(elRef, renderer, mdlTooltipPositionService) {
super(elRef, renderer, mdlTooltipPositionService);
}
}
MdlTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MdlTooltipComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.MdlTooltipPositionService }], target: i0.ɵɵFactoryTarget.Component });
MdlTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: MdlTooltipComponent, selector: "mdl-tooltip", providers: [MdlTooltipPositionService], exportAs: ["mdlTooltip"], usesInheritance: true, ngImport: i0, template: "<div><ng-content></ng-content></div>", isInline: true, encapsulation: i0.ViewEncapsulation.None });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MdlTooltipComponent, decorators: [{
type: Component,
args: [{
selector: "mdl-tooltip",
template: "<div><ng-content></ng-content></div>",
exportAs: "mdlTooltip",
providers: [MdlTooltipPositionService],
encapsulation: ViewEncapsulation.None,
}]
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.MdlTooltipPositionService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRsLXRvb2x0aXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3Rvb2x0aXAvbWRsLXRvb2x0aXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBRTNFLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQztBQVE5QixNQUFNLE9BQU8seUJBQXlCO0lBbUJwQyxZQUNVLEtBQWlCLEVBQ2pCLFFBQW1CLEVBQ25CLHlCQUFvRDtRQUZwRCxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQXBCOUQsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUdkLGFBQVEsR0FBd0MsS0FBSyxDQUFDO1FBTXRELGNBQVMsR0FBRyxJQUFJLENBQUM7UUFFakIsZ0JBQVcsR0FBdUIsRUFBRSxDQUFDO1FBR3JDLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFRYixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7SUFDckMsQ0FBQztJQUVELElBQThDLFFBQVE7UUFDcEQsT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBNkMsT0FBTztRQUNsRCxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUE0QyxNQUFNO1FBQ2hELE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUM7SUFDbEMsQ0FBQztJQUVzQyxLQUFLO1FB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QUNFLEtBQWlCLEVBQ2pCLFFBQW1CLEVBQ25CLHlCQUFvRDtRQUVwRCxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO0lBQ3BELENBQUM7O2dIQVBVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHNDQUhuQixDQUFDLHlCQUF5QixDQUFDLDJFQUY1QixzQ0FBc0M7MkZBS3JDLG1CQUFtQjtrQkFQL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFLHNDQUFzQztvQkFDaEQsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUN0QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1kbFRvb2x0aXBQb3NpdGlvblNlcnZpY2UgfSBmcm9tIFwiLi9tZGwtdG9vbHRpcC1wb3NpdGlvbi5zZXJ2aWNlXCI7XG5cbmNvbnN0IElTX0FDVElWRSA9IFwiaXMtYWN0aXZlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtZGwtc2ltcGxlLXRvb2x0aXBcIixcbiAgdGVtcGxhdGU6IFwiPGRpdj57e3Rvb2x0aXBUZXh0fX08L2Rpdj5cIixcbiAgcHJvdmlkZXJzOiBbTWRsVG9vbHRpcFBvc2l0aW9uU2VydmljZV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIE1kbFNpbXBsZVRvb2x0aXBDb21wb25lbnQge1xuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5tZGwtdG9vbHRpcC0tbGFyZ2VcIilcbiAgbGFyZ2UgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwb3NpdGlvbjogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcInRvcFwiIHwgXCJib3R0b21cIiA9IFwidG9wXCI7XG5cbiAgQElucHV0KClcbiAgZGVsYXk6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5tZGwtdG9vbHRpcFwiKVxuICBpc1Rvb2x0aXAgPSB0cnVlO1xuXG4gIHRvb2x0aXBUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQgPSBcIlwiO1xuICBlbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICBhY3RpdmUgPSBmYWxzZTtcbiAgZGVsYXlUaW1lb3V0OiB1bmtub3duO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgbWRsVG9vbHRpcFBvc2l0aW9uU2VydmljZTogTWRsVG9vbHRpcFBvc2l0aW9uU2VydmljZVxuICApIHtcbiAgICB0aGlzLmVsZW1lbnQgPSBlbFJlZi5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MubWRsLXRvb2x0aXAtLWJvdHRvbVwiKSBnZXQgaXNCb3R0b20oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucG9zaXRpb24gPT09IFwiYm90dG9tXCI7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5tZGwtdG9vbHRpcC0tcmlnaHRcIikgZ2V0IGlzUmlnaHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucG9zaXRpb24gPT09IFwicmlnaHRcIjtcbiAgfVxuXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLm1kbC10b29sdGlwLS1sZWZ0XCIpIGdldCBpc0xlZnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucG9zaXRpb24gPT09IFwibGVmdFwiO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MubWRsLXRvb2x0aXAtLXRvcFwiKSBpc1RvcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wb3NpdGlvbiA9PT0gXCJ0b3BcIjtcbiAgfVxuXG4gIG1vdXNlTGVhdmUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGVsYXlUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5kZWxheVRpbWVvdXQgYXMgbnVtYmVyKTtcbiAgICB9XG4gICAgdGhpcy5zZXRBY3RpdmUoZmFsc2UpO1xuICB9XG5cbiAgbW91c2VFbnRlcihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kZWxheSkge1xuICAgICAgdGhpcy5kZWxheVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zaG93KGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG4gICAgICB9LCB0aGlzLmRlbGF5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zaG93KGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgaXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93KGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgY29uc3QgcHJvcHMgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IG9mZnNldFdpZHRoID0gdGhpcy5lbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIGNvbnN0IG9mZnNldEhlaWdodCA9IHRoaXMuZWxlbWVudC5vZmZzZXRIZWlnaHQ7XG5cbiAgICBjb25zdCBzdHlsZSA9IHRoaXMubWRsVG9vbHRpcFBvc2l0aW9uU2VydmljZS5jYWxjU3R5bGUoXG4gICAgICBvZmZzZXRXaWR0aCxcbiAgICAgIG9mZnNldEhlaWdodCxcbiAgICAgIHByb3BzLFxuICAgICAgdGhpcy5wb3NpdGlvblxuICAgICk7XG5cbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhzdHlsZSkpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCBrZXksIHN0eWxlW2tleV0pO1xuICAgIH1cblxuICAgIHRoaXMuc2V0QWN0aXZlKHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3RpdmUoYWN0aXZlOiBib29sZWFuKSB7XG4gICAgdGhpcy5hY3RpdmUgPSBhY3RpdmU7XG4gICAgaWYgKGFjdGl2ZSkge1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIElTX0FDVElWRSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCBJU19BQ1RJVkUpO1xuICAgIH1cbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwibWRsLXRvb2x0aXBcIixcbiAgdGVtcGxhdGU6IFwiPGRpdj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9kaXY+XCIsXG4gIGV4cG9ydEFzOiBcIm1kbFRvb2x0aXBcIixcbiAgcHJvdmlkZXJzOiBbTWRsVG9vbHRpcFBvc2l0aW9uU2VydmljZV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIE1kbFRvb2x0aXBDb21wb25lbnQgZXh0ZW5kcyBNZGxTaW1wbGVUb29sdGlwQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBtZGxUb29sdGlwUG9zaXRpb25TZXJ2aWNlOiBNZGxUb29sdGlwUG9zaXRpb25TZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGVsUmVmLCByZW5kZXJlciwgbWRsVG9vbHRpcFBvc2l0aW9uU2VydmljZSk7XG4gIH1cbn1cbiJdfQ==