angular-schedule
Version:
A simple and light schedule package for angular.
147 lines • 13.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/tooltip.directive.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Directive, Input, ElementRef, HostListener, Renderer2, } from '@angular/core';
export class TooltipDirective {
/**
* @param {?} el
* @param {?} renderer
*/
constructor(el, renderer) {
this.el = el;
this.renderer = renderer;
this.offset = 10;
}
/**
* @return {?}
*/
onMouseEnter() {
if (!this.tooltip && this.tooltipTitle !== '' && this.showTooltip) {
this.show();
}
}
/**
* @return {?}
*/
onMouseLeave() {
if (this.tooltip) {
this.hide();
}
}
/**
* @return {?}
*/
show() {
this.create();
this.setPosition();
this.renderer.addClass(this.tooltip, 'ng-tooltip-show');
}
/**
* @return {?}
*/
hide() {
this.renderer.removeClass(this.tooltip, 'ng-tooltip-show');
window.setTimeout((/**
* @return {?}
*/
() => {
this.renderer.removeChild(document.body, this.tooltip);
this.tooltip = null;
}), this.delay);
}
/**
* @return {?}
*/
create() {
this.tooltip = this.renderer.createElement('span');
this.renderer.appendChild(this.tooltip, this.renderer.createText(this.tooltipTitle));
this.renderer.appendChild(document.body, this.tooltip);
this.renderer.addClass(this.tooltip, 'ng-tooltip');
this.renderer.addClass(this.tooltip, `ng-tooltip-${this.placement}`);
this.renderer.setStyle(this.tooltip, '-webkit-transition', `opacity ${this.delay}ms`);
this.renderer.setStyle(this.tooltip, '-moz-transition', `opacity ${this.delay}ms`);
this.renderer.setStyle(this.tooltip, '-o-transition', `opacity ${this.delay}ms`);
this.renderer.setStyle(this.tooltip, 'transition', `opacity ${this.delay}ms`);
}
/**
* @return {?}
*/
setPosition() {
/** @type {?} */
const hostPos = this.el.nativeElement.getBoundingClientRect();
/** @type {?} */
const tooltipPos = this.tooltip.getBoundingClientRect();
/** @type {?} */
const scrollPos = window.pageYOffset ||
document.documentElement.scrollTop ||
document.body.scrollTop ||
0;
/** @type {?} */
let top;
/** @type {?} */
let left;
if (this.placement === 'top') {
top = hostPos.top - tooltipPos.height - this.offset;
left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;
}
if (this.placement === 'bottom') {
top = hostPos.bottom + this.offset;
left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;
}
if (this.placement === 'left') {
top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;
left = hostPos.left - tooltipPos.width - this.offset;
}
if (this.placement === 'right') {
top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;
left = hostPos.right + this.offset;
}
this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);
this.renderer.setStyle(this.tooltip, 'left', `${left}px`);
}
}
TooltipDirective.decorators = [
{ type: Directive, args: [{
selector: '[tooltip]',
},] }
];
/** @nocollapse */
TooltipDirective.ctorParameters = () => [
{ type: ElementRef },
{ type: Renderer2 }
];
TooltipDirective.propDecorators = {
tooltipTitle: [{ type: Input, args: ['tooltip',] }],
placement: [{ type: Input }],
delay: [{ type: Input }],
showTooltip: [{ type: Input }],
onMouseEnter: [{ type: HostListener, args: ['mouseenter',] }],
onMouseLeave: [{ type: HostListener, args: ['mouseleave',] }]
};
if (false) {
/** @type {?} */
TooltipDirective.prototype.tooltipTitle;
/** @type {?} */
TooltipDirective.prototype.placement;
/** @type {?} */
TooltipDirective.prototype.delay;
/** @type {?} */
TooltipDirective.prototype.showTooltip;
/** @type {?} */
TooltipDirective.prototype.tooltip;
/** @type {?} */
TooltipDirective.prototype.offset;
/**
* @type {?}
* @private
*/
TooltipDirective.prototype.el;
/**
* @type {?}
* @private
*/
TooltipDirective.prototype.renderer;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXNjaGVkdWxlLyIsInNvdXJjZXMiOlsibGliL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNOLFNBQVMsRUFDVCxLQUFLLEVBQ0wsVUFBVSxFQUNWLFlBQVksRUFDWixTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFLdkIsTUFBTSxPQUFPLGdCQUFnQjs7Ozs7SUFRNUIsWUFBb0IsRUFBYyxFQUFVLFFBQW1CO1FBQTNDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBRi9ELFdBQU0sR0FBRyxFQUFFLENBQUM7SUFFc0QsQ0FBQzs7OztJQUV2QyxZQUFZO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ1o7SUFDRixDQUFDOzs7O0lBRTJCLFlBQVk7UUFDdkMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNaO0lBQ0YsQ0FBQzs7OztJQUVELElBQUk7UUFDSCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Ozs7SUFFRCxJQUFJO1FBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQzNELE1BQU0sQ0FBQyxVQUFVOzs7UUFBQyxHQUFHLEVBQUU7WUFDdEIsSUFBSSxD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QUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0QsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3JEO1FBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLE9BQU8sRUFBRTtZQUMvQixHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3RCxJQUFJLEdBQUcsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ25DO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUcsU0FBUyxJQUFJLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUM7SUFDM0QsQ0FBQzs7O1lBNUdELFNBQVMsU0FBQztnQkFDVixRQUFRLEVBQUUsV0FBVzthQUNyQjs7OztZQVBBLFVBQVU7WUFFVixTQUFTOzs7MkJBT1IsS0FBSyxTQUFDLFNBQVM7d0JBQ2YsS0FBSztvQkFDTCxLQUFLOzBCQUNMLEtBQUs7MkJBTUwsWUFBWSxTQUFDLFlBQVk7MkJBTXpCLFlBQVksU0FBQyxZQUFZOzs7O0lBZjFCLHdDQUF1Qzs7SUFDdkMscUNBQTJCOztJQUMzQixpQ0FBdUI7O0lBQ3ZCLHVDQUE4Qjs7SUFDOUIsbUNBQXFCOztJQUNyQixrQ0FBWTs7Ozs7SUFFQSw4QkFBc0I7Ozs7O0lBQUUsb0NBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0RGlyZWN0aXZlLFxuXHRJbnB1dCxcblx0RWxlbWVudFJlZixcblx0SG9zdExpc3RlbmVyLFxuXHRSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbdG9vbHRpcF0nLFxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwRGlyZWN0aXZlIHtcblx0QElucHV0KCd0b29sdGlwJykgdG9vbHRpcFRpdGxlOiBzdHJpbmc7XG5cdEBJbnB1dCgpIHBsYWNlbWVudDogc3RyaW5nO1xuXHRASW5wdXQoKSBkZWxheTogbnVtYmVyO1xuXHRASW5wdXQoKSBzaG93VG9vbHRpcDogYm9vbGVhbjtcblx0dG9vbHRpcDogSFRNTEVsZW1lbnQ7XG5cdG9mZnNldCA9IDEwO1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuXHRASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJykgb25Nb3VzZUVudGVyKCkge1xuXHRcdGlmICghdGhpcy50b29sdGlwICYmIHRoaXMudG9vbHRpcFRpdGxlICE9PSAnJyAmJiB0aGlzLnNob3dUb29sdGlwKSB7XG5cdFx0XHR0aGlzLnNob3coKTtcblx0XHR9XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJykgb25Nb3VzZUxlYXZlKCkge1xuXHRcdGlmICh0aGlzLnRvb2x0aXApIHtcblx0XHRcdHRoaXMuaGlkZSgpO1xuXHRcdH1cblx0fVxuXG5cdHNob3coKSB7XG5cdFx0dGhpcy5jcmVhdGUoKTtcblx0XHR0aGlzLnNldFBvc2l0aW9uKCk7XG5cdFx0dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnRvb2x0aXAsICduZy10b29sdGlwLXNob3cnKTtcblx0fVxuXG5cdGhpZGUoKSB7XG5cdFx0dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRvb2x0aXAsICduZy10b29sdGlwLXNob3cnKTtcblx0XHR3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMudG9vbHRpcCk7XG5cdFx0XHR0aGlzLnRvb2x0aXAgPSBudWxsO1xuXHRcdH0sIHRoaXMuZGVsYXkpO1xuXHR9XG5cblx0Y3JlYXRlKCkge1xuXHRcdHRoaXMudG9vbHRpcCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuXG5cdFx0dGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChcblx0XHRcdHRoaXMudG9vbHRpcCxcblx0XHRcdHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dCh0aGlzLnRvb2x0aXBUaXRsZSlcblx0XHQpO1xuXG5cdFx0dGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5ib2R5LCB0aGlzLnRvb2x0aXApO1xuXG5cdFx0dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnRvb2x0aXAsICduZy10b29sdGlwJyk7XG5cdFx0dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnRvb2x0aXAsIGBuZy10b29sdGlwLSR7dGhpcy5wbGFjZW1lbnR9YCk7XG5cblx0XHR0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuXHRcdFx0dGhpcy50b29sdGlwLFxuXHRcdFx0Jy13ZWJraXQtdHJhbnNpdGlvbicsXG5cdFx0XHRgb3BhY2l0eSAke3RoaXMuZGVsYXl9bXNgXG5cdFx0KTtcblx0XHR0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuXHRcdFx0dGhpcy50b29sdGlwLFxuXHRcdFx0Jy1tb3otdHJhbnNpdGlvbicsXG5cdFx0XHRgb3BhY2l0eSAke3RoaXMuZGVsYXl9bXNgXG5cdFx0KTtcblx0XHR0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuXHRcdFx0dGhpcy50b29sdGlwLFxuXHRcdFx0Jy1vLXRyYW5zaXRpb24nLFxuXHRcdFx0YG9wYWNpdHkgJHt0aGlzLmRlbGF5fW1zYFxuXHRcdCk7XG5cdFx0dGhpcy5yZW5kZXJlci5zZXRTdHlsZShcblx0XHRcdHRoaXMudG9vbHRpcCxcblx0XHRcdCd0cmFuc2l0aW9uJyxcblx0XHRcdGBvcGFjaXR5ICR7dGhpcy5kZWxheX1tc2Bcblx0XHQpO1xuXHR9XG5cblx0c2V0UG9zaXRpb24oKSB7XG5cdFx0Y29uc3QgaG9zdFBvcyA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuXHRcdGNvbnN0IHRvb2x0aXBQb3MgPSB0aGlzLnRvb2x0aXAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cdFx0Y29uc3Qgc2Nyb2xsUG9zID1cblx0XHRcdHdpbmRvdy5wYWdlWU9mZnNldCB8fFxuXHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fFxuXHRcdFx0ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgfHxcblx0XHRcdDA7XG5cblx0XHRsZXQgdG9wLCBsZWZ0O1xuXG5cdFx0aWYgKHRoaXMucGxhY2VtZW50ID09PSAndG9wJykge1xuXHRcdFx0dG9wID0gaG9zdFBvcy50b3AgLSB0b29sdGlwUG9zLmhlaWdodCAtIHRoaXMub2Zmc2V0O1xuXHRcdFx0bGVmdCA9IGhvc3RQb3MubGVmdCArIChob3N0UG9zLndpZHRoIC0gdG9vbHRpcFBvcy53aWR0aCkgLyAyO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLnBsYWNlbWVudCA9PT0gJ2JvdHRvbScpIHtcblx0XHRcdHRvcCA9IGhvc3RQb3MuYm90dG9tICsgdGhpcy5vZmZzZXQ7XG5cdFx0XHRsZWZ0ID0gaG9zdFBvcy5sZWZ0ICsgKGhvc3RQb3Mud2lkdGggLSB0b29sdGlwUG9zLndpZHRoKSAvIDI7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMucGxhY2VtZW50ID09PSAnbGVmdCcpIHtcblx0XHRcdHRvcCA9IGhvc3RQb3MudG9wICsgKGhvc3RQb3MuaGVpZ2h0IC0gdG9vbHRpcFBvcy5oZWlnaHQpIC8gMjtcblx0XHRcdGxlZnQgPSBob3N0UG9zLmxlZnQgLSB0b29sdGlwUG9zLndpZHRoIC0gdGhpcy5vZmZzZXQ7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMucGxhY2VtZW50ID09PSAncmlnaHQnKSB7XG5cdFx0XHR0b3AgPSBob3N0UG9zLnRvcCArIChob3N0UG9zLmhlaWdodCAtIHRvb2x0aXBQb3MuaGVpZ2h0KSAvIDI7XG5cdFx0XHRsZWZ0ID0gaG9zdFBvcy5yaWdodCArIHRoaXMub2Zmc2V0O1xuXHRcdH1cblxuXHRcdHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwLCAndG9wJywgYCR7dG9wICsgc2Nyb2xsUG9zfXB4YCk7XG5cdFx0dGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXAsICdsZWZ0JywgYCR7bGVmdH1weGApO1xuXHR9XG59XG4iXX0=