com.phloxui
Version:
PhloxUI Ng2+ Framework
259 lines (258 loc) • 18.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Input, EventEmitter } from '@angular/core';
import { WizardModel } from './model/WizardModel';
import { AbstractHasData } from './AbstractHasData';
import { Option } from '../decorator/Option.decorator';
/**
* @abstract
*/
var AbstractWizardPane = /** @class */ (function (_super) {
tslib_1.__extends(AbstractWizardPane, _super);
function AbstractWizardPane(appSvc, elementRef) {
var _this = _super.call(this, elementRef) || this;
_this.currentStep = -1;
_this.phloxAppService = appSvc;
_this.changeEvent = new EventEmitter();
_this.stepsComponentHandler = function (data) {
if (typeof data.instance.getChangeEvent === 'function') {
var /** @type {?} */ changeEmitter = data.instance.getChangeEvent();
if (changeEmitter !== null && typeof changeEmitter !== 'undefined') {
changeEmitter.subscribe(function (event) {
if (event.detail !== null && typeof event.detail !== 'undefined') {
if (event.detail.data !== null && typeof event.detail.data !== 'undefined') {
if (event.detail.data.bubbleStack !== null && typeof event.detail.data.bubbleStack !== 'undefined') {
event.detail.data.bubbleStack.push(_this);
}
else {
event.detail.data.bubbleStack = [_this];
}
}
}
// event.wizardStepIndex = ; //! add wizard step index
// event.wizardStepIndex = ; //! add wizard step index
_this.changeEvent.emit(event);
});
}
}
};
return _this;
}
Object.defineProperty(AbstractWizardPane.prototype, "app", {
get: /**
* @return {?}
*/
function () {
if (this.phloxAppService === null || typeof this.phloxAppService === 'undefined') {
return null;
}
return this.phloxAppService.getInstance();
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
AbstractWizardPane.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.stepSelected(0);
if (this.model !== null && this.model.header !== null) {
this.headerHeight = this.model.header.height;
}
if (this.model !== null && this.model.footer !== null) {
this.footerHeight = this.model.footer.height;
}
// set default
if (this.headerHeight === null) {
if (this.app !== null) {
this.headerHeight = this.app.getAppInfo().settings.WIZARD_HEADER_HEIGHT;
}
}
if (this.footerHeight === null) {
if (this.app !== null) {
this.footerHeight = this.app.getAppInfo().settings.WIZARD_FOOTER_HEIGHT;
}
}
};
/**
* @return {?}
*/
AbstractWizardPane.prototype.getModel = /**
* @return {?}
*/
function () {
return this.model;
};
/**
* @param {?} model
* @return {?}
*/
AbstractWizardPane.prototype.setModel = /**
* @param {?} model
* @return {?}
*/
function (model) {
this.model = model;
};
/**
* @param {?} index
* @return {?}
*/
AbstractWizardPane.prototype.stepSelected = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index === null) {
return;
}
this.currentStep = index;
this.showStepContent(index);
};
/**
* @param {?} index
* @return {?}
*/
AbstractWizardPane.prototype.isStepSelected = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index === null) {
return;
}
if (this.currentStep !== null && this.currentStep > -1) {
if (this.currentStep == index) {
return true;
}
}
return false;
};
/**
* @return {?}
*/
AbstractWizardPane.prototype.getChangeEvent = /**
* @return {?}
*/
function () {
return this.changeEvent;
};
/**
* @param {?} event
* @return {?}
*/
AbstractWizardPane.prototype.setChangeEvent = /**
* @param {?} event
* @return {?}
*/
function (event) {
this.changeEvent = event;
};
/**
* @return {?}
*/
AbstractWizardPane.prototype.isSelfDataDirty = /**
* @return {?}
*/
function () {
return false;
};
/**
* @return {?}
*/
AbstractWizardPane.prototype.selfSaveData = /**
* @return {?}
*/
function () {
};
/**
* @return {?}
*/
AbstractWizardPane.prototype.selfResetData = /**
* @return {?}
*/
function () {
};
/**
* @return {?}
*/
AbstractWizardPane.prototype.doPreload = /**
* @return {?}
*/
function () { return new Promise(function (resolve, reject) { resolve(null); }); };
/**
* @return {?}
*/
AbstractWizardPane.prototype.doLoaded = /**
* @return {?}
*/
function () {
};
/**
* @return {?}
*/
AbstractWizardPane.prototype.getHeaderHeight = /**
* @return {?}
*/
function () {
return this.headerHeight;
};
/**
* @return {?}
*/
AbstractWizardPane.prototype.getFooterHeight = /**
* @return {?}
*/
function () {
return this.footerHeight;
};
/**
* @return {?}
*/
AbstractWizardPane.prototype.getStepsComponentHandler = /**
* @return {?}
*/
function () {
return this.stepsComponentHandler;
};
AbstractWizardPane.propDecorators = {
"model": [{ type: Input },],
};
tslib_1.__decorate([
Option('change'),
tslib_1.__metadata("design:type", EventEmitter)
], AbstractWizardPane.prototype, "changeEvent", void 0);
return AbstractWizardPane;
}(AbstractHasData));
export { AbstractWizardPane };
function AbstractWizardPane_tsickle_Closure_declarations() {
/** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
AbstractWizardPane.propDecorators;
/** @type {?} */
AbstractWizardPane.prototype.model;
/** @type {?} */
AbstractWizardPane.prototype.currentStep;
/** @type {?} */
AbstractWizardPane.prototype.headerHeight;
/** @type {?} */
AbstractWizardPane.prototype.footerHeight;
/** @type {?} */
AbstractWizardPane.prototype.phloxAppService;
/** @type {?} */
AbstractWizardPane.prototype.changeEvent;
/** @type {?} */
AbstractWizardPane.prototype.stepsComponentHandler;
/**
* @abstract
* @param {?} index
* @return {?}
*/
AbstractWizardPane.prototype.showStepContent = function (index) { };
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RXaXphcmRQYW5lLmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tLnBobG94dWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50L0Fic3RyYWN0V2l6YXJkUGFuZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBaUMsS0FBSyxFQUFhLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFPbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7SUFFTiw4Q0FBZTtJQW1COUQsNEJBQVksTUFBdUIsRUFBRSxVQUFzQjtRQUEzRCxZQUNFLGtCQUFNLFVBQVUsQ0FBQyxTQXlCbEI7UUF4QkMsS0FBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0QixLQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQztRQUM5QixLQUFJLENBQUMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdEMsS0FBSSxDQUFDLHFCQUFxQixHQUFHLFVBQUMsSUFBUztZQUNyQyxFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZELHFCQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNuRCxFQUFFLENBQUMsQ0FBQyxhQUFhLEtBQUssSUFBSSxJQUFJLE9BQU8sYUFBYSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7b0JBQ25FLGFBQWEsQ0FBQyxTQUFTLENBQUMsVUFBQyxLQUFVO3dCQUNqQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQzs0QkFDakUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztnQ0FDM0UsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO29DQUNuRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxDQUFDO2lDQUMxQztnQ0FBQyxJQUFJLENBQUMsQ0FBQztvQ0FDTixLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxLQUFJLENBQUMsQ0FBQztpQ0FDeEM7NkJBQ0Y7eUJBQ0Y7O3dCQUVELEFBREEseUVBQXlFO3dCQUN6RSxLQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDOUIsQ0FBQyxDQUFDO2lCQUNKO2FBQ0Y7U0FDRixDQUFBOztLQUNGOzBCQWpDVyxtQ0FBRzs7Ozs7WUFDYixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxLQUFLLElBQUksSUFBSSxPQUFPLElBQUksQ0FBQyxlQUFlLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFDakYsTUFBTSxDQUFDLElBQUksQ0FBQzthQUNiO1lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7Ozs7Ozs7O0lBK0JyQyxxQ0FBUTs7OztRQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFckIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztTQUM5QztRQUNELEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDOUM7O1FBR0QsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQy9CLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQzthQUN6RTtTQUNGO1FBQ0QsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQy9CLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQzthQUN6RTtTQUNGOzs7OztJQUtJLHFDQUFROzs7O1FBQ2IsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7Ozs7OztJQUdiLHFDQUFROzs7O2NBQUMsS0FBa0I7UUFDaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7Ozs7OztJQUdkLHlDQUFZOzs7O2NBQUMsS0FBYTtRQUMvQixFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNuQixNQUFNLENBQUM7U0FDUjtRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXpCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7Ozs7OztJQUd2QiwyQ0FBYzs7OztjQUFDLEtBQWE7UUFDakMsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbkIsTUFBTSxDQUFDO1NBQ1I7UUFDRCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUM7YUFDYjtTQUNGO1FBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQzs7Ozs7SUFHUiwyQ0FBYzs7OztRQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQzs7Ozs7O0lBR25CLDJDQUFjOzs7O2NBQUMsS0FBd0I7UUFDNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7Ozs7O0lBR3BCLDRDQUFlOzs7O1FBQ3BCLE1BQU0sQ0FBQyxLQUFLLENBQUM7Ozs7O0lBR1IseUNBQVk7Ozs7Ozs7O0lBSVosMENBQWE7Ozs7Ozs7O0lBSWIsc0NBQVM7OztrQkFBdUIsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU0sSUFBYSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBTSxDQUFDLENBQUM7Ozs7SUFBYSxxQ0FBUTs7Ozs7Ozs7SUFJM0gsNENBQWU7Ozs7UUFDcEIsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7Ozs7O0lBR3BCLDRDQUFlOzs7O1FBQ3BCLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDOzs7OztJQUdwQixxREFBd0I7Ozs7UUFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQzs7OzBCQXBJbkMsS0FBSzs7O1FBTUwsTUFBTSxDQUFDLFFBQVEsQ0FBQzswQ0FDTSxZQUFZOzs2QkFyQnJDO0VBWWlELGVBQWU7U0FBMUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBXaXphcmRNb2RlbCB9IGZyb20gJy4vbW9kZWwvV2l6YXJkTW9kZWwnO1xyXG5pbXBvcnQgeyBXaXphcmRTdGVwTW9kZWwgfSBmcm9tICcuL21vZGVsL21vZGVscyc7XHJcblxyXG5pbXBvcnQgeyBQaGxveEFwcFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL1BobG94QXBwU2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUhhc01vZGVsIH0gZnJvbSAnLi9JSGFzTW9kZWwnO1xyXG5pbXBvcnQgeyBJSGFzRGF0YSB9IGZyb20gJy4vSUhhc0RhdGEnO1xyXG5pbXBvcnQgeyBQaGxveEFwcCB9IGZyb20gJy4vUGhsb3hBcHAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWJzdHJhY3RIYXNEYXRhIH0gZnJvbSAnLi9BYnN0cmFjdEhhc0RhdGEnO1xyXG5pbXBvcnQgeyBJQ2hhbmdlYWJsZSB9IGZyb20gJy4vSUNoYW5nZWFibGUnO1xyXG5pbXBvcnQgeyBPcHRpb24gfSBmcm9tICcuLi9kZWNvcmF0b3IvT3B0aW9uLmRlY29yYXRvcic7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RXaXphcmRQYW5lIGV4dGVuZHMgQWJzdHJhY3RIYXNEYXRhIGltcGxlbWVudHMgT25Jbml0LCBJSGFzTW9kZWwsIElDaGFuZ2VhYmxlIHtcclxuXHJcbiAgQElucHV0KClcclxuICBwcm90ZWN0ZWQgbW9kZWw6IFdpemFyZE1vZGVsO1xyXG4gIHByb3RlY3RlZCBjdXJyZW50U3RlcDogbnVtYmVyO1xyXG4gIHByb3RlY3RlZCBoZWFkZXJIZWlnaHQ6IG51bWJlcjtcclxuICBwcm90ZWN0ZWQgZm9vdGVySGVpZ2h0OiBudW1iZXI7XHJcbiAgcHJvdGVjdGVkIHBobG94QXBwU2VydmljZTogUGhsb3hBcHBTZXJ2aWNlO1xyXG4gIEBPcHRpb24oJ2NoYW5nZScpXHJcbiAgcHJvdGVjdGVkIGNoYW5nZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcclxuICBwcm90ZWN0ZWQgc3RlcHNDb21wb25lbnRIYW5kbGVyOiBGdW5jdGlvbjtcclxuXHJcbiAgcHJpdmF0ZSBnZXQgYXBwKCk6IFBobG94QXBwIHtcclxuICAgIGlmICh0aGlzLnBobG94QXBwU2VydmljZSA9PT0gbnVsbCB8fCB0eXBlb2YgdGhpcy5waGxveEFwcFNlcnZpY2UgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMucGhsb3hBcHBTZXJ2aWNlLmdldEluc3RhbmNlKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihhcHBTdmM6IFBobG94QXBwU2VydmljZSwgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoZWxlbWVudFJlZik7XHJcbiAgICB0aGlzLmN1cnJlbnRTdGVwID0gLTE7XHJcbiAgICB0aGlzLnBobG94QXBwU2VydmljZSA9IGFwcFN2YztcclxuICAgIHRoaXMuY2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgdGhpcy5zdGVwc0NvbXBvbmVudEhhbmRsZXIgPSAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIGlmICh0eXBlb2YgZGF0YS5pbnN0YW5jZS5nZXRDaGFuZ2VFdmVudCA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIGxldCBjaGFuZ2VFbWl0dGVyID0gZGF0YS5pbnN0YW5jZS5nZXRDaGFuZ2VFdmVudCgpO1xyXG4gICAgICAgIGlmIChjaGFuZ2VFbWl0dGVyICE9PSBudWxsICYmIHR5cGVvZiBjaGFuZ2VFbWl0dGVyICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgY2hhbmdlRW1pdHRlci5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKGV2ZW50LmRldGFpbCAhPT0gbnVsbCAmJiB0eXBlb2YgZXZlbnQuZGV0YWlsICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICAgIGlmIChldmVudC5kZXRhaWwuZGF0YSAhPT0gbnVsbCAmJiB0eXBlb2YgZXZlbnQuZGV0YWlsLmRhdGEgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGV0YWlsLmRhdGEuYnViYmxlU3RhY2sgIT09IG51bGwgJiYgdHlwZW9mIGV2ZW50LmRldGFpbC5kYXRhLmJ1YmJsZVN0YWNrICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICAgICAgICBldmVudC5kZXRhaWwuZGF0YS5idWJibGVTdGFjay5wdXNoKHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgZXZlbnQuZGV0YWlsLmRhdGEuYnViYmxlU3RhY2sgPSBbdGhpc107XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICBldmVudC53aXphcmRTdGVwSW5kZXggPSA7IC8vISBhZGQgd2l6YXJkIHN0ZXAgaW5kZXhcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VFdmVudC5lbWl0KGV2ZW50KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGVwU2VsZWN0ZWQoMCk7XHJcblxyXG4gICAgaWYgKHRoaXMubW9kZWwgIT09IG51bGwgJiYgdGhpcy5tb2RlbC5oZWFkZXIgIT09IG51bGwpIHtcclxuICAgICAgdGhpcy5oZWFkZXJIZWlnaHQgPSB0aGlzLm1vZGVsLmhlYWRlci5oZWlnaHQ7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tb2RlbCAhPT0gbnVsbCAmJiB0aGlzLm1vZGVsLmZvb3RlciAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmZvb3RlckhlaWdodCA9IHRoaXMubW9kZWwuZm9vdGVyLmhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBzZXQgZGVmYXVsdFxyXG4gICAgaWYgKHRoaXMuaGVhZGVySGVpZ2h0ID09PSBudWxsKSB7XHJcbiAgICAgIGlmICh0aGlzLmFwcCAhPT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuaGVhZGVySGVpZ2h0ID0gdGhpcy5hcHAuZ2V0QXBwSW5mbygpLnNldHRpbmdzLldJWkFSRF9IRUFERVJfSEVJR0hUO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5mb290ZXJIZWlnaHQgPT09IG51bGwpIHtcclxuICAgICAgaWYgKHRoaXMuYXBwICE9PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5mb290ZXJIZWlnaHQgPSB0aGlzLmFwcC5nZXRBcHBJbmZvKCkuc2V0dGluZ3MuV0laQVJEX0ZPT1RFUl9IRUlHSFQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhYnN0cmFjdCBzaG93U3RlcENvbnRlbnQoaW5kZXg6IG51bWJlcik6IHZvaWQ7XHJcblxyXG4gIHB1YmxpYyBnZXRNb2RlbCgpOiBXaXphcmRNb2RlbCB7XHJcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRNb2RlbChtb2RlbDogV2l6YXJkTW9kZWwpOiB2b2lkIHtcclxuICAgIHRoaXMubW9kZWwgPSBtb2RlbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGVwU2VsZWN0ZWQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKGluZGV4ID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY3VycmVudFN0ZXAgPSBpbmRleDtcclxuXHJcbiAgICB0aGlzLnNob3dTdGVwQ29udGVudChpbmRleCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNTdGVwU2VsZWN0ZWQoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGluZGV4ID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmN1cnJlbnRTdGVwICE9PSBudWxsICYmIHRoaXMuY3VycmVudFN0ZXAgPiAtMSkge1xyXG4gICAgICBpZiAodGhpcy5jdXJyZW50U3RlcCA9PSBpbmRleCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q2hhbmdlRXZlbnQoKTogRXZlbnRFbWl0dGVyPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hhbmdlRXZlbnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0Q2hhbmdlRXZlbnQoZXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+KTogdm9pZCB7XHJcbiAgICB0aGlzLmNoYW5nZUV2ZW50ID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNTZWxmRGF0YURpcnR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGZTYXZlRGF0YSgpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZlJlc2V0RGF0YSgpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZG9QcmVsb2FkKCk6IFByb21pc2U8YW55PiB7ICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geyAgICAgICByZXNvbHZlKG51bGwpOyAgICAgfSk7ICAgfSAgcHVibGljIGRvTG9hZGVkKCk6IHZvaWQge1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRIZWFkZXJIZWlnaHQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmhlYWRlckhlaWdodDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRGb290ZXJIZWlnaHQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmZvb3RlckhlaWdodDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdGVwc0NvbXBvbmVudEhhbmRsZXIoKTogRnVuY3Rpb24ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RlcHNDb21wb25lbnRIYW5kbGVyO1xyXG4gIH1cclxuXHJcbn1cclxuIl19