UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

328 lines (327 loc) 19.9 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, ElementRef, Input, EventEmitter } from '@angular/core'; import { AbstractDataView } from '../../../component/dataview/AbstractDataView'; import { MaterialStepperModel } from '../model/MaterialStepperModel'; import { Option } from '../../../decorator/Option.decorator'; import { I18N } from '../../../decorator/I18N.decorator'; const /** @type {?} */ TYPE_NAME = "material-stepper"; export class MaterialStepper extends AbstractDataView { /** * @param {?} elementRef */ constructor(elementRef) { super(elementRef); this.editable = true; this.linear = false; this.stepInstances = !this.stepInstances ? [] : this.stepInstances; this.handler = (result) => { this.stepInstances.push(result.instance); }; } /** * @return {?} */ ngOnInit() { super.ngOnInit(); if (!this.model) { this.model = new MaterialStepperModel(); } } /** * @return {?} */ isSelfDataDirty() { return false; } /** * @return {?} */ selfSaveData() { } /** * @return {?} */ selfResetData() { } /** * @return {?} */ isHorizontal() { return this.horizontal; } /** * @param {?} horizontal * @return {?} */ setHorizontal(horizontal) { return this.horizontal = horizontal; } /** * @return {?} */ isLinear() { return this.linear; } /** * @param {?} linear * @return {?} */ setLinear(linear) { return this.linear = linear; } /** * @return {?} */ getModel() { return this.model; } /** * @param {?} model * @return {?} */ setModel(model) { this.model = model; } /** * @return {?} */ isEditable() { return this.editable; } /** * @param {?} editable * @return {?} */ setEditable(editable) { return this.editable = editable; } /** * @return {?} */ getEditIcon() { return this.editIcon; } /** * @param {?} editIcon * @return {?} */ setEditIcon(editIcon) { return this.editIcon = editIcon; } /** * @return {?} */ getDoneIcon() { return this.doneIcon; } /** * @param {?} doneIcon * @return {?} */ setDoneIcon(doneIcon) { return this.doneIcon = doneIcon; } /** * @return {?} */ getStepInstances() { return this.getDataChildren(); } /** * @param {?} index * @return {?} */ getStepInstance(index) { let /** @type {?} */ steps = this.getStepInstances(); if (!steps || index < 0 || steps.length <= index) { return null; } return steps[index]; } } MaterialStepper.TYPE_NAME = TYPE_NAME; MaterialStepper.decorators = [ { type: Component, args: [{ moduleId: module.id, selector: TYPE_NAME, template: `<mat-horizontal-stepper [linear]="true" #stepper> <mat-step label="Fill out your name"> <mat-form-field> <input matInput placeholder="Last name, First name"> </mat-form-field> <div> <button mat-button matStepperNext>Next</button> </div> </mat-step> <mat-step> <ng-template matStepLabel>Fill out your address</ng-template> <mat-form-field> <input matInput placeholder="Address"> </mat-form-field> <div> <button mat-button matStepperPrevious>Back</button> <button mat-button matStepperNext>Next</button> </div> </mat-step> <mat-step> <ng-template matStepLabel>Done</ng-template> You are now done. <div> <button mat-button matStepperPrevious>Back</button> <button mat-button (click)="stepper.reset()">Reset</button> </div> </mat-step> </mat-horizontal-stepper> ` },] }, ]; /** @nocollapse */ MaterialStepper.ctorParameters = () => [ { type: ElementRef, }, ]; MaterialStepper.propDecorators = { "dataParent": [{ type: Input },], "model": [{ type: Input },], "horizontal": [{ type: Input },], "linear": [{ type: Input },], "handler": [{ type: Input },], "editable": [{ type: Input },], "editIcon": [{ type: Input },], "doneIcon": [{ type: Input },], "stepInstances": [{ type: Input },], }; tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], MaterialStepper.prototype, "field", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Object) ], MaterialStepper.prototype, "dataParent", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], MaterialStepper.prototype, "ignoreParentData", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], MaterialStepper.prototype, "ignoreParentDisabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Function) ], MaterialStepper.prototype, "onDisabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Function) ], MaterialStepper.prototype, "onEnabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], MaterialStepper.prototype, "loadingEnabled", void 0); tslib_1.__decorate([ Option('load'), tslib_1.__metadata("design:type", EventEmitter) ], MaterialStepper.prototype, "loadEvent", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], MaterialStepper.prototype, "delegateHistory", void 0); tslib_1.__decorate([ Option(), I18N(), tslib_1.__metadata("design:type", MaterialStepperModel) ], MaterialStepper.prototype, "model", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], MaterialStepper.prototype, "horizontal", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], MaterialStepper.prototype, "linear", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Function) ], MaterialStepper.prototype, "handler", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], MaterialStepper.prototype, "editable", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], MaterialStepper.prototype, "editIcon", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], MaterialStepper.prototype, "doneIcon", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Array) ], MaterialStepper.prototype, "stepInstances", void 0); function MaterialStepper_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ MaterialStepper.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ MaterialStepper.ctorParameters; /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */ MaterialStepper.propDecorators; /** @type {?} */ MaterialStepper.TYPE_NAME; /** @type {?} */ MaterialStepper.prototype.field; /** @type {?} */ MaterialStepper.prototype.dataParent; /** @type {?} */ MaterialStepper.prototype.ignoreParentData; /** @type {?} */ MaterialStepper.prototype.ignoreParentDisabled; /** @type {?} */ MaterialStepper.prototype.onDisabled; /** @type {?} */ MaterialStepper.prototype.onEnabled; /** @type {?} */ MaterialStepper.prototype.loadingEnabled; /** @type {?} */ MaterialStepper.prototype.loadEvent; /** @type {?} */ MaterialStepper.prototype.delegateHistory; /** @type {?} */ MaterialStepper.prototype.historyCursor; /** @type {?} */ MaterialStepper.prototype.histories; /** @type {?} */ MaterialStepper.prototype.elementRef; /** @type {?} */ MaterialStepper.prototype.dataChildren; /** @type {?} */ MaterialStepper.prototype.data; /** @type {?} */ MaterialStepper.prototype.kbShortcutService; /** @type {?} */ MaterialStepper.prototype._loaded; /** @type {?} */ MaterialStepper.prototype.model; /** @type {?} */ MaterialStepper.prototype.horizontal; /** @type {?} */ MaterialStepper.prototype.linear; /** @type {?} */ MaterialStepper.prototype.handler; /** @type {?} */ MaterialStepper.prototype.editable; /** @type {?} */ MaterialStepper.prototype.editIcon; /** @type {?} */ MaterialStepper.prototype.doneIcon; /** @type {?} */ MaterialStepper.prototype.stepInstances; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWF0ZXJpYWxTdGVwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2NvbS5waGxveHVpLyIsInNvdXJjZXMiOlsibGliL3RoZW1lL21hdGVyaWFsL2NvbXBvbmVudC9NYXRlcmlhbFN0ZXBwZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxVQUFVLEVBQUUsS0FBSyxFQUFtQyxZQUFZLEVBQUcsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDckUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQVF6RCx1QkFBTSxTQUFTLEdBQVcsa0JBQWtCLENBQUM7QUFvQzdDLE1BQU0sc0JBQXVCLFNBQVEsZ0JBQWdCOzs7O0lBaUVuRCxZQUFZLFVBQXNCO1FBQ2hDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVsQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUVwQixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBRWxFLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDMUMsQ0FBQTtLQUNGOzs7O0lBRU0sUUFBUTtRQUNiLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQixFQUFFLENB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QUU7Ozs7SUFHUixNQUFNLEVBQUU7Ozs7SUFHUixNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgRWxlbWVudFJlZiwgSW5wdXQsIE91dHB1dCwgSG9zdExpc3RlbmVyLCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciAgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3REYXRhVmlldyB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudC9kYXRhdmlldy9BYnN0cmFjdERhdGFWaWV3JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxTdGVwcGVyTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9NYXRlcmlhbFN0ZXBwZXJNb2RlbCc7XHJcbmltcG9ydCB7IE9wdGlvbiB9IGZyb20gJy4uLy4uLy4uL2RlY29yYXRvci9PcHRpb24uZGVjb3JhdG9yJztcclxuaW1wb3J0IHsgSTE4TiB9IGZyb20gJy4uLy4uLy4uL2RlY29yYXRvci9JMThOLmRlY29yYXRvcic7XHJcbmltcG9ydCB7IElIYXNEYXRhIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50L0lIYXNEYXRhJztcclxuaW1wb3J0IHsgVUlIaXN0b3J5IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50L21vZGVsL1VJSGlzdG9yeSc7XHJcbmltcG9ydCB7IEtleWJvYXJkU2hvcnRjdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9LZXlib2FyZFNob3J0Y3V0U2VydmljZS5zZXJ2aWNlJztcclxuXHJcblxyXG5kZWNsYXJlIHZhciAkOiBhbnk7XHJcblxyXG5jb25zdCBUWVBFX05BTUU6IHN0cmluZyA9IFwibWF0ZXJpYWwtc3RlcHBlclwiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIG1vZHVsZUlkOiBtb2R1bGUuaWQsXHJcbiAgc2VsZWN0b3I6IFRZUEVfTkFNRSxcclxuICB0ZW1wbGF0ZTogYDxtYXQtaG9yaXpvbnRhbC1zdGVwcGVyIFtsaW5lYXJdPVwidHJ1ZVwiICNzdGVwcGVyPlxyXG4gIDxtYXQtc3RlcCBsYWJlbD1cIkZpbGwgb3V0IHlvdXIgbmFtZVwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJMYXN0IG5hbWUsIEZpcnN0IG5hbWVcIj5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gbWF0U3RlcHBlck5leHQ+TmV4dDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtc3RlcD5cclxuICA8bWF0LXN0ZXA+XHJcbiAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPkZpbGwgb3V0IHlvdXIgYWRkcmVzczwvbmctdGVtcGxhdGU+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIkFkZHJlc3NcIj5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gbWF0U3RlcHBlclByZXZpb3VzPkJhY2s8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIG1hdFN0ZXBwZXJOZXh0Pk5leHQ8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbWF0LXN0ZXA+XHJcbiAgPG1hdC1zdGVwPlxyXG4gICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBMYWJlbD5Eb25lPC9uZy10ZW1wbGF0ZT5cclxuICAgIFlvdSBhcmUgbm93IGRvbmUuXHJcbiAgICA8ZGl2PlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gbWF0U3RlcHBlclByZXZpb3VzPkJhY2s8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJzdGVwcGVyLnJlc2V0KClcIj5SZXNldDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtc3RlcD5cclxuPC9tYXQtaG9yaXpvbnRhbC1zdGVwcGVyPlxyXG5gXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbFN0ZXBwZXIgZXh0ZW5kcyBBYnN0cmFjdERhdGFWaWV3IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBUWVBFX05BTUU6IHN0cmluZyA9IFRZUEVfTkFNRTtcclxuXHJcbiAgLy8gLS0tIGZyb20gQWJzdHJhY3REYXRhVmlld1xyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBmaWVsZDogc3RyaW5nO1xyXG5cclxuICAvLyAtLS0gZnJvbSBBYnN0cmFjdEhhc0RhdGFcclxuICBAT3B0aW9uKClcclxuICBASW5wdXQoKVxyXG4gIHByb3RlY3RlZCBkYXRhUGFyZW50OiBJSGFzRGF0YTtcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgaWdub3JlUGFyZW50RGF0YTogYm9vbGVhbjtcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgaWdub3JlUGFyZW50RGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIG9uRGlzYWJsZWQ6IEZ1bmN0aW9uO1xyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBvbkVuYWJsZWQ6IEZ1bmN0aW9uO1xyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBsb2FkaW5nRW5hYmxlZDogYm9vbGVhbjtcclxuICBAT3B0aW9uKCdsb2FkJylcclxuICBwcm90ZWN0ZWQgbG9hZEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgZGVsZWdhdGVIaXN0b3J5OiBib29sZWFuO1xyXG5cclxuICBwcm90ZWN0ZWQgaGlzdG9yeUN1cnNvcjogbnVtYmVyO1xyXG4gIHByb3RlY3RlZCBoaXN0b3JpZXM6IFVJSGlzdG9yeVtdO1xyXG4gIHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xyXG4gIHByb3RlY3RlZCBkYXRhQ2hpbGRyZW46IElIYXNEYXRhW107XHJcbiAgcHJvdGVjdGVkIGRhdGE6IGFueTtcclxuXHJcbiAgcHJvdGVjdGVkIGtiU2hvcnRjdXRTZXJ2aWNlOiBLZXlib2FyZFNob3J0Y3V0U2VydmljZTtcclxuXHJcbiAgcHJvdGVjdGVkIF9sb2FkZWQ6IGJvb2xlYW47XHJcblxyXG4gIC8vIC0tLSBmcm9tIFNlbGZcclxuICBAT3B0aW9uKClcclxuICBASW5wdXQoKVxyXG4gIEBJMThOKClcclxuICBwcm90ZWN0ZWQgbW9kZWw6IE1hdGVyaWFsU3RlcHBlck1vZGVsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBob3Jpem9udGFsOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGxpbmVhcjogYm9vbGVhbjtcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBoYW5kbGVyOiBGdW5jdGlvbjtcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBlZGl0YWJsZTogYm9vbGVhbjtcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBlZGl0SWNvbjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGRvbmVJY29uOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgc3RlcEluc3RhbmNlczogYW55W107XHJcblxyXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIHN1cGVyKGVsZW1lbnRSZWYpO1xyXG5cclxuICAgIHRoaXMuZWRpdGFibGUgPSB0cnVlO1xyXG4gICAgdGhpcy5saW5lYXIgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnN0ZXBJbnN0YW5jZXMgPSAhdGhpcy5zdGVwSW5zdGFuY2VzPyBbXSA6IHRoaXMuc3RlcEluc3RhbmNlcztcclxuXHJcbiAgICB0aGlzLmhhbmRsZXIgPSAocmVzdWx0KSA9PiB7XHJcbiAgICAgIHRoaXMuc3RlcEluc3RhbmNlcy5wdXNoKHJlc3VsdC5pbnN0YW5jZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG5cclxuICAgIGlmICghdGhpcy5tb2RlbCkge1xyXG4gICAgICB0aGlzLm1vZGVsID0gbmV3IE1hdGVyaWFsU3RlcHBlck1vZGVsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNTZWxmRGF0YURpcnR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGZTYXZlRGF0YSgpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZlJlc2V0RGF0YSgpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNIb3Jpem9udGFsKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaG9yaXpvbnRhbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRIb3Jpem9udGFsKGhvcml6b250YWw6IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmhvcml6b250YWwgPSBob3Jpem9udGFsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzTGluZWFyKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMubGluZWFyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldExpbmVhcihsaW5lYXI6IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmxpbmVhciA9IGxpbmVhcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRNb2RlbCgpOiBNYXRlcmlhbFN0ZXBwZXJNb2RlbCB7XHJcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRNb2RlbChtb2RlbDogTWF0ZXJpYWxTdGVwcGVyTW9kZWwpOiB2b2lkIHtcclxuICAgIHRoaXMubW9kZWwgPSBtb2RlbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc0VkaXRhYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZWRpdGFibGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RWRpdGFibGUoZWRpdGFibGU6IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmVkaXRhYmxlID0gZWRpdGFibGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RWRpdEljb24oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVkaXRJY29uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldEVkaXRJY29uKGVkaXRJY29uOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZWRpdEljb24gPSBlZGl0SWNvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXREb25lSWNvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZG9uZUljb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RG9uZUljb24oZG9uZUljb246IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5kb25lSWNvbiA9IGRvbmVJY29uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFN0ZXBJbnN0YW5jZXMoKTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0RGF0YUNoaWxkcmVuKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3RlcEluc3RhbmNlKGluZGV4OiBudW1iZXIpOiBhbnkge1xyXG4gICAgbGV0IHN0ZXBzOiBhbnlbXSA9IHRoaXMuZ2V0U3RlcEluc3RhbmNlcygpO1xyXG5cclxuICAgIGlmICghc3RlcHMgfHwgaW5kZXggPCAwIHx8IHN0ZXBzLmxlbmd0aCA8PSBpbmRleCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc3RlcHNbaW5kZXhdO1xyXG4gIH1cclxuXHJcbn1cclxuIl19