UNPKG

@ngx-performance-ui/ui

Version:
159 lines 14 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, ElementRef, ChangeDetectorRef, ViewChild, } from '@angular/core'; var TooltipComponent = /** @class */ (function () { function TooltipComponent(tooltip, cdRef) { this.tooltip = tooltip; this.cdRef = cdRef; this.style = { position: 'fixed', visibility: 'hidden' }; this.arrowPart = 5; } Object.defineProperty(TooltipComponent.prototype, "classes", { get: /** * @return {?} */ function () { return "tooltip bs-tooltip-" + this.tooltip.placement + " show"; }, enumerable: true, configurable: true }); /** * @return {?} */ TooltipComponent.prototype.ngAfterViewInit = /** * @return {?} */ function () { var _this = this; setTimeout((/** * @return {?} */ function () { _this.setPosition(); _this.style = tslib_1.__assign({}, _this.style, { visibility: 'visible' }); _this.cdRef.detectChanges(); }), 0); }; /** * @return {?} */ TooltipComponent.prototype.setPosition = /** * @return {?} */ function () { var _a = this.tooltip.element.getBoundingClientRect(), left = _a.left, right = _a.right, top = _a.top, bottom = _a.bottom, width = _a.width, height = _a.height; var _b = this.container.nativeElement.getBoundingClientRect(), hostWidth = _b.width, hostHeight = _b.height; var innerHeight = window.innerHeight, innerWidth = window.innerWidth; switch (this.tooltip.placement) { case 'top': if (top - hostHeight - this.arrowPart < 0) this.tooltip.placement = 'bottom'; this.setY(left, top, bottom, width, hostHeight, hostWidth); break; case 'bottom': if (bottom + hostHeight + this.arrowPart > innerHeight) this.tooltip.placement = 'top'; this.setY(left, top, bottom, width, hostHeight, hostWidth); break; case 'left': if (left - hostWidth - this.arrowPart < 0) this.tooltip.placement = 'right'; this.setX(left, top, right, height, hostHeight, hostWidth); break; case 'right': if (right + hostWidth + this.arrowPart > innerWidth) this.tooltip.placement = 'left'; this.setX(left, top, right, height, hostHeight, hostWidth); break; } }; /** * @param {?} left * @param {?} top * @param {?} bottom * @param {?} width * @param {?} hostHeight * @param {?} hostWidth * @return {?} */ TooltipComponent.prototype.setY = /** * @param {?} left * @param {?} top * @param {?} bottom * @param {?} width * @param {?} hostHeight * @param {?} hostWidth * @return {?} */ function (left, top, bottom, width, hostHeight, hostWidth) { this.style.left = left + (width - hostWidth) / 2 + 'px'; this.tooltip.placement === 'top' ? (this.style.top = top - hostHeight - this.arrowPart + 'px') : (this.style.top = bottom + this.arrowPart + 'px'); }; /** * @param {?} left * @param {?} top * @param {?} right * @param {?} height * @param {?} hostHeight * @param {?} hostWidth * @return {?} */ TooltipComponent.prototype.setX = /** * @param {?} left * @param {?} top * @param {?} right * @param {?} height * @param {?} hostHeight * @param {?} hostWidth * @return {?} */ function (left, top, right, height, hostHeight, hostWidth) { this.style.top = top + (height - hostHeight) / 2 + 'px'; this.tooltip.placement === 'left' ? (this.style.left = left - hostWidth - this.arrowPart + 'px') : (this.style.left = right + this.arrowPart + 'px'); }; TooltipComponent.decorators = [ { type: Component, args: [{ selector: 'p-tooltip', host: { role: 'tooltip', }, template: "\n <div #container class=\"{{ classes }}\" [ngStyle]=\"style\">\n <div class=\"tooltip-arrow arrow\"></div>\n <div class=\"tooltip-inner\"><ng-content></ng-content></div>\n </div>\n ", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None }] } ]; /** @nocollapse */ TooltipComponent.ctorParameters = function () { return [ { type: undefined, decorators: [{ type: Inject, args: ['TOOLTIP_PROVIDER',] }] }, { type: ChangeDetectorRef } ]; }; TooltipComponent.propDecorators = { container: [{ type: ViewChild, args: ['container',] }] }; return TooltipComponent; }()); export { TooltipComponent }; if (false) { /** @type {?} */ TooltipComponent.prototype.style; /** @type {?} */ TooltipComponent.prototype.container; /** @type {?} */ TooltipComponent.prototype.arrowPart; /** @type {?} */ TooltipComponent.prototype.tooltip; /** * @type {?} * @protected */ TooltipComponent.prototype.cdRef; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4LXBlcmZvcm1hbmNlLXVpL3VpLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixNQUFNLEVBRU4sVUFBVSxFQUNWLGlCQUFpQixFQUNqQixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkI7SUF3QkUsMEJBQStDLE9BQXVCLEVBQVksS0FBd0I7UUFBM0QsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFBWSxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQU4xRyxVQUFLLEdBQXVDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFJeEYsY0FBUyxHQUFXLENBQUMsQ0FBQztJQUV1RixDQUFDO0lBVDlHLHNCQUFJLHFDQUFPOzs7O1FBQVg7WUFDRSxPQUFPLHdCQUFzQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsVUFBTyxDQUFDO1FBQzdELENBQUM7OztPQUFBOzs7O0lBU0QsMENBQWU7OztJQUFmO1FBQUEsaUJBTUM7UUFMQyxVQUFVOzs7UUFBQztZQUNULEtBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixLQUFJLENBQUMsS0FBSyx3QkFBUSxLQUFJLENBQUMsS0FBSyxJQUFFLFVBQVUsRUFBRSxTQUFTLEdBQUUsQ0FBQztZQUN0RCxLQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdCLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7Ozs7SUFFRCxzQ0FBVzs7O0lBQVg7UUFDUSxJQUFBLGlEQUEwRixFQUF4RixjQUFJLEVBQUUsZ0JBQUssRUFBRSxZQUFHLEVBQUUsa0JBQU0sRUFBRSxnQkFBSyxFQUFF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QUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDOztnQkF6RUYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO29CQUNELFFBQVEsRUFBRSx5TUFLVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDOzs7O2dEQVdjLE1BQU0sU0FBQyxrQkFBa0I7Z0JBN0J0QyxpQkFBaUI7Ozs0QkF5QmhCLFNBQVMsU0FBQyxXQUFXOztJQXNEeEIsdUJBQUM7Q0FBQSxBQTFFRCxJQTBFQztTQTVEWSxnQkFBZ0I7OztJQUkzQixpQ0FBd0Y7O0lBRXhGLHFDQUE4Qzs7SUFFOUMscUNBQXNCOztJQUVWLG1DQUEwRDs7Ozs7SUFBRSxpQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgSW5qZWN0LFxuICBBZnRlclZpZXdJbml0LFxuICBFbGVtZW50UmVmLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLXRvb2x0aXAnLFxuICBob3N0OiB7XG4gICAgcm9sZTogJ3Rvb2x0aXAnLFxuICB9LFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgI2NvbnRhaW5lciBjbGFzcz1cInt7IGNsYXNzZXMgfX1cIiBbbmdTdHlsZV09XCJzdHlsZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRvb2x0aXAtYXJyb3cgYXJyb3dcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0b29sdGlwLWlubmVyXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBnZXQgY2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgdG9vbHRpcCBicy10b29sdGlwLSR7dGhpcy50b29sdGlwLnBsYWNlbWVudH0gc2hvd2A7XG4gIH1cbiAgc3R5bGU6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIH0gPSB7IHBvc2l0aW9uOiAnZml4ZWQnLCB2aXNpYmlsaXR5OiAnaGlkZGVuJyB9O1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICBhcnJvd1BhcnQ6IG51bWJlciA9IDU7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdCgnVE9PTFRJUF9QUk9WSURFUicpIHB1YmxpYyB0b29sdGlwOiBUb29sdGlwLkNvbmZpZywgcHJvdGVjdGVkIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNldFBvc2l0aW9uKCk7XG4gICAgICB0aGlzLnN0eWxlID0geyAuLi50aGlzLnN0eWxlLCB2aXNpYmlsaXR5OiAndmlzaWJsZScgfTtcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgc2V0UG9zaXRpb24oKSB7XG4gICAgY29uc3QgeyBsZWZ0LCByaWdodCwgdG9wLCBib3R0b20sIHdpZHRoLCBoZWlnaHQgfSA9IHRoaXMudG9vbHRpcC5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHsgd2lkdGg6IGhvc3RXaWR0aCwgaGVpZ2h0OiBob3N0SGVpZ2h0IH0gPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHsgaW5uZXJIZWlnaHQsIGlubmVyV2lkdGggfSA9IHdpbmRvdztcblxuICAgIHN3aXRjaCAodGhpcy50b29sdGlwLnBsYWNlbWVudCkge1xuICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgaWYgKHRvcCAtIGhvc3RIZWlnaHQgLSB0aGlzLmFycm93UGFydCA8IDApIHRoaXMudG9vbHRpcC5wbGFjZW1lbnQgPSAnYm90dG9tJztcbiAgICAgICAgdGhpcy5zZXRZKGxlZnQsIHRvcCwgYm90dG9tLCB3aWR0aCwgaG9zdEhlaWdodCwgaG9zdFdpZHRoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICBpZiAoYm90dG9tICsgaG9zdEhlaWdodCArIHRoaXMuYXJyb3dQYXJ0ID4gaW5uZXJIZWlnaHQpIHRoaXMudG9vbHRpcC5wbGFjZW1lbnQgPSAndG9wJztcbiAgICAgICAgdGhpcy5zZXRZKGxlZnQsIHRvcCwgYm90dG9tLCB3aWR0aCwgaG9zdEhlaWdodCwgaG9zdFdpZHRoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgaWYgKGxlZnQgLSBob3N0V2lkdGggLSB0aGlzLmFycm93UGFydCA8IDApIHRoaXMudG9vbHRpcC5wbGFjZW1lbnQgPSAncmlnaHQnO1xuICAgICAgICB0aGlzLnNldFgobGVmdCwgdG9wLCByaWdodCwgaGVpZ2h0LCBob3N0SGVpZ2h0LCBob3N0V2lkdGgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgaWYgKHJpZ2h0ICsgaG9zdFdpZHRoICsgdGhpcy5hcnJvd1BhcnQgPiBpbm5lcldpZHRoKSB0aGlzLnRvb2x0aXAucGxhY2VtZW50ID0gJ2xlZnQnO1xuICAgICAgICB0aGlzLnNldFgobGVmdCwgdG9wLCByaWdodCwgaGVpZ2h0LCBob3N0SGVpZ2h0LCBob3N0V2lkdGgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBzZXRZKGxlZnQ6IG51bWJlciwgdG9wOiBudW1iZXIsIGJvdHRvbTogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBob3N0SGVpZ2h0OiBudW1iZXIsIGhvc3RXaWR0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5zdHlsZS5sZWZ0ID0gbGVmdCArICh3aWR0aCAtIGhvc3RXaWR0aCkgLyAyICsgJ3B4JztcblxuICAgIHRoaXMudG9vbHRpcC5wbGFjZW1lbnQgPT09ICd0b3AnXG4gICAgICA/ICh0aGlzLnN0eWxlLnRvcCA9IHRvcCAtIGhvc3RIZWlnaHQgLSB0aGlzLmFycm93UGFydCArICdweCcpXG4gICAgICA6ICh0aGlzLnN0eWxlLnRvcCA9IGJvdHRvbSArIHRoaXMuYXJyb3dQYXJ0ICsgJ3B4Jyk7XG4gIH1cblxuICBzZXRYKGxlZnQ6IG51bWJlciwgdG9wOiBudW1iZXIsIHJpZ2h0OiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBob3N0SGVpZ2h0OiBudW1iZXIsIGhvc3RXaWR0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5zdHlsZS50b3AgPSB0b3AgKyAoaGVpZ2h0IC0gaG9zdEhlaWdodCkgLyAyICsgJ3B4JztcblxuICAgIHRoaXMudG9vbHRpcC5wbGFjZW1lbnQgPT09ICdsZWZ0J1xuICAgICAgPyAodGhpcy5zdHlsZS5sZWZ0ID0gbGVmdCAtIGhvc3RXaWR0aCAtIHRoaXMuYXJyb3dQYXJ0ICsgJ3B4JylcbiAgICAgIDogKHRoaXMuc3R5bGUubGVmdCA9IHJpZ2h0ICsgdGhpcy5hcnJvd1BhcnQgKyAncHgnKTtcbiAgfVxufVxuIl19