UNPKG

@stratio/egeo

Version:
222 lines 16.9 kB
/** * @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=