@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,30 @@
1
+ import { Directive, Host } from '@angular/core';
2
+ import { AbstractSubscriptionDirective } from '../../../subscription';
3
+ import { ActionContextStoreSourceInstance } from '../../action.store.source';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../action.store.source";
6
+ /**
7
+ * Prints out the current state to the console. Useful for debugging.
8
+ */
9
+ export class DbNgxActionContextLoggerDirective extends AbstractSubscriptionDirective {
10
+ constructor(source) {
11
+ super();
12
+ this.source = source;
13
+ }
14
+ ngOnInit() {
15
+ this.sub = this.source.state$.subscribe((state) => {
16
+ console.log('State: ', state);
17
+ });
18
+ }
19
+ }
20
+ DbNgxActionContextLoggerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionContextLoggerDirective, deps: [{ token: i1.ActionContextStoreSourceInstance, host: true }], target: i0.ɵɵFactoryTarget.Directive });
21
+ DbNgxActionContextLoggerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: DbNgxActionContextLoggerDirective, selector: "[dbxActionContextLogger]", usesInheritance: true, ngImport: i0 });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionContextLoggerDirective, decorators: [{
23
+ type: Directive,
24
+ args: [{
25
+ selector: '[dbxActionContextLogger]'
26
+ }]
27
+ }], ctorParameters: function () { return [{ type: i1.ActionContextStoreSourceInstance, decorators: [{
28
+ type: Host
29
+ }] }]; } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmxvZ2dlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2FjdGlvbi9kaXJlY3RpdmUvZGVidWcvYWN0aW9uLmxvZ2dlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQUU3RTs7R0FFRztBQUlILE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSw2QkFBNkI7SUFFbEYsWUFBb0MsTUFBd0M7UUFDMUUsS0FBSyxFQUFFLENBQUM7UUFEMEIsV0FBTSxHQUFOLE1BQU0sQ0FBa0M7SUFFNUUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2hELE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7OEhBVlUsaUNBQWlDO2tIQUFqQyxpQ0FBaUM7MkZBQWpDLGlDQUFpQztrQkFIN0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO2lCQUNyQzs7MEJBR2MsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgT25Jbml0LCBIb3N0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3N1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZSB9IGZyb20gJy4uLy4uL2FjdGlvbi5zdG9yZS5zb3VyY2UnO1xuXG4vKipcbiAqIFByaW50cyBvdXQgdGhlIGN1cnJlbnQgc3RhdGUgdG8gdGhlIGNvbnNvbGUuIFVzZWZ1bCBmb3IgZGVidWdnaW5nLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4QWN0aW9uQ29udGV4dExvZ2dlcl0nXG59KVxuZXhwb3J0IGNsYXNzIERiTmd4QWN0aW9uQ29udGV4dExvZ2dlckRpcmVjdGl2ZSBleHRlbmRzIEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcihASG9zdCgpIHB1YmxpYyByZWFkb25seSBzb3VyY2U6IEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZUluc3RhbmNlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViID0gdGhpcy5zb3VyY2Uuc3RhdGUkLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdTdGF0ZTogJywgc3RhdGUpO1xuICAgIH0pO1xuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './action.logger.directive';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2FjdGlvbi9kaXJlY3RpdmUvZGVidWcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWN0aW9uLmxvZ2dlci5kaXJlY3RpdmUnO1xuIl19
@@ -0,0 +1,6 @@
1
+ export * from './auto';
2
+ export * from './context';
3
+ export * from './debug';
4
+ export * from './map';
5
+ export * from './state';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2FjdGlvbi9kaXJlY3RpdmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dG8nO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vZGVidWcnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXAnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGF0ZSc7XG4iXX0=
@@ -0,0 +1,74 @@
1
+ import { reduceBooleansWithOrFn } from '@dereekb/util';
2
+ import { Directive } from '@angular/core';
3
+ import { BehaviorSubject, of } from 'rxjs';
4
+ import { distinctUntilChanged, map, shareReplay, switchMap } from 'rxjs/operators';
5
+ import { combineLatestFromMapValuesObsFn } from '@dereekb/rxjs';
6
+ import { actionContextStoreSourcePipe } from '../../action.store.source';
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ * Context used for providing actions based on the action key.
10
+ *
11
+ * This is useful for passing action contexts around via the providers instead of explicit injection.
12
+ */
13
+ export class DbNgxActionContextMapDirective {
14
+ constructor() {
15
+ this._map = new BehaviorSubject(new Map());
16
+ this.map$ = this._map.asObservable();
17
+ this.areAnyWorking$ = this.checkAnyAre(x => x.isWorking$, false);
18
+ }
19
+ get map() {
20
+ return this._map.value;
21
+ }
22
+ sourceForKey(key) {
23
+ return new DbNgxActionContextMapDirectiveSourceInstance(this, key);
24
+ }
25
+ addStoreSource(key, source) {
26
+ if (this.map.has(key)) {
27
+ throw new Error(`Key already existed for "${key}" in map. Ensure the previous store is removed before setting another.`);
28
+ }
29
+ else if (!source) {
30
+ throw new Error('addStoreSource requires a source.');
31
+ }
32
+ this.map.set(key, source);
33
+ this._map.next(this.map);
34
+ }
35
+ removeStore(key) {
36
+ if (!this.map.delete(key)) {
37
+ console.warn('removeStore called and no value was found.');
38
+ }
39
+ this._map.next(this.map);
40
+ }
41
+ ngOnDestroy() {
42
+ this._map.complete();
43
+ }
44
+ // MARK: Utility
45
+ checkAnyAre(mapFn, emptyArrayValue = false) {
46
+ return this.reduceFromAllSources(mapFn, reduceBooleansWithOrFn(emptyArrayValue));
47
+ }
48
+ reduceFromAllSources(mapFn, reduceFn) {
49
+ return this.fromAllSources(mapFn).pipe(map(reduceFn));
50
+ }
51
+ fromAllSources(mapFn) {
52
+ return this.map$.pipe(switchMap(combineLatestFromMapValuesObsFn((x) => x.store$.pipe(switchMap(mapFn)))));
53
+ }
54
+ }
55
+ DbNgxActionContextMapDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionContextMapDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
56
+ DbNgxActionContextMapDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: DbNgxActionContextMapDirective, selector: "[dbxActionContextMap]", providers: [], exportAs: ["actionMap"], ngImport: i0 });
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionContextMapDirective, decorators: [{
58
+ type: Directive,
59
+ args: [{
60
+ selector: '[dbxActionContextMap]',
61
+ exportAs: 'actionMap',
62
+ providers: [],
63
+ }]
64
+ }], ctorParameters: function () { return []; } });
65
+ export class DbNgxActionContextMapDirectiveSourceInstance {
66
+ constructor(parent, key) {
67
+ this.parent = parent;
68
+ this.key = key;
69
+ this._source$ = this.parent.map$.pipe(map(x => x.get(this.key)), distinctUntilChanged());
70
+ this._store$ = this._source$.pipe(switchMap((x) => x?.store$ ?? of(undefined)), shareReplay(1));
71
+ this.store$ = actionContextStoreSourcePipe(this._store$);
72
+ }
73
+ }
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLm1hcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2FjdGlvbi9kaXJlY3RpdmUvbWFwL2FjdGlvbi5tYXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25GLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQTRCLDRCQUE0QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBSW5HOzs7O0dBSUc7QUFNSCxNQUFNLE9BQU8sOEJBQThCO0lBT3pDO1FBTGlCLFNBQUksR0FBRyxJQUFJLGVBQWUsQ0FBMkMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3hGLFNBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRWhDLG1CQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFckQsQ0FBQztJQUVqQixJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBYztRQUN6QixPQUFPLElBQUksNENBQTRDLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxjQUFjLENBQUMsR0FBYyxFQUFFLE1BQWdDO1FBQzdELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsR0FBRyx3RUFBd0UsQ0FBQyxDQUFDO1NBQzFIO2FBQU0sSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7U0FDdEQ7UUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBYztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1NBQzVEO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLFdBQVcsQ0FBQyxLQUF5RCxFQUFFLGVBQWUsR0FBRyxLQUFLO1FBQzVGLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxvQkFBb0IsQ0FBTyxLQUFtRCxFQUFFLFFBQTRCO1FBQzFHLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELGNBQWMsQ0FBSSxLQUFtRDtRQUNuRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUcsQ0FBQzs7MkhBbkRVLDhCQUE4QjsrR0FBOUIsOEJBQThCLGdEQUY5QixFQUFFOzJGQUVGLDhCQUE4QjtrQkFMMUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxRQUFRLEVBQUUsV0FBVztvQkFDckIsU0FBUyxFQUFFLEVBQUU7aUJBQ2Q7O0FBd0RELE1BQU0sT0FBTyw0Q0FBNEM7SUFNdkQsWUFBNkIsTUFBc0MsRUFBVyxHQUFjO1FBQS9ELFdBQU0sR0FBTixNQUFNLENBQWdDO1FBQVcsUUFBRyxHQUFILEdBQUcsQ0FBVztRQUpuRixhQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQ3BGLFlBQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0YsV0FBTSxHQUFHLDRCQUE0QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVtQyxDQUFDO0NBRWxHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVkdWNlQm9vbGVhbnNXaXRoT3JGbiB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0RnJvbU1hcFZhbHVlc09ic0ZuIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2UsIGFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZVBpcGUgfSBmcm9tICcuLi8uLi9hY3Rpb24uc3RvcmUuc291cmNlJztcbmltcG9ydCB7IEFjdGlvbkNvbnRleHRTdG9yZSB9IGZyb20gJy4uLy4uL2FjdGlvbi5zdG9yZSc7XG5pbXBvcnQgeyBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VNYXAsIEFjdGlvbktleSB9IGZyb20gJy4vYWN0aW9uLm1hcCc7XG5cbi8qKlxuICogQ29udGV4dCB1c2VkIGZvciBwcm92aWRpbmcgYWN0aW9ucyBiYXNlZCBvbiB0aGUgYWN0aW9uIGtleS5cbiAqXG4gKiBUaGlzIGlzIHVzZWZ1bCBmb3IgcGFzc2luZyBhY3Rpb24gY29udGV4dHMgYXJvdW5kIHZpYSB0aGUgcHJvdmlkZXJzIGluc3RlYWQgb2YgZXhwbGljaXQgaW5qZWN0aW9uLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4QWN0aW9uQ29udGV4dE1hcF0nLFxuICBleHBvcnRBczogJ2FjdGlvbk1hcCcsXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIERiTmd4QWN0aW9uQ29udGV4dE1hcERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZU1hcCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9tYXAgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hcDxBY3Rpb25LZXksIEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZT4+KG5ldyBNYXAoKSk7XG4gIHJlYWRvbmx5IG1hcCQgPSB0aGlzLl9tYXAuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcmVhZG9ubHkgYXJlQW55V29ya2luZyQgPSB0aGlzLmNoZWNrQW55QXJlKHggPT4geC5pc1dvcmtpbmckLCBmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBnZXQgbWFwKCk6IE1hcDxBY3Rpb25LZXksIEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZT4ge1xuICAgIHJldHVybiB0aGlzLl9tYXAudmFsdWU7XG4gIH1cblxuICBzb3VyY2VGb3JLZXkoa2V5OiBBY3Rpb25LZXkpOiBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2U8YW55LCBhbnk+IHtcbiAgICByZXR1cm4gbmV3IERiTmd4QWN0aW9uQ29udGV4dE1hcERpcmVjdGl2ZVNvdXJjZUluc3RhbmNlKHRoaXMsIGtleSk7XG4gIH1cblxuICBhZGRTdG9yZVNvdXJjZShrZXk6IEFjdGlvbktleSwgc291cmNlOiBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2UpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tYXAuaGFzKGtleSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgS2V5IGFscmVhZHkgZXhpc3RlZCBmb3IgXCIke2tleX1cIiBpbiBtYXAuIEVuc3VyZSB0aGUgcHJldmlvdXMgc3RvcmUgaXMgcmVtb3ZlZCBiZWZvcmUgc2V0dGluZyBhbm90aGVyLmApO1xuICAgIH0gZWxzZSBpZiAoIXNvdXJjZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhZGRTdG9yZVNvdXJjZSByZXF1aXJlcyBhIHNvdXJjZS4nKTtcbiAgICB9XG5cbiAgICB0aGlzLm1hcC5zZXQoa2V5LCBzb3VyY2UpO1xuICAgIHRoaXMuX21hcC5uZXh0KHRoaXMubWFwKTtcbiAgfVxuXG4gIHJlbW92ZVN0b3JlKGtleTogQWN0aW9uS2V5KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1hcC5kZWxldGUoa2V5KSkge1xuICAgICAgY29uc29sZS53YXJuKCdyZW1vdmVTdG9yZSBjYWxsZWQgYW5kIG5vIHZhbHVlIHdhcyBmb3VuZC4nKTtcbiAgICB9XG5cbiAgICB0aGlzLl9tYXAubmV4dCh0aGlzLm1hcCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9tYXAuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8vIE1BUks6IFV0aWxpdHlcbiAgY2hlY2tBbnlBcmUobWFwRm46IChpbnB1dDogQWN0aW9uQ29udGV4dFN0b3JlKSA9PiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBlbXB0eUFycmF5VmFsdWUgPSBmYWxzZSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnJlZHVjZUZyb21BbGxTb3VyY2VzKG1hcEZuLCByZWR1Y2VCb29sZWFuc1dpdGhPckZuKGVtcHR5QXJyYXlWYWx1ZSkpO1xuICB9XG5cbiAgcmVkdWNlRnJvbUFsbFNvdXJjZXM8TywgUj4obWFwRm46IChpbnB1dDogQWN0aW9uQ29udGV4dFN0b3JlKSA9PiBPYnNlcnZhYmxlPE8+LCByZWR1Y2VGbjogKHZhbHVlczogT1tdKSA9PiBSKTogT2JzZXJ2YWJsZTxSPiB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbUFsbFNvdXJjZXM8Tz4obWFwRm4pLnBpcGUobWFwKHJlZHVjZUZuKSk7XG4gIH1cblxuICBmcm9tQWxsU291cmNlczxPPihtYXBGbjogKGlucHV0OiBBY3Rpb25Db250ZXh0U3RvcmUpID0+IE9ic2VydmFibGU8Tz4pOiBPYnNlcnZhYmxlPE9bXT4ge1xuICAgIHJldHVybiB0aGlzLm1hcCQucGlwZShzd2l0Y2hNYXAoY29tYmluZUxhdGVzdEZyb21NYXBWYWx1ZXNPYnNGbigoeCkgPT4geC5zdG9yZSQucGlwZShzd2l0Y2hNYXAobWFwRm4pKSkpKTtcbiAgfVxuXG59XG5cbmV4cG9ydCBjbGFzcyBEYk5neEFjdGlvbkNvbnRleHRNYXBEaXJlY3RpdmVTb3VyY2VJbnN0YW5jZSBpbXBsZW1lbnRzIEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZSB7XG5cbiAgcmVhZG9ubHkgX3NvdXJjZSQgPSB0aGlzLnBhcmVudC5tYXAkLnBpcGUobWFwKHggPT4geC5nZXQodGhpcy5rZXkpKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIHJlYWRvbmx5IF9zdG9yZSQgPSB0aGlzLl9zb3VyY2UkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4Py5zdG9yZSQgPz8gb2YodW5kZWZpbmVkKSksIHNoYXJlUmVwbGF5KDEpKTtcbiAgcmVhZG9ubHkgc3RvcmUkID0gYWN0aW9uQ29udGV4dFN0b3JlU291cmNlUGlwZSh0aGlzLl9zdG9yZSQpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcGFyZW50OiBEYk5neEFjdGlvbkNvbnRleHRNYXBEaXJlY3RpdmUsIHJlYWRvbmx5IGtleTogQWN0aW9uS2V5KSB7IH1cblxufVxuIl19
@@ -0,0 +1,40 @@
1
+ import { filterMaybe } from '@dereekb/rxjs';
2
+ import { Directive, Input } from '@angular/core';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { switchMap } from 'rxjs/operators';
5
+ import { ProvideSecondaryActionStoreSource } from '../../action.store.source';
6
+ import { DbNgxActionContextMapDirective } from './action.map.directive';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./action.map.directive";
9
+ /**
10
+ * Directive that provides a ActionContextStoreSource using the input key and DbNgxActionContextMapDirective.
11
+ */
12
+ export class DbNgxActionFromMapDirective {
13
+ constructor(_map) {
14
+ this._map = _map;
15
+ this._key = new BehaviorSubject(undefined);
16
+ this.store$ = this._key.pipe(filterMaybe(), switchMap((x) => this._map.sourceForKey(x).store$));
17
+ }
18
+ ngOnDestroy() {
19
+ this._key.complete();
20
+ }
21
+ get key() {
22
+ return this._key.value;
23
+ }
24
+ set key(key) {
25
+ this._key.next(key);
26
+ }
27
+ }
28
+ DbNgxActionFromMapDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionFromMapDirective, deps: [{ token: i1.DbNgxActionContextMapDirective }], target: i0.ɵɵFactoryTarget.Directive });
29
+ DbNgxActionFromMapDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: DbNgxActionFromMapDirective, selector: "[dbxActionFromMap]", inputs: { key: ["dbxActionFromMap", "key"] }, providers: ProvideSecondaryActionStoreSource(DbNgxActionFromMapDirective), ngImport: i0 });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionFromMapDirective, decorators: [{
31
+ type: Directive,
32
+ args: [{
33
+ selector: '[dbxActionFromMap]',
34
+ providers: ProvideSecondaryActionStoreSource(DbNgxActionFromMapDirective)
35
+ }]
36
+ }], ctorParameters: function () { return [{ type: i1.DbNgxActionContextMapDirective }]; }, propDecorators: { key: [{
37
+ type: Input,
38
+ args: ['dbxActionFromMap']
39
+ }] } });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLm1hcC5rZXkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9hY3Rpb24vZGlyZWN0aXZlL21hcC9hY3Rpb24ubWFwLmtleS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUU1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsaUNBQWlDLEVBQXFDLE1BQU0sMkJBQTJCLENBQUM7QUFDakgsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQUV4RTs7R0FFRztBQUtILE1BQU0sT0FBTywyQkFBMkI7SUFLdEMsWUFBNkIsSUFBb0M7UUFBcEMsU0FBSSxHQUFKLElBQUksQ0FBZ0M7UUFIekQsU0FBSSxHQUFHLElBQUksZUFBZSxDQUFtQixTQUFTLENBQUMsQ0FBQztRQUN2RCxXQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBRS9CLENBQUM7SUFFdEUsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQ0ksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksR0FBRyxDQUFDLEdBQXFCO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7O3dIQWxCVSwyQkFBMkI7NEdBQTNCLDJCQUEyQiwyRkFGM0IsaUNBQWlDLENBQUMsMkJBQTJCLENBQUM7MkZBRTlELDJCQUEyQjtrQkFKdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixTQUFTLEVBQUUsaUNBQWlDLDZCQUE2QjtpQkFDMUU7cUhBYUssR0FBRztzQkFETixLQUFLO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbHRlck1heWJlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFjdGlvbktleSB9IGZyb20gJy4vYWN0aW9uLm1hcCc7XG5pbXBvcnQgeyBQcm92aWRlU2Vjb25kYXJ5QWN0aW9uU3RvcmVTb3VyY2UsIFNlY29uZGFyeUFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZSB9IGZyb20gJy4uLy4uL2FjdGlvbi5zdG9yZS5zb3VyY2UnO1xuaW1wb3J0IHsgRGJOZ3hBY3Rpb25Db250ZXh0TWFwRGlyZWN0aXZlIH0gZnJvbSAnLi9hY3Rpb24ubWFwLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRoYXQgcHJvdmlkZXMgYSBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2UgdXNpbmcgdGhlIGlucHV0IGtleSBhbmQgRGJOZ3hBY3Rpb25Db250ZXh0TWFwRGlyZWN0aXZlLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4QWN0aW9uRnJvbU1hcF0nLFxuICBwcm92aWRlcnM6IFByb3ZpZGVTZWNvbmRhcnlBY3Rpb25TdG9yZVNvdXJjZShEYk5neEFjdGlvbkZyb21NYXBEaXJlY3RpdmUpXG59KVxuZXhwb3J0IGNsYXNzIERiTmd4QWN0aW9uRnJvbU1hcERpcmVjdGl2ZSBpbXBsZW1lbnRzIFNlY29uZGFyeUFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZSwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9rZXkgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPEFjdGlvbktleT4+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHN0b3JlJCA9IHRoaXMuX2tleS5waXBlKGZpbHRlck1heWJlKCksIHN3aXRjaE1hcCgoeCkgPT4gdGhpcy5fbWFwLnNvdXJjZUZvcktleSh4KS5zdG9yZSQpKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9tYXA6IERiTmd4QWN0aW9uQ29udGV4dE1hcERpcmVjdGl2ZSkgeyB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fa2V5LmNvbXBsZXRlKCk7XG4gIH1cblxuICBASW5wdXQoJ2RieEFjdGlvbkZyb21NYXAnKVxuICBnZXQga2V5KCk6IE1heWJlPEFjdGlvbktleT4ge1xuICAgIHJldHVybiB0aGlzLl9rZXkudmFsdWU7XG4gIH1cblxuICBzZXQga2V5KGtleTogTWF5YmU8QWN0aW9uS2V5Pikge1xuICAgIHRoaXMuX2tleS5uZXh0KGtleSk7XG4gIH1cblxufVxuIl19
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Map that returns sources for ActionKey values.
3
+ */
4
+ export class ActionContextStoreSourceMap {
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLm1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvYWN0aW9uL2RpcmVjdGl2ZS9tYXAvYWN0aW9uLm1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTs7R0FFRztBQUNILE1BQU0sT0FBZ0IsMkJBQTJCO0NBT2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uQ29udGV4dFN0b3JlU291cmNlIH0gZnJvbSAnLi4vLi4vYWN0aW9uLnN0b3JlLnNvdXJjZSc7XG5cbmV4cG9ydCB0eXBlIEFjdGlvbktleSA9IHN0cmluZztcblxuLyoqXG4gKiBNYXAgdGhhdCByZXR1cm5zIHNvdXJjZXMgZm9yIEFjdGlvbktleSB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VNYXA8VCA9IGFueSwgTyA9IGFueT4ge1xuICAvKipcbiAgICogUmV0dXJucyBhIEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZSBmb3IgdGhlIGlucHV0IGFjdGlvbiBrZXkuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgQWN0aW9uIGtleSB0byByZXRyaWV2ZSB0aGUgc291cmNlIGZvci5cbiAgICovXG4gIGFic3RyYWN0IHNvdXJjZUZvcktleShrZXk6IEFjdGlvbktleSk6IEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZTxULCBPPjtcbn1cbiJdfQ==
@@ -0,0 +1,49 @@
1
+ import { Directive, Host, Input } from '@angular/core';
2
+ import { ActionContextStoreSource } from '../../action.store.source';
3
+ import { DbNgxActionContextMapDirective } from './action.map.directive';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../action.store.source";
6
+ import * as i2 from "./action.map.directive";
7
+ /**
8
+ * Used to communicate with an dbxActionMap and set the ActionContextStore to the store based on the key.
9
+ */
10
+ export class DbNgxActionMapSourceDirective {
11
+ constructor(source, _map) {
12
+ this.source = source;
13
+ this._map = _map;
14
+ }
15
+ ngOnDestroy() {
16
+ this._removeFromToStore();
17
+ }
18
+ set key(key) {
19
+ if (this._key !== key) {
20
+ this._removeFromToStore();
21
+ }
22
+ this._key = key;
23
+ this._addToStore();
24
+ }
25
+ _addToStore() {
26
+ if (this._key) {
27
+ this._map.addStoreSource(this._key, this.source);
28
+ }
29
+ }
30
+ _removeFromToStore() {
31
+ if (this._key) {
32
+ this._map.removeStore(this._key);
33
+ }
34
+ }
35
+ }
36
+ DbNgxActionMapSourceDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionMapSourceDirective, deps: [{ token: i1.ActionContextStoreSource, host: true }, { token: i2.DbNgxActionContextMapDirective }], target: i0.ɵɵFactoryTarget.Directive });
37
+ DbNgxActionMapSourceDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: DbNgxActionMapSourceDirective, selector: "[dbxActionMapSource]", inputs: { key: ["dbxActionMapSource", "key"] }, ngImport: i0 });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionMapSourceDirective, decorators: [{
39
+ type: Directive,
40
+ args: [{
41
+ selector: '[dbxActionMapSource]'
42
+ }]
43
+ }], ctorParameters: function () { return [{ type: i1.ActionContextStoreSource, decorators: [{
44
+ type: Host
45
+ }] }, { type: i2.DbNgxActionContextMapDirective }]; }, propDecorators: { key: [{
46
+ type: Input,
47
+ args: ['dbxActionMapSource']
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLm1hcC5zb3VyY2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9hY3Rpb24vZGlyZWN0aXZlL21hcC9hY3Rpb24ubWFwLnNvdXJjZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRWxFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBR3hFOztHQUVHO0FBSUgsTUFBTSxPQUFPLDZCQUE2QjtJQUl4QyxZQUFvQyxNQUFnQyxFQUFtQixJQUFvQztRQUF2RixXQUFNLEdBQU4sTUFBTSxDQUEwQjtRQUFtQixTQUFJLEdBQUosSUFBSSxDQUFnQztJQUFJLENBQUM7SUFFaEksV0FBVztRQUNULElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUNJLEdBQUcsQ0FBQyxHQUFjO1FBQ3BCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxHQUFHLEVBQUU7WUFDckIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7U0FDM0I7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNoQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbEQ7SUFDSCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7OzBIQTlCVSw2QkFBNkI7OEdBQTdCLDZCQUE2QjsyRkFBN0IsNkJBQTZCO2tCQUh6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7aUJBQ2pDOzswQkFLYyxJQUFJO3lGQU9iLEdBQUc7c0JBRE4sS0FBSzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3QsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2UgfSBmcm9tICcuLi8uLi9hY3Rpb24uc3RvcmUuc291cmNlJztcbmltcG9ydCB7IERiTmd4QWN0aW9uQ29udGV4dE1hcERpcmVjdGl2ZSB9IGZyb20gJy4vYWN0aW9uLm1hcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQWN0aW9uS2V5IH0gZnJvbSAnLi9hY3Rpb24ubWFwJztcblxuLyoqXG4gKiBVc2VkIHRvIGNvbW11bmljYXRlIHdpdGggYW4gZGJ4QWN0aW9uTWFwIGFuZCBzZXQgdGhlIEFjdGlvbkNvbnRleHRTdG9yZSB0byB0aGUgc3RvcmUgYmFzZWQgb24gdGhlIGtleS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieEFjdGlvbk1hcFNvdXJjZV0nXG59KVxuZXhwb3J0IGNsYXNzIERiTmd4QWN0aW9uTWFwU291cmNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9rZXk6IE1heWJlPEFjdGlvbktleT47XG5cbiAgY29uc3RydWN0b3IoQEhvc3QoKSBwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2UsIHByaXZhdGUgcmVhZG9ubHkgX21hcDogRGJOZ3hBY3Rpb25Db250ZXh0TWFwRGlyZWN0aXZlKSB7IH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9yZW1vdmVGcm9tVG9TdG9yZSgpO1xuICB9XG5cbiAgQElucHV0KCdkYnhBY3Rpb25NYXBTb3VyY2UnKVxuICBzZXQga2V5KGtleTogQWN0aW9uS2V5KSB7XG4gICAgaWYgKHRoaXMuX2tleSAhPT0ga2V5KSB7XG4gICAgICB0aGlzLl9yZW1vdmVGcm9tVG9TdG9yZSgpO1xuICAgIH1cblxuICAgIHRoaXMuX2tleSA9IGtleTtcbiAgICB0aGlzLl9hZGRUb1N0b3JlKCk7XG4gIH1cblxuICBwcml2YXRlIF9hZGRUb1N0b3JlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9rZXkpIHtcbiAgICAgIHRoaXMuX21hcC5hZGRTdG9yZVNvdXJjZSh0aGlzLl9rZXksIHRoaXMuc291cmNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVGcm9tVG9TdG9yZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fa2V5KSB7XG4gICAgICB0aGlzLl9tYXAucmVtb3ZlU3RvcmUodGhpcy5fa2V5KTtcbiAgICB9XG4gIH1cblxufVxuIl19
@@ -0,0 +1,41 @@
1
+ import { Directive, Host, Input } from '@angular/core';
2
+ import { AbstractSubscriptionDirective } from '../../../subscription';
3
+ import { ActionContextStoreSourceInstance } from '../../action.store.source';
4
+ import { DbNgxActionContextMapDirective } from './action.map.directive';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../action.store.source";
7
+ import * as i2 from "./action.map.directive";
8
+ export const DEFAULT_ACTION_MAP_WORKING_DISABLED_KEY = '';
9
+ /**
10
+ * Used to communicate with an dbxActionMap and set the ActionContextStore to be disabled if any other element in the map is working.
11
+ */
12
+ export class DbNgxActionMapWorkingDisableDirective extends AbstractSubscriptionDirective {
13
+ constructor(source, _map) {
14
+ super();
15
+ this.source = source;
16
+ this._map = _map;
17
+ }
18
+ ngOnInit() {
19
+ this.sub = this._map.areAnyWorking$.subscribe((x) => {
20
+ this.source.disable(this.disabledKey || DEFAULT_ACTION_MAP_WORKING_DISABLED_KEY, x);
21
+ });
22
+ }
23
+ ngOnDestroy() {
24
+ super.ngOnDestroy();
25
+ this.source.enable(this.disabledKey || DEFAULT_ACTION_MAP_WORKING_DISABLED_KEY);
26
+ }
27
+ }
28
+ DbNgxActionMapWorkingDisableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionMapWorkingDisableDirective, deps: [{ token: i1.ActionContextStoreSourceInstance, host: true }, { token: i2.DbNgxActionContextMapDirective }], target: i0.ɵɵFactoryTarget.Directive });
29
+ DbNgxActionMapWorkingDisableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: DbNgxActionMapWorkingDisableDirective, selector: "[dbxActionMapWorkingDisable]", inputs: { disabledKey: ["dbxActionMapWorkingDisable", "disabledKey"] }, usesInheritance: true, ngImport: i0 });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionMapWorkingDisableDirective, decorators: [{
31
+ type: Directive,
32
+ args: [{
33
+ selector: '[dbxActionMapWorkingDisable]'
34
+ }]
35
+ }], ctorParameters: function () { return [{ type: i1.ActionContextStoreSourceInstance, decorators: [{
36
+ type: Host
37
+ }] }, { type: i2.DbNgxActionContextMapDirective }]; }, propDecorators: { disabledKey: [{
38
+ type: Input,
39
+ args: ['dbxActionMapWorkingDisable']
40
+ }] } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLm1hcC53b3JraW5nLmRpc2FibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9hY3Rpb24vZGlyZWN0aXZlL21hcC9hY3Rpb24ubWFwLndvcmtpbmcuZGlzYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUd4RSxNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FBRyxFQUFFLENBQUM7QUFFMUQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8scUNBQXNDLFNBQVEsNkJBQTZCO0lBS3RGLFlBQW9DLE1BQXdDLEVBQW1CLElBQW9DO1FBQ2pJLEtBQUssRUFBRSxDQUFDO1FBRDBCLFdBQU0sR0FBTixNQUFNLENBQWtDO1FBQW1CLFNBQUksR0FBSixJQUFJLENBQWdDO0lBRW5JLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLHVDQUF1QyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVRLFdBQVc7UUFDbEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksdUNBQXVDLENBQUMsQ0FBQztJQUNsRixDQUFDOztrSUFsQlUscUNBQXFDO3NIQUFyQyxxQ0FBcUM7MkZBQXJDLHFDQUFxQztrQkFIakQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsOEJBQThCO2lCQUN6Qzs7MEJBTWMsSUFBSTt5RkFGakIsV0FBVztzQkFEVixLQUFLO3VCQUFDLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdCwgSW5wdXQsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9zdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgQWN0aW9uQ29udGV4dFN0b3JlU291cmNlSW5zdGFuY2UgfSBmcm9tICcuLi8uLi9hY3Rpb24uc3RvcmUuc291cmNlJztcbmltcG9ydCB7IERiTmd4QWN0aW9uQ29udGV4dE1hcERpcmVjdGl2ZSB9IGZyb20gJy4vYWN0aW9uLm1hcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQWN0aW9uRGlzYWJsZWRLZXkgfSBmcm9tICcuLi8uLi9hY3Rpb24nO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9BQ1RJT05fTUFQX1dPUktJTkdfRElTQUJMRURfS0VZID0gJyc7XG5cbi8qKlxuICogVXNlZCB0byBjb21tdW5pY2F0ZSB3aXRoIGFuIGRieEFjdGlvbk1hcCBhbmQgc2V0IHRoZSBBY3Rpb25Db250ZXh0U3RvcmUgdG8gYmUgZGlzYWJsZWQgaWYgYW55IG90aGVyIGVsZW1lbnQgaW4gdGhlIG1hcCBpcyB3b3JraW5nLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4QWN0aW9uTWFwV29ya2luZ0Rpc2FibGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBEYk5neEFjdGlvbk1hcFdvcmtpbmdEaXNhYmxlRGlyZWN0aXZlIGV4dGVuZHMgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCdkYnhBY3Rpb25NYXBXb3JraW5nRGlzYWJsZScpXG4gIGRpc2FibGVkS2V5OiBNYXliZTxBY3Rpb25EaXNhYmxlZEtleT47XG5cbiAgY29uc3RydWN0b3IoQEhvc3QoKSBwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZSwgcHJpdmF0ZSByZWFkb25seSBfbWFwOiBEYk5neEFjdGlvbkNvbnRleHRNYXBEaXJlY3RpdmUpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWIgPSB0aGlzLl9tYXAuYXJlQW55V29ya2luZyQuc3Vic2NyaWJlKCh4KSA9PiB7XG4gICAgICB0aGlzLnNvdXJjZS5kaXNhYmxlKHRoaXMuZGlzYWJsZWRLZXkgfHwgREVGQVVMVF9BQ1RJT05fTUFQX1dPUktJTkdfRElTQUJMRURfS0VZLCB4KTtcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgdGhpcy5zb3VyY2UuZW5hYmxlKHRoaXMuZGlzYWJsZWRLZXkgfHwgREVGQVVMVF9BQ1RJT05fTUFQX1dPUktJTkdfRElTQUJMRURfS0VZKTtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,6 @@
1
+ export * from './action.map.directive';
2
+ export * from './action.map.key.directive';
3
+ export * from './action.map.source.directive';
4
+ export * from './action.map';
5
+ export * from './action.map.working.disable.directive';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2FjdGlvbi9kaXJlY3RpdmUvbWFwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsd0NBQXdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjdGlvbi5tYXAuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uLm1hcC5rZXkuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uLm1hcC5zb3VyY2UuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uLm1hcCc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbi5tYXAud29ya2luZy5kaXNhYmxlLmRpcmVjdGl2ZSc7XG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { Directive, Host, Input } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { distinctUntilChanged } from 'rxjs/operators';
4
+ import { AbstractSubscriptionDirective } from '../../../subscription';
5
+ import { ActionContextStoreSourceInstance } from '../../action.store.source';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../action.store.source";
8
+ export const APP_ACTION_DISABLED_DIRECTIVE_KEY = 'dbx_action_disabled';
9
+ /**
10
+ * Directive that allows disabling an action using the inputs.
11
+ */
12
+ export class DbNgxActionDisabledDirective extends AbstractSubscriptionDirective {
13
+ constructor(source) {
14
+ super();
15
+ this.source = source;
16
+ this._disabled = new BehaviorSubject(false);
17
+ this.disabled$ = this._disabled.pipe(distinctUntilChanged());
18
+ }
19
+ ngOnInit() {
20
+ this.sub = this.disabled$.subscribe((x) => {
21
+ this.source.disable(APP_ACTION_DISABLED_DIRECTIVE_KEY, x);
22
+ });
23
+ }
24
+ ngOnDestroy() {
25
+ super.ngOnDestroy();
26
+ this._disabled.complete();
27
+ this.source.enable(APP_ACTION_DISABLED_DIRECTIVE_KEY);
28
+ }
29
+ get disabled() {
30
+ return this._disabled.value;
31
+ }
32
+ set disabled(disabled) {
33
+ this._disabled.next(disabled);
34
+ }
35
+ }
36
+ DbNgxActionDisabledDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionDisabledDirective, deps: [{ token: i1.ActionContextStoreSourceInstance, host: true }], target: i0.ɵɵFactoryTarget.Directive });
37
+ DbNgxActionDisabledDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: DbNgxActionDisabledDirective, selector: "[dbxActionDisabled]", inputs: { disabled: ["dbxActionDisabled", "disabled"] }, usesInheritance: true, ngImport: i0 });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionDisabledDirective, decorators: [{
39
+ type: Directive,
40
+ args: [{
41
+ selector: '[dbxActionDisabled]'
42
+ }]
43
+ }], ctorParameters: function () { return [{ type: i1.ActionContextStoreSourceInstance, decorators: [{
44
+ type: Host
45
+ }] }]; }, propDecorators: { disabled: [{
46
+ type: Input,
47
+ args: ['dbxActionDisabled']
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmRpc2FibGVkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvYWN0aW9uL2RpcmVjdGl2ZS9zdGF0ZS9hY3Rpb24uZGlzYWJsZWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBRTdFLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLHFCQUFxQixDQUFDO0FBRXZFOztHQUVHO0FBSUgsTUFBTSxPQUFPLDRCQUFtQyxTQUFRLDZCQUE2QjtJQUtuRixZQUFvQyxNQUE4QztRQUNoRixLQUFLLEVBQUUsQ0FBQztRQUQwQixXQUFNLEdBQU4sTUFBTSxDQUF3QztRQUgxRSxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDL0MsY0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUlqRSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLFFBQWlCO1FBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7O3lIQTVCVSw0QkFBNEI7NkdBQTVCLDRCQUE0QjsyRkFBNUIsNEJBQTRCO2tCQUh4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7aUJBQ2hDOzswQkFNYyxJQUFJOzRDQWlCYixRQUFRO3NCQURYLEtBQUs7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0LCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3N1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZSB9IGZyb20gJy4uLy4uL2FjdGlvbi5zdG9yZS5zb3VyY2UnO1xuXG5leHBvcnQgY29uc3QgQVBQX0FDVElPTl9ESVNBQkxFRF9ESVJFQ1RJVkVfS0VZID0gJ2RieF9hY3Rpb25fZGlzYWJsZWQnO1xuXG4vKipcbiAqIERpcmVjdGl2ZSB0aGF0IGFsbG93cyBkaXNhYmxpbmcgYW4gYWN0aW9uIHVzaW5nIHRoZSBpbnB1dHMuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkYnhBY3Rpb25EaXNhYmxlZF0nXG59KVxuZXhwb3J0IGNsYXNzIERiTmd4QWN0aW9uRGlzYWJsZWREaXJlY3RpdmU8VCwgTz4gZXh0ZW5kcyBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9kaXNhYmxlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBkaXNhYmxlZCQgPSB0aGlzLl9kaXNhYmxlZC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuXG4gIGNvbnN0cnVjdG9yKEBIb3N0KCkgcHVibGljIHJlYWRvbmx5IHNvdXJjZTogQWN0aW9uQ29udGV4dFN0b3JlU291cmNlSW5zdGFuY2U8VCwgTz4pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWIgPSB0aGlzLmRpc2FibGVkJC5zdWJzY3JpYmUoKHgpID0+IHtcbiAgICAgIHRoaXMuc291cmNlLmRpc2FibGUoQVBQX0FDVElPTl9ESVNBQkxFRF9ESVJFQ1RJVkVfS0VZLCB4KTtcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgdGhpcy5fZGlzYWJsZWQuY29tcGxldGUoKTtcbiAgICB0aGlzLnNvdXJjZS5lbmFibGUoQVBQX0FDVElPTl9ESVNBQkxFRF9ESVJFQ1RJVkVfS0VZKTtcbiAgfVxuXG4gIEBJbnB1dCgnZGJ4QWN0aW9uRGlzYWJsZWQnKVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkLnZhbHVlO1xuICB9XG5cbiAgc2V0IGRpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQubmV4dChkaXNhYmxlZCk7XG4gIH1cblxufVxuIl19
@@ -0,0 +1,35 @@
1
+ import { Directive, Host } from '@angular/core';
2
+ import { AbstractSubscriptionDirective } from '../../../subscription';
3
+ import { ActionContextStoreSourceInstance } from '../../action.store.source';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../action.store.source";
6
+ export const APP_ACTION_DISABLED_UNTIL_MODIFIED_DIRECTIVE_KEY = 'dbx_action_is_not_modified';
7
+ /**
8
+ * Directive that sets the disabled state based on the current isModified state.
9
+ */
10
+ export class DbNgxActionDisabledUntilModifiedDirective extends AbstractSubscriptionDirective {
11
+ constructor(source) {
12
+ super();
13
+ this.source = source;
14
+ }
15
+ ngOnInit() {
16
+ this.sub = this.source.isModified$.subscribe((x) => {
17
+ this.source.disable(APP_ACTION_DISABLED_UNTIL_MODIFIED_DIRECTIVE_KEY, !x);
18
+ });
19
+ }
20
+ ngOnDestroy() {
21
+ super.ngOnDestroy();
22
+ this.source.enable(APP_ACTION_DISABLED_UNTIL_MODIFIED_DIRECTIVE_KEY);
23
+ }
24
+ }
25
+ DbNgxActionDisabledUntilModifiedDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionDisabledUntilModifiedDirective, deps: [{ token: i1.ActionContextStoreSourceInstance, host: true }], target: i0.ɵɵFactoryTarget.Directive });
26
+ DbNgxActionDisabledUntilModifiedDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: DbNgxActionDisabledUntilModifiedDirective, selector: "[dbxActionDisabledUntilModified]", usesInheritance: true, ngImport: i0 });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionDisabledUntilModifiedDirective, decorators: [{
28
+ type: Directive,
29
+ args: [{
30
+ selector: '[dbxActionDisabledUntilModified]'
31
+ }]
32
+ }], ctorParameters: function () { return [{ type: i1.ActionContextStoreSourceInstance, decorators: [{
33
+ type: Host
34
+ }] }]; } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmRpc2FibGVkLm1vZGlmaWVkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvYWN0aW9uL2RpcmVjdGl2ZS9zdGF0ZS9hY3Rpb24uZGlzYWJsZWQubW9kaWZpZWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBRTdFLE1BQU0sQ0FBQyxNQUFNLGdEQUFnRCxHQUFHLDRCQUE0QixDQUFDO0FBRTdGOztHQUVHO0FBSUgsTUFBTSxPQUFPLHlDQUFnRCxTQUFRLDZCQUE2QjtJQUVoRyxZQUFvQyxNQUE4QztRQUNoRixLQUFLLEVBQUUsQ0FBQztRQUQwQixXQUFNLEdBQU4sTUFBTSxDQUF3QztJQUVsRixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0RBQWdELEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7O3NJQWZVLHlDQUF5QzswSEFBekMseUNBQXlDOzJGQUF6Qyx5Q0FBeUM7a0JBSHJELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtDQUFrQztpQkFDN0M7OzBCQUdjLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3QsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3N1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZSB9IGZyb20gJy4uLy4uL2FjdGlvbi5zdG9yZS5zb3VyY2UnO1xuXG5leHBvcnQgY29uc3QgQVBQX0FDVElPTl9ESVNBQkxFRF9VTlRJTF9NT0RJRklFRF9ESVJFQ1RJVkVfS0VZID0gJ2RieF9hY3Rpb25faXNfbm90X21vZGlmaWVkJztcblxuLyoqXG4gKiBEaXJlY3RpdmUgdGhhdCBzZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBiYXNlZCBvbiB0aGUgY3VycmVudCBpc01vZGlmaWVkIHN0YXRlLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4QWN0aW9uRGlzYWJsZWRVbnRpbE1vZGlmaWVkXSdcbn0pXG5leHBvcnQgY2xhc3MgRGJOZ3hBY3Rpb25EaXNhYmxlZFVudGlsTW9kaWZpZWREaXJlY3RpdmU8VCwgTz4gZXh0ZW5kcyBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBjb25zdHJ1Y3RvcihASG9zdCgpIHB1YmxpYyByZWFkb25seSBzb3VyY2U6IEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZUluc3RhbmNlPFQsIE8+KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViID0gdGhpcy5zb3VyY2UuaXNNb2RpZmllZCQuc3Vic2NyaWJlKCh4KSA9PiB7XG4gICAgICB0aGlzLnNvdXJjZS5kaXNhYmxlKEFQUF9BQ1RJT05fRElTQUJMRURfVU5USUxfTU9ESUZJRURfRElSRUNUSVZFX0tFWSwgIXgpO1xuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLnNvdXJjZS5lbmFibGUoQVBQX0FDVElPTl9ESVNBQkxFRF9VTlRJTF9NT0RJRklFRF9ESVJFQ1RJVkVfS0VZKTtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,55 @@
1
+ import { Directive, Host, Input } from '@angular/core';
2
+ import { map, shareReplay, switchMap, tap } from 'rxjs/operators';
3
+ import { AbstractSubscriptionDirective } from '../../../subscription';
4
+ import { ActionContextStoreSourceInstance } from '../../action.store.source';
5
+ import { WorkHandlerContextSourceDelegate, handleWorkValueReadyFn } from '../../action.handler';
6
+ import { filterMaybe } from '@dereekb/rxjs';
7
+ import { BehaviorSubject } from 'rxjs';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../action.store.source";
10
+ /**
11
+ * Context used for defining a function that performs an action using the input function on ValueReady.
12
+ */
13
+ export class DbNgxActionHandlerDirective extends AbstractSubscriptionDirective {
14
+ constructor(source) {
15
+ super();
16
+ this.source = source;
17
+ this._handlerFunction = new BehaviorSubject(undefined);
18
+ this.handlerFunction$ = this._handlerFunction.pipe(filterMaybe(), shareReplay(1));
19
+ this._delegate = new WorkHandlerContextSourceDelegate(this.source);
20
+ }
21
+ get handlerFunction() {
22
+ return this._handlerFunction.value;
23
+ }
24
+ set handlerFunction(handlerFunction) {
25
+ this._handlerFunction.next(handlerFunction);
26
+ }
27
+ ngOnInit() {
28
+ this.sub = this.handlerFunction$.pipe(switchMap(handlerFunction => this.source.valueReady$.pipe(map((x) => [handlerFunction, x]), tap(([handlerFunction, value]) => {
29
+ const context = handleWorkValueReadyFn({ handlerFunction, delegate: this._delegate })(value);
30
+ if (context) {
31
+ // Add the action to the lockSet for the source to prevent it from being destroyed until the action completes.
32
+ this.source.lockSet.addLock('actionhandler', context.isComplete$.pipe(map(x => !x)));
33
+ }
34
+ })))).subscribe();
35
+ }
36
+ ngOnDestroy() {
37
+ this.source.lockSet.onNextUnlock(() => {
38
+ super.ngOnDestroy();
39
+ });
40
+ }
41
+ }
42
+ DbNgxActionHandlerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionHandlerDirective, deps: [{ token: i1.ActionContextStoreSourceInstance, host: true }], target: i0.ɵɵFactoryTarget.Directive });
43
+ DbNgxActionHandlerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: DbNgxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: { handlerFunction: ["dbxActionHandler", "handlerFunction"] }, usesInheritance: true, ngImport: i0 });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionHandlerDirective, decorators: [{
45
+ type: Directive,
46
+ args: [{
47
+ selector: '[dbxActionHandler]',
48
+ }]
49
+ }], ctorParameters: function () { return [{ type: i1.ActionContextStoreSourceInstance, decorators: [{
50
+ type: Host
51
+ }] }]; }, propDecorators: { handlerFunction: [{
52
+ type: Input,
53
+ args: ['dbxActionHandler']
54
+ }] } });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmhhbmRsZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9hY3Rpb24vZGlyZWN0aXZlL3N0YXRlL2FjdGlvbi5oYW5kbGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RSxPQUFPLEVBQXdCLGdDQUFnQyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFHdkM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sMkJBQWtDLFNBQVEsNkJBQTZCO0lBZ0JsRixZQUFvQyxNQUE4QztRQUNoRixLQUFLLEVBQUUsQ0FBQztRQUQwQixXQUFNLEdBQU4sTUFBTSxDQUF3QztRQWQxRSxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBb0MsU0FBUyxDQUFDLENBQUM7UUFDcEYscUJBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQVc5RSxjQUFTLEdBQUcsSUFBSSxnQ0FBZ0MsQ0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFJNUUsQ0FBQztJQWJELElBQ0ksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksZUFBZSxDQUFDLGVBQWtEO1FBQ3BFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQVFELFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQ25DLFNBQVMsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDdkQsR0FBRyxDQUFDLENBQUMsQ0FBSSxFQUFFLEVBQUUsQ0FBRSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQXFDLENBQUMsRUFDeEUsR0FBRyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUMvQixNQUFNLE9BQU8sR0FBRyxzQkFBc0IsQ0FBQyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFN0YsSUFBSSxPQUFPLEVBQUU7Z0JBRVgsOEdBQThHO2dCQUM5RyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3RGO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQyxDQUNILENBQUMsU0FBUyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVRLFdBQVc7UUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRTtZQUNwQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzt3SEF6Q1UsMkJBQTJCOzRHQUEzQiwyQkFBMkI7MkZBQTNCLDJCQUEyQjtrQkFIdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2lCQUMvQjs7MEJBaUJjLElBQUk7NENBVmIsZUFBZTtzQkFEbEIsS0FBSzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3N1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZSB9IGZyb20gJy4uLy4uL2FjdGlvbi5zdG9yZS5zb3VyY2UnO1xuaW1wb3J0IHsgSGFuZGxlQWN0aW9uRnVuY3Rpb24sIFdvcmtIYW5kbGVyQ29udGV4dFNvdXJjZURlbGVnYXRlLCBoYW5kbGVXb3JrVmFsdWVSZWFkeUZuIH0gZnJvbSAnLi4vLi4vYWN0aW9uLmhhbmRsZXInO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IGZpbHRlck1heWJlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuXG4vKipcbiAqIENvbnRleHQgdXNlZCBmb3IgZGVmaW5pbmcgYSBmdW5jdGlvbiB0aGF0IHBlcmZvcm1zIGFuIGFjdGlvbiB1c2luZyB0aGUgaW5wdXQgZnVuY3Rpb24gb24gVmFsdWVSZWFkeS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieEFjdGlvbkhhbmRsZXJdJyxcbn0pXG5leHBvcnQgY2xhc3MgRGJOZ3hBY3Rpb25IYW5kbGVyRGlyZWN0aXZlPFQsIE8+IGV4dGVuZHMgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBfaGFuZGxlckZ1bmN0aW9uID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxIYW5kbGVBY3Rpb25GdW5jdGlvbjxULCBPPj4+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGhhbmRsZXJGdW5jdGlvbiQgPSB0aGlzLl9oYW5kbGVyRnVuY3Rpb24ucGlwZShmaWx0ZXJNYXliZSgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgQElucHV0KCdkYnhBY3Rpb25IYW5kbGVyJylcbiAgZ2V0IGhhbmRsZXJGdW5jdGlvbigpOiBNYXliZTxIYW5kbGVBY3Rpb25GdW5jdGlvbjxULCBPPj4ge1xuICAgIHJldHVybiB0aGlzLl9oYW5kbGVyRnVuY3Rpb24udmFsdWU7XG4gIH1cblxuICBzZXQgaGFuZGxlckZ1bmN0aW9uKGhhbmRsZXJGdW5jdGlvbjogTWF5YmU8SGFuZGxlQWN0aW9uRnVuY3Rpb248VCwgTz4+KSB7XG4gICAgdGhpcy5faGFuZGxlckZ1bmN0aW9uLm5leHQoaGFuZGxlckZ1bmN0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RlbGVnYXRlID0gbmV3IFdvcmtIYW5kbGVyQ29udGV4dFNvdXJjZURlbGVnYXRlPFQsIE8+KHRoaXMuc291cmNlKTtcblxuICBjb25zdHJ1Y3RvcihASG9zdCgpIHB1YmxpYyByZWFkb25seSBzb3VyY2U6IEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZUluc3RhbmNlPFQsIE8+KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViID0gdGhpcy5oYW5kbGVyRnVuY3Rpb24kLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoaGFuZGxlckZ1bmN0aW9uID0+IHRoaXMuc291cmNlLnZhbHVlUmVhZHkkLnBpcGUoXG4gICAgICAgIG1hcCgoeDogVCkgPT4gKFtoYW5kbGVyRnVuY3Rpb24sIHhdIGFzIFtIYW5kbGVBY3Rpb25GdW5jdGlvbjxULCBPPiwgVF0pKSxcbiAgICAgICAgdGFwKChbaGFuZGxlckZ1bmN0aW9uLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICBjb25zdCBjb250ZXh0ID0gaGFuZGxlV29ya1ZhbHVlUmVhZHlGbih7IGhhbmRsZXJGdW5jdGlvbiwgZGVsZWdhdGU6IHRoaXMuX2RlbGVnYXRlIH0pKHZhbHVlKTtcblxuICAgICAgICAgIGlmIChjb250ZXh0KSB7XG5cbiAgICAgICAgICAgIC8vIEFkZCB0aGUgYWN0aW9uIHRvIHRoZSBsb2NrU2V0IGZvciB0aGUgc291cmNlIHRvIHByZXZlbnQgaXQgZnJvbSBiZWluZyBkZXN0cm95ZWQgdW50aWwgdGhlIGFjdGlvbiBjb21wbGV0ZXMuXG4gICAgICAgICAgICB0aGlzLnNvdXJjZS5sb2NrU2V0LmFkZExvY2soJ2FjdGlvbmhhbmRsZXInLCBjb250ZXh0LmlzQ29tcGxldGUkLnBpcGUobWFwKHggPT4gIXgpKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKSlcbiAgICApLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zb3VyY2UubG9ja1NldC5vbk5leHRVbmxvY2soKCkgPT4ge1xuICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9KTtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,50 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { of } from 'rxjs';
3
+ import { delay, exhaustMap, shareReplay, startWith } from 'rxjs/operators';
4
+ import { ActionContextStoreSourceInstance } from '../../action.store.source';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../action.store.source";
7
+ import * as i2 from "@angular/common";
8
+ /**
9
+ * Displays the input content when success is set.
10
+ *
11
+ * Can be configured to show for a limited time afterwards, etc.
12
+ */
13
+ export class DbNgxActionSuccessComponent {
14
+ constructor(source) {
15
+ this.source = source;
16
+ this.show$ = this.source.isSuccess$.pipe(exhaustMap((success) => {
17
+ if (success) {
18
+ if (this.hideAfter) {
19
+ return of(false).pipe(delay(this.hideAfter), startWith(true));
20
+ }
21
+ else {
22
+ return of(true);
23
+ }
24
+ }
25
+ else {
26
+ return of(false);
27
+ }
28
+ }), shareReplay(1));
29
+ }
30
+ }
31
+ DbNgxActionSuccessComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionSuccessComponent, deps: [{ token: i1.ActionContextStoreSourceInstance }], target: i0.ɵɵFactoryTarget.Component });
32
+ DbNgxActionSuccessComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: DbNgxActionSuccessComponent, selector: "dbx-action-success", inputs: { hideAfter: "hideAfter" }, ngImport: i0, template: `
33
+ <ng-container *ngIf="show$ | async">
34
+ <ng-content></ng-content>
35
+ </ng-container>
36
+ `, isInline: true, directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe } });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionSuccessComponent, decorators: [{
38
+ type: Component,
39
+ args: [{
40
+ selector: 'dbx-action-success',
41
+ template: `
42
+ <ng-container *ngIf="show$ | async">
43
+ <ng-content></ng-content>
44
+ </ng-container>
45
+ `
46
+ }]
47
+ }], ctorParameters: function () { return [{ type: i1.ActionContextStoreSourceInstance }]; }, propDecorators: { hideAfter: [{
48
+ type: Input
49
+ }] } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLnN1Y2Nlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9hY3Rpb24vZGlyZWN0aXZlL3N0YXRlL2FjdGlvbi5zdWNjZXNzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQUU3RTs7OztHQUlHO0FBU0gsTUFBTSxPQUFPLDJCQUEyQjtJQXVCdEMsWUFBNEIsTUFBd0M7UUFBeEMsV0FBTSxHQUFOLE1BQU0sQ0FBa0M7UUFsQjNELFVBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQzFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3JCLElBQUksT0FBTyxFQUFFO2dCQUNYLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtvQkFDbEIsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUNuQixLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUNyQixTQUFTLENBQUMsSUFBSSxDQUFDLENBQ2hCLENBQUM7aUJBQ0g7cUJBQU07b0JBQ0wsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ2pCO2FBQ0Y7aUJBQU07Z0JBQ0wsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDbEI7UUFDSCxDQUFDLENBQUMsRUFDRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUVzRSxDQUFDOzt3SEF2QjlELDJCQUEyQjs0R0FBM0IsMkJBQTJCLDhGQU41Qjs7OztHQUlUOzJGQUVVLDJCQUEyQjtrQkFSdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUU7Ozs7R0FJVDtpQkFDRjt1SEFJQyxTQUFTO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVsYXksIGV4aGF1c3RNYXAsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZSB9IGZyb20gJy4uLy4uL2FjdGlvbi5zdG9yZS5zb3VyY2UnO1xuXG4vKipcbiAqIERpc3BsYXlzIHRoZSBpbnB1dCBjb250ZW50IHdoZW4gc3VjY2VzcyBpcyBzZXQuXG4gKlxuICogQ2FuIGJlIGNvbmZpZ3VyZWQgdG8gc2hvdyBmb3IgYSBsaW1pdGVkIHRpbWUgYWZ0ZXJ3YXJkcywgZXRjLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtYWN0aW9uLXN1Y2Nlc3MnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93JCB8IGFzeW5jXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgRGJOZ3hBY3Rpb25TdWNjZXNzQ29tcG9uZW50IHtcblxuICBASW5wdXQoKVxuICBoaWRlQWZ0ZXI/OiBudW1iZXI7XG5cbiAgcmVhZG9ubHkgc2hvdyQgPSB0aGlzLnNvdXJjZS5pc1N1Y2Nlc3MkLnBpcGUoXG4gICAgZXhoYXVzdE1hcCgoc3VjY2VzcykgPT4ge1xuICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgaWYgKHRoaXMuaGlkZUFmdGVyKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKS5waXBlKFxuICAgICAgICAgICAgZGVsYXkodGhpcy5oaWRlQWZ0ZXIpLFxuICAgICAgICAgICAgc3RhcnRXaXRoKHRydWUpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZSkgeyB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,48 @@
1
+ import { map, tap, shareReplay, switchMap } from 'rxjs/operators';
2
+ import { filterMaybe } from '@dereekb/rxjs';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { Directive, Host, Input } from '@angular/core';
5
+ import { AbstractSubscriptionDirective } from '../../../subscription';
6
+ import { ActionContextStoreSourceInstance } from '../../action.store.source';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../../action.store.source";
9
+ /**
10
+ * Directive that executes a function on ActionContextStore Success.
11
+ */
12
+ export class DbNgxActionSuccessDirective extends AbstractSubscriptionDirective {
13
+ constructor(source) {
14
+ super();
15
+ this.source = source;
16
+ this._successFunction = new BehaviorSubject(undefined);
17
+ this.successFunction$ = this._successFunction.pipe(filterMaybe(), shareReplay(1));
18
+ }
19
+ get successFunction() {
20
+ return this._successFunction.value;
21
+ }
22
+ set successFunction(successFunction) {
23
+ this._successFunction.next(successFunction);
24
+ }
25
+ ngOnInit() {
26
+ this.sub = this.successFunction$.pipe(switchMap(successFunction => this.source.success$.pipe(map(x => ([successFunction, x])), tap(([successFn, result]) => {
27
+ successFn(result);
28
+ })))).subscribe();
29
+ }
30
+ ngOnDestroy() {
31
+ super.ngOnDestroy();
32
+ this._successFunction.complete();
33
+ }
34
+ }
35
+ DbNgxActionSuccessDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionSuccessDirective, deps: [{ token: i1.ActionContextStoreSourceInstance, host: true }], target: i0.ɵɵFactoryTarget.Directive });
36
+ DbNgxActionSuccessDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: DbNgxActionSuccessDirective, selector: "[dbxActionSuccess]", inputs: { successFunction: ["dbxActionSuccess", "successFunction"] }, usesInheritance: true, ngImport: i0 });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbNgxActionSuccessDirective, decorators: [{
38
+ type: Directive,
39
+ args: [{
40
+ selector: '[dbxActionSuccess]',
41
+ }]
42
+ }], ctorParameters: function () { return [{ type: i1.ActionContextStoreSourceInstance, decorators: [{
43
+ type: Host
44
+ }] }]; }, propDecorators: { successFunction: [{
45
+ type: Input,
46
+ args: ['dbxActionSuccess']
47
+ }] } });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLnN1Y2Nlc3MuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9hY3Rpb24vZGlyZWN0aXZlL3N0YXRlL2FjdGlvbi5zdWNjZXNzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFMUUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQU83RTs7R0FFRztBQUlILE1BQU0sT0FBTywyQkFBa0MsU0FBUSw2QkFBNkI7SUFjbEYsWUFBb0MsTUFBd0M7UUFDMUUsS0FBSyxFQUFFLENBQUM7UUFEMEIsV0FBTSxHQUFOLE1BQU0sQ0FBa0M7UUFacEUscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQWtDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xGLHFCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFhdEYsQ0FBQztJQVhELElBQ0ksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksZUFBZSxDQUFDLGVBQWdEO1FBQ2xFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQU1ELFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQ25DLFNBQVMsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDcEQsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ2hDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUU7WUFDMUIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUNILENBQUMsQ0FDSCxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7d0hBaENVLDJCQUEyQjs0R0FBM0IsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBSHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtpQkFDL0I7OzBCQWVjLElBQUk7NENBUmIsZUFBZTtzQkFEbEIsS0FBSzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXAsIHRhcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGZpbHRlck1heWJlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdCwgSW5wdXQsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9zdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgQWN0aW9uQ29udGV4dFN0b3JlU291cmNlSW5zdGFuY2UgfSBmcm9tICcuLi8uLi9hY3Rpb24uc3RvcmUuc291cmNlJztcblxuLyoqXG4gKiBQZXJmb3JtcyB0aGUgYWN0aW9uIG9uIHN1Y2Nlc3MuXG4gKi9cbmV4cG9ydCB0eXBlIFN1Y2Nlc3NBY3Rpb25GdW5jdGlvbjxPPiA9ICh2YWx1ZTogTykgPT4gdm9pZDtcblxuLyoqXG4gKiBEaXJlY3RpdmUgdGhhdCBleGVjdXRlcyBhIGZ1bmN0aW9uIG9uIEFjdGlvbkNvbnRleHRTdG9yZSBTdWNjZXNzLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4QWN0aW9uU3VjY2Vzc10nLFxufSlcbmV4cG9ydCBjbGFzcyBEYk5neEFjdGlvblN1Y2Nlc3NEaXJlY3RpdmU8VCwgTz4gZXh0ZW5kcyBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9zdWNjZXNzRnVuY3Rpb24gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPFN1Y2Nlc3NBY3Rpb25GdW5jdGlvbjxPPj4+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHN1Y2Nlc3NGdW5jdGlvbiQgPSB0aGlzLl9zdWNjZXNzRnVuY3Rpb24ucGlwZShmaWx0ZXJNYXliZSgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgQElucHV0KCdkYnhBY3Rpb25TdWNjZXNzJylcbiAgZ2V0IHN1Y2Nlc3NGdW5jdGlvbigpOiBNYXliZTxTdWNjZXNzQWN0aW9uRnVuY3Rpb248Tz4+IHtcbiAgICByZXR1cm4gdGhpcy5fc3VjY2Vzc0Z1bmN0aW9uLnZhbHVlO1xuICB9XG5cbiAgc2V0IHN1Y2Nlc3NGdW5jdGlvbihzdWNjZXNzRnVuY3Rpb246IE1heWJlPFN1Y2Nlc3NBY3Rpb25GdW5jdGlvbjxPPj4pIHtcbiAgICB0aGlzLl9zdWNjZXNzRnVuY3Rpb24ubmV4dChzdWNjZXNzRnVuY3Rpb24pO1xuICB9XG5cbiAgY29uc3RydWN0b3IoQEhvc3QoKSBwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YiA9IHRoaXMuc3VjY2Vzc0Z1bmN0aW9uJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKHN1Y2Nlc3NGdW5jdGlvbiA9PiB0aGlzLnNvdXJjZS5zdWNjZXNzJC5waXBlKFxuICAgICAgICBtYXAoeCA9PiAoW3N1Y2Nlc3NGdW5jdGlvbiwgeF0pKSxcbiAgICAgICAgdGFwKChbc3VjY2Vzc0ZuLCByZXN1bHRdKSA9PiB7XG4gICAgICAgICAgc3VjY2Vzc0ZuKHJlc3VsdCk7XG4gICAgICAgIH0pXG4gICAgICApKVxuICAgICkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX3N1Y2Nlc3NGdW5jdGlvbi5jb21wbGV0ZSgpO1xuICB9XG5cbn1cbiJdfQ==