UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

205 lines (204 loc) 16.8 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 */ export class AbstractWizardPane extends AbstractHasData { /** * @param {?} appSvc * @param {?} elementRef */ constructor(appSvc, elementRef) { super(elementRef); this.currentStep = -1; this.phloxAppService = appSvc; this.changeEvent = new EventEmitter(); this.stepsComponentHandler = (data) => { if (typeof data.instance.getChangeEvent === 'function') { let /** @type {?} */ changeEmitter = data.instance.getChangeEvent(); if (changeEmitter !== null && typeof changeEmitter !== 'undefined') { changeEmitter.subscribe((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 this.changeEvent.emit(event); }); } } }; } /** * @return {?} */ get app() { if (this.phloxAppService === null || typeof this.phloxAppService === 'undefined') { return null; } return this.phloxAppService.getInstance(); } /** * @return {?} */ ngOnInit() { 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 {?} */ getModel() { return this.model; } /** * @param {?} model * @return {?} */ setModel(model) { this.model = model; } /** * @param {?} index * @return {?} */ stepSelected(index) { if (index === null) { return; } this.currentStep = index; this.showStepContent(index); } /** * @param {?} index * @return {?} */ isStepSelected(index) { if (index === null) { return; } if (this.currentStep !== null && this.currentStep > -1) { if (this.currentStep == index) { return true; } } return false; } /** * @return {?} */ getChangeEvent() { return this.changeEvent; } /** * @param {?} event * @return {?} */ setChangeEvent(event) { this.changeEvent = event; } /** * @return {?} */ isSelfDataDirty() { return false; } /** * @return {?} */ selfSaveData() { } /** * @return {?} */ selfResetData() { } /** * @return {?} */ doPreload() { return new Promise((resolve, reject) => { resolve(null); }); } /** * @return {?} */ doLoaded() { } /** * @return {?} */ getHeaderHeight() { return this.headerHeight; } /** * @return {?} */ getFooterHeight() { return this.footerHeight; } /** * @return {?} */ getStepsComponentHandler() { return this.stepsComponentHandler; } } AbstractWizardPane.propDecorators = { "model": [{ type: Input },], }; tslib_1.__decorate([ Option('change'), tslib_1.__metadata("design:type", EventEmitter) ], AbstractWizardPane.prototype, "changeEvent", void 0); 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RXaXphcmRQYW5lLmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tLnBobG94dWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50L0Fic3RyYWN0V2l6YXJkUGFuZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBaUMsS0FBSyxFQUFhLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFPbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQUV2RCxNQUFNLHlCQUFtQyxTQUFRLGVBQWU7Ozs7O0lBbUI5RCxZQUFZLE1BQXVCLEVBQUUsVUFBc0I7UUFDekQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUM7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXRDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ3pDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDdkQscUJBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ25ELEVBQUUsQ0FBQyxDQUFDLGFBQWEsS0FBSyxJQUFJLElBQUksT0FBTyxhQUFhLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztvQkFDbkUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO3dCQUNyQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFL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Szs7O0lBTUwsTUFBTSxDQUFDLFFBQVEsQ0FBQztzQ0FDTSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBXaXphcmRNb2RlbCB9IGZyb20gJy4vbW9kZWwvV2l6YXJkTW9kZWwnO1xyXG5pbXBvcnQgeyBXaXphcmRTdGVwTW9kZWwgfSBmcm9tICcuL21vZGVsL21vZGVscyc7XHJcblxyXG5pbXBvcnQgeyBQaGxveEFwcFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL1BobG94QXBwU2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUhhc01vZGVsIH0gZnJvbSAnLi9JSGFzTW9kZWwnO1xyXG5pbXBvcnQgeyBJSGFzRGF0YSB9IGZyb20gJy4vSUhhc0RhdGEnO1xyXG5pbXBvcnQgeyBQaGxveEFwcCB9IGZyb20gJy4vUGhsb3hBcHAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWJzdHJhY3RIYXNEYXRhIH0gZnJvbSAnLi9BYnN0cmFjdEhhc0RhdGEnO1xyXG5pbXBvcnQgeyBJQ2hhbmdlYWJsZSB9IGZyb20gJy4vSUNoYW5nZWFibGUnO1xyXG5pbXBvcnQgeyBPcHRpb24gfSBmcm9tICcuLi9kZWNvcmF0b3IvT3B0aW9uLmRlY29yYXRvcic7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RXaXphcmRQYW5lIGV4dGVuZHMgQWJzdHJhY3RIYXNEYXRhIGltcGxlbWVudHMgT25Jbml0LCBJSGFzTW9kZWwsIElDaGFuZ2VhYmxlIHtcclxuXHJcbiAgQElucHV0KClcclxuICBwcm90ZWN0ZWQgbW9kZWw6IFdpemFyZE1vZGVsO1xyXG4gIHByb3RlY3RlZCBjdXJyZW50U3RlcDogbnVtYmVyO1xyXG4gIHByb3RlY3RlZCBoZWFkZXJIZWlnaHQ6IG51bWJlcjtcclxuICBwcm90ZWN0ZWQgZm9vdGVySGVpZ2h0OiBudW1iZXI7XHJcbiAgcHJvdGVjdGVkIHBobG94QXBwU2VydmljZTogUGhsb3hBcHBTZXJ2aWNlO1xyXG4gIEBPcHRpb24oJ2NoYW5nZScpXHJcbiAgcHJvdGVjdGVkIGNoYW5nZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcclxuICBwcm90ZWN0ZWQgc3RlcHNDb21wb25lbnRIYW5kbGVyOiBGdW5jdGlvbjtcclxuXHJcbiAgcHJpdmF0ZSBnZXQgYXBwKCk6IFBobG94QXBwIHtcclxuICAgIGlmICh0aGlzLnBobG94QXBwU2VydmljZSA9PT0gbnVsbCB8fCB0eXBlb2YgdGhpcy5waGxveEFwcFNlcnZpY2UgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMucGhsb3hBcHBTZXJ2aWNlLmdldEluc3RhbmNlKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihhcHBTdmM6IFBobG94QXBwU2VydmljZSwgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoZWxlbWVudFJlZik7XHJcbiAgICB0aGlzLmN1cnJlbnRTdGVwID0gLTE7XHJcbiAgICB0aGlzLnBobG94QXBwU2VydmljZSA9IGFwcFN2YztcclxuICAgIHRoaXMuY2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgdGhpcy5zdGVwc0NvbXBvbmVudEhhbmRsZXIgPSAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIGlmICh0eXBlb2YgZGF0YS5pbnN0YW5jZS5nZXRDaGFuZ2VFdmVudCA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIGxldCBjaGFuZ2VFbWl0dGVyID0gZGF0YS5pbnN0YW5jZS5nZXRDaGFuZ2VFdmVudCgpO1xyXG4gICAgICAgIGlmIChjaGFuZ2VFbWl0dGVyICE9PSBudWxsICYmIHR5cGVvZiBjaGFuZ2VFbWl0dGVyICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgY2hhbmdlRW1pdHRlci5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKGV2ZW50LmRldGFpbCAhPT0gbnVsbCAmJiB0eXBlb2YgZXZlbnQuZGV0YWlsICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICAgIGlmIChldmVudC5kZXRhaWwuZGF0YSAhPT0gbnVsbCAmJiB0eXBlb2YgZXZlbnQuZGV0YWlsLmRhdGEgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGV0YWlsLmRhdGEuYnViYmxlU3RhY2sgIT09IG51bGwgJiYgdHlwZW9mIGV2ZW50LmRldGFpbC5kYXRhLmJ1YmJsZVN0YWNrICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICAgICAgICBldmVudC5kZXRhaWwuZGF0YS5idWJibGVTdGFjay5wdXNoKHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgZXZlbnQuZGV0YWlsLmRhdGEuYnViYmxlU3RhY2sgPSBbdGhpc107XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICBldmVudC53aXphcmRTdGVwSW5kZXggPSA7IC8vISBhZGQgd2l6YXJkIHN0ZXAgaW5kZXhcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VFdmVudC5lbWl0KGV2ZW50KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGVwU2VsZWN0ZWQoMCk7XHJcblxyXG4gICAgaWYgKHRoaXMubW9kZWwgIT09IG51bGwgJiYgdGhpcy5tb2RlbC5oZWFkZXIgIT09IG51bGwpIHtcclxuICAgICAgdGhpcy5oZWFkZXJIZWlnaHQgPSB0aGlzLm1vZGVsLmhlYWRlci5oZWlnaHQ7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tb2RlbCAhPT0gbnVsbCAmJiB0aGlzLm1vZGVsLmZvb3RlciAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmZvb3RlckhlaWdodCA9IHRoaXMubW9kZWwuZm9vdGVyLmhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBzZXQgZGVmYXVsdFxyXG4gICAgaWYgKHRoaXMuaGVhZGVySGVpZ2h0ID09PSBudWxsKSB7XHJcbiAgICAgIGlmICh0aGlzLmFwcCAhPT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuaGVhZGVySGVpZ2h0ID0gdGhpcy5hcHAuZ2V0QXBwSW5mbygpLnNldHRpbmdzLldJWkFSRF9IRUFERVJfSEVJR0hUO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5mb290ZXJIZWlnaHQgPT09IG51bGwpIHtcclxuICAgICAgaWYgKHRoaXMuYXBwICE9PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5mb290ZXJIZWlnaHQgPSB0aGlzLmFwcC5nZXRBcHBJbmZvKCkuc2V0dGluZ3MuV0laQVJEX0ZPT1RFUl9IRUlHSFQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhYnN0cmFjdCBzaG93U3RlcENvbnRlbnQoaW5kZXg6IG51bWJlcik6IHZvaWQ7XHJcblxyXG4gIHB1YmxpYyBnZXRNb2RlbCgpOiBXaXphcmRNb2RlbCB7XHJcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRNb2RlbChtb2RlbDogV2l6YXJkTW9kZWwpOiB2b2lkIHtcclxuICAgIHRoaXMubW9kZWwgPSBtb2RlbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGVwU2VsZWN0ZWQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKGluZGV4ID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY3VycmVudFN0ZXAgPSBpbmRleDtcclxuXHJcbiAgICB0aGlzLnNob3dTdGVwQ29udGVudChpbmRleCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNTdGVwU2VsZWN0ZWQoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGluZGV4ID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmN1cnJlbnRTdGVwICE9PSBudWxsICYmIHRoaXMuY3VycmVudFN0ZXAgPiAtMSkge1xyXG4gICAgICBpZiAodGhpcy5jdXJyZW50U3RlcCA9PSBpbmRleCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q2hhbmdlRXZlbnQoKTogRXZlbnRFbWl0dGVyPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hhbmdlRXZlbnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0Q2hhbmdlRXZlbnQoZXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+KTogdm9pZCB7XHJcbiAgICB0aGlzLmNoYW5nZUV2ZW50ID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNTZWxmRGF0YURpcnR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGZTYXZlRGF0YSgpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZlJlc2V0RGF0YSgpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZG9QcmVsb2FkKCk6IFByb21pc2U8YW55PiB7ICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geyAgICAgICByZXNvbHZlKG51bGwpOyAgICAgfSk7ICAgfSAgcHVibGljIGRvTG9hZGVkKCk6IHZvaWQge1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRIZWFkZXJIZWlnaHQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmhlYWRlckhlaWdodDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRGb290ZXJIZWlnaHQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmZvb3RlckhlaWdodDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdGVwc0NvbXBvbmVudEhhbmRsZXIoKTogRnVuY3Rpb24ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RlcHNDb21wb25lbnRIYW5kbGVyO1xyXG4gIH1cclxuXHJcbn1cclxuIl19