windows-plus-utilities 0.0.90 → 0.0.92

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.
@@ -168,10 +168,20 @@ export class WizardStepService {
168
168
  return;
169
169
  this.router.navigate([`step-${step.slug}`], { relativeTo: this.activatedRoute });
170
170
  }
171
+ /**
172
+ * Navigates the router away from any "step" route.
173
+ *
174
+ * This methods updates the URL relative to the injected route, removing every after `/step-
175
+ */
176
+ clearStepRoute() {
177
+ const url = this.router.url;
178
+ const [initial] = url.split('/step-');
179
+ this.router.navigate([initial]);
180
+ }
171
181
  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 }); }
172
182
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: WizardStepService }); }
173
183
  }
174
184
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: WizardStepService, decorators: [{
175
185
  type: Injectable
176
186
  }], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }] });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLXN0ZXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dpbmRvd3MtcGx1cy11dGlsaXRpZXMvbW9kYWwtd2l6YXJkL3V0aWwvc2VydmljZS93aXphcmQtc3RlcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQTtBQUNsRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7OztBQUtwQzs7Ozs7Ozs7Ozs7R0FXRztBQUVILE1BQU0sT0FBTyxpQkFBaUI7SUFvQjVCLFlBQ21CLE1BQWMsRUFDZCxjQUE4QjtRQUQ5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBcEJqRDs7V0FFRztRQUNjLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBd0IsSUFBSSxDQUFDLENBQUE7UUFJMUU7O1dBRUc7UUFDYyw2QkFBd0IsR0FDdkMsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUE7SUFVakMsQ0FBQztJQUVMOzs7OztPQUtHO0lBQ0gsVUFBVSxDQUFDLE9BQTZCLEVBQUUsY0FBaUIsRUFBSSxVQUFnRDtRQUU3RyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtRQUN4QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsVUFBVSxDQUFBO1FBRWpDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUE7UUFFM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDZixLQUFLO1lBQ0wsWUFBWSxFQUFFLENBQUM7WUFDZixPQUFPLEVBQUUsY0FBYztTQUN4QixDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7SUFD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TVUsaUJBQWlCO2tIQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcbmltcG9ydCB7IFdpemFyZFN0YXRlIH0gZnJvbSAnLi4vaW50ZXJmYWNlL3dpemFyZC1zdGF0ZS5pbnRlcmZhY2UnXHJcbmltcG9ydCB7IFdpemFyZFN0ZXBGYWN0b3J5IH0gZnJvbSAnLi4vZmFjdG9yeS93aXphcmQtc3RlcC1mYWN0b3J5J1xyXG5pbXBvcnQgeyBTdGVwRGVmaW5pdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZS9zdGVwLWRlZmluaXRpb24uaW50ZXJmYWNlJ1xyXG5cclxuLyoqXHJcbiAqIEdlbmVyaWMgcmV1c2FibGUgd2l6YXJkIHN0ZXAgY29udHJvbGxlci5cclxuICpcclxuICogSGFuZGxlczpcclxuICogLSBOYXZpZ2F0aW9uXHJcbiAqIC0gQ29uZGl0aW9uYWwgc3RlcCByZXNvbHV0aW9uXHJcbiAqIC0gRHluYW1pYyBzdGVwIGluc2VydGlvbi9yZW1vdmFsXHJcbiAqIC0gQ29udGV4dCBwZXJzaXN0ZW5jZVxyXG4gKiAtIFJvdXRlciBzeW5jaHJvbml6YXRpb25cclxuICpcclxuICogQHRlbXBsYXRlIFQgVGhlIHNoYXJlZCB3aXphcmQgY29udGV4dCB0eXBlLlxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgV2l6YXJkU3RlcFNlcnZpY2U8VD4ge1xyXG5cclxuICAvKipcclxuICAgKiBJbnRlcm5hbCB3aXphcmQgc3RhdGUgY29udGFpbmVyLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxXaXphcmRTdGF0ZTxUPiB8IG51bGw+KG51bGwpXHJcblxyXG5cdHByaXZhdGUgY29tcGxldGlvbkhhbmRsZXI/OiAoY29udGV4dDogVCkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWRcclxuXHJcbiAgLyoqXHJcbiAgICogQ29udHJvbHMgd2hldGhlciBmb3J3YXJkIG5hdmlnYXRpb24gaXMgYWxsb3dlZC5cclxuICAgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IHN0ZXBGb3J3YXJkQXZhaWxhYmlsaXR5JCA9XHJcbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKVxyXG5cclxuICAvKipcclxuICAgKiBUaGUgc3RlcCBmYWN0b3J5IHVzZWQgdG8gcmVzb2x2ZSBhY3RpdmUgc3RlcHMuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBmYWN0b3J5PzogV2l6YXJkU3RlcEZhY3Rvcnk8VD5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVcclxuICApIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplcyB0aGUgd2l6YXJkLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZhY3RvcnkgVGhlIHN0ZXAgZmFjdG9yeSBkZWZpbmluZyB0aGUgd2l6YXJkIGZsb3cuXHJcbiAgICogQHBhcmFtIGluaXRpYWxDb250ZXh0IEluaXRpYWwgc2hhcmVkIGNvbnRleHQgb2JqZWN0LlxyXG4gICAqL1xyXG4gIGluaXRpYWxpemUoZmFjdG9yeTogV2l6YXJkU3RlcEZhY3Rvcnk8VD4sIGluaXRpYWxDb250ZXh0OiBULCAgIG9uQ29tcGxldGU6IChjb250ZXh0OiBUKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZFxyXG4pOiB2b2lkIHtcclxuICAgIHRoaXMuZmFjdG9yeSA9IGZhY3RvcnlcclxuXHRcdHRoaXMuY29tcGxldGlvbkhhbmRsZXIgPSBvbkNvbXBsZXRlXHJcblxyXG4gICAgY29uc3Qgc3RlcHMgPSBmYWN0b3J5LmJ1aWxkKGluaXRpYWxDb250ZXh0KVxyXG5cclxuICAgIHRoaXMuc3RhdGUkLm5leHQoe1xyXG4gICAgICBzdGVwcyxcclxuICAgICAgY3VycmVudEluZGV4OiAwLFxyXG4gICAgICBjb250ZXh0OiBpbml0aWFsQ29udGV4dFxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLm5hdmlnYXRlKClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgc3RlcCBzeW5jaHJvbm91c2x5LlxyXG4gICAqL1xyXG4gIGdldEN1cnJlbnRTdGVwKCk6IFN0ZXBEZWZpbml0aW9uPFQ+IHwgbnVsbCB7XHJcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGUkLnZhbHVlXHJcbiAgICBpZiAoIXN0YXRlKSByZXR1cm4gbnVsbFxyXG4gICAgcmV0dXJuIHN0YXRlLnN0ZXBzW3N0YXRlLmN1cnJlbnRJbmRleF0gPz8gbnVsbFxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT2JzZXJ2YWJsZSBzdHJlYW0gb2YgY3VycmVudCBzdGVwLlxyXG4gICAqL1xyXG4gIGdldEN1cnJlbnRTdGVwJCgpOiBPYnNlcnZhYmxlPFN0ZXBEZWZpbml0aW9uPFQ+IHwgbnVsbD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUkLnBpcGUoXHJcbiAgICAgIG1hcChzdGF0ZSA9PlxyXG4gICAgICAgIHN0YXRlID8gc3RhdGUuc3RlcHNbc3RhdGUuY3VycmVudEluZGV4XSA6IG51bGxcclxuICAgICAgKVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT2JzZXJ2YWJsZSBzdHJlYW0gb2YgYWxsIGFjdGl2ZSBzdGVwcy5cclxuICAgKi9cclxuICBnZXRTdGVwcyQoKTogT2JzZXJ2YWJsZTxTdGVwRGVmaW5pdGlvbjxUPltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZSQucGlwZShcclxuICAgICAgbWFwKHN0YXRlID0+IHN0YXRlPy5zdGVwcyA/PyBbXSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9ic2VydmFibGUgc3RyZWFtIG9mIHRoZSBjdXJyZW50IGluZGV4LlxyXG4gICAqL1xyXG4gIGdldEN1cnJlbnRJbmRleCQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlJC5waXBlKFxyXG4gICAgICBtYXAoc3RhdGUgPT4gc3RhdGU/LmN1cnJlbnRJbmRleCA/PyAwKVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgc2hhcmVkIHdpemFyZCBjb250ZXh0LlxyXG4gICAqL1xyXG4gIGdldENvbnRleHQoKTogVCB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUkLnZhbHVlPy5jb250ZXh0ID8/IG51bGxcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkdmFuY2VzIHRvIHRoZSBuZXh0IHN0ZXAuXHJcbiAgICpcclxuICAgKiBFeGVjdXRlczpcclxuICAgKiAtIG9uRXhpdCBndWFyZFxyXG4gICAqIC0gY29udGV4dCBtZXJnZVxyXG4gICAqIC0gc3RlcCByZWNvbXBvc2l0aW9uXHJcbiAgICogLSBuYXZpZ2F0aW9uXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcGFydGlhbENvbnRleHQgT3B0aW9uYWwgY29udGV4dCB1cGRhdGVzLlxyXG4gICAqIEBwYXJhbSBjb21wbGV0aW9uUHJvY2VkdXJlIE9wdGlvbmFsIHByb2NlZHVyZSB0byBydW4gd2hlbiB0aGUgd2l6YXJkIGlzIGNvbXBsZXRlZC5cclxuICAgKi9cclxuIGFzeW5jIG5leHQocGFydGlhbENvbnRleHQ/OiBQYXJ0aWFsPFQ+KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlJC52YWx1ZVxyXG4gIGlmICghc3RhdGUgfHwgIXRoaXMuZmFjdG9yeSkgcmV0dXJuXHJcblxyXG4gIGNvbnN0IGN1cnJlbnQgPSBzdGF0ZS5zdGVwc1tzdGF0ZS5jdXJyZW50SW5kZXhdXHJcblxyXG4gIGNvbnN0IHVwZGF0ZWRDb250ZXh0ID0ge1xyXG4gICAgLi4uc3RhdGUuY29udGV4dCxcclxuICAgIC4uLnBhcnRpYWxDb250ZXh0XHJcbiAgfVxyXG5cclxuICAvLyBSdW4gZXhpdCBndWFyZFxyXG4gIGlmIChjdXJyZW50Lm9uRXhpdCkge1xyXG4gICAgY29uc3QgYWxsb3dlZCA9IGF3YWl0IGN1cnJlbnQub25FeGl0KHVwZGF0ZWRDb250ZXh0KVxyXG4gICAgaWYgKCFhbGxvd2VkKSByZXR1cm5cclxuICB9XHJcblxyXG4gIC8vIPCflKUgUmUtcmVzb2x2ZSBzdGVwcyBBRlRFUiBjb250ZXh0IHVwZGF0ZVxyXG4gIGNvbnN0IHJlc29sdmVkID0gdGhpcy5mYWN0b3J5LmJ1aWxkKHVwZGF0ZWRDb250ZXh0KVxyXG5cclxuICBjb25zdCBjdXJyZW50U2x1ZyA9IGN1cnJlbnQuc2x1Z1xyXG4gIGNvbnN0IG5ld0luZGV4ID0gcmVzb2x2ZWQuZmluZEluZGV4KHMgPT4gcy5zbHVnID09PSBjdXJyZW50U2x1ZylcclxuXHJcbiAgY29uc3QgaXNMYXN0QWZ0ZXJSZXNvbHV0aW9uID1cclxuICAgIG5ld0luZGV4ID09PSByZXNvbHZlZC5sZW5ndGggLSAxXHJcblxyXG4gIC8vIElmIGxhc3QgYWZ0ZXIgcmUtZXZhbHVhdGlvbiDihpIgY29tcGxldGVcclxuICBpZiAoaXNMYXN0QWZ0ZXJSZXNvbHV0aW9uKSB7XHJcbiAgICBhd2FpdCB0aGlzLmNvbXBsZXRpb25IYW5kbGVyPy4odXBkYXRlZENvbnRleHQpXHJcbiAgICByZXR1cm5cclxuICB9XHJcblxyXG4gIC8vIE90aGVyd2lzZSBtb3ZlIGZvcndhcmRcclxuICB0aGlzLnN0YXRlJC5uZXh0KHtcclxuICAgIHN0ZXBzOiByZXNvbHZlZCxcclxuICAgIGN1cnJlbnRJbmRleDogbmV3SW5kZXggKyAxLFxyXG4gICAgY29udGV4dDogdXBkYXRlZENvbnRleHRcclxuICB9KVxyXG5cclxuICB0aGlzLm5hdmlnYXRlKClcclxufVxyXG5cclxuICAvKipcclxuICAgKiBOYXZpZ2F0ZXMgdG8gdGhlIHByZXZpb3VzIHN0ZXAuXHJcbiAgICovXHJcbiAgcHJldmlvdXMoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGUkLnZhbHVlXHJcbiAgICBpZiAoIXN0YXRlKSByZXR1cm5cclxuXHJcbiAgICBpZiAoc3RhdGUuY3VycmVudEluZGV4ID09PSAwKSByZXR1cm5cclxuXHJcbiAgICB0aGlzLnN0YXRlJC5uZXh0KHtcclxuICAgICAgLi4uc3RhdGUsXHJcbiAgICAgIGN1cnJlbnRJbmRleDogc3RhdGUuY3VycmVudEluZGV4IC0gMVxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLm5hdmlnYXRlKClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgd2l6YXJkIGlzIGN1cnJlbnRseSBvbiB0aGUgbGFzdCBzdGVwLlxyXG4gICAqL1xyXG4gIGlzTGFzdCgpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZSQudmFsdWVcclxuICAgIGlmICghc3RhdGUpIHJldHVybiBmYWxzZVxyXG4gICAgcmV0dXJuIHN0YXRlLmN1cnJlbnRJbmRleCA9PT0gc3RhdGUuc3RlcHMubGVuZ3RoIC0gMVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyBmb3J3YXJkIG5hdmlnYXRpb24gYXZhaWxhYmlsaXR5LlxyXG4gICAqL1xyXG4gIHNldFN0ZXBGb3J3YXJkQXZhaWxhYmlsaXR5KGF2YWlsYWJsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5zdGVwRm9yd2FyZEF2YWlsYWJpbGl0eSQubmV4dChhdmFpbGFibGUpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIG9ic2VydmFibGUgZm9yd2FyZCBuYXZpZ2F0aW9uIHN0YXRlLlxyXG4gICAqL1xyXG4gIGdldFN0ZXBGb3J3YXJkQXZhaWxhYmlsaXR5KCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RlcEZvcndhcmRBdmFpbGFiaWxpdHkkLmFzT2JzZXJ2YWJsZSgpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBOYXZpZ2F0ZXMgdGhlIEFuZ3VsYXIgcm91dGVyIHRvIHRoZSBjdXJyZW50IHN0ZXAuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBuYXZpZ2F0ZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN0ZXAgPSB0aGlzLmdldEN1cnJlbnRTdGVwKClcclxuICAgIGlmICghc3RlcCkgcmV0dXJuXHJcblxyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoXHJcbiAgICAgIFtgc3RlcC0ke3N0ZXAuc2x1Z31gXSxcclxuICAgICAgeyByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlIH1cclxuICAgIClcclxuICB9XHJcbn0iXX0=
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLXN0ZXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dpbmRvd3MtcGx1cy11dGlsaXRpZXMvbW9kYWwtd2l6YXJkL3V0aWwvc2VydmljZS93aXphcmQtc3RlcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQTtBQUNsRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7OztBQUtwQzs7Ozs7Ozs7Ozs7R0FXRztBQUVILE1BQU0sT0FBTyxpQkFBaUI7SUFvQjVCLFlBQ21CLE1BQWMsRUFDZCxjQUE4QjtRQUQ5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBcEJqRDs7V0FFRztRQUNjLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBd0IsSUFBSSxDQUFDLENBQUE7UUFJMUU7O1dBRUc7UUFDYyw2QkFBd0IsR0FDdkMsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUE7SUFVakMsQ0FBQztJQUVMOzs7OztPQUtHO0lBQ0gsVUFBVSxDQUFDLE9BQTZCLEVBQUUsY0FBaUIsRUFBSSxVQUFnRDtRQUU3RyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtRQUN4QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsVUFBVSxDQUFBO1FBRWpDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUE7UUFFM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDZixLQUFLO1lBQ0wsWUFBWSxFQUFFLENBQUM7WUFDZixPQUFPLEVBQUUsY0FBYztTQUN4QixDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7SUFD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Ozs7O09BSUc7SUFDSCxjQUFjO1FBQ2IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUE7UUFDM0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBQ2hDLENBQUM7OEdBL01XLGlCQUFpQjtrSEFBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xyXG5pbXBvcnQgeyBXaXphcmRTdGF0ZSB9IGZyb20gJy4uL2ludGVyZmFjZS93aXphcmQtc3RhdGUuaW50ZXJmYWNlJ1xyXG5pbXBvcnQgeyBXaXphcmRTdGVwRmFjdG9yeSB9IGZyb20gJy4uL2ZhY3Rvcnkvd2l6YXJkLXN0ZXAtZmFjdG9yeSdcclxuaW1wb3J0IHsgU3RlcERlZmluaXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2Uvc3RlcC1kZWZpbml0aW9uLmludGVyZmFjZSdcclxuXHJcbi8qKlxyXG4gKiBHZW5lcmljIHJldXNhYmxlIHdpemFyZCBzdGVwIGNvbnRyb2xsZXIuXHJcbiAqXHJcbiAqIEhhbmRsZXM6XHJcbiAqIC0gTmF2aWdhdGlvblxyXG4gKiAtIENvbmRpdGlvbmFsIHN0ZXAgcmVzb2x1dGlvblxyXG4gKiAtIER5bmFtaWMgc3RlcCBpbnNlcnRpb24vcmVtb3ZhbFxyXG4gKiAtIENvbnRleHQgcGVyc2lzdGVuY2VcclxuICogLSBSb3V0ZXIgc3luY2hyb25pemF0aW9uXHJcbiAqXHJcbiAqIEB0ZW1wbGF0ZSBUIFRoZSBzaGFyZWQgd2l6YXJkIGNvbnRleHQgdHlwZS5cclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFdpemFyZFN0ZXBTZXJ2aWNlPFQ+IHtcclxuXHJcbiAgLyoqXHJcbiAgICogSW50ZXJuYWwgd2l6YXJkIHN0YXRlIGNvbnRhaW5lci5cclxuICAgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V2l6YXJkU3RhdGU8VD4gfCBudWxsPihudWxsKVxyXG5cclxuXHRwcml2YXRlIGNvbXBsZXRpb25IYW5kbGVyPzogKGNvbnRleHQ6IFQpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgZm9yd2FyZCBuYXZpZ2F0aW9uIGlzIGFsbG93ZWQuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBzdGVwRm9yd2FyZEF2YWlsYWJpbGl0eSQgPVxyXG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSlcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHN0ZXAgZmFjdG9yeSB1c2VkIHRvIHJlc29sdmUgYWN0aXZlIHN0ZXBzLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZmFjdG9yeT86IFdpemFyZFN0ZXBGYWN0b3J5PFQ+XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgdGhlIHdpemFyZC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBmYWN0b3J5IFRoZSBzdGVwIGZhY3RvcnkgZGVmaW5pbmcgdGhlIHdpemFyZCBmbG93LlxyXG4gICAqIEBwYXJhbSBpbml0aWFsQ29udGV4dCBJbml0aWFsIHNoYXJlZCBjb250ZXh0IG9iamVjdC5cclxuICAgKi9cclxuICBpbml0aWFsaXplKGZhY3Rvcnk6IFdpemFyZFN0ZXBGYWN0b3J5PFQ+LCBpbml0aWFsQ29udGV4dDogVCwgICBvbkNvbXBsZXRlOiAoY29udGV4dDogVCkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWRcclxuKTogdm9pZCB7XHJcbiAgICB0aGlzLmZhY3RvcnkgPSBmYWN0b3J5XHJcblx0XHR0aGlzLmNvbXBsZXRpb25IYW5kbGVyID0gb25Db21wbGV0ZVxyXG5cclxuICAgIGNvbnN0IHN0ZXBzID0gZmFjdG9yeS5idWlsZChpbml0aWFsQ29udGV4dClcclxuXHJcbiAgICB0aGlzLnN0YXRlJC5uZXh0KHtcclxuICAgICAgc3RlcHMsXHJcbiAgICAgIGN1cnJlbnRJbmRleDogMCxcclxuICAgICAgY29udGV4dDogaW5pdGlhbENvbnRleHRcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5uYXZpZ2F0ZSgpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHN0ZXAgc3luY2hyb25vdXNseS5cclxuICAgKi9cclxuICBnZXRDdXJyZW50U3RlcCgpOiBTdGVwRGVmaW5pdGlvbjxUPiB8IG51bGwge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlJC52YWx1ZVxyXG4gICAgaWYgKCFzdGF0ZSkgcmV0dXJuIG51bGxcclxuICAgIHJldHVybiBzdGF0ZS5zdGVwc1tzdGF0ZS5jdXJyZW50SW5kZXhdID8/IG51bGxcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9ic2VydmFibGUgc3RyZWFtIG9mIGN1cnJlbnQgc3RlcC5cclxuICAgKi9cclxuICBnZXRDdXJyZW50U3RlcCQoKTogT2JzZXJ2YWJsZTxTdGVwRGVmaW5pdGlvbjxUPiB8IG51bGw+IHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlJC5waXBlKFxyXG4gICAgICBtYXAoc3RhdGUgPT5cclxuICAgICAgICBzdGF0ZSA/IHN0YXRlLnN0ZXBzW3N0YXRlLmN1cnJlbnRJbmRleF0gOiBudWxsXHJcbiAgICAgIClcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9ic2VydmFibGUgc3RyZWFtIG9mIGFsbCBhY3RpdmUgc3RlcHMuXHJcbiAgICovXHJcbiAgZ2V0U3RlcHMkKCk6IE9ic2VydmFibGU8U3RlcERlZmluaXRpb248VD5bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUkLnBpcGUoXHJcbiAgICAgIG1hcChzdGF0ZSA9PiBzdGF0ZT8uc3RlcHMgPz8gW10pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPYnNlcnZhYmxlIHN0cmVhbSBvZiB0aGUgY3VycmVudCBpbmRleC5cclxuICAgKi9cclxuICBnZXRDdXJyZW50SW5kZXgkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZSQucGlwZShcclxuICAgICAgbWFwKHN0YXRlID0+IHN0YXRlPy5jdXJyZW50SW5kZXggPz8gMClcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHNoYXJlZCB3aXphcmQgY29udGV4dC5cclxuICAgKi9cclxuICBnZXRDb250ZXh0KCk6IFQgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlJC52YWx1ZT8uY29udGV4dCA/PyBudWxsXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBzdGVwLlxyXG4gICAqXHJcbiAgICogRXhlY3V0ZXM6XHJcbiAgICogLSBvbkV4aXQgZ3VhcmRcclxuICAgKiAtIGNvbnRleHQgbWVyZ2VcclxuICAgKiAtIHN0ZXAgcmVjb21wb3NpdGlvblxyXG4gICAqIC0gbmF2aWdhdGlvblxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcnRpYWxDb250ZXh0IE9wdGlvbmFsIGNvbnRleHQgdXBkYXRlcy5cclxuICAgKiBAcGFyYW0gY29tcGxldGlvblByb2NlZHVyZSBPcHRpb25hbCBwcm9jZWR1cmUgdG8gcnVuIHdoZW4gdGhlIHdpemFyZCBpcyBjb21wbGV0ZWQuXHJcbiAgICovXHJcbiBhc3luYyBuZXh0KHBhcnRpYWxDb250ZXh0PzogUGFydGlhbDxUPik6IFByb21pc2U8dm9pZD4ge1xyXG4gIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZSQudmFsdWVcclxuICBpZiAoIXN0YXRlIHx8ICF0aGlzLmZhY3RvcnkpIHJldHVyblxyXG5cclxuICBjb25zdCBjdXJyZW50ID0gc3RhdGUuc3RlcHNbc3RhdGUuY3VycmVudEluZGV4XVxyXG5cclxuICBjb25zdCB1cGRhdGVkQ29udGV4dCA9IHtcclxuICAgIC4uLnN0YXRlLmNvbnRleHQsXHJcbiAgICAuLi5wYXJ0aWFsQ29udGV4dFxyXG4gIH1cclxuXHJcbiAgLy8gUnVuIGV4aXQgZ3VhcmRcclxuICBpZiAoY3VycmVudC5vbkV4aXQpIHtcclxuICAgIGNvbnN0IGFsbG93ZWQgPSBhd2FpdCBjdXJyZW50Lm9uRXhpdCh1cGRhdGVkQ29udGV4dClcclxuICAgIGlmICghYWxsb3dlZCkgcmV0dXJuXHJcbiAgfVxyXG5cclxuICAvLyDwn5SlIFJlLXJlc29sdmUgc3RlcHMgQUZURVIgY29udGV4dCB1cGRhdGVcclxuICBjb25zdCByZXNvbHZlZCA9IHRoaXMuZmFjdG9yeS5idWlsZCh1cGRhdGVkQ29udGV4dClcclxuXHJcbiAgY29uc3QgY3VycmVudFNsdWcgPSBjdXJyZW50LnNsdWdcclxuICBjb25zdCBuZXdJbmRleCA9IHJlc29sdmVkLmZpbmRJbmRleChzID0+IHMuc2x1ZyA9PT0gY3VycmVudFNsdWcpXHJcblxyXG4gIGNvbnN0IGlzTGFzdEFmdGVyUmVzb2x1dGlvbiA9XHJcbiAgICBuZXdJbmRleCA9PT0gcmVzb2x2ZWQubGVuZ3RoIC0gMVxyXG5cclxuICAvLyBJZiBsYXN0IGFmdGVyIHJlLWV2YWx1YXRpb24g4oaSIGNvbXBsZXRlXHJcbiAgaWYgKGlzTGFzdEFmdGVyUmVzb2x1dGlvbikge1xyXG4gICAgYXdhaXQgdGhpcy5jb21wbGV0aW9uSGFuZGxlcj8uKHVwZGF0ZWRDb250ZXh0KVxyXG4gICAgcmV0dXJuXHJcbiAgfVxyXG5cclxuICAvLyBPdGhlcndpc2UgbW92ZSBmb3J3YXJkXHJcbiAgdGhpcy5zdGF0ZSQubmV4dCh7XHJcbiAgICBzdGVwczogcmVzb2x2ZWQsXHJcbiAgICBjdXJyZW50SW5kZXg6IG5ld0luZGV4ICsgMSxcclxuICAgIGNvbnRleHQ6IHVwZGF0ZWRDb250ZXh0XHJcbiAgfSlcclxuXHJcbiAgdGhpcy5uYXZpZ2F0ZSgpXHJcbn1cclxuXHJcbiAgLyoqXHJcbiAgICogTmF2aWdhdGVzIHRvIHRoZSBwcmV2aW91cyBzdGVwLlxyXG4gICAqL1xyXG4gIHByZXZpb3VzKCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlJC52YWx1ZVxyXG4gICAgaWYgKCFzdGF0ZSkgcmV0dXJuXHJcblxyXG4gICAgaWYgKHN0YXRlLmN1cnJlbnRJbmRleCA9PT0gMCkgcmV0dXJuXHJcblxyXG4gICAgdGhpcy5zdGF0ZSQubmV4dCh7XHJcbiAgICAgIC4uLnN0YXRlLFxyXG4gICAgICBjdXJyZW50SW5kZXg6IHN0YXRlLmN1cnJlbnRJbmRleCAtIDFcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5uYXZpZ2F0ZSgpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHdpemFyZCBpcyBjdXJyZW50bHkgb24gdGhlIGxhc3Qgc3RlcC5cclxuICAgKi9cclxuICBpc0xhc3QoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGUkLnZhbHVlXHJcbiAgICBpZiAoIXN0YXRlKSByZXR1cm4gZmFsc2VcclxuICAgIHJldHVybiBzdGF0ZS5jdXJyZW50SW5kZXggPT09IHN0YXRlLnN0ZXBzLmxlbmd0aCAtIDFcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgZm9yd2FyZCBuYXZpZ2F0aW9uIGF2YWlsYWJpbGl0eS5cclxuICAgKi9cclxuICBzZXRTdGVwRm9yd2FyZEF2YWlsYWJpbGl0eShhdmFpbGFibGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RlcEZvcndhcmRBdmFpbGFiaWxpdHkkLm5leHQoYXZhaWxhYmxlKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBvYnNlcnZhYmxlIGZvcndhcmQgbmF2aWdhdGlvbiBzdGF0ZS5cclxuICAgKi9cclxuICBnZXRTdGVwRm9yd2FyZEF2YWlsYWJpbGl0eSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLnN0ZXBGb3J3YXJkQXZhaWxhYmlsaXR5JC5hc09ic2VydmFibGUoKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTmF2aWdhdGVzIHRoZSBBbmd1bGFyIHJvdXRlciB0byB0aGUgY3VycmVudCBzdGVwLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgbmF2aWdhdGUoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdGVwID0gdGhpcy5nZXRDdXJyZW50U3RlcCgpXHJcbiAgICBpZiAoIXN0ZXApIHJldHVyblxyXG5cclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFxyXG4gICAgICBbYHN0ZXAtJHtzdGVwLnNsdWd9YF0sXHJcbiAgICAgIHsgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZSB9XHJcbiAgICApXHJcbiAgfVxyXG5cdC8qKlxyXG5cdCAqIE5hdmlnYXRlcyB0aGUgcm91dGVyIGF3YXkgZnJvbSBhbnkgXCJzdGVwXCIgcm91dGUuXHJcblx0ICogXHJcblx0ICogVGhpcyBtZXRob2RzIHVwZGF0ZXMgdGhlIFVSTCByZWxhdGl2ZSB0byB0aGUgaW5qZWN0ZWQgcm91dGUsIHJlbW92aW5nIGV2ZXJ5IGFmdGVyIGAvc3RlcC1cclxuXHQgKi9cclxuXHRjbGVhclN0ZXBSb3V0ZSgpOiB2b2lkIHtcclxuXHRcdGNvbnN0IHVybCA9IHRoaXMucm91dGVyLnVybFxyXG5cdFx0Y29uc3QgW2luaXRpYWxdID0gdXJsLnNwbGl0KCcvc3RlcC0nKVxyXG5cdFx0dGhpcy5yb3V0ZXIubmF2aWdhdGUoW2luaXRpYWxdKVxyXG5cdH1cclxufSJdfQ==
@@ -1,6 +1,5 @@
1
1
  import { Pipe } from '@angular/core';
2
2
  import { format } from 'date-fns';
3
- import { replaceAll } from '../../helper/string/string-helper';
4
3
  import * as i0 from "@angular/core";
5
4
  /**
6
5
  * @author Alex Hodson
@@ -26,7 +25,7 @@ export class FormatDateTimePipe {
26
25
  * @returns the formatted value
27
26
  */
28
27
  format(text) {
29
- const date = new Date(replaceAll(text, 'Z', ''));
28
+ const date = new Date(text);
30
29
  return format(date, 'E, d MMMM yyyy H:mm:ss');
31
30
  }
32
31
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormatDateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
@@ -38,4 +37,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
38
37
  name: 'formatDateTime'
39
38
  }]
40
39
  }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWRhdGUtdGltZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2luZG93cy1wbHVzLXV0aWxpdGllcy91dGlsL3BpcGUvZm9ybWF0LWRhdGUtdGltZS9mb3JtYXQtZGF0ZS10aW1lLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUE7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUE7O0FBSzlEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFFOUI7Ozs7OztPQU1HO0lBQ0gsU0FBUyxDQUFDLEtBQWtCLEVBQUUsR0FBRyxJQUFlO1FBQy9DLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxFQUFFLENBQUE7UUFFckIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzFCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLE1BQU0sQ0FBQyxJQUFZO1FBQzFCLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDaEQsT0FBTyxNQUFNLENBQUMsSUFBSSxFQUFFLHdCQUF3QixDQUFDLENBQUE7SUFDOUMsQ0FBQzs4R0F4Qlcsa0JBQWtCOzRHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBUDlCLElBQUk7bUJBQUM7b0JBQ0wsSUFBSSxFQUFFLGdCQUFnQjtpQkFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnZGF0ZS1mbnMnXHJcbmltcG9ydCB7IHJlcGxhY2VBbGwgfSBmcm9tICcuLi8uLi9oZWxwZXIvc3RyaW5nL3N0cmluZy1oZWxwZXInXHJcblxyXG5AUGlwZSh7XHJcblx0bmFtZTogJ2Zvcm1hdERhdGVUaW1lJ1xyXG59KVxyXG4vKipcclxuICogQGF1dGhvciBBbGV4IEhvZHNvblxyXG4gKiBAZGVzY3JpcHRpb24gYSBwaXBlIHdoaWNoIGZvcm1hdHMgYSBnaXZlbiBkYXRlIHRpbWUgc3RyaW5nIGludG8gYSB1c2VyIGZyaWVuZGx5IFVUQyBzdHJpbmdcclxuICovXHJcbmV4cG9ydCBjbGFzcyBGb3JtYXREYXRlVGltZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAYXV0aG9yIEFsZXggSG9kc29uXHJcblx0ICogQGRlc2NyaXB0aW9uIHRoZSBlbnRyeSBwb2ludCBmb3IgdGhlIHBvaW50IHdoaWNoIGNhbGxzIHRoZSBmb3JtYXQgbWV0aG9kIGFuZCByZXR1cm5zIGl0cyB2YWx1ZVxyXG5cdCAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgb2YgdGhlIEhUTUwgZWxlbWVudFxyXG5cdCAqIEBwYXJhbSBhcmdzIGFueSBleHRyYSBhcmd1bWVudHMgcGFzc2VkXHJcblx0ICogQHJldHVybnMgdGhlIGZvcm1hdHRlZCB2YWx1ZVxyXG5cdCAqL1xyXG5cdHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nfG51bGwsIC4uLmFyZ3M6IHVua25vd25bXSk6IHN0cmluZyB7XHJcblx0XHRpZiAoIXZhbHVlKSByZXR1cm4gJydcclxuXHRcdFxyXG5cdFx0cmV0dXJuIHRoaXMuZm9ybWF0KHZhbHVlKVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQGF1dGhvciBBbGV4IEhvZHNvblxyXG5cdCAqIEBkZXNjcmlwdGlvbiBmb3JtYXRzIHRoZSBnaXZlbiBkYXRlIHRpbWUgc3RyaW5nIGludG8gYSBVVEMgc3RyaW5nIFxyXG5cdCAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGJlIGZvcm1hdHRlZFxyXG5cdCAqIEByZXR1cm5zIHRoZSBmb3JtYXR0ZWQgdmFsdWVcclxuXHQgKi9cclxuXHRwcml2YXRlIGZvcm1hdCh0ZXh0OiBzdHJpbmcpIHtcclxuXHRcdGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShyZXBsYWNlQWxsKHRleHQsICdaJywgJycpKVxyXG5cdFx0cmV0dXJuIGZvcm1hdChkYXRlLCAnRSwgZCBNTU1NIHl5eXkgSDptbTpzcycpXHJcblx0fVxyXG59XHJcbiJdfQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWRhdGUtdGltZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2luZG93cy1wbHVzLXV0aWxpdGllcy91dGlsL3BpcGUvZm9ybWF0LWRhdGUtdGltZS9mb3JtYXQtZGF0ZS10aW1lLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUE7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQTs7QUFNakM7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQUU5Qjs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQUMsS0FBa0IsRUFBRSxHQUFHLElBQWU7UUFDL0MsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEVBQUUsQ0FBQTtRQUVyQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDMUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssTUFBTSxDQUFDLElBQVk7UUFDMUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDM0IsT0FBTyxNQUFNLENBQUMsSUFBSSxFQUFFLHdCQUF3QixDQUFDLENBQUE7SUFDOUMsQ0FBQzs4R0F4Qlcsa0JBQWtCOzRHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBUDlCLElBQUk7bUJBQUM7b0JBQ0wsSUFBSSxFQUFFLGdCQUFnQjtpQkFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnZGF0ZS1mbnMnXHJcbmltcG9ydCB7IHJlcGxhY2VBbGwgfSBmcm9tICcuLi8uLi9oZWxwZXIvc3RyaW5nL3N0cmluZy1oZWxwZXInXHJcblxyXG5AUGlwZSh7XHJcblx0bmFtZTogJ2Zvcm1hdERhdGVUaW1lJ1xyXG59KVxyXG4vKipcclxuICogQGF1dGhvciBBbGV4IEhvZHNvblxyXG4gKiBAZGVzY3JpcHRpb24gYSBwaXBlIHdoaWNoIGZvcm1hdHMgYSBnaXZlbiBkYXRlIHRpbWUgc3RyaW5nIGludG8gYSB1c2VyIGZyaWVuZGx5IFVUQyBzdHJpbmdcclxuICovXHJcbmV4cG9ydCBjbGFzcyBGb3JtYXREYXRlVGltZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAYXV0aG9yIEFsZXggSG9kc29uXHJcblx0ICogQGRlc2NyaXB0aW9uIHRoZSBlbnRyeSBwb2ludCBmb3IgdGhlIHBvaW50IHdoaWNoIGNhbGxzIHRoZSBmb3JtYXQgbWV0aG9kIGFuZCByZXR1cm5zIGl0cyB2YWx1ZVxyXG5cdCAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgb2YgdGhlIEhUTUwgZWxlbWVudFxyXG5cdCAqIEBwYXJhbSBhcmdzIGFueSBleHRyYSBhcmd1bWVudHMgcGFzc2VkXHJcblx0ICogQHJldHVybnMgdGhlIGZvcm1hdHRlZCB2YWx1ZVxyXG5cdCAqL1xyXG5cdHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nfG51bGwsIC4uLmFyZ3M6IHVua25vd25bXSk6IHN0cmluZyB7XHJcblx0XHRpZiAoIXZhbHVlKSByZXR1cm4gJydcclxuXHRcdFxyXG5cdFx0cmV0dXJuIHRoaXMuZm9ybWF0KHZhbHVlKVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQGF1dGhvciBBbGV4IEhvZHNvblxyXG5cdCAqIEBkZXNjcmlwdGlvbiBmb3JtYXRzIHRoZSBnaXZlbiBkYXRlIHRpbWUgc3RyaW5nIGludG8gYSBVVEMgc3RyaW5nIFxyXG5cdCAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGJlIGZvcm1hdHRlZFxyXG5cdCAqIEByZXR1cm5zIHRoZSBmb3JtYXR0ZWQgdmFsdWVcclxuXHQgKi9cclxuXHRwcml2YXRlIGZvcm1hdCh0ZXh0OiBzdHJpbmcpIHtcclxuXHRcdGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0ZXh0KVxyXG5cdFx0cmV0dXJuIGZvcm1hdChkYXRlLCAnRSwgZCBNTU1NIHl5eXkgSDptbTpzcycpXHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -171,6 +171,16 @@ class WizardStepService {
171
171
  return;
172
172
  this.router.navigate([`step-${step.slug}`], { relativeTo: this.activatedRoute });
173
173
  }
174
+ /**
175
+ * Navigates the router away from any "step" route.
176
+ *
177
+ * This methods updates the URL relative to the injected route, removing every after `/step-
178
+ */
179
+ clearStepRoute() {
180
+ const url = this.router.url;
181
+ const [initial] = url.split('/step-');
182
+ this.router.navigate([initial]);
183
+ }
174
184
  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 }); }
175
185
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: WizardStepService }); }
176
186
  }
@@ -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/factory/wizard-step-factory.ts","../../../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 { ActivatedRoute, Router } from '@angular/router'\r\nimport { BehaviorSubject, Observable } from 'rxjs'\r\nimport { map } from 'rxjs/operators'\r\nimport { WizardState } from '../interface/wizard-state.interface'\r\nimport { WizardStepFactory } from '../factory/wizard-step-factory'\r\nimport { StepDefinition } from '../interface/step-definition.interface'\r\n\r\n/**\r\n * Generic reusable wizard step controller.\r\n *\r\n * Handles:\r\n * - Navigation\r\n * - Conditional step resolution\r\n * - Dynamic step insertion/removal\r\n * - Context persistence\r\n * - Router synchronization\r\n *\r\n * @template T The shared wizard context type.\r\n */\r\n@Injectable()\r\nexport class WizardStepService<T> {\r\n\r\n /**\r\n * Internal wizard state container.\r\n */\r\n private readonly state$ = new BehaviorSubject<WizardState<T> | null>(null)\r\n\r\n\tprivate completionHandler?: (context: T) => Promise<void> | void\r\n\r\n /**\r\n * Controls whether forward navigation is allowed.\r\n */\r\n private readonly stepForwardAvailability$ =\r\n new BehaviorSubject<boolean>(false)\r\n\r\n /**\r\n * The step factory used to resolve active steps.\r\n */\r\n private factory?: WizardStepFactory<T>\r\n\r\n constructor(\r\n private readonly router: Router,\r\n private readonly activatedRoute: ActivatedRoute\r\n ) { }\r\n\r\n /**\r\n * Initializes the wizard.\r\n *\r\n * @param factory The step factory defining the wizard flow.\r\n * @param initialContext Initial shared context object.\r\n */\r\n initialize(factory: WizardStepFactory<T>, initialContext: T, onComplete: (context: T) => Promise<void> | void\r\n): void {\r\n this.factory = factory\r\n\t\tthis.completionHandler = onComplete\r\n\r\n const steps = factory.build(initialContext)\r\n\r\n this.state$.next({\r\n steps,\r\n currentIndex: 0,\r\n context: initialContext\r\n })\r\n\r\n this.navigate()\r\n }\r\n\r\n /**\r\n * Returns the current step synchronously.\r\n */\r\n getCurrentStep(): StepDefinition<T> | null {\r\n const state = this.state$.value\r\n if (!state) return null\r\n return state.steps[state.currentIndex] ?? null\r\n }\r\n\r\n /**\r\n * Observable stream of current step.\r\n */\r\n getCurrentStep$(): Observable<StepDefinition<T> | null> {\r\n return this.state$.pipe(\r\n map(state =>\r\n state ? state.steps[state.currentIndex] : null\r\n )\r\n )\r\n }\r\n\r\n /**\r\n * Observable stream of all active steps.\r\n */\r\n getSteps$(): Observable<StepDefinition<T>[]> {\r\n return this.state$.pipe(\r\n map(state => state?.steps ?? [])\r\n )\r\n }\r\n\r\n /**\r\n * Observable stream of the current index.\r\n */\r\n getCurrentIndex$(): Observable<number> {\r\n return this.state$.pipe(\r\n map(state => state?.currentIndex ?? 0)\r\n )\r\n }\r\n\r\n /**\r\n * Returns the shared wizard context.\r\n */\r\n getContext(): T | null {\r\n return this.state$.value?.context ?? null\r\n }\r\n\r\n /**\r\n * Advances to the next step.\r\n *\r\n * Executes:\r\n * - onExit guard\r\n * - context merge\r\n * - step recomposition\r\n * - navigation\r\n *\r\n * @param partialContext Optional context updates.\r\n * @param completionProcedure Optional procedure to run when the wizard is completed.\r\n */\r\n async next(partialContext?: Partial<T>): Promise<void> {\r\n const state = this.state$.value\r\n if (!state || !this.factory) return\r\n\r\n const current = state.steps[state.currentIndex]\r\n\r\n const updatedContext = {\r\n ...state.context,\r\n ...partialContext\r\n }\r\n\r\n // Run exit guard\r\n if (current.onExit) {\r\n const allowed = await current.onExit(updatedContext)\r\n if (!allowed) return\r\n }\r\n\r\n // 🔥 Re-resolve steps AFTER context update\r\n const resolved = this.factory.build(updatedContext)\r\n\r\n const currentSlug = current.slug\r\n const newIndex = resolved.findIndex(s => s.slug === currentSlug)\r\n\r\n const isLastAfterResolution =\r\n newIndex === resolved.length - 1\r\n\r\n // If last after re-evaluation → complete\r\n if (isLastAfterResolution) {\r\n await this.completionHandler?.(updatedContext)\r\n return\r\n }\r\n\r\n // Otherwise move forward\r\n this.state$.next({\r\n steps: resolved,\r\n currentIndex: newIndex + 1,\r\n context: updatedContext\r\n })\r\n\r\n this.navigate()\r\n}\r\n\r\n /**\r\n * Navigates to the previous step.\r\n */\r\n previous(): void {\r\n const state = this.state$.value\r\n if (!state) return\r\n\r\n if (state.currentIndex === 0) return\r\n\r\n this.state$.next({\r\n ...state,\r\n currentIndex: state.currentIndex - 1\r\n })\r\n\r\n this.navigate()\r\n }\r\n\r\n /**\r\n * Returns whether the wizard is currently on the last step.\r\n */\r\n isLast(): boolean {\r\n const state = this.state$.value\r\n if (!state) return false\r\n return state.currentIndex === state.steps.length - 1\r\n }\r\n\r\n /**\r\n * Sets forward navigation availability.\r\n */\r\n setStepForwardAvailability(available: boolean): void {\r\n this.stepForwardAvailability$.next(available)\r\n }\r\n\r\n /**\r\n * Returns observable forward navigation state.\r\n */\r\n getStepForwardAvailability(): Observable<boolean> {\r\n return this.stepForwardAvailability$.asObservable()\r\n }\r\n\r\n /**\r\n * Navigates the Angular router to the current step.\r\n */\r\n private navigate(): void {\r\n const step = this.getCurrentStep()\r\n if (!step) return\r\n\r\n this.router.navigate(\r\n [`step-${step.slug}`],\r\n { relativeTo: this.activatedRoute }\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\n/**\r\n * Factory helper for building dynamic wizard step flows.\r\n */\r\nexport class WizardStepFactory<T> {\r\n constructor(\r\n private readonly masterSteps: StepDefinition<T>[]\r\n ) { }\r\n\r\n /**\r\n * Resolves the active step list based on context conditions.\r\n *\r\n * @param context The current wizard context.\r\n */\r\n build(context: T): StepDefinition<T>[] {\r\n return this.masterSteps.filter(step =>\r\n !step.condition || step.condition(context)\r\n )\r\n }\r\n}","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/factory/wizard-step-factory'\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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"}
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/factory/wizard-step-factory.ts","../../../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 { ActivatedRoute, Router } from '@angular/router'\r\nimport { BehaviorSubject, Observable } from 'rxjs'\r\nimport { map } from 'rxjs/operators'\r\nimport { WizardState } from '../interface/wizard-state.interface'\r\nimport { WizardStepFactory } from '../factory/wizard-step-factory'\r\nimport { StepDefinition } from '../interface/step-definition.interface'\r\n\r\n/**\r\n * Generic reusable wizard step controller.\r\n *\r\n * Handles:\r\n * - Navigation\r\n * - Conditional step resolution\r\n * - Dynamic step insertion/removal\r\n * - Context persistence\r\n * - Router synchronization\r\n *\r\n * @template T The shared wizard context type.\r\n */\r\n@Injectable()\r\nexport class WizardStepService<T> {\r\n\r\n /**\r\n * Internal wizard state container.\r\n */\r\n private readonly state$ = new BehaviorSubject<WizardState<T> | null>(null)\r\n\r\n\tprivate completionHandler?: (context: T) => Promise<void> | void\r\n\r\n /**\r\n * Controls whether forward navigation is allowed.\r\n */\r\n private readonly stepForwardAvailability$ =\r\n new BehaviorSubject<boolean>(false)\r\n\r\n /**\r\n * The step factory used to resolve active steps.\r\n */\r\n private factory?: WizardStepFactory<T>\r\n\r\n constructor(\r\n private readonly router: Router,\r\n private readonly activatedRoute: ActivatedRoute\r\n ) { }\r\n\r\n /**\r\n * Initializes the wizard.\r\n *\r\n * @param factory The step factory defining the wizard flow.\r\n * @param initialContext Initial shared context object.\r\n */\r\n initialize(factory: WizardStepFactory<T>, initialContext: T, onComplete: (context: T) => Promise<void> | void\r\n): void {\r\n this.factory = factory\r\n\t\tthis.completionHandler = onComplete\r\n\r\n const steps = factory.build(initialContext)\r\n\r\n this.state$.next({\r\n steps,\r\n currentIndex: 0,\r\n context: initialContext\r\n })\r\n\r\n this.navigate()\r\n }\r\n\r\n /**\r\n * Returns the current step synchronously.\r\n */\r\n getCurrentStep(): StepDefinition<T> | null {\r\n const state = this.state$.value\r\n if (!state) return null\r\n return state.steps[state.currentIndex] ?? null\r\n }\r\n\r\n /**\r\n * Observable stream of current step.\r\n */\r\n getCurrentStep$(): Observable<StepDefinition<T> | null> {\r\n return this.state$.pipe(\r\n map(state =>\r\n state ? state.steps[state.currentIndex] : null\r\n )\r\n )\r\n }\r\n\r\n /**\r\n * Observable stream of all active steps.\r\n */\r\n getSteps$(): Observable<StepDefinition<T>[]> {\r\n return this.state$.pipe(\r\n map(state => state?.steps ?? [])\r\n )\r\n }\r\n\r\n /**\r\n * Observable stream of the current index.\r\n */\r\n getCurrentIndex$(): Observable<number> {\r\n return this.state$.pipe(\r\n map(state => state?.currentIndex ?? 0)\r\n )\r\n }\r\n\r\n /**\r\n * Returns the shared wizard context.\r\n */\r\n getContext(): T | null {\r\n return this.state$.value?.context ?? null\r\n }\r\n\r\n /**\r\n * Advances to the next step.\r\n *\r\n * Executes:\r\n * - onExit guard\r\n * - context merge\r\n * - step recomposition\r\n * - navigation\r\n *\r\n * @param partialContext Optional context updates.\r\n * @param completionProcedure Optional procedure to run when the wizard is completed.\r\n */\r\n async next(partialContext?: Partial<T>): Promise<void> {\r\n const state = this.state$.value\r\n if (!state || !this.factory) return\r\n\r\n const current = state.steps[state.currentIndex]\r\n\r\n const updatedContext = {\r\n ...state.context,\r\n ...partialContext\r\n }\r\n\r\n // Run exit guard\r\n if (current.onExit) {\r\n const allowed = await current.onExit(updatedContext)\r\n if (!allowed) return\r\n }\r\n\r\n // 🔥 Re-resolve steps AFTER context update\r\n const resolved = this.factory.build(updatedContext)\r\n\r\n const currentSlug = current.slug\r\n const newIndex = resolved.findIndex(s => s.slug === currentSlug)\r\n\r\n const isLastAfterResolution =\r\n newIndex === resolved.length - 1\r\n\r\n // If last after re-evaluation → complete\r\n if (isLastAfterResolution) {\r\n await this.completionHandler?.(updatedContext)\r\n return\r\n }\r\n\r\n // Otherwise move forward\r\n this.state$.next({\r\n steps: resolved,\r\n currentIndex: newIndex + 1,\r\n context: updatedContext\r\n })\r\n\r\n this.navigate()\r\n}\r\n\r\n /**\r\n * Navigates to the previous step.\r\n */\r\n previous(): void {\r\n const state = this.state$.value\r\n if (!state) return\r\n\r\n if (state.currentIndex === 0) return\r\n\r\n this.state$.next({\r\n ...state,\r\n currentIndex: state.currentIndex - 1\r\n })\r\n\r\n this.navigate()\r\n }\r\n\r\n /**\r\n * Returns whether the wizard is currently on the last step.\r\n */\r\n isLast(): boolean {\r\n const state = this.state$.value\r\n if (!state) return false\r\n return state.currentIndex === state.steps.length - 1\r\n }\r\n\r\n /**\r\n * Sets forward navigation availability.\r\n */\r\n setStepForwardAvailability(available: boolean): void {\r\n this.stepForwardAvailability$.next(available)\r\n }\r\n\r\n /**\r\n * Returns observable forward navigation state.\r\n */\r\n getStepForwardAvailability(): Observable<boolean> {\r\n return this.stepForwardAvailability$.asObservable()\r\n }\r\n\r\n /**\r\n * Navigates the Angular router to the current step.\r\n */\r\n private navigate(): void {\r\n const step = this.getCurrentStep()\r\n if (!step) return\r\n\r\n this.router.navigate(\r\n [`step-${step.slug}`],\r\n { relativeTo: this.activatedRoute }\r\n )\r\n }\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}","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\n/**\r\n * Factory helper for building dynamic wizard step flows.\r\n */\r\nexport class WizardStepFactory<T> {\r\n constructor(\r\n private readonly masterSteps: StepDefinition<T>[]\r\n ) { }\r\n\r\n /**\r\n * Resolves the active step list based on context conditions.\r\n *\r\n * @param context The current wizard context.\r\n */\r\n build(context: T): StepDefinition<T>[] {\r\n return this.masterSteps.filter(step =>\r\n !step.condition || step.condition(context)\r\n )\r\n }\r\n}","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/factory/wizard-step-factory'\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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"}
@@ -122,6 +122,63 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
122
122
  }]
123
123
  }] });
124
124
 
125
+ /**
126
+ * @author Alex Hodson
127
+ * @description a pipe which formats a given date time string into a user friendly UTC string
128
+ */
129
+ class FormatDateTimePipe {
130
+ /**
131
+ * @author Alex Hodson
132
+ * @description the entry point for the point which calls the format method and returns its value
133
+ * @param value the value of the HTML element
134
+ * @param args any extra arguments passed
135
+ * @returns the formatted value
136
+ */
137
+ transform(value, ...args) {
138
+ if (!value)
139
+ return '';
140
+ return this.format(value);
141
+ }
142
+ /**
143
+ * @author Alex Hodson
144
+ * @description formats the given date time string into a UTC string
145
+ * @param text the text to be formatted
146
+ * @returns the formatted value
147
+ */
148
+ format(text) {
149
+ const date = new Date(text);
150
+ return format(date, 'E, d MMMM yyyy H:mm:ss');
151
+ }
152
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormatDateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
153
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: FormatDateTimePipe, name: "formatDateTime" }); }
154
+ }
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormatDateTimePipe, decorators: [{
156
+ type: Pipe,
157
+ args: [{
158
+ name: 'formatDateTime'
159
+ }]
160
+ }] });
161
+
162
+ class FormatDateTimeModule {
163
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormatDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
164
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: FormatDateTimeModule, declarations: [FormatDateTimePipe], imports: [CommonModule], exports: [FormatDateTimePipe] }); }
165
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormatDateTimeModule, imports: [CommonModule] }); }
166
+ }
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormatDateTimeModule, decorators: [{
168
+ type: NgModule,
169
+ args: [{
170
+ declarations: [
171
+ FormatDateTimePipe
172
+ ],
173
+ imports: [
174
+ CommonModule
175
+ ],
176
+ exports: [
177
+ FormatDateTimePipe
178
+ ]
179
+ }]
180
+ }] });
181
+
125
182
  /**
126
183
  * @author Alex Hodson
127
184
  * @description modifies the given value by capitalizing all letters
@@ -193,63 +250,6 @@ const findSubstringIndex = (value, target) => {
193
250
  return value.indexOf(target);
194
251
  };
195
252
 
196
- /**
197
- * @author Alex Hodson
198
- * @description a pipe which formats a given date time string into a user friendly UTC string
199
- */
200
- class FormatDateTimePipe {
201
- /**
202
- * @author Alex Hodson
203
- * @description the entry point for the point which calls the format method and returns its value
204
- * @param value the value of the HTML element
205
- * @param args any extra arguments passed
206
- * @returns the formatted value
207
- */
208
- transform(value, ...args) {
209
- if (!value)
210
- return '';
211
- return this.format(value);
212
- }
213
- /**
214
- * @author Alex Hodson
215
- * @description formats the given date time string into a UTC string
216
- * @param text the text to be formatted
217
- * @returns the formatted value
218
- */
219
- format(text) {
220
- const date = new Date(replaceAll(text, 'Z', ''));
221
- return format(date, 'E, d MMMM yyyy H:mm:ss');
222
- }
223
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormatDateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
224
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: FormatDateTimePipe, name: "formatDateTime" }); }
225
- }
226
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormatDateTimePipe, decorators: [{
227
- type: Pipe,
228
- args: [{
229
- name: 'formatDateTime'
230
- }]
231
- }] });
232
-
233
- class FormatDateTimeModule {
234
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormatDateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
235
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: FormatDateTimeModule, declarations: [FormatDateTimePipe], imports: [CommonModule], exports: [FormatDateTimePipe] }); }
236
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormatDateTimeModule, imports: [CommonModule] }); }
237
- }
238
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormatDateTimeModule, decorators: [{
239
- type: NgModule,
240
- args: [{
241
- declarations: [
242
- FormatDateTimePipe
243
- ],
244
- imports: [
245
- CommonModule
246
- ],
247
- exports: [
248
- FormatDateTimePipe
249
- ]
250
- }]
251
- }] });
252
-
253
253
  /**
254
254
  * @author Alex Hodson
255
255
  * @description a pipe which formats a given time string into a user friendly UTC string
@@ -1 +1 @@
1
- {"version":3,"file":"windows-plus-utilities-util.mjs","sources":["../../../projects/windows-plus-utilities/util/pipe/beautify-text/beautify-text.pipe.ts","../../../projects/windows-plus-utilities/util/pipe/beautify-text/beautify-text.module.ts","../../../projects/windows-plus-utilities/util/pipe/format-date/format-date.pipe.ts","../../../projects/windows-plus-utilities/util/pipe/format-date/format-date.module.ts","../../../projects/windows-plus-utilities/util/helper/string/string-helper.ts","../../../projects/windows-plus-utilities/util/pipe/format-date-time/format-date-time.pipe.ts","../../../projects/windows-plus-utilities/util/pipe/format-date-time/format-date-time.module.ts","../../../projects/windows-plus-utilities/util/pipe/format-time/format-time.pipe.ts","../../../projects/windows-plus-utilities/util/pipe/format-time/format-time.module.ts","../../../projects/windows-plus-utilities/util/pipe/hex-to-rgba/hex-to-rgba.pipe.ts","../../../projects/windows-plus-utilities/util/pipe/hex-to-rgba/hex-to-rgba.module.ts","../../../projects/windows-plus-utilities/util/pipe/initialism/initialism.pipe.ts","../../../projects/windows-plus-utilities/util/pipe/initialism/initialism.module.ts","../../../projects/windows-plus-utilities/util/pipe/replace/replace.pipe.ts","../../../projects/windows-plus-utilities/util/pipe/replace/replace.module.ts","../../../projects/windows-plus-utilities/util/public-api.ts","../../../projects/windows-plus-utilities/util/windows-plus-utilities-util.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'beautify'\r\n})\r\n/**\r\n * @author Alex Hodson\r\n * @description the beautify text pipe takes a string and formats it into a more visually pleasing format. The pipe will add a space before any capital letter\r\n * and then capitalise the first letter of the string\r\n */\r\nexport class BeautifyTextPipe implements PipeTransform {\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description the entry point for the point which calls the format method and returns its value\r\n\t * @param value the value of the HTML element\r\n\t * @param args any extra arguments passed\r\n\t * @returns the formatted value\r\n\t */\r\n\ttransform(value: string, args?: any): any {\r\n\t\treturn this.format(value)\r\n\t}\r\n\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description formats the given string. A space will be added before any capital letter and then the first letter is capitalised\r\n\t * @param text the text to be formatted\r\n\t * @returns the formatted value\r\n\t */\r\n\tprivate format(text: string): string {\r\n\t\tconst replaceResult: string = text.replace(/([A-Z])/g, \" $1\").trim()\r\n\t\tconst output: string = replaceResult.charAt(0).toUpperCase() + replaceResult.slice(1)\r\n\r\n\t\treturn output\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { BeautifyTextPipe } from './beautify-text.pipe'\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [ \r\n BeautifyTextPipe\r\n ],\r\n exports: [\r\n BeautifyTextPipe\r\n ]\r\n})\r\nexport class BeautifyTextModule{}","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\n@Pipe({\r\n\tname: 'formatDate'\r\n})\r\n/**\r\n * @author Alex Hodson\r\n * @description a pipe which formats a given date string into a user friendly UTC string\r\n */\r\nexport class FormatDatePipe implements PipeTransform {\r\n\t\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description the entry point for the point which calls the format method and returns its value\r\n\t * @param value the value of the HTML element\r\n\t * @param args any extra arguments passed\r\n\t * @returns the formatted value\r\n\t */\r\n\ttransform(value: string|null, ...args: unknown[]): string {\r\n\t\tif (!value) return ''\r\n\t\t\r\n\t\treturn this.format(value)\r\n\t}\r\n\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description formats the given date string into a UTC string \r\n\t * @param text the text to be formatted\r\n\t * @returns the formatted value\r\n\t */\r\n\tprivate format(text: string) {\r\n\t\tif (text === '' || text === '-') return text\r\n\t\tconst date = new Date(text)\r\n\r\n\t\treturn date.toLocaleString('en-GB', {\r\n\t\t\tweekday: 'short', // long, short, narrow\r\n\t\t\tday: 'numeric', // numeric, 2-digit\r\n\t\t\tyear: 'numeric', // numeric, 2-digit\r\n\t\t\tmonth: 'long', // numeric, 2-digit, long, short, narrow\r\n\t\t})\r\n\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormatDatePipe } from './format-date.pipe'\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n\t\tFormatDatePipe\r\n\t],\r\n imports: [\r\n CommonModule\r\n ],\r\n\texports: [\r\n\t\tFormatDatePipe\r\n\t]\r\n})\r\nexport class FormatDateModule { }\r\n","/**\r\n * @author Alex Hodson\r\n * @description modifies the given value by capitalizing all letters\r\n * @param {string} value the value to be modified\r\n * @returns {string} the modified value\r\n */\r\n export const capitalizeAll = (value: string): string => {\r\n\tif (!value) return ''\r\n\r\n\treturn value.toUpperCase()\r\n}\r\n\r\n/**\r\n * @author Alex Hodson\r\n * @description modifies the given value by capitalizing the first letter\r\n * @param {string} value the value to be modified\r\n * @returns {string} the modified value\r\n */\r\nexport const capitalizeFirst = (value: string): string => {\r\n\tif (!value) return ''\r\n\r\n\tconst startingLetter = 0\r\n\tconst remainingIdx = 1\r\n\r\n\treturn value.charAt(startingLetter).toUpperCase() + value.slice(remainingIdx)\r\n}\r\n\r\n/**\r\n * @author Alex Hodson\r\n * @description splits the given string at the specified delimiter\r\n * @param {string} value the value to be split\r\n * @param {string} delimiter the value to be split at\r\n * @returns {string[]} the split value\r\n */\r\nexport const splitAt = (value: string, delimiter: string): string[] => {\r\n\tif (!value) return ['']\r\n\r\n\treturn value.split(delimiter)\r\n}\r\n\r\n/**\r\n * @author Alex Hodson\r\n * @description joins the given array using the specified delimiter\r\n * @param {string} delimiter the value to be joined with\r\n * @param {string[]} data the data to be joined\r\n * @returns {string} the joined value\r\n */\r\nexport const joinWith = (delimiter: string, data: string[] = []): string => data.join(delimiter)\r\n\r\n/**\r\n * @author Alex Hodson\r\n * @description replaces each substring of the value that matches the given target and replaces the match with the provided replacement value\r\n * @param {string} value the value to be modified\r\n * @param {string} target the value to be replaced\r\n * @param {string} replacement the replacement value\r\n * @returns {string} the modified value\r\n */\r\nexport const replaceAll = (value: string, target: string, replacement: string): string => {\r\n\tif (!value) return ''\r\n\r\n\tconst regex = new RegExp(target, 'g')\r\n\r\n\treturn value.replace(regex, replacement)\r\n}\r\n/**\r\n * @author Alex Hodson\r\n * @description attempts to find the index of a given substring\r\n * @param {string} value the value to be searched\r\n * @param {string} target the value to be identified\r\n * @returns {number} the index of the target string within the given value\r\n */\r\nexport const findSubstringIndex = (value: string, target: string): number => {\r\n\tif (!value) return -1\r\n\r\n\treturn value.indexOf(target)\r\n}","import { Pipe, PipeTransform } from '@angular/core'\r\nimport { format } from 'date-fns'\r\nimport { replaceAll } from '../../helper/string/string-helper'\r\n\r\n@Pipe({\r\n\tname: 'formatDateTime'\r\n})\r\n/**\r\n * @author Alex Hodson\r\n * @description a pipe which formats a given date time string into a user friendly UTC string\r\n */\r\nexport class FormatDateTimePipe implements PipeTransform {\r\n\t\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description the entry point for the point which calls the format method and returns its value\r\n\t * @param value the value of the HTML element\r\n\t * @param args any extra arguments passed\r\n\t * @returns the formatted value\r\n\t */\r\n\ttransform(value: string|null, ...args: unknown[]): string {\r\n\t\tif (!value) return ''\r\n\t\t\r\n\t\treturn this.format(value)\r\n\t}\r\n\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description formats the given date time string into a UTC string \r\n\t * @param text the text to be formatted\r\n\t * @returns the formatted value\r\n\t */\r\n\tprivate format(text: string) {\r\n\t\tconst date = new Date(replaceAll(text, 'Z', ''))\r\n\t\treturn format(date, 'E, d MMMM yyyy H:mm:ss')\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormatDateTimePipe } from './format-date-time.pipe'\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n\t\tFormatDateTimePipe\r\n\t],\r\n imports: [\r\n CommonModule\r\n ],\r\n\texports: [\r\n\t\tFormatDateTimePipe\r\n\t]\r\n})\r\nexport class FormatDateTimeModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\nimport { format } from 'date-fns'\r\nimport { replaceAll } from '../../helper/string/string-helper'\r\n\r\n@Pipe({\r\n\tname: 'formatTime'\r\n})\r\n/**\r\n * @author Alex Hodson\r\n * @description a pipe which formats a given time string into a user friendly UTC string\r\n */\r\nexport class FormatTimePipe implements PipeTransform {\r\n\t\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description the entry point for the point which calls the format method and returns its value\r\n\t * @param value the value of the HTML element\r\n\t * @param args any extra arguments passed\r\n\t * @returns the formatted value\r\n\t */\r\n\ttransform(value: string, ...args: unknown[]): string {\r\n\t\treturn this.format(value)\r\n\t}\r\n\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description formats the given time string into a UTC string \r\n\t * @param text the text to be formatted\r\n\t * @returns the formatted value\r\n\t */\r\n\tprivate format(text: string) {\r\n\t\tconst date = new Date(replaceAll(text, 'Z', ''))\r\n\t\treturn format(date, 'h:mm:ss a')\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormatTimePipe } from './format-time.pipe'\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n\t\tFormatTimePipe\r\n\t],\r\n imports: [\r\n CommonModule\r\n ],\r\n\texports: [\r\n\t\tFormatTimePipe\r\n\t]\r\n})\r\nexport class FormatTimeModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\n@Pipe({\r\n\tname: 'hexToRgba'\r\n})\r\n/**\r\n * @author Alex Hodson\r\n * @description a pipe which converts a given HEX value into an RGBA value\r\n */\r\nexport class HexToRgbaPipe implements PipeTransform {\r\n\t\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description the entry point which calls the convert method and returns its value\r\n\t * @param hex the hex value to be converted\r\n\t * @param alpha the alpha value to be applied\r\n\t * @param args any extra arguments passed\r\n\t * @returns the formatted value\r\n\t */\r\n\ttransform(hex: string|null, alpha: number = 1, ...args: unknown[]): string {\r\n\t\tif (!hex) return ''\r\n\t\t\r\n\t\treturn this.convert(hex, alpha)\r\n\t}\r\n\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description converts the specified HEX value to RGB with the applied alpha value\r\n\t * @param hex the hex value to be converted\r\n\t * @param alpha the alpha value to be applied\r\n\t * @returns the converted value\r\n\t */\r\n\tprivate convert(hex: string, alpha: number) {\r\n\t\tif (hex === '' || hex === '-') return hex\r\n\r\n\t\tconst bigint = parseInt(hex.slice(1), 16);\r\n\t\tconst r = (bigint >> 16) & 255;\r\n\t\tconst g = (bigint >> 8) & 255;\r\n\t\tconst b = bigint & 255;\r\n\r\n\t\treturn `rgba(${r},${g},${b},${alpha})`;\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HexToRgbaPipe } from './hex-to-rgba.pipe'\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n\t\tHexToRgbaPipe\r\n\t],\r\n imports: [\r\n CommonModule\r\n ],\r\n\texports: [\r\n\t\tHexToRgbaPipe\r\n\t]\r\n})\r\nexport class HexToRgbaModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'initialism'\r\n})\r\nexport class InitialismPipe implements PipeTransform {\r\n\r\n transform(value: string, delimiter: string = ''): string {\r\n return this.format(value, delimiter);\r\n }\r\n\r\n\tprivate format(value: string, delimiter: string): string {\r\n\t\tconst elements = !!delimiter ? value.split(delimiter) : [value]\r\n\t\tconst letters = elements.map(element => element[0]).join('').toUpperCase()\r\n\r\n\t\treturn letters\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { InitialismPipe } from './initialism.pipe';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n InitialismPipe\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n\texports: [\r\n\t\tInitialismPipe\r\n\t]\r\n})\r\nexport class InitialismModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'replace'\r\n})\r\nexport class ReplacePipe implements PipeTransform {\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description the entry point for the point which calls the format method and returns its value\r\n\t * @param value the value of the HTML element\r\n\t * @param replace the string to be replaced\r\n\t * @param withThis the replacement string\r\n\t * @returns the formatted value\r\n\t */\r\n\ttransform(value: string, replace: string, withThis: string): string {\r\n\t\treturn this.format(value, replace, withThis)\r\n\t}\r\n\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description replaces a substring with the given replacement in a value\r\n\t * @param value the value of the HTML element\r\n\t * @param replace the string to be replaced\r\n\t * @param withThis the replacement string\r\n\t * @returns the formatted value\r\n\t */\r\n\tprivate format(value: string, replace: string, withThis: string): string {\r\n\t\treturn value.replace(new RegExp(replace, 'g'), withThis)\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { ReplacePipe } from './replace.pipe'\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [ \r\n ReplacePipe\r\n ],\r\n exports: [\r\n ReplacePipe\r\n ]\r\n})\r\nexport class ReplaceModule{}","/*\r\n * Public API Surface of windows-plus-utilities\r\n */\r\nexport * from './pipe/beautify-text/beautify-text.module'\r\nexport * from './pipe/beautify-text/beautify-text.pipe'\r\n\r\nexport * from './pipe/format-date/format-date.module'\r\nexport * from './pipe/format-date/format-date.pipe'\r\n\r\nexport * from './pipe/format-date-time/format-date-time.module'\r\nexport * from './pipe/format-date-time/format-date-time.pipe'\r\n\r\nexport * from './pipe/format-time/format-time.module'\r\nexport * from './pipe/format-time/format-time.pipe'\r\n\r\nexport * from './pipe/hex-to-rgba/hex-to-rgba.module'\r\nexport * from './pipe/hex-to-rgba/hex-to-rgba.pipe'\r\n\r\nexport * from './pipe/initialism/initialism.module'\r\nexport * from './pipe/initialism/initialism.pipe'\r\n\r\nexport * from './pipe/replace/replace.module'\r\nexport * from './pipe/replace/replace.pipe'\r\n\r\nexport * from './helper/string/string-helper'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"windows-plus-utilities-util.mjs","sources":["../../../projects/windows-plus-utilities/util/pipe/beautify-text/beautify-text.pipe.ts","../../../projects/windows-plus-utilities/util/pipe/beautify-text/beautify-text.module.ts","../../../projects/windows-plus-utilities/util/pipe/format-date/format-date.pipe.ts","../../../projects/windows-plus-utilities/util/pipe/format-date/format-date.module.ts","../../../projects/windows-plus-utilities/util/pipe/format-date-time/format-date-time.pipe.ts","../../../projects/windows-plus-utilities/util/pipe/format-date-time/format-date-time.module.ts","../../../projects/windows-plus-utilities/util/helper/string/string-helper.ts","../../../projects/windows-plus-utilities/util/pipe/format-time/format-time.pipe.ts","../../../projects/windows-plus-utilities/util/pipe/format-time/format-time.module.ts","../../../projects/windows-plus-utilities/util/pipe/hex-to-rgba/hex-to-rgba.pipe.ts","../../../projects/windows-plus-utilities/util/pipe/hex-to-rgba/hex-to-rgba.module.ts","../../../projects/windows-plus-utilities/util/pipe/initialism/initialism.pipe.ts","../../../projects/windows-plus-utilities/util/pipe/initialism/initialism.module.ts","../../../projects/windows-plus-utilities/util/pipe/replace/replace.pipe.ts","../../../projects/windows-plus-utilities/util/pipe/replace/replace.module.ts","../../../projects/windows-plus-utilities/util/public-api.ts","../../../projects/windows-plus-utilities/util/windows-plus-utilities-util.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'beautify'\r\n})\r\n/**\r\n * @author Alex Hodson\r\n * @description the beautify text pipe takes a string and formats it into a more visually pleasing format. The pipe will add a space before any capital letter\r\n * and then capitalise the first letter of the string\r\n */\r\nexport class BeautifyTextPipe implements PipeTransform {\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description the entry point for the point which calls the format method and returns its value\r\n\t * @param value the value of the HTML element\r\n\t * @param args any extra arguments passed\r\n\t * @returns the formatted value\r\n\t */\r\n\ttransform(value: string, args?: any): any {\r\n\t\treturn this.format(value)\r\n\t}\r\n\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description formats the given string. A space will be added before any capital letter and then the first letter is capitalised\r\n\t * @param text the text to be formatted\r\n\t * @returns the formatted value\r\n\t */\r\n\tprivate format(text: string): string {\r\n\t\tconst replaceResult: string = text.replace(/([A-Z])/g, \" $1\").trim()\r\n\t\tconst output: string = replaceResult.charAt(0).toUpperCase() + replaceResult.slice(1)\r\n\r\n\t\treturn output\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { BeautifyTextPipe } from './beautify-text.pipe'\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [ \r\n BeautifyTextPipe\r\n ],\r\n exports: [\r\n BeautifyTextPipe\r\n ]\r\n})\r\nexport class BeautifyTextModule{}","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\n@Pipe({\r\n\tname: 'formatDate'\r\n})\r\n/**\r\n * @author Alex Hodson\r\n * @description a pipe which formats a given date string into a user friendly UTC string\r\n */\r\nexport class FormatDatePipe implements PipeTransform {\r\n\t\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description the entry point for the point which calls the format method and returns its value\r\n\t * @param value the value of the HTML element\r\n\t * @param args any extra arguments passed\r\n\t * @returns the formatted value\r\n\t */\r\n\ttransform(value: string|null, ...args: unknown[]): string {\r\n\t\tif (!value) return ''\r\n\t\t\r\n\t\treturn this.format(value)\r\n\t}\r\n\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description formats the given date string into a UTC string \r\n\t * @param text the text to be formatted\r\n\t * @returns the formatted value\r\n\t */\r\n\tprivate format(text: string) {\r\n\t\tif (text === '' || text === '-') return text\r\n\t\tconst date = new Date(text)\r\n\r\n\t\treturn date.toLocaleString('en-GB', {\r\n\t\t\tweekday: 'short', // long, short, narrow\r\n\t\t\tday: 'numeric', // numeric, 2-digit\r\n\t\t\tyear: 'numeric', // numeric, 2-digit\r\n\t\t\tmonth: 'long', // numeric, 2-digit, long, short, narrow\r\n\t\t})\r\n\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormatDatePipe } from './format-date.pipe'\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n\t\tFormatDatePipe\r\n\t],\r\n imports: [\r\n CommonModule\r\n ],\r\n\texports: [\r\n\t\tFormatDatePipe\r\n\t]\r\n})\r\nexport class FormatDateModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\nimport { format } from 'date-fns'\r\nimport { replaceAll } from '../../helper/string/string-helper'\r\n\r\n@Pipe({\r\n\tname: 'formatDateTime'\r\n})\r\n/**\r\n * @author Alex Hodson\r\n * @description a pipe which formats a given date time string into a user friendly UTC string\r\n */\r\nexport class FormatDateTimePipe implements PipeTransform {\r\n\t\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description the entry point for the point which calls the format method and returns its value\r\n\t * @param value the value of the HTML element\r\n\t * @param args any extra arguments passed\r\n\t * @returns the formatted value\r\n\t */\r\n\ttransform(value: string|null, ...args: unknown[]): string {\r\n\t\tif (!value) return ''\r\n\t\t\r\n\t\treturn this.format(value)\r\n\t}\r\n\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description formats the given date time string into a UTC string \r\n\t * @param text the text to be formatted\r\n\t * @returns the formatted value\r\n\t */\r\n\tprivate format(text: string) {\r\n\t\tconst date = new Date(text)\r\n\t\treturn format(date, 'E, d MMMM yyyy H:mm:ss')\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormatDateTimePipe } from './format-date-time.pipe'\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n\t\tFormatDateTimePipe\r\n\t],\r\n imports: [\r\n CommonModule\r\n ],\r\n\texports: [\r\n\t\tFormatDateTimePipe\r\n\t]\r\n})\r\nexport class FormatDateTimeModule { }\r\n","/**\r\n * @author Alex Hodson\r\n * @description modifies the given value by capitalizing all letters\r\n * @param {string} value the value to be modified\r\n * @returns {string} the modified value\r\n */\r\n export const capitalizeAll = (value: string): string => {\r\n\tif (!value) return ''\r\n\r\n\treturn value.toUpperCase()\r\n}\r\n\r\n/**\r\n * @author Alex Hodson\r\n * @description modifies the given value by capitalizing the first letter\r\n * @param {string} value the value to be modified\r\n * @returns {string} the modified value\r\n */\r\nexport const capitalizeFirst = (value: string): string => {\r\n\tif (!value) return ''\r\n\r\n\tconst startingLetter = 0\r\n\tconst remainingIdx = 1\r\n\r\n\treturn value.charAt(startingLetter).toUpperCase() + value.slice(remainingIdx)\r\n}\r\n\r\n/**\r\n * @author Alex Hodson\r\n * @description splits the given string at the specified delimiter\r\n * @param {string} value the value to be split\r\n * @param {string} delimiter the value to be split at\r\n * @returns {string[]} the split value\r\n */\r\nexport const splitAt = (value: string, delimiter: string): string[] => {\r\n\tif (!value) return ['']\r\n\r\n\treturn value.split(delimiter)\r\n}\r\n\r\n/**\r\n * @author Alex Hodson\r\n * @description joins the given array using the specified delimiter\r\n * @param {string} delimiter the value to be joined with\r\n * @param {string[]} data the data to be joined\r\n * @returns {string} the joined value\r\n */\r\nexport const joinWith = (delimiter: string, data: string[] = []): string => data.join(delimiter)\r\n\r\n/**\r\n * @author Alex Hodson\r\n * @description replaces each substring of the value that matches the given target and replaces the match with the provided replacement value\r\n * @param {string} value the value to be modified\r\n * @param {string} target the value to be replaced\r\n * @param {string} replacement the replacement value\r\n * @returns {string} the modified value\r\n */\r\nexport const replaceAll = (value: string, target: string, replacement: string): string => {\r\n\tif (!value) return ''\r\n\r\n\tconst regex = new RegExp(target, 'g')\r\n\r\n\treturn value.replace(regex, replacement)\r\n}\r\n/**\r\n * @author Alex Hodson\r\n * @description attempts to find the index of a given substring\r\n * @param {string} value the value to be searched\r\n * @param {string} target the value to be identified\r\n * @returns {number} the index of the target string within the given value\r\n */\r\nexport const findSubstringIndex = (value: string, target: string): number => {\r\n\tif (!value) return -1\r\n\r\n\treturn value.indexOf(target)\r\n}","import { Pipe, PipeTransform } from '@angular/core'\r\nimport { format } from 'date-fns'\r\nimport { replaceAll } from '../../helper/string/string-helper'\r\n\r\n@Pipe({\r\n\tname: 'formatTime'\r\n})\r\n/**\r\n * @author Alex Hodson\r\n * @description a pipe which formats a given time string into a user friendly UTC string\r\n */\r\nexport class FormatTimePipe implements PipeTransform {\r\n\t\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description the entry point for the point which calls the format method and returns its value\r\n\t * @param value the value of the HTML element\r\n\t * @param args any extra arguments passed\r\n\t * @returns the formatted value\r\n\t */\r\n\ttransform(value: string, ...args: unknown[]): string {\r\n\t\treturn this.format(value)\r\n\t}\r\n\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description formats the given time string into a UTC string \r\n\t * @param text the text to be formatted\r\n\t * @returns the formatted value\r\n\t */\r\n\tprivate format(text: string) {\r\n\t\tconst date = new Date(replaceAll(text, 'Z', ''))\r\n\t\treturn format(date, 'h:mm:ss a')\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormatTimePipe } from './format-time.pipe'\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n\t\tFormatTimePipe\r\n\t],\r\n imports: [\r\n CommonModule\r\n ],\r\n\texports: [\r\n\t\tFormatTimePipe\r\n\t]\r\n})\r\nexport class FormatTimeModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\n@Pipe({\r\n\tname: 'hexToRgba'\r\n})\r\n/**\r\n * @author Alex Hodson\r\n * @description a pipe which converts a given HEX value into an RGBA value\r\n */\r\nexport class HexToRgbaPipe implements PipeTransform {\r\n\t\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description the entry point which calls the convert method and returns its value\r\n\t * @param hex the hex value to be converted\r\n\t * @param alpha the alpha value to be applied\r\n\t * @param args any extra arguments passed\r\n\t * @returns the formatted value\r\n\t */\r\n\ttransform(hex: string|null, alpha: number = 1, ...args: unknown[]): string {\r\n\t\tif (!hex) return ''\r\n\t\t\r\n\t\treturn this.convert(hex, alpha)\r\n\t}\r\n\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description converts the specified HEX value to RGB with the applied alpha value\r\n\t * @param hex the hex value to be converted\r\n\t * @param alpha the alpha value to be applied\r\n\t * @returns the converted value\r\n\t */\r\n\tprivate convert(hex: string, alpha: number) {\r\n\t\tif (hex === '' || hex === '-') return hex\r\n\r\n\t\tconst bigint = parseInt(hex.slice(1), 16);\r\n\t\tconst r = (bigint >> 16) & 255;\r\n\t\tconst g = (bigint >> 8) & 255;\r\n\t\tconst b = bigint & 255;\r\n\r\n\t\treturn `rgba(${r},${g},${b},${alpha})`;\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HexToRgbaPipe } from './hex-to-rgba.pipe'\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n\t\tHexToRgbaPipe\r\n\t],\r\n imports: [\r\n CommonModule\r\n ],\r\n\texports: [\r\n\t\tHexToRgbaPipe\r\n\t]\r\n})\r\nexport class HexToRgbaModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'initialism'\r\n})\r\nexport class InitialismPipe implements PipeTransform {\r\n\r\n transform(value: string, delimiter: string = ''): string {\r\n return this.format(value, delimiter);\r\n }\r\n\r\n\tprivate format(value: string, delimiter: string): string {\r\n\t\tconst elements = !!delimiter ? value.split(delimiter) : [value]\r\n\t\tconst letters = elements.map(element => element[0]).join('').toUpperCase()\r\n\r\n\t\treturn letters\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { InitialismPipe } from './initialism.pipe';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n InitialismPipe\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n\texports: [\r\n\t\tInitialismPipe\r\n\t]\r\n})\r\nexport class InitialismModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'replace'\r\n})\r\nexport class ReplacePipe implements PipeTransform {\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description the entry point for the point which calls the format method and returns its value\r\n\t * @param value the value of the HTML element\r\n\t * @param replace the string to be replaced\r\n\t * @param withThis the replacement string\r\n\t * @returns the formatted value\r\n\t */\r\n\ttransform(value: string, replace: string, withThis: string): string {\r\n\t\treturn this.format(value, replace, withThis)\r\n\t}\r\n\r\n\t/**\r\n\t * @author Alex Hodson\r\n\t * @description replaces a substring with the given replacement in a value\r\n\t * @param value the value of the HTML element\r\n\t * @param replace the string to be replaced\r\n\t * @param withThis the replacement string\r\n\t * @returns the formatted value\r\n\t */\r\n\tprivate format(value: string, replace: string, withThis: string): string {\r\n\t\treturn value.replace(new RegExp(replace, 'g'), withThis)\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { ReplacePipe } from './replace.pipe'\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [ \r\n ReplacePipe\r\n ],\r\n exports: [\r\n ReplacePipe\r\n ]\r\n})\r\nexport class ReplaceModule{}","/*\r\n * Public API Surface of windows-plus-utilities\r\n */\r\nexport * from './pipe/beautify-text/beautify-text.module'\r\nexport * from './pipe/beautify-text/beautify-text.pipe'\r\n\r\nexport * from './pipe/format-date/format-date.module'\r\nexport * from './pipe/format-date/format-date.pipe'\r\n\r\nexport * from './pipe/format-date-time/format-date-time.module'\r\nexport * from './pipe/format-date-time/format-date-time.pipe'\r\n\r\nexport * from './pipe/format-time/format-time.module'\r\nexport * from './pipe/format-time/format-time.pipe'\r\n\r\nexport * from './pipe/hex-to-rgba/hex-to-rgba.module'\r\nexport * from './pipe/hex-to-rgba/hex-to-rgba.pipe'\r\n\r\nexport * from './pipe/initialism/initialism.module'\r\nexport * from './pipe/initialism/initialism.pipe'\r\n\r\nexport * from './pipe/replace/replace.module'\r\nexport * from './pipe/replace/replace.pipe'\r\n\r\nexport * from './helper/string/string-helper'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -92,6 +92,12 @@ export declare class WizardStepService<T> {
92
92
  * Navigates the Angular router to the current step.
93
93
  */
94
94
  private navigate;
95
+ /**
96
+ * Navigates the router away from any "step" route.
97
+ *
98
+ * This methods updates the URL relative to the injected route, removing every after `/step-
99
+ */
100
+ clearStepRoute(): void;
95
101
  static ɵfac: i0.ɵɵFactoryDeclaration<WizardStepService<any>, never>;
96
102
  static ɵprov: i0.ɵɵInjectableDeclaration<WizardStepService<any>>;
97
103
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "windows-plus-utilities",
3
- "version": "0.0.90",
3
+ "version": "0.0.92",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.3.8",
6
6
  "@angular/core": "^17.3.8",
@@ -37,6 +37,12 @@
37
37
  "esm": "./esm2022/custom-card/windows-plus-utilities-custom-card.mjs",
38
38
  "default": "./fesm2022/windows-plus-utilities-custom-card.mjs"
39
39
  },
40
+ "./main-menu": {
41
+ "types": "./main-menu/index.d.ts",
42
+ "esm2022": "./esm2022/main-menu/windows-plus-utilities-main-menu.mjs",
43
+ "esm": "./esm2022/main-menu/windows-plus-utilities-main-menu.mjs",
44
+ "default": "./fesm2022/windows-plus-utilities-main-menu.mjs"
45
+ },
40
46
  "./empty-display": {
41
47
  "types": "./empty-display/index.d.ts",
42
48
  "esm2022": "./esm2022/empty-display/windows-plus-utilities-empty-display.mjs",
@@ -49,29 +55,23 @@
49
55
  "esm": "./esm2022/job-label/windows-plus-utilities-job-label.mjs",
50
56
  "default": "./fesm2022/windows-plus-utilities-job-label.mjs"
51
57
  },
52
- "./main-menu": {
53
- "types": "./main-menu/index.d.ts",
54
- "esm2022": "./esm2022/main-menu/windows-plus-utilities-main-menu.mjs",
55
- "esm": "./esm2022/main-menu/windows-plus-utilities-main-menu.mjs",
56
- "default": "./fesm2022/windows-plus-utilities-main-menu.mjs"
57
- },
58
58
  "./modal-wizard": {
59
59
  "types": "./modal-wizard/index.d.ts",
60
60
  "esm2022": "./esm2022/modal-wizard/windows-plus-utilities-modal-wizard.mjs",
61
61
  "esm": "./esm2022/modal-wizard/windows-plus-utilities-modal-wizard.mjs",
62
62
  "default": "./fesm2022/windows-plus-utilities-modal-wizard.mjs"
63
63
  },
64
- "./section-header": {
65
- "types": "./section-header/index.d.ts",
66
- "esm2022": "./esm2022/section-header/windows-plus-utilities-section-header.mjs",
67
- "esm": "./esm2022/section-header/windows-plus-utilities-section-header.mjs",
68
- "default": "./fesm2022/windows-plus-utilities-section-header.mjs"
69
- },
70
64
  "./util": {
71
65
  "types": "./util/index.d.ts",
72
66
  "esm2022": "./esm2022/util/windows-plus-utilities-util.mjs",
73
67
  "esm": "./esm2022/util/windows-plus-utilities-util.mjs",
74
68
  "default": "./fesm2022/windows-plus-utilities-util.mjs"
69
+ },
70
+ "./section-header": {
71
+ "types": "./section-header/index.d.ts",
72
+ "esm2022": "./esm2022/section-header/windows-plus-utilities-section-header.mjs",
73
+ "esm": "./esm2022/section-header/windows-plus-utilities-section-header.mjs",
74
+ "default": "./fesm2022/windows-plus-utilities-section-header.mjs"
75
75
  }
76
76
  },
77
77
  "sideEffects": false