windows-plus-utilities 0.0.86 → 0.0.88

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -29,10 +29,10 @@ export class StepComponent {
29
29
  // this.stepService.setCurrentStep(step);
30
30
  }
31
31
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: StepComponent, deps: [{ token: i1.WizardStepService }], target: i0.ɵɵFactoryTarget.Component }); }
32
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: StepComponent, isStandalone: true, selector: "step", ngImport: i0, template: "<div class=\"form-steps-container\">\r\n\t<ng-container *ngFor=\"let step of steps | async; let i = index;\">\r\n\t\t<div class=\"d-flex flex-column align-items-center\">\r\n\t\t\t<div \r\n\t\t\t\t(click)=\"onStepClick(step)\"\r\n\t\t\t\t[ngClass]=\"{ 'step-complete': step.isComplete, 'step-incomplete': !step.isComplete, 'step-current': (currentIndex | async)?.stepIndex === step.stepIndex }\"\r\n\t\t\t\tclass=\"step-bubble cursor-pointer\"\r\n\t\t\t>{{ step.stepIndex }}</div>\r\n\t\t\t<div>\r\n\t\t\t\t<span class=\"text-grey\">{{step.title}}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div *ngIf=\"i < (steps | async)?.length - 1\" class=\"step-divider\"></div>\r\n\t</ng-container>\r\n</div>", styles: [".form-steps-container{display:flex;justify-content:space-between;align-items:center;padding:0 32px;margin-bottom:32px}.step-bubble{padding:20px;border:3px solid var(--wp-primaryBlue);width:12px;height:12px;display:flex;justify-content:center;align-items:center;border-radius:50%;color:var(--wp-primaryBlue);font-size:1em;cursor:pointer;-webkit-user-select:none;user-select:none}.step-divider{height:2px;background:var(--wp-primaryBlue);flex:1;margin:0 10px}.step-current,.step-complete{background:var(--wp-primaryBlue);color:#fff}.step-incomplete{cursor:not-allowed;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
32
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: StepComponent, isStandalone: true, selector: "step", ngImport: i0, template: "<div class=\"form-steps-container\">\r\n\t<ng-container *ngFor=\"let step of steps | async; let i = index;\">\r\n\t\t<div class=\"d-flex flex-column align-items-center\">\r\n\t\t\t<div \r\n\t\t\t\t(click)=\"onStepClick(step)\"\r\n\t\t\t\t[ngClass]=\"{ 'step-complete': step.isComplete, 'step-incomplete': !step.isComplete, 'step-current': (currentIndex | async) === i }\"\r\n\t\t\t\tclass=\"step-bubble cursor-pointer\"\r\n\t\t\t>{{ i + 1}}</div>\r\n\t\t\t<div>\r\n\t\t\t\t<span class=\"text-grey\">{{step.title}}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div *ngIf=\"i < (steps | async)?.length - 1\" class=\"step-divider\"></div>\r\n\t</ng-container>\r\n</div>", styles: [".form-steps-container{display:flex;justify-content:space-between;align-items:center;padding:0 32px;margin-bottom:32px}.step-bubble{padding:20px;border:3px solid var(--wp-primaryBlue);width:12px;height:12px;display:flex;justify-content:center;align-items:center;border-radius:50%;color:var(--wp-primaryBlue);font-size:1em;cursor:pointer;-webkit-user-select:none;user-select:none}.step-divider{height:2px;background:var(--wp-primaryBlue);flex:1;margin:0 10px}.step-current,.step-complete{background:var(--wp-primaryBlue);color:#fff}.step-incomplete{cursor:not-allowed;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
33
33
  }
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: StepComponent, decorators: [{
35
35
  type: Component,
36
- args: [{ selector: 'step', standalone: true, imports: [CommonModule], template: "<div class=\"form-steps-container\">\r\n\t<ng-container *ngFor=\"let step of steps | async; let i = index;\">\r\n\t\t<div class=\"d-flex flex-column align-items-center\">\r\n\t\t\t<div \r\n\t\t\t\t(click)=\"onStepClick(step)\"\r\n\t\t\t\t[ngClass]=\"{ 'step-complete': step.isComplete, 'step-incomplete': !step.isComplete, 'step-current': (currentIndex | async)?.stepIndex === step.stepIndex }\"\r\n\t\t\t\tclass=\"step-bubble cursor-pointer\"\r\n\t\t\t>{{ step.stepIndex }}</div>\r\n\t\t\t<div>\r\n\t\t\t\t<span class=\"text-grey\">{{step.title}}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div *ngIf=\"i < (steps | async)?.length - 1\" class=\"step-divider\"></div>\r\n\t</ng-container>\r\n</div>", styles: [".form-steps-container{display:flex;justify-content:space-between;align-items:center;padding:0 32px;margin-bottom:32px}.step-bubble{padding:20px;border:3px solid var(--wp-primaryBlue);width:12px;height:12px;display:flex;justify-content:center;align-items:center;border-radius:50%;color:var(--wp-primaryBlue);font-size:1em;cursor:pointer;-webkit-user-select:none;user-select:none}.step-divider{height:2px;background:var(--wp-primaryBlue);flex:1;margin:0 10px}.step-current,.step-complete{background:var(--wp-primaryBlue);color:#fff}.step-incomplete{cursor:not-allowed;pointer-events:none}\n"] }]
36
+ args: [{ selector: 'step', standalone: true, imports: [CommonModule], template: "<div class=\"form-steps-container\">\r\n\t<ng-container *ngFor=\"let step of steps | async; let i = index;\">\r\n\t\t<div class=\"d-flex flex-column align-items-center\">\r\n\t\t\t<div \r\n\t\t\t\t(click)=\"onStepClick(step)\"\r\n\t\t\t\t[ngClass]=\"{ 'step-complete': step.isComplete, 'step-incomplete': !step.isComplete, 'step-current': (currentIndex | async) === i }\"\r\n\t\t\t\tclass=\"step-bubble cursor-pointer\"\r\n\t\t\t>{{ i + 1}}</div>\r\n\t\t\t<div>\r\n\t\t\t\t<span class=\"text-grey\">{{step.title}}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div *ngIf=\"i < (steps | async)?.length - 1\" class=\"step-divider\"></div>\r\n\t</ng-container>\r\n</div>", styles: [".form-steps-container{display:flex;justify-content:space-between;align-items:center;padding:0 32px;margin-bottom:32px}.step-bubble{padding:20px;border:3px solid var(--wp-primaryBlue);width:12px;height:12px;display:flex;justify-content:center;align-items:center;border-radius:50%;color:var(--wp-primaryBlue);font-size:1em;cursor:pointer;-webkit-user-select:none;user-select:none}.step-divider{height:2px;background:var(--wp-primaryBlue);flex:1;margin:0 10px}.step-current,.step-complete{background:var(--wp-primaryBlue);color:#fff}.step-incomplete{cursor:not-allowed;pointer-events:none}\n"] }]
37
37
  }], ctorParameters: () => [{ type: i1.WizardStepService }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aW5kb3dzLXBsdXMtdXRpbGl0aWVzL21vZGFsLXdpemFyZC9jb21wb25lbnRzL3N0ZXAvc3RlcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aW5kb3dzLXBsdXMtdXRpbGl0aWVzL21vZGFsLXdpemFyZC9jb21wb25lbnRzL3N0ZXAvc3RlcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVkvQyxNQUFNLE9BQU8sYUFBYTtJQVN6Qjs7OztPQUlHO0lBQ0YsWUFBb0IsV0FBbUM7UUFBbkMsZ0JBQVcsR0FBWCxXQUFXLENBQXdCO0lBQUksQ0FBQztJQUM3RDs7O09BR0c7SUFDRixRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFELENBQUM7SUFDRjs7OztPQUlHO0lBQ0YsV0FBVyxDQUFDLElBQXlCO1FBQ25DLHlDQUF5QztJQUMzQyxDQUFDOzhHQTlCVSxhQUFhO2tHQUFiLGFBQWEsZ0VDYjFCLDZyQkFjTSxxb0JETE0sWUFBWTs7MkZBSVgsYUFBYTtrQkFQekIsU0FBUzsrQkFDRSxNQUFNLGNBQ0osSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBTdGVwRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL3V0aWwvaW50ZXJmYWNlL3N0ZXAtZGVmaW5pdGlvbi5pbnRlcmZhY2UnXHJcbmltcG9ydCB7IFdpemFyZFN0ZXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbC9zZXJ2aWNlL3dpemFyZC1zdGVwLnNlcnZpY2UnXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3N0ZXAnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3N0ZXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3N0ZXAuY29tcG9uZW50LnNhc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RlcENvbXBvbmVudCB7XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIGFuIG9ic2VydmFibGUgdG8gdGhlIG1vZGFsIHN0ZXBzXHJcblx0ICovXHJcbiAgc3RlcHM6IE9ic2VydmFibGU8U3RlcERlZmluaXRpb248YW55PltdPlxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiBhbiBvYnNlcnZhYmxlIHRvIHRoZSBjdXJyZW50IHN0ZXBcclxuXHQgKi9cclxuICBjdXJyZW50SW5kZXg6IE9ic2VydmFibGU8bnVtYmVyPjtcclxuXHQvKipcclxuXHQgKiBAYXV0aG9yIEFsZXggSG9kc29uXHJcblx0ICogQGRlc2NyaXB0aW9uIGNsYXNzIGNvbnN0cnVjdG9yIHNwZWNpZnlpbmcgdGhlIHJlcXVpcmVkIHNlcnZpY2VzIGFuZCBwcm9wZXJ0aWVzXHJcblx0ICogQHBhcmFtIHN0ZXBTZXJ2aWNlIHRoZSBzZXJ2aWNlIGNsYXNzIHdoaWNoIGNvbnRhaW5zIGFjY2VzcyB0byB0aGUgbW9kYWwgc3RlcHMgZnVuY3Rpb25hbGl0eVxyXG5cdCAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RlcFNlcnZpY2U6IFdpemFyZFN0ZXBTZXJ2aWNlPGFueT4pIHsgfVxyXG5cdC8qKlxyXG5cdCAqIEBhdXRob3IgQWxleCBIb2Rzb25cclxuXHQgKiBAZGVzY3JpcHRpb24gdGhlIG1ldGhvZCB0byBiZSBydW4gd2hlbiB0aGUgY29tcG9uZW50IGlzIHJlbmRlcmVkXHJcblx0ICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0ZXBzID0gdGhpcy5zdGVwU2VydmljZS5nZXRTdGVwcyQoKTtcclxuICAgIHRoaXMuY3VycmVudEluZGV4ID0gdGhpcy5zdGVwU2VydmljZS5nZXRDdXJyZW50SW5kZXgkKCk7XHJcbiAgfVxyXG5cdC8qKlxyXG5cdCAqIEBhdXRob3IgQWxleCBIb2Rzb25cclxuXHQgKiBAZGVzY3JpcHRpb24gaGFuZGxlcyB0aGUgdXNlciBjbGlja2luZyBhIHN0ZXBcclxuXHQgKiBAcGFyYW0gc3RlcCB0aGUgc3RlcCBjbGlja2VkXHJcblx0ICovXHJcbiAgb25TdGVwQ2xpY2soc3RlcDogU3RlcERlZmluaXRpb248YW55Pikge1xyXG4gICAgLy8gdGhpcy5zdGVwU2VydmljZS5zZXRDdXJyZW50U3RlcChzdGVwKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZvcm0tc3RlcHMtY29udGFpbmVyXCI+XHJcblx0PG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc3RlcCBvZiBzdGVwcyB8IGFzeW5jOyBsZXQgaSA9IGluZGV4O1wiPlxyXG5cdFx0PGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuXHRcdFx0PGRpdiBcclxuXHRcdFx0XHQoY2xpY2spPVwib25TdGVwQ2xpY2soc3RlcClcIlxyXG5cdFx0XHRcdFtuZ0NsYXNzXT1cInsgJ3N0ZXAtY29tcGxldGUnOiBzdGVwLmlzQ29tcGxldGUsICdzdGVwLWluY29tcGxldGUnOiAhc3RlcC5pc0NvbXBsZXRlLCAnc3RlcC1jdXJyZW50JzogKGN1cnJlbnRJbmRleCB8IGFzeW5jKT8uc3RlcEluZGV4ID09PSBzdGVwLnN0ZXBJbmRleCB9XCJcclxuXHRcdFx0XHRjbGFzcz1cInN0ZXAtYnViYmxlIGN1cnNvci1wb2ludGVyXCJcclxuXHRcdFx0Pnt7IHN0ZXAuc3RlcEluZGV4IH19PC9kaXY+XHJcblx0XHRcdDxkaXY+XHJcblx0XHRcdFx0PHNwYW4gY2xhc3M9XCJ0ZXh0LWdyZXlcIj57e3N0ZXAudGl0bGV9fTwvc3Bhbj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDxkaXYgKm5nSWY9XCJpIDwgKHN0ZXBzIHwgYXN5bmMpPy5sZW5ndGggLSAxXCIgY2xhc3M9XCJzdGVwLWRpdmlkZXJcIj48L2Rpdj5cclxuXHQ8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+Il19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aW5kb3dzLXBsdXMtdXRpbGl0aWVzL21vZGFsLXdpemFyZC9jb21wb25lbnRzL3N0ZXAvc3RlcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aW5kb3dzLXBsdXMtdXRpbGl0aWVzL21vZGFsLXdpemFyZC9jb21wb25lbnRzL3N0ZXAvc3RlcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVkvQyxNQUFNLE9BQU8sYUFBYTtJQVN6Qjs7OztPQUlHO0lBQ0YsWUFBb0IsV0FBbUM7UUFBbkMsZ0JBQVcsR0FBWCxXQUFXLENBQXdCO0lBQUksQ0FBQztJQUM3RDs7O09BR0c7SUFDRixRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFELENBQUM7SUFDRjs7OztPQUlHO0lBQ0YsV0FBVyxDQUFDLElBQXlCO1FBQ25DLHlDQUF5QztJQUMzQyxDQUFDOzhHQTlCVSxhQUFhO2tHQUFiLGFBQWEsZ0VDYjFCLDJwQkFjTSxxb0JETE0sWUFBWTs7MkZBSVgsYUFBYTtrQkFQekIsU0FBUzsrQkFDRSxNQUFNLGNBQ0osSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBTdGVwRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL3V0aWwvaW50ZXJmYWNlL3N0ZXAtZGVmaW5pdGlvbi5pbnRlcmZhY2UnXHJcbmltcG9ydCB7IFdpemFyZFN0ZXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbC9zZXJ2aWNlL3dpemFyZC1zdGVwLnNlcnZpY2UnXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3N0ZXAnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3N0ZXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3N0ZXAuY29tcG9uZW50LnNhc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RlcENvbXBvbmVudCB7XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIGFuIG9ic2VydmFibGUgdG8gdGhlIG1vZGFsIHN0ZXBzXHJcblx0ICovXHJcbiAgc3RlcHM6IE9ic2VydmFibGU8U3RlcERlZmluaXRpb248YW55PltdPlxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiBhbiBvYnNlcnZhYmxlIHRvIHRoZSBjdXJyZW50IHN0ZXBcclxuXHQgKi9cclxuICBjdXJyZW50SW5kZXg6IE9ic2VydmFibGU8bnVtYmVyPjtcclxuXHQvKipcclxuXHQgKiBAYXV0aG9yIEFsZXggSG9kc29uXHJcblx0ICogQGRlc2NyaXB0aW9uIGNsYXNzIGNvbnN0cnVjdG9yIHNwZWNpZnlpbmcgdGhlIHJlcXVpcmVkIHNlcnZpY2VzIGFuZCBwcm9wZXJ0aWVzXHJcblx0ICogQHBhcmFtIHN0ZXBTZXJ2aWNlIHRoZSBzZXJ2aWNlIGNsYXNzIHdoaWNoIGNvbnRhaW5zIGFjY2VzcyB0byB0aGUgbW9kYWwgc3RlcHMgZnVuY3Rpb25hbGl0eVxyXG5cdCAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RlcFNlcnZpY2U6IFdpemFyZFN0ZXBTZXJ2aWNlPGFueT4pIHsgfVxyXG5cdC8qKlxyXG5cdCAqIEBhdXRob3IgQWxleCBIb2Rzb25cclxuXHQgKiBAZGVzY3JpcHRpb24gdGhlIG1ldGhvZCB0byBiZSBydW4gd2hlbiB0aGUgY29tcG9uZW50IGlzIHJlbmRlcmVkXHJcblx0ICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0ZXBzID0gdGhpcy5zdGVwU2VydmljZS5nZXRTdGVwcyQoKTtcclxuICAgIHRoaXMuY3VycmVudEluZGV4ID0gdGhpcy5zdGVwU2VydmljZS5nZXRDdXJyZW50SW5kZXgkKCk7XHJcbiAgfVxyXG5cdC8qKlxyXG5cdCAqIEBhdXRob3IgQWxleCBIb2Rzb25cclxuXHQgKiBAZGVzY3JpcHRpb24gaGFuZGxlcyB0aGUgdXNlciBjbGlja2luZyBhIHN0ZXBcclxuXHQgKiBAcGFyYW0gc3RlcCB0aGUgc3RlcCBjbGlja2VkXHJcblx0ICovXHJcbiAgb25TdGVwQ2xpY2soc3RlcDogU3RlcERlZmluaXRpb248YW55Pikge1xyXG4gICAgLy8gdGhpcy5zdGVwU2VydmljZS5zZXRDdXJyZW50U3RlcChzdGVwKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZvcm0tc3RlcHMtY29udGFpbmVyXCI+XHJcblx0PG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc3RlcCBvZiBzdGVwcyB8IGFzeW5jOyBsZXQgaSA9IGluZGV4O1wiPlxyXG5cdFx0PGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuXHRcdFx0PGRpdiBcclxuXHRcdFx0XHQoY2xpY2spPVwib25TdGVwQ2xpY2soc3RlcClcIlxyXG5cdFx0XHRcdFtuZ0NsYXNzXT1cInsgJ3N0ZXAtY29tcGxldGUnOiBzdGVwLmlzQ29tcGxldGUsICdzdGVwLWluY29tcGxldGUnOiAhc3RlcC5pc0NvbXBsZXRlLCAnc3RlcC1jdXJyZW50JzogKGN1cnJlbnRJbmRleCB8IGFzeW5jKSA9PT0gaSB9XCJcclxuXHRcdFx0XHRjbGFzcz1cInN0ZXAtYnViYmxlIGN1cnNvci1wb2ludGVyXCJcclxuXHRcdFx0Pnt7IGkgKyAxfX08L2Rpdj5cclxuXHRcdFx0PGRpdj5cclxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cInRleHQtZ3JleVwiPnt7c3RlcC50aXRsZX19PC9zcGFuPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG5cdFx0PGRpdiAqbmdJZj1cImkgPCAoc3RlcHMgfCBhc3luYyk/Lmxlbmd0aCAtIDFcIiBjbGFzcz1cInN0ZXAtZGl2aWRlclwiPjwvZGl2PlxyXG5cdDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj4iXX0=
@@ -6,7 +6,8 @@ export * from './util/helper/wizard-builder.service';
6
6
  export * from './util/interface/modal-step.interface';
7
7
  export * from './util/interface/step-definition.interface';
8
8
  export * from './util/interface/stepped-modal.interface';
9
+ export * from './util/interface/wizard-modal.interface';
9
10
  export * from './util/interface/wizard-state.interface';
10
11
  export * from './util/service/wizard-step.service';
11
12
  export * from './util/service/step.service';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3dpbmRvd3MtcGx1cy11dGlsaXRpZXMvbW9kYWwtd2l6YXJkL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGtDQUFrQyxDQUFDO0FBRWpELGNBQWMsc0NBQXNDLENBQUE7QUFFcEQsY0FBYyx1Q0FBdUMsQ0FBQTtBQUNyRCxjQUFjLDRDQUE0QyxDQUFBO0FBQzFELGNBQWMsMENBQTBDLENBQUE7QUFDeEQsY0FBYyx5Q0FBeUMsQ0FBQTtBQUV2RCxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELGNBQWMsNkJBQTZCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygd2luZG93cy1wbHVzLXV0aWxpdGllc1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3N0ZXAvc3RlcC5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi91dGlsL2hlbHBlci93aXphcmQtYnVpbGRlci5zZXJ2aWNlJ1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi91dGlsL2ludGVyZmFjZS9tb2RhbC1zdGVwLmludGVyZmFjZSdcclxuZXhwb3J0ICogZnJvbSAnLi91dGlsL2ludGVyZmFjZS9zdGVwLWRlZmluaXRpb24uaW50ZXJmYWNlJ1xyXG5leHBvcnQgKiBmcm9tICcuL3V0aWwvaW50ZXJmYWNlL3N0ZXBwZWQtbW9kYWwuaW50ZXJmYWNlJ1xyXG5leHBvcnQgKiBmcm9tICcuL3V0aWwvaW50ZXJmYWNlL3dpemFyZC1zdGF0ZS5pbnRlcmZhY2UnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL3V0aWwvc2VydmljZS93aXphcmQtc3RlcC5zZXJ2aWNlJ1xyXG5leHBvcnQgKiBmcm9tICcuL3V0aWwvc2VydmljZS9zdGVwLnNlcnZpY2UnIl19
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3dpbmRvd3MtcGx1cy11dGlsaXRpZXMvbW9kYWwtd2l6YXJkL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGtDQUFrQyxDQUFDO0FBRWpELGNBQWMsc0NBQXNDLENBQUE7QUFFcEQsY0FBYyx1Q0FBdUMsQ0FBQTtBQUNyRCxjQUFjLDRDQUE0QyxDQUFBO0FBQzFELGNBQWMsMENBQTBDLENBQUE7QUFDeEQsY0FBYyx5Q0FBeUMsQ0FBQTtBQUN2RCxjQUFjLHlDQUF5QyxDQUFBO0FBRXZELGNBQWMsb0NBQW9DLENBQUE7QUFDbEQsY0FBYyw2QkFBNkIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB3aW5kb3dzLXBsdXMtdXRpbGl0aWVzXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvc3RlcC9zdGVwLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL3V0aWwvaGVscGVyL3dpemFyZC1idWlsZGVyLnNlcnZpY2UnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL3V0aWwvaW50ZXJmYWNlL21vZGFsLXN0ZXAuaW50ZXJmYWNlJ1xyXG5leHBvcnQgKiBmcm9tICcuL3V0aWwvaW50ZXJmYWNlL3N0ZXAtZGVmaW5pdGlvbi5pbnRlcmZhY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vdXRpbC9pbnRlcmZhY2Uvc3RlcHBlZC1tb2RhbC5pbnRlcmZhY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vdXRpbC9pbnRlcmZhY2Uvd2l6YXJkLW1vZGFsLmludGVyZmFjZSdcclxuZXhwb3J0ICogZnJvbSAnLi91dGlsL2ludGVyZmFjZS93aXphcmQtc3RhdGUuaW50ZXJmYWNlJ1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi91dGlsL3NlcnZpY2Uvd2l6YXJkLXN0ZXAuc2VydmljZSdcclxuZXhwb3J0ICogZnJvbSAnLi91dGlsL3NlcnZpY2Uvc3RlcC5zZXJ2aWNlJyJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLW1vZGFsLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dpbmRvd3MtcGx1cy11dGlsaXRpZXMvbW9kYWwtd2l6YXJkL3V0aWwvaW50ZXJmYWNlL3dpemFyZC1tb2RhbC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IFN0ZXBNb2RlbCB9IGZyb20gJy4vbW9kYWwtc3RlcC5pbnRlcmZhY2UnXHJcblxyXG4vKipcclxuICogQGF1dGhvciBBbGV4IEhvZHNvblxyXG4gKiBAZGVzY3JpcHRpb24gYW4gaW50ZXJmYWNlIGRlZmluaW5nIHRoZSBwcm9wZXJ0aWVzIGZvciBhIHdpemFyZCBtb2RhbFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBXaXphcmRNb2RhbDxUPiB7XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIGEgc3Vic2NyaXB0aW9uIHRvIHRoZSBzdGVwIGZvcndhcmQgYXZhaWxhYmlsaXR5IG9ic2VydmFibGVcclxuXHQgKi9cclxuXHRzdGVwRm9yd2FyZEF2YWlsYWJpbGl0eU9ic2VydmFibGU6IFN1YnNjcmlwdGlvblxyXG5cdC8qKlxyXG5cdCAqIEBhdXRob3IgQWxleCBIb2Rzb25cclxuXHQgKiBAZGVzY3JpcHRpb24gaGFuZGxlcyB0aGUgZnVuY3Rpb25hbGl0eSB3aGVuIHRoZSB1c2VyIG5hdmlnYXRpbmcgdG8gdGhlIG5leHQgc3RlcFxyXG5cdCAqL1xyXG5cdG9uTmV4dFN0ZXAoKTogdm9pZFxyXG5cdC8qKlxyXG5cdCAqIEBhdXRob3IgQWxleCBIb2Rzb25cclxuXHQgKiBAZGVzY3JpcHRpb24gaGFuZGxlcyB0aGUgY2xvc2luZyBvZiB0aGUgbW9kYWxcclxuXHQgKiBAcGFyYW0gcmVhc29uIHRoZSByZWFzb24gdGhlIG1vZGFsIGlzIGJlaW5nIGNsb3NlZFxyXG5cdCAqL1xyXG5cdGhhbmRsZU1vZGFsQ2xvc2UocmVhc29uOiBhbnkpOiB2b2lkXHJcblx0LyoqXHJcblx0ICogQGF1dGhvciBBbGV4IEhvZHNvblxyXG5cdCAqIEBkZXNjcmlwdGlvbiBoYW5kbGVzIHRoZSBtb2RhbCBiZWluZyBtYW51YWxseSBjbG9zZWRcclxuXHQgKiBAcGFyYW0gcmVhc29uIHRoZSByZWFzb24gdGhlIG1vZGFsIGlzIGJlaW5nIGNsb3NlZFxyXG5cdCAqL1xyXG5cdGhhbmRsZU1hbnVhbENsb3NlKHJlYXNvbjogYW55KTogdm9pZFxyXG5cdC8qKlxyXG5cdCAqIEBhdXRob3IgQWxleCBIb2Rzb25cclxuXHQgKiBAZGVzY3JpcHRpb24gaGFuZGxlcyB0aGUgY29tcGxldGlvbiBvZiBhbGwgc3RlcHMgaW4gdGhlIG1vZGFsXHJcblx0ICovXHJcblx0b25TdWJtaXQoKTogdm9pZFxyXG59Il19
@@ -174,10 +174,20 @@ export class WizardStepService {
174
174
  return;
175
175
  this.router.navigate([`step-${step.slug}`], { relativeTo: this.activatedRoute });
176
176
  }
177
+ /**
178
+ * Navigates the router away from any "step" route.
179
+ *
180
+ * This methods updates the URL relative to the injected route, removing every after `/step-
181
+ */
182
+ clearStepRoute() {
183
+ const url = this.router.url;
184
+ const [initial] = url.split('/step-');
185
+ this.router.navigate([initial]);
186
+ }
177
187
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: WizardStepService, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable }); }
178
188
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: WizardStepService }); }
179
189
  }
180
190
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: WizardStepService, decorators: [{
181
191
  type: Injectable
182
192
  }], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }] });
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLXN0ZXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dpbmRvd3MtcGx1cy11dGlsaXRpZXMvbW9kYWwtd2l6YXJkL3V0aWwvc2VydmljZS93aXphcmQtc3RlcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLGVBQWUsRUFBYyxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUE7OztBQUd2RDs7Ozs7Ozs7Ozs7OztHQWFHO0FBRUgsTUFBTSxPQUFPLGlCQUFpQjtJQWlCN0I7Ozs7O09BS0c7SUFDSCxZQUNTLE1BQWMsRUFDZCxjQUE4QjtRQUQ5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBdkJ2Qzs7Ozs7V0FLRztRQUNLLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBd0IsSUFBSSxDQUFDLENBQUE7UUFFakU7Ozs7V0FJRztRQUNLLDZCQUF3QixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFBO0lBV2xFLENBQUM7SUFFTDs7Ozs7OztPQU9HO0lBQ0gsVUFBVSxDQUFDLEtBQTBCO1FBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ2hCLEtBQUssRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLEVBQUUsaUJBQWlCO1lBQ3BDLFlBQVksRUFBRSxDQUFDO1NBQ2YsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ2hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYztRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQTtJQUN4RSxDQUFD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QUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBQ2xDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTTtRQUVqQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FDbkIsQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUNyQixFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQ25DLENBQUE7SUFDRixDQUFDOzhHQXpMVyxpQkFBaUI7a0hBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG1hcCB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IFN0ZXBEZWZpbml0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlL3N0ZXAtZGVmaW5pdGlvbi5pbnRlcmZhY2UnXHJcbmltcG9ydCB7IFdpemFyZFN0YXRlIH0gZnJvbSAnLi4vaW50ZXJmYWNlL3dpemFyZC1zdGF0ZS5pbnRlcmZhY2UnXHJcbi8qKlxyXG4gKiBBIGZpbml0ZSBzdGF0ZSBtYWNoaW5lIHNlcnZpY2UgdXNlZCB0byBtYW5hZ2Ugd2l6YXJkLXN0eWxlIHN0ZXAgbmF2aWdhdGlvbi5cclxuICpcclxuICogVGhpcyBzZXJ2aWNlIG1haW50YWlucyBhbiBpbW11dGFibGUgbGlzdCBvZiB7QGxpbmsgU3RlcERlZmluaXRpb259IG9iamVjdHMgYW5kXHJcbiAqIHRyYWNrcyB0aGUgY3VycmVudCBhY3RpdmUgc3RlcCBpbmRleCBpbnRlcm5hbGx5LiBJdCBleHBvc2VzIHJlYWN0aXZlIHN0cmVhbXNcclxuICogZm9yIHN0ZXAgZGF0YSBhbmQgbmF2aWdhdGlvbiBzdGF0ZSwgYW5kIGNvb3JkaW5hdGVzIHJvdXRlciBuYXZpZ2F0aW9uIHdoZW5cclxuICogdHJhbnNpdGlvbnMgb2NjdXIuXHJcbiAqXHJcbiAqIFRoZSBzZXJ2aWNlIGlzIGludGVudGlvbmFsbHkgY29tcG9uZW50LXNjb3BlZCBhbmQgbXVzdCBiZSBwcm92aWRlZCBhdCB0aGVcclxuICogY29tcG9uZW50IGxldmVsLiBFYWNoIHdpemFyZCBpbnN0YW5jZSBzaG91bGQgY3JlYXRlIGFuZCBpbml0aWFsaXplIGl0cyBvd25cclxuICogc2VydmljZSBpbnN0YW5jZS5cclxuICpcclxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgdXNlZCBmb3Igc3RlcCBwYXJhbWV0ZXIgZGVmaW5pdGlvbnMuXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBXaXphcmRTdGVwU2VydmljZTxUPiB7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEludGVybmFsIHN0YXRlIGNvbnRhaW5lciBmb3IgdGhlIHdpemFyZC5cclxuXHQgKlxyXG5cdCAqIEhvbGRzIHRoZSBvcmRlcmVkIHN0ZXAgZGVmaW5pdGlvbnMgYW5kIHRoZSBjdXJyZW50bHkgYWN0aXZlIGluZGV4LlxyXG5cdCAqIEEgYG51bGxgIHZhbHVlIGluZGljYXRlcyB0aGUgd2l6YXJkIGhhcyBub3QgeWV0IGJlZW4gaW5pdGlhbGl6ZWQuXHJcblx0ICovXHJcblx0cHJpdmF0ZSBzdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFdpemFyZFN0YXRlPFQ+IHwgbnVsbD4obnVsbClcclxuXHJcblx0LyoqXHJcblx0ICogRW1pdHMgd2hldGhlciBmb3J3YXJkIG5hdmlnYXRpb24gaXMgY3VycmVudGx5IGFsbG93ZWQuXHJcblx0ICpcclxuXHQgKiBUaGlzIGNhbiBiZSBjb250cm9sbGVkIGV4dGVybmFsbHkgKGUuZy4sIGZvcm0gdmFsaWRpdHkpLlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgc3RlcEZvcndhcmRBdmFpbGFiaWxpdHkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSlcclxuXHJcblx0LyoqXHJcblx0ICogQ3JlYXRlcyBhIG5ldyBXaXphcmRTdGVwU2VydmljZSBpbnN0YW5jZS5cclxuXHQgKlxyXG5cdCAqIEBwYXJhbSByb3V0ZXIgLSBBbmd1bGFyIFJvdXRlciB1c2VkIHRvIHVwZGF0ZSB0aGUgVVJMIHdoZW4gc3RlcCBjaGFuZ2VzIG9jY3VyLlxyXG5cdCAqIEBwYXJhbSBhY3RpdmF0ZWRSb3V0ZSAtIFRoZSBjdXJyZW50IHJvdXRlIHVzZWQgYXMgdGhlIHJlbGF0aXZlIGJhc2UgZm9yIG5hdmlnYXRpb24uXHJcblx0ICovXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG5cdFx0cHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVcclxuXHQpIHsgfVxyXG5cclxuXHQvKipcclxuXHQgKiBJbml0aWFsaXplcyB0aGUgd2l6YXJkIHdpdGggYW4gb3JkZXJlZCBsaXN0IG9mIHN0ZXAgZGVmaW5pdGlvbnMuXHJcblx0ICpcclxuXHQgKiBUaGlzIG1ldGhvZCBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgbmF2aWdhdGlvbiBtZXRob2RzIGFyZSB1c2VkLlxyXG5cdCAqIEl0IHJlc2V0cyB0aGUgd2l6YXJkIHN0YXRlIGFuZCBuYXZpZ2F0ZXMgdG8gdGhlIGZpcnN0IHN0ZXAuXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gc3RlcHMgLSBUaGUgb3JkZXJlZCBjb2xsZWN0aW9uIG9mIHN0ZXAgZGVmaW5pdGlvbnMuXHJcblx0ICovXHJcblx0aW5pdGlhbGl6ZShzdGVwczogU3RlcERlZmluaXRpb248VD5bXSk6IHZvaWQge1xyXG5cdFx0dGhpcy5zdGF0ZSQubmV4dCh7XHJcblx0XHRcdHN0ZXBzOiBbLi4uc3RlcHNdLCAvLyBkZWZlbnNpdmUgY29weVxyXG5cdFx0XHRjdXJyZW50SW5kZXg6IDBcclxuXHRcdH0pXHJcblxyXG5cdFx0dGhpcy5uYXZpZ2F0ZSgpXHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBSZXR1cm5zIHRoZSBjdXJyZW50bHkgYWN0aXZlIHN0ZXAgc3luY2hyb25vdXNseS5cclxuXHQgKlxyXG5cdCAqIEByZXR1cm5zIFRoZSBhY3RpdmUge0BsaW5rIFN0ZXBEZWZpbml0aW9ufSwgb3IgYG51bGxgIGlmIG5vdCBpbml0aWFsaXplZC5cclxuXHQgKi9cclxuXHRnZXRDdXJyZW50U3RlcCgpOiBTdGVwRGVmaW5pdGlvbjxUPiB8IG51bGwge1xyXG5cdFx0cmV0dXJuIHRoaXMuc3RhdGUkLnZhbHVlPy5zdGVwc1t0aGlzLnN0YXRlJC52YWx1ZS5jdXJyZW50SW5kZXhdID8/IG51bGxcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEVtaXRzIHRoZSBjdXJyZW50bHkgYWN0aXZlIHN0ZXAgd2hlbmV2ZXIgdGhlIHdpemFyZCBzdGF0ZSBjaGFuZ2VzLlxyXG5cdCAqXHJcblx0ICogQHJldHVybnMgT2JzZXJ2YWJsZSBzdHJlYW0gb2YgdGhlIGFjdGl2ZSBzdGVwIG9yIGBudWxsYCBpZiB1bmluaXRpYWxpemVkLlxyXG5cdCAqL1xyXG5cdGdldEN1cnJlbnRTdGVwJCgpOiBPYnNlcnZhYmxlPFN0ZXBEZWZpbml0aW9uPFQ+IHwgbnVsbD4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuc3RhdGUkLnBpcGUoXHJcblx0XHRcdG1hcChzdGF0ZSA9PlxyXG5cdFx0XHRcdHN0YXRlID8gc3RhdGUuc3RlcHNbc3RhdGUuY3VycmVudEluZGV4XSA6IG51bGxcclxuXHRcdFx0KVxyXG5cdFx0KVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRW1pdHMgdGhlIGZ1bGwgb3JkZXJlZCBsaXN0IG9mIHdpemFyZCBzdGVwcy5cclxuXHQgKlxyXG5cdCAqIEByZXR1cm5zIE9ic2VydmFibGUgc3RyZWFtIG9mIHN0ZXAgZGVmaW5pdGlvbnMuXHJcblx0ICovXHJcblx0Z2V0U3RlcHMkKCk6IE9ic2VydmFibGU8U3RlcERlZmluaXRpb248VD5bXT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuc3RhdGUkLnBpcGUoXHJcblx0XHRcdG1hcChzdGF0ZSA9PiBzdGF0ZT8uc3RlcHMgPz8gW10pXHJcblx0XHQpXHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBFbWl0cyB0aGUgY3VycmVudCBhY3RpdmUgc3RlcCBpbmRleC5cclxuXHQgKlxyXG5cdCAqIEByZXR1cm5zIE9ic2VydmFibGUgc3RyZWFtIG9mIHRoZSBjdXJyZW50IGluZGV4ICgwLWJhc2VkKS5cclxuXHQgKi9cclxuXHRnZXRDdXJyZW50SW5kZXgkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcblx0XHRyZXR1cm4gdGhpcy5zdGF0ZSQucGlwZShcclxuXHRcdFx0bWFwKHN0YXRlID0+IHN0YXRlPy5jdXJyZW50SW5kZXggPz8gMClcclxuXHRcdClcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEF0dGVtcHRzIHRvIHRyYW5zaXRpb24gdG8gdGhlIG5leHQgc3RlcC5cclxuXHQgKlxyXG5cdCAqIElmIHRoZSBjdXJyZW50IHN0ZXAgZGVmaW5lcyBhbiBgb25FeGl0YCBndWFyZCwgaXQgd2lsbCBiZSBleGVjdXRlZCBiZWZvcmVcclxuXHQgKiB0cmFuc2l0aW9uaW5nLiBJZiB0aGUgZ3VhcmQgcmV0dXJucyBgZmFsc2VgIChvciByZXNvbHZlcyB0byBgZmFsc2VgKSxcclxuXHQgKiB0aGUgdHJhbnNpdGlvbiBpcyBjYW5jZWxsZWQuXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gY29udGV4dCAtIE9wdGlvbmFsIGNvbnRleHR1YWwgZGF0YSBwYXNzZWQgdG8gdGhlIGBvbkV4aXRgIGd1YXJkLlxyXG5cdCAqL1xyXG5cdGFzeW5jIG5leHQoY29udGV4dD86IGFueSk6IFByb21pc2U8dm9pZD4ge1xyXG5cdFx0Y29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlJC52YWx1ZVxyXG5cdFx0aWYgKCFzdGF0ZSkgcmV0dXJuXHJcblxyXG5cdFx0Y29uc3QgY3VycmVudCA9IHN0YXRlLnN0ZXBzW3N0YXRlLmN1cnJlbnRJbmRleF1cclxuXHJcblx0XHRpZiAoY3VycmVudC5vbkV4aXQpIHtcclxuXHRcdFx0Y29uc3QgYWxsb3dlZCA9IGF3YWl0IGN1cnJlbnQub25FeGl0KGNvbnRleHQpXHJcblx0XHRcdGlmICghYWxsb3dlZCkgcmV0dXJuXHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHN0YXRlLmN1cnJlbnRJbmRleCA8IHN0YXRlLnN0ZXBzLmxlbmd0aCAtIDEpIHtcclxuXHRcdFx0dGhpcy5zdGF0ZSQubmV4dCh7XHJcblx0XHRcdFx0Li4uc3RhdGUsXHJcblx0XHRcdFx0Y3VycmVudEluZGV4OiBzdGF0ZS5jdXJyZW50SW5kZXggKyAxXHJcblx0XHRcdH0pXHJcblxyXG5cdFx0XHR0aGlzLm5hdmlnYXRlKClcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIE1vdmVzIHRoZSB3aXphcmQgdG8gdGhlIHByZXZpb3VzIHN0ZXAgaWYgcG9zc2libGUuXHJcblx0ICpcclxuXHQgKiBObyBndWFyZHMgYXJlIGV4ZWN1dGVkIGR1cmluZyBiYWNrd2FyZCBuYXZpZ2F0aW9uLlxyXG5cdCAqL1xyXG5cdHByZXZpb3VzKCk6IHZvaWQge1xyXG5cdFx0Y29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlJC52YWx1ZVxyXG5cdFx0aWYgKCFzdGF0ZSkgcmV0dXJuXHJcblxyXG5cdFx0aWYgKHN0YXRlLmN1cnJlbnRJbmRleCA+IDApIHtcclxuXHRcdFx0dGhpcy5zdGF0ZSQubmV4dCh7XHJcblx0XHRcdFx0Li4uc3RhdGUsXHJcblx0XHRcdFx0Y3VycmVudEluZGV4OiBzdGF0ZS5jdXJyZW50SW5kZXggLSAxXHJcblx0XHRcdH0pXHJcblxyXG5cdFx0XHR0aGlzLm5hdmlnYXRlKClcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIERldGVybWluZXMgd2hldGhlciB0aGUgY3VycmVudCBzdGVwIGlzIHRoZSBmaW5hbCBzdGVwLlxyXG5cdCAqXHJcblx0ICogQHJldHVybnMgYHRydWVgIGlmIG9uIHRoZSBsYXN0IHN0ZXA7IG90aGVyd2lzZSBgZmFsc2VgLlxyXG5cdCAqL1xyXG5cdGlzTGFzdCgpOiBib29sZWFuIHtcclxuXHRcdGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZSQudmFsdWVcclxuXHRcdGlmICghc3RhdGUpIHJldHVybiBmYWxzZVxyXG5cdFx0cmV0dXJuIHN0YXRlLmN1cnJlbnRJbmRleCA9PT0gc3RhdGUuc3RlcHMubGVuZ3RoIC0gMVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU2V0cyB3aGV0aGVyIGZvcndhcmQgbmF2aWdhdGlvbiBpcyBjdXJyZW50bHkgcGVybWl0dGVkLlxyXG5cdCAqXHJcblx0ICogVGhpcyBpcyB0eXBpY2FsbHkgY29udHJvbGxlZCBieSBleHRlcm5hbCB2YWxpZGF0aW9uIGxvZ2ljIChlLmcuLCBmb3JtIHN0YXRlKS5cclxuXHQgKlxyXG5cdCAqIEBwYXJhbSBhdmFpbGFibGUgLSBgdHJ1ZWAgaWYgZm9yd2FyZCBuYXZpZ2F0aW9uIHNob3VsZCBiZSBhbGxvd2VkLlxyXG5cdCAqL1xyXG5cdHNldFN0ZXBGb3J3YXJkQXZhaWxhYmlsaXR5KGF2YWlsYWJsZTogYm9vbGVhbik6IHZvaWQge1xyXG5cdFx0dGhpcy5zdGVwRm9yd2FyZEF2YWlsYWJpbGl0eSQubmV4dChhdmFpbGFibGUpXHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBFbWl0cyB0aGUgZm9yd2FyZCBuYXZpZ2F0aW9uIGF2YWlsYWJpbGl0eSBzdGF0ZS5cclxuXHQgKlxyXG5cdCAqIEByZXR1cm5zIE9ic2VydmFibGUgc3RyZWFtIG9mIHRoZSBmb3J3YXJkIG5hdmlnYXRpb24gZmxhZy5cclxuXHQgKi9cclxuXHRnZXRTdGVwRm9yd2FyZEF2YWlsYWJpbGl0eSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuXHRcdHJldHVybiB0aGlzLnN0ZXBGb3J3YXJkQXZhaWxhYmlsaXR5JC5hc09ic2VydmFibGUoKVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogTmF2aWdhdGVzIHRoZSByb3V0ZXIgdG8gdGhlIGN1cnJlbnRseSBhY3RpdmUgc3RlcC5cclxuXHQgKlxyXG5cdCAqIFRoaXMgbWV0aG9kIHVwZGF0ZXMgdGhlIFVSTCByZWxhdGl2ZSB0byB0aGUgaW5qZWN0ZWQgcm91dGVcclxuXHQgKiB1c2luZyB0aGUgcGF0dGVybjogYHN0ZXAte3NsdWd9YC5cclxuXHQgKlxyXG5cdCAqIEBpbnRlcm5hbFxyXG5cdCAqL1xyXG5cdHByaXZhdGUgbmF2aWdhdGUoKTogdm9pZCB7XHJcblx0XHRjb25zdCBzdGVwID0gdGhpcy5nZXRDdXJyZW50U3RlcCgpXHJcblx0XHRpZiAoIXN0ZXApIHJldHVyblxyXG5cclxuXHRcdHRoaXMucm91dGVyLm5hdmlnYXRlKFxyXG5cdFx0XHRbYHN0ZXAtJHtzdGVwLnNsdWd9YF0sXHJcblx0XHRcdHsgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZSB9XHJcblx0XHQpXHJcblx0fVxyXG59XHJcblxyXG4iXX0=
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLXN0ZXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dpbmRvd3MtcGx1cy11dGlsaXRpZXMvbW9kYWwtd2l6YXJkL3V0aWwvc2VydmljZS93aXphcmQtc3RlcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLGVBQWUsRUFBYyxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUE7OztBQUd2RDs7Ozs7Ozs7Ozs7OztHQWFHO0FBRUgsTUFBTSxPQUFPLGlCQUFpQjtJQWlCN0I7Ozs7O09BS0c7SUFDSCxZQUNTLE1BQWMsRUFDZCxjQUE4QjtRQUQ5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBdkJ2Qzs7Ozs7V0FLRztRQUNLLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBd0IsSUFBSSxDQUFDLENBQUE7UUFFakU7Ozs7V0FJRztRQUNLLDZCQUF3QixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFBO0lBV2xFLENBQUM7SUFFTDs7Ozs7OztPQU9HO0lBQ0gsVUFBVSxDQUFDLEtBQTBCO1FBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ2hCLEtBQUssRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLEVBQUUsaUJBQWlCO1lBQ3BDLFlBQVksRUFBRSxDQUFDO1NBQ2YsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ2hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYztRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQTtJQUN4RSxDQUFD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QUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBQ2xDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTTtRQUVqQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FDbkIsQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUNyQixFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQ25DLENBQUE7SUFDRixDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILGNBQWM7UUFDYixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQTtRQUMzQixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDaEMsQ0FBQzs4R0FuTVcsaUJBQWlCO2tIQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBtYXAgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBTdGVwRGVmaW5pdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZS9zdGVwLWRlZmluaXRpb24uaW50ZXJmYWNlJ1xyXG5pbXBvcnQgeyBXaXphcmRTdGF0ZSB9IGZyb20gJy4uL2ludGVyZmFjZS93aXphcmQtc3RhdGUuaW50ZXJmYWNlJ1xyXG4vKipcclxuICogQSBmaW5pdGUgc3RhdGUgbWFjaGluZSBzZXJ2aWNlIHVzZWQgdG8gbWFuYWdlIHdpemFyZC1zdHlsZSBzdGVwIG5hdmlnYXRpb24uXHJcbiAqXHJcbiAqIFRoaXMgc2VydmljZSBtYWludGFpbnMgYW4gaW1tdXRhYmxlIGxpc3Qgb2Yge0BsaW5rIFN0ZXBEZWZpbml0aW9ufSBvYmplY3RzIGFuZFxyXG4gKiB0cmFja3MgdGhlIGN1cnJlbnQgYWN0aXZlIHN0ZXAgaW5kZXggaW50ZXJuYWxseS4gSXQgZXhwb3NlcyByZWFjdGl2ZSBzdHJlYW1zXHJcbiAqIGZvciBzdGVwIGRhdGEgYW5kIG5hdmlnYXRpb24gc3RhdGUsIGFuZCBjb29yZGluYXRlcyByb3V0ZXIgbmF2aWdhdGlvbiB3aGVuXHJcbiAqIHRyYW5zaXRpb25zIG9jY3VyLlxyXG4gKlxyXG4gKiBUaGUgc2VydmljZSBpcyBpbnRlbnRpb25hbGx5IGNvbXBvbmVudC1zY29wZWQgYW5kIG11c3QgYmUgcHJvdmlkZWQgYXQgdGhlXHJcbiAqIGNvbXBvbmVudCBsZXZlbC4gRWFjaCB3aXphcmQgaW5zdGFuY2Ugc2hvdWxkIGNyZWF0ZSBhbmQgaW5pdGlhbGl6ZSBpdHMgb3duXHJcbiAqIHNlcnZpY2UgaW5zdGFuY2UuXHJcbiAqXHJcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIHVzZWQgZm9yIHN0ZXAgcGFyYW1ldGVyIGRlZmluaXRpb25zLlxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgV2l6YXJkU3RlcFNlcnZpY2U8VD4ge1xyXG5cclxuXHQvKipcclxuXHQgKiBJbnRlcm5hbCBzdGF0ZSBjb250YWluZXIgZm9yIHRoZSB3aXphcmQuXHJcblx0ICpcclxuXHQgKiBIb2xkcyB0aGUgb3JkZXJlZCBzdGVwIGRlZmluaXRpb25zIGFuZCB0aGUgY3VycmVudGx5IGFjdGl2ZSBpbmRleC5cclxuXHQgKiBBIGBudWxsYCB2YWx1ZSBpbmRpY2F0ZXMgdGhlIHdpemFyZCBoYXMgbm90IHlldCBiZWVuIGluaXRpYWxpemVkLlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxXaXphcmRTdGF0ZTxUPiB8IG51bGw+KG51bGwpXHJcblxyXG5cdC8qKlxyXG5cdCAqIEVtaXRzIHdoZXRoZXIgZm9yd2FyZCBuYXZpZ2F0aW9uIGlzIGN1cnJlbnRseSBhbGxvd2VkLlxyXG5cdCAqXHJcblx0ICogVGhpcyBjYW4gYmUgY29udHJvbGxlZCBleHRlcm5hbGx5IChlLmcuLCBmb3JtIHZhbGlkaXR5KS5cclxuXHQgKi9cclxuXHRwcml2YXRlIHN0ZXBGb3J3YXJkQXZhaWxhYmlsaXR5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpXHJcblxyXG5cdC8qKlxyXG5cdCAqIENyZWF0ZXMgYSBuZXcgV2l6YXJkU3RlcFNlcnZpY2UgaW5zdGFuY2UuXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gcm91dGVyIC0gQW5ndWxhciBSb3V0ZXIgdXNlZCB0byB1cGRhdGUgdGhlIFVSTCB3aGVuIHN0ZXAgY2hhbmdlcyBvY2N1ci5cclxuXHQgKiBAcGFyYW0gYWN0aXZhdGVkUm91dGUgLSBUaGUgY3VycmVudCByb3V0ZSB1c2VkIGFzIHRoZSByZWxhdGl2ZSBiYXNlIGZvciBuYXZpZ2F0aW9uLlxyXG5cdCAqL1xyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuXHRcdHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXHJcblx0KSB7IH1cclxuXHJcblx0LyoqXHJcblx0ICogSW5pdGlhbGl6ZXMgdGhlIHdpemFyZCB3aXRoIGFuIG9yZGVyZWQgbGlzdCBvZiBzdGVwIGRlZmluaXRpb25zLlxyXG5cdCAqXHJcblx0ICogVGhpcyBtZXRob2QgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIG5hdmlnYXRpb24gbWV0aG9kcyBhcmUgdXNlZC5cclxuXHQgKiBJdCByZXNldHMgdGhlIHdpemFyZCBzdGF0ZSBhbmQgbmF2aWdhdGVzIHRvIHRoZSBmaXJzdCBzdGVwLlxyXG5cdCAqXHJcblx0ICogQHBhcmFtIHN0ZXBzIC0gVGhlIG9yZGVyZWQgY29sbGVjdGlvbiBvZiBzdGVwIGRlZmluaXRpb25zLlxyXG5cdCAqL1xyXG5cdGluaXRpYWxpemUoc3RlcHM6IFN0ZXBEZWZpbml0aW9uPFQ+W10pOiB2b2lkIHtcclxuXHRcdHRoaXMuc3RhdGUkLm5leHQoe1xyXG5cdFx0XHRzdGVwczogWy4uLnN0ZXBzXSwgLy8gZGVmZW5zaXZlIGNvcHlcclxuXHRcdFx0Y3VycmVudEluZGV4OiAwXHJcblx0XHR9KVxyXG5cclxuXHRcdHRoaXMubmF2aWdhdGUoKVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogUmV0dXJucyB0aGUgY3VycmVudGx5IGFjdGl2ZSBzdGVwIHN5bmNocm9ub3VzbHkuXHJcblx0ICpcclxuXHQgKiBAcmV0dXJucyBUaGUgYWN0aXZlIHtAbGluayBTdGVwRGVmaW5pdGlvbn0sIG9yIGBudWxsYCBpZiBub3QgaW5pdGlhbGl6ZWQuXHJcblx0ICovXHJcblx0Z2V0Q3VycmVudFN0ZXAoKTogU3RlcERlZmluaXRpb248VD4gfCBudWxsIHtcclxuXHRcdHJldHVybiB0aGlzLnN0YXRlJC52YWx1ZT8uc3RlcHNbdGhpcy5zdGF0ZSQudmFsdWUuY3VycmVudEluZGV4XSA/PyBudWxsXHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBFbWl0cyB0aGUgY3VycmVudGx5IGFjdGl2ZSBzdGVwIHdoZW5ldmVyIHRoZSB3aXphcmQgc3RhdGUgY2hhbmdlcy5cclxuXHQgKlxyXG5cdCAqIEByZXR1cm5zIE9ic2VydmFibGUgc3RyZWFtIG9mIHRoZSBhY3RpdmUgc3RlcCBvciBgbnVsbGAgaWYgdW5pbml0aWFsaXplZC5cclxuXHQgKi9cclxuXHRnZXRDdXJyZW50U3RlcCQoKTogT2JzZXJ2YWJsZTxTdGVwRGVmaW5pdGlvbjxUPiB8IG51bGw+IHtcclxuXHRcdHJldHVybiB0aGlzLnN0YXRlJC5waXBlKFxyXG5cdFx0XHRtYXAoc3RhdGUgPT5cclxuXHRcdFx0XHRzdGF0ZSA/IHN0YXRlLnN0ZXBzW3N0YXRlLmN1cnJlbnRJbmRleF0gOiBudWxsXHJcblx0XHRcdClcclxuXHRcdClcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEVtaXRzIHRoZSBmdWxsIG9yZGVyZWQgbGlzdCBvZiB3aXphcmQgc3RlcHMuXHJcblx0ICpcclxuXHQgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHN0cmVhbSBvZiBzdGVwIGRlZmluaXRpb25zLlxyXG5cdCAqL1xyXG5cdGdldFN0ZXBzJCgpOiBPYnNlcnZhYmxlPFN0ZXBEZWZpbml0aW9uPFQ+W10+IHtcclxuXHRcdHJldHVybiB0aGlzLnN0YXRlJC5waXBlKFxyXG5cdFx0XHRtYXAoc3RhdGUgPT4gc3RhdGU/LnN0ZXBzID8/IFtdKVxyXG5cdFx0KVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRW1pdHMgdGhlIGN1cnJlbnQgYWN0aXZlIHN0ZXAgaW5kZXguXHJcblx0ICpcclxuXHQgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHN0cmVhbSBvZiB0aGUgY3VycmVudCBpbmRleCAoMC1iYXNlZCkuXHJcblx0ICovXHJcblx0Z2V0Q3VycmVudEluZGV4JCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuc3RhdGUkLnBpcGUoXHJcblx0XHRcdG1hcChzdGF0ZSA9PiBzdGF0ZT8uY3VycmVudEluZGV4ID8/IDApXHJcblx0XHQpXHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBBdHRlbXB0cyB0byB0cmFuc2l0aW9uIHRvIHRoZSBuZXh0IHN0ZXAuXHJcblx0ICpcclxuXHQgKiBJZiB0aGUgY3VycmVudCBzdGVwIGRlZmluZXMgYW4gYG9uRXhpdGAgZ3VhcmQsIGl0IHdpbGwgYmUgZXhlY3V0ZWQgYmVmb3JlXHJcblx0ICogdHJhbnNpdGlvbmluZy4gSWYgdGhlIGd1YXJkIHJldHVybnMgYGZhbHNlYCAob3IgcmVzb2x2ZXMgdG8gYGZhbHNlYCksXHJcblx0ICogdGhlIHRyYW5zaXRpb24gaXMgY2FuY2VsbGVkLlxyXG5cdCAqXHJcblx0ICogQHBhcmFtIGNvbnRleHQgLSBPcHRpb25hbCBjb250ZXh0dWFsIGRhdGEgcGFzc2VkIHRvIHRoZSBgb25FeGl0YCBndWFyZC5cclxuXHQgKi9cclxuXHRhc3luYyBuZXh0KGNvbnRleHQ/OiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcclxuXHRcdGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZSQudmFsdWVcclxuXHRcdGlmICghc3RhdGUpIHJldHVyblxyXG5cclxuXHRcdGNvbnN0IGN1cnJlbnQgPSBzdGF0ZS5zdGVwc1tzdGF0ZS5jdXJyZW50SW5kZXhdXHJcblxyXG5cdFx0aWYgKGN1cnJlbnQub25FeGl0KSB7XHJcblx0XHRcdGNvbnN0IGFsbG93ZWQgPSBhd2FpdCBjdXJyZW50Lm9uRXhpdChjb250ZXh0KVxyXG5cdFx0XHRpZiAoIWFsbG93ZWQpIHJldHVyblxyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChzdGF0ZS5jdXJyZW50SW5kZXggPCBzdGF0ZS5zdGVwcy5sZW5ndGggLSAxKSB7XHJcblx0XHRcdHRoaXMuc3RhdGUkLm5leHQoe1xyXG5cdFx0XHRcdC4uLnN0YXRlLFxyXG5cdFx0XHRcdGN1cnJlbnRJbmRleDogc3RhdGUuY3VycmVudEluZGV4ICsgMVxyXG5cdFx0XHR9KVxyXG5cclxuXHRcdFx0dGhpcy5uYXZpZ2F0ZSgpXHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBNb3ZlcyB0aGUgd2l6YXJkIHRvIHRoZSBwcmV2aW91cyBzdGVwIGlmIHBvc3NpYmxlLlxyXG5cdCAqXHJcblx0ICogTm8gZ3VhcmRzIGFyZSBleGVjdXRlZCBkdXJpbmcgYmFja3dhcmQgbmF2aWdhdGlvbi5cclxuXHQgKi9cclxuXHRwcmV2aW91cygpOiB2b2lkIHtcclxuXHRcdGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZSQudmFsdWVcclxuXHRcdGlmICghc3RhdGUpIHJldHVyblxyXG5cclxuXHRcdGlmIChzdGF0ZS5jdXJyZW50SW5kZXggPiAwKSB7XHJcblx0XHRcdHRoaXMuc3RhdGUkLm5leHQoe1xyXG5cdFx0XHRcdC4uLnN0YXRlLFxyXG5cdFx0XHRcdGN1cnJlbnRJbmRleDogc3RhdGUuY3VycmVudEluZGV4IC0gMVxyXG5cdFx0XHR9KVxyXG5cclxuXHRcdFx0dGhpcy5uYXZpZ2F0ZSgpXHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGN1cnJlbnQgc3RlcCBpcyB0aGUgZmluYWwgc3RlcC5cclxuXHQgKlxyXG5cdCAqIEByZXR1cm5zIGB0cnVlYCBpZiBvbiB0aGUgbGFzdCBzdGVwOyBvdGhlcndpc2UgYGZhbHNlYC5cclxuXHQgKi9cclxuXHRpc0xhc3QoKTogYm9vbGVhbiB7XHJcblx0XHRjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGUkLnZhbHVlXHJcblx0XHRpZiAoIXN0YXRlKSByZXR1cm4gZmFsc2VcclxuXHRcdHJldHVybiBzdGF0ZS5jdXJyZW50SW5kZXggPT09IHN0YXRlLnN0ZXBzLmxlbmd0aCAtIDFcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNldHMgd2hldGhlciBmb3J3YXJkIG5hdmlnYXRpb24gaXMgY3VycmVudGx5IHBlcm1pdHRlZC5cclxuXHQgKlxyXG5cdCAqIFRoaXMgaXMgdHlwaWNhbGx5IGNvbnRyb2xsZWQgYnkgZXh0ZXJuYWwgdmFsaWRhdGlvbiBsb2dpYyAoZS5nLiwgZm9ybSBzdGF0ZSkuXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gYXZhaWxhYmxlIC0gYHRydWVgIGlmIGZvcndhcmQgbmF2aWdhdGlvbiBzaG91bGQgYmUgYWxsb3dlZC5cclxuXHQgKi9cclxuXHRzZXRTdGVwRm9yd2FyZEF2YWlsYWJpbGl0eShhdmFpbGFibGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuXHRcdHRoaXMuc3RlcEZvcndhcmRBdmFpbGFiaWxpdHkkLm5leHQoYXZhaWxhYmxlKVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRW1pdHMgdGhlIGZvcndhcmQgbmF2aWdhdGlvbiBhdmFpbGFiaWxpdHkgc3RhdGUuXHJcblx0ICpcclxuXHQgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHN0cmVhbSBvZiB0aGUgZm9yd2FyZCBuYXZpZ2F0aW9uIGZsYWcuXHJcblx0ICovXHJcblx0Z2V0U3RlcEZvcndhcmRBdmFpbGFiaWxpdHkoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcblx0XHRyZXR1cm4gdGhpcy5zdGVwRm9yd2FyZEF2YWlsYWJpbGl0eSQuYXNPYnNlcnZhYmxlKClcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIE5hdmlnYXRlcyB0aGUgcm91dGVyIHRvIHRoZSBjdXJyZW50bHkgYWN0aXZlIHN0ZXAuXHJcblx0ICpcclxuXHQgKiBUaGlzIG1ldGhvZCB1cGRhdGVzIHRoZSBVUkwgcmVsYXRpdmUgdG8gdGhlIGluamVjdGVkIHJvdXRlXHJcblx0ICogdXNpbmcgdGhlIHBhdHRlcm46IGBzdGVwLXtzbHVnfWAuXHJcblx0ICpcclxuXHQgKiBAaW50ZXJuYWxcclxuXHQgKi9cclxuXHRwcml2YXRlIG5hdmlnYXRlKCk6IHZvaWQge1xyXG5cdFx0Y29uc3Qgc3RlcCA9IHRoaXMuZ2V0Q3VycmVudFN0ZXAoKVxyXG5cdFx0aWYgKCFzdGVwKSByZXR1cm5cclxuXHJcblx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShcclxuXHRcdFx0W2BzdGVwLSR7c3RlcC5zbHVnfWBdLFxyXG5cdFx0XHR7IHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGUgfVxyXG5cdFx0KVxyXG5cdH1cclxuXHQvKipcclxuXHQgKiBOYXZpZ2F0ZXMgdGhlIHJvdXRlciBhd2F5IGZyb20gYW55IFwic3RlcFwiIHJvdXRlLlxyXG5cdCAqIFxyXG5cdCAqIFRoaXMgbWV0aG9kcyB1cGRhdGVzIHRoZSBVUkwgcmVsYXRpdmUgdG8gdGhlIGluamVjdGVkIHJvdXRlLCByZW1vdmluZyBldmVyeSBhZnRlciBgL3N0ZXAtXHJcblx0ICovXHJcblx0Y2xlYXJTdGVwUm91dGUoKTogdm9pZCB7XHJcblx0XHRjb25zdCB1cmwgPSB0aGlzLnJvdXRlci51cmxcclxuXHRcdGNvbnN0IFtpbml0aWFsXSA9IHVybC5zcGxpdCgnL3N0ZXAtJylcclxuXHRcdHRoaXMucm91dGVyLm5hdmlnYXRlKFtpbml0aWFsXSlcclxuXHR9XHJcbn1cclxuXHJcbiJdfQ==
@@ -177,6 +177,16 @@ class WizardStepService {
177
177
  return;
178
178
  this.router.navigate([`step-${step.slug}`], { relativeTo: this.activatedRoute });
179
179
  }
180
+ /**
181
+ * Navigates the router away from any "step" route.
182
+ *
183
+ * This methods updates the URL relative to the injected route, removing every after `/step-
184
+ */
185
+ clearStepRoute() {
186
+ const url = this.router.url;
187
+ const [initial] = url.split('/step-');
188
+ this.router.navigate([initial]);
189
+ }
180
190
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: WizardStepService, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable }); }
181
191
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: WizardStepService }); }
182
192
  }
@@ -210,11 +220,11 @@ class StepComponent {
210
220
  // this.stepService.setCurrentStep(step);
211
221
  }
212
222
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: StepComponent, deps: [{ token: WizardStepService }], target: i0.ɵɵFactoryTarget.Component }); }
213
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: StepComponent, isStandalone: true, selector: "step", ngImport: i0, template: "<div class=\"form-steps-container\">\r\n\t<ng-container *ngFor=\"let step of steps | async; let i = index;\">\r\n\t\t<div class=\"d-flex flex-column align-items-center\">\r\n\t\t\t<div \r\n\t\t\t\t(click)=\"onStepClick(step)\"\r\n\t\t\t\t[ngClass]=\"{ 'step-complete': step.isComplete, 'step-incomplete': !step.isComplete, 'step-current': (currentIndex | async)?.stepIndex === step.stepIndex }\"\r\n\t\t\t\tclass=\"step-bubble cursor-pointer\"\r\n\t\t\t>{{ step.stepIndex }}</div>\r\n\t\t\t<div>\r\n\t\t\t\t<span class=\"text-grey\">{{step.title}}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div *ngIf=\"i < (steps | async)?.length - 1\" class=\"step-divider\"></div>\r\n\t</ng-container>\r\n</div>", styles: [".form-steps-container{display:flex;justify-content:space-between;align-items:center;padding:0 32px;margin-bottom:32px}.step-bubble{padding:20px;border:3px solid var(--wp-primaryBlue);width:12px;height:12px;display:flex;justify-content:center;align-items:center;border-radius:50%;color:var(--wp-primaryBlue);font-size:1em;cursor:pointer;-webkit-user-select:none;user-select:none}.step-divider{height:2px;background:var(--wp-primaryBlue);flex:1;margin:0 10px}.step-current,.step-complete{background:var(--wp-primaryBlue);color:#fff}.step-incomplete{cursor:not-allowed;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
223
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: StepComponent, isStandalone: true, selector: "step", ngImport: i0, template: "<div class=\"form-steps-container\">\r\n\t<ng-container *ngFor=\"let step of steps | async; let i = index;\">\r\n\t\t<div class=\"d-flex flex-column align-items-center\">\r\n\t\t\t<div \r\n\t\t\t\t(click)=\"onStepClick(step)\"\r\n\t\t\t\t[ngClass]=\"{ 'step-complete': step.isComplete, 'step-incomplete': !step.isComplete, 'step-current': (currentIndex | async) === i }\"\r\n\t\t\t\tclass=\"step-bubble cursor-pointer\"\r\n\t\t\t>{{ i + 1}}</div>\r\n\t\t\t<div>\r\n\t\t\t\t<span class=\"text-grey\">{{step.title}}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div *ngIf=\"i < (steps | async)?.length - 1\" class=\"step-divider\"></div>\r\n\t</ng-container>\r\n</div>", styles: [".form-steps-container{display:flex;justify-content:space-between;align-items:center;padding:0 32px;margin-bottom:32px}.step-bubble{padding:20px;border:3px solid var(--wp-primaryBlue);width:12px;height:12px;display:flex;justify-content:center;align-items:center;border-radius:50%;color:var(--wp-primaryBlue);font-size:1em;cursor:pointer;-webkit-user-select:none;user-select:none}.step-divider{height:2px;background:var(--wp-primaryBlue);flex:1;margin:0 10px}.step-current,.step-complete{background:var(--wp-primaryBlue);color:#fff}.step-incomplete{cursor:not-allowed;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
214
224
  }
215
225
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: StepComponent, decorators: [{
216
226
  type: Component,
217
- args: [{ selector: 'step', standalone: true, imports: [CommonModule], template: "<div class=\"form-steps-container\">\r\n\t<ng-container *ngFor=\"let step of steps | async; let i = index;\">\r\n\t\t<div class=\"d-flex flex-column align-items-center\">\r\n\t\t\t<div \r\n\t\t\t\t(click)=\"onStepClick(step)\"\r\n\t\t\t\t[ngClass]=\"{ 'step-complete': step.isComplete, 'step-incomplete': !step.isComplete, 'step-current': (currentIndex | async)?.stepIndex === step.stepIndex }\"\r\n\t\t\t\tclass=\"step-bubble cursor-pointer\"\r\n\t\t\t>{{ step.stepIndex }}</div>\r\n\t\t\t<div>\r\n\t\t\t\t<span class=\"text-grey\">{{step.title}}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div *ngIf=\"i < (steps | async)?.length - 1\" class=\"step-divider\"></div>\r\n\t</ng-container>\r\n</div>", styles: [".form-steps-container{display:flex;justify-content:space-between;align-items:center;padding:0 32px;margin-bottom:32px}.step-bubble{padding:20px;border:3px solid var(--wp-primaryBlue);width:12px;height:12px;display:flex;justify-content:center;align-items:center;border-radius:50%;color:var(--wp-primaryBlue);font-size:1em;cursor:pointer;-webkit-user-select:none;user-select:none}.step-divider{height:2px;background:var(--wp-primaryBlue);flex:1;margin:0 10px}.step-current,.step-complete{background:var(--wp-primaryBlue);color:#fff}.step-incomplete{cursor:not-allowed;pointer-events:none}\n"] }]
227
+ args: [{ selector: 'step', standalone: true, imports: [CommonModule], template: "<div class=\"form-steps-container\">\r\n\t<ng-container *ngFor=\"let step of steps | async; let i = index;\">\r\n\t\t<div class=\"d-flex flex-column align-items-center\">\r\n\t\t\t<div \r\n\t\t\t\t(click)=\"onStepClick(step)\"\r\n\t\t\t\t[ngClass]=\"{ 'step-complete': step.isComplete, 'step-incomplete': !step.isComplete, 'step-current': (currentIndex | async) === i }\"\r\n\t\t\t\tclass=\"step-bubble cursor-pointer\"\r\n\t\t\t>{{ i + 1}}</div>\r\n\t\t\t<div>\r\n\t\t\t\t<span class=\"text-grey\">{{step.title}}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div *ngIf=\"i < (steps | async)?.length - 1\" class=\"step-divider\"></div>\r\n\t</ng-container>\r\n</div>", styles: [".form-steps-container{display:flex;justify-content:space-between;align-items:center;padding:0 32px;margin-bottom:32px}.step-bubble{padding:20px;border:3px solid var(--wp-primaryBlue);width:12px;height:12px;display:flex;justify-content:center;align-items:center;border-radius:50%;color:var(--wp-primaryBlue);font-size:1em;cursor:pointer;-webkit-user-select:none;user-select:none}.step-divider{height:2px;background:var(--wp-primaryBlue);flex:1;margin:0 10px}.step-current,.step-complete{background:var(--wp-primaryBlue);color:#fff}.step-incomplete{cursor:not-allowed;pointer-events:none}\n"] }]
218
228
  }], ctorParameters: () => [{ type: WizardStepService }] });
219
229
 
220
230
  class WizardBuilder {
@@ -1 +1 @@
1
- {"version":3,"file":"windows-plus-utilities-modal-wizard.mjs","sources":["../../../projects/windows-plus-utilities/modal-wizard/util/service/wizard-step.service.ts","../../../projects/windows-plus-utilities/modal-wizard/components/step/step.component.ts","../../../projects/windows-plus-utilities/modal-wizard/components/step/step.component.html","../../../projects/windows-plus-utilities/modal-wizard/util/helper/wizard-builder.service.ts","../../../projects/windows-plus-utilities/modal-wizard/util/service/step.service.ts","../../../projects/windows-plus-utilities/modal-wizard/public-api.ts","../../../projects/windows-plus-utilities/modal-wizard/windows-plus-utilities-modal-wizard.ts"],"sourcesContent":["import { Injectable } from '@angular/core'\r\nimport { Router, ActivatedRoute } from '@angular/router'\r\nimport { BehaviorSubject, Observable, map } from 'rxjs'\r\nimport { StepDefinition } from '../interface/step-definition.interface'\r\nimport { WizardState } from '../interface/wizard-state.interface'\r\n/**\r\n * A finite state machine service used to manage wizard-style step navigation.\r\n *\r\n * This service maintains an immutable list of {@link StepDefinition} objects and\r\n * tracks the current active step index internally. It exposes reactive streams\r\n * for step data and navigation state, and coordinates router navigation when\r\n * transitions occur.\r\n *\r\n * The service is intentionally component-scoped and must be provided at the\r\n * component level. Each wizard instance should create and initialize its own\r\n * service instance.\r\n *\r\n * @typeParam T - The type used for step parameter definitions.\r\n */\r\n@Injectable()\r\nexport class WizardStepService<T> {\r\n\r\n\t/**\r\n\t * Internal state container for the wizard.\r\n\t *\r\n\t * Holds the ordered step definitions and the currently active index.\r\n\t * A `null` value indicates the wizard has not yet been initialized.\r\n\t */\r\n\tprivate state$ = new BehaviorSubject<WizardState<T> | null>(null)\r\n\r\n\t/**\r\n\t * Emits whether forward navigation is currently allowed.\r\n\t *\r\n\t * This can be controlled externally (e.g., form validity).\r\n\t */\r\n\tprivate stepForwardAvailability$ = new BehaviorSubject<boolean>(false)\r\n\r\n\t/**\r\n\t * Creates a new WizardStepService instance.\r\n\t *\r\n\t * @param router - Angular Router used to update the URL when step changes occur.\r\n\t * @param activatedRoute - The current route used as the relative base for navigation.\r\n\t */\r\n\tconstructor(\r\n\t\tprivate router: Router,\r\n\t\tprivate activatedRoute: ActivatedRoute\r\n\t) { }\r\n\r\n\t/**\r\n\t * Initializes the wizard with an ordered list of step definitions.\r\n\t *\r\n\t * This method must be called before navigation methods are used.\r\n\t * It resets the wizard state and navigates to the first step.\r\n\t *\r\n\t * @param steps - The ordered collection of step definitions.\r\n\t */\r\n\tinitialize(steps: StepDefinition<T>[]): void {\r\n\t\tthis.state$.next({\r\n\t\t\tsteps: [...steps], // defensive copy\r\n\t\t\tcurrentIndex: 0\r\n\t\t})\r\n\r\n\t\tthis.navigate()\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the currently active step synchronously.\r\n\t *\r\n\t * @returns The active {@link StepDefinition}, or `null` if not initialized.\r\n\t */\r\n\tgetCurrentStep(): StepDefinition<T> | null {\r\n\t\treturn this.state$.value?.steps[this.state$.value.currentIndex] ?? null\r\n\t}\r\n\r\n\t/**\r\n\t * Emits the currently active step whenever the wizard state changes.\r\n\t *\r\n\t * @returns Observable stream of the active step or `null` if uninitialized.\r\n\t */\r\n\tgetCurrentStep$(): Observable<StepDefinition<T> | null> {\r\n\t\treturn this.state$.pipe(\r\n\t\t\tmap(state =>\r\n\t\t\t\tstate ? state.steps[state.currentIndex] : null\r\n\t\t\t)\r\n\t\t)\r\n\t}\r\n\r\n\t/**\r\n\t * Emits the full ordered list of wizard steps.\r\n\t *\r\n\t * @returns Observable stream of step definitions.\r\n\t */\r\n\tgetSteps$(): Observable<StepDefinition<T>[]> {\r\n\t\treturn this.state$.pipe(\r\n\t\t\tmap(state => state?.steps ?? [])\r\n\t\t)\r\n\t}\r\n\r\n\t/**\r\n\t * Emits the current active step index.\r\n\t *\r\n\t * @returns Observable stream of the current index (0-based).\r\n\t */\r\n\tgetCurrentIndex$(): Observable<number> {\r\n\t\treturn this.state$.pipe(\r\n\t\t\tmap(state => state?.currentIndex ?? 0)\r\n\t\t)\r\n\t}\r\n\r\n\t/**\r\n\t * Attempts to transition to the next step.\r\n\t *\r\n\t * If the current step defines an `onExit` guard, it will be executed before\r\n\t * transitioning. If the guard returns `false` (or resolves to `false`),\r\n\t * the transition is cancelled.\r\n\t *\r\n\t * @param context - Optional contextual data passed to the `onExit` guard.\r\n\t */\r\n\tasync next(context?: any): Promise<void> {\r\n\t\tconst state = this.state$.value\r\n\t\tif (!state) return\r\n\r\n\t\tconst current = state.steps[state.currentIndex]\r\n\r\n\t\tif (current.onExit) {\r\n\t\t\tconst allowed = await current.onExit(context)\r\n\t\t\tif (!allowed) return\r\n\t\t}\r\n\r\n\t\tif (state.currentIndex < state.steps.length - 1) {\r\n\t\t\tthis.state$.next({\r\n\t\t\t\t...state,\r\n\t\t\t\tcurrentIndex: state.currentIndex + 1\r\n\t\t\t})\r\n\r\n\t\t\tthis.navigate()\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Moves the wizard to the previous step if possible.\r\n\t *\r\n\t * No guards are executed during backward navigation.\r\n\t */\r\n\tprevious(): void {\r\n\t\tconst state = this.state$.value\r\n\t\tif (!state) return\r\n\r\n\t\tif (state.currentIndex > 0) {\r\n\t\t\tthis.state$.next({\r\n\t\t\t\t...state,\r\n\t\t\t\tcurrentIndex: state.currentIndex - 1\r\n\t\t\t})\r\n\r\n\t\t\tthis.navigate()\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Determines whether the current step is the final step.\r\n\t *\r\n\t * @returns `true` if on the last step; otherwise `false`.\r\n\t */\r\n\tisLast(): boolean {\r\n\t\tconst state = this.state$.value\r\n\t\tif (!state) return false\r\n\t\treturn state.currentIndex === state.steps.length - 1\r\n\t}\r\n\r\n\t/**\r\n\t * Sets whether forward navigation is currently permitted.\r\n\t *\r\n\t * This is typically controlled by external validation logic (e.g., form state).\r\n\t *\r\n\t * @param available - `true` if forward navigation should be allowed.\r\n\t */\r\n\tsetStepForwardAvailability(available: boolean): void {\r\n\t\tthis.stepForwardAvailability$.next(available)\r\n\t}\r\n\r\n\t/**\r\n\t * Emits the forward navigation availability state.\r\n\t *\r\n\t * @returns Observable stream of the forward navigation flag.\r\n\t */\r\n\tgetStepForwardAvailability(): Observable<boolean> {\r\n\t\treturn this.stepForwardAvailability$.asObservable()\r\n\t}\r\n\r\n\t/**\r\n\t * Navigates the router to the currently active step.\r\n\t *\r\n\t * This method updates the URL relative to the injected route\r\n\t * using the pattern: `step-{slug}`.\r\n\t *\r\n\t * @internal\r\n\t */\r\n\tprivate navigate(): void {\r\n\t\tconst step = this.getCurrentStep()\r\n\t\tif (!step) return\r\n\r\n\t\tthis.router.navigate(\r\n\t\t\t[`step-${step.slug}`],\r\n\t\t\t{ relativeTo: this.activatedRoute }\r\n\t\t)\r\n\t}\r\n}\r\n\r\n","import { Component } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Observable } from 'rxjs'\r\nimport { StepDefinition } from '../../util/interface/step-definition.interface'\r\nimport { WizardStepService } from '../../util/service/wizard-step.service'\r\n\r\n@Component({\r\n selector: 'step',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './step.component.html',\r\n styleUrls: ['./step.component.sass']\r\n})\r\nexport class StepComponent {\r\n\t/**\r\n\t * @description an observable to the modal steps\r\n\t */\r\n steps: Observable<StepDefinition<any>[]>\r\n\t/**\r\n\t * @description an observable to the current step\r\n\t */\r\n currentIndex: Observable<number>;\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description class constructor specifying the required services and properties\r\n\t * @param stepService the service class which contains access to the modal steps functionality\r\n\t */\r\n constructor(private stepService: WizardStepService<any>) { }\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description the method to be run when the component is rendered\r\n\t */\r\n ngOnInit(): void {\r\n this.steps = this.stepService.getSteps$();\r\n this.currentIndex = this.stepService.getCurrentIndex$();\r\n }\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description handles the user clicking a step\r\n\t * @param step the step clicked\r\n\t */\r\n onStepClick(step: StepDefinition<any>) {\r\n // this.stepService.setCurrentStep(step);\r\n }\r\n}\r\n","<div class=\"form-steps-container\">\r\n\t<ng-container *ngFor=\"let step of steps | async; let i = index;\">\r\n\t\t<div class=\"d-flex flex-column align-items-center\">\r\n\t\t\t<div \r\n\t\t\t\t(click)=\"onStepClick(step)\"\r\n\t\t\t\t[ngClass]=\"{ 'step-complete': step.isComplete, 'step-incomplete': !step.isComplete, 'step-current': (currentIndex | async)?.stepIndex === step.stepIndex }\"\r\n\t\t\t\tclass=\"step-bubble cursor-pointer\"\r\n\t\t\t>{{ step.stepIndex }}</div>\r\n\t\t\t<div>\r\n\t\t\t\t<span class=\"text-grey\">{{step.title}}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div *ngIf=\"i < (steps | async)?.length - 1\" class=\"step-divider\"></div>\r\n\t</ng-container>\r\n</div>","import { StepDefinition } from '../interface/step-definition.interface'\r\n\r\nexport class WizardBuilder<T> {\r\n\t/**\r\n\t * @description an array containing the configuration for the wizard's steps\r\n\t */\r\n\tprivate steps: StepDefinition<T>[] = []\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description adds the specified step to the step array\r\n\t * @param step the step to be added\r\n\t * @returns {WizardBuilder<T>} the wizard builder instance\r\n\t */\r\n\taddStep(step: StepDefinition<T>): WizardBuilder<T> {\r\n\t\tthis.steps.push(step)\r\n\r\n\t\treturn this\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description builds the wizard steps to be used\r\n\t * @returns {StepDefinition<T>[]} an immutable copy of the steps\r\n\t */\r\n\tbuild(): StepDefinition<T>[] {\r\n\t\treturn [...this.steps] // Immutable copy\r\n\t}\r\n}","import { Inject, Injectable } from '@angular/core'\r\nimport { BehaviorSubject, Observable } from 'rxjs'\r\nimport { StepModel } from '../interface/modal-step.interface'\r\nimport { ActivatedRoute, Router } from '@angular/router'\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class StepService<T> {\r\n\t/**\r\n\t * @description the current index\r\n\t */\r\n\tprivate currentIndex = 0\r\n\t/**\r\n\t * @description the original step configuration\r\n\t */\r\n\toriginalSteps: StepModel<T>[]\r\n\t/**\r\n\t * @description the subject for the modal steps\r\n\t */\r\n\tsteps$: BehaviorSubject<StepModel<T>[]>\r\n\t/**\r\n\t * @description the subject for the current modal step\r\n\t */\r\n\tcurrentStep$: BehaviorSubject<StepModel<T> | null> = new BehaviorSubject<StepModel<T> | null>(null);\r\n\t/**\r\n\t * @description the subject for the step forward availability\r\n\t */\r\n\tstepForwardAvailability$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false)\r\n\t/**\r\n * @author Alex Hodson\r\n * @description class constructor specifying the required services and properties\r\n * @param steps the steps in the modal\r\n */\r\n\tconstructor(\r\n\t\tprivate router: Router,\r\n\t\tprivate activatedRoute: ActivatedRoute,\r\n\t\t@Inject('steps') private stepConfig: StepModel<T>[]\r\n\t) {\r\n\t\tthis.originalSteps = this.buildSteps(stepConfig)\r\n\t\tthis.steps$ = new BehaviorSubject(this.originalSteps)\r\n\t\tthis.currentStep$.next(this.originalSteps[0])\r\n\t}\r\n\tprivate buildSteps(config: Omit<StepModel<T>, 'stepIndex'>[]): StepModel<T>[] {\r\n\t\treturn config.map((step, index) => ({\r\n\t\t\t...step,\r\n\t\t\tstepIndex: index + 1\r\n\t\t}))\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description adjusts the step indexes to be sequential based on their position in the steps array\r\n\t */\r\n\tadjustStepIndexes(): void {\r\n\t\tconst rebuilt = this.steps$.value.map((step, index) => ({\r\n\t\t\t...step,\r\n\t\t\tstepIndex: index + 1\r\n\t\t}))\r\n\r\n\t\tthis.steps$.next(rebuilt)\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description inserts a new step at a specific index, specified by the step index property\r\n\t * @param step the step to be inserted\r\n\t */\r\n\tinsertStep(step: StepModel<T>): void {\r\n\t\tconst current = this.steps$.value\r\n\r\n\t\tconst updated = [\r\n\t\t\t...current.slice(0, step.stepIndex - 1),\r\n\t\t\tstep,\r\n\t\t\t...current.slice(step.stepIndex - 1)\r\n\t\t].map((s, index) => ({\r\n\t\t\t...s,\r\n\t\t\tstepIndex: index + 1\r\n\t\t}))\r\n\r\n\t\tthis.steps$.next(updated)\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description sets the current modal step\r\n\t * @param step the step to be set\r\n\t */\r\n\tsetCurrentStep(step: StepModel<T>): void {\r\n\t\tthis.currentStep$.next(step)\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description returns the current modal step observable\r\n\t * @returns the current modal step observable\r\n\t */\r\n\tgetCurrentStepObservable(): Observable<StepModel<T> | null> {\r\n\t\treturn this.currentStep$.asObservable()\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description returns the current modal step observable\r\n\t * @returns the current modal step observable\r\n\t */\r\n\tgetCurrentStep(): StepModel<T> | null {\r\n\t\treturn this.currentStep$.getValue()\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description retrieves the current steps\r\n\t * @returns the current steps\r\n\t */\r\n\tgetSteps(): StepModel<T>[] {\r\n\t\treturn this.steps$.getValue()\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description returns the modal step observable\r\n\t * @returns the modal step observable\r\n\t */\r\n\tgetStepsObservable(): Observable<StepModel<T>[]> {\r\n\t\treturn this.steps$.asObservable()\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description sets the step forward availability\r\n\t * @param available whether a step forward is available\r\n\t */\r\n\tsetStepForwardAvailability(available: boolean): void {\r\n\t\tthis.stepForwardAvailability$.next(available)\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description returns the step forward availability observable\r\n\t * @returns the step forward availability observable\r\n\t */\r\n\tgetStepForwardAvailability(): Observable<boolean> {\r\n\t\treturn this.stepForwardAvailability$.asObservable()\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description moves to the next modal step\r\n\t */\r\n\tmoveToNextStep(): void {\r\n\t\tif (this.currentIndex < this.steps$.value.length - 1) {\r\n\t\t\tthis.currentIndex++\r\n\t\t\tthis.currentStep$.next(this.steps$.value[this.currentIndex])\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description moves to the previous modal step\r\n\t */\r\n\tmoveToPreviousStep(): void {\r\n\t\tconst previous = this.steps$.getValue()[this.currentIndex - 1]\r\n\r\n\t\tif (!previous) return\r\n\r\n\t\tthis.currentStep$.next({\r\n\t\t\t...previous,\r\n\t\t\t'triggerCallback': false\r\n\t\t})\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description determines whether the current step is the last\r\n\t * @returns whether the step is the last one\r\n\t */\r\n\tisLastStep(): boolean {\r\n\t\treturn this.currentIndex === this.steps$.value.length\r\n\t}\r\n\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description triggers any potential \"after-step\" functionality for the current step and changes the current route with any required parameters\r\n\t * @param getParameterValue the callback which retrieves the value for a step parameter\r\n\t * @param triggerStepCallback the callback which triggers the specific functionality for the specified step index\r\n\t */\r\n\tasync handleStepChange(getParameterValue?: (...args: any) => any, triggerStepCallback?: (...args: any) => Promise<boolean>, revert: boolean = false): Promise<void | null> {\r\n\t\tconst currentStep = this.currentStep$.value\r\n\r\n\t\tif (!currentStep) return\r\n\r\n\t\tconst { stepIndex, triggerCallback } = currentStep\r\n\r\n\t\tif (triggerCallback && triggerStepCallback) {\r\n\t\t\tconst results = await triggerStepCallback(stepIndex)\r\n\r\n\t\t\tif (!results && revert) return this.moveToPreviousStep()\r\n\t\t}\r\n\r\n\t\tthis.handleNavigation(getParameterValue, currentStep)\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description handles the modification of the system route which will navigate to the specified step. If no step is provided, then the stored current step is used\r\n\t * @param getParameterValue the callback which retrieves the value for a step parameter\r\n\t * @param step an optional step which will be used to navigate to\r\n\t */\r\n\thandleNavigation(getParameterValue?: (...args: any) => any, step?: StepModel<T>): void {\r\n\t\tconst currentStep = step || this.currentStep$.value\r\n\r\n\t\tif (!currentStep) return\r\n\r\n\t\tconst { slug, parameters } = currentStep\r\n\r\n\t\tlet route = `step-${slug}`\r\n\t\tif (getParameterValue) parameters.forEach((element) => route += `/${getParameterValue(element)}`)\r\n\t\tthis.router.navigate([route], { relativeTo: this.activatedRoute })\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description clears any route paths and/or parameters created during the step functionality, reverting the url back to the original state when the step paths were appended\r\n\t */\r\n\tclearStepRoute(): void {\r\n\t\tconst url = this.router.url\r\n\t\tconst [initial] = url.split('/step-')\r\n\t\tthis.router.navigate([initial])\r\n\t}\r\n}\r\n","/*\r\n * Public API Surface of windows-plus-utilities\r\n */\r\nexport * from './components/step/step.component';\r\n\r\nexport * from './util/helper/wizard-builder.service'\r\n\r\nexport * from './util/interface/modal-step.interface'\r\nexport * from './util/interface/step-definition.interface'\r\nexport * from './util/interface/stepped-modal.interface'\r\nexport * from './util/interface/wizard-state.interface'\r\n\r\nexport * from './util/service/wizard-step.service'\r\nexport * from './util/service/step.service'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.WizardStepService"],"mappings":"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"}
1
+ {"version":3,"file":"windows-plus-utilities-modal-wizard.mjs","sources":["../../../projects/windows-plus-utilities/modal-wizard/util/service/wizard-step.service.ts","../../../projects/windows-plus-utilities/modal-wizard/components/step/step.component.ts","../../../projects/windows-plus-utilities/modal-wizard/components/step/step.component.html","../../../projects/windows-plus-utilities/modal-wizard/util/helper/wizard-builder.service.ts","../../../projects/windows-plus-utilities/modal-wizard/util/service/step.service.ts","../../../projects/windows-plus-utilities/modal-wizard/public-api.ts","../../../projects/windows-plus-utilities/modal-wizard/windows-plus-utilities-modal-wizard.ts"],"sourcesContent":["import { Injectable } from '@angular/core'\r\nimport { Router, ActivatedRoute } from '@angular/router'\r\nimport { BehaviorSubject, Observable, map } from 'rxjs'\r\nimport { StepDefinition } from '../interface/step-definition.interface'\r\nimport { WizardState } from '../interface/wizard-state.interface'\r\n/**\r\n * A finite state machine service used to manage wizard-style step navigation.\r\n *\r\n * This service maintains an immutable list of {@link StepDefinition} objects and\r\n * tracks the current active step index internally. It exposes reactive streams\r\n * for step data and navigation state, and coordinates router navigation when\r\n * transitions occur.\r\n *\r\n * The service is intentionally component-scoped and must be provided at the\r\n * component level. Each wizard instance should create and initialize its own\r\n * service instance.\r\n *\r\n * @typeParam T - The type used for step parameter definitions.\r\n */\r\n@Injectable()\r\nexport class WizardStepService<T> {\r\n\r\n\t/**\r\n\t * Internal state container for the wizard.\r\n\t *\r\n\t * Holds the ordered step definitions and the currently active index.\r\n\t * A `null` value indicates the wizard has not yet been initialized.\r\n\t */\r\n\tprivate state$ = new BehaviorSubject<WizardState<T> | null>(null)\r\n\r\n\t/**\r\n\t * Emits whether forward navigation is currently allowed.\r\n\t *\r\n\t * This can be controlled externally (e.g., form validity).\r\n\t */\r\n\tprivate stepForwardAvailability$ = new BehaviorSubject<boolean>(false)\r\n\r\n\t/**\r\n\t * Creates a new WizardStepService instance.\r\n\t *\r\n\t * @param router - Angular Router used to update the URL when step changes occur.\r\n\t * @param activatedRoute - The current route used as the relative base for navigation.\r\n\t */\r\n\tconstructor(\r\n\t\tprivate router: Router,\r\n\t\tprivate activatedRoute: ActivatedRoute\r\n\t) { }\r\n\r\n\t/**\r\n\t * Initializes the wizard with an ordered list of step definitions.\r\n\t *\r\n\t * This method must be called before navigation methods are used.\r\n\t * It resets the wizard state and navigates to the first step.\r\n\t *\r\n\t * @param steps - The ordered collection of step definitions.\r\n\t */\r\n\tinitialize(steps: StepDefinition<T>[]): void {\r\n\t\tthis.state$.next({\r\n\t\t\tsteps: [...steps], // defensive copy\r\n\t\t\tcurrentIndex: 0\r\n\t\t})\r\n\r\n\t\tthis.navigate()\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the currently active step synchronously.\r\n\t *\r\n\t * @returns The active {@link StepDefinition}, or `null` if not initialized.\r\n\t */\r\n\tgetCurrentStep(): StepDefinition<T> | null {\r\n\t\treturn this.state$.value?.steps[this.state$.value.currentIndex] ?? null\r\n\t}\r\n\r\n\t/**\r\n\t * Emits the currently active step whenever the wizard state changes.\r\n\t *\r\n\t * @returns Observable stream of the active step or `null` if uninitialized.\r\n\t */\r\n\tgetCurrentStep$(): Observable<StepDefinition<T> | null> {\r\n\t\treturn this.state$.pipe(\r\n\t\t\tmap(state =>\r\n\t\t\t\tstate ? state.steps[state.currentIndex] : null\r\n\t\t\t)\r\n\t\t)\r\n\t}\r\n\r\n\t/**\r\n\t * Emits the full ordered list of wizard steps.\r\n\t *\r\n\t * @returns Observable stream of step definitions.\r\n\t */\r\n\tgetSteps$(): Observable<StepDefinition<T>[]> {\r\n\t\treturn this.state$.pipe(\r\n\t\t\tmap(state => state?.steps ?? [])\r\n\t\t)\r\n\t}\r\n\r\n\t/**\r\n\t * Emits the current active step index.\r\n\t *\r\n\t * @returns Observable stream of the current index (0-based).\r\n\t */\r\n\tgetCurrentIndex$(): Observable<number> {\r\n\t\treturn this.state$.pipe(\r\n\t\t\tmap(state => state?.currentIndex ?? 0)\r\n\t\t)\r\n\t}\r\n\r\n\t/**\r\n\t * Attempts to transition to the next step.\r\n\t *\r\n\t * If the current step defines an `onExit` guard, it will be executed before\r\n\t * transitioning. If the guard returns `false` (or resolves to `false`),\r\n\t * the transition is cancelled.\r\n\t *\r\n\t * @param context - Optional contextual data passed to the `onExit` guard.\r\n\t */\r\n\tasync next(context?: any): Promise<void> {\r\n\t\tconst state = this.state$.value\r\n\t\tif (!state) return\r\n\r\n\t\tconst current = state.steps[state.currentIndex]\r\n\r\n\t\tif (current.onExit) {\r\n\t\t\tconst allowed = await current.onExit(context)\r\n\t\t\tif (!allowed) return\r\n\t\t}\r\n\r\n\t\tif (state.currentIndex < state.steps.length - 1) {\r\n\t\t\tthis.state$.next({\r\n\t\t\t\t...state,\r\n\t\t\t\tcurrentIndex: state.currentIndex + 1\r\n\t\t\t})\r\n\r\n\t\t\tthis.navigate()\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Moves the wizard to the previous step if possible.\r\n\t *\r\n\t * No guards are executed during backward navigation.\r\n\t */\r\n\tprevious(): void {\r\n\t\tconst state = this.state$.value\r\n\t\tif (!state) return\r\n\r\n\t\tif (state.currentIndex > 0) {\r\n\t\t\tthis.state$.next({\r\n\t\t\t\t...state,\r\n\t\t\t\tcurrentIndex: state.currentIndex - 1\r\n\t\t\t})\r\n\r\n\t\t\tthis.navigate()\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Determines whether the current step is the final step.\r\n\t *\r\n\t * @returns `true` if on the last step; otherwise `false`.\r\n\t */\r\n\tisLast(): boolean {\r\n\t\tconst state = this.state$.value\r\n\t\tif (!state) return false\r\n\t\treturn state.currentIndex === state.steps.length - 1\r\n\t}\r\n\r\n\t/**\r\n\t * Sets whether forward navigation is currently permitted.\r\n\t *\r\n\t * This is typically controlled by external validation logic (e.g., form state).\r\n\t *\r\n\t * @param available - `true` if forward navigation should be allowed.\r\n\t */\r\n\tsetStepForwardAvailability(available: boolean): void {\r\n\t\tthis.stepForwardAvailability$.next(available)\r\n\t}\r\n\r\n\t/**\r\n\t * Emits the forward navigation availability state.\r\n\t *\r\n\t * @returns Observable stream of the forward navigation flag.\r\n\t */\r\n\tgetStepForwardAvailability(): Observable<boolean> {\r\n\t\treturn this.stepForwardAvailability$.asObservable()\r\n\t}\r\n\r\n\t/**\r\n\t * Navigates the router to the currently active step.\r\n\t *\r\n\t * This method updates the URL relative to the injected route\r\n\t * using the pattern: `step-{slug}`.\r\n\t *\r\n\t * @internal\r\n\t */\r\n\tprivate navigate(): void {\r\n\t\tconst step = this.getCurrentStep()\r\n\t\tif (!step) return\r\n\r\n\t\tthis.router.navigate(\r\n\t\t\t[`step-${step.slug}`],\r\n\t\t\t{ relativeTo: this.activatedRoute }\r\n\t\t)\r\n\t}\r\n\t/**\r\n\t * Navigates the router away from any \"step\" route.\r\n\t * \r\n\t * This methods updates the URL relative to the injected route, removing every after `/step-\r\n\t */\r\n\tclearStepRoute(): void {\r\n\t\tconst url = this.router.url\r\n\t\tconst [initial] = url.split('/step-')\r\n\t\tthis.router.navigate([initial])\r\n\t}\r\n}\r\n\r\n","import { Component } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Observable } from 'rxjs'\r\nimport { StepDefinition } from '../../util/interface/step-definition.interface'\r\nimport { WizardStepService } from '../../util/service/wizard-step.service'\r\n\r\n@Component({\r\n selector: 'step',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './step.component.html',\r\n styleUrls: ['./step.component.sass']\r\n})\r\nexport class StepComponent {\r\n\t/**\r\n\t * @description an observable to the modal steps\r\n\t */\r\n steps: Observable<StepDefinition<any>[]>\r\n\t/**\r\n\t * @description an observable to the current step\r\n\t */\r\n currentIndex: Observable<number>;\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description class constructor specifying the required services and properties\r\n\t * @param stepService the service class which contains access to the modal steps functionality\r\n\t */\r\n constructor(private stepService: WizardStepService<any>) { }\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description the method to be run when the component is rendered\r\n\t */\r\n ngOnInit(): void {\r\n this.steps = this.stepService.getSteps$();\r\n this.currentIndex = this.stepService.getCurrentIndex$();\r\n }\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description handles the user clicking a step\r\n\t * @param step the step clicked\r\n\t */\r\n onStepClick(step: StepDefinition<any>) {\r\n // this.stepService.setCurrentStep(step);\r\n }\r\n}\r\n","<div class=\"form-steps-container\">\r\n\t<ng-container *ngFor=\"let step of steps | async; let i = index;\">\r\n\t\t<div class=\"d-flex flex-column align-items-center\">\r\n\t\t\t<div \r\n\t\t\t\t(click)=\"onStepClick(step)\"\r\n\t\t\t\t[ngClass]=\"{ 'step-complete': step.isComplete, 'step-incomplete': !step.isComplete, 'step-current': (currentIndex | async) === i }\"\r\n\t\t\t\tclass=\"step-bubble cursor-pointer\"\r\n\t\t\t>{{ i + 1}}</div>\r\n\t\t\t<div>\r\n\t\t\t\t<span class=\"text-grey\">{{step.title}}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div *ngIf=\"i < (steps | async)?.length - 1\" class=\"step-divider\"></div>\r\n\t</ng-container>\r\n</div>","import { StepDefinition } from '../interface/step-definition.interface'\r\n\r\nexport class WizardBuilder<T> {\r\n\t/**\r\n\t * @description an array containing the configuration for the wizard's steps\r\n\t */\r\n\tprivate steps: StepDefinition<T>[] = []\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description adds the specified step to the step array\r\n\t * @param step the step to be added\r\n\t * @returns {WizardBuilder<T>} the wizard builder instance\r\n\t */\r\n\taddStep(step: StepDefinition<T>): WizardBuilder<T> {\r\n\t\tthis.steps.push(step)\r\n\r\n\t\treturn this\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description builds the wizard steps to be used\r\n\t * @returns {StepDefinition<T>[]} an immutable copy of the steps\r\n\t */\r\n\tbuild(): StepDefinition<T>[] {\r\n\t\treturn [...this.steps] // Immutable copy\r\n\t}\r\n}","import { Inject, Injectable } from '@angular/core'\r\nimport { BehaviorSubject, Observable } from 'rxjs'\r\nimport { StepModel } from '../interface/modal-step.interface'\r\nimport { ActivatedRoute, Router } from '@angular/router'\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class StepService<T> {\r\n\t/**\r\n\t * @description the current index\r\n\t */\r\n\tprivate currentIndex = 0\r\n\t/**\r\n\t * @description the original step configuration\r\n\t */\r\n\toriginalSteps: StepModel<T>[]\r\n\t/**\r\n\t * @description the subject for the modal steps\r\n\t */\r\n\tsteps$: BehaviorSubject<StepModel<T>[]>\r\n\t/**\r\n\t * @description the subject for the current modal step\r\n\t */\r\n\tcurrentStep$: BehaviorSubject<StepModel<T> | null> = new BehaviorSubject<StepModel<T> | null>(null);\r\n\t/**\r\n\t * @description the subject for the step forward availability\r\n\t */\r\n\tstepForwardAvailability$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false)\r\n\t/**\r\n * @author Alex Hodson\r\n * @description class constructor specifying the required services and properties\r\n * @param steps the steps in the modal\r\n */\r\n\tconstructor(\r\n\t\tprivate router: Router,\r\n\t\tprivate activatedRoute: ActivatedRoute,\r\n\t\t@Inject('steps') private stepConfig: StepModel<T>[]\r\n\t) {\r\n\t\tthis.originalSteps = this.buildSteps(stepConfig)\r\n\t\tthis.steps$ = new BehaviorSubject(this.originalSteps)\r\n\t\tthis.currentStep$.next(this.originalSteps[0])\r\n\t}\r\n\tprivate buildSteps(config: Omit<StepModel<T>, 'stepIndex'>[]): StepModel<T>[] {\r\n\t\treturn config.map((step, index) => ({\r\n\t\t\t...step,\r\n\t\t\tstepIndex: index + 1\r\n\t\t}))\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description adjusts the step indexes to be sequential based on their position in the steps array\r\n\t */\r\n\tadjustStepIndexes(): void {\r\n\t\tconst rebuilt = this.steps$.value.map((step, index) => ({\r\n\t\t\t...step,\r\n\t\t\tstepIndex: index + 1\r\n\t\t}))\r\n\r\n\t\tthis.steps$.next(rebuilt)\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description inserts a new step at a specific index, specified by the step index property\r\n\t * @param step the step to be inserted\r\n\t */\r\n\tinsertStep(step: StepModel<T>): void {\r\n\t\tconst current = this.steps$.value\r\n\r\n\t\tconst updated = [\r\n\t\t\t...current.slice(0, step.stepIndex - 1),\r\n\t\t\tstep,\r\n\t\t\t...current.slice(step.stepIndex - 1)\r\n\t\t].map((s, index) => ({\r\n\t\t\t...s,\r\n\t\t\tstepIndex: index + 1\r\n\t\t}))\r\n\r\n\t\tthis.steps$.next(updated)\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description sets the current modal step\r\n\t * @param step the step to be set\r\n\t */\r\n\tsetCurrentStep(step: StepModel<T>): void {\r\n\t\tthis.currentStep$.next(step)\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description returns the current modal step observable\r\n\t * @returns the current modal step observable\r\n\t */\r\n\tgetCurrentStepObservable(): Observable<StepModel<T> | null> {\r\n\t\treturn this.currentStep$.asObservable()\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description returns the current modal step observable\r\n\t * @returns the current modal step observable\r\n\t */\r\n\tgetCurrentStep(): StepModel<T> | null {\r\n\t\treturn this.currentStep$.getValue()\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description retrieves the current steps\r\n\t * @returns the current steps\r\n\t */\r\n\tgetSteps(): StepModel<T>[] {\r\n\t\treturn this.steps$.getValue()\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description returns the modal step observable\r\n\t * @returns the modal step observable\r\n\t */\r\n\tgetStepsObservable(): Observable<StepModel<T>[]> {\r\n\t\treturn this.steps$.asObservable()\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description sets the step forward availability\r\n\t * @param available whether a step forward is available\r\n\t */\r\n\tsetStepForwardAvailability(available: boolean): void {\r\n\t\tthis.stepForwardAvailability$.next(available)\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description returns the step forward availability observable\r\n\t * @returns the step forward availability observable\r\n\t */\r\n\tgetStepForwardAvailability(): Observable<boolean> {\r\n\t\treturn this.stepForwardAvailability$.asObservable()\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description moves to the next modal step\r\n\t */\r\n\tmoveToNextStep(): void {\r\n\t\tif (this.currentIndex < this.steps$.value.length - 1) {\r\n\t\t\tthis.currentIndex++\r\n\t\t\tthis.currentStep$.next(this.steps$.value[this.currentIndex])\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description moves to the previous modal step\r\n\t */\r\n\tmoveToPreviousStep(): void {\r\n\t\tconst previous = this.steps$.getValue()[this.currentIndex - 1]\r\n\r\n\t\tif (!previous) return\r\n\r\n\t\tthis.currentStep$.next({\r\n\t\t\t...previous,\r\n\t\t\t'triggerCallback': false\r\n\t\t})\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description determines whether the current step is the last\r\n\t * @returns whether the step is the last one\r\n\t */\r\n\tisLastStep(): boolean {\r\n\t\treturn this.currentIndex === this.steps$.value.length\r\n\t}\r\n\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description triggers any potential \"after-step\" functionality for the current step and changes the current route with any required parameters\r\n\t * @param getParameterValue the callback which retrieves the value for a step parameter\r\n\t * @param triggerStepCallback the callback which triggers the specific functionality for the specified step index\r\n\t */\r\n\tasync handleStepChange(getParameterValue?: (...args: any) => any, triggerStepCallback?: (...args: any) => Promise<boolean>, revert: boolean = false): Promise<void | null> {\r\n\t\tconst currentStep = this.currentStep$.value\r\n\r\n\t\tif (!currentStep) return\r\n\r\n\t\tconst { stepIndex, triggerCallback } = currentStep\r\n\r\n\t\tif (triggerCallback && triggerStepCallback) {\r\n\t\t\tconst results = await triggerStepCallback(stepIndex)\r\n\r\n\t\t\tif (!results && revert) return this.moveToPreviousStep()\r\n\t\t}\r\n\r\n\t\tthis.handleNavigation(getParameterValue, currentStep)\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description handles the modification of the system route which will navigate to the specified step. If no step is provided, then the stored current step is used\r\n\t * @param getParameterValue the callback which retrieves the value for a step parameter\r\n\t * @param step an optional step which will be used to navigate to\r\n\t */\r\n\thandleNavigation(getParameterValue?: (...args: any) => any, step?: StepModel<T>): void {\r\n\t\tconst currentStep = step || this.currentStep$.value\r\n\r\n\t\tif (!currentStep) return\r\n\r\n\t\tconst { slug, parameters } = currentStep\r\n\r\n\t\tlet route = `step-${slug}`\r\n\t\tif (getParameterValue) parameters.forEach((element) => route += `/${getParameterValue(element)}`)\r\n\t\tthis.router.navigate([route], { relativeTo: this.activatedRoute })\r\n\t}\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description clears any route paths and/or parameters created during the step functionality, reverting the url back to the original state when the step paths were appended\r\n\t */\r\n\tclearStepRoute(): void {\r\n\t\tconst url = this.router.url\r\n\t\tconst [initial] = url.split('/step-')\r\n\t\tthis.router.navigate([initial])\r\n\t}\r\n}\r\n","/*\r\n * Public API Surface of windows-plus-utilities\r\n */\r\nexport * from './components/step/step.component';\r\n\r\nexport * from './util/helper/wizard-builder.service'\r\n\r\nexport * from './util/interface/modal-step.interface'\r\nexport * from './util/interface/step-definition.interface'\r\nexport * from './util/interface/stepped-modal.interface'\r\nexport * from './util/interface/wizard-modal.interface'\r\nexport * from './util/interface/wizard-state.interface'\r\n\r\nexport * from './util/service/wizard-step.service'\r\nexport * from './util/service/step.service'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.WizardStepService"],"mappings":"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"}
@@ -3,6 +3,7 @@ export * from './util/helper/wizard-builder.service';
3
3
  export * from './util/interface/modal-step.interface';
4
4
  export * from './util/interface/step-definition.interface';
5
5
  export * from './util/interface/stepped-modal.interface';
6
+ export * from './util/interface/wizard-modal.interface';
6
7
  export * from './util/interface/wizard-state.interface';
7
8
  export * from './util/service/wizard-step.service';
8
9
  export * from './util/service/step.service';
@@ -0,0 +1,33 @@
1
+ import { Subscription } from 'rxjs';
2
+ /**
3
+ * @author Alex Hodson
4
+ * @description an interface defining the properties for a wizard modal
5
+ */
6
+ export interface WizardModal<T> {
7
+ /**
8
+ * @description a subscription to the step forward availability observable
9
+ */
10
+ stepForwardAvailabilityObservable: Subscription;
11
+ /**
12
+ * @author Alex Hodson
13
+ * @description handles the functionality when the user navigating to the next step
14
+ */
15
+ onNextStep(): void;
16
+ /**
17
+ * @author Alex Hodson
18
+ * @description handles the closing of the modal
19
+ * @param reason the reason the modal is being closed
20
+ */
21
+ handleModalClose(reason: any): void;
22
+ /**
23
+ * @author Alex Hodson
24
+ * @description handles the modal being manually closed
25
+ * @param reason the reason the modal is being closed
26
+ */
27
+ handleManualClose(reason: any): void;
28
+ /**
29
+ * @author Alex Hodson
30
+ * @description handles the completion of all steps in the modal
31
+ */
32
+ onSubmit(): void;
33
+ }
@@ -117,6 +117,12 @@ export declare class WizardStepService<T> {
117
117
  * @internal
118
118
  */
119
119
  private navigate;
120
+ /**
121
+ * Navigates the router away from any "step" route.
122
+ *
123
+ * This methods updates the URL relative to the injected route, removing every after `/step-
124
+ */
125
+ clearStepRoute(): void;
120
126
  static ɵfac: i0.ɵɵFactoryDeclaration<WizardStepService<any>, never>;
121
127
  static ɵprov: i0.ɵɵInjectableDeclaration<WizardStepService<any>>;
122
128
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "windows-plus-utilities",
3
- "version": "0.0.86",
3
+ "version": "0.0.88",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.3.8",
6
6
  "@angular/core": "^17.3.8",
@@ -31,6 +31,12 @@
31
31
  "esm": "./esm2022/context-menu/windows-plus-utilities-context-menu.mjs",
32
32
  "default": "./fesm2022/windows-plus-utilities-context-menu.mjs"
33
33
  },
34
+ "./empty-display": {
35
+ "types": "./empty-display/index.d.ts",
36
+ "esm2022": "./esm2022/empty-display/windows-plus-utilities-empty-display.mjs",
37
+ "esm": "./esm2022/empty-display/windows-plus-utilities-empty-display.mjs",
38
+ "default": "./fesm2022/windows-plus-utilities-empty-display.mjs"
39
+ },
34
40
  "./custom-card": {
35
41
  "types": "./custom-card/index.d.ts",
36
42
  "esm2022": "./esm2022/custom-card/windows-plus-utilities-custom-card.mjs",
@@ -43,12 +49,6 @@
43
49
  "esm": "./esm2022/job-label/windows-plus-utilities-job-label.mjs",
44
50
  "default": "./fesm2022/windows-plus-utilities-job-label.mjs"
45
51
  },
46
- "./empty-display": {
47
- "types": "./empty-display/index.d.ts",
48
- "esm2022": "./esm2022/empty-display/windows-plus-utilities-empty-display.mjs",
49
- "esm": "./esm2022/empty-display/windows-plus-utilities-empty-display.mjs",
50
- "default": "./fesm2022/windows-plus-utilities-empty-display.mjs"
51
- },
52
52
  "./main-menu": {
53
53
  "types": "./main-menu/index.d.ts",
54
54
  "esm2022": "./esm2022/main-menu/windows-plus-utilities-main-menu.mjs",