UNPKG

io.parrots

Version:

Parrots.io App

155 lines (154 loc) 14.3 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import * as tslib_1 from "tslib"; import { Component } from '@angular/core'; import { AbstractNavMenu } from 'com.phloxui'; import { ObservableManager } from 'com.phloxui'; import { PhloxAppService } from 'com.phloxui'; import { Option } from 'com.phloxui'; import { ParrotsMainMenuItemProvider } from '../../../../lib/libs'; var /** @type {?} */ TYPE_NAME = "parrots-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=\"parrots-menu-top-layout\">\n\t<div class=\"container-fluid\">\n\t\t<div class=\"parrots-app-pane-wrapper\">\n\t\t\t<div class=\"parrots-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=\"parrots-app-switcher-wrapper\">\n\t\t\t <parrots-app-switcher></parrots-app-switcher>\n\t\t</div>\n\t\t<div class=\"parrots-main-nav-wrapper\">\n\t\t\t<div class=\"parrots-main-nav\">\n\t\t\t\t<div class=\"parrots-menu-top-item\" *ngFor=\"let item of getMenuItems()\" [layout]=\"this\" [model]=\"item\">{{item}}</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"parrots-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<parrots-addon-drawer></parrots-addon-drawer>\n\t\t</div>\n\t\t<div class=\"parrots-notifier-wrapper\">\n\t\t\t<parrots-notifier></parrots-notifier>\n\t\t</div>\n\t</div>\n</div>\n" },] }, ]; /** @nocollapse */ MenuTopLayout.ctorParameters = function () { return [ { type: PhloxAppService, }, { type: ParrotsMainMenuItemProvider, }, { 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 { ParrotsNotifier } from './menu.internal/ParrotsNotifier.component'; export { ParrotsAddonDrawer } from './menu.internal/ParrotsAddonDrawer.component'; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVudVRvcExheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9pby5wYXJyb3RzLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudC9wYWdlL21haW4vTWVudVRvcExheW91dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUkvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUF1QiwyQkFBMkIsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRXZGLHFCQUFNLFNBQVMsR0FBVyx5QkFBeUIsQ0FBQztBQUVwRCxxQkFBTSxjQUFjLEdBQVcsaUJBQWlCLENBQUM7O0lBcUNkLHlDQUE0QjtJQXNCN0QsdUJBQVksZUFBZ0MsRUFBRSxnQkFBNkMsRUFBRSxPQUEwQjtRQUF2SCxZQUNFLGtCQUFNLGFBQWEsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLFNBUTdDO1FBTkMsRUFBRSxDQUFDLENBQUMsZUFBZSxLQUFLLElBQUksSUFBSSxPQUFPLGVBQWUsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLEtBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1NBQ3hDO1FBRUQsS0FBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO1FBQ3pDLEtBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDOztLQUN0QjswQkFoQlcsOEJBQUc7Ozs7O1lBQ2IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLENBQUMsZUFBZSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pGLE1BQU0sQ0FBQyxJQUFJLENBQUM7YUFDYjtZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDOzs7Ozs7OztJQWNyQyxnQ0FBUTs7OztRQUNiLGlCQUFNLFFBQVEsV0FBRSxDQUFDOztRQUVqQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQUMsTUFBTTtZQUNqQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2FBQ1o7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDTixPQUFPLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7YUFDakQ7U0FDRixDQUFDLENBQUM7Ozs7O0lBR0Usc0NBQWM7Ozs7UUFDbkIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7Ozs7O0lBR1gsb0NBQVk7Ozs7UUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7Ozs7O0lBR2xCLHVDQUFlOzs7OztRQUNwQixNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFDLEtBQTRCO1lBQ3RFLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixLQUFLLEdBQUcsRUFBRSxDQUFDO2FBQ1o7WUFFRCxLQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM5QixDQUFDLENBQUM7Ozs7OztJQUdFLGtDQUFVOzs7O2NBQUMsSUFBaUI7UUFDakMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksSUFBSSxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQy9CO1FBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQzs7OEJBbEV6QixTQUFTO21DQUVKLGNBQWM7O2dCQXZDL0QsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRTtvQkFDbkIsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFFBQVEsRUFBRSxtakNBOEJYO2lCQUNBOzs7O2dCQTFDUSxlQUFlO2dCQUVNLDJCQUEyQjtnQkFIaEQsaUJBQWlCOzs7UUFrRHZCLE1BQU0sRUFBRTs7OztRQUVSLE1BQU0sQ0FBQyxZQUFZLENBQUM7Ozt3QkExRHZCO0VBa0RtQyxlQUFlO1NBQXJDLGFBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdFMUIsZ0NBQWMsMkNBQTJDLENBQUM7QUFDMUQsbUNBQWMsOENBQThDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSUFwcGxpY2F0aW9uQXdhcmUgfSBmcm9tICdjb20ucGhsb3h1aSc7XG5pbXBvcnQgeyBQaGxveEFwcCB9IGZyb20gJ2NvbS5waGxveHVpJztcbmltcG9ydCB7IEFic3RyYWN0TmF2TWVudSB9IGZyb20gJ2NvbS5waGxveHVpJztcbmltcG9ydCB7IE1lbnVUb3BJdGVtIH0gZnJvbSAnLi9tZW51dG9wbGF5b3V0LmludGVybmFsL01lbnVUb3BJdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlTWFuYWdlciB9IGZyb20gJ2NvbS5waGxveHVpJztcbmltcG9ydCB7IFBobG94QXBwU2VydmljZSB9IGZyb20gJ2NvbS5waGxveHVpJztcbmltcG9ydCB7IE9wdGlvbiB9IGZyb20gJ2NvbS5waGxveHVpJztcbmltcG9ydCB7IFBhcnJvdHNNYWluTWVudUl0ZW0sIFBhcnJvdHNNYWluTWVudUl0ZW1Qcm92aWRlciB9IGZyb20gJy4uLy4uLy4uLy4uL2xpYi9saWJzJ1xuXG5jb25zdCBUWVBFX05BTUU6IHN0cmluZyA9IFwicGFycm90cy1tZW51LXRvcC1sYXlvdXRcIjtcblxuY29uc3QgU1VCX1RPUElDX05BTUU6IHN0cmluZyA9ICdtZW51LXRvcC1sYXlvdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgbW9kdWxlSWQ6IG1vZHVsZS5pZCwgXG4gIHNlbGVjdG9yOiBUWVBFX05BTUUsXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cInBhcnJvdHMtbWVudS10b3AtbGF5b3V0XCI+XG5cdDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cblx0XHQ8ZGl2IGNsYXNzPVwicGFycm90cy1hcHAtcGFuZS13cmFwcGVyXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwicGFycm90cy1hcHAtcGFuZVwiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwibG9nb1wiPjwvZGl2PlxuXHRcdFx0XHQ8aDMgY2xhc3M9XCJsYWJlbFwiPlxuXHRcdFx0XHRcdHt7IGdldEFwcGxpY2F0aW9uKCkuZ2V0QXBwSW5mbygpLm5hbWUgfX1cblx0XHRcdFx0XHQ8c21hbGw+e3sgZ2V0QXBwbGljYXRpb24oKS5nZXRBcHBJbmZvKCkudGFnbGluZSB9fTwvc21hbGw+XG5cdFx0XHRcdDwvaDM+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwicGFycm90cy1hcHAtc3dpdGNoZXItd3JhcHBlclwiPlxuXHRcdFx0IDxwYXJyb3RzLWFwcC1zd2l0Y2hlcj48L3BhcnJvdHMtYXBwLXN3aXRjaGVyPlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJwYXJyb3RzLW1haW4tbmF2LXdyYXBwZXJcIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJwYXJyb3RzLW1haW4tbmF2XCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJwYXJyb3RzLW1lbnUtdG9wLWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRNZW51SXRlbXMoKVwiIFtsYXlvdXRdPVwidGhpc1wiIFttb2RlbF09XCJpdGVtXCI+e3tpdGVtfX08L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJwYXJyb3RzLWFkZG9uLWRyYXdlci13cmFwcGVyXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiYmctYm9yZGVyXCI+XG5cdFx0XHRcdDwhLS0gZmFrZSBiZyB3aXRoIGJvcmRlci0tPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8cGFycm90cy1hZGRvbi1kcmF3ZXI+PC9wYXJyb3RzLWFkZG9uLWRyYXdlcj5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwicGFycm90cy1ub3RpZmllci13cmFwcGVyXCI+XG5cdFx0XHQ8cGFycm90cy1ub3RpZmllcj48L3BhcnJvdHMtbm90aWZpZXI+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuPC9kaXY+XG5gXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVUb3BMYXlvdXQgZXh0ZW5kcyBBYnN0cmFjdE5hdk1lbnU8TWVudVRvcEl0ZW0+IGltcGxlbWVudHMgSUFwcGxpY2F0aW9uQXdhcmUsIE9uSW5pdCB7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBUWVBFX05BTUU6IHN0cmluZyA9IFRZUEVfTkFNRTtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNVQl9UT1BJQ19OQU1FOiBzdHJpbmcgPSBTVUJfVE9QSUNfTkFNRTtcblxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIGkxOG5LZXk6IHN0cmluZztcbiAgQE9wdGlvbignaTE4bkJ5cGFzcycpXG4gIHByb3RlY3RlZCBieXBhc3M6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBwaGxveEFwcFNlcnZpY2U6IFBobG94QXBwU2VydmljZTtcbiAgcHJpdmF0ZSBtZW51SXRlbVByb3ZpZGVyOiBQYXJyb3RzTWFpbk1lbnVJdGVtUHJvdmlkZXI7XG4gIHByaXZhdGUgaXRlbU1vZGVsczogUGFycm90c01haW5NZW51SXRlbVtdO1xuXG4gIHByaXZhdGUgZ2V0IGFwcCgpOiBQaGxveEFwcCB7XG4gICAgaWYgKHRoaXMucGhsb3hBcHBTZXJ2aWNlID09PSBudWxsIHx8IHR5cGVvZiB0aGlzLnBobG94QXBwU2VydmljZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5waGxveEFwcFNlcnZpY2UuZ2V0SW5zdGFuY2UoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHBobG94QXBwU2VydmljZTogUGhsb3hBcHBTZXJ2aWNlLCBtZW51SXRlbVByb3ZpZGVyOiBQYXJyb3RzTWFpbk1lbnVJdGVtUHJvdmlkZXIsIG9ic3ZNZ3I6IE9ic2VydmFibGVNYW5hZ2VyKSB7XG4gICAgc3VwZXIoTWVudVRvcExheW91dC5TVUJfVE9QSUNfTkFNRSwgb2Jzdk1ncik7XG5cbiAgICBpZiAocGhsb3hBcHBTZXJ2aWNlICE9PSBudWxsICYmIHR5cGVvZiBwaGxveEFwcFNlcnZpY2UgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aGlzLnBobG94QXBwU2VydmljZSA9IHBobG94QXBwU2VydmljZTtcbiAgICB9XG4gICAgXG4gICAgdGhpcy5tZW51SXRlbVByb3ZpZGVyID0gbWVudUl0ZW1Qcm92aWRlcjtcbiAgICB0aGlzLml0ZW1Nb2RlbHMgPSBbXTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIC8vIEF1dG8gbG9hZCBtZW51XG4gICAgdGhpcy5yZWxvYWRNZW51SXRlbXMoKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUud2FybignQ291bGQgbm90IGxvYWQgbWFpbiBtZW51IGl0ZW1zLicpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEFwcGxpY2F0aW9uKCk6IFBobG94QXBwIHtcbiAgICByZXR1cm4gdGhpcy5hcHA7XG4gIH1cblxuICBwdWJsaWMgZ2V0TWVudUl0ZW1zKCk6IFBhcnJvdHNNYWluTWVudUl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbU1vZGVscztcbiAgfVxuXG4gIHB1YmxpYyByZWxvYWRNZW51SXRlbXMoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMubWVudUl0ZW1Qcm92aWRlci5yZWxvYWQoKS50aGVuKChpdGVtczogUGFycm90c01haW5NZW51SXRlbVtdKSA9PiB7XG4gICAgICBpZiAoaXRlbXMgPT09IG51bGwpIHtcbiAgICAgICAgaXRlbXMgPSBbXTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgdGhpcy5pdGVtTW9kZWxzID0gaXRlbXM7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRvTmF2aWdhdGUoaXRlbTogTWVudVRvcEl0ZW0pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAoaXRlbS5nZXRNb2RlbCgpLmdldExpbmsoKSA9PT0gbnVsbCB8fCB0eXBlb2YgaXRlbS5nZXRNb2RlbCgpLmdldExpbmsoKSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZmFsc2UpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFwcC5nZXRSb3V0ZXIoKS5uYXZpZ2F0ZShbaXRlbS5nZXRNb2RlbCgpLmdldExpbmsoKV0pO1xuICB9XG59XG5cbmV4cG9ydCAqIGZyb20gJy4vbWVudS5pbnRlcm5hbC9QYXJyb3RzTm90aWZpZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbWVudS5pbnRlcm5hbC9QYXJyb3RzQWRkb25EcmF3ZXIuY29tcG9uZW50JztcbiJdfQ==