UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

259 lines (258 loc) 18.6 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 { 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RXaXphcmRQYW5lLmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tLnBobG94dWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50L0Fic3RyYWN0V2l6YXJkUGFuZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBaUMsS0FBSyxFQUFhLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFPbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7SUFFTiw4Q0FBZTtJQW1COUQsNEJBQVksTUFBdUIsRUFBRSxVQUFzQjtRQUEzRCxZQUNFLGtCQUFNLFVBQVUsQ0FBQyxTQXlCbEI7UUF4QkMsS0FBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0QixLQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQztRQUM5QixLQUFJLENBQUMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdEMsS0FBSSxDQUFDLHFCQUFxQixHQUFHLFVBQUMsSUFBUztZQUNyQyxFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZELHFCQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNuRCxFQUFFLENBQUMsQ0FBQyxhQUFhLEtBQUssSUFBSSxJQUFJLE9BQU8sYUFBYSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7b0JBQ25FLGFBQWEsQ0FBQyxTQUFTLENBQUMsVUFBQyxLQUFVO3dCQUNqQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUss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QUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQzs7OzBCQXBJbkMsS0FBSzs7O1FBTUwsTUFBTSxDQUFDLFFBQVEsQ0FBQzswQ0FDTSxZQUFZOzs2QkFyQnJDO0VBWWlELGVBQWU7U0FBMUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBXaXphcmRNb2RlbCB9IGZyb20gJy4vbW9kZWwvV2l6YXJkTW9kZWwnO1xyXG5pbXBvcnQgeyBXaXphcmRTdGVwTW9kZWwgfSBmcm9tICcuL21vZGVsL21vZGVscyc7XHJcblxyXG5pbXBvcnQgeyBQaGxveEFwcFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL1BobG94QXBwU2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUhhc01vZGVsIH0gZnJvbSAnLi9JSGFzTW9kZWwnO1xyXG5pbXBvcnQgeyBJSGFzRGF0YSB9IGZyb20gJy4vSUhhc0RhdGEnO1xyXG5pbXBvcnQgeyBQaGxveEFwcCB9IGZyb20gJy4vUGhsb3hBcHAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWJzdHJhY3RIYXNEYXRhIH0gZnJvbSAnLi9BYnN0cmFjdEhhc0RhdGEnO1xyXG5pbXBvcnQgeyBJQ2hhbmdlYWJsZSB9IGZyb20gJy4vSUNoYW5nZWFibGUnO1xyXG5pbXBvcnQgeyBPcHRpb24gfSBmcm9tICcuLi9kZWNvcmF0b3IvT3B0aW9uLmRlY29yYXRvcic7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RXaXphcmRQYW5lIGV4dGVuZHMgQWJzdHJhY3RIYXNEYXRhIGltcGxlbWVudHMgT25Jbml0LCBJSGFzTW9kZWwsIElDaGFuZ2VhYmxlIHtcclxuXHJcbiAgQElucHV0KClcclxuICBwcm90ZWN0ZWQgbW9kZWw6IFdpemFyZE1vZGVsO1xyXG4gIHByb3RlY3RlZCBjdXJyZW50U3RlcDogbnVtYmVyO1xyXG4gIHByb3RlY3RlZCBoZWFkZXJIZWlnaHQ6IG51bWJlcjtcclxuICBwcm90ZWN0ZWQgZm9vdGVySGVpZ2h0OiBudW1iZXI7XHJcbiAgcHJvdGVjdGVkIHBobG94QXBwU2VydmljZTogUGhsb3hBcHBTZXJ2aWNlO1xyXG4gIEBPcHRpb24oJ2NoYW5nZScpXHJcbiAgcHJvdGVjdGVkIGNoYW5nZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcclxuICBwcm90ZWN0ZWQgc3RlcHNDb21wb25lbnRIYW5kbGVyOiBGdW5jdGlvbjtcclxuXHJcbiAgcHJpdmF0ZSBnZXQgYXBwKCk6IFBobG94QXBwIHtcclxuICAgIGlmICh0aGlzLnBobG94QXBwU2VydmljZSA9PT0gbnVsbCB8fCB0eXBlb2YgdGhpcy5waGxveEFwcFNlcnZpY2UgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMucGhsb3hBcHBTZXJ2aWNlLmdldEluc3RhbmNlKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihhcHBTdmM6IFBobG94QXBwU2VydmljZSwgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoZWxlbWVudFJlZik7XHJcbiAgICB0aGlzLmN1cnJlbnRTdGVwID0gLTE7XHJcbiAgICB0aGlzLnBobG94QXBwU2VydmljZSA9IGFwcFN2YztcclxuICAgIHRoaXMuY2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgdGhpcy5zdGVwc0NvbXBvbmVudEhhbmRsZXIgPSAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIGlmICh0eXBlb2YgZGF0YS5pbnN0YW5jZS5nZXRDaGFuZ2VFdmVudCA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIGxldCBjaGFuZ2VFbWl0dGVyID0gZGF0YS5pbnN0YW5jZS5nZXRDaGFuZ2VFdmVudCgpO1xyXG4gICAgICAgIGlmIChjaGFuZ2VFbWl0dGVyICE9PSBudWxsICYmIHR5cGVvZiBjaGFuZ2VFbWl0dGVyICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgY2hhbmdlRW1pdHRlci5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKGV2ZW50LmRldGFpbCAhPT0gbnVsbCAmJiB0eXBlb2YgZXZlbnQuZGV0YWlsICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICAgIGlmIChldmVudC5kZXRhaWwuZGF0YSAhPT0gbnVsbCAmJiB0eXBlb2YgZXZlbnQuZGV0YWlsLmRhdGEgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGV0YWlsLmRhdGEuYnViYmxlU3RhY2sgIT09IG51bGwgJiYgdHlwZW9mIGV2ZW50LmRldGFpbC5kYXRhLmJ1YmJsZVN0YWNrICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICAgICAgICBldmVudC5kZXRhaWwuZGF0YS5idWJibGVTdGFjay5wdXNoKHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgZXZlbnQuZGV0YWlsLmRhdGEuYnViYmxlU3RhY2sgPSBbdGhpc107XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICBldmVudC53aXphcmRTdGVwSW5kZXggPSA7IC8vISBhZGQgd2l6YXJkIHN0ZXAgaW5kZXhcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VFdmVudC5lbWl0KGV2ZW50KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGVwU2VsZWN0ZWQoMCk7XHJcblxyXG4gICAgaWYgKHRoaXMubW9kZWwgIT09IG51bGwgJiYgdGhpcy5tb2RlbC5oZWFkZXIgIT09IG51bGwpIHtcclxuICAgICAgdGhpcy5oZWFkZXJIZWlnaHQgPSB0aGlzLm1vZGVsLmhlYWRlci5oZWlnaHQ7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tb2RlbCAhPT0gbnVsbCAmJiB0aGlzLm1vZGVsLmZvb3RlciAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmZvb3RlckhlaWdodCA9IHRoaXMubW9kZWwuZm9vdGVyLmhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBzZXQgZGVmYXVsdFxyXG4gICAgaWYgKHRoaXMuaGVhZGVySGVpZ2h0ID09PSBudWxsKSB7XHJcbiAgICAgIGlmICh0aGlzLmFwcCAhPT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuaGVhZGVySGVpZ2h0ID0gdGhpcy5hcHAuZ2V0QXBwSW5mbygpLnNldHRpbmdzLldJWkFSRF9IRUFERVJfSEVJR0hUO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5mb290ZXJIZWlnaHQgPT09IG51bGwpIHtcclxuICAgICAgaWYgKHRoaXMuYXBwICE9PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5mb290ZXJIZWlnaHQgPSB0aGlzLmFwcC5nZXRBcHBJbmZvKCkuc2V0dGluZ3MuV0laQVJEX0ZPT1RFUl9IRUlHSFQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhYnN0cmFjdCBzaG93U3RlcENvbnRlbnQoaW5kZXg6IG51bWJlcik6IHZvaWQ7XHJcblxyXG4gIHB1YmxpYyBnZXRNb2RlbCgpOiBXaXphcmRNb2RlbCB7XHJcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRNb2RlbChtb2RlbDogV2l6YXJkTW9kZWwpOiB2b2lkIHtcclxuICAgIHRoaXMubW9kZWwgPSBtb2RlbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGVwU2VsZWN0ZWQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKGluZGV4ID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY3VycmVudFN0ZXAgPSBpbmRleDtcclxuXHJcbiAgICB0aGlzLnNob3dTdGVwQ29udGVudChpbmRleCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNTdGVwU2VsZWN0ZWQoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGluZGV4ID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmN1cnJlbnRTdGVwICE9PSBudWxsICYmIHRoaXMuY3VycmVudFN0ZXAgPiAtMSkge1xyXG4gICAgICBpZiAodGhpcy5jdXJyZW50U3RlcCA9PSBpbmRleCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q2hhbmdlRXZlbnQoKTogRXZlbnRFbWl0dGVyPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hhbmdlRXZlbnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0Q2hhbmdlRXZlbnQoZXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+KTogdm9pZCB7XHJcbiAgICB0aGlzLmNoYW5nZUV2ZW50ID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNTZWxmRGF0YURpcnR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGZTYXZlRGF0YSgpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZlJlc2V0RGF0YSgpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZG9QcmVsb2FkKCk6IFByb21pc2U8YW55PiB7ICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geyAgICAgICByZXNvbHZlKG51bGwpOyAgICAgfSk7ICAgfSAgcHVibGljIGRvTG9hZGVkKCk6IHZvaWQge1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRIZWFkZXJIZWlnaHQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmhlYWRlckhlaWdodDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRGb290ZXJIZWlnaHQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmZvb3RlckhlaWdodDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdGVwc0NvbXBvbmVudEhhbmRsZXIoKTogRnVuY3Rpb24ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RlcHNDb21wb25lbnRIYW5kbGVyO1xyXG4gIH1cclxuXHJcbn1cclxuIl19