UNPKG

angular-schedule

Version:

A simple and light schedule package for angular.

164 lines 14.1 kB
/** * @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'; var TooltipDirective = /** @class */ (function () { function TooltipDirective(el, renderer) { this.el = el; this.renderer = renderer; this.offset = 10; } /** * @return {?} */ TooltipDirective.prototype.onMouseEnter = /** * @return {?} */ function () { if (!this.tooltip && this.tooltipTitle !== '' && this.showTooltip) { this.show(); } }; /** * @return {?} */ TooltipDirective.prototype.onMouseLeave = /** * @return {?} */ function () { if (this.tooltip) { this.hide(); } }; /** * @return {?} */ TooltipDirective.prototype.show = /** * @return {?} */ function () { this.create(); this.setPosition(); this.renderer.addClass(this.tooltip, 'ng-tooltip-show'); }; /** * @return {?} */ TooltipDirective.prototype.hide = /** * @return {?} */ function () { var _this = this; this.renderer.removeClass(this.tooltip, 'ng-tooltip-show'); window.setTimeout((/** * @return {?} */ function () { _this.renderer.removeChild(document.body, _this.tooltip); _this.tooltip = null; }), this.delay); }; /** * @return {?} */ TooltipDirective.prototype.create = /** * @return {?} */ function () { 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 {?} */ TooltipDirective.prototype.setPosition = /** * @return {?} */ function () { /** @type {?} */ var hostPos = this.el.nativeElement.getBoundingClientRect(); /** @type {?} */ var tooltipPos = this.tooltip.getBoundingClientRect(); /** @type {?} */ var scrollPos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; /** @type {?} */ var top; /** @type {?} */ var 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 = function () { return [ { 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',] }] }; return TooltipDirective; }()); export { TooltipDirective }; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXNjaGVkdWxlLyIsInNvdXJjZXMiOlsibGliL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNOLFNBQVMsRUFDVCxLQUFLLEVBQ0wsVUFBVSxFQUNWLFlBQVksRUFDWixTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkI7SUFXQywwQkFBb0IsRUFBYyxFQUFVLFFBQW1CO1FBQTNDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBRi9ELFdBQU0sR0FBRyxFQUFFLENBQUM7SUFFc0QsQ0FBQzs7OztJQUV2Qyx1Q0FBWTs7O0lBQXhDO1FBQ0MsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDWjtJQUNGLENBQUM7Ozs7SUFFMkIsdUNBQVk7OztJQUF4QztRQUNDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDWjtJQUNGLENBQUM7Ozs7SUFFRCwrQkFBSTs7O0lBQUo7UUFDQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Ozs7SUFFRCwrQkFBSTs7O0lBQUo7UUFBQSxpQkFNQztRQUxBLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUMzRCxNQUFNLENBQUMsVUFBVTs7O1FBQUM7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dCxcblx0RWxlbWVudFJlZixcblx0SG9zdExpc3RlbmVyLFxuXHRSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbdG9vbHRpcF0nLFxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwRGlyZWN0aXZlIHtcblx0QElucHV0KCd0b29sdGlwJykgdG9vbHRpcFRpdGxlOiBzdHJpbmc7XG5cdEBJbnB1dCgpIHBsYWNlbWVudDogc3RyaW5nO1xuXHRASW5wdXQoKSBkZWxheTogbnVtYmVyO1xuXHRASW5wdXQoKSBzaG93VG9vbHRpcDogYm9vbGVhbjtcblx0dG9vbHRpcDogSFRNTEVsZW1lbnQ7XG5cdG9mZnNldCA9IDEwO1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuXHRASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJykgb25Nb3VzZUVudGVyKCkge1xuXHRcdGlmICghdGhpcy50b29sdGlwICYmIHRoaXMudG9vbHRpcFRpdGxlICE9PSAnJyAmJiB0aGlzLnNob3dUb29sdGlwKSB7XG5cdFx0XHR0aGlzLnNob3coKTtcblx0XHR9XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJykgb25Nb3VzZUxlYXZlKCkge1xuXHRcdGlmICh0aGlzLnRvb2x0aXApIHtcblx0XHRcdHRoaXMuaGlkZSgpO1xuXHRcdH1cblx0fVxuXG5cdHNob3coKSB7XG5cdFx0dGhpcy5jcmVhdGUoKTtcblx0XHR0aGlzLnNldFBvc2l0aW9uKCk7XG5cdFx0dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnRvb2x0aXAsICduZy10b29sdGlwLXNob3cnKTtcblx0fVxuXG5cdGhpZGUoKSB7XG5cdFx0dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRvb2x0aXAsICduZy10b29sdGlwLXNob3cnKTtcblx0XHR3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMudG9vbHRpcCk7XG5cdFx0XHR0aGlzLnRvb2x0aXAgPSBudWxsO1xuXHRcdH0sIHRoaXMuZGVsYXkpO1xuXHR9XG5cblx0Y3JlYXRlKCkge1xuXHRcdHRoaXMudG9vbHRpcCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuXG5cdFx0dGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChcblx0XHRcdHRoaXMudG9vbHRpcCxcblx0XHRcdHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dCh0aGlzLnRvb2x0aXBUaXRsZSlcblx0XHQpO1xuXG5cdFx0dGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5ib2R5LCB0aGlzLnRvb2x0aXApO1xuXG5cdFx0dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnRvb2x0aXAsICduZy10b29sdGlwJyk7XG5cdFx0dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnRvb2x0aXAsIGBuZy10b29sdGlwLSR7dGhpcy5wbGFjZW1lbnR9YCk7XG5cblx0XHR0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuXHRcdFx0dGhpcy50b29sdGlwLFxuXHRcdFx0Jy13ZWJraXQtdHJhbnNpdGlvbicsXG5cdFx0XHRgb3BhY2l0eSAke3RoaXMuZGVsYXl9bXNgXG5cdFx0KTtcblx0XHR0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuXHRcdFx0dGhpcy50b29sdGlwLFxuXHRcdFx0Jy1tb3otdHJhbnNpdGlvbicsXG5cdFx0XHRgb3BhY2l0eSAke3RoaXMuZGVsYXl9bXNgXG5cdFx0KTtcblx0XHR0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuXHRcdFx0dGhpcy50b29sdGlwLFxuXHRcdFx0Jy1vLXRyYW5zaXRpb24nLFxuXHRcdFx0YG9wYWNpdHkgJHt0aGlzLmRlbGF5fW1zYFxuXHRcdCk7XG5cdFx0dGhpcy5yZW5kZXJlci5zZXRTdHlsZShcblx0XHRcdHRoaXMudG9vbHRpcCxcblx0XHRcdCd0cmFuc2l0aW9uJyxcblx0XHRcdGBvcGFjaXR5ICR7dGhpcy5kZWxheX1tc2Bcblx0XHQpO1xuXHR9XG5cblx0c2V0UG9zaXRpb24oKSB7XG5cdFx0Y29uc3QgaG9zdFBvcyA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuXHRcdGNvbnN0IHRvb2x0aXBQb3MgPSB0aGlzLnRvb2x0aXAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cdFx0Y29uc3Qgc2Nyb2xsUG9zID1cblx0XHRcdHdpbmRvdy5wYWdlWU9mZnNldCB8fFxuXHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fFxuXHRcdFx0ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgfHxcblx0XHRcdDA7XG5cblx0XHRsZXQgdG9wLCBsZWZ0O1xuXG5cdFx0aWYgKHRoaXMucGxhY2VtZW50ID09PSAndG9wJykge1xuXHRcdFx0dG9wID0gaG9zdFBvcy50b3AgLSB0b29sdGlwUG9zLmhlaWdodCAtIHRoaXMub2Zmc2V0O1xuXHRcdFx0bGVmdCA9IGhvc3RQb3MubGVmdCArIChob3N0UG9zLndpZHRoIC0gdG9vbHRpcFBvcy53aWR0aCkgLyAyO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLnBsYWNlbWVudCA9PT0gJ2JvdHRvbScpIHtcblx0XHRcdHRvcCA9IGhvc3RQb3MuYm90dG9tICsgdGhpcy5vZmZzZXQ7XG5cdFx0XHRsZWZ0ID0gaG9zdFBvcy5sZWZ0ICsgKGhvc3RQb3Mud2lkdGggLSB0b29sdGlwUG9zLndpZHRoKSAvIDI7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMucGxhY2VtZW50ID09PSAnbGVmdCcpIHtcblx0XHRcdHRvcCA9IGhvc3RQb3MudG9wICsgKGhvc3RQb3MuaGVpZ2h0IC0gdG9vbHRpcFBvcy5oZWlnaHQpIC8gMjtcblx0XHRcdGxlZnQgPSBob3N0UG9zLmxlZnQgLSB0b29sdGlwUG9zLndpZHRoIC0gdGhpcy5vZmZzZXQ7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMucGxhY2VtZW50ID09PSAncmlnaHQnKSB7XG5cdFx0XHR0b3AgPSBob3N0UG9zLnRvcCArIChob3N0UG9zLmhlaWdodCAtIHRvb2x0aXBQb3MuaGVpZ2h0KSAvIDI7XG5cdFx0XHRsZWZ0ID0gaG9zdFBvcy5yaWdodCArIHRoaXMub2Zmc2V0O1xuXHRcdH1cblxuXHRcdHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwLCAndG9wJywgYCR7dG9wICsgc2Nyb2xsUG9zfXB4YCk7XG5cdFx0dGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXAsICdsZWZ0JywgYCR7bGVmdH1weGApO1xuXHR9XG59XG4iXX0=