@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.
Files changed (200) hide show
  1. package/README.md +7 -0
  2. package/dereekb-dbx-core.d.ts +5 -0
  3. package/esm2020/dereekb-dbx-core.mjs +5 -0
  4. package/esm2020/index.mjs +2 -0
  5. package/esm2020/lib/action/action.handler.mjs +140 -0
  6. package/esm2020/lib/action/action.holder.mjs +50 -0
  7. package/esm2020/lib/action/action.machine.mjs +37 -0
  8. package/esm2020/lib/action/action.mjs +51 -0
  9. package/esm2020/lib/action/action.module.mjs +38 -0
  10. package/esm2020/lib/action/action.store.mjs +188 -0
  11. package/esm2020/lib/action/action.store.source.mjs +149 -0
  12. package/esm2020/lib/action/directive/auto/action.automodify.directive.mjs +53 -0
  13. package/esm2020/lib/action/directive/auto/action.autotrigger.directive.mjs +131 -0
  14. package/esm2020/lib/action/directive/auto/action.autotrigger.value.directive.mjs +79 -0
  15. package/esm2020/lib/action/directive/auto/index.mjs +4 -0
  16. package/esm2020/lib/action/directive/context/action.component.mjs +18 -0
  17. package/esm2020/lib/action/directive/context/action.directive.mjs +33 -0
  18. package/esm2020/lib/action/directive/context/action.source.directive.mjs +40 -0
  19. package/esm2020/lib/action/directive/context/index.mjs +4 -0
  20. package/esm2020/lib/action/directive/debug/action.logger.directive.mjs +30 -0
  21. package/esm2020/lib/action/directive/debug/index.mjs +2 -0
  22. package/esm2020/lib/action/directive/index.mjs +6 -0
  23. package/esm2020/lib/action/directive/map/action.map.directive.mjs +74 -0
  24. package/esm2020/lib/action/directive/map/action.map.key.directive.mjs +40 -0
  25. package/esm2020/lib/action/directive/map/action.map.mjs +6 -0
  26. package/esm2020/lib/action/directive/map/action.map.source.directive.mjs +49 -0
  27. package/esm2020/lib/action/directive/map/action.map.working.disable.directive.mjs +41 -0
  28. package/esm2020/lib/action/directive/map/index.mjs +6 -0
  29. package/esm2020/lib/action/directive/state/action.disabled.directive.mjs +49 -0
  30. package/esm2020/lib/action/directive/state/action.disabled.modified.directive.mjs +35 -0
  31. package/esm2020/lib/action/directive/state/action.handler.directive.mjs +55 -0
  32. package/esm2020/lib/action/directive/state/action.success.component.mjs +50 -0
  33. package/esm2020/lib/action/directive/state/action.success.directive.mjs +48 -0
  34. package/esm2020/lib/action/directive/state/action.value.directive.mjs +52 -0
  35. package/esm2020/lib/action/directive/state/action.working.component.mjs +32 -0
  36. package/esm2020/lib/action/directive/state/index.mjs +8 -0
  37. package/esm2020/lib/action/index.mjs +10 -0
  38. package/esm2020/lib/action/snackbar/index.mjs +3 -0
  39. package/esm2020/lib/action/snackbar/snackbar.mjs +24 -0
  40. package/esm2020/lib/button/action/action.button.directive.mjs +46 -0
  41. package/esm2020/lib/button/action/action.button.trigger.directive.mjs +36 -0
  42. package/esm2020/lib/button/action/index.mjs +3 -0
  43. package/esm2020/lib/button/button.directive.mjs +109 -0
  44. package/esm2020/lib/button/button.loading.directive.mjs +43 -0
  45. package/esm2020/lib/button/button.mjs +9 -0
  46. package/esm2020/lib/button/button.module.mjs +40 -0
  47. package/esm2020/lib/button/index.mjs +7 -0
  48. package/esm2020/lib/button/router/button.segue.directive.mjs +43 -0
  49. package/esm2020/lib/button/router/index.mjs +2 -0
  50. package/esm2020/lib/index.mjs +9 -0
  51. package/esm2020/lib/injected/index.mjs +6 -0
  52. package/esm2020/lib/injected/injected.component.mjs +34 -0
  53. package/esm2020/lib/injected/injected.component.module.mjs +26 -0
  54. package/esm2020/lib/injected/injected.directive.mjs +32 -0
  55. package/esm2020/lib/injected/injected.instance.mjs +101 -0
  56. package/esm2020/lib/injected/injected.mjs +2 -0
  57. package/esm2020/lib/pipe/date/date.pipe.module.mjs +54 -0
  58. package/esm2020/lib/pipe/date/datedistance.pipe.mjs +42 -0
  59. package/esm2020/lib/pipe/date/dateformatdistance.pipe.mjs +37 -0
  60. package/esm2020/lib/pipe/date/datefromtoformat.pipe.mjs +35 -0
  61. package/esm2020/lib/pipe/date/index.mjs +9 -0
  62. package/esm2020/lib/pipe/date/minutesstring.pipe.mjs +32 -0
  63. package/esm2020/lib/pipe/date/timedistance.pipe.mjs +49 -0
  64. package/esm2020/lib/pipe/date/tojsdate.pipe.mjs +18 -0
  65. package/esm2020/lib/pipe/date/tominutes.pipe.mjs +17 -0
  66. package/esm2020/lib/pipe/index.mjs +2 -0
  67. package/esm2020/lib/router/anchor/anchor.directive.mjs +40 -0
  68. package/esm2020/lib/router/anchor/anchor.mjs +35 -0
  69. package/esm2020/lib/router/anchor/clickable.mjs +2 -0
  70. package/esm2020/lib/router/anchor/index.mjs +4 -0
  71. package/esm2020/lib/router/index.mjs +4 -0
  72. package/esm2020/lib/router/router/index.mjs +4 -0
  73. package/esm2020/lib/router/router/provider/angular/angular.router.service.mjs +51 -0
  74. package/esm2020/lib/router/router/provider/angular/angular.router.service.module.mjs +30 -0
  75. package/esm2020/lib/router/router/provider/angular/index.mjs +3 -0
  76. package/esm2020/lib/router/router/provider/index.mjs +3 -0
  77. package/esm2020/lib/router/router/provider/uirouter/index.mjs +3 -0
  78. package/esm2020/lib/router/router/provider/uirouter/uirouter.router.service.mjs +39 -0
  79. package/esm2020/lib/router/router/provider/uirouter/uirouter.router.service.module.mjs +31 -0
  80. package/esm2020/lib/router/router/service/index.mjs +3 -0
  81. package/esm2020/lib/router/router/service/router.service.mjs +6 -0
  82. package/esm2020/lib/router/router/service/router.transition.service.mjs +6 -0
  83. package/esm2020/lib/router/router/transition/index.mjs +3 -0
  84. package/esm2020/lib/router/router/transition/transition.mjs +12 -0
  85. package/esm2020/lib/router/router/transition/transition.watcher.directive.mjs +35 -0
  86. package/esm2020/lib/router/segue.mjs +8 -0
  87. package/esm2020/lib/storage/index.mjs +9 -0
  88. package/esm2020/lib/storage/storage.accessor.mjs +16 -0
  89. package/esm2020/lib/storage/storage.accessor.simple.factory.mjs +33 -0
  90. package/esm2020/lib/storage/storage.accessor.simple.mjs +161 -0
  91. package/esm2020/lib/storage/storage.accessor.string.mjs +50 -0
  92. package/esm2020/lib/storage/storage.di.mjs +4 -0
  93. package/esm2020/lib/storage/storage.module.mjs +37 -0
  94. package/esm2020/lib/storage/storage.object.localstorage.mjs +46 -0
  95. package/esm2020/lib/storage/storage.object.memory.mjs +17 -0
  96. package/esm2020/lib/subscription/index.mjs +2 -0
  97. package/esm2020/lib/subscription/subscription.directive.mjs +46 -0
  98. package/esm2020/lib/util/index.mjs +2 -0
  99. package/esm2020/lib/util/view.mjs +34 -0
  100. package/fesm2015/dereekb-dbx-core.mjs +2875 -0
  101. package/fesm2015/dereekb-dbx-core.mjs.map +1 -0
  102. package/fesm2020/dereekb-dbx-core.mjs +2856 -0
  103. package/fesm2020/dereekb-dbx-core.mjs.map +1 -0
  104. package/index.d.ts +1 -0
  105. package/lib/action/action.d.ts +43 -0
  106. package/lib/action/action.handler.d.ts +73 -0
  107. package/lib/action/action.holder.d.ts +28 -0
  108. package/lib/action/action.machine.d.ts +23 -0
  109. package/lib/action/action.module.d.ts +25 -0
  110. package/lib/action/action.store.d.ts +147 -0
  111. package/lib/action/action.store.source.d.ts +72 -0
  112. package/lib/action/directive/auto/action.automodify.directive.d.ts +15 -0
  113. package/lib/action/directive/auto/action.autotrigger.directive.d.ts +54 -0
  114. package/lib/action/directive/auto/action.autotrigger.value.directive.d.ts +25 -0
  115. package/lib/action/directive/auto/index.d.ts +3 -0
  116. package/lib/action/directive/context/action.component.d.ts +6 -0
  117. package/lib/action/directive/context/action.directive.d.ts +13 -0
  118. package/lib/action/directive/context/action.source.directive.d.ts +16 -0
  119. package/lib/action/directive/context/index.d.ts +3 -0
  120. package/lib/action/directive/debug/action.logger.directive.d.ts +14 -0
  121. package/lib/action/directive/debug/index.d.ts +1 -0
  122. package/lib/action/directive/index.d.ts +5 -0
  123. package/lib/action/directive/map/action.map.d.ts +13 -0
  124. package/lib/action/directive/map/action.map.directive.d.ts +35 -0
  125. package/lib/action/directive/map/action.map.key.directive.d.ts +20 -0
  126. package/lib/action/directive/map/action.map.source.directive.d.ts +20 -0
  127. package/lib/action/directive/map/action.map.working.disable.directive.d.ts +21 -0
  128. package/lib/action/directive/map/index.d.ts +5 -0
  129. package/lib/action/directive/state/action.disabled.directive.d.ts +20 -0
  130. package/lib/action/directive/state/action.disabled.modified.directive.d.ts +16 -0
  131. package/lib/action/directive/state/action.handler.directive.d.ts +22 -0
  132. package/lib/action/directive/state/action.success.component.d.ts +15 -0
  133. package/lib/action/directive/state/action.success.directive.d.ts +24 -0
  134. package/lib/action/directive/state/action.value.directive.d.ts +22 -0
  135. package/lib/action/directive/state/action.working.component.d.ts +12 -0
  136. package/lib/action/directive/state/index.d.ts +7 -0
  137. package/lib/action/index.d.ts +9 -0
  138. package/lib/action/snackbar/index.d.ts +1 -0
  139. package/lib/action/snackbar/snackbar.d.ts +50 -0
  140. package/lib/button/action/action.button.directive.d.ts +18 -0
  141. package/lib/button/action/action.button.trigger.directive.d.ts +17 -0
  142. package/lib/button/action/index.d.ts +2 -0
  143. package/lib/button/button.d.ts +26 -0
  144. package/lib/button/button.directive.d.ts +52 -0
  145. package/lib/button/button.loading.directive.d.ts +21 -0
  146. package/lib/button/button.module.d.ts +11 -0
  147. package/lib/button/index.d.ts +6 -0
  148. package/lib/button/router/button.segue.directive.d.ts +18 -0
  149. package/lib/button/router/index.d.ts +1 -0
  150. package/lib/index.d.ts +8 -0
  151. package/lib/injected/index.d.ts +5 -0
  152. package/lib/injected/injected.component.d.ts +15 -0
  153. package/lib/injected/injected.component.module.d.ts +8 -0
  154. package/lib/injected/injected.d.ts +26 -0
  155. package/lib/injected/injected.directive.d.ts +17 -0
  156. package/lib/injected/injected.instance.d.ts +29 -0
  157. package/lib/pipe/date/date.pipe.module.d.ts +13 -0
  158. package/lib/pipe/date/datedistance.pipe.d.ts +8 -0
  159. package/lib/pipe/date/dateformatdistance.pipe.d.ts +13 -0
  160. package/lib/pipe/date/datefromtoformat.pipe.d.ts +14 -0
  161. package/lib/pipe/date/index.d.ts +8 -0
  162. package/lib/pipe/date/minutesstring.pipe.d.ts +8 -0
  163. package/lib/pipe/date/timedistance.pipe.d.ts +13 -0
  164. package/lib/pipe/date/tojsdate.pipe.d.ts +9 -0
  165. package/lib/pipe/date/tominutes.pipe.d.ts +7 -0
  166. package/lib/pipe/index.d.ts +1 -0
  167. package/lib/router/anchor/anchor.d.ts +31 -0
  168. package/lib/router/anchor/anchor.directive.d.ts +20 -0
  169. package/lib/router/anchor/clickable.d.ts +17 -0
  170. package/lib/router/anchor/index.d.ts +3 -0
  171. package/lib/router/index.d.ts +3 -0
  172. package/lib/router/router/index.d.ts +3 -0
  173. package/lib/router/router/provider/angular/angular.router.service.d.ts +17 -0
  174. package/lib/router/router/provider/angular/angular.router.service.module.d.ts +8 -0
  175. package/lib/router/router/provider/angular/index.d.ts +2 -0
  176. package/lib/router/router/provider/index.d.ts +2 -0
  177. package/lib/router/router/provider/uirouter/index.d.ts +2 -0
  178. package/lib/router/router/provider/uirouter/uirouter.router.service.d.ts +19 -0
  179. package/lib/router/router/provider/uirouter/uirouter.router.service.module.d.ts +8 -0
  180. package/lib/router/router/service/index.d.ts +2 -0
  181. package/lib/router/router/service/router.service.d.ts +12 -0
  182. package/lib/router/router/service/router.transition.service.d.ts +11 -0
  183. package/lib/router/router/transition/index.d.ts +2 -0
  184. package/lib/router/router/transition/transition.d.ts +13 -0
  185. package/lib/router/router/transition/transition.watcher.directive.d.ts +18 -0
  186. package/lib/router/segue.d.ts +28 -0
  187. package/lib/storage/index.d.ts +8 -0
  188. package/lib/storage/storage.accessor.d.ts +35 -0
  189. package/lib/storage/storage.accessor.simple.d.ts +75 -0
  190. package/lib/storage/storage.accessor.simple.factory.d.ts +18 -0
  191. package/lib/storage/storage.accessor.string.d.ts +16 -0
  192. package/lib/storage/storage.di.d.ts +3 -0
  193. package/lib/storage/storage.module.d.ts +10 -0
  194. package/lib/storage/storage.object.localstorage.d.ts +16 -0
  195. package/lib/storage/storage.object.memory.d.ts +9 -0
  196. package/lib/subscription/index.d.ts +1 -0
  197. package/lib/subscription/subscription.directive.d.ts +25 -0
  198. package/lib/util/index.d.ts +1 -0
  199. package/lib/util/view.d.ts +22 -0
  200. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5hY2Nlc3Nvci5zaW1wbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL3N0b3JhZ2Uvc3RvcmFnZS5hY2Nlc3Nvci5zaW1wbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQTZFLE1BQU0sZUFBZSxDQUFDO0FBdUIxSyxNQUFNLE9BQU8sdUNBQXVDO0lBRWxELGNBQWMsQ0FBQyxLQUFRO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQXNCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0NBRUY7QUFFRCxNQUFNLE9BQU8sb0NBQW9DO0lBRS9DLFlBQ1UsU0FBNEMsRUFDNUMsVUFBNkM7UUFEN0MsY0FBUyxHQUFULFNBQVMsQ0FBbUM7UUFDNUMsZUFBVSxHQUFWLFVBQVUsQ0FBbUM7SUFDbkQsQ0FBQztJQUVMLEdBQUcsQ0FBQyxHQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUF1QjtRQUN0QyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FB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QUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUM5RSxDQUFDO0lBRVMsZUFBZSxDQUFDLFVBQWdDO1FBQ3hELE9BQU8sVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxVQUFnQztRQUN6RCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBZSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFUyxjQUFjLENBQUMsS0FBUTtRQUMvQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7O0FBN0llLHFDQUFlLEdBQUcsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgdGltZU51bWJlckhhc0V4cGlyZWQsIHVuaXhUaW1lTnVtYmVyRm9yTm93IH0gZnJvbSAnQGRlcmVla2IvZGF0ZSc7XG5pbXBvcnQgeyBmaWx0ZXJNYXliZVZhbHVlc0ZuLCBEYXRhRG9lc05vdEV4aXN0RXJyb3IsIERhdGFJc0V4cGlyZWRFcnJvciwgUmVhZFN0b3JlZERhdGEsIFN0b3JlZERhdGEsIFN0b3JlZERhdGFTdG9yYWdlS2V5LCBTdG9yZWREYXRhU3RyaW5nLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgU3RvcmFnZUFjY2Vzc29yIH0gZnJvbSAnLi9zdG9yYWdlLmFjY2Vzc29yJztcblxuLy8gTUFSSzogU2ltcGxlU3RvcmFnZUFjY2Vzc29yXG5leHBvcnQgaW50ZXJmYWNlIFNpbXBsZVN0b3JhZ2VBY2Nlc3NvckNvbnZlcnRlcjxUPiB7XG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgaW5wdXQgdmFsdWUgdG8gYSBzdHJpbmcuXG4gICAqL1xuICBzdHJpbmdpZnlWYWx1ZSh2YWx1ZTogVCk6IFN0b3JlZERhdGFTdHJpbmc7XG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgZGF0YSBzdHJpbmcgaW50byBhIHZhbHVlLlxuICAgKi9cbiAgcGFyc2VWYWx1ZShkYXRhOiBTdG9yZWREYXRhU3RyaW5nKTogVDtcbn1cblxuLyoqXG4gKiBTaW1wbGVTdG9yYWdlQWNjZXNzb3IgZGVsZWdhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2ltcGxlU3RvcmFnZUFjY2Vzc29yRGVsZWdhdGU8VD4gZXh0ZW5kcyBTaW1wbGVTdG9yYWdlQWNjZXNzb3JDb252ZXJ0ZXI8VD4sIFN0b3JhZ2VBY2Nlc3NvcjxTdG9yZWREYXRhU3RyaW5nPiB7XG5cblxufVxuXG5leHBvcnQgY2xhc3MgU3RyaW5naWZ5U2ltcGxlU3RvcmFnZUFjY2Vzc29yQ29udmVydGVyPFQ+IGltcGxlbWVudHMgU2ltcGxlU3RvcmFnZUFjY2Vzc29yQ29udmVydGVyPFQ+IHtcblxuICBzdHJpbmdpZnlWYWx1ZSh2YWx1ZTogVCk6IFN0b3JlZERhdGFTdHJpbmcge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gIH1cblxuICBwYXJzZVZhbHVlKGRhdGE6IFN0b3JlZERhdGFTdHJpbmcpOiBUIHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKTtcbiAgfVxuXG59XG5cbmV4cG9ydCBjbGFzcyBXcmFwcGVyU2ltcGxlU3RvcmFnZUFjY2Vzc29yRGVsZWdhdGU8VD4gaW1wbGVtZW50cyBTaW1wbGVTdG9yYWdlQWNjZXNzb3JEZWxlZ2F0ZTxUPiB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZGVsZWdhdGU6IFN0b3JhZ2VBY2Nlc3NvcjxTdG9yZWREYXRhU3RyaW5nPixcbiAgICBwcml2YXRlIF9jb252ZXJ0ZXI6IFNpbXBsZVN0b3JhZ2VBY2Nlc3NvckNvbnZlcnRlcjxUPlxuICApIHsgfVxuXG4gIGdldChrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8TWF5YmU8U3RvcmVkRGF0YVN0cmluZz4+IHtcbiAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuZ2V0KGtleSk7XG4gIH1cblxuICBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBTdG9yZWREYXRhU3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLnNldChrZXksIHZhbHVlKTtcbiAgfVxuXG4gIHJlbW92ZShrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5yZW1vdmUoa2V5KTtcbiAgfVxuXG4gIGNsZWFyKCk6IE9ic2VydmFibGU8e30+IHtcbiAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuY2xlYXIoKTtcbiAgfVxuXG4gIGFsbChwcmVmaXg/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmFsbChwcmVmaXgpO1xuICB9XG5cbiAgYWxsS2V5cyhwcmVmaXg/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmFsbEtleXMocHJlZml4KTtcbiAgfVxuXG4gIHN0cmluZ2lmeVZhbHVlKHZhbHVlOiBUKTogU3RvcmVkRGF0YVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnZlcnRlci5zdHJpbmdpZnlWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBwYXJzZVZhbHVlKGRhdGE6IFN0b3JlZERhdGFTdHJpbmcpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5fY29udmVydGVyLnBhcnNlVmFsdWUoZGF0YSk7XG4gIH1cblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpbXBsZVN0b3JhZ2VBY2Nlc3NvckNvbmZpZyB7XG4gIC8qKlxuICAgKiBTdG9yYWdlIEtleSBQcmVmaXhcbiAgICovXG4gIHJlYWRvbmx5IHByZWZpeDogc3RyaW5nO1xuICAvKipcbiAgICogT3B0aW9uYWwgcHJlZml4L3ZhbHVlIHNwbGl0dGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZml4U3BsaXR0ZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBOdW1iZXIgaW4gbWlsbGlzZWNvbmRzIHRoYXQgb2JqZWN0cyBzdG9yZWQgd2lsbCBleHBpcmUgaW4uXG4gICAqL1xuICByZWFkb25seSBleHBpcmVzSW4/OiBudW1iZXI7XG59XG5cbi8qKlxuICogTGltaXRlZFN0b3JhZ2VBY2Nlc3NvciBpbXBsZW1lbnRhdGlvbiB0aGF0IHVzZXMgYSBEZWxlZ2F0ZVxuICovXG5leHBvcnQgY2xhc3MgU2ltcGxlU3RvcmFnZUFjY2Vzc29yPFQ+IGltcGxlbWVudHMgU3RvcmFnZUFjY2Vzc29yPFQ+IHtcblxuICBzdGF0aWMgcmVhZG9ubHkgUFJFRklYX1NQTElUVEVSID0gJzo6JztcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NvbmZpZzogU2ltcGxlU3RvcmFnZUFjY2Vzc29yQ29uZmlnICYge1xuICAgIGZ1bGxQcmVmaXg6IHN0cmluZztcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9kZWxlZ2F0ZTogU2ltcGxlU3RvcmFnZUFjY2Vzc29yRGVsZWdhdGU8VD4sIGNvbmZpZzogU2ltcGxlU3RvcmFnZUFjY2Vzc29yQ29uZmlnKSB7XG4gICAgY29uc3QgcHJlZml4ID0gY29uZmlnLnByZWZpeDtcbiAgICBjb25zdCBwcmVmaXhTcGxpdHRlciA9IGNvbmZpZy5wcmVmaXhTcGxpdHRlciA/PyBTaW1wbGVTdG9yYWdlQWNjZXNzb3IuUFJFRklYX1NQTElUVEVSO1xuXG4gICAgdGhpcy5hc3NlcnRWYWxpZFN0b3JhZ2VLZXlQcmVmaXgocHJlZml4LCBwcmVmaXhTcGxpdHRlcik7XG5cbiAgICBjb25zdCBmdWxsUHJlZml4ID0gYCR7cHJlZml4fSR7cHJlZml4U3BsaXR0ZXJ9YDtcbiAgICB0aGlzLl9jb25maWcgPSB7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBwcmVmaXhTcGxpdHRlcixcbiAgICAgIGZ1bGxQcmVmaXhcbiAgICB9O1xuICB9XG5cbiAgLy8gTUFSSzogTGltaXRlZFN0b3JhZ2VBY2Nlc3NvclxuICBnZXQoaW5wdXRLZXk6IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xuICAgIGNvbnN0IHN0b3JlS2V5ID0gdGhpcy5tYWtlU3RvcmFnZUtleShpbnB1dEtleSk7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmdldChzdG9yZUtleSkucGlwZShcbiAgICAgIG1hcCgoc3RvcmVkRGF0YTogTWF5YmU8c3RyaW5nPikgPT4ge1xuICAgICAgICBpZiAoc3RvcmVkRGF0YSkge1xuICAgICAgICAgIGNvbnN0IHJlYWRTdG9yZWREYXRhID0gdGhpcy5yZWFkU3RvcmVkRGF0YShzdG9yZWREYXRhKTtcblxuICAgICAgICAgIGlmICghcmVhZFN0b3JlZERhdGEuZXhwaXJlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlYWRTdG9yZWREYXRhLmNvbnZlcnRlZERhdGE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBEYXRhSXNFeHBpcmVkRXJyb3I8VD4ocmVhZFN0b3JlZERhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRGF0YURvZXNOb3RFeGlzdEVycm9yKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHNldChpbnB1dEtleTogc3RyaW5nLCBpbnB1dFZhbHVlOiBUKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3Qgc3RvcmVLZXkgPSB0aGlzLm1ha2VTdG9yYWdlS2V5KGlucHV0S2V5KTtcbiAgICBjb25zdCBzdG9yZURhdGE6IFN0b3JlZERhdGEgPSB0aGlzLmJ1aWxkU3RvcmVkRGF0YShpbnB1dFZhbHVlKTtcbiAgICBjb25zdCBkYXRhID0gSlNPTi5zdHJpbmdpZnkoc3RvcmVEYXRhKTtcbiAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuc2V0KHN0b3JlS2V5LCBkYXRhKTtcbiAgfVxuXG4gIHJlbW92ZShrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IHN0b3JlS2V5ID0gdGhpcy5tYWtlU3RvcmFnZUtleShrZXkpO1xuICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5yZW1vdmUoc3RvcmVLZXkpO1xuICB9XG5cbiAgYWxsKCk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmFsbCh0aGlzLl9jb25maWcuZnVsbFByZWZpeCkucGlwZShcbiAgICAgIG1hcCgoYWxsU3RvcmVkRGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4gYWxsU3RvcmVkRGF0YS5tYXAoKHN0b3JlZERhdGEpID0+IHtcbiAgICAgICAgICBjb25zdCByZWFkU3RvcmVkRGF0YSA9IHRoaXMucmVhZFN0b3JlZERhdGEoc3RvcmVkRGF0YSk7XG5cbiAgICAgICAgICBpZiAoIXJlYWRTdG9yZWREYXRhLmV4cGlyZWQpIHtcbiAgICAgICAgICAgIHJldHVybiByZWFkU3RvcmVkRGF0YS5jb252ZXJ0ZWREYXRhO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLmZpbHRlcihmaWx0ZXJNYXliZVZhbHVlc0ZuKVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgYWxsS2V5cygpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmFsbEtleXModGhpcy5fY29uZmlnLmZ1bGxQcmVmaXgpLnBpcGUoXG4gICAgICBtYXAoKGtleXMpID0+IGtleXMubWFwKHggPT4gdGhpcy5kZWNvZGVTdG9yYWdlS2V5KHgpKSlcbiAgICApO1xuICB9XG5cbiAgY2xlYXIoKTogT2JzZXJ2YWJsZTx7fT4ge1xuICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5jbGVhcigpO1xuICB9XG5cbiAgLy8gTUFSSzogU3RvcmVkIFZhbHVlc1xuICBwcm90ZWN0ZWQgcmVhZFN0b3JlZERhdGEoc3RvcmVkRGF0YVN0cmluZzogU3RvcmVkRGF0YVN0cmluZyk6IFJlYWRTdG9yZWREYXRhPFQ+IHtcbiAgICBjb25zdCBzdG9yZWREYXRhOiBTdG9yZWREYXRhID0gSlNPTi5wYXJzZShzdG9yZWREYXRhU3RyaW5nKTtcbiAgICBjb25zdCBleHBpcmVkID0gdGhpcy5pc0V4cGlyZWRTdG9yZWREYXRhKHN0b3JlZERhdGEpO1xuICAgIGNvbnN0IGNvbnZlcnRlZERhdGEgPSB0aGlzLl9kZWxlZ2F0ZS5wYXJzZVZhbHVlKHN0b3JlZERhdGEuZGF0YSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RvcmVkRGF0YSxcbiAgICAgIGV4cGlyZWQsXG4gICAgICBjb252ZXJ0ZWREYXRhXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZFN0b3JlZERhdGEodmFsdWU6IFQpOiBTdG9yZWREYXRhIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RvcmVkQXQ6IHVuaXhUaW1lTnVtYmVyRm9yTm93KCksXG4gICAgICBkYXRhOiB0aGlzLnN0cmluZ2lmeVZhbHVlKHZhbHVlKVxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNFeHBpcmVkU3RvcmVkRGF0YShzdG9yZURhdGE6IFN0b3JlZERhdGEpOiBib29sZWFuIHtcbiAgICBjb25zdCBleHBpcmVzSW4gPSB0aGlzLl9jb25maWcuZXhwaXJlc0luO1xuICAgIGlmIChleHBpcmVzSW4pIHtcbiAgICAgIGlmIChzdG9yZURhdGEuc3RvcmVkQXQpIHtcbiAgICAgICAgcmV0dXJuIHRpbWVOdW1iZXJIYXNFeHBpcmVkKHN0b3JlRGF0YS5zdG9yZWRBdCwgZXhwaXJlc0luKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvLyBNQVJLOiBJbnRlcm5hbFxuICBwcm90ZWN0ZWQgYXNzZXJ0VmFsaWRTdG9yYWdlS2V5UHJlZml4KHByZWZpeDogc3RyaW5nLCBwcmVmaXhTcGxpdHRlcjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFwcmVmaXhTcGxpdHRlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHN0b3JhZ2Uga2V5IHByZWZpeCBzcGxpdHRlci4gTXVzdCBiZSBkZWZpbmVkIGFuZCBub3QgZW1wdHkuJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmlzVmFsaWRTdG9yYWdlS2V5UHJlZml4KHByZWZpeCwgcHJlZml4U3BsaXR0ZXIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc3RvcmFnZSBrZXkgcHJlZml4LicpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpc1ZhbGlkU3RvcmFnZUtleVByZWZpeChwcmVmaXg6IHN0cmluZywgcHJlZml4U3BsdHRlcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEJvb2xlYW4ocHJlZml4ICYmIHByZWZpeC5pbmRleE9mKHByZWZpeFNwbHR0ZXIpID09PSAtMSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFrZVN0b3JhZ2VLZXkoa2V5OiBzdHJpbmcpOiBTdG9yZWREYXRhU3RvcmFnZUtleSB7XG4gICAgcmV0dXJuIGAke3RoaXMuX2NvbmZpZy5wcmVmaXh9JHt0aGlzLl9jb25maWcucHJlZml4U3BsaXR0ZXJ9JHtTdHJpbmcoa2V5KX1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzS2V5T2ZBY2Nlc3NvcihzdG9yYWdlS2V5OiBTdG9yZWREYXRhU3RvcmFnZUtleSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdG9yYWdlS2V5LnN0YXJ0c1dpdGgodGhpcy5fY29uZmlnLmZ1bGxQcmVmaXgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRlY29kZVN0b3JhZ2VLZXkoc3RvcmFnZUtleTogU3RvcmVkRGF0YVN0b3JhZ2VLZXkpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNwbGl0ID0gc3RvcmFnZUtleS5zcGxpdCh0aGlzLl9jb25maWcucHJlZml4U3BsaXR0ZXIhLCAyKTtcbiAgICByZXR1cm4gc3BsaXRbMV07XG4gIH1cblxuICBwcm90ZWN0ZWQgc3RyaW5naWZ5VmFsdWUodmFsdWU6IFQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5zdHJpbmdpZnlWYWx1ZSh2YWx1ZSk7XG4gIH1cblxufVxuIl19