@ngxs/store 3.8.2-dev.master-0fd1fe5 → 3.8.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 (273) hide show
  1. package/bundles/ngxs-store-internals-testing.umd.js +684 -0
  2. package/bundles/ngxs-store-internals-testing.umd.js.map +1 -0
  3. package/bundles/ngxs-store-internals.umd.js +141 -0
  4. package/bundles/ngxs-store-internals.umd.js.map +1 -0
  5. package/bundles/ngxs-store-operators.umd.js +224 -0
  6. package/bundles/ngxs-store-operators.umd.js.map +1 -0
  7. package/bundles/ngxs-store.umd.js +3076 -0
  8. package/bundles/ngxs-store.umd.js.map +1 -0
  9. package/esm2015/internals/index.js +5 -0
  10. package/esm2015/internals/initial-state.js +17 -0
  11. package/esm2015/internals/internal-tokens.js +5 -0
  12. package/{esm2020/internals/ngxs-bootstrapper.mjs → esm2015/internals/ngxs-bootstrapper.js} +4 -4
  13. package/esm2015/internals/src/symbols.js +2 -0
  14. package/esm2015/internals/symbols.js +2 -0
  15. package/esm2015/internals/testing/fresh-platform.js +70 -0
  16. package/{esm2020/internals/testing/helpers/ngxs-test.component.mjs → esm2015/internals/testing/helpers/ngxs-test.component.js} +4 -4
  17. package/esm2015/internals/testing/helpers/ngxs-test.module.js +21 -0
  18. package/{esm2020/internals/testing/ngxs.setup.mjs → esm2015/internals/testing/ngxs.setup.js} +2 -4
  19. package/esm2015/internals/testing/symbol.js +2 -0
  20. package/esm2015/operators/patch.js +21 -0
  21. package/{esm2020/src/actions-stream.mjs → esm2015/src/actions-stream.js} +7 -7
  22. package/esm2015/src/configs/messages.config.js +36 -0
  23. package/{esm2020/src/decorators/select/select-factory.mjs → esm2015/src/decorators/select/select-factory.js} +4 -4
  24. package/esm2015/src/decorators/selector/selector.js +32 -0
  25. package/esm2015/src/decorators/state.js +36 -0
  26. package/{esm2020/src/dev-features/ngxs-development.module.mjs → esm2015/src/dev-features/ngxs-development.module.js} +5 -5
  27. package/{esm2020/src/dev-features/ngxs-unhandled-actions-logger.mjs → esm2015/src/dev-features/ngxs-unhandled-actions-logger.js} +4 -4
  28. package/{esm2020/src/execution/dispatch-outside-zone-ngxs-execution-strategy.mjs → esm2015/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js} +4 -4
  29. package/{esm2020/src/execution/internal-ngxs-execution-strategy.mjs → esm2015/src/execution/internal-ngxs-execution-strategy.js} +4 -4
  30. package/{esm2020/src/execution/noop-ngxs-execution-strategy.mjs → esm2015/src/execution/noop-ngxs-execution-strategy.js} +4 -4
  31. package/esm2015/src/execution/symbols.js +23 -0
  32. package/{esm2020/src/internal/dispatcher.mjs → esm2015/src/internal/dispatcher.js} +11 -11
  33. package/{esm2020/src/internal/error-handler.mjs → esm2015/src/internal/error-handler.js} +5 -5
  34. package/esm2015/src/internal/internals.js +248 -0
  35. package/esm2015/src/internal/lifecycle-state-manager.js +79 -0
  36. package/{esm2020/src/internal/state-context-factory.mjs → esm2015/src/internal/state-context-factory.js} +4 -4
  37. package/esm2015/src/internal/state-factory.js +288 -0
  38. package/{esm2020/src/internal/state-operations.mjs → esm2015/src/internal/state-operations.js} +5 -5
  39. package/esm2015/src/internal/state-operators.js +20 -0
  40. package/esm2015/src/internal/state-stream.js +25 -0
  41. package/{esm2020/src/ivy/ivy-enabled-in-dev-mode.mjs → esm2015/src/ivy/ivy-enabled-in-dev-mode.js} +2 -2
  42. package/esm2015/src/module.js +88 -0
  43. package/esm2015/src/modules/ngxs-feature.module.js +45 -0
  44. package/esm2015/src/modules/ngxs-root.module.js +41 -0
  45. package/{esm2020/src/operators/of-action.mjs → esm2015/src/operators/of-action.js} +10 -10
  46. package/{esm2020/src/plugin-manager.mjs → esm2015/src/plugin-manager.js} +4 -4
  47. package/esm2015/src/public_api.js +27 -0
  48. package/esm2015/src/selectors/create-property-selectors.js +20 -0
  49. package/esm2015/src/selectors/selector-metadata.js +30 -0
  50. package/esm2015/src/selectors/selector-types.util.js +2 -0
  51. package/{esm2020/src/store.mjs → esm2015/src/store.js} +5 -6
  52. package/esm2015/src/symbols.js +58 -0
  53. package/esm2015/src/utils/utils.js +92 -0
  54. package/fesm2015/{ngxs-store-internals-testing.mjs → ngxs-store-internals-testing.js} +13 -19
  55. package/fesm2015/ngxs-store-internals-testing.js.map +1 -0
  56. package/{fesm2020/ngxs-store-internals.mjs → fesm2015/ngxs-store-internals.js} +8 -21
  57. package/fesm2015/ngxs-store-internals.js.map +1 -0
  58. package/fesm2015/{ngxs-store-operators.mjs → ngxs-store-operators.js} +1 -1
  59. package/fesm2015/ngxs-store-operators.js.map +1 -0
  60. package/{fesm2020/ngxs-store.mjs → fesm2015/ngxs-store.js} +1029 -1192
  61. package/fesm2015/ngxs-store.js.map +1 -0
  62. package/internals/index.d.ts +1 -1
  63. package/internals/initial-state.d.ts +1 -1
  64. package/internals/ngxs-store-internals.d.ts +5 -0
  65. package/internals/package.json +10 -0
  66. package/internals/src/symbols.d.ts +1 -4
  67. package/internals/symbols.d.ts +1 -4
  68. package/internals/testing/helpers/ngxs-test.component.d.ts +1 -1
  69. package/internals/testing/ngxs-store-internals-testing.d.ts +5 -0
  70. package/internals/testing/package.json +10 -0
  71. package/internals/testing/symbol.d.ts +2 -2
  72. package/ngxs-store.d.ts +5 -0
  73. package/operators/ngxs-store-operators.d.ts +5 -0
  74. package/operators/package.json +10 -0
  75. package/package.json +11 -48
  76. package/src/configs/messages.config.d.ts +0 -2
  77. package/src/decorators/state.d.ts +2 -2
  78. package/src/execution/symbols.d.ts +2 -8
  79. package/src/internal/internals.d.ts +5 -5
  80. package/src/internal/lifecycle-state-manager.d.ts +1 -3
  81. package/src/module.d.ts +14 -3
  82. package/src/modules/ngxs-feature.module.d.ts +9 -2
  83. package/src/modules/ngxs-root.module.d.ts +9 -2
  84. package/src/public_api.d.ts +4 -5
  85. package/src/selectors/selector-types.util.d.ts +3 -3
  86. package/src/symbols.d.ts +8 -5
  87. package/esm2020/internals/index.mjs +0 -6
  88. package/esm2020/internals/initial-state.mjs +0 -18
  89. package/esm2020/internals/internal-tokens.mjs +0 -6
  90. package/esm2020/internals/src/symbols.mjs +0 -11
  91. package/esm2020/internals/symbols.mjs +0 -11
  92. package/esm2020/internals/testing/fresh-platform.mjs +0 -72
  93. package/esm2020/internals/testing/helpers/ngxs-test.module.mjs +0 -20
  94. package/esm2020/internals/testing/symbol.mjs +0 -2
  95. package/esm2020/operators/patch.mjs +0 -21
  96. package/esm2020/src/configs/messages.config.mjs +0 -48
  97. package/esm2020/src/decorators/selector/selector.mjs +0 -32
  98. package/esm2020/src/decorators/state.mjs +0 -36
  99. package/esm2020/src/execution/symbols.mjs +0 -27
  100. package/esm2020/src/internal/internals.mjs +0 -248
  101. package/esm2020/src/internal/lifecycle-state-manager.mjs +0 -97
  102. package/esm2020/src/internal/state-factory.mjs +0 -292
  103. package/esm2020/src/internal/state-operators.mjs +0 -20
  104. package/esm2020/src/internal/state-stream.mjs +0 -27
  105. package/esm2020/src/module.mjs +0 -27
  106. package/esm2020/src/modules/ngxs-feature.module.mjs +0 -18
  107. package/esm2020/src/modules/ngxs-root.module.mjs +0 -18
  108. package/esm2020/src/public_api.mjs +0 -28
  109. package/esm2020/src/selectors/create-property-selectors.mjs +0 -20
  110. package/esm2020/src/selectors/selector-metadata.mjs +0 -35
  111. package/esm2020/src/selectors/selector-types.util.mjs +0 -2
  112. package/esm2020/src/standalone-features/feature-providers.mjs +0 -20
  113. package/esm2020/src/standalone-features/index.mjs +0 -4
  114. package/esm2020/src/standalone-features/initializers.mjs +0 -86
  115. package/esm2020/src/standalone-features/plugin.mjs +0 -20
  116. package/esm2020/src/standalone-features/provide-states.mjs +0 -26
  117. package/esm2020/src/standalone-features/provide-store.mjs +0 -26
  118. package/esm2020/src/standalone-features/root-providers.mjs +0 -47
  119. package/esm2020/src/symbols.mjs +0 -65
  120. package/esm2020/src/utils/utils.mjs +0 -92
  121. package/fesm2015/ngxs-store-internals-testing.mjs.map +0 -1
  122. package/fesm2015/ngxs-store-internals.mjs +0 -114
  123. package/fesm2015/ngxs-store-internals.mjs.map +0 -1
  124. package/fesm2015/ngxs-store-operators.mjs.map +0 -1
  125. package/fesm2015/ngxs-store.mjs +0 -2454
  126. package/fesm2015/ngxs-store.mjs.map +0 -1
  127. package/fesm2020/ngxs-store-internals-testing.mjs +0 -180
  128. package/fesm2020/ngxs-store-internals-testing.mjs.map +0 -1
  129. package/fesm2020/ngxs-store-internals.mjs.map +0 -1
  130. package/fesm2020/ngxs-store-operators.mjs +0 -202
  131. package/fesm2020/ngxs-store-operators.mjs.map +0 -1
  132. package/fesm2020/ngxs-store.mjs.map +0 -1
  133. package/schematics/collection.json +0 -36
  134. package/schematics/src/actions/actions.factory.d.ts +0 -3
  135. package/schematics/src/actions/actions.factory.js +0 -22
  136. package/schematics/src/actions/actions.factory.js.map +0 -1
  137. package/schematics/src/actions/files/__name__.actions.ts__template__ +0 -4
  138. package/schematics/src/actions/schema.json +0 -28
  139. package/schematics/src/ng-add/add-declaration.d.ts +0 -4
  140. package/schematics/src/ng-add/add-declaration.js +0 -109
  141. package/schematics/src/ng-add/add-declaration.js.map +0 -1
  142. package/schematics/src/ng-add/ng-add.factory.d.ts +0 -9
  143. package/schematics/src/ng-add/ng-add.factory.js +0 -86
  144. package/schematics/src/ng-add/ng-add.factory.js.map +0 -1
  145. package/schematics/src/ng-add/schema.json +0 -72
  146. package/schematics/src/starter-kit/files/store/auth/auth.actions.ts__template__ +0 -7
  147. package/schematics/src/starter-kit/files/store/auth/auth.state.spec.ts__template__ +0 -46
  148. package/schematics/src/starter-kit/files/store/auth/auth.state.ts__template__ +0 -45
  149. package/schematics/src/starter-kit/files/store/dashboard/index.ts__template__ +0 -11
  150. package/schematics/src/starter-kit/files/store/dashboard/states/dictionary/dictionary.actions.ts__template__ +0 -13
  151. package/schematics/src/starter-kit/files/store/dashboard/states/dictionary/dictionary.state.spec.ts__template__ +0 -77
  152. package/schematics/src/starter-kit/files/store/dashboard/states/dictionary/dictionary.state.ts__template__ +0 -60
  153. package/schematics/src/starter-kit/files/store/dashboard/states/user/user.actions.ts__template__ +0 -6
  154. package/schematics/src/starter-kit/files/store/dashboard/states/user/user.state.spec.ts__template__ +0 -54
  155. package/schematics/src/starter-kit/files/store/dashboard/states/user/user.state.ts__template__ +0 -40
  156. package/schematics/src/starter-kit/files/store/store.config.ts__template__ +0 -38
  157. package/schematics/src/starter-kit/files/store/store.module.ts__template__ +0 -22
  158. package/schematics/src/starter-kit/schema.json +0 -18
  159. package/schematics/src/starter-kit/starter-kit.factory.d.ts +0 -3
  160. package/schematics/src/starter-kit/starter-kit.factory.js +0 -12
  161. package/schematics/src/starter-kit/starter-kit.factory.js.map +0 -1
  162. package/schematics/src/state/files/__name__.state.spec.ts__template__ +0 -22
  163. package/schematics/src/state/files/__name__.state.ts__template__ +0 -20
  164. package/schematics/src/state/schema.json +0 -33
  165. package/schematics/src/state/state.factory.d.ts +0 -3
  166. package/schematics/src/state/state.factory.js +0 -20
  167. package/schematics/src/state/state.factory.js.map +0 -1
  168. package/schematics/src/store/files/__name__.actions.ts__template__ +0 -4
  169. package/schematics/src/store/files/__name__.state.spec.ts__template__ +0 -24
  170. package/schematics/src/store/files/__name__.state.ts__template__ +0 -27
  171. package/schematics/src/store/schema.json +0 -33
  172. package/schematics/src/store/store.factory.d.ts +0 -3
  173. package/schematics/src/store/store.factory.js +0 -20
  174. package/schematics/src/store/store.factory.js.map +0 -1
  175. package/schematics/src/utils/common/lib.config.d.ts +0 -10
  176. package/schematics/src/utils/common/lib.config.js +0 -15
  177. package/schematics/src/utils/common/lib.config.js.map +0 -1
  178. package/schematics/src/utils/common/project-files.config.d.ts +0 -3
  179. package/schematics/src/utils/common/project-files.config.js +0 -7
  180. package/schematics/src/utils/common/project-files.config.js.map +0 -1
  181. package/schematics/src/utils/common/properties.d.ts +0 -1
  182. package/schematics/src/utils/common/properties.js +0 -8
  183. package/schematics/src/utils/common/properties.js.map +0 -1
  184. package/schematics/src/utils/config.d.ts +0 -119
  185. package/schematics/src/utils/config.js +0 -21
  186. package/schematics/src/utils/config.js.map +0 -1
  187. package/schematics/src/utils/generate-utils.d.ts +0 -4
  188. package/schematics/src/utils/generate-utils.js +0 -14
  189. package/schematics/src/utils/generate-utils.js.map +0 -1
  190. package/schematics/src/utils/interfaces/package.interface.d.ts +0 -7
  191. package/schematics/src/utils/interfaces/package.interface.js +0 -3
  192. package/schematics/src/utils/interfaces/package.interface.js.map +0 -1
  193. package/schematics/src/utils/ng-utils/README.md +0 -1
  194. package/schematics/src/utils/ng-utils/ast-utils.d.ts +0 -99
  195. package/schematics/src/utils/ng-utils/ast-utils.js +0 -517
  196. package/schematics/src/utils/ng-utils/ast-utils.js.map +0 -1
  197. package/schematics/src/utils/ng-utils/ng-ast-utils.d.ts +0 -5
  198. package/schematics/src/utils/ng-utils/ng-ast-utils.js +0 -67
  199. package/schematics/src/utils/ng-utils/ng-ast-utils.js.map +0 -1
  200. package/schematics/src/utils/ng-utils/project.d.ts +0 -2
  201. package/schematics/src/utils/ng-utils/project.js +0 -21
  202. package/schematics/src/utils/ng-utils/project.js.map +0 -1
  203. package/schematics/src/utils/ng-utils/standalone/app_config.d.ts +0 -16
  204. package/schematics/src/utils/ng-utils/standalone/app_config.js +0 -84
  205. package/schematics/src/utils/ng-utils/standalone/app_config.js.map +0 -1
  206. package/schematics/src/utils/ng-utils/standalone/code_block.d.ts +0 -46
  207. package/schematics/src/utils/ng-utils/standalone/code_block.js +0 -73
  208. package/schematics/src/utils/ng-utils/standalone/code_block.js.map +0 -1
  209. package/schematics/src/utils/ng-utils/standalone/index.d.ts +0 -1
  210. package/schematics/src/utils/ng-utils/standalone/index.js +0 -7
  211. package/schematics/src/utils/ng-utils/standalone/index.js.map +0 -1
  212. package/schematics/src/utils/ng-utils/standalone/rules.d.ts +0 -38
  213. package/schematics/src/utils/ng-utils/standalone/rules.js +0 -195
  214. package/schematics/src/utils/ng-utils/standalone/rules.js.map +0 -1
  215. package/schematics/src/utils/ng-utils/standalone/util.d.ts +0 -28
  216. package/schematics/src/utils/ng-utils/standalone/util.js +0 -138
  217. package/schematics/src/utils/ng-utils/standalone/util.js.map +0 -1
  218. package/schematics/src/utils/normalize-options.d.ts +0 -9
  219. package/schematics/src/utils/normalize-options.js +0 -24
  220. package/schematics/src/utils/normalize-options.js.map +0 -1
  221. package/schematics/src/utils/project.d.ts +0 -16
  222. package/schematics/src/utils/project.js +0 -40
  223. package/schematics/src/utils/project.js.map +0 -1
  224. package/schematics/src/utils/versions.json +0 -3
  225. package/src/standalone-features/feature-providers.d.ts +0 -7
  226. package/src/standalone-features/index.d.ts +0 -3
  227. package/src/standalone-features/initializers.d.ts +0 -29
  228. package/src/standalone-features/plugin.d.ts +0 -17
  229. package/src/standalone-features/provide-states.d.ts +0 -18
  230. package/src/standalone-features/provide-store.d.ts +0 -22
  231. package/src/standalone-features/root-providers.d.ts +0 -8
  232. /package/{esm2020/index.mjs → esm2015/index.js} +0 -0
  233. /package/{esm2020/internals/memoize.mjs → esm2015/internals/memoize.js} +0 -0
  234. /package/{esm2020/internals/ngxs-store-internals.mjs → esm2015/internals/ngxs-store-internals.js} +0 -0
  235. /package/{esm2020/internals/testing/index.mjs → esm2015/internals/testing/index.js} +0 -0
  236. /package/{esm2020/internals/testing/ngxs-store-internals-testing.mjs → esm2015/internals/testing/ngxs-store-internals-testing.js} +0 -0
  237. /package/{esm2020/internals/testing/skip-console-logging.mjs → esm2015/internals/testing/skip-console-logging.js} +0 -0
  238. /package/{esm2020/ngxs-store.mjs → esm2015/ngxs-store.js} +0 -0
  239. /package/{esm2020/operators/append.mjs → esm2015/operators/append.js} +0 -0
  240. /package/{esm2020/operators/compose.mjs → esm2015/operators/compose.js} +0 -0
  241. /package/{esm2020/operators/iif.mjs → esm2015/operators/iif.js} +0 -0
  242. /package/{esm2020/operators/index.mjs → esm2015/operators/index.js} +0 -0
  243. /package/{esm2020/operators/insert-item.mjs → esm2015/operators/insert-item.js} +0 -0
  244. /package/{esm2020/operators/ngxs-store-operators.mjs → esm2015/operators/ngxs-store-operators.js} +0 -0
  245. /package/{esm2020/operators/remove-item.mjs → esm2015/operators/remove-item.js} +0 -0
  246. /package/{esm2020/operators/types.mjs → esm2015/operators/types.js} +0 -0
  247. /package/{esm2020/operators/update-item.mjs → esm2015/operators/update-item.js} +0 -0
  248. /package/{esm2020/operators/utils.mjs → esm2015/operators/utils.js} +0 -0
  249. /package/{esm2020/src/actions/actions.mjs → esm2015/src/actions/actions.js} +0 -0
  250. /package/{esm2020/src/actions/symbols.mjs → esm2015/src/actions/symbols.js} +0 -0
  251. /package/{esm2020/src/decorators/action.mjs → esm2015/src/decorators/action.js} +0 -0
  252. /package/{esm2020/src/decorators/select/select.mjs → esm2015/src/decorators/select/select.js} +0 -0
  253. /package/{esm2020/src/decorators/select/symbols.mjs → esm2015/src/decorators/select/symbols.js} +0 -0
  254. /package/{esm2020/src/decorators/selector/symbols.mjs → esm2015/src/decorators/selector/symbols.js} +0 -0
  255. /package/{esm2020/src/decorators/selector-options.mjs → esm2015/src/decorators/selector-options.js} +0 -0
  256. /package/{esm2020/src/dev-features/symbols.mjs → esm2015/src/dev-features/symbols.js} +0 -0
  257. /package/{esm2020/src/internal/custom-rxjs-subjects.mjs → esm2015/src/internal/custom-rxjs-subjects.js} +0 -0
  258. /package/{esm2020/src/operators/leave-ngxs.mjs → esm2015/src/operators/leave-ngxs.js} +0 -0
  259. /package/{esm2020/src/plugin_api.mjs → esm2015/src/plugin_api.js} +0 -0
  260. /package/{esm2020/src/private_api.mjs → esm2015/src/private_api.js} +0 -0
  261. /package/{esm2020/src/public_to_deprecate.mjs → esm2015/src/public_to_deprecate.js} +0 -0
  262. /package/{esm2020/src/selectors/create-model-selector.mjs → esm2015/src/selectors/create-model-selector.js} +0 -0
  263. /package/{esm2020/src/selectors/create-pick-selector.mjs → esm2015/src/selectors/create-pick-selector.js} +0 -0
  264. /package/{esm2020/src/selectors/create-selector.mjs → esm2015/src/selectors/create-selector.js} +0 -0
  265. /package/{esm2020/src/selectors/index.mjs → esm2015/src/selectors/index.js} +0 -0
  266. /package/{esm2020/src/selectors/selector-checks.util.mjs → esm2015/src/selectors/selector-checks.util.js} +0 -0
  267. /package/{esm2020/src/selectors/selector-models.mjs → esm2015/src/selectors/selector-models.js} +0 -0
  268. /package/{esm2020/src/selectors/selector-utils.mjs → esm2015/src/selectors/selector-utils.js} +0 -0
  269. /package/{esm2020/src/state-token/state-token.mjs → esm2015/src/state-token/state-token.js} +0 -0
  270. /package/{esm2020/src/state-token/symbols.mjs → esm2015/src/state-token/symbols.js} +0 -0
  271. /package/{esm2020/src/utils/compose.mjs → esm2015/src/utils/compose.js} +0 -0
  272. /package/{esm2020/src/utils/freeze.mjs → esm2015/src/utils/freeze.js} +0 -0
  273. /package/{esm2020/src/utils/store-validators.mjs → esm2015/src/utils/store-validators.js} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"ngxs-store.mjs","sources":["../../../packages/store/src/execution/noop-ngxs-execution-strategy.ts","../../../packages/store/src/configs/messages.config.ts","../../../packages/store/src/execution/dispatch-outside-zone-ngxs-execution-strategy.ts","../../../packages/store/src/execution/symbols.ts","../../../packages/store/src/execution/internal-ngxs-execution-strategy.ts","../../../packages/store/src/utils/compose.ts","../../../packages/store/src/operators/leave-ngxs.ts","../../../packages/store/src/internal/error-handler.ts","../../../packages/store/src/internal/custom-rxjs-subjects.ts","../../../packages/store/src/actions-stream.ts","../../../packages/store/src/internal/state-stream.ts","../../../packages/store/src/utils/utils.ts","../../../packages/store/src/symbols.ts","../../../packages/store/src/plugin-manager.ts","../../../packages/store/src/internal/dispatcher.ts","../../../packages/store/src/utils/freeze.ts","../../../packages/store/src/internal/state-operations.ts","../../../packages/store/src/internal/internals.ts","../../../packages/store/src/selectors/selector-utils.ts","../../../packages/store/src/operators/of-action.ts","../../../packages/store/src/internal/state-operators.ts","../../../packages/store/src/internal/state-context-factory.ts","../../../packages/store/src/utils/store-validators.ts","../../../packages/store/src/ivy/ivy-enabled-in-dev-mode.ts","../../../packages/store/src/actions/actions.ts","../../../packages/store/src/dev-features/symbols.ts","../../../packages/store/src/dev-features/ngxs-unhandled-actions-logger.ts","../../../packages/store/src/internal/state-factory.ts","../../../packages/store/src/store.ts","../../../packages/store/src/decorators/select/select-factory.ts","../../../packages/store/src/internal/lifecycle-state-manager.ts","../../../packages/store/src/standalone-features/initializers.ts","../../../packages/store/src/modules/ngxs-root.module.ts","../../../packages/store/src/modules/ngxs-feature.module.ts","../../../packages/store/src/standalone-features/root-providers.ts","../../../packages/store/src/standalone-features/feature-providers.ts","../../../packages/store/src/module.ts","../../../packages/store/src/decorators/action.ts","../../../packages/store/src/decorators/state.ts","../../../packages/store/src/decorators/select/symbols.ts","../../../packages/store/src/decorators/select/select.ts","../../../packages/store/src/selectors/selector-metadata.ts","../../../packages/store/src/decorators/selector-options.ts","../../../packages/store/src/public_to_deprecate.ts","../../../packages/store/src/selectors/create-selector.ts","../../../packages/store/src/decorators/selector/selector.ts","../../../packages/store/src/state-token/state-token.ts","../../../packages/store/src/dev-features/ngxs-development.module.ts","../../../packages/store/src/selectors/selector-checks.util.ts","../../../packages/store/src/selectors/create-model-selector.ts","../../../packages/store/src/selectors/create-pick-selector.ts","../../../packages/store/src/selectors/create-property-selectors.ts","../../../packages/store/src/standalone-features/provide-store.ts","../../../packages/store/src/standalone-features/provide-states.ts","../../../packages/store/src/standalone-features/plugin.ts","../../../packages/store/index.ts","../../../packages/store/ngxs-store.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { NgxsExecutionStrategy } from './symbols';\n\n@Injectable({ providedIn: 'root' })\nexport class NoopNgxsExecutionStrategy implements NgxsExecutionStrategy {\n enter<T>(func: () => T): T {\n return func();\n }\n\n leave<T>(func: () => T): T {\n return func();\n }\n}\n","import { PlainObject } from '@ngxs/store/internals';\n\nexport function throwStateNameError(name: string): never {\n throw new Error(\n `${name} is not a valid state name. It needs to be a valid object property name.`\n );\n}\n\nexport function throwStateNamePropertyError(): never {\n throw new Error(`States must register a 'name' property.`);\n}\n\nexport function throwStateUniqueError(\n current: string,\n newName: string,\n oldName: string\n): never {\n throw new Error(`State name '${current}' from ${newName} already exists in ${oldName}.`);\n}\n\nexport function throwStateDecoratorError(name: string): never {\n throw new Error(`States must be decorated with @State() decorator, but \"${name}\" isn't.`);\n}\n\nexport function throwActionDecoratorError(): never {\n throw new Error('@Action() decorator cannot be used with static methods.');\n}\n\nexport function throwSelectorDecoratorError(): never {\n throw new Error('Selectors only work on methods.');\n}\n\nexport function getZoneWarningMessage(): string {\n return (\n 'Your application was bootstrapped with nooped zone and your execution strategy requires an actual NgZone!\\n' +\n 'Please set the value of the executionStrategy property to NoopNgxsExecutionStrategy.\\n' +\n 'NgxsModule.forRoot(states, { executionStrategy: NoopNgxsExecutionStrategy })'\n );\n}\n\nexport function getUndecoratedStateInIvyWarningMessage(name: string): string {\n return `'${name}' class should be decorated with @Injectable() right after the @State() decorator`;\n}\n\nexport function getInvalidInitializationOrderMessage(addedStates?: PlainObject) {\n let message =\n 'You have an invalid state initialization order. This typically occurs when `NgxsModule.forFeature`\\n' +\n 'or `provideStates` is called before `NgxsModule.forRoot` or `provideStore`.\\n' +\n 'One example is when `NgxsRouterPluginModule.forRoot` is called before `NgxsModule.forRoot`.';\n\n if (addedStates) {\n const stateNames = Object.keys(addedStates).map(stateName => `\"${stateName}\"`);\n\n message +=\n '\\nFeature states added before the store initialization is complete: ' +\n `${stateNames.join(', ')}.`;\n }\n\n return message;\n}\n\nexport function throwSelectFactoryNotConnectedError(): never {\n throw new Error('You have forgotten to import the NGXS module!');\n}\n\nexport function throwPatchingArrayError(): never {\n throw new Error('Patching arrays is not supported.');\n}\n\nexport function throwPatchingPrimitiveError(): never {\n throw new Error('Patching primitives is not supported.');\n}\n","import { Inject, Injectable, NgZone, PLATFORM_ID } from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\n\nimport { NgxsExecutionStrategy } from './symbols';\nimport { getZoneWarningMessage } from '../configs/messages.config';\n\n@Injectable({ providedIn: 'root' })\nexport class DispatchOutsideZoneNgxsExecutionStrategy implements NgxsExecutionStrategy {\n constructor(private _ngZone: NgZone, @Inject(PLATFORM_ID) private _platformId: string) {\n // Caretaker note: we have still left the `typeof` condition in order to avoid\n // creating a breaking change for projects that still use the View Engine.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n verifyZoneIsNotNooped(_ngZone);\n }\n }\n\n enter<T>(func: () => T): T {\n if (isPlatformServer(this._platformId)) {\n return this.runInsideAngular(func);\n }\n return this.runOutsideAngular(func);\n }\n\n leave<T>(func: () => T): T {\n return this.runInsideAngular(func);\n }\n\n private runInsideAngular<T>(func: () => T): T {\n if (NgZone.isInAngularZone()) {\n return func();\n }\n return this._ngZone.run(func);\n }\n\n private runOutsideAngular<T>(func: () => T): T {\n if (NgZone.isInAngularZone()) {\n return this._ngZone.runOutsideAngular(func);\n }\n return func();\n }\n}\n\n// Caretaker note: this should exist as a separate function and not a class method,\n// since class methods are not tree-shakable.\nfunction verifyZoneIsNotNooped(ngZone: NgZone): void {\n // `NoopNgZone` is not exposed publicly as it doesn't expect\n // to be used outside of the core Angular code, thus we just have\n // to check if the zone doesn't extend or instanceof `NgZone`.\n if (ngZone instanceof NgZone) {\n return;\n }\n\n console.warn(getZoneWarningMessage());\n}\n","import { InjectionToken, inject, INJECTOR, Type, ɵglobal } from '@angular/core';\n\nimport { NoopNgxsExecutionStrategy } from './noop-ngxs-execution-strategy';\nimport { DispatchOutsideZoneNgxsExecutionStrategy } from './dispatch-outside-zone-ngxs-execution-strategy';\n\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;\n\n/**\n * Consumers have the option to utilize the execution strategy provided by\n * `NgxsModule.forRoot({executionStrategy})` or `provideStore([], {executionStrategy})`.\n */\nexport const CUSTOM_NGXS_EXECUTION_STRATEGY = new InjectionToken<\n Type<NgxsExecutionStrategy> | undefined\n>(NG_DEV_MODE ? 'CUSTOM_NGXS_EXECUTION_STRATEGY' : '');\n\n/**\n * The injection token is used internally to resolve an instance of the execution\n * strategy. It checks whether consumers have provided their own `executionStrategy`\n * and also verifies if we are operating in a zone-aware environment.\n */\nexport const NGXS_EXECUTION_STRATEGY = new InjectionToken<NgxsExecutionStrategy>(\n NG_DEV_MODE ? 'NGXS_EXECUTION_STRATEGY' : '',\n {\n providedIn: 'root',\n factory: () => {\n const injector = inject(INJECTOR);\n const executionStrategy = injector.get(CUSTOM_NGXS_EXECUTION_STRATEGY);\n return executionStrategy\n ? injector.get(executionStrategy)\n : injector.get(\n typeof ɵglobal.Zone !== 'undefined'\n ? DispatchOutsideZoneNgxsExecutionStrategy\n : NoopNgxsExecutionStrategy\n );\n }\n }\n);\n\n/*\n * Execution strategy interface\n */\nexport interface NgxsExecutionStrategy {\n enter<T>(func: () => T): T;\n leave<T>(func: () => T): T;\n}\n","import { Injectable, Inject } from '@angular/core';\n\nimport { NgxsExecutionStrategy, NGXS_EXECUTION_STRATEGY } from './symbols';\n\n@Injectable({ providedIn: 'root' })\nexport class InternalNgxsExecutionStrategy implements NgxsExecutionStrategy {\n constructor(\n @Inject(NGXS_EXECUTION_STRATEGY) private _executionStrategy: NgxsExecutionStrategy\n ) {}\n\n enter<T>(func: () => T): T {\n return this._executionStrategy.enter(func);\n }\n\n leave<T>(func: () => T): T {\n return this._executionStrategy.leave(func);\n }\n}\n","export type StateFn = (...args: any[]) => any;\n\n/**\n * Composes a array of functions from left to right. Example:\n *\n * compose([fn, final])(state, action);\n *\n * then the funcs have a signature like:\n *\n * function fn (state, action, next) {\n * console.log('here', state, action, next);\n * return next(state, action);\n * }\n *\n * function final (state, action) {\n * console.log('here', state, action);\n * return state;\n * }\n *\n * the last function should not call `next`.\n *\n * @ignore\n */\nexport const compose = (funcs: StateFn[]) => (...args: any[]) => {\n const curr = funcs.shift()!;\n return curr(...args, (...nextArgs: any[]) => compose(funcs)(...nextArgs));\n};\n","import { MonoTypeOperatorFunction, Observable, Observer } from 'rxjs';\nimport { NgxsExecutionStrategy } from '../execution/symbols';\n\n/**\n * Returns operator that will run\n * `subscribe` outside of the ngxs execution context\n */\nexport function leaveNgxs<T>(\n ngxsExecutionStrategy: NgxsExecutionStrategy\n): MonoTypeOperatorFunction<T> {\n return (source: Observable<T>) => {\n return new Observable((sink: Observer<T>) => {\n return source.subscribe({\n next(value) {\n ngxsExecutionStrategy.leave(() => sink.next(value));\n },\n error(error) {\n ngxsExecutionStrategy.leave(() => sink.error(error));\n },\n complete() {\n ngxsExecutionStrategy.leave(() => sink.complete());\n }\n });\n });\n };\n}\n","import { ErrorHandler, Injectable, Injector } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { leaveNgxs } from '../operators/leave-ngxs';\nimport { NgxsExecutionStrategy } from '../execution/symbols';\n\n/**\n * This operator is used for piping the observable result\n * from the `dispatch()`. It has a \"smart\" error handling\n * strategy that allows us to decide whether we propagate\n * errors to Angular's `ErrorHandler` or enable users to\n * handle them manually. We consider following cases:\n * 1) `store.dispatch()` (no subscribe) -> call `handleError()`\n * 2) `store.dispatch().subscribe()` (no error callback) -> call `handleError()`\n * 3) `store.dispatch().subscribe({ error: ... })` -> don't call `handleError()`\n * 4) `toPromise()` without `catch` -> do `handleError()`\n * 5) `toPromise()` with `catch` -> don't `handleError()`\n */\nexport function ngxsErrorHandler<T>(\n internalErrorReporter: InternalErrorReporter,\n ngxsExecutionStrategy: NgxsExecutionStrategy\n) {\n return (source: Observable<T>) => {\n let subscribed = false;\n\n source.subscribe({\n error: error => {\n // Do not trigger change detection for a microtask. This depends on the execution\n // strategy being used, but the default `DispatchOutsideZoneNgxsExecutionStrategy`\n // leaves the Angular zone.\n ngxsExecutionStrategy.enter(() =>\n Promise.resolve().then(() => {\n if (!subscribed) {\n ngxsExecutionStrategy.leave(() =>\n internalErrorReporter.reportErrorSafely(error)\n );\n }\n })\n );\n }\n });\n\n return new Observable(subscriber => {\n subscribed = true;\n return source.pipe(leaveNgxs(ngxsExecutionStrategy)).subscribe(subscriber);\n });\n };\n}\n\n@Injectable({ providedIn: 'root' })\nexport class InternalErrorReporter {\n /** Will be set lazily to be backward compatible. */\n private _errorHandler: ErrorHandler = null!;\n\n constructor(private _injector: Injector) {}\n\n reportErrorSafely(error: any): void {\n if (this._errorHandler === null) {\n this._errorHandler = this._injector.get(ErrorHandler);\n }\n // The `try-catch` is used to avoid handling the error twice. Suppose we call\n // `handleError` which re-throws the error internally. The re-thrown error will\n // be caught by zone.js which will then get to the `zone.onError.emit()` and the\n // `onError` subscriber will call `handleError` again.\n try {\n this._errorHandler.handleError(error);\n } catch {}\n }\n}\n","import { BehaviorSubject, Subject } from 'rxjs';\n\n/**\n * This wraps the provided function, and will enforce the following:\n * - The calls will execute in the order that they are made\n * - A call will only be initiated when the previous call has completed\n * - If there is a call currently executing then the new call will be added\n * to the queue and the function will return immediately\n *\n * NOTE: The following assumptions about the operation must hold true:\n * - The operation is synchronous in nature\n * - If any asynchronous side effects of the call exist, it should not\n * have any bearing on the correctness of the next call in the queue\n * - The operation has a void return\n * - The caller should not assume that the call has completed upon\n * return of the function\n * - The caller can assume that all the queued calls will complete\n * within the current microtask\n * - The only way that a call will encounter another call in the queue\n * would be if the call at the front of the queue initiated this call\n * as part of its synchronous execution\n */\nfunction orderedQueueOperation<TArgs extends any[]>(operation: (...args: TArgs) => void) {\n const callsQueue: TArgs[] = [];\n let busyPushingNext = false;\n return function callOperation(...args: TArgs) {\n if (busyPushingNext) {\n callsQueue.unshift(args);\n return;\n }\n busyPushingNext = true;\n operation(...args);\n while (callsQueue.length > 0) {\n const nextCallArgs = callsQueue.pop();\n nextCallArgs && operation(...nextCallArgs);\n }\n busyPushingNext = false;\n };\n}\n\n/**\n * Custom Subject that ensures that subscribers are notified of values in the order that they arrived.\n * A standard Subject does not have this guarantee.\n * For example, given the following code:\n * ```typescript\n * const subject = new Subject<string>();\n subject.subscribe(value => {\n if (value === 'start') subject.next('end');\n });\n subject.subscribe(value => { });\n subject.next('start');\n * ```\n * When `subject` is a standard `Subject<T>` the second subscriber would recieve `end` and then `start`.\n * When `subject` is a `OrderedSubject<T>` the second subscriber would recieve `start` and then `end`.\n */\nexport class OrderedSubject<T> extends Subject<T> {\n private _orderedNext = orderedQueueOperation((value?: T) => super.next(<T>value));\n\n next(value?: T): void {\n this._orderedNext(value);\n }\n}\n\n/**\n * Custom BehaviorSubject that ensures that subscribers are notified of values in the order that they arrived.\n * A standard BehaviorSubject does not have this guarantee.\n * For example, given the following code:\n * ```typescript\n * const subject = new BehaviorSubject<string>();\n subject.subscribe(value => {\n if (value === 'start') subject.next('end');\n });\n subject.subscribe(value => { });\n subject.next('start');\n * ```\n * When `subject` is a standard `BehaviorSubject<T>` the second subscriber would recieve `end` and then `start`.\n * When `subject` is a `OrderedBehaviorSubject<T>` the second subscriber would recieve `start` and then `end`.\n */\nexport class OrderedBehaviorSubject<T> extends BehaviorSubject<T> {\n private _orderedNext = orderedQueueOperation((value: T) => super.next(value));\n private _currentValue: T;\n\n constructor(value: T) {\n super(value);\n this._currentValue = value;\n }\n\n getValue(): T {\n return this._currentValue;\n }\n\n next(value: T): void {\n this._currentValue = value;\n this._orderedNext(value);\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { share } from 'rxjs/operators';\n\nimport { leaveNgxs } from './operators/leave-ngxs';\nimport { InternalNgxsExecutionStrategy } from './execution/internal-ngxs-execution-strategy';\nimport { OrderedSubject } from './internal/custom-rxjs-subjects';\n\n/**\n * Status of a dispatched action\n */\nexport const enum ActionStatus {\n Dispatched = 'DISPATCHED',\n Successful = 'SUCCESSFUL',\n Canceled = 'CANCELED',\n Errored = 'ERRORED'\n}\n\nexport interface ActionContext<T = any> {\n status: ActionStatus;\n action: T;\n error?: Error;\n}\n\n/**\n * Internal Action stream that is emitted anytime an action is dispatched.\n */\n@Injectable({ providedIn: 'root' })\nexport class InternalActions extends OrderedSubject<ActionContext> implements OnDestroy {\n ngOnDestroy(): void {\n this.complete();\n }\n}\n\n/**\n * Action stream that is emitted anytime an action is dispatched.\n *\n * You can listen to this in services to react without stores.\n */\n@Injectable({ providedIn: 'root' })\nexport class Actions extends Observable<ActionContext> {\n constructor(\n internalActions$: InternalActions,\n internalExecutionStrategy: InternalNgxsExecutionStrategy\n ) {\n const sharedInternalActions$ = internalActions$.pipe(\n leaveNgxs(internalExecutionStrategy),\n // The `InternalActions` subject emits outside of the Angular zone.\n // We have to re-enter the Angular zone for any incoming consumer.\n // The `share()` operator reduces the number of change detections.\n // This would call leave only once for any stream emission across all active subscribers.\n share()\n );\n\n super(observer => {\n const childSubscription = sharedInternalActions$.subscribe({\n next: ctx => observer.next(ctx),\n error: error => observer.error(error),\n complete: () => observer.complete()\n });\n\n observer.add(childSubscription);\n });\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport { PlainObject } from '@ngxs/store/internals';\n\nimport { OrderedBehaviorSubject } from './custom-rxjs-subjects';\n\n/**\n * BehaviorSubject of the entire state.\n * @ignore\n */\n@Injectable({ providedIn: 'root' })\nexport class StateStream extends OrderedBehaviorSubject<PlainObject> implements OnDestroy {\n constructor() {\n super({});\n }\n\n ngOnDestroy(): void {\n // The StateStream should never emit values once the root view is removed,\n // such as when the `NgModuleRef.destroy()` method is called. This is crucial\n // for preventing memory leaks in server-side rendered apps, where a new StateStream\n // is created for each HTTP request. If users forget to unsubscribe from `store.select`\n // or `store.subscribe`, it can result in significant memory leaks in SSR apps.\n this.complete();\n }\n}\n","/**\n * Returns the type from an action instance/class.\n * @ignore\n */\nexport function getActionTypeFromInstance(action: any): string | undefined {\n if (action.constructor && action.constructor.type) {\n return action.constructor.type;\n } else {\n return action.type;\n }\n}\n\n/**\n * Matches a action\n * @ignore\n */\nexport function actionMatcher(action1: any) {\n const type1 = getActionTypeFromInstance(action1);\n\n return function(action2: any) {\n return type1 === getActionTypeFromInstance(action2);\n };\n}\n\n/**\n * Set a deeply nested value. Example:\n *\n * setValue({ foo: { bar: { eat: false } } },\n * 'foo.bar.eat', true) //=> { foo: { bar: { eat: true } } }\n *\n * While it traverses it also creates new objects from top down.\n *\n * @ignore\n */\nexport const setValue = (obj: any, prop: string, val: any) => {\n obj = { ...obj };\n\n const split = prop.split('.');\n const lastIndex = split.length - 1;\n\n split.reduce((acc, part, index) => {\n if (index === lastIndex) {\n acc[part] = val;\n } else {\n acc[part] = Array.isArray(acc[part]) ? acc[part].slice() : { ...acc[part] };\n }\n\n return acc && acc[part];\n }, obj);\n\n return obj;\n};\n\n/**\n * Get a deeply nested value. Example:\n *\n * getValue({ foo: bar: [] }, 'foo.bar') //=> []\n *\n * @ignore\n */\nexport const getValue = (obj: any, prop: string): any =>\n prop.split('.').reduce((acc: any, part: string) => acc && acc[part], obj);\n\n/**\n * Simple object check.\n *\n * isObject({a:1}) //=> true\n * isObject(1) //=> false\n *\n * @ignore\n */\nexport const isObject = (item: any) => {\n return item && typeof item === 'object' && !Array.isArray(item);\n};\n\n/**\n * Deep merge two objects.\n *\n * mergeDeep({a:1, b:{x: 1, y:2}}, {b:{x: 3}, c:4}) //=> {a:1, b:{x:3, y:2}, c:4}\n *\n * @param base base object onto which `sources` will be applied\n */\nexport const mergeDeep = (base: any, ...sources: any[]): any => {\n if (!sources.length) return base;\n const source = sources.shift();\n\n if (isObject(base) && isObject(source)) {\n for (const key in source) {\n if (isObject(source[key])) {\n if (!base[key]) Object.assign(base, { [key]: {} });\n mergeDeep(base[key], source[key]);\n } else {\n Object.assign(base, { [key]: source[key] });\n }\n }\n }\n\n return mergeDeep(base, ...sources);\n};\n","import { Injectable, InjectionToken, Type, inject } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { PlainObject, ɵStateClass } from '@ngxs/store/internals';\nimport { StateOperator } from '@ngxs/store/operators';\n\nimport { mergeDeep } from './utils/utils';\nimport { DispatchOutsideZoneNgxsExecutionStrategy } from './execution/dispatch-outside-zone-ngxs-execution-strategy';\nimport { NgxsExecutionStrategy } from './execution/symbols';\nimport { SharedSelectorOptions } from './internal/internals';\nimport { StateToken } from './state-token/state-token';\n\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;\n\n// The injection token is used to resolve a list of states provided at\n// the root level through either `NgxsModule.forRoot` or `provideStore`.\nexport const ROOT_STATE_TOKEN = new InjectionToken<Array<ɵStateClass>>(\n NG_DEV_MODE ? 'ROOT_STATE_TOKEN' : ''\n);\n\n// The injection token is used to resolve a list of states provided at\n// the feature level through either `NgxsModule.forFeature` or `provideStates`.\n// The Array<Array> is used to overload the resolved value of the token because\n// it is a multi-provider token.\nexport const FEATURE_STATE_TOKEN = new InjectionToken<Array<Array<ɵStateClass>>>(\n NG_DEV_MODE ? 'FEATURE_STATE_TOKEN' : ''\n);\n\n// The injection token is used to resolve to custom NGXS plugins provided\n// at the root level through either `{provide}` scheme or `withNgxsPlugin`.\nexport const NGXS_PLUGINS = new InjectionToken(NG_DEV_MODE ? 'NGXS_PLUGINS' : '');\n\n// The injection token is used to resolve to options provided at the root\n// level through either `NgxsModule.forRoot` or `provideStore`.\nexport const NGXS_OPTIONS = new InjectionToken<NgxsModuleOptions>(\n NG_DEV_MODE ? 'NGXS_OPTIONS' : ''\n);\n\nexport type NgxsLifeCycle = Partial<NgxsOnChanges> &\n Partial<NgxsOnInit> &\n Partial<NgxsAfterBootstrap>;\n\nexport type NgxsPluginFn = (state: any, mutation: any, next: NgxsNextPluginFn) => any;\n\n/**\n * The NGXS config settings.\n */\n@Injectable({\n providedIn: 'root',\n useFactory: () => mergeDeep(new NgxsConfig(), inject(NGXS_OPTIONS))\n})\nexport class NgxsConfig {\n /**\n * Run in development mode. This will add additional debugging features:\n * - Object.freeze on the state and actions to guarantee immutability\n * (default: false)\n *\n * Note: this property will be accounted only in development mode when using the Ivy compiler.\n * It makes sense to use it only during development to ensure there're no state mutations.\n * When building for production, the Object.freeze will be tree-shaken away.\n */\n developmentMode: boolean;\n compatibility: {\n /**\n * Support a strict Content Security Policy.\n * This will circumvent some optimisations that violate a strict CSP through the use of `new Function(...)`.\n * (default: false)\n */\n strictContentSecurityPolicy: boolean;\n };\n /**\n * Determines the execution context to perform async operations inside. An implementation can be\n * provided to override the default behaviour where the async operations are run\n * outside Angular's zone but all observable behaviours of NGXS are run back inside Angular's zone.\n * These observable behaviours are from:\n * `@Select(...)`, `store.select(...)`, `actions.subscribe(...)` or `store.dispatch(...).subscribe(...)`\n * Every `zone.run` causes Angular to run change detection on the whole tree (`app.tick()`) so of your\n * application doesn't rely on zone.js running change detection then you can switch to the\n * `NoopNgxsExecutionStrategy` that doesn't interact with zones.\n * (default: null)\n */\n executionStrategy: Type<NgxsExecutionStrategy>;\n /**\n * Defining the default state before module initialization\n * This is convenient if we need to create a define our own set of states.\n * @deprecated will be removed after v4\n * (default: {})\n */\n defaultsState: PlainObject = {};\n /**\n * Defining shared selector options\n */\n selectorOptions: SharedSelectorOptions = {\n injectContainerState: true, // TODO: default is true in v3, will change in v4\n suppressErrors: true // TODO: default is true in v3, will change in v4\n };\n\n constructor() {\n this.compatibility = {\n strictContentSecurityPolicy: false\n };\n this.executionStrategy = DispatchOutsideZoneNgxsExecutionStrategy;\n }\n}\n\nexport { StateOperator };\n\n/**\n * State context provided to the actions in the state.\n */\nexport interface StateContext<T> {\n /**\n * Get the current state.\n */\n getState(): T;\n\n /**\n * Reset the state to a new value.\n */\n setState(val: T | StateOperator<T>): T;\n\n /**\n * Patch the existing state with the provided value.\n */\n patchState(val: Partial<T>): T;\n\n /**\n * Dispatch a new action and return the dispatched observable.\n */\n dispatch(actions: any | any[]): Observable<void>;\n}\n\nexport type NgxsNextPluginFn = (state: any, mutation: any) => any;\n\n/**\n * Plugin interface\n */\nexport interface NgxsPlugin {\n /**\n * Handle the state/action before its submitted to the state handlers.\n */\n handle(state: any, action: any, next: NgxsNextPluginFn): any;\n}\n\n/**\n * Options that can be provided to the store.\n */\nexport interface StoreOptions<T> {\n /**\n * Name of the state. Required.\n */\n name: string | StateToken<T>;\n\n /**\n * Default values for the state. If not provided, uses empty object.\n */\n defaults?: T;\n\n /**\n * Sub states for the given state.\n */\n children?: ɵStateClass[];\n}\n\n/**\n * Represents a basic change from a previous to a new value for a single state instance.\n * Passed as a value in a NgxsSimpleChanges object to the ngxsOnChanges hook.\n */\nexport class NgxsSimpleChange<T = any> {\n constructor(\n public readonly previousValue: T,\n public readonly currentValue: T,\n public readonly firstChange: boolean\n ) {}\n}\n\n/**\n * On init interface\n */\nexport interface NgxsOnInit {\n ngxsOnInit(ctx: StateContext<any>): void;\n}\n\n/**\n * On change interface\n */\nexport interface NgxsOnChanges {\n ngxsOnChanges(change: NgxsSimpleChange): void;\n}\n\n/**\n * After bootstrap interface\n */\nexport interface NgxsAfterBootstrap {\n ngxsAfterBootstrap(ctx: StateContext<any>): void;\n}\n\nexport type NgxsModuleOptions = Partial<NgxsConfig>;\n\n/** @internal */\ndeclare global {\n const ngDevMode: boolean;\n}\n","import { Inject, Injectable, Optional, SkipSelf } from '@angular/core';\nimport { NGXS_PLUGINS, NgxsPlugin, NgxsPluginFn } from './symbols';\n\n@Injectable()\nexport class PluginManager {\n public plugins: NgxsPluginFn[] = [];\n\n constructor(\n @Optional()\n @SkipSelf()\n private _parentManager: PluginManager,\n @Inject(NGXS_PLUGINS)\n @Optional()\n private _pluginHandlers: NgxsPlugin[]\n ) {\n this.registerHandlers();\n }\n\n private get rootPlugins(): NgxsPluginFn[] {\n return (this._parentManager && this._parentManager.plugins) || this.plugins;\n }\n\n private registerHandlers(): void {\n const pluginHandlers: NgxsPluginFn[] = this.getPluginHandlers();\n this.rootPlugins.push(...pluginHandlers);\n }\n\n private getPluginHandlers(): NgxsPluginFn[] {\n const handlers: NgxsPlugin[] = this._pluginHandlers || [];\n return handlers.map(\n (plugin: NgxsPlugin) =>\n (plugin.handle ? plugin.handle.bind(plugin) : plugin) as NgxsPluginFn\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { EMPTY, forkJoin, Observable, of, Subject, throwError } from 'rxjs';\nimport { exhaustMap, filter, shareReplay, take } from 'rxjs/operators';\n\nimport { compose } from '../utils/compose';\nimport { InternalErrorReporter, ngxsErrorHandler } from './error-handler';\nimport { ActionContext, ActionStatus, InternalActions } from '../actions-stream';\nimport { StateStream } from './state-stream';\nimport { PluginManager } from '../plugin-manager';\nimport { InternalNgxsExecutionStrategy } from '../execution/internal-ngxs-execution-strategy';\nimport { getActionTypeFromInstance } from '../utils/utils';\n\n/**\n * Internal Action result stream that is emitted when an action is completed.\n * This is used as a method of returning the action result to the dispatcher\n * for the observable returned by the dispatch(...) call.\n * The dispatcher then asynchronously pushes the result from this stream onto the main action stream as a result.\n */\n@Injectable({ providedIn: 'root' })\nexport class InternalDispatchedActionResults extends Subject<ActionContext> {}\n\n@Injectable({ providedIn: 'root' })\nexport class InternalDispatcher {\n constructor(\n private _actions: InternalActions,\n private _actionResults: InternalDispatchedActionResults,\n private _pluginManager: PluginManager,\n private _stateStream: StateStream,\n private _ngxsExecutionStrategy: InternalNgxsExecutionStrategy,\n private _internalErrorReporter: InternalErrorReporter\n ) {}\n\n /**\n * Dispatches event(s).\n */\n dispatch(actionOrActions: any | any[]): Observable<any> {\n const result = this._ngxsExecutionStrategy.enter(() =>\n this.dispatchByEvents(actionOrActions)\n );\n\n return result.pipe(\n ngxsErrorHandler(this._internalErrorReporter, this._ngxsExecutionStrategy)\n );\n }\n\n private dispatchByEvents(actionOrActions: any | any[]): Observable<any> {\n if (Array.isArray(actionOrActions)) {\n if (actionOrActions.length === 0) return of(this._stateStream.getValue());\n return forkJoin(actionOrActions.map(action => this.dispatchSingle(action)));\n } else {\n return this.dispatchSingle(actionOrActions);\n }\n }\n\n private dispatchSingle(action: any): Observable<any> {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const type: string | undefined = getActionTypeFromInstance(action);\n if (!type) {\n const error = new Error(\n `This action doesn't have a type property: ${action.constructor.name}`\n );\n return throwError(error);\n }\n }\n\n const prevState = this._stateStream.getValue();\n const plugins = this._pluginManager.plugins;\n\n return (\n compose([\n ...plugins,\n (nextState: any, nextAction: any) => {\n if (nextState !== prevState) {\n this._stateStream.next(nextState);\n }\n const actionResult$ = this.getActionResultStream(nextAction);\n actionResult$.subscribe(ctx => this._actions.next(ctx));\n this._actions.next({ action: nextAction, status: ActionStatus.Dispatched });\n return this.createDispatchObservable(actionResult$);\n }\n ])(prevState, action) as Observable<any>\n ).pipe(shareReplay());\n }\n\n private getActionResultStream(action: any): Observable<ActionContext> {\n return this._actionResults.pipe(\n filter(\n (ctx: ActionContext) => ctx.action === action && ctx.status !== ActionStatus.Dispatched\n ),\n take(1),\n shareReplay()\n );\n }\n\n private createDispatchObservable(actionResult$: Observable<ActionContext>): Observable<any> {\n return actionResult$\n .pipe(\n exhaustMap((ctx: ActionContext) => {\n switch (ctx.status) {\n case ActionStatus.Successful:\n return of(this._stateStream.getValue());\n case ActionStatus.Errored:\n return throwError(ctx.error);\n default:\n return EMPTY;\n }\n })\n )\n .pipe(shareReplay());\n }\n}\n","/**\n * Object freeze code\n * https://github.com/jsdf/deep-freeze\n */\nexport const deepFreeze = (o: any) => {\n Object.freeze(o);\n\n const oIsFunction = typeof o === 'function';\n const hasOwnProp = Object.prototype.hasOwnProperty;\n\n Object.getOwnPropertyNames(o).forEach(function(prop) {\n if (\n hasOwnProp.call(o, prop) &&\n (oIsFunction ? prop !== 'caller' && prop !== 'callee' && prop !== 'arguments' : true) &&\n o[prop] !== null &&\n (typeof o[prop] === 'object' || typeof o[prop] === 'function') &&\n !Object.isFrozen(o[prop])\n ) {\n deepFreeze(o[prop]);\n }\n });\n\n return o;\n};\n","import { Injectable } from '@angular/core';\n\nimport { StateOperations, StatesAndDefaults } from '../internal/internals';\nimport { InternalDispatcher } from '../internal/dispatcher';\nimport { StateStream } from './state-stream';\nimport { NgxsConfig } from '../symbols';\nimport { deepFreeze } from '../utils/freeze';\n\n/**\n * @ignore\n */\n@Injectable({ providedIn: 'root' })\nexport class InternalStateOperations {\n constructor(\n private _stateStream: StateStream,\n private _dispatcher: InternalDispatcher,\n private _config: NgxsConfig\n ) {}\n\n /**\n * Returns the root state operators.\n */\n getRootStateOperations(): StateOperations<any> {\n const rootStateOperations = {\n getState: () => this._stateStream.getValue(),\n setState: (newState: any) => this._stateStream.next(newState),\n dispatch: (actionOrActions: any | any[]) => this._dispatcher.dispatch(actionOrActions)\n };\n\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n return this._config.developmentMode\n ? ensureStateAndActionsAreImmutable(rootStateOperations)\n : rootStateOperations;\n } else {\n return rootStateOperations;\n }\n }\n\n setStateToTheCurrentWithNew(results: StatesAndDefaults): void {\n const stateOperations: StateOperations<any> = this.getRootStateOperations();\n\n // Get our current stream\n const currentState = stateOperations.getState();\n // Set the state to the current + new\n stateOperations.setState({ ...currentState, ...results.defaults });\n }\n}\n\nfunction ensureStateAndActionsAreImmutable(root: StateOperations<any>): StateOperations<any> {\n return {\n getState: () => root.getState(),\n setState: value => {\n const frozenValue = deepFreeze(value);\n return root.setState(frozenValue);\n },\n dispatch: actions => {\n return root.dispatch(actions);\n }\n };\n}\n","import {\n PlainObjectOf,\n ɵStateClass,\n ɵMETA_KEY,\n ɵMETA_OPTIONS_KEY,\n ɵSELECTOR_META_KEY\n} from '@ngxs/store/internals';\nimport { Observable } from 'rxjs';\n\nimport { NgxsConfig, StoreOptions } from '../symbols';\nimport { ActionHandlerMetaData } from '../actions/symbols';\n\n// inspired from https://stackoverflow.com/a/43674389\nexport interface StateClassInternal<T = any, U = any> extends ɵStateClass<T> {\n [ɵMETA_KEY]?: MetaDataModel;\n [ɵMETA_OPTIONS_KEY]?: StoreOptions<U>;\n}\n\nexport type StateKeyGraph = PlainObjectOf<string[]>;\nexport type StatesByName = PlainObjectOf<StateClassInternal>;\n\nexport interface StateOperations<T> {\n getState(): T;\n\n setState(val: T): T;\n\n dispatch(actionOrActions: any | any[]): Observable<void>;\n}\n\nexport interface MetaDataModel {\n name: string | null;\n actions: PlainObjectOf<ActionHandlerMetaData[]>;\n defaults: any;\n path: string | null;\n makeRootSelector: SelectorFactory | null;\n children?: StateClassInternal[];\n}\n\nexport interface RuntimeSelectorContext {\n getStateGetter(key: any): (state: any) => any;\n getSelectorOptions(localOptions?: SharedSelectorOptions): SharedSelectorOptions;\n}\n\nexport type SelectFromRootState = (rootState: any) => any;\nexport type SelectorFactory = (runtimeContext: RuntimeSelectorContext) => SelectFromRootState;\n\nexport interface SharedSelectorOptions {\n injectContainerState?: boolean;\n suppressErrors?: boolean;\n}\n\nexport interface SelectorMetaDataModel {\n makeRootSelector: SelectorFactory | null;\n originalFn: Function | null;\n containerClass: any;\n selectorName: string | null;\n getSelectorOptions: () => SharedSelectorOptions;\n}\n\nexport interface MappedStore {\n name: string;\n isInitialised: boolean;\n actions: PlainObjectOf<ActionHandlerMetaData[]>;\n defaults: any;\n instance: any;\n path: string;\n}\n\nexport interface StatesAndDefaults {\n defaults: any;\n states: MappedStore[];\n}\n\n/**\n * Ensures metadata is attached to the class and returns it.\n *\n * @ignore\n */\nexport function ensureStoreMetadata(target: StateClassInternal): MetaDataModel {\n if (!target.hasOwnProperty(ɵMETA_KEY)) {\n const defaultMetadata: MetaDataModel = {\n name: null,\n actions: {},\n defaults: {},\n path: null,\n makeRootSelector(context: RuntimeSelectorContext) {\n return context.getStateGetter(defaultMetadata.name);\n },\n children: []\n };\n\n Object.defineProperty(target, ɵMETA_KEY, { value: defaultMetadata });\n }\n return getStoreMetadata(target);\n}\n\n/**\n * Get the metadata attached to the state class if it exists.\n *\n * @ignore\n */\nexport function getStoreMetadata(target: StateClassInternal): MetaDataModel {\n return target[ɵMETA_KEY]!;\n}\n\n/**\n * Ensures metadata is attached to the selector and returns it.\n *\n * @ignore\n */\nexport function ensureSelectorMetadata(target: Function): SelectorMetaDataModel {\n if (!target.hasOwnProperty(ɵSELECTOR_META_KEY)) {\n const defaultMetadata: SelectorMetaDataModel = {\n makeRootSelector: null,\n originalFn: null,\n containerClass: null,\n selectorName: null,\n getSelectorOptions: () => ({})\n };\n\n Object.defineProperty(target, ɵSELECTOR_META_KEY, { value: defaultMetadata });\n }\n\n return getSelectorMetadata(target);\n}\n\n/**\n * Get the metadata attached to the selector if it exists.\n *\n * @ignore\n */\nexport function getSelectorMetadata(target: any): SelectorMetaDataModel {\n return target[ɵSELECTOR_META_KEY];\n}\n\n/**\n * Get a deeply nested value. Example:\n *\n * getValue({ foo: bar: [] }, 'foo.bar') //=> []\n *\n * Note: This is not as fast as the `fastPropGetter` but is strict Content Security Policy compliant.\n * See perf hit: https://jsperf.com/fast-value-getter-given-path/1\n *\n * @ignore\n */\nfunction compliantPropGetter(paths: string[]): (x: any) => any {\n const copyOfPaths = paths.slice();\n return obj => copyOfPaths.reduce((acc: any, part: string) => acc && acc[part], obj);\n}\n\n/**\n * The generated function is faster than:\n * - pluck (Observable operator)\n * - memoize\n *\n * @ignore\n */\nfunction fastPropGetter(paths: string[]): (x: any) => any {\n const segments = paths;\n let seg = 'store.' + segments[0];\n let i = 0;\n const l = segments.length;\n\n let expr = seg;\n while (++i < l) {\n expr = expr + ' && ' + (seg = seg + '.' + segments[i]);\n }\n\n const fn = new Function('store', 'return ' + expr + ';');\n\n return <(x: any) => any>fn;\n}\n\n/**\n * Get a deeply nested value. Example:\n *\n * getValue({ foo: bar: [] }, 'foo.bar') //=> []\n *\n * @ignore\n */\nexport function propGetter(paths: string[], config: NgxsConfig) {\n if (config && config.compatibility && config.compatibility.strictContentSecurityPolicy) {\n return compliantPropGetter(paths);\n } else {\n return fastPropGetter(paths);\n }\n}\n\n/**\n * Given an array of states, it will return a object graph. Example:\n * const states = [\n * Cart,\n * CartSaved,\n * CartSavedItems\n * ]\n *\n * would return:\n *\n * const graph = {\n * cart: ['saved'],\n * saved: ['items'],\n * items: []\n * };\n *\n * @ignore\n */\nexport function buildGraph(stateClasses: StateClassInternal[]): StateKeyGraph {\n const findName = (stateClass: StateClassInternal) => {\n const meta = stateClasses.find(g => g === stateClass);\n\n // Caretaker note: we have still left the `typeof` condition in order to avoid\n // creating a breaking change for projects that still use the View Engine.\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !meta) {\n throw new Error(\n `Child state not found: ${stateClass}. \\r\\nYou may have forgotten to add states to module`\n );\n }\n\n return meta![ɵMETA_KEY]!.name!;\n };\n\n return stateClasses.reduce<StateKeyGraph>(\n (result: StateKeyGraph, stateClass: StateClassInternal) => {\n const { name, children } = stateClass[ɵMETA_KEY]!;\n result[name!] = (children || []).map(findName);\n return result;\n },\n {}\n );\n}\n\n/**\n * Given a states array, returns object graph\n * returning the name and state metadata. Example:\n *\n * const graph = {\n * cart: { metadata }\n * };\n *\n * @ignore\n */\nexport function nameToState(states: StateClassInternal[]): PlainObjectOf<StateClassInternal> {\n return states.reduce<PlainObjectOf<StateClassInternal>>(\n (result: PlainObjectOf<StateClassInternal>, stateClass: StateClassInternal) => {\n const meta = stateClass[ɵMETA_KEY]!;\n result[meta.name!] = stateClass;\n return result;\n },\n {}\n );\n}\n\n/**\n * Given a object relationship graph will return the full path\n * for the child items. Example:\n *\n * const graph = {\n * cart: ['saved'],\n * saved: ['items'],\n * items: []\n * };\n *\n * would return:\n *\n * const r = {\n * cart: 'cart',\n * saved: 'cart.saved',\n * items: 'cart.saved.items'\n * };\n *\n * @ignore\n */\nexport function findFullParentPath(\n obj: StateKeyGraph,\n newObj: PlainObjectOf<string> = {}\n): PlainObjectOf<string> {\n const visit = (child: StateKeyGraph, keyToFind: string): string | null => {\n for (const key in child) {\n if (child.hasOwnProperty(key) && child[key].indexOf(keyToFind) >= 0) {\n const parent = visit(child, key);\n return parent !== null ? `${parent}.${key}` : key;\n }\n }\n return null;\n };\n\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n const parent = visit(obj, key);\n newObj[key] = parent ? `${parent}.${key}` : key;\n }\n }\n\n return newObj;\n}\n\n/**\n * Given a object graph, it will return the items topologically sorted Example:\n *\n * const graph = {\n * cart: ['saved'],\n * saved: ['items'],\n * items: []\n * };\n *\n * would return:\n *\n * const results = [\n * 'items',\n * 'saved',\n * 'cart'\n * ];\n *\n * @ignore\n */\nexport function topologicalSort(graph: StateKeyGraph): string[] {\n const sorted: string[] = [];\n const visited: PlainObjectOf<boolean> = {};\n\n const visit = (name: string, ancestors: string[] = []) => {\n if (!Array.isArray(ancestors)) {\n ancestors = [];\n }\n\n ancestors.push(name);\n visited[name] = true;\n\n graph[name].forEach((dep: string) => {\n // Caretaker note: we have still left the `typeof` condition in order to avoid\n // creating a breaking change for projects that still use the View Engine.\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && ancestors.indexOf(dep) >= 0) {\n throw new Error(\n `Circular dependency '${dep}' is required by '${name}': ${ancestors.join(' -> ')}`\n );\n }\n\n if (visited[dep]) {\n return;\n }\n\n visit(dep, ancestors.slice(0));\n });\n\n if (sorted.indexOf(name) < 0) {\n sorted.push(name);\n }\n };\n\n Object.keys(graph).forEach(k => visit(k));\n\n return sorted.reverse();\n}\n\n/**\n * Returns if the parameter is a object or not.\n *\n * @ignore\n */\nexport function isObject(obj: any) {\n return (typeof obj === 'object' && obj !== null) || typeof obj === 'function';\n}\n","import { memoize } from '@ngxs/store/internals';\n\nimport {\n getSelectorMetadata,\n getStoreMetadata,\n SelectorMetaDataModel,\n SharedSelectorOptions,\n RuntimeSelectorContext,\n SelectorFactory,\n} from '../internal/internals';\nimport { CreationMetadata, RuntimeSelectorInfo } from './selector-models';\n\nexport function createRootSelectorFactory<T extends (...args: any[]) => any>(\n selectorMetaData: SelectorMetaDataModel,\n selectors: any[] | undefined,\n memoizedSelectorFn: T\n): SelectorFactory {\n return (context: RuntimeSelectorContext) => {\n const { argumentSelectorFunctions, selectorOptions } = getRuntimeSelectorInfo(\n context,\n selectorMetaData,\n selectors\n );\n\n return function selectFromRoot(rootState: any) {\n // Determine arguments from the app state using the selectors\n const results = argumentSelectorFunctions.map((argFn) => argFn(rootState));\n\n // if the lambda tries to access a something on the\n // state that doesn't exist, it will throw a TypeError.\n // since this is quite usual behaviour, we simply return undefined if so.\n try {\n return memoizedSelectorFn(...results);\n } catch (ex) {\n if (ex instanceof TypeError && selectorOptions.suppressErrors) {\n return undefined;\n }\n\n throw ex;\n }\n };\n };\n}\n\nexport function createMemoizedSelectorFn<T extends (...args: any[]) => any>(\n originalFn: T,\n creationMetadata: Partial<CreationMetadata> | undefined\n) {\n const containerClass = creationMetadata && creationMetadata.containerClass;\n const wrappedFn = function wrappedSelectorFn(...args: any[]) {\n const returnValue = originalFn.apply(containerClass, args);\n if (returnValue instanceof Function) {\n const innerMemoizedFn = memoize.apply(null, [returnValue]);\n return innerMemoizedFn;\n }\n return returnValue;\n } as T;\n const memoizedFn = memoize(wrappedFn);\n Object.setPrototypeOf(memoizedFn, originalFn);\n return memoizedFn;\n}\n\nfunction getRuntimeSelectorInfo(\n context: RuntimeSelectorContext,\n selectorMetaData: SelectorMetaDataModel,\n selectors: any[] | undefined = []\n): RuntimeSelectorInfo {\n const localSelectorOptions = selectorMetaData.getSelectorOptions();\n const selectorOptions = context.getSelectorOptions(localSelectorOptions);\n const selectorsToApply = getSelectorsToApply(\n selectors,\n selectorOptions,\n selectorMetaData.containerClass\n );\n\n const argumentSelectorFunctions = selectorsToApply.map((selector) => {\n const factory = getRootSelectorFactory(selector);\n return factory(context);\n });\n return {\n selectorOptions,\n argumentSelectorFunctions,\n };\n}\n\nfunction getSelectorsToApply(\n selectors: any[] | undefined = [],\n selectorOptions: SharedSelectorOptions,\n containerClass: any\n) {\n const selectorsToApply = [];\n const canInjectContainerState =\n selectors.length === 0 || selectorOptions.injectContainerState;\n if (containerClass && canInjectContainerState) {\n // If we are on a state class, add it as the first selector parameter\n const metadata = getStoreMetadata(containerClass);\n if (metadata) {\n selectorsToApply.push(containerClass);\n }\n }\n if (selectors) {\n selectorsToApply.push(...selectors);\n }\n return selectorsToApply;\n}\n\n/**\n * This function gets the factory function to create the selector to get the selected slice from the app state\n * @ignore\n */\nexport function getRootSelectorFactory(selector: any): SelectorFactory {\n const metadata = getSelectorMetadata(selector) || getStoreMetadata(selector);\n return (metadata && metadata.makeRootSelector) || (() => selector);\n}\n","import { OperatorFunction, Observable } from 'rxjs';\nimport { map, filter } from 'rxjs/operators';\n\nimport { ActionType } from '../actions/symbols';\nimport { getActionTypeFromInstance } from '../utils/utils';\nimport { ActionContext, ActionStatus } from '../actions-stream';\n\ntype TupleKeys<T extends any[]> = Exclude<keyof T, keyof []>;\n\n/**\n * Given a POJO, returns the POJO type, given a class constructor object, returns the type of the class.\n *\n * This utility type exists due to the complexity of ActionType being either an ActionDef class or the plain\n * `{ type: string }` type (or similar compatible POJO types).\n */\ntype Constructed<T> = T extends new (...args: any[]) => infer U ? U : T;\n\nexport interface ActionCompletion<T = any, E = Error> {\n action: T;\n result: {\n successful: boolean;\n canceled: boolean;\n error?: E;\n };\n}\n\n/**\n * RxJS operator for selecting out specific actions.\n *\n * This will grab actions that have just been dispatched as well as actions that have completed\n */\nexport function ofAction<T extends ActionType[]>(\n ...allowedTypes: T\n): OperatorFunction<\n ActionContext<Constructed<T[TupleKeys<T>]>>,\n Constructed<T[TupleKeys<T>]>\n> {\n return ofActionOperator(allowedTypes);\n}\n\n/**\n * RxJS operator for selecting out specific actions.\n *\n * This will ONLY grab actions that have just been dispatched\n */\nexport function ofActionDispatched<T extends ActionType[]>(\n ...allowedTypes: T\n): OperatorFunction<\n ActionContext<Constructed<T[TupleKeys<T>]>>,\n Constructed<T[TupleKeys<T>]>\n> {\n return ofActionOperator(allowedTypes, [ActionStatus.Dispatched]);\n}\n\n/**\n * RxJS operator for selecting out specific actions.\n *\n * This will ONLY grab actions that have just been successfully completed\n */\nexport function ofActionSuccessful<T extends ActionType[]>(\n ...allowedTypes: T\n): OperatorFunction<\n ActionContext<Constructed<T[TupleKeys<T>]>>,\n Constructed<T[TupleKeys<T>]>\n> {\n return ofActionOperator(allowedTypes, [ActionStatus.Successful]);\n}\n\n/**\n * RxJS operator for selecting out specific actions.\n *\n * This will ONLY grab actions that have just been canceled\n */\nexport function ofActionCanceled<T extends ActionType[]>(\n ...allowedTypes: T\n): OperatorFunction<\n ActionContext<Constructed<T[TupleKeys<T>]>>,\n Constructed<T[TupleKeys<T>]>\n> {\n return ofActionOperator(allowedTypes, [ActionStatus.Canceled]);\n}\n\n/**\n * RxJS operator for selecting out specific actions.\n *\n * This will ONLY grab actions that have just been completed\n */\nexport function ofActionCompleted<T extends ActionType[]>(\n ...allowedTypes: T\n): OperatorFunction<\n ActionContext<Constructed<T[TupleKeys<T>]>>,\n ActionCompletion<Constructed<T[TupleKeys<T>]>>\n> {\n const allowedStatuses = [\n ActionStatus.Successful,\n ActionStatus.Canceled,\n ActionStatus.Errored\n ];\n return ofActionOperator(allowedTypes, allowedStatuses, mapActionResult);\n}\n\n/**\n * RxJS operator for selecting out specific actions.\n *\n * This will ONLY grab actions that have just thrown an error\n */\nexport function ofActionErrored<T extends ActionType[]>(\n ...allowedTypes: T\n): OperatorFunction<\n ActionContext<Constructed<T[TupleKeys<T>]>>,\n Constructed<T[TupleKeys<T>]>\n> {\n return ofActionOperator(allowedTypes, [ActionStatus.Errored]);\n}\n\nfunction ofActionOperator(\n allowedTypes: ActionType[],\n statuses?: ActionStatus[],\n // This actually could've been `OperatorFunction<ActionContext, ActionCompletion | any>`,\n // since it maps either to `ctx.action` OR to `ActionCompletion`. But `ActionCompleteion | any`\n // defaults to `any`, thus there is no sense from union type.\n mapOperator: () => OperatorFunction<ActionContext, any> = mapAction\n): OperatorFunction<ActionContext, any> {\n const allowedMap = createAllowedActionTypesMap(allowedTypes);\n const allowedStatusMap = statuses && createAllowedStatusesMap(statuses);\n return function(o: Observable<ActionContext>) {\n return o.pipe(filterStatus(allowedMap, allowedStatusMap), mapOperator());\n };\n}\n\nfunction filterStatus(allowedTypes: FilterMap, allowedStatuses?: FilterMap) {\n return filter((ctx: ActionContext) => {\n const actionType = getActionTypeFromInstance(ctx.action)!;\n const typeMatch = allowedTypes[actionType];\n const statusMatch = allowedStatuses ? allowedStatuses[ctx.status] : true;\n return typeMatch && statusMatch;\n });\n}\n\nfunction mapActionResult(): OperatorFunction<ActionContext, ActionCompletion> {\n return map(({ action, status, error }: ActionContext) => {\n return <ActionCompletion>{\n action,\n result: {\n successful: ActionStatus.Successful === status,\n canceled: ActionStatus.Canceled === status,\n error\n }\n };\n });\n}\n\nfunction mapAction<T = any>(): OperatorFunction<ActionContext, T> {\n return map((ctx: ActionContext) => <T>ctx.action);\n}\n\ninterface FilterMap {\n [key: string]: boolean;\n}\n\nfunction createAllowedActionTypesMap(types: ActionType[]): FilterMap {\n return types.reduce((filterMap: FilterMap, klass: any) => {\n filterMap[getActionTypeFromInstance(klass)!] = true;\n return filterMap;\n }, <FilterMap>{});\n}\n\nfunction createAllowedStatusesMap(statuses: ActionStatus[]): FilterMap {\n return statuses.reduce((filterMap: FilterMap, status: ActionStatus) => {\n filterMap[status] = true;\n return filterMap;\n }, <FilterMap>{});\n}\n","import {\n throwPatchingArrayError,\n throwPatchingPrimitiveError\n} from '../configs/messages.config';\nimport { ExistingState, StateOperator } from '@ngxs/store/operators';\n\nexport function simplePatch<T>(value: Partial<T>): StateOperator<T> {\n return (existingState: ExistingState<T>) => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (Array.isArray(value)) {\n throwPatchingArrayError();\n } else if (typeof value !== 'object') {\n throwPatchingPrimitiveError();\n }\n }\n\n const newState: any = { ...(existingState as any) };\n for (const key in value) {\n // deep clone for patch compatibility\n newState[key] = (value as any)[key];\n }\n\n return newState as T;\n };\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { ExistingState, StateOperator, isStateOperator } from '@ngxs/store/operators';\n\nimport { StateContext } from '../symbols';\nimport { MappedStore, StateOperations } from '../internal/internals';\nimport { setValue, getValue } from '../utils/utils';\nimport { InternalStateOperations } from '../internal/state-operations';\nimport { simplePatch } from './state-operators';\n\n/**\n * State Context factory class\n * @ignore\n */\n@Injectable({ providedIn: 'root' })\nexport class StateContextFactory {\n constructor(private _internalStateOperations: InternalStateOperations) {}\n\n /**\n * Create the state context\n */\n createStateContext<T>(mappedStore: MappedStore): StateContext<T> {\n const root = this._internalStateOperations.getRootStateOperations();\n\n return {\n getState(): T {\n const currentAppState = root.getState();\n return getState(currentAppState, mappedStore.path);\n },\n patchState(val: Partial<T>): T {\n const currentAppState = root.getState();\n const patchOperator = simplePatch<T>(val);\n return setStateFromOperator(root, currentAppState, patchOperator, mappedStore.path);\n },\n setState(val: T | StateOperator<T>): T {\n const currentAppState = root.getState();\n return isStateOperator(val)\n ? setStateFromOperator(root, currentAppState, val, mappedStore.path)\n : setStateValue(root, currentAppState, val, mappedStore.path);\n },\n dispatch(actions: any | any[]): Observable<void> {\n return root.dispatch(actions);\n }\n };\n }\n}\n\nfunction setStateValue<T>(\n root: StateOperations<any>,\n currentAppState: any,\n newValue: T,\n path: string\n): any {\n const newAppState = setValue(currentAppState, path, newValue);\n root.setState(newAppState);\n return newAppState;\n // In doing this refactoring I noticed that there is a 'bug' where the\n // application state is returned instead of this state slice.\n // This has worked this way since the beginning see:\n // https://github.com/ngxs/store/blame/324c667b4b7debd8eb979006c67ca0ae347d88cd/src/state-factory.ts\n // This needs to be fixed, but is a 'breaking' change.\n // I will do this fix in a subsequent PR and we can decide how to handle it.\n}\n\nfunction setStateFromOperator<T>(\n root: StateOperations<any>,\n currentAppState: any,\n stateOperator: StateOperator<T>,\n path: string\n) {\n const local = getState(currentAppState, path);\n const newValue = stateOperator(local as ExistingState<T>);\n return setStateValue(root, currentAppState, newValue, path);\n}\n\nfunction getState<T>(currentAppState: any, path: string): T {\n return getValue(currentAppState, path);\n}\n","import { getStoreMetadata, StateClassInternal, StatesByName } from '../internal/internals';\nimport {\n throwStateDecoratorError,\n throwStateNameError,\n throwStateNamePropertyError,\n throwStateUniqueError\n} from '../configs/messages.config';\n\nconst stateNameRegex = new RegExp('^[a-zA-Z0-9_]+$');\n\nexport function ensureStateNameIsValid(name: string | null): void | never {\n if (!name) {\n throwStateNamePropertyError();\n } else if (!stateNameRegex.test(name)) {\n throwStateNameError(name);\n }\n}\n\nexport function ensureStateNameIsUnique(\n stateName: string,\n state: StateClassInternal,\n statesByName: StatesByName\n): void | never {\n const existingState = statesByName[stateName];\n if (existingState && existingState !== state) {\n throwStateUniqueError(stateName, state.name, existingState.name);\n }\n}\n\nexport function ensureStatesAreDecorated(stateClasses: StateClassInternal[]): void | never {\n stateClasses.forEach((stateClass: StateClassInternal) => {\n if (!getStoreMetadata(stateClass)) {\n throwStateDecoratorError(stateClass.name);\n }\n });\n}\n","import { getUndecoratedStateInIvyWarningMessage } from '../configs/messages.config';\n\n/**\n * All provided or injected tokens must have `@Injectable` decorator\n * (previously, injected tokens without `@Injectable` were allowed\n * if another decorator was used, e.g. pipes).\n */\nexport function ensureStateClassIsInjectable(stateClass: any): void {\n if (jit_hasInjectableAnnotation(stateClass) || aot_hasNgInjectableDef(stateClass)) {\n return;\n }\n\n console.warn(getUndecoratedStateInIvyWarningMessage(stateClass.name));\n}\n\nfunction aot_hasNgInjectableDef(stateClass: any): boolean {\n // `ɵprov` is a static property added by the NGCC compiler. It always exists in\n // AOT mode because this property is added before runtime. If an application is running in\n // JIT mode then this property can be added by the `@Injectable()` decorator. The `@Injectable()`\n // decorator has to go after the `@State()` decorator, thus we prevent users from unwanted DI errors.\n return !!stateClass.ɵprov;\n}\n\nfunction jit_hasInjectableAnnotation(stateClass: any): boolean {\n // `ɵprov` doesn't exist in JIT mode (for instance when running unit tests with Jest).\n const annotations = stateClass.__annotations__ || [];\n return annotations.some((annotation: any) => annotation?.ngMetadataName === 'Injectable');\n}\n","import { PlainObject } from '@ngxs/store/internals';\n\n/**\n * Init action\n */\nexport class InitState {\n static readonly type = '@@INIT';\n}\n\n/**\n * Update action\n */\nexport class UpdateState {\n static readonly type = '@@UPDATE_STATE';\n\n constructor(public addedStates?: PlainObject) {}\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { ActionType } from '../actions/symbols';\n\nexport interface NgxsDevelopmentOptions {\n // This allows setting only `true` because there's no reason to set `false`.\n // Developers may just skip importing the development module at all.\n warnOnUnhandledActions:\n | true\n | {\n ignore: ActionType[];\n };\n}\n\nexport const NGXS_DEVELOPMENT_OPTIONS = new InjectionToken<NgxsDevelopmentOptions>(\n 'NGXS_DEVELOPMENT_OPTIONS',\n {\n providedIn: 'root',\n factory: () => ({ warnOnUnhandledActions: true })\n }\n);\n","import { Inject, Injectable } from '@angular/core';\n\nimport { ActionType } from '../actions/symbols';\nimport { getActionTypeFromInstance } from '../utils/utils';\nimport { InitState, UpdateState } from '../actions/actions';\nimport { NgxsDevelopmentOptions, NGXS_DEVELOPMENT_OPTIONS } from './symbols';\n\n@Injectable()\nexport class NgxsUnhandledActionsLogger {\n /**\n * These actions should be ignored by default; the user can increase this\n * list in the future via the `ignoreActions` method.\n */\n private _ignoredActions = new Set<string>([InitState.type, UpdateState.type]);\n\n constructor(@Inject(NGXS_DEVELOPMENT_OPTIONS) options: NgxsDevelopmentOptions) {\n if (typeof options.warnOnUnhandledActions === 'object') {\n this.ignoreActions(...options.warnOnUnhandledActions.ignore);\n }\n }\n\n /**\n * Adds actions to the internal list of actions that should be ignored.\n */\n ignoreActions(...actions: ActionType[]): void {\n for (const action of actions) {\n this._ignoredActions.add(action.type);\n }\n }\n\n /** @internal */\n warn(action: any): void {\n const actionShouldBeIgnored = Array.from(this._ignoredActions).some(\n type => type === getActionTypeFromInstance(action)\n );\n\n if (actionShouldBeIgnored) {\n return;\n }\n\n action =\n action.constructor && action.constructor.name !== 'Object'\n ? action.constructor.name\n : action.type;\n\n console.warn(\n `The ${action} action has been dispatched but hasn't been handled. This may happen if the state with an action handler for this action is not registered.`\n );\n }\n}\n","import { Injectable, Injector, Optional, SkipSelf, Inject, OnDestroy } from '@angular/core';\nimport {\n forkJoin,\n from,\n Observable,\n of,\n throwError,\n Subscription,\n Subject,\n isObservable\n} from 'rxjs';\nimport {\n catchError,\n defaultIfEmpty,\n filter,\n map,\n mergeMap,\n shareReplay,\n takeUntil\n} from 'rxjs/operators';\nimport { INITIAL_STATE_TOKEN, PlainObjectOf, memoize, ɵMETA_KEY } from '@ngxs/store/internals';\n\nimport { NgxsConfig } from '../symbols';\nimport {\n buildGraph,\n findFullParentPath,\n isObject,\n MappedStore,\n MetaDataModel,\n nameToState,\n propGetter,\n StateClassInternal,\n StateKeyGraph,\n StatesAndDefaults,\n StatesByName,\n topologicalSort,\n RuntimeSelectorContext,\n SharedSelectorOptions,\n getStoreMetadata\n} from './internals';\nimport { getActionTypeFromInstance, getValue, setValue } from '../utils/utils';\nimport { ofActionDispatched } from '../operators/of-action';\nimport { ActionContext, ActionStatus, InternalActions } from '../actions-stream';\nimport { InternalDispatchedActionResults } from '../internal/dispatcher';\nimport { StateContextFactory } from '../internal/state-context-factory';\nimport { ensureStateNameIsUnique, ensureStatesAreDecorated } from '../utils/store-validators';\nimport { ensureStateClassIsInjectable } from '../ivy/ivy-enabled-in-dev-mode';\nimport { NgxsUnhandledActionsLogger } from '../dev-features/ngxs-unhandled-actions-logger';\n\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;\n\n/**\n * The `StateFactory` class adds root and feature states to the graph.\n * This extracts state names from state classes, checks if they already\n * exist in the global graph, throws errors if their names are invalid, etc.\n * See its constructor, state factories inject state factories that are\n * parent-level providers. This is required to get feature states from the\n * injector on the same level.\n *\n * The `NgxsModule.forFeature(...)` returns `providers: [StateFactory, ...states]`.\n * The `StateFactory` is initialized on the feature level and goes through `...states`\n * to get them from the injector through `injector.get(state)`.\n * @ignore\n */\n@Injectable()\nexport class StateFactory implements OnDestroy {\n private _actionsSubscription: Subscription | null = null;\n\n constructor(\n private _injector: Injector,\n private _config: NgxsConfig,\n @Optional()\n @SkipSelf()\n private _parentFactory: StateFactory,\n private _actions: InternalActions,\n private _actionResults: InternalDispatchedActionResults,\n private _stateContextFactory: StateContextFactory,\n @Optional()\n @Inject(INITIAL_STATE_TOKEN)\n private _initialState: any\n ) {}\n\n private _states: MappedStore[] = [];\n\n get states(): MappedStore[] {\n return this._parentFactory ? this._parentFactory.states : this._states;\n }\n\n private _statesByName: StatesByName = {};\n\n get statesByName(): StatesByName {\n return this._parentFactory ? this._parentFactory.statesByName : this._statesByName;\n }\n\n private _statePaths: PlainObjectOf<string> = {};\n\n private get statePaths(): PlainObjectOf<string> {\n return this._parentFactory ? this._parentFactory.statePaths : this._statePaths;\n }\n\n getRuntimeSelectorContext = memoize(() => {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const stateFactory = this;\n\n function resolveGetter(key: string) {\n const path = stateFactory.statePaths[key];\n return path ? propGetter(path.split('.'), stateFactory._config) : null;\n }\n\n const context: RuntimeSelectorContext = this._parentFactory\n ? this._parentFactory.getRuntimeSelectorContext()\n : {\n getStateGetter(key: string) {\n // Use `@__INLINE__` annotation to forcely inline `resolveGetter`.\n // This is a Terser annotation, which will function only in the production mode.\n let getter = /*@__INLINE__*/ resolveGetter(key);\n if (getter) {\n return getter;\n }\n return (...args) => {\n // Late loaded getter\n if (!getter) {\n getter = /*@__INLINE__*/ resolveGetter(key);\n }\n return getter ? getter(...args) : undefined;\n };\n },\n getSelectorOptions(localOptions?: SharedSelectorOptions) {\n const globalSelectorOptions = stateFactory._config.selectorOptions;\n return {\n ...globalSelectorOptions,\n ...(localOptions || {})\n };\n }\n };\n return context;\n });\n\n private static _cloneDefaults(defaults: any): any {\n let value = defaults;\n\n if (Array.isArray(defaults)) {\n value = defaults.slice();\n } else if (isObject(defaults)) {\n value = { ...defaults };\n } else if (defaults === undefined) {\n value = {};\n }\n\n return value;\n }\n\n ngOnDestroy(): void {\n this._actionsSubscription?.unsubscribe();\n }\n\n /**\n * Add a new state to the global defs.\n */\n add(stateClasses: StateClassInternal[]): MappedStore[] {\n if (NG_DEV_MODE) {\n ensureStatesAreDecorated(stateClasses);\n }\n\n const { newStates } = this.addToStatesMap(stateClasses);\n if (!newStates.length) return [];\n\n const stateGraph: StateKeyGraph = buildGraph(newStates);\n const sortedStates: string[] = topologicalSort(stateGraph);\n const paths: PlainObjectOf<string> = findFullParentPath(stateGraph);\n const nameGraph: PlainObjectOf<StateClassInternal> = nameToState(newStates);\n const bootstrappedStores: MappedStore[] = [];\n\n for (const name of sortedStates) {\n const stateClass: StateClassInternal = nameGraph[name];\n const path: string = paths[name];\n const meta: MetaDataModel = stateClass[ɵMETA_KEY]!;\n\n this.addRuntimeInfoToMeta(meta, path);\n\n // Note: previously we called `ensureStateClassIsInjectable` within the\n // `State` decorator. This check is moved here because the `ɵprov` property\n // will not exist on the class in JIT mode (because it's set asynchronously\n // during JIT compilation through `Object.defineProperty`).\n if (NG_DEV_MODE) {\n ensureStateClassIsInjectable(stateClass);\n }\n\n const stateMap: MappedStore = {\n name,\n path,\n isInitialised: false,\n actions: meta.actions,\n instance: this._injector.get(stateClass),\n defaults: StateFactory._cloneDefaults(meta.defaults)\n };\n\n // ensure our store hasn't already been added\n // but don't throw since it could be lazy\n // loaded from different paths\n if (!this.hasBeenMountedAndBootstrapped(name, path)) {\n bootstrappedStores.push(stateMap);\n }\n\n this.states.push(stateMap);\n }\n\n return bootstrappedStores;\n }\n\n /**\n * Add a set of states to the store and return the defaults\n */\n addAndReturnDefaults(stateClasses: StateClassInternal[]): StatesAndDefaults {\n const classes: StateClassInternal[] = stateClasses || [];\n\n const mappedStores: MappedStore[] = this.add(classes);\n const defaults = mappedStores.reduce(\n (result: any, mappedStore: MappedStore) =>\n setValue(result, mappedStore.path, mappedStore.defaults),\n {}\n );\n return { defaults, states: mappedStores };\n }\n\n connectActionHandlers(): void {\n // Note: We have to connect actions only once when the `StateFactory`\n // is being created for the first time. This checks if we're in\n // a child state factory and the parent state factory already exists.\n if (this._parentFactory || this._actionsSubscription !== null) {\n return;\n }\n\n const dispatched$ = new Subject<ActionContext>();\n this._actionsSubscription = this._actions\n .pipe(\n filter((ctx: ActionContext) => ctx.status === ActionStatus.Dispatched),\n mergeMap(ctx => {\n dispatched$.next(ctx);\n const action = ctx.action;\n return this.invokeActions(dispatched$, action!).pipe(\n map(() => <ActionContext>{ action, status: ActionStatus.Successful }),\n defaultIfEmpty(<ActionContext>{ action, status: ActionStatus.Canceled }),\n catchError(error =>\n of(<ActionContext>{ action, status: ActionStatus.Errored, error })\n )\n );\n })\n )\n .subscribe(ctx => this._actionResults.next(ctx));\n }\n\n /**\n * Invoke actions on the states.\n */\n invokeActions(dispatched$: Observable<ActionContext>, action: any) {\n const type = getActionTypeFromInstance(action)!;\n const results = [];\n\n // Determines whether the dispatched action has been handled, this is assigned\n // to `true` within the below `for` loop if any `actionMetas` has been found.\n let actionHasBeenHandled = false;\n\n for (const metadata of this.states) {\n const actionMetas = metadata.actions[type];\n\n if (actionMetas) {\n for (const actionMeta of actionMetas) {\n const stateContext = this._stateContextFactory.createStateContext(metadata);\n try {\n let result = metadata.instance[actionMeta.fn](stateContext, action);\n\n if (result instanceof Promise) {\n result = from(result);\n }\n\n if (isObservable(result)) {\n // If this observable has been completed w/o emitting\n // any value then we wouldn't want to complete the whole chain\n // of actions. Since if any observable completes then\n // action will be canceled.\n // For instance if any action handler would've had such statement:\n // `handler(ctx) { return EMPTY; }`\n // then the action will be canceled.\n // See https://github.com/ngxs/store/issues/1568\n result = result.pipe(\n mergeMap((value: any) => {\n if (value instanceof Promise) {\n return from(value);\n }\n if (isObservable(value)) {\n return value;\n }\n return of(value);\n }),\n defaultIfEmpty({})\n );\n\n if (actionMeta.options.cancelUncompleted) {\n // todo: ofActionDispatched should be used with action class\n result = result.pipe(\n takeUntil(dispatched$.pipe(ofActionDispatched(action as any)))\n );\n }\n } else {\n result = of({}).pipe(shareReplay());\n }\n\n results.push(result);\n } catch (e) {\n results.push(throwError(e));\n }\n\n actionHasBeenHandled = true;\n }\n }\n }\n\n // The `NgxsUnhandledActionsLogger` is a tree-shakable class which functions\n // only during development.\n if (NG_DEV_MODE && !actionHasBeenHandled) {\n const unhandledActionsLogger = this._injector.get(NgxsUnhandledActionsLogger, null);\n // The `NgxsUnhandledActionsLogger` will not be resolved by the injector if the\n // `NgxsDevelopmentModule` is not provided. It's enough to check whether the `injector.get`\n // didn't return `null` so we may ensure the module has been imported.\n if (unhandledActionsLogger) {\n unhandledActionsLogger.warn(action);\n }\n }\n\n if (!results.length) {\n results.push(of({}));\n }\n\n return forkJoin(results);\n }\n\n private addToStatesMap(stateClasses: StateClassInternal[]): {\n newStates: StateClassInternal[];\n } {\n const newStates: StateClassInternal[] = [];\n const statesMap: StatesByName = this.statesByName;\n\n for (const stateClass of stateClasses) {\n const stateName = getStoreMetadata(stateClass).name!;\n if (NG_DEV_MODE) {\n ensureStateNameIsUnique(stateName, stateClass, statesMap);\n }\n const unmountedState = !statesMap[stateName];\n if (unmountedState) {\n newStates.push(stateClass);\n statesMap[stateName] = stateClass;\n }\n }\n\n return { newStates };\n }\n\n private addRuntimeInfoToMeta(meta: MetaDataModel, path: string): void {\n this.statePaths[meta.name!] = path;\n // TODO: v4 - we plan to get rid of the path property because it is non-deterministic\n // we can do this when we get rid of the incorrectly exposed getStoreMetadata\n // We will need to come up with an alternative in v4 because this is used by many plugins\n meta.path = path;\n }\n\n private hasBeenMountedAndBootstrapped(name: string, path: string): boolean {\n const valueIsBootstrappedInInitialState: boolean =\n getValue(this._initialState, path) !== undefined;\n // This checks whether a state has been already added to the global graph and\n // its lifecycle is in 'bootstrapped' state.\n return this.statesByName[name] && valueIsBootstrappedInInitialState;\n }\n}\n","// tslint:disable:unified-signatures\nimport { Inject, Injectable, Optional, Type } from '@angular/core';\nimport { Observable, of, Subscription, throwError } from 'rxjs';\nimport { catchError, distinctUntilChanged, map, shareReplay, take } from 'rxjs/operators';\nimport { INITIAL_STATE_TOKEN, PlainObject } from '@ngxs/store/internals';\n\nimport { InternalNgxsExecutionStrategy } from './execution/internal-ngxs-execution-strategy';\nimport { InternalStateOperations } from './internal/state-operations';\nimport { getRootSelectorFactory } from './selectors/selector-utils';\nimport { StateStream } from './internal/state-stream';\nimport { leaveNgxs } from './operators/leave-ngxs';\nimport { NgxsConfig } from './symbols';\nimport { StateToken } from './state-token/state-token';\nimport { StateFactory } from './internal/state-factory';\n\n@Injectable({ providedIn: 'root' })\nexport class Store {\n /**\n * This is a derived state stream that leaves NGXS execution strategy to emit state changes within the Angular zone,\n * because state is being changed actually within the `<root>` zone, see `InternalDispatcher#dispatchSingle`.\n * All selects would use this stream, and it would call leave only once for any state change across all active selectors.\n */\n private _selectableStateStream = this._stateStream.pipe(\n leaveNgxs(this._internalExecutionStrategy),\n shareReplay({ bufferSize: 1, refCount: true })\n );\n\n constructor(\n private _stateStream: StateStream,\n private _internalStateOperations: InternalStateOperations,\n private _config: NgxsConfig,\n private _internalExecutionStrategy: InternalNgxsExecutionStrategy,\n private _stateFactory: StateFactory,\n @Optional()\n @Inject(INITIAL_STATE_TOKEN)\n initialStateValue: any\n ) {\n this.initStateStream(initialStateValue);\n }\n\n /**\n * Dispatches event(s).\n */\n dispatch(actionOrActions: any | any[]): Observable<any> {\n return this._internalStateOperations.getRootStateOperations().dispatch(actionOrActions);\n }\n\n /**\n * Selects a slice of data from the store.\n */\n select<T>(selector: (state: any, ...states: any[]) => T): Observable<T>;\n select<T = any>(selector: string | Type<any>): Observable<T>;\n select<T>(selector: StateToken<T>): Observable<T>;\n select(selector: any): Observable<any> {\n const selectorFn = this.getStoreBoundSelectorFn(selector);\n return this._selectableStateStream.pipe(\n map(selectorFn),\n catchError((err: Error): Observable<never> | Observable<undefined> => {\n // if error is TypeError we swallow it to prevent usual errors with property access\n const { suppressErrors } = this._config.selectorOptions;\n\n if (err instanceof TypeError && suppressErrors) {\n return of(undefined);\n }\n\n // rethrow other errors\n return throwError(err);\n }),\n distinctUntilChanged(),\n leaveNgxs(this._internalExecutionStrategy)\n );\n }\n\n /**\n * Select one slice of data from the store.\n */\n\n selectOnce<T>(selector: (state: any, ...states: any[]) => T): Observable<T>;\n selectOnce<T = any>(selector: string | Type<any>): Observable<T>;\n selectOnce<T>(selector: StateToken<T>): Observable<T>;\n selectOnce(selector: any): Observable<any> {\n return this.select(selector).pipe(take(1));\n }\n\n /**\n * Select a snapshot from the state.\n */\n selectSnapshot<T>(selector: (state: any, ...states: any[]) => T): T;\n selectSnapshot<T = any>(selector: string | Type<any>): T;\n selectSnapshot<T>(selector: StateToken<T>): T;\n selectSnapshot(selector: any): any {\n const selectorFn = this.getStoreBoundSelectorFn(selector);\n return selectorFn(this._stateStream.getValue());\n }\n\n /**\n * Allow the user to subscribe to the root of the state\n */\n subscribe(fn?: (value: any) => void): Subscription {\n return this._selectableStateStream\n .pipe(leaveNgxs(this._internalExecutionStrategy))\n .subscribe(fn);\n }\n\n /**\n * Return the raw value of the state.\n */\n snapshot(): any {\n return this._internalStateOperations.getRootStateOperations().getState();\n }\n\n /**\n * Reset the state to a specific point in time. This method is useful\n * for plugin's who need to modify the state directly or unit testing.\n */\n reset(state: any) {\n return this._internalStateOperations.getRootStateOperations().setState(state);\n }\n\n private getStoreBoundSelectorFn(selector: any) {\n const makeSelectorFn = getRootSelectorFactory(selector);\n const runtimeContext = this._stateFactory.getRuntimeSelectorContext();\n return makeSelectorFn(runtimeContext);\n }\n\n private initStateStream(initialStateValue: any): void {\n const value: PlainObject = this._stateStream.value;\n const storeIsEmpty: boolean = !value || Object.keys(value).length === 0;\n if (storeIsEmpty) {\n const defaultStateNotEmpty: boolean = Object.keys(this._config.defaultsState).length > 0;\n const storeValues: PlainObject = defaultStateNotEmpty\n ? { ...this._config.defaultsState, ...initialStateValue }\n : initialStateValue;\n\n this._stateStream.next(storeValues);\n }\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport { Store } from '../../store';\nimport { NgxsConfig } from '../../symbols';\n\n/**\n * Allows the select decorator to get access to the DI store, this is used internally\n * in `@Select` decorator.\n */\n@Injectable({ providedIn: 'root' })\nexport class SelectFactory implements OnDestroy {\n static store: Store | null = null;\n static config: NgxsConfig | null = null;\n\n constructor(store: Store, config: NgxsConfig) {\n SelectFactory.store = store;\n SelectFactory.config = config;\n }\n\n ngOnDestroy(): void {\n SelectFactory.store = null;\n SelectFactory.config = null;\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { NgxsBootstrapper } from '@ngxs/store/internals';\nimport { EMPTY, ReplaySubject } from 'rxjs';\nimport {\n catchError,\n filter,\n mergeMap,\n pairwise,\n startWith,\n takeUntil,\n tap\n} from 'rxjs/operators';\n\nimport { Store } from '../store';\nimport { getValue } from '../utils/utils';\nimport { InternalErrorReporter } from './error-handler';\nimport { InitState, UpdateState } from '../actions/actions';\nimport { StateContextFactory } from './state-context-factory';\nimport { InternalStateOperations } from './state-operations';\nimport { MappedStore, StatesAndDefaults } from './internals';\nimport { NgxsLifeCycle, NgxsSimpleChange, StateContext } from '../symbols';\nimport { getInvalidInitializationOrderMessage } from '../configs/messages.config';\n\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;\n\n@Injectable({ providedIn: 'root' })\nexport class LifecycleStateManager implements OnDestroy {\n private readonly _destroy$ = new ReplaySubject<void>(1);\n\n private _initStateHasBeenDispatched?: boolean;\n\n constructor(\n private _store: Store,\n private _internalErrorReporter: InternalErrorReporter,\n private _internalStateOperations: InternalStateOperations,\n private _stateContextFactory: StateContextFactory,\n private _bootstrapper: NgxsBootstrapper\n ) {}\n\n ngOnDestroy(): void {\n this._destroy$.next();\n }\n\n ngxsBootstrap(\n action: InitState | UpdateState,\n results: StatesAndDefaults | undefined\n ): void {\n if (NG_DEV_MODE) {\n if (action instanceof InitState) {\n this._initStateHasBeenDispatched = true;\n } else if (\n // This is a dev mode-only check that ensures the correct order of\n // state initialization. The `NgxsModule.forRoot` or `provideStore` should\n // always come first, followed by `forFeature` and `provideStates`. If the\n // `UpdateState` is dispatched before the `InitState` is dispatched, it indicates\n // that modules or providers are in an invalid order.\n action instanceof UpdateState &&\n !this._initStateHasBeenDispatched\n ) {\n console.error(getInvalidInitializationOrderMessage(action.addedStates));\n }\n }\n\n this._internalStateOperations\n .getRootStateOperations()\n .dispatch(action)\n .pipe(\n filter(() => !!results),\n tap(() => this._invokeInitOnStates(results!.states)),\n mergeMap(() => this._bootstrapper.appBootstrapped$),\n filter(appBootstrapped => !!appBootstrapped),\n catchError(error => {\n // The `SafeSubscriber` (which is used by most RxJS operators) re-throws\n // errors asynchronously (`setTimeout(() => { throw error })`). This might\n // break existing user's code or unit tests. We catch the error manually to\n // be backward compatible with the old behavior.\n this._internalErrorReporter.reportErrorSafely(error);\n return EMPTY;\n }),\n takeUntil(this._destroy$)\n )\n .subscribe(() => this._invokeBootstrapOnStates(results!.states));\n }\n\n private _invokeInitOnStates(mappedStores: MappedStore[]): void {\n for (const mappedStore of mappedStores) {\n const instance: NgxsLifeCycle = mappedStore.instance;\n\n if (instance.ngxsOnChanges) {\n this._store\n .select(state => getValue(state, mappedStore.path))\n .pipe(startWith(undefined), pairwise(), takeUntil(this._destroy$))\n .subscribe(([previousValue, currentValue]) => {\n const change = new NgxsSimpleChange(\n previousValue,\n currentValue,\n !mappedStore.isInitialised\n );\n instance.ngxsOnChanges!(change);\n });\n }\n\n if (instance.ngxsOnInit) {\n instance.ngxsOnInit(this._getStateContext(mappedStore));\n }\n\n mappedStore.isInitialised = true;\n }\n }\n\n private _invokeBootstrapOnStates(mappedStores: MappedStore[]) {\n for (const mappedStore of mappedStores) {\n const instance: NgxsLifeCycle = mappedStore.instance;\n if (instance.ngxsAfterBootstrap) {\n instance.ngxsAfterBootstrap(this._getStateContext(mappedStore));\n }\n }\n }\n\n private _getStateContext(mappedStore: MappedStore): StateContext<any> {\n return this._stateContextFactory.createStateContext(mappedStore);\n }\n}\n","import { ENVIRONMENT_INITIALIZER, InjectionToken, Provider, inject } from '@angular/core';\n\nimport { Store } from '../store';\nimport { InitState, UpdateState } from '../plugin_api';\nimport { FEATURE_STATE_TOKEN, ROOT_STATE_TOKEN } from '../symbols';\nimport { StateFactory } from '../internal/state-factory';\nimport { StateClassInternal, StatesAndDefaults } from '../internal/internals';\nimport { SelectFactory } from '../decorators/select/select-factory';\nimport { InternalStateOperations } from '../internal/state-operations';\nimport { LifecycleStateManager } from '../internal/lifecycle-state-manager';\n\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;\n\n/**\n * This function is shared by both NgModule and standalone features.\n * When using `NgxsModule.forRoot` and `provideStore`, we can depend on the\n * same initialization functionality.\n */\nexport function rootStoreInitializer(): void {\n const factory = inject(StateFactory);\n const internalStateOperations = inject(InternalStateOperations);\n\n inject(Store);\n inject(SelectFactory);\n\n const states = inject(ROOT_STATE_TOKEN, { optional: true }) || [];\n const lifecycleStateManager = inject(LifecycleStateManager);\n\n // Add stores to the state graph and return their defaults.\n const results: StatesAndDefaults = factory.addAndReturnDefaults(states);\n\n internalStateOperations.setStateToTheCurrentWithNew(results);\n\n // Connect our actions stream.\n factory.connectActionHandlers();\n\n // Dispatch the init action and invoke init and bootstrap functions after.\n lifecycleStateManager.ngxsBootstrap(new InitState(), results);\n}\n\n/**\n * This function is utilized by both NgModule and standalone features.\n * When using `NgxsModule.forFeature` and `provideStates`, we can depend on\n * the same initialization functionality.\n */\nexport function featureStatesInitializer(): void {\n inject(Store);\n\n const internalStateOperations = inject(InternalStateOperations);\n const factory = inject(StateFactory);\n const states = inject(FEATURE_STATE_TOKEN, { optional: true }) || [];\n const lifecycleStateManager = inject(LifecycleStateManager);\n\n // Since FEATURE_STATE_TOKEN is a multi token, we need to\n // flatten it [[Feature1State, Feature2State], [Feature3State]].\n const flattenedStates: StateClassInternal[] = states.reduce(\n (total: StateClassInternal[], values: StateClassInternal[]) => total.concat(values),\n []\n );\n\n // add stores to the state graph and return their defaults.\n const results: StatesAndDefaults = factory.addAndReturnDefaults(flattenedStates);\n\n if (results.states.length) {\n internalStateOperations.setStateToTheCurrentWithNew(results);\n\n // Dispatch the update action and invoke init and bootstrap functions after.\n lifecycleStateManager.ngxsBootstrap(new UpdateState(results.defaults), results);\n }\n}\n\n/**\n * InjectionToken that registers the global Store.\n */\nexport const NGXS_ROOT_STORE_INITIALIZER = new InjectionToken<void>(\n NG_DEV_MODE ? 'NGXS_ROOT_STORE_INITIALIZER' : ''\n);\n\n/**\n * InjectionToken that registers feature states.\n */\nexport const NGXS_FEATURE_STORE_INITIALIZER = new InjectionToken<void>(\n NG_DEV_MODE ? 'NGXS_FEATURE_STORE_INITIALIZER' : ''\n);\n\nexport const NGXS_ROOT_ENVIRONMENT_INITIALIZER: Provider[] = [\n { provide: NGXS_ROOT_STORE_INITIALIZER, useFactory: rootStoreInitializer },\n {\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useFactory() {\n return () => inject(NGXS_ROOT_STORE_INITIALIZER);\n }\n }\n];\n\n/**\n * The `NGXS_FEATURE_ENVIRONMENT_INITIALIZER` functions as an environment initializer\n * at the `Route` level. Angular Router creates an environment route injector for each\n * matched route where navigation occurs. The injector is created once, ensuring that\n * the feature states initialization only happens once as well.\n */\nexport const NGXS_FEATURE_ENVIRONMENT_INITIALIZER: Provider[] = [\n { provide: NGXS_FEATURE_STORE_INITIALIZER, useFactory: featureStatesInitializer },\n {\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useFactory() {\n return () => inject(NGXS_FEATURE_STORE_INITIALIZER);\n }\n }\n];\n","import { NgModule } from '@angular/core';\n\nimport { rootStoreInitializer } from '../standalone-features/initializers';\n\n/**\n * @ignore\n */\n@NgModule()\nexport class NgxsRootModule {\n constructor() {\n rootStoreInitializer();\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { featureStatesInitializer } from '../standalone-features/initializers';\n\n/**\n * @ignore\n */\n@NgModule()\nexport class NgxsFeatureModule {\n constructor() {\n featureStatesInitializer();\n }\n}\n","import { APP_BOOTSTRAP_LISTENER, Provider, inject } from '@angular/core';\nimport {\n NgxsBootstrapper,\n ɵStateClass,\n ɵNGXS_STATE_CONTEXT_FACTORY,\n ɵNGXS_STATE_FACTORY\n} from '@ngxs/store/internals';\n\nimport { PluginManager } from '../plugin-manager';\nimport { StateFactory } from '../internal/state-factory';\nimport { CUSTOM_NGXS_EXECUTION_STRATEGY } from '../execution/symbols';\nimport { StateContextFactory } from '../internal/state-context-factory';\nimport { NgxsModuleOptions, ROOT_STATE_TOKEN, NGXS_OPTIONS } from '../symbols';\n\n/**\n * This function provides the required providers when invoking `NgxsModule.forRoot`\n * or `provideStore`. It is shared between the NgModule and standalone APIs.\n */\nexport function getRootProviders(\n states: ɵStateClass[],\n options: NgxsModuleOptions\n): Provider[] {\n return [\n StateFactory,\n PluginManager,\n ...states,\n {\n provide: ROOT_STATE_TOKEN,\n useValue: states\n },\n {\n provide: APP_BOOTSTRAP_LISTENER,\n useFactory: () => {\n const bootstrapper = inject(NgxsBootstrapper);\n return () => bootstrapper.bootstrap();\n },\n multi: true\n },\n {\n provide: NGXS_OPTIONS,\n useValue: options\n },\n {\n provide: CUSTOM_NGXS_EXECUTION_STRATEGY,\n useValue: options.executionStrategy\n },\n {\n provide: ɵNGXS_STATE_CONTEXT_FACTORY,\n useExisting: StateContextFactory\n },\n {\n provide: ɵNGXS_STATE_FACTORY,\n useExisting: StateFactory\n }\n ];\n}\n","import { Provider } from '@angular/core';\nimport { ɵStateClass } from '@ngxs/store/internals';\n\nimport { FEATURE_STATE_TOKEN } from '../symbols';\nimport { PluginManager } from '../plugin-manager';\nimport { StateFactory } from '../internal/state-factory';\n\n/**\n * This function provides the required providers when calling `NgxsModule.forFeature`\n * or `provideStates`. It is shared between the NgModule and standalone APIs.\n */\nexport function getFeatureProviders(states: ɵStateClass[]): Provider[] {\n return [\n StateFactory,\n PluginManager,\n ...states,\n {\n provide: FEATURE_STATE_TOKEN,\n multi: true,\n useValue: states\n }\n ];\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { ɵStateClass } from '@ngxs/store/internals';\n\nimport { NgxsModuleOptions } from './symbols';\nimport { NgxsRootModule } from './modules/ngxs-root.module';\nimport { NgxsFeatureModule } from './modules/ngxs-feature.module';\nimport { getRootProviders } from './standalone-features/root-providers';\nimport { getFeatureProviders } from './standalone-features/feature-providers';\n\n@NgModule()\nexport class NgxsModule {\n static forRoot(\n states: ɵStateClass[] = [],\n options: NgxsModuleOptions = {}\n ): ModuleWithProviders<NgxsRootModule> {\n return {\n ngModule: NgxsRootModule,\n providers: getRootProviders(states, options)\n };\n }\n\n static forFeature(states: ɵStateClass[] = []): ModuleWithProviders<NgxsFeatureModule> {\n return {\n ngModule: NgxsFeatureModule,\n providers: getFeatureProviders(states)\n };\n }\n}\n","import { ensureStoreMetadata } from '../internal/internals';\nimport { ActionType, ActionOptions } from '../actions/symbols';\nimport { throwActionDecoratorError } from '../configs/messages.config';\n\n/**\n * Decorates a method with a action information.\n */\nexport function Action(\n actions: ActionType | ActionType[],\n options?: ActionOptions\n): MethodDecorator {\n return (target: any, name: string | symbol): void => {\n // Caretaker note: we have still left the `typeof` condition in order to avoid\n // creating a breaking change for projects that still use the View Engine.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const isStaticMethod = target.hasOwnProperty('prototype');\n\n if (isStaticMethod) {\n throwActionDecoratorError();\n }\n }\n\n const meta = ensureStoreMetadata(target.constructor);\n\n if (!Array.isArray(actions)) {\n actions = [actions];\n }\n\n for (const action of actions) {\n const type = action.type;\n\n if (!meta.actions[type]) {\n meta.actions[type] = [];\n }\n\n meta.actions[type].push({\n fn: name,\n options: options || {},\n type\n });\n }\n };\n}\n","import { ɵStateClass, ɵMETA_KEY, ɵMETA_OPTIONS_KEY } from '@ngxs/store/internals';\n\nimport { StoreOptions } from '../symbols';\nimport { ensureStateNameIsValid } from '../utils/store-validators';\nimport { ensureStoreMetadata, MetaDataModel, StateClassInternal } from '../internal/internals';\n\ninterface MutateMetaOptions<T> {\n meta: MetaDataModel;\n inheritedStateClass: StateClassInternal;\n optionsWithInheritance: StoreOptions<T>;\n}\n\n/**\n * Decorates a class with ngxs state information.\n */\nexport function State<T>(options: StoreOptions<T>) {\n return (target: ɵStateClass): void => {\n const stateClass: StateClassInternal = target;\n const meta: MetaDataModel = ensureStoreMetadata(stateClass);\n const inheritedStateClass: StateClassInternal = Object.getPrototypeOf(stateClass);\n const optionsWithInheritance: StoreOptions<T> = getStateOptions(\n inheritedStateClass,\n options\n );\n mutateMetaData<T>({ meta, inheritedStateClass, optionsWithInheritance });\n stateClass[ɵMETA_OPTIONS_KEY] = optionsWithInheritance;\n };\n}\n\nfunction getStateOptions<T>(\n inheritedStateClass: StateClassInternal,\n options: StoreOptions<T>\n): StoreOptions<T> {\n const inheritanceOptions: Partial<StoreOptions<T>> =\n inheritedStateClass[ɵMETA_OPTIONS_KEY] || {};\n return { ...inheritanceOptions, ...options } as StoreOptions<T>;\n}\n\nfunction mutateMetaData<T>(params: MutateMetaOptions<T>): void {\n const { meta, inheritedStateClass, optionsWithInheritance } = params;\n const { children, defaults, name } = optionsWithInheritance;\n const stateName: string | null =\n typeof name === 'string' ? name : (name && name.getName()) || null;\n\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n ensureStateNameIsValid(stateName);\n }\n\n if (inheritedStateClass.hasOwnProperty(ɵMETA_KEY)) {\n const inheritedMeta: Partial<MetaDataModel> = inheritedStateClass[ɵMETA_KEY] || {};\n meta.actions = { ...meta.actions, ...inheritedMeta.actions };\n }\n\n meta.children = children;\n meta.defaults = defaults;\n meta.name = stateName;\n}\n","import { Observable } from 'rxjs';\n\nimport { propGetter } from '../../internal/internals';\nimport { SelectFactory } from './select-factory';\nimport { StateToken } from '../../state-token/state-token';\nimport { ExtractTokenType } from '../../state-token/symbols';\nimport { throwSelectFactoryNotConnectedError } from '../../configs/messages.config';\n\nconst DOLLAR_CHAR_CODE = 36;\n\nexport function createSelectObservable<T = any>(selector: any): Observable<T> {\n if (!SelectFactory.store) {\n throwSelectFactoryNotConnectedError();\n }\n return SelectFactory.store!.select(selector);\n}\n\nexport function createSelectorFn(name: string, rawSelector?: any, paths: string[] = []): any {\n rawSelector = !rawSelector ? removeDollarAtTheEnd(name) : rawSelector;\n\n if (typeof rawSelector === 'string') {\n const propsArray: string[] = paths.length\n ? [rawSelector, ...paths]\n : rawSelector.split('.');\n return propGetter(propsArray, SelectFactory.config!);\n }\n\n return rawSelector;\n}\n\n/**\n * @example If `foo$` => make it just `foo`\n */\nexport function removeDollarAtTheEnd(name: string): string {\n const lastCharIndex: number = name.length - 1;\n const dollarAtTheEnd: boolean = name.charCodeAt(lastCharIndex) === DOLLAR_CHAR_CODE;\n return dollarAtTheEnd ? name.slice(0, lastCharIndex) : name;\n}\n\nexport type PropertyType<T> = T extends StateToken<any>\n ? Observable<ExtractTokenType<T>>\n : T extends (...args: any[]) => any\n ? Observable<ReturnType<T>>\n : any;\n","import { createSelectObservable, createSelectorFn, PropertyType } from './symbols';\n\n/**\n * Decorator for selecting a slice of state from the store.\n */\nexport function Select<T>(rawSelector?: T, ...paths: string[]): PropertyDecorator {\n return function(target, key): void {\n const name: string = key.toString();\n const selectorId = `__${name}__selector`;\n const selector = createSelectorFn(name, rawSelector, paths);\n\n Object.defineProperties(target, {\n [selectorId]: {\n writable: true,\n enumerable: false,\n configurable: true\n },\n [name]: {\n enumerable: true,\n configurable: true,\n get(): PropertyType<T> {\n return this[selectorId] || (this[selectorId] = createSelectObservable(selector));\n }\n }\n });\n };\n}\n","import {\n ensureSelectorMetadata,\n SelectorMetaDataModel,\n SharedSelectorOptions,\n} from '../internal/internals';\nimport { CreationMetadata } from './selector-models';\n\nconst SELECTOR_OPTIONS_META_KEY = 'NGXS_SELECTOR_OPTIONS_META';\n\nexport const selectorOptionsMetaAccessor = {\n getOptions: (target: any): SharedSelectorOptions => {\n return (target && (<any>target)[SELECTOR_OPTIONS_META_KEY]) || {};\n },\n defineOptions: (target: any, options: SharedSelectorOptions) => {\n if (!target) return;\n (<any>target)[SELECTOR_OPTIONS_META_KEY] = options;\n },\n};\n\nexport function setupSelectorMetadata<T extends (...args: any[]) => any>(\n originalFn: T,\n creationMetadata: Partial<CreationMetadata> | undefined\n) {\n const selectorMetaData = ensureSelectorMetadata(originalFn);\n selectorMetaData.originalFn = originalFn;\n let getExplicitSelectorOptions = () => ({});\n if (creationMetadata) {\n selectorMetaData.containerClass = creationMetadata.containerClass;\n selectorMetaData.selectorName = creationMetadata.selectorName || null;\n getExplicitSelectorOptions =\n creationMetadata.getSelectorOptions || getExplicitSelectorOptions;\n }\n const selectorMetaDataClone = { ...selectorMetaData };\n selectorMetaData.getSelectorOptions = () =>\n getLocalSelectorOptions(selectorMetaDataClone, getExplicitSelectorOptions());\n return selectorMetaData;\n}\n\nfunction getLocalSelectorOptions(\n selectorMetaData: SelectorMetaDataModel,\n explicitOptions: SharedSelectorOptions\n): SharedSelectorOptions {\n return {\n ...(selectorOptionsMetaAccessor.getOptions(selectorMetaData.containerClass) || {}),\n ...(selectorOptionsMetaAccessor.getOptions(selectorMetaData.originalFn) || {}),\n ...(selectorMetaData.getSelectorOptions() || {}),\n ...explicitOptions,\n };\n}\n","import { SharedSelectorOptions } from '../internal/internals';\nimport { selectorOptionsMetaAccessor } from '../selectors/selector-metadata';\n\n/**\n * Decorator for setting selector options at a method or class level.\n */\nexport function SelectorOptions(options: SharedSelectorOptions) {\n return <ClassDecorator & MethodDecorator>(\n function decorate<T>(\n target: any,\n methodName: string,\n descriptor: TypedPropertyDescriptor<T>\n ) {\n if (methodName) {\n descriptor ||= Object.getOwnPropertyDescriptor(target, methodName)!;\n // Method Decorator\n const originalFn = descriptor.value || (<any>descriptor).originalFn;\n if (originalFn) {\n selectorOptionsMetaAccessor.defineOptions(originalFn, options);\n }\n } else {\n // Class Decorator\n selectorOptionsMetaAccessor.defineOptions(target, options);\n }\n }\n );\n}\n","import {\n getSelectorMetadata as getSelectorMetadataInternal,\n getStoreMetadata as getStoreMetadataInternal,\n ensureStoreMetadata as ensureStoreMetadataInternal,\n ensureSelectorMetadata as ensureSelectorMetadataInternal,\n StateClassInternal,\n SharedSelectorOptions\n} from './internal/internals';\nimport { PlainObjectOf } from '../internals/src/symbols';\nimport { ActionHandlerMetaData } from './actions/symbols';\n\ninterface MetaDataModel {\n name: string | null;\n actions: PlainObjectOf<ActionHandlerMetaData[]>;\n defaults: any;\n path: string | null;\n // selectFromAppState: SelectFromState | null;\n // makeRootSelector: SelectorFactory | null; // Don't expose new stuff\n children?: StateClassInternal[];\n}\n\ninterface SelectorMetaDataModel {\n // selectFromAppState: SelectFromState | null;\n // makeRootSelector: SelectorFactory | null; // Don't expose new stuff\n originalFn: Function | null;\n containerClass: any;\n selectorName: string | null;\n getSelectorOptions: () => SharedSelectorOptions;\n}\n\nexport function ensureStoreMetadata(target: StateClassInternal<any, any>): MetaDataModel {\n return ensureStoreMetadataInternal(target);\n}\n\nexport function getStoreMetadata(target: StateClassInternal<any, any>): MetaDataModel {\n return getStoreMetadataInternal(target);\n}\n\nexport function ensureSelectorMetadata(target: Function): SelectorMetaDataModel {\n return ensureSelectorMetadataInternal(target);\n}\n\nexport function getSelectorMetadata(target: any): SelectorMetaDataModel {\n return getSelectorMetadataInternal(target);\n}\n","import { CreationMetadata } from './selector-models';\nimport { setupSelectorMetadata } from './selector-metadata';\nimport { createMemoizedSelectorFn, createRootSelectorFactory } from './selector-utils';\n\nimport { SelectorDef, SelectorReturnType } from './selector-types.util';\n\ntype SelectorArg = SelectorDef<any>;\n\n/**\n * Function for creating a selector\n * @param selectors The selectors to use to create the arguments of this function\n * @param originalFn The original function being made into a selector\n * @param creationMetadata\n */\nexport function createSelector<\n S1 extends SelectorArg,\n TProjector extends (s1: SelectorReturnType<S1>) => any\n>(\n selectors: [S1],\n projector: TProjector,\n creationMetadata?: Partial<CreationMetadata>\n): TProjector;\n\nexport function createSelector<\n S1 extends SelectorArg,\n S2 extends SelectorArg,\n TProjector extends (s1: SelectorReturnType<S1>, s2: SelectorReturnType<S2>) => any\n>(\n selectors: [S1, S2],\n projector: TProjector,\n creationMetadata?: Partial<CreationMetadata>\n): TProjector;\n\nexport function createSelector<\n S1 extends SelectorArg,\n S2 extends SelectorArg,\n S3 extends SelectorArg,\n TProjector extends (\n s1: SelectorReturnType<S1>,\n s2: SelectorReturnType<S2>,\n s3: SelectorReturnType<S3>\n ) => any\n>(\n selectors: [S1, S2, S3],\n projector: TProjector,\n creationMetadata?: Partial<CreationMetadata>\n): TProjector;\n\nexport function createSelector<\n S1 extends SelectorArg,\n S2 extends SelectorArg,\n S3 extends SelectorArg,\n S4 extends SelectorArg,\n TProjector extends (\n s1: SelectorReturnType<S1>,\n s2: SelectorReturnType<S2>,\n s3: SelectorReturnType<S3>,\n s4: SelectorReturnType<S4>\n ) => any\n>(\n selectors: [S1, S2, S3, S4],\n projector: TProjector,\n creationMetadata?: Partial<CreationMetadata>\n): TProjector;\n\nexport function createSelector<\n S1 extends SelectorArg,\n S2 extends SelectorArg,\n S3 extends SelectorArg,\n S4 extends SelectorArg,\n S5 extends SelectorArg,\n TProjector extends (\n s1: SelectorReturnType<S1>,\n s2: SelectorReturnType<S2>,\n s3: SelectorReturnType<S3>,\n s4: SelectorReturnType<S4>,\n s5: SelectorReturnType<S5>\n ) => any\n>(\n selectors: [S1, S2, S3, S4, S5],\n projector: TProjector,\n creationMetadata?: Partial<CreationMetadata>\n): TProjector;\n\nexport function createSelector<\n S1 extends SelectorArg,\n S2 extends SelectorArg,\n S3 extends SelectorArg,\n S4 extends SelectorArg,\n S5 extends SelectorArg,\n S6 extends SelectorArg,\n TProjector extends (\n s1: SelectorReturnType<S1>,\n s2: SelectorReturnType<S2>,\n s3: SelectorReturnType<S3>,\n s4: SelectorReturnType<S4>,\n s5: SelectorReturnType<S5>,\n s6: SelectorReturnType<S6>\n ) => any\n>(\n selectors: [S1, S2, S3, S4, S5, S6],\n projector: TProjector,\n creationMetadata?: Partial<CreationMetadata>\n): TProjector;\n\nexport function createSelector<\n S1 extends SelectorArg,\n S2 extends SelectorArg,\n S3 extends SelectorArg,\n S4 extends SelectorArg,\n S5 extends SelectorArg,\n S6 extends SelectorArg,\n S7 extends SelectorArg,\n TProjector extends (\n s1: SelectorReturnType<S1>,\n s2: SelectorReturnType<S2>,\n s3: SelectorReturnType<S3>,\n s4: SelectorReturnType<S4>,\n s5: SelectorReturnType<S5>,\n s6: SelectorReturnType<S6>,\n s7: SelectorReturnType<S7>\n ) => any\n>(\n selectors: [S1, S2, S3, S4, S5, S6, S7],\n projector: TProjector,\n creationMetadata?: Partial<CreationMetadata>\n): TProjector;\n\nexport function createSelector<\n S1 extends SelectorArg,\n S2 extends SelectorArg,\n S3 extends SelectorArg,\n S4 extends SelectorArg,\n S5 extends SelectorArg,\n S6 extends SelectorArg,\n S7 extends SelectorArg,\n S8 extends SelectorArg,\n TProjector extends (\n s1: SelectorReturnType<S1>,\n s2: SelectorReturnType<S2>,\n s3: SelectorReturnType<S3>,\n s4: SelectorReturnType<S4>,\n s5: SelectorReturnType<S5>,\n s6: SelectorReturnType<S6>,\n s7: SelectorReturnType<S7>,\n s8: SelectorReturnType<S8>\n ) => any\n>(\n selectors: [S1, S2, S3, S4, S5, S6, S7, S8],\n projector: TProjector,\n creationMetadata?: Partial<CreationMetadata>\n): TProjector;\n\nexport function createSelector<T extends (...args: any[]) => any>(\n selectors: SelectorArg[] | undefined,\n projector: T,\n creationMetadata?: Partial<CreationMetadata>\n): T;\n\nexport function createSelector<T extends (...args: any[]) => any>(\n selectors: SelectorArg[] | undefined,\n projector: T,\n creationMetadata?: Partial<CreationMetadata>\n) {\n const memoizedFn = createMemoizedSelectorFn<T>(projector, creationMetadata);\n\n const selectorMetaData = setupSelectorMetadata<T>(projector, creationMetadata);\n\n selectorMetaData.makeRootSelector = createRootSelectorFactory<T>(\n selectorMetaData,\n selectors,\n memoizedFn\n );\n\n return memoizedFn;\n}\n","import { throwSelectorDecoratorError } from '../../configs/messages.config';\nimport { SelectorDef } from '../../selectors';\nimport { createSelector } from '../../selectors/create-selector';\nimport { SelectorSpec, SelectorType } from './symbols';\n\n/**\n * Decorator for creating a state selector for the current state.\n */\nexport function Selector(): SelectorType<unknown>;\n\n/**\n * Decorator for creating a state selector from the provided selectors (and optionally the container State, depending on the applicable Selector Options).\n */\nexport function Selector<T extends SelectorDef<any>>(selectors: T[]): SelectorType<T>;\n\nexport function Selector<T extends SelectorDef<any>>(selectors?: T[]): SelectorType<T> {\n return <U>(\n target: any,\n key: string | symbol,\n descriptor: TypedPropertyDescriptor<SelectorSpec<T, U>>\n ): TypedPropertyDescriptor<SelectorSpec<T, U>> | void => {\n descriptor ||= Object.getOwnPropertyDescriptor(target, key)!;\n\n const originalFn = descriptor?.value;\n\n // Caretaker note: we have still left the `typeof` condition in order to avoid\n // creating a breaking change for projects that still use the View Engine.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (originalFn && typeof originalFn !== 'function') {\n throwSelectorDecoratorError();\n }\n }\n\n const memoizedFn = createSelector(selectors, originalFn as any, {\n containerClass: target,\n selectorName: key.toString(),\n getSelectorOptions() {\n return {};\n },\n });\n const newDescriptor = {\n configurable: true,\n get() {\n return memoizedFn;\n },\n };\n // Add hidden property to descriptor\n (<any>newDescriptor)['originalFn'] = originalFn;\n return newDescriptor;\n };\n}\n","import { TokenName } from './symbols';\nimport {\n ensureSelectorMetadata,\n RuntimeSelectorContext,\n SelectFromRootState\n} from '../internal/internals';\n\nexport class StateToken<T = void> {\n constructor(private readonly name: TokenName<T>) {\n const selectorMetadata = ensureSelectorMetadata(<any>this);\n selectorMetadata.makeRootSelector = (\n runtimeContext: RuntimeSelectorContext\n ): SelectFromRootState => {\n return runtimeContext.getStateGetter(this.name);\n };\n }\n\n getName(): string {\n return this.name;\n }\n\n toString(): string {\n return `StateToken[${this.name}]`;\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { NgxsDevelopmentOptions, NGXS_DEVELOPMENT_OPTIONS } from './symbols';\nimport { NgxsUnhandledActionsLogger } from './ngxs-unhandled-actions-logger';\n\n@NgModule()\nexport class NgxsDevelopmentModule {\n static forRoot(options: NgxsDevelopmentOptions): ModuleWithProviders<NgxsDevelopmentModule> {\n return {\n ngModule: NgxsDevelopmentModule,\n providers: [\n NgxsUnhandledActionsLogger,\n { provide: NGXS_DEVELOPMENT_OPTIONS, useValue: options }\n ]\n };\n }\n}\n","import { getSelectorMetadata, getStoreMetadata } from '../internal/internals';\nimport { SelectorDef } from './selector-types.util';\n\nexport function ensureValidSelector(\n selector: SelectorDef<any>,\n context: { prefix?: string; noun?: string } = {}\n) {\n const noun = context.noun || 'selector';\n const prefix = context.prefix ? context.prefix + ': ' : '';\n ensureValueProvided(selector, { noun, prefix: context.prefix });\n const metadata = getSelectorMetadata(selector) || getStoreMetadata(selector as any);\n if (!metadata) {\n throw new Error(`${prefix}The value provided as the ${noun} is not a valid selector.`);\n }\n}\n\nexport function ensureValueProvided(\n value: any,\n context: { prefix?: string; noun?: string } = {}\n) {\n const noun = context.noun || 'value';\n const prefix = context.prefix ? context.prefix + ': ' : '';\n if (!value) {\n throw new Error(`${prefix}A ${noun} must be provided.`);\n }\n}\n","import { createSelector } from './create-selector';\nimport { ensureValidSelector, ensureValueProvided } from './selector-checks.util';\nimport { TypedSelector } from './selector-types.util';\n\ninterface SelectorMap {\n [key: string]: TypedSelector<any>;\n}\n\ntype ModelSelector<T extends SelectorMap> = (...args: any[]) => MappedResult<T>;\n\ntype MappedResult<TSelectorMap> = {\n [P in keyof TSelectorMap]: TSelectorMap[P] extends TypedSelector<infer R> ? R : never;\n};\n\nexport function createModelSelector<T extends SelectorMap>(selectorMap: T): ModelSelector<T> {\n const selectorKeys = Object.keys(selectorMap);\n const selectors = Object.values(selectorMap);\n\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n ensureValidSelectorMap<T>({\n prefix: '[createModelSelector]',\n selectorMap,\n selectorKeys,\n selectors\n });\n }\n\n return createSelector(selectors, (...args) => {\n return selectorKeys.reduce((obj, key, index) => {\n (obj as any)[key] = args[index];\n return obj;\n }, {} as MappedResult<T>);\n }) as ModelSelector<T>;\n}\n\nfunction ensureValidSelectorMap<T extends SelectorMap>({\n prefix,\n selectorMap,\n selectorKeys,\n selectors\n}: {\n prefix: string;\n selectorMap: T;\n selectorKeys: string[];\n selectors: TypedSelector<any>[];\n}) {\n ensureValueProvided(selectorMap, { prefix, noun: 'selector map' });\n ensureValueProvided(typeof selectorMap === 'object', { prefix, noun: 'valid selector map' });\n ensureValueProvided(selectorKeys.length, { prefix, noun: 'non-empty selector map' });\n selectors.forEach((selector, index) =>\n ensureValidSelector(selector, {\n prefix,\n noun: `selector for the '${selectorKeys[index]}' property`\n })\n );\n}\n","import { createSelector } from './create-selector';\nimport { ensureValidSelector } from './selector-checks.util';\nimport { TypedSelector } from './selector-types.util';\n\ntype KeysToValues<T, Keys extends (keyof T)[]> = {\n [Index in keyof Keys]: Keys[Index] extends keyof T ? T[Keys[Index]] : never;\n};\n\nexport function createPickSelector<TModel, Keys extends (keyof TModel)[]>(\n selector: TypedSelector<TModel>,\n keys: [...Keys]\n) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n ensureValidSelector(selector, { prefix: '[createPickSelector]' });\n }\n const validKeys = keys.filter(Boolean);\n const selectors = validKeys.map(key => createSelector([selector], (s: TModel) => s[key]));\n return createSelector([...selectors], (...props: KeysToValues<TModel, Keys>) => {\n return validKeys.reduce((acc, key, index) => {\n acc[key] = props[index];\n return acc;\n }, {} as Pick<TModel, Keys[number]>);\n });\n}\n","import { createSelector } from './create-selector';\nimport { ensureValidSelector } from './selector-checks.util';\nimport { SelectorDef } from './selector-types.util';\n\nexport type PropertySelectors<TModel> = {\n [P in keyof NonNullable<TModel>]-?: (\n model: TModel\n ) => TModel extends null | undefined ? undefined : NonNullable<TModel>[P];\n};\n\nexport function createPropertySelectors<TModel>(\n parentSelector: SelectorDef<TModel>\n): PropertySelectors<TModel> {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n ensureValidSelector(parentSelector, {\n prefix: '[createPropertySelectors]',\n noun: 'parent selector'\n });\n }\n const cache: Partial<PropertySelectors<TModel>> = {};\n return new Proxy<PropertySelectors<TModel>>(\n {} as unknown as PropertySelectors<TModel>,\n {\n get(_target: any, prop: keyof TModel) {\n const selector =\n cache[prop] ||\n (createSelector(\n [parentSelector],\n (s: TModel) => s?.[prop]\n ) as PropertySelectors<TModel>[typeof prop]);\n cache[prop] = selector;\n return selector;\n }\n } as ProxyHandler<PropertySelectors<TModel>>\n );\n}\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { ɵStateClass } from '@ngxs/store/internals';\n\nimport { NgxsModuleOptions } from '../symbols';\nimport { getRootProviders } from './root-providers';\nimport { NGXS_ROOT_ENVIRONMENT_INITIALIZER } from './initializers';\n\n/**\n * This function provides global store providers and initializes the store.\n *\n * ```ts\n * bootstrapApplication(AppComponent, {\n * providers: [provideStore([CountriesState])]\n * });\n * ```\n *\n * The `provideStore` may be optionally called with a config before the list of features:\n *\n * ```ts\n * provideStore([CountriesState], {\n * developmentMode: !environment.production\n * });\n * ```\n */\nexport function provideStore(\n states?: ɵStateClass[],\n ...features: EnvironmentProviders[]\n): EnvironmentProviders;\n\nexport function provideStore(\n states?: ɵStateClass[],\n options?: NgxsModuleOptions,\n ...features: EnvironmentProviders[]\n): EnvironmentProviders;\n\nexport function provideStore(\n states: ɵStateClass[] = [],\n ...optionsAndFeatures: any[]\n): EnvironmentProviders {\n const features: EnvironmentProviders[] = [];\n // Options are empty by default (see `forRoot`).\n let options: NgxsModuleOptions = {};\n\n if (optionsAndFeatures.length > 0) {\n if (isEnvironmentProvider(optionsAndFeatures[0])) {\n features.push(...optionsAndFeatures);\n } else {\n options = optionsAndFeatures[0];\n features.push(...optionsAndFeatures.slice(1));\n }\n }\n\n return makeEnvironmentProviders([\n ...getRootProviders(states, options),\n features,\n NGXS_ROOT_ENVIRONMENT_INITIALIZER\n ]);\n}\n\nfunction isEnvironmentProvider(target: any): target is EnvironmentProviders {\n return !!target.ɵproviders;\n}\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { ɵStateClass } from '@ngxs/store/internals';\n\nimport { getFeatureProviders } from './feature-providers';\nimport { NGXS_FEATURE_ENVIRONMENT_INITIALIZER } from './initializers';\n\n/**\n * This version serves as a standalone alternative to `NgxsModule.forFeature`.\n * It can be used in a similar manner to register feature states, but at the\n * `Route` providers level:\n *\n * ```ts\n * const routes: Routes = [\n * {\n * path: 'products',\n * loadComponent: async () => {...},\n * providers: [provideStates([ProductsState])]\n * }\n * ];\n * ```\n */\nexport function provideStates(\n states: ɵStateClass[],\n ...features: EnvironmentProviders[]\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n ...getFeatureProviders(states),\n features,\n NGXS_FEATURE_ENVIRONMENT_INITIALIZER\n ]);\n}\n","import { EnvironmentProviders, Type, makeEnvironmentProviders } from '@angular/core';\n\nimport { NGXS_PLUGINS, NgxsPlugin } from '../symbols';\n\n/**\n * This function registers a custom global plugin for the state.\n *\n * ```ts\n * bootstrapApplication(AppComponent, {\n * providers: [\n * provideStore(\n * [CountriesState],\n * withNgxsPlugin(logoutPlugin)\n * )\n * ]\n * });\n * ```\n */\nexport function withNgxsPlugin(plugin: Type<NgxsPlugin>): EnvironmentProviders {\n return makeEnvironmentProviders([{ provide: NGXS_PLUGINS, useClass: plugin, multi: true }]);\n}\n","/**\n * The public api for consumers of @ngxs/store\n */\nexport * from './src/public_api';\n\n/**\n * The plugin api for the stuff that a plugins needs\n */\nexport * from './src/plugin_api';\n\n/**\n * Private exports required for the Ivy compilation.\n */\nexport * from './src/private_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["NG_DEV_MODE","i1.InternalNgxsExecutionStrategy","isObject","i1.InternalActions","i2.PluginManager","i3.StateStream","i4.InternalNgxsExecutionStrategy","i5.InternalErrorReporter","i1.StateStream","i2.InternalDispatcher","i3.NgxsConfig","ensureStoreMetadata","getStoreMetadata","ensureSelectorMetadata","getSelectorMetadata","i1.InternalStateOperations","i1.Store","i2.NgxsConfig","i2.InternalErrorReporter","i3.InternalStateOperations","i4.StateContextFactory","ensureStoreMetadataInternal","getStoreMetadataInternal","ensureSelectorMetadataInternal","getSelectorMetadataInternal"],"mappings":"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"}
@@ -1,36 +0,0 @@
1
- {
2
- "extends": ["@schematics/angular"],
3
- "$schema": "../node_modules/@angular-devkit/schematics/collection-schema.json",
4
- "schematics": {
5
- "store": {
6
- "factory": "./src/store/store.factory#store",
7
- "description": "Create a NGXS full store",
8
- "aliases": ["ngxs-store"],
9
- "schema": "./src/store/schema.json"
10
- },
11
- "state": {
12
- "factory": "./src/state/state.factory#state",
13
- "description": "Create a NGXS state",
14
- "aliases": ["ngxs-state"],
15
- "schema": "./src/state/schema.json"
16
- },
17
- "actions": {
18
- "factory": "./src/actions/actions.factory#actions",
19
- "description": "Create a NGXS actions",
20
- "aliases": ["ngxs-actions"],
21
- "schema": "./src/actions/schema.json"
22
- },
23
- "starter-kit": {
24
- "factory": "./src/starter-kit/starter-kit.factory#starterKit",
25
- "description": "Create a NGXS starter kit with simple or best practice type",
26
- "aliases": ["ngxs-sk"],
27
- "schema": "./src/starter-kit/schema.json"
28
- },
29
- "ng-add": {
30
- "factory": "./src/ng-add/ng-add.factory#ngAdd",
31
- "description": "Add Ngxs Store and plugins in package.json",
32
- "aliases": ["ngxs-init"],
33
- "schema": "./src/ng-add/schema.json"
34
- }
35
- }
36
- }
@@ -1,3 +0,0 @@
1
- import { Rule } from '@angular-devkit/schematics';
2
- import { ActionsSchema } from './actions.schema';
3
- export declare function actions(options: ActionsSchema): Rule;
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.actions = void 0;
4
- const schematics_1 = require("@angular-devkit/schematics");
5
- const generate_utils_1 = require("../utils/generate-utils");
6
- const properties_1 = require("../utils/common/properties");
7
- const normalize_options_1 = require("../utils/normalize-options");
8
- const path_1 = require("path");
9
- function actions(options) {
10
- if ((0, properties_1.isEmpty)(options.name)) {
11
- throw new schematics_1.SchematicsException('Invalid options, "name" is required.');
12
- }
13
- const normalizedOptions = (0, normalize_options_1.normalizeBaseOptions)(options);
14
- const path = options.flat
15
- ? normalizedOptions.path
16
- : (0, path_1.join)(normalizedOptions.path, normalizedOptions.name);
17
- return (0, generate_utils_1.generateFiles)((0, schematics_1.url)('./files'), path, {
18
- name: normalizedOptions.name
19
- });
20
- }
21
- exports.actions = actions;
22
- //# sourceMappingURL=actions.factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"actions.factory.js","sourceRoot":"","sources":["../../../../../packages/store/schematics/src/actions/actions.factory.ts"],"names":[],"mappings":";;;AAAA,2DAA4E;AAE5E,4DAAwD;AACxD,2DAAqD;AACrD,kEAAkE;AAClE,+BAA4B;AAE5B,SAAgB,OAAO,CAAC,OAAsB;IAC5C,IAAI,IAAA,oBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACzB,MAAM,IAAI,gCAAmB,CAAC,sCAAsC,CAAC,CAAC;KACvE;IAED,MAAM,iBAAiB,GAAG,IAAA,wCAAoB,EAAC,OAAO,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI;QACvB,CAAC,CAAC,iBAAiB,CAAC,IAAI;QACxB,CAAC,CAAC,IAAA,WAAI,EAAC,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAEzD,OAAO,IAAA,8BAAa,EAAC,IAAA,gBAAG,EAAC,SAAS,CAAC,EAAE,IAAI,EAAE;QACzC,IAAI,EAAE,iBAAiB,CAAC,IAAI;KAC7B,CAAC,CAAC;AACL,CAAC;AAbD,0BAaC"}
@@ -1,4 +0,0 @@
1
- export class <%= classify(name) %>Action {
2
- public static readonly type = '[<%= classify(name) %>] Add item';
3
- constructor(public payload: any) { }
4
- }
@@ -1,28 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/schema",
3
- "$id": "SchematicsNgxsActions",
4
- "title": "Ngxs Actions Options Schema",
5
- "type": "object",
6
- "properties": {
7
- "name": {
8
- "description": "The name of the actions.",
9
- "type": "string",
10
- "$default": {
11
- "$source": "argv",
12
- "index": 0
13
- },
14
- "x-prompt": "What name would you like to use for the actions?"
15
- },
16
- "path": {
17
- "type": "string",
18
- "format": "path",
19
- "description": "The path to create the actions."
20
- },
21
- "flat": {
22
- "type": "boolean",
23
- "default": false,
24
- "description": "Flag to indicate if a dir is created."
25
- }
26
- },
27
- "required": ["name"]
28
- }
@@ -1,4 +0,0 @@
1
- import { Rule } from '@angular-devkit/schematics';
2
- import { NormalizedNgxsPackageSchema } from './ng-add.factory';
3
- export declare function addDeclarationToStandaloneApp(options: NormalizedNgxsPackageSchema): Rule;
4
- export declare function addDeclarationToNonStandaloneApp(options: NormalizedNgxsPackageSchema): Rule;