@ngxs/store 3.7.2-dev.master-9a7c431 → 3.7.2

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 (266) hide show
  1. package/README.md +16 -16
  2. package/bundles/ngxs-store-internals.umd.js +211 -380
  3. package/bundles/ngxs-store-internals.umd.js.map +1 -1
  4. package/bundles/ngxs-store-internals.umd.min.js +1 -1
  5. package/bundles/ngxs-store-internals.umd.min.js.map +1 -1
  6. package/bundles/ngxs-store-operators.umd.js +310 -310
  7. package/bundles/ngxs-store-operators.umd.js.map +1 -1
  8. package/bundles/ngxs-store-operators.umd.min.js.map +1 -1
  9. package/bundles/ngxs-store.umd.js +4518 -4402
  10. package/bundles/ngxs-store.umd.js.map +1 -1
  11. package/bundles/ngxs-store.umd.min.js +1 -1
  12. package/bundles/ngxs-store.umd.min.js.map +1 -1
  13. package/esm2015/index.js +13 -13
  14. package/esm2015/internals/angular.js +40 -46
  15. package/esm2015/internals/index.js +10 -11
  16. package/esm2015/internals/initial-state.js +34 -34
  17. package/esm2015/internals/internal-tokens.js +16 -16
  18. package/esm2015/internals/memoize.js +70 -70
  19. package/esm2015/internals/ngxs-bootstrapper.js +41 -41
  20. package/esm2015/internals/ngxs-store-internals.js +9 -9
  21. package/esm2015/internals/src/symbols.js +14 -14
  22. package/esm2015/internals/symbols.js +14 -14
  23. package/esm2015/ngxs-store.js +27 -24
  24. package/esm2015/operators/append.js +31 -31
  25. package/esm2015/operators/compose.js +24 -24
  26. package/esm2015/operators/iif.js +56 -56
  27. package/esm2015/operators/index.js +18 -18
  28. package/esm2015/operators/insert-item.js +41 -41
  29. package/esm2015/operators/internals.js +5 -5
  30. package/esm2015/operators/ngxs-store-operators.js +8 -8
  31. package/esm2015/operators/patch.js +39 -39
  32. package/esm2015/operators/remove-item.js +34 -34
  33. package/esm2015/operators/update-item.js +52 -52
  34. package/esm2015/operators/utils.js +50 -50
  35. package/esm2015/src/actions/actions.js +39 -39
  36. package/esm2015/src/actions/symbols.js +39 -39
  37. package/esm2015/src/actions-stream.js +140 -138
  38. package/esm2015/src/configs/messages.config.js +87 -79
  39. package/esm2015/src/decorators/action.js +44 -48
  40. package/esm2015/src/decorators/select/select-factory.js +46 -49
  41. package/esm2015/src/decorators/select/select.js +45 -60
  42. package/esm2015/src/decorators/select/symbols.js +50 -94
  43. package/esm2015/src/decorators/selector/selector.js +55 -59
  44. package/esm2015/src/decorators/selector/symbols.js +5 -5
  45. package/esm2015/src/decorators/selector-options.js +34 -34
  46. package/esm2015/src/decorators/state.js +75 -83
  47. package/esm2015/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +96 -101
  48. package/esm2015/src/execution/internal-ngxs-execution-strategy.js +45 -45
  49. package/esm2015/src/execution/noop-ngxs-execution-strategy.js +27 -27
  50. package/esm2015/src/execution/symbols.js +29 -29
  51. package/esm2015/src/host-environment/host-environment.js +31 -0
  52. package/esm2015/src/internal/config-validator.js +67 -0
  53. package/esm2015/src/internal/dispatcher.js +217 -217
  54. package/esm2015/src/internal/internals.js +489 -493
  55. package/esm2015/src/internal/lifecycle-state-manager.js +129 -129
  56. package/esm2015/src/internal/state-context-factory.js +138 -138
  57. package/esm2015/src/internal/state-factory.js +429 -449
  58. package/esm2015/src/internal/state-operations.js +125 -120
  59. package/esm2015/src/internal/state-operators.js +33 -33
  60. package/esm2015/src/internal/state-stream.js +21 -21
  61. package/esm2015/src/ivy/ensure-state-class-is-injectable.js +34 -0
  62. package/esm2015/src/ivy/ivy-enabled-in-dev-mode.js +40 -28
  63. package/esm2015/src/module.js +172 -158
  64. package/esm2015/src/modules/ngxs-feature.module.js +63 -63
  65. package/esm2015/src/modules/ngxs-root.module.js +52 -52
  66. package/esm2015/src/operators/leave-ngxs.js +58 -58
  67. package/esm2015/src/operators/of-action.js +191 -191
  68. package/esm2015/src/plugin-manager.js +70 -70
  69. package/esm2015/src/plugin_api.js +10 -10
  70. package/esm2015/src/public_api.js +29 -29
  71. package/esm2015/src/public_to_deprecate.js +64 -64
  72. package/esm2015/src/state-token/state-token.js +45 -45
  73. package/esm2015/src/state-token/symbols.js +5 -5
  74. package/esm2015/src/store.js +174 -174
  75. package/esm2015/src/symbols.js +221 -217
  76. package/esm2015/src/utils/compose.js +44 -44
  77. package/esm2015/src/utils/freeze.js +35 -35
  78. package/esm2015/src/utils/selector-utils.js +221 -221
  79. package/esm2015/src/utils/store-validators.js +65 -60
  80. package/esm2015/src/utils/utils.js +143 -143
  81. package/esm5/index.js +13 -13
  82. package/esm5/internals/angular.js +40 -46
  83. package/esm5/internals/index.js +10 -11
  84. package/esm5/internals/initial-state.js +45 -45
  85. package/esm5/internals/internal-tokens.js +16 -16
  86. package/esm5/internals/memoize.js +71 -71
  87. package/esm5/internals/ngxs-bootstrapper.js +56 -56
  88. package/esm5/internals/ngxs-store-internals.js +9 -9
  89. package/esm5/internals/src/symbols.js +14 -14
  90. package/esm5/internals/symbols.js +14 -14
  91. package/esm5/ngxs-store.js +27 -24
  92. package/esm5/operators/append.js +31 -31
  93. package/esm5/operators/compose.js +28 -28
  94. package/esm5/operators/iif.js +56 -56
  95. package/esm5/operators/index.js +18 -18
  96. package/esm5/operators/insert-item.js +41 -41
  97. package/esm5/operators/internals.js +5 -5
  98. package/esm5/operators/ngxs-store-operators.js +8 -8
  99. package/esm5/operators/patch.js +40 -40
  100. package/esm5/operators/remove-item.js +34 -34
  101. package/esm5/operators/update-item.js +52 -52
  102. package/esm5/operators/utils.js +50 -50
  103. package/esm5/src/actions/actions.js +62 -62
  104. package/esm5/src/actions/symbols.js +39 -39
  105. package/esm5/src/actions-stream.js +186 -184
  106. package/esm5/src/configs/messages.config.js +104 -79
  107. package/esm5/src/decorators/action.js +56 -60
  108. package/esm5/src/decorators/select/select-factory.js +47 -50
  109. package/esm5/src/decorators/select/select.js +50 -65
  110. package/esm5/src/decorators/select/symbols.js +51 -95
  111. package/esm5/src/decorators/selector/selector.js +55 -59
  112. package/esm5/src/decorators/selector/symbols.js +5 -5
  113. package/esm5/src/decorators/selector-options.js +34 -34
  114. package/esm5/src/decorators/state.js +76 -84
  115. package/esm5/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +121 -121
  116. package/esm5/src/execution/internal-ngxs-execution-strategy.js +54 -54
  117. package/esm5/src/execution/noop-ngxs-execution-strategy.js +41 -41
  118. package/esm5/src/execution/symbols.js +29 -29
  119. package/esm5/src/host-environment/host-environment.js +29 -0
  120. package/esm5/src/internal/config-validator.js +76 -0
  121. package/esm5/src/internal/dispatcher.js +253 -253
  122. package/esm5/src/internal/internals.js +491 -495
  123. package/esm5/src/internal/lifecycle-state-manager.js +177 -177
  124. package/esm5/src/internal/state-context-factory.js +146 -146
  125. package/esm5/src/internal/state-factory.js +563 -575
  126. package/esm5/src/internal/state-operations.js +139 -130
  127. package/esm5/src/internal/state-operators.js +34 -34
  128. package/esm5/src/internal/state-stream.js +25 -25
  129. package/esm5/src/ivy/ensure-state-class-is-injectable.js +34 -0
  130. package/esm5/src/ivy/ivy-enabled-in-dev-mode.js +40 -28
  131. package/esm5/src/module.js +215 -201
  132. package/esm5/src/modules/ngxs-feature.module.js +65 -65
  133. package/esm5/src/modules/ngxs-root.module.js +47 -47
  134. package/esm5/src/operators/leave-ngxs.js +58 -58
  135. package/esm5/src/operators/of-action.js +217 -217
  136. package/esm5/src/plugin-manager.js +82 -82
  137. package/esm5/src/plugin_api.js +10 -10
  138. package/esm5/src/public_api.js +29 -29
  139. package/esm5/src/public_to_deprecate.js +64 -64
  140. package/esm5/src/state-token/state-token.js +57 -57
  141. package/esm5/src/state-token/symbols.js +5 -5
  142. package/esm5/src/store.js +225 -225
  143. package/esm5/src/symbols.js +230 -226
  144. package/esm5/src/utils/compose.js +55 -55
  145. package/esm5/src/utils/freeze.js +35 -35
  146. package/esm5/src/utils/selector-utils.js +230 -230
  147. package/esm5/src/utils/store-validators.js +86 -78
  148. package/esm5/src/utils/utils.js +151 -151
  149. package/fesm2015/ngxs-store-internals.js +194 -361
  150. package/fesm2015/ngxs-store-internals.js.map +1 -1
  151. package/fesm2015/ngxs-store-operators.js +312 -312
  152. package/fesm2015/ngxs-store-operators.js.map +1 -1
  153. package/fesm2015/ngxs-store.js +3976 -3907
  154. package/fesm2015/ngxs-store.js.map +1 -1
  155. package/fesm5/ngxs-store-internals.js +219 -386
  156. package/fesm5/ngxs-store-internals.js.map +1 -1
  157. package/fesm5/ngxs-store-operators.js +316 -316
  158. package/fesm5/ngxs-store-operators.js.map +1 -1
  159. package/fesm5/ngxs-store.js +4510 -4399
  160. package/fesm5/ngxs-store.js.map +1 -1
  161. package/index.d.ts +8 -8
  162. package/internals/angular.d.ts +3 -3
  163. package/internals/index.d.ts +6 -7
  164. package/internals/initial-state.d.ts +8 -8
  165. package/internals/internal-tokens.d.ts +9 -9
  166. package/internals/memoize.d.ts +9 -9
  167. package/internals/ngxs-bootstrapper.d.ts +13 -13
  168. package/internals/ngxs-store-internals.d.ts +4 -4
  169. package/internals/ngxs-store-internals.metadata.json +1 -1
  170. package/internals/src/symbols.d.ts +7 -7
  171. package/internals/symbols.d.ts +7 -7
  172. package/ngxs-store.d.ts +23 -20
  173. package/ngxs-store.metadata.json +1 -1
  174. package/operators/append.d.ts +6 -6
  175. package/operators/compose.d.ts +2 -2
  176. package/operators/iif.d.ts +11 -11
  177. package/operators/index.d.ts +13 -13
  178. package/operators/insert-item.d.ts +7 -7
  179. package/operators/internals.d.ts +2 -2
  180. package/operators/ngxs-store-operators.d.ts +4 -4
  181. package/operators/patch.d.ts +10 -10
  182. package/operators/remove-item.d.ts +7 -7
  183. package/operators/update-item.d.ts +10 -10
  184. package/operators/utils.d.ts +9 -9
  185. package/package.json +3 -3
  186. package/src/actions/actions.d.ts +15 -15
  187. package/src/actions/symbols.d.ts +21 -21
  188. package/src/actions-stream.d.ts +49 -49
  189. package/src/configs/messages.config.d.ts +30 -11
  190. package/src/decorators/action.d.ts +5 -5
  191. package/src/decorators/select/select-factory.d.ts +14 -13
  192. package/src/decorators/select/select.d.ts +4 -4
  193. package/src/decorators/select/symbols.d.ts +10 -14
  194. package/src/decorators/selector/selector.d.ts +5 -5
  195. package/src/decorators/selector/symbols.d.ts +4 -4
  196. package/src/decorators/selector-options.d.ts +5 -5
  197. package/src/decorators/state.d.ts +6 -6
  198. package/src/execution/dispatch-outside-zone-ngxs-execution-strategy.d.ts +12 -11
  199. package/src/execution/internal-ngxs-execution-strategy.d.ts +7 -7
  200. package/src/execution/noop-ngxs-execution-strategy.d.ts +5 -5
  201. package/src/execution/symbols.d.ts +6 -6
  202. package/src/host-environment/host-environment.d.ts +6 -0
  203. package/src/internal/config-validator.d.ts +10 -0
  204. package/src/internal/dispatcher.d.ts +32 -32
  205. package/src/internal/internals.d.ts +167 -166
  206. package/src/internal/lifecycle-state-manager.d.ts +20 -20
  207. package/src/internal/state-context-factory.d.ts +15 -15
  208. package/src/internal/state-factory.d.ts +58 -57
  209. package/src/internal/state-operations.d.ts +21 -19
  210. package/src/internal/state-operators.d.ts +2 -2
  211. package/src/internal/state-stream.d.ts +9 -9
  212. package/src/ivy/ensure-state-class-is-injectable.d.ts +6 -0
  213. package/src/ivy/ivy-enabled-in-dev-mode.d.ts +14 -6
  214. package/src/module.d.ts +23 -23
  215. package/src/modules/ngxs-feature.module.d.ts +13 -13
  216. package/src/modules/ngxs-root.module.d.ts +13 -13
  217. package/src/operators/leave-ngxs.d.ts +7 -7
  218. package/src/operators/of-action.d.ts +43 -43
  219. package/src/plugin-manager.d.ts +10 -10
  220. package/src/plugin_api.d.ts +5 -5
  221. package/src/public_api.d.ts +17 -17
  222. package/src/public_to_deprecate.d.ts +21 -21
  223. package/src/state-token/state-token.d.ts +7 -7
  224. package/src/state-token/symbols.d.ts +5 -5
  225. package/src/store.d.ts +53 -53
  226. package/src/symbols.d.ts +137 -135
  227. package/src/utils/compose.d.ts +23 -23
  228. package/src/utils/freeze.d.ts +5 -5
  229. package/src/utils/selector-utils.d.ts +23 -23
  230. package/src/utils/store-validators.d.ts +8 -7
  231. package/src/utils/utils.d.ts +46 -46
  232. package/types/index.d.ts +2 -2
  233. package/bundles/ngxs-store-internals-testing.umd.js +0 -475
  234. package/bundles/ngxs-store-internals-testing.umd.js.map +0 -1
  235. package/bundles/ngxs-store-internals-testing.umd.min.js +0 -16
  236. package/bundles/ngxs-store-internals-testing.umd.min.js.map +0 -1
  237. package/esm2015/internals/decorator-injector-adapter.js +0 -162
  238. package/esm2015/internals/testing/fresh-platform.js +0 -90
  239. package/esm2015/internals/testing/helpers/ngxs-test.component.js +0 -22
  240. package/esm2015/internals/testing/helpers/ngxs-test.module.js +0 -24
  241. package/esm2015/internals/testing/index.js +0 -7
  242. package/esm2015/internals/testing/ngxs-store-internals-testing.js +0 -9
  243. package/esm2015/internals/testing/ngxs.setup.js +0 -76
  244. package/esm2015/internals/testing/symbol.js +0 -29
  245. package/esm5/internals/decorator-injector-adapter.js +0 -162
  246. package/esm5/internals/testing/fresh-platform.js +0 -101
  247. package/esm5/internals/testing/helpers/ngxs-test.component.js +0 -32
  248. package/esm5/internals/testing/helpers/ngxs-test.module.js +0 -32
  249. package/esm5/internals/testing/index.js +0 -7
  250. package/esm5/internals/testing/ngxs-store-internals-testing.js +0 -9
  251. package/esm5/internals/testing/ngxs.setup.js +0 -98
  252. package/esm5/internals/testing/symbol.js +0 -29
  253. package/fesm2015/ngxs-store-internals-testing.js +0 -216
  254. package/fesm2015/ngxs-store-internals-testing.js.map +0 -1
  255. package/fesm5/ngxs-store-internals-testing.js +0 -263
  256. package/fesm5/ngxs-store-internals-testing.js.map +0 -1
  257. package/internals/decorator-injector-adapter.d.ts +0 -8
  258. package/internals/testing/fresh-platform.d.ts +0 -1
  259. package/internals/testing/helpers/ngxs-test.component.d.ts +0 -5
  260. package/internals/testing/helpers/ngxs-test.module.d.ts +0 -4
  261. package/internals/testing/index.d.ts +0 -3
  262. package/internals/testing/ngxs-store-internals-testing.d.ts +0 -4
  263. package/internals/testing/ngxs-store-internals-testing.metadata.json +0 -1
  264. package/internals/testing/ngxs.setup.d.ts +0 -7
  265. package/internals/testing/package.json +0 -13
  266. package/internals/testing/symbol.d.ts +0 -14
@@ -1,162 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { INJECTOR, ɵɵdirectiveInject, ɵglobal } from '@angular/core';
6
- // Angular doesn't export `NG_FACTORY_DEF`.
7
- /** @type {?} */
8
- const NG_FACTORY_DEF = 'ɵfac';
9
- // A `Symbol` which is used to save the `Injector` onto the class instance.
10
- /** @type {?} */
11
- const InjectorInstance = Symbol('InjectorInstance');
12
- // A `Symbol` which is used to determine if factory has been decorated previously or not.
13
- /** @type {?} */
14
- const FactoryHasBeenDecorated = Symbol('FactoryHasBeenDecorated');
15
- // eslint-disable-next-line @typescript-eslint/ban-types
16
- /**
17
- * @param {?} target
18
- * @return {?}
19
- */
20
- export function ensureLocalInjectorCaptured(target) {
21
- if (FactoryHasBeenDecorated in target.constructor.prototype) {
22
- return;
23
- }
24
- /** @type {?} */
25
- const constructor = target.constructor;
26
- // Means we're in AOT mode.
27
- if (typeof constructor[NG_FACTORY_DEF] === 'function') {
28
- decorateFactory(constructor);
29
- }
30
- else if (ngDevMode) {
31
- // We're running in JIT mode and that means we're not able to get the compiled definition
32
- // on the class inside the property decorator during the current message loop tick. We have
33
- // to wait for the next message loop tick. Note that this is safe since this Promise will be
34
- // resolved even before the `APP_INITIALIZER` is resolved.
35
- // The below code also will be executed only in development mode, since it's never recommended
36
- // to use the JIT compiler in production mode (by setting "aot: false").
37
- decorateFactoryLater(constructor);
38
- }
39
- target.constructor.prototype[FactoryHasBeenDecorated] = true;
40
- }
41
- /**
42
- * @template T
43
- * @param {?} instance
44
- * @param {?} token
45
- * @return {?}
46
- */
47
- export function localInject(instance, token) {
48
- /** @type {?} */
49
- const injector = instance[InjectorInstance];
50
- return injector ? injector.get(token) : null;
51
- }
52
- /**
53
- * @param {?} constructor
54
- * @return {?}
55
- */
56
- function decorateFactory(constructor) {
57
- /** @type {?} */
58
- const factory = constructor[NG_FACTORY_DEF];
59
- if (typeof factory !== 'function') {
60
- return;
61
- }
62
- // Let's try to get any definition.
63
- // Caretaker note: this will be compatible only with Angular 9+, since Angular 9 is the first
64
- // Ivy-stable version. Previously definition properties were named differently (e.g. `ngComponentDef`).
65
- /** @type {?} */
66
- const def = constructor.ɵprov || constructor.ɵpipe || constructor.ɵcmp || constructor.ɵdir;
67
- /** @type {?} */
68
- const decoratedFactory = (/**
69
- * @return {?}
70
- */
71
- () => {
72
- /** @type {?} */
73
- const instance = factory();
74
- // Caretaker note: `inject()` won't work here.
75
- // We can use the `directiveInject` only during the component
76
- // construction, since Angular captures the currently active injector.
77
- // We're not able to use this function inside the getter (when the `selectorId` property is
78
- // requested for the first time), since the currently active injector will be null.
79
- instance[InjectorInstance] = ɵɵdirectiveInject(
80
- // We're using `INJECTOR` token except of the `Injector` class since the compiler
81
- // throws: `Cannot assign an abstract constructor type to a non-abstract constructor type.`.
82
- // Caretaker note: that this is the same way of getting the injector.
83
- INJECTOR);
84
- return instance;
85
- });
86
- // If we've found any definition then it's enough to override the `def.factory` since Angular
87
- // code uses the `def.factory` and then fallbacks to `ɵfac`.
88
- if (def) {
89
- def.factory = decoratedFactory;
90
- }
91
- // `@NgModule()` doesn't doesn't have definition factory, also providers have definitions but Angular
92
- // still uses the `ɵfac`.
93
- Object.defineProperty(constructor, NG_FACTORY_DEF, {
94
- get: (/**
95
- * @return {?}
96
- */
97
- () => decoratedFactory)
98
- });
99
- }
100
- /**
101
- * @param {?} constructor
102
- * @return {?}
103
- */
104
- function decorateFactoryLater(constructor) {
105
- // This function actually will be tree-shaken away when building for production since it's guarded with `ngDevMode`.
106
- // We're having the `try-catch` here because of the `SyncTestZoneSpec`, which throws
107
- // an error when micro or macrotask is used within a synchronous test. E.g. `Cannot call
108
- // Promise.then from within a sync test`.
109
- try {
110
- Promise.resolve().then((/**
111
- * @return {?}
112
- */
113
- () => {
114
- decorateFactory(constructor);
115
- }));
116
- }
117
- catch (_a) {
118
- // This is kind of a "hack", but we try to be backwards-compatible,
119
- // tho this `catch` block will only be executed when tests are run with Jasmine or Jest.
120
- ɵglobal.process &&
121
- ɵglobal.process.nextTick &&
122
- ɵglobal.process.nextTick((/**
123
- * @return {?}
124
- */
125
- () => {
126
- decorateFactory(constructor);
127
- }));
128
- }
129
- }
130
- /**
131
- * @record
132
- */
133
- function Definition() { }
134
- if (false) {
135
- /** @type {?} */
136
- Definition.prototype.factory;
137
- }
138
- /**
139
- * @record
140
- */
141
- function ConstructorWithDefinitionAndFactory() { }
142
- if (false) {
143
- /** @type {?|undefined} */
144
- ConstructorWithDefinitionAndFactory.prototype.ɵprov;
145
- /** @type {?|undefined} */
146
- ConstructorWithDefinitionAndFactory.prototype.ɵpipe;
147
- /** @type {?|undefined} */
148
- ConstructorWithDefinitionAndFactory.prototype.ɵcmp;
149
- /** @type {?|undefined} */
150
- ConstructorWithDefinitionAndFactory.prototype.ɵdir;
151
- /* Skipping unnamed member:
152
- [NG_FACTORY_DEF]?: Factory;*/
153
- }
154
- /**
155
- * @record
156
- */
157
- function PrivateInstance() { }
158
- if (false) {
159
- /* Skipping unnamed member:
160
- [InjectorInstance]?: Injector;*/
161
- }
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9yLWluamVjdG9yLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9pbnRlcm5hbHMvIiwic291cmNlcyI6WyJkZWNvcmF0b3ItaW5qZWN0b3ItYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUdMLFFBQVEsRUFFUixpQkFBaUIsRUFDakIsT0FBTyxFQUNSLE1BQU0sZUFBZSxDQUFDOzs7TUFPakIsY0FBYyxHQUFHLE1BQU07OztNQUd2QixnQkFBZ0IsR0FBa0IsTUFBTSxDQUFDLGtCQUFrQixDQUFDOzs7TUFHNUQsdUJBQXVCLEdBQWtCLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQzs7Ozs7O0FBR2hGLE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxNQUFjO0lBQ3hELElBQUksdUJBQXVCLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUU7UUFDM0QsT0FBTztLQUNSOztVQUVLLFdBQVcsR0FBd0MsTUFBTSxDQUFDLFdBQVc7SUFDM0UsMkJBQTJCO0lBQzNCLElBQUksT0FBTyxXQUFXLENBQUMsY0FBYyxDQUFDLEtBQUssVUFBVSxFQUFFO1FBQ3JELGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztLQUM5QjtTQUFNLElBQUksU0FBUyxFQUFFO1FBQ3BCLHlGQUF5RjtRQUN6RiwyRkFBMkY7UUFDM0YsNEZBQTRGO1FBQzVGLDBEQUEwRDtRQUMxRCw4RkFBOEY7UUFDOUYsd0VBQXdFO1FBQ3hFLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ25DO0lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDL0QsQ0FBQzs7Ozs7OztBQUVELE1BQU0sVUFBVSxXQUFXLENBQ3pCLFFBQXlCLEVBQ3pCLEtBQWtDOztVQUU1QixRQUFRLEdBQXlCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqRSxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQy9DLENBQUM7Ozs7O0FBRUQsU0FBUyxlQUFlLENBQUMsV0FBZ0Q7O1VBQ2pFLE9BQU8sR0FBRyxXQUFXLENBQUMsY0FBYyxDQUFDO0lBRTNDLElBQUksT0FBTyxPQUFPLEtBQUssVUFBVSxFQUFFO1FBQ2pDLE9BQU87S0FDUjs7Ozs7VUFLSyxHQUFHLEdBQUcsV0FBVyxDQUFDLEtBQUssSUFBSSxXQUFXLENBQUMsS0FBSyxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksV0FBVyxDQUFDLElBQUk7O1VBRXBGLGdCQUFnQjs7O0lBQUcsR0FBRyxFQUFFOztjQUN0QixRQUFRLEdBQUcsT0FBTyxFQUFFO1FBQzFCLDhDQUE4QztRQUM5Qyw2REFBNkQ7UUFDN0Qsc0VBQXNFO1FBQ3RFLDJGQUEyRjtRQUMzRixtRkFBbUY7UUFDbkYsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsaUJBQWlCO1FBQzVDLGlGQUFpRjtRQUNqRiw0RkFBNEY7UUFDNUYscUVBQXFFO1FBQ3JFLFFBQVEsQ0FDVCxDQUFDO1FBQ0YsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQyxDQUFBO0lBRUQsNkZBQTZGO0lBQzdGLDREQUE0RDtJQUM1RCxJQUFJLEdBQUcsRUFBRTtRQUNQLEdBQUcsQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUM7S0FDaEM7SUFFRCxxR0FBcUc7SUFDckcseUJBQXlCO0lBQ3pCLE1BQU0sQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLGNBQWMsRUFBRTtRQUNqRCxHQUFHOzs7UUFBRSxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQTtLQUM1QixDQUFDLENBQUM7QUFDTCxDQUFDOzs7OztBQUVELFNBQVMsb0JBQW9CLENBQUMsV0FBZ0Q7SUFDNUUsb0hBQW9IO0lBQ3BILG9GQUFvRjtJQUNwRix3RkFBd0Y7SUFDeEYseUNBQXlDO0lBQ3pDLElBQUk7UUFDRixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSTs7O1FBQUMsR0FBRyxFQUFFO1lBQzFCLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQixDQUFDLEVBQUMsQ0FBQztLQUNKO0lBQUMsV0FBTTtRQUNOLG1FQUFtRTtRQUNuRSx3RkFBd0Y7UUFDeEYsT0FBTyxDQUFDLE9BQU87WUFDYixPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVE7WUFDeEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFROzs7WUFBQyxHQUFHLEVBQUU7Z0JBQzVCLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMvQixDQUFDLEVBQUMsQ0FBQztLQUNOO0FBQ0gsQ0FBQzs7OztBQVFELHlCQUVDOzs7SUFEQyw2QkFBd0I7Ozs7O0FBRzFCLGtEQVVDOzs7SUFSQyxvREFBbUI7O0lBRW5CLG9EQUFtQjs7SUFFbkIsbURBQWtCOztJQUVsQixtREFBa0I7Ozs7Ozs7QUFJcEIsOEJBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5qZWN0b3IsXG4gIElOSkVDVE9SLFxuICBUeXBlLFxuICDJtcm1ZGlyZWN0aXZlSW5qZWN0LFxuICDJtWdsb2JhbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gV2lsbCBiZSBwcm92aWRlZCB0aHJvdWdoIFRlcnNlciBnbG9iYWwgZGVmaW5pdGlvbnMgYnkgQW5ndWxhciBDTElcbi8vIGR1cmluZyB0aGUgcHJvZHVjdGlvbiBidWlsZC4gVGhpcyBpcyBob3cgQW5ndWxhciBkb2VzIHRyZWUtc2hha2luZyBpbnRlcm5hbGx5LlxuZGVjbGFyZSBjb25zdCBuZ0Rldk1vZGU6IGJvb2xlYW47XG5cbi8vIEFuZ3VsYXIgZG9lc24ndCBleHBvcnQgYE5HX0ZBQ1RPUllfREVGYC5cbmNvbnN0IE5HX0ZBQ1RPUllfREVGID0gJ8m1ZmFjJztcblxuLy8gQSBgU3ltYm9sYCB3aGljaCBpcyB1c2VkIHRvIHNhdmUgdGhlIGBJbmplY3RvcmAgb250byB0aGUgY2xhc3MgaW5zdGFuY2UuXG5jb25zdCBJbmplY3Rvckluc3RhbmNlOiB1bmlxdWUgc3ltYm9sID0gU3ltYm9sKCdJbmplY3Rvckluc3RhbmNlJyk7XG5cbi8vIEEgYFN5bWJvbGAgd2hpY2ggaXMgdXNlZCB0byBkZXRlcm1pbmUgaWYgZmFjdG9yeSBoYXMgYmVlbiBkZWNvcmF0ZWQgcHJldmlvdXNseSBvciBub3QuXG5jb25zdCBGYWN0b3J5SGFzQmVlbkRlY29yYXRlZDogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbCgnRmFjdG9yeUhhc0JlZW5EZWNvcmF0ZWQnKTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVMb2NhbEluamVjdG9yQ2FwdHVyZWQodGFyZ2V0OiBPYmplY3QpOiB2b2lkIHtcbiAgaWYgKEZhY3RvcnlIYXNCZWVuRGVjb3JhdGVkIGluIHRhcmdldC5jb25zdHJ1Y3Rvci5wcm90b3R5cGUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBjb25zdHJ1Y3RvcjogQ29uc3RydWN0b3JXaXRoRGVmaW5pdGlvbkFuZEZhY3RvcnkgPSB0YXJnZXQuY29uc3RydWN0b3I7XG4gIC8vIE1lYW5zIHdlJ3JlIGluIEFPVCBtb2RlLlxuICBpZiAodHlwZW9mIGNvbnN0cnVjdG9yW05HX0ZBQ1RPUllfREVGXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGRlY29yYXRlRmFjdG9yeShjb25zdHJ1Y3Rvcik7XG4gIH0gZWxzZSBpZiAobmdEZXZNb2RlKSB7XG4gICAgLy8gV2UncmUgcnVubmluZyBpbiBKSVQgbW9kZSBhbmQgdGhhdCBtZWFucyB3ZSdyZSBub3QgYWJsZSB0byBnZXQgdGhlIGNvbXBpbGVkIGRlZmluaXRpb25cbiAgICAvLyBvbiB0aGUgY2xhc3MgaW5zaWRlIHRoZSBwcm9wZXJ0eSBkZWNvcmF0b3IgZHVyaW5nIHRoZSBjdXJyZW50IG1lc3NhZ2UgbG9vcCB0aWNrLiBXZSBoYXZlXG4gICAgLy8gdG8gd2FpdCBmb3IgdGhlIG5leHQgbWVzc2FnZSBsb29wIHRpY2suIE5vdGUgdGhhdCB0aGlzIGlzIHNhZmUgc2luY2UgdGhpcyBQcm9taXNlIHdpbGwgYmVcbiAgICAvLyByZXNvbHZlZCBldmVuIGJlZm9yZSB0aGUgYEFQUF9JTklUSUFMSVpFUmAgaXMgcmVzb2x2ZWQuXG4gICAgLy8gVGhlIGJlbG93IGNvZGUgYWxzbyB3aWxsIGJlIGV4ZWN1dGVkIG9ubHkgaW4gZGV2ZWxvcG1lbnQgbW9kZSwgc2luY2UgaXQncyBuZXZlciByZWNvbW1lbmRlZFxuICAgIC8vIHRvIHVzZSB0aGUgSklUIGNvbXBpbGVyIGluIHByb2R1Y3Rpb24gbW9kZSAoYnkgc2V0dGluZyBcImFvdDogZmFsc2VcIikuXG4gICAgZGVjb3JhdGVGYWN0b3J5TGF0ZXIoY29uc3RydWN0b3IpO1xuICB9XG5cbiAgdGFyZ2V0LmNvbnN0cnVjdG9yLnByb3RvdHlwZVtGYWN0b3J5SGFzQmVlbkRlY29yYXRlZF0gPSB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxJbmplY3Q8VD4oXG4gIGluc3RhbmNlOiBQcml2YXRlSW5zdGFuY2UsXG4gIHRva2VuOiBJbmplY3Rpb25Ub2tlbjxUPiB8IFR5cGU8VD5cbik6IFQgfCBudWxsIHtcbiAgY29uc3QgaW5qZWN0b3I6IEluamVjdG9yIHwgdW5kZWZpbmVkID0gaW5zdGFuY2VbSW5qZWN0b3JJbnN0YW5jZV07XG4gIHJldHVybiBpbmplY3RvciA/IGluamVjdG9yLmdldCh0b2tlbikgOiBudWxsO1xufVxuXG5mdW5jdGlvbiBkZWNvcmF0ZUZhY3RvcnkoY29uc3RydWN0b3I6IENvbnN0cnVjdG9yV2l0aERlZmluaXRpb25BbmRGYWN0b3J5KTogdm9pZCB7XG4gIGNvbnN0IGZhY3RvcnkgPSBjb25zdHJ1Y3RvcltOR19GQUNUT1JZX0RFRl07XG5cbiAgaWYgKHR5cGVvZiBmYWN0b3J5ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gTGV0J3MgdHJ5IHRvIGdldCBhbnkgZGVmaW5pdGlvbi5cbiAgLy8gQ2FyZXRha2VyIG5vdGU6IHRoaXMgd2lsbCBiZSBjb21wYXRpYmxlIG9ubHkgd2l0aCBBbmd1bGFyIDkrLCBzaW5jZSBBbmd1bGFyIDkgaXMgdGhlIGZpcnN0XG4gIC8vIEl2eS1zdGFibGUgdmVyc2lvbi4gUHJldmlvdXNseSBkZWZpbml0aW9uIHByb3BlcnRpZXMgd2VyZSBuYW1lZCBkaWZmZXJlbnRseSAoZS5nLiBgbmdDb21wb25lbnREZWZgKS5cbiAgY29uc3QgZGVmID0gY29uc3RydWN0b3IuybVwcm92IHx8IGNvbnN0cnVjdG9yLsm1cGlwZSB8fCBjb25zdHJ1Y3Rvci7JtWNtcCB8fCBjb25zdHJ1Y3Rvci7JtWRpcjtcblxuICBjb25zdCBkZWNvcmF0ZWRGYWN0b3J5ID0gKCkgPT4ge1xuICAgIGNvbnN0IGluc3RhbmNlID0gZmFjdG9yeSgpO1xuICAgIC8vIENhcmV0YWtlciBub3RlOiBgaW5qZWN0KClgIHdvbid0IHdvcmsgaGVyZS5cbiAgICAvLyBXZSBjYW4gdXNlIHRoZSBgZGlyZWN0aXZlSW5qZWN0YCBvbmx5IGR1cmluZyB0aGUgY29tcG9uZW50XG4gICAgLy8gY29uc3RydWN0aW9uLCBzaW5jZSBBbmd1bGFyIGNhcHR1cmVzIHRoZSBjdXJyZW50bHkgYWN0aXZlIGluamVjdG9yLlxuICAgIC8vIFdlJ3JlIG5vdCBhYmxlIHRvIHVzZSB0aGlzIGZ1bmN0aW9uIGluc2lkZSB0aGUgZ2V0dGVyICh3aGVuIHRoZSBgc2VsZWN0b3JJZGAgcHJvcGVydHkgaXNcbiAgICAvLyByZXF1ZXN0ZWQgZm9yIHRoZSBmaXJzdCB0aW1lKSwgc2luY2UgdGhlIGN1cnJlbnRseSBhY3RpdmUgaW5qZWN0b3Igd2lsbCBiZSBudWxsLlxuICAgIGluc3RhbmNlW0luamVjdG9ySW5zdGFuY2VdID0gybXJtWRpcmVjdGl2ZUluamVjdChcbiAgICAgIC8vIFdlJ3JlIHVzaW5nIGBJTkpFQ1RPUmAgdG9rZW4gZXhjZXB0IG9mIHRoZSBgSW5qZWN0b3JgIGNsYXNzIHNpbmNlIHRoZSBjb21waWxlclxuICAgICAgLy8gdGhyb3dzOiBgQ2Fubm90IGFzc2lnbiBhbiBhYnN0cmFjdCBjb25zdHJ1Y3RvciB0eXBlIHRvIGEgbm9uLWFic3RyYWN0IGNvbnN0cnVjdG9yIHR5cGUuYC5cbiAgICAgIC8vIENhcmV0YWtlciBub3RlOiB0aGF0IHRoaXMgaXMgdGhlIHNhbWUgd2F5IG9mIGdldHRpbmcgdGhlIGluamVjdG9yLlxuICAgICAgSU5KRUNUT1JcbiAgICApO1xuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfTtcblxuICAvLyBJZiB3ZSd2ZSBmb3VuZCBhbnkgZGVmaW5pdGlvbiB0aGVuIGl0J3MgZW5vdWdoIHRvIG92ZXJyaWRlIHRoZSBgZGVmLmZhY3RvcnlgIHNpbmNlIEFuZ3VsYXJcbiAgLy8gY29kZSB1c2VzIHRoZSBgZGVmLmZhY3RvcnlgIGFuZCB0aGVuIGZhbGxiYWNrcyB0byBgybVmYWNgLlxuICBpZiAoZGVmKSB7XG4gICAgZGVmLmZhY3RvcnkgPSBkZWNvcmF0ZWRGYWN0b3J5O1xuICB9XG5cbiAgLy8gYEBOZ01vZHVsZSgpYCBkb2Vzbid0IGRvZXNuJ3QgaGF2ZSBkZWZpbml0aW9uIGZhY3RvcnksIGFsc28gcHJvdmlkZXJzIGhhdmUgZGVmaW5pdGlvbnMgYnV0IEFuZ3VsYXJcbiAgLy8gc3RpbGwgdXNlcyB0aGUgYMm1ZmFjYC5cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbnN0cnVjdG9yLCBOR19GQUNUT1JZX0RFRiwge1xuICAgIGdldDogKCkgPT4gZGVjb3JhdGVkRmFjdG9yeVxuICB9KTtcbn1cblxuZnVuY3Rpb24gZGVjb3JhdGVGYWN0b3J5TGF0ZXIoY29uc3RydWN0b3I6IENvbnN0cnVjdG9yV2l0aERlZmluaXRpb25BbmRGYWN0b3J5KTogdm9pZCB7XG4gIC8vIFRoaXMgZnVuY3Rpb24gYWN0dWFsbHkgd2lsbCBiZSB0cmVlLXNoYWtlbiBhd2F5IHdoZW4gYnVpbGRpbmcgZm9yIHByb2R1Y3Rpb24gc2luY2UgaXQncyBndWFyZGVkIHdpdGggYG5nRGV2TW9kZWAuXG4gIC8vIFdlJ3JlIGhhdmluZyB0aGUgYHRyeS1jYXRjaGAgaGVyZSBiZWNhdXNlIG9mIHRoZSBgU3luY1Rlc3Rab25lU3BlY2AsIHdoaWNoIHRocm93c1xuICAvLyBhbiBlcnJvciB3aGVuIG1pY3JvIG9yIG1hY3JvdGFzayBpcyB1c2VkIHdpdGhpbiBhIHN5bmNocm9ub3VzIHRlc3QuIEUuZy4gYENhbm5vdCBjYWxsXG4gIC8vIFByb21pc2UudGhlbiBmcm9tIHdpdGhpbiBhIHN5bmMgdGVzdGAuXG4gIHRyeSB7XG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICBkZWNvcmF0ZUZhY3RvcnkoY29uc3RydWN0b3IpO1xuICAgIH0pO1xuICB9IGNhdGNoIHtcbiAgICAvLyBUaGlzIGlzIGtpbmQgb2YgYSBcImhhY2tcIiwgYnV0IHdlIHRyeSB0byBiZSBiYWNrd2FyZHMtY29tcGF0aWJsZSxcbiAgICAvLyB0aG8gdGhpcyBgY2F0Y2hgIGJsb2NrIHdpbGwgb25seSBiZSBleGVjdXRlZCB3aGVuIHRlc3RzIGFyZSBydW4gd2l0aCBKYXNtaW5lIG9yIEplc3QuXG4gICAgybVnbG9iYWwucHJvY2VzcyAmJlxuICAgICAgybVnbG9iYWwucHJvY2Vzcy5uZXh0VGljayAmJlxuICAgICAgybVnbG9iYWwucHJvY2Vzcy5uZXh0VGljaygoKSA9PiB7XG4gICAgICAgIGRlY29yYXRlRmFjdG9yeShjb25zdHJ1Y3Rvcik7XG4gICAgICB9KTtcbiAgfVxufVxuXG4vLyBXZSBjb3VsZCd2ZSB1c2VkIGDJtcm1RmFjdG9yeURlZmAgYnV0IHdlIHRyeSB0byBiZSBiYWNrd2FyZHMtY29tcGF0aWJsZSxcbi8vIHNpbmNlIGl0J3Mgbm90IGV4cG9ydGVkIGluIG9sZGVyIEFuZ3VsYXIgdmVyc2lvbnMuXG50eXBlIEZhY3RvcnkgPSAoKSA9PiBQcml2YXRlSW5zdGFuY2U7XG5cbi8vIFdlIGNvdWxkJ3ZlIHVzZWQgYMm1ybVJbmplY3RhYmxlRGVmYCwgYMm1ybVQaXBlRGVmYCwgZXRjLiBXZSB0cnkgdG8gYmUgYmFja3dhcmRzLWNvbXBhdGlibGVcbi8vIHNpbmNlIHRoZXkncmUgbm90IGV4cG9ydGVkIGluIG9sZGVyIEFuZ3VsYXIgdmVyc2lvbnMuXG5pbnRlcmZhY2UgRGVmaW5pdGlvbiB7XG4gIGZhY3Rvcnk6IEZhY3RvcnkgfCBudWxsO1xufVxuXG5pbnRlcmZhY2UgQ29uc3RydWN0b3JXaXRoRGVmaW5pdGlvbkFuZEZhY3RvcnkgZXh0ZW5kcyBGdW5jdGlvbiB7XG4gIC8vIFByb3ZpZGVyIGRlZmluaXRpb24gZm9yIHRoZSBgQEluamVjdGFibGUoKWAgY2xhc3MuXG4gIMm1cHJvdj86IERlZmluaXRpb247XG4gIC8vIFBpcGUgZGVmaW5pdGlvbiBmb3IgdGhlIGBAUGlwZSgpYCBjbGFzcy5cbiAgybVwaXBlPzogRGVmaW5pdGlvbjtcbiAgLy8gQ29tcG9uZW50IGRlZmluaXRpb24gZm9yIHRoZSBgQENvbXBvbmVudCgpYCBjbGFzcy5cbiAgybVjbXA/OiBEZWZpbml0aW9uO1xuICAvLyBEaXJlY3RpdmUgZGVmaW5pdGlvbiBmb3IgdGhlIGBARGlyZWN0aXZlKClgIGNsYXNzLlxuICDJtWRpcj86IERlZmluaXRpb247XG4gIFtOR19GQUNUT1JZX0RFRl0/OiBGYWN0b3J5O1xufVxuXG5pbnRlcmZhY2UgUHJpdmF0ZUluc3RhbmNlIHtcbiAgW0luamVjdG9ySW5zdGFuY2VdPzogSW5qZWN0b3I7XG59XG4iXX0=
@@ -1,90 +0,0 @@
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 { TestBed } from '@angular/core/testing';
7
- import { DOCUMENT } from '@angular/common';
8
- import { ɵgetDOM as getDOM } from '@angular/platform-browser';
9
- import { destroyPlatform, createPlatform } from '@angular/core';
10
- /**
11
- * @return {?}
12
- */
13
- function createRootElement() {
14
- /** @type {?} */
15
- const document = TestBed.inject(DOCUMENT);
16
- /** @type {?} */
17
- const root = getDOM().createElement('app-root', document);
18
- document.body.appendChild(root);
19
- }
20
- /**
21
- * @return {?}
22
- */
23
- function removeRootElement() {
24
- /** @type {?} */
25
- const root = (/** @type {?} */ (document.getElementsByTagName('app-root').item(0)));
26
- try {
27
- document.body.removeChild(root);
28
- }
29
- catch (_a) { }
30
- }
31
- /**
32
- * @return {?}
33
- */
34
- function destroyPlatformBeforeBootstrappingTheNewOne() {
35
- destroyPlatform();
36
- createRootElement();
37
- }
38
- // As we create our custom platform via `bootstrapModule`
39
- // we have to destroy it after assetions and revert
40
- // the previous one
41
- /**
42
- * @return {?}
43
- */
44
- function resetPlatformAfterBootstrapping() {
45
- removeRootElement();
46
- destroyPlatform();
47
- createPlatform(TestBed);
48
- }
49
- /**
50
- * @param {?} fn
51
- * @return {?}
52
- */
53
- export function freshPlatform(fn) {
54
- /** @type {?} */
55
- let done = null;
56
- /** @type {?} */
57
- let whenDoneIsCalledPromise = null;
58
- /** @type {?} */
59
- const hasDoneArgument = fn.length === 1;
60
- if (hasDoneArgument) {
61
- whenDoneIsCalledPromise = new Promise((/**
62
- * @param {?} resolve
63
- * @return {?}
64
- */
65
- resolve => {
66
- done = resolve;
67
- }));
68
- }
69
- return (/**
70
- * @return {?}
71
- */
72
- function testWithAFreshPlatform() {
73
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
74
- try {
75
- destroyPlatformBeforeBootstrappingTheNewOne();
76
- if (done !== null) {
77
- yield fn(done);
78
- yield (/** @type {?} */ (whenDoneIsCalledPromise));
79
- }
80
- else {
81
- yield fn();
82
- }
83
- }
84
- finally {
85
- resetPlatformAfterBootstrapping();
86
- }
87
- });
88
- });
89
- }
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlc2gtcGxhdGZvcm0uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9pbnRlcm5hbHMvdGVzdGluZy8iLCJzb3VyY2VzIjpbImZyZXNoLXBsYXRmb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxJQUFJLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBRWhFLFNBQVMsaUJBQWlCOztVQUNsQixRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7O1VBQ25DLElBQUksR0FBRyxNQUFNLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQztJQUN6RCxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsQyxDQUFDOzs7O0FBRUQsU0FBUyxpQkFBaUI7O1VBQ2xCLElBQUksR0FBWSxtQkFBQSxRQUFRLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDO0lBQ3hFLElBQUk7UUFDRixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNqQztJQUFDLFdBQU0sR0FBRTtBQUNaLENBQUM7Ozs7QUFFRCxTQUFTLDJDQUEyQztJQUNsRCxlQUFlLEVBQUUsQ0FBQztJQUNsQixpQkFBaUIsRUFBRSxDQUFDO0FBQ3RCLENBQUM7Ozs7Ozs7QUFLRCxTQUFTLCtCQUErQjtJQUN0QyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3BCLGVBQWUsRUFBRSxDQUFDO0lBQ2xCLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMxQixDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsRUFBMEM7O1FBQ2xFLElBQUksR0FBd0IsSUFBSTs7UUFDbEMsdUJBQXVCLEdBQXlCLElBQUk7O1VBRWhELGVBQWUsR0FBRyxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUM7SUFFdkMsSUFBSSxlQUFlLEVBQUU7UUFDbkIsdUJBQXVCLEdBQUcsSUFBSSxPQUFPOzs7O1FBQU8sT0FBTyxDQUFDLEVBQUU7WUFDcEQsSUFBSSxHQUFHLE9BQU8sQ0FBQztRQUNqQixDQUFDLEVBQUMsQ0FBQztLQUNKO0lBRUQ7OztJQUFPLFNBQWUsc0JBQXNCOztZQUMxQyxJQUFJO2dCQUNGLDJDQUEyQyxFQUFFLENBQUM7Z0JBRTlDLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtvQkFDakIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2YsTUFBTSxtQkFBQSx1QkFBdUIsRUFBQyxDQUFDO2lCQUNoQztxQkFBTTtvQkFDTCxNQUFNLEVBQUUsRUFBRSxDQUFDO2lCQUNaO2FBQ0Y7b0JBQVM7Z0JBQ1IsK0JBQStCLEVBQUUsQ0FBQzthQUNuQztRQUNILENBQUM7S0FBQSxFQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlc3RCZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgybVnZXRET00gYXMgZ2V0RE9NIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBkZXN0cm95UGxhdGZvcm0sIGNyZWF0ZVBsYXRmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmZ1bmN0aW9uIGNyZWF0ZVJvb3RFbGVtZW50KCkge1xuICBjb25zdCBkb2N1bWVudCA9IFRlc3RCZWQuaW5qZWN0KERPQ1VNRU5UKTtcbiAgY29uc3Qgcm9vdCA9IGdldERPTSgpLmNyZWF0ZUVsZW1lbnQoJ2FwcC1yb290JywgZG9jdW1lbnQpO1xuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJvb3QpO1xufVxuXG5mdW5jdGlvbiByZW1vdmVSb290RWxlbWVudCgpIHtcbiAgY29uc3Qgcm9vdDogRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhcHAtcm9vdCcpLml0ZW0oMCkhO1xuICB0cnkge1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocm9vdCk7XG4gIH0gY2F0Y2gge31cbn1cblxuZnVuY3Rpb24gZGVzdHJveVBsYXRmb3JtQmVmb3JlQm9vdHN0cmFwcGluZ1RoZU5ld09uZSgpIHtcbiAgZGVzdHJveVBsYXRmb3JtKCk7XG4gIGNyZWF0ZVJvb3RFbGVtZW50KCk7XG59XG5cbi8vIEFzIHdlIGNyZWF0ZSBvdXIgY3VzdG9tIHBsYXRmb3JtIHZpYSBgYm9vdHN0cmFwTW9kdWxlYFxuLy8gd2UgaGF2ZSB0byBkZXN0cm95IGl0IGFmdGVyIGFzc2V0aW9ucyBhbmQgcmV2ZXJ0XG4vLyB0aGUgcHJldmlvdXMgb25lXG5mdW5jdGlvbiByZXNldFBsYXRmb3JtQWZ0ZXJCb290c3RyYXBwaW5nKCkge1xuICByZW1vdmVSb290RWxlbWVudCgpO1xuICBkZXN0cm95UGxhdGZvcm0oKTtcbiAgY3JlYXRlUGxhdGZvcm0oVGVzdEJlZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcmVzaFBsYXRmb3JtKGZuOiAoZG9uZT86IFZvaWRGdW5jdGlvbikgPT4gUHJvbWlzZTx2b2lkPikge1xuICBsZXQgZG9uZTogVm9pZEZ1bmN0aW9uIHwgbnVsbCA9IG51bGwsXG4gICAgd2hlbkRvbmVJc0NhbGxlZFByb21pc2U6IFByb21pc2U8dm9pZD4gfCBudWxsID0gbnVsbDtcblxuICBjb25zdCBoYXNEb25lQXJndW1lbnQgPSBmbi5sZW5ndGggPT09IDE7XG5cbiAgaWYgKGhhc0RvbmVBcmd1bWVudCkge1xuICAgIHdoZW5Eb25lSXNDYWxsZWRQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4ocmVzb2x2ZSA9PiB7XG4gICAgICBkb25lID0gcmVzb2x2ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBhc3luYyBmdW5jdGlvbiB0ZXN0V2l0aEFGcmVzaFBsYXRmb3JtKCkge1xuICAgIHRyeSB7XG4gICAgICBkZXN0cm95UGxhdGZvcm1CZWZvcmVCb290c3RyYXBwaW5nVGhlTmV3T25lKCk7XG5cbiAgICAgIGlmIChkb25lICE9PSBudWxsKSB7XG4gICAgICAgIGF3YWl0IGZuKGRvbmUpO1xuICAgICAgICBhd2FpdCB3aGVuRG9uZUlzQ2FsbGVkUHJvbWlzZSE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCBmbigpO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICByZXNldFBsYXRmb3JtQWZ0ZXJCb290c3RyYXBwaW5nKCk7XG4gICAgfVxuICB9O1xufVxuIl19
@@ -1,22 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { Component } from '@angular/core';
6
- export class NgxsTestComponent {
7
- /**
8
- * @return {?}
9
- */
10
- ngOnInit() { }
11
- /**
12
- * @return {?}
13
- */
14
- ngAfterViewInit() { }
15
- }
16
- NgxsTestComponent.decorators = [
17
- { type: Component, args: [{
18
- selector: 'app-root',
19
- template: ''
20
- }] }
21
- ];
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy10ZXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlL2ludGVybmFscy90ZXN0aW5nLyIsInNvdXJjZXMiOlsiaGVscGVycy9uZ3hzLXRlc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQU1qRSxNQUFNLE9BQU8saUJBQWlCOzs7O0lBQ3JCLFFBQVEsS0FBVSxDQUFDOzs7O0lBQ25CLGVBQWUsS0FBVSxDQUFDOzs7WUFObEMsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxVQUFVO2dCQUNwQixRQUFRLEVBQUUsRUFBRTthQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXJvb3QnLFxuICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgY2xhc3MgTmd4c1Rlc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7fVxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge31cbn1cbiJdfQ==
@@ -1,24 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { NgModule } from '@angular/core';
6
- import { BrowserModule } from '@angular/platform-browser';
7
- import { NgxsTestComponent } from './ngxs-test.component';
8
- export class NgxsTestModule {
9
- /**
10
- * @param {?} app
11
- * @return {?}
12
- */
13
- static ngDoBootstrap(app) {
14
- app.bootstrap(NgxsTestComponent);
15
- }
16
- }
17
- NgxsTestModule.decorators = [
18
- { type: NgModule, args: [{
19
- imports: [BrowserModule],
20
- declarations: [NgxsTestComponent],
21
- entryComponents: [NgxsTestComponent]
22
- },] }
23
- ];
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy10ZXN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlL2ludGVybmFscy90ZXN0aW5nLyIsInNvdXJjZXMiOlsiaGVscGVycy9uZ3hzLXRlc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQWtCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFPMUQsTUFBTSxPQUFPLGNBQWM7Ozs7O0lBQ2xCLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBbUI7UUFDN0MsR0FBRyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ25DLENBQUM7OztZQVJGLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7Z0JBQ3hCLFlBQVksRUFBRSxDQUFDLGlCQUFpQixDQUFDO2dCQUNqQyxlQUFlLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzthQUNyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJvd3Nlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5pbXBvcnQgeyBOZ3hzVGVzdENvbXBvbmVudCB9IGZyb20gJy4vbmd4cy10ZXN0LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtCcm93c2VyTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbTmd4c1Rlc3RDb21wb25lbnRdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtOZ3hzVGVzdENvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgTmd4c1Rlc3RNb2R1bGUge1xuICBwdWJsaWMgc3RhdGljIG5nRG9Cb290c3RyYXAoYXBwOiBBcHBsaWNhdGlvblJlZik6IHZvaWQge1xuICAgIGFwcC5ib290c3RyYXAoTmd4c1Rlc3RDb21wb25lbnQpO1xuICB9XG59XG4iXX0=
@@ -1,7 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- export { NgxsTestBed } from './ngxs.setup';
6
- export { freshPlatform } from './fresh-platform';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9pbnRlcm5hbHMvdGVzdGluZy8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IE5neHNUZXN0QmVkIH0gZnJvbSAnLi9uZ3hzLnNldHVwJztcbmV4cG9ydCB7IE5neHNUZXN0aW5nIH0gZnJvbSAnLi9zeW1ib2wnO1xuZXhwb3J0IHsgZnJlc2hQbGF0Zm9ybSB9IGZyb20gJy4vZnJlc2gtcGxhdGZvcm0nO1xuIl19
@@ -1,9 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- /**
6
- * Generated bundle index. Do not edit.
7
- */
8
- export { NgxsTestBed, freshPlatform } from './index';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1zdG9yZS1pbnRlcm5hbHMtdGVzdGluZy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlL2ludGVybmFscy90ZXN0aW5nLyIsInNvdXJjZXMiOlsibmd4cy1zdG9yZS1pbnRlcm5hbHMtdGVzdGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsMkNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,76 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { ApplicationRef } from '@angular/core';
6
- import { TestBed } from '@angular/core/testing';
7
- import { DOCUMENT } from '@angular/common';
8
- import { ɵBrowserDomAdapter as BrowserDomAdapter } from '@angular/platform-browser';
9
- import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';
10
- import { NgxsModule, Store } from '@ngxs/store';
11
- import { NgxsTestModule } from './helpers/ngxs-test.module';
12
- export class NgxsTestBed {
13
- /**
14
- * @param {?} options
15
- * @return {?}
16
- */
17
- static configureTestingStates(options) {
18
- this.resetTestBed();
19
- if (options.before) {
20
- options.before();
21
- }
22
- TestBed.configureTestingModule({
23
- imports: [
24
- NgxsTestModule,
25
- NgxsModule.forRoot(options.states || [], options.ngxsOptions || {}),
26
- ...(options.imports || [])
27
- ]
28
- }).compileComponents();
29
- NgxsTestBed.ngxsBootstrap();
30
- return {
31
- /**
32
- * @return {?}
33
- */
34
- get store() {
35
- return TestBed.inject(Store);
36
- },
37
- /**
38
- * @return {?}
39
- */
40
- get getTestBed() {
41
- return TestBed;
42
- }
43
- };
44
- }
45
- /**
46
- * @private
47
- * @return {?}
48
- */
49
- static ngxsBootstrap() {
50
- NgxsTestBed.createRootNode();
51
- NgxsTestModule.ngDoBootstrap(TestBed.inject(ApplicationRef));
52
- }
53
- /**
54
- * @private
55
- * @return {?}
56
- */
57
- static resetTestBed() {
58
- TestBed.resetTestEnvironment();
59
- TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting());
60
- }
61
- /**
62
- * @private
63
- * @param {?=} selector
64
- * @return {?}
65
- */
66
- static createRootNode(selector = 'app-root') {
67
- /** @type {?} */
68
- const document = TestBed.inject(DOCUMENT);
69
- /** @type {?} */
70
- const adapter = new BrowserDomAdapter();
71
- /** @type {?} */
72
- const root = adapter.createElement(selector);
73
- document.body.appendChild(root);
74
- }
75
- }
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy5zZXR1cC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlL2ludGVybmFscy90ZXN0aW5nLyIsInNvdXJjZXMiOlsibmd4cy5zZXR1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFpQixNQUFNLHVCQUF1QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLElBQUksaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRixPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLDZCQUE2QixFQUM5QixNQUFNLDJDQUEyQyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWhELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUc1RCxNQUFNLE9BQU8sV0FBVzs7Ozs7SUFDZixNQUFNLENBQUMsc0JBQXNCLENBQUMsT0FBMkI7UUFDOUQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXBCLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUNsQixPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDbEI7UUFFRCxPQUFPLENBQUMsc0JBQXNCLENBQUM7WUFDN0IsT0FBTyxFQUFFO2dCQUNQLGNBQWM7Z0JBQ2QsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztnQkFDbkUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO2FBQzNCO1NBQ0YsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFFdkIsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRTVCLE9BQU87Ozs7WUFDTCxJQUFJLEtBQUs7Z0JBQ1AsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLENBQUM7Ozs7WUFDRCxJQUFJLFVBQVU7Z0JBQ1osT0FBTyxPQUFPLENBQUM7WUFDakIsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDOzs7OztJQUVPLE1BQU0sQ0FBQyxhQUFhO1FBQzFCLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUM3QixjQUFjLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDOzs7OztJQUVPLE1BQU0sQ0FBQyxZQUFZO1FBQ3pCLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQy9CLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQywyQkFBMkIsRUFBRSw2QkFBNkIsRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQzs7Ozs7O0lBRU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEdBQUcsVUFBVTs7Y0FDM0MsUUFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDOztjQUNuQyxPQUFPLEdBQUcsSUFBSSxpQkFBaUIsRUFBRTs7Y0FDakMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQzVDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZXN0QmVkLCBUZXN0QmVkU3RhdGljIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS90ZXN0aW5nJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IMm1QnJvd3NlckRvbUFkYXB0ZXIgYXMgQnJvd3NlckRvbUFkYXB0ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7XG4gIEJyb3dzZXJEeW5hbWljVGVzdGluZ01vZHVsZSxcbiAgcGxhdGZvcm1Ccm93c2VyRHluYW1pY1Rlc3Rpbmdcbn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci1keW5hbWljL3Rlc3RpbmcnO1xuaW1wb3J0IHsgTmd4c01vZHVsZSwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5cbmltcG9ydCB7IE5neHNUZXN0TW9kdWxlIH0gZnJvbSAnLi9oZWxwZXJzL25neHMtdGVzdC5tb2R1bGUnO1xuaW1wb3J0IHsgTmd4c09wdGlvbnNUZXN0aW5nLCBOZ3hzVGVzdGluZyB9IGZyb20gJy4vc3ltYm9sJztcblxuZXhwb3J0IGNsYXNzIE5neHNUZXN0QmVkIHtcbiAgcHVibGljIHN0YXRpYyBjb25maWd1cmVUZXN0aW5nU3RhdGVzKG9wdGlvbnM6IE5neHNPcHRpb25zVGVzdGluZyk6IE5neHNUZXN0aW5nIHtcbiAgICB0aGlzLnJlc2V0VGVzdEJlZCgpO1xuXG4gICAgaWYgKG9wdGlvbnMuYmVmb3JlKSB7XG4gICAgICBvcHRpb25zLmJlZm9yZSgpO1xuICAgIH1cblxuICAgIFRlc3RCZWQuY29uZmlndXJlVGVzdGluZ01vZHVsZSh7XG4gICAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5neHNUZXN0TW9kdWxlLFxuICAgICAgICBOZ3hzTW9kdWxlLmZvclJvb3Qob3B0aW9ucy5zdGF0ZXMgfHwgW10sIG9wdGlvbnMubmd4c09wdGlvbnMgfHwge30pLFxuICAgICAgICAuLi4ob3B0aW9ucy5pbXBvcnRzIHx8IFtdKVxuICAgICAgXVxuICAgIH0pLmNvbXBpbGVDb21wb25lbnRzKCk7XG5cbiAgICBOZ3hzVGVzdEJlZC5uZ3hzQm9vdHN0cmFwKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZ2V0IHN0b3JlKCk6IFN0b3JlIHtcbiAgICAgICAgcmV0dXJuIFRlc3RCZWQuaW5qZWN0KFN0b3JlKTtcbiAgICAgIH0sXG4gICAgICBnZXQgZ2V0VGVzdEJlZCgpOiBUZXN0QmVkU3RhdGljIHtcbiAgICAgICAgcmV0dXJuIFRlc3RCZWQ7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG5neHNCb290c3RyYXAoKTogdm9pZCB7XG4gICAgTmd4c1Rlc3RCZWQuY3JlYXRlUm9vdE5vZGUoKTtcbiAgICBOZ3hzVGVzdE1vZHVsZS5uZ0RvQm9vdHN0cmFwKFRlc3RCZWQuaW5qZWN0KEFwcGxpY2F0aW9uUmVmKSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZXNldFRlc3RCZWQoKTogdm9pZCB7XG4gICAgVGVzdEJlZC5yZXNldFRlc3RFbnZpcm9ubWVudCgpO1xuICAgIFRlc3RCZWQuaW5pdFRlc3RFbnZpcm9ubWVudChCcm93c2VyRHluYW1pY1Rlc3RpbmdNb2R1bGUsIHBsYXRmb3JtQnJvd3NlckR5bmFtaWNUZXN0aW5nKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlUm9vdE5vZGUoc2VsZWN0b3IgPSAnYXBwLXJvb3QnKTogdm9pZCB7XG4gICAgY29uc3QgZG9jdW1lbnQgPSBUZXN0QmVkLmluamVjdChET0NVTUVOVCk7XG4gICAgY29uc3QgYWRhcHRlciA9IG5ldyBCcm93c2VyRG9tQWRhcHRlcigpO1xuICAgIGNvbnN0IHJvb3QgPSBhZGFwdGVyLmNyZWF0ZUVsZW1lbnQoc2VsZWN0b3IpO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocm9vdCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,29 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- /**
6
- * @record
7
- */
8
- export function NgxsOptionsTesting() { }
9
- if (false) {
10
- /** @type {?|undefined} */
11
- NgxsOptionsTesting.prototype.states;
12
- /** @type {?|undefined} */
13
- NgxsOptionsTesting.prototype.ngxsOptions;
14
- /** @type {?|undefined} */
15
- NgxsOptionsTesting.prototype.imports;
16
- /** @type {?|undefined} */
17
- NgxsOptionsTesting.prototype.before;
18
- }
19
- /**
20
- * @record
21
- */
22
- export function NgxsTesting() { }
23
- if (false) {
24
- /** @type {?} */
25
- NgxsTesting.prototype.store;
26
- /** @type {?} */
27
- NgxsTesting.prototype.getTestBed;
28
- }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9sLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvaW50ZXJuYWxzL3Rlc3RpbmcvIiwic291cmNlcyI6WyJzeW1ib2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUtBLHdDQUtDOzs7SUFKQyxvQ0FBc0I7O0lBQ3RCLHlDQUFnQzs7SUFDaEMscUNBQWdDOztJQUNoQyxvQ0FBb0I7Ozs7O0FBR3RCLGlDQUdDOzs7SUFGQyw0QkFBYTs7SUFDYixpQ0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ3hzTW9kdWxlT3B0aW9ucywgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZXN0QmVkU3RhdGljIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS90ZXN0aW5nJztcbmltcG9ydCB7IFN0YXRlQ2xhc3MgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5neHNPcHRpb25zVGVzdGluZyB7XG4gIHN0YXRlcz86IFN0YXRlQ2xhc3NbXTtcbiAgbmd4c09wdGlvbnM/OiBOZ3hzTW9kdWxlT3B0aW9ucztcbiAgaW1wb3J0cz86IE1vZHVsZVdpdGhQcm92aWRlcnNbXTtcbiAgYmVmb3JlPzogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3hzVGVzdGluZyB7XG4gIHN0b3JlOiBTdG9yZTtcbiAgZ2V0VGVzdEJlZDogVGVzdEJlZFN0YXRpYztcbn1cbiJdfQ==
@@ -1,162 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { INJECTOR, ɵɵdirectiveInject, ɵglobal } from '@angular/core';
6
- // Angular doesn't export `NG_FACTORY_DEF`.
7
- /** @type {?} */
8
- var NG_FACTORY_DEF = 'ɵfac';
9
- // A `Symbol` which is used to save the `Injector` onto the class instance.
10
- /** @type {?} */
11
- var InjectorInstance = Symbol('InjectorInstance');
12
- // A `Symbol` which is used to determine if factory has been decorated previously or not.
13
- /** @type {?} */
14
- var FactoryHasBeenDecorated = Symbol('FactoryHasBeenDecorated');
15
- // eslint-disable-next-line @typescript-eslint/ban-types
16
- /**
17
- * @param {?} target
18
- * @return {?}
19
- */
20
- export function ensureLocalInjectorCaptured(target) {
21
- if (FactoryHasBeenDecorated in target.constructor.prototype) {
22
- return;
23
- }
24
- /** @type {?} */
25
- var constructor = target.constructor;
26
- // Means we're in AOT mode.
27
- if (typeof constructor[NG_FACTORY_DEF] === 'function') {
28
- decorateFactory(constructor);
29
- }
30
- else if (ngDevMode) {
31
- // We're running in JIT mode and that means we're not able to get the compiled definition
32
- // on the class inside the property decorator during the current message loop tick. We have
33
- // to wait for the next message loop tick. Note that this is safe since this Promise will be
34
- // resolved even before the `APP_INITIALIZER` is resolved.
35
- // The below code also will be executed only in development mode, since it's never recommended
36
- // to use the JIT compiler in production mode (by setting "aot: false").
37
- decorateFactoryLater(constructor);
38
- }
39
- target.constructor.prototype[FactoryHasBeenDecorated] = true;
40
- }
41
- /**
42
- * @template T
43
- * @param {?} instance
44
- * @param {?} token
45
- * @return {?}
46
- */
47
- export function localInject(instance, token) {
48
- /** @type {?} */
49
- var injector = instance[InjectorInstance];
50
- return injector ? injector.get(token) : null;
51
- }
52
- /**
53
- * @param {?} constructor
54
- * @return {?}
55
- */
56
- function decorateFactory(constructor) {
57
- /** @type {?} */
58
- var factory = constructor[NG_FACTORY_DEF];
59
- if (typeof factory !== 'function') {
60
- return;
61
- }
62
- // Let's try to get any definition.
63
- // Caretaker note: this will be compatible only with Angular 9+, since Angular 9 is the first
64
- // Ivy-stable version. Previously definition properties were named differently (e.g. `ngComponentDef`).
65
- /** @type {?} */
66
- var def = constructor.ɵprov || constructor.ɵpipe || constructor.ɵcmp || constructor.ɵdir;
67
- /** @type {?} */
68
- var decoratedFactory = (/**
69
- * @return {?}
70
- */
71
- function () {
72
- /** @type {?} */
73
- var instance = factory();
74
- // Caretaker note: `inject()` won't work here.
75
- // We can use the `directiveInject` only during the component
76
- // construction, since Angular captures the currently active injector.
77
- // We're not able to use this function inside the getter (when the `selectorId` property is
78
- // requested for the first time), since the currently active injector will be null.
79
- instance[InjectorInstance] = ɵɵdirectiveInject(
80
- // We're using `INJECTOR` token except of the `Injector` class since the compiler
81
- // throws: `Cannot assign an abstract constructor type to a non-abstract constructor type.`.
82
- // Caretaker note: that this is the same way of getting the injector.
83
- INJECTOR);
84
- return instance;
85
- });
86
- // If we've found any definition then it's enough to override the `def.factory` since Angular
87
- // code uses the `def.factory` and then fallbacks to `ɵfac`.
88
- if (def) {
89
- def.factory = decoratedFactory;
90
- }
91
- // `@NgModule()` doesn't doesn't have definition factory, also providers have definitions but Angular
92
- // still uses the `ɵfac`.
93
- Object.defineProperty(constructor, NG_FACTORY_DEF, {
94
- get: (/**
95
- * @return {?}
96
- */
97
- function () { return decoratedFactory; })
98
- });
99
- }
100
- /**
101
- * @param {?} constructor
102
- * @return {?}
103
- */
104
- function decorateFactoryLater(constructor) {
105
- // This function actually will be tree-shaken away when building for production since it's guarded with `ngDevMode`.
106
- // We're having the `try-catch` here because of the `SyncTestZoneSpec`, which throws
107
- // an error when micro or macrotask is used within a synchronous test. E.g. `Cannot call
108
- // Promise.then from within a sync test`.
109
- try {
110
- Promise.resolve().then((/**
111
- * @return {?}
112
- */
113
- function () {
114
- decorateFactory(constructor);
115
- }));
116
- }
117
- catch (_a) {
118
- // This is kind of a "hack", but we try to be backwards-compatible,
119
- // tho this `catch` block will only be executed when tests are run with Jasmine or Jest.
120
- ɵglobal.process &&
121
- ɵglobal.process.nextTick &&
122
- ɵglobal.process.nextTick((/**
123
- * @return {?}
124
- */
125
- function () {
126
- decorateFactory(constructor);
127
- }));
128
- }
129
- }
130
- /**
131
- * @record
132
- */
133
- function Definition() { }
134
- if (false) {
135
- /** @type {?} */
136
- Definition.prototype.factory;
137
- }
138
- /**
139
- * @record
140
- */
141
- function ConstructorWithDefinitionAndFactory() { }
142
- if (false) {
143
- /** @type {?|undefined} */
144
- ConstructorWithDefinitionAndFactory.prototype.ɵprov;
145
- /** @type {?|undefined} */
146
- ConstructorWithDefinitionAndFactory.prototype.ɵpipe;
147
- /** @type {?|undefined} */
148
- ConstructorWithDefinitionAndFactory.prototype.ɵcmp;
149
- /** @type {?|undefined} */
150
- ConstructorWithDefinitionAndFactory.prototype.ɵdir;
151
- /* Skipping unnamed member:
152
- [NG_FACTORY_DEF]?: Factory;*/
153
- }
154
- /**
155
- * @record
156
- */
157
- function PrivateInstance() { }
158
- if (false) {
159
- /* Skipping unnamed member:
160
- [InjectorInstance]?: Injector;*/
161
- }
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9yLWluamVjdG9yLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9pbnRlcm5hbHMvIiwic291cmNlcyI6WyJkZWNvcmF0b3ItaW5qZWN0b3ItYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUdMLFFBQVEsRUFFUixpQkFBaUIsRUFDakIsT0FBTyxFQUNSLE1BQU0sZUFBZSxDQUFDOzs7SUFPakIsY0FBYyxHQUFHLE1BQU07OztJQUd2QixnQkFBZ0IsR0FBa0IsTUFBTSxDQUFDLGtCQUFrQixDQUFDOzs7SUFHNUQsdUJBQXVCLEdBQWtCLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQzs7Ozs7O0FBR2hGLE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxNQUFjO0lBQ3hELElBQUksdUJBQXVCLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUU7UUFDM0QsT0FBTztLQUNSOztRQUVLLFdBQVcsR0FBd0MsTUFBTSxDQUFDLFdBQVc7SUFDM0UsMkJBQTJCO0lBQzNCLElBQUksT0FBTyxXQUFXLENBQUMsY0FBYyxDQUFDLEtBQUssVUFBVSxFQUFFO1FBQ3JELGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztLQUM5QjtTQUFNLElBQUksU0FBUyxFQUFFO1FBQ3BCLHlGQUF5RjtRQUN6RiwyRkFBMkY7UUFDM0YsNEZBQTRGO1FBQzVGLDBEQUEwRDtRQUMxRCw4RkFBOEY7UUFDOUYsd0VBQXdFO1FBQ3hFLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ25DO0lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDL0QsQ0FBQzs7Ozs7OztBQUVELE1BQU0sVUFBVSxXQUFXLENBQ3pCLFFBQXlCLEVBQ3pCLEtBQWtDOztRQUU1QixRQUFRLEdBQXlCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqRSxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQy9DLENBQUM7Ozs7O0FBRUQsU0FBUyxlQUFlLENBQUMsV0FBZ0Q7O1FBQ2pFLE9BQU8sR0FBRyxXQUFXLENBQUMsY0FBYyxDQUFDO0lBRTNDLElBQUksT0FBTyxPQUFPLEtBQUssVUFBVSxFQUFFO1FBQ2pDLE9BQU87S0FDUjs7Ozs7UUFLSyxHQUFHLEdBQUcsV0FBVyxDQUFDLEtBQUssSUFBSSxXQUFXLENBQUMsS0FBSyxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksV0FBVyxDQUFDLElBQUk7O1FBRXBGLGdCQUFnQjs7O0lBQUc7O1lBQ2pCLFFBQVEsR0FBRyxPQUFPLEVBQUU7UUFDMUIsOENBQThDO1FBQzlDLDZEQUE2RDtRQUM3RCxzRUFBc0U7UUFDdEUsMkZBQTJGO1FBQzNGLG1GQUFtRjtRQUNuRixRQUFRLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxpQkFBaUI7UUFDNUMsaUZBQWlGO1FBQ2pGLDRGQUE0RjtRQUM1RixxRUFBcUU7UUFDckUsUUFBUSxDQUNULENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDLENBQUE7SUFFRCw2RkFBNkY7SUFDN0YsNERBQTREO0lBQzVELElBQUksR0FBRyxFQUFFO1FBQ1AsR0FBRyxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQztLQUNoQztJQUVELHFHQUFxRztJQUNyRyx5QkFBeUI7SUFDekIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsY0FBYyxFQUFFO1FBQ2pELEdBQUc7OztRQUFFLGNBQU0sT0FBQSxnQkFBZ0IsRUFBaEIsQ0FBZ0IsQ0FBQTtLQUM1QixDQUFDLENBQUM7QUFDTCxDQUFDOzs7OztBQUVELFNBQVMsb0JBQW9CLENBQUMsV0FBZ0Q7SUFDNUUsb0hBQW9IO0lBQ3BILG9GQUFvRjtJQUNwRix3RkFBd0Y7SUFDeEYseUNBQXlDO0lBQ3pDLElBQUk7UUFDRixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSTs7O1FBQUM7WUFDckIsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9CLENBQUMsRUFBQyxDQUFDO0tBQ0o7SUFBQyxXQUFNO1FBQ04sbUVBQW1FO1FBQ25FLHdGQUF3RjtRQUN4RixPQUFPLENBQUMsT0FBTztZQUNiLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUN4QixPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVE7OztZQUFDO2dCQUN2QixlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDL0IsQ0FBQyxFQUFDLENBQUM7S0FDTjtBQUNILENBQUM7Ozs7QUFRRCx5QkFFQzs7O0lBREMsNkJBQXdCOzs7OztBQUcxQixrREFVQzs7O0lBUkMsb0RBQW1COztJQUVuQixvREFBbUI7O0lBRW5CLG1EQUFrQjs7SUFFbEIsbURBQWtCOzs7Ozs7O0FBSXBCLDhCQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIEluamVjdG9yLFxuICBJTkpFQ1RPUixcbiAgVHlwZSxcbiAgybXJtWRpcmVjdGl2ZUluamVjdCxcbiAgybVnbG9iYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIFdpbGwgYmUgcHJvdmlkZWQgdGhyb3VnaCBUZXJzZXIgZ2xvYmFsIGRlZmluaXRpb25zIGJ5IEFuZ3VsYXIgQ0xJXG4vLyBkdXJpbmcgdGhlIHByb2R1Y3Rpb24gYnVpbGQuIFRoaXMgaXMgaG93IEFuZ3VsYXIgZG9lcyB0cmVlLXNoYWtpbmcgaW50ZXJuYWxseS5cbmRlY2xhcmUgY29uc3QgbmdEZXZNb2RlOiBib29sZWFuO1xuXG4vLyBBbmd1bGFyIGRvZXNuJ3QgZXhwb3J0IGBOR19GQUNUT1JZX0RFRmAuXG5jb25zdCBOR19GQUNUT1JZX0RFRiA9ICfJtWZhYyc7XG5cbi8vIEEgYFN5bWJvbGAgd2hpY2ggaXMgdXNlZCB0byBzYXZlIHRoZSBgSW5qZWN0b3JgIG9udG8gdGhlIGNsYXNzIGluc3RhbmNlLlxuY29uc3QgSW5qZWN0b3JJbnN0YW5jZTogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbCgnSW5qZWN0b3JJbnN0YW5jZScpO1xuXG4vLyBBIGBTeW1ib2xgIHdoaWNoIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIGZhY3RvcnkgaGFzIGJlZW4gZGVjb3JhdGVkIHByZXZpb3VzbHkgb3Igbm90LlxuY29uc3QgRmFjdG9yeUhhc0JlZW5EZWNvcmF0ZWQ6IHVuaXF1ZSBzeW1ib2wgPSBTeW1ib2woJ0ZhY3RvcnlIYXNCZWVuRGVjb3JhdGVkJyk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlTG9jYWxJbmplY3RvckNhcHR1cmVkKHRhcmdldDogT2JqZWN0KTogdm9pZCB7XG4gIGlmIChGYWN0b3J5SGFzQmVlbkRlY29yYXRlZCBpbiB0YXJnZXQuY29uc3RydWN0b3IucHJvdG90eXBlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgY29uc3RydWN0b3I6IENvbnN0cnVjdG9yV2l0aERlZmluaXRpb25BbmRGYWN0b3J5ID0gdGFyZ2V0LmNvbnN0cnVjdG9yO1xuICAvLyBNZWFucyB3ZSdyZSBpbiBBT1QgbW9kZS5cbiAgaWYgKHR5cGVvZiBjb25zdHJ1Y3RvcltOR19GQUNUT1JZX0RFRl0gPT09ICdmdW5jdGlvbicpIHtcbiAgICBkZWNvcmF0ZUZhY3RvcnkoY29uc3RydWN0b3IpO1xuICB9IGVsc2UgaWYgKG5nRGV2TW9kZSkge1xuICAgIC8vIFdlJ3JlIHJ1bm5pbmcgaW4gSklUIG1vZGUgYW5kIHRoYXQgbWVhbnMgd2UncmUgbm90IGFibGUgdG8gZ2V0IHRoZSBjb21waWxlZCBkZWZpbml0aW9uXG4gICAgLy8gb24gdGhlIGNsYXNzIGluc2lkZSB0aGUgcHJvcGVydHkgZGVjb3JhdG9yIGR1cmluZyB0aGUgY3VycmVudCBtZXNzYWdlIGxvb3AgdGljay4gV2UgaGF2ZVxuICAgIC8vIHRvIHdhaXQgZm9yIHRoZSBuZXh0IG1lc3NhZ2UgbG9vcCB0aWNrLiBOb3RlIHRoYXQgdGhpcyBpcyBzYWZlIHNpbmNlIHRoaXMgUHJvbWlzZSB3aWxsIGJlXG4gICAgLy8gcmVzb2x2ZWQgZXZlbiBiZWZvcmUgdGhlIGBBUFBfSU5JVElBTElaRVJgIGlzIHJlc29sdmVkLlxuICAgIC8vIFRoZSBiZWxvdyBjb2RlIGFsc28gd2lsbCBiZSBleGVjdXRlZCBvbmx5IGluIGRldmVsb3BtZW50IG1vZGUsIHNpbmNlIGl0J3MgbmV2ZXIgcmVjb21tZW5kZWRcbiAgICAvLyB0byB1c2UgdGhlIEpJVCBjb21waWxlciBpbiBwcm9kdWN0aW9uIG1vZGUgKGJ5IHNldHRpbmcgXCJhb3Q6IGZhbHNlXCIpLlxuICAgIGRlY29yYXRlRmFjdG9yeUxhdGVyKGNvbnN0cnVjdG9yKTtcbiAgfVxuXG4gIHRhcmdldC5jb25zdHJ1Y3Rvci5wcm90b3R5cGVbRmFjdG9yeUhhc0JlZW5EZWNvcmF0ZWRdID0gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvY2FsSW5qZWN0PFQ+KFxuICBpbnN0YW5jZTogUHJpdmF0ZUluc3RhbmNlLFxuICB0b2tlbjogSW5qZWN0aW9uVG9rZW48VD4gfCBUeXBlPFQ+XG4pOiBUIHwgbnVsbCB7XG4gIGNvbnN0IGluamVjdG9yOiBJbmplY3RvciB8IHVuZGVmaW5lZCA9IGluc3RhbmNlW0luamVjdG9ySW5zdGFuY2VdO1xuICByZXR1cm4gaW5qZWN0b3IgPyBpbmplY3Rvci5nZXQodG9rZW4pIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gZGVjb3JhdGVGYWN0b3J5KGNvbnN0cnVjdG9yOiBDb25zdHJ1Y3RvcldpdGhEZWZpbml0aW9uQW5kRmFjdG9yeSk6IHZvaWQge1xuICBjb25zdCBmYWN0b3J5ID0gY29uc3RydWN0b3JbTkdfRkFDVE9SWV9ERUZdO1xuXG4gIGlmICh0eXBlb2YgZmFjdG9yeSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIExldCdzIHRyeSB0byBnZXQgYW55IGRlZmluaXRpb24uXG4gIC8vIENhcmV0YWtlciBub3RlOiB0aGlzIHdpbGwgYmUgY29tcGF0aWJsZSBvbmx5IHdpdGggQW5ndWxhciA5Kywgc2luY2UgQW5ndWxhciA5IGlzIHRoZSBmaXJzdFxuICAvLyBJdnktc3RhYmxlIHZlcnNpb24uIFByZXZpb3VzbHkgZGVmaW5pdGlvbiBwcm9wZXJ0aWVzIHdlcmUgbmFtZWQgZGlmZmVyZW50bHkgKGUuZy4gYG5nQ29tcG9uZW50RGVmYCkuXG4gIGNvbnN0IGRlZiA9IGNvbnN0cnVjdG9yLsm1cHJvdiB8fCBjb25zdHJ1Y3Rvci7JtXBpcGUgfHwgY29uc3RydWN0b3IuybVjbXAgfHwgY29uc3RydWN0b3IuybVkaXI7XG5cbiAgY29uc3QgZGVjb3JhdGVkRmFjdG9yeSA9ICgpID0+IHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IGZhY3RvcnkoKTtcbiAgICAvLyBDYXJldGFrZXIgbm90ZTogYGluamVjdCgpYCB3b24ndCB3b3JrIGhlcmUuXG4gICAgLy8gV2UgY2FuIHVzZSB0aGUgYGRpcmVjdGl2ZUluamVjdGAgb25seSBkdXJpbmcgdGhlIGNvbXBvbmVudFxuICAgIC8vIGNvbnN0cnVjdGlvbiwgc2luY2UgQW5ndWxhciBjYXB0dXJlcyB0aGUgY3VycmVudGx5IGFjdGl2ZSBpbmplY3Rvci5cbiAgICAvLyBXZSdyZSBub3QgYWJsZSB0byB1c2UgdGhpcyBmdW5jdGlvbiBpbnNpZGUgdGhlIGdldHRlciAod2hlbiB0aGUgYHNlbGVjdG9ySWRgIHByb3BlcnR5IGlzXG4gICAgLy8gcmVxdWVzdGVkIGZvciB0aGUgZmlyc3QgdGltZSksIHNpbmNlIHRoZSBjdXJyZW50bHkgYWN0aXZlIGluamVjdG9yIHdpbGwgYmUgbnVsbC5cbiAgICBpbnN0YW5jZVtJbmplY3Rvckluc3RhbmNlXSA9IMm1ybVkaXJlY3RpdmVJbmplY3QoXG4gICAgICAvLyBXZSdyZSB1c2luZyBgSU5KRUNUT1JgIHRva2VuIGV4Y2VwdCBvZiB0aGUgYEluamVjdG9yYCBjbGFzcyBzaW5jZSB0aGUgY29tcGlsZXJcbiAgICAgIC8vIHRocm93czogYENhbm5vdCBhc3NpZ24gYW4gYWJzdHJhY3QgY29uc3RydWN0b3IgdHlwZSB0byBhIG5vbi1hYnN0cmFjdCBjb25zdHJ1Y3RvciB0eXBlLmAuXG4gICAgICAvLyBDYXJldGFrZXIgbm90ZTogdGhhdCB0aGlzIGlzIHRoZSBzYW1lIHdheSBvZiBnZXR0aW5nIHRoZSBpbmplY3Rvci5cbiAgICAgIElOSkVDVE9SXG4gICAgKTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH07XG5cbiAgLy8gSWYgd2UndmUgZm91bmQgYW55IGRlZmluaXRpb24gdGhlbiBpdCdzIGVub3VnaCB0byBvdmVycmlkZSB0aGUgYGRlZi5mYWN0b3J5YCBzaW5jZSBBbmd1bGFyXG4gIC8vIGNvZGUgdXNlcyB0aGUgYGRlZi5mYWN0b3J5YCBhbmQgdGhlbiBmYWxsYmFja3MgdG8gYMm1ZmFjYC5cbiAgaWYgKGRlZikge1xuICAgIGRlZi5mYWN0b3J5ID0gZGVjb3JhdGVkRmFjdG9yeTtcbiAgfVxuXG4gIC8vIGBATmdNb2R1bGUoKWAgZG9lc24ndCBkb2Vzbid0IGhhdmUgZGVmaW5pdGlvbiBmYWN0b3J5LCBhbHNvIHByb3ZpZGVycyBoYXZlIGRlZmluaXRpb25zIGJ1dCBBbmd1bGFyXG4gIC8vIHN0aWxsIHVzZXMgdGhlIGDJtWZhY2AuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25zdHJ1Y3RvciwgTkdfRkFDVE9SWV9ERUYsIHtcbiAgICBnZXQ6ICgpID0+IGRlY29yYXRlZEZhY3RvcnlcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGRlY29yYXRlRmFjdG9yeUxhdGVyKGNvbnN0cnVjdG9yOiBDb25zdHJ1Y3RvcldpdGhEZWZpbml0aW9uQW5kRmFjdG9yeSk6IHZvaWQge1xuICAvLyBUaGlzIGZ1bmN0aW9uIGFjdHVhbGx5IHdpbGwgYmUgdHJlZS1zaGFrZW4gYXdheSB3aGVuIGJ1aWxkaW5nIGZvciBwcm9kdWN0aW9uIHNpbmNlIGl0J3MgZ3VhcmRlZCB3aXRoIGBuZ0Rldk1vZGVgLlxuICAvLyBXZSdyZSBoYXZpbmcgdGhlIGB0cnktY2F0Y2hgIGhlcmUgYmVjYXVzZSBvZiB0aGUgYFN5bmNUZXN0Wm9uZVNwZWNgLCB3aGljaCB0aHJvd3NcbiAgLy8gYW4gZXJyb3Igd2hlbiBtaWNybyBvciBtYWNyb3Rhc2sgaXMgdXNlZCB3aXRoaW4gYSBzeW5jaHJvbm91cyB0ZXN0LiBFLmcuIGBDYW5ub3QgY2FsbFxuICAvLyBQcm9taXNlLnRoZW4gZnJvbSB3aXRoaW4gYSBzeW5jIHRlc3RgLlxuICB0cnkge1xuICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgZGVjb3JhdGVGYWN0b3J5KGNvbnN0cnVjdG9yKTtcbiAgICB9KTtcbiAgfSBjYXRjaCB7XG4gICAgLy8gVGhpcyBpcyBraW5kIG9mIGEgXCJoYWNrXCIsIGJ1dCB3ZSB0cnkgdG8gYmUgYmFja3dhcmRzLWNvbXBhdGlibGUsXG4gICAgLy8gdGhvIHRoaXMgYGNhdGNoYCBibG9jayB3aWxsIG9ubHkgYmUgZXhlY3V0ZWQgd2hlbiB0ZXN0cyBhcmUgcnVuIHdpdGggSmFzbWluZSBvciBKZXN0LlxuICAgIMm1Z2xvYmFsLnByb2Nlc3MgJiZcbiAgICAgIMm1Z2xvYmFsLnByb2Nlc3MubmV4dFRpY2sgJiZcbiAgICAgIMm1Z2xvYmFsLnByb2Nlc3MubmV4dFRpY2soKCkgPT4ge1xuICAgICAgICBkZWNvcmF0ZUZhY3RvcnkoY29uc3RydWN0b3IpO1xuICAgICAgfSk7XG4gIH1cbn1cblxuLy8gV2UgY291bGQndmUgdXNlZCBgybXJtUZhY3RvcnlEZWZgIGJ1dCB3ZSB0cnkgdG8gYmUgYmFja3dhcmRzLWNvbXBhdGlibGUsXG4vLyBzaW5jZSBpdCdzIG5vdCBleHBvcnRlZCBpbiBvbGRlciBBbmd1bGFyIHZlcnNpb25zLlxudHlwZSBGYWN0b3J5ID0gKCkgPT4gUHJpdmF0ZUluc3RhbmNlO1xuXG4vLyBXZSBjb3VsZCd2ZSB1c2VkIGDJtcm1SW5qZWN0YWJsZURlZmAsIGDJtcm1UGlwZURlZmAsIGV0Yy4gV2UgdHJ5IHRvIGJlIGJhY2t3YXJkcy1jb21wYXRpYmxlXG4vLyBzaW5jZSB0aGV5J3JlIG5vdCBleHBvcnRlZCBpbiBvbGRlciBBbmd1bGFyIHZlcnNpb25zLlxuaW50ZXJmYWNlIERlZmluaXRpb24ge1xuICBmYWN0b3J5OiBGYWN0b3J5IHwgbnVsbDtcbn1cblxuaW50ZXJmYWNlIENvbnN0cnVjdG9yV2l0aERlZmluaXRpb25BbmRGYWN0b3J5IGV4dGVuZHMgRnVuY3Rpb24ge1xuICAvLyBQcm92aWRlciBkZWZpbml0aW9uIGZvciB0aGUgYEBJbmplY3RhYmxlKClgIGNsYXNzLlxuICDJtXByb3Y/OiBEZWZpbml0aW9uO1xuICAvLyBQaXBlIGRlZmluaXRpb24gZm9yIHRoZSBgQFBpcGUoKWAgY2xhc3MuXG4gIMm1cGlwZT86IERlZmluaXRpb247XG4gIC8vIENvbXBvbmVudCBkZWZpbml0aW9uIGZvciB0aGUgYEBDb21wb25lbnQoKWAgY2xhc3MuXG4gIMm1Y21wPzogRGVmaW5pdGlvbjtcbiAgLy8gRGlyZWN0aXZlIGRlZmluaXRpb24gZm9yIHRoZSBgQERpcmVjdGl2ZSgpYCBjbGFzcy5cbiAgybVkaXI/OiBEZWZpbml0aW9uO1xuICBbTkdfRkFDVE9SWV9ERUZdPzogRmFjdG9yeTtcbn1cblxuaW50ZXJmYWNlIFByaXZhdGVJbnN0YW5jZSB7XG4gIFtJbmplY3Rvckluc3RhbmNlXT86IEluamVjdG9yO1xufVxuIl19