com.phloxui
Version:
PhloxUI Ng2+ Framework
328 lines (327 loc) • 19.9 kB
JavaScript
/**
* @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