UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

340 lines (339 loc) 27.2 kB
/** * @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 { AbstractDataView } from '../dataview/AbstractDataView'; 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.beforeChangeEvent = new EventEmitter(); _this.stepInstances = !_this.stepInstances ? [] : _this.stepInstances; _this.stepsComponentHandler = function (data) { _this.stepInstances.push(data.instance); if (typeof data.instance.getBeforeChangeEvent === 'function') { var /** @type {?} */ beforeChangeEmitter = data.instance.getBeforeChangeEvent(); if (beforeChangeEmitter !== null && typeof beforeChangeEmitter !== 'undefined') { beforeChangeEmitter.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.beforeChangeEvent.emit(event); }); } } 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 !== undefined && this.model.header !== null) { this.headerHeight = this.model.header.height; } if (this.model !== null && this.model !== undefined && this.model.footer !== null) { this.footerHeight = this.model.footer.height; } // set default if (this.headerHeight === null || this.headerHeight === undefined) { if (this.app !== null && this.app !== undefined) { this.headerHeight = this.app.getAppInfo().settings.WIZARD_HEADER_HEIGHT; } } if (this.footerHeight === null || this.footerHeight === undefined) { if (this.app !== null && this.app !== undefined) { 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.getBeforeChangeEvent = /** * @return {?} */ function () { return this.beforeChangeEvent; }; /** * @param {?} event * @return {?} */ AbstractWizardPane.prototype.setBeforeChangeEvent = /** * @param {?} event * @return {?} */ function (event) { this.beforeChangeEvent = event; }; /** * @return {?} */ AbstractWizardPane.prototype.isSelfDataDirty = /** * @return {?} */ function () { return false; }; /** * @param {?} data * @return {?} */ AbstractWizardPane.prototype.selfSaveData = /** * @param {?} data * @return {?} */ function (data) { }; /** * @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; }; /** * @return {?} */ AbstractWizardPane.prototype.getStepInstances = /** * @return {?} */ function () { return this.getDataChildren(); }; /** * @param {?} index * @return {?} */ AbstractWizardPane.prototype.getStepInstance = /** * @param {?} index * @return {?} */ function (index) { var /** @type {?} */ steps = this.getStepInstances(); if (!steps || index < 0 || steps.length <= index) { return null; } return steps[index]; }; AbstractWizardPane.propDecorators = { "model": [{ type: Input },], }; tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", WizardModel) ], AbstractWizardPane.prototype, "model", void 0); tslib_1.__decorate([ Option('change'), tslib_1.__metadata("design:type", EventEmitter) ], AbstractWizardPane.prototype, "changeEvent", void 0); tslib_1.__decorate([ Option('beforeChange'), tslib_1.__metadata("design:type", EventEmitter) ], AbstractWizardPane.prototype, "beforeChangeEvent", void 0); return AbstractWizardPane; }(AbstractDataView)); 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.beforeChangeEvent; /** @type {?} */ AbstractWizardPane.prototype.stepsComponentHandler; /** @type {?} */ AbstractWizardPane.prototype.stepInstances; /** * @abstract * @param {?} index * @return {?} */ AbstractWizardPane.prototype.showStepContent = function (index) { }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RXaXphcmRQYW5lLmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tLnBobG94dWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50L2RhdGF2aWV3L0Fic3RyYWN0V2l6YXJkUGFuZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBaUMsS0FBSyxFQUFhLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFRbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFaEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7OztJQUdULDhDQUFnQjtJQXVCL0QsNEJBQVksTUFBdUIsRUFBRSxVQUFzQjtRQUEzRCxZQUNFLGtCQUFNLFVBQVUsQ0FBQyxTQWlEbEI7UUFoREMsS0FBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0QixLQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQztRQUM5QixLQUFJLENBQUMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEMsS0FBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFNUMsS0FBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLEtBQUksQ0FBQyxhQUFhLENBQUEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLGFBQWEsQ0FBQztRQUVsRSxLQUFJLENBQUMscUJBQXFCLEdBQUcsVUFBQyxJQUFTO1lBQ3JDLEtBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV2QyxFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsb0JBQW9CLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDN0QscUJBQUksbUJBQW1CLEdBQUcs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QUU7MENBQ1EsV0FBVzs7O1FBSzNCLE1BQU0sQ0FBQyxRQUFRLENBQUM7MENBQ00sWUFBWTs7O1FBQ2xDLE1BQU0sQ0FBQyxjQUFjLENBQUM7MENBQ00sWUFBWTs7NkJBMUIzQztFQWNpRCxnQkFBZ0I7U0FBM0Msa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBXaXphcmRNb2RlbCB9IGZyb20gJy4uL21vZGVsL1dpemFyZE1vZGVsJztcclxuaW1wb3J0IHsgV2l6YXJkU3RlcE1vZGVsIH0gZnJvbSAnLi4vbW9kZWwvbW9kZWxzJztcclxuXHJcbmltcG9ydCB7IFBobG94QXBwU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvUGhsb3hBcHBTZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJSGFzTW9kZWwgfSBmcm9tICcuLi9JSGFzTW9kZWwnO1xyXG5pbXBvcnQgeyBJSGFzRGF0YSB9IGZyb20gJy4uL0lIYXNEYXRhJztcclxuaW1wb3J0IHsgUGhsb3hBcHAgfSBmcm9tICcuLi9QaGxveEFwcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdEhhc0RhdGFIZWxwIH0gZnJvbSAnLi4vQWJzdHJhY3RIYXNEYXRhSGVscCc7XHJcbmltcG9ydCB7IEFic3RyYWN0RGF0YVZpZXcgfSBmcm9tICcuLi9kYXRhdmlldy9BYnN0cmFjdERhdGFWaWV3JztcclxuaW1wb3J0IHsgSUNoYW5nZWFibGUgfSBmcm9tICcuLi9JQ2hhbmdlYWJsZSc7XHJcbmltcG9ydCB7IE9wdGlvbiB9IGZyb20gJy4uLy4uL2RlY29yYXRvci9PcHRpb24uZGVjb3JhdG9yJztcclxuaW1wb3J0IHsgSTE4TiB9IGZyb20gJy4uLy4uL2RlY29yYXRvci9JMThOLmRlY29yYXRvcic7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RXaXphcmRQYW5lIGV4dGVuZHMgQWJzdHJhY3REYXRhVmlldyBpbXBsZW1lbnRzIE9uSW5pdCwgSUhhc01vZGVsLCBJQ2hhbmdlYWJsZSB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIG1vZGVsOiBXaXphcmRNb2RlbDtcclxuICBwcm90ZWN0ZWQgY3VycmVudFN0ZXA6IG51bWJlcjtcclxuICBwcm90ZWN0ZWQgaGVhZGVySGVpZ2h0OiBudW1iZXI7XHJcbiAgcHJvdGVjdGVkIGZvb3RlckhlaWdodDogbnVtYmVyO1xyXG4gIHByb3RlY3RlZCBwaGxveEFwcFNlcnZpY2U6IFBobG94QXBwU2VydmljZTtcclxuICBAT3B0aW9uKCdjaGFuZ2UnKVxyXG4gIHByb3RlY3RlZCBjaGFuZ2VFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XHJcbiAgQE9wdGlvbignYmVmb3JlQ2hhbmdlJylcclxuICBwcm90ZWN0ZWQgYmVmb3JlQ2hhbmdlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gIHByb3RlY3RlZCBzdGVwc0NvbXBvbmVudEhhbmRsZXI6IEZ1bmN0aW9uO1xyXG4gIHByb3RlY3RlZCBzdGVwSW5zdGFuY2VzOiBhbnlbXTtcclxuXHJcbiAgcHJpdmF0ZSBnZXQgYXBwKCk6IFBobG94QXBwIHtcclxuICAgIGlmICh0aGlzLnBobG94QXBwU2VydmljZSA9PT0gbnVsbCB8fCB0eXBlb2YgdGhpcy5waGxveEFwcFNlcnZpY2UgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMucGhsb3hBcHBTZXJ2aWNlLmdldEluc3RhbmNlKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihhcHBTdmM6IFBobG94QXBwU2VydmljZSwgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoZWxlbWVudFJlZik7XHJcbiAgICB0aGlzLmN1cnJlbnRTdGVwID0gLTE7XHJcbiAgICB0aGlzLnBobG94QXBwU2VydmljZSA9IGFwcFN2YztcclxuICAgIHRoaXMuY2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICB0aGlzLmJlZm9yZUNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIHRoaXMuc3RlcEluc3RhbmNlcyA9ICF0aGlzLnN0ZXBJbnN0YW5jZXM/IFtdIDogdGhpcy5zdGVwSW5zdGFuY2VzO1xyXG5cclxuICAgIHRoaXMuc3RlcHNDb21wb25lbnRIYW5kbGVyID0gKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnN0ZXBJbnN0YW5jZXMucHVzaChkYXRhLmluc3RhbmNlKTtcclxuXHJcbiAgICAgIGlmICh0eXBlb2YgZGF0YS5pbnN0YW5jZS5nZXRCZWZvcmVDaGFuZ2VFdmVudCA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIGxldCBiZWZvcmVDaGFuZ2VFbWl0dGVyID0gZGF0YS5pbnN0YW5jZS5nZXRCZWZvcmVDaGFuZ2VFdmVudCgpO1xyXG4gICAgICAgIGlmIChiZWZvcmVDaGFuZ2VFbWl0dGVyICE9PSBudWxsICYmIHR5cGVvZiBiZWZvcmVDaGFuZ2VFbWl0dGVyICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgYmVmb3JlQ2hhbmdlRW1pdHRlci5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKGV2ZW50LmRldGFpbCAhPT0gbnVsbCAmJiB0eXBlb2YgZXZlbnQuZGV0YWlsICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICAgIGlmIChldmVudC5kZXRhaWwuZGF0YSAhPT0gbnVsbCAmJiB0eXBlb2YgZXZlbnQuZGV0YWlsLmRhdGEgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGV0YWlsLmRhdGEuYnViYmxlU3RhY2sgIT09IG51bGwgJiYgdHlwZW9mIGV2ZW50LmRldGFpbC5kYXRhLmJ1YmJsZVN0YWNrICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICAgICAgICBldmVudC5kZXRhaWwuZGF0YS5idWJibGVTdGFjay5wdXNoKHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgZXZlbnQuZGV0YWlsLmRhdGEuYnViYmxlU3RhY2sgPSBbdGhpc107XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICBldmVudC53aXphcmRTdGVwSW5kZXggPSA7IC8vISBhZGQgd2l6YXJkIHN0ZXAgaW5kZXhcclxuICAgICAgICAgICAgdGhpcy5iZWZvcmVDaGFuZ2VFdmVudC5lbWl0KGV2ZW50KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHR5cGVvZiBkYXRhLmluc3RhbmNlLmdldENoYW5nZUV2ZW50ID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgbGV0IGNoYW5nZUVtaXR0ZXIgPSBkYXRhLmluc3RhbmNlLmdldENoYW5nZUV2ZW50KCk7XHJcbiAgICAgICAgaWYgKGNoYW5nZUVtaXR0ZXIgIT09IG51bGwgJiYgdHlwZW9mIGNoYW5nZUVtaXR0ZXIgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICBjaGFuZ2VFbWl0dGVyLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXZlbnQuZGV0YWlsICE9PSBudWxsICYmIHR5cGVvZiBldmVudC5kZXRhaWwgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGV2ZW50LmRldGFpbC5kYXRhICE9PSBudWxsICYmIHR5cGVvZiBldmVudC5kZXRhaWwuZGF0YSAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgICAgIGlmIChldmVudC5kZXRhaWwuZGF0YS5idWJibGVTdGFjayAhPT0gbnVsbCAmJiB0eXBlb2YgZXZlbnQuZGV0YWlsLmRhdGEuYnViYmxlU3RhY2sgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICAgIGV2ZW50LmRldGFpbC5kYXRhLmJ1YmJsZVN0YWNrLnB1c2godGhpcyk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBldmVudC5kZXRhaWwuZGF0YS5idWJibGVTdGFjayA9IFt0aGlzXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIGV2ZW50LndpemFyZFN0ZXBJbmRleCA9IDsgLy8hIGFkZCB3aXphcmQgc3RlcCBpbmRleFxyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZUV2ZW50LmVtaXQoZXZlbnQpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0ZXBTZWxlY3RlZCgwKTtcclxuXHJcbiAgICBpZiAodGhpcy5tb2RlbCAhPT0gbnVsbCAmJiB0aGlzLm1vZGVsICE9PSB1bmRlZmluZWQgJiYgdGhpcy5tb2RlbC5oZWFkZXIgIT09IG51bGwpIHtcclxuICAgICAgdGhpcy5oZWFkZXJIZWlnaHQgPSB0aGlzLm1vZGVsLmhlYWRlci5oZWlnaHQ7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tb2RlbCAhPT0gbnVsbCAmJiB0aGlzLm1vZGVsICE9PSB1bmRlZmluZWQgJiYgdGhpcy5tb2RlbC5mb290ZXIgIT09IG51bGwpIHtcclxuICAgICAgdGhpcy5mb290ZXJIZWlnaHQgPSB0aGlzLm1vZGVsLmZvb3Rlci5oZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gc2V0IGRlZmF1bHRcclxuICAgIGlmICh0aGlzLmhlYWRlckhlaWdodCA9PT0gbnVsbCB8fCB0aGlzLmhlYWRlckhlaWdodCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlmICh0aGlzLmFwcCAhPT0gbnVsbCAmJiB0aGlzLmFwcCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5oZWFkZXJIZWlnaHQgPSB0aGlzLmFwcC5nZXRBcHBJbmZvKCkuc2V0dGluZ3MuV0laQVJEX0hFQURFUl9IRUlHSFQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZvb3RlckhlaWdodCA9PT0gbnVsbCB8fCB0aGlzLmZvb3RlckhlaWdodCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlmICh0aGlzLmFwcCAhPT0gbnVsbCAmJiB0aGlzLmFwcCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5mb290ZXJIZWlnaHQgPSB0aGlzLmFwcC5nZXRBcHBJbmZvKCkuc2V0dGluZ3MuV0laQVJEX0ZPT1RFUl9IRUlHSFQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhYnN0cmFjdCBzaG93U3RlcENvbnRlbnQoaW5kZXg6IG51bWJlcik6IHZvaWQ7XHJcblxyXG4gIHB1YmxpYyBnZXRNb2RlbCgpOiBXaXphcmRNb2RlbCB7XHJcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRNb2RlbChtb2RlbDogV2l6YXJkTW9kZWwpOiB2b2lkIHtcclxuICAgIHRoaXMubW9kZWwgPSBtb2RlbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGVwU2VsZWN0ZWQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKGluZGV4ID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY3VycmVudFN0ZXAgPSBpbmRleDtcclxuXHJcbiAgICB0aGlzLnNob3dTdGVwQ29udGVudChpbmRleCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNTdGVwU2VsZWN0ZWQoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGluZGV4ID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmN1cnJlbnRTdGVwICE9PSBudWxsICYmIHRoaXMuY3VycmVudFN0ZXAgPiAtMSkge1xyXG4gICAgICBpZiAodGhpcy5jdXJyZW50U3RlcCA9PSBpbmRleCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q2hhbmdlRXZlbnQoKTogRXZlbnRFbWl0dGVyPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hhbmdlRXZlbnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0Q2hhbmdlRXZlbnQoZXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+KTogdm9pZCB7XHJcbiAgICB0aGlzLmNoYW5nZUV2ZW50ID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0QmVmb3JlQ2hhbmdlRXZlbnQoKTogRXZlbnRFbWl0dGVyPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmVmb3JlQ2hhbmdlRXZlbnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0QmVmb3JlQ2hhbmdlRXZlbnQoZXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+KTogdm9pZCB7XHJcbiAgICB0aGlzLmJlZm9yZUNoYW5nZUV2ZW50ID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNTZWxmRGF0YURpcnR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGZTYXZlRGF0YShkYXRhOiBhbnkpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZlJlc2V0RGF0YSgpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZG9QcmVsb2FkKCk6IFByb21pc2U8YW55PiB7ICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geyAgICAgICByZXNvbHZlKG51bGwpOyAgICAgfSk7ICAgfSAgcHVibGljIGRvTG9hZGVkKCk6IHZvaWQge1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRIZWFkZXJIZWlnaHQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmhlYWRlckhlaWdodDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRGb290ZXJIZWlnaHQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmZvb3RlckhlaWdodDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdGVwc0NvbXBvbmVudEhhbmRsZXIoKTogRnVuY3Rpb24ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RlcHNDb21wb25lbnRIYW5kbGVyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFN0ZXBJbnN0YW5jZXMoKTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0RGF0YUNoaWxkcmVuKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3RlcEluc3RhbmNlKGluZGV4OiBudW1iZXIpOiBhbnkge1xyXG4gICAgbGV0IHN0ZXBzOiBhbnlbXSA9IHRoaXMuZ2V0U3RlcEluc3RhbmNlcygpO1xyXG5cclxuICAgIGlmICghc3RlcHMgfHwgaW5kZXggPCAwIHx8IHN0ZXBzLmxlbmd0aCA8PSBpbmRleCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc3RlcHNbaW5kZXhdO1xyXG4gIH1cclxuXHJcbn1cclxuIl19