com.phloxui
Version:
PhloxUI Ng2+ Framework
189 lines (188 loc) • 17 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, Input, ElementRef } from '@angular/core';
import { ComponentDialogModel } from '.././model/ComponentDialogModel';
import { ConfirmDialogModel } from '.././model/ConfirmDialogModel';
import { AbstractDialogController } from '../AbstractDialogController';
import { PhloxAppInfoService } from '../../service/PhloxAppInfoService.service';
var /** @type {?} */ TYPE_NAME = "phx-confirm-dialog";
export var /** @type {?} */ YES = 1;
export var /** @type {?} */ NO = 0;
export var /** @type {?} */ CANCEL = -1;
/**
* <p style="text-indent: 2em;">
* A <code>child-view</code> component class of [[PhloxDialog]] handling logic of <code>confirm dialog</code>. This class should be
* <b>internally used by the framework</b>. If you just want to show a <code>confirm dialog</code>. Please see [[DialogService.showConfirmDialog]]
* for more info.
* </p>
*
* @author shiorin, tee4cute
* @see [[PhloxDialog]]
* @see [[DialogService]]
*/
var ConfirmDialog = /** @class */ (function (_super) {
tslib_1.__extends(ConfirmDialog, _super);
function ConfirmDialog(elementRef, phloxAppService) {
var _this = _super.call(this, elementRef) || this;
if (phloxAppService != null) {
phloxAppService.getAppInfo().then(function (result) {
_this.phloxAppInfo = result;
});
}
return _this;
}
/**
* @return {?}
*/
ConfirmDialog.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
var /** @type {?} */ cancelHandler = function () {
_this.result = -1;
if (_this.dialog !== null && typeof _this.dialog !== 'undefined') {
_this.dialog.hideDialog();
}
};
var /** @type {?} */ confirmHandler = function () {
_this.result = 1;
if (_this.dialog !== null && typeof _this.dialog !== 'undefined') {
_this.dialog.hideDialog();
}
};
var /** @type {?} */ notConfirmHandler = function () {
_this.result = 0;
if (_this.dialog !== null && typeof _this.dialog !== 'undefined') {
_this.dialog.hideDialog();
}
};
var /** @type {?} */ buttonSet = [];
buttonSet.push(new ComponentDialogModel.ButtonModel(this.getI18NMessage('CANCEL'), null, cancelHandler, ['dialog-btn', 'cancel']));
buttonSet.push(new ComponentDialogModel.ButtonModel(this.getI18NMessage('NO'), null, notConfirmHandler, ['dialog-btn']));
buttonSet.push(new ComponentDialogModel.ButtonModel(this.getI18NMessage('YES'), null, confirmHandler, ['dialog-btn']));
this.dialogButtons = buttonSet;
};
/**
* @param {?} key
* @return {?}
*/
ConfirmDialog.prototype.getI18NMessage = /**
* @param {?} key
* @return {?}
*/
function (key) {
if (this.phloxAppInfo != null && this.phloxAppInfo.i18n != null) {
if (this.phloxAppInfo.i18n[key] !== null && typeof this.phloxAppInfo.i18n[key] !== 'undefined') {
return this.phloxAppInfo.i18n[key];
}
}
return key;
};
/**
* @return {?}
*/
ConfirmDialog.prototype._isShowCancelBtn = /**
* @return {?}
*/
function () {
var /** @type {?} */ showCancelBtn = false;
if (this.model !== null && typeof this.model !== 'undefined') {
if (this.model.showCancelBtn !== null && typeof this.model.showCancelBtn !== 'undefined') {
showCancelBtn = this.model.showCancelBtn;
}
}
return showCancelBtn;
};
/**
* @return {?}
*/
ConfirmDialog.prototype.showDialog = /**
* @return {?}
*/
function () {
this.show = true;
};
/**
* @return {?}
*/
ConfirmDialog.prototype.hideDialog = /**
* @return {?}
*/
function () {
this.show = false;
};
/**
* @return {?}
*/
ConfirmDialog.prototype.isShow = /**
* @return {?}
*/
function () {
return this.show;
};
/**
* @return {?}
*/
ConfirmDialog.prototype.getModel = /**
* @return {?}
*/
function () {
return this.model;
};
/**
* @param {?} model
* @return {?}
*/
ConfirmDialog.prototype.setModel = /**
* @param {?} model
* @return {?}
*/
function (model) {
this.model = model;
};
ConfirmDialog.TYPE_NAME = TYPE_NAME;
ConfirmDialog.decorators = [
{ type: Component, args: [{
moduleId: module.id,
selector: TYPE_NAME,
template: "<div class=\"phx-confirm-dialog\" [class.show]=\"isShow()\">\n <div class=\"dialog-header\"><div>{{getModel() != null ? getModel().title : ''}}</div></div>\n <div class=\"dialog-body\"><div>{{getModel() != null ? getModel().body : ''}}</div></div>\n <div class=\"dialog-footer\">\n\t <div>\n\t \t<ng-template [ngIf]=\"getModel() != null\">\n <ng-template ngFor let-item [ngForOf]=\"getDialogButtons()\" let-i=\"index\">\n <div *ngIf=\"(i > 0) || (_isShowCancelBtn() && i === 0)\" [ngClass]=\"item.styleClass\" (click)=\"item.handler()\">{{item.label}}</div>\n </ng-template>\n \t\t</ng-template>\n\t </div>\n </div>\n</div>\n"
},] },
];
/** @nocollapse */
ConfirmDialog.ctorParameters = function () { return [
{ type: ElementRef, },
{ type: PhloxAppInfoService, },
]; };
ConfirmDialog.propDecorators = {
"model": [{ type: Input },],
"dialog": [{ type: Input },],
};
return ConfirmDialog;
}(AbstractDialogController));
export { ConfirmDialog };
function ConfirmDialog_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
ConfirmDialog.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
ConfirmDialog.ctorParameters;
/** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
ConfirmDialog.propDecorators;
/** @type {?} */
ConfirmDialog.TYPE_NAME;
/** @type {?} */
ConfirmDialog.prototype.model;
/** @type {?} */
ConfirmDialog.prototype.dialog;
/** @type {?} */
ConfirmDialog.prototype.show;
/** @type {?} */
ConfirmDialog.prototype.phloxAppInfo;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlybURpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnQvZGlhbG9nLmludGVybmFsL0NvbmZpcm1EaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXdCLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRixPQUFPLEVBQUUsb0JBQW9CLEVBQWUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUduRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUVoRixxQkFBTSxTQUFTLEdBQVcsb0JBQW9CLENBQUM7QUFFL0MsTUFBTSxDQUFDLHFCQUFNLEdBQUcsR0FBVyxDQUFDLENBQUM7QUFDN0IsTUFBTSxDQUFDLHFCQUFNLEVBQUUsR0FBVyxDQUFDLENBQUM7QUFDNUIsTUFBTSxDQUFDLHFCQUFNLE1BQU0sR0FBVyxDQUFDLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7OztJQStCRSx5Q0FBd0I7SUFXekQsdUJBQVksVUFBc0IsRUFBRSxlQUFvQztRQUF4RSxZQUNFLGtCQUFNLFVBQVUsQ0FBQyxTQU9sQjtRQUxDLEVBQUUsQ0FBQyxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzVCLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBQyxNQUFNO2dCQUN2QyxLQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQzthQUM1QixDQUFDLENBQUM7U0FDSjs7S0FDRjs7OztJQUVNLGdDQUFROzs7OztRQUNiLHFCQUFJLGFBQWEsR0FBYTtZQUM1QixLQUFJLENBQUMsTUFBTSxH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LGFBQWEsQ0FBQzs7Ozs7SUFHaEIsa0NBQVU7Ozs7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQzs7Ozs7SUFHWixrQ0FBVTs7OztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDOzs7OztJQUdiLDhCQUFNOzs7O1FBQ1gsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7Ozs7O0lBR1osZ0NBQVE7Ozs7UUFDYixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzs7Ozs7O0lBR2IsZ0NBQVE7Ozs7Y0FBQyxLQUFVO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDOzs4QkFwRnNCLFNBQVM7O2dCQXBCckQsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRTtvQkFDbkIsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFFBQVEsRUFBRSwwcEJBYVg7aUJBQ0E7Ozs7Z0JBM0NnRCxVQUFVO2dCQU9sRCxtQkFBbUI7OzswQkF5Q3pCLEtBQUs7MkJBRUwsS0FBSzs7d0JBbERSO0VBNENtQyx3QkFBd0I7U0FBOUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgRXZlbnRFbWl0dGVyLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaWFsb2dNb2RlbCB9IGZyb20gJy4uLy4vbW9kZWwvRGlhbG9nTW9kZWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50RGlhbG9nTW9kZWwsIEJ1dHRvbk1vZGVsIH0gZnJvbSAnLi4vLi9tb2RlbC9Db21wb25lbnREaWFsb2dNb2RlbCc7XG5pbXBvcnQgeyBDb25maXJtRGlhbG9nTW9kZWwgfSBmcm9tICcuLi8uL21vZGVsL0NvbmZpcm1EaWFsb2dNb2RlbCc7XG5pbXBvcnQgeyBQaGxveEFwcEluZm8gfSBmcm9tICcuLi8uLi9jb21wb25lbnQvbW9kZWwvUGhsb3hBcHBJbmZvJztcbmltcG9ydCB7IElEaWFsb2cgfSBmcm9tICcuL0lEaWFsb2cnO1xuaW1wb3J0IHsgQWJzdHJhY3REaWFsb2dDb250cm9sbGVyIH0gZnJvbSAnLi4vQWJzdHJhY3REaWFsb2dDb250cm9sbGVyJztcbmltcG9ydCB7IFBobG94QXBwSW5mb1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL1BobG94QXBwSW5mb1NlcnZpY2Uuc2VydmljZSc7XG5cbmNvbnN0IFRZUEVfTkFNRTogc3RyaW5nID0gXCJwaHgtY29uZmlybS1kaWFsb2dcIjtcblxuZXhwb3J0IGNvbnN0IFlFUzogbnVtYmVyID0gMTtcbmV4cG9ydCBjb25zdCBOTzogbnVtYmVyID0gMDtcbmV4cG9ydCBjb25zdCBDQU5DRUw6IG51bWJlciA9IC0xO1xuXG4vKipcbiAqIDxwIHN0eWxlPVwidGV4dC1pbmRlbnQ6IDJlbTtcIj5cbiAqIEEgPGNvZGU+Y2hpbGQtdmlldzwvY29kZT4gY29tcG9uZW50IGNsYXNzIG9mIFtbUGhsb3hEaWFsb2ddXSBoYW5kbGluZyBsb2dpYyBvZiA8Y29kZT5jb25maXJtIGRpYWxvZzwvY29kZT4uIFRoaXMgY2xhc3Mgc2hvdWxkIGJlXG4gKiA8Yj5pbnRlcm5hbGx5IHVzZWQgYnkgdGhlIGZyYW1ld29yazwvYj4uIElmIHlvdSBqdXN0IHdhbnQgdG8gc2hvdyBhIDxjb2RlPmNvbmZpcm0gZGlhbG9nPC9jb2RlPi4gUGxlYXNlIHNlZSBbW0RpYWxvZ1NlcnZpY2Uuc2hvd0NvbmZpcm1EaWFsb2ddXVxuICogZm9yIG1vcmUgaW5mby5cbiAqIDwvcD5cbiAqXG4gKiBAYXV0aG9yIHNoaW9yaW4sIHRlZTRjdXRlXG4gKiBAc2VlIFtbUGhsb3hEaWFsb2ddXVxuICogQHNlZSBbW0RpYWxvZ1NlcnZpY2VdXVxuICovXG5AQ29tcG9uZW50KHtcbiAgbW9kdWxlSWQ6IG1vZHVsZS5pZCxcbiAgc2VsZWN0b3I6IFRZUEVfTkFNRSxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwicGh4LWNvbmZpcm0tZGlhbG9nXCIgW2NsYXNzLnNob3ddPVwiaXNTaG93KClcIj5cbiAgPGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXJcIj48ZGl2Pnt7Z2V0TW9kZWwoKSAhPSBudWxsID8gZ2V0TW9kZWwoKS50aXRsZSA6ICcnfX08L2Rpdj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImRpYWxvZy1ib2R5XCI+PGRpdj57e2dldE1vZGVsKCkgIT0gbnVsbCA/IGdldE1vZGVsKCkuYm9keSA6ICcnfX08L2Rpdj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cblx0ICA8ZGl2PlxuXHQgIFx0PG5nLXRlbXBsYXRlIFtuZ0lmXT1cImdldE1vZGVsKCkgIT0gbnVsbFwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtaXRlbSBbbmdGb3JPZl09XCJnZXREaWFsb2dCdXR0b25zKClcIiBsZXQtaT1cImluZGV4XCI+XG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoaSA+IDApIHx8IChfaXNTaG93Q2FuY2VsQnRuKCkgJiYgaSA9PT0gMClcIiBbbmdDbGFzc109XCJpdGVtLnN0eWxlQ2xhc3NcIiAoY2xpY2spPVwiaXRlbS5oYW5kbGVyKClcIj57e2l0ZW0ubGFiZWx9fTwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gIFx0XHQ8L25nLXRlbXBsYXRlPlxuXHQgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuYFxufSlcbmV4cG9ydCBjbGFzcyBDb25maXJtRGlhbG9nIGV4dGVuZHMgQWJzdHJhY3REaWFsb2dDb250cm9sbGVyIGltcGxlbWVudHMgSURpYWxvZywgT25Jbml0IHtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRZUEVfTkFNRTogc3RyaW5nID0gVFlQRV9OQU1FO1xuXG4gIEBJbnB1dCgpXG4gIHByaXZhdGUgbW9kZWw6IENvbmZpcm1EaWFsb2dNb2RlbDtcbiAgQElucHV0KClcbiAgcHJpdmF0ZSBkaWFsb2c6IGFueTtcbiAgcHJpdmF0ZSBzaG93OiBib29sZWFuO1xuICBwcml2YXRlIHBobG94QXBwSW5mbzogUGhsb3hBcHBJbmZvO1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHBobG94QXBwU2VydmljZTogUGhsb3hBcHBJbmZvU2VydmljZSkge1xuICAgIHN1cGVyKGVsZW1lbnRSZWYpO1xuXG4gICAgaWYgKHBobG94QXBwU2VydmljZSAhPSBudWxsKSB7XG4gICAgICBwaGxveEFwcFNlcnZpY2UuZ2V0QXBwSW5mbygpLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICB0aGlzLnBobG94QXBwSW5mbyA9IHJlc3VsdDtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBsZXQgY2FuY2VsSGFuZGxlcjogRnVuY3Rpb24gPSAoKSA9PiB7XG4gICAgICB0aGlzLnJlc3VsdCA9IC0xO1xuICAgICAgaWYgKHRoaXMuZGlhbG9nICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmRpYWxvZyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhpcy5kaWFsb2cuaGlkZURpYWxvZygpO1xuICAgICAgfVxuICAgIH07XG4gICAgbGV0IGNvbmZpcm1IYW5kbGVyOiBGdW5jdGlvbiA9ICgpID0+IHtcbiAgICAgIHRoaXMucmVzdWx0ID0gMTtcbiAgICAgIGlmICh0aGlzLmRpYWxvZyAhPT0gbnVsbCAmJiB0eXBlb2YgdGhpcy5kaWFsb2cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nLmhpZGVEaWFsb2coKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGxldCBub3RDb25maXJtSGFuZGxlcjogRnVuY3Rpb24gPSAoKSA9PiB7XG4gICAgICB0aGlzLnJlc3VsdCA9IDA7XG4gICAgICBpZiAodGhpcy5kaWFsb2cgIT09IG51bGwgJiYgdHlwZW9mIHRoaXMuZGlhbG9nICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICB0aGlzLmRpYWxvZy5oaWRlRGlhbG9nKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGxldCBidXR0b25TZXQgPSBbXTtcblxuICAgIGJ1dHRvblNldC5wdXNoKG5ldyBDb21wb25lbnREaWFsb2dNb2RlbC5CdXR0b25Nb2RlbCh0aGlzLmdldEkxOE5NZXNzYWdlKCdDQU5DRUwnKSwgbnVsbCwgY2FuY2VsSGFuZGxlciwgWydkaWFsb2ctYnRuJywgJ2NhbmNlbCddKSk7XG4gICAgYnV0dG9uU2V0LnB1c2gobmV3IENvbXBvbmVudERpYWxvZ01vZGVsLkJ1dHRvbk1vZGVsKHRoaXMuZ2V0STE4Tk1lc3NhZ2UoJ05PJyksIG51bGwsIG5vdENvbmZpcm1IYW5kbGVyLCBbJ2RpYWxvZy1idG4nXSkpO1xuICAgIGJ1dHRvblNldC5wdXNoKG5ldyBDb21wb25lbnREaWFsb2dNb2RlbC5CdXR0b25Nb2RlbCh0aGlzLmdldEkxOE5NZXNzYWdlKCdZRVMnKSwgbnVsbCwgY29uZmlybUhhbmRsZXIsIFsnZGlhbG9nLWJ0biddKSk7XG5cbiAgICB0aGlzLmRpYWxvZ0J1dHRvbnMgPSBidXR0b25TZXQ7XG4gIH1cblxuICBwcml2YXRlIGdldEkxOE5NZXNzYWdlKGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5waGxveEFwcEluZm8gIT0gbnVsbCAmJiB0aGlzLnBobG94QXBwSW5mby5pMThuICE9IG51bGwpIHtcbiAgICAgIGlmICh0aGlzLnBobG94QXBwSW5mby5pMThuW2tleV0gIT09IG51bGwgJiYgdHlwZW9mIHRoaXMucGhsb3hBcHBJbmZvLmkxOG5ba2V5XSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGhsb3hBcHBJbmZvLmkxOG5ba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGtleTtcbiAgfVxuXG4gIHB1YmxpYyBfaXNTaG93Q2FuY2VsQnRuKCk6IGJvb2xlYW4ge1xuICAgIGxldCBzaG93Q2FuY2VsQnRuOiBib29sZWFuID0gZmFsc2U7XG4gICAgaWYgKHRoaXMubW9kZWwgIT09IG51bGwgJiYgdHlwZW9mIHRoaXMubW9kZWwgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBpZiAodGhpcy5tb2RlbC5zaG93Q2FuY2VsQnRuICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLm1vZGVsLnNob3dDYW5jZWxCdG4gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHNob3dDYW5jZWxCdG4gPSB0aGlzLm1vZGVsLnNob3dDYW5jZWxCdG47XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzaG93Q2FuY2VsQnRuO1xuICB9XG5cbiAgcHVibGljIHNob3dEaWFsb2coKTogdm9pZCB7XG4gICAgdGhpcy5zaG93ID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBoaWRlRGlhbG9nKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvdyA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGlzU2hvdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaG93O1xuICB9XG5cbiAgcHVibGljIGdldE1vZGVsKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gIH1cblxuICBwdWJsaWMgc2V0TW9kZWwobW9kZWw6IGFueSk6IHZvaWQge1xuICAgIHRoaXMubW9kZWwgPSBtb2RlbDtcbiAgfVxuXG59XG4iXX0=