@stratio/egeo
Version:
222 lines • 16.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/st-header/menu-option/menu-option.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/*
* © 2017 Stratio Big Data Inc., Sucursal en España.
*
* This software is licensed under the Apache License, Version 2.0.
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the terms of the License for more details.
*
* SPDX-License-Identifier: Apache-2.0.
*/
import { ChangeDetectionStrategy, Component, Input, ElementRef, Output, EventEmitter, HostListener, ViewChild, ChangeDetectorRef } from '@angular/core';
import { Router, NavigationEnd } from '@angular/router';
import { StHeaderMenuOption } from '../st-header.model';
var StHeaderMenuOptionComponent = /** @class */ (function () {
function StHeaderMenuOptionComponent(elementRef, router, cd) {
var _this = this;
this.elementRef = elementRef;
this.router = router;
this.cd = cd;
this.selectMenu = new EventEmitter();
this.isActive = false;
this.actualPath = '';
this.subscription = this.router.events.subscribe((/**
* @param {?} event
* @return {?}
*/
function (event) { return _this.onRouterEvent(event); }));
this.actualPath = this.router.url;
}
Object.defineProperty(StHeaderMenuOptionComponent.prototype, "qaId", {
get: /**
* @return {?}
*/
function () {
/** @type {?} */
var id = this.elementRef.nativeElement.id + "-" + this.option.label.toLowerCase();
id.replace(/\s+/ig, '_');
return id;
},
enumerable: true,
configurable: true
});
Object.defineProperty(StHeaderMenuOptionComponent.prototype, "hasSubmenu", {
get: /**
* @return {?}
*/
function () {
return this.option.subMenus && this.option.subMenus.length > 0;
},
enumerable: true,
configurable: true
});
Object.defineProperty(StHeaderMenuOptionComponent.prototype, "submenuList", {
get: /**
* @return {?}
*/
function () {
var _this = this;
return this.hasSubmenu ? this.option.subMenus.map((/**
* @param {?} _
* @return {?}
*/
function (_) { return ({
label: _.label,
value: _.link,
selected: _this.actualPath === _.link,
selection: (/** @type {?} */ ({
link: _.link,
external: _.external,
openInNewPage: _.openInNewPage
}))
}); })) : [];
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
StHeaderMenuOptionComponent.prototype.isRouteActive = /**
* @return {?}
*/
function () {
return this.router.url.indexOf(this.option.link) > -1;
};
/**
* @return {?}
*/
StHeaderMenuOptionComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.isActive = false;
this.subscription.unsubscribe();
};
/**
* @return {?}
*/
StHeaderMenuOptionComponent.prototype.onMenuClick = /**
* @return {?}
*/
function () {
if (this.hasSubmenu) {
this.isActive = !this.isActive;
}
else {
this.selectMenu.emit({
link: this.option.link,
external: this.option.external,
openInNewPage: this.option.openInNewPage
});
}
};
/**
* @param {?} selected
* @return {?}
*/
StHeaderMenuOptionComponent.prototype.changeOption = /**
* @param {?} selected
* @return {?}
*/
function (selected) {
this.isActive = false;
this.selectMenu.emit(selected.selection);
};
/**
* @param {?} event
* @return {?}
*/
StHeaderMenuOptionComponent.prototype.onClickOutside = /**
* @param {?} event
* @return {?}
*/
function (event) {
/** @type {?} */
var isMyComponent = this.isActive && this.menu.nativeElement.contains(event.target);
if (!isMyComponent && this.isActive) {
this.isActive = false;
}
};
/**
* @private
* @param {?} event
* @return {?}
*/
StHeaderMenuOptionComponent.prototype.onRouterEvent = /**
* @private
* @param {?} event
* @return {?}
*/
function (event) {
if (event instanceof NavigationEnd) {
this.actualPath = event.urlAfterRedirects;
this.cd.markForCheck();
}
};
StHeaderMenuOptionComponent.decorators = [
{ type: Component, args: [{
selector: 'st-header-menu-option',
template: "<!--\n\n \u00A9 2017 Stratio Big Data Inc., Sucursal en Espa\u00F1a.\n\n This software is licensed under the Apache License, Version 2.0.\n This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;\n without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n See the terms of the License for more details.\n\n SPDX-License-Identifier: Apache-2.0.\n\n-->\n\n<st-dropdown-menu [items]=\"submenuList\" (change)=\"changeOption($event)\" [active]=\"isActive && hasSubmenu\" [placement]=\"'bottom-start'\" [offset]=\"{x: 0, y: 5}\">\n <div class=\"sth-header-menu-option\" [attr.id]=\"qaId\" [ngClass]=\"{active: isRouteActive()}\" #menu (click)=\"onMenuClick()\">\n <a class=\"sth-header-menu-option-name\">\n <i [ngClass]=\"option.icon\" class=\"sth-header-menu-option-icon\" [title]=\"option.label\"></i>\n <div *ngIf=\"showMenuName\" class=\"sth-header-menu-option-label\">{{option.label}}</div>\n </a>\n <i *ngIf=\"hasSubmenu\" class=\"icon-arrow2_down sth-header-menu-option-arrow\"></i>\n </div>\n</st-dropdown-menu>\n",
changeDetection: ChangeDetectionStrategy.OnPush
}] }
];
/** @nocollapse */
StHeaderMenuOptionComponent.ctorParameters = function () { return [
{ type: ElementRef },
{ type: Router },
{ type: ChangeDetectorRef }
]; };
StHeaderMenuOptionComponent.propDecorators = {
option: [{ type: Input }],
showMenuName: [{ type: Input }],
selectMenu: [{ type: Output }],
menu: [{ type: ViewChild, args: ['menu', { static: false },] }],
onClickOutside: [{ type: HostListener, args: ['document:click', ['$event'],] }]
};
return StHeaderMenuOptionComponent;
}());
export { StHeaderMenuOptionComponent };
if (false) {
/** @type {?} */
StHeaderMenuOptionComponent.prototype.option;
/** @type {?} */
StHeaderMenuOptionComponent.prototype.showMenuName;
/** @type {?} */
StHeaderMenuOptionComponent.prototype.selectMenu;
/** @type {?} */
StHeaderMenuOptionComponent.prototype.menu;
/** @type {?} */
StHeaderMenuOptionComponent.prototype.isActive;
/**
* @type {?}
* @private
*/
StHeaderMenuOptionComponent.prototype.subscription;
/**
* @type {?}
* @private
*/
StHeaderMenuOptionComponent.prototype.actualPath;
/**
* @type {?}
* @private
*/
StHeaderMenuOptionComponent.prototype.elementRef;
/**
* @type {?}
* @private
*/
StHeaderMenuOptionComponent.prototype.router;
/**
* @type {?}
* @private
*/
StHeaderMenuOptionComponent.prototype.cd;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1vcHRpb24uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac3RyYXRpby9lZ2VvLyIsInNvdXJjZXMiOlsibGliL3N0LWhlYWRlci9tZW51LW9wdGlvbi9tZW51LW9wdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFVQSxPQUFPLEVBQ0osdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBRUwsVUFBVSxFQUNWLE1BQU0sRUFDTixZQUFZLEVBQ1osWUFBWSxFQUNaLFNBQVMsRUFDVCxpQkFBaUIsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQXVDLE1BQU0sb0JBQW9CLENBQUM7QUFFN0Y7SUFrQkcscUNBQW9CLFVBQXNCLEVBQVUsTUFBYyxFQUFVLEVBQXFCO1FBQWpHLGlCQUdDO1FBSG1CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFSdkYsZUFBVSxHQUFvQyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUd2RixhQUFRLEdBQVksS0FBSyxDQUFDO1FBR3pCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFHN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQyxLQUFLLElBQUssT0FBQSxLQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUF6QixDQUF5QixFQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUNyQyxDQUFDO0lBRUQsc0JBQVcsNkNBQUk7Ozs7UUFBZjs7Z0JBQ08sRUFBRSxHQUFjLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUUs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QUFDO1NBQ3pCO0lBQ0osQ0FBQzs7Z0JBckZILFNBQVMsU0FBQztvQkFDUixRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyw2bkNBQWlDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDakQ7Ozs7Z0JBaEJFLFVBQVU7Z0JBT0osTUFBTTtnQkFGWixpQkFBaUI7Ozt5QkFjaEIsS0FBSzsrQkFDTCxLQUFLOzZCQUVMLE1BQU07dUJBRU4sU0FBUyxTQUFDLE1BQU0sRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7aUNBNERqQyxZQUFZLFNBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0lBYzdDLGtDQUFDO0NBQUEsQUF0RkQsSUFzRkM7U0FqRlksMkJBQTJCOzs7SUFFckMsNkNBQW9DOztJQUNwQyxtREFBK0I7O0lBRS9CLGlEQUE4Rjs7SUFFOUYsMkNBQXFEOztJQUNyRCwrQ0FBaUM7Ozs7O0lBRWpDLG1EQUFtQzs7Ozs7SUFDbkMsaURBQWdDOzs7OztJQUVwQixpREFBOEI7Ozs7O0lBQUUsNkNBQXNCOzs7OztJQUFFLHlDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiDCqSAyMDE3IFN0cmF0aW8gQmlnIERhdGEgSW5jLiwgU3VjdXJzYWwgZW4gRXNwYcOxYS5cbiAqXG4gKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAuXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZO1xuICogd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS5cbiAqIFNlZSB0aGUgdGVybXMgb2YgdGhlIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMC5cbiAqL1xuaW1wb3J0IHtcbiAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgQ29tcG9uZW50LFxuICAgSW5wdXQsXG4gICBPbkRlc3Ryb3ksXG4gICBFbGVtZW50UmVmLFxuICAgT3V0cHV0LFxuICAgRXZlbnRFbWl0dGVyLFxuICAgSG9zdExpc3RlbmVyLFxuICAgVmlld0NoaWxkLFxuICAgQ2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIsIE5hdmlnYXRpb25FbmQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFN0SGVhZGVyTWVudU9wdGlvbiwgU3RIZWFkZXJTZWxlY3Rpb24sIFN0SGVhZGVyTWVudUl0ZW0gfSBmcm9tICcuLi9zdC1oZWFkZXIubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgIHNlbGVjdG9yOiAnc3QtaGVhZGVyLW1lbnUtb3B0aW9uJyxcbiAgIHRlbXBsYXRlVXJsOiAnLi9tZW51LW9wdGlvbi5odG1sJyxcbiAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFN0SGVhZGVyTWVudU9wdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgIEBJbnB1dCgpIG9wdGlvbjogU3RIZWFkZXJNZW51T3B0aW9uO1xuICAgQElucHV0KCkgc2hvd01lbnVOYW1lOiBib29sZWFuO1xuXG4gICBAT3V0cHV0KCkgc2VsZWN0TWVudTogRXZlbnRFbWl0dGVyPFN0SGVhZGVyU2VsZWN0aW9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8U3RIZWFkZXJTZWxlY3Rpb24+KCk7XG5cbiAgIEBWaWV3Q2hpbGQoJ21lbnUnLCB7c3RhdGljOiBmYWxzZX0pIG1lbnU6IEVsZW1lbnRSZWY7XG4gICBwdWJsaWMgaXNBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgIHByaXZhdGUgYWN0dWFsUGF0aDogc3RyaW5nID0gJyc7XG5cbiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQpID0+IHRoaXMub25Sb3V0ZXJFdmVudChldmVudCkpO1xuICAgICAgdGhpcy5hY3R1YWxQYXRoID0gdGhpcy5yb3V0ZXIudXJsO1xuICAgfVxuXG4gICBwdWJsaWMgZ2V0IHFhSWQoKTogc3RyaW5nIHtcbiAgICAgIGxldCBpZDogc3RyaW5nID0gYCR7dGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaWR9LSR7dGhpcy5vcHRpb24ubGFiZWwudG9Mb3dlckNhc2UoKX1gO1xuICAgICAgaWQucmVwbGFjZSgvXFxzKy9pZywgJ18nKTtcbiAgICAgIHJldHVybiBpZDtcbiAgIH1cblxuICAgcHVibGljIGdldCBoYXNTdWJtZW51KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMub3B0aW9uLnN1Yk1lbnVzICYmIHRoaXMub3B0aW9uLnN1Yk1lbnVzLmxlbmd0aCA+IDA7XG4gICB9XG5cbiAgIHB1YmxpYyBnZXQgc3VibWVudUxpc3QoKTogU3RIZWFkZXJNZW51SXRlbVtdIHtcbiAgICAgIHJldHVybiB0aGlzLmhhc1N1Ym1lbnUgPyB0aGlzLm9wdGlvbi5zdWJNZW51cy5tYXAoXyA9PiAoe1xuICAgICAgICAgbGFiZWw6IF8ubGFiZWwsXG4gICAgICAgICB2YWx1ZTogXy5saW5rLFxuICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuYWN0dWFsUGF0aCA9PT0gXy5saW5rLFxuICAgICAgICAgc2VsZWN0aW9uOiB7XG4gICAgICAgICAgICBsaW5rOiBfLmxpbmssXG4gICAgICAgICAgICBleHRlcm5hbDogXy5leHRlcm5hbCxcbiAgICAgICAgICAgIG9wZW5Jbk5ld1BhZ2U6IF8ub3BlbkluTmV3UGFnZVxuICAgICAgICAgfSBhcyBTdEhlYWRlclNlbGVjdGlvblxuICAgICAgfSkpIDogW107XG4gICB9XG5cbiAgIHB1YmxpYyBpc1JvdXRlQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMucm91dGVyLnVybC5pbmRleE9mKHRoaXMub3B0aW9uLmxpbmspID4gLTE7XG4gICB9XG5cbiAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgIHRoaXMuaXNBY3RpdmUgPSBmYWxzZTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICB9XG5cbiAgIHB1YmxpYyBvbk1lbnVDbGljaygpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmhhc1N1Ym1lbnUpIHtcbiAgICAgICAgIHRoaXMuaXNBY3RpdmUgPSAhdGhpcy5pc0FjdGl2ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICB0aGlzLnNlbGVjdE1lbnUuZW1pdCh7XG4gICAgICAgICAgICBsaW5rOiB0aGlzLm9wdGlvbi5saW5rLFxuICAgICAgICAgICAgZXh0ZXJuYWw6IHRoaXMub3B0aW9uLmV4dGVybmFsLFxuICAgICAgICAgICAgb3BlbkluTmV3UGFnZTogdGhpcy5vcHRpb24ub3BlbkluTmV3UGFnZVxuICAgICAgICAgfSk7XG4gICAgICB9XG4gICB9XG5cbiAgIHB1YmxpYyBjaGFuZ2VPcHRpb24oc2VsZWN0ZWQ6IFN0SGVhZGVyTWVudUl0ZW0pOiB2b2lkIHtcbiAgICAgIHRoaXMuaXNBY3RpdmUgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VsZWN0TWVudS5lbWl0KHNlbGVjdGVkLnNlbGVjdGlvbik7XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcbiAgIG9uQ2xpY2tPdXRzaWRlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgY29uc3QgaXNNeUNvbXBvbmVudDogYm9vbGVhbiA9IHRoaXMuaXNBY3RpdmUgJiYgdGhpcy5tZW51Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KTtcbiAgICAgIGlmICghaXNNeUNvbXBvbmVudCAmJiB0aGlzLmlzQWN0aXZlKSB7XG4gICAgICAgICB0aGlzLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgICB9XG4gICB9XG5cbiAgIHByaXZhdGUgb25Sb3V0ZXJFdmVudChldmVudDogYW55KTogdm9pZCB7XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgICB0aGlzLmFjdHVhbFBhdGggPSBldmVudC51cmxBZnRlclJlZGlyZWN0cztcbiAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICB9XG4gICB9XG59XG4iXX0=