com.phloxui
Version:
PhloxUI Ng2+ Framework
205 lines (204 loc) • 16.8 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
*/
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