com.phloxui
Version:
PhloxUI Ng2+ Framework
362 lines (361 loc) • 22.1 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';
var /** @type {?} */ TYPE_NAME = "material-stepper";
var MaterialStepper = /** @class */ (function (_super) {
tslib_1.__extends(MaterialStepper, _super);
function MaterialStepper(elementRef) {
var _this = _super.call(this, elementRef) || this;
_this.editable = true;
_this.linear = false;
_this.stepInstances = !_this.stepInstances ? [] : _this.stepInstances;
_this.handler = function (result) {
_this.stepInstances.push(result.instance);
};
return _this;
}
/**
* @return {?}
*/
MaterialStepper.prototype.ngOnInit = /**
* @return {?}
*/
function () {
_super.prototype.ngOnInit.call(this);
if (!this.model) {
this.model = new MaterialStepperModel();
}
};
/**
* @return {?}
*/
MaterialStepper.prototype.isSelfDataDirty = /**
* @return {?}
*/
function () {
return false;
};
/**
* @return {?}
*/
MaterialStepper.prototype.selfSaveData = /**
* @return {?}
*/
function () {
};
/**
* @return {?}
*/
MaterialStepper.prototype.selfResetData = /**
* @return {?}
*/
function () {
};
/**
* @return {?}
*/
MaterialStepper.prototype.isHorizontal = /**
* @return {?}
*/
function () {
return this.horizontal;
};
/**
* @param {?} horizontal
* @return {?}
*/
MaterialStepper.prototype.setHorizontal = /**
* @param {?} horizontal
* @return {?}
*/
function (horizontal) {
return this.horizontal = horizontal;
};
/**
* @return {?}
*/
MaterialStepper.prototype.isLinear = /**
* @return {?}
*/
function () {
return this.linear;
};
/**
* @param {?} linear
* @return {?}
*/
MaterialStepper.prototype.setLinear = /**
* @param {?} linear
* @return {?}
*/
function (linear) {
return this.linear = linear;
};
/**
* @return {?}
*/
MaterialStepper.prototype.getModel = /**
* @return {?}
*/
function () {
return this.model;
};
/**
* @param {?} model
* @return {?}
*/
MaterialStepper.prototype.setModel = /**
* @param {?} model
* @return {?}
*/
function (model) {
this.model = model;
};
/**
* @return {?}
*/
MaterialStepper.prototype.isEditable = /**
* @return {?}
*/
function () {
return this.editable;
};
/**
* @param {?} editable
* @return {?}
*/
MaterialStepper.prototype.setEditable = /**
* @param {?} editable
* @return {?}
*/
function (editable) {
return this.editable = editable;
};
/**
* @return {?}
*/
MaterialStepper.prototype.getEditIcon = /**
* @return {?}
*/
function () {
return this.editIcon;
};
/**
* @param {?} editIcon
* @return {?}
*/
MaterialStepper.prototype.setEditIcon = /**
* @param {?} editIcon
* @return {?}
*/
function (editIcon) {
return this.editIcon = editIcon;
};
/**
* @return {?}
*/
MaterialStepper.prototype.getDoneIcon = /**
* @return {?}
*/
function () {
return this.doneIcon;
};
/**
* @param {?} doneIcon
* @return {?}
*/
MaterialStepper.prototype.setDoneIcon = /**
* @param {?} doneIcon
* @return {?}
*/
function (doneIcon) {
return this.doneIcon = doneIcon;
};
/**
* @return {?}
*/
MaterialStepper.prototype.getStepInstances = /**
* @return {?}
*/
function () {
return this.getDataChildren();
};
/**
* @param {?} index
* @return {?}
*/
MaterialStepper.prototype.getStepInstance = /**
* @param {?} index
* @return {?}
*/
function (index) {
var /** @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>\n <mat-step label=\"Fill out your name\">\n <mat-form-field>\n <input matInput placeholder=\"Last name, First name\">\n </mat-form-field>\n <div>\n <button mat-button matStepperNext>Next</button>\n </div>\n </mat-step>\n <mat-step>\n <ng-template matStepLabel>Fill out your address</ng-template>\n <mat-form-field>\n <input matInput placeholder=\"Address\">\n </mat-form-field>\n <div>\n <button mat-button matStepperPrevious>Back</button>\n <button mat-button matStepperNext>Next</button>\n </div>\n </mat-step>\n <mat-step>\n <ng-template matStepLabel>Done</ng-template>\n You are now done.\n <div>\n <button mat-button matStepperPrevious>Back</button>\n <button mat-button (click)=\"stepper.reset()\">Reset</button>\n </div>\n </mat-step>\n</mat-horizontal-stepper>\n"
},] },
];
/** @nocollapse */
MaterialStepper.ctorParameters = function () { return [
{ 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);
return MaterialStepper;
}(AbstractDataView));
export { MaterialStepper };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWF0ZXJpYWxTdGVwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2NvbS5waGxveHVpLyIsInNvdXJjZXMiOlsibGliL3RoZW1lL21hdGVyaWFsL2NvbXBvbmVudC9NYXRlcmlhbFN0ZXBwZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxVQUFVLEVBQUUsS0FBSyxFQUFtQyxZQUFZLEVBQUcsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDckUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQVF6RCxxQkFBTSxTQUFTLEdBQVcsa0JBQWtCLENBQUM7O0lBb0NSLDJDQUFnQjtJQWlFbkQseUJBQVksVUFBc0I7UUFBbEMsWUFDRSxrQkFBTSxVQUFVLENBQUMsU0FVbEI7UUFSQyxLQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixLQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUVwQixLQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsS0FBSSxDQUFDLGFBQWEsQ0FBQSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsYUFBYSxDQUFDO1FBRWxFLEtBQUksQ0FBQyxPQUFPLEdBQUcsVUFBQyxNQUFNO1lBQ3BCLEtBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMxQyxDQUFBOztLQUNGOzs7O0lBRU0sa0NBQVE7Ozs7UUFDYixpQkFBTSxRQUFRLFdBQUUsQ0FBQztRQUVqQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFL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RTs7OztRQUdSLE1BQU0sRUFBRTs7OztRQUdSLE1BQU0sRUFBRTs7OztRQUdSLE1BQU0sRUFBRTs7OzBCQTlHWDtFQWdEcUMsZ0JBQWdCO1NBQXhDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgRWxlbWVudFJlZiwgSW5wdXQsIE91dHB1dCwgSG9zdExpc3RlbmVyLCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciAgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3REYXRhVmlldyB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudC9kYXRhdmlldy9BYnN0cmFjdERhdGFWaWV3JztcclxuaW1wb3J0IHsgTWF0ZXJpYWxTdGVwcGVyTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9NYXRlcmlhbFN0ZXBwZXJNb2RlbCc7XHJcbmltcG9ydCB7IE9wdGlvbiB9IGZyb20gJy4uLy4uLy4uL2RlY29yYXRvci9PcHRpb24uZGVjb3JhdG9yJztcclxuaW1wb3J0IHsgSTE4TiB9IGZyb20gJy4uLy4uLy4uL2RlY29yYXRvci9JMThOLmRlY29yYXRvcic7XHJcbmltcG9ydCB7IElIYXNEYXRhIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50L0lIYXNEYXRhJztcclxuaW1wb3J0IHsgVUlIaXN0b3J5IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50L21vZGVsL1VJSGlzdG9yeSc7XHJcbmltcG9ydCB7IEtleWJvYXJkU2hvcnRjdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9LZXlib2FyZFNob3J0Y3V0U2VydmljZS5zZXJ2aWNlJztcclxuXHJcblxyXG5kZWNsYXJlIHZhciAkOiBhbnk7XHJcblxyXG5jb25zdCBUWVBFX05BTUU6IHN0cmluZyA9IFwibWF0ZXJpYWwtc3RlcHBlclwiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIG1vZHVsZUlkOiBtb2R1bGUuaWQsXHJcbiAgc2VsZWN0b3I6IFRZUEVfTkFNRSxcclxuICB0ZW1wbGF0ZTogYDxtYXQtaG9yaXpvbnRhbC1zdGVwcGVyIFtsaW5lYXJdPVwidHJ1ZVwiICNzdGVwcGVyPlxyXG4gIDxtYXQtc3RlcCBsYWJlbD1cIkZpbGwgb3V0IHlvdXIgbmFtZVwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJMYXN0IG5hbWUsIEZpcnN0IG5hbWVcIj5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gbWF0U3RlcHBlck5leHQ+TmV4dDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtc3RlcD5cclxuICA8bWF0LXN0ZXA+XHJcbiAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPkZpbGwgb3V0IHlvdXIgYWRkcmVzczwvbmctdGVtcGxhdGU+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIkFkZHJlc3NcIj5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gbWF0U3RlcHBlclByZXZpb3VzPkJhY2s8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIG1hdFN0ZXBwZXJOZXh0Pk5leHQ8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbWF0LXN0ZXA+XHJcbiAgPG1hdC1zdGVwPlxyXG4gICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBMYWJlbD5Eb25lPC9uZy10ZW1wbGF0ZT5cclxuICAgIFlvdSBhcmUgbm93IGRvbmUuXHJcbiAgICA8ZGl2PlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gbWF0U3RlcHBlclByZXZpb3VzPkJhY2s8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJzdGVwcGVyLnJlc2V0KClcIj5SZXNldDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtc3RlcD5cclxuPC9tYXQtaG9yaXpvbnRhbC1zdGVwcGVyPlxyXG5gXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbFN0ZXBwZXIgZXh0ZW5kcyBBYnN0cmFjdERhdGFWaWV3IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBUWVBFX05BTUU6IHN0cmluZyA9IFRZUEVfTkFNRTtcclxuXHJcbiAgLy8gLS0tIGZyb20gQWJzdHJhY3REYXRhVmlld1xyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBmaWVsZDogc3RyaW5nO1xyXG5cclxuICAvLyAtLS0gZnJvbSBBYnN0cmFjdEhhc0RhdGFcclxuICBAT3B0aW9uKClcclxuICBASW5wdXQoKVxyXG4gIHByb3RlY3RlZCBkYXRhUGFyZW50OiBJSGFzRGF0YTtcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgaWdub3JlUGFyZW50RGF0YTogYm9vbGVhbjtcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgaWdub3JlUGFyZW50RGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIG9uRGlzYWJsZWQ6IEZ1bmN0aW9uO1xyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBvbkVuYWJsZWQ6IEZ1bmN0aW9uO1xyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBsb2FkaW5nRW5hYmxlZDogYm9vbGVhbjtcclxuICBAT3B0aW9uKCdsb2FkJylcclxuICBwcm90ZWN0ZWQgbG9hZEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgZGVsZWdhdGVIaXN0b3J5OiBib29sZWFuO1xyXG5cclxuICBwcm90ZWN0ZWQgaGlzdG9yeUN1cnNvcjogbnVtYmVyO1xyXG4gIHByb3RlY3RlZCBoaXN0b3JpZXM6IFVJSGlzdG9yeVtdO1xyXG4gIHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xyXG4gIHByb3RlY3RlZCBkYXRhQ2hpbGRyZW46IElIYXNEYXRhW107XHJcbiAgcHJvdGVjdGVkIGRhdGE6IGFueTtcclxuXHJcbiAgcHJvdGVjdGVkIGtiU2hvcnRjdXRTZXJ2aWNlOiBLZXlib2FyZFNob3J0Y3V0U2VydmljZTtcclxuXHJcbiAgcHJvdGVjdGVkIF9sb2FkZWQ6IGJvb2xlYW47XHJcblxyXG4gIC8vIC0tLSBmcm9tIFNlbGZcclxuICBAT3B0aW9uKClcclxuICBASW5wdXQoKVxyXG4gIEBJMThOKClcclxuICBwcm90ZWN0ZWQgbW9kZWw6IE1hdGVyaWFsU3RlcHBlck1vZGVsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBob3Jpem9udGFsOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGxpbmVhcjogYm9vbGVhbjtcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBoYW5kbGVyOiBGdW5jdGlvbjtcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBlZGl0YWJsZTogYm9vbGVhbjtcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBlZGl0SWNvbjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGRvbmVJY29uOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgc3RlcEluc3RhbmNlczogYW55W107XHJcblxyXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIHN1cGVyKGVsZW1lbnRSZWYpO1xyXG5cclxuICAgIHRoaXMuZWRpdGFibGUgPSB0cnVlO1xyXG4gICAgdGhpcy5saW5lYXIgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnN0ZXBJbnN0YW5jZXMgPSAhdGhpcy5zdGVwSW5zdGFuY2VzPyBbXSA6IHRoaXMuc3RlcEluc3RhbmNlcztcclxuXHJcbiAgICB0aGlzLmhhbmRsZXIgPSAocmVzdWx0KSA9PiB7XHJcbiAgICAgIHRoaXMuc3RlcEluc3RhbmNlcy5wdXNoKHJlc3VsdC5pbnN0YW5jZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG5cclxuICAgIGlmICghdGhpcy5tb2RlbCkge1xyXG4gICAgICB0aGlzLm1vZGVsID0gbmV3IE1hdGVyaWFsU3RlcHBlck1vZGVsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNTZWxmRGF0YURpcnR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGZTYXZlRGF0YSgpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZlJlc2V0RGF0YSgpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNIb3Jpem9udGFsKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaG9yaXpvbnRhbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRIb3Jpem9udGFsKGhvcml6b250YWw6IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmhvcml6b250YWwgPSBob3Jpem9udGFsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzTGluZWFyKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMubGluZWFyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldExpbmVhcihsaW5lYXI6IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmxpbmVhciA9IGxpbmVhcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRNb2RlbCgpOiBNYXRlcmlhbFN0ZXBwZXJNb2RlbCB7XHJcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRNb2RlbChtb2RlbDogTWF0ZXJpYWxTdGVwcGVyTW9kZWwpOiB2b2lkIHtcclxuICAgIHRoaXMubW9kZWwgPSBtb2RlbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc0VkaXRhYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZWRpdGFibGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RWRpdGFibGUoZWRpdGFibGU6IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmVkaXRhYmxlID0gZWRpdGFibGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RWRpdEljb24oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVkaXRJY29uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldEVkaXRJY29uKGVkaXRJY29uOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZWRpdEljb24gPSBlZGl0SWNvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXREb25lSWNvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZG9uZUljb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RG9uZUljb24oZG9uZUljb246IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5kb25lSWNvbiA9IGRvbmVJY29uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFN0ZXBJbnN0YW5jZXMoKTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0RGF0YUNoaWxkcmVuKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3RlcEluc3RhbmNlKGluZGV4OiBudW1iZXIpOiBhbnkge1xyXG4gICAgbGV0IHN0ZXBzOiBhbnlbXSA9IHRoaXMuZ2V0U3RlcEluc3RhbmNlcygpO1xyXG5cclxuICAgIGlmICghc3RlcHMgfHwgaW5kZXggPCAwIHx8IHN0ZXBzLmxlbmd0aCA8PSBpbmRleCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc3RlcHNbaW5kZXhdO1xyXG4gIH1cclxuXHJcbn1cclxuIl19