UNPKG

@stratio/egeo

Version:
189 lines 15.3 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'; export class StHeaderMenuOptionComponent { /** * @param {?} elementRef * @param {?} router * @param {?} cd */ constructor(elementRef, router, cd) { 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 {?} */ (event) => this.onRouterEvent(event))); this.actualPath = this.router.url; } /** * @return {?} */ get qaId() { /** @type {?} */ let id = `${this.elementRef.nativeElement.id}-${this.option.label.toLowerCase()}`; id.replace(/\s+/ig, '_'); return id; } /** * @return {?} */ get hasSubmenu() { return this.option.subMenus && this.option.subMenus.length > 0; } /** * @return {?} */ get submenuList() { return this.hasSubmenu ? this.option.subMenus.map((/** * @param {?} _ * @return {?} */ _ => ({ label: _.label, value: _.link, selected: this.actualPath === _.link, selection: (/** @type {?} */ ({ link: _.link, external: _.external, openInNewPage: _.openInNewPage })) }))) : []; } /** * @return {?} */ isRouteActive() { return this.router.url.indexOf(this.option.link) > -1; } /** * @return {?} */ ngOnDestroy() { this.isActive = false; this.subscription.unsubscribe(); } /** * @return {?} */ onMenuClick() { 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 {?} */ changeOption(selected) { this.isActive = false; this.selectMenu.emit(selected.selection); } /** * @param {?} event * @return {?} */ onClickOutside(event) { /** @type {?} */ const isMyComponent = this.isActive && this.menu.nativeElement.contains(event.target); if (!isMyComponent && this.isActive) { this.isActive = false; } } /** * @private * @param {?} event * @return {?} */ onRouterEvent(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 = () => [ { 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'],] }] }; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1vcHRpb24uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac3RyYXRpby9lZ2VvLyIsInNvdXJjZXMiOlsibGliL3N0LWhlYWRlci9tZW51LW9wdGlvbi9tZW51LW9wdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFVQSxPQUFPLEVBQ0osdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBRUwsVUFBVSxFQUNWLE1BQU0sRUFDTixZQUFZLEVBQ1osWUFBWSxFQUNaLFNBQVMsRUFDVCxpQkFBaUIsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQXVDLE1BQU0sb0JBQW9CLENBQUM7QUFPN0YsTUFBTSxPQUFPLDJCQUEyQjs7Ozs7O0lBYXJDLFlBQW9CLFVBQXNCLEVBQVUsTUFBYyxFQUFVLEVBQXFCO1FBQTdFLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFSdkYsZUFBVSxHQUFvQyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUd2RixhQUFRLEdBQVksS0FBSyxDQUFDO1FBR3pCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFHN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTOzs7O1FBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQztRQUN2RixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQ3JDLENBQUM7Ozs7SUFFRCxJQUFXLElBQUk7O1lBQ1IsRUFBRSxHQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxJ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OztZQWhCRSxVQUFVO1lBT0osTUFBTTtZQUZaLGlCQUFpQjs7O3FCQWNoQixLQUFLOzJCQUNMLEtBQUs7eUJBRUwsTUFBTTttQkFFTixTQUFTLFNBQUMsTUFBTSxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQzs2QkE0RGpDLFlBQVksU0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7OztJQWpFMUMsNkNBQW9DOztJQUNwQyxtREFBK0I7O0lBRS9CLGlEQUE4Rjs7SUFFOUYsMkNBQXFEOztJQUNyRCwrQ0FBaUM7Ozs7O0lBRWpDLG1EQUFtQzs7Ozs7SUFDbkMsaURBQWdDOzs7OztJQUVwQixpREFBOEI7Ozs7O0lBQUUsNkNBQXNCOzs7OztJQUFFLHlDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiDCqSAyMDE3IFN0cmF0aW8gQmlnIERhdGEgSW5jLiwgU3VjdXJzYWwgZW4gRXNwYcOxYS5cbiAqXG4gKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAuXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZO1xuICogd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS5cbiAqIFNlZSB0aGUgdGVybXMgb2YgdGhlIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMC5cbiAqL1xuaW1wb3J0IHtcbiAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgQ29tcG9uZW50LFxuICAgSW5wdXQsXG4gICBPbkRlc3Ryb3ksXG4gICBFbGVtZW50UmVmLFxuICAgT3V0cHV0LFxuICAgRXZlbnRFbWl0dGVyLFxuICAgSG9zdExpc3RlbmVyLFxuICAgVmlld0NoaWxkLFxuICAgQ2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIsIE5hdmlnYXRpb25FbmQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFN0SGVhZGVyTWVudU9wdGlvbiwgU3RIZWFkZXJTZWxlY3Rpb24sIFN0SGVhZGVyTWVudUl0ZW0gfSBmcm9tICcuLi9zdC1oZWFkZXIubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgIHNlbGVjdG9yOiAnc3QtaGVhZGVyLW1lbnUtb3B0aW9uJyxcbiAgIHRlbXBsYXRlVXJsOiAnLi9tZW51LW9wdGlvbi5odG1sJyxcbiAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFN0SGVhZGVyTWVudU9wdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgIEBJbnB1dCgpIG9wdGlvbjogU3RIZWFkZXJNZW51T3B0aW9uO1xuICAgQElucHV0KCkgc2hvd01lbnVOYW1lOiBib29sZWFuO1xuXG4gICBAT3V0cHV0KCkgc2VsZWN0TWVudTogRXZlbnRFbWl0dGVyPFN0SGVhZGVyU2VsZWN0aW9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8U3RIZWFkZXJTZWxlY3Rpb24+KCk7XG5cbiAgIEBWaWV3Q2hpbGQoJ21lbnUnLCB7c3RhdGljOiBmYWxzZX0pIG1lbnU6IEVsZW1lbnRSZWY7XG4gICBwdWJsaWMgaXNBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgIHByaXZhdGUgYWN0dWFsUGF0aDogc3RyaW5nID0gJyc7XG5cbiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQpID0+IHRoaXMub25Sb3V0ZXJFdmVudChldmVudCkpO1xuICAgICAgdGhpcy5hY3R1YWxQYXRoID0gdGhpcy5yb3V0ZXIudXJsO1xuICAgfVxuXG4gICBwdWJsaWMgZ2V0IHFhSWQoKTogc3RyaW5nIHtcbiAgICAgIGxldCBpZDogc3RyaW5nID0gYCR7dGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaWR9LSR7dGhpcy5vcHRpb24ubGFiZWwudG9Mb3dlckNhc2UoKX1gO1xuICAgICAgaWQucmVwbGFjZSgvXFxzKy9pZywgJ18nKTtcbiAgICAgIHJldHVybiBpZDtcbiAgIH1cblxuICAgcHVibGljIGdldCBoYXNTdWJtZW51KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMub3B0aW9uLnN1Yk1lbnVzICYmIHRoaXMub3B0aW9uLnN1Yk1lbnVzLmxlbmd0aCA+IDA7XG4gICB9XG5cbiAgIHB1YmxpYyBnZXQgc3VibWVudUxpc3QoKTogU3RIZWFkZXJNZW51SXRlbVtdIHtcbiAgICAgIHJldHVybiB0aGlzLmhhc1N1Ym1lbnUgPyB0aGlzLm9wdGlvbi5zdWJNZW51cy5tYXAoXyA9PiAoe1xuICAgICAgICAgbGFiZWw6IF8ubGFiZWwsXG4gICAgICAgICB2YWx1ZTogXy5saW5rLFxuICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuYWN0dWFsUGF0aCA9PT0gXy5saW5rLFxuICAgICAgICAgc2VsZWN0aW9uOiB7XG4gICAgICAgICAgICBsaW5rOiBfLmxpbmssXG4gICAgICAgICAgICBleHRlcm5hbDogXy5leHRlcm5hbCxcbiAgICAgICAgICAgIG9wZW5Jbk5ld1BhZ2U6IF8ub3BlbkluTmV3UGFnZVxuICAgICAgICAgfSBhcyBTdEhlYWRlclNlbGVjdGlvblxuICAgICAgfSkpIDogW107XG4gICB9XG5cbiAgIHB1YmxpYyBpc1JvdXRlQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMucm91dGVyLnVybC5pbmRleE9mKHRoaXMub3B0aW9uLmxpbmspID4gLTE7XG4gICB9XG5cbiAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgIHRoaXMuaXNBY3RpdmUgPSBmYWxzZTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICB9XG5cbiAgIHB1YmxpYyBvbk1lbnVDbGljaygpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmhhc1N1Ym1lbnUpIHtcbiAgICAgICAgIHRoaXMuaXNBY3RpdmUgPSAhdGhpcy5pc0FjdGl2ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICB0aGlzLnNlbGVjdE1lbnUuZW1pdCh7XG4gICAgICAgICAgICBsaW5rOiB0aGlzLm9wdGlvbi5saW5rLFxuICAgICAgICAgICAgZXh0ZXJuYWw6IHRoaXMub3B0aW9uLmV4dGVybmFsLFxuICAgICAgICAgICAgb3BlbkluTmV3UGFnZTogdGhpcy5vcHRpb24ub3BlbkluTmV3UGFnZVxuICAgICAgICAgfSk7XG4gICAgICB9XG4gICB9XG5cbiAgIHB1YmxpYyBjaGFuZ2VPcHRpb24oc2VsZWN0ZWQ6IFN0SGVhZGVyTWVudUl0ZW0pOiB2b2lkIHtcbiAgICAgIHRoaXMuaXNBY3RpdmUgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VsZWN0TWVudS5lbWl0KHNlbGVjdGVkLnNlbGVjdGlvbik7XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcbiAgIG9uQ2xpY2tPdXRzaWRlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgY29uc3QgaXNNeUNvbXBvbmVudDogYm9vbGVhbiA9IHRoaXMuaXNBY3RpdmUgJiYgdGhpcy5tZW51Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KTtcbiAgICAgIGlmICghaXNNeUNvbXBvbmVudCAmJiB0aGlzLmlzQWN0aXZlKSB7XG4gICAgICAgICB0aGlzLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgICB9XG4gICB9XG5cbiAgIHByaXZhdGUgb25Sb3V0ZXJFdmVudChldmVudDogYW55KTogdm9pZCB7XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgICB0aGlzLmFjdHVhbFBhdGggPSBldmVudC51cmxBZnRlclJlZGlyZWN0cztcbiAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICB9XG4gICB9XG59XG4iXX0=