windows-plus-utilities 0.0.68 → 0.0.70

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.
@@ -18,7 +18,7 @@ export class StepComponent {
18
18
  */
19
19
  ngOnInit() {
20
20
  this.steps = this.stepService.getSteps();
21
- this.currentStep = this.stepService.getCurrentStep();
21
+ this.currentStep = this.stepService.getCurrentStepObservable();
22
22
  }
23
23
  /**
24
24
  * @author Alex Hodson
@@ -35,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
35
35
  type: Component,
36
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': (currentStep | 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"] }]
37
37
  }], ctorParameters: () => [{ type: i1.StepService }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aW5kb3dzLXBsdXMtdXRpbGl0aWVzL21vZGFsLXdpemFyZC9jb21wb25lbnRzL3N0ZXAvc3RlcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aW5kb3dzLXBsdXMtdXRpbGl0aWVzL21vZGFsLXdpemFyZC9jb21wb25lbnRzL3N0ZXAvc3RlcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVkvQyxNQUFNLE9BQU8sYUFBYTtJQVN6Qjs7OztPQUlHO0lBQ0YsWUFBb0IsV0FBNkI7UUFBN0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO0lBQUksQ0FBQztJQUN2RDs7O09BR0c7SUFDRixRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBQ0Y7Ozs7T0FJRztJQUNGLFdBQVcsQ0FBQyxJQUFvQjtRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDOzhHQTlCVSxhQUFhO2tHQUFiLGFBQWEsZ0VDYjFCLDRyQkFjTSxxb0JETE0sWUFBWTs7MkZBSVgsYUFBYTtrQkFQekIsU0FBUzsrQkFDRSxNQUFNLGNBQ0osSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBTdGVwTW9kZWwgfSBmcm9tICcuLi8uLi91dGlsL2ludGVyZmFjZS9tb2RhbC1zdGVwLmludGVyZmFjZSdcclxuaW1wb3J0IHsgU3RlcFNlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlsL3NlcnZpY2Uvc3RlcC5zZXJ2aWNlJ1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzdGVwJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGVwLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zdGVwLmNvbXBvbmVudC5zYXNzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFN0ZXBDb21wb25lbnQge1xyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiBhbiBvYnNlcnZhYmxlIHRvIHRoZSBtb2RhbCBzdGVwc1xyXG5cdCAqL1xyXG4gIHN0ZXBzOiBPYnNlcnZhYmxlPFN0ZXBNb2RlbDxhbnk+W10+XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIGFuIG9ic2VydmFibGUgdG8gdGhlIGN1cnJlbnQgc3RlcFxyXG5cdCAqL1xyXG4gIGN1cnJlbnRTdGVwOiBPYnNlcnZhYmxlPFN0ZXBNb2RlbDxhbnk+fG51bGw+O1xyXG5cdC8qKlxyXG5cdCAqIEBhdXRob3IgQWxleCBIb2Rzb25cclxuXHQgKiBAZGVzY3JpcHRpb24gY2xhc3MgY29uc3RydWN0b3Igc3BlY2lmeWluZyB0aGUgcmVxdWlyZWQgc2VydmljZXMgYW5kIHByb3BlcnRpZXNcclxuXHQgKiBAcGFyYW0gc3RlcFNlcnZpY2UgdGhlIHNlcnZpY2UgY2xhc3Mgd2hpY2ggY29udGFpbnMgYWNjZXNzIHRvIHRoZSBtb2RhbCBzdGVwcyBmdW5jdGlvbmFsaXR5XHJcblx0ICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdGVwU2VydmljZTogU3RlcFNlcnZpY2U8YW55PikgeyB9XHJcblx0LyoqXHJcblx0ICogQGF1dGhvciBBbGV4IEhvZHNvblxyXG5cdCAqIEBkZXNjcmlwdGlvbiB0aGUgbWV0aG9kIHRvIGJlIHJ1biB3aGVuIHRoZSBjb21wb25lbnQgaXMgcmVuZGVyZWRcclxuXHQgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RlcHMgPSB0aGlzLnN0ZXBTZXJ2aWNlLmdldFN0ZXBzKCk7XHJcbiAgICB0aGlzLmN1cnJlbnRTdGVwID0gdGhpcy5zdGVwU2VydmljZS5nZXRDdXJyZW50U3RlcCgpO1xyXG4gIH1cclxuXHQvKipcclxuXHQgKiBAYXV0aG9yIEFsZXggSG9kc29uXHJcblx0ICogQGRlc2NyaXB0aW9uIGhhbmRsZXMgdGhlIHVzZXIgY2xpY2tpbmcgYSBzdGVwXHJcblx0ICogQHBhcmFtIHN0ZXAgdGhlIHN0ZXAgY2xpY2tlZFxyXG5cdCAqL1xyXG4gIG9uU3RlcENsaWNrKHN0ZXA6IFN0ZXBNb2RlbDxhbnk+KSB7XHJcbiAgICB0aGlzLnN0ZXBTZXJ2aWNlLnNldEN1cnJlbnRTdGVwKHN0ZXApO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1zdGVwcy1jb250YWluZXJcIj5cclxuXHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdGVwIG9mIHN0ZXBzIHwgYXN5bmM7IGxldCBpID0gaW5kZXg7XCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG5cdFx0XHQ8ZGl2IFxyXG5cdFx0XHRcdChjbGljayk9XCJvblN0ZXBDbGljayhzdGVwKVwiXHJcblx0XHRcdFx0W25nQ2xhc3NdPVwieyAnc3RlcC1jb21wbGV0ZSc6IHN0ZXAuaXNDb21wbGV0ZSwgJ3N0ZXAtaW5jb21wbGV0ZSc6ICFzdGVwLmlzQ29tcGxldGUsICdzdGVwLWN1cnJlbnQnOiAoY3VycmVudFN0ZXAgfCBhc3luYyk/LnN0ZXBJbmRleCA9PT0gc3RlcC5zdGVwSW5kZXggfVwiXHJcblx0XHRcdFx0Y2xhc3M9XCJzdGVwLWJ1YmJsZSBjdXJzb3ItcG9pbnRlclwiXHJcblx0XHRcdD57eyBzdGVwLnN0ZXBJbmRleCB9fTwvZGl2PlxyXG5cdFx0XHQ8ZGl2PlxyXG5cdFx0XHRcdDxzcGFuIGNsYXNzPVwidGV4dC1ncmV5XCI+e3tzdGVwLnRpdGxlfX08L3NwYW4+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8ZGl2ICpuZ0lmPVwiaSA8IChzdGVwcyB8IGFzeW5jKT8ubGVuZ3RoIC0gMVwiIGNsYXNzPVwic3RlcC1kaXZpZGVyXCI+PC9kaXY+XHJcblx0PC9uZy1jb250YWluZXI+XHJcbjwvZGl2PiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aW5kb3dzLXBsdXMtdXRpbGl0aWVzL21vZGFsLXdpemFyZC9jb21wb25lbnRzL3N0ZXAvc3RlcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aW5kb3dzLXBsdXMtdXRpbGl0aWVzL21vZGFsLXdpemFyZC9jb21wb25lbnRzL3N0ZXAvc3RlcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVkvQyxNQUFNLE9BQU8sYUFBYTtJQVN6Qjs7OztPQUlHO0lBQ0YsWUFBb0IsV0FBNkI7UUFBN0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO0lBQUksQ0FBQztJQUN2RDs7O09BR0c7SUFDRixRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ2pFLENBQUM7SUFDRjs7OztPQUlHO0lBQ0YsV0FBVyxDQUFDLElBQW9CO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7OEdBOUJVLGFBQWE7a0dBQWIsYUFBYSxnRUNiMUIsNHJCQWNNLHFvQkRMTSxZQUFZOzsyRkFJWCxhQUFhO2tCQVB6QixTQUFTOytCQUNFLE1BQU0sY0FDSixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IFN0ZXBNb2RlbCB9IGZyb20gJy4uLy4uL3V0aWwvaW50ZXJmYWNlL21vZGFsLXN0ZXAuaW50ZXJmYWNlJ1xyXG5pbXBvcnQgeyBTdGVwU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWwvc2VydmljZS9zdGVwLnNlcnZpY2UnXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3N0ZXAnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3N0ZXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3N0ZXAuY29tcG9uZW50LnNhc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RlcENvbXBvbmVudCB7XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIGFuIG9ic2VydmFibGUgdG8gdGhlIG1vZGFsIHN0ZXBzXHJcblx0ICovXHJcbiAgc3RlcHM6IE9ic2VydmFibGU8U3RlcE1vZGVsPGFueT5bXT5cclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gYW4gb2JzZXJ2YWJsZSB0byB0aGUgY3VycmVudCBzdGVwXHJcblx0ICovXHJcbiAgY3VycmVudFN0ZXA6IE9ic2VydmFibGU8U3RlcE1vZGVsPGFueT58bnVsbD47XHJcblx0LyoqXHJcblx0ICogQGF1dGhvciBBbGV4IEhvZHNvblxyXG5cdCAqIEBkZXNjcmlwdGlvbiBjbGFzcyBjb25zdHJ1Y3RvciBzcGVjaWZ5aW5nIHRoZSByZXF1aXJlZCBzZXJ2aWNlcyBhbmQgcHJvcGVydGllc1xyXG5cdCAqIEBwYXJhbSBzdGVwU2VydmljZSB0aGUgc2VydmljZSBjbGFzcyB3aGljaCBjb250YWlucyBhY2Nlc3MgdG8gdGhlIG1vZGFsIHN0ZXBzIGZ1bmN0aW9uYWxpdHlcclxuXHQgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0ZXBTZXJ2aWNlOiBTdGVwU2VydmljZTxhbnk+KSB7IH1cclxuXHQvKipcclxuXHQgKiBAYXV0aG9yIEFsZXggSG9kc29uXHJcblx0ICogQGRlc2NyaXB0aW9uIHRoZSBtZXRob2QgdG8gYmUgcnVuIHdoZW4gdGhlIGNvbXBvbmVudCBpcyByZW5kZXJlZFxyXG5cdCAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGVwcyA9IHRoaXMuc3RlcFNlcnZpY2UuZ2V0U3RlcHMoKTtcclxuICAgIHRoaXMuY3VycmVudFN0ZXAgPSB0aGlzLnN0ZXBTZXJ2aWNlLmdldEN1cnJlbnRTdGVwT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHQvKipcclxuXHQgKiBAYXV0aG9yIEFsZXggSG9kc29uXHJcblx0ICogQGRlc2NyaXB0aW9uIGhhbmRsZXMgdGhlIHVzZXIgY2xpY2tpbmcgYSBzdGVwXHJcblx0ICogQHBhcmFtIHN0ZXAgdGhlIHN0ZXAgY2xpY2tlZFxyXG5cdCAqL1xyXG4gIG9uU3RlcENsaWNrKHN0ZXA6IFN0ZXBNb2RlbDxhbnk+KSB7XHJcbiAgICB0aGlzLnN0ZXBTZXJ2aWNlLnNldEN1cnJlbnRTdGVwKHN0ZXApO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1zdGVwcy1jb250YWluZXJcIj5cclxuXHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdGVwIG9mIHN0ZXBzIHwgYXN5bmM7IGxldCBpID0gaW5kZXg7XCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG5cdFx0XHQ8ZGl2IFxyXG5cdFx0XHRcdChjbGljayk9XCJvblN0ZXBDbGljayhzdGVwKVwiXHJcblx0XHRcdFx0W25nQ2xhc3NdPVwieyAnc3RlcC1jb21wbGV0ZSc6IHN0ZXAuaXNDb21wbGV0ZSwgJ3N0ZXAtaW5jb21wbGV0ZSc6ICFzdGVwLmlzQ29tcGxldGUsICdzdGVwLWN1cnJlbnQnOiAoY3VycmVudFN0ZXAgfCBhc3luYyk/LnN0ZXBJbmRleCA9PT0gc3RlcC5zdGVwSW5kZXggfVwiXHJcblx0XHRcdFx0Y2xhc3M9XCJzdGVwLWJ1YmJsZSBjdXJzb3ItcG9pbnRlclwiXHJcblx0XHRcdD57eyBzdGVwLnN0ZXBJbmRleCB9fTwvZGl2PlxyXG5cdFx0XHQ8ZGl2PlxyXG5cdFx0XHRcdDxzcGFuIGNsYXNzPVwidGV4dC1ncmV5XCI+e3tzdGVwLnRpdGxlfX08L3NwYW4+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8ZGl2ICpuZ0lmPVwiaSA8IChzdGVwcyB8IGFzeW5jKT8ubGVuZ3RoIC0gMVwiIGNsYXNzPVwic3RlcC1kaXZpZGVyXCI+PC9kaXY+XHJcblx0PC9uZy1jb250YWluZXI+XHJcbjwvZGl2PiJdfQ==
@@ -48,9 +48,17 @@ export class StepService {
48
48
  * @description returns the current modal step observable
49
49
  * @returns the current modal step observable
50
50
  */
51
- getCurrentStep() {
51
+ getCurrentStepObservable() {
52
52
  return this.currentStep$.asObservable();
53
53
  }
54
+ /**
55
+ * @author Alex Hodson
56
+ * @description returns the current modal step observable
57
+ * @returns the current modal step observable
58
+ */
59
+ getCurrentStep() {
60
+ return this.currentStep$.getValue();
61
+ }
54
62
  /**
55
63
  * @author Alex Hodson
56
64
  * @description returns the modal step observable
@@ -98,7 +106,6 @@ export class StepService {
98
106
  moveToPreviousStep() {
99
107
  const index = this.currentStep$.value.stepIndex;
100
108
  const previous = this.steps$.value.find(element => element.stepIndex === index - 1);
101
- console.log(previous);
102
109
  if (!previous)
103
110
  return;
104
111
  this.currentStep$.next({
@@ -127,8 +134,8 @@ export class StepService {
127
134
  const { stepIndex, parameters, triggerCallback } = currentStep;
128
135
  if (triggerCallback && triggerStepCallback) {
129
136
  const results = await triggerStepCallback(stepIndex);
130
- console.log(results, revert, !results && revert);
131
- return !results && revert ? this.moveToPreviousStep() : null;
137
+ if (!results && revert)
138
+ return this.moveToPreviousStep();
132
139
  }
133
140
  let route = `step-${stepIndex}`;
134
141
  if (getParameterValue)
@@ -156,4 +163,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
156
163
  type: Inject,
157
164
  args: ['steps']
158
165
  }] }] });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2luZG93cy1wbHVzLXV0aWxpdGllcy9tb2RhbC13aXphcmQvdXRpbC9zZXJ2aWNlL3N0ZXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7QUFPbkQsTUFBTSxPQUFPLFdBQVc7SUFhdEI7Ozs7T0FJRTtJQUNGLFlBQ1EsTUFBYyxFQUNkLGNBQThCLEVBQ2IsS0FBcUI7UUFGdEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUNiLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBaEIvQzs7V0FFRztRQUNGLGlCQUFZLEdBQXVDLElBQUksZUFBZSxDQUFvQixJQUFJLENBQUMsQ0FBQztRQUNqRzs7V0FFRztRQUNILDZCQUF3QixHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQTtRQVd2RixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFpQixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDM0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0Y7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxJQUFrQjtRQUM1QixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQzFCLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDcEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxT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QUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBc0JFLE1BQU07MkJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU3RlcE1vZGVsIH0gZnJvbSAnLi4vaW50ZXJmYWNlL21vZGFsLXN0ZXAuaW50ZXJmYWNlJ1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RlcFNlcnZpY2U8VD4ge1xyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiB0aGUgc3ViamVjdCBmb3IgdGhlIG1vZGFsIHN0ZXBzXHJcblx0ICovXHJcbiAgc3RlcHMkOiBCZWhhdmlvclN1YmplY3Q8U3RlcE1vZGVsPFQ+W10+O1xyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiB0aGUgc3ViamVjdCBmb3IgdGhlIGN1cnJlbnQgbW9kYWwgc3RlcFxyXG5cdCAqL1xyXG4gIGN1cnJlbnRTdGVwJDogQmVoYXZpb3JTdWJqZWN0PFN0ZXBNb2RlbDxUPnxudWxsPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U3RlcE1vZGVsPFQ+fG51bGw+KG51bGwpO1xyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiB0aGUgc3ViamVjdCBmb3IgdGhlIHN0ZXAgZm9yd2FyZCBhdmFpbGFiaWxpdHlcclxuXHQgKi9cclxuXHRzdGVwRm9yd2FyZEF2YWlsYWJpbGl0eSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpXHJcbiBcdC8qKlxyXG5cdCAqIEBhdXRob3IgQWxleCBIb2Rzb25cclxuXHQgKiBAZGVzY3JpcHRpb24gY2xhc3MgY29uc3RydWN0b3Igc3BlY2lmeWluZyB0aGUgcmVxdWlyZWQgc2VydmljZXMgYW5kIHByb3BlcnRpZXNcclxuXHQgKiBAcGFyYW0gc3RlcHMgdGhlIHN0ZXBzIGluIHRoZSBtb2RhbFxyXG5cdCAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuXHRcdHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG5cdFx0QEluamVjdCgnc3RlcHMnKSBwcml2YXRlIHN0ZXBzOiBTdGVwTW9kZWw8VD5bXVxyXG5cdCkge1xyXG5cdFx0dGhpcy5zdGVwcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFN0ZXBNb2RlbDxUPltdPih0aGlzLnN0ZXBzKVxyXG4gICAgdGhpcy5jdXJyZW50U3RlcCQubmV4dCh0aGlzLnN0ZXBzJC52YWx1ZVswXSk7XHJcbiAgfVxyXG5cdC8qKlxyXG5cdCAqIEBhdXRob3IgQWxleCBIb2Rzb25cclxuXHQgKiBAZGVzY3JpcHRpb24gaW5zZXJ0cyBhIG5ldyBzdGVwIGF0IGEgc3BlY2lmaWMgaW5kZXgsIHNwZWNpZmllZCBieSB0aGUgc3RlcCBpbmRleCBwcm9wZXJ0eVxyXG5cdCAqIEBwYXJhbSBzdGVwIHRoZSBzdGVwIHRvIGJlIGluc2VydGVkXHJcblx0ICovXHJcblx0aW5zZXJ0U3RlcChzdGVwOiBTdGVwTW9kZWw8VD4pOiB2b2lkIHtcclxuXHRcdGNvbnN0IHsgc3RlcEluZGV4IH0gPSBzdGVwXHJcblx0XHRjb25zdCBjdXJyZW50U3RlcHMgPSBbLi4udGhpcy5zdGVwc11cclxuXHRcdGN1cnJlbnRTdGVwcy5mb3JFYWNoKGVsZW1lbnQgPT4gZWxlbWVudC5zdGVwSW5kZXggPSAoc3RlcEluZGV4IDw9IGVsZW1lbnQuc3RlcEluZGV4ID8gZWxlbWVudC5zdGVwSW5kZXggKyAxIDogZWxlbWVudC5zdGVwSW5kZXgpKVxyXG5cdFx0Y3VycmVudFN0ZXBzLnNwbGljZShzdGVwSW5kZXggLSAxLCAwLCBzdGVwKVxyXG5cdFx0dGhpcy5zdGVwcyQubmV4dChjdXJyZW50U3RlcHMpXHJcblx0fVxyXG5cdC8qKlxyXG5cdCAqIEBhdXRob3IgQWxleCBIb2Rzb25cclxuXHQgKiBAZGVzY3JpcHRpb24gc2V0cyB0aGUgY3VycmVudCBtb2RhbCBzdGVwXHJcblx0ICogQHBhcmFtIHN0ZXAgdGhlIHN0ZXAgdG8gYmUgc2V0XHJcblx0ICovXHJcbiAgc2V0Q3VycmVudFN0ZXAoc3RlcDogU3RlcE1vZGVsPFQ+KTogdm9pZCB7XHJcbiAgICB0aGlzLmN1cnJlbnRTdGVwJC5uZXh0KHN0ZXApO1xyXG4gIH1cclxuXHQvKipcclxuXHQgKiBAYXV0aG9yIEFsZXggSG9kc29uXHJcblx0ICogQGRlc2NyaXB0aW9uIHJldHVybnMgdGhlIGN1cnJlbnQgbW9kYWwgc3RlcCBvYnNlcnZhYmxlXHJcblx0ICogQHJldHVybnMgdGhlIGN1cnJlbnQgbW9kYWwgc3RlcCBvYnNlcnZhYmxlXHJcblx0ICovXHJcbiAgZ2V0Q3VycmVudFN0ZXAoKTogT2JzZXJ2YWJsZTxTdGVwTW9kZWw8VD58bnVsbD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFN0ZXAkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHQvKipcclxuXHQgKiBAYXV0aG9yIEFsZXggSG9kc29uXHJcblx0ICogQGRlc2NyaXB0aW9uIHJldHVybnMgdGhlIG1vZGFsIHN0ZXAgb2JzZXJ2YWJsZVxyXG5cdCAqIEByZXR1cm5zIHRoZSBtb2RhbCBzdGVwIG9ic2VydmFibGVcclxuXHQgKi9cclxuICBnZXRTdGVwcygpOiBPYnNlcnZhYmxlPFN0ZXBNb2RlbDxUPltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGVwcyQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cdC8qKlxyXG5cdCAqIEBhdXRob3IgQWxleCBIb2Rzb25cclxuXHQgKiBAZGVzY3JpcHRpb24gc2V0cyB0aGUgc3RlcCBmb3J3YXJkIGF2YWlsYWJpbGl0eVxyXG5cdCAqIEBwYXJhbSBhdmFpbGFibGUgd2hldGhlciBhIHN0ZXAgZm9yd2FyZCBpcyBhdmFpbGFibGVcclxuXHQgKi9cclxuXHRzZXRTdGVwRm9yd2FyZEF2YWlsYWJpbGl0eShhdmFpbGFibGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuXHRcdHRoaXMuc3RlcEZvcndhcmRBdmFpbGFiaWxpdHkkLm5leHQoYXZhaWxhYmxlKVxyXG5cdH1cclxuXHQvKipcclxuXHQgKiBAYXV0aG9yIEFsZXggSG9kc29uXHJcblx0ICogQGRlc2NyaXB0aW9uIHJldHVybnMgdGhlIHN0ZXAgZm9yd2FyZCBhdmFpbGFiaWxpdHkgb2JzZXJ2YWJsZVxyXG5cdCAqIEByZXR1cm5zIHRoZSBzdGVwIGZvcndhcmQgYXZhaWxhYmlsaXR5IG9ic2VydmFibGVcclxuXHQgKi9cclxuXHRnZXRTdGVwRm9yd2FyZEF2YWlsYWJpbGl0eSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuXHRcdHJldHVybiB0aGlzLnN0ZXBGb3J3YXJkQXZhaWxhYmlsaXR5JC5hc09ic2VydmFibGUoKVxyXG5cdH1cclxuXHQvKipcclxuXHQgKiBAYXV0aG9yIEFsZXggSG9kc29uXHJcblx0ICogQGRlc2NyaXB0aW9uIG1vdmVzIHRvIHRoZSBuZXh0IG1vZGFsIHN0ZXBcclxuXHQgKi9cclxuICBtb3ZlVG9OZXh0U3RlcCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jdXJyZW50U3RlcCQudmFsdWUhLnN0ZXBJbmRleDtcclxuXHJcbiAgICBpZiAoaW5kZXggPCB0aGlzLnN0ZXBzJC52YWx1ZS5sZW5ndGgpIHtcclxuXHRcdFx0Y29uc3QgbmV4dFN0ZXAgPSB0aGlzLnN0ZXBzJC52YWx1ZVtpbmRleF1cclxuXHRcdFx0Y29uc3QgY3VycmVudFN0ZXAgPSB0aGlzLnN0ZXBzJC52YWx1ZVtpbmRleCAtIDFdXHJcbiAgICAgIHRoaXMuY3VycmVudFN0ZXAkLm5leHQoe1xyXG5cdFx0XHRcdC4uLm5leHRTdGVwLFxyXG5cdFx0XHRcdCdzdGVwQ2FsbGJhY2tOYW1lJzogY3VycmVudFN0ZXAuc3RlcENhbGxiYWNrTmFtZSxcclxuXHRcdFx0XHQndHJpZ2dlckNhbGxiYWNrJzogISFjdXJyZW50U3RlcC5zdGVwQ2FsbGJhY2tOYW1lXHJcblx0XHRcdH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHQvKipcclxuXHQgKiBAYXV0aG9yIEFsZXggSG9kc29uXHJcblx0ICogQGRlc2NyaXB0aW9uIG1vdmVzIHRvIHRoZSBwcmV2aW91cyBtb2RhbCBzdGVwXHJcblx0ICovXHJcblx0bW92ZVRvUHJldmlvdXNTdGVwKCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgaW5kZXggPSB0aGlzLmN1cnJlbnRTdGVwJC52YWx1ZSEuc3RlcEluZGV4XHJcblx0XHRjb25zdCBwcmV2aW91cyA9IHRoaXMuc3RlcHMkLnZhbHVlLmZpbmQoZWxlbWVudCA9PiBlbGVtZW50LnN0ZXBJbmRleCA9PT0gaW5kZXggLSAxKVxyXG5cclxuXHRcdGNvbnNvbGUubG9nKHByZXZpb3VzKVxyXG5cdFx0aWYgKCFwcmV2aW91cykgcmV0dXJuXHJcblxyXG5cdFx0dGhpcy5jdXJyZW50U3RlcCQubmV4dCh7XHJcblx0XHRcdC4uLnByZXZpb3VzLFxyXG5cdFx0XHQndHJpZ2dlckNhbGxiYWNrJzogZmFsc2VcclxuXHRcdH0pO1xyXG5cdH1cclxuXHQvKipcclxuXHQgKiBAYXV0aG9yIEFsZXggSG9kc29uXHJcblx0ICogQGRlc2NyaXB0aW9uIGRldGVybWluZXMgd2hldGhlciB0aGUgY3VycmVudCBzdGVwIGlzIHRoZSBsYXN0XHJcblx0ICogQHJldHVybnMgd2hldGhlciB0aGUgc3RlcCBpcyB0aGUgbGFzdCBvbmVcclxuXHQgKi9cclxuICBpc0xhc3RTdGVwKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFN0ZXAkLnZhbHVlIS5zdGVwSW5kZXggPT09IHRoaXMuc3RlcHMkLnZhbHVlLmxlbmd0aDtcclxuICB9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBhdXRob3IgQWxleCBIb2Rzb25cclxuXHQgKiBAZGVzY3JpcHRpb24gdHJpZ2dlcnMgYW55IHBvdGVudGlhbCBcImFmdGVyLXN0ZXBcIiBmdW5jdGlvbmFsaXR5IGZvciB0aGUgY3VycmVudCBzdGVwIGFuZCBjaGFuZ2VzIHRoZSBjdXJyZW50IHJvdXRlIHdpdGggYW55IHJlcXVpcmVkIHBhcmFtZXRlcnNcclxuXHQgKiBAcGFyYW0gZ2V0UGFyYW1ldGVyVmFsdWUgdGhlIGNhbGxiYWNrIHdoaWNoIHJldHJpZXZlcyB0aGUgdmFsdWUgZm9yIGEgc3RlcCBwYXJhbWV0ZXJcclxuXHQgKiBAcGFyYW0gdHJpZ2dlclN0ZXBDYWxsYmFjayB0aGUgY2FsbGJhY2sgd2hpY2ggdHJpZ2dlcnMgdGhlIHNwZWNpZmljIGZ1bmN0aW9uYWxpdHkgZm9yIHRoZSBzcGVjaWZpZWQgc3RlcCBpbmRleFxyXG5cdCAqL1xyXG5cdGFzeW5jIGhhbmRsZVN0ZXBDaGFuZ2UoZ2V0UGFyYW1ldGVyVmFsdWU/OiAoLi4uYXJnczogYW55KSA9PiBhbnksIHRyaWdnZXJTdGVwQ2FsbGJhY2s/OiAoLi4uYXJnczogYW55KSA9PiBQcm9taXNlPGJvb2xlYW4+LCByZXZlcnQ6IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8dm9pZHxudWxsPiB7XHJcblx0XHRjb25zdCBjdXJyZW50U3RlcCA9IHRoaXMuY3VycmVudFN0ZXAkLnZhbHVlXHJcblx0XHRcdFxyXG5cdFx0aWYgKCFjdXJyZW50U3RlcCkgcmV0dXJuXHJcblxyXG5cdFx0Y29uc3QgeyBzdGVwSW5kZXgsIHBhcmFtZXRlcnMsIHRyaWdnZXJDYWxsYmFjayB9ID0gY3VycmVudFN0ZXBcclxuXHJcblx0XHRpZiAodHJpZ2dlckNhbGxiYWNrICYmIHRyaWdnZXJTdGVwQ2FsbGJhY2spIHtcclxuXHRcdFx0Y29uc3QgcmVzdWx0cyA9IGF3YWl0IHRyaWdnZXJTdGVwQ2FsbGJhY2soc3RlcEluZGV4KVxyXG5cdFx0XHRjb25zb2xlLmxvZyhyZXN1bHRzLCByZXZlcnQsICFyZXN1bHRzICYmIHJldmVydClcclxuXHJcblx0XHRcdHJldHVybiAhcmVzdWx0cyAmJiByZXZlcnQgPyB0aGlzLm1vdmVUb1ByZXZpb3VzU3RlcCgpIDogbnVsbFxyXG5cdFx0fSBcclxuXHJcblx0XHRsZXQgcm91dGUgPSBgc3RlcC0ke3N0ZXBJbmRleH1gXHJcblx0XHRpZiAoZ2V0UGFyYW1ldGVyVmFsdWUpIHBhcmFtZXRlcnMuZm9yRWFjaCgoZWxlbWVudCkgPT4gcm91dGUgKz0gYC8ke2dldFBhcmFtZXRlclZhbHVlKGVsZW1lbnQpfWApXHJcblx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcm91dGVdLCB7IHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGUgfSlcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBhdXRob3IgQWxleCBIb2Rzb25cclxuXHQgKiBAZGVzY3JpcHRpb24gY2xlYXJzIGFueSByb3V0ZSBwYXRocyBhbmQvb3IgcGFyYW1ldGVycyBjcmVhdGVkIGR1cmluZyB0aGUgc3RlcCBmdW5jdGlvbmFsaXR5LCByZXZlcnRpbmcgdGhlIHVybCBiYWNrIHRvIHRoZSBvcmlnaW5hbCBzdGF0ZSB3aGVuIHRoZSBzdGVwIHBhdGhzIHdlcmUgYXBwZW5kZWRcclxuXHQgKi9cclxuXHRjbGVhclN0ZXBSb3V0ZSgpOiB2b2lkIHtcclxuXHRcdGNvbnN0IHVybCA9IHRoaXMucm91dGVyLnVybFxyXG5cdFx0Y29uc3QgW2luaXRpYWxdID0gdXJsLnNwbGl0KCcvc3RlcC0nKVxyXG5cdFx0dGhpcy5yb3V0ZXIubmF2aWdhdGUoW2luaXRpYWxdKVxyXG5cdH1cclxufVxyXG4iXX0=
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2luZG93cy1wbHVzLXV0aWxpdGllcy9tb2RhbC13aXphcmQvdXRpbC9zZXJ2aWNlL3N0ZXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7QUFPbkQsTUFBTSxPQUFPLFdBQVc7SUFhdEI7Ozs7T0FJRTtJQUNGLFlBQ1EsTUFBYyxFQUNkLGNBQThCLEVBQ2IsS0FBcUI7UUFGdEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUNiLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBaEIvQzs7V0FFRztRQUNGLGlCQUFZLEdBQXVDLElBQUksZUFBZSxDQUFvQixJQUFJLENBQUMsQ0FBQztRQUNqRzs7V0FFRztRQUNILDZCQUF3QixHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQTtRQVd2RixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFpQixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDM0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0Y7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxJQUFrQjtRQUM1QixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQzFCLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDcEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxT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QU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN0ZXBNb2RlbCB9IGZyb20gJy4uL2ludGVyZmFjZS9tb2RhbC1zdGVwLmludGVyZmFjZSdcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0ZXBTZXJ2aWNlPFQ+IHtcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gdGhlIHN1YmplY3QgZm9yIHRoZSBtb2RhbCBzdGVwc1xyXG5cdCAqL1xyXG4gIHN0ZXBzJDogQmVoYXZpb3JTdWJqZWN0PFN0ZXBNb2RlbDxUPltdPjtcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gdGhlIHN1YmplY3QgZm9yIHRoZSBjdXJyZW50IG1vZGFsIHN0ZXBcclxuXHQgKi9cclxuICBjdXJyZW50U3RlcCQ6IEJlaGF2aW9yU3ViamVjdDxTdGVwTW9kZWw8VD58bnVsbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFN0ZXBNb2RlbDxUPnxudWxsPihudWxsKTtcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gdGhlIHN1YmplY3QgZm9yIHRoZSBzdGVwIGZvcndhcmQgYXZhaWxhYmlsaXR5XHJcblx0ICovXHJcblx0c3RlcEZvcndhcmRBdmFpbGFiaWxpdHkkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKVxyXG4gXHQvKipcclxuXHQgKiBAYXV0aG9yIEFsZXggSG9kc29uXHJcblx0ICogQGRlc2NyaXB0aW9uIGNsYXNzIGNvbnN0cnVjdG9yIHNwZWNpZnlpbmcgdGhlIHJlcXVpcmVkIHNlcnZpY2VzIGFuZCBwcm9wZXJ0aWVzXHJcblx0ICogQHBhcmFtIHN0ZXBzIHRoZSBzdGVwcyBpbiB0aGUgbW9kYWxcclxuXHQgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcblx0XHRwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuXHRcdEBJbmplY3QoJ3N0ZXBzJykgcHJpdmF0ZSBzdGVwczogU3RlcE1vZGVsPFQ+W11cclxuXHQpIHtcclxuXHRcdHRoaXMuc3RlcHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTdGVwTW9kZWw8VD5bXT4odGhpcy5zdGVwcylcclxuICAgIHRoaXMuY3VycmVudFN0ZXAkLm5leHQodGhpcy5zdGVwcyQudmFsdWVbMF0pO1xyXG4gIH1cclxuXHQvKipcclxuXHQgKiBAYXV0aG9yIEFsZXggSG9kc29uXHJcblx0ICogQGRlc2NyaXB0aW9uIGluc2VydHMgYSBuZXcgc3RlcCBhdCBhIHNwZWNpZmljIGluZGV4LCBzcGVjaWZpZWQgYnkgdGhlIHN0ZXAgaW5kZXggcHJvcGVydHlcclxuXHQgKiBAcGFyYW0gc3RlcCB0aGUgc3RlcCB0byBiZSBpbnNlcnRlZFxyXG5cdCAqL1xyXG5cdGluc2VydFN0ZXAoc3RlcDogU3RlcE1vZGVsPFQ+KTogdm9pZCB7XHJcblx0XHRjb25zdCB7IHN0ZXBJbmRleCB9ID0gc3RlcFxyXG5cdFx0Y29uc3QgY3VycmVudFN0ZXBzID0gWy4uLnRoaXMuc3RlcHNdXHJcblx0XHRjdXJyZW50U3RlcHMuZm9yRWFjaChlbGVtZW50ID0+IGVsZW1lbnQuc3RlcEluZGV4ID0gKHN0ZXBJbmRleCA8PSBlbGVtZW50LnN0ZXBJbmRleCA/IGVsZW1lbnQuc3RlcEluZGV4ICsgMSA6IGVsZW1lbnQuc3RlcEluZGV4KSlcclxuXHRcdGN1cnJlbnRTdGVwcy5zcGxpY2Uoc3RlcEluZGV4IC0gMSwgMCwgc3RlcClcclxuXHRcdHRoaXMuc3RlcHMkLm5leHQoY3VycmVudFN0ZXBzKVxyXG5cdH1cclxuXHQvKipcclxuXHQgKiBAYXV0aG9yIEFsZXggSG9kc29uXHJcblx0ICogQGRlc2NyaXB0aW9uIHNldHMgdGhlIGN1cnJlbnQgbW9kYWwgc3RlcFxyXG5cdCAqIEBwYXJhbSBzdGVwIHRoZSBzdGVwIHRvIGJlIHNldFxyXG5cdCAqL1xyXG4gIHNldEN1cnJlbnRTdGVwKHN0ZXA6IFN0ZXBNb2RlbDxUPik6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50U3RlcCQubmV4dChzdGVwKTtcclxuICB9XHJcblx0LyoqXHJcblx0ICogQGF1dGhvciBBbGV4IEhvZHNvblxyXG5cdCAqIEBkZXNjcmlwdGlvbiByZXR1cm5zIHRoZSBjdXJyZW50IG1vZGFsIHN0ZXAgb2JzZXJ2YWJsZVxyXG5cdCAqIEByZXR1cm5zIHRoZSBjdXJyZW50IG1vZGFsIHN0ZXAgb2JzZXJ2YWJsZVxyXG5cdCAqL1xyXG4gIGdldEN1cnJlbnRTdGVwT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPFN0ZXBNb2RlbDxUPnxudWxsPiB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U3RlcCQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cdC8qKlxyXG5cdCAqIEBhdXRob3IgQWxleCBIb2Rzb25cclxuXHQgKiBAZGVzY3JpcHRpb24gcmV0dXJucyB0aGUgY3VycmVudCBtb2RhbCBzdGVwIG9ic2VydmFibGVcclxuXHQgKiBAcmV0dXJucyB0aGUgY3VycmVudCBtb2RhbCBzdGVwIG9ic2VydmFibGVcclxuXHQgKi9cclxuICBnZXRDdXJyZW50U3RlcCgpOiBTdGVwTW9kZWw8VD58bnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U3RlcCQuZ2V0VmFsdWUoKTtcclxuICB9XHJcblx0LyoqXHJcblx0ICogQGF1dGhvciBBbGV4IEhvZHNvblxyXG5cdCAqIEBkZXNjcmlwdGlvbiByZXR1cm5zIHRoZSBtb2RhbCBzdGVwIG9ic2VydmFibGVcclxuXHQgKiBAcmV0dXJucyB0aGUgbW9kYWwgc3RlcCBvYnNlcnZhYmxlXHJcblx0ICovXHJcbiAgZ2V0U3RlcHMoKTogT2JzZXJ2YWJsZTxTdGVwTW9kZWw8VD5bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RlcHMkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHQvKipcclxuXHQgKiBAYXV0aG9yIEFsZXggSG9kc29uXHJcblx0ICogQGRlc2NyaXB0aW9uIHNldHMgdGhlIHN0ZXAgZm9yd2FyZCBhdmFpbGFiaWxpdHlcclxuXHQgKiBAcGFyYW0gYXZhaWxhYmxlIHdoZXRoZXIgYSBzdGVwIGZvcndhcmQgaXMgYXZhaWxhYmxlXHJcblx0ICovXHJcblx0c2V0U3RlcEZvcndhcmRBdmFpbGFiaWxpdHkoYXZhaWxhYmxlOiBib29sZWFuKTogdm9pZCB7XHJcblx0XHR0aGlzLnN0ZXBGb3J3YXJkQXZhaWxhYmlsaXR5JC5uZXh0KGF2YWlsYWJsZSlcclxuXHR9XHJcblx0LyoqXHJcblx0ICogQGF1dGhvciBBbGV4IEhvZHNvblxyXG5cdCAqIEBkZXNjcmlwdGlvbiByZXR1cm5zIHRoZSBzdGVwIGZvcndhcmQgYXZhaWxhYmlsaXR5IG9ic2VydmFibGVcclxuXHQgKiBAcmV0dXJucyB0aGUgc3RlcCBmb3J3YXJkIGF2YWlsYWJpbGl0eSBvYnNlcnZhYmxlXHJcblx0ICovXHJcblx0Z2V0U3RlcEZvcndhcmRBdmFpbGFiaWxpdHkoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcblx0XHRyZXR1cm4gdGhpcy5zdGVwRm9yd2FyZEF2YWlsYWJpbGl0eSQuYXNPYnNlcnZhYmxlKClcclxuXHR9XHJcblx0LyoqXHJcblx0ICogQGF1dGhvciBBbGV4IEhvZHNvblxyXG5cdCAqIEBkZXNjcmlwdGlvbiBtb3ZlcyB0byB0aGUgbmV4dCBtb2RhbCBzdGVwXHJcblx0ICovXHJcbiAgbW92ZVRvTmV4dFN0ZXAoKTogdm9pZCB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuY3VycmVudFN0ZXAkLnZhbHVlIS5zdGVwSW5kZXg7XHJcblxyXG4gICAgaWYgKGluZGV4IDwgdGhpcy5zdGVwcyQudmFsdWUubGVuZ3RoKSB7XHJcblx0XHRcdGNvbnN0IG5leHRTdGVwID0gdGhpcy5zdGVwcyQudmFsdWVbaW5kZXhdXHJcblx0XHRcdGNvbnN0IGN1cnJlbnRTdGVwID0gdGhpcy5zdGVwcyQudmFsdWVbaW5kZXggLSAxXVxyXG4gICAgICB0aGlzLmN1cnJlbnRTdGVwJC5uZXh0KHtcclxuXHRcdFx0XHQuLi5uZXh0U3RlcCxcclxuXHRcdFx0XHQnc3RlcENhbGxiYWNrTmFtZSc6IGN1cnJlbnRTdGVwLnN0ZXBDYWxsYmFja05hbWUsXHJcblx0XHRcdFx0J3RyaWdnZXJDYWxsYmFjayc6ICEhY3VycmVudFN0ZXAuc3RlcENhbGxiYWNrTmFtZVxyXG5cdFx0XHR9KTtcclxuICAgIH1cclxuICB9XHJcblx0LyoqXHJcblx0ICogQGF1dGhvciBBbGV4IEhvZHNvblxyXG5cdCAqIEBkZXNjcmlwdGlvbiBtb3ZlcyB0byB0aGUgcHJldmlvdXMgbW9kYWwgc3RlcFxyXG5cdCAqL1xyXG5cdG1vdmVUb1ByZXZpb3VzU3RlcCgpOiB2b2lkIHtcclxuXHRcdGNvbnN0IGluZGV4ID0gdGhpcy5jdXJyZW50U3RlcCQudmFsdWUhLnN0ZXBJbmRleFxyXG5cdFx0Y29uc3QgcHJldmlvdXMgPSB0aGlzLnN0ZXBzJC52YWx1ZS5maW5kKGVsZW1lbnQgPT4gZWxlbWVudC5zdGVwSW5kZXggPT09IGluZGV4IC0gMSlcclxuXHJcblx0XHRpZiAoIXByZXZpb3VzKSByZXR1cm5cclxuXHJcblx0XHR0aGlzLmN1cnJlbnRTdGVwJC5uZXh0KHtcclxuXHRcdFx0Li4ucHJldmlvdXMsXHJcblx0XHRcdCd0cmlnZ2VyQ2FsbGJhY2snOiBmYWxzZVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cdC8qKlxyXG5cdCAqIEBhdXRob3IgQWxleCBIb2Rzb25cclxuXHQgKiBAZGVzY3JpcHRpb24gZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjdXJyZW50IHN0ZXAgaXMgdGhlIGxhc3RcclxuXHQgKiBAcmV0dXJucyB3aGV0aGVyIHRoZSBzdGVwIGlzIHRoZSBsYXN0IG9uZVxyXG5cdCAqL1xyXG4gIGlzTGFzdFN0ZXAoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U3RlcCQudmFsdWUhLnN0ZXBJbmRleCA9PT0gdGhpcy5zdGVwcyQudmFsdWUubGVuZ3RoO1xyXG4gIH1cclxuXHJcblx0LyoqXHJcblx0ICogQGF1dGhvciBBbGV4IEhvZHNvblxyXG5cdCAqIEBkZXNjcmlwdGlvbiB0cmlnZ2VycyBhbnkgcG90ZW50aWFsIFwiYWZ0ZXItc3RlcFwiIGZ1bmN0aW9uYWxpdHkgZm9yIHRoZSBjdXJyZW50IHN0ZXAgYW5kIGNoYW5nZXMgdGhlIGN1cnJlbnQgcm91dGUgd2l0aCBhbnkgcmVxdWlyZWQgcGFyYW1ldGVyc1xyXG5cdCAqIEBwYXJhbSBnZXRQYXJhbWV0ZXJWYWx1ZSB0aGUgY2FsbGJhY2sgd2hpY2ggcmV0cmlldmVzIHRoZSB2YWx1ZSBmb3IgYSBzdGVwIHBhcmFtZXRlclxyXG5cdCAqIEBwYXJhbSB0cmlnZ2VyU3RlcENhbGxiYWNrIHRoZSBjYWxsYmFjayB3aGljaCB0cmlnZ2VycyB0aGUgc3BlY2lmaWMgZnVuY3Rpb25hbGl0eSBmb3IgdGhlIHNwZWNpZmllZCBzdGVwIGluZGV4XHJcblx0ICovXHJcblx0YXN5bmMgaGFuZGxlU3RlcENoYW5nZShnZXRQYXJhbWV0ZXJWYWx1ZT86ICguLi5hcmdzOiBhbnkpID0+IGFueSwgdHJpZ2dlclN0ZXBDYWxsYmFjaz86ICguLi5hcmdzOiBhbnkpID0+IFByb21pc2U8Ym9vbGVhbj4sIHJldmVydDogYm9vbGVhbiA9IGZhbHNlKTogUHJvbWlzZTx2b2lkfG51bGw+IHtcclxuXHRcdGNvbnN0IGN1cnJlbnRTdGVwID0gdGhpcy5jdXJyZW50U3RlcCQudmFsdWVcclxuXHRcdFx0XHJcblx0XHRpZiAoIWN1cnJlbnRTdGVwKSByZXR1cm5cclxuXHJcblx0XHRjb25zdCB7IHN0ZXBJbmRleCwgcGFyYW1ldGVycywgdHJpZ2dlckNhbGxiYWNrIH0gPSBjdXJyZW50U3RlcFxyXG5cclxuXHRcdGlmICh0cmlnZ2VyQ2FsbGJhY2sgJiYgdHJpZ2dlclN0ZXBDYWxsYmFjaykge1xyXG5cdFx0XHRjb25zdCByZXN1bHRzID0gYXdhaXQgdHJpZ2dlclN0ZXBDYWxsYmFjayhzdGVwSW5kZXgpXHJcblxyXG5cdFx0XHRpZiAoIXJlc3VsdHMgJiYgcmV2ZXJ0KSByZXR1cm4gdGhpcy5tb3ZlVG9QcmV2aW91c1N0ZXAoKVxyXG5cdFx0fSBcclxuXHJcblx0XHRsZXQgcm91dGUgPSBgc3RlcC0ke3N0ZXBJbmRleH1gXHJcblx0XHRpZiAoZ2V0UGFyYW1ldGVyVmFsdWUpIHBhcmFtZXRlcnMuZm9yRWFjaCgoZWxlbWVudCkgPT4gcm91dGUgKz0gYC8ke2dldFBhcmFtZXRlclZhbHVlKGVsZW1lbnQpfWApXHJcblx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcm91dGVdLCB7IHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGUgfSlcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBhdXRob3IgQWxleCBIb2Rzb25cclxuXHQgKiBAZGVzY3JpcHRpb24gY2xlYXJzIGFueSByb3V0ZSBwYXRocyBhbmQvb3IgcGFyYW1ldGVycyBjcmVhdGVkIGR1cmluZyB0aGUgc3RlcCBmdW5jdGlvbmFsaXR5LCByZXZlcnRpbmcgdGhlIHVybCBiYWNrIHRvIHRoZSBvcmlnaW5hbCBzdGF0ZSB3aGVuIHRoZSBzdGVwIHBhdGhzIHdlcmUgYXBwZW5kZWRcclxuXHQgKi9cclxuXHRjbGVhclN0ZXBSb3V0ZSgpOiB2b2lkIHtcclxuXHRcdGNvbnN0IHVybCA9IHRoaXMucm91dGVyLnVybFxyXG5cdFx0Y29uc3QgW2luaXRpYWxdID0gdXJsLnNwbGl0KCcvc3RlcC0nKVxyXG5cdFx0dGhpcy5yb3V0ZXIubmF2aWdhdGUoW2luaXRpYWxdKVxyXG5cdH1cclxufVxyXG4iXX0=
@@ -51,9 +51,17 @@ class StepService {
51
51
  * @description returns the current modal step observable
52
52
  * @returns the current modal step observable
53
53
  */
54
- getCurrentStep() {
54
+ getCurrentStepObservable() {
55
55
  return this.currentStep$.asObservable();
56
56
  }
57
+ /**
58
+ * @author Alex Hodson
59
+ * @description returns the current modal step observable
60
+ * @returns the current modal step observable
61
+ */
62
+ getCurrentStep() {
63
+ return this.currentStep$.getValue();
64
+ }
57
65
  /**
58
66
  * @author Alex Hodson
59
67
  * @description returns the modal step observable
@@ -101,7 +109,6 @@ class StepService {
101
109
  moveToPreviousStep() {
102
110
  const index = this.currentStep$.value.stepIndex;
103
111
  const previous = this.steps$.value.find(element => element.stepIndex === index - 1);
104
- console.log(previous);
105
112
  if (!previous)
106
113
  return;
107
114
  this.currentStep$.next({
@@ -130,8 +137,8 @@ class StepService {
130
137
  const { stepIndex, parameters, triggerCallback } = currentStep;
131
138
  if (triggerCallback && triggerStepCallback) {
132
139
  const results = await triggerStepCallback(stepIndex);
133
- console.log(results, revert, !results && revert);
134
- return !results && revert ? this.moveToPreviousStep() : null;
140
+ if (!results && revert)
141
+ return this.moveToPreviousStep();
135
142
  }
136
143
  let route = `step-${stepIndex}`;
137
144
  if (getParameterValue)
@@ -175,7 +182,7 @@ class StepComponent {
175
182
  */
176
183
  ngOnInit() {
177
184
  this.steps = this.stepService.getSteps();
178
- this.currentStep = this.stepService.getCurrentStep();
185
+ this.currentStep = this.stepService.getCurrentStepObservable();
179
186
  }
180
187
  /**
181
188
  * @author Alex Hodson
@@ -1 +1 @@
1
- {"version":3,"file":"windows-plus-utilities-modal-wizard.mjs","sources":["../../../projects/windows-plus-utilities/modal-wizard/util/service/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/public-api.ts","../../../projects/windows-plus-utilities/modal-wizard/windows-plus-utilities-modal-wizard.ts"],"sourcesContent":["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 providedIn: 'root'\r\n})\r\nexport class StepService<T> {\r\n\t/**\r\n\t * @description the subject for the modal steps\r\n\t */\r\n steps$: BehaviorSubject<StepModel<T>[]>;\r\n\t/**\r\n\t * @description the subject for the current modal step\r\n\t */\r\n currentStep$: 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\t * @author Alex Hodson\r\n\t * @description class constructor specifying the required services and properties\r\n\t * @param steps the steps in the modal\r\n\t */\r\n constructor(\r\n\t\tprivate router: Router,\r\n\t\tprivate activatedRoute: ActivatedRoute,\r\n\t\t@Inject('steps') private steps: StepModel<T>[]\r\n\t) {\r\n\t\tthis.steps$ = new BehaviorSubject<StepModel<T>[]>(this.steps)\r\n this.currentStep$.next(this.steps$.value[0]);\r\n }\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 { stepIndex } = step\r\n\t\tconst currentSteps = [...this.steps]\r\n\t\tcurrentSteps.forEach(element => element.stepIndex = (stepIndex <= element.stepIndex ? element.stepIndex + 1 : element.stepIndex))\r\n\t\tcurrentSteps.splice(stepIndex - 1, 0, step)\r\n\t\tthis.steps$.next(currentSteps)\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 setCurrentStep(step: StepModel<T>): void {\r\n this.currentStep$.next(step);\r\n }\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 getCurrentStep(): Observable<StepModel<T>|null> {\r\n return this.currentStep$.asObservable();\r\n }\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 getSteps(): Observable<StepModel<T>[]> {\r\n return this.steps$.asObservable();\r\n }\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 moveToNextStep(): void {\r\n const index = this.currentStep$.value!.stepIndex;\r\n\r\n if (index < this.steps$.value.length) {\r\n\t\t\tconst nextStep = this.steps$.value[index]\r\n\t\t\tconst currentStep = this.steps$.value[index - 1]\r\n this.currentStep$.next({\r\n\t\t\t\t...nextStep,\r\n\t\t\t\t'stepCallbackName': currentStep.stepCallbackName,\r\n\t\t\t\t'triggerCallback': !!currentStep.stepCallbackName\r\n\t\t\t});\r\n }\r\n }\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 index = this.currentStep$.value!.stepIndex\r\n\t\tconst previous = this.steps$.value.find(element => element.stepIndex === index - 1)\r\n\r\n\t\tconsole.log(previous)\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 isLastStep(): boolean {\r\n return this.currentStep$.value!.stepIndex === this.steps$.value.length;\r\n }\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\t\t\t\r\n\t\tif (!currentStep) return\r\n\r\n\t\tconst { stepIndex, parameters, triggerCallback } = currentStep\r\n\r\n\t\tif (triggerCallback && triggerStepCallback) {\r\n\t\t\tconst results = await triggerStepCallback(stepIndex)\r\n\t\t\tconsole.log(results, revert, !results && revert)\r\n\r\n\t\t\treturn !results && revert ? this.moveToPreviousStep() : null\r\n\t\t} \r\n\r\n\t\tlet route = `step-${stepIndex}`\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\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","import { Component } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Observable } from 'rxjs'\r\nimport { StepModel } from '../../util/interface/modal-step.interface'\r\nimport { StepService } from '../../util/service/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<StepModel<any>[]>\r\n\t/**\r\n\t * @description an observable to the current step\r\n\t */\r\n currentStep: Observable<StepModel<any>|null>;\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: StepService<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.currentStep = this.stepService.getCurrentStep();\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: StepModel<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': (currentStep | 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>","/*\r\n * Public API Surface of windows-plus-utilities\r\n */\r\n\r\nexport * from './components/step/step.component';\r\n\r\nexport * from './util/interface/stepped-modal.interface'\r\nexport * from './util/interface/modal-step.interface'\r\nexport * from './util/service/step.service'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.StepService"],"mappings":"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"}
1
+ {"version":3,"file":"windows-plus-utilities-modal-wizard.mjs","sources":["../../../projects/windows-plus-utilities/modal-wizard/util/service/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/public-api.ts","../../../projects/windows-plus-utilities/modal-wizard/windows-plus-utilities-modal-wizard.ts"],"sourcesContent":["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 providedIn: 'root'\r\n})\r\nexport class StepService<T> {\r\n\t/**\r\n\t * @description the subject for the modal steps\r\n\t */\r\n steps$: BehaviorSubject<StepModel<T>[]>;\r\n\t/**\r\n\t * @description the subject for the current modal step\r\n\t */\r\n currentStep$: 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\t * @author Alex Hodson\r\n\t * @description class constructor specifying the required services and properties\r\n\t * @param steps the steps in the modal\r\n\t */\r\n constructor(\r\n\t\tprivate router: Router,\r\n\t\tprivate activatedRoute: ActivatedRoute,\r\n\t\t@Inject('steps') private steps: StepModel<T>[]\r\n\t) {\r\n\t\tthis.steps$ = new BehaviorSubject<StepModel<T>[]>(this.steps)\r\n this.currentStep$.next(this.steps$.value[0]);\r\n }\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 { stepIndex } = step\r\n\t\tconst currentSteps = [...this.steps]\r\n\t\tcurrentSteps.forEach(element => element.stepIndex = (stepIndex <= element.stepIndex ? element.stepIndex + 1 : element.stepIndex))\r\n\t\tcurrentSteps.splice(stepIndex - 1, 0, step)\r\n\t\tthis.steps$.next(currentSteps)\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 setCurrentStep(step: StepModel<T>): void {\r\n this.currentStep$.next(step);\r\n }\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 getCurrentStepObservable(): Observable<StepModel<T>|null> {\r\n return this.currentStep$.asObservable();\r\n }\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 getCurrentStep(): StepModel<T>|null {\r\n return this.currentStep$.getValue();\r\n }\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 getSteps(): Observable<StepModel<T>[]> {\r\n return this.steps$.asObservable();\r\n }\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 moveToNextStep(): void {\r\n const index = this.currentStep$.value!.stepIndex;\r\n\r\n if (index < this.steps$.value.length) {\r\n\t\t\tconst nextStep = this.steps$.value[index]\r\n\t\t\tconst currentStep = this.steps$.value[index - 1]\r\n this.currentStep$.next({\r\n\t\t\t\t...nextStep,\r\n\t\t\t\t'stepCallbackName': currentStep.stepCallbackName,\r\n\t\t\t\t'triggerCallback': !!currentStep.stepCallbackName\r\n\t\t\t});\r\n }\r\n }\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 index = this.currentStep$.value!.stepIndex\r\n\t\tconst previous = this.steps$.value.find(element => element.stepIndex === index - 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 isLastStep(): boolean {\r\n return this.currentStep$.value!.stepIndex === this.steps$.value.length;\r\n }\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\t\t\t\r\n\t\tif (!currentStep) return\r\n\r\n\t\tconst { stepIndex, parameters, 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\tlet route = `step-${stepIndex}`\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\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","import { Component } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Observable } from 'rxjs'\r\nimport { StepModel } from '../../util/interface/modal-step.interface'\r\nimport { StepService } from '../../util/service/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<StepModel<any>[]>\r\n\t/**\r\n\t * @description an observable to the current step\r\n\t */\r\n currentStep: Observable<StepModel<any>|null>;\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: StepService<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.currentStep = this.stepService.getCurrentStepObservable();\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: StepModel<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': (currentStep | 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>","/*\r\n * Public API Surface of windows-plus-utilities\r\n */\r\n\r\nexport * from './components/step/step.component';\r\n\r\nexport * from './util/interface/stepped-modal.interface'\r\nexport * from './util/interface/modal-step.interface'\r\nexport * from './util/service/step.service'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.StepService"],"mappings":";;;;;;;MAQa,WAAW,CAAA;AAatB;;;;AAIE;AACF,IAAA,WAAA,CACQ,MAAc,EACd,cAA8B,EACb,KAAqB,EAAA;QAFtC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QACb,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;AAhB/C;;AAEG;AACF,QAAA,IAAA,CAAA,YAAY,GAAuC,IAAI,eAAe,CAAoB,IAAI,CAAC,CAAC;AACjG;;AAEG;AACH,QAAA,IAAA,CAAA,wBAAwB,GAA6B,IAAI,eAAe,CAAU,KAAK,CAAC,CAAA;QAWvF,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAiB,IAAI,CAAC,KAAK,CAAC,CAAA;AAC3D,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9C;AACF;;;;AAIG;AACH,IAAA,UAAU,CAAC,IAAkB,EAAA;AAC5B,QAAA,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;QAC1B,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;AACpC,QAAA,YAAY,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,IAAI,SAAS,IAAI,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;QACjI,YAAY,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;AAC3C,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;KAC9B;AACD;;;;AAIG;AACF,IAAA,cAAc,CAAC,IAAkB,EAAA;AAC/B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;AACF;;;;AAIG;IACF,wBAAwB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;KACzC;AACF;;;;AAIG;IACF,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;KACrC;AACF;;;;AAIG;IACF,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;KACnC;AACF;;;;AAIG;AACH,IAAA,0BAA0B,CAAC,SAAkB,EAAA;AAC5C,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;KAC7C;AACD;;;;AAIG;IACH,0BAA0B,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,CAAA;KACnD;AACD;;;AAGG;IACF,cAAc,GAAA;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAM,CAAC,SAAS,CAAC;QAEjD,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AACzC,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;AAC7C,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACzB,gBAAA,GAAG,QAAQ;gBACX,kBAAkB,EAAE,WAAW,CAAC,gBAAgB;AAChD,gBAAA,iBAAiB,EAAE,CAAC,CAAC,WAAW,CAAC,gBAAgB;AACjD,aAAA,CAAC,CAAC;SACD;KACF;AACF;;;AAGG;IACH,kBAAkB,GAAA;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAM,CAAC,SAAS,CAAA;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,GAAG,CAAC,CAAC,CAAA;AAEnF,QAAA,IAAI,CAAC,QAAQ;YAAE,OAAM;AAErB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACtB,YAAA,GAAG,QAAQ;AACX,YAAA,iBAAiB,EAAE,KAAK;AACxB,SAAA,CAAC,CAAC;KACH;AACD;;;;AAIG;IACF,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAM,CAAC,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;KACxE;AAEF;;;;;AAKG;IACH,MAAM,gBAAgB,CAAC,iBAAyC,EAAE,mBAAwD,EAAE,SAAkB,KAAK,EAAA;AAClJ,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAA;AAE3C,QAAA,IAAI,CAAC,WAAW;YAAE,OAAM;QAExB,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,WAAW,CAAA;AAE9D,QAAA,IAAI,eAAe,IAAI,mBAAmB,EAAE;AAC3C,YAAA,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,SAAS,CAAC,CAAA;YAEpD,IAAI,CAAC,OAAO,IAAI,MAAM;AAAE,gBAAA,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAA;SACxD;AAED,QAAA,IAAI,KAAK,GAAG,CAAQ,KAAA,EAAA,SAAS,EAAE,CAAA;AAC/B,QAAA,IAAI,iBAAiB;AAAE,YAAA,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,KAAK,IAAI,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAA,CAAE,CAAC,CAAA;AACjG,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAA;KAClE;AAED;;;AAGG;IACH,cAAc,GAAA;AACb,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAA;QAC3B,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;KAC/B;AA/JW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,sEAqBd,OAAO,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AArBJ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAsBE,MAAM;2BAAC,OAAO,CAAA;;;MChBJ,aAAa,CAAA;AASzB;;;;AAIG;AACF,IAAA,WAAA,CAAoB,WAA6B,EAAA;QAA7B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;KAAK;AACvD;;;AAGG;IACF,QAAQ,GAAA;QACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,wBAAwB,EAAE,CAAC;KAChE;AACF;;;;AAIG;AACF,IAAA,WAAW,CAAC,IAAoB,EAAA;AAC9B,QAAA,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;KACvC;8GA9BU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb1B,4rBAcM,EAAA,MAAA,EAAA,CAAA,8kBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDLM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,MAAM,EACJ,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,4rBAAA,EAAA,MAAA,EAAA,CAAA,8kBAAA,CAAA,EAAA,CAAA;;;AETzB;;AAEG;;ACFH;;AAEG;;;;"}
@@ -41,7 +41,13 @@ export declare class StepService<T> {
41
41
  * @description returns the current modal step observable
42
42
  * @returns the current modal step observable
43
43
  */
44
- getCurrentStep(): Observable<StepModel<T> | null>;
44
+ getCurrentStepObservable(): Observable<StepModel<T> | null>;
45
+ /**
46
+ * @author Alex Hodson
47
+ * @description returns the current modal step observable
48
+ * @returns the current modal step observable
49
+ */
50
+ getCurrentStep(): StepModel<T> | null;
45
51
  /**
46
52
  * @author Alex Hodson
47
53
  * @description returns the modal step observable
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "windows-plus-utilities",
3
- "version": "0.0.68",
3
+ "version": "0.0.70",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.3.8",
6
6
  "@angular/core": "^17.3.8",