@ngxs/store 3.8.1 → 3.8.2-dev.master-0fd1fe5

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 (284) hide show
  1. package/esm2020/internals/index.mjs +6 -0
  2. package/esm2020/internals/initial-state.mjs +18 -0
  3. package/esm2020/internals/internal-tokens.mjs +6 -0
  4. package/{esm2015/internals/ngxs-bootstrapper.js → esm2020/internals/ngxs-bootstrapper.mjs} +4 -4
  5. package/esm2020/internals/src/symbols.mjs +11 -0
  6. package/esm2020/internals/symbols.mjs +11 -0
  7. package/esm2020/internals/testing/fresh-platform.mjs +72 -0
  8. package/{esm2015/internals/testing/helpers/ngxs-test.component.js → esm2020/internals/testing/helpers/ngxs-test.component.mjs} +4 -4
  9. package/esm2020/internals/testing/helpers/ngxs-test.module.mjs +20 -0
  10. package/{esm2015/internals/testing/ngxs.setup.js → esm2020/internals/testing/ngxs.setup.mjs} +4 -2
  11. package/esm2020/internals/testing/symbol.mjs +2 -0
  12. package/esm2020/operators/patch.mjs +21 -0
  13. package/esm2020/src/actions/actions.mjs +16 -0
  14. package/{esm2015/src/actions-stream.js → esm2020/src/actions-stream.mjs} +7 -7
  15. package/esm2020/src/configs/messages.config.mjs +48 -0
  16. package/{esm2015/src/decorators/select/select-factory.js → esm2020/src/decorators/select/select-factory.mjs} +4 -4
  17. package/esm2020/src/decorators/selector/selector.mjs +32 -0
  18. package/esm2020/src/decorators/state.mjs +36 -0
  19. package/{esm2015/src/dev-features/ngxs-development.module.js → esm2020/src/dev-features/ngxs-development.module.mjs} +5 -5
  20. package/{esm2015/src/dev-features/ngxs-unhandled-actions-logger.js → esm2020/src/dev-features/ngxs-unhandled-actions-logger.mjs} +4 -4
  21. package/{esm2015/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js → esm2020/src/execution/dispatch-outside-zone-ngxs-execution-strategy.mjs} +4 -4
  22. package/{esm2015/src/execution/internal-ngxs-execution-strategy.js → esm2020/src/execution/internal-ngxs-execution-strategy.mjs} +4 -4
  23. package/{esm2015/src/execution/noop-ngxs-execution-strategy.js → esm2020/src/execution/noop-ngxs-execution-strategy.mjs} +4 -4
  24. package/esm2020/src/execution/symbols.mjs +27 -0
  25. package/{esm2015/src/internal/custom-rxjs-subjects.js → esm2020/src/internal/custom-rxjs-subjects.mjs} +2 -2
  26. package/{esm2015/src/internal/dispatcher.js → esm2020/src/internal/dispatcher.mjs} +11 -11
  27. package/{esm2015/src/internal/error-handler.js → esm2020/src/internal/error-handler.mjs} +5 -5
  28. package/esm2020/src/internal/internals.mjs +248 -0
  29. package/esm2020/src/internal/lifecycle-state-manager.mjs +97 -0
  30. package/esm2020/src/internal/state-context-factory.mjs +68 -0
  31. package/esm2020/src/internal/state-factory.mjs +292 -0
  32. package/{esm2015/src/internal/state-operations.js → esm2020/src/internal/state-operations.mjs} +5 -5
  33. package/esm2020/src/internal/state-operators.mjs +20 -0
  34. package/esm2020/src/internal/state-stream.mjs +27 -0
  35. package/{esm2015/src/ivy/ivy-enabled-in-dev-mode.js → esm2020/src/ivy/ivy-enabled-in-dev-mode.mjs} +2 -2
  36. package/esm2020/src/module.mjs +27 -0
  37. package/esm2020/src/modules/ngxs-feature.module.mjs +18 -0
  38. package/esm2020/src/modules/ngxs-root.module.mjs +18 -0
  39. package/{esm2015/src/operators/of-action.js → esm2020/src/operators/of-action.mjs} +10 -10
  40. package/{esm2015/src/plugin-manager.js → esm2020/src/plugin-manager.mjs} +4 -4
  41. package/esm2020/src/public_api.mjs +28 -0
  42. package/esm2020/src/selectors/create-model-selector.mjs +30 -0
  43. package/esm2020/src/selectors/create-pick-selector.mjs +16 -0
  44. package/esm2020/src/selectors/create-property-selectors.mjs +20 -0
  45. package/esm2020/src/selectors/selector-metadata.mjs +35 -0
  46. package/esm2020/src/selectors/selector-types.util.mjs +2 -0
  47. package/esm2020/src/standalone-features/feature-providers.mjs +20 -0
  48. package/esm2020/src/standalone-features/index.mjs +4 -0
  49. package/esm2020/src/standalone-features/initializers.mjs +86 -0
  50. package/esm2020/src/standalone-features/plugin.mjs +20 -0
  51. package/esm2020/src/standalone-features/provide-states.mjs +26 -0
  52. package/esm2020/src/standalone-features/provide-store.mjs +26 -0
  53. package/esm2020/src/standalone-features/root-providers.mjs +47 -0
  54. package/{esm2015/src/store.js → esm2020/src/store.mjs} +6 -5
  55. package/esm2020/src/symbols.mjs +65 -0
  56. package/esm2020/src/utils/store-validators.mjs +25 -0
  57. package/esm2020/src/utils/utils.mjs +92 -0
  58. package/fesm2015/{ngxs-store-internals-testing.js → ngxs-store-internals-testing.mjs} +19 -13
  59. package/fesm2015/ngxs-store-internals-testing.mjs.map +1 -0
  60. package/fesm2015/{ngxs-store-internals.js → ngxs-store-internals.mjs} +21 -21
  61. package/fesm2015/ngxs-store-internals.mjs.map +1 -0
  62. package/fesm2015/{ngxs-store-operators.js → ngxs-store-operators.mjs} +2 -2
  63. package/fesm2015/ngxs-store-operators.mjs.map +1 -0
  64. package/fesm2015/ngxs-store.mjs +2454 -0
  65. package/fesm2015/ngxs-store.mjs.map +1 -0
  66. package/fesm2020/ngxs-store-internals-testing.mjs +180 -0
  67. package/fesm2020/ngxs-store-internals-testing.mjs.map +1 -0
  68. package/fesm2020/ngxs-store-internals.mjs +114 -0
  69. package/fesm2020/ngxs-store-internals.mjs.map +1 -0
  70. package/fesm2020/ngxs-store-operators.mjs +202 -0
  71. package/fesm2020/ngxs-store-operators.mjs.map +1 -0
  72. package/{fesm2015/ngxs-store.js → fesm2020/ngxs-store.mjs} +1190 -1036
  73. package/fesm2020/ngxs-store.mjs.map +1 -0
  74. package/internals/index.d.ts +1 -2
  75. package/internals/initial-state.d.ts +1 -1
  76. package/internals/src/symbols.d.ts +4 -1
  77. package/internals/symbols.d.ts +4 -1
  78. package/internals/testing/helpers/ngxs-test.component.d.ts +1 -1
  79. package/internals/testing/symbol.d.ts +2 -2
  80. package/package.json +49 -12
  81. package/schematics/collection.json +36 -0
  82. package/schematics/src/actions/actions.factory.d.ts +3 -0
  83. package/schematics/src/actions/actions.factory.js +22 -0
  84. package/schematics/src/actions/actions.factory.js.map +1 -0
  85. package/schematics/src/actions/files/__name__.actions.ts__template__ +4 -0
  86. package/schematics/src/actions/schema.json +28 -0
  87. package/schematics/src/ng-add/add-declaration.d.ts +4 -0
  88. package/schematics/src/ng-add/add-declaration.js +109 -0
  89. package/schematics/src/ng-add/add-declaration.js.map +1 -0
  90. package/schematics/src/ng-add/ng-add.factory.d.ts +9 -0
  91. package/schematics/src/ng-add/ng-add.factory.js +86 -0
  92. package/schematics/src/ng-add/ng-add.factory.js.map +1 -0
  93. package/schematics/src/ng-add/schema.json +72 -0
  94. package/schematics/src/starter-kit/files/store/auth/auth.actions.ts__template__ +7 -0
  95. package/schematics/src/starter-kit/files/store/auth/auth.state.spec.ts__template__ +46 -0
  96. package/schematics/src/starter-kit/files/store/auth/auth.state.ts__template__ +45 -0
  97. package/schematics/src/starter-kit/files/store/dashboard/index.ts__template__ +11 -0
  98. package/schematics/src/starter-kit/files/store/dashboard/states/dictionary/dictionary.actions.ts__template__ +13 -0
  99. package/schematics/src/starter-kit/files/store/dashboard/states/dictionary/dictionary.state.spec.ts__template__ +77 -0
  100. package/schematics/src/starter-kit/files/store/dashboard/states/dictionary/dictionary.state.ts__template__ +60 -0
  101. package/schematics/src/starter-kit/files/store/dashboard/states/user/user.actions.ts__template__ +6 -0
  102. package/schematics/src/starter-kit/files/store/dashboard/states/user/user.state.spec.ts__template__ +54 -0
  103. package/schematics/src/starter-kit/files/store/dashboard/states/user/user.state.ts__template__ +40 -0
  104. package/schematics/src/starter-kit/files/store/store.config.ts__template__ +38 -0
  105. package/schematics/src/starter-kit/files/store/store.module.ts__template__ +22 -0
  106. package/schematics/src/starter-kit/schema.json +18 -0
  107. package/schematics/src/starter-kit/starter-kit.factory.d.ts +3 -0
  108. package/schematics/src/starter-kit/starter-kit.factory.js +12 -0
  109. package/schematics/src/starter-kit/starter-kit.factory.js.map +1 -0
  110. package/schematics/src/state/files/__name__.state.spec.ts__template__ +22 -0
  111. package/schematics/src/state/files/__name__.state.ts__template__ +20 -0
  112. package/schematics/src/state/schema.json +33 -0
  113. package/schematics/src/state/state.factory.d.ts +3 -0
  114. package/schematics/src/state/state.factory.js +20 -0
  115. package/schematics/src/state/state.factory.js.map +1 -0
  116. package/schematics/src/store/files/__name__.actions.ts__template__ +4 -0
  117. package/schematics/src/store/files/__name__.state.spec.ts__template__ +24 -0
  118. package/schematics/src/store/files/__name__.state.ts__template__ +27 -0
  119. package/schematics/src/store/schema.json +33 -0
  120. package/schematics/src/store/store.factory.d.ts +3 -0
  121. package/schematics/src/store/store.factory.js +20 -0
  122. package/schematics/src/store/store.factory.js.map +1 -0
  123. package/schematics/src/utils/common/lib.config.d.ts +10 -0
  124. package/schematics/src/utils/common/lib.config.js +15 -0
  125. package/schematics/src/utils/common/lib.config.js.map +1 -0
  126. package/schematics/src/utils/common/project-files.config.d.ts +3 -0
  127. package/schematics/src/utils/common/project-files.config.js +7 -0
  128. package/schematics/src/utils/common/project-files.config.js.map +1 -0
  129. package/schematics/src/utils/common/properties.d.ts +1 -0
  130. package/schematics/src/utils/common/properties.js +8 -0
  131. package/schematics/src/utils/common/properties.js.map +1 -0
  132. package/schematics/src/utils/config.d.ts +119 -0
  133. package/schematics/src/utils/config.js +21 -0
  134. package/schematics/src/utils/config.js.map +1 -0
  135. package/schematics/src/utils/generate-utils.d.ts +4 -0
  136. package/schematics/src/utils/generate-utils.js +14 -0
  137. package/schematics/src/utils/generate-utils.js.map +1 -0
  138. package/schematics/src/utils/interfaces/package.interface.d.ts +7 -0
  139. package/schematics/src/utils/interfaces/package.interface.js +3 -0
  140. package/schematics/src/utils/interfaces/package.interface.js.map +1 -0
  141. package/schematics/src/utils/ng-utils/README.md +1 -0
  142. package/schematics/src/utils/ng-utils/ast-utils.d.ts +99 -0
  143. package/schematics/src/utils/ng-utils/ast-utils.js +517 -0
  144. package/schematics/src/utils/ng-utils/ast-utils.js.map +1 -0
  145. package/schematics/src/utils/ng-utils/ng-ast-utils.d.ts +5 -0
  146. package/schematics/src/utils/ng-utils/ng-ast-utils.js +67 -0
  147. package/schematics/src/utils/ng-utils/ng-ast-utils.js.map +1 -0
  148. package/schematics/src/utils/ng-utils/project.d.ts +2 -0
  149. package/schematics/src/utils/ng-utils/project.js +21 -0
  150. package/schematics/src/utils/ng-utils/project.js.map +1 -0
  151. package/schematics/src/utils/ng-utils/standalone/app_config.d.ts +16 -0
  152. package/schematics/src/utils/ng-utils/standalone/app_config.js +84 -0
  153. package/schematics/src/utils/ng-utils/standalone/app_config.js.map +1 -0
  154. package/schematics/src/utils/ng-utils/standalone/code_block.d.ts +46 -0
  155. package/schematics/src/utils/ng-utils/standalone/code_block.js +73 -0
  156. package/schematics/src/utils/ng-utils/standalone/code_block.js.map +1 -0
  157. package/schematics/src/utils/ng-utils/standalone/index.d.ts +1 -0
  158. package/schematics/src/utils/ng-utils/standalone/index.js +7 -0
  159. package/schematics/src/utils/ng-utils/standalone/index.js.map +1 -0
  160. package/schematics/src/utils/ng-utils/standalone/rules.d.ts +38 -0
  161. package/schematics/src/utils/ng-utils/standalone/rules.js +195 -0
  162. package/schematics/src/utils/ng-utils/standalone/rules.js.map +1 -0
  163. package/schematics/src/utils/ng-utils/standalone/util.d.ts +28 -0
  164. package/schematics/src/utils/ng-utils/standalone/util.js +138 -0
  165. package/schematics/src/utils/ng-utils/standalone/util.js.map +1 -0
  166. package/schematics/src/utils/normalize-options.d.ts +9 -0
  167. package/schematics/src/utils/normalize-options.js +24 -0
  168. package/schematics/src/utils/normalize-options.js.map +1 -0
  169. package/schematics/src/utils/project.d.ts +16 -0
  170. package/schematics/src/utils/project.js +40 -0
  171. package/schematics/src/utils/project.js.map +1 -0
  172. package/schematics/src/utils/versions.json +3 -0
  173. package/src/actions/actions.d.ts +2 -2
  174. package/src/configs/messages.config.d.ts +2 -0
  175. package/src/decorators/state.d.ts +2 -2
  176. package/src/execution/symbols.d.ts +8 -2
  177. package/src/internal/custom-rxjs-subjects.d.ts +1 -1
  178. package/src/internal/internals.d.ts +5 -5
  179. package/src/internal/lifecycle-state-manager.d.ts +3 -1
  180. package/src/internal/state-factory.d.ts +1 -1
  181. package/src/module.d.ts +3 -14
  182. package/src/modules/ngxs-feature.module.d.ts +2 -9
  183. package/src/modules/ngxs-root.module.d.ts +2 -9
  184. package/src/public_api.d.ts +5 -4
  185. package/src/selectors/selector-types.util.d.ts +3 -3
  186. package/src/standalone-features/feature-providers.d.ts +7 -0
  187. package/src/standalone-features/index.d.ts +3 -0
  188. package/src/standalone-features/initializers.d.ts +29 -0
  189. package/src/standalone-features/plugin.d.ts +17 -0
  190. package/src/standalone-features/provide-states.d.ts +18 -0
  191. package/src/standalone-features/provide-store.d.ts +22 -0
  192. package/src/standalone-features/root-providers.d.ts +8 -0
  193. package/src/symbols.d.ts +5 -8
  194. package/src/utils/store-validators.d.ts +3 -6
  195. package/bundles/ngxs-store-internals-testing.umd.js +0 -547
  196. package/bundles/ngxs-store-internals-testing.umd.js.map +0 -1
  197. package/bundles/ngxs-store-internals.umd.js +0 -155
  198. package/bundles/ngxs-store-internals.umd.js.map +0 -1
  199. package/bundles/ngxs-store-operators.umd.js +0 -224
  200. package/bundles/ngxs-store-operators.umd.js.map +0 -1
  201. package/bundles/ngxs-store.umd.js +0 -2960
  202. package/bundles/ngxs-store.umd.js.map +0 -1
  203. package/esm2015/internals/angular.js +0 -13
  204. package/esm2015/internals/index.js +0 -6
  205. package/esm2015/internals/initial-state.js +0 -17
  206. package/esm2015/internals/internal-tokens.js +0 -5
  207. package/esm2015/internals/src/symbols.js +0 -2
  208. package/esm2015/internals/symbols.js +0 -2
  209. package/esm2015/internals/testing/fresh-platform.js +0 -70
  210. package/esm2015/internals/testing/helpers/ngxs-test.module.js +0 -21
  211. package/esm2015/internals/testing/symbol.js +0 -2
  212. package/esm2015/operators/patch.js +0 -21
  213. package/esm2015/src/actions/actions.js +0 -22
  214. package/esm2015/src/configs/messages.config.js +0 -36
  215. package/esm2015/src/decorators/selector/selector.js +0 -32
  216. package/esm2015/src/decorators/state.js +0 -38
  217. package/esm2015/src/execution/symbols.js +0 -23
  218. package/esm2015/src/internal/internals.js +0 -248
  219. package/esm2015/src/internal/lifecycle-state-manager.js +0 -79
  220. package/esm2015/src/internal/state-context-factory.js +0 -70
  221. package/esm2015/src/internal/state-factory.js +0 -291
  222. package/esm2015/src/internal/state-operators.js +0 -20
  223. package/esm2015/src/internal/state-stream.js +0 -25
  224. package/esm2015/src/module.js +0 -88
  225. package/esm2015/src/modules/ngxs-feature.module.js +0 -45
  226. package/esm2015/src/modules/ngxs-root.module.js +0 -41
  227. package/esm2015/src/public_api.js +0 -27
  228. package/esm2015/src/selectors/create-model-selector.js +0 -28
  229. package/esm2015/src/selectors/create-pick-selector.js +0 -14
  230. package/esm2015/src/selectors/create-property-selectors.js +0 -18
  231. package/esm2015/src/selectors/selector-metadata.js +0 -30
  232. package/esm2015/src/selectors/selector-types.util.js +0 -2
  233. package/esm2015/src/symbols.js +0 -58
  234. package/esm2015/src/utils/store-validators.js +0 -27
  235. package/esm2015/src/utils/utils.js +0 -92
  236. package/fesm2015/ngxs-store-internals-testing.js.map +0 -1
  237. package/fesm2015/ngxs-store-internals.js.map +0 -1
  238. package/fesm2015/ngxs-store-operators.js.map +0 -1
  239. package/fesm2015/ngxs-store.js.map +0 -1
  240. package/internals/angular.d.ts +0 -1
  241. package/internals/ngxs-store-internals.d.ts +0 -5
  242. package/internals/package.json +0 -10
  243. package/internals/testing/ngxs-store-internals-testing.d.ts +0 -5
  244. package/internals/testing/package.json +0 -10
  245. package/ngxs-store.d.ts +0 -5
  246. package/operators/ngxs-store-operators.d.ts +0 -5
  247. package/operators/package.json +0 -10
  248. /package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  249. /package/{esm2015/internals/memoize.js → esm2020/internals/memoize.mjs} +0 -0
  250. /package/{esm2015/internals/ngxs-store-internals.js → esm2020/internals/ngxs-store-internals.mjs} +0 -0
  251. /package/{esm2015/internals/testing/index.js → esm2020/internals/testing/index.mjs} +0 -0
  252. /package/{esm2015/internals/testing/ngxs-store-internals-testing.js → esm2020/internals/testing/ngxs-store-internals-testing.mjs} +0 -0
  253. /package/{esm2015/internals/testing/skip-console-logging.js → esm2020/internals/testing/skip-console-logging.mjs} +0 -0
  254. /package/{esm2015/ngxs-store.js → esm2020/ngxs-store.mjs} +0 -0
  255. /package/{esm2015/operators/append.js → esm2020/operators/append.mjs} +0 -0
  256. /package/{esm2015/operators/compose.js → esm2020/operators/compose.mjs} +0 -0
  257. /package/{esm2015/operators/iif.js → esm2020/operators/iif.mjs} +0 -0
  258. /package/{esm2015/operators/index.js → esm2020/operators/index.mjs} +0 -0
  259. /package/{esm2015/operators/insert-item.js → esm2020/operators/insert-item.mjs} +0 -0
  260. /package/{esm2015/operators/ngxs-store-operators.js → esm2020/operators/ngxs-store-operators.mjs} +0 -0
  261. /package/{esm2015/operators/remove-item.js → esm2020/operators/remove-item.mjs} +0 -0
  262. /package/{esm2015/operators/types.js → esm2020/operators/types.mjs} +0 -0
  263. /package/{esm2015/operators/update-item.js → esm2020/operators/update-item.mjs} +0 -0
  264. /package/{esm2015/operators/utils.js → esm2020/operators/utils.mjs} +0 -0
  265. /package/{esm2015/src/actions/symbols.js → esm2020/src/actions/symbols.mjs} +0 -0
  266. /package/{esm2015/src/decorators/action.js → esm2020/src/decorators/action.mjs} +0 -0
  267. /package/{esm2015/src/decorators/select/select.js → esm2020/src/decorators/select/select.mjs} +0 -0
  268. /package/{esm2015/src/decorators/select/symbols.js → esm2020/src/decorators/select/symbols.mjs} +0 -0
  269. /package/{esm2015/src/decorators/selector/symbols.js → esm2020/src/decorators/selector/symbols.mjs} +0 -0
  270. /package/{esm2015/src/decorators/selector-options.js → esm2020/src/decorators/selector-options.mjs} +0 -0
  271. /package/{esm2015/src/dev-features/symbols.js → esm2020/src/dev-features/symbols.mjs} +0 -0
  272. /package/{esm2015/src/operators/leave-ngxs.js → esm2020/src/operators/leave-ngxs.mjs} +0 -0
  273. /package/{esm2015/src/plugin_api.js → esm2020/src/plugin_api.mjs} +0 -0
  274. /package/{esm2015/src/private_api.js → esm2020/src/private_api.mjs} +0 -0
  275. /package/{esm2015/src/public_to_deprecate.js → esm2020/src/public_to_deprecate.mjs} +0 -0
  276. /package/{esm2015/src/selectors/create-selector.js → esm2020/src/selectors/create-selector.mjs} +0 -0
  277. /package/{esm2015/src/selectors/index.js → esm2020/src/selectors/index.mjs} +0 -0
  278. /package/{esm2015/src/selectors/selector-checks.util.js → esm2020/src/selectors/selector-checks.util.mjs} +0 -0
  279. /package/{esm2015/src/selectors/selector-models.js → esm2020/src/selectors/selector-models.mjs} +0 -0
  280. /package/{esm2015/src/selectors/selector-utils.js → esm2020/src/selectors/selector-utils.mjs} +0 -0
  281. /package/{esm2015/src/state-token/state-token.js → esm2020/src/state-token/state-token.mjs} +0 -0
  282. /package/{esm2015/src/state-token/symbols.js → esm2020/src/state-token/symbols.mjs} +0 -0
  283. /package/{esm2015/src/utils/compose.js → esm2020/src/utils/compose.mjs} +0 -0
  284. /package/{esm2015/src/utils/freeze.js → esm2020/src/utils/freeze.mjs} +0 -0
@@ -1,5 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- // These tokens are internal and can change at any point.
3
- export const ɵNGXS_STATE_FACTORY = new InjectionToken('ɵNGXS_STATE_FACTORY');
4
- export const ɵNGXS_STATE_CONTEXT_FACTORY = new InjectionToken('ɵNGXS_STATE_CONTEXT_FACTORY');
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtdG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvaW50ZXJuYWxzL3NyYy9pbnRlcm5hbC10b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyx5REFBeUQ7QUFFekQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQU0scUJBQXFCLENBQUMsQ0FBQztBQUVsRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLGNBQWMsQ0FDM0QsNkJBQTZCLENBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBUaGVzZSB0b2tlbnMgYXJlIGludGVybmFsIGFuZCBjYW4gY2hhbmdlIGF0IGFueSBwb2ludC5cblxuZXhwb3J0IGNvbnN0IMm1TkdYU19TVEFURV9GQUNUT1JZID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oJ8m1TkdYU19TVEFURV9GQUNUT1JZJyk7XG5cbmV4cG9ydCBjb25zdCDJtU5HWFNfU1RBVEVfQ09OVEVYVF9GQUNUT1JZID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oXG4gICfJtU5HWFNfU1RBVEVfQ09OVEVYVF9GQUNUT1JZJ1xuKTtcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL2ludGVybmFscy9zcmMvc3ltYm9scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQbGFpbk9iamVjdCB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFpbk9iamVjdE9mPFQ+IHtcbiAgW2tleTogc3RyaW5nXTogVDtcbn1cblxuZXhwb3J0IHR5cGUgU3RhdGVDbGFzczxUID0gYW55PiA9IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQ7XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL2ludGVybmFscy9zcmMvc3ltYm9scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQbGFpbk9iamVjdCB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFpbk9iamVjdE9mPFQ+IHtcbiAgW2tleTogc3RyaW5nXTogVDtcbn1cblxuZXhwb3J0IHR5cGUgU3RhdGVDbGFzczxUID0gYW55PiA9IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQ7XG4iXX0=
@@ -1,70 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { TestBed } from '@angular/core/testing';
3
- import { DOCUMENT } from '@angular/common';
4
- import { ɵgetDOM as getDOM } from '@angular/platform-browser';
5
- import { VERSION, destroyPlatform, createPlatform } from '@angular/core';
6
- function createRootElement() {
7
- const document = TestBed.inject(DOCUMENT);
8
- const root = getDOM().createElement('app-root', document);
9
- document.body.appendChild(root);
10
- }
11
- function removeRootElement() {
12
- const root = document.getElementsByTagName('app-root').item(0);
13
- try {
14
- document.body.removeChild(root);
15
- }
16
- catch (_a) { }
17
- }
18
- function destroyPlatformBeforeBootstrappingTheNewOne() {
19
- destroyPlatform();
20
- createRootElement();
21
- }
22
- // As we create our custom platform via `bootstrapModule`
23
- // we have to destroy it after assetions and revert
24
- // the previous one
25
- function resetPlatformAfterBootstrapping() {
26
- removeRootElement();
27
- destroyPlatform();
28
- const version = +VERSION.major;
29
- // https://github.com/angular/angular/commit/e250db4f261741b04ee4cbad4dec41a8908a12aa
30
- if (version < 14) {
31
- createPlatform(TestBed);
32
- }
33
- }
34
- export function freshPlatform(fn) {
35
- let resolve = null;
36
- let reject = null;
37
- let whenDoneIsCalledPromise = null;
38
- const hasDoneArgument = fn.length === 1;
39
- if (hasDoneArgument) {
40
- whenDoneIsCalledPromise = new Promise((_resolve, _reject) => {
41
- resolve = _resolve;
42
- reject = _reject;
43
- });
44
- }
45
- return function testWithAFreshPlatform() {
46
- return __awaiter(this, void 0, void 0, function* () {
47
- try {
48
- destroyPlatformBeforeBootstrappingTheNewOne();
49
- if (hasDoneArgument) {
50
- yield fn((error) => {
51
- if (error) {
52
- reject(error);
53
- }
54
- else {
55
- resolve();
56
- }
57
- });
58
- yield whenDoneIsCalledPromise;
59
- }
60
- else {
61
- yield fn();
62
- }
63
- }
64
- finally {
65
- resetPlatformAfterBootstrapping();
66
- }
67
- });
68
- };
69
- }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlc2gtcGxhdGZvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9pbnRlcm5hbHMvdGVzdGluZy9zcmMvZnJlc2gtcGxhdGZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sSUFBSSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekUsU0FBUyxpQkFBaUI7SUFDeEIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFELFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFFRCxTQUFTLGlCQUFpQjtJQUN4QixNQUFNLElBQUksR0FBWSxRQUFRLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBRSxDQUFDO0lBQ3pFLElBQUk7UUFDRixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNqQztJQUFDLFdBQU0sR0FBRTtBQUNaLENBQUM7QUFFRCxTQUFTLDJDQUEyQztJQUNsRCxlQUFlLEVBQUUsQ0FBQztJQUNsQixpQkFBaUIsRUFBRSxDQUFDO0FBQ3RCLENBQUM7QUFFRCx5REFBeUQ7QUFDekQsbURBQW1EO0FBQ25ELG1CQUFtQjtBQUNuQixTQUFTLCtCQUErQjtJQUN0QyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3BCLGVBQWUsRUFBRSxDQUFDO0lBQ2xCLE1BQU0sT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUMvQixxRkFBcUY7SUFDckYsSUFBSSxPQUFPLEdBQUcsRUFBRSxFQUFFO1FBQ2hCLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUN6QjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEVBQTBDO0lBQ3RFLElBQUksT0FBTyxHQUF3QixJQUFJLENBQUM7SUFDeEMsSUFBSSxNQUFNLEdBQW9DLElBQUksQ0FBQztJQUNuRCxJQUFJLHVCQUF1QixHQUF5QixJQUFJLENBQUM7SUFFekQsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFFeEMsSUFBSSxlQUFlLEVBQUU7UUFDbkIsdUJBQXVCLEdBQUcsSUFBSSxPQUFPLENBQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDaEUsT0FBTyxHQUFHLFFBQVEsQ0FBQztZQUNuQixNQUFNLEdBQUcsT0FBTyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxPQUFPLFNBQWUsc0JBQXNCOztZQUMxQyxJQUFJO2dCQUNGLDJDQUEyQyxFQUFFLENBQUM7Z0JBRTlDLElBQUksZUFBZSxFQUFFO29CQUNuQixNQUFNLEVBQUUsQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO3dCQUN6QixJQUFJLEtBQUssRUFBRTs0QkFDVCxNQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7eUJBQ2hCOzZCQUFNOzRCQUNMLE9BQVEsRUFBRSxDQUFDO3lCQUNaO29CQUNILENBQUMsQ0FBQyxDQUFDO29CQUNILE1BQU0sdUJBQXdCLENBQUM7aUJBQ2hDO3FCQUFNO29CQUNMLE1BQU0sRUFBRSxFQUFFLENBQUM7aUJBQ1o7YUFDRjtvQkFBUztnQkFDUiwrQkFBK0IsRUFBRSxDQUFDO2FBQ25DO1FBQ0gsQ0FBQztLQUFBLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVzdEJlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyDJtWdldERPTSBhcyBnZXRET00gfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFZFUlNJT04sIGRlc3Ryb3lQbGF0Zm9ybSwgY3JlYXRlUGxhdGZvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZnVuY3Rpb24gY3JlYXRlUm9vdEVsZW1lbnQoKSB7XG4gIGNvbnN0IGRvY3VtZW50ID0gVGVzdEJlZC5pbmplY3QoRE9DVU1FTlQpO1xuICBjb25zdCByb290ID0gZ2V0RE9NKCkuY3JlYXRlRWxlbWVudCgnYXBwLXJvb3QnLCBkb2N1bWVudCk7XG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocm9vdCk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZVJvb3RFbGVtZW50KCkge1xuICBjb25zdCByb290OiBFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2FwcC1yb290JykuaXRlbSgwKSE7XG4gIHRyeSB7XG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChyb290KTtcbiAgfSBjYXRjaCB7fVxufVxuXG5mdW5jdGlvbiBkZXN0cm95UGxhdGZvcm1CZWZvcmVCb290c3RyYXBwaW5nVGhlTmV3T25lKCkge1xuICBkZXN0cm95UGxhdGZvcm0oKTtcbiAgY3JlYXRlUm9vdEVsZW1lbnQoKTtcbn1cblxuLy8gQXMgd2UgY3JlYXRlIG91ciBjdXN0b20gcGxhdGZvcm0gdmlhIGBib290c3RyYXBNb2R1bGVgXG4vLyB3ZSBoYXZlIHRvIGRlc3Ryb3kgaXQgYWZ0ZXIgYXNzZXRpb25zIGFuZCByZXZlcnRcbi8vIHRoZSBwcmV2aW91cyBvbmVcbmZ1bmN0aW9uIHJlc2V0UGxhdGZvcm1BZnRlckJvb3RzdHJhcHBpbmcoKSB7XG4gIHJlbW92ZVJvb3RFbGVtZW50KCk7XG4gIGRlc3Ryb3lQbGF0Zm9ybSgpO1xuICBjb25zdCB2ZXJzaW9uID0gK1ZFUlNJT04ubWFqb3I7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvY29tbWl0L2UyNTBkYjRmMjYxNzQxYjA0ZWU0Y2JhZDRkZWM0MWE4OTA4YTEyYWFcbiAgaWYgKHZlcnNpb24gPCAxNCkge1xuICAgIGNyZWF0ZVBsYXRmb3JtKFRlc3RCZWQpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcmVzaFBsYXRmb3JtKGZuOiAoZG9uZT86IFZvaWRGdW5jdGlvbikgPT4gUHJvbWlzZTx2b2lkPikge1xuICBsZXQgcmVzb2x2ZTogVm9pZEZ1bmN0aW9uIHwgbnVsbCA9IG51bGw7XG4gIGxldCByZWplY3Q6ICgoZXJyb3I6IEVycm9yKSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xuICBsZXQgd2hlbkRvbmVJc0NhbGxlZFByb21pc2U6IFByb21pc2U8dm9pZD4gfCBudWxsID0gbnVsbDtcblxuICBjb25zdCBoYXNEb25lQXJndW1lbnQgPSBmbi5sZW5ndGggPT09IDE7XG5cbiAgaWYgKGhhc0RvbmVBcmd1bWVudCkge1xuICAgIHdoZW5Eb25lSXNDYWxsZWRQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKF9yZXNvbHZlLCBfcmVqZWN0KSA9PiB7XG4gICAgICByZXNvbHZlID0gX3Jlc29sdmU7XG4gICAgICByZWplY3QgPSBfcmVqZWN0O1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIHRlc3RXaXRoQUZyZXNoUGxhdGZvcm0oKSB7XG4gICAgdHJ5IHtcbiAgICAgIGRlc3Ryb3lQbGF0Zm9ybUJlZm9yZUJvb3RzdHJhcHBpbmdUaGVOZXdPbmUoKTtcblxuICAgICAgaWYgKGhhc0RvbmVBcmd1bWVudCkge1xuICAgICAgICBhd2FpdCBmbigoZXJyb3I/OiBFcnJvcikgPT4ge1xuICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgcmVqZWN0IShlcnJvcik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmUhKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgd2hlbkRvbmVJc0NhbGxlZFByb21pc2UhO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgZm4oKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgcmVzZXRQbGF0Zm9ybUFmdGVyQm9vdHN0cmFwcGluZygpO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -1,21 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { BrowserModule } from '@angular/platform-browser';
3
- import { NgxsTestComponent } from './ngxs-test.component';
4
- import * as i0 from "@angular/core";
5
- export class NgxsTestModule {
6
- static ngDoBootstrap(app) {
7
- app.bootstrap(NgxsTestComponent);
8
- }
9
- }
10
- /** @nocollapse */ NgxsTestModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsTestModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- /** @nocollapse */ NgxsTestModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsTestModule, declarations: [NgxsTestComponent], imports: [BrowserModule] });
12
- /** @nocollapse */ NgxsTestModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsTestModule, imports: [[BrowserModule]] });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsTestModule, decorators: [{
14
- type: NgModule,
15
- args: [{
16
- imports: [BrowserModule],
17
- declarations: [NgxsTestComponent],
18
- entryComponents: [NgxsTestComponent]
19
- }]
20
- }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy10ZXN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL2ludGVybmFscy90ZXN0aW5nL3NyYy9oZWxwZXJzL25neHMtdGVzdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQU8xRCxNQUFNLE9BQU8sY0FBYztJQUNsQixNQUFNLENBQUMsYUFBYSxDQUFDLEdBQW1CO1FBQzdDLEdBQUcsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNuQyxDQUFDOzsrSEFIVSxjQUFjO2dJQUFkLGNBQWMsaUJBSFYsaUJBQWlCLGFBRHRCLGFBQWE7Z0lBSVosY0FBYyxZQUpoQixDQUFDLGFBQWEsQ0FBQzs0RkFJYixjQUFjO2tCQUwxQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDeEIsWUFBWSxFQUFFLENBQUMsaUJBQWlCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSxDQUFDLGlCQUFpQixDQUFDO2lCQUNyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJvd3Nlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5pbXBvcnQgeyBOZ3hzVGVzdENvbXBvbmVudCB9IGZyb20gJy4vbmd4cy10ZXN0LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtCcm93c2VyTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbTmd4c1Rlc3RDb21wb25lbnRdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtOZ3hzVGVzdENvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgTmd4c1Rlc3RNb2R1bGUge1xuICBwdWJsaWMgc3RhdGljIG5nRG9Cb290c3RyYXAoYXBwOiBBcHBsaWNhdGlvblJlZik6IHZvaWQge1xuICAgIGFwcC5ib290c3RyYXAoTmd4c1Rlc3RDb21wb25lbnQpO1xuICB9XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvaW50ZXJuYWxzL3Rlc3Rpbmcvc3JjL3N5bWJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmd4c01vZHVsZU9wdGlvbnMsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGVzdEJlZFN0YXRpYyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBTdGF0ZUNsYXNzIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBOZ3hzT3B0aW9uc1Rlc3Rpbmcge1xuICBzdGF0ZXM/OiBTdGF0ZUNsYXNzW107XG4gIG5neHNPcHRpb25zPzogTmd4c01vZHVsZU9wdGlvbnM7XG4gIGltcG9ydHM/OiBNb2R1bGVXaXRoUHJvdmlkZXJzPGFueT5bXTtcbiAgYmVmb3JlPzogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3hzVGVzdGluZyB7XG4gIHN0b3JlOiBTdG9yZTtcbiAgZ2V0VGVzdEJlZDogVGVzdEJlZFN0YXRpYztcbn1cbiJdfQ==
@@ -1,21 +0,0 @@
1
- import { isStateOperator } from './utils';
2
- export function patch(patchObject) {
3
- return function patchStateOperator(existing) {
4
- let clone = null;
5
- for (const k in patchObject) {
6
- const newValue = patchObject[k];
7
- const existingPropValue = existing[k];
8
- const newPropValue = isStateOperator(newValue)
9
- ? newValue(existingPropValue)
10
- : newValue;
11
- if (newPropValue !== existingPropValue) {
12
- if (!clone) {
13
- clone = Object.assign({}, existing);
14
- }
15
- clone[k] = newPropValue;
16
- }
17
- }
18
- return clone || existing;
19
- };
20
- }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9vcGVyYXRvcnMvc3JjL3BhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFNMUMsTUFBTSxVQUFVLEtBQUssQ0FDbkIsV0FBbUM7SUFFbkMsT0FBTyxTQUFTLGtCQUFrQixDQUFDLFFBQTBCO1FBQzNELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztRQUNqQixLQUFLLE1BQU0sQ0FBQyxJQUFJLFdBQVcsRUFBRTtZQUMzQixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQztnQkFDNUMsQ0FBQyxDQUFDLFFBQVEsQ0FBTSxpQkFBaUIsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUNiLElBQUksWUFBWSxLQUFLLGlCQUFpQixFQUFFO2dCQUN0QyxJQUFJLENBQUMsS0FBSyxFQUFFO29CQUNWLEtBQUsscUJBQWMsUUFBUyxDQUFFLENBQUM7aUJBQ2hDO2dCQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUM7YUFDekI7U0FDRjtRQUNELE9BQU8sS0FBSyxJQUFJLFFBQVEsQ0FBQztJQUMzQixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXhpc3RpbmdTdGF0ZSwgTm9JbmZlciwgU3RhdGVPcGVyYXRvciB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgaXNTdGF0ZU9wZXJhdG9yIH0gZnJvbSAnLi91dGlscyc7XG5cbnR5cGUgTm90VW5kZWZpbmVkPFQ+ID0gVCBleHRlbmRzIHVuZGVmaW5lZCA/IG5ldmVyIDogVDtcblxuZXhwb3J0IHR5cGUgybVQYXRjaFNwZWM8VD4gPSB7IFtQIGluIGtleW9mIFRdPzogVFtQXSB8IFN0YXRlT3BlcmF0b3I8Tm90VW5kZWZpbmVkPFRbUF0+PiB9O1xuXG5leHBvcnQgZnVuY3Rpb24gcGF0Y2g8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4+KFxuICBwYXRjaE9iamVjdDogTm9JbmZlcjzJtVBhdGNoU3BlYzxUPj5cbik6IFN0YXRlT3BlcmF0b3I8VD4ge1xuICByZXR1cm4gZnVuY3Rpb24gcGF0Y2hTdGF0ZU9wZXJhdG9yKGV4aXN0aW5nOiBFeGlzdGluZ1N0YXRlPFQ+KTogVCB7XG4gICAgbGV0IGNsb25lID0gbnVsbDtcbiAgICBmb3IgKGNvbnN0IGsgaW4gcGF0Y2hPYmplY3QpIHtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gcGF0Y2hPYmplY3Rba107XG4gICAgICBjb25zdCBleGlzdGluZ1Byb3BWYWx1ZSA9IGV4aXN0aW5nW2tdO1xuICAgICAgY29uc3QgbmV3UHJvcFZhbHVlID0gaXNTdGF0ZU9wZXJhdG9yKG5ld1ZhbHVlKVxuICAgICAgICA/IG5ld1ZhbHVlKDxhbnk+ZXhpc3RpbmdQcm9wVmFsdWUpXG4gICAgICAgIDogbmV3VmFsdWU7XG4gICAgICBpZiAobmV3UHJvcFZhbHVlICE9PSBleGlzdGluZ1Byb3BWYWx1ZSkge1xuICAgICAgICBpZiAoIWNsb25lKSB7XG4gICAgICAgICAgY2xvbmUgPSB7IC4uLig8YW55PmV4aXN0aW5nKSB9O1xuICAgICAgICB9XG4gICAgICAgIGNsb25lW2tdID0gbmV3UHJvcFZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2xvbmUgfHwgZXhpc3Rpbmc7XG4gIH07XG59XG4iXX0=
@@ -1,22 +0,0 @@
1
- /**
2
- * Init action
3
- */
4
- export class InitState {
5
- static get type() {
6
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
7
- return '@@INIT';
8
- }
9
- }
10
- /**
11
- * Update action
12
- */
13
- export class UpdateState {
14
- constructor(addedStates) {
15
- this.addedStates = addedStates;
16
- }
17
- static get type() {
18
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
19
- return '@@UPDATE_STATE';
20
- }
21
- }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9hY3Rpb25zL2FjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sU0FBUztJQUNwQixNQUFNLEtBQUssSUFBSTtRQUNiLHNJQUFzSTtRQUN0SSxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBTXRCLFlBQW1CLFdBQXlCO1FBQXpCLGdCQUFXLEdBQVgsV0FBVyxDQUFjO0lBQUcsQ0FBQztJQUxoRCxNQUFNLEtBQUssSUFBSTtRQUNiLHNJQUFzSTtRQUN0SSxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWluT2JqZWN0IH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuLyoqXG4gKiBJbml0IGFjdGlvblxuICovXG5leHBvcnQgY2xhc3MgSW5pdFN0YXRlIHtcbiAgc3RhdGljIGdldCB0eXBlKCkge1xuICAgIC8vIE5PVEU6IE5vdCBuZWNlc3NhcnkgdG8gZGVjbGFyZSB0aGUgdHlwZSBpbiB0aGlzIHdheSBpbiB5b3VyIGNvZGUuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbmd4cy9zdG9yZS9wdWxsLzY0NCNpc3N1ZWNvbW1lbnQtNDM2MDAzMTM4XG4gICAgcmV0dXJuICdAQElOSVQnO1xuICB9XG59XG5cbi8qKlxuICogVXBkYXRlIGFjdGlvblxuICovXG5leHBvcnQgY2xhc3MgVXBkYXRlU3RhdGUge1xuICBzdGF0aWMgZ2V0IHR5cGUoKSB7XG4gICAgLy8gTk9URTogTm90IG5lY2Vzc2FyeSB0byBkZWNsYXJlIHRoZSB0eXBlIGluIHRoaXMgd2F5IGluIHlvdXIgY29kZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzL3N0b3JlL3B1bGwvNjQ0I2lzc3VlY29tbWVudC00MzYwMDMxMzhcbiAgICByZXR1cm4gJ0BAVVBEQVRFX1NUQVRFJztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBhZGRlZFN0YXRlcz86IFBsYWluT2JqZWN0KSB7fVxufVxuIl19
@@ -1,36 +0,0 @@
1
- export function throwStateNameError(name) {
2
- throw new Error(`${name} is not a valid state name. It needs to be a valid object property name.`);
3
- }
4
- export function throwStateNamePropertyError() {
5
- throw new Error(`States must register a 'name' property.`);
6
- }
7
- export function throwStateUniqueError(current, newName, oldName) {
8
- throw new Error(`State name '${current}' from ${newName} already exists in ${oldName}.`);
9
- }
10
- export function throwStateDecoratorError(name) {
11
- throw new Error(`States must be decorated with @State() decorator, but "${name}" isn't.`);
12
- }
13
- export function throwActionDecoratorError() {
14
- throw new Error('@Action() decorator cannot be used with static methods.');
15
- }
16
- export function throwSelectorDecoratorError() {
17
- throw new Error('Selectors only work on methods.');
18
- }
19
- export function getZoneWarningMessage() {
20
- return ('Your application was bootstrapped with nooped zone and your execution strategy requires an actual NgZone!\n' +
21
- 'Please set the value of the executionStrategy property to NoopNgxsExecutionStrategy.\n' +
22
- 'NgxsModule.forRoot(states, { executionStrategy: NoopNgxsExecutionStrategy })');
23
- }
24
- export function getUndecoratedStateInIvyWarningMessage(name) {
25
- return `'${name}' class should be decorated with @Injectable() right after the @State() decorator`;
26
- }
27
- export function throwSelectFactoryNotConnectedError() {
28
- throw new Error('You have forgotten to import the NGXS module!');
29
- }
30
- export function throwPatchingArrayError() {
31
- throw new Error('Patching arrays is not supported.');
32
- }
33
- export function throwPatchingPrimitiveError() {
34
- throw new Error('Patching primitives is not supported.');
35
- }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL2NvbmZpZ3MvbWVzc2FnZXMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxJQUFZO0lBQzlDLE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxJQUFJLDBFQUEwRSxDQUNsRixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkI7SUFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLE9BQWUsRUFDZixPQUFlLEVBQ2YsT0FBZTtJQUVmLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxPQUFPLFVBQVUsT0FBTyxzQkFBc0IsT0FBTyxHQUFHLENBQUMsQ0FBQztBQUMzRixDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLElBQVk7SUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQywwREFBMEQsSUFBSSxVQUFVLENBQUMsQ0FBQztBQUM1RixDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QjtJQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkI7SUFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE9BQU8sQ0FDTCw2R0FBNkc7UUFDN0csd0ZBQXdGO1FBQ3hGLDhFQUE4RSxDQUMvRSxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxzQ0FBc0MsQ0FBQyxJQUFZO0lBQ2pFLE9BQU8sSUFBSSxJQUFJLG1GQUFtRixDQUFDO0FBQ3JHLENBQUM7QUFFRCxNQUFNLFVBQVUsbUNBQW1DO0lBQ2pELE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztBQUNuRSxDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QjtJQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkI7SUFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gdGhyb3dTdGF0ZU5hbWVFcnJvcihuYW1lOiBzdHJpbmcpOiBuZXZlciB7XG4gIHRocm93IG5ldyBFcnJvcihcbiAgICBgJHtuYW1lfSBpcyBub3QgYSB2YWxpZCBzdGF0ZSBuYW1lLiBJdCBuZWVkcyB0byBiZSBhIHZhbGlkIG9iamVjdCBwcm9wZXJ0eSBuYW1lLmBcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93U3RhdGVOYW1lUHJvcGVydHlFcnJvcigpOiBuZXZlciB7XG4gIHRocm93IG5ldyBFcnJvcihgU3RhdGVzIG11c3QgcmVnaXN0ZXIgYSAnbmFtZScgcHJvcGVydHkuYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1N0YXRlVW5pcXVlRXJyb3IoXG4gIGN1cnJlbnQ6IHN0cmluZyxcbiAgbmV3TmFtZTogc3RyaW5nLFxuICBvbGROYW1lOiBzdHJpbmdcbik6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IEVycm9yKGBTdGF0ZSBuYW1lICcke2N1cnJlbnR9JyBmcm9tICR7bmV3TmFtZX0gYWxyZWFkeSBleGlzdHMgaW4gJHtvbGROYW1lfS5gKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93U3RhdGVEZWNvcmF0b3JFcnJvcihuYW1lOiBzdHJpbmcpOiBuZXZlciB7XG4gIHRocm93IG5ldyBFcnJvcihgU3RhdGVzIG11c3QgYmUgZGVjb3JhdGVkIHdpdGggQFN0YXRlKCkgZGVjb3JhdG9yLCBidXQgXCIke25hbWV9XCIgaXNuJ3QuYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0FjdGlvbkRlY29yYXRvckVycm9yKCk6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdAQWN0aW9uKCkgZGVjb3JhdG9yIGNhbm5vdCBiZSB1c2VkIHdpdGggc3RhdGljIG1ldGhvZHMuJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1NlbGVjdG9yRGVjb3JhdG9yRXJyb3IoKTogbmV2ZXIge1xuICB0aHJvdyBuZXcgRXJyb3IoJ1NlbGVjdG9ycyBvbmx5IHdvcmsgb24gbWV0aG9kcy4nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFpvbmVXYXJuaW5nTWVzc2FnZSgpOiBzdHJpbmcge1xuICByZXR1cm4gKFxuICAgICdZb3VyIGFwcGxpY2F0aW9uIHdhcyBib290c3RyYXBwZWQgd2l0aCBub29wZWQgem9uZSBhbmQgeW91ciBleGVjdXRpb24gc3RyYXRlZ3kgcmVxdWlyZXMgYW4gYWN0dWFsIE5nWm9uZSFcXG4nICtcbiAgICAnUGxlYXNlIHNldCB0aGUgdmFsdWUgb2YgdGhlIGV4ZWN1dGlvblN0cmF0ZWd5IHByb3BlcnR5IHRvIE5vb3BOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kuXFxuJyArXG4gICAgJ05neHNNb2R1bGUuZm9yUm9vdChzdGF0ZXMsIHsgZXhlY3V0aW9uU3RyYXRlZ3k6IE5vb3BOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kgfSknXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVbmRlY29yYXRlZFN0YXRlSW5JdnlXYXJuaW5nTWVzc2FnZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCcke25hbWV9JyBjbGFzcyBzaG91bGQgYmUgZGVjb3JhdGVkIHdpdGggQEluamVjdGFibGUoKSByaWdodCBhZnRlciB0aGUgQFN0YXRlKCkgZGVjb3JhdG9yYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93U2VsZWN0RmFjdG9yeU5vdENvbm5lY3RlZEVycm9yKCk6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdZb3UgaGF2ZSBmb3Jnb3R0ZW4gdG8gaW1wb3J0IHRoZSBOR1hTIG1vZHVsZSEnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93UGF0Y2hpbmdBcnJheUVycm9yKCk6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdQYXRjaGluZyBhcnJheXMgaXMgbm90IHN1cHBvcnRlZC4nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93UGF0Y2hpbmdQcmltaXRpdmVFcnJvcigpOiBuZXZlciB7XG4gIHRocm93IG5ldyBFcnJvcignUGF0Y2hpbmcgcHJpbWl0aXZlcyBpcyBub3Qgc3VwcG9ydGVkLicpO1xufVxuIl19
@@ -1,32 +0,0 @@
1
- import { throwSelectorDecoratorError } from '../../configs/messages.config';
2
- import { createSelector } from '../../selectors/create-selector';
3
- export function Selector(selectors) {
4
- return (target, key, descriptor) => {
5
- descriptor || (descriptor = Object.getOwnPropertyDescriptor(target, key));
6
- const originalFn = descriptor === null || descriptor === void 0 ? void 0 : descriptor.value;
7
- // Caretaker note: we have still left the `typeof` condition in order to avoid
8
- // creating a breaking change for projects that still use the View Engine.
9
- if (typeof ngDevMode === 'undefined' || ngDevMode) {
10
- if (originalFn && typeof originalFn !== 'function') {
11
- throwSelectorDecoratorError();
12
- }
13
- }
14
- const memoizedFn = createSelector(selectors, originalFn, {
15
- containerClass: target,
16
- selectorName: key.toString(),
17
- getSelectorOptions() {
18
- return {};
19
- },
20
- });
21
- const newDescriptor = {
22
- configurable: true,
23
- get() {
24
- return memoizedFn;
25
- },
26
- };
27
- // Add hidden property to descriptor
28
- newDescriptor['originalFn'] = originalFn;
29
- return newDescriptor;
30
- };
31
- }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvZGVjb3JhdG9ycy9zZWxlY3Rvci9zZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFhakUsTUFBTSxVQUFVLFFBQVEsQ0FBNkIsU0FBZTtJQUNsRSxPQUFPLENBQ0wsTUFBVyxFQUNYLEdBQW9CLEVBQ3BCLFVBQXVELEVBQ0gsRUFBRTtRQUN0RCxVQUFVLEtBQVYsVUFBVSxHQUFLLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFFLEVBQUM7UUFFN0QsTUFBTSxVQUFVLEdBQUcsVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLEtBQUssQ0FBQztRQUVyQyw4RUFBOEU7UUFDOUUsMEVBQTBFO1FBQzFFLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsRUFBRTtZQUNqRCxJQUFJLFVBQVUsSUFBSSxPQUFPLFVBQVUsS0FBSyxVQUFVLEVBQUU7Z0JBQ2xELDJCQUEyQixFQUFFLENBQUM7YUFDL0I7U0FDRjtRQUVELE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsVUFBaUIsRUFBRTtZQUM5RCxjQUFjLEVBQUUsTUFBTTtZQUN0QixZQUFZLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUM1QixrQkFBa0I7Z0JBQ2hCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztTQUNGLENBQUMsQ0FBQztRQUNILE1BQU0sYUFBYSxHQUFHO1lBQ3BCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLEdBQUc7Z0JBQ0QsT0FBTyxVQUFVLENBQUM7WUFDcEIsQ0FBQztTQUNGLENBQUM7UUFDRixvQ0FBb0M7UUFDOUIsYUFBYyxDQUFDLFlBQVksQ0FBQyxHQUFHLFVBQVUsQ0FBQztRQUNoRCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGhyb3dTZWxlY3RvckRlY29yYXRvckVycm9yIH0gZnJvbSAnLi4vLi4vY29uZmlncy9tZXNzYWdlcy5jb25maWcnO1xuaW1wb3J0IHsgU2VsZWN0b3JEZWYgfSBmcm9tICcuLi8uLi9zZWxlY3RvcnMnO1xuaW1wb3J0IHsgY3JlYXRlU2VsZWN0b3IgfSBmcm9tICcuLi8uLi9zZWxlY3RvcnMvY3JlYXRlLXNlbGVjdG9yJztcbmltcG9ydCB7IFNlbGVjdG9yU3BlYywgU2VsZWN0b3JUeXBlIH0gZnJvbSAnLi9zeW1ib2xzJztcblxuLyoqXG4gKiBEZWNvcmF0b3IgZm9yIGNyZWF0aW5nIGEgc3RhdGUgc2VsZWN0b3IgZm9yIHRoZSBjdXJyZW50IHN0YXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gU2VsZWN0b3IoKTogU2VsZWN0b3JUeXBlPHVua25vd24+O1xuXG4vKipcbiAqIERlY29yYXRvciBmb3IgY3JlYXRpbmcgYSBzdGF0ZSBzZWxlY3RvciBmcm9tIHRoZSBwcm92aWRlZCBzZWxlY3RvcnMgKGFuZCBvcHRpb25hbGx5IHRoZSBjb250YWluZXIgU3RhdGUsIGRlcGVuZGluZyBvbiB0aGUgYXBwbGljYWJsZSBTZWxlY3RvciBPcHRpb25zKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdG9yPFQgZXh0ZW5kcyBTZWxlY3RvckRlZjxhbnk+PihzZWxlY3RvcnM6IFRbXSk6IFNlbGVjdG9yVHlwZTxUPjtcblxuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdG9yPFQgZXh0ZW5kcyBTZWxlY3RvckRlZjxhbnk+PihzZWxlY3RvcnM/OiBUW10pOiBTZWxlY3RvclR5cGU8VD4ge1xuICByZXR1cm4gPFU+KFxuICAgIHRhcmdldDogYW55LFxuICAgIGtleTogc3RyaW5nIHwgc3ltYm9sLFxuICAgIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPFNlbGVjdG9yU3BlYzxULCBVPj5cbiAgKTogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8U2VsZWN0b3JTcGVjPFQsIFU+PiB8IHZvaWQgPT4ge1xuICAgIGRlc2NyaXB0b3IgfHw9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpITtcblxuICAgIGNvbnN0IG9yaWdpbmFsRm4gPSBkZXNjcmlwdG9yPy52YWx1ZTtcblxuICAgIC8vIENhcmV0YWtlciBub3RlOiB3ZSBoYXZlIHN0aWxsIGxlZnQgdGhlIGB0eXBlb2ZgIGNvbmRpdGlvbiBpbiBvcmRlciB0byBhdm9pZFxuICAgIC8vIGNyZWF0aW5nIGEgYnJlYWtpbmcgY2hhbmdlIGZvciBwcm9qZWN0cyB0aGF0IHN0aWxsIHVzZSB0aGUgVmlldyBFbmdpbmUuXG4gICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgaWYgKG9yaWdpbmFsRm4gJiYgdHlwZW9mIG9yaWdpbmFsRm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3dTZWxlY3RvckRlY29yYXRvckVycm9yKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbWVtb2l6ZWRGbiA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdG9ycywgb3JpZ2luYWxGbiBhcyBhbnksIHtcbiAgICAgIGNvbnRhaW5lckNsYXNzOiB0YXJnZXQsXG4gICAgICBzZWxlY3Rvck5hbWU6IGtleS50b1N0cmluZygpLFxuICAgICAgZ2V0U2VsZWN0b3JPcHRpb25zKCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnN0IG5ld0Rlc2NyaXB0b3IgPSB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBnZXQoKSB7XG4gICAgICAgIHJldHVybiBtZW1vaXplZEZuO1xuICAgICAgfSxcbiAgICB9O1xuICAgIC8vIEFkZCBoaWRkZW4gcHJvcGVydHkgdG8gZGVzY3JpcHRvclxuICAgICg8YW55Pm5ld0Rlc2NyaXB0b3IpWydvcmlnaW5hbEZuJ10gPSBvcmlnaW5hbEZuO1xuICAgIHJldHVybiBuZXdEZXNjcmlwdG9yO1xuICB9O1xufVxuIl19
@@ -1,38 +0,0 @@
1
- import { ensureStoreMetadata } from '../internal/internals';
2
- import { META_KEY, META_OPTIONS_KEY } from '../symbols';
3
- import { StoreValidators } from '../utils/store-validators';
4
- /**
5
- * Decorates a class with ngxs state information.
6
- */
7
- export function State(options) {
8
- function getStateOptions(inheritedStateClass) {
9
- const inheritanceOptions = inheritedStateClass[META_OPTIONS_KEY] || {};
10
- return Object.assign(Object.assign({}, inheritanceOptions), options);
11
- }
12
- function mutateMetaData(params) {
13
- const { meta, inheritedStateClass, optionsWithInheritance } = params;
14
- const { children, defaults, name } = optionsWithInheritance;
15
- const stateName = typeof name === 'string' ? name : (name && name.getName()) || null;
16
- // Caretaker note: we have still left the `typeof` condition in order to avoid
17
- // creating a breaking change for projects that still use the View Engine.
18
- if (typeof ngDevMode === 'undefined' || ngDevMode) {
19
- StoreValidators.checkThatStateIsNamedCorrectly(stateName);
20
- }
21
- if (inheritedStateClass.hasOwnProperty(META_KEY)) {
22
- const inheritedMeta = inheritedStateClass[META_KEY] || {};
23
- meta.actions = Object.assign(Object.assign({}, meta.actions), inheritedMeta.actions);
24
- }
25
- meta.children = children;
26
- meta.defaults = defaults;
27
- meta.name = stateName;
28
- }
29
- return (target) => {
30
- const stateClass = target;
31
- const meta = ensureStoreMetadata(stateClass);
32
- const inheritedStateClass = Object.getPrototypeOf(stateClass);
33
- const optionsWithInheritance = getStateOptions(inheritedStateClass);
34
- mutateMetaData({ meta, inheritedStateClass, optionsWithInheritance });
35
- stateClass[META_OPTIONS_KEY] = optionsWithInheritance;
36
- };
37
- }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvZGVjb3JhdG9ycy9zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsbUJBQW1CLEVBQXFDLE1BQU0sdUJBQXVCLENBQUM7QUFDL0YsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBZ0IsTUFBTSxZQUFZLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBUTVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLEtBQUssQ0FBSSxPQUF3QjtJQUMvQyxTQUFTLGVBQWUsQ0FBQyxtQkFBdUM7UUFDOUQsTUFBTSxrQkFBa0IsR0FDdEIsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUMsT0FBTyxnQ0FBSyxrQkFBa0IsR0FBSyxPQUFPLENBQXFCLENBQUM7SUFDbEUsQ0FBQztJQUVELFNBQVMsY0FBYyxDQUFDLE1BQTRCO1FBQ2xELE1BQU0sRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDckUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEdBQUcsc0JBQXNCLENBQUM7UUFDNUQsTUFBTSxTQUFTLEdBQ2IsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQztRQUVyRSw4RUFBOEU7UUFDOUUsMEVBQTBFO1FBQzFFLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsRUFBRTtZQUNqRCxlQUFlLENBQUMsOEJBQThCLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDM0Q7UUFFRCxJQUFJLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNoRCxNQUFNLGFBQWEsR0FBMkIsbUJBQW1CLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xGLElBQUksQ0FBQyxPQUFPLG1DQUFRLElBQUksQ0FBQyxPQUFPLEdBQUssYUFBYSxDQUFDLE9BQU8sQ0FBRSxDQUFDO1NBQzlEO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFrQixFQUFRLEVBQUU7UUFDbEMsTUFBTSxVQUFVLEdBQXVCLE1BQU0sQ0FBQztRQUM5QyxNQUFNLElBQUksR0FBa0IsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUQsTUFBTSxtQkFBbUIsR0FBdUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsRixNQUFNLHNCQUFzQixHQUFvQixlQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNyRixjQUFjLENBQUMsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLHNCQUFzQixDQUFDO0lBQ3hELENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGF0ZUNsYXNzIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuaW1wb3J0IHsgZW5zdXJlU3RvcmVNZXRhZGF0YSwgTWV0YURhdGFNb2RlbCwgU3RhdGVDbGFzc0ludGVybmFsIH0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcbmltcG9ydCB7IE1FVEFfS0VZLCBNRVRBX09QVElPTlNfS0VZLCBTdG9yZU9wdGlvbnMgfSBmcm9tICcuLi9zeW1ib2xzJztcbmltcG9ydCB7IFN0b3JlVmFsaWRhdG9ycyB9IGZyb20gJy4uL3V0aWxzL3N0b3JlLXZhbGlkYXRvcnMnO1xuXG5pbnRlcmZhY2UgTXV0YXRlTWV0YU9wdGlvbnM8VD4ge1xuICBtZXRhOiBNZXRhRGF0YU1vZGVsO1xuICBpbmhlcml0ZWRTdGF0ZUNsYXNzOiBTdGF0ZUNsYXNzSW50ZXJuYWw7XG4gIG9wdGlvbnNXaXRoSW5oZXJpdGFuY2U6IFN0b3JlT3B0aW9uczxUPjtcbn1cblxuLyoqXG4gKiBEZWNvcmF0ZXMgYSBjbGFzcyB3aXRoIG5neHMgc3RhdGUgaW5mb3JtYXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTdGF0ZTxUPihvcHRpb25zOiBTdG9yZU9wdGlvbnM8VD4pIHtcbiAgZnVuY3Rpb24gZ2V0U3RhdGVPcHRpb25zKGluaGVyaXRlZFN0YXRlQ2xhc3M6IFN0YXRlQ2xhc3NJbnRlcm5hbCk6IFN0b3JlT3B0aW9uczxUPiB7XG4gICAgY29uc3QgaW5oZXJpdGFuY2VPcHRpb25zOiBQYXJ0aWFsPFN0b3JlT3B0aW9uczxUPj4gPVxuICAgICAgaW5oZXJpdGVkU3RhdGVDbGFzc1tNRVRBX09QVElPTlNfS0VZXSB8fCB7fTtcbiAgICByZXR1cm4geyAuLi5pbmhlcml0YW5jZU9wdGlvbnMsIC4uLm9wdGlvbnMgfSBhcyBTdG9yZU9wdGlvbnM8VD47XG4gIH1cblxuICBmdW5jdGlvbiBtdXRhdGVNZXRhRGF0YShwYXJhbXM6IE11dGF0ZU1ldGFPcHRpb25zPFQ+KTogdm9pZCB7XG4gICAgY29uc3QgeyBtZXRhLCBpbmhlcml0ZWRTdGF0ZUNsYXNzLCBvcHRpb25zV2l0aEluaGVyaXRhbmNlIH0gPSBwYXJhbXM7XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgZGVmYXVsdHMsIG5hbWUgfSA9IG9wdGlvbnNXaXRoSW5oZXJpdGFuY2U7XG4gICAgY29uc3Qgc3RhdGVOYW1lOiBzdHJpbmcgfCBudWxsID1cbiAgICAgIHR5cGVvZiBuYW1lID09PSAnc3RyaW5nJyA/IG5hbWUgOiAobmFtZSAmJiBuYW1lLmdldE5hbWUoKSkgfHwgbnVsbDtcblxuICAgIC8vIENhcmV0YWtlciBub3RlOiB3ZSBoYXZlIHN0aWxsIGxlZnQgdGhlIGB0eXBlb2ZgIGNvbmRpdGlvbiBpbiBvcmRlciB0byBhdm9pZFxuICAgIC8vIGNyZWF0aW5nIGEgYnJlYWtpbmcgY2hhbmdlIGZvciBwcm9qZWN0cyB0aGF0IHN0aWxsIHVzZSB0aGUgVmlldyBFbmdpbmUuXG4gICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgU3RvcmVWYWxpZGF0b3JzLmNoZWNrVGhhdFN0YXRlSXNOYW1lZENvcnJlY3RseShzdGF0ZU5hbWUpO1xuICAgIH1cblxuICAgIGlmIChpbmhlcml0ZWRTdGF0ZUNsYXNzLmhhc093blByb3BlcnR5KE1FVEFfS0VZKSkge1xuICAgICAgY29uc3QgaW5oZXJpdGVkTWV0YTogUGFydGlhbDxNZXRhRGF0YU1vZGVsPiA9IGluaGVyaXRlZFN0YXRlQ2xhc3NbTUVUQV9LRVldIHx8IHt9O1xuICAgICAgbWV0YS5hY3Rpb25zID0geyAuLi5tZXRhLmFjdGlvbnMsIC4uLmluaGVyaXRlZE1ldGEuYWN0aW9ucyB9O1xuICAgIH1cblxuICAgIG1ldGEuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICBtZXRhLmRlZmF1bHRzID0gZGVmYXVsdHM7XG4gICAgbWV0YS5uYW1lID0gc3RhdGVOYW1lO1xuICB9XG5cbiAgcmV0dXJuICh0YXJnZXQ6IFN0YXRlQ2xhc3MpOiB2b2lkID0+IHtcbiAgICBjb25zdCBzdGF0ZUNsYXNzOiBTdGF0ZUNsYXNzSW50ZXJuYWwgPSB0YXJnZXQ7XG4gICAgY29uc3QgbWV0YTogTWV0YURhdGFNb2RlbCA9IGVuc3VyZVN0b3JlTWV0YWRhdGEoc3RhdGVDbGFzcyk7XG4gICAgY29uc3QgaW5oZXJpdGVkU3RhdGVDbGFzczogU3RhdGVDbGFzc0ludGVybmFsID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHN0YXRlQ2xhc3MpO1xuICAgIGNvbnN0IG9wdGlvbnNXaXRoSW5oZXJpdGFuY2U6IFN0b3JlT3B0aW9uczxUPiA9IGdldFN0YXRlT3B0aW9ucyhpbmhlcml0ZWRTdGF0ZUNsYXNzKTtcbiAgICBtdXRhdGVNZXRhRGF0YSh7IG1ldGEsIGluaGVyaXRlZFN0YXRlQ2xhc3MsIG9wdGlvbnNXaXRoSW5oZXJpdGFuY2UgfSk7XG4gICAgc3RhdGVDbGFzc1tNRVRBX09QVElPTlNfS0VZXSA9IG9wdGlvbnNXaXRoSW5oZXJpdGFuY2U7XG4gIH07XG59XG4iXX0=
@@ -1,23 +0,0 @@
1
- import { InjectionToken, inject, INJECTOR, ɵglobal } from '@angular/core';
2
- import { NoopNgxsExecutionStrategy } from './noop-ngxs-execution-strategy';
3
- import { DispatchOutsideZoneNgxsExecutionStrategy } from './dispatch-outside-zone-ngxs-execution-strategy';
4
- /**
5
- * The strategy that might be provided by users through `options.executionStrategy`.
6
- */
7
- export const USER_PROVIDED_NGXS_EXECUTION_STRATEGY = new InjectionToken('USER_PROVIDED_NGXS_EXECUTION_STRATEGY');
8
- /*
9
- * Internal execution strategy injection token
10
- */
11
- export const NGXS_EXECUTION_STRATEGY = new InjectionToken('NGXS_EXECUTION_STRATEGY', {
12
- providedIn: 'root',
13
- factory: () => {
14
- const injector = inject(INJECTOR);
15
- const executionStrategy = injector.get(USER_PROVIDED_NGXS_EXECUTION_STRATEGY);
16
- return executionStrategy
17
- ? injector.get(executionStrategy)
18
- : injector.get(typeof ɵglobal.Zone !== 'undefined'
19
- ? DispatchOutsideZoneNgxsExecutionStrategy
20
- : NoopNgxsExecutionStrategy);
21
- }
22
- });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9leGVjdXRpb24vc3ltYm9scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQVEsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRTNHOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUcsSUFBSSxjQUFjLENBRXJFLHVDQUF1QyxDQUFDLENBQUM7QUFFM0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FDdkQseUJBQXlCLEVBQ3pCO0lBQ0UsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNaLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUM5RSxPQUFPLGlCQUFpQjtZQUN0QixDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztZQUNqQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FDVixPQUFPLE9BQU8sQ0FBQyxJQUFJLEtBQUssV0FBVztnQkFDakMsQ0FBQyxDQUFDLHdDQUF3QztnQkFDMUMsQ0FBQyxDQUFDLHlCQUF5QixDQUM5QixDQUFDO0lBQ1IsQ0FBQztDQUNGLENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBpbmplY3QsIElOSkVDVE9SLCBUeXBlLCDJtWdsb2JhbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOb29wTmd4c0V4ZWN1dGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9ub29wLW5neHMtZXhlY3V0aW9uLXN0cmF0ZWd5JztcbmltcG9ydCB7IERpc3BhdGNoT3V0c2lkZVpvbmVOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL2Rpc3BhdGNoLW91dHNpZGUtem9uZS1uZ3hzLWV4ZWN1dGlvbi1zdHJhdGVneSc7XG5cbi8qKlxuICogVGhlIHN0cmF0ZWd5IHRoYXQgbWlnaHQgYmUgcHJvdmlkZWQgYnkgdXNlcnMgdGhyb3VnaCBgb3B0aW9ucy5leGVjdXRpb25TdHJhdGVneWAuXG4gKi9cbmV4cG9ydCBjb25zdCBVU0VSX1BST1ZJREVEX05HWFNfRVhFQ1VUSU9OX1NUUkFURUdZID0gbmV3IEluamVjdGlvblRva2VuPFxuICBUeXBlPE5neHNFeGVjdXRpb25TdHJhdGVneT4gfCB1bmRlZmluZWRcbj4oJ1VTRVJfUFJPVklERURfTkdYU19FWEVDVVRJT05fU1RSQVRFR1knKTtcblxuLypcbiAqIEludGVybmFsIGV4ZWN1dGlvbiBzdHJhdGVneSBpbmplY3Rpb24gdG9rZW5cbiAqL1xuZXhwb3J0IGNvbnN0IE5HWFNfRVhFQ1VUSU9OX1NUUkFURUdZID0gbmV3IEluamVjdGlvblRva2VuPE5neHNFeGVjdXRpb25TdHJhdGVneT4oXG4gICdOR1hTX0VYRUNVVElPTl9TVFJBVEVHWScsXG4gIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogKCkgPT4ge1xuICAgICAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSU5KRUNUT1IpO1xuICAgICAgY29uc3QgZXhlY3V0aW9uU3RyYXRlZ3kgPSBpbmplY3Rvci5nZXQoVVNFUl9QUk9WSURFRF9OR1hTX0VYRUNVVElPTl9TVFJBVEVHWSk7XG4gICAgICByZXR1cm4gZXhlY3V0aW9uU3RyYXRlZ3lcbiAgICAgICAgPyBpbmplY3Rvci5nZXQoZXhlY3V0aW9uU3RyYXRlZ3kpXG4gICAgICAgIDogaW5qZWN0b3IuZ2V0KFxuICAgICAgICAgICAgdHlwZW9mIMm1Z2xvYmFsLlpvbmUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgICAgICAgID8gRGlzcGF0Y2hPdXRzaWRlWm9uZU5neHNFeGVjdXRpb25TdHJhdGVneVxuICAgICAgICAgICAgICA6IE5vb3BOZ3hzRXhlY3V0aW9uU3RyYXRlZ3lcbiAgICAgICAgICApO1xuICAgIH1cbiAgfVxuKTtcblxuLypcbiAqIEV4ZWN1dGlvbiBzdHJhdGVneSBpbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kge1xuICBlbnRlcjxUPihmdW5jOiAoKSA9PiBUKTogVDtcbiAgbGVhdmU8VD4oZnVuYzogKCkgPT4gVCk6IFQ7XG59XG4iXX0=
@@ -1,248 +0,0 @@
1
- import { META_KEY, META_OPTIONS_KEY, SELECTOR_META_KEY } from '../symbols';
2
- /**
3
- * Ensures metadata is attached to the class and returns it.
4
- *
5
- * @ignore
6
- */
7
- export function ensureStoreMetadata(target) {
8
- if (!target.hasOwnProperty(META_KEY)) {
9
- const defaultMetadata = {
10
- name: null,
11
- actions: {},
12
- defaults: {},
13
- path: null,
14
- makeRootSelector(context) {
15
- return context.getStateGetter(defaultMetadata.name);
16
- },
17
- children: []
18
- };
19
- Object.defineProperty(target, META_KEY, { value: defaultMetadata });
20
- }
21
- return getStoreMetadata(target);
22
- }
23
- /**
24
- * Get the metadata attached to the state class if it exists.
25
- *
26
- * @ignore
27
- */
28
- export function getStoreMetadata(target) {
29
- return target[META_KEY];
30
- }
31
- /**
32
- * Ensures metadata is attached to the selector and returns it.
33
- *
34
- * @ignore
35
- */
36
- export function ensureSelectorMetadata(target) {
37
- if (!target.hasOwnProperty(SELECTOR_META_KEY)) {
38
- const defaultMetadata = {
39
- makeRootSelector: null,
40
- originalFn: null,
41
- containerClass: null,
42
- selectorName: null,
43
- getSelectorOptions: () => ({})
44
- };
45
- Object.defineProperty(target, SELECTOR_META_KEY, { value: defaultMetadata });
46
- }
47
- return getSelectorMetadata(target);
48
- }
49
- /**
50
- * Get the metadata attached to the selector if it exists.
51
- *
52
- * @ignore
53
- */
54
- export function getSelectorMetadata(target) {
55
- return target[SELECTOR_META_KEY];
56
- }
57
- /**
58
- * Get a deeply nested value. Example:
59
- *
60
- * getValue({ foo: bar: [] }, 'foo.bar') //=> []
61
- *
62
- * Note: This is not as fast as the `fastPropGetter` but is strict Content Security Policy compliant.
63
- * See perf hit: https://jsperf.com/fast-value-getter-given-path/1
64
- *
65
- * @ignore
66
- */
67
- function compliantPropGetter(paths) {
68
- const copyOfPaths = paths.slice();
69
- return obj => copyOfPaths.reduce((acc, part) => acc && acc[part], obj);
70
- }
71
- /**
72
- * The generated function is faster than:
73
- * - pluck (Observable operator)
74
- * - memoize
75
- *
76
- * @ignore
77
- */
78
- function fastPropGetter(paths) {
79
- const segments = paths;
80
- let seg = 'store.' + segments[0];
81
- let i = 0;
82
- const l = segments.length;
83
- let expr = seg;
84
- while (++i < l) {
85
- expr = expr + ' && ' + (seg = seg + '.' + segments[i]);
86
- }
87
- const fn = new Function('store', 'return ' + expr + ';');
88
- return fn;
89
- }
90
- /**
91
- * Get a deeply nested value. Example:
92
- *
93
- * getValue({ foo: bar: [] }, 'foo.bar') //=> []
94
- *
95
- * @ignore
96
- */
97
- export function propGetter(paths, config) {
98
- if (config && config.compatibility && config.compatibility.strictContentSecurityPolicy) {
99
- return compliantPropGetter(paths);
100
- }
101
- else {
102
- return fastPropGetter(paths);
103
- }
104
- }
105
- /**
106
- * Given an array of states, it will return a object graph. Example:
107
- * const states = [
108
- * Cart,
109
- * CartSaved,
110
- * CartSavedItems
111
- * ]
112
- *
113
- * would return:
114
- *
115
- * const graph = {
116
- * cart: ['saved'],
117
- * saved: ['items'],
118
- * items: []
119
- * };
120
- *
121
- * @ignore
122
- */
123
- export function buildGraph(stateClasses) {
124
- const findName = (stateClass) => {
125
- const meta = stateClasses.find(g => g === stateClass);
126
- // Caretaker note: we have still left the `typeof` condition in order to avoid
127
- // creating a breaking change for projects that still use the View Engine.
128
- if ((typeof ngDevMode === 'undefined' || ngDevMode) && !meta) {
129
- throw new Error(`Child state not found: ${stateClass}. \r\nYou may have forgotten to add states to module`);
130
- }
131
- return meta[META_KEY].name;
132
- };
133
- return stateClasses.reduce((result, stateClass) => {
134
- const { name, children } = stateClass[META_KEY];
135
- result[name] = (children || []).map(findName);
136
- return result;
137
- }, {});
138
- }
139
- /**
140
- * Given a states array, returns object graph
141
- * returning the name and state metadata. Example:
142
- *
143
- * const graph = {
144
- * cart: { metadata }
145
- * };
146
- *
147
- * @ignore
148
- */
149
- export function nameToState(states) {
150
- return states.reduce((result, stateClass) => {
151
- const meta = stateClass[META_KEY];
152
- result[meta.name] = stateClass;
153
- return result;
154
- }, {});
155
- }
156
- /**
157
- * Given a object relationship graph will return the full path
158
- * for the child items. Example:
159
- *
160
- * const graph = {
161
- * cart: ['saved'],
162
- * saved: ['items'],
163
- * items: []
164
- * };
165
- *
166
- * would return:
167
- *
168
- * const r = {
169
- * cart: 'cart',
170
- * saved: 'cart.saved',
171
- * items: 'cart.saved.items'
172
- * };
173
- *
174
- * @ignore
175
- */
176
- export function findFullParentPath(obj, newObj = {}) {
177
- const visit = (child, keyToFind) => {
178
- for (const key in child) {
179
- if (child.hasOwnProperty(key) && child[key].indexOf(keyToFind) >= 0) {
180
- const parent = visit(child, key);
181
- return parent !== null ? `${parent}.${key}` : key;
182
- }
183
- }
184
- return null;
185
- };
186
- for (const key in obj) {
187
- if (obj.hasOwnProperty(key)) {
188
- const parent = visit(obj, key);
189
- newObj[key] = parent ? `${parent}.${key}` : key;
190
- }
191
- }
192
- return newObj;
193
- }
194
- /**
195
- * Given a object graph, it will return the items topologically sorted Example:
196
- *
197
- * const graph = {
198
- * cart: ['saved'],
199
- * saved: ['items'],
200
- * items: []
201
- * };
202
- *
203
- * would return:
204
- *
205
- * const results = [
206
- * 'items',
207
- * 'saved',
208
- * 'cart'
209
- * ];
210
- *
211
- * @ignore
212
- */
213
- export function topologicalSort(graph) {
214
- const sorted = [];
215
- const visited = {};
216
- const visit = (name, ancestors = []) => {
217
- if (!Array.isArray(ancestors)) {
218
- ancestors = [];
219
- }
220
- ancestors.push(name);
221
- visited[name] = true;
222
- graph[name].forEach((dep) => {
223
- // Caretaker note: we have still left the `typeof` condition in order to avoid
224
- // creating a breaking change for projects that still use the View Engine.
225
- if ((typeof ngDevMode === 'undefined' || ngDevMode) && ancestors.indexOf(dep) >= 0) {
226
- throw new Error(`Circular dependency '${dep}' is required by '${name}': ${ancestors.join(' -> ')}`);
227
- }
228
- if (visited[dep]) {
229
- return;
230
- }
231
- visit(dep, ancestors.slice(0));
232
- });
233
- if (sorted.indexOf(name) < 0) {
234
- sorted.push(name);
235
- }
236
- };
237
- Object.keys(graph).forEach(k => visit(k));
238
- return sorted.reverse();
239
- }
240
- /**
241
- * Returns if the parameter is a object or not.
242
- *
243
- * @ignore
244
- */
245
- export function isObject(obj) {
246
- return (typeof obj === 'object' && obj !== null) || typeof obj === 'function';
247
- }
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL2ludGVybmFsL2ludGVybmFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQ0wsUUFBUSxFQUNSLGdCQUFnQixFQUVoQixpQkFBaUIsRUFFbEIsTUFBTSxZQUFZLENBQUM7QUFnRXBCOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBMEI7SUFDNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDcEMsTUFBTSxlQUFlLEdBQWtCO1lBQ3JDLElBQUksRUFBRSxJQUFJO1lBQ1YsT0FBTyxFQUFFLEVBQUU7WUFDWCxRQUFRLEVBQUUsRUFBRTtZQUNaLElBQUksRUFBRSxJQUFJO1lBQ1YsZ0JBQWdCLENBQUMsT0FBK0I7Z0JBQzlDLE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEQsQ0FBQztZQUNELFFBQVEsRUFBRSxFQUFFO1NBQ2IsQ0FBQztRQUVGLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0tBQ3JFO0lBQ0QsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUEwQjtJQUN6RCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUUsQ0FBQztBQUMzQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxNQUFnQjtJQUNyRCxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1FBQzdDLE1BQU0sZUFBZSxHQUEwQjtZQUM3QyxnQkFBZ0IsRUFBRSxJ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QVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDbkYsQ0FBQzthQUNIO1lBRUQsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2hCLE9BQU87YUFDUjtZQUVELEtBQUssQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM1QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25CO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUxQyxPQUFPLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUMxQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBUTtJQUMvQixPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsSUFBSSxPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUM7QUFDaEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWluT2JqZWN0T2YsIFN0YXRlQ2xhc3MgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBNRVRBX0tFWSxcbiAgTUVUQV9PUFRJT05TX0tFWSxcbiAgTmd4c0NvbmZpZyxcbiAgU0VMRUNUT1JfTUVUQV9LRVksXG4gIFN0b3JlT3B0aW9uc1xufSBmcm9tICcuLi9zeW1ib2xzJztcbmltcG9ydCB7IEFjdGlvbkhhbmRsZXJNZXRhRGF0YSB9IGZyb20gJy4uL2FjdGlvbnMvc3ltYm9scyc7XG5cbi8vIGluc3BpcmVkIGZyb20gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQzNjc0Mzg5XG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlQ2xhc3NJbnRlcm5hbDxUID0gYW55LCBVID0gYW55PiBleHRlbmRzIFN0YXRlQ2xhc3M8VD4ge1xuICBbTUVUQV9LRVldPzogTWV0YURhdGFNb2RlbDtcbiAgW01FVEFfT1BUSU9OU19LRVldPzogU3RvcmVPcHRpb25zPFU+O1xufVxuXG5leHBvcnQgdHlwZSBTdGF0ZUtleUdyYXBoID0gUGxhaW5PYmplY3RPZjxzdHJpbmdbXT47XG5leHBvcnQgdHlwZSBTdGF0ZXNCeU5hbWUgPSBQbGFpbk9iamVjdE9mPFN0YXRlQ2xhc3NJbnRlcm5hbD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGVPcGVyYXRpb25zPFQ+IHtcbiAgZ2V0U3RhdGUoKTogVDtcblxuICBzZXRTdGF0ZSh2YWw6IFQpOiBUO1xuXG4gIGRpc3BhdGNoKGFjdGlvbk9yQWN0aW9uczogYW55IHwgYW55W10pOiBPYnNlcnZhYmxlPHZvaWQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFEYXRhTW9kZWwge1xuICBuYW1lOiBzdHJpbmcgfCBudWxsO1xuICBhY3Rpb25zOiBQbGFpbk9iamVjdE9mPEFjdGlvbkhhbmRsZXJNZXRhRGF0YVtdPjtcbiAgZGVmYXVsdHM6IGFueTtcbiAgcGF0aDogc3RyaW5nIHwgbnVsbDtcbiAgbWFrZVJvb3RTZWxlY3RvcjogU2VsZWN0b3JGYWN0b3J5IHwgbnVsbDtcbiAgY2hpbGRyZW4/OiBTdGF0ZUNsYXNzSW50ZXJuYWxbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSdW50aW1lU2VsZWN0b3JDb250ZXh0IHtcbiAgZ2V0U3RhdGVHZXR0ZXIoa2V5OiBhbnkpOiAoc3RhdGU6IGFueSkgPT4gYW55O1xuICBnZXRTZWxlY3Rvck9wdGlvbnMobG9jYWxPcHRpb25zPzogU2hhcmVkU2VsZWN0b3JPcHRpb25zKTogU2hhcmVkU2VsZWN0b3JPcHRpb25zO1xufVxuXG5leHBvcnQgdHlwZSBTZWxlY3RGcm9tUm9vdFN0YXRlID0gKHJvb3RTdGF0ZTogYW55KSA9PiBhbnk7XG5leHBvcnQgdHlwZSBTZWxlY3RvckZhY3RvcnkgPSAocnVudGltZUNvbnRleHQ6IFJ1bnRpbWVTZWxlY3RvckNvbnRleHQpID0+IFNlbGVjdEZyb21Sb290U3RhdGU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU2VsZWN0b3JPcHRpb25zIHtcbiAgaW5qZWN0Q29udGFpbmVyU3RhdGU/OiBib29sZWFuO1xuICBzdXBwcmVzc0Vycm9ycz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0b3JNZXRhRGF0YU1vZGVsIHtcbiAgbWFrZVJvb3RTZWxlY3RvcjogU2VsZWN0b3JGYWN0b3J5IHwgbnVsbDtcbiAgb3JpZ2luYWxGbjogRnVuY3Rpb24gfCBudWxsO1xuICBjb250YWluZXJDbGFzczogYW55O1xuICBzZWxlY3Rvck5hbWU6IHN0cmluZyB8IG51bGw7XG4gIGdldFNlbGVjdG9yT3B0aW9uczogKCkgPT4gU2hhcmVkU2VsZWN0b3JPcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcHBlZFN0b3JlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBpc0luaXRpYWxpc2VkOiBib29sZWFuO1xuICBhY3Rpb25zOiBQbGFpbk9iamVjdE9mPEFjdGlvbkhhbmRsZXJNZXRhRGF0YVtdPjtcbiAgZGVmYXVsdHM6IGFueTtcbiAgaW5zdGFuY2U6IGFueTtcbiAgcGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlc0FuZERlZmF1bHRzIHtcbiAgZGVmYXVsdHM6IGFueTtcbiAgc3RhdGVzOiBNYXBwZWRTdG9yZVtdO1xufVxuXG4vKipcbiAqIEVuc3VyZXMgbWV0YWRhdGEgaXMgYXR0YWNoZWQgdG8gdGhlIGNsYXNzIGFuZCByZXR1cm5zIGl0LlxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZVN0b3JlTWV0YWRhdGEodGFyZ2V0OiBTdGF0ZUNsYXNzSW50ZXJuYWwpOiBNZXRhRGF0YU1vZGVsIHtcbiAgaWYgKCF0YXJnZXQuaGFzT3duUHJvcGVydHkoTUVUQV9LRVkpKSB7XG4gICAgY29uc3QgZGVmYXVsdE1ldGFkYXRhOiBNZXRhRGF0YU1vZGVsID0ge1xuICAgICAgbmFtZTogbnVsbCxcbiAgICAgIGFjdGlvbnM6IHt9LFxuICAgICAgZGVmYXVsdHM6IHt9LFxuICAgICAgcGF0aDogbnVsbCxcbiAgICAgIG1ha2VSb290U2VsZWN0b3IoY29udGV4dDogUnVudGltZVNlbGVjdG9yQ29udGV4dCkge1xuICAgICAgICByZXR1cm4gY29udGV4dC5nZXRTdGF0ZUdldHRlcihkZWZhdWx0TWV0YWRhdGEubmFtZSk7XG4gICAgICB9LFxuICAgICAgY2hpbGRyZW46IFtdXG4gICAgfTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIE1FVEFfS0VZLCB7IHZhbHVlOiBkZWZhdWx0TWV0YWRhdGEgfSk7XG4gIH1cbiAgcmV0dXJuIGdldFN0b3JlTWV0YWRhdGEodGFyZ2V0KTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIG1ldGFkYXRhIGF0dGFjaGVkIHRvIHRoZSBzdGF0ZSBjbGFzcyBpZiBpdCBleGlzdHMuXG4gKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RvcmVNZXRhZGF0YSh0YXJnZXQ6IFN0YXRlQ2xhc3NJbnRlcm5hbCk6IE1ldGFEYXRhTW9kZWwge1xuICByZXR1cm4gdGFyZ2V0W01FVEFfS0VZXSE7XG59XG5cbi8qKlxuICogRW5zdXJlcyBtZXRhZGF0YSBpcyBhdHRhY2hlZCB0byB0aGUgc2VsZWN0b3IgYW5kIHJldHVybnMgaXQuXG4gKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlU2VsZWN0b3JNZXRhZGF0YSh0YXJnZXQ6IEZ1bmN0aW9uKTogU2VsZWN0b3JNZXRhRGF0YU1vZGVsIHtcbiAgaWYgKCF0YXJnZXQuaGFzT3duUHJvcGVydHkoU0VMRUNUT1JfTUVUQV9LRVkpKSB7XG4gICAgY29uc3QgZGVmYXVsdE1ldGFkYXRhOiBTZWxlY3Rvck1ldGFEYXRhTW9kZWwgPSB7XG4gICAgICBtYWtlUm9vdFNlbGVjdG9yOiBudWxsLFxuICAgICAgb3JpZ2luYWxGbjogbnVsbCxcbiAgICAgIGNvbnRhaW5lckNsYXNzOiBudWxsLFxuICAgICAgc2VsZWN0b3JOYW1lOiBudWxsLFxuICAgICAgZ2V0U2VsZWN0b3JPcHRpb25zOiAoKSA9PiAoe30pXG4gICAgfTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIFNFTEVDVE9SX01FVEFfS0VZLCB7IHZhbHVlOiBkZWZhdWx0TWV0YWRhdGEgfSk7XG4gIH1cblxuICByZXR1cm4gZ2V0U2VsZWN0b3JNZXRhZGF0YSh0YXJnZXQpO1xufVxuXG4vKipcbiAqIEdldCB0aGUgbWV0YWRhdGEgYXR0YWNoZWQgdG8gdGhlIHNlbGVjdG9yIGlmIGl0IGV4aXN0cy5cbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWxlY3Rvck1ldGFkYXRhKHRhcmdldDogYW55KTogU2VsZWN0b3JNZXRhRGF0YU1vZGVsIHtcbiAgcmV0dXJuIHRhcmdldFtTRUxFQ1RPUl9NRVRBX0tFWV07XG59XG5cbi8qKlxuICogR2V0IGEgZGVlcGx5IG5lc3RlZCB2YWx1ZS4gRXhhbXBsZTpcbiAqXG4gKiAgICBnZXRWYWx1ZSh7IGZvbzogYmFyOiBbXSB9LCAnZm9vLmJhcicpIC8vPT4gW11cbiAqXG4gKiBOb3RlOiBUaGlzIGlzIG5vdCBhcyBmYXN0IGFzIHRoZSBgZmFzdFByb3BHZXR0ZXJgIGJ1dCBpcyBzdHJpY3QgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgY29tcGxpYW50LlxuICogU2VlIHBlcmYgaGl0OiBodHRwczovL2pzcGVyZi5jb20vZmFzdC12YWx1ZS1nZXR0ZXItZ2l2ZW4tcGF0aC8xXG4gKlxuICogQGlnbm9yZVxuICovXG5mdW5jdGlvbiBjb21wbGlhbnRQcm9wR2V0dGVyKHBhdGhzOiBzdHJpbmdbXSk6ICh4OiBhbnkpID0+IGFueSB7XG4gIGNvbnN0IGNvcHlPZlBhdGhzID0gcGF0aHMuc2xpY2UoKTtcbiAgcmV0dXJuIG9iaiA9PiBjb3B5T2ZQYXRocy5yZWR1Y2UoKGFjYzogYW55LCBwYXJ0OiBzdHJpbmcpID0+IGFjYyAmJiBhY2NbcGFydF0sIG9iaik7XG59XG5cbi8qKlxuICogVGhlIGdlbmVyYXRlZCBmdW5jdGlvbiBpcyBmYXN0ZXIgdGhhbjpcbiAqIC0gcGx1Y2sgKE9ic2VydmFibGUgb3BlcmF0b3IpXG4gKiAtIG1lbW9pemVcbiAqXG4gKiBAaWdub3JlXG4gKi9cbmZ1bmN0aW9uIGZhc3RQcm9wR2V0dGVyKHBhdGhzOiBzdHJpbmdbXSk6ICh4OiBhbnkpID0+IGFueSB7XG4gIGNvbnN0IHNlZ21lbnRzID0gcGF0aHM7XG4gIGxldCBzZWcgPSAnc3RvcmUuJyArIHNlZ21lbnRzWzBdO1xuICBsZXQgaSA9IDA7XG4gIGNvbnN0IGwgPSBzZWdtZW50cy5sZW5ndGg7XG5cbiAgbGV0IGV4cHIgPSBzZWc7XG4gIHdoaWxlICgrK2kgPCBsKSB7XG4gICAgZXhwciA9IGV4cHIgKyAnICYmICcgKyAoc2VnID0gc2VnICsgJy4nICsgc2VnbWVudHNbaV0pO1xuICB9XG5cbiAgY29uc3QgZm4gPSBuZXcgRnVuY3Rpb24oJ3N0b3JlJywgJ3JldHVybiAnICsgZXhwciArICc7Jyk7XG5cbiAgcmV0dXJuIDwoeDogYW55KSA9PiBhbnk+Zm47XG59XG5cbi8qKlxuICogR2V0IGEgZGVlcGx5IG5lc3RlZCB2YWx1ZS4gRXhhbXBsZTpcbiAqXG4gKiAgICBnZXRWYWx1ZSh7IGZvbzogYmFyOiBbXSB9LCAnZm9vLmJhcicpIC8vPT4gW11cbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9wR2V0dGVyKHBhdGhzOiBzdHJpbmdbXSwgY29uZmlnOiBOZ3hzQ29uZmlnKSB7XG4gIGlmIChjb25maWcgJiYgY29uZmlnLmNvbXBhdGliaWxpdHkgJiYgY29uZmlnLmNvbXBhdGliaWxpdHkuc3RyaWN0Q29udGVudFNlY3VyaXR5UG9saWN5KSB7XG4gICAgcmV0dXJuIGNvbXBsaWFudFByb3BHZXR0ZXIocGF0aHMpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmYXN0UHJvcEdldHRlcihwYXRocyk7XG4gIH1cbn1cblxuLyoqXG4gKiBHaXZlbiBhbiBhcnJheSBvZiBzdGF0ZXMsIGl0IHdpbGwgcmV0dXJuIGEgb2JqZWN0IGdyYXBoLiBFeGFtcGxlOlxuICogICAgY29uc3Qgc3RhdGVzID0gW1xuICogICAgICBDYXJ0LFxuICogICAgICBDYXJ0U2F2ZWQsXG4gKiAgICAgIENhcnRTYXZlZEl0ZW1zXG4gKiAgICBdXG4gKlxuICogd291bGQgcmV0dXJuOlxuICpcbiAqICBjb25zdCBncmFwaCA9IHtcbiAqICAgIGNhcnQ6IFsnc2F2ZWQnXSxcbiAqICAgIHNhdmVkOiBbJ2l0ZW1zJ10sXG4gKiAgICBpdGVtczogW11cbiAqICB9O1xuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkR3JhcGgoc3RhdGVDbGFzc2VzOiBTdGF0ZUNsYXNzSW50ZXJuYWxbXSk6IFN0YXRlS2V5R3JhcGgge1xuICBjb25zdCBmaW5kTmFtZSA9IChzdGF0ZUNsYXNzOiBTdGF0ZUNsYXNzSW50ZXJuYWwpID0+IHtcbiAgICBjb25zdCBtZXRhID0gc3RhdGVDbGFzc2VzLmZpbmQoZyA9PiBnID09PSBzdGF0ZUNsYXNzKTtcblxuICAgIC8vIENhcmV0YWtlciBub3RlOiB3ZSBoYXZlIHN0aWxsIGxlZnQgdGhlIGB0eXBlb2ZgIGNvbmRpdGlvbiBpbiBvcmRlciB0byBhdm9pZFxuICAgIC8vIGNyZWF0aW5nIGEgYnJlYWtpbmcgY2hhbmdlIGZvciBwcm9qZWN0cyB0aGF0IHN0aWxsIHVzZSB0aGUgVmlldyBFbmdpbmUuXG4gICAgaWYgKCh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpICYmICFtZXRhKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDaGlsZCBzdGF0ZSBub3QgZm91bmQ6ICR7c3RhdGVDbGFzc30uIFxcclxcbllvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gYWRkIHN0YXRlcyB0byBtb2R1bGVgXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhIVtNRVRBX0tFWV0hLm5hbWUhO1xuICB9O1xuXG4gIHJldHVybiBzdGF0ZUNsYXNzZXMucmVkdWNlPFN0YXRlS2V5R3JhcGg+KFxuICAgIChyZXN1bHQ6IFN0YXRlS2V5R3JhcGgsIHN0YXRlQ2xhc3M6IFN0YXRlQ2xhc3NJbnRlcm5hbCkgPT4ge1xuICAgICAgY29uc3QgeyBuYW1lLCBjaGlsZHJlbiB9ID0gc3RhdGVDbGFzc1tNRVRBX0tFWV0hO1xuICAgICAgcmVzdWx0W25hbWUhXSA9IChjaGlsZHJlbiB8fCBbXSkubWFwKGZpbmROYW1lKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSxcbiAgICB7fVxuICApO1xufVxuXG4vKipcbiAqIEdpdmVuIGEgc3RhdGVzIGFycmF5LCByZXR1cm5zIG9iamVjdCBncmFwaFxuICogcmV0dXJuaW5nIHRoZSBuYW1lIGFuZCBzdGF0ZSBtZXRhZGF0YS4gRXhhbXBsZTpcbiAqXG4gKiAgY29uc3QgZ3JhcGggPSB7XG4gKiAgICBjYXJ0OiB7IG1ldGFkYXRhIH1cbiAqICB9O1xuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5hbWVUb1N0YXRlKHN0YXRlczogU3RhdGVDbGFzc0ludGVybmFsW10pOiBQbGFpbk9iamVjdE9mPFN0YXRlQ2xhc3NJbnRlcm5hbD4ge1xuICByZXR1cm4gc3RhdGVzLnJlZHVjZTxQbGFpbk9iamVjdE9mPFN0YXRlQ2xhc3NJbnRlcm5hbD4+KFxuICAgIChyZXN1bHQ6IFBsYWluT2JqZWN0T2Y8U3RhdGVDbGFzc0ludGVybmFsPiwgc3RhdGVDbGFzczogU3RhdGVDbGFzc0ludGVybmFsKSA9PiB7XG4gICAgICBjb25zdCBtZXRhID0gc3RhdGVDbGFzc1tNRVRBX0tFWV0hO1xuICAgICAgcmVzdWx0W21ldGEubmFtZSFdID0gc3RhdGVDbGFzcztcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSxcbiAgICB7fVxuICApO1xufVxuXG4vKipcbiAqIEdpdmVuIGEgb2JqZWN0IHJlbGF0aW9uc2hpcCBncmFwaCB3aWxsIHJldHVybiB0aGUgZnVsbCBwYXRoXG4gKiBmb3IgdGhlIGNoaWxkIGl0ZW1zLiBFeGFtcGxlOlxuICpcbiAqICBjb25zdCBncmFwaCA9IHtcbiAqICAgIGNhcnQ6IFsnc2F2ZWQnXSxcbiAqICAgIHNhdmVkOiBbJ2l0ZW1zJ10sXG4gKiAgICBpdGVtczogW11cbiAqICB9O1xuICpcbiAqIHdvdWxkIHJldHVybjpcbiAqXG4gKiAgY29uc3QgciA9IHtcbiAqICAgIGNhcnQ6ICdjYXJ0JyxcbiAqICAgIHNhdmVkOiAnY2FydC5zYXZlZCcsXG4gKiAgICBpdGVtczogJ2NhcnQuc2F2ZWQuaXRlbXMnXG4gKiAgfTtcbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRnVsbFBhcmVudFBhdGgoXG4gIG9iajogU3RhdGVLZXlHcmFwaCxcbiAgbmV3T2JqOiBQbGFpbk9iamVjdE9mPHN0cmluZz4gPSB7fVxuKTogUGxhaW5PYmplY3RPZjxzdHJpbmc+IHtcbiAgY29uc3QgdmlzaXQgPSAoY2hpbGQ6IFN0YXRlS2V5R3JhcGgsIGtleVRvRmluZDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCA9PiB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gY2hpbGQpIHtcbiAgICAgIGlmIChjaGlsZC5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIGNoaWxkW2tleV0uaW5kZXhPZihrZXlUb0ZpbmQpID49IDApIHtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gdmlzaXQoY2hpbGQsIGtleSk7XG4gICAgICAgIHJldHVybiBwYXJlbnQgIT09IG51bGwgPyBgJHtwYXJlbnR9LiR7a2V5fWAgOiBrZXk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9O1xuXG4gIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xuICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgY29uc3QgcGFyZW50ID0gdmlzaXQob2JqLCBrZXkpO1xuICAgICAgbmV3T2JqW2tleV0gPSBwYXJlbnQgPyBgJHtwYXJlbnR9LiR7a2V5fWAgOiBrZXk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ld09iajtcbn1cblxuLyoqXG4gKiBHaXZlbiBhIG9iamVjdCBncmFwaCwgaXQgd2lsbCByZXR1cm4gdGhlIGl0ZW1zIHRvcG9sb2dpY2FsbHkgc29ydGVkIEV4YW1wbGU6XG4gKlxuICogIGNvbnN0IGdyYXBoID0ge1xuICogICAgY2FydDogWydzYXZlZCddLFxuICogICAgc2F2ZWQ6IFsnaXRlbXMnXSxcbiAqICAgIGl0ZW1zOiBbXVxuICogIH07XG4gKlxuICogd291bGQgcmV0dXJuOlxuICpcbiAqICBjb25zdCByZXN1bHRzID0gW1xuICogICAgJ2l0ZW1zJyxcbiAqICAgICdzYXZlZCcsXG4gKiAgICAnY2FydCdcbiAqICBdO1xuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvcG9sb2dpY2FsU29ydChncmFwaDogU3RhdGVLZXlHcmFwaCk6IHN0cmluZ1tdIHtcbiAgY29uc3Qgc29ydGVkOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCB2aXNpdGVkOiBQbGFpbk9iamVjdE9mPGJvb2xlYW4+ID0ge307XG5cbiAgY29uc3QgdmlzaXQgPSAobmFtZTogc3RyaW5nLCBhbmNlc3RvcnM6IHN0cmluZ1tdID0gW10pID0+IHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYW5jZXN0b3JzKSkge1xuICAgICAgYW5jZXN0b3JzID0gW107XG4gICAgfVxuXG4gICAgYW5jZXN0b3JzLnB1c2gobmFtZSk7XG4gICAgdmlzaXRlZFtuYW1lXSA9IHRydWU7XG5cbiAgICBncmFwaFtuYW1lXS5mb3JFYWNoKChkZXA6IHN0cmluZykgPT4ge1xuICAgICAgLy8gQ2FyZXRha2VyIG5vdGU6IHdlIGhhdmUgc3RpbGwgbGVmdCB0aGUgYHR5cGVvZmAgY29uZGl0aW9uIGluIG9yZGVyIHRvIGF2b2lkXG4gICAgICAvLyBjcmVhdGluZyBhIGJyZWFraW5nIGNoYW5nZSBmb3IgcHJvamVjdHMgdGhhdCBzdGlsbCB1c2UgdGhlIFZpZXcgRW5naW5lLlxuICAgICAgaWYgKCh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpICYmIGFuY2VzdG9ycy5pbmRleE9mKGRlcCkgPj0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYENpcmN1bGFyIGRlcGVuZGVuY3kgJyR7ZGVwfScgaXMgcmVxdWlyZWQgYnkgJyR7bmFtZX0nOiAke2FuY2VzdG9ycy5qb2luKCcgLT4gJyl9YFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAodmlzaXRlZFtkZXBdKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmlzaXQoZGVwLCBhbmNlc3RvcnMuc2xpY2UoMCkpO1xuICAgIH0pO1xuXG4gICAgaWYgKHNvcnRlZC5pbmRleE9mKG5hbWUpIDwgMCkge1xuICAgICAgc29ydGVkLnB1c2gobmFtZSk7XG4gICAgfVxuICB9O1xuXG4gIE9iamVjdC5rZXlzKGdyYXBoKS5mb3JFYWNoKGsgPT4gdmlzaXQoaykpO1xuXG4gIHJldHVybiBzb3J0ZWQucmV2ZXJzZSgpO1xufVxuXG4vKipcbiAqIFJldHVybnMgaWYgdGhlIHBhcmFtZXRlciBpcyBhIG9iamVjdCBvciBub3QuXG4gKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3Qob2JqOiBhbnkpIHtcbiAgcmV0dXJuICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiBvYmogIT09IG51bGwpIHx8IHR5cGVvZiBvYmogPT09ICdmdW5jdGlvbic7XG59XG4iXX0=