@dereekb/dbx-core 8.1.0 → 8.2.0

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.
@@ -1,4 +1,5 @@
1
1
  export * from './provider';
2
2
  export * from './transition';
3
3
  export * from './service';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3JvdXRlci9yb3V0ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNpdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2UnO1xuIl19
4
+ export * from './util';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3JvdXRlci9yb3V0ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNpdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsJztcbiJdfQ==
@@ -1,10 +1,12 @@
1
- import { filterMaybe } from '@dereekb/rxjs';
1
+ import { combineLatest, firstValueFrom } from 'rxjs';
2
+ import { asObservable, filterMaybe } from '@dereekb/rxjs';
2
3
  import { asSegueRef } from '../../../segue';
3
4
  import { DbxRouterTransitionEventType } from '../../transition/transition';
4
5
  import { ActivatedRoute, NavigationEnd, NavigationStart, Router } from '@angular/router';
5
6
  import { Injectable } from '@angular/core';
6
7
  import { isArray } from 'class-validator';
7
8
  import { map } from 'rxjs/operators';
9
+ import { KeyValueTypleValueFilter, mergeObjects } from '@dereekb/util';
8
10
  import * as i0 from "@angular/core";
9
11
  import * as i1 from "@angular/router";
10
12
  /**
@@ -31,19 +33,36 @@ export class DbxAngularRouterService {
31
33
  }), filterMaybe());
32
34
  }
33
35
  go(input) {
34
- const segueRef = asSegueRef(input);
35
- const ref = segueRef.ref;
36
- if (isArray(ref)) {
37
- return this.router.navigate(ref, {
38
- ...segueRef.refOptions,
39
- queryParams: segueRef.refParams
40
- });
41
- }
42
- else {
43
- return this.router.navigateByUrl(ref, {
44
- ...segueRef.refOptions
45
- });
46
- }
36
+ const inputObs = asObservable(input);
37
+ return firstValueFrom(inputObs).then((inputSegueRef) => {
38
+ const segueRef = asSegueRef(inputSegueRef);
39
+ const ref = segueRef.ref;
40
+ if (isArray(ref)) {
41
+ return this.router.navigate(ref, {
42
+ ...segueRef.refOptions,
43
+ queryParams: segueRef.refParams
44
+ });
45
+ }
46
+ else {
47
+ return this.router.navigateByUrl(ref, {
48
+ ...segueRef.refOptions
49
+ });
50
+ }
51
+ });
52
+ }
53
+ updateParams(inputParams) {
54
+ const segueUpdate = combineLatest([this.activatedRoute.params, asObservable(inputParams)]).pipe(map(([currentParams, params]) => {
55
+ const refParams = mergeObjects([currentParams, params], KeyValueTypleValueFilter.UNDEFINED);
56
+ const segueRef = {
57
+ ref: this.activatedRoute.pathFromRoot,
58
+ refParams,
59
+ refOptions: {
60
+ replaceUrl: true
61
+ }
62
+ };
63
+ return segueRef;
64
+ }));
65
+ return this.go(segueUpdate);
47
66
  }
48
67
  isActive(segueRef) {
49
68
  return false; // TODO!
@@ -57,4 +76,4 @@ DbxAngularRouterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.
57
76
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAngularRouterService, decorators: [{
58
77
  type: Injectable
59
78
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }]; } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5yb3V0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvcm91dGVyL3JvdXRlci9wcm92aWRlci9hbmd1bGFyL2FuZ3VsYXIucm91dGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxPQUFPLEVBQUUsVUFBVSxFQUF3RCxNQUFNLGdCQUFnQixDQUFDO0FBQ2xHLE9BQU8sRUFBNEIsNEJBQTRCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsY0FBYyxFQUE2QixhQUFhLEVBQW9CLGVBQWUsRUFBRSxNQUFNLEVBQVcsTUFBTSxpQkFBaUIsQ0FBQztBQUMvSSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUdyQzs7R0FFRztBQUVILE1BQU0sT0FBTyx1QkFBdUI7SUFzQmxDLFlBQXFCLE1BQWMsRUFBVyxjQUE4QjtRQUF2RCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVcsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBckJuRSxZQUFPLEdBQXVDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO1FBRXpFLGlCQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUM3QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNSLElBQUksS0FBc0MsQ0FBQztZQUUzQyxJQUFJLENBQUMsWUFBWSxlQUFlLEVBQUU7Z0JBQ2hDLEtBQUssR0FBRztvQkFDTixJQUFJLEVBQUUsNEJBQTRCLENBQUMsS0FBSztpQkFDekMsQ0FBQzthQUNIO2lCQUFNLElBQUksQ0FBQyxZQUFZLGFBQWEsRUFBRTtnQkFDckMsS0FBSyxHQUFHO29CQUNOLElBQUksRUFBRSw0QkFBNEIsQ0FBQyxPQUFPO2lCQUMzQyxDQUFDO2FBQ0g7WUFFRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxFQUNGLFdBQVcsRUFBRSxDQUNkLENBQUM7SUFFNkUsQ0FBQztJQUVoRixFQUFFLENBQUMsS0FBaUY7UUFDbEYsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFFekIsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFnQixFQUFFO2dCQUM1QyxHQUFHLFFBQVEsQ0FBQyxVQUFVO2dCQUN0QixXQUFXLEVBQUUsUUFBUSxDQUFDLFNBQVM7YUFDaEMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBdUIsRUFBRTtnQkFDeEQsR0FBRyxRQUFRLENBQUMsVUFBVTthQUN2QixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsUUFBc0M7UUFDN0MsT0FBTyxLQUFLLENBQUMsQ0FBQyxRQUFRO0lBQ3hCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxDQUErQixFQUFFLENBQStCO1FBQy9FLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUTtJQUNwQixDQUFDOztvSEE5Q1UsdUJBQXVCO3dIQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlck1heWJlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBEYnhSb3V0ZXJTZXJ2aWNlLCBEYnhSb3V0ZXJUcmFuc2l0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UnO1xuaW1wb3J0IHsgYXNTZWd1ZVJlZiwgU2VndWVSZWZPclNlZ3VlUmVmUm91dGVyTGluaywgU2VndWVSZWZSYXdTZWd1ZVBhcmFtcyB9IGZyb20gJy4uLy4uLy4uL3NlZ3VlJztcbmltcG9ydCB7IERieFJvdXRlclRyYW5zaXRpb25FdmVudCwgRGJ4Um91dGVyVHJhbnNpdGlvbkV2ZW50VHlwZSB9IGZyb20gJy4uLy4uL3RyYW5zaXRpb24vdHJhbnNpdGlvbic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkJlaGF2aW9yT3B0aW9ucywgTmF2aWdhdGlvbkVuZCwgTmF2aWdhdGlvbkV4dHJhcywgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gJ2NsYXNzLXZhbGlkYXRvcic7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG4vKipcbiAqIEFuZ3VsYXJSb3V0ZXIgaW1wbGVtZW50YXRpb24gb2YgRGJ4Um91dGVyU2VydmljZSBhbmQgRGJ4Um91dGVyVHJhbnNpdGlvblNlcnZpY2UuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYnhBbmd1bGFyUm91dGVyU2VydmljZSBpbXBsZW1lbnRzIERieFJvdXRlclNlcnZpY2UsIERieFJvdXRlclRyYW5zaXRpb25TZXJ2aWNlIHtcbiAgcmVhZG9ubHkgcGFyYW1zJDogT2JzZXJ2YWJsZTxTZWd1ZVJlZlJhd1NlZ3VlUGFyYW1zPiA9IHRoaXMuYWN0aXZhdGVkUm91dGUucGFyYW1zO1xuXG4gIHJlYWRvbmx5IHRyYW5zaXRpb25zJCA9IHRoaXMucm91dGVyLmV2ZW50cy5waXBlKFxuICAgIG1hcCgoeCkgPT4ge1xuICAgICAgbGV0IGV2ZW50OiBNYXliZTxEYnhSb3V0ZXJUcmFuc2l0aW9uRXZlbnQ+O1xuXG4gICAgICBpZiAoeCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xuICAgICAgICBldmVudCA9IHtcbiAgICAgICAgICB0eXBlOiBEYnhSb3V0ZXJUcmFuc2l0aW9uRXZlbnRUeXBlLlNUQVJUXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKHggaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgIGV2ZW50ID0ge1xuICAgICAgICAgIHR5cGU6IERieFJvdXRlclRyYW5zaXRpb25FdmVudFR5cGUuU1VDQ0VTU1xuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZXZlbnQ7XG4gICAgfSksXG4gICAgZmlsdGVyTWF5YmUoKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLCByZWFkb25seSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUpIHt9XG5cbiAgZ28oaW5wdXQ6IFNlZ3VlUmVmT3JTZWd1ZVJlZlJvdXRlckxpbms8TmF2aWdhdGlvbkV4dHJhcyB8IE5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnM+KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3Qgc2VndWVSZWYgPSBhc1NlZ3VlUmVmKGlucHV0KTtcbiAgICBjb25zdCByZWYgPSBzZWd1ZVJlZi5yZWY7XG5cbiAgICBpZiAoaXNBcnJheShyZWYpKSB7XG4gICAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUocmVmIGFzIHVua25vd25bXSwge1xuICAgICAgICAuLi5zZWd1ZVJlZi5yZWZPcHRpb25zLFxuICAgICAgICBxdWVyeVBhcmFtczogc2VndWVSZWYucmVmUGFyYW1zXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwocmVmIGFzIHN0cmluZyB8IFVybFRyZWUsIHtcbiAgICAgICAgLi4uc2VndWVSZWYucmVmT3B0aW9uc1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgaXNBY3RpdmUoc2VndWVSZWY6IFNlZ3VlUmVmT3JTZWd1ZVJlZlJvdXRlckxpbmspOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7IC8vIFRPRE8hXG4gIH1cblxuICBjb21wYXJlUHJlY2lzaW9uKGE6IFNlZ3VlUmVmT3JTZWd1ZVJlZlJvdXRlckxpbmssIGI6IFNlZ3VlUmVmT3JTZWd1ZVJlZlJvdXRlckxpbmspOiBudW1iZXIge1xuICAgIHJldHVybiAwOyAvLyBUT0RPIVxuICB9XG59XG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5yb3V0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvcm91dGVyL3JvdXRlci9wcm92aWRlci9hbmd1bGFyL2FuZ3VsYXIucm91dGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRTdFLE9BQU8sRUFBRSxVQUFVLEVBQWtFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUcsT0FBTyxFQUE0Qiw0QkFBNEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxjQUFjLEVBQTZCLGFBQWEsRUFBb0IsZUFBZSxFQUFVLE1BQU0sRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZKLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsd0JBQXdCLEVBQVMsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFFOUU7O0dBRUc7QUFFSCxNQUFNLE9BQU8sdUJBQXVCO0lBc0JsQyxZQUFxQixNQUFjLEVBQVcsY0FBOEI7UUFBdkQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFXLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQXJCbkUsWUFBTyxHQUF1QyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUV6RSxpQkFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDN0MsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDUixJQUFJLEtBQXNDLENBQUM7WUFFM0MsSUFBSSxDQUFDLFlBQVksZUFBZSxFQUFFO2dCQUNoQyxLQUFLLEdBQUc7b0JBQ04sSUFBSSxFQUFFLDRCQUE0QixDQUFDLEtBQUs7aUJBQ3pDLENBQUM7YUFDSDtpQkFBTSxJQUFJLENBQUMsWUFBWSxhQUFhLEVBQUU7Z0JBQ3JDLEtBQUssR0FBRztvQkFDTixJQUFJLEVBQUUsNEJBQTRCLENBQUMsT0FBTztpQkFDM0MsQ0FBQzthQUNIO1lBRUQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsRUFDRixXQUFXLEVBQUUsQ0FDZCxDQUFDO0lBRTZFLENBQUM7SUFFaEYsRUFBRSxDQUFDLEtBQW9HO1FBQ3JHLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxPQUFPLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUNyRCxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDM0MsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUV6QixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFnQixFQUFFO29CQUM1QyxHQUFHLFFBQVEsQ0FBQyxVQUFVO29CQUN0QixXQUFXLEVBQUUsUUFBUSxDQUFDLFNBQVM7aUJBQ2hDLENBQUMsQ0FBQzthQUNKO2lCQUFNO2dCQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBdUIsRUFBRTtvQkFDeEQsR0FBRyxRQUFRLENBQUMsVUFBVTtpQkFDdkIsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsV0FBc0Q7UUFDakUsTUFBTSxXQUFXLEdBQTJGLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNyTCxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO1lBQzlCLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsRUFBRSx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM1RixNQUFNLFFBQVEsR0FBMkQ7Z0JBQ3ZFLEdBQUcsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVk7Z0JBQ3JDLFNBQVM7Z0JBQ1QsVUFBVSxFQUFFO29CQUNWLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjthQUNGLENBQUM7WUFFRixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxRQUFRLENBQUMsUUFBc0M7UUFDN0MsT0FBTyxLQUFLLENBQUMsQ0FBQyxRQUFRO0lBQ3hCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxDQUErQixFQUFFLENBQStCO1FBQy9FLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUTtJQUNwQixDQUFDOztvSEFwRVUsdUJBQXVCO3dIQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBhc09ic2VydmFibGUsIGZpbHRlck1heWJlLCBPYnNlcnZhYmxlT3JWYWx1ZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgRGJ4Um91dGVyU2VydmljZSwgRGJ4Um91dGVyVHJhbnNpdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlJztcbmltcG9ydCB7IGFzU2VndWVSZWYsIFNlZ3VlUmVmLCBTZWd1ZVJlZk9yU2VndWVSZWZSb3V0ZXJMaW5rLCBTZWd1ZVJlZlJhd1NlZ3VlUGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vc2VndWUnO1xuaW1wb3J0IHsgRGJ4Um91dGVyVHJhbnNpdGlvbkV2ZW50LCBEYnhSb3V0ZXJUcmFuc2l0aW9uRXZlbnRUeXBlIH0gZnJvbSAnLi4vLi4vdHJhbnNpdGlvbi90cmFuc2l0aW9uJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uQmVoYXZpb3JPcHRpb25zLCBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uRXh0cmFzLCBOYXZpZ2F0aW9uU3RhcnQsIFBhcmFtcywgUm91dGVyLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tICdjbGFzcy12YWxpZGF0b3InO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgS2V5VmFsdWVUeXBsZVZhbHVlRmlsdGVyLCBNYXliZSwgbWVyZ2VPYmplY3RzIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbi8qKlxuICogQW5ndWxhclJvdXRlciBpbXBsZW1lbnRhdGlvbiBvZiBEYnhSb3V0ZXJTZXJ2aWNlIGFuZCBEYnhSb3V0ZXJUcmFuc2l0aW9uU2VydmljZS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERieEFuZ3VsYXJSb3V0ZXJTZXJ2aWNlIGltcGxlbWVudHMgRGJ4Um91dGVyU2VydmljZSwgRGJ4Um91dGVyVHJhbnNpdGlvblNlcnZpY2Uge1xuICByZWFkb25seSBwYXJhbXMkOiBPYnNlcnZhYmxlPFNlZ3VlUmVmUmF3U2VndWVQYXJhbXM+ID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5wYXJhbXM7XG5cbiAgcmVhZG9ubHkgdHJhbnNpdGlvbnMkID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB7XG4gICAgICBsZXQgZXZlbnQ6IE1heWJlPERieFJvdXRlclRyYW5zaXRpb25FdmVudD47XG5cbiAgICAgIGlmICh4IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XG4gICAgICAgIGV2ZW50ID0ge1xuICAgICAgICAgIHR5cGU6IERieFJvdXRlclRyYW5zaXRpb25FdmVudFR5cGUuU1RBUlRcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSBpZiAoeCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgZXZlbnQgPSB7XG4gICAgICAgICAgdHlwZTogRGJ4Um91dGVyVHJhbnNpdGlvbkV2ZW50VHlwZS5TVUNDRVNTXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBldmVudDtcbiAgICB9KSxcbiAgICBmaWx0ZXJNYXliZSgpXG4gICk7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsIHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge31cblxuICBnbyhpbnB1dDogT2JzZXJ2YWJsZU9yVmFsdWU8U2VndWVSZWZPclNlZ3VlUmVmUm91dGVyTGluazxOYXZpZ2F0aW9uRXh0cmFzIHwgTmF2aWdhdGlvbkJlaGF2aW9yT3B0aW9ucz4+KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgaW5wdXRPYnMgPSBhc09ic2VydmFibGUoaW5wdXQpO1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShpbnB1dE9icykudGhlbigoaW5wdXRTZWd1ZVJlZikgPT4ge1xuICAgICAgY29uc3Qgc2VndWVSZWYgPSBhc1NlZ3VlUmVmKGlucHV0U2VndWVSZWYpO1xuICAgICAgY29uc3QgcmVmID0gc2VndWVSZWYucmVmO1xuXG4gICAgICBpZiAoaXNBcnJheShyZWYpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShyZWYgYXMgdW5rbm93bltdLCB7XG4gICAgICAgICAgLi4uc2VndWVSZWYucmVmT3B0aW9ucyxcbiAgICAgICAgICBxdWVyeVBhcmFtczogc2VndWVSZWYucmVmUGFyYW1zXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwocmVmIGFzIHN0cmluZyB8IFVybFRyZWUsIHtcbiAgICAgICAgICAuLi5zZWd1ZVJlZi5yZWZPcHRpb25zXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlUGFyYW1zKGlucHV0UGFyYW1zOiBPYnNlcnZhYmxlT3JWYWx1ZTxTZWd1ZVJlZlJhd1NlZ3VlUGFyYW1zPik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHNlZ3VlVXBkYXRlOiBPYnNlcnZhYmxlPFNlZ3VlUmVmT3JTZWd1ZVJlZlJvdXRlckxpbms8TmF2aWdhdGlvbkV4dHJhcyB8IE5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnM+PiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuYWN0aXZhdGVkUm91dGUucGFyYW1zLCBhc09ic2VydmFibGUoaW5wdXRQYXJhbXMpXSkucGlwZShcbiAgICAgIG1hcCgoW2N1cnJlbnRQYXJhbXMsIHBhcmFtc10pID0+IHtcbiAgICAgICAgY29uc3QgcmVmUGFyYW1zID0gbWVyZ2VPYmplY3RzKFtjdXJyZW50UGFyYW1zLCBwYXJhbXNdLCBLZXlWYWx1ZVR5cGxlVmFsdWVGaWx0ZXIuVU5ERUZJTkVEKTtcbiAgICAgICAgY29uc3Qgc2VndWVSZWY6IFNlZ3VlUmVmPE5hdmlnYXRpb25FeHRyYXMgfCBOYXZpZ2F0aW9uQmVoYXZpb3JPcHRpb25zPiA9IHtcbiAgICAgICAgICByZWY6IHRoaXMuYWN0aXZhdGVkUm91dGUucGF0aEZyb21Sb290LFxuICAgICAgICAgIHJlZlBhcmFtcyxcbiAgICAgICAgICByZWZPcHRpb25zOiB7XG4gICAgICAgICAgICByZXBsYWNlVXJsOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBzZWd1ZVJlZjtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLmdvKHNlZ3VlVXBkYXRlKTtcbiAgfVxuXG4gIGlzQWN0aXZlKHNlZ3VlUmVmOiBTZWd1ZVJlZk9yU2VndWVSZWZSb3V0ZXJMaW5rKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlOyAvLyBUT0RPIVxuICB9XG5cbiAgY29tcGFyZVByZWNpc2lvbihhOiBTZWd1ZVJlZk9yU2VndWVSZWZSb3V0ZXJMaW5rLCBiOiBTZWd1ZVJlZk9yU2VndWVSZWZSb3V0ZXJMaW5rKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMDsgLy8gVE9ETyFcbiAgfVxufVxuIl19
@@ -1,8 +1,10 @@
1
- import { Subject, BehaviorSubject } from 'rxjs';
1
+ import { KeyValueTypleValueFilter, mergeObjects } from '@dereekb/util';
2
+ import { Subject, BehaviorSubject, firstValueFrom, map } from 'rxjs';
2
3
  import { asSegueRef, asSegueRefString } from '../../../segue';
3
4
  import { StateService, UIRouterGlobals, TransitionService } from '@uirouter/core';
4
5
  import { Injectable } from '@angular/core';
5
6
  import { DbxRouterTransitionEventType } from '../../transition/transition';
7
+ import { asObservable } from '@dereekb/rxjs';
6
8
  import * as i0 from "@angular/core";
7
9
  import * as i1 from "@uirouter/core";
8
10
  /**
@@ -37,12 +39,31 @@ export class DbxUIRouterService {
37
39
  return this.uiRouterGlobals.params;
38
40
  }
39
41
  go(input) {
40
- const segueRef = asSegueRef(input);
41
- const params = { ...this.uiRouterGlobals.current.params, ...segueRef.refParams };
42
- return this.state
43
- .go(segueRef.ref, params, segueRef.refOptions)
44
- .then(() => true)
45
- .catch(() => false);
42
+ const inputObs = asObservable(input);
43
+ return firstValueFrom(inputObs).then((inputSegueRef) => {
44
+ const segueRef = asSegueRef(inputSegueRef);
45
+ const params = { ...this.uiRouterGlobals.current.params, ...segueRef.refParams };
46
+ return this.state
47
+ .go(segueRef.ref, params, segueRef.refOptions)
48
+ .then(() => true)
49
+ .catch(() => false);
50
+ });
51
+ }
52
+ updateParams(inputParams) {
53
+ const segueUpdate = asObservable(inputParams).pipe(map((params) => {
54
+ const currentParams = this.uiRouterGlobals.params;
55
+ const refParams = mergeObjects([currentParams, params], KeyValueTypleValueFilter.UNDEFINED);
56
+ const ref = {
57
+ ref: '.',
58
+ refParams,
59
+ refOptions: {
60
+ location: 'replace',
61
+ inherit: true
62
+ }
63
+ };
64
+ return ref;
65
+ }));
66
+ return this.go(segueUpdate);
46
67
  }
47
68
  isActive(input) {
48
69
  const segueRef = asSegueRef(input);
@@ -65,4 +86,4 @@ DbxUIRouterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", v
65
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxUIRouterService, decorators: [{
66
87
  type: Injectable
67
88
  }], ctorParameters: function () { return [{ type: i1.StateService }, { type: i1.TransitionService }, { type: i1.UIRouterGlobals }]; } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlyb3V0ZXIucm91dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3JvdXRlci9yb3V0ZXIvcHJvdmlkZXIvdWlyb3V0ZXIvdWlyb3V0ZXIucm91dGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBd0QsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwSCxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBNEIsNEJBQTRCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBRXJHOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQU83QixZQUFxQixLQUFtQixFQUFXLGlCQUFvQyxFQUFXLGVBQWdDO1FBQTdHLFVBQUssR0FBTCxLQUFLLENBQWM7UUFBVyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQVcsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBTmpILFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBeUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRixZQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUU5QixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUE0QixDQUFDO1FBQy9ELGlCQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUd2RCxNQUFNLGNBQWMsR0FBRyxDQUFDLElBQWtDLEVBQUUsRUFBRTtZQUM1RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDckIsSUFBSTthQUNMLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDO1FBRUYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFO1lBQ3RDLGNBQWMsQ0FBQyw0QkFBNEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRTtZQUN4QyxjQUFjLENBQUMsNEJBQTRCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7SUFDckMsQ0FBQztJQUVELEVBQUUsQ0FBQyxLQUFzRDtRQUN2RCxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsTUFBTSxNQUFNLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqRixPQUFPLElBQUksQ0FBQyxLQUFLO2FBQ2QsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFhLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUM7YUFDdkQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzthQUNoQixLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFtQztRQUMxQyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQWEsQ0FBQztRQUNuQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBRXJDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUN4RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDekQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQW9DLEVBQUUsTUFBb0M7UUFDekYsTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUM1QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzVCLE9BQU8sT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7OytHQTNEVSxrQkFBa0I7bUhBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYnhSb3V0ZXJTZXJ2aWNlLCBEYnhSb3V0ZXJUcmFuc2l0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UnO1xuaW1wb3J0IHsgYXNTZWd1ZVJlZiwgYXNTZWd1ZVJlZlN0cmluZywgU2VndWVSZWZPclNlZ3VlUmVmUm91dGVyTGluaywgU2VndWVSZWZSYXdTZWd1ZVBhcmFtcyB9IGZyb20gJy4uLy4uLy4uL3NlZ3VlJztcbmltcG9ydCB7IFN0YXRlU2VydmljZSwgVUlSb3V0ZXJHbG9iYWxzLCBUcmFuc2l0aW9uT3B0aW9ucywgVHJhbnNpdGlvblNlcnZpY2UgfSBmcm9tICdAdWlyb3V0ZXIvY29yZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieFJvdXRlclRyYW5zaXRpb25FdmVudCwgRGJ4Um91dGVyVHJhbnNpdGlvbkV2ZW50VHlwZSB9IGZyb20gJy4uLy4uL3RyYW5zaXRpb24vdHJhbnNpdGlvbic7XG5cbi8qKlxuICogVUlSb3V0ZXIgaW1wbGVtZW50YXRpb24gb2YgRGJ4Um91dGVyU2VydmljZSBhbmQgRGJ4Um91dGVyVHJhbnNpdGlvblNlcnZpY2UuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYnhVSVJvdXRlclNlcnZpY2UgaW1wbGVtZW50cyBEYnhSb3V0ZXJTZXJ2aWNlLCBEYnhSb3V0ZXJUcmFuc2l0aW9uU2VydmljZSwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGFyYW1zID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTZWd1ZVJlZlJhd1NlZ3VlUGFyYW1zPih0aGlzLnVpUm91dGVyR2xvYmFscy5wYXJhbXMpO1xuICByZWFkb25seSBwYXJhbXMkID0gdGhpcy5fcGFyYW1zLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3RyYW5zaXRpb25zID0gbmV3IFN1YmplY3Q8RGJ4Um91dGVyVHJhbnNpdGlvbkV2ZW50PigpO1xuICByZWFkb25seSB0cmFuc2l0aW9ucyQgPSB0aGlzLl90cmFuc2l0aW9ucy5hc09ic2VydmFibGUoKTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBzdGF0ZTogU3RhdGVTZXJ2aWNlLCByZWFkb25seSB0cmFuc2l0aW9uU2VydmljZTogVHJhbnNpdGlvblNlcnZpY2UsIHJlYWRvbmx5IHVpUm91dGVyR2xvYmFsczogVUlSb3V0ZXJHbG9iYWxzKSB7XG4gICAgY29uc3QgZW1pdFRyYW5zaXRpb24gPSAodHlwZTogRGJ4Um91dGVyVHJhbnNpdGlvbkV2ZW50VHlwZSkgPT4ge1xuICAgICAgdGhpcy5fdHJhbnNpdGlvbnMubmV4dCh7XG4gICAgICAgIHR5cGVcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9wYXJhbXMubmV4dCh0aGlzLnVpUm91dGVyR2xvYmFscy5wYXJhbXMpO1xuICAgIH07XG5cbiAgICB0aGlzLnRyYW5zaXRpb25TZXJ2aWNlLm9uU3RhcnQoe30sICgpID0+IHtcbiAgICAgIGVtaXRUcmFuc2l0aW9uKERieFJvdXRlclRyYW5zaXRpb25FdmVudFR5cGUuU1RBUlQpO1xuICAgIH0pO1xuXG4gICAgdGhpcy50cmFuc2l0aW9uU2VydmljZS5vblN1Y2Nlc3Moe30sICgpID0+IHtcbiAgICAgIGVtaXRUcmFuc2l0aW9uKERieFJvdXRlclRyYW5zaXRpb25FdmVudFR5cGUuU1VDQ0VTUyk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2l0aW9ucy5jb21wbGV0ZSgpO1xuICB9XG5cbiAgZ2V0IHBhcmFtcygpIHtcbiAgICByZXR1cm4gdGhpcy51aVJvdXRlckdsb2JhbHMucGFyYW1zO1xuICB9XG5cbiAgZ28oaW5wdXQ6IFNlZ3VlUmVmT3JTZWd1ZVJlZlJvdXRlckxpbms8VHJhbnNpdGlvbk9wdGlvbnM+KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3Qgc2VndWVSZWYgPSBhc1NlZ3VlUmVmKGlucHV0KTtcbiAgICBjb25zdCBwYXJhbXMgPSB7IC4uLnRoaXMudWlSb3V0ZXJHbG9iYWxzLmN1cnJlbnQucGFyYW1zLCAuLi5zZWd1ZVJlZi5yZWZQYXJhbXMgfTtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZVxuICAgICAgLmdvKHNlZ3VlUmVmLnJlZiBhcyBzdHJpbmcsIHBhcmFtcywgc2VndWVSZWYucmVmT3B0aW9ucylcbiAgICAgIC50aGVuKCgpID0+IHRydWUpXG4gICAgICAuY2F0Y2goKCkgPT4gZmFsc2UpO1xuICB9XG5cbiAgaXNBY3RpdmUoaW5wdXQ6IFNlZ3VlUmVmT3JTZWd1ZVJlZlJvdXRlckxpbmspOiBib29sZWFuIHtcbiAgICBjb25zdCBzZWd1ZVJlZiA9IGFzU2VndWVSZWYoaW5wdXQpO1xuICAgIGNvbnN0IHJlZiA9IHNlZ3VlUmVmLnJlZiBhcyBzdHJpbmc7XG4gICAgY29uc3QgcmVmUGFyYW1zID0gc2VndWVSZWYucmVmUGFyYW1zO1xuXG4gICAgY29uc3QgdGFyZ2V0UmVmID0gcmVmLnN0YXJ0c1dpdGgoJy4nKSA/IGBeJHtyZWZ9YCA6IHJlZjtcbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLnN0YXRlLmluY2x1ZGVzKHRhcmdldFJlZiwgcmVmUGFyYW1zKTtcbiAgICByZXR1cm4gYWN0aXZlO1xuICB9XG5cbiAgY29tcGFyZVByZWNpc2lvbihhSW5wdXQ6IFNlZ3VlUmVmT3JTZWd1ZVJlZlJvdXRlckxpbmssIGJJbnB1dDogU2VndWVSZWZPclNlZ3VlUmVmUm91dGVyTGluayk6IG51bWJlciB7XG4gICAgY29uc3QgYVJlZiA9IGFzU2VndWVSZWZTdHJpbmcoYUlucHV0KTtcbiAgICBjb25zdCBiUmVmID0gYXNTZWd1ZVJlZlN0cmluZyhiSW5wdXQpO1xuXG4gICAgY29uc3QgYUxlbmd0aCA9IGFSZWYubGVuZ3RoO1xuICAgIGNvbnN0IGJMZW5ndGggPSBiUmVmLmxlbmd0aDtcbiAgICByZXR1cm4gYUxlbmd0aCA+IGJMZW5ndGggPyAxIDogYUxlbmd0aCA9PT0gYkxlbmd0aCA/IDAgOiAtMTtcbiAgfVxufVxuIl19
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlyb3V0ZXIucm91dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3JvdXRlci9yb3V0ZXIvcHJvdmlkZXIvdWlyb3V0ZXIvdWlyb3V0ZXIucm91dGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQyx3QkFBd0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQXlCLGNBQWMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBa0UsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5SCxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBNEIsNEJBQTRCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRyxPQUFPLEVBQXFCLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRWhFOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQU83QixZQUFxQixLQUFtQixFQUFXLGlCQUFvQyxFQUFXLGVBQWdDO1FBQTdHLFVBQUssR0FBTCxLQUFLLENBQWM7UUFBVyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQVcsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBTmpILFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBeUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRixZQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUU5QixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUE0QixDQUFDO1FBQy9ELGlCQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUd2RCxNQUFNLGNBQWMsR0FBRyxDQUFDLElBQWtDLEVBQUUsRUFBRTtZQUM1RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDckIsSUFBSTthQUNMLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDO1FBRUYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFO1lBQ3RDLGNBQWMsQ0FBQyw0QkFBNEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRTtZQUN4QyxjQUFjLENBQUMsNEJBQTRCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7SUFDckMsQ0FBQztJQUVELEVBQUUsQ0FBQyxLQUF5RTtRQUMxRSxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsT0FBTyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDckQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzNDLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakYsT0FBTyxJQUFJLENBQUMsS0FBSztpQkFDZCxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQWEsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQztpQkFDdkQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztpQkFDaEIsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxXQUFzRDtRQUNqRSxNQUFNLFdBQVcsR0FBZ0UsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDN0csR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDYixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQztZQUNsRCxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLEVBQUUsd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFNUYsTUFBTSxHQUFHLEdBQWdDO2dCQUN2QyxHQUFHLEVBQUUsR0FBRztnQkFDUixTQUFTO2dCQUNULFVBQVUsRUFBRTtvQkFDVixRQUFRLEVBQUUsU0FBUztvQkFDbkIsT0FBTyxFQUFFLElBQUk7aUJBQ2Q7YUFDRixDQUFDO1lBRUYsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBbUM7UUFDMUMsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFhLENBQUM7UUFDbkMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQztRQUVyQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFvQyxFQUFFLE1BQW9DO1FBQ3pGLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXRDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUM1QixPQUFPLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDOzsrR0FwRlUsa0JBQWtCO21IQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbHRlck51bGxBbmRVbmRlZmluZWRWYWx1ZXMsIEtleVZhbHVlVHlwbGVWYWx1ZUZpbHRlciwgbWVyZ2VPYmplY3RzIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBTdWJqZWN0LCBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIHN3aXRjaE1hcCwgZmlyc3RWYWx1ZUZyb20sIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGJ4Um91dGVyU2VydmljZSwgRGJ4Um91dGVyVHJhbnNpdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlJztcbmltcG9ydCB7IGFzU2VndWVSZWYsIGFzU2VndWVSZWZTdHJpbmcsIFNlZ3VlUmVmLCBTZWd1ZVJlZk9yU2VndWVSZWZSb3V0ZXJMaW5rLCBTZWd1ZVJlZlJhd1NlZ3VlUGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vc2VndWUnO1xuaW1wb3J0IHsgU3RhdGVTZXJ2aWNlLCBVSVJvdXRlckdsb2JhbHMsIFRyYW5zaXRpb25PcHRpb25zLCBUcmFuc2l0aW9uU2VydmljZSB9IGZyb20gJ0B1aXJvdXRlci9jb3JlJztcbmltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4Um91dGVyVHJhbnNpdGlvbkV2ZW50LCBEYnhSb3V0ZXJUcmFuc2l0aW9uRXZlbnRUeXBlIH0gZnJvbSAnLi4vLi4vdHJhbnNpdGlvbi90cmFuc2l0aW9uJztcbmltcG9ydCB7IE9ic2VydmFibGVPclZhbHVlLCBhc09ic2VydmFibGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcblxuLyoqXG4gKiBVSVJvdXRlciBpbXBsZW1lbnRhdGlvbiBvZiBEYnhSb3V0ZXJTZXJ2aWNlIGFuZCBEYnhSb3V0ZXJUcmFuc2l0aW9uU2VydmljZS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERieFVJUm91dGVyU2VydmljZSBpbXBsZW1lbnRzIERieFJvdXRlclNlcnZpY2UsIERieFJvdXRlclRyYW5zaXRpb25TZXJ2aWNlLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9wYXJhbXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlZ3VlUmVmUmF3U2VndWVQYXJhbXM+KHRoaXMudWlSb3V0ZXJHbG9iYWxzLnBhcmFtcyk7XG4gIHJlYWRvbmx5IHBhcmFtcyQgPSB0aGlzLl9wYXJhbXMuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdHJhbnNpdGlvbnMgPSBuZXcgU3ViamVjdDxEYnhSb3V0ZXJUcmFuc2l0aW9uRXZlbnQ+KCk7XG4gIHJlYWRvbmx5IHRyYW5zaXRpb25zJCA9IHRoaXMuX3RyYW5zaXRpb25zLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHN0YXRlOiBTdGF0ZVNlcnZpY2UsIHJlYWRvbmx5IHRyYW5zaXRpb25TZXJ2aWNlOiBUcmFuc2l0aW9uU2VydmljZSwgcmVhZG9ubHkgdWlSb3V0ZXJHbG9iYWxzOiBVSVJvdXRlckdsb2JhbHMpIHtcbiAgICBjb25zdCBlbWl0VHJhbnNpdGlvbiA9ICh0eXBlOiBEYnhSb3V0ZXJUcmFuc2l0aW9uRXZlbnRUeXBlKSA9PiB7XG4gICAgICB0aGlzLl90cmFuc2l0aW9ucy5uZXh0KHtcbiAgICAgICAgdHlwZVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX3BhcmFtcy5uZXh0KHRoaXMudWlSb3V0ZXJHbG9iYWxzLnBhcmFtcyk7XG4gICAgfTtcblxuICAgIHRoaXMudHJhbnNpdGlvblNlcnZpY2Uub25TdGFydCh7fSwgKCkgPT4ge1xuICAgICAgZW1pdFRyYW5zaXRpb24oRGJ4Um91dGVyVHJhbnNpdGlvbkV2ZW50VHlwZS5TVEFSVCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnRyYW5zaXRpb25TZXJ2aWNlLm9uU3VjY2Vzcyh7fSwgKCkgPT4ge1xuICAgICAgZW1pdFRyYW5zaXRpb24oRGJ4Um91dGVyVHJhbnNpdGlvbkV2ZW50VHlwZS5TVUNDRVNTKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zaXRpb25zLmNvbXBsZXRlKCk7XG4gIH1cblxuICBnZXQgcGFyYW1zKCkge1xuICAgIHJldHVybiB0aGlzLnVpUm91dGVyR2xvYmFscy5wYXJhbXM7XG4gIH1cblxuICBnbyhpbnB1dDogT2JzZXJ2YWJsZU9yVmFsdWU8U2VndWVSZWZPclNlZ3VlUmVmUm91dGVyTGluazxUcmFuc2l0aW9uT3B0aW9ucz4+KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgaW5wdXRPYnMgPSBhc09ic2VydmFibGUoaW5wdXQpO1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShpbnB1dE9icykudGhlbigoaW5wdXRTZWd1ZVJlZikgPT4ge1xuICAgICAgY29uc3Qgc2VndWVSZWYgPSBhc1NlZ3VlUmVmKGlucHV0U2VndWVSZWYpO1xuICAgICAgY29uc3QgcGFyYW1zID0geyAuLi50aGlzLnVpUm91dGVyR2xvYmFscy5jdXJyZW50LnBhcmFtcywgLi4uc2VndWVSZWYucmVmUGFyYW1zIH07XG4gICAgICByZXR1cm4gdGhpcy5zdGF0ZVxuICAgICAgICAuZ28oc2VndWVSZWYucmVmIGFzIHN0cmluZywgcGFyYW1zLCBzZWd1ZVJlZi5yZWZPcHRpb25zKVxuICAgICAgICAudGhlbigoKSA9PiB0cnVlKVxuICAgICAgICAuY2F0Y2goKCkgPT4gZmFsc2UpO1xuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlUGFyYW1zKGlucHV0UGFyYW1zOiBPYnNlcnZhYmxlT3JWYWx1ZTxTZWd1ZVJlZlJhd1NlZ3VlUGFyYW1zPik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHNlZ3VlVXBkYXRlOiBPYnNlcnZhYmxlPFNlZ3VlUmVmT3JTZWd1ZVJlZlJvdXRlckxpbms8VHJhbnNpdGlvbk9wdGlvbnM+PiA9IGFzT2JzZXJ2YWJsZShpbnB1dFBhcmFtcykucGlwZShcbiAgICAgIG1hcCgocGFyYW1zKSA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQYXJhbXMgPSB0aGlzLnVpUm91dGVyR2xvYmFscy5wYXJhbXM7XG4gICAgICAgIGNvbnN0IHJlZlBhcmFtcyA9IG1lcmdlT2JqZWN0cyhbY3VycmVudFBhcmFtcywgcGFyYW1zXSwgS2V5VmFsdWVUeXBsZVZhbHVlRmlsdGVyLlVOREVGSU5FRCk7XG5cbiAgICAgICAgY29uc3QgcmVmOiBTZWd1ZVJlZjxUcmFuc2l0aW9uT3B0aW9ucz4gPSB7XG4gICAgICAgICAgcmVmOiAnLicsXG4gICAgICAgICAgcmVmUGFyYW1zLFxuICAgICAgICAgIHJlZk9wdGlvbnM6IHtcbiAgICAgICAgICAgIGxvY2F0aW9uOiAncmVwbGFjZScsXG4gICAgICAgICAgICBpbmhlcml0OiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiByZWY7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy5nbyhzZWd1ZVVwZGF0ZSk7XG4gIH1cblxuICBpc0FjdGl2ZShpbnB1dDogU2VndWVSZWZPclNlZ3VlUmVmUm91dGVyTGluayk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlZ3VlUmVmID0gYXNTZWd1ZVJlZihpbnB1dCk7XG4gICAgY29uc3QgcmVmID0gc2VndWVSZWYucmVmIGFzIHN0cmluZztcbiAgICBjb25zdCByZWZQYXJhbXMgPSBzZWd1ZVJlZi5yZWZQYXJhbXM7XG5cbiAgICBjb25zdCB0YXJnZXRSZWYgPSByZWYuc3RhcnRzV2l0aCgnLicpID8gYF4ke3JlZn1gIDogcmVmO1xuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuc3RhdGUuaW5jbHVkZXModGFyZ2V0UmVmLCByZWZQYXJhbXMpO1xuICAgIHJldHVybiBhY3RpdmU7XG4gIH1cblxuICBjb21wYXJlUHJlY2lzaW9uKGFJbnB1dDogU2VndWVSZWZPclNlZ3VlUmVmUm91dGVyTGluaywgYklucHV0OiBTZWd1ZVJlZk9yU2VndWVSZWZSb3V0ZXJMaW5rKTogbnVtYmVyIHtcbiAgICBjb25zdCBhUmVmID0gYXNTZWd1ZVJlZlN0cmluZyhhSW5wdXQpO1xuICAgIGNvbnN0IGJSZWYgPSBhc1NlZ3VlUmVmU3RyaW5nKGJJbnB1dCk7XG5cbiAgICBjb25zdCBhTGVuZ3RoID0gYVJlZi5sZW5ndGg7XG4gICAgY29uc3QgYkxlbmd0aCA9IGJSZWYubGVuZ3RoO1xuICAgIHJldHVybiBhTGVuZ3RoID4gYkxlbmd0aCA/IDEgOiBhTGVuZ3RoID09PSBiTGVuZ3RoID8gMCA6IC0xO1xuICB9XG59XG4iXX0=
@@ -3,4 +3,4 @@
3
3
  */
4
4
  export class DbxRouterService {
5
5
  }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3JvdXRlci9yb3V0ZXIvc2VydmljZS9yb3V0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTs7R0FFRztBQUNILE1BQU0sT0FBZ0IsZ0JBQWdCO0NBOEJyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGVPclZhbHVlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTZWd1ZVJlZk9yU2VndWVSZWZSb3V0ZXJMaW5rLCBTZWd1ZVJlZlJhd1NlZ3VlUGFyYW1zIH0gZnJvbSAnLi4vLi4vc2VndWUnO1xuXG4vKipcbiAqIFJvdXRlciBzZXJ2aWNlIGRlZmluaXRpb24gdGhhdCBjYW4gcm91dGUgdGhlIGFwcCBhbmQgcHJvdmlkZSByb3V0aW5nIGRldGFpbHMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYnhSb3V0ZXJTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIFBhcmFtcyBvZiB0aGUgY3VycmVudCBzdWNjZXNzZnVsbHkgbG9hZGVkIHJvdXRlLlxuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgcGFyYW1zJDogT2JzZXJ2YWJsZTxTZWd1ZVJlZlJhd1NlZ3VlUGFyYW1zPjtcblxuICAvKipcbiAgICogTmF2aWdhdGVzIHRvIHRoZSB0YXJnZXQgU2VndWVSZWYuXG4gICAqXG4gICAqIEBwYXJhbSBzZWd1ZVJlZlxuICAgKi9cbiAgYWJzdHJhY3QgZ28oc2VndWVSZWY6IE9ic2VydmFibGVPclZhbHVlPFNlZ3VlUmVmT3JTZWd1ZVJlZlJvdXRlckxpbms+KTogUHJvbWlzZTxib29sZWFuPjtcblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBpbnB1dCBzZWd1ZSByZWYgaXMgY29uc2lkZXJlZCBhY3RpdmUuXG4gICAqXG4gICAqIEBwYXJhbSBzZWd1ZVJlZlxuICAgKi9cbiAgYWJzdHJhY3QgaXNBY3RpdmUoc2VndWVSZWY6IFNlZ3VlUmVmT3JTZWd1ZVJlZlJvdXRlckxpbmspOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb21wYXJlcyB0aGUgdHdvIHJlZnMgZm9yIHByZWNpc2lvbiBmb3IgYSBjZXJ0YWluIHJvdXRlLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgaWYgdGhlIHBhcmVudCByb3V0ZSBpcyBpbnB1dCB3aXRoIGEgY2hpbGQgcm91dGUsIHRoZSBjaGlsZCByb3V0ZSBpc1xuICAgKiBjb25zaWRlcmVkIG1vcmUgcHJlY2lzZS5cbiAgICpcbiAgICogQHBhcmFtIGFcbiAgICogQHBhcmFtIGJcbiAgICovXG4gIGFic3RyYWN0IGNvbXBhcmVQcmVjaXNpb24oYTogU2VndWVSZWZPclNlZ3VlUmVmUm91dGVyTGluaywgYjogU2VndWVSZWZPclNlZ3VlUmVmUm91dGVyTGluayk6IG51bWJlcjtcbn1cbiJdfQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3JvdXRlci9yb3V0ZXIvc2VydmljZS9yb3V0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTs7R0FFRztBQUNILE1BQU0sT0FBZ0IsZ0JBQWdCO0NBcUNyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGVPclZhbHVlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTZWd1ZVJlZk9yU2VndWVSZWZSb3V0ZXJMaW5rLCBTZWd1ZVJlZlJhd1NlZ3VlUGFyYW1zIH0gZnJvbSAnLi4vLi4vc2VndWUnO1xuXG4vKipcbiAqIFJvdXRlciBzZXJ2aWNlIGRlZmluaXRpb24gdGhhdCBjYW4gcm91dGUgdGhlIGFwcCBhbmQgcHJvdmlkZSByb3V0aW5nIGRldGFpbHMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYnhSb3V0ZXJTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIFBhcmFtcyBvZiB0aGUgY3VycmVudCBzdWNjZXNzZnVsbHkgbG9hZGVkIHJvdXRlLlxuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgcGFyYW1zJDogT2JzZXJ2YWJsZTxTZWd1ZVJlZlJhd1NlZ3VlUGFyYW1zPjtcblxuICAvKipcbiAgICogTmF2aWdhdGVzIHRvIHRoZSB0YXJnZXQgU2VndWVSZWYuXG4gICAqXG4gICAqIEBwYXJhbSBzZWd1ZVJlZlxuICAgKi9cbiAgYWJzdHJhY3QgZ28oc2VndWVSZWY6IE9ic2VydmFibGVPclZhbHVlPFNlZ3VlUmVmT3JTZWd1ZVJlZlJvdXRlckxpbms+KTogUHJvbWlzZTxib29sZWFuPjtcblxuICAvKipcbiAgICogTmF2aWdhdGVzIHRvIHRoZSBjdXJyZW50IHVybCB3aXRoIHVwZGF0ZWQgcGFyYW1ldGVycy4gV2lsbCBiZSBtZXJnZWQgd2l0aCB0aGUgZXhpc3RpbmcgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHBhcmFtIHNlZ3VlUmVmXG4gICAqL1xuICBhYnN0cmFjdCB1cGRhdGVQYXJhbXMocGFyYW1zOiBPYnNlcnZhYmxlT3JWYWx1ZTxTZWd1ZVJlZlJhd1NlZ3VlUGFyYW1zPik6IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgaW5wdXQgc2VndWUgcmVmIGlzIGNvbnNpZGVyZWQgYWN0aXZlLlxuICAgKlxuICAgKiBAcGFyYW0gc2VndWVSZWZcbiAgICovXG4gIGFic3RyYWN0IGlzQWN0aXZlKHNlZ3VlUmVmOiBTZWd1ZVJlZk9yU2VndWVSZWZSb3V0ZXJMaW5rKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29tcGFyZXMgdGhlIHR3byByZWZzIGZvciBwcmVjaXNpb24gZm9yIGEgY2VydGFpbiByb3V0ZS5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUsIGlmIHRoZSBwYXJlbnQgcm91dGUgaXMgaW5wdXQgd2l0aCBhIGNoaWxkIHJvdXRlLCB0aGUgY2hpbGQgcm91dGUgaXNcbiAgICogY29uc2lkZXJlZCBtb3JlIHByZWNpc2UuXG4gICAqXG4gICAqIEBwYXJhbSBhXG4gICAqIEBwYXJhbSBiXG4gICAqL1xuICBhYnN0cmFjdCBjb21wYXJlUHJlY2lzaW9uKGE6IFNlZ3VlUmVmT3JTZWd1ZVJlZlJvdXRlckxpbmssIGI6IFNlZ3VlUmVmT3JTZWd1ZVJlZlJvdXRlckxpbmspOiBudW1iZXI7XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './route.reader';
2
+ export * from './route.default';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3JvdXRlci9yb3V0ZXIvdXRpbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3JvdXRlLnJlYWRlcic7XG5leHBvcnQgKiBmcm9tICcuL3JvdXRlLmRlZmF1bHQnO1xuIl19
@@ -0,0 +1,62 @@
1
+ import { BehaviorSubject, EMPTY, switchMap, of } from 'rxjs';
2
+ import { defaultForwardFunctionFactory } from '@dereekb/util';
3
+ import { SubscriptionObject, switchMapToDefault, filterMaybe } from '@dereekb/rxjs';
4
+ const DEFAULT_REDIRECT_INSTANCE_FORWARD_FACTORY = defaultForwardFunctionFactory((value) => of(value == null));
5
+ /**
6
+ * Utility class used in conjuction with a DbxRouteParamReaderInstance to redirect when the default param does not equal the
7
+ */
8
+ export class DbxRouteParamDefaultRedirectInstance {
9
+ constructor(instance) {
10
+ this.instance = instance;
11
+ this._enabled = new BehaviorSubject(true);
12
+ this._useDefaultFilter = new BehaviorSubject(undefined);
13
+ this._sub = new SubscriptionObject();
14
+ }
15
+ init() {
16
+ this._sub.subscription = this._enabled
17
+ .pipe(switchMap((enabled) => {
18
+ if (enabled) {
19
+ return this.instance.paramValue$.pipe(switchMapToDefault(this.instance.defaultValue$, (value) => {
20
+ return this._useDefaultFilter.pipe(switchMap((fn) => DEFAULT_REDIRECT_INSTANCE_FORWARD_FACTORY(fn)(value)));
21
+ }), filterMaybe(), // do not redirect on MaybeNot values
22
+ switchMap((defaultValue) => {
23
+ return this.redirectWithDefaultValue(defaultValue);
24
+ }));
25
+ }
26
+ else {
27
+ return EMPTY;
28
+ }
29
+ }))
30
+ .subscribe();
31
+ }
32
+ destroy() {
33
+ this._enabled.complete();
34
+ this._useDefaultFilter.complete();
35
+ this._sub.destroy();
36
+ }
37
+ redirectWithDefaultValue(value) {
38
+ if (value != null) {
39
+ // perform a segue once
40
+ return this.redirectWithValue(value);
41
+ }
42
+ else {
43
+ // do nothing
44
+ return Promise.resolve(false);
45
+ }
46
+ }
47
+ redirectWithValue(value) {
48
+ return this.instance.dbxRouterService.updateParams({
49
+ [this.instance.paramKey]: value
50
+ });
51
+ }
52
+ get enabled() {
53
+ return this._enabled.value;
54
+ }
55
+ set enabled(enabled) {
56
+ this._enabled.next(enabled);
57
+ }
58
+ setUseDefaultFilter(useValueFilter) {
59
+ this._useDefaultFilter.next(useValueFilter);
60
+ }
61
+ }
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuZGVmYXVsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvcm91dGVyL3JvdXRlci91dGlsL3JvdXRlLmRlZmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU3RCxPQUFPLEVBQWtFLDZCQUE2QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBb0MsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRILE1BQU0seUNBQXlDLEdBQUcsNkJBQTZCLENBQTRDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7QUFFeko7O0dBRUc7QUFDSCxNQUFNLE9BQU8sb0NBQW9DO0lBSy9DLFlBQXFCLFFBQXdDO1FBQXhDLGFBQVEsR0FBUixRQUFRLENBQWdDO1FBSnJELGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUM5QyxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBNkMsU0FBUyxDQUFDLENBQUM7UUFDL0YsU0FBSSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztJQUV3QixDQUFDO0lBRWpFLElBQUk7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUTthQUNuQyxJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ25DLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ3hELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFFLHlDQUFnSCxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEwsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxFQUFFLEVBQUUscUNBQXFDO2dCQUNwRCxTQUFTLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtvQkFDekIsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3JELENBQUMsQ0FBQyxDQUNILENBQUM7YUFDSDtpQkFBTTtnQkFDTCxPQUFPLEtBQUssQ0FBQzthQUNkO1FBQ0gsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVTLHdCQUF3QixDQUFDLEtBQWU7UUFDaEQsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO1lBQ2pCLHVCQUF1QjtZQUN2QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN0QzthQUFNO1lBQ0wsYUFBYTtZQUNiLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxLQUFlO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7WUFDakQsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUs7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLE9BQWdCO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxjQUEwRDtRQUM1RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgRU1QVFksIHN3aXRjaE1hcCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieFJvdXRlUGFyYW1SZWFkZXJJbnN0YW5jZSB9IGZyb20gJy4vcm91dGUucmVhZGVyJztcbmltcG9ydCB7IERlc3Ryb3lhYmxlLCBJbml0aWFsaXplZCwgTWF5YmUsIERlZmF1bHRGb3J3YXJkRnVuY3Rpb25GYWN0b3J5LCBkZWZhdWx0Rm9yd2FyZEZ1bmN0aW9uRmFjdG9yeSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uT2JqZWN0LCBzd2l0Y2hNYXBUb0RlZmF1bHQsIFN3aXRjaE1hcFRvRGVmYXVsdEZpbHRlckZ1bmN0aW9uLCBmaWx0ZXJNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuXG5jb25zdCBERUZBVUxUX1JFRElSRUNUX0lOU1RBTkNFX0ZPUldBUkRfRkFDVE9SWSA9IGRlZmF1bHRGb3J3YXJkRnVuY3Rpb25GYWN0b3J5PFN3aXRjaE1hcFRvRGVmYXVsdEZpbHRlckZ1bmN0aW9uPHVua25vd24+PigodmFsdWUpID0+IG9mKHZhbHVlID09IG51bGwpKTtcblxuLyoqXG4gKiBVdGlsaXR5IGNsYXNzIHVzZWQgaW4gY29uanVjdGlvbiB3aXRoIGEgRGJ4Um91dGVQYXJhbVJlYWRlckluc3RhbmNlIHRvIHJlZGlyZWN0IHdoZW4gdGhlIGRlZmF1bHQgcGFyYW0gZG9lcyBub3QgZXF1YWwgdGhlXG4gKi9cbmV4cG9ydCBjbGFzcyBEYnhSb3V0ZVBhcmFtRGVmYXVsdFJlZGlyZWN0SW5zdGFuY2U8VD4gaW1wbGVtZW50cyBJbml0aWFsaXplZCwgRGVzdHJveWFibGUge1xuICBwcml2YXRlIF9lbmFibGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHJpdmF0ZSBfdXNlRGVmYXVsdEZpbHRlciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8U3dpdGNoTWFwVG9EZWZhdWx0RmlsdGVyRnVuY3Rpb248VD4+Pih1bmRlZmluZWQpO1xuICBwcml2YXRlIF9zdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgaW5zdGFuY2U6IERieFJvdXRlUGFyYW1SZWFkZXJJbnN0YW5jZTxUPikge31cblxuICBpbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLl9lbmFibGVkXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChlbmFibGVkKSA9PiB7XG4gICAgICAgICAgaWYgKGVuYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmluc3RhbmNlLnBhcmFtVmFsdWUkLnBpcGUoXG4gICAgICAgICAgICAgIHN3aXRjaE1hcFRvRGVmYXVsdCh0aGlzLmluc3RhbmNlLmRlZmF1bHRWYWx1ZSQsICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl91c2VEZWZhdWx0RmlsdGVyLnBpcGUoc3dpdGNoTWFwKChmbikgPT4gKERFRkFVTFRfUkVESVJFQ1RfSU5TVEFOQ0VfRk9SV0FSRF9GQUNUT1JZIGFzIERlZmF1bHRGb3J3YXJkRnVuY3Rpb25GYWN0b3J5PFN3aXRjaE1hcFRvRGVmYXVsdEZpbHRlckZ1bmN0aW9uPFQ+PikoZm4pKHZhbHVlKSkpO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgZmlsdGVyTWF5YmUoKSwgLy8gZG8gbm90IHJlZGlyZWN0IG9uIE1heWJlTm90IHZhbHVlc1xuICAgICAgICAgICAgICBzd2l0Y2hNYXAoKGRlZmF1bHRWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJlZGlyZWN0V2l0aERlZmF1bHRWYWx1ZShkZWZhdWx0VmFsdWUpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZW5hYmxlZC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3VzZURlZmF1bHRGaWx0ZXIuY29tcGxldGUoKTtcbiAgICB0aGlzLl9zdWIuZGVzdHJveSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlZGlyZWN0V2l0aERlZmF1bHRWYWx1ZSh2YWx1ZTogTWF5YmU8VD4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgLy8gcGVyZm9ybSBhIHNlZ3VlIG9uY2VcbiAgICAgIHJldHVybiB0aGlzLnJlZGlyZWN0V2l0aFZhbHVlKHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZG8gbm90aGluZ1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHJlZGlyZWN0V2l0aFZhbHVlKHZhbHVlOiBNYXliZTxUPik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmluc3RhbmNlLmRieFJvdXRlclNlcnZpY2UudXBkYXRlUGFyYW1zKHtcbiAgICAgIFt0aGlzLmluc3RhbmNlLnBhcmFtS2V5XTogdmFsdWVcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBlbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9lbmFibGVkLnZhbHVlO1xuICB9XG5cbiAgc2V0IGVuYWJsZWQoZW5hYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuX2VuYWJsZWQubmV4dChlbmFibGVkKTtcbiAgfVxuXG4gIHNldFVzZURlZmF1bHRGaWx0ZXIodXNlVmFsdWVGaWx0ZXI6IE1heWJlPFN3aXRjaE1hcFRvRGVmYXVsdEZpbHRlckZ1bmN0aW9uPFQ+Pik6IHZvaWQge1xuICAgIHRoaXMuX3VzZURlZmF1bHRGaWx0ZXIubmV4dCh1c2VWYWx1ZUZpbHRlcik7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,34 @@
1
+ import { switchMapToDefault, maybeValueFromObservableOrValueGetter } from '@dereekb/rxjs';
2
+ import { BehaviorSubject, combineLatest, distinctUntilChanged, map, shareReplay } from 'rxjs';
3
+ /**
4
+ * Utility class used for reading a single value from the DbxRouterService.
5
+ */
6
+ export class DbxRouteParamReaderInstance {
7
+ constructor(dbxRouterService, defaultParamKey, defaultValue) {
8
+ this.dbxRouterService = dbxRouterService;
9
+ this.defaultParamKey = defaultParamKey;
10
+ this.defaultValue = defaultValue;
11
+ this._paramKey = new BehaviorSubject(this.defaultParamKey);
12
+ this.paramKey$ = this._paramKey.asObservable();
13
+ this._defaultValue = new BehaviorSubject(this.defaultValue);
14
+ this.paramValue$ = combineLatest([this.paramKey$, this.dbxRouterService.params$]).pipe(map(([key, params]) => {
15
+ return params[key] ?? undefined;
16
+ }), distinctUntilChanged(), shareReplay(1));
17
+ this.nextDefaultValue$ = this._defaultValue.pipe(maybeValueFromObservableOrValueGetter(), shareReplay(1));
18
+ this.defaultValue$ = this._defaultValue.pipe(maybeValueFromObservableOrValueGetter(), shareReplay(1));
19
+ this.value$ = this.paramValue$.pipe(switchMapToDefault(this.defaultValue$), shareReplay(1));
20
+ }
21
+ destroy() {
22
+ this._paramKey.complete();
23
+ }
24
+ get paramKey() {
25
+ return this._paramKey.value;
26
+ }
27
+ set paramKey(paramKey) {
28
+ this._paramKey.next(paramKey || this.defaultParamKey);
29
+ }
30
+ setDefaultValue(defaultValue) {
31
+ this._defaultValue.next(defaultValue ?? this.defaultValue);
32
+ }
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUucmVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9yb3V0ZXIvcm91dGVyL3V0aWwvcm91dGUucmVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBeUQsa0JBQWtCLEVBQUUscUNBQXFDLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBRW5MLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBa0IsV0FBVyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBa0N6SDs7R0FFRztBQUNILE1BQU0sT0FBTywyQkFBMkI7SUFtQnRDLFlBQXFCLGdCQUFrQyxFQUFXLGVBQXVCLEVBQVcsWUFBOEM7UUFBN0gscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFXLG9CQUFlLEdBQWYsZUFBZSxDQUFRO1FBQVcsaUJBQVksR0FBWixZQUFZLENBQWtDO1FBbEIxSSxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdELGNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRTNDLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQTJDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVoRyxnQkFBVyxHQUF5QixhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDOUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRTtZQUNwQixPQUFRLE1BQU0sQ0FBQyxHQUFHLENBQWMsSUFBSSxTQUFTLENBQUM7UUFDaEQsQ0FBQyxDQUFDLEVBQ0Ysb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7UUFFTyxzQkFBaUIsR0FBeUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMscUNBQXFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzSCxrQkFBYSxHQUF5QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZILFdBQU0sR0FBeUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRStCLENBQUM7SUFFdEosT0FBTztRQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLFFBQXVCO1FBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELGVBQWUsQ0FBQyxZQUE2QztRQUMzRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzdELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGVPclZhbHVlR2V0dGVyLCBNYXliZU9ic2VydmFibGVPclZhbHVlR2V0dGVyLCBzd2l0Y2hNYXBUb0RlZmF1bHQsIG1heWJlVmFsdWVGcm9tT2JzZXJ2YWJsZU9yVmFsdWVHZXR0ZXIsIFN3aXRjaE1hcFRvRGVmYXVsdEZpbHRlckZ1bmN0aW9uIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBEZXN0cm95YWJsZSwgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieFJvdXRlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL3JvdXRlci5zZXJ2aWNlJztcblxuLyoqXG4gKiBJbnRlcmZhY2UgdXNlZCBmb3IgcmVhZGluZyBhIHNpbmdsZSB2YWx1ZSBmcm9tIHRoZSBEYnhSb3V0ZXJTZXJ2aWNlLiBTdXBwb3J0cyBhIGRlZmF1bHQgdmFsdWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4Um91dGVQYXJhbVJlYWRlcjxUPiB7XG4gIC8qKlxuICAgKiBUaGUgcGFyYW0gdmFsdWUgYXMgcmVhZCBmcm9tIHRoZSBjdXJyZW50IHJvdXRlciBzdGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IHBhcmFtVmFsdWUkOiBPYnNlcnZhYmxlPE1heWJlPFQ+PjtcbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IHZhbHVlIG9ic2VydmFibGUuXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0VmFsdWUkOiBPYnNlcnZhYmxlPE1heWJlPFQ+PjtcbiAgLyoqXG4gICAqIFRoZSBmaW5hbCBjb21wdXRlZCB2YWx1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWUkOiBPYnNlcnZhYmxlPE1heWJlPFQ+PjtcblxuICAvKipcbiAgICogUGFyYW0ga2V5IGdldHRlci9zZXR0ZXJzLlxuICAgKi9cbiAgZ2V0IHBhcmFtS2V5KCk6IHN0cmluZztcbiAgc2V0IHBhcmFtS2V5KHBhcmFtS2V5OiBNYXliZTxzdHJpbmc+KTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgZGVmYXVsdCB2YWx1ZSBzb3VyY2UuXG4gICAqXG4gICAqIEBwYXJhbSBkZWZhdWx0VmFsdWVcbiAgICovXG4gIHNldERlZmF1bHRWYWx1ZShkZWZhdWx0VmFsdWU6IE1heWJlT2JzZXJ2YWJsZU9yVmFsdWVHZXR0ZXI8VD4pOiB2b2lkO1xufVxuXG4vKipcbiAqIFV0aWxpdHkgY2xhc3MgdXNlZCBmb3IgcmVhZGluZyBhIHNpbmdsZSB2YWx1ZSBmcm9tIHRoZSBEYnhSb3V0ZXJTZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgRGJ4Um91dGVQYXJhbVJlYWRlckluc3RhbmNlPFQ+IGltcGxlbWVudHMgRGJ4Um91dGVQYXJhbVJlYWRlcjxUPiwgRGVzdHJveWFibGUge1xuICBwcml2YXRlIF9wYXJhbUtleSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPih0aGlzLmRlZmF1bHRQYXJhbUtleSk7XG4gIHJlYWRvbmx5IHBhcmFtS2V5JCA9IHRoaXMuX3BhcmFtS2V5LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgX2RlZmF1bHRWYWx1ZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8T2JzZXJ2YWJsZU9yVmFsdWVHZXR0ZXI8TWF5YmU8VD4+Pj4odGhpcy5kZWZhdWx0VmFsdWUpO1xuXG4gIHJlYWRvbmx5IHBhcmFtVmFsdWUkOiBPYnNlcnZhYmxlPE1heWJlPFQ+PiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMucGFyYW1LZXkkLCB0aGlzLmRieFJvdXRlclNlcnZpY2UucGFyYW1zJF0pLnBpcGUoXG4gICAgbWFwKChba2V5LCBwYXJhbXNdKSA9PiB7XG4gICAgICByZXR1cm4gKHBhcmFtc1trZXldIGFzIE1heWJlPFQ+KSA/PyB1bmRlZmluZWQ7XG4gICAgfSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IG5leHREZWZhdWx0VmFsdWUkOiBPYnNlcnZhYmxlPE1heWJlPFQ+PiA9IHRoaXMuX2RlZmF1bHRWYWx1ZS5waXBlKG1heWJlVmFsdWVGcm9tT2JzZXJ2YWJsZU9yVmFsdWVHZXR0ZXIoKSwgc2hhcmVSZXBsYXkoMSkpO1xuICByZWFkb25seSBkZWZhdWx0VmFsdWUkOiBPYnNlcnZhYmxlPE1heWJlPFQ+PiA9IHRoaXMuX2RlZmF1bHRWYWx1ZS5waXBlKG1heWJlVmFsdWVGcm9tT2JzZXJ2YWJsZU9yVmFsdWVHZXR0ZXIoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IHZhbHVlJDogT2JzZXJ2YWJsZTxNYXliZTxUPj4gPSB0aGlzLnBhcmFtVmFsdWUkLnBpcGUoc3dpdGNoTWFwVG9EZWZhdWx0KHRoaXMuZGVmYXVsdFZhbHVlJCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBkYnhSb3V0ZXJTZXJ2aWNlOiBEYnhSb3V0ZXJTZXJ2aWNlLCByZWFkb25seSBkZWZhdWx0UGFyYW1LZXk6IHN0cmluZywgcmVhZG9ubHkgZGVmYXVsdFZhbHVlPzogTWF5YmVPYnNlcnZhYmxlT3JWYWx1ZUdldHRlcjxUPikge31cblxuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3BhcmFtS2V5LmNvbXBsZXRlKCk7XG4gIH1cblxuICBnZXQgcGFyYW1LZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyYW1LZXkudmFsdWU7XG4gIH1cblxuICBzZXQgcGFyYW1LZXkocGFyYW1LZXk6IE1heWJlPHN0cmluZz4pIHtcbiAgICB0aGlzLl9wYXJhbUtleS5uZXh0KHBhcmFtS2V5IHx8IHRoaXMuZGVmYXVsdFBhcmFtS2V5KTtcbiAgfVxuXG4gIHNldERlZmF1bHRWYWx1ZShkZWZhdWx0VmFsdWU6IE1heWJlT2JzZXJ2YWJsZU9yVmFsdWVHZXR0ZXI8VD4pOiB2b2lkIHtcbiAgICB0aGlzLl9kZWZhdWx0VmFsdWUubmV4dChkZWZhdWx0VmFsdWUgPz8gdGhpcy5kZWZhdWx0VmFsdWUpO1xuICB9XG59XG4iXX0=
@@ -1,11 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Directive, Injectable, forwardRef, Host, Input, Optional, NgModule, InjectionToken, Inject, EventEmitter, Output, LOCALE_ID, Pipe, ViewChild, Injector, ViewContainerRef, Component } from '@angular/core';
3
3
  import * as i1$5 from '@dereekb/rxjs';
4
- import { SubscriptionObject, LockSet, filterMaybe, LoadingStateType, beginLoading, idleLoadingState, errorResult, successResult, scanCount, combineLatestFromMapValuesObsFn, workFactory, emitDelayObs, asObservable, returnIfIs, skipFirstMaybe, onFalseToTrue, onTrueToFalse, setContainsAllValuesFrom, FilterSourceInstance, FilterSource, FilterSourceConnector, FilterMap } from '@dereekb/rxjs';
4
+ import { SubscriptionObject, LockSet, filterMaybe, LoadingStateType, beginLoading, idleLoadingState, errorResult, successResult, scanCount, combineLatestFromMapValuesObsFn, workFactory, emitDelayObs, asObservable, returnIfIs, skipFirstMaybe, maybeValueFromObservableOrValueGetter, switchMapToDefault, onFalseToTrue, onTrueToFalse, setContainsAllValuesFrom, FilterSourceInstance, FilterSource, FilterSourceConnector, FilterMap } from '@dereekb/rxjs';
5
5
  import * as i1 from 'rxjs';
6
6
  import { switchMap, first, BehaviorSubject, combineLatest, distinctUntilChanged, filter, Subject, debounce, interval, throttle, exhaustMap, mergeMap, map, shareReplay, EMPTY, withLatestFrom, of, startWith, tap, delay, catchError, firstValueFrom, takeUntil, Observable } from 'rxjs';
7
7
  import * as i1$6 from '@dereekb/util';
8
- import { isDefinedAndNotFalse, hasValueOrNotEmpty, BooleanStringKeyArrayUtilityInstance, reduceBooleansWithOrFn, getValueFromGetter, toReadableError, isGetter, setIncludes, maybeSet, isAllowed, expandTreeFunction, flattenTreeToArrayFunction, expandFlattenTreeFunction, mergeArrays, filterMaybeValues, mergeObjects, mergeArrayOrValueIntoArray, promiseReference, DataIsExpiredError, DataDoesNotExistError, hasNonNullValue, StorageObjectUtility, SHARED_MEMORY_STORAGE } from '@dereekb/util';
8
+ import { isDefinedAndNotFalse, hasValueOrNotEmpty, BooleanStringKeyArrayUtilityInstance, reduceBooleansWithOrFn, getValueFromGetter, toReadableError, isGetter, setIncludes, maybeSet, isAllowed, expandTreeFunction, flattenTreeToArrayFunction, expandFlattenTreeFunction, mergeObjects, KeyValueTypleValueFilter, defaultForwardFunctionFactory, mergeArrays, filterMaybeValues, mergeArrayOrValueIntoArray, promiseReference, DataIsExpiredError, DataDoesNotExistError, hasNonNullValue, StorageObjectUtility, SHARED_MEMORY_STORAGE } from '@dereekb/util';
9
9
  import { ComponentStore } from '@ngrx/component-store';
10
10
  import { CommonModule, formatDate } from '@angular/common';
11
11
  import * as i1$3 from '@ngrx/effects';
@@ -2248,14 +2248,31 @@ class DbxAngularRouterService {
2248
2248
  }), filterMaybe());
2249
2249
  }
2250
2250
  go(input) {
2251
- const segueRef = asSegueRef(input);
2252
- const ref = segueRef.ref;
2253
- if (isArray(ref)) {
2254
- return this.router.navigate(ref, Object.assign(Object.assign({}, segueRef.refOptions), { queryParams: segueRef.refParams }));
2255
- }
2256
- else {
2257
- return this.router.navigateByUrl(ref, Object.assign({}, segueRef.refOptions));
2258
- }
2251
+ const inputObs = asObservable(input);
2252
+ return firstValueFrom(inputObs).then((inputSegueRef) => {
2253
+ const segueRef = asSegueRef(inputSegueRef);
2254
+ const ref = segueRef.ref;
2255
+ if (isArray(ref)) {
2256
+ return this.router.navigate(ref, Object.assign(Object.assign({}, segueRef.refOptions), { queryParams: segueRef.refParams }));
2257
+ }
2258
+ else {
2259
+ return this.router.navigateByUrl(ref, Object.assign({}, segueRef.refOptions));
2260
+ }
2261
+ });
2262
+ }
2263
+ updateParams(inputParams) {
2264
+ const segueUpdate = combineLatest([this.activatedRoute.params, asObservable(inputParams)]).pipe(map$1(([currentParams, params]) => {
2265
+ const refParams = mergeObjects([currentParams, params], KeyValueTypleValueFilter.UNDEFINED);
2266
+ const segueRef = {
2267
+ ref: this.activatedRoute.pathFromRoot,
2268
+ refParams,
2269
+ refOptions: {
2270
+ replaceUrl: true
2271
+ }
2272
+ };
2273
+ return segueRef;
2274
+ }));
2275
+ return this.go(segueUpdate);
2259
2276
  }
2260
2277
  isActive(segueRef) {
2261
2278
  return false; // TODO!
@@ -2352,12 +2369,31 @@ class DbxUIRouterService {
2352
2369
  return this.uiRouterGlobals.params;
2353
2370
  }
2354
2371
  go(input) {
2355
- const segueRef = asSegueRef(input);
2356
- const params = Object.assign(Object.assign({}, this.uiRouterGlobals.current.params), segueRef.refParams);
2357
- return this.state
2358
- .go(segueRef.ref, params, segueRef.refOptions)
2359
- .then(() => true)
2360
- .catch(() => false);
2372
+ const inputObs = asObservable(input);
2373
+ return firstValueFrom(inputObs).then((inputSegueRef) => {
2374
+ const segueRef = asSegueRef(inputSegueRef);
2375
+ const params = Object.assign(Object.assign({}, this.uiRouterGlobals.current.params), segueRef.refParams);
2376
+ return this.state
2377
+ .go(segueRef.ref, params, segueRef.refOptions)
2378
+ .then(() => true)
2379
+ .catch(() => false);
2380
+ });
2381
+ }
2382
+ updateParams(inputParams) {
2383
+ const segueUpdate = asObservable(inputParams).pipe(map((params) => {
2384
+ const currentParams = this.uiRouterGlobals.params;
2385
+ const refParams = mergeObjects([currentParams, params], KeyValueTypleValueFilter.UNDEFINED);
2386
+ const ref = {
2387
+ ref: '.',
2388
+ refParams,
2389
+ refOptions: {
2390
+ location: 'replace',
2391
+ inherit: true
2392
+ }
2393
+ };
2394
+ return ref;
2395
+ }));
2396
+ return this.go(segueUpdate);
2361
2397
  }
2362
2398
  isActive(input) {
2363
2399
  const segueRef = asSegueRef(input);
@@ -2467,6 +2503,98 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
2467
2503
  type: Directive
2468
2504
  }], ctorParameters: function () { return [{ type: DbxRouterTransitionService }, { type: i0.NgZone }]; } });
2469
2505
 
2506
+ /**
2507
+ * Utility class used for reading a single value from the DbxRouterService.
2508
+ */
2509
+ class DbxRouteParamReaderInstance {
2510
+ constructor(dbxRouterService, defaultParamKey, defaultValue) {
2511
+ this.dbxRouterService = dbxRouterService;
2512
+ this.defaultParamKey = defaultParamKey;
2513
+ this.defaultValue = defaultValue;
2514
+ this._paramKey = new BehaviorSubject(this.defaultParamKey);
2515
+ this.paramKey$ = this._paramKey.asObservable();
2516
+ this._defaultValue = new BehaviorSubject(this.defaultValue);
2517
+ this.paramValue$ = combineLatest([this.paramKey$, this.dbxRouterService.params$]).pipe(map(([key, params]) => {
2518
+ var _a;
2519
+ return (_a = params[key]) !== null && _a !== void 0 ? _a : undefined;
2520
+ }), distinctUntilChanged(), shareReplay(1));
2521
+ this.nextDefaultValue$ = this._defaultValue.pipe(maybeValueFromObservableOrValueGetter(), shareReplay(1));
2522
+ this.defaultValue$ = this._defaultValue.pipe(maybeValueFromObservableOrValueGetter(), shareReplay(1));
2523
+ this.value$ = this.paramValue$.pipe(switchMapToDefault(this.defaultValue$), shareReplay(1));
2524
+ }
2525
+ destroy() {
2526
+ this._paramKey.complete();
2527
+ }
2528
+ get paramKey() {
2529
+ return this._paramKey.value;
2530
+ }
2531
+ set paramKey(paramKey) {
2532
+ this._paramKey.next(paramKey || this.defaultParamKey);
2533
+ }
2534
+ setDefaultValue(defaultValue) {
2535
+ this._defaultValue.next(defaultValue !== null && defaultValue !== void 0 ? defaultValue : this.defaultValue);
2536
+ }
2537
+ }
2538
+
2539
+ const DEFAULT_REDIRECT_INSTANCE_FORWARD_FACTORY = defaultForwardFunctionFactory((value) => of(value == null));
2540
+ /**
2541
+ * Utility class used in conjuction with a DbxRouteParamReaderInstance to redirect when the default param does not equal the
2542
+ */
2543
+ class DbxRouteParamDefaultRedirectInstance {
2544
+ constructor(instance) {
2545
+ this.instance = instance;
2546
+ this._enabled = new BehaviorSubject(true);
2547
+ this._useDefaultFilter = new BehaviorSubject(undefined);
2548
+ this._sub = new SubscriptionObject();
2549
+ }
2550
+ init() {
2551
+ this._sub.subscription = this._enabled
2552
+ .pipe(switchMap((enabled) => {
2553
+ if (enabled) {
2554
+ return this.instance.paramValue$.pipe(switchMapToDefault(this.instance.defaultValue$, (value) => {
2555
+ return this._useDefaultFilter.pipe(switchMap((fn) => DEFAULT_REDIRECT_INSTANCE_FORWARD_FACTORY(fn)(value)));
2556
+ }), filterMaybe(), // do not redirect on MaybeNot values
2557
+ switchMap((defaultValue) => {
2558
+ return this.redirectWithDefaultValue(defaultValue);
2559
+ }));
2560
+ }
2561
+ else {
2562
+ return EMPTY;
2563
+ }
2564
+ }))
2565
+ .subscribe();
2566
+ }
2567
+ destroy() {
2568
+ this._enabled.complete();
2569
+ this._useDefaultFilter.complete();
2570
+ this._sub.destroy();
2571
+ }
2572
+ redirectWithDefaultValue(value) {
2573
+ if (value != null) {
2574
+ // perform a segue once
2575
+ return this.redirectWithValue(value);
2576
+ }
2577
+ else {
2578
+ // do nothing
2579
+ return Promise.resolve(false);
2580
+ }
2581
+ }
2582
+ redirectWithValue(value) {
2583
+ return this.instance.dbxRouterService.updateParams({
2584
+ [this.instance.paramKey]: value
2585
+ });
2586
+ }
2587
+ get enabled() {
2588
+ return this._enabled.value;
2589
+ }
2590
+ set enabled(enabled) {
2591
+ this._enabled.next(enabled);
2592
+ }
2593
+ setUseDefaultFilter(useValueFilter) {
2594
+ this._useDefaultFilter.next(useValueFilter);
2595
+ }
2596
+ }
2597
+
2470
2598
  /**
2471
2599
  * Auth routes configurations for an app.
2472
2600
  */
@@ -4501,5 +4629,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
4501
4629
  * Generated bundle index. Do not edit.
4502
4630
  */
4503
4631
 
4504
- export { APP_ACTION_DISABLED_DIRECTIVE_KEY, APP_ACTION_ENFORCE_MODIFIED_DIRECTIVE_KEY, AbstractActionFilterSourceDirective, AbstractDbxActionValueOnTriggerDirective, AbstractDbxAnchorDirective, AbstractDbxButtonDirective, AbstractDbxFilterMapInstanceDirective, AbstractDbxInjectionDirective, AbstractFilterSourceConnectorDirective, AbstractFilterSourceDirective, AbstractForwardDbxInjectionContextDirective, AbstractIfDirective, AbstractLockSetSubscriptionDirective, AbstractSubscriptionDirective, AbstractTransitionDirective, AbstractTransitionWatcherDirective, ActionContextStore, ActionContextStoreSource, ActionContextStoreSourceMap, AnchorType, DBX_APP_APP_CONTEXT_STATE, DBX_APP_AUTH_ROUTER_EFFECTS_TOKEN, DBX_AUTH_APP_CONTEXT_STATE, DBX_INIT_APP_CONTEXT_STATE, DBX_INJECTION_COMPONENT_DATA, DBX_KNOWN_APP_CONTEXT_STATES, DBX_ONBOARDING_APP_CONTEXT_STATE, DBX_PUBLIC_APP_CONTEXT_STATE, DEFAULT_ACTION_DISABLED_KEY, DEFAULT_ACTION_MAP_WORKING_DISABLED_KEY, DEFAULT_STORAGE_ACCESSOR_FACTORY_TOKEN, DEFAULT_STORAGE_OBJECT_TOKEN, DateDistancePipe, DateFormatDistancePipe, DateFromToTimePipe, DbxActionAutoModifyDirective, DbxActionAutoTriggerDirective, DbxActionButtonDirective, DbxActionButtonTriggerDirective, DbxActionContextBaseSource, DbxActionContextLoggerDirective, DbxActionContextMachine, DbxActionContextMapDirective, DbxActionContextMapDirectiveSourceInstance, DbxActionContextStoreSourceInstance, DbxActionDirective, DbxActionDisabledDirective, DbxActionEnforceModifiedDirective, DbxActionFromMapDirective, DbxActionHandlerDirective, DbxActionHasSuccessDirective, DbxActionIsWorkingDirective, DbxActionMapSourceDirective, DbxActionMapWorkingDisableDirective, DbxActionSourceDirective, DbxActionState, DbxActionSuccessHandlerDirective, DbxActionValueDirective, DbxActionValueOnTriggerInstance, DbxActionValueTriggerDirective, DbxActionWorkInstanceDelegate, DbxAnchor, DbxAngularRouterService, DbxAppAuthRouterEffects, DbxAppAuthRouterModule, DbxAppAuthRouterService, DbxAppAuthRouterStateModule, DbxAppAuthRoutes, DbxAppAuthStateModule, DbxAppAuthStateService, DbxAppContextService, DbxAppContextStateDirective, DbxAppContextStateModule, DbxAuthHasAnyRoleDirective, DbxAuthHasRolesDirective, DbxAuthService, DbxButton, DbxButtonDirective, DbxButtonSegueDirective, DbxCoreActionModule, DbxCoreAngularRouterSegueModule, DbxCoreAuthModule, DbxCoreButtonModule, DbxCoreFilterModule, DbxCoreUIRouterSegueModule, DbxDatePipeModule, DbxFilterMapDirective, DbxFilterMapSourceConnectorDirective, DbxFilterMapSourceDirective, DbxFilterSourceConnectorDirective, DbxFilterSourceDirective, DbxInjectionComponent, DbxInjectionComponentModule, DbxInjectionContext, DbxInjectionContextDirective, DbxInjectionInstance, DbxLoadingButtonDirective, DbxMiscPipeModule, DbxPipesModule, DbxRouterService, DbxRouterTransitionEventType, DbxRouterTransitionService, DbxStorageModule, DbxUIRouterService, FullLocalStorageObject, InstantStorageAccessor, LimitedStorageAccessor, LockSetComponentStore, MemoryStorageObject, MinutesStringPipe, NO_AUTH_USER_IDENTIFIER, PrettyJsonPipe, SecondaryActionContextStoreSource, SimpleStorageAccessor, SimpleStorageAccessorFactory, StorageAccessor, StringStorageAccessor, StringifySimpleStorageAccessorConverter, TimeDistanceCountdownPipe, TimeDistancePipe, ToJsDatePipe, ToMinutesPipe, WrapperSimpleStorageAccessorDelegate, actionContextHasNoErrorAndIsModifiedAndCanTrigger, actionContextIsModifiedAndCanTrigger, actionContextStoreSourceInstanceFactory, actionContextStoreSourcePipe, anchorTypeForAnchor, asSegueRef, asSegueRefString, authRolesSetContainsAllRolesFrom, authRolesSetContainsAnyRoleFrom, authUserIdentifier, canReadyValue, canTriggerAction, canTriggerActionState, checkNgContentWrapperHasContent, dbxActionValueStreamDirective, defaultStorageObjectFactory, enableHasAuthRoleHook, enableHasAuthStateHook, enableIsLoggedInHook, expandClickableAnchorLinkTree, expandClickableAnchorLinkTreeNode, expandClickableAnchorLinkTrees, filterTransitionEvent, filterTransitionSuccess, flattenExpandedClickableAnchorLinkTree, flattenExpandedClickableAnchorLinkTreeToLinks, index as fromDbxAppAuth, index$2 as fromDbxAppContext, goWithRouter, isActionContextDisabled, isActionContextEnabled, isDisabledActionContextState, isIdleActionState, isSegueRef, isWorkingActionState, loadingStateForActionContextState, loadingStateTypeForActionContextState, loadingStateTypeForActionState, loggedInObsFromIsLoggedIn, loggedOutObsFromIsLoggedIn, makeAuthTransitionHook, makeDbxActionContextSourceReference, mapRefStringObsToSegueRefObs, mergeDbxInjectionComponentConfigs, index$1 as onDbxAppAuth, index$3 as onDbxAppContext, pipeActionStore, provideActionStoreSource, provideDbxAnchor, provideDbxButton, provideDbxInjectionContext, provideFilterSource, provideFilterSourceConnector, provideSecondaryActionStoreSource, redirectBasedOnAuthUserState, refStringToSegueRef, safeDetectChanges, safeMarkForCheck, safeUseCdRef, successTransition, tapDetectChanges, useActionStore };
4632
+ export { APP_ACTION_DISABLED_DIRECTIVE_KEY, APP_ACTION_ENFORCE_MODIFIED_DIRECTIVE_KEY, AbstractActionFilterSourceDirective, AbstractDbxActionValueOnTriggerDirective, AbstractDbxAnchorDirective, AbstractDbxButtonDirective, AbstractDbxFilterMapInstanceDirective, AbstractDbxInjectionDirective, AbstractFilterSourceConnectorDirective, AbstractFilterSourceDirective, AbstractForwardDbxInjectionContextDirective, AbstractIfDirective, AbstractLockSetSubscriptionDirective, AbstractSubscriptionDirective, AbstractTransitionDirective, AbstractTransitionWatcherDirective, ActionContextStore, ActionContextStoreSource, ActionContextStoreSourceMap, AnchorType, DBX_APP_APP_CONTEXT_STATE, DBX_APP_AUTH_ROUTER_EFFECTS_TOKEN, DBX_AUTH_APP_CONTEXT_STATE, DBX_INIT_APP_CONTEXT_STATE, DBX_INJECTION_COMPONENT_DATA, DBX_KNOWN_APP_CONTEXT_STATES, DBX_ONBOARDING_APP_CONTEXT_STATE, DBX_PUBLIC_APP_CONTEXT_STATE, DEFAULT_ACTION_DISABLED_KEY, DEFAULT_ACTION_MAP_WORKING_DISABLED_KEY, DEFAULT_STORAGE_ACCESSOR_FACTORY_TOKEN, DEFAULT_STORAGE_OBJECT_TOKEN, DateDistancePipe, DateFormatDistancePipe, DateFromToTimePipe, DbxActionAutoModifyDirective, DbxActionAutoTriggerDirective, DbxActionButtonDirective, DbxActionButtonTriggerDirective, DbxActionContextBaseSource, DbxActionContextLoggerDirective, DbxActionContextMachine, DbxActionContextMapDirective, DbxActionContextMapDirectiveSourceInstance, DbxActionContextStoreSourceInstance, DbxActionDirective, DbxActionDisabledDirective, DbxActionEnforceModifiedDirective, DbxActionFromMapDirective, DbxActionHandlerDirective, DbxActionHasSuccessDirective, DbxActionIsWorkingDirective, DbxActionMapSourceDirective, DbxActionMapWorkingDisableDirective, DbxActionSourceDirective, DbxActionState, DbxActionSuccessHandlerDirective, DbxActionValueDirective, DbxActionValueOnTriggerInstance, DbxActionValueTriggerDirective, DbxActionWorkInstanceDelegate, DbxAnchor, DbxAngularRouterService, DbxAppAuthRouterEffects, DbxAppAuthRouterModule, DbxAppAuthRouterService, DbxAppAuthRouterStateModule, DbxAppAuthRoutes, DbxAppAuthStateModule, DbxAppAuthStateService, DbxAppContextService, DbxAppContextStateDirective, DbxAppContextStateModule, DbxAuthHasAnyRoleDirective, DbxAuthHasRolesDirective, DbxAuthService, DbxButton, DbxButtonDirective, DbxButtonSegueDirective, DbxCoreActionModule, DbxCoreAngularRouterSegueModule, DbxCoreAuthModule, DbxCoreButtonModule, DbxCoreFilterModule, DbxCoreUIRouterSegueModule, DbxDatePipeModule, DbxFilterMapDirective, DbxFilterMapSourceConnectorDirective, DbxFilterMapSourceDirective, DbxFilterSourceConnectorDirective, DbxFilterSourceDirective, DbxInjectionComponent, DbxInjectionComponentModule, DbxInjectionContext, DbxInjectionContextDirective, DbxInjectionInstance, DbxLoadingButtonDirective, DbxMiscPipeModule, DbxPipesModule, DbxRouteParamDefaultRedirectInstance, DbxRouteParamReaderInstance, DbxRouterService, DbxRouterTransitionEventType, DbxRouterTransitionService, DbxStorageModule, DbxUIRouterService, FullLocalStorageObject, InstantStorageAccessor, LimitedStorageAccessor, LockSetComponentStore, MemoryStorageObject, MinutesStringPipe, NO_AUTH_USER_IDENTIFIER, PrettyJsonPipe, SecondaryActionContextStoreSource, SimpleStorageAccessor, SimpleStorageAccessorFactory, StorageAccessor, StringStorageAccessor, StringifySimpleStorageAccessorConverter, TimeDistanceCountdownPipe, TimeDistancePipe, ToJsDatePipe, ToMinutesPipe, WrapperSimpleStorageAccessorDelegate, actionContextHasNoErrorAndIsModifiedAndCanTrigger, actionContextIsModifiedAndCanTrigger, actionContextStoreSourceInstanceFactory, actionContextStoreSourcePipe, anchorTypeForAnchor, asSegueRef, asSegueRefString, authRolesSetContainsAllRolesFrom, authRolesSetContainsAnyRoleFrom, authUserIdentifier, canReadyValue, canTriggerAction, canTriggerActionState, checkNgContentWrapperHasContent, dbxActionValueStreamDirective, defaultStorageObjectFactory, enableHasAuthRoleHook, enableHasAuthStateHook, enableIsLoggedInHook, expandClickableAnchorLinkTree, expandClickableAnchorLinkTreeNode, expandClickableAnchorLinkTrees, filterTransitionEvent, filterTransitionSuccess, flattenExpandedClickableAnchorLinkTree, flattenExpandedClickableAnchorLinkTreeToLinks, index as fromDbxAppAuth, index$2 as fromDbxAppContext, goWithRouter, isActionContextDisabled, isActionContextEnabled, isDisabledActionContextState, isIdleActionState, isSegueRef, isWorkingActionState, loadingStateForActionContextState, loadingStateTypeForActionContextState, loadingStateTypeForActionState, loggedInObsFromIsLoggedIn, loggedOutObsFromIsLoggedIn, makeAuthTransitionHook, makeDbxActionContextSourceReference, mapRefStringObsToSegueRefObs, mergeDbxInjectionComponentConfigs, index$1 as onDbxAppAuth, index$3 as onDbxAppContext, pipeActionStore, provideActionStoreSource, provideDbxAnchor, provideDbxButton, provideDbxInjectionContext, provideFilterSource, provideFilterSourceConnector, provideSecondaryActionStoreSource, redirectBasedOnAuthUserState, refStringToSegueRef, safeDetectChanges, safeMarkForCheck, safeUseCdRef, successTransition, tapDetectChanges, useActionStore };
4505
4633
  //# sourceMappingURL=dereekb-dbx-core.mjs.map