UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

1,017 lines (1,016 loc) 82.2 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, ElementRef, Input, Output, EventEmitter } from '@angular/core'; import { AbstractHasData } from './AbstractHasData'; import { ComponentPopoverModel } from './model/models'; import { NeedFocusService } from '../service/NeedFocusService.service'; import { Option } from '../decorator/Option.decorator'; import { EventUtils } from '../share/utils/EventUtils'; import { SHOW_EVENT, BEFORE_SHOW_EVENT, HIDE_EVENT, BEFORE_HIDE_EVENT } from '../share/CustomEventType'; var /** @type {?} */ HIDE_ON_CLICK_DELAY = 100; var /** @type {?} */ TYPE_NAME = "phx-component-popover"; var /** @type {?} */ LEFT = 'left'; var /** @type {?} */ RIGHT = 'right'; var /** @type {?} */ TOP = 'top'; var /** @type {?} */ BOTTOM = 'bottom'; var ComponentPopover = /** @class */ (function (_super) { tslib_1.__extends(ComponentPopover, _super); function ComponentPopover(elementRef, needFocusService) { var _this = _super.call(this, elementRef) || this; _this.ARROW_GAP = 5; _this.MIN_HEIGHT = 40; _this.needFocusService = needFocusService; _this._show = false; _this.defaultArrowTop = 10; _this.showEvent = new EventEmitter(); _this.beforeShowEvent = new EventEmitter(); _this.hideEvent = new EventEmitter(); _this.beforeHideEvent = new EventEmitter(); _this._compClicked = false; // when wrapper finished render // when wrapper finished render _this._componentHandler = function (result) { var /** @type {?} */ comInstance = null; if (result !== null && typeof result !== 'undefined') { comInstance = result.instance; } if (_this.data !== null && typeof _this.data !== 'undefined' && comInstance !== null) { if (typeof comInstance.setData === 'function') { comInstance.setData(_this.data); } } if (typeof comInstance.getBeforeClickEvent === 'function' && typeof comInstance.getClickEvent === 'function') { // If the component has before/after click implemented, use them. comInstance.getBeforeClickEvent().subscribe(function () { _this._compClicked = true; }); comInstance.getClickEvent().subscribe(function () { if (_this.hideOnClick && _this.needFocusService) { _this.hide(); } }); } else if (comInstance.elementRef && comInstance.elementRef.nativeElement) { // Else, use jquery event. var /** @type {?} */ comp = $(comInstance.elementRef.nativeElement); comp.mousedown(function () { _this._compClicked = true; }); } if (_this.componentHandler !== null && _this.componentHandler !== undefined) { _this.componentHandler.call(_this, result); } _this.compoWrapInstance = comInstance; }; if (window.history && window.history.pushState) { $(window).on('popstate', function (event) { _this.hide(); }); } return _this; } /** * @return {?} */ ComponentPopover.prototype.ngOnInit = /** * @return {?} */ function () { _super.prototype.ngOnInit.call(this); if (this.position === null || typeof this.position === 'undefined') { this.position = LEFT; } if (this.autoFocus === null || typeof this.autoFocus === 'undefined') { this.autoFocus = true; } if (this.hideOnClick === null || typeof this.hideOnClick === 'undefined') { this.hideOnClick = false; } // this.render(); this.showPopover(this._show); }; /** * @param {?} changes * @return {?} */ ComponentPopover.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { if (changes['position'] !== null && typeof changes['position'] !== 'undefined') { var /** @type {?} */ oldVal = changes['position'].previousValue; var /** @type {?} */ newVal = changes['position'].currentValue; if (oldVal !== newVal) { this.render(); } } }; /** * @return {?} */ ComponentPopover.prototype.render = /** * @return {?} */ function () { // force show to save width and height before detach $(this.elementRef.nativeElement).children().first().addClass('show'); this._popoverWidth = 0; this._popoverHeight = 0; var /** @type {?} */ popoverElement = $(this.elementRef.nativeElement); if (popoverElement !== undefined) { this._popoverWidth = popoverElement.children().first().outerWidth(); this._popoverHeight = popoverElement.children().first().outerHeight(); } // remove dom and save them in RAM this.nativeElement = $(this.elementRef.nativeElement).detach(); }; /** * @param {?} isShow * @param {?=} $event * @param {?=} fireEvent * @return {?} */ ComponentPopover.prototype.showPopover = /** * @param {?} isShow * @param {?=} $event * @param {?=} fireEvent * @return {?} */ function (isShow, $event, fireEvent) { var _this = this; if (fireEvent === null || fireEvent === undefined) { fireEvent = true; } if (isShow) { EventUtils.handleBrowserEvent(this, 'beforeShowEvent', $event, fireEvent, function ($event) { // doEvent // doEvent _this._show = isShow; $(_this.nativeElement).children().first().addClass('show'); // append dom $("body").append(_this.nativeElement); if (_this.needFocusService !== null) { if (_this.autoFocus) { _this.needFocusService.setFocusingComponent(_this); } } }, function ($event) { // emitBeforeEvent // emitBeforeEvent _this.emitBeforeShowEvent($event); }, function ($event) { // emitAfterEvent // emitAfterEvent _this.emitShowEvent($event); }, function ($event) { // doPrevented }); } else { EventUtils.handleBrowserEvent(this, 'beforeHideEvent', $event, fireEvent, function ($event) { // doEvent // doEvent _this._show = isShow; $(_this.nativeElement).children().first().removeClass('show'); if (_this.needFocusService !== null) { if (_this.autoFocus && _this.needFocusService.getFocusingComponent() === _this) { _this.needFocusService.resetFocusingComponent(); } } }, function ($event) { // emitBeforeEvent // emitBeforeEvent _this.emitBeforeHideEvent($event); }, function ($event) { // emitAfterEvent // emitAfterEvent _this.emitHideEvent($event); }, function ($event) { // doPrevented }); } }; /** * @param {?=} $event * @return {?} */ ComponentPopover.prototype.emitBeforeShowEvent = /** * @param {?=} $event * @return {?} */ function ($event) { var /** @type {?} */ eventData = null; // emit event var /** @type {?} */ data = eventData; var /** @type {?} */ ev = EventUtils.newCustomEvent(BEFORE_SHOW_EVENT, this, data, $event); if (this.beforeShowEvent !== null && this.beforeShowEvent !== undefined) { this.beforeShowEvent.emit(ev); } }; /** * @param {?=} $event * @return {?} */ ComponentPopover.prototype.emitShowEvent = /** * @param {?=} $event * @return {?} */ function ($event) { var /** @type {?} */ eventData = null; // emit event var /** @type {?} */ data = eventData; var /** @type {?} */ ev = EventUtils.newCustomEvent(SHOW_EVENT, this, data, $event); if (this.showEvent !== null && this.showEvent !== undefined) { this.showEvent.emit(ev); } }; /** * @param {?=} $event * @return {?} */ ComponentPopover.prototype.emitBeforeHideEvent = /** * @param {?=} $event * @return {?} */ function ($event) { var /** @type {?} */ eventData = null; // emit event var /** @type {?} */ data = eventData; var /** @type {?} */ ev = EventUtils.newCustomEvent(BEFORE_HIDE_EVENT, this, data, $event); if (this.beforeHideEvent !== null && this.beforeHideEvent !== undefined) { this.beforeHideEvent.emit(ev); } }; /** * @param {?=} $event * @return {?} */ ComponentPopover.prototype.emitHideEvent = /** * @param {?=} $event * @return {?} */ function ($event) { var /** @type {?} */ eventData = null; // emit event var /** @type {?} */ data = eventData; var /** @type {?} */ ev = EventUtils.newCustomEvent(HIDE_EVENT, this, data, $event); if (this.hideEvent !== null && this.hideEvent !== undefined) { this.hideEvent.emit(ev); } }; /** * @param {?} $event * @return {?} */ ComponentPopover.prototype._doFocus = /** * @param {?} $event * @return {?} */ function ($event) { // do something when focus }; /** * @param {?} $event * @return {?} */ ComponentPopover.prototype._doLostFocus = /** * @param {?} $event * @return {?} */ function ($event) { var _this = this; if (this.compoWrapInstance !== null && this.compoWrapInstance !== undefined) { // If the component has click event, we've to wait for click event to be completely performed before hide. if (typeof this.compoWrapInstance.getBeforeClickEvent === 'function' && typeof this.compoWrapInstance.getClickEvent === 'function') { // The component has click event implemented. We'll use before/after click events. setTimeout(function () { if (!_this._compClicked) { // Auto hide this popup if it wasn't blurred from component clicked. // Auto hide this popup if it wasn't blurred from component clicked. _this.hide(); } else { $(_this.nativeElement).find(".fake").focus(); _this._compClicked = false; } }, HIDE_ON_CLICK_DELAY); } else { // If not, use jquery event. setTimeout(function () { if (!_this._compClicked) { // Auto hide this popup if it wasn't blurred from component clicked. // Auto hide this popup if it wasn't blurred from component clicked. _this.hide(); } else { if (_this.hideOnClick) { _this.hide(); } else { $(_this.nativeElement).find(".fake").focus(); } _this._compClicked = false; } }, HIDE_ON_CLICK_DELAY); } } else { // Else, hide it immediately. this.hide(); } }; /** * @param {?} event * @return {?} */ ComponentPopover.prototype.onFocus = /** * @param {?} event * @return {?} */ function (event) { $(this.nativeElement).find(".fake").focus(); }; /** * @param {?} event * @return {?} */ ComponentPopover.prototype.onLostFocus = /** * @param {?} event * @return {?} */ function (event) { $(this.nativeElement).find(".fake").blur(); }; /** * @return {?} */ ComponentPopover.prototype.isModelEmpty = /** * @return {?} */ function () { if (this.model === null || typeof this.model === 'undefined') { return true; } return false; }; /** * @param {?} top * @return {?} */ ComponentPopover.prototype.setArrowTop = /** * @param {?} top * @return {?} */ function (top) { if (top === null || typeof top === 'undefined') { return; } var /** @type {?} */ contWrapElement = $(this.nativeElement).find('.container-wrapper'); if (typeof contWrapElement !== 'undefined') { if (typeof $(contWrapElement).find('.container-after') !== 'undefined') { $(contWrapElement).find('.container-after').css("top", top); } if (typeof $(contWrapElement).find('.container-before') !== 'undefined') { $(contWrapElement).find('.container-before').css("top", top - 1); } } }; /** * @param {?} left * @return {?} */ ComponentPopover.prototype.setArrowLeft = /** * @param {?} left * @return {?} */ function (left) { if (left === null || typeof left === 'undefined') { return; } var /** @type {?} */ contWrapElement = $(this.nativeElement).find('.container-wrapper'); if (typeof contWrapElement !== 'undefined') { if (typeof $(contWrapElement).find('.container-after') !== 'undefined') { $(contWrapElement).find('.container-after').css("left", left); } if (typeof $(contWrapElement).find('.container-before') !== 'undefined') { $(contWrapElement).find('.container-before').css("left", left - 1); } } }; /** * @return {?} */ ComponentPopover.prototype.getPosition = /** * @return {?} */ function () { if (this.position !== null && typeof this.position !== 'undefined') { if (LEFT === this.position) { return LEFT; } else if (RIGHT === this.position) { return RIGHT; } else if (BOTTOM === this.position) { return BOTTOM; } else if (TOP === this.position) { return TOP; } } // default is left return LEFT; }; /** * @param {?} positionX * @param {?} positionY * @param {?=} $event * @param {?=} fireEvent * @return {?} */ ComponentPopover.prototype.showAt = /** * @param {?} positionX * @param {?} positionY * @param {?=} $event * @param {?=} fireEvent * @return {?} */ function (positionX, positionY, $event, fireEvent) { if (positionX == null && positionY == null) { return; } if (positionX == null) { positionX = 0; } if (positionY == null) { positionY = 0; } $(this.nativeElement).children().first().css('top', positionX); $(this.nativeElement).children().first().css('left', positionY); this.showPopover(true, $event, fireEvent); // let data: any = null; // let ev = EventUtils.newCustomEvent(POPOVER_SHOW_EVENT, this, data, null); // // this.showEvent.emit(ev); }; /** * @param {?=} $event * @param {?=} fireEvent * @return {?} */ ComponentPopover.prototype.show = /** * @param {?=} $event * @param {?=} fireEvent * @return {?} */ function ($event, fireEvent) { var /** @type {?} */ byPassModel = false; if (this.anchor !== null && typeof this.anchor !== 'undefined') { var /** @type {?} */ anchorElement = $(this.anchor); if (anchorElement !== null && typeof anchorElement !== 'undefined') { var /** @type {?} */ top_1 = 0; var /** @type {?} */ left = 0; var /** @type {?} */ height = 0; var /** @type {?} */ width = 0; if (typeof anchorElement.offset() !== 'undefined') { top_1 = anchorElement.offset().top; left = anchorElement.offset().left; height = anchorElement.outerHeight(); width = anchorElement.outerWidth(); } var /** @type {?} */ halfHeight = height / 2; var /** @type {?} */ finalTop = top_1; var /** @type {?} */ finalLeft = left; if (this.position === LEFT) { // arrow right popover left finalLeft = left - this._popoverWidth - this.ARROW_GAP - 10; finalTop = top_1 - halfHeight; } else if (this.position === RIGHT) { // arrow left popover right finalLeft = left + width + this.ARROW_GAP + 10; finalTop = top_1 - halfHeight; } else if (this.position === TOP) { // arrow bottom popover top finalLeft = finalLeft + 15; finalTop = top_1 - this._popoverHeight - this.ARROW_GAP - 9; } else if (this.position === BOTTOM) { // arrow top popover bottom finalLeft = finalLeft + 15; finalTop = top_1 + height + this.ARROW_GAP + 9.5; } $(this.nativeElement).children().first().css('top', finalTop); $(this.nativeElement).children().first().css('left', finalLeft); byPassModel = true; } } if (this.model !== null && typeof this.model !== 'undefined' && !byPassModel) { if (this.model.top != null) { $(this.nativeElement).children().first().css('top', this.model.top); } if (this.model.left != null) { $(this.nativeElement).children().first().css('left', this.model.left); } } this.showPopover(true, $event, fireEvent); }; /** * @param {?=} $event * @param {?=} fireEvent * @return {?} */ ComponentPopover.prototype.hide = /** * @param {?=} $event * @param {?=} fireEvent * @return {?} */ function ($event, fireEvent) { this.showPopover(false, $event, fireEvent); }; /** * @return {?} */ ComponentPopover.prototype.getData = /** * @return {?} */ function () { return this.data; }; /** * @param {?} data * @return {?} */ ComponentPopover.prototype.setData = /** * @param {?} data * @return {?} */ function (data) { this.data = data; }; /** * @return {?} */ ComponentPopover.prototype.getModel = /** * @return {?} */ function () { return this.model; }; /** * @param {?} model * @return {?} */ ComponentPopover.prototype.setModel = /** * @param {?} model * @return {?} */ function (model) { this.model = model; }; /** * @return {?} */ ComponentPopover.prototype.isShow = /** * @return {?} */ function () { return this._show; }; /** * @return {?} */ ComponentPopover.prototype.isSelfDataDirty = /** * @return {?} */ function () { return false; }; /** * @param {?} data * @return {?} */ ComponentPopover.prototype.selfSaveData = /** * @param {?} data * @return {?} */ function (data) { }; /** * @return {?} */ ComponentPopover.prototype.selfResetData = /** * @return {?} */ function () { }; /** * @return {?} */ ComponentPopover.prototype.getShowEvent = /** * @return {?} */ function () { return this.showEvent; }; /** * @param {?} event * @return {?} */ ComponentPopover.prototype.setShowEvent = /** * @param {?} event * @return {?} */ function (event) { this.showEvent = event; }; /** * @return {?} */ ComponentPopover.prototype.getHideEvent = /** * @return {?} */ function () { return this.hideEvent; }; /** * @param {?} event * @return {?} */ ComponentPopover.prototype.setHideEvent = /** * @param {?} event * @return {?} */ function (event) { this.hideEvent = event; }; /** * @param {?} autoFocus * @return {?} */ ComponentPopover.prototype.setAutoFocus = /** * @param {?} autoFocus * @return {?} */ function (autoFocus) { this.autoFocus = autoFocus; }; /** * @return {?} */ ComponentPopover.prototype.isAutoFocus = /** * @return {?} */ function () { return this.autoFocus; }; /** * @param {?} hideOnClick * @return {?} */ ComponentPopover.prototype.setHideOnClick = /** * @param {?} hideOnClick * @return {?} */ function (hideOnClick) { this.hideOnClick = hideOnClick; }; /** * @return {?} */ ComponentPopover.prototype.isHideOnClick = /** * @return {?} */ function () { return this.hideOnClick; }; /** * @param {?} componentHandler * @return {?} */ ComponentPopover.prototype.setComponentHandler = /** * @param {?} componentHandler * @return {?} */ function (componentHandler) { this.componentHandler = componentHandler; }; /** * @return {?} */ ComponentPopover.prototype.getComponentHandler = /** * @return {?} */ function () { return this.componentHandler; }; /** * @return {?} */ ComponentPopover.prototype.getI18NKey = /** * @return {?} */ function () { return "componentPopover"; }; /** * @return {?} */ ComponentPopover.prototype.doPreload = /** * @return {?} */ function () { return new Promise(function (resolve, reject) { resolve(null); }); }; /** * @return {?} */ ComponentPopover.prototype.doLoaded = /** * @return {?} */ function () { }; /** * @return {?} */ ComponentPopover.prototype.getPopoverWidth = /** * @return {?} */ function () { return this.model.popoverWidth; }; /** * @return {?} */ ComponentPopover.prototype.getPopoverHeight = /** * @return {?} */ function () { return this.model.popoverHeight ? this.model.popoverHeight : this.MIN_HEIGHT + 'pt'; }; /** * @return {?} */ ComponentPopover.prototype.isShowArrow = /** * @return {?} */ function () { return this.model.showArrow; }; /** * @return {?} */ ComponentPopover.prototype.getComponentInstance = /** * @return {?} */ function () { return this.compoWrapInstance; }; /** * @return {?} */ ComponentPopover.prototype.getStyleClasses = /** * @return {?} */ function () { if (this.model !== null && this.model !== undefined) { if (this.model.styleClasses !== null && this.model.styleClasses !== undefined) { return this.model.styleClasses; } } return []; }; ComponentPopover.TYPE_NAME = TYPE_NAME; ComponentPopover.LEFT = LEFT; ComponentPopover.RIGHT = RIGHT; ComponentPopover.TOP = TOP; ComponentPopover.BOTTOM = BOTTOM; ComponentPopover.decorators = [ { type: Component, args: [{ moduleId: module.id, selector: TYPE_NAME, template: "<div class=\"phx-component-popover\" [ngClass]=\"getStyleClasses()\" [style.width]=\"getPopoverWidth()\" [style.height]=\"getPopoverHeight()\" [class.show]=\"isShow()\" [class.left]=\"getPosition() === 'left'\" [class.right]=\"getPosition() === 'right'\"\n\t[class.top]=\"getPosition() === 'top'\" [class.bottom]=\"getPosition() === 'bottom'\">\n\t<div class=\"container-wrapper\" [style.width]=\"getPopoverWidth()\" [style.height]=\"getPopoverHeight()\">\n\t\t<div class=\"container\">\n\t\t\t<phx-component-wrapper *ngIf=\"!isModelEmpty()\" [type]=\"getModel().type\" [data]=\"getData()\" [handler]=\"_componentHandler\" [dataParent]=\"this\" [model]=\"getModel().model\"></phx-component-wrapper>\n\t\t</div>\n\t\t<div *ngIf=\"isShowArrow()\" class=\"container-before\"></div>\n\t\t<div *ngIf=\"isShowArrow()\" class=\"container-after\"></div>\n\t</div>\n\t<button type=\"button\" class=\"fake\" (focusin)=\"_doFocus($event)\" (blur)=\"_doLostFocus($event)\"></button>\n</div>\n" },] }, ]; /** @nocollapse */ ComponentPopover.ctorParameters = function () { return [ { type: ElementRef, }, { type: NeedFocusService, }, ]; }; ComponentPopover.propDecorators = { "dataParent": [{ type: Input },], "ignoreParentData": [{ type: Input },], "data": [{ type: Input },], "ignoreParentDisabled": [{ type: Input },], "delegateHistory": [{ type: Input },], "onDisabled": [{ type: Input },], "onEnabled": [{ type: Input },], "loadingEnabled": [{ type: Input },], "i18nKey": [{ type: Input },], "bypass": [{ type: Input, args: ['i18nBypass',] },], "options": [{ type: Input },], "disabled": [{ type: Input },], "styleClasses": [{ type: Input },], "model": [{ type: Input },], "position": [{ type: Input },], "anchor": [{ type: Input },], "autoFocus": [{ type: Input },], "hideOnClick": [{ type: Input },], "componentHandler": [{ type: Input },], "loadEvent": [{ type: Output, args: ['phxLoad',] },], "beforeShowEvent": [{ type: Output, args: ['phxBeforeShow',] },], "showEvent": [{ type: Output, args: ['phxShow',] },], "beforeHideEvent": [{ type: Output, args: ['phxBeforeHide',] },], "hideEvent": [{ type: Output, args: ['phxHide',] },], }; tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Object) ], ComponentPopover.prototype, "dataParent", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], ComponentPopover.prototype, "ignoreParentData", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Object) ], ComponentPopover.prototype, "data", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], ComponentPopover.prototype, "ignoreParentDisabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], ComponentPopover.prototype, "delegateHistory", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Function) ], ComponentPopover.prototype, "onDisabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Function) ], ComponentPopover.prototype, "onEnabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], ComponentPopover.prototype, "loadingEnabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], ComponentPopover.prototype, "i18nKey", void 0); tslib_1.__decorate([ Option('i18nBypass'), tslib_1.__metadata("design:type", Boolean) ], ComponentPopover.prototype, "bypass", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], ComponentPopover.prototype, "disabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Array) ], ComponentPopover.prototype, "styleClasses", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", ComponentPopoverModel) ], ComponentPopover.prototype, "model", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], ComponentPopover.prototype, "position", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], ComponentPopover.prototype, "anchor", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], ComponentPopover.prototype, "autoFocus", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], ComponentPopover.prototype, "hideOnClick", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Function) ], ComponentPopover.prototype, "componentHandler", void 0); tslib_1.__decorate([ Option('load'), tslib_1.__metadata("design:type", EventEmitter) ], ComponentPopover.prototype, "loadEvent", void 0); tslib_1.__decorate([ Option('beforeShow'), tslib_1.__metadata("design:type", EventEmitter) ], ComponentPopover.prototype, "beforeShowEvent", void 0); tslib_1.__decorate([ Option('show'), tslib_1.__metadata("design:type", EventEmitter) ], ComponentPopover.prototype, "showEvent", void 0); tslib_1.__decorate([ Option('beforeHide'), tslib_1.__metadata("design:type", EventEmitter) ], ComponentPopover.prototype, "beforeHideEvent", void 0); tslib_1.__decorate([ Option('hide'), tslib_1.__metadata("design:type", EventEmitter) ], ComponentPopover.prototype, "hideEvent", void 0); return ComponentPopover; }(AbstractHasData)); export { ComponentPopover }; function ComponentPopover_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ ComponentPopover.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ ComponentPopover.ctorParameters; /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */ ComponentPopover.propDecorators; /** @type {?} */ ComponentPopover.TYPE_NAME; /** @type {?} */ ComponentPopover.LEFT; /** @type {?} */ ComponentPopover.RIGHT; /** @type {?} */ ComponentPopover.TOP; /** @type {?} */ ComponentPopover.BOTTOM; /** @type {?} */ ComponentPopover.prototype.dataParent; /** @type {?} */ ComponentPopover.prototype.ignoreParentData; /** @type {?} */ ComponentPopover.prototype.data; /** @type {?} */ ComponentPopover.prototype.ignoreParentDisabled; /** @type {?} */ ComponentPopover.prototype.delegateHistory; /** @type {?} */ ComponentPopover.prototype.onDisabled; /** @type {?} */ ComponentPopover.prototype.onEnabled; /** @type {?} */ ComponentPopover.prototype.loadingEnabled; /** @type {?} */ ComponentPopover.prototype.i18nKey; /** @type {?} */ ComponentPopover.prototype.bypass; /** @type {?} */ ComponentPopover.prototype.options; /** @type {?} */ ComponentPopover.prototype.disabled; /** @type {?} */ ComponentPopover.prototype.styleClasses; /** @type {?} */ ComponentPopover.prototype.model; /** @type {?} */ ComponentPopover.prototype.position; /** @type {?} */ ComponentPopover.prototype.anchor; /** @type {?} */ ComponentPopover.prototype.autoFocus; /** @type {?} */ ComponentPopover.prototype.hideOnClick; /** @type {?} */ ComponentPopover.prototype.componentHandler; /** @type {?} */ ComponentPopover.prototype.ARROW_GAP; /** @type {?} */ ComponentPopover.prototype.MIN_HEIGHT; /** @type {?} */ ComponentPopover.prototype.loadEvent; /** @type {?} */ ComponentPopover.prototype.beforeShowEvent; /** @type {?} */ ComponentPopover.prototype.showEvent; /** @type {?} */ ComponentPopover.prototype.beforeHideEvent; /** @type {?} */ ComponentPopover.prototype.hideEvent; /** @type {?} */ ComponentPopover.prototype._show; /** @type {?} */ ComponentPopover.prototype.defaultArrowTop; /** @type {?} */ ComponentPopover.prototype.compoWrapInstance; /** @type {?} */ ComponentPopover.prototype.needFocusService; /** @type {?} */ ComponentPopover.prototype.nativeElement; /** @type {?} */ ComponentPopover.prototype._popoverWidth; /** @type {?} */ ComponentPopover.prototype._popoverHeight; /** @type {?} */ ComponentPopover.prototype._compClicked; /** @type {?} */ ComponentPopover.prototype._componentHandler; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50UG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnQvQ29tcG9uZW50UG9wb3Zlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFzQixZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUl4RyxxQkFBTSxtQkFBbUIsR0FBVyxHQUFHLENBQUM7QUFDeEMscUJBQU0sU0FBUyxHQUFXLHVCQUF1QixDQUFDO0FBRWxELHFCQUFNLElBQUksR0FBVyxNQUFNLENBQUM7QUFDNUIscUJBQU0sS0FBSyxHQUFXLE9BQU8sQ0FBQztBQUM5QixxQkFBTSxHQUFHLEdBQVcsS0FBSyxDQUFDO0FBQzFCLHFCQUFNLE1BQU0sR0FBVyxRQUFRLENBQUM7O0lBb0JNLDRDQUFlO0lBd0duRCwwQkFBWSxVQUFzQixFQUFFLGdCQUFrQztRQUF0RSxZQUNFLGtCQUFNLFVBQVUsQ0FBQyxTQXVEbEI7MEJBeEYyQixDQUFDOzJCQUNBLEVBQUU7UUFpQzdCLEtBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxLQUFJLENB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