@ngx-performance-ui/ui
Version:
Ngx Performance UI - UI
109 lines • 10.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { ChangeDetectorRef, Component, Inject } from '@angular/core';
import { TooltipComponent } from '../tooltip/tooltip.component';
var PopoverComponent = /** @class */ (function (_super) {
tslib_1.__extends(PopoverComponent, _super);
function PopoverComponent(popover, cdRef) {
var _this = _super.call(this, popover, cdRef) || this;
_this.popover = popover;
_this.cdRef = cdRef;
_this.arrowStyle = {};
_this.arrowPart = 10;
return _this;
}
Object.defineProperty(PopoverComponent.prototype, "classes", {
get: /**
* @return {?}
*/
function () {
return "popover fade bs-popover-" + this.popover.placement + " show";
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
PopoverComponent.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 {?}
*/
PopoverComponent.prototype.setPosition = /**
* @return {?}
*/
function () {
var _a = this.popover.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.popover.placement) {
case 'top':
if (top - hostHeight - this.arrowPart < 0)
this.popover.placement = 'bottom';
this.setY(left, top, bottom, width, hostHeight, hostWidth);
this.arrowStyle.left = hostWidth / 2 - 12 + 'px';
break;
case 'bottom':
if (bottom + hostHeight + this.arrowPart > innerHeight)
this.popover.placement = 'top';
this.setY(left, top, bottom, width, hostHeight, hostWidth);
this.arrowStyle.left = hostWidth / 2 - 12 + 'px';
break;
case 'left':
if (left - hostWidth - this.arrowPart < 0)
this.popover.placement = 'right';
this.setX(left, top, right, height, hostHeight, hostWidth);
this.arrowStyle.top = hostHeight / 2 - 12 + 'px';
break;
case 'right':
if (right + hostWidth + this.arrowPart > innerWidth)
this.popover.placement = 'left';
this.setX(left, top, right, height, hostHeight, hostWidth);
this.arrowStyle.top = hostHeight / 2 - 12 + 'px';
break;
}
};
PopoverComponent.decorators = [
{ type: Component, args: [{
selector: 'p-popover',
template: "\n <div #container [ngStyle]=\"style\" class=\"{{ classes }}\">\n <div [ngStyle]=\"arrowStyle\" class=\"arrow\"></div>\n <h3 class=\"popover-header\"><ng-content></ng-content></h3>\n <div class=\"popover-body\"><ng-content></ng-content></div>\n </div>\n "
}] }
];
/** @nocollapse */
PopoverComponent.ctorParameters = function () { return [
{ type: undefined, decorators: [{ type: Inject, args: ['POPOVER_PROVIDER',] }] },
{ type: ChangeDetectorRef }
]; };
return PopoverComponent;
}(TooltipComponent));
export { PopoverComponent };
if (false) {
/** @type {?} */
PopoverComponent.prototype.arrowStyle;
/** @type {?} */
PopoverComponent.prototype.arrowPart;
/** @type {?} */
PopoverComponent.prototype.popover;
/**
* @type {?}
* @protected
*/
PopoverComponent.prototype.cdRef;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4LXBlcmZvcm1hbmNlLXVpL3VpLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUU1RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVoRTtJQVVzQyw0Q0FBZ0I7SUFTcEQsMEJBQStDLE9BQXVCLEVBQVksS0FBd0I7UUFBMUcsWUFDRSxrQkFBTSxPQUFPLEVBQUUsS0FBSyxDQUFDLFNBQ3RCO1FBRjhDLGFBQU8sR0FBUCxPQUFPLENBQWdCO1FBQVksV0FBSyxHQUFMLEtBQUssQ0FBbUI7UUFSMUcsZ0JBQVUsR0FBdUMsRUFBRSxDQUFDO1FBTXBELGVBQVMsR0FBVyxFQUFFLENBQUM7O0lBSXZCLENBQUM7SUFSRCxzQkFBSSxxQ0FBTzs7OztRQUFYO1lBQ0UsT0FBTyw2QkFBMkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLFVBQU8sQ0FBQztRQUNsRSxDQUFDOzs7T0FBQTs7OztJQVFELDBDQUFlOzs7SUFBZjtRQUFBLGlCQU1DO1FBTEMsVUFBVTs7O1FBQUM7WUFDVCxLQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsS0FBSSxDQUFDLEtBQUssd0JBQVEsS0FBSSxDQUFDLEtBQUssSUFBRSxVQUFVLEVBQUUsU0FBUyxHQUFFLENBQUM7WUFDdEQsS0FBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM3QixDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDOzs7O0lBRUQsc0NBQVc7OztJQUFYO1FBQ1EsSUFBQSxpREFBMEYsRUFBeEYsY0FBSSxFQUFFLGdCQUFLLEVBQUUsWUFBRyxFQUFFLGtCQUFNLEVBQUUsZ0JBQUssRUFBRSxrQkFBdUQ7UUFDMUYsSUFBQSx5REFBK0YsRUFBN0Ysb0JBQWdCLEVBQUUsc0JBQTJFO1FBQzdGLElBQUEsZ0NBQVcsRUFBRSw4QkFBVTtRQUUvQixRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQzlCLEtBQUssS0FBSztnQkFDUixJQUFJLEdBQUcsR0FBRyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDO29CQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztnQkFDN0UsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxTQUFTLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7Z0JBQ2pELE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxNQUFNLEdBQUcsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVztvQkFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZGLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsU0FBUyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO2dCQUNqRCxNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULElBQUksSUFBSSxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUM7b0JBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO2dCQUM1RSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQzNELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLFVBQVUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztnQkFDakQsTUFBTTtZQUNSLEtBQUssT0FBTztnQkFDVixJQUFJLEtBQUssR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVO29CQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztnQkFDckYsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxVQUFVLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7Z0JBQ2pELE1BQU07U0FDVDtJQUNILENBQUM7O2dCQTFERixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSxzUkFNVDtpQkFDRjs7OztnREFVYyxNQUFNLFNBQUMsa0JBQWtCO2dCQXZCL0IsaUJBQWlCOztJQStEMUIsdUJBQUM7Q0FBQSxBQTNERCxDQVVzQyxnQkFBZ0IsR0FpRHJEO1NBakRZLGdCQUFnQjs7O0lBQzNCLHNDQUFvRDs7SUFNcEQscUNBQXVCOztJQUVYLG1DQUEwRDs7Ozs7SUFBRSxpQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbmplY3QsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtcG9wb3ZlcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiAjY29udGFpbmVyIFtuZ1N0eWxlXT1cInN0eWxlXCIgY2xhc3M9XCJ7eyBjbGFzc2VzIH19XCI+XG4gICAgICA8ZGl2IFtuZ1N0eWxlXT1cImFycm93U3R5bGVcIiBjbGFzcz1cImFycm93XCI+PC9kaXY+XG4gICAgICA8aDMgY2xhc3M9XCJwb3BvdmVyLWhlYWRlclwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2gzPlxuICAgICAgPGRpdiBjbGFzcz1cInBvcG92ZXItYm9keVwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgUG9wb3ZlckNvbXBvbmVudCBleHRlbmRzIFRvb2x0aXBDb21wb25lbnQge1xuICBhcnJvd1N0eWxlOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB9ID0ge307XG5cbiAgZ2V0IGNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHBvcG92ZXIgZmFkZSBicy1wb3BvdmVyLSR7dGhpcy5wb3BvdmVyLnBsYWNlbWVudH0gc2hvd2A7XG4gIH1cblxuICBhcnJvd1BhcnQ6IG51bWJlciA9IDEwO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoJ1BPUE9WRVJfUFJPVklERVInKSBwdWJsaWMgcG9wb3ZlcjogVG9vbHRpcC5Db25maWcsIHByb3RlY3RlZCBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcihwb3BvdmVyLCBjZFJlZik7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNldFBvc2l0aW9uKCk7XG4gICAgICB0aGlzLnN0eWxlID0geyAuLi50aGlzLnN0eWxlLCB2aXNpYmlsaXR5OiAndmlzaWJsZScgfTtcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgc2V0UG9zaXRpb24oKSB7XG4gICAgY29uc3QgeyBsZWZ0LCByaWdodCwgdG9wLCBib3R0b20sIHdpZHRoLCBoZWlnaHQgfSA9IHRoaXMucG9wb3Zlci5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHsgd2lkdGg6IGhvc3RXaWR0aCwgaGVpZ2h0OiBob3N0SGVpZ2h0IH0gPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHsgaW5uZXJIZWlnaHQsIGlubmVyV2lkdGggfSA9IHdpbmRvdztcblxuICAgIHN3aXRjaCAodGhpcy5wb3BvdmVyLnBsYWNlbWVudCkge1xuICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgaWYgKHRvcCAtIGhvc3RIZWlnaHQgLSB0aGlzLmFycm93UGFydCA8IDApIHRoaXMucG9wb3Zlci5wbGFjZW1lbnQgPSAnYm90dG9tJztcbiAgICAgICAgdGhpcy5zZXRZKGxlZnQsIHRvcCwgYm90dG9tLCB3aWR0aCwgaG9zdEhlaWdodCwgaG9zdFdpZHRoKTtcbiAgICAgICAgdGhpcy5hcnJvd1N0eWxlLmxlZnQgPSBob3N0V2lkdGggLyAyIC0gMTIgKyAncHgnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgIGlmIChib3R0b20gKyBob3N0SGVpZ2h0ICsgdGhpcy5hcnJvd1BhcnQgPiBpbm5lckhlaWdodCkgdGhpcy5wb3BvdmVyLnBsYWNlbWVudCA9ICd0b3AnO1xuICAgICAgICB0aGlzLnNldFkobGVmdCwgdG9wLCBib3R0b20sIHdpZHRoLCBob3N0SGVpZ2h0LCBob3N0V2lkdGgpO1xuICAgICAgICB0aGlzLmFycm93U3R5bGUubGVmdCA9IGhvc3RXaWR0aCAvIDIgLSAxMiArICdweCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgIGlmIChsZWZ0IC0gaG9zdFdpZHRoIC0gdGhpcy5hcnJvd1BhcnQgPCAwKSB0aGlzLnBvcG92ZXIucGxhY2VtZW50ID0gJ3JpZ2h0JztcbiAgICAgICAgdGhpcy5zZXRYKGxlZnQsIHRvcCwgcmlnaHQsIGhlaWdodCwgaG9zdEhlaWdodCwgaG9zdFdpZHRoKTtcbiAgICAgICAgdGhpcy5hcnJvd1N0eWxlLnRvcCA9IGhvc3RIZWlnaHQgLyAyIC0gMTIgKyAncHgnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgaWYgKHJpZ2h0ICsgaG9zdFdpZHRoICsgdGhpcy5hcnJvd1BhcnQgPiBpbm5lcldpZHRoKSB0aGlzLnBvcG92ZXIucGxhY2VtZW50ID0gJ2xlZnQnO1xuICAgICAgICB0aGlzLnNldFgobGVmdCwgdG9wLCByaWdodCwgaGVpZ2h0LCBob3N0SGVpZ2h0LCBob3N0V2lkdGgpO1xuICAgICAgICB0aGlzLmFycm93U3R5bGUudG9wID0gaG9zdEhlaWdodCAvIDIgLSAxMiArICdweCc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuIl19