@dereekb/dbx-core 1.2.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. package/README.md +1 -1
  2. package/esm2020/lib/action/action.handler.mjs +4 -126
  3. package/esm2020/lib/action/action.holder.mjs +13 -4
  4. package/esm2020/lib/action/action.machine.mjs +15 -7
  5. package/esm2020/lib/action/action.mjs +37 -17
  6. package/esm2020/lib/action/action.module.mjs +18 -18
  7. package/esm2020/lib/action/action.reference.mjs +7 -0
  8. package/esm2020/lib/action/action.store.mjs +63 -26
  9. package/esm2020/lib/action/action.store.source.mjs +27 -13
  10. package/esm2020/lib/action/directive/auto/action.automodify.directive.mjs +7 -7
  11. package/esm2020/lib/action/directive/auto/action.autotrigger.directive.mjs +13 -11
  12. package/esm2020/lib/action/directive/auto/index.mjs +2 -2
  13. package/esm2020/lib/action/directive/context/action.directive.mjs +7 -7
  14. package/esm2020/lib/action/directive/context/action.source.directive.mjs +3 -3
  15. package/esm2020/lib/action/directive/debug/action.logger.directive.mjs +6 -6
  16. package/esm2020/lib/action/directive/map/action.map.directive.mjs +3 -3
  17. package/esm2020/lib/action/directive/map/action.map.key.directive.mjs +3 -3
  18. package/esm2020/lib/action/directive/map/action.map.source.directive.mjs +3 -3
  19. package/esm2020/lib/action/directive/map/action.map.working.disable.directive.mjs +7 -7
  20. package/esm2020/lib/action/directive/state/action.disabled.directive.mjs +8 -7
  21. package/esm2020/lib/action/directive/state/action.enforce.modified.directive.mjs +48 -0
  22. package/esm2020/lib/action/directive/state/action.handler.directive.mjs +13 -12
  23. package/esm2020/lib/action/directive/state/action.success.directive.mjs +24 -36
  24. package/esm2020/lib/action/directive/state/action.success.handler.directive.mjs +48 -0
  25. package/esm2020/lib/action/directive/state/action.value.directive.mjs +13 -11
  26. package/esm2020/lib/action/directive/state/action.value.stream.directive.mjs +80 -0
  27. package/esm2020/lib/action/directive/state/action.value.trigger.directive.mjs +73 -0
  28. package/esm2020/lib/action/directive/state/action.value.trigger.instance.mjs +43 -0
  29. package/esm2020/lib/action/directive/state/action.working.component.mjs +29 -23
  30. package/esm2020/lib/action/directive/state/index.mjs +5 -3
  31. package/esm2020/lib/action/index.mjs +2 -2
  32. package/esm2020/lib/auth/auth.module.mjs +26 -0
  33. package/esm2020/lib/auth/auth.role.any.directive.mjs +36 -0
  34. package/esm2020/lib/auth/auth.role.has.directive.mjs +36 -0
  35. package/esm2020/lib/auth/auth.state.module.mjs +28 -0
  36. package/esm2020/lib/auth/auth.state.service.mjs +23 -0
  37. package/esm2020/lib/auth/auth.user.mjs +11 -0
  38. package/esm2020/lib/auth/index.mjs +10 -0
  39. package/esm2020/lib/auth/router/auth.router.mjs +6 -0
  40. package/esm2020/lib/auth/router/auth.router.module.mjs +26 -0
  41. package/esm2020/lib/auth/router/auth.router.service.mjs +61 -0
  42. package/esm2020/lib/auth/router/index.mjs +6 -0
  43. package/esm2020/lib/auth/router/provider/uirouter/auth.hook.mjs +23 -0
  44. package/esm2020/lib/auth/router/provider/uirouter/hook.mjs +65 -0
  45. package/esm2020/lib/auth/router/provider/uirouter/index.mjs +6 -0
  46. package/esm2020/lib/auth/router/provider/uirouter/redirect.mjs +29 -0
  47. package/esm2020/lib/auth/router/provider/uirouter/role.hook.mjs +32 -0
  48. package/esm2020/lib/auth/router/provider/uirouter/state.hook.mjs +53 -0
  49. package/esm2020/lib/auth/router/state/auth.router.state.module.mjs +32 -0
  50. package/esm2020/lib/auth/router/state/effect/auth.router.state.effect.mjs +46 -0
  51. package/esm2020/lib/auth/router/state/effect/index.mjs +2 -0
  52. package/esm2020/lib/auth/router/state/index.mjs +3 -0
  53. package/esm2020/lib/auth/service/auth.service.mjs +6 -0
  54. package/esm2020/lib/auth/service/auth.service.rxjs.mjs +27 -0
  55. package/esm2020/lib/auth/service/index.mjs +3 -0
  56. package/esm2020/lib/auth/state/action/auth.action.mjs +14 -0
  57. package/esm2020/lib/auth/state/action/index.mjs +12 -0
  58. package/esm2020/lib/auth/state/action/user.action.mjs +18 -0
  59. package/esm2020/lib/auth/state/effect/auth.effect.mjs +44 -0
  60. package/esm2020/lib/auth/state/index.mjs +13 -0
  61. package/esm2020/lib/auth/state/reducer/index.mjs +23 -0
  62. package/esm2020/lib/auth/state/reducer/user.reducer.mjs +12 -0
  63. package/esm2020/lib/auth/state/state.mjs +2 -0
  64. package/esm2020/lib/button/action/action.button.directive.mjs +14 -13
  65. package/esm2020/lib/button/action/action.button.trigger.directive.mjs +6 -6
  66. package/esm2020/lib/button/button.directive.mjs +7 -7
  67. package/esm2020/lib/button/button.loading.directive.mjs +3 -3
  68. package/esm2020/lib/button/button.mjs +1 -1
  69. package/esm2020/lib/button/button.module.mjs +4 -4
  70. package/esm2020/lib/button/router/button.segue.directive.mjs +8 -4
  71. package/esm2020/lib/context/context.directive.mjs +41 -0
  72. package/esm2020/lib/context/context.mjs +22 -0
  73. package/esm2020/lib/context/context.module.mjs +28 -0
  74. package/esm2020/lib/context/context.service.mjs +29 -0
  75. package/esm2020/lib/context/index.mjs +6 -0
  76. package/esm2020/lib/context/state/action/data.action.mjs +10 -0
  77. package/esm2020/lib/context/state/action/index.mjs +7 -0
  78. package/esm2020/lib/context/state/effect/index.mjs +38 -0
  79. package/esm2020/lib/context/state/index.mjs +13 -0
  80. package/esm2020/lib/context/state/reducer/data.reducer.mjs +16 -0
  81. package/esm2020/lib/context/state/reducer/index.mjs +25 -0
  82. package/esm2020/lib/context/state/state.mjs +2 -0
  83. package/esm2020/lib/filter/action/action.filter.source.directive.mjs +6 -6
  84. package/esm2020/lib/filter/filter.abstract.connector.directive.mjs +3 -3
  85. package/esm2020/lib/filter/filter.abstract.source.directive.mjs +4 -4
  86. package/esm2020/lib/filter/filter.connector.directive.mjs +3 -3
  87. package/esm2020/lib/filter/filter.map.connector.directive.mjs +3 -3
  88. package/esm2020/lib/filter/filter.map.directive.mjs +3 -3
  89. package/esm2020/lib/filter/filter.map.instance.directive.mjs +3 -3
  90. package/esm2020/lib/filter/filter.map.source.directive.mjs +3 -3
  91. package/esm2020/lib/filter/filter.module.mjs +4 -4
  92. package/esm2020/lib/filter/filter.source.directive.mjs +3 -3
  93. package/esm2020/lib/index.mjs +6 -2
  94. package/esm2020/lib/injection/index.mjs +9 -0
  95. package/esm2020/lib/injection/injection.component.mjs +34 -0
  96. package/esm2020/lib/injection/injection.component.module.mjs +31 -0
  97. package/esm2020/lib/injection/injection.context.directive.mjs +124 -0
  98. package/esm2020/lib/injection/injection.context.forward.directive.mjs +30 -0
  99. package/esm2020/lib/injection/injection.context.mjs +18 -0
  100. package/esm2020/lib/injection/injection.directive.mjs +33 -0
  101. package/esm2020/lib/injection/injection.instance.mjs +116 -0
  102. package/esm2020/lib/injection/injection.mjs +16 -0
  103. package/esm2020/lib/ngrx/index.mjs +2 -0
  104. package/esm2020/lib/ngrx/store.lockset.mjs +64 -0
  105. package/esm2020/lib/pipe/date/date.pipe.module.mjs +4 -4
  106. package/esm2020/lib/pipe/date/datedistance.pipe.mjs +3 -3
  107. package/esm2020/lib/pipe/date/dateformatdistance.pipe.mjs +3 -3
  108. package/esm2020/lib/pipe/date/datefromtoformat.pipe.mjs +3 -3
  109. package/esm2020/lib/pipe/date/minutesstring.pipe.mjs +3 -3
  110. package/esm2020/lib/pipe/date/timedistance.pipe.mjs +6 -6
  111. package/esm2020/lib/pipe/date/tojsdate.pipe.mjs +13 -5
  112. package/esm2020/lib/pipe/date/tominutes.pipe.mjs +3 -3
  113. package/esm2020/lib/pipe/index.mjs +3 -1
  114. package/esm2020/lib/pipe/misc/index.mjs +3 -0
  115. package/esm2020/lib/pipe/misc/misc.pipe.module.mjs +20 -0
  116. package/esm2020/lib/pipe/misc/prettyjson.pipe.mjs +27 -0
  117. package/esm2020/lib/pipe/pipe.module.mjs +21 -0
  118. package/esm2020/lib/router/anchor/anchor.directive.mjs +18 -5
  119. package/esm2020/lib/router/anchor/anchor.mjs +1 -1
  120. package/esm2020/lib/router/router/provider/angular/angular.router.service.mjs +8 -5
  121. package/esm2020/lib/router/router/provider/angular/angular.router.service.module.mjs +4 -4
  122. package/esm2020/lib/router/router/provider/uirouter/uirouter.router.service.mjs +32 -10
  123. package/esm2020/lib/router/router/provider/uirouter/uirouter.router.service.module.mjs +4 -4
  124. package/esm2020/lib/router/router/service/index.mjs +2 -1
  125. package/esm2020/lib/router/router/service/router.go.mjs +14 -0
  126. package/esm2020/lib/router/router/service/router.service.mjs +1 -1
  127. package/esm2020/lib/router/router/transition/transition.directive.mjs +7 -7
  128. package/esm2020/lib/router/router/transition/transition.watcher.directive.mjs +6 -6
  129. package/esm2020/lib/router/segue.mjs +17 -2
  130. package/esm2020/lib/storage/storage.accessor.simple.factory.mjs +3 -3
  131. package/esm2020/lib/storage/storage.module.mjs +4 -4
  132. package/esm2020/lib/subscription/subscription.directive.mjs +6 -6
  133. package/esm2020/lib/util/view.mjs +18 -2
  134. package/esm2020/lib/view/if.directive.mjs +30 -0
  135. package/esm2020/lib/view/index.mjs +2 -0
  136. package/fesm2015/dereekb-dbx-core.mjs +1977 -690
  137. package/fesm2015/dereekb-dbx-core.mjs.map +1 -1
  138. package/fesm2020/dereekb-dbx-core.mjs +1970 -683
  139. package/fesm2020/dereekb-dbx-core.mjs.map +1 -1
  140. package/lib/action/action.d.ts +14 -12
  141. package/lib/action/action.handler.d.ts +7 -67
  142. package/lib/action/action.holder.d.ts +9 -5
  143. package/lib/action/action.machine.d.ts +21 -8
  144. package/lib/action/action.module.d.ts +5 -5
  145. package/lib/action/action.reference.d.ts +11 -0
  146. package/lib/action/action.store.d.ts +33 -15
  147. package/lib/action/action.store.source.d.ts +20 -13
  148. package/lib/action/directive/auto/action.automodify.directive.d.ts +5 -4
  149. package/lib/action/directive/auto/action.autotrigger.directive.d.ts +9 -9
  150. package/lib/action/directive/auto/index.d.ts +1 -1
  151. package/lib/action/directive/context/action.directive.d.ts +3 -3
  152. package/lib/action/directive/debug/action.logger.directive.d.ts +3 -3
  153. package/lib/action/directive/map/action.map.working.disable.directive.d.ts +6 -6
  154. package/lib/action/directive/state/action.disabled.directive.d.ts +5 -4
  155. package/lib/action/directive/state/action.enforce.modified.directive.d.ts +20 -0
  156. package/lib/action/directive/state/action.handler.directive.d.ts +3 -3
  157. package/lib/action/directive/state/action.success.directive.d.ts +11 -19
  158. package/lib/action/directive/state/action.success.handler.directive.d.ts +24 -0
  159. package/lib/action/directive/state/action.value.directive.d.ts +8 -8
  160. package/lib/action/directive/state/action.value.stream.directive.d.ts +25 -0
  161. package/lib/action/directive/state/action.value.trigger.directive.d.ts +34 -0
  162. package/lib/action/directive/state/action.value.trigger.instance.d.ts +34 -0
  163. package/lib/action/directive/state/action.working.component.d.ts +13 -7
  164. package/lib/action/directive/state/index.d.ts +4 -2
  165. package/lib/action/index.d.ts +1 -1
  166. package/lib/auth/auth.module.d.ts +8 -0
  167. package/lib/auth/auth.role.any.directive.d.ts +20 -0
  168. package/lib/auth/auth.role.has.directive.d.ts +20 -0
  169. package/lib/auth/auth.state.module.d.ts +8 -0
  170. package/lib/auth/auth.state.service.d.ts +13 -0
  171. package/lib/auth/auth.user.d.ts +28 -0
  172. package/lib/auth/index.d.ts +9 -0
  173. package/lib/auth/router/auth.router.d.ts +10 -0
  174. package/lib/auth/router/auth.router.module.d.ts +9 -0
  175. package/lib/auth/router/auth.router.service.d.ts +38 -0
  176. package/lib/auth/router/index.d.ts +5 -0
  177. package/lib/auth/router/provider/uirouter/auth.hook.d.ts +18 -0
  178. package/lib/auth/router/provider/uirouter/hook.d.ts +46 -0
  179. package/lib/auth/router/provider/uirouter/index.d.ts +5 -0
  180. package/lib/auth/router/provider/uirouter/redirect.d.ts +9 -0
  181. package/lib/auth/router/provider/uirouter/role.hook.d.ts +26 -0
  182. package/lib/auth/router/provider/uirouter/state.hook.d.ts +31 -0
  183. package/lib/auth/router/state/auth.router.state.module.d.ts +14 -0
  184. package/lib/auth/router/state/effect/auth.router.state.effect.d.ts +32 -0
  185. package/lib/auth/router/state/effect/index.d.ts +1 -0
  186. package/lib/auth/router/state/index.d.ts +2 -0
  187. package/lib/auth/service/auth.service.d.ts +46 -0
  188. package/lib/auth/service/auth.service.rxjs.d.ts +18 -0
  189. package/lib/auth/service/index.d.ts +2 -0
  190. package/lib/auth/state/action/auth.action.d.ts +12 -0
  191. package/lib/auth/state/action/index.d.ts +11 -0
  192. package/lib/auth/state/action/user.action.d.ts +34 -0
  193. package/lib/auth/state/effect/auth.effect.d.ts +31 -0
  194. package/lib/auth/state/index.d.ts +12 -0
  195. package/lib/auth/state/reducer/index.d.ts +29 -0
  196. package/lib/auth/state/reducer/user.reducer.d.ts +11 -0
  197. package/lib/auth/state/state.d.ts +5 -0
  198. package/lib/button/action/action.button.directive.d.ts +4 -4
  199. package/lib/button/action/action.button.trigger.directive.d.ts +3 -3
  200. package/lib/button/button.d.ts +5 -5
  201. package/lib/button/button.directive.d.ts +2 -2
  202. package/lib/button/router/button.segue.directive.d.ts +1 -0
  203. package/lib/context/context.d.ts +39 -0
  204. package/lib/context/context.directive.d.ts +19 -0
  205. package/lib/context/context.module.d.ts +8 -0
  206. package/lib/context/context.service.d.ts +16 -0
  207. package/lib/context/index.d.ts +5 -0
  208. package/lib/context/state/action/data.action.d.ts +13 -0
  209. package/lib/context/state/action/index.d.ts +6 -0
  210. package/lib/context/state/effect/index.d.ts +39 -0
  211. package/lib/context/state/index.d.ts +12 -0
  212. package/lib/context/state/reducer/data.reducer.d.ts +13 -0
  213. package/lib/context/state/reducer/index.d.ts +34 -0
  214. package/lib/context/state/state.d.ts +9 -0
  215. package/lib/filter/action/action.filter.source.directive.d.ts +2 -2
  216. package/lib/filter/filter.abstract.source.directive.d.ts +2 -2
  217. package/lib/index.d.ts +5 -1
  218. package/lib/injection/index.d.ts +8 -0
  219. package/lib/injection/injection.component.d.ts +15 -0
  220. package/lib/injection/injection.component.module.d.ts +9 -0
  221. package/lib/injection/injection.context.d.ts +39 -0
  222. package/lib/injection/injection.context.directive.d.ts +25 -0
  223. package/lib/injection/injection.context.forward.directive.d.ts +16 -0
  224. package/lib/{injected/injected.d.ts → injection/injection.d.ts} +4 -4
  225. package/lib/injection/injection.directive.d.ts +19 -0
  226. package/lib/{injected/injected.instance.d.ts → injection/injection.instance.d.ts} +8 -8
  227. package/lib/ngrx/index.d.ts +1 -0
  228. package/lib/ngrx/store.lockset.d.ts +36 -0
  229. package/lib/pipe/index.d.ts +2 -0
  230. package/lib/pipe/misc/index.d.ts +2 -0
  231. package/lib/pipe/misc/misc.pipe.module.d.ts +7 -0
  232. package/lib/pipe/misc/prettyjson.pipe.d.ts +9 -0
  233. package/lib/pipe/pipe.module.d.ts +8 -0
  234. package/lib/router/anchor/anchor.d.ts +5 -1
  235. package/lib/router/anchor/anchor.directive.d.ts +10 -2
  236. package/lib/router/router/provider/angular/angular.router.service.d.ts +7 -5
  237. package/lib/router/router/provider/uirouter/uirouter.router.service.d.ts +11 -5
  238. package/lib/router/router/service/index.d.ts +1 -0
  239. package/lib/router/router/service/router.go.d.ts +14 -0
  240. package/lib/router/router/service/router.service.d.ts +10 -4
  241. package/lib/router/router/transition/transition.directive.d.ts +2 -2
  242. package/lib/router/router/transition/transition.watcher.directive.d.ts +1 -1
  243. package/lib/router/segue.d.ts +10 -3
  244. package/lib/util/view.d.ts +12 -0
  245. package/lib/view/if.directive.d.ts +19 -0
  246. package/lib/view/index.d.ts +1 -0
  247. package/package.json +7 -18
  248. package/esm2020/lib/action/directive/auto/action.autotrigger.value.directive.mjs +0 -79
  249. package/esm2020/lib/action/directive/state/action.disabled.modified.directive.mjs +0 -35
  250. package/esm2020/lib/action/directive/state/action.success.component.mjs +0 -50
  251. package/esm2020/lib/action/snackbar/index.mjs +0 -3
  252. package/esm2020/lib/action/snackbar/snackbar.mjs +0 -24
  253. package/esm2020/lib/injected/index.mjs +0 -6
  254. package/esm2020/lib/injected/injected.component.mjs +0 -34
  255. package/esm2020/lib/injected/injected.component.module.mjs +0 -26
  256. package/esm2020/lib/injected/injected.directive.mjs +0 -33
  257. package/esm2020/lib/injected/injected.instance.mjs +0 -116
  258. package/esm2020/lib/injected/injected.mjs +0 -16
  259. package/lib/action/directive/auto/action.autotrigger.value.directive.d.ts +0 -25
  260. package/lib/action/directive/state/action.disabled.modified.directive.d.ts +0 -16
  261. package/lib/action/directive/state/action.success.component.d.ts +0 -15
  262. package/lib/action/snackbar/index.d.ts +0 -1
  263. package/lib/action/snackbar/snackbar.d.ts +0 -50
  264. package/lib/injected/index.d.ts +0 -5
  265. package/lib/injected/injected.component.d.ts +0 -15
  266. package/lib/injected/injected.component.module.d.ts +0 -8
  267. package/lib/injected/injected.directive.d.ts +0 -19
@@ -0,0 +1,36 @@
1
+ import { BehaviorSubject } from 'rxjs';
2
+ import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';
3
+ import { authRolesSetContainsAnyRoleFrom, DbxAuthService } from './service';
4
+ import { AbstractIfDirective } from '../view/if.directive';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./service";
7
+ /**
8
+ * Structural decorator directive similar to ngIf that embeds content if the current auth user has any of the target role(s).
9
+ */
10
+ export class DbxAuthHasAnyRoleDirective extends AbstractIfDirective {
11
+ constructor(templateRef, viewContainer, dbxAuthService) {
12
+ super(templateRef, viewContainer);
13
+ this.dbxAuthService = dbxAuthService;
14
+ this._targetRoles = new BehaviorSubject(undefined);
15
+ this.targetRoles$ = this._targetRoles.asObservable();
16
+ this.show$ = this.dbxAuthService.authRoles$.pipe(authRolesSetContainsAnyRoleFrom(this.targetRoles$));
17
+ }
18
+ ngOnDestroy() {
19
+ this._targetRoles.complete();
20
+ }
21
+ set targetRoles(roles) {
22
+ this._targetRoles.next(roles);
23
+ }
24
+ }
25
+ DbxAuthHasAnyRoleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAuthHasAnyRoleDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i1.DbxAuthService }], target: i0.ɵɵFactoryTarget.Directive });
26
+ DbxAuthHasAnyRoleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: DbxAuthHasAnyRoleDirective, selector: "[dbxAuthHasAnyRole]", inputs: { targetRoles: ["dbxAuthHasAnyRole", "targetRoles"] }, usesInheritance: true, ngImport: i0 });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAuthHasAnyRoleDirective, decorators: [{
28
+ type: Directive,
29
+ args: [{
30
+ selector: '[dbxAuthHasAnyRole]'
31
+ }]
32
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i1.DbxAuthService }]; }, propDecorators: { targetRoles: [{
33
+ type: Input,
34
+ args: ['dbxAuthHasAnyRole']
35
+ }] } });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5yb2xlLmFueS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2F1dGgvYXV0aC5yb2xlLmFueS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLCtCQUErQixFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUU1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBRTNEOztHQUVHO0FBSUgsTUFBTSxPQUFPLDBCQUEyQixTQUFRLG1CQUFtQjtJQU9qRSxZQUNFLFdBQTZCLEVBQzdCLGFBQStCLEVBQ3ZCLGNBQThCO1FBRXRDLEtBQUssQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFGMUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBUmhDLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQWdDLFNBQVMsQ0FBQyxDQUFDO1FBQzVFLGlCQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVoRCxVQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBUXpHLENBQUM7SUFFUSxXQUFXO1FBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQ0ksV0FBVyxDQUFDLEtBQW9DO1FBQ2xELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7O3VIQXRCVSwwQkFBMEI7MkdBQTFCLDBCQUEwQjsyRkFBMUIsMEJBQTBCO2tCQUh0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7aUJBQ2hDOzhKQXFCSyxXQUFXO3NCQURkLEtBQUs7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aFJvbGUsIEFycmF5T3JWYWx1ZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhdXRoUm9sZXNTZXRDb250YWluc0FueVJvbGVGcm9tLCBEYnhBdXRoU2VydmljZSB9IGZyb20gJy4vc2VydmljZSc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQWJzdHJhY3RJZkRpcmVjdGl2ZSB9IGZyb20gJy4uL3ZpZXcvaWYuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBTdHJ1Y3R1cmFsIGRlY29yYXRvciBkaXJlY3RpdmUgc2ltaWxhciB0byBuZ0lmIHRoYXQgZW1iZWRzIGNvbnRlbnQgaWYgdGhlIGN1cnJlbnQgYXV0aCB1c2VyIGhhcyBhbnkgb2YgdGhlIHRhcmdldCByb2xlKHMpLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4QXV0aEhhc0FueVJvbGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBEYnhBdXRoSGFzQW55Um9sZURpcmVjdGl2ZSBleHRlbmRzIEFic3RyYWN0SWZEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX3RhcmdldFJvbGVzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxBcnJheU9yVmFsdWU8QXV0aFJvbGU+Pj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgdGFyZ2V0Um9sZXMkID0gdGhpcy5fdGFyZ2V0Um9sZXMuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcmVhZG9ubHkgc2hvdyQgPSB0aGlzLmRieEF1dGhTZXJ2aWNlLmF1dGhSb2xlcyQucGlwZShhdXRoUm9sZXNTZXRDb250YWluc0FueVJvbGVGcm9tKHRoaXMudGFyZ2V0Um9sZXMkKSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIGRieEF1dGhTZXJ2aWNlOiBEYnhBdXRoU2VydmljZVxuICApIHtcbiAgICBzdXBlcih0ZW1wbGF0ZVJlZiwgdmlld0NvbnRhaW5lcik7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl90YXJnZXRSb2xlcy5jb21wbGV0ZSgpO1xuICB9XG5cbiAgQElucHV0KCdkYnhBdXRoSGFzQW55Um9sZScpXG4gIHNldCB0YXJnZXRSb2xlcyhyb2xlczogTWF5YmU8QXJyYXlPclZhbHVlPEF1dGhSb2xlPj4pIHtcbiAgICB0aGlzLl90YXJnZXRSb2xlcy5uZXh0KHJvbGVzKTtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,36 @@
1
+ import { BehaviorSubject } from 'rxjs';
2
+ import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';
3
+ import { authRolesSetContainsAllRolesFrom, DbxAuthService } from './service';
4
+ import { AbstractIfDirective } from '../view/if.directive';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./service";
7
+ /**
8
+ * Structural decorator directive similar to ngIf that embeds content if the current auth user has all of the target role(s).
9
+ */
10
+ export class DbxAuthHasRolesDirective extends AbstractIfDirective {
11
+ constructor(templateRef, viewContainer, dbxAuthService) {
12
+ super(templateRef, viewContainer);
13
+ this.dbxAuthService = dbxAuthService;
14
+ this._targetRoles = new BehaviorSubject(undefined);
15
+ this.targetRoles$ = this._targetRoles.asObservable();
16
+ this.show$ = this.dbxAuthService.authRoles$.pipe(authRolesSetContainsAllRolesFrom(this.targetRoles$));
17
+ }
18
+ ngOnDestroy() {
19
+ this._targetRoles.complete();
20
+ }
21
+ set targetRoles(roles) {
22
+ this._targetRoles.next(roles);
23
+ }
24
+ }
25
+ DbxAuthHasRolesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAuthHasRolesDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i1.DbxAuthService }], target: i0.ɵɵFactoryTarget.Directive });
26
+ DbxAuthHasRolesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: DbxAuthHasRolesDirective, selector: "[dbxAuthHasRoles]", inputs: { targetRoles: ["dbxAuthHasRoles", "targetRoles"] }, usesInheritance: true, ngImport: i0 });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAuthHasRolesDirective, decorators: [{
28
+ type: Directive,
29
+ args: [{
30
+ selector: '[dbxAuthHasRoles]'
31
+ }]
32
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i1.DbxAuthService }]; }, propDecorators: { targetRoles: [{
33
+ type: Input,
34
+ args: ['dbxAuthHasRoles']
35
+ }] } });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5yb2xlLmhhcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2F1dGgvYXV0aC5yb2xlLmhhcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUU3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBRTNEOztHQUVHO0FBSUgsTUFBTSxPQUFPLHdCQUF5QixTQUFRLG1CQUFtQjtJQU8vRCxZQUNFLFdBQTZCLEVBQzdCLGFBQStCLEVBQ3ZCLGNBQThCO1FBRXRDLEtBQUssQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFGMUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBUmhDLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQWdDLFNBQVMsQ0FBQyxDQUFDO1FBQzVFLGlCQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVoRCxVQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBUTFHLENBQUM7SUFFUSxXQUFXO1FBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQ0ksV0FBVyxDQUFDLEtBQW9DO1FBQ2xELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7O3FIQXRCVSx3QkFBd0I7eUdBQXhCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQUhwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCOzhKQXFCSyxXQUFXO3NCQURkLEtBQUs7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aFJvbGUsIEFycmF5T3JWYWx1ZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhdXRoUm9sZXNTZXRDb250YWluc0FsbFJvbGVzRnJvbSwgRGJ4QXV0aFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2UnO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEFic3RyYWN0SWZEaXJlY3RpdmUgfSBmcm9tICcuLi92aWV3L2lmLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogU3RydWN0dXJhbCBkZWNvcmF0b3IgZGlyZWN0aXZlIHNpbWlsYXIgdG8gbmdJZiB0aGF0IGVtYmVkcyBjb250ZW50IGlmIHRoZSBjdXJyZW50IGF1dGggdXNlciBoYXMgYWxsIG9mIHRoZSB0YXJnZXQgcm9sZShzKS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieEF1dGhIYXNSb2xlc10nXG59KVxuZXhwb3J0IGNsYXNzIERieEF1dGhIYXNSb2xlc0RpcmVjdGl2ZSBleHRlbmRzIEFic3RyYWN0SWZEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX3RhcmdldFJvbGVzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxBcnJheU9yVmFsdWU8QXV0aFJvbGU+Pj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgdGFyZ2V0Um9sZXMkID0gdGhpcy5fdGFyZ2V0Um9sZXMuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcmVhZG9ubHkgc2hvdyQgPSB0aGlzLmRieEF1dGhTZXJ2aWNlLmF1dGhSb2xlcyQucGlwZShhdXRoUm9sZXNTZXRDb250YWluc0FsbFJvbGVzRnJvbSh0aGlzLnRhcmdldFJvbGVzJCkpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBkYnhBdXRoU2VydmljZTogRGJ4QXV0aFNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIodGVtcGxhdGVSZWYsIHZpZXdDb250YWluZXIpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fdGFyZ2V0Um9sZXMuY29tcGxldGUoKTtcbiAgfVxuXG4gIEBJbnB1dCgnZGJ4QXV0aEhhc1JvbGVzJylcbiAgc2V0IHRhcmdldFJvbGVzKHJvbGVzOiBNYXliZTxBcnJheU9yVmFsdWU8QXV0aFJvbGU+Pikge1xuICAgIHRoaXMuX3RhcmdldFJvbGVzLm5leHQocm9sZXMpO1xuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { fromDbxAppAuth } from './state';
2
+ import { NgModule } from '@angular/core';
3
+ import { EffectsModule } from '@ngrx/effects';
4
+ import { StoreModule } from '@ngrx/store';
5
+ import { DbxAppAuthEffects } from './state/effect/auth.effect';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@ngrx/store";
8
+ import * as i2 from "@ngrx/effects";
9
+ export class DbxAppAuthStateModule {
10
+ }
11
+ DbxAppAuthStateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAppAuthStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ DbxAppAuthStateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAppAuthStateModule, imports: [i1.StoreFeatureModule, i2.EffectsFeatureModule] });
13
+ DbxAppAuthStateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAppAuthStateModule, imports: [[
14
+ StoreModule.forFeature(fromDbxAppAuth.featureKey, fromDbxAppAuth.reducers),
15
+ EffectsModule.forFeature([DbxAppAuthEffects])
16
+ ]] });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAppAuthStateModule, decorators: [{
18
+ type: NgModule,
19
+ args: [{
20
+ imports: [
21
+ StoreModule.forFeature(fromDbxAppAuth.featureKey, fromDbxAppAuth.reducers),
22
+ EffectsModule.forFeature([DbxAppAuthEffects])
23
+ ],
24
+ declarations: [],
25
+ exports: []
26
+ }]
27
+ }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zdGF0ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2F1dGgvYXV0aC5zdGF0ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQVUvRCxNQUFNLE9BQU8scUJBQXFCOztrSEFBckIscUJBQXFCO21IQUFyQixxQkFBcUI7bUhBQXJCLHFCQUFxQixZQVB2QjtZQUNQLFdBQVcsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsUUFBUSxDQUFDO1lBQzFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQzlDOzJGQUlVLHFCQUFxQjtrQkFSakMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsV0FBVyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxRQUFRLENBQUM7d0JBQzFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO3FCQUM5QztvQkFDRCxZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFLEVBQUU7aUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tRGJ4QXBwQXV0aCB9IGZyb20gJy4vc3RhdGUnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVmZmVjdHNNb2R1bGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IFN0b3JlTW9kdWxlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgRGJ4QXBwQXV0aEVmZmVjdHMgfSBmcm9tICcuL3N0YXRlL2VmZmVjdC9hdXRoLmVmZmVjdCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBTdG9yZU1vZHVsZS5mb3JGZWF0dXJlKGZyb21EYnhBcHBBdXRoLmZlYXR1cmVLZXksIGZyb21EYnhBcHBBdXRoLnJlZHVjZXJzKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW0RieEFwcEF1dGhFZmZlY3RzXSlcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgZXhwb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgRGJ4QXBwQXV0aFN0YXRlTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,23 @@
1
+ import { Injectable } from "@angular/core";
2
+ import { Store } from "@ngrx/store";
3
+ import { fromDbxAppAuth } from './state';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@ngrx/store";
6
+ /**
7
+ * State for accessing the app's DbxAppAuthState defined within the DbxAppAuthFullState for the ngrx store.
8
+ */
9
+ export class DbxAppAuthStateService {
10
+ constructor(store) {
11
+ this.store = store;
12
+ this.authStateUser$ = this.store.select(fromDbxAppAuth.selectDbxAppAuthUser);
13
+ }
14
+ }
15
+ DbxAppAuthStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAppAuthStateService, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable });
16
+ DbxAppAuthStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAppAuthStateService, providedIn: 'root' });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAppAuthStateService, decorators: [{
18
+ type: Injectable,
19
+ args: [{
20
+ providedIn: 'root'
21
+ }]
22
+ }], ctorParameters: function () { return [{ type: i1.Store }]; } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9hdXRoL2F1dGguc3RhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7O0FBSXpDOztHQUVHO0FBSUgsTUFBTSxPQUFPLHNCQUFzQjtJQUlqQyxZQUFxQixLQUFpQztRQUFqQyxVQUFLLEdBQUwsS0FBSyxDQUE0QjtRQUY3QyxtQkFBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRXZCLENBQUM7O21IQUpoRCxzQkFBc0I7dUhBQXRCLHNCQUFzQixjQUZyQixNQUFNOzJGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSBcIkBuZ3J4L3N0b3JlXCI7XG5pbXBvcnQgeyBmcm9tRGJ4QXBwQXV0aCB9IGZyb20gJy4vc3RhdGUnO1xuaW1wb3J0IHsgRGJ4QXBwQXV0aEZ1bGxTdGF0ZSB9IGZyb20gXCIuL3N0YXRlL3N0YXRlXCI7XG5cblxuLyoqXG4gKiBTdGF0ZSBmb3IgYWNjZXNzaW5nIHRoZSBhcHAncyBEYnhBcHBBdXRoU3RhdGUgZGVmaW5lZCB3aXRoaW4gdGhlIERieEFwcEF1dGhGdWxsU3RhdGUgZm9yIHRoZSBuZ3J4IHN0b3JlLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEYnhBcHBBdXRoU3RhdGVTZXJ2aWNlIHtcblxuICByZWFkb25seSBhdXRoU3RhdGVVc2VyJCA9IHRoaXMuc3RvcmUuc2VsZWN0KGZyb21EYnhBcHBBdXRoLnNlbGVjdERieEFwcEF1dGhVc2VyKTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBzdG9yZTogU3RvcmU8RGJ4QXBwQXV0aEZ1bGxTdGF0ZT4pIHsgfVxuXG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ export const NO_AUTH_USER_IDENTIFIER = '0';
2
+ /**
3
+ * Creates an AuthUserIdentifier from the input. If the input is undefined, returns the NoAuthUserIdentifier.
4
+ *
5
+ * @param inputId
6
+ * @returns
7
+ */
8
+ export function authUserIdentifier(inputId) {
9
+ return (inputId) ? inputId : NO_AUTH_USER_IDENTIFIER;
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC51c2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9hdXRoL2F1dGgudXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQkEsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFDO0FBUTNDOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BQWtDO0lBQ25FLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQztBQUN2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF5YmUgfSBmcm9tIFwiQGRlcmVla2IvdXRpbFwiO1xuXG5cbi8qKlxuICogQW4gYXBwbGljYXRpb24gdXNlciBzdGF0ZS5cbiAqIFxuICogR2VuZXJpYyBzdGF0ZXMgdGhhdCBkZWZpbmUgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHVzZXI6XG4gKiAtIG5vbmU6IHRoZSB1c2VyIGlzIG5vdCBsb2dnZWQgaW5cbiAqIC0gYW5vbjogdGhlIHVzZXIgaXMgbG9nZ2VkIGluIGFzIGFuIGFub255bW91cyBhY2NvdW50XG4gKiAtIGVycm9yOiB0aGVyZSB3YXMgYW4gZXJyb3IgbG9hZGluZyB0aGUgY29ycmVjdCB1c2VyIHN0YXRlXG4gKiAtIG5ldzogdGhlIHVzZXIgaGFzIGEgZnVsbCBhY2NvdW50IGJ1dCBoYXMgbm90IGNvbXBsZXRlZCBvbmJvYXJkaW5nL3NldHVwXG4gKiAtIHVzZXI6IHRoZSB1c2VyIGhhcyBhIGZ1bGwgYWNjb3VudCBhbmQgaGFzIGNvbXBsZXRlZCBzZXR1cFxuICovXG5leHBvcnQgdHlwZSBBdXRoVXNlclN0YXRlID0gJ25vbmUnIHwgJ2Fub24nIHwgJ25ldycgfCAndXNlcicgfCAnZXJyb3InO1xuXG4vKipcbiAqIEFyYml0cmFyeSBpZGVudGlmaWVyIHVzZWQgdG8gZGlmZmVyZW50aWF0ZSB1c2Vycy5cbiAqL1xuZXhwb3J0IHR5cGUgQXV0aFVzZXJJZGVudGlmaWVyID0gc3RyaW5nO1xuXG5leHBvcnQgY29uc3QgTk9fQVVUSF9VU0VSX0lERU5USUZJRVIgPSAnMCc7XG5cbi8qKlxuICogQXV0aFVzZXJJZGVudGlmaWVyIHVzZWQgdG8gaW5kaWNhdGUgdGhhdCB0aGUgdXNlciBjYW5ub3QgYmUgdW5pcXVlbHkgaWRlbnRpZmllci5cbiAqL1xuZXhwb3J0IHR5cGUgTm9BdXRoVXNlcklkZW50aWZpZXIgPSB0eXBlb2YgTk9fQVVUSF9VU0VSX0lERU5USUZJRVI7XG5cblxuLyoqXG4gKiBDcmVhdGVzIGFuIEF1dGhVc2VySWRlbnRpZmllciBmcm9tIHRoZSBpbnB1dC4gSWYgdGhlIGlucHV0IGlzIHVuZGVmaW5lZCwgcmV0dXJucyB0aGUgTm9BdXRoVXNlcklkZW50aWZpZXIuXG4gKiBcbiAqIEBwYXJhbSBpbnB1dElkIFxuICogQHJldHVybnMgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhdXRoVXNlcklkZW50aWZpZXIoaW5wdXRJZDogTWF5YmU8QXV0aFVzZXJJZGVudGlmaWVyPik6IEF1dGhVc2VySWRlbnRpZmllciB7XG4gIHJldHVybiAoaW5wdXRJZCkgPyBpbnB1dElkIDogTk9fQVVUSF9VU0VSX0lERU5USUZJRVI7XG59XG4iXX0=
@@ -0,0 +1,10 @@
1
+ export * from './router';
2
+ export * from './service';
3
+ export * from './state';
4
+ export * from './auth.user';
5
+ export * from './auth.module';
6
+ export * from './auth.role.any.directive';
7
+ export * from './auth.role.has.directive';
8
+ export * from './auth.state.module';
9
+ export * from './auth.state.service';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2F1dGgvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcm91dGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0YXRlJ1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLnVzZXInO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2F1dGgucm9sZS5hbnkuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC5yb2xlLmhhcy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLnN0YXRlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2F1dGguc3RhdGUuc2VydmljZSc7XG4iXX0=
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Auth routes configurations for an app.
3
+ */
4
+ export class DbxAppAuthRoutes {
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5yb3V0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2F1dGgvcm91dGVyL2F1dGgucm91dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixnQkFBZ0I7Q0FLckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWd1ZVJlZk9yU2VndWVSZWZSb3V0ZXJMaW5rIH0gZnJvbSAnLi4vLi4vcm91dGVyL3NlZ3VlJztcblxuLyoqXG4gKiBBdXRoIHJvdXRlcyBjb25maWd1cmF0aW9ucyBmb3IgYW4gYXBwLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGJ4QXBwQXV0aFJvdXRlcyB7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGxvZ2luUmVmOiBTZWd1ZVJlZk9yU2VndWVSZWZSb3V0ZXJMaW5rO1xuICBhYnN0cmFjdCByZWFkb25seSBsb2dnZWRPdXRSZWY/OiBTZWd1ZVJlZk9yU2VndWVSZWZSb3V0ZXJMaW5rO1xuICBhYnN0cmFjdCByZWFkb25seSBvbmJvYXJkUmVmPzogU2VndWVSZWZPclNlZ3VlUmVmUm91dGVyTGluaztcbiAgYWJzdHJhY3QgcmVhZG9ubHkgYXBwUmVmOiBTZWd1ZVJlZk9yU2VndWVSZWZSb3V0ZXJMaW5rO1xufVxuIl19
@@ -0,0 +1,26 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { DbxAppAuthRoutes } from './auth.router';
3
+ import * as i0 from "@angular/core";
4
+ export class DbxAppAuthRouterModule {
5
+ static forRoot(dbxAppAuthRoutes) {
6
+ return {
7
+ ngModule: DbxAppAuthRouterModule,
8
+ providers: [{
9
+ provide: DbxAppAuthRoutes,
10
+ useValue: dbxAppAuthRoutes
11
+ }]
12
+ };
13
+ }
14
+ }
15
+ DbxAppAuthRouterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAppAuthRouterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
+ DbxAppAuthRouterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAppAuthRouterModule });
17
+ DbxAppAuthRouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAppAuthRouterModule, imports: [[]] });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAppAuthRouterModule, decorators: [{
19
+ type: NgModule,
20
+ args: [{
21
+ imports: [],
22
+ declarations: [],
23
+ exports: []
24
+ }]
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5yb3V0ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9hdXRoL3JvdXRlci9hdXRoLnJvdXRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9qRCxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWtDO1FBQy9DLE9BQU87WUFDTCxRQUFRLEVBQUUsc0JBQXNCO1lBQ2hDLFNBQVMsRUFBRSxDQUFDO29CQUNWLE9BQU8sRUFBRSxnQkFBZ0I7b0JBQ3pCLFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzNCLENBQUM7U0FDSCxDQUFDO0lBQ0osQ0FBQzs7bUhBVlUsc0JBQXNCO29IQUF0QixzQkFBc0I7b0hBQXRCLHNCQUFzQixZQUp4QixFQUFFOzJGQUlBLHNCQUFzQjtrQkFMbEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsRUFBRTtvQkFDWCxZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFLEVBQUU7aUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4QXBwQXV0aFJvdXRlcyB9IGZyb20gJy4vYXV0aC5yb3V0ZXInO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXSxcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgZXhwb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgRGJ4QXBwQXV0aFJvdXRlck1vZHVsZSB7XG5cbiAgc3RhdGljIGZvclJvb3QoZGJ4QXBwQXV0aFJvdXRlczogRGJ4QXBwQXV0aFJvdXRlcyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RGJ4QXBwQXV0aFJvdXRlck1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogRGJ4QXBwQXV0aFJvdXRlck1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW3tcbiAgICAgICAgcHJvdmlkZTogRGJ4QXBwQXV0aFJvdXRlcyxcbiAgICAgICAgdXNlVmFsdWU6IGRieEFwcEF1dGhSb3V0ZXNcbiAgICAgIH1dXG4gICAgfTtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,61 @@
1
+ import { Injectable } from "@angular/core";
2
+ import { goWithRouter } from "../../router";
3
+ import { DbxRouterService } from "../../router/router/service/router.service";
4
+ import { DbxAppAuthRoutes } from "./auth.router";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../router/router/service/router.service";
7
+ import * as i2 from "./auth.router";
8
+ /**
9
+ * Helper service for navigating to important auth-related routes.
10
+ */
11
+ export class DbxAppAuthRouterService {
12
+ constructor(dbxRouterService, dbxAppAuthRoutes) {
13
+ this.dbxRouterService = dbxRouterService;
14
+ this.dbxAppAuthRoutes = dbxAppAuthRoutes;
15
+ }
16
+ get hasOnboardingState() {
17
+ return Boolean(this.dbxAppAuthRoutes.onboardRef);
18
+ }
19
+ // MARK: Navigate
20
+ /**
21
+ * Navigates to the login state.
22
+ *
23
+ * @returns
24
+ */
25
+ goToLogin() {
26
+ return goWithRouter(this.dbxRouterService)(this.dbxAppAuthRoutes.loginRef);
27
+ }
28
+ /**
29
+ * Navigates to the logged out state, if it exists, otherwise navigates to the login state.
30
+ *
31
+ * @returns
32
+ */
33
+ goToLoggedOut() {
34
+ return goWithRouter(this.dbxRouterService)(this.dbxAppAuthRoutes.loggedOutRef ?? this.dbxAppAuthRoutes.loginRef);
35
+ }
36
+ /**
37
+ * Navigates to the onboarding state if it is available, otherwise navigates to the app.
38
+ *
39
+ * @returns
40
+ */
41
+ goToOnboarding() {
42
+ return goWithRouter(this.dbxRouterService)(this.dbxAppAuthRoutes.onboardRef ?? this.dbxAppAuthRoutes.appRef);
43
+ }
44
+ /**
45
+ * Navigates to the app state.
46
+ *
47
+ * @returns
48
+ */
49
+ goToApp() {
50
+ return goWithRouter(this.dbxRouterService)(this.dbxAppAuthRoutes.appRef);
51
+ }
52
+ }
53
+ DbxAppAuthRouterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAppAuthRouterService, deps: [{ token: i1.DbxRouterService }, { token: i2.DbxAppAuthRoutes }], target: i0.ɵɵFactoryTarget.Injectable });
54
+ DbxAppAuthRouterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAppAuthRouterService, providedIn: 'root' });
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAppAuthRouterService, decorators: [{
56
+ type: Injectable,
57
+ args: [{
58
+ providedIn: 'root'
59
+ }]
60
+ }], ctorParameters: function () { return [{ type: i1.DbxRouterService }, { type: i2.DbxAppAuthRoutes }]; } });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5yb3V0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvYXV0aC9yb3V0ZXIvYXV0aC5yb3V0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBRWpEOztHQUVHO0FBSUgsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxZQUFxQixnQkFBa0MsRUFBVyxnQkFBa0M7UUFBL0UscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFXLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFBSSxDQUFDO0lBRXpHLElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsaUJBQWlCO0lBQ2pCOzs7O09BSUc7SUFDSCxTQUFTO1FBQ1AsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsYUFBYTtRQUNYLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25ILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYztRQUNaLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsT0FBTztRQUNMLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzRSxDQUFDOztvSEEzQ1UsdUJBQXVCO3dIQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTsyRkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBnb1dpdGhSb3V0ZXIgfSBmcm9tIFwiLi4vLi4vcm91dGVyXCI7XG5pbXBvcnQgeyBEYnhSb3V0ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3JvdXRlci9yb3V0ZXIvc2VydmljZS9yb3V0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgRGJ4QXBwQXV0aFJvdXRlcyB9IGZyb20gXCIuL2F1dGgucm91dGVyXCI7XG5cbi8qKlxuICogSGVscGVyIHNlcnZpY2UgZm9yIG5hdmlnYXRpbmcgdG8gaW1wb3J0YW50IGF1dGgtcmVsYXRlZCByb3V0ZXMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERieEFwcEF1dGhSb3V0ZXJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBkYnhSb3V0ZXJTZXJ2aWNlOiBEYnhSb3V0ZXJTZXJ2aWNlLCByZWFkb25seSBkYnhBcHBBdXRoUm91dGVzOiBEYnhBcHBBdXRoUm91dGVzKSB7IH1cblxuICBnZXQgaGFzT25ib2FyZGluZ1N0YXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBCb29sZWFuKHRoaXMuZGJ4QXBwQXV0aFJvdXRlcy5vbmJvYXJkUmVmKTtcbiAgfVxuXG4gIC8vIE1BUks6IE5hdmlnYXRlXG4gIC8qKlxuICAgKiBOYXZpZ2F0ZXMgdG8gdGhlIGxvZ2luIHN0YXRlLlxuICAgKiBcbiAgICogQHJldHVybnMgXG4gICAqL1xuICBnb1RvTG9naW4oKSB7XG4gICAgcmV0dXJuIGdvV2l0aFJvdXRlcih0aGlzLmRieFJvdXRlclNlcnZpY2UpKHRoaXMuZGJ4QXBwQXV0aFJvdXRlcy5sb2dpblJlZik7XG4gIH1cblxuICAvKipcbiAgICogTmF2aWdhdGVzIHRvIHRoZSBsb2dnZWQgb3V0IHN0YXRlLCBpZiBpdCBleGlzdHMsIG90aGVyd2lzZSBuYXZpZ2F0ZXMgdG8gdGhlIGxvZ2luIHN0YXRlLlxuICAgKiBcbiAgICogQHJldHVybnMgXG4gICAqL1xuICBnb1RvTG9nZ2VkT3V0KCkge1xuICAgIHJldHVybiBnb1dpdGhSb3V0ZXIodGhpcy5kYnhSb3V0ZXJTZXJ2aWNlKSh0aGlzLmRieEFwcEF1dGhSb3V0ZXMubG9nZ2VkT3V0UmVmID8/IHRoaXMuZGJ4QXBwQXV0aFJvdXRlcy5sb2dpblJlZik7XG4gIH1cblxuICAvKipcbiAgICogTmF2aWdhdGVzIHRvIHRoZSBvbmJvYXJkaW5nIHN0YXRlIGlmIGl0IGlzIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIG5hdmlnYXRlcyB0byB0aGUgYXBwLlxuICAgKiBcbiAgICogQHJldHVybnMgXG4gICAqL1xuICBnb1RvT25ib2FyZGluZygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gZ29XaXRoUm91dGVyKHRoaXMuZGJ4Um91dGVyU2VydmljZSkodGhpcy5kYnhBcHBBdXRoUm91dGVzLm9uYm9hcmRSZWYgPz8gdGhpcy5kYnhBcHBBdXRoUm91dGVzLmFwcFJlZik7XG4gIH1cblxuICAvKipcbiAgICogTmF2aWdhdGVzIHRvIHRoZSBhcHAgc3RhdGUuXG4gICAqIFxuICAgKiBAcmV0dXJucyBcbiAgICovXG4gIGdvVG9BcHAoKSB7XG4gICAgcmV0dXJuIGdvV2l0aFJvdXRlcih0aGlzLmRieFJvdXRlclNlcnZpY2UpKHRoaXMuZGJ4QXBwQXV0aFJvdXRlcy5hcHBSZWYpO1xuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ export * from './provider/uirouter';
2
+ export * from './state';
3
+ export * from './auth.router';
4
+ export * from './auth.router.service';
5
+ export * from './auth.router.module';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2F1dGgvcm91dGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlci91aXJvdXRlcic7XG5leHBvcnQgKiBmcm9tICcuL3N0YXRlJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC5yb3V0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLnJvdXRlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC5yb3V0ZXIubW9kdWxlJztcbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { makeAuthTransitionHook } from './hook';
2
+ /**
3
+ * This hook redirects to the configured default state when a user is not logged in for configured states.
4
+ */
5
+ export function enableIsLoggedInHook(transitionService, config) {
6
+ // Matches if the destination state's data property has a truthy 'isSecure' property
7
+ const isSecureCriteria = {
8
+ entering: (state) => {
9
+ const data = state?.data;
10
+ const match = Boolean(data?.requiredLogIn);
11
+ return match;
12
+ }
13
+ };
14
+ const assertIsLoggedIn = makeAuthTransitionHook({
15
+ ...config.options,
16
+ makeDecisionsObs(transition, authService) {
17
+ return authService.isLoggedIn$;
18
+ }
19
+ });
20
+ // Register the "requires auth" hook with the TransitionsService
21
+ transitionService.onBefore(isSecureCriteria, assertIsLoggedIn, { priority: 100 });
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ob29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9hdXRoL3JvdXRlci9wcm92aWRlci91aXJvdXRlci9hdXRoLmhvb2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFxRCxzQkFBc0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQWtCbkc7O0dBRUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsaUJBQW9DLEVBQUUsTUFBNEI7SUFFckcsb0ZBQW9GO0lBQ3BGLE1BQU0sZ0JBQWdCLEdBQXNCO1FBQzFDLFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2xCLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFBRSxJQUEyQyxDQUFDO1lBQ2hFLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDM0MsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0tBQ0YsQ0FBQztJQUVGLE1BQU0sZ0JBQWdCLEdBQXFCLHNCQUFzQixDQUFDO1FBQ2hFLEdBQUcsTUFBTSxDQUFDLE9BQU87UUFDakIsZ0JBQWdCLENBQUMsVUFBc0IsRUFBRSxXQUEyQjtZQUNsRSxPQUFPLFdBQVcsQ0FBQyxXQUFXLENBQUM7UUFDakMsQ0FBQztLQUNGLENBQUMsQ0FBQztJQUVILGdFQUFnRTtJQUNoRSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUNwRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IFRyYW5zaXRpb25TZXJ2aWNlLCBUcmFuc2l0aW9uSG9va0ZuLCBUcmFuc2l0aW9uLCBIb29rTWF0Y2hDcml0ZXJpYSB9IGZyb20gJ0B1aXJvdXRlci9jb3JlJztcbmltcG9ydCB7IERieEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aFRyYW5zaXRpb25EZWNpc2lvbiwgQXV0aFRyYW5zaXRpb25Ib29rT3B0aW9ucywgbWFrZUF1dGhUcmFuc2l0aW9uSG9vayB9IGZyb20gJy4vaG9vayc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXNMb2dnZWRJbkhvb2tDb25maWcge1xuICBvcHRpb25zOiBBdXRoVHJhbnNpdGlvbkhvb2tPcHRpb25zO1xufVxuXG4vKipcbiAqIFVJUm91dGVyIFN0YXRlIGRhdGEgd2l0aCBjb25maWd1cmF0aW9uIGZvciB0aGUgaGFzQXV0aFJvbGVIb29rLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElzTG9nZ2VkSW5TdGF0ZURhdGEge1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgdXNlciBuZWVkcyB0byBiZSBsb2dnZWQgaW4gZm9yIHRoaXMgc3RhdGUuXG4gICAqL1xuICByZXF1aXJlZExvZ0luOiBib29sZWFuO1xuXG59XG5cbi8qKlxuICogVGhpcyBob29rIHJlZGlyZWN0cyB0byB0aGUgY29uZmlndXJlZCBkZWZhdWx0IHN0YXRlIHdoZW4gYSB1c2VyIGlzIG5vdCBsb2dnZWQgaW4gZm9yIGNvbmZpZ3VyZWQgc3RhdGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5hYmxlSXNMb2dnZWRJbkhvb2sodHJhbnNpdGlvblNlcnZpY2U6IFRyYW5zaXRpb25TZXJ2aWNlLCBjb25maWc6IElzTG9nZ2VkSW5Ib29rQ29uZmlnKTogdm9pZCB7XG5cbiAgLy8gTWF0Y2hlcyBpZiB0aGUgZGVzdGluYXRpb24gc3RhdGUncyBkYXRhIHByb3BlcnR5IGhhcyBhIHRydXRoeSAnaXNTZWN1cmUnIHByb3BlcnR5XG4gIGNvbnN0IGlzU2VjdXJlQ3JpdGVyaWE6IEhvb2tNYXRjaENyaXRlcmlhID0ge1xuICAgIGVudGVyaW5nOiAoc3RhdGUpID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBzdGF0ZT8uZGF0YSBhcyBNYXliZTxQYXJ0aWFsPElzTG9nZ2VkSW5TdGF0ZURhdGE+PjtcbiAgICAgIGNvbnN0IG1hdGNoID0gQm9vbGVhbihkYXRhPy5yZXF1aXJlZExvZ0luKTtcbiAgICAgIHJldHVybiBtYXRjaDtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgYXNzZXJ0SXNMb2dnZWRJbjogVHJhbnNpdGlvbkhvb2tGbiA9IG1ha2VBdXRoVHJhbnNpdGlvbkhvb2soe1xuICAgIC4uLmNvbmZpZy5vcHRpb25zLFxuICAgIG1ha2VEZWNpc2lvbnNPYnModHJhbnNpdGlvbjogVHJhbnNpdGlvbiwgYXV0aFNlcnZpY2U6IERieEF1dGhTZXJ2aWNlKTogT2JzZXJ2YWJsZTxBdXRoVHJhbnNpdGlvbkRlY2lzaW9uPiB7XG4gICAgICByZXR1cm4gYXV0aFNlcnZpY2UuaXNMb2dnZWRJbiQ7XG4gICAgfVxuICB9KTtcblxuICAvLyBSZWdpc3RlciB0aGUgXCJyZXF1aXJlcyBhdXRoXCIgaG9vayB3aXRoIHRoZSBUcmFuc2l0aW9uc1NlcnZpY2VcbiAgdHJhbnNpdGlvblNlcnZpY2Uub25CZWZvcmUoaXNTZWN1cmVDcml0ZXJpYSwgYXNzZXJ0SXNMb2dnZWRJbiwgeyBwcmlvcml0eTogMTAwIH0pO1xufVxuIl19
@@ -0,0 +1,65 @@
1
+ import { catchError, map, first, firstValueFrom, of, switchMap } from 'rxjs';
2
+ import { DbxAuthService } from '../../../service/auth.service';
3
+ import { getValueFromGetter, isGetter } from '@dereekb/util';
4
+ /**
5
+ * This generates a TransitionHookFn that can be used with redirecting routes.
6
+ */
7
+ export function makeAuthTransitionHook(config) {
8
+ const { defaultRedirectTarget, errorRedirectTarget = defaultRedirectTarget } = config;
9
+ // https://ui-router.github.io/ng2/docs/latest/modules/transition.html#hookresult
10
+ const assertIsAuthenticated = (transition) => {
11
+ const injector = transition.injector();
12
+ const authService = injector.get(DbxAuthService);
13
+ const $state = transition.router.stateService;
14
+ const decisionObs = config.makeDecisionsObs(transition, authService, injector);
15
+ function redirectOut() {
16
+ const stateData = transition.targetState().state().data;
17
+ const redirectTo = stateData?.redirectTo;
18
+ let redirectToObs;
19
+ if (redirectTo) {
20
+ let resultObs;
21
+ if (isGetter(redirectTo)) {
22
+ resultObs = getValueFromGetter(redirectTo, { authService, injector, transition });
23
+ }
24
+ else {
25
+ resultObs = of(redirectTo);
26
+ }
27
+ redirectToObs = resultObs.pipe(map((stateRef) => {
28
+ let redirectTarget;
29
+ let redirectParams;
30
+ if (stateRef) {
31
+ redirectTarget = stateRef.ref;
32
+ redirectParams = stateRef.refParams;
33
+ }
34
+ if (!redirectTarget) {
35
+ redirectTarget = defaultRedirectTarget;
36
+ }
37
+ return $state.target(redirectTarget, redirectParams);
38
+ }));
39
+ }
40
+ else {
41
+ redirectToObs = of($state.target(defaultRedirectTarget));
42
+ }
43
+ return redirectToObs;
44
+ }
45
+ const resultObs = decisionObs.pipe(first(), switchMap((decision) => {
46
+ if (typeof decision === 'boolean') {
47
+ if (decision) {
48
+ return of(true);
49
+ }
50
+ else {
51
+ return redirectOut();
52
+ }
53
+ }
54
+ else {
55
+ return of($state.target(decision.ref, decision.refParams, decision.refOptions));
56
+ }
57
+ }), catchError((x) => {
58
+ console.warn('Encountered error in auth transition hook.', x);
59
+ return of($state.target(errorRedirectTarget, { location: true })); // Redirect to home
60
+ }));
61
+ return firstValueFrom(resultObs);
62
+ };
63
+ return assertIsAuthenticated;
64
+ }
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9vay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvYXV0aC9yb3V0ZXIvcHJvdmlkZXIvdWlyb3V0ZXIvaG9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBOEMsa0JBQWtCLEVBQUUsUUFBUSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBb0RoSDs7R0FFRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxNQUFnQztJQUNyRSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEdBQUcscUJBQXFCLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFdEYsaUZBQWlGO0lBQ2pGLE1BQU0scUJBQXFCLEdBQXFCLENBQUMsVUFBc0IsRUFBYyxFQUFFO1FBQ3JGLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2QyxNQUFNLFdBQVcsR0FBbUIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqRSxNQUFNLE1BQU0sR0FBaUIsVUFBVSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDNUQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFL0UsU0FBUyxXQUFXO1lBQ2xCLE1BQU0sU0FBUyxHQUE0QixVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ2pGLE1BQU0sVUFBVSxHQUFHLFNBQVMsRUFBRSxVQUFVLENBQUM7WUFFekMsSUFBSSxhQUFxQyxDQUFDO1lBRTFDLElBQUksVUFBVSxFQUFFO2dCQUNkLElBQUksU0FBc0MsQ0FBQztnQkFFM0MsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7b0JBQ3hCLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBdUMsQ0FBQyxDQUFDO2lCQUN4SDtxQkFBTTtvQkFDTCxTQUFTLEdBQUcsRUFBRSxDQUFDLFVBQXNCLENBQUMsQ0FBQztpQkFDeEM7Z0JBRUQsYUFBYSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQzVCLEdBQUcsQ0FBQyxDQUFDLFFBQXlCLEVBQUUsRUFBRTtvQkFDaEMsSUFBSSxjQUFjLENBQUM7b0JBQ25CLElBQUksY0FBYyxDQUFDO29CQUVuQixJQUFJLFFBQVEsRUFBRTt3QkFDWixjQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQzt3QkFDOUIsY0FBYyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7cUJBQ3JDO29CQUVELElBQUksQ0FBQyxjQUFjLEVBQUU7d0JBQ25CLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQztxQkFDeEM7b0JBRUQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQztnQkFDdkQsQ0FBQyxDQUFDLENBQ0gsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLGFBQWEsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7YUFDMUQ7WUFFRCxPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FDaEMsS0FBSyxFQUFFLEVBQ1AsU0FBUyxDQUFDLENBQUMsUUFBZ0MsRUFBMEIsRUFBRTtZQUNyRSxJQUFJLE9BQU8sUUFBUSxLQUFLLFNBQVMsRUFBRTtnQkFDakMsSUFBSSxRQUFRLEVBQUU7b0JBQ1osT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ2pCO3FCQUFNO29CQUNMLE9BQU8sV0FBVyxFQUFFLENBQUM7aUJBQ3RCO2FBQ0Y7aUJBQU07Z0JBQ0wsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxTQUFzQixFQUFFLFFBQVEsQ0FBQyxVQUErQixDQUFDLENBQUMsQ0FBQzthQUNuSDtRQUNILENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyw0Q0FBNEMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM5RCxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQjtRQUN4RixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsT0FBTyxjQUFjLENBQUMsU0FBUyxDQUFlLENBQUM7SUFDakQsQ0FBQyxDQUFDO0lBRUYsT0FBTyxxQkFBcUIsQ0FBQztBQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNpdGlvbkhvb2tGbiwgVHJhbnNpdGlvbiwgSG9va1Jlc3VsdCwgU3RhdGVTZXJ2aWNlLCBVSUluamVjdG9yLCBUcmFuc2l0aW9uT3B0aW9ucywgUmF3UGFyYW1zIH0gZnJvbSAnQHVpcm91dGVyL2NvcmUnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBmaXJzdCwgZmlyc3RWYWx1ZUZyb20sIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNlZ3VlUmVmIH0gZnJvbSAnLi8uLi8uLi8uLi8uLi9yb3V0ZXIvc2VndWUnO1xuaW1wb3J0IHsgRGJ4QXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBGYWN0b3J5V2l0aElucHV0LCBGYWN0b3J5V2l0aFJlcXVpcmVkSW5wdXQsIGdldFZhbHVlRnJvbUdldHRlciwgaXNHZXR0ZXIsIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIGF1dGhUcmFuc2l0aW9uSG9va0ZuKCkgY29uZmlndXJhdGlvbi4gVGhlIHZhbHVlcyBhcmUgaGFuZGxlZCBhczpcbiAqIC0gdHJ1ZTogY29udGludWUgdG8gdGhlIHN0YXRlLlxuICogLSBmYWxzZTogcmVkaXJlY3QgdG8gdGhlIGxvZ2luIHBhZ2UuXG4gKiAtIFN0YXRlT3JOYW1lOiByZWRpcmVjdCB0byB0aGUgdGFyZ2V0IHBhZ2UgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IHR5cGUgQXV0aFRyYW5zaXRpb25EZWNpc2lvbiA9IHRydWUgfCBmYWxzZSB8IFNlZ3VlUmVmO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhUcmFuc2l0aW9uRGVjaXNpb25HZXR0ZXJJbnB1dCB7XG4gIHJlYWRvbmx5IHRyYW5zaXRpb246IFRyYW5zaXRpb247XG4gIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcjtcbiAgcmVhZG9ubHkgYXV0aFNlcnZpY2U6IERieEF1dGhTZXJ2aWNlO1xufVxuXG5leHBvcnQgdHlwZSBBdXRoVHJhbnNpdGlvblJlZGlyZWN0VGFyZ2V0R2V0dGVyID0gRmFjdG9yeVdpdGhSZXF1aXJlZElucHV0PE9ic2VydmFibGU8TWF5YmU8U2VndWVSZWY+PiwgQXV0aFRyYW5zaXRpb25EZWNpc2lvbkdldHRlcklucHV0PjtcbmV4cG9ydCB0eXBlIEF1dGhUcmFuc2l0aW9uUmVkaXJlY3RUYXJnZXRPckdldHRlciA9IE1heWJlPFNlZ3VlUmVmPiB8IEF1dGhUcmFuc2l0aW9uUmVkaXJlY3RUYXJnZXRHZXR0ZXI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aFRyYW5zaXRpb25Ib29rT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0ZSB0byByZWRpcmVjdCB0aGUgdXNlciB0byB3aGVuIHRoZWlyIGF1dGggZmFpbHMuXG4gICAqL1xuICBkZWZhdWx0UmVkaXJlY3RUYXJnZXQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHN0YXRlIHRvIHJlZGlyZWN0IHRoZSB1c2VyIHRvLiBEZWZhdWx0cyB0byBkZWZhdWx0UmVkaXJlY3RUYXJnZXQuXG4gICAqL1xuICBlcnJvclJlZGlyZWN0VGFyZ2V0Pzogc3RyaW5nO1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aFRyYW5zaXRpb25Ib29rQ29uZmlnIGV4dGVuZHMgQXV0aFRyYW5zaXRpb25Ib29rT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIGRlY2lzaW9uIG9ic2VydmFibGUgZm9yIHRoZSB0cmFuc2l0aW9uIHRoYXQgZGVjaWRlcyB3aGV0aGVyIG9yIG5vdCB0byByZWRpcmVjdCBvciBjb250aW51ZS5cbiAgICovXG4gIG1ha2VEZWNpc2lvbnNPYnM6ICh0cmFuc2l0aW9uOiBUcmFuc2l0aW9uLCBhdXRoU2VydmljZTogRGJ4QXV0aFNlcnZpY2UsIGluamVjdG9yOiBVSUluamVjdG9yKSA9PiBPYnNlcnZhYmxlPEF1dGhUcmFuc2l0aW9uRGVjaXNpb24+O1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aFRyYW5zaXRpb25TdGF0ZURhdGEge1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBnZXR0ZXIvZGVjaXNpb24gbWFrZXIgd2hlbiBhIHJvbGUgbmVlZHMgdG8gYmUgXG4gICAqL1xuICByZWRpcmVjdFRvPzogQXV0aFRyYW5zaXRpb25SZWRpcmVjdFRhcmdldE9yR2V0dGVyO1xuXG59XG5cbi8qKlxuICogVGhpcyBnZW5lcmF0ZXMgYSBUcmFuc2l0aW9uSG9va0ZuIHRoYXQgY2FuIGJlIHVzZWQgd2l0aCByZWRpcmVjdGluZyByb3V0ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWtlQXV0aFRyYW5zaXRpb25Ib29rKGNvbmZpZzogQXV0aFRyYW5zaXRpb25Ib29rQ29uZmlnKTogVHJhbnNpdGlvbkhvb2tGbiB7XG4gIGNvbnN0IHsgZGVmYXVsdFJlZGlyZWN0VGFyZ2V0LCBlcnJvclJlZGlyZWN0VGFyZ2V0ID0gZGVmYXVsdFJlZGlyZWN0VGFyZ2V0IH0gPSBjb25maWc7XG5cbiAgLy8gaHR0cHM6Ly91aS1yb3V0ZXIuZ2l0aHViLmlvL25nMi9kb2NzL2xhdGVzdC9tb2R1bGVzL3RyYW5zaXRpb24uaHRtbCNob29rcmVzdWx0XG4gIGNvbnN0IGFzc2VydElzQXV0aGVudGljYXRlZDogVHJhbnNpdGlvbkhvb2tGbiA9ICh0cmFuc2l0aW9uOiBUcmFuc2l0aW9uKTogSG9va1Jlc3VsdCA9PiB7XG4gICAgY29uc3QgaW5qZWN0b3IgPSB0cmFuc2l0aW9uLmluamVjdG9yKCk7XG4gICAgY29uc3QgYXV0aFNlcnZpY2U6IERieEF1dGhTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KERieEF1dGhTZXJ2aWNlKTtcbiAgICBjb25zdCAkc3RhdGU6IFN0YXRlU2VydmljZSA9IHRyYW5zaXRpb24ucm91dGVyLnN0YXRlU2VydmljZTtcbiAgICBjb25zdCBkZWNpc2lvbk9icyA9IGNvbmZpZy5tYWtlRGVjaXNpb25zT2JzKHRyYW5zaXRpb24sIGF1dGhTZXJ2aWNlLCBpbmplY3Rvcik7XG5cbiAgICBmdW5jdGlvbiByZWRpcmVjdE91dCgpOiBPYnNlcnZhYmxlPEhvb2tSZXN1bHQ+IHtcbiAgICAgIGNvbnN0IHN0YXRlRGF0YTogQXV0aFRyYW5zaXRpb25TdGF0ZURhdGEgPSB0cmFuc2l0aW9uLnRhcmdldFN0YXRlKCkuc3RhdGUoKS5kYXRhO1xuICAgICAgY29uc3QgcmVkaXJlY3RUbyA9IHN0YXRlRGF0YT8ucmVkaXJlY3RUbztcblxuICAgICAgbGV0IHJlZGlyZWN0VG9PYnM6IE9ic2VydmFibGU8SG9va1Jlc3VsdD47XG5cbiAgICAgIGlmIChyZWRpcmVjdFRvKSB7XG4gICAgICAgIGxldCByZXN1bHRPYnM6IE9ic2VydmFibGU8TWF5YmU8U2VndWVSZWY+PjtcblxuICAgICAgICBpZiAoaXNHZXR0ZXIocmVkaXJlY3RUbykpIHtcbiAgICAgICAgICByZXN1bHRPYnMgPSBnZXRWYWx1ZUZyb21HZXR0ZXIocmVkaXJlY3RUbywgeyBhdXRoU2VydmljZSwgaW5qZWN0b3IsIHRyYW5zaXRpb24gfSBhcyBBdXRoVHJhbnNpdGlvbkRlY2lzaW9uR2V0dGVySW5wdXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdE9icyA9IG9mKHJlZGlyZWN0VG8gYXMgU2VndWVSZWYpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVkaXJlY3RUb09icyA9IHJlc3VsdE9icy5waXBlKFxuICAgICAgICAgIG1hcCgoc3RhdGVSZWY6IE1heWJlPFNlZ3VlUmVmPikgPT4ge1xuICAgICAgICAgICAgbGV0IHJlZGlyZWN0VGFyZ2V0O1xuICAgICAgICAgICAgbGV0IHJlZGlyZWN0UGFyYW1zO1xuXG4gICAgICAgICAgICBpZiAoc3RhdGVSZWYpIHtcbiAgICAgICAgICAgICAgcmVkaXJlY3RUYXJnZXQgPSBzdGF0ZVJlZi5yZWY7XG4gICAgICAgICAgICAgIHJlZGlyZWN0UGFyYW1zID0gc3RhdGVSZWYucmVmUGFyYW1zO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXJlZGlyZWN0VGFyZ2V0KSB7XG4gICAgICAgICAgICAgIHJlZGlyZWN0VGFyZ2V0ID0gZGVmYXVsdFJlZGlyZWN0VGFyZ2V0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gJHN0YXRlLnRhcmdldChyZWRpcmVjdFRhcmdldCwgcmVkaXJlY3RQYXJhbXMpO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZWRpcmVjdFRvT2JzID0gb2YoJHN0YXRlLnRhcmdldChkZWZhdWx0UmVkaXJlY3RUYXJnZXQpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlZGlyZWN0VG9PYnM7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0T2JzID0gZGVjaXNpb25PYnMucGlwZShcbiAgICAgIGZpcnN0KCksXG4gICAgICBzd2l0Y2hNYXAoKGRlY2lzaW9uOiBBdXRoVHJhbnNpdGlvbkRlY2lzaW9uKTogT2JzZXJ2YWJsZTxIb29rUmVzdWx0PiA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZGVjaXNpb24gPT09ICdib29sZWFuJykge1xuICAgICAgICAgIGlmIChkZWNpc2lvbikge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gcmVkaXJlY3RPdXQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG9mKCRzdGF0ZS50YXJnZXQoZGVjaXNpb24ucmVmLCBkZWNpc2lvbi5yZWZQYXJhbXMgYXMgUmF3UGFyYW1zLCBkZWNpc2lvbi5yZWZPcHRpb25zIGFzIFRyYW5zaXRpb25PcHRpb25zKSk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoeCkgPT4ge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0VuY291bnRlcmVkIGVycm9yIGluIGF1dGggdHJhbnNpdGlvbiBob29rLicsIHgpO1xuICAgICAgICByZXR1cm4gb2YoJHN0YXRlLnRhcmdldChlcnJvclJlZGlyZWN0VGFyZ2V0LCB7IGxvY2F0aW9uOiB0cnVlIH0pKTsgLy8gUmVkaXJlY3QgdG8gaG9tZVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHJlc3VsdE9icykgYXMgSG9va1Jlc3VsdDtcbiAgfTtcblxuICByZXR1cm4gYXNzZXJ0SXNBdXRoZW50aWNhdGVkO1xufVxuIl19
@@ -0,0 +1,6 @@
1
+ export * from './hook';
2
+ export * from './redirect';
3
+ export * from './auth.hook';
4
+ export * from './role.hook';
5
+ export * from './state.hook';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2F1dGgvcm91dGVyL3Byb3ZpZGVyL3Vpcm91dGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ob29rJztcbmV4cG9ydCAqIGZyb20gJy4vcmVkaXJlY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLmhvb2snO1xuZXhwb3J0ICogZnJvbSAnLi9yb2xlLmhvb2snO1xuZXhwb3J0ICogZnJvbSAnLi9zdGF0ZS5ob29rJztcbiJdfQ==
@@ -0,0 +1,29 @@
1
+ import { first, of, switchMap } from 'rxjs';
2
+ import { getValueFromGetter, isGetter } from "@dereekb/util";
3
+ /**
4
+ * Creates a AuthTransitionRedirectTargetGetter that can redirect values based on the current authUserState.
5
+ *
6
+ * @param stateMap
7
+ * @returns
8
+ */
9
+ export function redirectBasedOnAuthUserState(stateMap) {
10
+ return (input) => {
11
+ return input.authService.authUserState$.pipe(first(), switchMap((authUserState) => {
12
+ const getter = stateMap[authUserState];
13
+ let result;
14
+ if (getter) {
15
+ if (isGetter(getter)) {
16
+ result = getValueFromGetter(getter, input);
17
+ }
18
+ else {
19
+ result = of(getter);
20
+ }
21
+ }
22
+ if (!result) {
23
+ result = of(undefined);
24
+ }
25
+ return result;
26
+ }));
27
+ };
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2F1dGgvcm91dGVyL3Byb3ZpZGVyL3Vpcm91dGVyL3JlZGlyZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUsvRTs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxRQUF5RDtJQUNwRyxPQUFPLENBQUMsS0FBd0MsRUFBRSxFQUFFO1FBQ2xELE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUMxQyxLQUFLLEVBQUUsRUFDUCxTQUFTLENBQUMsQ0FBQyxhQUE0QixFQUFFLEVBQUU7WUFDekMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksTUFBbUMsQ0FBQztZQUV4QyxJQUFJLE1BQU0sRUFBRTtnQkFDVixJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDcEIsTUFBTSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDNUM7cUJBQU07b0JBQ0wsTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUF5QixDQUFDLENBQUM7aUJBQ3hDO2FBQ0Y7WUFFRCxJQUFJLENBQUMsTUFBTyxFQUFFO2dCQUNaLE1BQU0sR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDeEI7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpcnN0LCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBnZXRWYWx1ZUZyb21HZXR0ZXIsIGlzR2V0dGVyLCBNYXliZSwgT2JqZWN0TWFwIH0gZnJvbSBcIkBkZXJlZWtiL3V0aWxcIjtcbmltcG9ydCB7IEF1dGhUcmFuc2l0aW9uRGVjaXNpb25HZXR0ZXJJbnB1dCwgQXV0aFRyYW5zaXRpb25SZWRpcmVjdFRhcmdldEdldHRlciwgQXV0aFRyYW5zaXRpb25SZWRpcmVjdFRhcmdldE9yR2V0dGVyIH0gZnJvbSBcIi4vaG9va1wiO1xuaW1wb3J0IHsgU2VndWVSZWYgfSBmcm9tICcuLi8uLi8uLi8uLi9yb3V0ZXIvc2VndWUnO1xuaW1wb3J0IHsgQXV0aFVzZXJTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL2F1dGgudXNlcic7XG5cbi8qKlxuICogQ3JlYXRlcyBhIEF1dGhUcmFuc2l0aW9uUmVkaXJlY3RUYXJnZXRHZXR0ZXIgdGhhdCBjYW4gcmVkaXJlY3QgdmFsdWVzIGJhc2VkIG9uIHRoZSBjdXJyZW50IGF1dGhVc2VyU3RhdGUuXG4gKiBcbiAqIEBwYXJhbSBzdGF0ZU1hcCBcbiAqIEByZXR1cm5zIFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVkaXJlY3RCYXNlZE9uQXV0aFVzZXJTdGF0ZShzdGF0ZU1hcDogT2JqZWN0TWFwPEF1dGhUcmFuc2l0aW9uUmVkaXJlY3RUYXJnZXRPckdldHRlcj4pOiBBdXRoVHJhbnNpdGlvblJlZGlyZWN0VGFyZ2V0R2V0dGVyIHtcbiAgcmV0dXJuIChpbnB1dDogQXV0aFRyYW5zaXRpb25EZWNpc2lvbkdldHRlcklucHV0KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0LmF1dGhTZXJ2aWNlLmF1dGhVc2VyU3RhdGUkLnBpcGUoXG4gICAgICBmaXJzdCgpLFxuICAgICAgc3dpdGNoTWFwKChhdXRoVXNlclN0YXRlOiBBdXRoVXNlclN0YXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IGdldHRlciA9IHN0YXRlTWFwW2F1dGhVc2VyU3RhdGVdO1xuICAgICAgICBsZXQgcmVzdWx0OiBPYnNlcnZhYmxlPE1heWJlPFNlZ3VlUmVmPj47XG5cbiAgICAgICAgaWYgKGdldHRlcikge1xuICAgICAgICAgIGlmIChpc0dldHRlcihnZXR0ZXIpKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBnZXRWYWx1ZUZyb21HZXR0ZXIoZ2V0dGVyLCBpbnB1dCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IG9mKGdldHRlciBhcyBNYXliZTxTZWd1ZVJlZj4pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghcmVzdWx0ISkge1xuICAgICAgICAgIHJlc3VsdCA9IG9mKHVuZGVmaW5lZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSlcbiAgICApO1xuICB9O1xufVxuIl19
@@ -0,0 +1,32 @@
1
+ import { map } from 'rxjs';
2
+ import { setIncludesFunction } from '@dereekb/util';
3
+ import { makeAuthTransitionHook } from './hook';
4
+ /**
5
+ * This hook redirects to the configured default state when a user:
6
+ *
7
+ * - does not have an allowed state
8
+ * - has a disallowed state
9
+ */
10
+ export function enableHasAuthRoleHook(transitionService, config) {
11
+ // Matches if the destination state's data property has a truthy 'isSecure' property
12
+ const isSecureCriteria = {
13
+ entering: (state) => {
14
+ const data = state?.data;
15
+ const match = Boolean(data?.authRoles);
16
+ return match;
17
+ }
18
+ };
19
+ const assertHasAuthRole = makeAuthTransitionHook({
20
+ ...config.options,
21
+ makeDecisionsObs(transition, authService) {
22
+ const targetState = transition.targetState();
23
+ const data = targetState.state().data;
24
+ const requiredRoles = new Set(data.authRoles);
25
+ const setIncludes = setIncludesFunction(requiredRoles, data.authRolesMode);
26
+ return authService.authUserState$.pipe(map(x => setIncludes(x)));
27
+ }
28
+ });
29
+ // Register the "requires auth" hook with the TransitionsService
30
+ transitionService.onBefore(isSecureCriteria, assertHasAuthRole, { priority: 100 });
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5ob29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9hdXRoL3JvdXRlci9wcm92aWRlci91aXJvdXRlci9yb2xlLmhvb2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQWtELG1CQUFtQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3BHLE9BQU8sRUFBOEUsc0JBQXNCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUF1QjVIOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLGlCQUFvQyxFQUFFLE1BQTZCO0lBRXZHLG9GQUFvRjtJQUNwRixNQUFNLGdCQUFnQixHQUFzQjtRQUMxQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNsQixNQUFNLElBQUksR0FBRyxLQUFLLEVBQUUsSUFBNEMsQ0FBQztZQUNqRSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztLQUNGLENBQUM7SUFFRixNQUFNLGlCQUFpQixHQUFxQixzQkFBc0IsQ0FBQztRQUNqRSxHQUFHLE1BQU0sQ0FBQyxPQUFPO1FBQ2pCLGdCQUFnQixDQUFDLFVBQXNCLEVBQUUsV0FBMkI7WUFDbEUsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzdDLE1BQU0sSUFBSSxHQUF5QixXQUFXLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQzVELE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxDQUFXLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN4RCxNQUFNLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRTNFLE9BQU8sV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3BDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUN6QixDQUFDO1FBQ0osQ0FBQztLQUNGLENBQUMsQ0FBQztJQUVILGdFQUFnRTtJQUNoRSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUNyRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoUm9sZSwgU2V0SW5jbHVkZXNNb2RlLCBBcnJheU9yVmFsdWUsIE1heWJlLCBzZXRJbmNsdWRlc0Z1bmN0aW9uIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBUcmFuc2l0aW9uU2VydmljZSwgVHJhbnNpdGlvbkhvb2tGbiwgVHJhbnNpdGlvbiwgSG9va01hdGNoQ3JpdGVyaWEgfSBmcm9tICdAdWlyb3V0ZXIvY29yZSc7XG5pbXBvcnQgeyBEYnhBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhUcmFuc2l0aW9uRGVjaXNpb24sIEF1dGhUcmFuc2l0aW9uSG9va09wdGlvbnMsIEF1dGhUcmFuc2l0aW9uU3RhdGVEYXRhLCBtYWtlQXV0aFRyYW5zaXRpb25Ib29rIH0gZnJvbSAnLi9ob29rJztcblxuZXhwb3J0IGludGVyZmFjZSBIYXNBdXRoUm9sZUhvb2tDb25maWcge1xuICBvcHRpb25zOiBBdXRoVHJhbnNpdGlvbkhvb2tPcHRpb25zO1xufVxuXG4vKipcbiAqIFVJUm91dGVyIFN0YXRlIGRhdGEgd2l0aCBjb25maWd1cmF0aW9uIGZvciB0aGUgaGFzQXV0aFJvbGVIb29rLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhhc0F1dGhSb2xlU3RhdGVEYXRhIGV4dGVuZHMgQXV0aFRyYW5zaXRpb25TdGF0ZURhdGEge1xuXG4gIC8qKlxuICAgKiBBdXRoIHJvbGVzIG1hcmtlZCBmb3IgdGhpcyBzdGF0ZVxuICAgKi9cbiAgYXV0aFJvbGVzOiBBcnJheU9yVmFsdWU8QXV0aFJvbGU+O1xuXG4gIC8qKlxuICAgKiBIb3cgdG8gdXNlIHRoZSBhYm92ZSBhdXRoIHJvbGVzLiBUaGlzIGRlZmF1bHRzIHRvICdhbGwnIGJ5IGRlZmF1bHQuXG4gICAqL1xuICBhdXRoUm9sZXNNb2RlPzogU2V0SW5jbHVkZXNNb2RlO1xuXG59XG5cbi8qKlxuICogVGhpcyBob29rIHJlZGlyZWN0cyB0byB0aGUgY29uZmlndXJlZCBkZWZhdWx0IHN0YXRlIHdoZW4gYSB1c2VyOlxuICogXG4gKiAtIGRvZXMgbm90IGhhdmUgYW4gYWxsb3dlZCBzdGF0ZVxuICogLSBoYXMgYSBkaXNhbGxvd2VkIHN0YXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmFibGVIYXNBdXRoUm9sZUhvb2sodHJhbnNpdGlvblNlcnZpY2U6IFRyYW5zaXRpb25TZXJ2aWNlLCBjb25maWc6IEhhc0F1dGhSb2xlSG9va0NvbmZpZyk6IHZvaWQge1xuXG4gIC8vIE1hdGNoZXMgaWYgdGhlIGRlc3RpbmF0aW9uIHN0YXRlJ3MgZGF0YSBwcm9wZXJ0eSBoYXMgYSB0cnV0aHkgJ2lzU2VjdXJlJyBwcm9wZXJ0eVxuICBjb25zdCBpc1NlY3VyZUNyaXRlcmlhOiBIb29rTWF0Y2hDcml0ZXJpYSA9IHtcbiAgICBlbnRlcmluZzogKHN0YXRlKSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gc3RhdGU/LmRhdGEgYXMgTWF5YmU8UGFydGlhbDxIYXNBdXRoUm9sZVN0YXRlRGF0YT4+O1xuICAgICAgY29uc3QgbWF0Y2ggPSBCb29sZWFuKGRhdGE/LmF1dGhSb2xlcyk7XG4gICAgICByZXR1cm4gbWF0Y2g7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGFzc2VydEhhc0F1dGhSb2xlOiBUcmFuc2l0aW9uSG9va0ZuID0gbWFrZUF1dGhUcmFuc2l0aW9uSG9vayh7XG4gICAgLi4uY29uZmlnLm9wdGlvbnMsXG4gICAgbWFrZURlY2lzaW9uc09icyh0cmFuc2l0aW9uOiBUcmFuc2l0aW9uLCBhdXRoU2VydmljZTogRGJ4QXV0aFNlcnZpY2UpOiBPYnNlcnZhYmxlPEF1dGhUcmFuc2l0aW9uRGVjaXNpb24+IHtcbiAgICAgIGNvbnN0IHRhcmdldFN0YXRlID0gdHJhbnNpdGlvbi50YXJnZXRTdGF0ZSgpO1xuICAgICAgY29uc3QgZGF0YTogSGFzQXV0aFJvbGVTdGF0ZURhdGEgPSB0YXJnZXRTdGF0ZS5zdGF0ZSgpLmRhdGE7XG4gICAgICBjb25zdCByZXF1aXJlZFJvbGVzID0gbmV3IFNldDxBdXRoUm9sZT4oZGF0YS5hdXRoUm9sZXMpO1xuICAgICAgY29uc3Qgc2V0SW5jbHVkZXMgPSBzZXRJbmNsdWRlc0Z1bmN0aW9uKHJlcXVpcmVkUm9sZXMsIGRhdGEuYXV0aFJvbGVzTW9kZSk7XG5cbiAgICAgIHJldHVybiBhdXRoU2VydmljZS5hdXRoVXNlclN0YXRlJC5waXBlKFxuICAgICAgICBtYXAoeCA9PiBzZXRJbmNsdWRlcyh4KSlcbiAgICAgICk7XG4gICAgfVxuICB9KTtcblxuICAvLyBSZWdpc3RlciB0aGUgXCJyZXF1aXJlcyBhdXRoXCIgaG9vayB3aXRoIHRoZSBUcmFuc2l0aW9uc1NlcnZpY2VcbiAgdHJhbnNpdGlvblNlcnZpY2Uub25CZWZvcmUoaXNTZWN1cmVDcml0ZXJpYSwgYXNzZXJ0SGFzQXV0aFJvbGUsIHsgcHJpb3JpdHk6IDEwMCB9KTtcbn1cbiJdfQ==
@@ -0,0 +1,53 @@
1
+ import { map } from 'rxjs';
2
+ import { isAllowed, maybeSet } from '@dereekb/util';
3
+ import { makeAuthTransitionHook } from './hook';
4
+ /**
5
+ * This hook redirects to the configured default state when a user:
6
+ *
7
+ * - does not have an allowed state
8
+ * - has a disallowed state
9
+ */
10
+ export function enableHasAuthStateHook(transitionService, config) {
11
+ // Matches if the destination state's data property has a truthy 'isSecure' property
12
+ const isSecureCriteria = {
13
+ entering: (state) => {
14
+ const data = state?.data;
15
+ const match = Boolean(data?.authStates);
16
+ return match;
17
+ }
18
+ };
19
+ const assertHasAuthState = makeAuthTransitionHook({
20
+ ...config.options,
21
+ makeDecisionsObs(transition, authService) {
22
+ const targetState = transition.targetState();
23
+ const data = targetState.state().data;
24
+ const config = toHasAuthStateObjectConfig(data.authStates);
25
+ const parsed = toParsedHasAuthStateConfig(config);
26
+ return authService.authUserState$.pipe(map(x => isAllowed(x, parsed)));
27
+ }
28
+ });
29
+ // Register the "requires auth" hook with the TransitionsService
30
+ transitionService.onBefore(isSecureCriteria, assertHasAuthState, { priority: 100 });
31
+ }
32
+ // MARK: Utility
33
+ function toHasAuthStateObjectConfig(input) {
34
+ const isString = typeof input === 'string';
35
+ if ((Array.isArray(input) || isString)) {
36
+ if (isString) {
37
+ input = [input];
38
+ }
39
+ return {
40
+ allowedStates: input
41
+ };
42
+ }
43
+ else {
44
+ return input;
45
+ }
46
+ }
47
+ function toParsedHasAuthStateConfig(input) {
48
+ return {
49
+ allowed: maybeSet(input.allowedStates),
50
+ disallowed: maybeSet(input.disallowedStates)
51
+ };
52
+ }
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuaG9vay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvYXV0aC9yb3V0ZXIvcHJvdmlkZXIvdWlyb3V0ZXIvc3RhdGUuaG9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBYyxTQUFTLEVBQUUsUUFBUSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUlyRixPQUFPLEVBQXFELHNCQUFzQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBK0JuRzs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxpQkFBb0MsRUFBRSxNQUE4QjtJQUV6RyxvRkFBb0Y7SUFDcEYsTUFBTSxnQkFBZ0IsR0FBc0I7UUFDMUMsUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbEIsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLElBQXdDLENBQUM7WUFDN0QsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztZQUN4QyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7S0FDRixDQUFDO0lBRUYsTUFBTSxrQkFBa0IsR0FBcUIsc0JBQXNCLENBQUM7UUFDbEUsR0FBRyxNQUFNLENBQUMsT0FBTztRQUNqQixnQkFBZ0IsQ0FBQyxVQUFzQixFQUFFLFdBQTJCO1lBQ2xFLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM3QyxNQUFNLElBQUksR0FBcUIsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQztZQUN4RCxNQUFNLE1BQU0sR0FBRywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDM0QsTUFBTSxNQUFNLEdBQTZCLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRTVFLE9BQU8sV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3BDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FDL0IsQ0FBQztRQUNKLENBQUM7S0FDRixDQUFDLENBQUM7SUFFSCxnRUFBZ0U7SUFDaEUsaUJBQWlCLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDdEYsQ0FBQztBQUVELGdCQUFnQjtBQUNoQixTQUFTLDBCQUEwQixDQUFDLEtBQXlCO0lBQzNELE1BQU0sUUFBUSxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztJQUUzQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsRUFBRTtRQUN0QyxJQUFJLFFBQVEsRUFBRTtZQUNaLEtBQUssR0FBRyxDQUFDLEtBQXNCLENBQUMsQ0FBQztTQUNsQztRQUVELE9BQU87WUFDTCxhQUFhLEVBQUUsS0FBd0I7U0FDeEMsQ0FBQztLQUNIO1NBQU07UUFDTCxPQUFPLEtBQWlDLENBQUM7S0FDMUM7QUFDSCxDQUFDO0FBSUQsU0FBUywwQkFBMEIsQ0FBQyxLQUErQjtJQUNqRSxPQUFPO1FBQ0wsT0FBTyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBQ3RDLFVBQVUsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO0tBQzdDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbGxvd2VkU2V0LCBpc0FsbG93ZWQsIG1heWJlU2V0LCBBcnJheU9yVmFsdWUsIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBUcmFuc2l0aW9uU2VydmljZSwgVHJhbnNpdGlvbkhvb2tGbiwgVHJhbnNpdGlvbiwgSG9va01hdGNoQ3JpdGVyaWEgfSBmcm9tICdAdWlyb3V0ZXIvY29yZSc7XG5pbXBvcnQgeyBBdXRoVXNlclN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vYXV0aC51c2VyJztcbmltcG9ydCB7IERieEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aFRyYW5zaXRpb25EZWNpc2lvbiwgQXV0aFRyYW5zaXRpb25Ib29rT3B0aW9ucywgbWFrZUF1dGhUcmFuc2l0aW9uSG9vayB9IGZyb20gJy4vaG9vayc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFzQXV0aFN0YXRlSG9va0NvbmZpZyB7XG4gIG9wdGlvbnM6IEF1dGhUcmFuc2l0aW9uSG9va09wdGlvbnM7XG59XG5cbmV4cG9ydCB0eXBlIEhhc0F1dGhTdGF0ZUNvbmZpZyA9IEFycmF5T3JWYWx1ZTxBdXRoVXNlclN0YXRlPiB8IEhhc0F1dGhTdGF0ZU9iamVjdENvbmZpZztcblxuZXhwb3J0IGludGVyZmFjZSBIYXNBdXRoU3RhdGVPYmplY3RDb25maWcge1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGlzIHN0YXRlIG9yIGFueSBjaGlsZCBzdGF0ZSBpcyBjb25zaWRlcmVkIFwic2VjdXJlXCIsIHdoaWNoIHJlcXVpcmVzIHRoZSB1c2VyIHRvIGJlIGxvZ2dlZCBpbi5cbiAgICovXG4gIGFsbG93ZWRTdGF0ZXM/OiBBcnJheU9yVmFsdWU8QXV0aFVzZXJTdGF0ZT47XG5cbiAgLyoqXG4gICAqIFN0YXRlcyB0aGF0IGFyZSBub3QgYWxsb3dlZC4gSWYgdGhlIGN1cnJlbnQgc3RhdGUgaXMgdGhpcyBzdGF0ZSwgYSByZWplY3Rpb24gaXMgcmV0dXJuZWQuXG4gICAqL1xuICBkaXNhbGxvd2VkU3RhdGVzPzogQXJyYXlPclZhbHVlPEF1dGhVc2VyU3RhdGU+O1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFzQXV0aFN0YXRlRGF0YSB7XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBoYXNBdXRoU3RhdGVIb29rLlxuICAgKi9cbiAgYXV0aFN0YXRlczogSGFzQXV0aFN0YXRlQ29uZmlnO1xuXG59XG5cbi8qKlxuICogVGhpcyBob29rIHJlZGlyZWN0cyB0byB0aGUgY29uZmlndXJlZCBkZWZhdWx0IHN0YXRlIHdoZW4gYSB1c2VyOlxuICogXG4gKiAtIGRvZXMgbm90IGhhdmUgYW4gYWxsb3dlZCBzdGF0ZVxuICogLSBoYXMgYSBkaXNhbGxvd2VkIHN0YXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmFibGVIYXNBdXRoU3RhdGVIb29rKHRyYW5zaXRpb25TZXJ2aWNlOiBUcmFuc2l0aW9uU2VydmljZSwgY29uZmlnOiBIYXNBdXRoU3RhdGVIb29rQ29uZmlnKTogdm9pZCB7XG5cbiAgLy8gTWF0Y2hlcyBpZiB0aGUgZGVzdGluYXRpb24gc3RhdGUncyBkYXRhIHByb3BlcnR5IGhhcyBhIHRydXRoeSAnaXNTZWN1cmUnIHByb3BlcnR5XG4gIGNvbnN0IGlzU2VjdXJlQ3JpdGVyaWE6IEhvb2tNYXRjaENyaXRlcmlhID0ge1xuICAgIGVudGVyaW5nOiAoc3RhdGUpID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBzdGF0ZT8uZGF0YSBhcyBNYXliZTxQYXJ0aWFsPEhhc0F1dGhTdGF0ZURhdGE+PjtcbiAgICAgIGNvbnN0IG1hdGNoID0gQm9vbGVhbihkYXRhPy5hdXRoU3RhdGVzKTtcbiAgICAgIHJldHVybiBtYXRjaDtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgYXNzZXJ0SGFzQXV0aFN0YXRlOiBUcmFuc2l0aW9uSG9va0ZuID0gbWFrZUF1dGhUcmFuc2l0aW9uSG9vayh7XG4gICAgLi4uY29uZmlnLm9wdGlvbnMsXG4gICAgbWFrZURlY2lzaW9uc09icyh0cmFuc2l0aW9uOiBUcmFuc2l0aW9uLCBhdXRoU2VydmljZTogRGJ4QXV0aFNlcnZpY2UpOiBPYnNlcnZhYmxlPEF1dGhUcmFuc2l0aW9uRGVjaXNpb24+IHtcbiAgICAgIGNvbnN0IHRhcmdldFN0YXRlID0gdHJhbnNpdGlvbi50YXJnZXRTdGF0ZSgpO1xuICAgICAgY29uc3QgZGF0YTogSGFzQXV0aFN0YXRlRGF0YSA9IHRhcmdldFN0YXRlLnN0YXRlKCkuZGF0YTtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHRvSGFzQXV0aFN0YXRlT2JqZWN0Q29uZmlnKGRhdGEuYXV0aFN0YXRlcyk7XG4gICAgICBjb25zdCBwYXJzZWQ6IFBhcnNlZEhhc0F1dGhTdGF0ZUNvbmZpZyA9IHRvUGFyc2VkSGFzQXV0aFN0YXRlQ29uZmlnKGNvbmZpZyk7XG5cbiAgICAgIHJldHVybiBhdXRoU2VydmljZS5hdXRoVXNlclN0YXRlJC5waXBlKFxuICAgICAgICBtYXAoeCA9PiBpc0FsbG93ZWQoeCwgcGFyc2VkKSlcbiAgICAgICk7XG4gICAgfVxuICB9KTtcblxuICAvLyBSZWdpc3RlciB0aGUgXCJyZXF1aXJlcyBhdXRoXCIgaG9vayB3aXRoIHRoZSBUcmFuc2l0aW9uc1NlcnZpY2VcbiAgdHJhbnNpdGlvblNlcnZpY2Uub25CZWZvcmUoaXNTZWN1cmVDcml0ZXJpYSwgYXNzZXJ0SGFzQXV0aFN0YXRlLCB7IHByaW9yaXR5OiAxMDAgfSk7XG59XG5cbi8vIE1BUks6IFV0aWxpdHlcbmZ1bmN0aW9uIHRvSGFzQXV0aFN0YXRlT2JqZWN0Q29uZmlnKGlucHV0OiBIYXNBdXRoU3RhdGVDb25maWcpOiBIYXNBdXRoU3RhdGVPYmplY3RDb25maWcge1xuICBjb25zdCBpc1N0cmluZyA9IHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZyc7XG5cbiAgaWYgKChBcnJheS5pc0FycmF5KGlucHV0KSB8fCBpc1N0cmluZykpIHtcbiAgICBpZiAoaXNTdHJpbmcpIHtcbiAgICAgIGlucHV0ID0gW2lucHV0IGFzIEF1dGhVc2VyU3RhdGVdO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBhbGxvd2VkU3RhdGVzOiBpbnB1dCBhcyBBdXRoVXNlclN0YXRlW11cbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBpbnB1dCBhcyBIYXNBdXRoU3RhdGVPYmplY3RDb25maWc7XG4gIH1cbn1cblxudHlwZSBQYXJzZWRIYXNBdXRoU3RhdGVDb25maWcgPSBBbGxvd2VkU2V0PEF1dGhVc2VyU3RhdGU+O1xuXG5mdW5jdGlvbiB0b1BhcnNlZEhhc0F1dGhTdGF0ZUNvbmZpZyhpbnB1dDogSGFzQXV0aFN0YXRlT2JqZWN0Q29uZmlnKTogUGFyc2VkSGFzQXV0aFN0YXRlQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICBhbGxvd2VkOiBtYXliZVNldChpbnB1dC5hbGxvd2VkU3RhdGVzKSxcbiAgICBkaXNhbGxvd2VkOiBtYXliZVNldChpbnB1dC5kaXNhbGxvd2VkU3RhdGVzKVxuICB9O1xufVxuIl19
@@ -0,0 +1,32 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { EffectsModule } from '@ngrx/effects';
3
+ import { DbxAppAuthRouterEffects, DBX_APP_AUTH_ROUTER_EFFECTS_TOKEN } from './effect/auth.router.state.effect';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@ngrx/effects";
6
+ export class DbxAppAuthRouterStateModule {
7
+ static forRoot(config) {
8
+ return {
9
+ ngModule: DbxAppAuthRouterStateModule,
10
+ providers: [{
11
+ provide: DBX_APP_AUTH_ROUTER_EFFECTS_TOKEN,
12
+ useValue: config.activeRoutesToApplyEffects
13
+ }]
14
+ };
15
+ }
16
+ }
17
+ DbxAppAuthRouterStateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAppAuthRouterStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18
+ DbxAppAuthRouterStateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAppAuthRouterStateModule, imports: [i1.EffectsFeatureModule] });
19
+ DbxAppAuthRouterStateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAppAuthRouterStateModule, imports: [[
20
+ EffectsModule.forFeature([DbxAppAuthRouterEffects])
21
+ ]] });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAppAuthRouterStateModule, decorators: [{
23
+ type: NgModule,
24
+ args: [{
25
+ imports: [
26
+ EffectsModule.forFeature([DbxAppAuthRouterEffects])
27
+ ],
28
+ declarations: [],
29
+ exports: []
30
+ }]
31
+ }] });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5yb3V0ZXIuc3RhdGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9hdXRoL3JvdXRlci9zdGF0ZS9hdXRoLnJvdXRlci5zdGF0ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBYS9HLE1BQU0sT0FBTywyQkFBMkI7SUFFdEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUF5QztRQUN0RCxPQUFPO1lBQ0wsUUFBUSxFQUFFLDJCQUEyQjtZQUNyQyxTQUFTLEVBQUUsQ0FBQztvQkFDVixPQUFPLEVBQUUsaUNBQWlDO29CQUMxQyxRQUFRLEVBQUUsTUFBTSxDQUFDLDBCQUEwQjtpQkFDNUMsQ0FBQztTQUNILENBQUM7SUFDSixDQUFDOzt3SEFWVSwyQkFBMkI7eUhBQTNCLDJCQUEyQjt5SEFBM0IsMkJBQTJCLFlBTjdCO1lBQ1AsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUM7U0FDcEQ7MkZBSVUsMkJBQTJCO2tCQVB2QyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQztxQkFDcEQ7b0JBQ0QsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRSxFQUFFO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFycmF5T3JWYWx1ZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRWZmZWN0c01vZHVsZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgRGJ4QXBwQ29udGV4dFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dCc7XG5pbXBvcnQgeyBEYnhBcHBBdXRoUm91dGVyRWZmZWN0cywgREJYX0FQUF9BVVRIX1JPVVRFUl9FRkZFQ1RTX1RPS0VOIH0gZnJvbSAnLi9lZmZlY3QvYXV0aC5yb3V0ZXIuc3RhdGUuZWZmZWN0JztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhBcHBBdXRoUm91dGVyU3RhdGVNb2R1bGVDb25maWcge1xuICByZWFkb25seSBhY3RpdmVSb3V0ZXNUb0FwcGx5RWZmZWN0czogQXJyYXlPclZhbHVlPERieEFwcENvbnRleHRTdGF0ZT47XG59XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW0RieEFwcEF1dGhSb3V0ZXJFZmZlY3RzXSlcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgZXhwb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgRGJ4QXBwQXV0aFJvdXRlclN0YXRlTW9kdWxlIHtcblxuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IERieEFwcEF1dGhSb3V0ZXJTdGF0ZU1vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RGJ4QXBwQXV0aFJvdXRlclN0YXRlTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBEYnhBcHBBdXRoUm91dGVyU3RhdGVNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFt7XG4gICAgICAgIHByb3ZpZGU6IERCWF9BUFBfQVVUSF9ST1VURVJfRUZGRUNUU19UT0tFTixcbiAgICAgICAgdXNlVmFsdWU6IGNvbmZpZy5hY3RpdmVSb3V0ZXNUb0FwcGx5RWZmZWN0c1xuICAgICAgfV1cbiAgICB9O1xuICB9XG5cbn1cbiJdfQ==