truly-ui
Version:
Web Components for Desktop Applications.
58 lines • 6.2 kB
JavaScript
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs';
import * as i0 from "@angular/core";
export class StepService {
constructor() {
this.onChange = new Subject();
this.onFinish = new Subject();
this.onChangeStatusForm = new Subject();
this.currentStep = 0;
}
setSteps(steps) {
this.steps = steps;
}
setCurrentStep(step) {
this.currentStep = step;
}
isFormValid() {
return this.steps[this.currentStep].form.valid;
}
isValidateForm() {
return this.steps[this.currentStep].validateForm;
}
next() {
if (!this.isLastStep()) {
this.currentStep = this.currentStep + 1;
this.onChange.next(this.currentStep);
}
}
finish() {
const form = {};
this.steps.forEach((item, index) => {
const id = `step${index}`;
Object.assign(form, { [id]: item.form.value });
});
this.onFinish.next(form);
}
previous() {
if (this.currentStep > 0) {
this.currentStep = this.currentStep - 1;
this.onChange.next(this.currentStep);
}
}
formStatusChange(status) {
this.onChangeStatusForm.next(status);
}
isFirstStep() {
return this.currentStep === 0;
}
isLastStep() {
return this.steps.length - 1 === this.currentStep;
}
}
/** @nocollapse */ StepService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: StepService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
/** @nocollapse */ StepService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: StepService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: StepService, decorators: [{
type: Injectable
}], ctorParameters: function () { return []; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1bHktdWkvc3JjL2NvbXBvbmVudHMvc3RlcC9zZXJ2aWNlcy9zdGVwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDOztBQUc3QixNQUFNLE9BQU8sV0FBVztJQVl0QjtRQVZPLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRXpCLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRXpCLHVCQUFrQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFbEMsZ0JBQVcsR0FBRyxDQUFDLENBQUM7SUFLeEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFpQjtRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVk7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDakQsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFFLElBQUksRUFBRSxLQUFLLEVBQUcsRUFBRTtZQUNuQyxNQUFNLEVBQUUsR0FBRyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBRSxJQUFJLENBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUUsTUFBZTtRQUMvQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFFLE1BQU0sQ0FBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDcEQsQ0FBQzs7NEhBaEVVLFdBQVc7Z0lBQVgsV0FBVzs0RkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTdGVwU2VydmljZSB7XG5cbiAgcHVibGljIG9uQ2hhbmdlID0gbmV3IFN1YmplY3QoKTtcblxuICBwdWJsaWMgb25GaW5pc2ggPSBuZXcgU3ViamVjdCgpO1xuXG4gIHB1YmxpYyBvbkNoYW5nZVN0YXR1c0Zvcm0gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgY3VycmVudFN0ZXAgPSAwO1xuXG4gIHByaXZhdGUgc3RlcHM7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBzZXRTdGVwcyhzdGVwczogQXJyYXk8YW55Pikge1xuICAgIHRoaXMuc3RlcHMgPSBzdGVwcztcbiAgfVxuXG4gIHNldEN1cnJlbnRTdGVwKHN0ZXA6IG51bWJlcikge1xuICAgIHRoaXMuY3VycmVudFN0ZXAgPSBzdGVwO1xuICB9XG5cbiAgaXNGb3JtVmFsaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RlcHNbdGhpcy5jdXJyZW50U3RlcF0uZm9ybS52YWxpZDtcbiAgfVxuXG4gIGlzVmFsaWRhdGVGb3JtKCkge1xuICAgIHJldHVybiB0aGlzLnN0ZXBzW3RoaXMuY3VycmVudFN0ZXBdLnZhbGlkYXRlRm9ybTtcbiAgfVxuXG4gIG5leHQoKSB7XG4gICAgaWYgKCF0aGlzLmlzTGFzdFN0ZXAoKSkge1xuICAgICAgdGhpcy5jdXJyZW50U3RlcCA9IHRoaXMuY3VycmVudFN0ZXAgKyAxO1xuICAgICAgdGhpcy5vbkNoYW5nZS5uZXh0KHRoaXMuY3VycmVudFN0ZXApO1xuICAgIH1cbiAgfVxuXG4gIGZpbmlzaCgpIHtcbiAgICBjb25zdCBmb3JtID0ge307XG4gICAgdGhpcy5zdGVwcy5mb3JFYWNoKCggaXRlbSwgaW5kZXggKSA9PiB7XG4gICAgICBjb25zdCBpZCA9IGBzdGVwJHtpbmRleH1gO1xuICAgICAgT2JqZWN0LmFzc2lnbiggZm9ybSwgeyBbaWRdOiBpdGVtLmZvcm0udmFsdWUgfSk7XG4gICAgfSk7XG4gICAgdGhpcy5vbkZpbmlzaC5uZXh0KCBmb3JtICk7XG4gIH1cblxuICBwcmV2aW91cygpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50U3RlcCA+IDApIHtcbiAgICAgIHRoaXMuY3VycmVudFN0ZXAgPSB0aGlzLmN1cnJlbnRTdGVwIC0gMTtcbiAgICAgIHRoaXMub25DaGFuZ2UubmV4dCh0aGlzLmN1cnJlbnRTdGVwKTtcbiAgICB9XG4gIH1cblxuICBmb3JtU3RhdHVzQ2hhbmdlKCBzdGF0dXM6IGJvb2xlYW4gKSB7XG4gICAgdGhpcy5vbkNoYW5nZVN0YXR1c0Zvcm0ubmV4dCggc3RhdHVzICk7XG4gIH1cblxuICBpc0ZpcnN0U3RlcCgpIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U3RlcCA9PT0gMDtcbiAgfVxuXG4gIGlzTGFzdFN0ZXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RlcHMubGVuZ3RoIC0gMSA9PT0gdGhpcy5jdXJyZW50U3RlcDtcbiAgfVxuXG59XG4iXX0=