@stratio/egeo
Version:
106 lines • 6.92 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/utils/event-window-manager.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @abstract
*/
export class EventWindowManager {
/**
* @param {?} _renderer
* @param {?} _cd
* @param {?} _elementRef
*/
constructor(_renderer, _cd, _elementRef) {
this._renderer = _renderer;
this._cd = _cd;
this._elementRef = _elementRef;
}
/**
* @protected
* @return {?}
*/
openElement() {
if (this.isActive) {
this.closeElement();
}
else {
this.isActive = !this.isActive;
setTimeout((/**
* @return {?}
*/
() => {
this.globalListener = this._renderer.listen('document', 'click', this.onClickOutside.bind(this));
this.forceClose = this._renderer.listen('document', 'stForceClose', this.onForceClose.bind(this));
}));
}
}
/**
* @protected
* @return {?}
*/
closeElement() {
if (this.isActive) {
this.isActive = !this.isActive;
this._cd.markForCheck();
if (this.globalListener !== undefined && typeof (this.globalListener) === 'function') {
this.globalListener();
this.forceClose();
}
}
}
/**
* @private
* @param {?} event
* @return {?}
*/
onClickOutside(event) {
if (!this._elementRef.nativeElement.contains(event.target)) {
this.closeElement();
}
}
/**
* @private
* @param {?} event
* @return {?}
*/
onForceClose(event) {
this.closeElement();
}
}
if (false) {
/** @type {?} */
EventWindowManager.prototype.isActive;
/**
* @type {?}
* @private
*/
EventWindowManager.prototype.globalListener;
/**
* @type {?}
* @private
*/
EventWindowManager.prototype.forceClose;
/**
* @type {?}
* @private
*/
EventWindowManager.prototype._renderer;
/**
* @type {?}
* @private
*/
EventWindowManager.prototype._cd;
/**
* @type {?}
* @private
*/
EventWindowManager.prototype._elementRef;
/**
* @abstract
* @return {?}
*/
EventWindowManager.prototype.ngOnDestroy = function () { };
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtd2luZG93LW1hbmFnZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac3RyYXRpby9lZ2VvLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL2V2ZW50LXdpbmRvdy1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBWUEsTUFBTSxPQUFnQixrQkFBa0I7Ozs7OztJQUtyQyxZQUFvQixTQUFvQixFQUFVLEdBQXNCLEVBQVUsV0FBdUI7UUFBckYsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQVk7SUFBSSxDQUFDOzs7OztJQUlwRyxXQUFXO1FBQ2xCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNoQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDdEI7YUFBTTtZQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQy9CLFVBQVU7OztZQUFDLEdBQUcsRUFBRTtnQkFDYixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDakcsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDckcsQ0FBQyxFQUFDLENBQUM7U0FDTDtJQUNKLENBQUM7Ozs7O0lBRVMsWUFBWTtRQUNuQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN4QixJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssU0FBUyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssVUFBVSxFQUFFO2dCQUNuRixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNwQjtTQUNIO0lBQ0osQ0FBQzs7Ozs7O0lBRU8sY0FBYyxDQUFDLEtBQWlCO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN0QjtJQUNKLENBQUM7Ozs7OztJQUVPLFlBQVksQ0FBQyxLQUFpQjtRQUNuQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdkIsQ0FBQztDQUNIOzs7SUF4Q0Usc0NBQXlCOzs7OztJQUN6Qiw0Q0FBaUM7Ozs7O0lBQ2pDLHdDQUE2Qjs7Ozs7SUFFakIsdUNBQTRCOzs7OztJQUFFLGlDQUE4Qjs7Ozs7SUFBRSx5Q0FBK0I7Ozs7O0lBRXpHLDJEQUE2QiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiDCqSAyMDE3IFN0cmF0aW8gQmlnIERhdGEgSW5jLiwgU3VjdXJzYWwgZW4gRXNwYcOxYS5cbiAqXG4gKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAuXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZO1xuICogd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS5cbiAqIFNlZSB0aGUgdGVybXMgb2YgdGhlIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMC5cbiAqL1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRXZlbnRXaW5kb3dNYW5hZ2VyIHtcbiAgIHB1YmxpYyBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgIHByaXZhdGUgZ2xvYmFsTGlzdGVuZXI6IEZ1bmN0aW9uO1xuICAgcHJpdmF0ZSBmb3JjZUNsb3NlOiBGdW5jdGlvbjtcblxuICAgY29uc3RydWN0b3IocHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7IH1cblxuICAgYWJzdHJhY3QgbmdPbkRlc3Ryb3koKTogdm9pZDtcblxuICAgcHJvdGVjdGVkIG9wZW5FbGVtZW50KCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuaXNBY3RpdmUpIHtcbiAgICAgICAgIHRoaXMuY2xvc2VFbGVtZW50KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAgdGhpcy5pc0FjdGl2ZSA9ICF0aGlzLmlzQWN0aXZlO1xuICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdsb2JhbExpc3RlbmVyID0gdGhpcy5fcmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdjbGljaycsIHRoaXMub25DbGlja091dHNpZGUuYmluZCh0aGlzKSk7XG4gICAgICAgICAgICB0aGlzLmZvcmNlQ2xvc2UgPSB0aGlzLl9yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ3N0Rm9yY2VDbG9zZScsIHRoaXMub25Gb3JjZUNsb3NlLmJpbmQodGhpcykpO1xuICAgICAgICAgfSk7XG4gICAgICB9XG4gICB9XG5cbiAgIHByb3RlY3RlZCBjbG9zZUVsZW1lbnQoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5pc0FjdGl2ZSkge1xuICAgICAgICAgdGhpcy5pc0FjdGl2ZSA9ICF0aGlzLmlzQWN0aXZlO1xuICAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICBpZiAodGhpcy5nbG9iYWxMaXN0ZW5lciAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiAodGhpcy5nbG9iYWxMaXN0ZW5lcikgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMuZ2xvYmFsTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIHRoaXMuZm9yY2VDbG9zZSgpO1xuICAgICAgICAgfVxuICAgICAgfVxuICAgfVxuXG4gICBwcml2YXRlIG9uQ2xpY2tPdXRzaWRlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICBpZiAoIXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICB0aGlzLmNsb3NlRWxlbWVudCgpO1xuICAgICAgfVxuICAgfVxuXG4gICBwcml2YXRlIG9uRm9yY2VDbG9zZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgdGhpcy5jbG9zZUVsZW1lbnQoKTtcbiAgIH1cbn1cbiJdfQ==