UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

246 lines (245 loc) 17.6 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, Input, EventEmitter, Output } from '@angular/core'; import { AbstractMenuItem } from './AbstractMenuItem'; import { NeedFocusService } from '../service/NeedFocusService.service'; import { Option } from '../decorator/Option.decorator'; import { I18N } from '../decorator/I18N.decorator'; import { MenuItemModel } from './model/MenuItemModel'; import { EventUtils } from '../share/utils/EventUtils'; import { CHECK_EVENT, UNCHECK_EVENT } from '../share/CustomEventType'; var /** @type {?} */ TYPE_NAME = "phx-check-menu-item"; var CheckMenuItem = /** @class */ (function (_super) { tslib_1.__extends(CheckMenuItem, _super); function CheckMenuItem(needFocusService) { var _this = _super.call(this, needFocusService) || this; _this._isCheck = false; _this.checkEvent = new EventEmitter(); _this.uncheckEvent = new EventEmitter(); return _this; } /** * @return {?} */ CheckMenuItem.prototype.ngOnInit = /** * @return {?} */ function () { if (this.model !== null && typeof this.model !== 'undefined') { var /** @type {?} */ chkModel = this.model; if (chkModel.checked !== null && typeof chkModel.checked === 'boolean') { this._isCheck = chkModel.checked; } } }; /** * @param {?} check * @return {?} */ CheckMenuItem.prototype.setCheck = /** * @param {?} check * @return {?} */ function (check) { this._isCheck = check; }; /** * @return {?} */ CheckMenuItem.prototype.hasModel = /** * @return {?} */ function () { if (this.model !== null && typeof this.model !== 'undefined') { return true; } return false; }; /** * @return {?} */ CheckMenuItem.prototype.hasPrefixIcon = /** * @return {?} */ function () { if (this.model !== null && typeof this.model !== 'undefined') { var /** @type {?} */ chkModel = this.model; if (chkModel.prefixIconURL !== null && typeof chkModel.prefixIconURL === 'string') { return true; } } return false; }; /** * @return {?} */ CheckMenuItem.prototype.check = /** * @return {?} */ function () { this.setCheck(true); var /** @type {?} */ data = null; var /** @type {?} */ ev = EventUtils.newCustomEvent(CHECK_EVENT, this, data, null); this.checkEvent.emit(ev); }; /** * @return {?} */ CheckMenuItem.prototype.uncheck = /** * @return {?} */ function () { this.setCheck(false); var /** @type {?} */ data = null; var /** @type {?} */ ev = EventUtils.newCustomEvent(UNCHECK_EVENT, this, data, null); this.uncheckEvent.emit(ev); }; /** * @return {?} */ CheckMenuItem.prototype.getCheckEvent = /** * @return {?} */ function () { return this.checkEvent; }; /** * @param {?} event * @return {?} */ CheckMenuItem.prototype.setCheckEvent = /** * @param {?} event * @return {?} */ function (event) { this.checkEvent = event; }; /** * @return {?} */ CheckMenuItem.prototype.getUncheckEvent = /** * @return {?} */ function () { return this.uncheckEvent; }; /** * @param {?} event * @return {?} */ CheckMenuItem.prototype.setUncheckEvent = /** * @param {?} event * @return {?} */ function (event) { this.uncheckEvent = event; }; /** * @return {?} */ CheckMenuItem.prototype.isCheck = /** * @return {?} */ function () { return this._isCheck; }; /** * @return {?} */ CheckMenuItem.prototype.getPrefixIconURL = /** * @return {?} */ function () { if (this.model === null || typeof this.model === 'undefined') { return null; } return (/** @type {?} */ (this.model)).prefixIconURL; }; /** * @return {?} */ CheckMenuItem.prototype.getPrefixLabel = /** * @return {?} */ function () { if (this.model === null || typeof this.model === 'undefined') { return null; } return (/** @type {?} */ (this.model)).prefixLabel; }; /** * @return {?} */ CheckMenuItem.prototype.getLabel = /** * @return {?} */ function () { if (this.model === null || typeof this.model === 'undefined') { return null; } return (/** @type {?} */ (this.model)).label; }; CheckMenuItem.TYPE_NAME = TYPE_NAME; CheckMenuItem.CHECK_EVENT = CHECK_EVENT; CheckMenuItem.UNCHECK_EVENT = UNCHECK_EVENT; CheckMenuItem.decorators = [ { type: Component, args: [{ moduleId: module.id, selector: TYPE_NAME, template: "<div class=\"phx-check-menu-item\" (click)=\"onClick($event)\">\n\t<div class=\"container\" *ngIf=\"hasModel()\">\n\t\t<div class=\"left\">\n\t\t\t<div *ngIf=\"hasPrefixIcon()\">\n\t\t\t\t<img src=\"{{getPrefixIconURL()}}\">\n\t\t\t</div>\n\t\t\t<div *ngIf=\"!hasPrefixIcon()\">\n\t\t\t\t{{getPrefixLabel()}}\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"center\">{{getLabel()}}</div>\n\t\t<div class=\"right\">\n\t\t\t<div class=\"heavy-check-mark\" *ngIf=\"isCheck()\"></div>\n\t\t</div>\n\t</div>\n</div>\n" },] }, ]; /** @nocollapse */ CheckMenuItem.ctorParameters = function () { return [ { type: NeedFocusService, }, ]; }; CheckMenuItem.propDecorators = { "model": [{ type: Input },], "checkEvent": [{ type: Output, args: ['phxCheck',] },], "uncheckEvent": [{ type: Output, args: ['phxUncheck',] },], }; tslib_1.__decorate([ Option(), I18N(), tslib_1.__metadata("design:type", MenuItemModel) ], CheckMenuItem.prototype, "model", void 0); tslib_1.__decorate([ Option('check'), tslib_1.__metadata("design:type", EventEmitter) ], CheckMenuItem.prototype, "checkEvent", void 0); tslib_1.__decorate([ Option('uncheck'), tslib_1.__metadata("design:type", EventEmitter) ], CheckMenuItem.prototype, "uncheckEvent", void 0); return CheckMenuItem; }(AbstractMenuItem)); export { CheckMenuItem }; function CheckMenuItem_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ CheckMenuItem.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ CheckMenuItem.ctorParameters; /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */ CheckMenuItem.propDecorators; /** @type {?} */ CheckMenuItem.TYPE_NAME; /** @type {?} */ CheckMenuItem.CHECK_EVENT; /** @type {?} */ CheckMenuItem.UNCHECK_EVENT; /** @type {?} */ CheckMenuItem.prototype._isCheck; /** @type {?} */ CheckMenuItem.prototype.model; /** @type {?} */ CheckMenuItem.prototype.checkEvent; /** @type {?} */ CheckMenuItem.prototype.uncheckEvent; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hlY2tNZW51SXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnQvQ2hlY2tNZW51SXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFzQixLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV2RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRW5ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUl0RSxxQkFBTSxTQUFTLEdBQVcscUJBQXFCLENBQUM7O0lBdUJiLHlDQUFnQjtJQXFCakQsdUJBQVksZ0JBQWtDO1FBQTlDLFlBQ0Usa0JBQU0sZ0JBQWdCLENBQUMsU0FJeEI7UUFIQyxLQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixLQUFJLENBQUMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckMsS0FBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDOztLQUN4Qzs7OztJQUVNLGdDQUFROzs7O1FBQ2IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7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QVcsQ0FBQyxDQUFDLENBQUM7WUFDN0QsTUFBTSxDQUFDLElBQUksQ0FBQztTQUNiO1FBRUQsTUFBTSxDQUFDLG1CQUFNLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxXQUFXLENBQUM7Ozs7O0lBR2hDLGdDQUFROzs7O1FBQ2IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDN0QsTUFBTSxDQUFDLElBQUksQ0FBQztTQUNiO1FBRUQsTUFBTSxDQUFDLG1CQUFNLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxLQUFLLENBQUM7OzhCQXBIVSxTQUFTO2dDQUVQLFdBQVc7a0NBQ1QsYUFBYTs7Z0JBMUI3RCxTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFO29CQUNuQixRQUFRLEVBQUUsU0FBUztvQkFDbkIsUUFBUSxFQUFFLDZmQWdCWDtpQkFDQTs7OztnQkFuQ1EsZ0JBQWdCOzs7MEJBNkN0QixLQUFLOytCQUtMLE1BQU0sU0FBQyxVQUFVO2lDQUdqQixNQUFNLFNBQUMsWUFBWTs7O1FBUG5CLE1BQU0sRUFBRTtRQUNSLElBQUksRUFBRTswQ0FDVSxhQUFhOzs7UUFHN0IsTUFBTSxDQUFDLE9BQU8sQ0FBQzswQ0FDSSxZQUFZOzs7UUFFL0IsTUFBTSxDQUFDLFNBQVMsQ0FBQzswQ0FDSSxZQUFZOzt3QkF6RHBDO0VBc0NtQyxnQkFBZ0I7U0FBdEMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBFbGVtZW50UmVmLCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0TWVudUl0ZW0gfSBmcm9tICcuL0Fic3RyYWN0TWVudUl0ZW0nO1xuaW1wb3J0IHsgTmVlZEZvY3VzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvTmVlZEZvY3VzU2VydmljZS5zZXJ2aWNlJztcblxuaW1wb3J0IHsgT3B0aW9uIH0gZnJvbSAnLi4vZGVjb3JhdG9yL09wdGlvbi5kZWNvcmF0b3InO1xuaW1wb3J0IHsgSTE4TiB9IGZyb20gJy4uL2RlY29yYXRvci9JMThOLmRlY29yYXRvcic7XG5cbmltcG9ydCB7IE1lbnVJdGVtTW9kZWwgfSBmcm9tICcuL21vZGVsL01lbnVJdGVtTW9kZWwnO1xuXG5pbXBvcnQgeyBFdmVudFV0aWxzIH0gZnJvbSAnLi4vc2hhcmUvdXRpbHMvRXZlbnRVdGlscyc7XG5cbmltcG9ydCB7IENIRUNLX0VWRU5ULCBVTkNIRUNLX0VWRU5UIH0gZnJvbSAnLi4vc2hhcmUvQ3VzdG9tRXZlbnRUeXBlJztcblxuZGVjbGFyZSB2YXIgJDogYW55O1xuXG5jb25zdCBUWVBFX05BTUU6IHN0cmluZyA9IFwicGh4LWNoZWNrLW1lbnUtaXRlbVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgbW9kdWxlSWQ6IG1vZHVsZS5pZCxcbiAgc2VsZWN0b3I6IFRZUEVfTkFNRSxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwicGh4LWNoZWNrLW1lbnUtaXRlbVwiIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIj5cblx0PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiICpuZ0lmPVwiaGFzTW9kZWwoKVwiPlxuXHRcdDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG5cdFx0XHQ8ZGl2ICpuZ0lmPVwiaGFzUHJlZml4SWNvbigpXCI+XG5cdFx0XHRcdDxpbWcgc3JjPVwie3tnZXRQcmVmaXhJY29uVVJMKCl9fVwiPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2ICpuZ0lmPVwiIWhhc1ByZWZpeEljb24oKVwiPlxuXHRcdFx0XHR7e2dldFByZWZpeExhYmVsKCl9fVxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cImNlbnRlclwiPnt7Z2V0TGFiZWwoKX19PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cInJpZ2h0XCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiaGVhdnktY2hlY2stbWFya1wiICpuZ0lmPVwiaXNDaGVjaygpXCI+PC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuPC9kaXY+XG5gXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrTWVudUl0ZW0gZXh0ZW5kcyBBYnN0cmFjdE1lbnVJdGVtIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRZUEVfTkFNRTogc3RyaW5nID0gVFlQRV9OQU1FO1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0hFQ0tfRVZFTlQ6IHN0cmluZyA9IENIRUNLX0VWRU5UO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFVOQ0hFQ0tfRVZFTlQ6IHN0cmluZyA9IFVOQ0hFQ0tfRVZFTlQ7XG5cbiAgcHJpdmF0ZSBfaXNDaGVjazogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgQEkxOE4oKVxuICBwcm90ZWN0ZWQgbW9kZWw6IE1lbnVJdGVtTW9kZWw7XG5cbiAgQE91dHB1dCgncGh4Q2hlY2snKVxuICBAT3B0aW9uKCdjaGVjaycpXG4gIHByaXZhdGUgY2hlY2tFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoJ3BoeFVuY2hlY2snKVxuICBAT3B0aW9uKCd1bmNoZWNrJylcbiAgcHJpdmF0ZSB1bmNoZWNrRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKG5lZWRGb2N1c1NlcnZpY2U6IE5lZWRGb2N1c1NlcnZpY2UpIHtcbiAgICBzdXBlcihuZWVkRm9jdXNTZXJ2aWNlKTtcbiAgICB0aGlzLl9pc0NoZWNrID0gZmFsc2U7XG4gICAgdGhpcy5jaGVja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIHRoaXMudW5jaGVja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1vZGVsICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLm1vZGVsICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgbGV0IGNoa01vZGVsOiBhbnkgPSB0aGlzLm1vZGVsO1xuICAgICAgaWYgKGNoa01vZGVsLmNoZWNrZWQgIT09IG51bGwgJiYgdHlwZW9mIGNoa01vZGVsLmNoZWNrZWQgPT09ICdib29sZWFuJykge1xuICAgICAgICB0aGlzLl9pc0NoZWNrID0gY2hrTW9kZWwuY2hlY2tlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldENoZWNrKGNoZWNrOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5faXNDaGVjayA9IGNoZWNrO1xuICB9XG5cbiAgcHVibGljIGhhc01vZGVsKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm1vZGVsICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLm1vZGVsICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBoYXNQcmVmaXhJY29uKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm1vZGVsICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLm1vZGVsICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgbGV0IGNoa01vZGVsOiBhbnkgPSB0aGlzLm1vZGVsO1xuICAgICAgaWYgKGNoa01vZGVsLnByZWZpeEljb25VUkwgIT09IG51bGwgJiYgdHlwZW9mIGNoa01vZGVsLnByZWZpeEljb25VUkwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVjaygpOiB2b2lkIHtcbiAgICB0aGlzLnNldENoZWNrKHRydWUpO1xuXG4gICAgbGV0IGRhdGE6IGFueSA9IG51bGw7XG4gICAgbGV0IGV2ID0gRXZlbnRVdGlscy5uZXdDdXN0b21FdmVudChDSEVDS19FVkVOVCwgdGhpcywgZGF0YSwgbnVsbCk7XG5cbiAgICB0aGlzLmNoZWNrRXZlbnQuZW1pdChldik7XG4gIH1cblxuICBwdWJsaWMgdW5jaGVjaygpOiB2b2lkIHtcbiAgICB0aGlzLnNldENoZWNrKGZhbHNlKTtcblxuICAgIGxldCBkYXRhOiBhbnkgPSBudWxsO1xuICAgIGxldCBldiA9IEV2ZW50VXRpbHMubmV3Q3VzdG9tRXZlbnQoVU5DSEVDS19FVkVOVCwgdGhpcywgZGF0YSwgbnVsbCk7XG5cbiAgICB0aGlzLnVuY2hlY2tFdmVudC5lbWl0KGV2KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDaGVja0V2ZW50KCk6IEV2ZW50RW1pdHRlcjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jaGVja0V2ZW50O1xuICB9XG5cbiAgcHVibGljIHNldENoZWNrRXZlbnQoZXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+KTogdm9pZCB7XG4gICAgdGhpcy5jaGVja0V2ZW50ID0gZXZlbnQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0VW5jaGVja0V2ZW50KCk6IEV2ZW50RW1pdHRlcjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy51bmNoZWNrRXZlbnQ7XG4gIH1cblxuICBwdWJsaWMgc2V0VW5jaGVja0V2ZW50KGV2ZW50OiBFdmVudEVtaXR0ZXI8YW55Pik6IHZvaWQge1xuICAgIHRoaXMudW5jaGVja0V2ZW50ID0gZXZlbnQ7XG4gIH1cblxuICBwdWJsaWMgaXNDaGVjaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNDaGVjaztcbiAgfVxuXG4gIHB1YmxpYyBnZXRQcmVmaXhJY29uVVJMKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubW9kZWwgPT09IG51bGwgfHwgdHlwZW9mIHRoaXMubW9kZWwgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gKDxhbnk+dGhpcy5tb2RlbCkucHJlZml4SWNvblVSTDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQcmVmaXhMYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLm1vZGVsID09PSBudWxsIHx8IHR5cGVvZiB0aGlzLm1vZGVsID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuICg8YW55PnRoaXMubW9kZWwpLnByZWZpeExhYmVsO1xuICB9XG5cbiAgcHVibGljIGdldExhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubW9kZWwgPT09IG51bGwgfHwgdHlwZW9mIHRoaXMubW9kZWwgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gKDxhbnk+dGhpcy5tb2RlbCkubGFiZWw7XG4gIH1cbn1cbiJdfQ==