@ngx-performance-ui/ui
Version:
Ngx Performance UI - UI
159 lines • 14 kB
JavaScript
/**
* @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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4LXBlcmZvcm1hbmNlLXVpL3VpLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixNQUFNLEVBRU4sVUFBVSxFQUNWLGlCQUFpQixFQUNqQixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkI7SUF3QkUsMEJBQStDLE9BQXVCLEVBQVksS0FBd0I7UUFBM0QsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFBWSxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQU4xRyxVQUFLLEdBQXVDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFJeEYsY0FBUyxHQUFXLENBQUMsQ0FBQztJQUV1RixDQUFDO0lBVDlHLHNCQUFJLHFDQUFPOzs7O1FBQVg7WUFDRSxPQUFPLHdCQUFzQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsVUFBTyxDQUFDO1FBQzdELENBQUM7OztPQUFBOzs7O0lBU0QsMENBQWU7OztJQUFmO1FBQUEsaUJBTUM7UUFMQyxVQUFVOzs7UUFBQztZQUNULEtBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixLQUFJLENBQUMsS0FBSyx3QkFBUSxLQUFJLENBQUMsS0FBSyxJQUFFLFVBQVUsRUFBRSxTQUFTLEdBQUUsQ0FBQztZQUN0RCxLQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdCLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7Ozs7SUFFRCxzQ0FBVzs7O0lBQVg7UUFDUSxJQUFBLGlEQUEwRixFQUF4RixjQUFJLEVBQUUsZ0JBQUssRUFBRSxZQUFHLEVBQUUsa0JBQU0sRUFBRSxnQkFBSyxFQUFFLGtCQUF1RDtRQUMxRixJQUFBLHlEQUErRixFQUE3RixvQkFBZ0IsRUFBRSxzQkFBMkU7UUFDN0YsSUFBQSxnQ0FBVyxFQUFFLDhCQUFVO1FBRS9CLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDOUIsS0FBSyxLQUFLO2dCQUNSLElBQUksR0FBRyxHQUFHLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUM7b0JBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO2dCQUM3RSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQzNELE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxNQUFNLEdBQUcsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVztvQkFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZGLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDM0QsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxJQUFJLElBQUksR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDO29CQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztnQkFDNUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUMzRCxNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLElBQUksS0FBSyxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVU7b0JBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO2dCQUNyRixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQzNELE1BQU07U0FDVDtJQUNILENBQUM7Ozs7Ozs7Ozs7SUFFRCwrQkFBSTs7Ozs7Ozs7O0lBQUosVUFBSyxJQUFZLEVBQUUsR0FBVyxFQUFFLE1BQWMsRUFBRSxLQUFhLEVBQUUsVUFBa0IsRUFBRSxTQUFpQjtRQUNsRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUV4RCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsS0FBSyxLQUFLO1lBQzlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDN0QsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7Ozs7Ozs7OztJQUVELCtCQUFJOzs7Ozs7Ozs7SUFBSixVQUFLLElBQVksRUFBRSxHQUFXLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxVQUFrQixFQUFFLFNBQWlCO1FBQ2xHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBRXhELElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxLQUFLLE1BQU07WUFDL0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUM5RCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDOztnQkF6RUYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO29CQUNELFFBQVEsRUFBRSx5TUFLVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDOzs7O2dEQVdjLE1BQU0sU0FBQyxrQkFBa0I7Z0JBN0J0QyxpQkFBaUI7Ozs0QkF5QmhCLFNBQVMsU0FBQyxXQUFXOztJQXNEeEIsdUJBQUM7Q0FBQSxBQTFFRCxJQTBFQztTQTVEWSxnQkFBZ0I7OztJQUkzQixpQ0FBd0Y7O0lBRXhGLHFDQUE4Qzs7SUFFOUMscUNBQXNCOztJQUVWLG1DQUEwRDs7Ozs7SUFBRSxpQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgSW5qZWN0LFxuICBBZnRlclZpZXdJbml0LFxuICBFbGVtZW50UmVmLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLXRvb2x0aXAnLFxuICBob3N0OiB7XG4gICAgcm9sZTogJ3Rvb2x0aXAnLFxuICB9LFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgI2NvbnRhaW5lciBjbGFzcz1cInt7IGNsYXNzZXMgfX1cIiBbbmdTdHlsZV09XCJzdHlsZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRvb2x0aXAtYXJyb3cgYXJyb3dcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0b29sdGlwLWlubmVyXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBnZXQgY2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgdG9vbHRpcCBicy10b29sdGlwLSR7dGhpcy50b29sdGlwLnBsYWNlbWVudH0gc2hvd2A7XG4gIH1cbiAgc3R5bGU6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIH0gPSB7IHBvc2l0aW9uOiAnZml4ZWQnLCB2aXNpYmlsaXR5OiAnaGlkZGVuJyB9O1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICBhcnJvd1BhcnQ6IG51bWJlciA9IDU7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdCgnVE9PTFRJUF9QUk9WSURFUicpIHB1YmxpYyB0b29sdGlwOiBUb29sdGlwLkNvbmZpZywgcHJvdGVjdGVkIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNldFBvc2l0aW9uKCk7XG4gICAgICB0aGlzLnN0eWxlID0geyAuLi50aGlzLnN0eWxlLCB2aXNpYmlsaXR5OiAndmlzaWJsZScgfTtcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgc2V0UG9zaXRpb24oKSB7XG4gICAgY29uc3QgeyBsZWZ0LCByaWdodCwgdG9wLCBib3R0b20sIHdpZHRoLCBoZWlnaHQgfSA9IHRoaXMudG9vbHRpcC5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHsgd2lkdGg6IGhvc3RXaWR0aCwgaGVpZ2h0OiBob3N0SGVpZ2h0IH0gPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHsgaW5uZXJIZWlnaHQsIGlubmVyV2lkdGggfSA9IHdpbmRvdztcblxuICAgIHN3aXRjaCAodGhpcy50b29sdGlwLnBsYWNlbWVudCkge1xuICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgaWYgKHRvcCAtIGhvc3RIZWlnaHQgLSB0aGlzLmFycm93UGFydCA8IDApIHRoaXMudG9vbHRpcC5wbGFjZW1lbnQgPSAnYm90dG9tJztcbiAgICAgICAgdGhpcy5zZXRZKGxlZnQsIHRvcCwgYm90dG9tLCB3aWR0aCwgaG9zdEhlaWdodCwgaG9zdFdpZHRoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICBpZiAoYm90dG9tICsgaG9zdEhlaWdodCArIHRoaXMuYXJyb3dQYXJ0ID4gaW5uZXJIZWlnaHQpIHRoaXMudG9vbHRpcC5wbGFjZW1lbnQgPSAndG9wJztcbiAgICAgICAgdGhpcy5zZXRZKGxlZnQsIHRvcCwgYm90dG9tLCB3aWR0aCwgaG9zdEhlaWdodCwgaG9zdFdpZHRoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgaWYgKGxlZnQgLSBob3N0V2lkdGggLSB0aGlzLmFycm93UGFydCA8IDApIHRoaXMudG9vbHRpcC5wbGFjZW1lbnQgPSAncmlnaHQnO1xuICAgICAgICB0aGlzLnNldFgobGVmdCwgdG9wLCByaWdodCwgaGVpZ2h0LCBob3N0SGVpZ2h0LCBob3N0V2lkdGgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgaWYgKHJpZ2h0ICsgaG9zdFdpZHRoICsgdGhpcy5hcnJvd1BhcnQgPiBpbm5lcldpZHRoKSB0aGlzLnRvb2x0aXAucGxhY2VtZW50ID0gJ2xlZnQnO1xuICAgICAgICB0aGlzLnNldFgobGVmdCwgdG9wLCByaWdodCwgaGVpZ2h0LCBob3N0SGVpZ2h0LCBob3N0V2lkdGgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBzZXRZKGxlZnQ6IG51bWJlciwgdG9wOiBudW1iZXIsIGJvdHRvbTogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBob3N0SGVpZ2h0OiBudW1iZXIsIGhvc3RXaWR0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5zdHlsZS5sZWZ0ID0gbGVmdCArICh3aWR0aCAtIGhvc3RXaWR0aCkgLyAyICsgJ3B4JztcblxuICAgIHRoaXMudG9vbHRpcC5wbGFjZW1lbnQgPT09ICd0b3AnXG4gICAgICA/ICh0aGlzLnN0eWxlLnRvcCA9IHRvcCAtIGhvc3RIZWlnaHQgLSB0aGlzLmFycm93UGFydCArICdweCcpXG4gICAgICA6ICh0aGlzLnN0eWxlLnRvcCA9IGJvdHRvbSArIHRoaXMuYXJyb3dQYXJ0ICsgJ3B4Jyk7XG4gIH1cblxuICBzZXRYKGxlZnQ6IG51bWJlciwgdG9wOiBudW1iZXIsIHJpZ2h0OiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBob3N0SGVpZ2h0OiBudW1iZXIsIGhvc3RXaWR0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5zdHlsZS50b3AgPSB0b3AgKyAoaGVpZ2h0IC0gaG9zdEhlaWdodCkgLyAyICsgJ3B4JztcblxuICAgIHRoaXMudG9vbHRpcC5wbGFjZW1lbnQgPT09ICdsZWZ0J1xuICAgICAgPyAodGhpcy5zdHlsZS5sZWZ0ID0gbGVmdCAtIGhvc3RXaWR0aCAtIHRoaXMuYXJyb3dQYXJ0ICsgJ3B4JylcbiAgICAgIDogKHRoaXMuc3R5bGUubGVmdCA9IHJpZ2h0ICsgdGhpcy5hcnJvd1BhcnQgKyAncHgnKTtcbiAgfVxufVxuIl19