com.phloxui
Version:
PhloxUI Ng2+ Framework
155 lines (154 loc) • 14.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component } from '@angular/core';
import { AbstractNavMenu } from './AbstractNavMenu';
import { MainMenuItemProvider } from '../service/MainMenuItemProvider.service';
import { ObservableManager } from '../service/ObservableManager.service';
import { PhloxAppService } from '../service/PhloxAppService.service';
import { Option } from '../decorator/decorators';
var /** @type {?} */ TYPE_NAME = "phx-menu-top-layout";
var /** @type {?} */ SUB_TOPIC_NAME = 'menu-top-layout';
var MenuTopLayout = /** @class */ (function (_super) {
tslib_1.__extends(MenuTopLayout, _super);
function MenuTopLayout(phloxAppService, menuItemProvider, obsvMgr) {
var _this = _super.call(this, MenuTopLayout.SUB_TOPIC_NAME, obsvMgr) || this;
if (phloxAppService !== null && typeof phloxAppService !== 'undefined') {
_this.phloxAppService = phloxAppService;
}
_this.menuItemProvider = menuItemProvider;
_this.itemModels = [];
return _this;
}
Object.defineProperty(MenuTopLayout.prototype, "app", {
get: /**
* @return {?}
*/
function () {
if (this.phloxAppService === null || typeof this.phloxAppService === 'undefined') {
return null;
}
return this.phloxAppService.getInstance();
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
MenuTopLayout.prototype.ngOnInit = /**
* @return {?}
*/
function () {
_super.prototype.ngOnInit.call(this);
// Auto load menu
this.reloadMenuItems().then(function (result) {
if (result) {
}
else {
console.warn('Could not load main menu items.');
}
});
};
/**
* @return {?}
*/
MenuTopLayout.prototype.getApplication = /**
* @return {?}
*/
function () {
return this.app;
};
/**
* @return {?}
*/
MenuTopLayout.prototype.getMenuItems = /**
* @return {?}
*/
function () {
return this.itemModels;
};
/**
* @return {?}
*/
MenuTopLayout.prototype.reloadMenuItems = /**
* @return {?}
*/
function () {
var _this = this;
return this.menuItemProvider.reload().then(function (items) {
if (items === null) {
items = [];
}
_this.itemModels = items;
return Promise.resolve(true);
});
};
/**
* @param {?} item
* @return {?}
*/
MenuTopLayout.prototype.doNavigate = /**
* @param {?} item
* @return {?}
*/
function (item) {
if (item.getModel().getLink() === null || typeof item.getModel().getLink() !== 'string') {
return Promise.resolve(false);
}
return this.app.getRouter().navigate([item.getModel().getLink()]);
};
MenuTopLayout.TYPE_NAME = TYPE_NAME;
MenuTopLayout.SUB_TOPIC_NAME = SUB_TOPIC_NAME;
MenuTopLayout.decorators = [
{ type: Component, args: [{
moduleId: module.id,
selector: TYPE_NAME,
template: "<div class=\"phx-menu-top-layout\">\n\t<div class=\"container-fluid\">\n\t\t<div class=\"phlox-app-pane-wrapper\">\n\t\t\t<div class=\"phlox-app-pane\">\n\t\t\t\t<div class=\"logo\"></div>\n\t\t\t\t<h3 class=\"label\">\n\t\t\t\t\t{{ getApplication().getAppInfo().name }}\n\t\t\t\t\t<small>{{ getApplication().getAppInfo().tagline }}</small>\n\t\t\t\t</h3>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"phx-app-switcher-wrapper\">\n\t\t\t <phx-app-switcher></phx-app-switcher>\n\t\t</div>\n\t\t<div class=\"phlox-main-nav-wrapper\">\n\t\t\t<div class=\"phlox-main-nav\">\n\t\t\t\t<div class=\"phx-menu-top-item\" *ngFor=\"let item of getMenuItems()\" [layout]=\"this\" [model]=\"item\"></div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"phx-addon-drawer-wrapper\">\n\t\t\t<div class=\"bg-border\">\n\t\t\t\t<!-- fake bg with border-->\n\t\t\t</div>\n\t\t\t<phx-addon-drawer></phx-addon-drawer>\n\t\t</div>\n\t\t<div class=\"phlox-notifier-wrapper\">\n\t\t\t<phx-notifier></phx-notifier>\n\t\t</div>\n\t</div>\n</div>\n"
},] },
];
/** @nocollapse */
MenuTopLayout.ctorParameters = function () { return [
{ type: PhloxAppService, },
{ type: MainMenuItemProvider, },
{ type: ObservableManager, },
]; };
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], MenuTopLayout.prototype, "i18nKey", void 0);
tslib_1.__decorate([
Option('i18nBypass'),
tslib_1.__metadata("design:type", Boolean)
], MenuTopLayout.prototype, "bypass", void 0);
return MenuTopLayout;
}(AbstractNavMenu));
export { MenuTopLayout };
function MenuTopLayout_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
MenuTopLayout.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
MenuTopLayout.ctorParameters;
/** @type {?} */
MenuTopLayout.TYPE_NAME;
/** @type {?} */
MenuTopLayout.SUB_TOPIC_NAME;
/** @type {?} */
MenuTopLayout.prototype.i18nKey;
/** @type {?} */
MenuTopLayout.prototype.bypass;
/** @type {?} */
MenuTopLayout.prototype.phloxAppService;
/** @type {?} */
MenuTopLayout.prototype.menuItemProvider;
/** @type {?} */
MenuTopLayout.prototype.itemModels;
}
export { PhloxAddonDrawer } from './page/main/menu.internal/PhloxAddonDrawer.component';
export { PhloxNotifier } from './page/main/menu.internal/PhloxNotifier.component';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVudVRvcExheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnQvTWVudVRvcExheW91dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUkvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVqRCxxQkFBTSxTQUFTLEdBQVcscUJBQXFCLENBQUM7QUFFaEQscUJBQU0sY0FBYyxHQUFXLGlCQUFpQixDQUFDOztJQXFDZCx5Q0FBNEI7SUFzQjdELHVCQUFZLGVBQWdDLEVBQUUsZ0JBQXNDLEVBQUUsT0FBMEI7UUFBaEgsWUFDRSxrQkFBTSxhQUFhLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxTQU83QztRQUxDLEVBQUUsQ0FBQyxDQUFDLGVBQWUsS0FBSyxJQUFJLElBQUksT0FBTyxlQUFlLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztZQUN2RSxLQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztTQUN4QztRQUNELEtBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxLQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQzs7S0FDdEI7MEJBZlcsOEJBQUc7Ozs7O1lBQ2IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLENBQUMsZUFBZSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pGLE1BQU0sQ0FBQyxJQUFJLENBQUM7YUFDYjtZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDOzs7Ozs7OztJQWFyQyxnQ0FBUTs7OztRQUNiLGlCQUFNLFFBQVEsV0FBRSxDQUFDOztRQUdqQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQUMsTUFBTTtZQUNqQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2FBQ1o7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDTixPQUFPLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7YUFDakQ7U0FDRixDQUFDLENBQUM7Ozs7O0lBR0Usc0NBQWM7Ozs7UUFDbkIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7Ozs7O0lBR1gsb0NBQVk7Ozs7UUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7Ozs7O0lBR2xCLHVDQUFlOzs7OztRQUNwQixNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFDLEtBQTBCO1lBQ3BFLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixLQUFLLEdBQUcsRUFBRSxDQUFDO2FBQ1o7WUFFRCxLQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUV4QixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM5QixDQUFDLENBQUM7Ozs7OztJQUdFLGtDQUFVOzs7O2NBQUMsSUFBaUI7UUFDakMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksSUFBSSxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQy9CO1FBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQzs7OEJBbkV6QixTQUFTO21DQUVKLGNBQWM7O2dCQXZDL0QsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRTtvQkFDbkIsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFFBQVEsRUFBRSx5L0JBOEJYO2lCQUNBOzs7O2dCQXpDUSxlQUFlO2dCQUZmLG9CQUFvQjtnQkFDcEIsaUJBQWlCOzs7UUFpRHZCLE1BQU0sRUFBRTs7OztRQUVSLE1BQU0sQ0FBQyxZQUFZLENBQUM7Ozt3QkEzRHZCO0VBbURtQyxlQUFlO1NBQXJDLGFBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXlFMUIsaUNBQWMsc0RBQXNELENBQUM7QUFDckUsOEJBQWMsbURBQW1ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSUFwcGxpY2F0aW9uQXdhcmUgfSBmcm9tICcuL0lBcHBsaWNhdGlvbkF3YXJlJztcbmltcG9ydCB7IFBobG94QXBwIH0gZnJvbSAnLi9QaGxveEFwcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWJzdHJhY3ROYXZNZW51IH0gZnJvbSAnLi9BYnN0cmFjdE5hdk1lbnUnO1xuaW1wb3J0IHsgTWVudVRvcEl0ZW0gfSBmcm9tICcuL21lbnVUb3BMYXlvdXQuaW50ZXJuYWwvTWVudVRvcEl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFBobG94TWFpbk1lbnVJdGVtIH0gZnJvbSAnLi9tb2RlbC9tb2RlbHMnO1xuaW1wb3J0IHsgTWFpbk1lbnVJdGVtUHJvdmlkZXIgfSBmcm9tICcuLi9zZXJ2aWNlL01haW5NZW51SXRlbVByb3ZpZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZU1hbmFnZXIgfSBmcm9tICcuLi9zZXJ2aWNlL09ic2VydmFibGVNYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGhsb3hBcHBTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9QaGxveEFwcFNlcnZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBPcHRpb24gfSBmcm9tICcuLi9kZWNvcmF0b3IvZGVjb3JhdG9ycyc7XG5cbmNvbnN0IFRZUEVfTkFNRTogc3RyaW5nID0gXCJwaHgtbWVudS10b3AtbGF5b3V0XCI7XG5cbmNvbnN0IFNVQl9UT1BJQ19OQU1FOiBzdHJpbmcgPSAnbWVudS10b3AtbGF5b3V0JztcblxuQENvbXBvbmVudCh7XG4gIG1vZHVsZUlkOiBtb2R1bGUuaWQsXG4gIHNlbGVjdG9yOiBUWVBFX05BTUUsXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cInBoeC1tZW51LXRvcC1sYXlvdXRcIj5cblx0PGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxuXHRcdDxkaXYgY2xhc3M9XCJwaGxveC1hcHAtcGFuZS13cmFwcGVyXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwicGhsb3gtYXBwLXBhbmVcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImxvZ29cIj48L2Rpdj5cblx0XHRcdFx0PGgzIGNsYXNzPVwibGFiZWxcIj5cblx0XHRcdFx0XHR7eyBnZXRBcHBsaWNhdGlvbigpLmdldEFwcEluZm8oKS5uYW1lIH19XG5cdFx0XHRcdFx0PHNtYWxsPnt7IGdldEFwcGxpY2F0aW9uKCkuZ2V0QXBwSW5mbygpLnRhZ2xpbmUgfX08L3NtYWxsPlxuXHRcdFx0XHQ8L2gzPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cInBoeC1hcHAtc3dpdGNoZXItd3JhcHBlclwiPlxuXHRcdFx0IDxwaHgtYXBwLXN3aXRjaGVyPjwvcGh4LWFwcC1zd2l0Y2hlcj5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwicGhsb3gtbWFpbi1uYXYtd3JhcHBlclwiPlxuXHRcdFx0PGRpdiBjbGFzcz1cInBobG94LW1haW4tbmF2XCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJwaHgtbWVudS10b3AtaXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldE1lbnVJdGVtcygpXCIgW2xheW91dF09XCJ0aGlzXCIgW21vZGVsXT1cIml0ZW1cIj48L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJwaHgtYWRkb24tZHJhd2VyLXdyYXBwZXJcIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJiZy1ib3JkZXJcIj5cblx0XHRcdFx0PCEtLSBmYWtlIGJnIHdpdGggYm9yZGVyLS0+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxwaHgtYWRkb24tZHJhd2VyPjwvcGh4LWFkZG9uLWRyYXdlcj5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwicGhsb3gtbm90aWZpZXItd3JhcHBlclwiPlxuXHRcdFx0PHBoeC1ub3RpZmllcj48L3BoeC1ub3RpZmllcj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG48L2Rpdj5cbmBcbn0pXG5leHBvcnQgY2xhc3MgTWVudVRvcExheW91dCBleHRlbmRzIEFic3RyYWN0TmF2TWVudTxNZW51VG9wSXRlbT4gaW1wbGVtZW50cyBJQXBwbGljYXRpb25Bd2FyZSwgT25Jbml0IHtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRZUEVfTkFNRTogc3RyaW5nID0gVFlQRV9OQU1FO1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU1VCX1RPUElDX05BTUU6IHN0cmluZyA9IFNVQl9UT1BJQ19OQU1FO1xuXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgaTE4bktleTogc3RyaW5nO1xuICBAT3B0aW9uKCdpMThuQnlwYXNzJylcbiAgcHJvdGVjdGVkIGJ5cGFzczogYm9vbGVhbjtcblxuICBwcml2YXRlIHBobG94QXBwU2VydmljZTogUGhsb3hBcHBTZXJ2aWNlO1xuICBwcml2YXRlIG1lbnVJdGVtUHJvdmlkZXI6IE1haW5NZW51SXRlbVByb3ZpZGVyO1xuICBwcml2YXRlIGl0ZW1Nb2RlbHM6IFBobG94TWFpbk1lbnVJdGVtW107XG5cbiAgcHJpdmF0ZSBnZXQgYXBwKCk6IFBobG94QXBwIHtcbiAgICBpZiAodGhpcy5waGxveEFwcFNlcnZpY2UgPT09IG51bGwgfHwgdHlwZW9mIHRoaXMucGhsb3hBcHBTZXJ2aWNlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnBobG94QXBwU2VydmljZS5nZXRJbnN0YW5jZSgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocGhsb3hBcHBTZXJ2aWNlOiBQaGxveEFwcFNlcnZpY2UsIG1lbnVJdGVtUHJvdmlkZXI6IE1haW5NZW51SXRlbVByb3ZpZGVyLCBvYnN2TWdyOiBPYnNlcnZhYmxlTWFuYWdlcikge1xuICAgIHN1cGVyKE1lbnVUb3BMYXlvdXQuU1VCX1RPUElDX05BTUUsIG9ic3ZNZ3IpO1xuXG4gICAgaWYgKHBobG94QXBwU2VydmljZSAhPT0gbnVsbCAmJiB0eXBlb2YgcGhsb3hBcHBTZXJ2aWNlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5waGxveEFwcFNlcnZpY2UgPSBwaGxveEFwcFNlcnZpY2U7XG4gICAgfVxuICAgIHRoaXMubWVudUl0ZW1Qcm92aWRlciA9IG1lbnVJdGVtUHJvdmlkZXI7XG4gICAgdGhpcy5pdGVtTW9kZWxzID0gW107XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIC8vIEF1dG8gbG9hZCBtZW51XG4gICAgdGhpcy5yZWxvYWRNZW51SXRlbXMoKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUud2FybignQ291bGQgbm90IGxvYWQgbWFpbiBtZW51IGl0ZW1zLicpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEFwcGxpY2F0aW9uKCk6IFBobG94QXBwIHtcbiAgICByZXR1cm4gdGhpcy5hcHA7XG4gIH1cblxuICBwdWJsaWMgZ2V0TWVudUl0ZW1zKCk6IFBobG94TWFpbk1lbnVJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLml0ZW1Nb2RlbHM7XG4gIH1cblxuICBwdWJsaWMgcmVsb2FkTWVudUl0ZW1zKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLm1lbnVJdGVtUHJvdmlkZXIucmVsb2FkKCkudGhlbigoaXRlbXM6IFBobG94TWFpbk1lbnVJdGVtW10pID0+IHtcbiAgICAgIGlmIChpdGVtcyA9PT0gbnVsbCkge1xuICAgICAgICBpdGVtcyA9IFtdO1xuICAgICAgfVxuXG4gICAgICB0aGlzLml0ZW1Nb2RlbHMgPSBpdGVtcztcblxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkb05hdmlnYXRlKGl0ZW06IE1lbnVUb3BJdGVtKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKGl0ZW0uZ2V0TW9kZWwoKS5nZXRMaW5rKCkgPT09IG51bGwgfHwgdHlwZW9mIGl0ZW0uZ2V0TW9kZWwoKS5nZXRMaW5rKCkgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hcHAuZ2V0Um91dGVyKCkubmF2aWdhdGUoW2l0ZW0uZ2V0TW9kZWwoKS5nZXRMaW5rKCldKTtcbiAgfVxufVxuXG5leHBvcnQgKiBmcm9tICcuL3BhZ2UvbWFpbi9tZW51LmludGVybmFsL1BobG94QWRkb25EcmF3ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcGFnZS9tYWluL21lbnUuaW50ZXJuYWwvUGhsb3hOb3RpZmllci5jb21wb25lbnQnO1xuIl19