@ngxs/store 3.7.3-dev.master-5175b98 → 3.7.3

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 +16 -16
  2. package/bundles/ngxs-store-internals-testing.umd.js +215 -235
  3. package/bundles/ngxs-store-internals-testing.umd.js.map +1 -1
  4. package/bundles/ngxs-store-internals-testing.umd.min.js +2 -2
  5. package/bundles/ngxs-store-internals-testing.umd.min.js.map +1 -1
  6. package/bundles/ngxs-store-internals.umd.js +211 -422
  7. package/bundles/ngxs-store-internals.umd.js.map +1 -1
  8. package/bundles/ngxs-store-internals.umd.min.js +1 -1
  9. package/bundles/ngxs-store-internals.umd.min.js.map +1 -1
  10. package/bundles/ngxs-store-operators.umd.js +310 -311
  11. package/bundles/ngxs-store-operators.umd.js.map +1 -1
  12. package/bundles/ngxs-store-operators.umd.min.js +1 -1
  13. package/bundles/ngxs-store-operators.umd.min.js.map +1 -1
  14. package/bundles/ngxs-store.umd.js +4518 -4423
  15. package/bundles/ngxs-store.umd.js.map +1 -1
  16. package/bundles/ngxs-store.umd.min.js +1 -1
  17. package/bundles/ngxs-store.umd.min.js.map +1 -1
  18. package/esm2015/index.js +13 -13
  19. package/esm2015/internals/angular.js +40 -46
  20. package/esm2015/internals/index.js +10 -11
  21. package/esm2015/internals/initial-state.js +34 -34
  22. package/esm2015/internals/internal-tokens.js +16 -16
  23. package/esm2015/internals/memoize.js +70 -70
  24. package/esm2015/internals/ngxs-bootstrapper.js +41 -41
  25. package/esm2015/internals/ngxs-store-internals.js +9 -9
  26. package/esm2015/internals/src/symbols.js +14 -14
  27. package/esm2015/internals/symbols.js +14 -14
  28. package/esm2015/internals/testing/fresh-platform.js +71 -90
  29. package/esm2015/internals/testing/helpers/ngxs-test.component.js +22 -22
  30. package/esm2015/internals/testing/helpers/ngxs-test.module.js +24 -24
  31. package/esm2015/internals/testing/index.js +7 -7
  32. package/esm2015/internals/testing/ngxs-store-internals-testing.js +8 -8
  33. package/esm2015/internals/testing/ngxs.setup.js +76 -76
  34. package/esm2015/internals/testing/symbol.js +29 -29
  35. package/esm2015/ngxs-store.js +27 -24
  36. package/esm2015/operators/append.js +31 -31
  37. package/esm2015/operators/compose.js +24 -24
  38. package/esm2015/operators/iif.js +56 -56
  39. package/esm2015/operators/index.js +18 -18
  40. package/esm2015/operators/insert-item.js +41 -41
  41. package/esm2015/operators/internals.js +5 -5
  42. package/esm2015/operators/ngxs-store-operators.js +8 -8
  43. package/esm2015/operators/patch.js +39 -38
  44. package/esm2015/operators/remove-item.js +34 -34
  45. package/esm2015/operators/update-item.js +52 -54
  46. package/esm2015/operators/utils.js +50 -50
  47. package/esm2015/src/actions/actions.js +39 -39
  48. package/esm2015/src/actions/symbols.js +39 -39
  49. package/esm2015/src/actions-stream.js +140 -138
  50. package/esm2015/src/configs/messages.config.js +87 -79
  51. package/esm2015/src/decorators/action.js +44 -48
  52. package/esm2015/src/decorators/select/select-factory.js +46 -49
  53. package/esm2015/src/decorators/select/select.js +45 -81
  54. package/esm2015/src/decorators/select/symbols.js +50 -94
  55. package/esm2015/src/decorators/selector/selector.js +55 -59
  56. package/esm2015/src/decorators/selector/symbols.js +5 -5
  57. package/esm2015/src/decorators/selector-options.js +34 -34
  58. package/esm2015/src/decorators/state.js +75 -83
  59. package/esm2015/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +96 -101
  60. package/esm2015/src/execution/internal-ngxs-execution-strategy.js +45 -45
  61. package/esm2015/src/execution/noop-ngxs-execution-strategy.js +27 -27
  62. package/esm2015/src/execution/symbols.js +29 -29
  63. package/esm2015/src/host-environment/host-environment.js +31 -0
  64. package/esm2015/src/internal/config-validator.js +67 -0
  65. package/esm2015/src/internal/dispatcher.js +217 -217
  66. package/esm2015/src/internal/internals.js +489 -493
  67. package/esm2015/src/internal/lifecycle-state-manager.js +129 -129
  68. package/esm2015/src/internal/state-context-factory.js +138 -138
  69. package/esm2015/src/internal/state-factory.js +429 -449
  70. package/esm2015/src/internal/state-operations.js +125 -120
  71. package/esm2015/src/internal/state-operators.js +33 -33
  72. package/esm2015/src/internal/state-stream.js +21 -21
  73. package/esm2015/src/ivy/ensure-state-class-is-injectable.js +34 -0
  74. package/esm2015/src/ivy/ivy-enabled-in-dev-mode.js +40 -28
  75. package/esm2015/src/module.js +172 -158
  76. package/esm2015/src/modules/ngxs-feature.module.js +63 -63
  77. package/esm2015/src/modules/ngxs-root.module.js +52 -52
  78. package/esm2015/src/operators/leave-ngxs.js +58 -58
  79. package/esm2015/src/operators/of-action.js +191 -191
  80. package/esm2015/src/plugin-manager.js +70 -70
  81. package/esm2015/src/plugin_api.js +10 -10
  82. package/esm2015/src/public_api.js +29 -29
  83. package/esm2015/src/public_to_deprecate.js +64 -64
  84. package/esm2015/src/state-token/state-token.js +45 -45
  85. package/esm2015/src/state-token/symbols.js +5 -5
  86. package/esm2015/src/store.js +174 -174
  87. package/esm2015/src/symbols.js +221 -217
  88. package/esm2015/src/utils/compose.js +44 -44
  89. package/esm2015/src/utils/freeze.js +35 -35
  90. package/esm2015/src/utils/selector-utils.js +221 -221
  91. package/esm2015/src/utils/store-validators.js +65 -60
  92. package/esm2015/src/utils/utils.js +143 -143
  93. package/esm5/index.js +13 -13
  94. package/esm5/internals/angular.js +40 -46
  95. package/esm5/internals/index.js +10 -11
  96. package/esm5/internals/initial-state.js +45 -45
  97. package/esm5/internals/internal-tokens.js +16 -16
  98. package/esm5/internals/memoize.js +71 -71
  99. package/esm5/internals/ngxs-bootstrapper.js +56 -56
  100. package/esm5/internals/ngxs-store-internals.js +9 -9
  101. package/esm5/internals/src/symbols.js +14 -14
  102. package/esm5/internals/symbols.js +14 -14
  103. package/esm5/internals/testing/fresh-platform.js +81 -101
  104. package/esm5/internals/testing/helpers/ngxs-test.component.js +32 -32
  105. package/esm5/internals/testing/helpers/ngxs-test.module.js +32 -32
  106. package/esm5/internals/testing/index.js +7 -7
  107. package/esm5/internals/testing/ngxs-store-internals-testing.js +8 -8
  108. package/esm5/internals/testing/ngxs.setup.js +98 -98
  109. package/esm5/internals/testing/symbol.js +29 -29
  110. package/esm5/ngxs-store.js +27 -24
  111. package/esm5/operators/append.js +31 -31
  112. package/esm5/operators/compose.js +28 -28
  113. package/esm5/operators/iif.js +56 -56
  114. package/esm5/operators/index.js +18 -18
  115. package/esm5/operators/insert-item.js +41 -41
  116. package/esm5/operators/internals.js +5 -5
  117. package/esm5/operators/ngxs-store-operators.js +8 -8
  118. package/esm5/operators/patch.js +40 -39
  119. package/esm5/operators/remove-item.js +34 -34
  120. package/esm5/operators/update-item.js +52 -54
  121. package/esm5/operators/utils.js +50 -50
  122. package/esm5/src/actions/actions.js +62 -62
  123. package/esm5/src/actions/symbols.js +39 -39
  124. package/esm5/src/actions-stream.js +186 -184
  125. package/esm5/src/configs/messages.config.js +104 -79
  126. package/esm5/src/decorators/action.js +56 -60
  127. package/esm5/src/decorators/select/select-factory.js +47 -50
  128. package/esm5/src/decorators/select/select.js +50 -87
  129. package/esm5/src/decorators/select/symbols.js +51 -95
  130. package/esm5/src/decorators/selector/selector.js +55 -59
  131. package/esm5/src/decorators/selector/symbols.js +5 -5
  132. package/esm5/src/decorators/selector-options.js +34 -34
  133. package/esm5/src/decorators/state.js +76 -84
  134. package/esm5/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +121 -121
  135. package/esm5/src/execution/internal-ngxs-execution-strategy.js +54 -54
  136. package/esm5/src/execution/noop-ngxs-execution-strategy.js +41 -41
  137. package/esm5/src/execution/symbols.js +29 -29
  138. package/esm5/src/host-environment/host-environment.js +29 -0
  139. package/esm5/src/internal/config-validator.js +76 -0
  140. package/esm5/src/internal/dispatcher.js +253 -253
  141. package/esm5/src/internal/internals.js +491 -495
  142. package/esm5/src/internal/lifecycle-state-manager.js +177 -177
  143. package/esm5/src/internal/state-context-factory.js +146 -146
  144. package/esm5/src/internal/state-factory.js +563 -575
  145. package/esm5/src/internal/state-operations.js +139 -130
  146. package/esm5/src/internal/state-operators.js +34 -34
  147. package/esm5/src/internal/state-stream.js +25 -25
  148. package/esm5/src/ivy/ensure-state-class-is-injectable.js +34 -0
  149. package/esm5/src/ivy/ivy-enabled-in-dev-mode.js +40 -28
  150. package/esm5/src/module.js +215 -201
  151. package/esm5/src/modules/ngxs-feature.module.js +65 -65
  152. package/esm5/src/modules/ngxs-root.module.js +47 -47
  153. package/esm5/src/operators/leave-ngxs.js +58 -58
  154. package/esm5/src/operators/of-action.js +217 -217
  155. package/esm5/src/plugin-manager.js +82 -82
  156. package/esm5/src/plugin_api.js +10 -10
  157. package/esm5/src/public_api.js +29 -29
  158. package/esm5/src/public_to_deprecate.js +64 -64
  159. package/esm5/src/state-token/state-token.js +57 -57
  160. package/esm5/src/state-token/symbols.js +5 -5
  161. package/esm5/src/store.js +225 -225
  162. package/esm5/src/symbols.js +230 -226
  163. package/esm5/src/utils/compose.js +55 -55
  164. package/esm5/src/utils/freeze.js +35 -35
  165. package/esm5/src/utils/selector-utils.js +230 -230
  166. package/esm5/src/utils/store-validators.js +86 -78
  167. package/esm5/src/utils/utils.js +151 -151
  168. package/fesm2015/ngxs-store-internals-testing.js +175 -194
  169. package/fesm2015/ngxs-store-internals-testing.js.map +1 -1
  170. package/fesm2015/ngxs-store-internals.js +194 -402
  171. package/fesm2015/ngxs-store-internals.js.map +1 -1
  172. package/fesm2015/ngxs-store-operators.js +312 -313
  173. package/fesm2015/ngxs-store-operators.js.map +1 -1
  174. package/fesm2015/ngxs-store.js +3976 -3927
  175. package/fesm2015/ngxs-store.js.map +1 -1
  176. package/fesm5/ngxs-store-internals-testing.js +221 -241
  177. package/fesm5/ngxs-store-internals-testing.js.map +1 -1
  178. package/fesm5/ngxs-store-internals.js +219 -427
  179. package/fesm5/ngxs-store-internals.js.map +1 -1
  180. package/fesm5/ngxs-store-operators.js +316 -317
  181. package/fesm5/ngxs-store-operators.js.map +1 -1
  182. package/fesm5/ngxs-store.js +4510 -4420
  183. package/fesm5/ngxs-store.js.map +1 -1
  184. package/index.d.ts +8 -8
  185. package/internals/angular.d.ts +3 -3
  186. package/internals/index.d.ts +6 -7
  187. package/internals/initial-state.d.ts +8 -8
  188. package/internals/internal-tokens.d.ts +9 -9
  189. package/internals/memoize.d.ts +9 -9
  190. package/internals/ngxs-bootstrapper.d.ts +13 -13
  191. package/internals/ngxs-store-internals.d.ts +4 -4
  192. package/internals/ngxs-store-internals.metadata.json +1 -1
  193. package/internals/src/symbols.d.ts +7 -7
  194. package/internals/symbols.d.ts +7 -7
  195. package/internals/testing/fresh-platform.d.ts +1 -1
  196. package/internals/testing/helpers/ngxs-test.component.d.ts +5 -5
  197. package/internals/testing/helpers/ngxs-test.module.d.ts +4 -4
  198. package/internals/testing/index.d.ts +3 -3
  199. package/internals/testing/ngxs-store-internals-testing.d.ts +4 -4
  200. package/internals/testing/ngxs-store-internals-testing.metadata.json +1 -1
  201. package/internals/testing/ngxs.setup.d.ts +7 -7
  202. package/internals/testing/symbol.d.ts +14 -14
  203. package/ngxs-store.d.ts +23 -20
  204. package/ngxs-store.metadata.json +1 -1
  205. package/operators/append.d.ts +6 -6
  206. package/operators/compose.d.ts +2 -3
  207. package/operators/iif.d.ts +11 -11
  208. package/operators/index.d.ts +13 -13
  209. package/operators/insert-item.d.ts +7 -7
  210. package/operators/internals.d.ts +2 -2
  211. package/operators/ngxs-store-operators.d.ts +4 -4
  212. package/operators/ngxs-store-operators.metadata.json +1 -1
  213. package/operators/patch.d.ts +10 -6
  214. package/operators/remove-item.d.ts +7 -7
  215. package/operators/update-item.d.ts +10 -10
  216. package/operators/utils.d.ts +9 -10
  217. package/package.json +2 -2
  218. package/src/actions/actions.d.ts +15 -15
  219. package/src/actions/symbols.d.ts +21 -21
  220. package/src/actions-stream.d.ts +49 -49
  221. package/src/configs/messages.config.d.ts +30 -11
  222. package/src/decorators/action.d.ts +5 -5
  223. package/src/decorators/select/select-factory.d.ts +14 -13
  224. package/src/decorators/select/select.d.ts +4 -4
  225. package/src/decorators/select/symbols.d.ts +10 -14
  226. package/src/decorators/selector/selector.d.ts +5 -5
  227. package/src/decorators/selector/symbols.d.ts +4 -4
  228. package/src/decorators/selector-options.d.ts +5 -5
  229. package/src/decorators/state.d.ts +6 -6
  230. package/src/execution/dispatch-outside-zone-ngxs-execution-strategy.d.ts +12 -11
  231. package/src/execution/internal-ngxs-execution-strategy.d.ts +7 -7
  232. package/src/execution/noop-ngxs-execution-strategy.d.ts +5 -5
  233. package/src/execution/symbols.d.ts +6 -6
  234. package/src/host-environment/host-environment.d.ts +6 -0
  235. package/src/internal/config-validator.d.ts +10 -0
  236. package/src/internal/dispatcher.d.ts +32 -32
  237. package/src/internal/internals.d.ts +167 -166
  238. package/src/internal/lifecycle-state-manager.d.ts +20 -20
  239. package/src/internal/state-context-factory.d.ts +15 -15
  240. package/src/internal/state-factory.d.ts +58 -57
  241. package/src/internal/state-operations.d.ts +21 -19
  242. package/src/internal/state-operators.d.ts +2 -2
  243. package/src/internal/state-stream.d.ts +9 -9
  244. package/src/ivy/ensure-state-class-is-injectable.d.ts +6 -0
  245. package/src/ivy/ivy-enabled-in-dev-mode.d.ts +14 -6
  246. package/src/module.d.ts +23 -23
  247. package/src/modules/ngxs-feature.module.d.ts +13 -13
  248. package/src/modules/ngxs-root.module.d.ts +13 -13
  249. package/src/operators/leave-ngxs.d.ts +7 -7
  250. package/src/operators/of-action.d.ts +43 -43
  251. package/src/plugin-manager.d.ts +10 -10
  252. package/src/plugin_api.d.ts +5 -5
  253. package/src/public_api.d.ts +17 -17
  254. package/src/public_to_deprecate.d.ts +21 -21
  255. package/src/state-token/state-token.d.ts +7 -7
  256. package/src/state-token/symbols.d.ts +5 -5
  257. package/src/store.d.ts +53 -53
  258. package/src/symbols.d.ts +137 -135
  259. package/src/utils/compose.d.ts +23 -23
  260. package/src/utils/freeze.d.ts +5 -5
  261. package/src/utils/selector-utils.d.ts +23 -23
  262. package/src/utils/store-validators.d.ts +8 -7
  263. package/src/utils/utils.d.ts +46 -46
  264. package/types/index.d.ts +2 -2
  265. package/esm2015/internals/decorator-injector-adapter.js +0 -204
  266. package/esm5/internals/decorator-injector-adapter.js +0 -204
  267. package/internals/decorator-injector-adapter.d.ts +0 -15
@@ -1,59 +1,55 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { throwSelectorDecoratorError } from '../../configs/messages.config';
6
- import { createSelector } from '../../utils/selector-utils';
7
- /**
8
- * Decorator for memoizing a state selector.
9
- * @template T
10
- * @param {?=} selectors
11
- * @return {?}
12
- */
13
- export function Selector(selectors) {
14
- return (/**
15
- * @template U
16
- * @param {?} target
17
- * @param {?} key
18
- * @param {?} descriptor
19
- * @return {?}
20
- */
21
- function (target, key, descriptor) {
22
- // Caretaker note: we have still left the `typeof` condition in order to avoid
23
- // creating a breaking change for projects that still use the View Engine.
24
- if (typeof ngDevMode === 'undefined' || ngDevMode) {
25
- /** @type {?} */
26
- var isNotMethod = !(descriptor && descriptor.value !== null);
27
- if (isNotMethod) {
28
- throwSelectorDecoratorError();
29
- }
30
- }
31
- /** @type {?} */
32
- var originalFn = descriptor.value;
33
- /** @type {?} */
34
- var memoizedFn = createSelector(selectors, (/** @type {?} */ (originalFn)), {
35
- containerClass: target,
36
- selectorName: key.toString(),
37
- getSelectorOptions: /**
38
- * @return {?}
39
- */
40
- function () {
41
- return {};
42
- }
43
- });
44
- /** @type {?} */
45
- var newDescriptor = {
46
- configurable: true,
47
- get: /**
48
- * @return {?}
49
- */
50
- function () {
51
- return memoizedFn;
52
- }
53
- };
54
- // Add hidden property to descriptor
55
- ((/** @type {?} */ (newDescriptor)))['originalFn'] = originalFn;
56
- return newDescriptor;
57
- });
58
- }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3IuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9kZWNvcmF0b3JzL3NlbGVjdG9yL3NlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7QUFNNUQsTUFBTSxVQUFVLFFBQVEsQ0FBSSxTQUFlO0lBQ3pDOzs7Ozs7O0lBQU8sVUFDTCxNQUFXLEVBQ1gsR0FBb0IsRUFDcEIsVUFBdUQ7UUFFdkQsOEVBQThFO1FBQzlFLDBFQUEwRTtRQUMxRSxJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUU7O2dCQUMzQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQztZQUU5RCxJQUFJLFdBQVcsRUFBRTtnQkFDZiwyQkFBMkIsRUFBRSxDQUFDO2FBQy9CO1NBQ0Y7O1lBRUssVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLOztZQUM3QixVQUFVLEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxtQkFBQSxVQUFVLEVBQU8sRUFBRTtZQUM5RCxjQUFjLEVBQUUsTUFBTTtZQUN0QixZQUFZLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUM1QixrQkFBa0I7Ozs7Z0JBQ2hCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztTQUNGLENBQUM7O1lBQ0ksYUFBYSxHQUFHO1lBQ3BCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLEdBQUc7Ozs7Z0JBQ0QsT0FBTyxVQUFVLENBQUM7WUFDcEIsQ0FBQztTQUNGO1FBQ0Qsb0NBQW9DO1FBQ3BDLENBQUMsbUJBQUssYUFBYSxFQUFBLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxVQUFVLENBQUM7UUFDaEQsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQyxFQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRocm93U2VsZWN0b3JEZWNvcmF0b3JFcnJvciB9IGZyb20gJy4uLy4uL2NvbmZpZ3MvbWVzc2FnZXMuY29uZmlnJztcbmltcG9ydCB7IGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2VsZWN0b3ItdXRpbHMnO1xuaW1wb3J0IHsgU2VsZWN0b3JTcGVjLCBTZWxlY3RvclR5cGUgfSBmcm9tICcuL3N5bWJvbHMnO1xuXG4vKipcbiAqIERlY29yYXRvciBmb3IgbWVtb2l6aW5nIGEgc3RhdGUgc2VsZWN0b3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTZWxlY3RvcjxUPihzZWxlY3RvcnM/OiBUW10pOiBTZWxlY3RvclR5cGU8VD4ge1xuICByZXR1cm4gPFU+KFxuICAgIHRhcmdldDogYW55LFxuICAgIGtleTogc3RyaW5nIHwgc3ltYm9sLFxuICAgIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPFNlbGVjdG9yU3BlYzxULCBVPj5cbiAgKTogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8U2VsZWN0b3JTcGVjPFQsIFU+PiB8IHZvaWQgPT4ge1xuICAgIC8vIENhcmV0YWtlciBub3RlOiB3ZSBoYXZlIHN0aWxsIGxlZnQgdGhlIGB0eXBlb2ZgIGNvbmRpdGlvbiBpbiBvcmRlciB0byBhdm9pZFxuICAgIC8vIGNyZWF0aW5nIGEgYnJlYWtpbmcgY2hhbmdlIGZvciBwcm9qZWN0cyB0aGF0IHN0aWxsIHVzZSB0aGUgVmlldyBFbmdpbmUuXG4gICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgY29uc3QgaXNOb3RNZXRob2QgPSAhKGRlc2NyaXB0b3IgJiYgZGVzY3JpcHRvci52YWx1ZSAhPT0gbnVsbCk7XG5cbiAgICAgIGlmIChpc05vdE1ldGhvZCkge1xuICAgICAgICB0aHJvd1NlbGVjdG9yRGVjb3JhdG9yRXJyb3IoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBvcmlnaW5hbEZuID0gZGVzY3JpcHRvci52YWx1ZTtcbiAgICBjb25zdCBtZW1vaXplZEZuID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0b3JzLCBvcmlnaW5hbEZuIGFzIGFueSwge1xuICAgICAgY29udGFpbmVyQ2xhc3M6IHRhcmdldCxcbiAgICAgIHNlbGVjdG9yTmFtZToga2V5LnRvU3RyaW5nKCksXG4gICAgICBnZXRTZWxlY3Rvck9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBuZXdEZXNjcmlwdG9yID0ge1xuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0KCkge1xuICAgICAgICByZXR1cm4gbWVtb2l6ZWRGbjtcbiAgICAgIH1cbiAgICB9O1xuICAgIC8vIEFkZCBoaWRkZW4gcHJvcGVydHkgdG8gZGVzY3JpcHRvclxuICAgICg8YW55Pm5ld0Rlc2NyaXB0b3IpWydvcmlnaW5hbEZuJ10gPSBvcmlnaW5hbEZuO1xuICAgIHJldHVybiBuZXdEZXNjcmlwdG9yO1xuICB9O1xufVxuIl19
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { CONFIG_MESSAGES, VALIDATION_CODE } from '../../configs/messages.config';
6
+ import { createSelector } from '../../utils/selector-utils';
7
+ /**
8
+ * Decorator for memoizing a state selector.
9
+ * @template T
10
+ * @param {?=} selectors
11
+ * @return {?}
12
+ */
13
+ export function Selector(selectors) {
14
+ return (/**
15
+ * @template U
16
+ * @param {?} target
17
+ * @param {?} key
18
+ * @param {?} descriptor
19
+ * @return {?}
20
+ */
21
+ function (target, key, descriptor) {
22
+ /** @type {?} */
23
+ var isNotMethod = !(descriptor && descriptor.value !== null);
24
+ if (isNotMethod) {
25
+ throw new Error(CONFIG_MESSAGES[VALIDATION_CODE.SELECTOR_DECORATOR]());
26
+ }
27
+ /** @type {?} */
28
+ var originalFn = descriptor.value;
29
+ /** @type {?} */
30
+ var memoizedFn = createSelector(selectors, (/** @type {?} */ (originalFn)), {
31
+ containerClass: target,
32
+ selectorName: key.toString(),
33
+ getSelectorOptions: /**
34
+ * @return {?}
35
+ */
36
+ function () {
37
+ return {};
38
+ }
39
+ });
40
+ /** @type {?} */
41
+ var newDescriptor = {
42
+ configurable: true,
43
+ get: /**
44
+ * @return {?}
45
+ */
46
+ function () {
47
+ return memoizedFn;
48
+ }
49
+ };
50
+ // Add hidden property to descriptor
51
+ ((/** @type {?} */ (newDescriptor)))['originalFn'] = originalFn;
52
+ return newDescriptor;
53
+ });
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3IuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9kZWNvcmF0b3JzL3NlbGVjdG9yL3NlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7OztBQU01RCxNQUFNLFVBQVUsUUFBUSxDQUFJLFNBQWU7SUFDekM7Ozs7Ozs7SUFBTyxVQUNMLE1BQVcsRUFDWCxHQUFvQixFQUNwQixVQUF1RDs7WUFFakQsV0FBVyxHQUFHLENBQUMsQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUM7UUFFOUQsSUFBSSxXQUFXLEVBQUU7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDeEU7O1lBRUssVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLOztZQUM3QixVQUFVLEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxtQkFBQSxVQUFVLEVBQU8sRUFBRTtZQUM5RCxjQUFjLEVBQUUsTUFBTTtZQUN0QixZQUFZLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUM1QixrQkFBa0I7Ozs7Z0JBQ2hCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztTQUNGLENBQUM7O1lBQ0ksYUFBYSxHQUFHO1lBQ3BCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLEdBQUc7Ozs7Z0JBQ0QsT0FBTyxVQUFVLENBQUM7WUFDcEIsQ0FBQztTQUNGO1FBQ0Qsb0NBQW9DO1FBQ3BDLENBQUMsbUJBQUssYUFBYSxFQUFBLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxVQUFVLENBQUM7UUFDaEQsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQyxFQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENPTkZJR19NRVNTQUdFUywgVkFMSURBVElPTl9DT0RFIH0gZnJvbSAnLi4vLi4vY29uZmlncy9tZXNzYWdlcy5jb25maWcnO1xyXG5pbXBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gJy4uLy4uL3V0aWxzL3NlbGVjdG9yLXV0aWxzJztcclxuaW1wb3J0IHsgU2VsZWN0b3JTcGVjLCBTZWxlY3RvclR5cGUgfSBmcm9tICcuL3N5bWJvbHMnO1xyXG5cclxuLyoqXHJcbiAqIERlY29yYXRvciBmb3IgbWVtb2l6aW5nIGEgc3RhdGUgc2VsZWN0b3IuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gU2VsZWN0b3I8VD4oc2VsZWN0b3JzPzogVFtdKTogU2VsZWN0b3JUeXBlPFQ+IHtcclxuICByZXR1cm4gPFU+KFxyXG4gICAgdGFyZ2V0OiBhbnksXHJcbiAgICBrZXk6IHN0cmluZyB8IHN5bWJvbCxcclxuICAgIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPFNlbGVjdG9yU3BlYzxULCBVPj5cclxuICApOiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxTZWxlY3RvclNwZWM8VCwgVT4+IHwgdm9pZCA9PiB7XHJcbiAgICBjb25zdCBpc05vdE1ldGhvZCA9ICEoZGVzY3JpcHRvciAmJiBkZXNjcmlwdG9yLnZhbHVlICE9PSBudWxsKTtcclxuXHJcbiAgICBpZiAoaXNOb3RNZXRob2QpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKENPTkZJR19NRVNTQUdFU1tWQUxJREFUSU9OX0NPREUuU0VMRUNUT1JfREVDT1JBVE9SXSgpKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvcmlnaW5hbEZuID0gZGVzY3JpcHRvci52YWx1ZTtcclxuICAgIGNvbnN0IG1lbW9pemVkRm4gPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RvcnMsIG9yaWdpbmFsRm4gYXMgYW55LCB7XHJcbiAgICAgIGNvbnRhaW5lckNsYXNzOiB0YXJnZXQsXHJcbiAgICAgIHNlbGVjdG9yTmFtZToga2V5LnRvU3RyaW5nKCksXHJcbiAgICAgIGdldFNlbGVjdG9yT3B0aW9ucygpIHtcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29uc3QgbmV3RGVzY3JpcHRvciA9IHtcclxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxyXG4gICAgICBnZXQoKSB7XHJcbiAgICAgICAgcmV0dXJuIG1lbW9pemVkRm47XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICAvLyBBZGQgaGlkZGVuIHByb3BlcnR5IHRvIGRlc2NyaXB0b3JcclxuICAgICg8YW55Pm5ld0Rlc2NyaXB0b3IpWydvcmlnaW5hbEZuJ10gPSBvcmlnaW5hbEZuO1xyXG4gICAgcmV0dXJuIG5ld0Rlc2NyaXB0b3I7XHJcbiAgfTtcclxufVxyXG4iXX0=
@@ -1,5 +1,5 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2RlY29yYXRvcnMvc2VsZWN0b3Ivc3ltYm9scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGVUb2tlbiB9IGZyb20gJy4uLy4uL3N0YXRlLXRva2VuL3N0YXRlLXRva2VuJztcbmltcG9ydCB7IEV4dHJhY3RUb2tlblR5cGUgfSBmcm9tICcuLi8uLi9zdGF0ZS10b2tlbi9zeW1ib2xzJztcblxuZXhwb3J0IHR5cGUgU2VsZWN0b3JTcGVjPFQsIFU+ID0gW1RdIGV4dGVuZHMgW25ldmVyXVxuICA/ICgoLi4uc3RhdGVzOiBhbnlbXSkgPT4gYW55KVxuICA6IChUIGV4dGVuZHMgU3RhdGVUb2tlbjxhbnk+XG4gICAgICA/IChzdGF0ZTogRXh0cmFjdFRva2VuVHlwZTxUPikgPT4gVVxuICAgICAgOiAoLi4uc3RhdGVzOiBhbnlbXSkgPT4gYW55KTtcblxuZXhwb3J0IHR5cGUgU2VsZWN0b3JUeXBlPFQ+ID0gPFU+KFxuICB0YXJnZXQ6IGFueSxcbiAga2V5OiBzdHJpbmcgfCBzeW1ib2wsXG4gIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPFNlbGVjdG9yU3BlYzxULCBVPj5cbikgPT4gVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8U2VsZWN0b3JTcGVjPFQsIFU+PiB8IHZvaWQ7XG4iXX0=
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2RlY29yYXRvcnMvc2VsZWN0b3Ivc3ltYm9scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGVUb2tlbiB9IGZyb20gJy4uLy4uL3N0YXRlLXRva2VuL3N0YXRlLXRva2VuJztcclxuaW1wb3J0IHsgRXh0cmFjdFRva2VuVHlwZSB9IGZyb20gJy4uLy4uL3N0YXRlLXRva2VuL3N5bWJvbHMnO1xyXG5cclxuZXhwb3J0IHR5cGUgU2VsZWN0b3JTcGVjPFQsIFU+ID0gW1RdIGV4dGVuZHMgW25ldmVyXVxyXG4gID8gKCguLi5zdGF0ZXM6IGFueVtdKSA9PiBhbnkpXHJcbiAgOiAoVCBleHRlbmRzIFN0YXRlVG9rZW48YW55PlxyXG4gICAgICA/IChzdGF0ZTogRXh0cmFjdFRva2VuVHlwZTxUPikgPT4gVVxyXG4gICAgICA6ICguLi5zdGF0ZXM6IGFueVtdKSA9PiBhbnkpO1xyXG5cclxuZXhwb3J0IHR5cGUgU2VsZWN0b3JUeXBlPFQ+ID0gPFU+KFxyXG4gIHRhcmdldDogYW55LFxyXG4gIGtleTogc3RyaW5nIHwgc3ltYm9sLFxyXG4gIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPFNlbGVjdG9yU3BlYzxULCBVPj5cclxuKSA9PiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxTZWxlY3RvclNwZWM8VCwgVT4+IHwgdm9pZDtcclxuIl19
@@ -1,34 +1,34 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { selectorOptionsMetaAccessor } from '../utils/selector-utils';
6
- /**
7
- * Decorator for setting selector options at a method or class level.
8
- * @param {?} options
9
- * @return {?}
10
- */
11
- export function SelectorOptions(options) {
12
- return (/** @type {?} */ (((/**
13
- * @template T
14
- * @param {?} target
15
- * @param {?} methodName
16
- * @param {?} descriptor
17
- * @return {?}
18
- */
19
- function decorate(target, methodName, descriptor) {
20
- if (methodName) {
21
- // Method Decorator
22
- /** @type {?} */
23
- var originalFn = descriptor.value || ((/** @type {?} */ (descriptor))).originalFn;
24
- if (originalFn) {
25
- selectorOptionsMetaAccessor.defineOptions(originalFn, options);
26
- }
27
- }
28
- else {
29
- // Class Decorator
30
- selectorOptionsMetaAccessor.defineOptions(target, options);
31
- }
32
- }))));
33
- }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3Itb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2RlY29yYXRvcnMvc2VsZWN0b3Itb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7OztBQUt0RSxNQUFNLFVBQVUsZUFBZSxDQUFDLE9BQThCO0lBQzVELE9BQU8sbUJBQWtDOzs7Ozs7O0lBQ3ZDLFNBQVMsUUFBUSxDQUNmLE1BQVcsRUFDWCxVQUFrQixFQUNsQixVQUFzQztRQUV0QyxJQUFJLFVBQVUsRUFBRTs7O2dCQUVSLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxJQUFJLENBQUMsbUJBQUssVUFBVSxFQUFBLENBQUMsQ0FBQyxVQUFVO1lBQ25FLElBQUksVUFBVSxFQUFFO2dCQUNkLDJCQUEyQixDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDaEU7U0FDRjthQUFNO1lBQ0wsa0JBQWtCO1lBQ2xCLDJCQUEyQixDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDNUQ7SUFDSCxDQUFDLEVBQ0YsRUFBQSxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNoYXJlZFNlbGVjdG9yT3B0aW9ucyB9IGZyb20gJy4uL2ludGVybmFsL2ludGVybmFscyc7XG5pbXBvcnQgeyBzZWxlY3Rvck9wdGlvbnNNZXRhQWNjZXNzb3IgfSBmcm9tICcuLi91dGlscy9zZWxlY3Rvci11dGlscyc7XG5cbi8qKlxuICogRGVjb3JhdG9yIGZvciBzZXR0aW5nIHNlbGVjdG9yIG9wdGlvbnMgYXQgYSBtZXRob2Qgb3IgY2xhc3MgbGV2ZWwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTZWxlY3Rvck9wdGlvbnMob3B0aW9uczogU2hhcmVkU2VsZWN0b3JPcHRpb25zKSB7XG4gIHJldHVybiA8Q2xhc3NEZWNvcmF0b3IgJiBNZXRob2REZWNvcmF0b3I+KFxuICAgIGZ1bmN0aW9uIGRlY29yYXRlPFQ+KFxuICAgICAgdGFyZ2V0OiBhbnksXG4gICAgICBtZXRob2ROYW1lOiBzdHJpbmcsXG4gICAgICBkZXNjcmlwdG9yOiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxUPlxuICAgICkge1xuICAgICAgaWYgKG1ldGhvZE5hbWUpIHtcbiAgICAgICAgLy8gTWV0aG9kIERlY29yYXRvclxuICAgICAgICBjb25zdCBvcmlnaW5hbEZuID0gZGVzY3JpcHRvci52YWx1ZSB8fCAoPGFueT5kZXNjcmlwdG9yKS5vcmlnaW5hbEZuO1xuICAgICAgICBpZiAob3JpZ2luYWxGbikge1xuICAgICAgICAgIHNlbGVjdG9yT3B0aW9uc01ldGFBY2Nlc3Nvci5kZWZpbmVPcHRpb25zKG9yaWdpbmFsRm4sIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBDbGFzcyBEZWNvcmF0b3JcbiAgICAgICAgc2VsZWN0b3JPcHRpb25zTWV0YUFjY2Vzc29yLmRlZmluZU9wdGlvbnModGFyZ2V0LCBvcHRpb25zKTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG59XG4iXX0=
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { selectorOptionsMetaAccessor } from '../utils/selector-utils';
6
+ /**
7
+ * Decorator for setting selector options at a method or class level.
8
+ * @param {?} options
9
+ * @return {?}
10
+ */
11
+ export function SelectorOptions(options) {
12
+ return (/** @type {?} */ (((/**
13
+ * @template T
14
+ * @param {?} target
15
+ * @param {?} methodName
16
+ * @param {?} descriptor
17
+ * @return {?}
18
+ */
19
+ function decorate(target, methodName, descriptor) {
20
+ if (methodName) {
21
+ // Method Decorator
22
+ /** @type {?} */
23
+ var originalFn = descriptor.value || ((/** @type {?} */ (descriptor))).originalFn;
24
+ if (originalFn) {
25
+ selectorOptionsMetaAccessor.defineOptions(originalFn, options);
26
+ }
27
+ }
28
+ else {
29
+ // Class Decorator
30
+ selectorOptionsMetaAccessor.defineOptions(target, options);
31
+ }
32
+ }))));
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3Itb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2RlY29yYXRvcnMvc2VsZWN0b3Itb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7OztBQUt0RSxNQUFNLFVBQVUsZUFBZSxDQUFDLE9BQThCO0lBQzVELE9BQU8sbUJBQWtDOzs7Ozs7O0lBQ3ZDLFNBQVMsUUFBUSxDQUNmLE1BQVcsRUFDWCxVQUFrQixFQUNsQixVQUFzQztRQUV0QyxJQUFJLFVBQVUsRUFBRTs7O2dCQUVSLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxJQUFJLENBQUMsbUJBQUssVUFBVSxFQUFBLENBQUMsQ0FBQyxVQUFVO1lBQ25FLElBQUksVUFBVSxFQUFFO2dCQUNkLDJCQUEyQixDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDaEU7U0FDRjthQUFNO1lBQ0wsa0JBQWtCO1lBQ2xCLDJCQUEyQixDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDNUQ7SUFDSCxDQUFDLEVBQ0YsRUFBQSxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNoYXJlZFNlbGVjdG9yT3B0aW9ucyB9IGZyb20gJy4uL2ludGVybmFsL2ludGVybmFscyc7XHJcbmltcG9ydCB7IHNlbGVjdG9yT3B0aW9uc01ldGFBY2Nlc3NvciB9IGZyb20gJy4uL3V0aWxzL3NlbGVjdG9yLXV0aWxzJztcclxuXHJcbi8qKlxyXG4gKiBEZWNvcmF0b3IgZm9yIHNldHRpbmcgc2VsZWN0b3Igb3B0aW9ucyBhdCBhIG1ldGhvZCBvciBjbGFzcyBsZXZlbC5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBTZWxlY3Rvck9wdGlvbnMob3B0aW9uczogU2hhcmVkU2VsZWN0b3JPcHRpb25zKSB7XHJcbiAgcmV0dXJuIDxDbGFzc0RlY29yYXRvciAmIE1ldGhvZERlY29yYXRvcj4oXHJcbiAgICBmdW5jdGlvbiBkZWNvcmF0ZTxUPihcclxuICAgICAgdGFyZ2V0OiBhbnksXHJcbiAgICAgIG1ldGhvZE5hbWU6IHN0cmluZyxcclxuICAgICAgZGVzY3JpcHRvcjogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8VD5cclxuICAgICkge1xyXG4gICAgICBpZiAobWV0aG9kTmFtZSkge1xyXG4gICAgICAgIC8vIE1ldGhvZCBEZWNvcmF0b3JcclxuICAgICAgICBjb25zdCBvcmlnaW5hbEZuID0gZGVzY3JpcHRvci52YWx1ZSB8fCAoPGFueT5kZXNjcmlwdG9yKS5vcmlnaW5hbEZuO1xyXG4gICAgICAgIGlmIChvcmlnaW5hbEZuKSB7XHJcbiAgICAgICAgICBzZWxlY3Rvck9wdGlvbnNNZXRhQWNjZXNzb3IuZGVmaW5lT3B0aW9ucyhvcmlnaW5hbEZuLCBvcHRpb25zKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gQ2xhc3MgRGVjb3JhdG9yXHJcbiAgICAgICAgc2VsZWN0b3JPcHRpb25zTWV0YUFjY2Vzc29yLmRlZmluZU9wdGlvbnModGFyZ2V0LCBvcHRpb25zKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICk7XHJcbn1cclxuIl19
@@ -1,84 +1,76 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import * as tslib_1 from "tslib";
6
- import { ensureStoreMetadata } from '../internal/internals';
7
- import { META_KEY, META_OPTIONS_KEY } from '../symbols';
8
- import { StoreValidators } from '../utils/store-validators';
9
- import { ensureStateClassIsInjectable } from '../ivy/ivy-enabled-in-dev-mode';
10
- /**
11
- * @record
12
- * @template T
13
- */
14
- function MutateMetaOptions() { }
15
- if (false) {
16
- /** @type {?} */
17
- MutateMetaOptions.prototype.meta;
18
- /** @type {?} */
19
- MutateMetaOptions.prototype.inheritedStateClass;
20
- /** @type {?} */
21
- MutateMetaOptions.prototype.optionsWithInheritance;
22
- }
23
- /**
24
- * Decorates a class with ngxs state information.
25
- * @template T
26
- * @param {?} options
27
- * @return {?}
28
- */
29
- export function State(options) {
30
- /**
31
- * @param {?} inheritedStateClass
32
- * @return {?}
33
- */
34
- function getStateOptions(inheritedStateClass) {
35
- /** @type {?} */
36
- var inheritanceOptions = inheritedStateClass[META_OPTIONS_KEY] || {};
37
- return (/** @type {?} */ (tslib_1.__assign({}, inheritanceOptions, options)));
38
- }
39
- /**
40
- * @param {?} params
41
- * @return {?}
42
- */
43
- function mutateMetaData(params) {
44
- var meta = params.meta, inheritedStateClass = params.inheritedStateClass, optionsWithInheritance = params.optionsWithInheritance;
45
- var children = optionsWithInheritance.children, defaults = optionsWithInheritance.defaults, name = optionsWithInheritance.name;
46
- /** @type {?} */
47
- var stateName = typeof name === 'string' ? name : (name && name.getName()) || null;
48
- // Caretaker note: we have still left the `typeof` condition in order to avoid
49
- // creating a breaking change for projects that still use the View Engine.
50
- if (typeof ngDevMode === 'undefined' || ngDevMode) {
51
- StoreValidators.checkThatStateIsNamedCorrectly(stateName);
52
- }
53
- if (inheritedStateClass.hasOwnProperty(META_KEY)) {
54
- /** @type {?} */
55
- var inheritedMeta = inheritedStateClass[META_KEY] || {};
56
- meta.actions = tslib_1.__assign({}, meta.actions, inheritedMeta.actions);
57
- }
58
- meta.children = children;
59
- meta.defaults = defaults;
60
- meta.name = stateName;
61
- }
62
- return (/**
63
- * @param {?} target
64
- * @return {?}
65
- */
66
- function (target) {
67
- // Caretaker note: we have still left the `typeof` condition in order to avoid
68
- // creating a breaking change for projects that still use the View Engine.
69
- if (typeof ngDevMode === 'undefined' || ngDevMode) {
70
- ensureStateClassIsInjectable(target);
71
- }
72
- /** @type {?} */
73
- var stateClass = target;
74
- /** @type {?} */
75
- var meta = ensureStoreMetadata(stateClass);
76
- /** @type {?} */
77
- var inheritedStateClass = Object.getPrototypeOf(stateClass);
78
- /** @type {?} */
79
- var optionsWithInheritance = getStateOptions(inheritedStateClass);
80
- mutateMetaData({ meta: meta, inheritedStateClass: inheritedStateClass, optionsWithInheritance: optionsWithInheritance });
81
- stateClass[META_OPTIONS_KEY] = optionsWithInheritance;
82
- });
83
- }
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9kZWNvcmF0b3JzL3N0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsT0FBTyxFQUFFLG1CQUFtQixFQUFxQyxNQUFNLHVCQUF1QixDQUFDO0FBQy9GLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sWUFBWSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7QUFFOUUsZ0NBSUM7OztJQUhDLGlDQUFvQjs7SUFDcEIsZ0RBQXdDOztJQUN4QyxtREFBd0M7Ozs7Ozs7O0FBTTFDLE1BQU0sVUFBVSxLQUFLLENBQUksT0FBd0I7Ozs7O0lBQy9DLFNBQVMsZUFBZSxDQUFDLG1CQUF1Qzs7WUFDeEQsa0JBQWtCLEdBQ3RCLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRTtRQUM3QyxPQUFPLHdDQUFLLGtCQUFrQixFQUFLLE9BQU8sR0FBcUIsQ0FBQztJQUNsRSxDQUFDOzs7OztJQUVELFNBQVMsY0FBYyxDQUFDLE1BQTRCO1FBQzFDLElBQUEsa0JBQUksRUFBRSxnREFBbUIsRUFBRSxzREFBc0I7UUFDakQsSUFBQSwwQ0FBUSxFQUFFLDBDQUFRLEVBQUUsa0NBQUk7O1lBQzFCLFNBQVMsR0FDYixPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksSUFBSTtRQUVwRSw4RUFBOEU7UUFDOUUsMEVBQTBFO1FBQzFFLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsRUFBRTtZQUNqRCxlQUFlLENBQUMsOEJBQThCLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDM0Q7UUFFRCxJQUFJLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRTs7Z0JBQzFDLGFBQWEsR0FBMkIsbUJBQW1CLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtZQUNqRixJQUFJLENBQUMsT0FBTyx3QkFBUSxJQUFJLENBQUMsT0FBTyxFQUFLLGFBQWEsQ0FBQyxPQUFPLENBQUUsQ0FBQztTQUM5RDtRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7OztJQUFPLFVBQUMsTUFBa0I7UUFDeEIsOEVBQThFO1FBQzlFLDBFQUEwRTtRQUMxRSxJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUU7WUFDakQsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDdEM7O1lBQ0ssVUFBVSxHQUF1QixNQUFNOztZQUN2QyxJQUFJLEdBQWtCLG1CQUFtQixDQUFDLFVBQVUsQ0FBQzs7WUFDckQsbUJBQW1CLEdBQXVCLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDOztZQUMzRSxzQkFBc0IsR0FBb0IsZUFBZSxDQUFDLG1CQUFtQixDQUFDO1FBQ3BGLGNBQWMsQ0FBQyxFQUFFLElBQUksTUFBQSxFQUFFLG1CQUFtQixxQkFBQSxFQUFFLHNCQUFzQix3QkFBQSxFQUFFLENBQUMsQ0FBQztRQUN0RSxVQUFVLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxzQkFBc0IsQ0FBQztJQUN4RCxDQUFDLEVBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGVDbGFzcyB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5cbmltcG9ydCB7IGVuc3VyZVN0b3JlTWV0YWRhdGEsIE1ldGFEYXRhTW9kZWwsIFN0YXRlQ2xhc3NJbnRlcm5hbCB9IGZyb20gJy4uL2ludGVybmFsL2ludGVybmFscyc7XG5pbXBvcnQgeyBNRVRBX0tFWSwgTUVUQV9PUFRJT05TX0tFWSwgU3RvcmVPcHRpb25zIH0gZnJvbSAnLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBTdG9yZVZhbGlkYXRvcnMgfSBmcm9tICcuLi91dGlscy9zdG9yZS12YWxpZGF0b3JzJztcbmltcG9ydCB7IGVuc3VyZVN0YXRlQ2xhc3NJc0luamVjdGFibGUgfSBmcm9tICcuLi9pdnkvaXZ5LWVuYWJsZWQtaW4tZGV2LW1vZGUnO1xuXG5pbnRlcmZhY2UgTXV0YXRlTWV0YU9wdGlvbnM8VD4ge1xuICBtZXRhOiBNZXRhRGF0YU1vZGVsO1xuICBpbmhlcml0ZWRTdGF0ZUNsYXNzOiBTdGF0ZUNsYXNzSW50ZXJuYWw7XG4gIG9wdGlvbnNXaXRoSW5oZXJpdGFuY2U6IFN0b3JlT3B0aW9uczxUPjtcbn1cblxuLyoqXG4gKiBEZWNvcmF0ZXMgYSBjbGFzcyB3aXRoIG5neHMgc3RhdGUgaW5mb3JtYXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTdGF0ZTxUPihvcHRpb25zOiBTdG9yZU9wdGlvbnM8VD4pIHtcbiAgZnVuY3Rpb24gZ2V0U3RhdGVPcHRpb25zKGluaGVyaXRlZFN0YXRlQ2xhc3M6IFN0YXRlQ2xhc3NJbnRlcm5hbCk6IFN0b3JlT3B0aW9uczxUPiB7XG4gICAgY29uc3QgaW5oZXJpdGFuY2VPcHRpb25zOiBQYXJ0aWFsPFN0b3JlT3B0aW9uczxUPj4gPVxuICAgICAgaW5oZXJpdGVkU3RhdGVDbGFzc1tNRVRBX09QVElPTlNfS0VZXSB8fCB7fTtcbiAgICByZXR1cm4geyAuLi5pbmhlcml0YW5jZU9wdGlvbnMsIC4uLm9wdGlvbnMgfSBhcyBTdG9yZU9wdGlvbnM8VD47XG4gIH1cblxuICBmdW5jdGlvbiBtdXRhdGVNZXRhRGF0YShwYXJhbXM6IE11dGF0ZU1ldGFPcHRpb25zPFQ+KTogdm9pZCB7XG4gICAgY29uc3QgeyBtZXRhLCBpbmhlcml0ZWRTdGF0ZUNsYXNzLCBvcHRpb25zV2l0aEluaGVyaXRhbmNlIH0gPSBwYXJhbXM7XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgZGVmYXVsdHMsIG5hbWUgfSA9IG9wdGlvbnNXaXRoSW5oZXJpdGFuY2U7XG4gICAgY29uc3Qgc3RhdGVOYW1lOiBzdHJpbmcgfCBudWxsID1cbiAgICAgIHR5cGVvZiBuYW1lID09PSAnc3RyaW5nJyA/IG5hbWUgOiAobmFtZSAmJiBuYW1lLmdldE5hbWUoKSkgfHwgbnVsbDtcblxuICAgIC8vIENhcmV0YWtlciBub3RlOiB3ZSBoYXZlIHN0aWxsIGxlZnQgdGhlIGB0eXBlb2ZgIGNvbmRpdGlvbiBpbiBvcmRlciB0byBhdm9pZFxuICAgIC8vIGNyZWF0aW5nIGEgYnJlYWtpbmcgY2hhbmdlIGZvciBwcm9qZWN0cyB0aGF0IHN0aWxsIHVzZSB0aGUgVmlldyBFbmdpbmUuXG4gICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgU3RvcmVWYWxpZGF0b3JzLmNoZWNrVGhhdFN0YXRlSXNOYW1lZENvcnJlY3RseShzdGF0ZU5hbWUpO1xuICAgIH1cblxuICAgIGlmIChpbmhlcml0ZWRTdGF0ZUNsYXNzLmhhc093blByb3BlcnR5KE1FVEFfS0VZKSkge1xuICAgICAgY29uc3QgaW5oZXJpdGVkTWV0YTogUGFydGlhbDxNZXRhRGF0YU1vZGVsPiA9IGluaGVyaXRlZFN0YXRlQ2xhc3NbTUVUQV9LRVldIHx8IHt9O1xuICAgICAgbWV0YS5hY3Rpb25zID0geyAuLi5tZXRhLmFjdGlvbnMsIC4uLmluaGVyaXRlZE1ldGEuYWN0aW9ucyB9O1xuICAgIH1cblxuICAgIG1ldGEuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICBtZXRhLmRlZmF1bHRzID0gZGVmYXVsdHM7XG4gICAgbWV0YS5uYW1lID0gc3RhdGVOYW1lO1xuICB9XG5cbiAgcmV0dXJuICh0YXJnZXQ6IFN0YXRlQ2xhc3MpOiB2b2lkID0+IHtcbiAgICAvLyBDYXJldGFrZXIgbm90ZTogd2UgaGF2ZSBzdGlsbCBsZWZ0IHRoZSBgdHlwZW9mYCBjb25kaXRpb24gaW4gb3JkZXIgdG8gYXZvaWRcbiAgICAvLyBjcmVhdGluZyBhIGJyZWFraW5nIGNoYW5nZSBmb3IgcHJvamVjdHMgdGhhdCBzdGlsbCB1c2UgdGhlIFZpZXcgRW5naW5lLlxuICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgIGVuc3VyZVN0YXRlQ2xhc3NJc0luamVjdGFibGUodGFyZ2V0KTtcbiAgICB9XG4gICAgY29uc3Qgc3RhdGVDbGFzczogU3RhdGVDbGFzc0ludGVybmFsID0gdGFyZ2V0O1xuICAgIGNvbnN0IG1ldGE6IE1ldGFEYXRhTW9kZWwgPSBlbnN1cmVTdG9yZU1ldGFkYXRhKHN0YXRlQ2xhc3MpO1xuICAgIGNvbnN0IGluaGVyaXRlZFN0YXRlQ2xhc3M6IFN0YXRlQ2xhc3NJbnRlcm5hbCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihzdGF0ZUNsYXNzKTtcbiAgICBjb25zdCBvcHRpb25zV2l0aEluaGVyaXRhbmNlOiBTdG9yZU9wdGlvbnM8VD4gPSBnZXRTdGF0ZU9wdGlvbnMoaW5oZXJpdGVkU3RhdGVDbGFzcyk7XG4gICAgbXV0YXRlTWV0YURhdGEoeyBtZXRhLCBpbmhlcml0ZWRTdGF0ZUNsYXNzLCBvcHRpb25zV2l0aEluaGVyaXRhbmNlIH0pO1xuICAgIHN0YXRlQ2xhc3NbTUVUQV9PUFRJT05TX0tFWV0gPSBvcHRpb25zV2l0aEluaGVyaXRhbmNlO1xuICB9O1xufVxuIl19
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import * as tslib_1 from "tslib";
6
+ import { ensureStoreMetadata } from '../internal/internals';
7
+ import { META_KEY, META_OPTIONS_KEY } from '../symbols';
8
+ import { StoreValidators } from '../utils/store-validators';
9
+ import { ensureStateClassIsInjectable } from '../ivy/ensure-state-class-is-injectable';
10
+ /**
11
+ * @record
12
+ * @template T
13
+ */
14
+ function MutateMetaOptions() { }
15
+ if (false) {
16
+ /** @type {?} */
17
+ MutateMetaOptions.prototype.meta;
18
+ /** @type {?} */
19
+ MutateMetaOptions.prototype.inheritedStateClass;
20
+ /** @type {?} */
21
+ MutateMetaOptions.prototype.optionsWithInheritance;
22
+ }
23
+ /**
24
+ * Decorates a class with ngxs state information.
25
+ * @template T
26
+ * @param {?} options
27
+ * @return {?}
28
+ */
29
+ export function State(options) {
30
+ /**
31
+ * @param {?} inheritedStateClass
32
+ * @return {?}
33
+ */
34
+ function getStateOptions(inheritedStateClass) {
35
+ /** @type {?} */
36
+ var inheritanceOptions = inheritedStateClass[META_OPTIONS_KEY] || {};
37
+ return (/** @type {?} */ (tslib_1.__assign({}, inheritanceOptions, options)));
38
+ }
39
+ /**
40
+ * @param {?} params
41
+ * @return {?}
42
+ */
43
+ function mutateMetaData(params) {
44
+ var meta = params.meta, inheritedStateClass = params.inheritedStateClass, optionsWithInheritance = params.optionsWithInheritance;
45
+ var children = optionsWithInheritance.children, defaults = optionsWithInheritance.defaults, name = optionsWithInheritance.name;
46
+ /** @type {?} */
47
+ var stateName = typeof name === 'string' ? name : (name && name.getName()) || null;
48
+ StoreValidators.checkCorrectStateName(stateName);
49
+ if (inheritedStateClass.hasOwnProperty(META_KEY)) {
50
+ /** @type {?} */
51
+ var inheritedMeta = inheritedStateClass[META_KEY] || {};
52
+ meta.actions = tslib_1.__assign({}, meta.actions, inheritedMeta.actions);
53
+ }
54
+ meta.children = children;
55
+ meta.defaults = defaults;
56
+ meta.name = stateName;
57
+ }
58
+ return (/**
59
+ * @param {?} target
60
+ * @return {?}
61
+ */
62
+ function (target) {
63
+ ensureStateClassIsInjectable(target);
64
+ /** @type {?} */
65
+ var stateClass = target;
66
+ /** @type {?} */
67
+ var meta = ensureStoreMetadata(stateClass);
68
+ /** @type {?} */
69
+ var inheritedStateClass = Object.getPrototypeOf(stateClass);
70
+ /** @type {?} */
71
+ var optionsWithInheritance = getStateOptions(inheritedStateClass);
72
+ mutateMetaData({ meta: meta, inheritedStateClass: inheritedStateClass, optionsWithInheritance: optionsWithInheritance });
73
+ stateClass[META_OPTIONS_KEY] = optionsWithInheritance;
74
+ });
75
+ }
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9kZWNvcmF0b3JzL3N0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsT0FBTyxFQUFFLG1CQUFtQixFQUFxQyxNQUFNLHVCQUF1QixDQUFDO0FBQy9GLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sWUFBWSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7QUFFdkYsZ0NBSUM7OztJQUhDLGlDQUFvQjs7SUFDcEIsZ0RBQXdDOztJQUN4QyxtREFBd0M7Ozs7Ozs7O0FBTTFDLE1BQU0sVUFBVSxLQUFLLENBQUksT0FBd0I7Ozs7O0lBQy9DLFNBQVMsZUFBZSxDQUFDLG1CQUF1Qzs7WUFDeEQsa0JBQWtCLEdBQ3RCLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRTtRQUM3QyxPQUFPLHdDQUFLLGtCQUFrQixFQUFLLE9BQU8sR0FBcUIsQ0FBQztJQUNsRSxDQUFDOzs7OztJQUVELFNBQVMsY0FBYyxDQUFDLE1BQTRCO1FBQzFDLElBQUEsa0JBQUksRUFBRSxnREFBbUIsRUFBRSxzREFBc0I7UUFDakQsSUFBQSwwQ0FBUSxFQUFFLDBDQUFRLEVBQUUsa0NBQUk7O1lBQzFCLFNBQVMsR0FDYixPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksSUFBSTtRQUNwRSxlQUFlLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFakQsSUFBSSxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7O2dCQUMxQyxhQUFhLEdBQTJCLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7WUFDakYsSUFBSSxDQUFDLE9BQU8sd0JBQVEsSUFBSSxDQUFDLE9BQU8sRUFBSyxhQUFhLENBQUMsT0FBTyxDQUFFLENBQUM7U0FDOUQ7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7SUFBTyxVQUFDLE1BQWtCO1FBQ3hCLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDOztZQUMvQixVQUFVLEdBQXVCLE1BQU07O1lBQ3ZDLElBQUksR0FBa0IsbUJBQW1CLENBQUMsVUFBVSxDQUFDOztZQUNyRCxtQkFBbUIsR0FBdUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7O1lBQzNFLHNCQUFzQixHQUFvQixlQUFlLENBQUMsbUJBQW1CLENBQUM7UUFDcEYsY0FBYyxDQUFDLEVBQUUsSUFBSSxNQUFBLEVBQUUsbUJBQW1CLHFCQUFBLEVBQUUsc0JBQXNCLHdCQUFBLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLHNCQUFzQixDQUFDO0lBQ3hELENBQUMsRUFBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGF0ZUNsYXNzIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcclxuXHJcbmltcG9ydCB7IGVuc3VyZVN0b3JlTWV0YWRhdGEsIE1ldGFEYXRhTW9kZWwsIFN0YXRlQ2xhc3NJbnRlcm5hbCB9IGZyb20gJy4uL2ludGVybmFsL2ludGVybmFscyc7XHJcbmltcG9ydCB7IE1FVEFfS0VZLCBNRVRBX09QVElPTlNfS0VZLCBTdG9yZU9wdGlvbnMgfSBmcm9tICcuLi9zeW1ib2xzJztcclxuaW1wb3J0IHsgU3RvcmVWYWxpZGF0b3JzIH0gZnJvbSAnLi4vdXRpbHMvc3RvcmUtdmFsaWRhdG9ycyc7XHJcbmltcG9ydCB7IGVuc3VyZVN0YXRlQ2xhc3NJc0luamVjdGFibGUgfSBmcm9tICcuLi9pdnkvZW5zdXJlLXN0YXRlLWNsYXNzLWlzLWluamVjdGFibGUnO1xyXG5cclxuaW50ZXJmYWNlIE11dGF0ZU1ldGFPcHRpb25zPFQ+IHtcclxuICBtZXRhOiBNZXRhRGF0YU1vZGVsO1xyXG4gIGluaGVyaXRlZFN0YXRlQ2xhc3M6IFN0YXRlQ2xhc3NJbnRlcm5hbDtcclxuICBvcHRpb25zV2l0aEluaGVyaXRhbmNlOiBTdG9yZU9wdGlvbnM8VD47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZWNvcmF0ZXMgYSBjbGFzcyB3aXRoIG5neHMgc3RhdGUgaW5mb3JtYXRpb24uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gU3RhdGU8VD4ob3B0aW9uczogU3RvcmVPcHRpb25zPFQ+KSB7XHJcbiAgZnVuY3Rpb24gZ2V0U3RhdGVPcHRpb25zKGluaGVyaXRlZFN0YXRlQ2xhc3M6IFN0YXRlQ2xhc3NJbnRlcm5hbCk6IFN0b3JlT3B0aW9uczxUPiB7XHJcbiAgICBjb25zdCBpbmhlcml0YW5jZU9wdGlvbnM6IFBhcnRpYWw8U3RvcmVPcHRpb25zPFQ+PiA9XHJcbiAgICAgIGluaGVyaXRlZFN0YXRlQ2xhc3NbTUVUQV9PUFRJT05TX0tFWV0gfHwge307XHJcbiAgICByZXR1cm4geyAuLi5pbmhlcml0YW5jZU9wdGlvbnMsIC4uLm9wdGlvbnMgfSBhcyBTdG9yZU9wdGlvbnM8VD47XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBtdXRhdGVNZXRhRGF0YShwYXJhbXM6IE11dGF0ZU1ldGFPcHRpb25zPFQ+KTogdm9pZCB7XHJcbiAgICBjb25zdCB7IG1ldGEsIGluaGVyaXRlZFN0YXRlQ2xhc3MsIG9wdGlvbnNXaXRoSW5oZXJpdGFuY2UgfSA9IHBhcmFtcztcclxuICAgIGNvbnN0IHsgY2hpbGRyZW4sIGRlZmF1bHRzLCBuYW1lIH0gPSBvcHRpb25zV2l0aEluaGVyaXRhbmNlO1xyXG4gICAgY29uc3Qgc3RhdGVOYW1lOiBzdHJpbmcgfCBudWxsID1cclxuICAgICAgdHlwZW9mIG5hbWUgPT09ICdzdHJpbmcnID8gbmFtZSA6IChuYW1lICYmIG5hbWUuZ2V0TmFtZSgpKSB8fCBudWxsO1xyXG4gICAgU3RvcmVWYWxpZGF0b3JzLmNoZWNrQ29ycmVjdFN0YXRlTmFtZShzdGF0ZU5hbWUpO1xyXG5cclxuICAgIGlmIChpbmhlcml0ZWRTdGF0ZUNsYXNzLmhhc093blByb3BlcnR5KE1FVEFfS0VZKSkge1xyXG4gICAgICBjb25zdCBpbmhlcml0ZWRNZXRhOiBQYXJ0aWFsPE1ldGFEYXRhTW9kZWw+ID0gaW5oZXJpdGVkU3RhdGVDbGFzc1tNRVRBX0tFWV0gfHwge307XHJcbiAgICAgIG1ldGEuYWN0aW9ucyA9IHsgLi4ubWV0YS5hY3Rpb25zLCAuLi5pbmhlcml0ZWRNZXRhLmFjdGlvbnMgfTtcclxuICAgIH1cclxuXHJcbiAgICBtZXRhLmNoaWxkcmVuID0gY2hpbGRyZW47XHJcbiAgICBtZXRhLmRlZmF1bHRzID0gZGVmYXVsdHM7XHJcbiAgICBtZXRhLm5hbWUgPSBzdGF0ZU5hbWU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gKHRhcmdldDogU3RhdGVDbGFzcyk6IHZvaWQgPT4ge1xyXG4gICAgZW5zdXJlU3RhdGVDbGFzc0lzSW5qZWN0YWJsZSh0YXJnZXQpO1xyXG4gICAgY29uc3Qgc3RhdGVDbGFzczogU3RhdGVDbGFzc0ludGVybmFsID0gdGFyZ2V0O1xyXG4gICAgY29uc3QgbWV0YTogTWV0YURhdGFNb2RlbCA9IGVuc3VyZVN0b3JlTWV0YWRhdGEoc3RhdGVDbGFzcyk7XHJcbiAgICBjb25zdCBpbmhlcml0ZWRTdGF0ZUNsYXNzOiBTdGF0ZUNsYXNzSW50ZXJuYWwgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yoc3RhdGVDbGFzcyk7XHJcbiAgICBjb25zdCBvcHRpb25zV2l0aEluaGVyaXRhbmNlOiBTdG9yZU9wdGlvbnM8VD4gPSBnZXRTdGF0ZU9wdGlvbnMoaW5oZXJpdGVkU3RhdGVDbGFzcyk7XHJcbiAgICBtdXRhdGVNZXRhRGF0YSh7IG1ldGEsIGluaGVyaXRlZFN0YXRlQ2xhc3MsIG9wdGlvbnNXaXRoSW5oZXJpdGFuY2UgfSk7XHJcbiAgICBzdGF0ZUNsYXNzW01FVEFfT1BUSU9OU19LRVldID0gb3B0aW9uc1dpdGhJbmhlcml0YW5jZTtcclxuICB9O1xyXG59XHJcbiJdfQ==