@dereekb/dbx-core 0.0.1
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.
- package/README.md +7 -0
- package/dereekb-dbx-core.d.ts +5 -0
- package/esm2020/dereekb-dbx-core.mjs +5 -0
- package/esm2020/index.mjs +2 -0
- package/esm2020/lib/action/action.handler.mjs +140 -0
- package/esm2020/lib/action/action.holder.mjs +50 -0
- package/esm2020/lib/action/action.machine.mjs +37 -0
- package/esm2020/lib/action/action.mjs +51 -0
- package/esm2020/lib/action/action.module.mjs +38 -0
- package/esm2020/lib/action/action.store.mjs +188 -0
- package/esm2020/lib/action/action.store.source.mjs +149 -0
- package/esm2020/lib/action/directive/auto/action.automodify.directive.mjs +53 -0
- package/esm2020/lib/action/directive/auto/action.autotrigger.directive.mjs +131 -0
- package/esm2020/lib/action/directive/auto/action.autotrigger.value.directive.mjs +79 -0
- package/esm2020/lib/action/directive/auto/index.mjs +4 -0
- package/esm2020/lib/action/directive/context/action.component.mjs +18 -0
- package/esm2020/lib/action/directive/context/action.directive.mjs +33 -0
- package/esm2020/lib/action/directive/context/action.source.directive.mjs +40 -0
- package/esm2020/lib/action/directive/context/index.mjs +4 -0
- package/esm2020/lib/action/directive/debug/action.logger.directive.mjs +30 -0
- package/esm2020/lib/action/directive/debug/index.mjs +2 -0
- package/esm2020/lib/action/directive/index.mjs +6 -0
- package/esm2020/lib/action/directive/map/action.map.directive.mjs +74 -0
- package/esm2020/lib/action/directive/map/action.map.key.directive.mjs +40 -0
- package/esm2020/lib/action/directive/map/action.map.mjs +6 -0
- package/esm2020/lib/action/directive/map/action.map.source.directive.mjs +49 -0
- package/esm2020/lib/action/directive/map/action.map.working.disable.directive.mjs +41 -0
- package/esm2020/lib/action/directive/map/index.mjs +6 -0
- package/esm2020/lib/action/directive/state/action.disabled.directive.mjs +49 -0
- package/esm2020/lib/action/directive/state/action.disabled.modified.directive.mjs +35 -0
- package/esm2020/lib/action/directive/state/action.handler.directive.mjs +55 -0
- package/esm2020/lib/action/directive/state/action.success.component.mjs +50 -0
- package/esm2020/lib/action/directive/state/action.success.directive.mjs +48 -0
- package/esm2020/lib/action/directive/state/action.value.directive.mjs +52 -0
- package/esm2020/lib/action/directive/state/action.working.component.mjs +32 -0
- package/esm2020/lib/action/directive/state/index.mjs +8 -0
- package/esm2020/lib/action/index.mjs +10 -0
- package/esm2020/lib/action/snackbar/index.mjs +3 -0
- package/esm2020/lib/action/snackbar/snackbar.mjs +24 -0
- package/esm2020/lib/button/action/action.button.directive.mjs +46 -0
- package/esm2020/lib/button/action/action.button.trigger.directive.mjs +36 -0
- package/esm2020/lib/button/action/index.mjs +3 -0
- package/esm2020/lib/button/button.directive.mjs +109 -0
- package/esm2020/lib/button/button.loading.directive.mjs +43 -0
- package/esm2020/lib/button/button.mjs +9 -0
- package/esm2020/lib/button/button.module.mjs +40 -0
- package/esm2020/lib/button/index.mjs +7 -0
- package/esm2020/lib/button/router/button.segue.directive.mjs +43 -0
- package/esm2020/lib/button/router/index.mjs +2 -0
- package/esm2020/lib/index.mjs +9 -0
- package/esm2020/lib/injected/index.mjs +6 -0
- package/esm2020/lib/injected/injected.component.mjs +34 -0
- package/esm2020/lib/injected/injected.component.module.mjs +26 -0
- package/esm2020/lib/injected/injected.directive.mjs +32 -0
- package/esm2020/lib/injected/injected.instance.mjs +101 -0
- package/esm2020/lib/injected/injected.mjs +2 -0
- package/esm2020/lib/pipe/date/date.pipe.module.mjs +54 -0
- package/esm2020/lib/pipe/date/datedistance.pipe.mjs +42 -0
- package/esm2020/lib/pipe/date/dateformatdistance.pipe.mjs +37 -0
- package/esm2020/lib/pipe/date/datefromtoformat.pipe.mjs +35 -0
- package/esm2020/lib/pipe/date/index.mjs +9 -0
- package/esm2020/lib/pipe/date/minutesstring.pipe.mjs +32 -0
- package/esm2020/lib/pipe/date/timedistance.pipe.mjs +49 -0
- package/esm2020/lib/pipe/date/tojsdate.pipe.mjs +18 -0
- package/esm2020/lib/pipe/date/tominutes.pipe.mjs +17 -0
- package/esm2020/lib/pipe/index.mjs +2 -0
- package/esm2020/lib/router/anchor/anchor.directive.mjs +40 -0
- package/esm2020/lib/router/anchor/anchor.mjs +35 -0
- package/esm2020/lib/router/anchor/clickable.mjs +2 -0
- package/esm2020/lib/router/anchor/index.mjs +4 -0
- package/esm2020/lib/router/index.mjs +4 -0
- package/esm2020/lib/router/router/index.mjs +4 -0
- package/esm2020/lib/router/router/provider/angular/angular.router.service.mjs +51 -0
- package/esm2020/lib/router/router/provider/angular/angular.router.service.module.mjs +30 -0
- package/esm2020/lib/router/router/provider/angular/index.mjs +3 -0
- package/esm2020/lib/router/router/provider/index.mjs +3 -0
- package/esm2020/lib/router/router/provider/uirouter/index.mjs +3 -0
- package/esm2020/lib/router/router/provider/uirouter/uirouter.router.service.mjs +39 -0
- package/esm2020/lib/router/router/provider/uirouter/uirouter.router.service.module.mjs +31 -0
- package/esm2020/lib/router/router/service/index.mjs +3 -0
- package/esm2020/lib/router/router/service/router.service.mjs +6 -0
- package/esm2020/lib/router/router/service/router.transition.service.mjs +6 -0
- package/esm2020/lib/router/router/transition/index.mjs +3 -0
- package/esm2020/lib/router/router/transition/transition.mjs +12 -0
- package/esm2020/lib/router/router/transition/transition.watcher.directive.mjs +35 -0
- package/esm2020/lib/router/segue.mjs +8 -0
- package/esm2020/lib/storage/index.mjs +9 -0
- package/esm2020/lib/storage/storage.accessor.mjs +16 -0
- package/esm2020/lib/storage/storage.accessor.simple.factory.mjs +33 -0
- package/esm2020/lib/storage/storage.accessor.simple.mjs +161 -0
- package/esm2020/lib/storage/storage.accessor.string.mjs +50 -0
- package/esm2020/lib/storage/storage.di.mjs +4 -0
- package/esm2020/lib/storage/storage.module.mjs +37 -0
- package/esm2020/lib/storage/storage.object.localstorage.mjs +46 -0
- package/esm2020/lib/storage/storage.object.memory.mjs +17 -0
- package/esm2020/lib/subscription/index.mjs +2 -0
- package/esm2020/lib/subscription/subscription.directive.mjs +46 -0
- package/esm2020/lib/util/index.mjs +2 -0
- package/esm2020/lib/util/view.mjs +34 -0
- package/fesm2015/dereekb-dbx-core.mjs +2875 -0
- package/fesm2015/dereekb-dbx-core.mjs.map +1 -0
- package/fesm2020/dereekb-dbx-core.mjs +2856 -0
- package/fesm2020/dereekb-dbx-core.mjs.map +1 -0
- package/index.d.ts +1 -0
- package/lib/action/action.d.ts +43 -0
- package/lib/action/action.handler.d.ts +73 -0
- package/lib/action/action.holder.d.ts +28 -0
- package/lib/action/action.machine.d.ts +23 -0
- package/lib/action/action.module.d.ts +25 -0
- package/lib/action/action.store.d.ts +147 -0
- package/lib/action/action.store.source.d.ts +72 -0
- package/lib/action/directive/auto/action.automodify.directive.d.ts +15 -0
- package/lib/action/directive/auto/action.autotrigger.directive.d.ts +54 -0
- package/lib/action/directive/auto/action.autotrigger.value.directive.d.ts +25 -0
- package/lib/action/directive/auto/index.d.ts +3 -0
- package/lib/action/directive/context/action.component.d.ts +6 -0
- package/lib/action/directive/context/action.directive.d.ts +13 -0
- package/lib/action/directive/context/action.source.directive.d.ts +16 -0
- package/lib/action/directive/context/index.d.ts +3 -0
- package/lib/action/directive/debug/action.logger.directive.d.ts +14 -0
- package/lib/action/directive/debug/index.d.ts +1 -0
- package/lib/action/directive/index.d.ts +5 -0
- package/lib/action/directive/map/action.map.d.ts +13 -0
- package/lib/action/directive/map/action.map.directive.d.ts +35 -0
- package/lib/action/directive/map/action.map.key.directive.d.ts +20 -0
- package/lib/action/directive/map/action.map.source.directive.d.ts +20 -0
- package/lib/action/directive/map/action.map.working.disable.directive.d.ts +21 -0
- package/lib/action/directive/map/index.d.ts +5 -0
- package/lib/action/directive/state/action.disabled.directive.d.ts +20 -0
- package/lib/action/directive/state/action.disabled.modified.directive.d.ts +16 -0
- package/lib/action/directive/state/action.handler.directive.d.ts +22 -0
- package/lib/action/directive/state/action.success.component.d.ts +15 -0
- package/lib/action/directive/state/action.success.directive.d.ts +24 -0
- package/lib/action/directive/state/action.value.directive.d.ts +22 -0
- package/lib/action/directive/state/action.working.component.d.ts +12 -0
- package/lib/action/directive/state/index.d.ts +7 -0
- package/lib/action/index.d.ts +9 -0
- package/lib/action/snackbar/index.d.ts +1 -0
- package/lib/action/snackbar/snackbar.d.ts +50 -0
- package/lib/button/action/action.button.directive.d.ts +18 -0
- package/lib/button/action/action.button.trigger.directive.d.ts +17 -0
- package/lib/button/action/index.d.ts +2 -0
- package/lib/button/button.d.ts +26 -0
- package/lib/button/button.directive.d.ts +52 -0
- package/lib/button/button.loading.directive.d.ts +21 -0
- package/lib/button/button.module.d.ts +11 -0
- package/lib/button/index.d.ts +6 -0
- package/lib/button/router/button.segue.directive.d.ts +18 -0
- package/lib/button/router/index.d.ts +1 -0
- package/lib/index.d.ts +8 -0
- package/lib/injected/index.d.ts +5 -0
- package/lib/injected/injected.component.d.ts +15 -0
- package/lib/injected/injected.component.module.d.ts +8 -0
- package/lib/injected/injected.d.ts +26 -0
- package/lib/injected/injected.directive.d.ts +17 -0
- package/lib/injected/injected.instance.d.ts +29 -0
- package/lib/pipe/date/date.pipe.module.d.ts +13 -0
- package/lib/pipe/date/datedistance.pipe.d.ts +8 -0
- package/lib/pipe/date/dateformatdistance.pipe.d.ts +13 -0
- package/lib/pipe/date/datefromtoformat.pipe.d.ts +14 -0
- package/lib/pipe/date/index.d.ts +8 -0
- package/lib/pipe/date/minutesstring.pipe.d.ts +8 -0
- package/lib/pipe/date/timedistance.pipe.d.ts +13 -0
- package/lib/pipe/date/tojsdate.pipe.d.ts +9 -0
- package/lib/pipe/date/tominutes.pipe.d.ts +7 -0
- package/lib/pipe/index.d.ts +1 -0
- package/lib/router/anchor/anchor.d.ts +31 -0
- package/lib/router/anchor/anchor.directive.d.ts +20 -0
- package/lib/router/anchor/clickable.d.ts +17 -0
- package/lib/router/anchor/index.d.ts +3 -0
- package/lib/router/index.d.ts +3 -0
- package/lib/router/router/index.d.ts +3 -0
- package/lib/router/router/provider/angular/angular.router.service.d.ts +17 -0
- package/lib/router/router/provider/angular/angular.router.service.module.d.ts +8 -0
- package/lib/router/router/provider/angular/index.d.ts +2 -0
- package/lib/router/router/provider/index.d.ts +2 -0
- package/lib/router/router/provider/uirouter/index.d.ts +2 -0
- package/lib/router/router/provider/uirouter/uirouter.router.service.d.ts +19 -0
- package/lib/router/router/provider/uirouter/uirouter.router.service.module.d.ts +8 -0
- package/lib/router/router/service/index.d.ts +2 -0
- package/lib/router/router/service/router.service.d.ts +12 -0
- package/lib/router/router/service/router.transition.service.d.ts +11 -0
- package/lib/router/router/transition/index.d.ts +2 -0
- package/lib/router/router/transition/transition.d.ts +13 -0
- package/lib/router/router/transition/transition.watcher.directive.d.ts +18 -0
- package/lib/router/segue.d.ts +28 -0
- package/lib/storage/index.d.ts +8 -0
- package/lib/storage/storage.accessor.d.ts +35 -0
- package/lib/storage/storage.accessor.simple.d.ts +75 -0
- package/lib/storage/storage.accessor.simple.factory.d.ts +18 -0
- package/lib/storage/storage.accessor.string.d.ts +16 -0
- package/lib/storage/storage.di.d.ts +3 -0
- package/lib/storage/storage.module.d.ts +10 -0
- package/lib/storage/storage.object.localstorage.d.ts +16 -0
- package/lib/storage/storage.object.memory.d.ts +9 -0
- package/lib/subscription/index.d.ts +1 -0
- package/lib/subscription/subscription.directive.d.ts +25 -0
- package/lib/util/index.d.ts +1 -0
- package/lib/util/view.d.ts +22 -0
- package/package.json +52 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2thYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9yb3V0ZXIvYW5jaG9yL2NsaWNrYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF5YmUgfSBmcm9tIFwiQGRlcmVla2IvdXRpbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENsaWNrYWJsZUZ1bmN0aW9uIHtcbiAgb25DbGljaz86IChldmVudD86IE1heWJlPE1vdXNlRXZlbnQ+KSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjbGlja2FibGUgaHJlZi91cmwgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbGlja2FibGVVcmwge1xuICAvKipcbiAgICogaHJlZiB1cmxcbiAgICovXG4gIHVybD86IHN0cmluZztcbiAgLyoqXG4gICAqIGhyZWYgdGFyZ2V0IGF0dHJpYnV0ZS5cbiAgICovXG4gIHRhcmdldD86IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './anchor.directive';
|
|
2
|
+
export * from './anchor';
|
|
3
|
+
export * from './clickable';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3JvdXRlci9hbmNob3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYW5jaG9yLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2FuY2hvcic7XG5leHBvcnQgKiBmcm9tICcuL2NsaWNrYWJsZSc7XG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './anchor';
|
|
2
|
+
export * from './router';
|
|
3
|
+
export * from './segue';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3JvdXRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYW5jaG9yJztcbmV4cG9ydCAqIGZyb20gJy4vcm91dGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc2VndWUnO1xuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './provider';
|
|
2
|
+
export * from './transition';
|
|
3
|
+
export * from './service';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3JvdXRlci9yb3V0ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNpdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2UnO1xuIl19
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { filterMaybe } from '@dereekb/rxjs';
|
|
2
|
+
import { ActivatedRoute, NavigationEnd, NavigationStart, Router } from '@angular/router';
|
|
3
|
+
import { Injectable } from "@angular/core";
|
|
4
|
+
import { isArray } from "class-validator";
|
|
5
|
+
import { DbNgxRouterTransitionEventType } from "../../transition/transition";
|
|
6
|
+
import { map } from "rxjs/operators";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/router";
|
|
9
|
+
/**
|
|
10
|
+
* AngularRouter implementation of DbNgxRouterService and DbNgxRouterTransitionService.
|
|
11
|
+
*/
|
|
12
|
+
export class DbNgxAngularRouterService {
|
|
13
|
+
constructor(router, activatedRoute) {
|
|
14
|
+
this.router = router;
|
|
15
|
+
this.activatedRoute = activatedRoute;
|
|
16
|
+
this.transitions$ = this.router.events.pipe(map((x) => {
|
|
17
|
+
let event;
|
|
18
|
+
if (x instanceof NavigationStart) {
|
|
19
|
+
event = {
|
|
20
|
+
type: DbNgxRouterTransitionEventType.START
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
else if (x instanceof NavigationEnd) {
|
|
24
|
+
event = {
|
|
25
|
+
type: DbNgxRouterTransitionEventType.SUCCESS
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
return event;
|
|
29
|
+
}), filterMaybe());
|
|
30
|
+
}
|
|
31
|
+
go(segueRef) {
|
|
32
|
+
let ref = segueRef.ref;
|
|
33
|
+
if (isArray(ref)) {
|
|
34
|
+
return this.router.navigate(ref, {
|
|
35
|
+
...segueRef.refOptions,
|
|
36
|
+
queryParams: segueRef.refParams
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
return this.router.navigateByUrl(ref, {
|
|
41
|
+
...segueRef.refOptions
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
DbNgxAngularRouterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxAngularRouterService, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
47
|
+
DbNgxAngularRouterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxAngularRouterService });
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxAngularRouterService, decorators: [{
|
|
49
|
+
type: Injectable
|
|
50
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }]; } });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5yb3V0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvcm91dGVyL3JvdXRlci9wcm92aWRlci9hbmd1bGFyL2FuZ3VsYXIucm91dGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc1QyxPQUFPLEVBQUUsY0FBYyxFQUE2QixhQUFhLEVBQW9CLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0SSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQThCLDhCQUE4QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekcsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHckM7O0dBRUc7QUFFSCxNQUFNLE9BQU8seUJBQXlCO0lBcUJwQyxZQUFxQixNQUFjLEVBQVcsY0FBOEI7UUFBdkQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFXLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQW5CbkUsaUJBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQzdDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1IsSUFBSSxLQUF3QyxDQUFDO1lBRTdDLElBQUksQ0FBQyxZQUFZLGVBQWUsRUFBRTtnQkFDaEMsS0FBSyxHQUFHO29CQUNOLElBQUksRUFBRSw4QkFBOEIsQ0FBQyxLQUFLO2lCQUMzQyxDQUFDO2FBQ0g7aUJBQU0sSUFBSSxDQUFDLFlBQVksYUFBYSxFQUFFO2dCQUNyQyxLQUFLLEdBQUc7b0JBQ04sSUFBSSxFQUFFLDhCQUE4QixDQUFDLE9BQU87aUJBQzdDLENBQUM7YUFDSDtZQUVELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxFQUFFLENBQ2QsQ0FBQztJQUU4RSxDQUFDO0lBRWpGLEVBQUUsQ0FBQyxRQUFnRTtRQUNqRSxJQUFJLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDO1FBRXZCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFO2dCQUMvQixHQUFHLFFBQVEsQ0FBQyxVQUFVO2dCQUN0QixXQUFXLEVBQUUsUUFBUSxDQUFDLFNBQVM7YUFDaEMsQ0FBQyxDQUFBO1NBQ0g7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFO2dCQUNwQyxHQUFHLFFBQVEsQ0FBQyxVQUFVO2FBQ3ZCLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7c0hBcENVLHlCQUF5QjswSEFBekIseUJBQXlCOzJGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaWx0ZXJNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgRGJOZ3hSb3V0ZXJTZXJ2aWNlLCBEYk5neFJvdXRlclRyYW5zaXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZSc7XG5pbXBvcnQgeyBTZWd1ZVJlZiB9IGZyb20gXCIuLi8uLi8uLi9zZWd1ZVwiO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnMsIE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25FeHRyYXMsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gXCJjbGFzcy12YWxpZGF0b3JcIjtcbmltcG9ydCB7IERiTmd4Um91dGVyVHJhbnNpdGlvbkV2ZW50LCBEYk5neFJvdXRlclRyYW5zaXRpb25FdmVudFR5cGUgfSBmcm9tIFwiLi4vLi4vdHJhbnNpdGlvbi90cmFuc2l0aW9uXCI7XG5pbXBvcnQgeyBtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbi8qKlxuICogQW5ndWxhclJvdXRlciBpbXBsZW1lbnRhdGlvbiBvZiBEYk5neFJvdXRlclNlcnZpY2UgYW5kIERiTmd4Um91dGVyVHJhbnNpdGlvblNlcnZpY2UuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYk5neEFuZ3VsYXJSb3V0ZXJTZXJ2aWNlIGltcGxlbWVudHMgRGJOZ3hSb3V0ZXJTZXJ2aWNlLCBEYk5neFJvdXRlclRyYW5zaXRpb25TZXJ2aWNlIHtcblxuICByZWFkb25seSB0cmFuc2l0aW9ucyQgPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcbiAgICBtYXAoKHgpID0+IHtcbiAgICAgIGxldCBldmVudDogTWF5YmU8RGJOZ3hSb3V0ZXJUcmFuc2l0aW9uRXZlbnQ+O1xuXG4gICAgICBpZiAoeCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xuICAgICAgICBldmVudCA9IHtcbiAgICAgICAgICB0eXBlOiBEYk5neFJvdXRlclRyYW5zaXRpb25FdmVudFR5cGUuU1RBUlRcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSBpZiAoeCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgZXZlbnQgPSB7XG4gICAgICAgICAgdHlwZTogRGJOZ3hSb3V0ZXJUcmFuc2l0aW9uRXZlbnRUeXBlLlNVQ0NFU1NcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGV2ZW50O1xuICAgIH0pLFxuICAgIGZpbHRlck1heWJlKClcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSByb3V0ZXI6IFJvdXRlciwgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7IH1cblxuICBnbyhzZWd1ZVJlZjogU2VndWVSZWY8TmF2aWdhdGlvbkV4dHJhcyB8IE5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnM+KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgbGV0IHJlZiA9IHNlZ3VlUmVmLnJlZjtcblxuICAgIGlmIChpc0FycmF5KHJlZikpIHtcbiAgICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShyZWYsIHtcbiAgICAgICAgLi4uc2VndWVSZWYucmVmT3B0aW9ucyxcbiAgICAgICAgcXVlcnlQYXJhbXM6IHNlZ3VlUmVmLnJlZlBhcmFtc1xuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwocmVmLCB7XG4gICAgICAgIC4uLnNlZ3VlUmVmLnJlZk9wdGlvbnNcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { DbNgxRouterService, DbNgxRouterTransitionService } from '../../service';
|
|
3
|
+
import { DbNgxAngularRouterService } from './angular.router.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class DbNgxCoreAngularRouterSegueModule {
|
|
6
|
+
static forRoot() {
|
|
7
|
+
return {
|
|
8
|
+
ngModule: DbNgxCoreAngularRouterSegueModule,
|
|
9
|
+
providers: [
|
|
10
|
+
DbNgxAngularRouterService,
|
|
11
|
+
{
|
|
12
|
+
provide: DbNgxRouterService,
|
|
13
|
+
useExisting: DbNgxAngularRouterService
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
provide: DbNgxRouterTransitionService,
|
|
17
|
+
useExisting: DbNgxAngularRouterService
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
DbNgxCoreAngularRouterSegueModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxCoreAngularRouterSegueModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
24
|
+
DbNgxCoreAngularRouterSegueModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxCoreAngularRouterSegueModule });
|
|
25
|
+
DbNgxCoreAngularRouterSegueModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxCoreAngularRouterSegueModule });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxCoreAngularRouterSegueModule, decorators: [{
|
|
27
|
+
type: NgModule,
|
|
28
|
+
args: [{}]
|
|
29
|
+
}] });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5yb3V0ZXIuc2VydmljZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3JvdXRlci9yb3V0ZXIvcHJvdmlkZXIvYW5ndWxhci9hbmd1bGFyLnJvdXRlci5zZXJ2aWNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBR3JFLE1BQU0sT0FBTyxpQ0FBaUM7SUFFNUMsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLGlDQUFpQztZQUMzQyxTQUFTLEVBQUU7Z0JBQ1QseUJBQXlCO2dCQUN6QjtvQkFDRSxPQUFPLEVBQUUsa0JBQWtCO29CQUMzQixXQUFXLEVBQUUseUJBQXlCO2lCQUN2QztnQkFDRDtvQkFDRSxPQUFPLEVBQUUsNEJBQTRCO29CQUNyQyxXQUFXLEVBQUUseUJBQXlCO2lCQUN2QzthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7OzhIQWpCVSxpQ0FBaUM7K0hBQWpDLGlDQUFpQzsrSEFBakMsaUNBQWlDOzJGQUFqQyxpQ0FBaUM7a0JBRDdDLFFBQVE7bUJBQUMsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYk5neFJvdXRlclNlcnZpY2UsIERiTmd4Um91dGVyVHJhbnNpdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlJztcbmltcG9ydCB7IERiTmd4QW5ndWxhclJvdXRlclNlcnZpY2UgfSBmcm9tICcuL2FuZ3VsYXIucm91dGVyLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe30pXG5leHBvcnQgY2xhc3MgRGJOZ3hDb3JlQW5ndWxhclJvdXRlclNlZ3VlTW9kdWxlIHtcblxuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPERiTmd4Q29yZUFuZ3VsYXJSb3V0ZXJTZWd1ZU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogRGJOZ3hDb3JlQW5ndWxhclJvdXRlclNlZ3VlTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIERiTmd4QW5ndWxhclJvdXRlclNlcnZpY2UsXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBEYk5neFJvdXRlclNlcnZpY2UsXG4gICAgICAgICAgdXNlRXhpc3Rpbmc6IERiTmd4QW5ndWxhclJvdXRlclNlcnZpY2VcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IERiTmd4Um91dGVyVHJhbnNpdGlvblNlcnZpY2UsXG4gICAgICAgICAgdXNlRXhpc3Rpbmc6IERiTmd4QW5ndWxhclJvdXRlclNlcnZpY2VcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cblxufVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './angular.router.service';
|
|
2
|
+
export * from './angular.router.service.module';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3JvdXRlci9yb3V0ZXIvcHJvdmlkZXIvYW5ndWxhci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsaUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FuZ3VsYXIucm91dGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hbmd1bGFyLnJvdXRlci5zZXJ2aWNlLm1vZHVsZSc7XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './angular';
|
|
2
|
+
export * from './uirouter';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3JvdXRlci9yb3V0ZXIvcHJvdmlkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FuZ3VsYXInO1xuZXhwb3J0ICogZnJvbSAnLi91aXJvdXRlcic7XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './uirouter.router.service';
|
|
2
|
+
export * from './uirouter.router.service.module';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3JvdXRlci9yb3V0ZXIvcHJvdmlkZXIvdWlyb3V0ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi91aXJvdXRlci5yb3V0ZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3Vpcm91dGVyLnJvdXRlci5zZXJ2aWNlLm1vZHVsZSc7XG4iXX0=
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Subject } from 'rxjs';
|
|
2
|
+
import { StateService, UIRouterGlobals, TransitionService } from '@uirouter/core';
|
|
3
|
+
import { Injectable } from "@angular/core";
|
|
4
|
+
import { DbNgxRouterTransitionEventType } from '../../transition/transition';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@uirouter/core";
|
|
7
|
+
/**
|
|
8
|
+
* UIRouter implementation of DbNgxRouterService and DbNgxRouterTransitionService.
|
|
9
|
+
*/
|
|
10
|
+
export class DbNgxUIRouterService {
|
|
11
|
+
constructor(state, transitionService, uiRouterGlobals) {
|
|
12
|
+
this.state = state;
|
|
13
|
+
this.transitionService = transitionService;
|
|
14
|
+
this.uiRouterGlobals = uiRouterGlobals;
|
|
15
|
+
this._transitions = new Subject();
|
|
16
|
+
this.transitions$ = this._transitions.asObservable();
|
|
17
|
+
const emitTransition = (type) => {
|
|
18
|
+
this._transitions.next({
|
|
19
|
+
type
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
this.transitionService.onStart({}, () => {
|
|
23
|
+
emitTransition(DbNgxRouterTransitionEventType.START);
|
|
24
|
+
});
|
|
25
|
+
this.transitionService.onSuccess({}, () => {
|
|
26
|
+
emitTransition(DbNgxRouterTransitionEventType.SUCCESS);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
go(segueRef) {
|
|
30
|
+
const params = { ...this.uiRouterGlobals.current.params, ...segueRef.refParams };
|
|
31
|
+
return this.state.go(segueRef.ref, params, segueRef.refOptions).then(_ => true).catch(_ => false);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
DbNgxUIRouterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxUIRouterService, deps: [{ token: i1.StateService }, { token: i1.TransitionService }, { token: i1.UIRouterGlobals }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
35
|
+
DbNgxUIRouterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxUIRouterService });
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxUIRouterService, decorators: [{
|
|
37
|
+
type: Injectable
|
|
38
|
+
}], ctorParameters: function () { return [{ type: i1.StateService }, { type: i1.TransitionService }, { type: i1.UIRouterGlobals }]; } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlyb3V0ZXIucm91dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3JvdXRlci9yb3V0ZXIvcHJvdmlkZXIvdWlyb3V0ZXIvdWlyb3V0ZXIucm91dGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBOEIsOEJBQThCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBRXpHOztHQUVHO0FBRUgsTUFBTSxPQUFPLG9CQUFvQjtJQUsvQixZQUFxQixLQUFtQixFQUFXLGlCQUFvQyxFQUFXLGVBQWdDO1FBQTdHLFVBQUssR0FBTCxLQUFLLENBQWM7UUFBVyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQVcsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBSGpILGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQThCLENBQUM7UUFDakUsaUJBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBSXZELE1BQU0sY0FBYyxHQUFHLENBQUMsSUFBb0MsRUFBRSxFQUFFO1lBQzlELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO2dCQUNyQixJQUFJO2FBQ0wsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFBO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFO1lBQ3RDLGNBQWMsQ0FBQyw4QkFBOEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQVEsQ0FBQztRQUVWLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRTtZQUN4QyxjQUFjLENBQUMsOEJBQThCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFRLENBQUM7SUFFWixDQUFDO0lBRUQsRUFBRSxDQUFDLFFBQXFDO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakYsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEcsQ0FBQzs7aUhBMUJVLG9CQUFvQjtxSEFBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYk5neFJvdXRlclNlcnZpY2UsIERiTmd4Um91dGVyVHJhbnNpdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlJztcbmltcG9ydCB7IFNlZ3VlUmVmIH0gZnJvbSBcIi4uLy4uLy4uL3NlZ3VlXCI7XG5pbXBvcnQgeyBTdGF0ZVNlcnZpY2UsIFVJUm91dGVyR2xvYmFscywgVHJhbnNpdGlvbk9wdGlvbnMsIFRyYW5zaXRpb25TZXJ2aWNlIH0gZnJvbSAnQHVpcm91dGVyL2NvcmUnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEYk5neFJvdXRlclRyYW5zaXRpb25FdmVudCwgRGJOZ3hSb3V0ZXJUcmFuc2l0aW9uRXZlbnRUeXBlIH0gZnJvbSAnLi4vLi4vdHJhbnNpdGlvbi90cmFuc2l0aW9uJztcblxuLyoqXG4gKiBVSVJvdXRlciBpbXBsZW1lbnRhdGlvbiBvZiBEYk5neFJvdXRlclNlcnZpY2UgYW5kIERiTmd4Um91dGVyVHJhbnNpdGlvblNlcnZpY2UuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYk5neFVJUm91dGVyU2VydmljZSBpbXBsZW1lbnRzIERiTmd4Um91dGVyU2VydmljZSwgRGJOZ3hSb3V0ZXJUcmFuc2l0aW9uU2VydmljZSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdHJhbnNpdGlvbnMgPSBuZXcgU3ViamVjdDxEYk5neFJvdXRlclRyYW5zaXRpb25FdmVudD4oKTtcbiAgcmVhZG9ubHkgdHJhbnNpdGlvbnMkID0gdGhpcy5fdHJhbnNpdGlvbnMuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgc3RhdGU6IFN0YXRlU2VydmljZSwgcmVhZG9ubHkgdHJhbnNpdGlvblNlcnZpY2U6IFRyYW5zaXRpb25TZXJ2aWNlLCByZWFkb25seSB1aVJvdXRlckdsb2JhbHM6IFVJUm91dGVyR2xvYmFscykge1xuXG4gICAgY29uc3QgZW1pdFRyYW5zaXRpb24gPSAodHlwZTogRGJOZ3hSb3V0ZXJUcmFuc2l0aW9uRXZlbnRUeXBlKSA9PiB7XG4gICAgICB0aGlzLl90cmFuc2l0aW9ucy5uZXh0KHtcbiAgICAgICAgdHlwZVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy50cmFuc2l0aW9uU2VydmljZS5vblN0YXJ0KHt9LCAoKSA9PiB7XG4gICAgICBlbWl0VHJhbnNpdGlvbihEYk5neFJvdXRlclRyYW5zaXRpb25FdmVudFR5cGUuU1RBUlQpO1xuICAgIH0pIGFzIGFueTtcblxuICAgIHRoaXMudHJhbnNpdGlvblNlcnZpY2Uub25TdWNjZXNzKHt9LCAoKSA9PiB7XG4gICAgICBlbWl0VHJhbnNpdGlvbihEYk5neFJvdXRlclRyYW5zaXRpb25FdmVudFR5cGUuU1VDQ0VTUyk7XG4gICAgfSkgYXMgYW55O1xuXG4gIH1cblxuICBnbyhzZWd1ZVJlZjogU2VndWVSZWY8VHJhbnNpdGlvbk9wdGlvbnM+KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgcGFyYW1zID0geyAuLi50aGlzLnVpUm91dGVyR2xvYmFscy5jdXJyZW50LnBhcmFtcywgLi4uc2VndWVSZWYucmVmUGFyYW1zIH07XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuZ28oc2VndWVSZWYucmVmLCBwYXJhbXMsIHNlZ3VlUmVmLnJlZk9wdGlvbnMpLnRoZW4oXyA9PiB0cnVlKS5jYXRjaChfID0+IGZhbHNlKTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { DbNgxRouterTransitionService } from '../../service/router.transition.service';
|
|
3
|
+
import { DbNgxRouterService } from '../../service/router.service';
|
|
4
|
+
import { DbNgxUIRouterService } from './uirouter.router.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class DbNgxCoreUIRouterSegueModule {
|
|
7
|
+
static forRoot() {
|
|
8
|
+
return {
|
|
9
|
+
ngModule: DbNgxCoreUIRouterSegueModule,
|
|
10
|
+
providers: [
|
|
11
|
+
DbNgxUIRouterService,
|
|
12
|
+
{
|
|
13
|
+
provide: DbNgxRouterService,
|
|
14
|
+
useExisting: DbNgxUIRouterService
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
provide: DbNgxRouterTransitionService,
|
|
18
|
+
useExisting: DbNgxUIRouterService
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
DbNgxCoreUIRouterSegueModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxCoreUIRouterSegueModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
25
|
+
DbNgxCoreUIRouterSegueModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxCoreUIRouterSegueModule });
|
|
26
|
+
DbNgxCoreUIRouterSegueModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxCoreUIRouterSegueModule });
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxCoreUIRouterSegueModule, decorators: [{
|
|
28
|
+
type: NgModule,
|
|
29
|
+
args: [{}]
|
|
30
|
+
}] });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlyb3V0ZXIucm91dGVyLnNlcnZpY2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9yb3V0ZXIvcm91dGVyL3Byb3ZpZGVyL3Vpcm91dGVyL3Vpcm91dGVyLnJvdXRlci5zZXJ2aWNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFHakUsTUFBTSxPQUFPLDRCQUE0QjtJQUV2QyxNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsNEJBQTRCO1lBQ3RDLFNBQVMsRUFBRTtnQkFDVCxvQkFBb0I7Z0JBQ3BCO29CQUNFLE9BQU8sRUFBRSxrQkFBa0I7b0JBQzNCLFdBQVcsRUFBRSxvQkFBb0I7aUJBQ2xDO2dCQUNEO29CQUNFLE9BQU8sRUFBRSw0QkFBNEI7b0JBQ3JDLFdBQVcsRUFBRSxvQkFBb0I7aUJBQ2xDO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7eUhBakJVLDRCQUE0QjswSEFBNUIsNEJBQTRCOzBIQUE1Qiw0QkFBNEI7MkZBQTVCLDRCQUE0QjtrQkFEeEMsUUFBUTttQkFBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERiTmd4Um91dGVyVHJhbnNpdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3JvdXRlci50cmFuc2l0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGJOZ3hSb3V0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9yb3V0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBEYk5neFVJUm91dGVyU2VydmljZSB9IGZyb20gJy4vdWlyb3V0ZXIucm91dGVyLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe30pXG5leHBvcnQgY2xhc3MgRGJOZ3hDb3JlVUlSb3V0ZXJTZWd1ZU1vZHVsZSB7XG5cbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxEYk5neENvcmVVSVJvdXRlclNlZ3VlTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBEYk5neENvcmVVSVJvdXRlclNlZ3VlTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIERiTmd4VUlSb3V0ZXJTZXJ2aWNlLFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogRGJOZ3hSb3V0ZXJTZXJ2aWNlLFxuICAgICAgICAgIHVzZUV4aXN0aW5nOiBEYk5neFVJUm91dGVyU2VydmljZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogRGJOZ3hSb3V0ZXJUcmFuc2l0aW9uU2VydmljZSxcbiAgICAgICAgICB1c2VFeGlzdGluZzogRGJOZ3hVSVJvdXRlclNlcnZpY2VcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cblxufVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './router.service';
|
|
2
|
+
export * from './router.transition.service';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3JvdXRlci9yb3V0ZXIvc2VydmljZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3JvdXRlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcm91dGVyLnRyYW5zaXRpb24uc2VydmljZSc7XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Router service definition that can route the app and provide routing details.
|
|
3
|
+
*/
|
|
4
|
+
export class DbNgxRouterService {
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3JvdXRlci9yb3V0ZXIvc2VydmljZS9yb3V0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sT0FBZ0Isa0JBQWtCO0NBU3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VndWVSZWYgfSBmcm9tIFwiLi4vLi4vc2VndWVcIjtcblxuLyoqXG4gKiBSb3V0ZXIgc2VydmljZSBkZWZpbml0aW9uIHRoYXQgY2FuIHJvdXRlIHRoZSBhcHAgYW5kIHByb3ZpZGUgcm91dGluZyBkZXRhaWxzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGJOZ3hSb3V0ZXJTZXJ2aWNlIHtcblxuICAvKipcbiAgICogTmF2aWdhdGVzIHRvIHRoZSB0YXJnZXQgU2VndWVSZWYuXG4gICAqIFxuICAgKiBAcGFyYW0gc2VndWVSZWYgXG4gICAqL1xuICBhYnN0cmFjdCBnbyhzZWd1ZVJlZjogU2VndWVSZWYpOiBQcm9taXNlPGJvb2xlYW4+O1xuXG59XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Router service definition that provides high level information about router transitions.
|
|
3
|
+
*/
|
|
4
|
+
export class DbNgxRouterTransitionService {
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnRyYW5zaXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvcm91dGVyL3JvdXRlci9zZXJ2aWNlL3JvdXRlci50cmFuc2l0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLDRCQUE0QjtDQU9qRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERiTmd4Um91dGVyVHJhbnNpdGlvbkV2ZW50IH0gZnJvbSAnLi4vdHJhbnNpdGlvbi90cmFuc2l0aW9uJztcblxuLyoqXG4gKiBSb3V0ZXIgc2VydmljZSBkZWZpbml0aW9uIHRoYXQgcHJvdmlkZXMgaGlnaCBsZXZlbCBpbmZvcm1hdGlvbiBhYm91dCByb3V0ZXIgdHJhbnNpdGlvbnMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYk5neFJvdXRlclRyYW5zaXRpb25TZXJ2aWNlIHtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIERiTmd4Um91dGVyVHJhbnNpdGlvbkV2ZW50IHZhbHVlcyBhcyB0cmFuc2l0aW9ucyBvY2N1ci5cbiAgICovXG4gIGFic3RyYWN0IHJlYWRvbmx5IHRyYW5zaXRpb25zJDogT2JzZXJ2YWJsZTxEYk5neFJvdXRlclRyYW5zaXRpb25FdmVudD47XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './transition';
|
|
2
|
+
export * from './transition.watcher.directive';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3JvdXRlci9yb3V0ZXIvdHJhbnNpdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90cmFuc2l0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNpdGlvbi53YXRjaGVyLmRpcmVjdGl2ZSc7XG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export var DbNgxRouterTransitionEventType;
|
|
2
|
+
(function (DbNgxRouterTransitionEventType) {
|
|
3
|
+
/**
|
|
4
|
+
* A transition started.
|
|
5
|
+
*/
|
|
6
|
+
DbNgxRouterTransitionEventType["START"] = "start";
|
|
7
|
+
/**
|
|
8
|
+
* A transition ended.
|
|
9
|
+
*/
|
|
10
|
+
DbNgxRouterTransitionEventType["SUCCESS"] = "ended";
|
|
11
|
+
})(DbNgxRouterTransitionEventType || (DbNgxRouterTransitionEventType = {}));
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNpdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvcm91dGVyL3JvdXRlci90cmFuc2l0aW9uL3RyYW5zaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksOEJBU1g7QUFURCxXQUFZLDhCQUE4QjtJQUN4Qzs7T0FFRztJQUNILGlEQUFlLENBQUE7SUFDZjs7T0FFRztJQUNILG1EQUFpQixDQUFBO0FBQ25CLENBQUMsRUFUVyw4QkFBOEIsS0FBOUIsOEJBQThCLFFBU3pDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRGJOZ3hSb3V0ZXJUcmFuc2l0aW9uRXZlbnRUeXBlIHtcbiAgLyoqXG4gICAqIEEgdHJhbnNpdGlvbiBzdGFydGVkLlxuICAgKi9cbiAgU1RBUlQgPSAnc3RhcnQnLFxuICAvKipcbiAgICogQSB0cmFuc2l0aW9uIGVuZGVkLlxuICAgKi9cbiAgU1VDQ0VTUyA9ICdlbmRlZCdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYk5neFJvdXRlclRyYW5zaXRpb25FdmVudCB7XG4gIHR5cGU6IERiTmd4Um91dGVyVHJhbnNpdGlvbkV2ZW50VHlwZTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Directive, NgZone } from '@angular/core';
|
|
2
|
+
import { filter } from 'rxjs/operators';
|
|
3
|
+
import { DbNgxRouterTransitionEventType } from './transition';
|
|
4
|
+
import { DbNgxRouterTransitionService } from '../service/router.transition.service';
|
|
5
|
+
import { SubscriptionObject } from '@dereekb/rxjs';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../service/router.transition.service";
|
|
8
|
+
/**
|
|
9
|
+
* Abstract directive that listens to onSuccess transition events and runs a function.
|
|
10
|
+
*/
|
|
11
|
+
export class AbstractTransitionWatcherDirective {
|
|
12
|
+
constructor(dbNgxRouterTransitionService, ngZone) {
|
|
13
|
+
this.dbNgxRouterTransitionService = dbNgxRouterTransitionService;
|
|
14
|
+
this.ngZone = ngZone;
|
|
15
|
+
this._transitionSub = new SubscriptionObject();
|
|
16
|
+
}
|
|
17
|
+
ngOnInit() {
|
|
18
|
+
this._transitionSub.subscription = this.dbNgxRouterTransitionService.transitions$.pipe(filter(x => x.type === DbNgxRouterTransitionEventType.SUCCESS)).subscribe(() => {
|
|
19
|
+
this.updateForSuccessfulTransition();
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
ngOnDestroy() {
|
|
23
|
+
this._transitionSub.destroy();
|
|
24
|
+
}
|
|
25
|
+
// MARK: Action
|
|
26
|
+
zoneUpdateForSuccessfulTransition() {
|
|
27
|
+
this.ngZone.run(() => this.updateForSuccessfulTransition());
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
AbstractTransitionWatcherDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AbstractTransitionWatcherDirective, deps: [{ token: i1.DbNgxRouterTransitionService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
31
|
+
AbstractTransitionWatcherDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: AbstractTransitionWatcherDirective, ngImport: i0 });
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: AbstractTransitionWatcherDirective, decorators: [{
|
|
33
|
+
type: Directive
|
|
34
|
+
}], ctorParameters: function () { return [{ type: i1.DbNgxRouterTransitionService }, { type: i0.NgZone }]; } });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNpdGlvbi53YXRjaGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvcm91dGVyL3JvdXRlci90cmFuc2l0aW9uL3RyYW5zaXRpb24ud2F0Y2hlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFFbkQ7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLGtDQUFrQztJQUl0RCxZQUErQiw0QkFBMEQsRUFBcUIsTUFBYztRQUE3RixpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQThCO1FBQXFCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFGcEgsbUJBQWMsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFFOEUsQ0FBQztJQUVqSSxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3BGLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssOEJBQThCLENBQUMsT0FBTyxDQUFDLENBQy9ELENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNmLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxlQUFlO0lBQ0wsaUNBQWlDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7K0hBckJtQixrQ0FBa0M7bUhBQWxDLGtDQUFrQzsyRkFBbEMsa0NBQWtDO2tCQUR2RCxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEYk5neFJvdXRlclRyYW5zaXRpb25FdmVudFR5cGUgfSBmcm9tICcuL3RyYW5zaXRpb24nO1xuaW1wb3J0IHsgRGJOZ3hSb3V0ZXJUcmFuc2l0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2Uvcm91dGVyLnRyYW5zaXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25PYmplY3QgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcblxuLyoqXG4gKiBBYnN0cmFjdCBkaXJlY3RpdmUgdGhhdCBsaXN0ZW5zIHRvIG9uU3VjY2VzcyB0cmFuc2l0aW9uIGV2ZW50cyBhbmQgcnVucyBhIGZ1bmN0aW9uLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFRyYW5zaXRpb25XYXRjaGVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX3RyYW5zaXRpb25TdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IGRiTmd4Um91dGVyVHJhbnNpdGlvblNlcnZpY2U6IERiTmd4Um91dGVyVHJhbnNpdGlvblNlcnZpY2UsIHByb3RlY3RlZCByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fdHJhbnNpdGlvblN1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLmRiTmd4Um91dGVyVHJhbnNpdGlvblNlcnZpY2UudHJhbnNpdGlvbnMkLnBpcGUoXG4gICAgICBmaWx0ZXIoeCA9PiB4LnR5cGUgPT09IERiTmd4Um91dGVyVHJhbnNpdGlvbkV2ZW50VHlwZS5TVUNDRVNTKVxuICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlRm9yU3VjY2Vzc2Z1bFRyYW5zaXRpb24oKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zaXRpb25TdWIuZGVzdHJveSgpO1xuICB9XG5cbiAgLy8gTUFSSzogQWN0aW9uXG4gIHByb3RlY3RlZCB6b25lVXBkYXRlRm9yU3VjY2Vzc2Z1bFRyYW5zaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMudXBkYXRlRm9yU3VjY2Vzc2Z1bFRyYW5zaXRpb24oKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgdXBkYXRlRm9yU3VjY2Vzc2Z1bFRyYW5zaXRpb24oKTogdm9pZDtcblxufVxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { map } from 'rxjs/operators';
|
|
2
|
+
export function refStringToSegueRef(ref, options) {
|
|
3
|
+
return { ...options, ref };
|
|
4
|
+
}
|
|
5
|
+
export function mapRefStringObsToSegueRefObs(obs, options) {
|
|
6
|
+
return obs.pipe(map(x => refStringToSegueRef(x, options)));
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VndWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3JvdXRlci9zZWd1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFvQ3JDLE1BQU0sVUFBVSxtQkFBbUIsQ0FBVSxHQUFXLEVBQUUsT0FBNEI7SUFDcEYsT0FBTyxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBQzdCLENBQUM7QUFFRCxNQUFNLFVBQVUsNEJBQTRCLENBQVUsR0FBdUIsRUFBRSxPQUE0QjtJQUN6RyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgdHlwZSBTZWd1ZVJlZlJvdXRlckxpbmsgPSBzdHJpbmcgfCBhbnlbXSB8IGFueTtcblxuZXhwb3J0IGludGVyZmFjZSBTZWd1ZVJlZlJhd1NlZ3VlUGFyYW1zIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlZ3VlUmVmT3B0aW9uczxPID0gYW55PiB7XG5cbiAgLyoqXG4gICAqIFJhdyBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWZQYXJhbXM/OiBTZWd1ZVJlZlJhd1NlZ3VlUGFyYW1zO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVHJhbnNpdGlvbiBPcHRpb25zLlxuICAgKiBcbiAgICogRm9yIFVJUm91dGVyLCB0aGlzIGlzIFRyYW5zaXRpb25PcHRpb25zLlxuICAgKi9cbiAgcmVmT3B0aW9ucz86IE87XG5cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2VndWUgcmVmXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VndWVSZWY8TyA9IGFueT4gZXh0ZW5kcyBTZWd1ZVJlZk9wdGlvbnM8Tz4ge1xuXG4gIC8qKlxuICAgKiBVSSBTcmVmIHJlZmVyZW5jZSB2YWx1ZS5cbiAgICovXG4gIHJlZj86IFNlZ3VlUmVmUm91dGVyTGluaztcblxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVmU3RyaW5nVG9TZWd1ZVJlZjxPID0gYW55PihyZWY6IHN0cmluZywgb3B0aW9ucz86IFNlZ3VlUmVmT3B0aW9uczxPPik6IFNlZ3VlUmVmPE8+IHtcbiAgcmV0dXJuIHsgLi4ub3B0aW9ucywgcmVmIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBSZWZTdHJpbmdPYnNUb1NlZ3VlUmVmT2JzPE8gPSBhbnk+KG9iczogT2JzZXJ2YWJsZTxzdHJpbmc+LCBvcHRpb25zPzogU2VndWVSZWZPcHRpb25zPE8+KTogT2JzZXJ2YWJsZTxTZWd1ZVJlZjxPPj4ge1xuICByZXR1cm4gb2JzLnBpcGUobWFwKHggPT4gcmVmU3RyaW5nVG9TZWd1ZVJlZih4LCBvcHRpb25zKSkpO1xufVxuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './storage.accessor.simple.factory';
|
|
2
|
+
export * from './storage.accessor.simple';
|
|
3
|
+
export * from './storage.accessor.string';
|
|
4
|
+
export * from './storage.accessor';
|
|
5
|
+
export * from './storage.di';
|
|
6
|
+
export * from './storage.module';
|
|
7
|
+
export * from './storage.object.localstorage';
|
|
8
|
+
export * from './storage.object.memory';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3N0b3JhZ2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZS5hY2Nlc3Nvci5zaW1wbGUuZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JhZ2UuYWNjZXNzb3Iuc2ltcGxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZS5hY2Nlc3Nvci5zdHJpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yYWdlLmFjY2Vzc29yJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZS5kaSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JhZ2UubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZS5vYmplY3QubG9jYWxzdG9yYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZS5vYmplY3QubWVtb3J5JztcbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stored object accessor that can get/set/remove via a key, or be cleared entirely.
|
|
3
|
+
*/
|
|
4
|
+
export class LimitedStorageAccessor {
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* LimitedStorageAccessor extension that has knowledge of all stored keys.
|
|
8
|
+
*/
|
|
9
|
+
export class StorageAccessor extends LimitedStorageAccessor {
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* StorageAccessor-like object that has immediate/synchronous functionality for get/set.
|
|
13
|
+
*/
|
|
14
|
+
export class InstantStorageAccessor {
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvc3RvcmFnZS9zdG9yYWdlLmFjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixzQkFBc0I7Q0FhM0M7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBZ0IsZUFBbUIsU0FBUSxzQkFBeUI7Q0FZekU7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBZ0Isc0JBQXNCO0NBUTNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBTdG9yZWQgb2JqZWN0IGFjY2Vzc29yIHRoYXQgY2FuIGdldC9zZXQvcmVtb3ZlIHZpYSBhIGtleSwgb3IgYmUgY2xlYXJlZCBlbnRpcmVseS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExpbWl0ZWRTdG9yYWdlQWNjZXNzb3I8VD4ge1xuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byBnZXQgdGhlIHZhbHVlLiBUaHJvd3MgYSBEYXRhRG9lc05vdEV4aXN0RXJyb3IgaWYgbm90IGF2YWlsYWJsZS5cbiAgICovXG4gIGFic3RyYWN0IGdldChrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8TWF5YmU8VD4+O1xuXG4gIGFic3RyYWN0IHNldChrZXk6IHN0cmluZywgdmFsdWU6IE1heWJlPFQ+KTogT2JzZXJ2YWJsZTx2b2lkPjtcblxuICBhYnN0cmFjdCByZW1vdmUoa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gIGFic3RyYWN0IGNsZWFyKCk6IE9ic2VydmFibGU8e30+O1xuXG59XG5cbi8qKlxuICogTGltaXRlZFN0b3JhZ2VBY2Nlc3NvciBleHRlbnNpb24gdGhhdCBoYXMga25vd2xlZGdlIG9mIGFsbCBzdG9yZWQga2V5cy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFN0b3JhZ2VBY2Nlc3NvcjxUPiBleHRlbmRzIExpbWl0ZWRTdG9yYWdlQWNjZXNzb3I8VD4ge1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFsbCB2YWx1ZXMuIEZpbHRlcmVkIGJ5IGtleXMgb2YgYSBnaXZlbiBwcmVmaXguXG4gICAqL1xuICBhYnN0cmFjdCBhbGwocHJlZml4Pzogc3RyaW5nKTogT2JzZXJ2YWJsZTxUW10+O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFsbCBrZXlzLiBGaWx0ZXJlZCBieSBrZXlzIG9mIGEgZ2l2ZW4gcHJlZml4LlxuICAgKi9cbiAgYWJzdHJhY3QgYWxsS2V5cyhwcmVmaXg/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcblxufVxuXG4vKipcbiAqIFN0b3JhZ2VBY2Nlc3Nvci1saWtlIG9iamVjdCB0aGF0IGhhcyBpbW1lZGlhdGUvc3luY2hyb25vdXMgZnVuY3Rpb25hbGl0eSBmb3IgZ2V0L3NldC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEluc3RhbnRTdG9yYWdlQWNjZXNzb3I8VD4ge1xuXG4gIGFic3RyYWN0IGdldE5vdyhrZXk6IHN0cmluZyk6IFQgfCB1bmRlZmluZWQ7XG5cbiAgYWJzdHJhY3Qgc2V0Tm93KGtleTogc3RyaW5nLCB2YWx1ZTogVCk6IHZvaWQ7XG5cbiAgYWJzdHJhY3QgcmVtb3ZlTm93KGtleTogc3RyaW5nKTogdm9pZDtcblxufVxuIl19
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { SimpleStorageAccessor, StringifySimpleStorageAccessorConverter, WrapperSimpleStorageAccessorDelegate } from './storage.accessor.simple';
|
|
3
|
+
import { StringStorageAccessor } from './storage.accessor.string';
|
|
4
|
+
import { DEFAULT_STORAGE_OBJECT_TOKEN } from './storage.di';
|
|
5
|
+
import { FullStorageObject } from '@dereekb/util';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@dereekb/util";
|
|
8
|
+
/**
|
|
9
|
+
* Used for building SimpleStorageAccessor instances from SimpleStorageAccessorConfig.
|
|
10
|
+
*/
|
|
11
|
+
export class SimpleStorageAccessorFactory {
|
|
12
|
+
constructor(storageObject) {
|
|
13
|
+
this.storageObject = storageObject;
|
|
14
|
+
}
|
|
15
|
+
createStorageAccessor(config) {
|
|
16
|
+
const storage = config.storage ?? new StringStorageAccessor(this.storageObject);
|
|
17
|
+
const converter = config.converter ?? new StringifySimpleStorageAccessorConverter();
|
|
18
|
+
const delegate = new WrapperSimpleStorageAccessorDelegate(storage, converter);
|
|
19
|
+
const accessorConfig = {
|
|
20
|
+
prefix: config.prefix
|
|
21
|
+
};
|
|
22
|
+
return new SimpleStorageAccessor(delegate, accessorConfig);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
SimpleStorageAccessorFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: SimpleStorageAccessorFactory, deps: [{ token: DEFAULT_STORAGE_OBJECT_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
26
|
+
SimpleStorageAccessorFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: SimpleStorageAccessorFactory });
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: SimpleStorageAccessorFactory, decorators: [{
|
|
28
|
+
type: Injectable
|
|
29
|
+
}], ctorParameters: function () { return [{ type: i1.FullStorageObject, decorators: [{
|
|
30
|
+
type: Inject,
|
|
31
|
+
args: [DEFAULT_STORAGE_OBJECT_TOKEN]
|
|
32
|
+
}] }]; } });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5hY2Nlc3Nvci5zaW1wbGUuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvc3RvcmFnZS9zdG9yYWdlLmFjY2Vzc29yLnNpbXBsZS5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBK0IscUJBQXFCLEVBQWtDLHVDQUF1QyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOU0sT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBb0IsTUFBTSxlQUFlLENBQUM7OztBQU9wRTs7R0FFRztBQUVILE1BQU0sT0FBTyw0QkFBNEI7SUFFdkMsWUFBMkQsYUFBZ0M7UUFBaEMsa0JBQWEsR0FBYixhQUFhLENBQW1CO0lBQUksQ0FBQztJQUVoRyxxQkFBcUIsQ0FBSSxNQUF1QztRQUM5RCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUkscUJBQXFCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hGLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLElBQUksSUFBSSx1Q0FBdUMsRUFBSyxDQUFDO1FBQ3ZGLE1BQU0sUUFBUSxHQUFHLElBQUksb0NBQW9DLENBQUksT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRWpGLE1BQU0sY0FBYyxHQUFHO1lBQ3JCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtTQUN0QixDQUFDO1FBRUYsT0FBTyxJQUFJLHFCQUFxQixDQUFJLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNoRSxDQUFDOzt5SEFkVSw0QkFBNEIsa0JBRW5CLDRCQUE0Qjs2SEFGckMsNEJBQTRCOzJGQUE1Qiw0QkFBNEI7a0JBRHhDLFVBQVU7OzBCQUdJLE1BQU07MkJBQUMsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yYWdlQWNjZXNzb3IgfSBmcm9tICcuL3N0b3JhZ2UuYWNjZXNzb3InO1xuaW1wb3J0IHsgU2ltcGxlU3RvcmFnZUFjY2Vzc29yQ29uZmlnLCBTaW1wbGVTdG9yYWdlQWNjZXNzb3IsIFNpbXBsZVN0b3JhZ2VBY2Nlc3NvckNvbnZlcnRlciwgU3RyaW5naWZ5U2ltcGxlU3RvcmFnZUFjY2Vzc29yQ29udmVydGVyLCBXcmFwcGVyU2ltcGxlU3RvcmFnZUFjY2Vzc29yRGVsZWdhdGUgfSBmcm9tICcuL3N0b3JhZ2UuYWNjZXNzb3Iuc2ltcGxlJztcbmltcG9ydCB7IFN0cmluZ1N0b3JhZ2VBY2Nlc3NvciB9IGZyb20gJy4vc3RvcmFnZS5hY2Nlc3Nvci5zdHJpbmcnO1xuaW1wb3J0IHsgREVGQVVMVF9TVE9SQUdFX09CSkVDVF9UT0tFTiB9IGZyb20gJy4vc3RvcmFnZS5kaSc7XG5pbXBvcnQgeyBGdWxsU3RvcmFnZU9iamVjdCwgU3RvcmVkRGF0YVN0cmluZyB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2VBY2Nlc3NvckZhY3RvcnlDb25maWc8VD4gZXh0ZW5kcyBTaW1wbGVTdG9yYWdlQWNjZXNzb3JDb25maWcge1xuICBzdG9yYWdlPzogU3RvcmFnZUFjY2Vzc29yPFN0b3JlZERhdGFTdHJpbmc+O1xuICBjb252ZXJ0ZXI/OiBTaW1wbGVTdG9yYWdlQWNjZXNzb3JDb252ZXJ0ZXI8VD47XG59XG5cbi8qKlxuICogVXNlZCBmb3IgYnVpbGRpbmcgU2ltcGxlU3RvcmFnZUFjY2Vzc29yIGluc3RhbmNlcyBmcm9tIFNpbXBsZVN0b3JhZ2VBY2Nlc3NvckNvbmZpZy5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNpbXBsZVN0b3JhZ2VBY2Nlc3NvckZhY3Rvcnkge1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoREVGQVVMVF9TVE9SQUdFX09CSkVDVF9UT0tFTikgcmVhZG9ubHkgc3RvcmFnZU9iamVjdDogRnVsbFN0b3JhZ2VPYmplY3QpIHsgfVxuXG4gIGNyZWF0ZVN0b3JhZ2VBY2Nlc3NvcjxUPihjb25maWc6IFN0b3JhZ2VBY2Nlc3NvckZhY3RvcnlDb25maWc8VD4pOiBTaW1wbGVTdG9yYWdlQWNjZXNzb3I8VD4ge1xuICAgIGNvbnN0IHN0b3JhZ2UgPSBjb25maWcuc3RvcmFnZSA/PyBuZXcgU3RyaW5nU3RvcmFnZUFjY2Vzc29yKHRoaXMuc3RvcmFnZU9iamVjdCk7XG4gICAgY29uc3QgY29udmVydGVyID0gY29uZmlnLmNvbnZlcnRlciA/PyBuZXcgU3RyaW5naWZ5U2ltcGxlU3RvcmFnZUFjY2Vzc29yQ29udmVydGVyPFQ+KCk7XG4gICAgY29uc3QgZGVsZWdhdGUgPSBuZXcgV3JhcHBlclNpbXBsZVN0b3JhZ2VBY2Nlc3NvckRlbGVnYXRlPFQ+KHN0b3JhZ2UsIGNvbnZlcnRlcik7XG5cbiAgICBjb25zdCBhY2Nlc3NvckNvbmZpZyA9IHtcbiAgICAgIHByZWZpeDogY29uZmlnLnByZWZpeFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IFNpbXBsZVN0b3JhZ2VBY2Nlc3NvcjxUPihkZWxlZ2F0ZSwgYWNjZXNzb3JDb25maWcpO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { map } from 'rxjs/operators';
|
|
2
|
+
import { timeNumberHasExpired, unixTimeNumberForNow } from '@dereekb/date';
|
|
3
|
+
import { filterMaybeValuesFn, DataDoesNotExistError, DataIsExpiredError } from '@dereekb/util';
|
|
4
|
+
export class StringifySimpleStorageAccessorConverter {
|
|
5
|
+
stringifyValue(value) {
|
|
6
|
+
return JSON.stringify(value);
|
|
7
|
+
}
|
|
8
|
+
parseValue(data) {
|
|
9
|
+
return JSON.parse(data);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export class WrapperSimpleStorageAccessorDelegate {
|
|
13
|
+
constructor(_delegate, _converter) {
|
|
14
|
+
this._delegate = _delegate;
|
|
15
|
+
this._converter = _converter;
|
|
16
|
+
}
|
|
17
|
+
get(key) {
|
|
18
|
+
return this._delegate.get(key);
|
|
19
|
+
}
|
|
20
|
+
set(key, value) {
|
|
21
|
+
return this._delegate.set(key, value);
|
|
22
|
+
}
|
|
23
|
+
remove(key) {
|
|
24
|
+
return this._delegate.remove(key);
|
|
25
|
+
}
|
|
26
|
+
clear() {
|
|
27
|
+
return this._delegate.clear();
|
|
28
|
+
}
|
|
29
|
+
all(prefix) {
|
|
30
|
+
return this._delegate.all(prefix);
|
|
31
|
+
}
|
|
32
|
+
allKeys(prefix) {
|
|
33
|
+
return this._delegate.allKeys(prefix);
|
|
34
|
+
}
|
|
35
|
+
stringifyValue(value) {
|
|
36
|
+
return this._converter.stringifyValue(value);
|
|
37
|
+
}
|
|
38
|
+
parseValue(data) {
|
|
39
|
+
return this._converter.parseValue(data);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* LimitedStorageAccessor implementation that uses a Delegate
|
|
44
|
+
*/
|
|
45
|
+
export class SimpleStorageAccessor {
|
|
46
|
+
constructor(_delegate, config) {
|
|
47
|
+
this._delegate = _delegate;
|
|
48
|
+
const prefix = config.prefix;
|
|
49
|
+
const prefixSplitter = config.prefixSplitter ?? SimpleStorageAccessor.PREFIX_SPLITTER;
|
|
50
|
+
this.assertValidStorageKeyPrefix(prefix, prefixSplitter);
|
|
51
|
+
const fullPrefix = `${prefix}${prefixSplitter}`;
|
|
52
|
+
this._config = {
|
|
53
|
+
...config,
|
|
54
|
+
prefixSplitter,
|
|
55
|
+
fullPrefix
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
// MARK: LimitedStorageAccessor
|
|
59
|
+
get(inputKey) {
|
|
60
|
+
const storeKey = this.makeStorageKey(inputKey);
|
|
61
|
+
return this._delegate.get(storeKey).pipe(map((storedData) => {
|
|
62
|
+
if (storedData) {
|
|
63
|
+
const readStoredData = this.readStoredData(storedData);
|
|
64
|
+
if (!readStoredData.expired) {
|
|
65
|
+
return readStoredData.convertedData;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
throw new DataIsExpiredError(readStoredData);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
throw new DataDoesNotExistError();
|
|
73
|
+
}
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
set(inputKey, inputValue) {
|
|
77
|
+
const storeKey = this.makeStorageKey(inputKey);
|
|
78
|
+
const storeData = this.buildStoredData(inputValue);
|
|
79
|
+
const data = JSON.stringify(storeData);
|
|
80
|
+
return this._delegate.set(storeKey, data);
|
|
81
|
+
}
|
|
82
|
+
remove(key) {
|
|
83
|
+
const storeKey = this.makeStorageKey(key);
|
|
84
|
+
return this._delegate.remove(storeKey);
|
|
85
|
+
}
|
|
86
|
+
all() {
|
|
87
|
+
return this._delegate.all(this._config.fullPrefix).pipe(map((allStoredData) => {
|
|
88
|
+
return allStoredData.map((storedData) => {
|
|
89
|
+
const readStoredData = this.readStoredData(storedData);
|
|
90
|
+
if (!readStoredData.expired) {
|
|
91
|
+
return readStoredData.convertedData;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
}).filter(filterMaybeValuesFn);
|
|
97
|
+
}));
|
|
98
|
+
}
|
|
99
|
+
allKeys() {
|
|
100
|
+
return this._delegate.allKeys(this._config.fullPrefix).pipe(map((keys) => keys.map(x => this.decodeStorageKey(x))));
|
|
101
|
+
}
|
|
102
|
+
clear() {
|
|
103
|
+
return this._delegate.clear();
|
|
104
|
+
}
|
|
105
|
+
// MARK: Stored Values
|
|
106
|
+
readStoredData(storedDataString) {
|
|
107
|
+
const storedData = JSON.parse(storedDataString);
|
|
108
|
+
const expired = this.isExpiredStoredData(storedData);
|
|
109
|
+
const convertedData = this._delegate.parseValue(storedData.data);
|
|
110
|
+
return {
|
|
111
|
+
...storedData,
|
|
112
|
+
expired,
|
|
113
|
+
convertedData
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
buildStoredData(value) {
|
|
117
|
+
return {
|
|
118
|
+
storedAt: unixTimeNumberForNow(),
|
|
119
|
+
data: this.stringifyValue(value)
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
isExpiredStoredData(storeData) {
|
|
123
|
+
const expiresIn = this._config.expiresIn;
|
|
124
|
+
if (expiresIn) {
|
|
125
|
+
if (storeData.storedAt) {
|
|
126
|
+
return timeNumberHasExpired(storeData.storedAt, expiresIn);
|
|
127
|
+
}
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// MARK: Internal
|
|
135
|
+
assertValidStorageKeyPrefix(prefix, prefixSplitter) {
|
|
136
|
+
if (!prefixSplitter) {
|
|
137
|
+
throw new Error('Invalid storage key prefix splitter. Must be defined and not empty.');
|
|
138
|
+
}
|
|
139
|
+
if (!this.isValidStorageKeyPrefix(prefix, prefixSplitter)) {
|
|
140
|
+
throw new Error('Invalid storage key prefix.');
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
isValidStorageKeyPrefix(prefix, prefixSpltter) {
|
|
144
|
+
return Boolean(prefix && prefix.indexOf(prefixSpltter) === -1);
|
|
145
|
+
}
|
|
146
|
+
makeStorageKey(key) {
|
|
147
|
+
return `${this._config.prefix}${this._config.prefixSplitter}${String(key)}`;
|
|
148
|
+
}
|
|
149
|
+
isKeyOfAccessor(storageKey) {
|
|
150
|
+
return storageKey.startsWith(this._config.fullPrefix);
|
|
151
|
+
}
|
|
152
|
+
decodeStorageKey(storageKey) {
|
|
153
|
+
const split = storageKey.split(this._config.prefixSplitter, 2);
|
|
154
|
+
return split[1];
|
|
155
|
+
}
|
|
156
|
+
stringifyValue(value) {
|
|
157
|
+
return this._delegate.stringifyValue(value);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
SimpleStorageAccessor.PREFIX_SPLITTER = '::';
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5hY2Nlc3Nvci5zaW1wbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3N0b3JhZ2Uvc3RvcmFnZS5hY2Nlc3Nvci5zaW1wbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQTZFLE1BQU0sZUFBZSxDQUFDO0FBdUIxSyxNQUFNLE9BQU8sdUNBQXVDO0lBRWxELGNBQWMsQ0FBQyxLQUFRO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQXNCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0NBRUY7QUFFRCxNQUFNLE9BQU8sb0NBQW9DO0lBRS9DLFlBQ1UsU0FBNEMsRUFDNUMsVUFBNkM7UUFEN0MsY0FBUyxHQUFULFNBQVMsQ0FBbUM7UUFDNUMsZUFBVSxHQUFWLFVBQVUsQ0FBbUM7SUFDbkQsQ0FBQztJQUVMLEdBQUcsQ0FBQyxHQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUF1QjtRQUN0QyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsR0FBRyxDQUFDLE1BQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQWU7UUFDckIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVE7UUFDckIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQXNCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUVGO0FBaUJEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHFCQUFxQjtJQVFoQyxZQUE2QixTQUEyQyxFQUFFLE1BQW1DO1FBQWhGLGNBQVMsR0FBVCxTQUFTLENBQWtDO1FBQ3RFLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDN0IsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsSUFBSSxxQkFBcUIsQ0FBQyxlQUFlLENBQUM7UUFFdEYsSUFBSSxDQUFDLDJCQUEyQixDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUV6RCxNQUFNLFVBQVUsR0FBRyxHQUFHLE1BQU0sR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsR0FBRyxNQUFNO1lBQ1QsY0FBYztZQUNkLFVBQVU7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVELCtCQUErQjtJQUMvQixHQUFHLENBQUMsUUFBZ0I7UUFDbEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDdEMsR0FBRyxDQUFDLENBQUMsVUFBeUIsRUFBRSxFQUFFO1lBQ2hDLElBQUksVUFBVSxFQUFFO2dCQUNkLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBRXZELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFO29CQUMzQixPQUFPLGNBQWMsQ0FBQyxhQUFhLENBQUM7aUJBQ3JDO3FCQUFNO29CQUNMLE1BQU0sSUFBSSxrQkFBa0IsQ0FBSSxjQUFjLENBQUMsQ0FBQztpQkFDakQ7YUFDRjtpQkFBTTtnQkFDTCxNQUFNLElBQUkscUJBQXFCLEVBQUUsQ0FBQzthQUNuQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsR0FBRyxDQUFDLFFBQWdCLEVBQUUsVUFBYTtRQUNqQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sU0FBUyxHQUFlLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVc7UUFDaEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxHQUFHO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDckQsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDcEIsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7Z0JBQ3RDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBRXZELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFO29CQUMzQixPQUFPLGNBQWMsQ0FBQyxhQUFhLENBQUM7aUJBQ3JDO3FCQUFNO29CQUNMLE9BQU8sSUFBSSxDQUFDO2lCQUNiO1lBQ0gsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFDaEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDekQsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDdkQsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxzQkFBc0I7SUFDWixjQUFjLENBQUMsZ0JBQWtDO1FBQ3pELE1BQU0sVUFBVSxHQUFlLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWpFLE9BQU87WUFDTCxHQUFHLFVBQVU7WUFDYixPQUFPO1lBQ1AsYUFBYTtTQUNkLENBQUM7SUFDSixDQUFDO0lBRVMsZUFBZSxDQUFDLEtBQVE7UUFDaEMsT0FBTztZQUNMLFFBQVEsRUFBRSxvQkFBb0IsRUFBRTtZQUNoQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7U0FDakMsQ0FBQztJQUNKLENBQUM7SUFFUyxtQkFBbUIsQ0FBQyxTQUFxQjtRQUNqRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUN6QyxJQUFJLFNBQVMsRUFBRTtZQUNiLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRTtnQkFDdEIsT0FBTyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2FBQzVEO1lBRUQsT0FBTyxJQUFJLENBQUM7U0FDYjthQUFNO1lBQ0wsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRCxpQkFBaUI7SUFDUCwyQkFBMkIsQ0FBQyxNQUFjLEVBQUUsY0FBc0I7UUFDMUUsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLHFFQUFxRSxDQUFDLENBQUM7U0FDeEY7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFBRTtZQUN6RCxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0lBRVMsdUJBQXVCLENBQUMsTUFBYyxFQUFFLGFBQXFCO1FBQ3JFLE9BQU8sT0FBTyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVTLGNBQWMsQ0FBQyxHQUFXO1FBQ2xDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUM5RSxDQUFDO0lBRVMsZUFBZSxDQUFDLFVBQWdDO1FBQ3hELE9BQU8sVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxVQUFnQztRQUN6RCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBZSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFUyxjQUFjLENBQUMsS0FBUTtRQUMvQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7O0FBN0llLHFDQUFlLEdBQUcsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgdGltZU51bWJlckhhc0V4cGlyZWQsIHVuaXhUaW1lTnVtYmVyRm9yTm93IH0gZnJvbSAnQGRlcmVla2IvZGF0ZSc7XG5pbXBvcnQgeyBmaWx0ZXJNYXliZVZhbHVlc0ZuLCBEYXRhRG9lc05vdEV4aXN0RXJyb3IsIERhdGFJc0V4cGlyZWRFcnJvciwgUmVhZFN0b3JlZERhdGEsIFN0b3JlZERhdGEsIFN0b3JlZERhdGFTdG9yYWdlS2V5LCBTdG9yZWREYXRhU3RyaW5nLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgU3RvcmFnZUFjY2Vzc29yIH0gZnJvbSAnLi9zdG9yYWdlLmFjY2Vzc29yJztcblxuLy8gTUFSSzogU2ltcGxlU3RvcmFnZUFjY2Vzc29yXG5leHBvcnQgaW50ZXJmYWNlIFNpbXBsZVN0b3JhZ2VBY2Nlc3NvckNvbnZlcnRlcjxUPiB7XG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgaW5wdXQgdmFsdWUgdG8gYSBzdHJpbmcuXG4gICAqL1xuICBzdHJpbmdpZnlWYWx1ZSh2YWx1ZTogVCk6IFN0b3JlZERhdGFTdHJpbmc7XG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgZGF0YSBzdHJpbmcgaW50byBhIHZhbHVlLlxuICAgKi9cbiAgcGFyc2VWYWx1ZShkYXRhOiBTdG9yZWREYXRhU3RyaW5nKTogVDtcbn1cblxuLyoqXG4gKiBTaW1wbGVTdG9yYWdlQWNjZXNzb3IgZGVsZWdhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2ltcGxlU3RvcmFnZUFjY2Vzc29yRGVsZWdhdGU8VD4gZXh0ZW5kcyBTaW1wbGVTdG9yYWdlQWNjZXNzb3JDb252ZXJ0ZXI8VD4sIFN0b3JhZ2VBY2Nlc3NvcjxTdG9yZWREYXRhU3RyaW5nPiB7XG5cblxufVxuXG5leHBvcnQgY2xhc3MgU3RyaW5naWZ5U2ltcGxlU3RvcmFnZUFjY2Vzc29yQ29udmVydGVyPFQ+IGltcGxlbWVudHMgU2ltcGxlU3RvcmFnZUFjY2Vzc29yQ29udmVydGVyPFQ+IHtcblxuICBzdHJpbmdpZnlWYWx1ZSh2YWx1ZTogVCk6IFN0b3JlZERhdGFTdHJpbmcge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gIH1cblxuICBwYXJzZVZhbHVlKGRhdGE6IFN0b3JlZERhdGFTdHJpbmcpOiBUIHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKTtcbiAgfVxuXG59XG5cbmV4cG9ydCBjbGFzcyBXcmFwcGVyU2ltcGxlU3RvcmFnZUFjY2Vzc29yRGVsZWdhdGU8VD4gaW1wbGVtZW50cyBTaW1wbGVTdG9yYWdlQWNjZXNzb3JEZWxlZ2F0ZTxUPiB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZGVsZWdhdGU6IFN0b3JhZ2VBY2Nlc3NvcjxTdG9yZWREYXRhU3RyaW5nPixcbiAgICBwcml2YXRlIF9jb252ZXJ0ZXI6IFNpbXBsZVN0b3JhZ2VBY2Nlc3NvckNvbnZlcnRlcjxUPlxuICApIHsgfVxuXG4gIGdldChrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8TWF5YmU8U3RvcmVkRGF0YVN0cmluZz4+IHtcbiAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuZ2V0KGtleSk7XG4gIH1cblxuICBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBTdG9yZWREYXRhU3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLnNldChrZXksIHZhbHVlKTtcbiAgfVxuXG4gIHJlbW92ZShrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5yZW1vdmUoa2V5KTtcbiAgfVxuXG4gIGNsZWFyKCk6IE9ic2VydmFibGU8e30+IHtcbiAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuY2xlYXIoKTtcbiAgfVxuXG4gIGFsbChwcmVmaXg/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmFsbChwcmVmaXgpO1xuICB9XG5cbiAgYWxsS2V5cyhwcmVmaXg/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmFsbEtleXMocHJlZml4KTtcbiAgfVxuXG4gIHN0cmluZ2lmeVZhbHVlKHZhbHVlOiBUKTogU3RvcmVkRGF0YVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnZlcnRlci5zdHJpbmdpZnlWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBwYXJzZVZhbHVlKGRhdGE6IFN0b3JlZERhdGFTdHJpbmcpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5fY29udmVydGVyLnBhcnNlVmFsdWUoZGF0YSk7XG4gIH1cblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpbXBsZVN0b3JhZ2VBY2Nlc3NvckNvbmZpZyB7XG4gIC8qKlxuICAgKiBTdG9yYWdlIEtleSBQcmVmaXhcbiAgICovXG4gIHJlYWRvbmx5IHByZWZpeDogc3RyaW5nO1xuICAvKipcbiAgICogT3B0aW9uYWwgcHJlZml4L3ZhbHVlIHNwbGl0dGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZml4U3BsaXR0ZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBOdW1iZXIgaW4gbWlsbGlzZWNvbmRzIHRoYXQgb2JqZWN0cyBzdG9yZWQgd2lsbCBleHBpcmUgaW4uXG4gICAqL1xuICByZWFkb25seSBleHBpcmVzSW4/OiBudW1iZXI7XG59XG5cbi8qKlxuICogTGltaXRlZFN0b3JhZ2VBY2Nlc3NvciBpbXBsZW1lbnRhdGlvbiB0aGF0IHVzZXMgYSBEZWxlZ2F0ZVxuICovXG5leHBvcnQgY2xhc3MgU2ltcGxlU3RvcmFnZUFjY2Vzc29yPFQ+IGltcGxlbWVudHMgU3RvcmFnZUFjY2Vzc29yPFQ+IHtcblxuICBzdGF0aWMgcmVhZG9ubHkgUFJFRklYX1NQTElUVEVSID0gJzo6JztcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NvbmZpZzogU2ltcGxlU3RvcmFnZUFjY2Vzc29yQ29uZmlnICYge1xuICAgIGZ1bGxQcmVmaXg6IHN0cmluZztcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9kZWxlZ2F0ZTogU2ltcGxlU3RvcmFnZUFjY2Vzc29yRGVsZWdhdGU8VD4sIGNvbmZpZzogU2ltcGxlU3RvcmFnZUFjY2Vzc29yQ29uZmlnKSB7XG4gICAgY29uc3QgcHJlZml4ID0gY29uZmlnLnByZWZpeDtcbiAgICBjb25zdCBwcmVmaXhTcGxpdHRlciA9IGNvbmZpZy5wcmVmaXhTcGxpdHRlciA/PyBTaW1wbGVTdG9yYWdlQWNjZXNzb3IuUFJFRklYX1NQTElUVEVSO1xuXG4gICAgdGhpcy5hc3NlcnRWYWxpZFN0b3JhZ2VLZXlQcmVmaXgocHJlZml4LCBwcmVmaXhTcGxpdHRlcik7XG5cbiAgICBjb25zdCBmdWxsUHJlZml4ID0gYCR7cHJlZml4fSR7cHJlZml4U3BsaXR0ZXJ9YDtcbiAgICB0aGlzLl9jb25maWcgPSB7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBwcmVmaXhTcGxpdHRlcixcbiAgICAgIGZ1bGxQcmVmaXhcbiAgICB9O1xuICB9XG5cbiAgLy8gTUFSSzogTGltaXRlZFN0b3JhZ2VBY2Nlc3NvclxuICBnZXQoaW5wdXRLZXk6IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xuICAgIGNvbnN0IHN0b3JlS2V5ID0gdGhpcy5tYWtlU3RvcmFnZUtleShpbnB1dEtleSk7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmdldChzdG9yZUtleSkucGlwZShcbiAgICAgIG1hcCgoc3RvcmVkRGF0YTogTWF5YmU8c3RyaW5nPikgPT4ge1xuICAgICAgICBpZiAoc3RvcmVkRGF0YSkge1xuICAgICAgICAgIGNvbnN0IHJlYWRTdG9yZWREYXRhID0gdGhpcy5yZWFkU3RvcmVkRGF0YShzdG9yZWREYXRhKTtcblxuICAgICAgICAgIGlmICghcmVhZFN0b3JlZERhdGEuZXhwaXJlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlYWRTdG9yZWREYXRhLmNvbnZlcnRlZERhdGE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBEYXRhSXNFeHBpcmVkRXJyb3I8VD4ocmVhZFN0b3JlZERhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRGF0YURvZXNOb3RFeGlzdEVycm9yKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHNldChpbnB1dEtleTogc3RyaW5nLCBpbnB1dFZhbHVlOiBUKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3Qgc3RvcmVLZXkgPSB0aGlzLm1ha2VTdG9yYWdlS2V5KGlucHV0S2V5KTtcbiAgICBjb25zdCBzdG9yZURhdGE6IFN0b3JlZERhdGEgPSB0aGlzLmJ1aWxkU3RvcmVkRGF0YShpbnB1dFZhbHVlKTtcbiAgICBjb25zdCBkYXRhID0gSlNPTi5zdHJpbmdpZnkoc3RvcmVEYXRhKTtcbiAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuc2V0KHN0b3JlS2V5LCBkYXRhKTtcbiAgfVxuXG4gIHJlbW92ZShrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IHN0b3JlS2V5ID0gdGhpcy5tYWtlU3RvcmFnZUtleShrZXkpO1xuICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5yZW1vdmUoc3RvcmVLZXkpO1xuICB9XG5cbiAgYWxsKCk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmFsbCh0aGlzLl9jb25maWcuZnVsbFByZWZpeCkucGlwZShcbiAgICAgIG1hcCgoYWxsU3RvcmVkRGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4gYWxsU3RvcmVkRGF0YS5tYXAoKHN0b3JlZERhdGEpID0+IHtcbiAgICAgICAgICBjb25zdCByZWFkU3RvcmVkRGF0YSA9IHRoaXMucmVhZFN0b3JlZERhdGEoc3RvcmVkRGF0YSk7XG5cbiAgICAgICAgICBpZiAoIXJlYWRTdG9yZWREYXRhLmV4cGlyZWQpIHtcbiAgICAgICAgICAgIHJldHVybiByZWFkU3RvcmVkRGF0YS5jb252ZXJ0ZWREYXRhO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLmZpbHRlcihmaWx0ZXJNYXliZVZhbHVlc0ZuKVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgYWxsS2V5cygpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmFsbEtleXModGhpcy5fY29uZmlnLmZ1bGxQcmVmaXgpLnBpcGUoXG4gICAgICBtYXAoKGtleXMpID0+IGtleXMubWFwKHggPT4gdGhpcy5kZWNvZGVTdG9yYWdlS2V5KHgpKSlcbiAgICApO1xuICB9XG5cbiAgY2xlYXIoKTogT2JzZXJ2YWJsZTx7fT4ge1xuICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5jbGVhcigpO1xuICB9XG5cbiAgLy8gTUFSSzogU3RvcmVkIFZhbHVlc1xuICBwcm90ZWN0ZWQgcmVhZFN0b3JlZERhdGEoc3RvcmVkRGF0YVN0cmluZzogU3RvcmVkRGF0YVN0cmluZyk6IFJlYWRTdG9yZWREYXRhPFQ+IHtcbiAgICBjb25zdCBzdG9yZWREYXRhOiBTdG9yZWREYXRhID0gSlNPTi5wYXJzZShzdG9yZWREYXRhU3RyaW5nKTtcbiAgICBjb25zdCBleHBpcmVkID0gdGhpcy5pc0V4cGlyZWRTdG9yZWREYXRhKHN0b3JlZERhdGEpO1xuICAgIGNvbnN0IGNvbnZlcnRlZERhdGEgPSB0aGlzLl9kZWxlZ2F0ZS5wYXJzZVZhbHVlKHN0b3JlZERhdGEuZGF0YSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RvcmVkRGF0YSxcbiAgICAgIGV4cGlyZWQsXG4gICAgICBjb252ZXJ0ZWREYXRhXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZFN0b3JlZERhdGEodmFsdWU6IFQpOiBTdG9yZWREYXRhIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RvcmVkQXQ6IHVuaXhUaW1lTnVtYmVyRm9yTm93KCksXG4gICAgICBkYXRhOiB0aGlzLnN0cmluZ2lmeVZhbHVlKHZhbHVlKVxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNFeHBpcmVkU3RvcmVkRGF0YShzdG9yZURhdGE6IFN0b3JlZERhdGEpOiBib29sZWFuIHtcbiAgICBjb25zdCBleHBpcmVzSW4gPSB0aGlzLl9jb25maWcuZXhwaXJlc0luO1xuICAgIGlmIChleHBpcmVzSW4pIHtcbiAgICAgIGlmIChzdG9yZURhdGEuc3RvcmVkQXQpIHtcbiAgICAgICAgcmV0dXJuIHRpbWVOdW1iZXJIYXNFeHBpcmVkKHN0b3JlRGF0YS5zdG9yZWRBdCwgZXhwaXJlc0luKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvLyBNQVJLOiBJbnRlcm5hbFxuICBwcm90ZWN0ZWQgYXNzZXJ0VmFsaWRTdG9yYWdlS2V5UHJlZml4KHByZWZpeDogc3RyaW5nLCBwcmVmaXhTcGxpdHRlcjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFwcmVmaXhTcGxpdHRlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHN0b3JhZ2Uga2V5IHByZWZpeCBzcGxpdHRlci4gTXVzdCBiZSBkZWZpbmVkIGFuZCBub3QgZW1wdHkuJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmlzVmFsaWRTdG9yYWdlS2V5UHJlZml4KHByZWZpeCwgcHJlZml4U3BsaXR0ZXIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc3RvcmFnZSBrZXkgcHJlZml4LicpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpc1ZhbGlkU3RvcmFnZUtleVByZWZpeChwcmVmaXg6IHN0cmluZywgcHJlZml4U3BsdHRlcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEJvb2xlYW4ocHJlZml4ICYmIHByZWZpeC5pbmRleE9mKHByZWZpeFNwbHR0ZXIpID09PSAtMSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFrZVN0b3JhZ2VLZXkoa2V5OiBzdHJpbmcpOiBTdG9yZWREYXRhU3RvcmFnZUtleSB7XG4gICAgcmV0dXJuIGAke3RoaXMuX2NvbmZpZy5wcmVmaXh9JHt0aGlzLl9jb25maWcucHJlZml4U3BsaXR0ZXJ9JHtTdHJpbmcoa2V5KX1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzS2V5T2ZBY2Nlc3NvcihzdG9yYWdlS2V5OiBTdG9yZWREYXRhU3RvcmFnZUtleSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdG9yYWdlS2V5LnN0YXJ0c1dpdGgodGhpcy5fY29uZmlnLmZ1bGxQcmVmaXgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRlY29kZVN0b3JhZ2VLZXkoc3RvcmFnZUtleTogU3RvcmVkRGF0YVN0b3JhZ2VLZXkpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNwbGl0ID0gc3RvcmFnZUtleS5zcGxpdCh0aGlzLl9jb25maWcucHJlZml4U3BsaXR0ZXIhLCAyKTtcbiAgICByZXR1cm4gc3BsaXRbMV07XG4gIH1cblxuICBwcm90ZWN0ZWQgc3RyaW5naWZ5VmFsdWUodmFsdWU6IFQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5zdHJpbmdpZnlWYWx1ZSh2YWx1ZSk7XG4gIH1cblxufVxuIl19
|