com.phloxui
Version:
PhloxUI Ng2+ Framework
228 lines (227 loc) • 15.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, HostListener } from '@angular/core';
import { PhloxAppService } from '../../../service/PhloxAppService.service';
import { NeedFocusService } from '../../../service/NeedFocusService.service';
import { AppDrawerPopover } from './switcher.internal/AppDrawerPopover.component';
import { AbstractRippleButton } from '../../AbstractRippleButton';
import { PhloxAppInfo } from '../../../component/model/PhloxAppInfo';
var /** @type {?} */ TYPE_NAME = "phx-app-switcher";
var /** @type {?} */ SUB_TOPIC_NAME = 'app-switcher';
var PhloxAppSwitcher = /** @class */ (function (_super) {
tslib_1.__extends(PhloxAppSwitcher, _super);
function PhloxAppSwitcher(appSvc, needFocusService) {
var _this = _super.call(this, appSvc, needFocusService) || this;
_this.delay = PhloxAppInfo.DEFAULT_APP_SWITCHER_POPOVER_DELAY;
if (_this.getApplication() !== null && typeof _this.getApplication() !== 'undefined' &&
_this.getApplication().getAppInfo() !== null && typeof _this.getApplication().getAppInfo() !== 'undefined') {
_this.delay = _this.getApplication().getAppInfo().settings.APP_SWITCHER_POPOVER_DELAY;
}
return _this;
}
/**
* @return {?}
*/
PhloxAppSwitcher.prototype.ngOnInit = /**
* @return {?}
*/
function () {
//super.ngOnInit();
this.contentText = '<div class="anchor"></div>';
this.appPopoverType = AppDrawerPopover;
this.subTopicName = PhloxAppSwitcher.SUB_TOPIC_NAME;
};
/**
* @param {?} $event
* @return {?}
*/
PhloxAppSwitcher.prototype.doFocus = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
};
/**
* @param {?} $event
* @return {?}
*/
PhloxAppSwitcher.prototype.doLostFocus = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
};
/**
* @param {?} $event
* @return {?}
*/
PhloxAppSwitcher.prototype.onPopoverBtnClicked = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
$event.stopPropagation();
};
/**
* @param {?} $event
* @return {?}
*/
PhloxAppSwitcher.prototype.onPopoverActived = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
this.source = $event.source;
this.needFocusService.setFocusingComponent(this);
};
/**
* @param {?} $event
* @return {?}
*/
PhloxAppSwitcher.prototype.onPopoverInactived = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
this.source = null;
this.needFocusService.resetFocusingComponent();
};
/**
* @param {?} event
* @return {?}
*/
PhloxAppSwitcher.prototype.onClick = /**
* @param {?} event
* @return {?}
*/
function (event) {
_super.prototype.onClick.call(this, event);
};
/**
* @param {?} event
* @return {?}
*/
PhloxAppSwitcher.prototype.onFocus = /**
* @param {?} event
* @return {?}
*/
function (event) {
};
/**
* @param {?} event
* @return {?}
*/
PhloxAppSwitcher.prototype.onLostFocus = /**
* @param {?} event
* @return {?}
*/
function (event) {
if (this.source != null) {
this.source.hide();
}
};
/**
* @param {?} $event
* @return {?}
*/
PhloxAppSwitcher.prototype._onDocumentClick = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
$event.stopPropagation();
if (this.source != null) {
this.source.hide();
}
};
/**
* @return {?}
*/
PhloxAppSwitcher.prototype.getContentText = /**
* @return {?}
*/
function () {
return this.contentText;
};
/**
* @return {?}
*/
PhloxAppSwitcher.prototype.getSubTopicName = /**
* @return {?}
*/
function () {
return this.subTopicName;
};
/**
* @return {?}
*/
PhloxAppSwitcher.prototype.getAppPopoverType = /**
* @return {?}
*/
function () {
return this.appPopoverType;
};
/**
* @return {?}
*/
PhloxAppSwitcher.prototype.getDelay = /**
* @return {?}
*/
function () {
return this.delay;
};
PhloxAppSwitcher.TYPE_NAME = TYPE_NAME;
PhloxAppSwitcher.SUB_TOPIC_NAME = SUB_TOPIC_NAME;
PhloxAppSwitcher.decorators = [
{ type: Component, args: [{
moduleId: module.id,
selector: TYPE_NAME,
template: "<div class=\"phx-app-switcher\" [phxPopover]=\"getContentText()\" [component-type]=\"getAppPopoverType()\" [delay]=\"getDelay()\" [topicName]=\"getSubTopicName()\"\n\t(phxClick)=\"onPopoverBtnClicked($event)\" (phxActive)=\"onPopoverActived($event)\" (phxInactive)=\"onPopoverInactived($event)\">\n\t<div class=\"box-container\">\n\t\t<div class=\"inline-boxes\">\n\t\t\t<div class=\"square\"></div>\n\t\t\t<div class=\"square\"></div>\n\t\t</div>\n\t\t<div class=\"inline-boxes\">\n\t\t\t<div class=\"square\"></div>\n\t\t\t<div class=\"square\"></div>\n\t\t</div>\n\t</div>\n</div>\n",
entryComponents: [AppDrawerPopover],
// add to resolve factory
host: {
'(document:click)': '_onDocumentClick($event)'
}
},] },
];
/** @nocollapse */
PhloxAppSwitcher.ctorParameters = function () { return [
{ type: PhloxAppService, },
{ type: NeedFocusService, },
]; };
PhloxAppSwitcher.propDecorators = {
"onClick": [{ type: HostListener, args: ['click', ['$event'],] },],
};
return PhloxAppSwitcher;
}(AbstractRippleButton));
export { PhloxAppSwitcher };
function PhloxAppSwitcher_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
PhloxAppSwitcher.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
PhloxAppSwitcher.ctorParameters;
/** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
PhloxAppSwitcher.propDecorators;
/** @type {?} */
PhloxAppSwitcher.TYPE_NAME;
/** @type {?} */
PhloxAppSwitcher.SUB_TOPIC_NAME;
/** @type {?} */
PhloxAppSwitcher.prototype.contentText;
/** @type {?} */
PhloxAppSwitcher.prototype.subTopicName;
/** @type {?} */
PhloxAppSwitcher.prototype.appPopoverType;
/** @type {?} */
PhloxAppSwitcher.prototype.delay;
/** @type {?} */
PhloxAppSwitcher.prototype.source;
}
export { AppDrawerPopover } from './switcher.internal/AppDrawerPopover.component';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGhsb3hBcHBTd2l0Y2hlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnQvcGFnZS9tYWluL1BobG94QXBwU3dpdGNoZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUIsWUFBWSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUd6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBSXJFLHFCQUFNLFNBQVMsR0FBVyxrQkFBa0IsQ0FBQztBQUU3QyxxQkFBTSxjQUFjLEdBQVcsY0FBYyxDQUFDOztJQXdCUiw0Q0FBb0I7SUFheEQsMEJBQVksTUFBdUIsRUFBRSxnQkFBa0M7UUFBdkUsWUFDRSxrQkFBTSxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsU0FRaEM7UUFOQyxLQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxrQ0FBa0MsQ0FBQztRQUU3RCxFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssSUFBSSxJQUFJLE9BQU8sS0FBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLFdBQVc7WUFDaEYsS0FBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLFVBQVUsRUFBRSxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxVQUFVLEVBQUUsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQzNHLEtBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQztTQUNyRjs7S0FDRjs7OztJQUVNLG1DQUFROzs7OztRQUViLElBQUksQ0FBQyxXQUFXLEdBQUcsNEJBQTRCLENBQUM7UUFDaEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQztRQUN2QyxJQUFJLENBQUMsWUFBWSxHQUFHLGdCQUFnQixDQUFDLGNBQWMsQ0FBQzs7Ozs7O0lBRzVDLGtDQUFPOzs7O0lBQWpCLFVBQWtCLE1BQWE7S0FFOUI7Ozs7O0lBRVMsc0NBQVc7Ozs7SUFBckIsVUFBc0IsTUFBYTtLQUVsQzs7Ozs7SUFFTSw4Q0FBbUI7Ozs7Y0FBQyxNQUFrQjtRQUMzQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7Ozs7OztJQUdwQiwyQ0FBZ0I7Ozs7Y0FBQyxNQUFXO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7Ozs7OztJQUc1Qyw2Q0FBa0I7Ozs7Y0FBQyxNQUFXO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDOzs7Ozs7SUFJMUMsa0NBQU87Ozs7Y0FBQyxLQUFpQjtRQUM5QixpQkFBTSxPQUFPLFlBQUMsS0FBSyxDQUFDLENBQUM7Ozs7OztJQUdoQixrQ0FBTzs7OztjQUFDLEtBQVU7Ozs7OztJQUlsQixzQ0FBVzs7OztjQUFDLEtBQVU7UUFDM0IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDcEI7Ozs7OztJQUdJLDJDQUFnQjs7OztjQUFDLE1BQVc7UUFDakMsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXpCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3BCOzs7OztJQUdJLHlDQUFjOzs7O1FBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDOzs7OztJQUduQiwwQ0FBZTs7OztRQUNwQixNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQzs7Ozs7SUFHcEIsNENBQWlCOzs7O1FBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDOzs7OztJQUd0QixtQ0FBUTs7OztRQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDOztpQ0F2RnVCLFNBQVM7c0NBRUosY0FBYzs7Z0JBMUIvRCxTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFO29CQUNuQixRQUFRLEVBQUUsU0FBUztvQkFDbkIsUUFBUSxFQUFFLDJrQkFhWDtvQkFDQyxlQUFlLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQzs7b0JBQ25DLElBQUksRUFBRTt3QkFDSixrQkFBa0IsRUFBRSwwQkFBMEI7cUJBQy9DO2lCQUNGOzs7O2dCQWpDUSxlQUFlO2dCQUNmLGdCQUFnQjs7OzRCQXNGdEIsWUFBWSxTQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQzs7MkJBMUZuQztFQXFDc0Msb0JBQW9CO1NBQTdDLGdCQUFnQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE2RjdCLGlDQUFjLGdEQUFnRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBIb3N0TGlzdGVuZXIsIEVsZW1lbnRSZWYsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBobG94QXBwIH0gZnJvbSAnLi4vLi4vUGhsb3hBcHAuY29tcG9uZW50JztcbmltcG9ydCB7IElOZWVkRm9jdXMgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnQvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBQaGxveEFwcFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL1BobG94QXBwU2VydmljZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5lZWRGb2N1c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL05lZWRGb2N1c1NlcnZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBEcmF3ZXJQb3BvdmVyIH0gZnJvbSAnLi9zd2l0Y2hlci5pbnRlcm5hbC9BcHBEcmF3ZXJQb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYnN0cmFjdFJpcHBsZUJ1dHRvbiB9IGZyb20gJy4uLy4uL0Fic3RyYWN0UmlwcGxlQnV0dG9uJztcbmltcG9ydCB7IFBobG94QXBwSW5mbyB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudC9tb2RlbC9QaGxveEFwcEluZm8nO1xuXG5kZWNsYXJlIHZhciAkOiBhbnk7XG5cbmNvbnN0IFRZUEVfTkFNRTogc3RyaW5nID0gXCJwaHgtYXBwLXN3aXRjaGVyXCI7XG5cbmNvbnN0IFNVQl9UT1BJQ19OQU1FOiBzdHJpbmcgPSAnYXBwLXN3aXRjaGVyJztcblxuQENvbXBvbmVudCh7XG4gIG1vZHVsZUlkOiBtb2R1bGUuaWQsXG4gIHNlbGVjdG9yOiBUWVBFX05BTUUsXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cInBoeC1hcHAtc3dpdGNoZXJcIiBbcGh4UG9wb3Zlcl09XCJnZXRDb250ZW50VGV4dCgpXCIgW2NvbXBvbmVudC10eXBlXT1cImdldEFwcFBvcG92ZXJUeXBlKClcIiBbZGVsYXldPVwiZ2V0RGVsYXkoKVwiIFt0b3BpY05hbWVdPVwiZ2V0U3ViVG9waWNOYW1lKClcIlxuXHQocGh4Q2xpY2spPVwib25Qb3BvdmVyQnRuQ2xpY2tlZCgkZXZlbnQpXCIgKHBoeEFjdGl2ZSk9XCJvblBvcG92ZXJBY3RpdmVkKCRldmVudClcIiAocGh4SW5hY3RpdmUpPVwib25Qb3BvdmVySW5hY3RpdmVkKCRldmVudClcIj5cblx0PGRpdiBjbGFzcz1cImJveC1jb250YWluZXJcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiaW5saW5lLWJveGVzXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwic3F1YXJlXCI+PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwic3F1YXJlXCI+PC9kaXY+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cImlubGluZS1ib3hlc1wiPlxuXHRcdFx0PGRpdiBjbGFzcz1cInNxdWFyZVwiPjwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cInNxdWFyZVwiPjwvZGl2PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cbjwvZGl2PlxuYCxcbiAgZW50cnlDb21wb25lbnRzOiBbQXBwRHJhd2VyUG9wb3Zlcl0sIC8vIGFkZCB0byByZXNvbHZlIGZhY3RvcnlcbiAgaG9zdDoge1xuICAgICcoZG9jdW1lbnQ6Y2xpY2spJzogJ19vbkRvY3VtZW50Q2xpY2soJGV2ZW50KSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBQaGxveEFwcFN3aXRjaGVyIGV4dGVuZHMgQWJzdHJhY3RSaXBwbGVCdXR0b24gaW1wbGVtZW50cyBPbkluaXQsIElOZWVkRm9jdXMge1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVFlQRV9OQU1FOiBzdHJpbmcgPSBUWVBFX05BTUU7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTVUJfVE9QSUNfTkFNRTogc3RyaW5nID0gU1VCX1RPUElDX05BTUU7XG5cbiAgLy8gdXNlIGZvciBhcHAgZHJhd2VyXG4gIHByaXZhdGUgY29udGVudFRleHQ6IHN0cmluZztcbiAgcHJpdmF0ZSBzdWJUb3BpY05hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSBhcHBQb3BvdmVyVHlwZTogVHlwZTxhbnk+O1xuICBwcml2YXRlIGRlbGF5OiBudW1iZXI7XG4gIHByaXZhdGUgc291cmNlOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoYXBwU3ZjOiBQaGxveEFwcFNlcnZpY2UsIG5lZWRGb2N1c1NlcnZpY2U6IE5lZWRGb2N1c1NlcnZpY2UpIHtcbiAgICBzdXBlcihhcHBTdmMsIG5lZWRGb2N1c1NlcnZpY2UpO1xuXG4gICAgdGhpcy5kZWxheSA9IFBobG94QXBwSW5mby5ERUZBVUxUX0FQUF9TV0lUQ0hFUl9QT1BPVkVSX0RFTEFZO1xuICAgIFxuICAgIGlmICh0aGlzLmdldEFwcGxpY2F0aW9uKCkgIT09IG51bGwgJiYgdHlwZW9mIHRoaXMuZ2V0QXBwbGljYXRpb24oKSAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgIHRoaXMuZ2V0QXBwbGljYXRpb24oKS5nZXRBcHBJbmZvKCkgIT09IG51bGwgJiYgdHlwZW9mIHRoaXMuZ2V0QXBwbGljYXRpb24oKS5nZXRBcHBJbmZvKCkgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aGlzLmRlbGF5ID0gdGhpcy5nZXRBcHBsaWNhdGlvbigpLmdldEFwcEluZm8oKS5zZXR0aW5ncy5BUFBfU1dJVENIRVJfUE9QT1ZFUl9ERUxBWTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy9zdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuY29udGVudFRleHQgPSAnPGRpdiBjbGFzcz1cImFuY2hvclwiPjwvZGl2Pic7XG4gICAgdGhpcy5hcHBQb3BvdmVyVHlwZSA9IEFwcERyYXdlclBvcG92ZXI7XG4gICAgdGhpcy5zdWJUb3BpY05hbWUgPSBQaGxveEFwcFN3aXRjaGVyLlNVQl9UT1BJQ19OQU1FO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRvRm9jdXMoJGV2ZW50OiBFdmVudCk6IHZvaWQge1xuXG4gIH1cblxuICBwcm90ZWN0ZWQgZG9Mb3N0Rm9jdXMoJGV2ZW50OiBFdmVudCk6IHZvaWQge1xuXG4gIH1cblxuICBwdWJsaWMgb25Qb3BvdmVyQnRuQ2xpY2tlZCgkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgb25Qb3BvdmVyQWN0aXZlZCgkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc291cmNlID0gJGV2ZW50LnNvdXJjZTtcbiAgICB0aGlzLm5lZWRGb2N1c1NlcnZpY2Uuc2V0Rm9jdXNpbmdDb21wb25lbnQodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgb25Qb3BvdmVySW5hY3RpdmVkKCRldmVudDogYW55KSB7XG4gICAgdGhpcy5zb3VyY2UgPSBudWxsO1xuICAgIHRoaXMubmVlZEZvY3VzU2VydmljZS5yZXNldEZvY3VzaW5nQ29tcG9uZW50KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgc3VwZXIub25DbGljayhldmVudCk7XG4gIH1cblxuICBwdWJsaWMgb25Gb2N1cyhldmVudDogYW55KTogdm9pZCB7XG5cbiAgfVxuXG4gIHB1YmxpYyBvbkxvc3RGb2N1cyhldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc291cmNlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuc291cmNlLmhpZGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgX29uRG9jdW1lbnRDbGljaygkZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICh0aGlzLnNvdXJjZSAhPSBudWxsKSB7XG4gICAgICB0aGlzLnNvdXJjZS5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldENvbnRlbnRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudFRleHQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3ViVG9waWNOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc3ViVG9waWNOYW1lO1xuICB9XG5cbiAgcHVibGljIGdldEFwcFBvcG92ZXJUeXBlKCk6IFR5cGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYXBwUG9wb3ZlclR5cGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0RGVsYXkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5kZWxheTtcbiAgfVxufVxuXG5leHBvcnQgKiBmcm9tICcuL3N3aXRjaGVyLmludGVybmFsL0FwcERyYXdlclBvcG92ZXIuY29tcG9uZW50JztcbiJdfQ==