@ngxs/store 3.8.2 → 18.0.0-dev.master-f4c2c19

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 (379) hide show
  1. package/README.md +1 -1
  2. package/{esm2015/index.js → esm2022/index.mjs} +2 -2
  3. package/esm2022/internals/custom-rxjs-subjects.mjs +92 -0
  4. package/esm2022/internals/index.mjs +10 -0
  5. package/esm2022/internals/initial-state.mjs +18 -0
  6. package/esm2022/internals/internal-tokens.mjs +6 -0
  7. package/esm2022/internals/memoize.mjs +45 -0
  8. package/esm2022/internals/metadata.mjs +57 -0
  9. package/esm2022/internals/ngxs-app-bootstrapped-state.mjs +19 -0
  10. package/esm2022/internals/state-stream.mjs +32 -0
  11. package/esm2022/internals/state-token.mjs +17 -0
  12. package/esm2022/internals/symbols.mjs +11 -0
  13. package/esm2022/internals/testing/fresh-platform.mjs +72 -0
  14. package/{esm2015/internals/testing/helpers/ngxs-test.component.js → esm2022/internals/testing/helpers/ngxs-test.component.mjs} +4 -4
  15. package/esm2022/internals/testing/helpers/ngxs-test.module.mjs +20 -0
  16. package/{esm2015/internals/testing/index.js → esm2022/internals/testing/index.mjs} +2 -2
  17. package/esm2022/internals/testing/ngxs.setup.mjs +48 -0
  18. package/{esm2015/internals/testing/skip-console-logging.js → esm2022/internals/testing/skip-console-logging.mjs} +1 -1
  19. package/esm2022/internals/testing/symbol.mjs +2 -0
  20. package/esm2022/operators/append.mjs +20 -0
  21. package/esm2022/operators/iif.mjs +38 -0
  22. package/esm2022/operators/insert-item.mjs +29 -0
  23. package/esm2022/operators/patch.mjs +21 -0
  24. package/esm2022/operators/remove-item.mjs +22 -0
  25. package/esm2022/operators/update-item.mjs +40 -0
  26. package/esm2022/plugins/actions.mjs +16 -0
  27. package/esm2022/plugins/index.mjs +4 -0
  28. package/esm2022/plugins/ngxs-store-plugins.mjs +5 -0
  29. package/esm2022/plugins/symbols.mjs +6 -0
  30. package/esm2022/plugins/utils.mjs +51 -0
  31. package/esm2022/src/actions/symbols.mjs +2 -0
  32. package/esm2022/src/actions-stream.mjs +52 -0
  33. package/esm2022/src/configs/messages.config.mjs +48 -0
  34. package/esm2022/src/decorators/action.mjs +31 -0
  35. package/esm2022/src/decorators/select/select-factory.mjs +29 -0
  36. package/esm2022/src/decorators/select/select.mjs +29 -0
  37. package/esm2022/src/decorators/select/symbols.mjs +29 -0
  38. package/esm2022/src/decorators/selector/selector.mjs +29 -0
  39. package/esm2022/src/decorators/selector/symbols.mjs +2 -0
  40. package/esm2022/src/decorators/selector-options.mjs +21 -0
  41. package/esm2022/src/decorators/state.mjs +35 -0
  42. package/esm2022/src/dev-features/ngxs-development.module.mjs +28 -0
  43. package/esm2022/src/dev-features/ngxs-unhandled-actions-logger.mjs +45 -0
  44. package/esm2022/src/dev-features/symbols.mjs +7 -0
  45. package/esm2022/src/execution/dispatch-outside-zone-ngxs-execution-strategy.mjs +55 -0
  46. package/{esm2015/src/execution/internal-ngxs-execution-strategy.js → esm2022/src/execution/internal-ngxs-execution-strategy.mjs} +6 -6
  47. package/{esm2015/src/execution/noop-ngxs-execution-strategy.js → esm2022/src/execution/noop-ngxs-execution-strategy.mjs} +4 -4
  48. package/esm2022/src/execution/symbols.mjs +29 -0
  49. package/esm2022/src/internal/dispatcher.mjs +106 -0
  50. package/esm2022/src/internal/fallback-subscriber.mjs +29 -0
  51. package/esm2022/src/internal/internals.mjs +206 -0
  52. package/esm2022/src/internal/lifecycle-state-manager.mjs +86 -0
  53. package/esm2022/src/internal/state-context-factory.mjs +71 -0
  54. package/esm2022/src/internal/state-factory.mjs +311 -0
  55. package/esm2022/src/internal/state-operations.mjs +63 -0
  56. package/esm2022/src/internal/state-operators.mjs +20 -0
  57. package/esm2022/src/internal/unhandled-rxjs-error-callback.mjs +39 -0
  58. package/esm2022/src/ivy/ivy-enabled-in-dev-mode.mjs +25 -0
  59. package/esm2022/src/module.mjs +27 -0
  60. package/esm2022/src/modules/ngxs-feature.module.mjs +18 -0
  61. package/esm2022/src/modules/ngxs-root.module.mjs +18 -0
  62. package/esm2022/src/ngxs-unhandled-error-handler.mjs +29 -0
  63. package/esm2022/src/operators/of-action.mjs +104 -0
  64. package/esm2022/src/plugin-manager.mjs +37 -0
  65. package/esm2022/src/plugin_api.mjs +2 -0
  66. package/{esm2015/src/private_api.js → esm2022/src/private_api.mjs} +2 -1
  67. package/esm2022/src/public_api.mjs +20 -0
  68. package/esm2022/src/selectors/create-model-selector.mjs +30 -0
  69. package/esm2022/src/selectors/create-pick-selector.mjs +16 -0
  70. package/esm2022/src/selectors/create-property-selectors.mjs +20 -0
  71. package/esm2022/src/selectors/create-selector.mjs +9 -0
  72. package/esm2022/src/selectors/private_api.mjs +2 -0
  73. package/esm2022/src/selectors/selector-checks.util.mjs +18 -0
  74. package/esm2022/src/selectors/selector-metadata.mjs +35 -0
  75. package/esm2022/src/selectors/selector-models.mjs +2 -0
  76. package/esm2022/src/selectors/selector-types.util.mjs +2 -0
  77. package/esm2022/src/selectors/selector-utils.mjs +95 -0
  78. package/esm2022/src/standalone-features/feature-providers.mjs +20 -0
  79. package/esm2022/src/standalone-features/index.mjs +5 -0
  80. package/esm2022/src/standalone-features/initializers.mjs +89 -0
  81. package/esm2022/src/standalone-features/plugin.mjs +20 -0
  82. package/esm2022/src/standalone-features/preboot.mjs +32 -0
  83. package/esm2022/src/standalone-features/provide-states.mjs +26 -0
  84. package/esm2022/src/standalone-features/provide-store.mjs +26 -0
  85. package/esm2022/src/standalone-features/root-providers.mjs +47 -0
  86. package/esm2022/src/store.mjs +117 -0
  87. package/esm2022/src/symbols.mjs +87 -0
  88. package/esm2022/src/utils/compose.mjs +26 -0
  89. package/esm2022/src/utils/create-dispatch-map.mjs +11 -0
  90. package/esm2022/src/utils/create-select-map.mjs +13 -0
  91. package/esm2022/src/utils/dispatch.mjs +7 -0
  92. package/{esm2015/src/utils/freeze.js → esm2022/src/utils/freeze.mjs} +1 -1
  93. package/esm2022/src/utils/public_api.mjs +5 -0
  94. package/esm2022/src/utils/select.mjs +19 -0
  95. package/esm2022/src/utils/store-validators.mjs +25 -0
  96. package/{fesm2015/ngxs-store-internals-testing.js → fesm2022/ngxs-store-internals-testing.mjs} +84 -81
  97. package/fesm2022/ngxs-store-internals-testing.mjs.map +1 -0
  98. package/fesm2022/ngxs-store-internals.mjs +296 -0
  99. package/fesm2022/ngxs-store-internals.mjs.map +1 -0
  100. package/{fesm2015/ngxs-store-operators.js → fesm2022/ngxs-store-operators.mjs} +3 -3
  101. package/fesm2022/ngxs-store-operators.mjs.map +1 -0
  102. package/fesm2022/ngxs-store-plugins.mjs +80 -0
  103. package/fesm2022/ngxs-store-plugins.mjs.map +1 -0
  104. package/{fesm2015/ngxs-store.js → fesm2022/ngxs-store.mjs} +1319 -1265
  105. package/fesm2022/ngxs-store.mjs.map +1 -0
  106. package/index.d.ts +1 -1
  107. package/{src/internal → internals}/custom-rxjs-subjects.d.ts +2 -2
  108. package/internals/index.d.ts +8 -4
  109. package/internals/initial-state.d.ts +5 -5
  110. package/internals/memoize.d.ts +1 -1
  111. package/internals/metadata.d.ts +25 -0
  112. package/internals/ngxs-app-bootstrapped-state.d.ts +8 -0
  113. package/internals/state-stream.d.ts +15 -0
  114. package/internals/state-token.d.ts +7 -0
  115. package/internals/symbols.d.ts +84 -3
  116. package/internals/testing/helpers/ngxs-test.component.d.ts +1 -1
  117. package/internals/testing/index.d.ts +2 -2
  118. package/internals/testing/symbol.d.ts +2 -2
  119. package/operators/patch.d.ts +2 -2
  120. package/operators/types.d.ts +5 -5
  121. package/operators/utils.d.ts +1 -1
  122. package/package.json +44 -13
  123. package/{src/actions → plugins}/actions.d.ts +3 -3
  124. package/plugins/index.d.ts +3 -0
  125. package/plugins/symbols.d.ts +13 -0
  126. package/{src/utils → plugins}/utils.d.ts +0 -17
  127. package/schematics/collection.json +36 -0
  128. package/schematics/src/actions/actions.factory.d.ts +3 -0
  129. package/schematics/src/actions/actions.factory.js +24 -0
  130. package/schematics/src/actions/actions.factory.js.map +1 -0
  131. package/schematics/src/actions/files/__name__.actions.ts__template__ +4 -0
  132. package/schematics/src/actions/schema.json +35 -0
  133. package/schematics/src/ng-add/add-declaration.d.ts +4 -0
  134. package/schematics/src/ng-add/add-declaration.js +109 -0
  135. package/schematics/src/ng-add/add-declaration.js.map +1 -0
  136. package/schematics/src/ng-add/ng-add.factory.d.ts +9 -0
  137. package/schematics/src/ng-add/ng-add.factory.js +89 -0
  138. package/schematics/src/ng-add/ng-add.factory.js.map +1 -0
  139. package/schematics/src/ng-add/schema.json +72 -0
  140. package/schematics/src/starter-kit/files/store/auth/auth.actions.ts__template__ +6 -0
  141. package/schematics/src/starter-kit/files/store/auth/auth.state.spec.ts__template__ +55 -0
  142. package/schematics/src/starter-kit/files/store/auth/auth.state.ts__template__ +47 -0
  143. package/schematics/src/starter-kit/files/store/dashboard/index.ts__template__ +4 -0
  144. package/schematics/src/starter-kit/files/store/dashboard/states/dictionary/dictionary.actions.ts__template__ +10 -0
  145. package/schematics/src/starter-kit/files/store/dashboard/states/dictionary/dictionary.state.spec.ts__template__ +92 -0
  146. package/schematics/src/starter-kit/files/store/dashboard/states/dictionary/dictionary.state.ts__template__ +62 -0
  147. package/schematics/src/starter-kit/files/store/dashboard/states/user/user.actions.ts__template__ +6 -0
  148. package/schematics/src/starter-kit/files/store/dashboard/states/user/user.state.spec.ts__template__ +61 -0
  149. package/schematics/src/starter-kit/files/store/dashboard/states/user/user.state.ts__template__ +42 -0
  150. package/schematics/src/starter-kit/files/store/store.config.ts__template__ +39 -0
  151. package/schematics/src/starter-kit/files/store/store.module.ts__template__ +22 -0
  152. package/schematics/src/starter-kit/schema.json +22 -0
  153. package/schematics/src/starter-kit/starter-kit.factory.d.ts +3 -0
  154. package/schematics/src/starter-kit/starter-kit.factory.js +21 -0
  155. package/schematics/src/starter-kit/starter-kit.factory.js.map +1 -0
  156. package/schematics/src/state/files/__name__.state.spec.ts__template__ +25 -0
  157. package/schematics/src/state/files/__name__.state.ts__template__ +22 -0
  158. package/schematics/src/state/schema.json +44 -0
  159. package/schematics/src/state/state.factory.d.ts +3 -0
  160. package/schematics/src/state/state.factory.js +29 -0
  161. package/schematics/src/state/state.factory.js.map +1 -0
  162. package/schematics/src/store/files/__name__.actions.ts__template__ +4 -0
  163. package/schematics/src/store/files/__name__.state.spec.ts__template__ +26 -0
  164. package/schematics/src/store/files/__name__.state.ts__template__ +29 -0
  165. package/schematics/src/store/schema.json +44 -0
  166. package/schematics/src/store/store.factory.d.ts +3 -0
  167. package/schematics/src/store/store.factory.js +29 -0
  168. package/schematics/src/store/store.factory.js.map +1 -0
  169. package/schematics/src/utils/common/lib.config.d.ts +10 -0
  170. package/schematics/src/utils/common/lib.config.js +15 -0
  171. package/schematics/src/utils/common/lib.config.js.map +1 -0
  172. package/schematics/src/utils/common/project-files.config.d.ts +3 -0
  173. package/schematics/src/utils/common/project-files.config.js +7 -0
  174. package/schematics/src/utils/common/project-files.config.js.map +1 -0
  175. package/schematics/src/utils/common/properties.d.ts +1 -0
  176. package/schematics/src/utils/common/properties.js +8 -0
  177. package/schematics/src/utils/common/properties.js.map +1 -0
  178. package/schematics/src/utils/config.d.ts +119 -0
  179. package/schematics/src/utils/config.js +21 -0
  180. package/schematics/src/utils/config.js.map +1 -0
  181. package/schematics/src/utils/generate-utils.d.ts +4 -0
  182. package/schematics/src/utils/generate-utils.js +14 -0
  183. package/schematics/src/utils/generate-utils.js.map +1 -0
  184. package/schematics/src/utils/interfaces/package.interface.d.ts +7 -0
  185. package/schematics/src/utils/interfaces/package.interface.js +3 -0
  186. package/schematics/src/utils/interfaces/package.interface.js.map +1 -0
  187. package/schematics/src/utils/ng-utils/README.md +1 -0
  188. package/schematics/src/utils/ng-utils/ast-utils.d.ts +99 -0
  189. package/schematics/src/utils/ng-utils/ast-utils.js +517 -0
  190. package/schematics/src/utils/ng-utils/ast-utils.js.map +1 -0
  191. package/schematics/src/utils/ng-utils/ng-ast-utils.d.ts +5 -0
  192. package/schematics/src/utils/ng-utils/ng-ast-utils.js +67 -0
  193. package/schematics/src/utils/ng-utils/ng-ast-utils.js.map +1 -0
  194. package/schematics/src/utils/ng-utils/project.d.ts +2 -0
  195. package/schematics/src/utils/ng-utils/project.js +27 -0
  196. package/schematics/src/utils/ng-utils/project.js.map +1 -0
  197. package/schematics/src/utils/ng-utils/standalone/app_config.d.ts +16 -0
  198. package/schematics/src/utils/ng-utils/standalone/app_config.js +84 -0
  199. package/schematics/src/utils/ng-utils/standalone/app_config.js.map +1 -0
  200. package/schematics/src/utils/ng-utils/standalone/code_block.d.ts +46 -0
  201. package/schematics/src/utils/ng-utils/standalone/code_block.js +73 -0
  202. package/schematics/src/utils/ng-utils/standalone/code_block.js.map +1 -0
  203. package/schematics/src/utils/ng-utils/standalone/index.d.ts +1 -0
  204. package/schematics/src/utils/ng-utils/standalone/index.js +7 -0
  205. package/schematics/src/utils/ng-utils/standalone/index.js.map +1 -0
  206. package/schematics/src/utils/ng-utils/standalone/rules.d.ts +38 -0
  207. package/schematics/src/utils/ng-utils/standalone/rules.js +195 -0
  208. package/schematics/src/utils/ng-utils/standalone/rules.js.map +1 -0
  209. package/schematics/src/utils/ng-utils/standalone/util.d.ts +28 -0
  210. package/schematics/src/utils/ng-utils/standalone/util.js +138 -0
  211. package/schematics/src/utils/ng-utils/standalone/util.js.map +1 -0
  212. package/schematics/src/utils/normalize-options.d.ts +11 -0
  213. package/schematics/src/utils/normalize-options.js +27 -0
  214. package/schematics/src/utils/normalize-options.js.map +1 -0
  215. package/schematics/src/utils/project.d.ts +19 -0
  216. package/schematics/src/utils/project.js +46 -0
  217. package/schematics/src/utils/project.js.map +1 -0
  218. package/schematics/src/utils/versions.json +3 -0
  219. package/src/actions/symbols.d.ts +3 -17
  220. package/src/actions-stream.d.ts +2 -2
  221. package/src/configs/messages.config.d.ts +3 -1
  222. package/src/decorators/action.d.ts +28 -3
  223. package/src/decorators/select/select.d.ts +3 -0
  224. package/src/decorators/select/symbols.d.ts +2 -3
  225. package/src/decorators/selector/selector.d.ts +2 -3
  226. package/src/decorators/selector/symbols.d.ts +73 -4
  227. package/src/decorators/selector-options.d.ts +2 -2
  228. package/src/decorators/state.d.ts +2 -3
  229. package/src/dev-features/ngxs-development.module.d.ts +1 -0
  230. package/src/execution/symbols.d.ts +8 -2
  231. package/src/internal/dispatcher.d.ts +5 -5
  232. package/src/internal/fallback-subscriber.d.ts +3 -0
  233. package/src/internal/internals.d.ts +13 -69
  234. package/src/internal/lifecycle-state-manager.d.ts +6 -6
  235. package/src/internal/state-factory.d.ts +8 -6
  236. package/src/internal/state-operations.d.ts +2 -2
  237. package/src/internal/unhandled-rxjs-error-callback.d.ts +2 -0
  238. package/src/module.d.ts +3 -14
  239. package/src/modules/ngxs-feature.module.d.ts +2 -9
  240. package/src/modules/ngxs-root.module.d.ts +2 -9
  241. package/src/ngxs-unhandled-error-handler.d.ts +16 -0
  242. package/src/operators/of-action.d.ts +3 -3
  243. package/src/plugin-manager.d.ts +1 -1
  244. package/src/plugin_api.d.ts +1 -5
  245. package/src/private_api.d.ts +1 -0
  246. package/src/public_api.d.ts +11 -8
  247. package/src/selectors/create-model-selector.d.ts +2 -2
  248. package/src/selectors/create-pick-selector.d.ts +1 -1
  249. package/src/selectors/create-property-selectors.d.ts +3 -3
  250. package/src/selectors/create-selector.d.ts +10 -10
  251. package/src/selectors/private_api.d.ts +7 -0
  252. package/src/selectors/selector-checks.util.d.ts +2 -2
  253. package/src/selectors/selector-metadata.d.ts +4 -4
  254. package/src/selectors/selector-models.d.ts +4 -4
  255. package/src/selectors/selector-types.util.d.ts +6 -7
  256. package/src/selectors/selector-utils.d.ts +3 -3
  257. package/src/standalone-features/feature-providers.d.ts +7 -0
  258. package/src/standalone-features/index.d.ts +4 -0
  259. package/src/standalone-features/initializers.d.ts +29 -0
  260. package/src/standalone-features/plugin.d.ts +17 -0
  261. package/src/standalone-features/preboot.d.ts +26 -0
  262. package/src/standalone-features/provide-states.d.ts +18 -0
  263. package/src/standalone-features/provide-store.d.ts +22 -0
  264. package/src/standalone-features/root-providers.d.ts +8 -0
  265. package/src/store.d.ts +13 -15
  266. package/src/symbols.d.ts +12 -54
  267. package/src/utils/compose.d.ts +1 -1
  268. package/src/utils/create-dispatch-map.d.ts +4 -0
  269. package/src/utils/create-select-map.d.ts +4 -0
  270. package/src/utils/dispatch.d.ts +2 -0
  271. package/src/utils/public_api.d.ts +4 -0
  272. package/src/utils/select.d.ts +16 -0
  273. package/src/utils/store-validators.d.ts +4 -3
  274. package/bundles/ngxs-store-internals-testing.umd.js +0 -684
  275. package/bundles/ngxs-store-internals-testing.umd.js.map +0 -1
  276. package/bundles/ngxs-store-internals.umd.js +0 -141
  277. package/bundles/ngxs-store-internals.umd.js.map +0 -1
  278. package/bundles/ngxs-store-operators.umd.js +0 -224
  279. package/bundles/ngxs-store-operators.umd.js.map +0 -1
  280. package/bundles/ngxs-store.umd.js +0 -3076
  281. package/bundles/ngxs-store.umd.js.map +0 -1
  282. package/esm2015/internals/index.js +0 -5
  283. package/esm2015/internals/initial-state.js +0 -17
  284. package/esm2015/internals/internal-tokens.js +0 -5
  285. package/esm2015/internals/memoize.js +0 -45
  286. package/esm2015/internals/ngxs-bootstrapper.js +0 -29
  287. package/esm2015/internals/src/symbols.js +0 -2
  288. package/esm2015/internals/symbols.js +0 -2
  289. package/esm2015/internals/testing/fresh-platform.js +0 -70
  290. package/esm2015/internals/testing/helpers/ngxs-test.module.js +0 -21
  291. package/esm2015/internals/testing/ngxs.setup.js +0 -46
  292. package/esm2015/internals/testing/symbol.js +0 -2
  293. package/esm2015/operators/append.js +0 -20
  294. package/esm2015/operators/iif.js +0 -38
  295. package/esm2015/operators/insert-item.js +0 -29
  296. package/esm2015/operators/patch.js +0 -21
  297. package/esm2015/operators/remove-item.js +0 -22
  298. package/esm2015/operators/update-item.js +0 -40
  299. package/esm2015/src/actions/actions.js +0 -16
  300. package/esm2015/src/actions/symbols.js +0 -2
  301. package/esm2015/src/actions-stream.js +0 -52
  302. package/esm2015/src/configs/messages.config.js +0 -36
  303. package/esm2015/src/decorators/action.js +0 -33
  304. package/esm2015/src/decorators/select/select-factory.js +0 -29
  305. package/esm2015/src/decorators/select/select.js +0 -26
  306. package/esm2015/src/decorators/select/symbols.js +0 -29
  307. package/esm2015/src/decorators/selector/selector.js +0 -32
  308. package/esm2015/src/decorators/selector/symbols.js +0 -2
  309. package/esm2015/src/decorators/selector-options.js +0 -21
  310. package/esm2015/src/decorators/state.js +0 -36
  311. package/esm2015/src/dev-features/ngxs-development.module.js +0 -22
  312. package/esm2015/src/dev-features/ngxs-unhandled-actions-logger.js +0 -46
  313. package/esm2015/src/dev-features/symbols.js +0 -6
  314. package/esm2015/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +0 -57
  315. package/esm2015/src/execution/symbols.js +0 -23
  316. package/esm2015/src/internal/custom-rxjs-subjects.js +0 -92
  317. package/esm2015/src/internal/dispatcher.js +0 -104
  318. package/esm2015/src/internal/error-handler.js +0 -64
  319. package/esm2015/src/internal/internals.js +0 -248
  320. package/esm2015/src/internal/lifecycle-state-manager.js +0 -79
  321. package/esm2015/src/internal/state-context-factory.js +0 -68
  322. package/esm2015/src/internal/state-factory.js +0 -288
  323. package/esm2015/src/internal/state-operations.js +0 -63
  324. package/esm2015/src/internal/state-operators.js +0 -20
  325. package/esm2015/src/internal/state-stream.js +0 -25
  326. package/esm2015/src/ivy/ivy-enabled-in-dev-mode.js +0 -25
  327. package/esm2015/src/module.js +0 -88
  328. package/esm2015/src/modules/ngxs-feature.module.js +0 -45
  329. package/esm2015/src/modules/ngxs-root.module.js +0 -41
  330. package/esm2015/src/operators/of-action.js +0 -102
  331. package/esm2015/src/plugin-manager.js +0 -37
  332. package/esm2015/src/plugin_api.js +0 -6
  333. package/esm2015/src/public_api.js +0 -27
  334. package/esm2015/src/public_to_deprecate.js +0 -14
  335. package/esm2015/src/selectors/create-model-selector.js +0 -30
  336. package/esm2015/src/selectors/create-pick-selector.js +0 -16
  337. package/esm2015/src/selectors/create-property-selectors.js +0 -20
  338. package/esm2015/src/selectors/create-selector.js +0 -9
  339. package/esm2015/src/selectors/selector-checks.util.js +0 -18
  340. package/esm2015/src/selectors/selector-metadata.js +0 -30
  341. package/esm2015/src/selectors/selector-models.js +0 -2
  342. package/esm2015/src/selectors/selector-types.util.js +0 -2
  343. package/esm2015/src/selectors/selector-utils.js +0 -74
  344. package/esm2015/src/state-token/state-token.js +0 -17
  345. package/esm2015/src/state-token/symbols.js +0 -2
  346. package/esm2015/src/store.js +0 -107
  347. package/esm2015/src/symbols.js +0 -58
  348. package/esm2015/src/utils/compose.js +0 -26
  349. package/esm2015/src/utils/store-validators.js +0 -25
  350. package/esm2015/src/utils/utils.js +0 -92
  351. package/fesm2015/ngxs-store-internals-testing.js.map +0 -1
  352. package/fesm2015/ngxs-store-internals.js +0 -101
  353. package/fesm2015/ngxs-store-internals.js.map +0 -1
  354. package/fesm2015/ngxs-store-operators.js.map +0 -1
  355. package/fesm2015/ngxs-store.js.map +0 -1
  356. package/internals/ngxs-bootstrapper.d.ts +0 -16
  357. package/internals/ngxs-store-internals.d.ts +0 -5
  358. package/internals/package.json +0 -10
  359. package/internals/src/symbols.d.ts +0 -7
  360. package/internals/testing/ngxs-store-internals-testing.d.ts +0 -5
  361. package/internals/testing/package.json +0 -10
  362. package/ngxs-store.d.ts +0 -5
  363. package/operators/ngxs-store-operators.d.ts +0 -5
  364. package/operators/package.json +0 -10
  365. package/src/internal/error-handler.d.ts +0 -26
  366. package/src/internal/state-stream.d.ts +0 -14
  367. package/src/public_to_deprecate.d.ts +0 -21
  368. package/src/state-token/state-token.d.ts +0 -7
  369. package/src/state-token/symbols.d.ts +0 -5
  370. /package/{esm2015/internals/ngxs-store-internals.js → esm2022/internals/ngxs-store-internals.mjs} +0 -0
  371. /package/{esm2015/internals/testing/ngxs-store-internals-testing.js → esm2022/internals/testing/ngxs-store-internals-testing.mjs} +0 -0
  372. /package/{esm2015/ngxs-store.js → esm2022/ngxs-store.mjs} +0 -0
  373. /package/{esm2015/operators/compose.js → esm2022/operators/compose.mjs} +0 -0
  374. /package/{esm2015/operators/index.js → esm2022/operators/index.mjs} +0 -0
  375. /package/{esm2015/operators/ngxs-store-operators.js → esm2022/operators/ngxs-store-operators.mjs} +0 -0
  376. /package/{esm2015/operators/types.js → esm2022/operators/types.mjs} +0 -0
  377. /package/{esm2015/operators/utils.js → esm2022/operators/utils.mjs} +0 -0
  378. /package/{esm2015/src/operators/leave-ngxs.js → esm2022/src/operators/leave-ngxs.mjs} +0 -0
  379. /package/{esm2015/src/selectors/index.js → esm2022/src/selectors/index.mjs} +0 -0
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @param items - Specific items to append to the end of an array
3
+ */
4
+ export function append(items) {
5
+ return function appendOperator(existing) {
6
+ // If `items` is `undefined` or `null` or `[]` but `existing` is provided
7
+ // just return `existing`
8
+ const itemsNotProvidedButExistingIs = (!items || !items.length) && existing;
9
+ if (itemsNotProvidedButExistingIs) {
10
+ return existing;
11
+ }
12
+ if (Array.isArray(existing)) {
13
+ return existing.concat(items);
14
+ }
15
+ // For example if some property is added dynamically
16
+ // and didn't exist before thus it's not `ArrayLike`
17
+ return items;
18
+ };
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwZW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvb3BlcmF0b3JzL3NyYy9hcHBlbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQUFJLEtBQW1CO0lBQzNDLE9BQU8sU0FBUyxjQUFjLENBQUMsUUFBNEI7UUFDekQseUVBQXlFO1FBQ3pFLHlCQUF5QjtRQUN6QixNQUFNLDZCQUE2QixHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksUUFBUSxDQUFDO1FBQzVFLElBQUksNkJBQTZCLEVBQUUsQ0FBQztZQUNsQyxPQUFPLFFBQTBCLENBQUM7UUFDcEMsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzVCLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFzQyxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUVELG9EQUFvRDtRQUNwRCxvREFBb0Q7UUFDcEQsT0FBTyxLQUF1QixDQUFDO0lBQ2pDLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFeGlzdGluZ1N0YXRlLCBOb0luZmVyLCBTdGF0ZU9wZXJhdG9yIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQHBhcmFtIGl0ZW1zIC0gU3BlY2lmaWMgaXRlbXMgdG8gYXBwZW5kIHRvIHRoZSBlbmQgb2YgYW4gYXJyYXlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGVuZDxUPihpdGVtczogTm9JbmZlcjxUW10+KTogU3RhdGVPcGVyYXRvcjxUW10+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGFwcGVuZE9wZXJhdG9yKGV4aXN0aW5nOiBFeGlzdGluZ1N0YXRlPFRbXT4pOiBUW10ge1xuICAgIC8vIElmIGBpdGVtc2AgaXMgYHVuZGVmaW5lZGAgb3IgYG51bGxgIG9yIGBbXWAgYnV0IGBleGlzdGluZ2AgaXMgcHJvdmlkZWRcbiAgICAvLyBqdXN0IHJldHVybiBgZXhpc3RpbmdgXG4gICAgY29uc3QgaXRlbXNOb3RQcm92aWRlZEJ1dEV4aXN0aW5nSXMgPSAoIWl0ZW1zIHx8ICFpdGVtcy5sZW5ndGgpICYmIGV4aXN0aW5nO1xuICAgIGlmIChpdGVtc05vdFByb3ZpZGVkQnV0RXhpc3RpbmdJcykge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nIGFzIHVua25vd24gYXMgVFtdO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KGV4aXN0aW5nKSkge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nLmNvbmNhdChpdGVtcyBhcyB1bmtub3duIGFzIEV4aXN0aW5nU3RhdGU8VFtdPik7XG4gICAgfVxuXG4gICAgLy8gRm9yIGV4YW1wbGUgaWYgc29tZSBwcm9wZXJ0eSBpcyBhZGRlZCBkeW5hbWljYWxseVxuICAgIC8vIGFuZCBkaWRuJ3QgZXhpc3QgYmVmb3JlIHRodXMgaXQncyBub3QgYEFycmF5TGlrZWBcbiAgICByZXR1cm4gaXRlbXMgYXMgdW5rbm93biBhcyBUW107XG4gIH07XG59XG4iXX0=
@@ -0,0 +1,38 @@
1
+ import { isStateOperator, isUndefined, isPredicate } from './utils';
2
+ function retrieveValue(operatorOrValue, existing) {
3
+ // If state operator is a function
4
+ // then call it with an original value
5
+ if (isStateOperator(operatorOrValue)) {
6
+ const value = operatorOrValue(existing);
7
+ return value;
8
+ }
9
+ // If operator or value was not provided
10
+ // e.g. `elseOperatorOrValue` is `undefined`
11
+ // then we just return an original value
12
+ if (isUndefined(operatorOrValue)) {
13
+ return existing;
14
+ }
15
+ return operatorOrValue;
16
+ }
17
+ /**
18
+ * @param condition - Condition can be a plain boolean value or a function,
19
+ * that returns boolean, also this function can take a value as an argument
20
+ * to which this state operator applies
21
+ * @param trueOperatorOrValue - Any value or a state operator
22
+ * @param elseOperatorOrValue - Any value or a state operator
23
+ */
24
+ export function iif(condition, trueOperatorOrValue, elseOperatorOrValue) {
25
+ return function iifOperator(existing) {
26
+ // Convert the value to a boolean
27
+ let result = !!condition;
28
+ // but if it is a function then run it to get the result
29
+ if (isPredicate(condition)) {
30
+ result = condition(existing);
31
+ }
32
+ if (result) {
33
+ return retrieveValue(trueOperatorOrValue, existing);
34
+ }
35
+ return retrieveValue(elseOperatorOrValue, existing);
36
+ };
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWlmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvb3BlcmF0b3JzL3NyYy9paWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFhLE1BQU0sU0FBUyxDQUFDO0FBRS9FLFNBQVMsYUFBYSxDQUNwQixlQUFxQyxFQUNyQyxRQUEwQjtJQUUxQixrQ0FBa0M7SUFDbEMsc0NBQXNDO0lBQ3RDLElBQUksZUFBZSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sS0FBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCx3Q0FBd0M7SUFDeEMsNENBQTRDO0lBQzVDLHdDQUF3QztJQUN4QyxJQUFJLFdBQVcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sUUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxPQUFPLGVBQW9CLENBQUM7QUFDOUIsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxHQUFHLENBQ2pCLFNBQTBDLEVBQzFDLG1CQUFrRCxFQUNsRCxtQkFBbUQ7SUFFbkQsT0FBTyxTQUFTLFdBQVcsQ0FBQyxRQUEwQjtRQUNwRCxpQ0FBaUM7UUFDakMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN6Qix3REFBd0Q7UUFDeEQsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLEdBQUcsU0FBUyxDQUFDLFFBQWEsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsT0FBTyxhQUFhLENBQUksbUJBQTJDLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakYsQ0FBQztRQUVELE9BQU8sYUFBYSxDQUFJLG1CQUE0QyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2xGLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFeGlzdGluZ1N0YXRlLCBOb0luZmVyLCBTdGF0ZU9wZXJhdG9yIH0gZnJvbSAnLi90eXBlcyc7XG5cbmltcG9ydCB7IGlzU3RhdGVPcGVyYXRvciwgaXNVbmRlZmluZWQsIGlzUHJlZGljYXRlLCBQcmVkaWNhdGUgfSBmcm9tICcuL3V0aWxzJztcblxuZnVuY3Rpb24gcmV0cmlldmVWYWx1ZTxUPihcbiAgb3BlcmF0b3JPclZhbHVlOiBTdGF0ZU9wZXJhdG9yPFQ+IHwgVCxcbiAgZXhpc3Rpbmc6IEV4aXN0aW5nU3RhdGU8VD5cbik6IFQge1xuICAvLyBJZiBzdGF0ZSBvcGVyYXRvciBpcyBhIGZ1bmN0aW9uXG4gIC8vIHRoZW4gY2FsbCBpdCB3aXRoIGFuIG9yaWdpbmFsIHZhbHVlXG4gIGlmIChpc1N0YXRlT3BlcmF0b3Iob3BlcmF0b3JPclZhbHVlKSkge1xuICAgIGNvbnN0IHZhbHVlID0gb3BlcmF0b3JPclZhbHVlKGV4aXN0aW5nKTtcbiAgICByZXR1cm4gdmFsdWUgYXMgVDtcbiAgfVxuXG4gIC8vIElmIG9wZXJhdG9yIG9yIHZhbHVlIHdhcyBub3QgcHJvdmlkZWRcbiAgLy8gZS5nLiBgZWxzZU9wZXJhdG9yT3JWYWx1ZWAgaXMgYHVuZGVmaW5lZGBcbiAgLy8gdGhlbiB3ZSBqdXN0IHJldHVybiBhbiBvcmlnaW5hbCB2YWx1ZVxuICBpZiAoaXNVbmRlZmluZWQob3BlcmF0b3JPclZhbHVlKSkge1xuICAgIHJldHVybiBleGlzdGluZyBhcyBUO1xuICB9XG5cbiAgcmV0dXJuIG9wZXJhdG9yT3JWYWx1ZSBhcyBUO1xufVxuXG4vKipcbiAqIEBwYXJhbSBjb25kaXRpb24gLSBDb25kaXRpb24gY2FuIGJlIGEgcGxhaW4gYm9vbGVhbiB2YWx1ZSBvciBhIGZ1bmN0aW9uLFxuICogdGhhdCByZXR1cm5zIGJvb2xlYW4sIGFsc28gdGhpcyBmdW5jdGlvbiBjYW4gdGFrZSBhIHZhbHVlIGFzIGFuIGFyZ3VtZW50XG4gKiB0byB3aGljaCB0aGlzIHN0YXRlIG9wZXJhdG9yIGFwcGxpZXNcbiAqIEBwYXJhbSB0cnVlT3BlcmF0b3JPclZhbHVlIC0gQW55IHZhbHVlIG9yIGEgc3RhdGUgb3BlcmF0b3JcbiAqIEBwYXJhbSBlbHNlT3BlcmF0b3JPclZhbHVlIC0gQW55IHZhbHVlIG9yIGEgc3RhdGUgb3BlcmF0b3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlpZjxUPihcbiAgY29uZGl0aW9uOiBOb0luZmVyPFByZWRpY2F0ZTxUPj4gfCBib29sZWFuLFxuICB0cnVlT3BlcmF0b3JPclZhbHVlOiBOb0luZmVyPFN0YXRlT3BlcmF0b3I8VD4gfCBUPixcbiAgZWxzZU9wZXJhdG9yT3JWYWx1ZT86IE5vSW5mZXI8U3RhdGVPcGVyYXRvcjxUPiB8IFQ+XG4pOiBTdGF0ZU9wZXJhdG9yPFQ+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGlpZk9wZXJhdG9yKGV4aXN0aW5nOiBFeGlzdGluZ1N0YXRlPFQ+KTogVCB7XG4gICAgLy8gQ29udmVydCB0aGUgdmFsdWUgdG8gYSBib29sZWFuXG4gICAgbGV0IHJlc3VsdCA9ICEhY29uZGl0aW9uO1xuICAgIC8vIGJ1dCBpZiBpdCBpcyBhIGZ1bmN0aW9uIHRoZW4gcnVuIGl0IHRvIGdldCB0aGUgcmVzdWx0XG4gICAgaWYgKGlzUHJlZGljYXRlKGNvbmRpdGlvbikpIHtcbiAgICAgIHJlc3VsdCA9IGNvbmRpdGlvbihleGlzdGluZyBhcyBUKTtcbiAgICB9XG5cbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICByZXR1cm4gcmV0cmlldmVWYWx1ZTxUPih0cnVlT3BlcmF0b3JPclZhbHVlIGFzIFN0YXRlT3BlcmF0b3I8VD4gfCBULCBleGlzdGluZyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldHJpZXZlVmFsdWU8VD4oZWxzZU9wZXJhdG9yT3JWYWx1ZSEgYXMgU3RhdGVPcGVyYXRvcjxUPiB8IFQsIGV4aXN0aW5nKTtcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,29 @@
1
+ import { isNil } from './utils';
2
+ /**
3
+ * @param value - Value to insert
4
+ * @param [beforePosition] - Specified index to insert value before, optional
5
+ */
6
+ export function insertItem(value, beforePosition) {
7
+ return function insertItemOperator(existing) {
8
+ // Have to check explicitly for `null` and `undefined`
9
+ // because `value` can be `0`, thus `!value` will return `true`
10
+ if (isNil(value) && existing) {
11
+ return existing;
12
+ }
13
+ // Property may be dynamic and might not existed before
14
+ if (!Array.isArray(existing)) {
15
+ return [value];
16
+ }
17
+ const clone = existing.slice();
18
+ let index = 0;
19
+ // No need to call `isNumber`
20
+ // as we are checking `> 0` not `>= 0`
21
+ // everything except number will return false here
22
+ if (beforePosition > 0) {
23
+ index = beforePosition;
24
+ }
25
+ clone.splice(index, 0, value);
26
+ return clone;
27
+ };
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9vcGVyYXRvcnMvc3JjL2luc2VydC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFaEM7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBSSxLQUFpQixFQUFFLGNBQXVCO0lBQ3RFLE9BQU8sU0FBUyxrQkFBa0IsQ0FBQyxRQUE0QjtRQUM3RCxzREFBc0Q7UUFDdEQsK0RBQStEO1FBQy9ELElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzdCLE9BQU8sUUFBZSxDQUFDO1FBQ3pCLENBQUM7UUFFRCx1REFBdUQ7UUFDdkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLENBQUMsS0FBcUIsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFL0IsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRWQsNkJBQTZCO1FBQzdCLHNDQUFzQztRQUN0QyxrREFBa0Q7UUFDbEQsSUFBSSxjQUFlLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDeEIsS0FBSyxHQUFHLGNBQWUsQ0FBQztRQUMxQixDQUFDO1FBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQXFCLENBQUMsQ0FBQztRQUM5QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFeGlzdGluZ1N0YXRlLCBOb0luZmVyLCBTdGF0ZU9wZXJhdG9yIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJy4vdXRpbHMnO1xuXG4vKipcbiAqIEBwYXJhbSB2YWx1ZSAtIFZhbHVlIHRvIGluc2VydFxuICogQHBhcmFtIFtiZWZvcmVQb3NpdGlvbl0gLSAgU3BlY2lmaWVkIGluZGV4IHRvIGluc2VydCB2YWx1ZSBiZWZvcmUsIG9wdGlvbmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRJdGVtPFQ+KHZhbHVlOiBOb0luZmVyPFQ+LCBiZWZvcmVQb3NpdGlvbj86IG51bWJlcik6IFN0YXRlT3BlcmF0b3I8VFtdPiB7XG4gIHJldHVybiBmdW5jdGlvbiBpbnNlcnRJdGVtT3BlcmF0b3IoZXhpc3Rpbmc6IEV4aXN0aW5nU3RhdGU8VFtdPik6IFRbXSB7XG4gICAgLy8gSGF2ZSB0byBjaGVjayBleHBsaWNpdGx5IGZvciBgbnVsbGAgYW5kIGB1bmRlZmluZWRgXG4gICAgLy8gYmVjYXVzZSBgdmFsdWVgIGNhbiBiZSBgMGAsIHRodXMgYCF2YWx1ZWAgd2lsbCByZXR1cm4gYHRydWVgXG4gICAgaWYgKGlzTmlsKHZhbHVlKSAmJiBleGlzdGluZykge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nIGFzIFRbXTtcbiAgICB9XG5cbiAgICAvLyBQcm9wZXJ0eSBtYXkgYmUgZHluYW1pYyBhbmQgbWlnaHQgbm90IGV4aXN0ZWQgYmVmb3JlXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGV4aXN0aW5nKSkge1xuICAgICAgcmV0dXJuIFt2YWx1ZSBhcyB1bmtub3duIGFzIFRdO1xuICAgIH1cblxuICAgIGNvbnN0IGNsb25lID0gZXhpc3Rpbmcuc2xpY2UoKTtcblxuICAgIGxldCBpbmRleCA9IDA7XG5cbiAgICAvLyBObyBuZWVkIHRvIGNhbGwgYGlzTnVtYmVyYFxuICAgIC8vIGFzIHdlIGFyZSBjaGVja2luZyBgPiAwYCBub3QgYD49IDBgXG4gICAgLy8gZXZlcnl0aGluZyBleGNlcHQgbnVtYmVyIHdpbGwgcmV0dXJuIGZhbHNlIGhlcmVcbiAgICBpZiAoYmVmb3JlUG9zaXRpb24hID4gMCkge1xuICAgICAgaW5kZXggPSBiZWZvcmVQb3NpdGlvbiE7XG4gICAgfVxuXG4gICAgY2xvbmUuc3BsaWNlKGluZGV4LCAwLCB2YWx1ZSBhcyB1bmtub3duIGFzIFQpO1xuICAgIHJldHVybiBjbG9uZTtcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { isStateOperator } from './utils';
2
+ export function patch(patchObject) {
3
+ return function patchStateOperator(existing) {
4
+ let clone = null;
5
+ for (const k in patchObject) {
6
+ const newValue = patchObject[k];
7
+ const existingPropValue = existing?.[k];
8
+ const newPropValue = isStateOperator(newValue)
9
+ ? newValue(existingPropValue)
10
+ : newValue;
11
+ if (newPropValue !== existingPropValue) {
12
+ if (!clone) {
13
+ clone = { ...existing };
14
+ }
15
+ clone[k] = newPropValue;
16
+ }
17
+ }
18
+ return clone || existing;
19
+ };
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9vcGVyYXRvcnMvc3JjL3BhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFNMUMsTUFBTSxVQUFVLEtBQUssQ0FDbkIsV0FBbUM7SUFFbkMsT0FBTyxTQUFTLGtCQUFrQixDQUFDLFFBQTBCO1FBQzNELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztRQUNqQixLQUFLLE1BQU0sQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQzVCLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxNQUFNLGlCQUFpQixHQUFHLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUM7Z0JBQzVDLENBQUMsQ0FBQyxRQUFRLENBQU0saUJBQWlCLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDYixJQUFJLFlBQVksS0FBSyxpQkFBaUIsRUFBRSxDQUFDO2dCQUN2QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ1gsS0FBSyxHQUFHLEVBQUUsR0FBUyxRQUFTLEVBQUUsQ0FBQztnQkFDakMsQ0FBQztnQkFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxDQUFDO1lBQzFCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxLQUFLLElBQUksUUFBUSxDQUFDO0lBQzNCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFeGlzdGluZ1N0YXRlLCBOb0luZmVyLCBTdGF0ZU9wZXJhdG9yIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBpc1N0YXRlT3BlcmF0b3IgfSBmcm9tICcuL3V0aWxzJztcblxudHlwZSBOb3RVbmRlZmluZWQ8VD4gPSBUIGV4dGVuZHMgdW5kZWZpbmVkID8gbmV2ZXIgOiBUO1xuXG5leHBvcnQgdHlwZSDJtVBhdGNoU3BlYzxUPiA9IHsgW1AgaW4ga2V5b2YgVF0/OiBUW1BdIHwgU3RhdGVPcGVyYXRvcjxOb3RVbmRlZmluZWQ8VFtQXT4+IH07XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXRjaDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4oXG4gIHBhdGNoT2JqZWN0OiBOb0luZmVyPMm1UGF0Y2hTcGVjPFQ+PlxuKTogU3RhdGVPcGVyYXRvcjxUPiB7XG4gIHJldHVybiBmdW5jdGlvbiBwYXRjaFN0YXRlT3BlcmF0b3IoZXhpc3Rpbmc6IEV4aXN0aW5nU3RhdGU8VD4pOiBUIHtcbiAgICBsZXQgY2xvbmUgPSBudWxsO1xuICAgIGZvciAoY29uc3QgayBpbiBwYXRjaE9iamVjdCkge1xuICAgICAgY29uc3QgbmV3VmFsdWUgPSBwYXRjaE9iamVjdFtrXTtcbiAgICAgIGNvbnN0IGV4aXN0aW5nUHJvcFZhbHVlID0gZXhpc3Rpbmc/LltrXTtcbiAgICAgIGNvbnN0IG5ld1Byb3BWYWx1ZSA9IGlzU3RhdGVPcGVyYXRvcihuZXdWYWx1ZSlcbiAgICAgICAgPyBuZXdWYWx1ZSg8YW55PmV4aXN0aW5nUHJvcFZhbHVlKVxuICAgICAgICA6IG5ld1ZhbHVlO1xuICAgICAgaWYgKG5ld1Byb3BWYWx1ZSAhPT0gZXhpc3RpbmdQcm9wVmFsdWUpIHtcbiAgICAgICAgaWYgKCFjbG9uZSkge1xuICAgICAgICAgIGNsb25lID0geyAuLi4oPGFueT5leGlzdGluZykgfTtcbiAgICAgICAgfVxuICAgICAgICBjbG9uZVtrXSA9IG5ld1Byb3BWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNsb25lIHx8IGV4aXN0aW5nO1xuICB9O1xufVxuIl19
@@ -0,0 +1,22 @@
1
+ import { isPredicate, isNumber, invalidIndex } from './utils';
2
+ /**
3
+ * @param selector - index or predicate to remove an item from an array by
4
+ */
5
+ export function removeItem(selector) {
6
+ return function removeItemOperator(existing) {
7
+ let index = -1;
8
+ if (isPredicate(selector)) {
9
+ index = existing.findIndex(selector);
10
+ }
11
+ else if (isNumber(selector)) {
12
+ index = selector;
13
+ }
14
+ if (invalidIndex(index)) {
15
+ return existing;
16
+ }
17
+ const clone = existing.slice();
18
+ clone.splice(index, 1);
19
+ return clone;
20
+ };
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9vcGVyYXRvcnMvc3JjL3JlbW92ZS1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBYSxNQUFNLFNBQVMsQ0FBQztBQUV6RTs7R0FFRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUksUUFBd0M7SUFDcEUsT0FBTyxTQUFTLGtCQUFrQixDQUFDLFFBQTRCO1FBQzdELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRWYsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUMxQixLQUFLLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxDQUFDO2FBQU0sSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM5QixLQUFLLEdBQUcsUUFBUSxDQUFDO1FBQ25CLENBQUM7UUFFRCxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sUUFBZSxDQUFDO1FBQ3pCLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDL0IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXhpc3RpbmdTdGF0ZSwgTm9JbmZlciwgU3RhdGVPcGVyYXRvciB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgaXNQcmVkaWNhdGUsIGlzTnVtYmVyLCBpbnZhbGlkSW5kZXgsIFByZWRpY2F0ZSB9IGZyb20gJy4vdXRpbHMnO1xuXG4vKipcbiAqIEBwYXJhbSBzZWxlY3RvciAtIGluZGV4IG9yIHByZWRpY2F0ZSB0byByZW1vdmUgYW4gaXRlbSBmcm9tIGFuIGFycmF5IGJ5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVJdGVtPFQ+KHNlbGVjdG9yOiBudW1iZXIgfCBOb0luZmVyPFByZWRpY2F0ZTxUPj4pOiBTdGF0ZU9wZXJhdG9yPFRbXT4ge1xuICByZXR1cm4gZnVuY3Rpb24gcmVtb3ZlSXRlbU9wZXJhdG9yKGV4aXN0aW5nOiBFeGlzdGluZ1N0YXRlPFRbXT4pOiBUW10ge1xuICAgIGxldCBpbmRleCA9IC0xO1xuXG4gICAgaWYgKGlzUHJlZGljYXRlKHNlbGVjdG9yKSkge1xuICAgICAgaW5kZXggPSBleGlzdGluZy5maW5kSW5kZXgoc2VsZWN0b3IpO1xuICAgIH0gZWxzZSBpZiAoaXNOdW1iZXIoc2VsZWN0b3IpKSB7XG4gICAgICBpbmRleCA9IHNlbGVjdG9yO1xuICAgIH1cblxuICAgIGlmIChpbnZhbGlkSW5kZXgoaW5kZXgpKSB7XG4gICAgICByZXR1cm4gZXhpc3RpbmcgYXMgVFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGNsb25lID0gZXhpc3Rpbmcuc2xpY2UoKTtcbiAgICBjbG9uZS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHJldHVybiBjbG9uZTtcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,40 @@
1
+ import { isStateOperator, isPredicate, isNumber, invalidIndex } from './utils';
2
+ /**
3
+ * @param selector - Index of item in the array or a predicate function
4
+ * that can be provided in `Array.prototype.findIndex`
5
+ * @param operatorOrValue - New value under the `selector` index or a
6
+ * function that can be applied to an existing value
7
+ */
8
+ export function updateItem(selector, operatorOrValue) {
9
+ return function updateItemOperator(existing) {
10
+ let index = -1;
11
+ if (isPredicate(selector)) {
12
+ index = existing.findIndex(selector);
13
+ }
14
+ else if (isNumber(selector)) {
15
+ index = selector;
16
+ }
17
+ if (invalidIndex(index)) {
18
+ return existing;
19
+ }
20
+ let value = null;
21
+ // Need to check if the new item value will change the existing item value
22
+ // then, only if it will change it then clone the array and set the item
23
+ const theOperatorOrValue = operatorOrValue;
24
+ if (isStateOperator(theOperatorOrValue)) {
25
+ value = theOperatorOrValue(existing[index]);
26
+ }
27
+ else {
28
+ value = theOperatorOrValue;
29
+ }
30
+ // If the value hasn't been mutated
31
+ // then we just return `existing` array
32
+ if (value === existing[index]) {
33
+ return existing;
34
+ }
35
+ const clone = existing.slice();
36
+ clone[index] = value;
37
+ return clone;
38
+ };
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9vcGVyYXRvcnMvc3JjL3VwZGF0ZS1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQWEsTUFBTSxTQUFTLENBQUM7QUFFMUY7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUN4QixRQUF3QyxFQUN4QyxlQUF1RDtJQUV2RCxPQUFPLFNBQVMsa0JBQWtCLENBQUMsUUFBNEI7UUFDN0QsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFZixJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzFCLEtBQUssR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLFFBQXdCLENBQUMsQ0FBQztRQUN2RCxDQUFDO2FBQU0sSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM5QixLQUFLLEdBQUcsUUFBUSxDQUFDO1FBQ25CLENBQUM7UUFFRCxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sUUFBZSxDQUFDO1FBQ3pCLENBQUM7UUFFRCxJQUFJLEtBQUssR0FBTSxJQUFLLENBQUM7UUFDckIsMEVBQTBFO1FBQzFFLHdFQUF3RTtRQUN4RSxNQUFNLGtCQUFrQixHQUFHLGVBQXVDLENBQUM7UUFDbkUsSUFBSSxlQUFlLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO1lBQ3hDLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFxQixDQUFDLENBQUM7UUFDbEUsQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLEdBQUcsa0JBQWtCLENBQUM7UUFDN0IsQ0FBQztRQUVELG1DQUFtQztRQUNuQyx1Q0FBdUM7UUFDdkMsSUFBSSxLQUFLLEtBQUssUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTyxRQUFlLENBQUM7UUFDekIsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMvQixLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBVSxDQUFDO1FBQzFCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4aXN0aW5nU3RhdGUsIE5vSW5mZXIsIFN0YXRlT3BlcmF0b3IgfSBmcm9tICcuL3R5cGVzJztcblxuaW1wb3J0IHsgaXNTdGF0ZU9wZXJhdG9yLCBpc1ByZWRpY2F0ZSwgaXNOdW1iZXIsIGludmFsaWRJbmRleCwgUHJlZGljYXRlIH0gZnJvbSAnLi91dGlscyc7XG5cbi8qKlxuICogQHBhcmFtIHNlbGVjdG9yIC0gSW5kZXggb2YgaXRlbSBpbiB0aGUgYXJyYXkgb3IgYSBwcmVkaWNhdGUgZnVuY3Rpb25cbiAqIHRoYXQgY2FuIGJlIHByb3ZpZGVkIGluIGBBcnJheS5wcm90b3R5cGUuZmluZEluZGV4YFxuICogQHBhcmFtIG9wZXJhdG9yT3JWYWx1ZSAtIE5ldyB2YWx1ZSB1bmRlciB0aGUgYHNlbGVjdG9yYCBpbmRleCBvciBhXG4gKiBmdW5jdGlvbiB0aGF0IGNhbiBiZSBhcHBsaWVkIHRvIGFuIGV4aXN0aW5nIHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVJdGVtPFQ+KFxuICBzZWxlY3RvcjogbnVtYmVyIHwgTm9JbmZlcjxQcmVkaWNhdGU8VD4+LFxuICBvcGVyYXRvck9yVmFsdWU6IE5vSW5mZXI8VD4gfCBOb0luZmVyPFN0YXRlT3BlcmF0b3I8VD4+XG4pOiBTdGF0ZU9wZXJhdG9yPFRbXT4ge1xuICByZXR1cm4gZnVuY3Rpb24gdXBkYXRlSXRlbU9wZXJhdG9yKGV4aXN0aW5nOiBFeGlzdGluZ1N0YXRlPFRbXT4pOiBUW10ge1xuICAgIGxldCBpbmRleCA9IC0xO1xuXG4gICAgaWYgKGlzUHJlZGljYXRlKHNlbGVjdG9yKSkge1xuICAgICAgaW5kZXggPSBleGlzdGluZy5maW5kSW5kZXgoc2VsZWN0b3IgYXMgUHJlZGljYXRlPFQ+KTtcbiAgICB9IGVsc2UgaWYgKGlzTnVtYmVyKHNlbGVjdG9yKSkge1xuICAgICAgaW5kZXggPSBzZWxlY3RvcjtcbiAgICB9XG5cbiAgICBpZiAoaW52YWxpZEluZGV4KGluZGV4KSkge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nIGFzIFRbXTtcbiAgICB9XG5cbiAgICBsZXQgdmFsdWU6IFQgPSBudWxsITtcbiAgICAvLyBOZWVkIHRvIGNoZWNrIGlmIHRoZSBuZXcgaXRlbSB2YWx1ZSB3aWxsIGNoYW5nZSB0aGUgZXhpc3RpbmcgaXRlbSB2YWx1ZVxuICAgIC8vIHRoZW4sIG9ubHkgaWYgaXQgd2lsbCBjaGFuZ2UgaXQgdGhlbiBjbG9uZSB0aGUgYXJyYXkgYW5kIHNldCB0aGUgaXRlbVxuICAgIGNvbnN0IHRoZU9wZXJhdG9yT3JWYWx1ZSA9IG9wZXJhdG9yT3JWYWx1ZSBhcyBUIHwgU3RhdGVPcGVyYXRvcjxUPjtcbiAgICBpZiAoaXNTdGF0ZU9wZXJhdG9yKHRoZU9wZXJhdG9yT3JWYWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gdGhlT3BlcmF0b3JPclZhbHVlKGV4aXN0aW5nW2luZGV4XSBhcyBFeGlzdGluZ1N0YXRlPFQ+KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUgPSB0aGVPcGVyYXRvck9yVmFsdWU7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIHZhbHVlIGhhc24ndCBiZWVuIG11dGF0ZWRcbiAgICAvLyB0aGVuIHdlIGp1c3QgcmV0dXJuIGBleGlzdGluZ2AgYXJyYXlcbiAgICBpZiAodmFsdWUgPT09IGV4aXN0aW5nW2luZGV4XSkge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nIGFzIFRbXTtcbiAgICB9XG5cbiAgICBjb25zdCBjbG9uZSA9IGV4aXN0aW5nLnNsaWNlKCk7XG4gICAgY2xvbmVbaW5kZXhdID0gdmFsdWUgYXMgVDtcbiAgICByZXR1cm4gY2xvbmU7XG4gIH07XG59XG4iXX0=
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Init action
3
+ */
4
+ export class InitState {
5
+ static { this.type = '@@INIT'; }
6
+ }
7
+ /**
8
+ * Update action
9
+ */
10
+ export class UpdateState {
11
+ static { this.type = '@@UPDATE_STATE'; }
12
+ constructor(addedStates) {
13
+ this.addedStates = addedStates;
14
+ }
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3BsdWdpbnMvc3JjL2FjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sU0FBUzthQUNKLFNBQUksR0FBRyxRQUFRLENBQUM7O0FBR2xDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7YUFDTixTQUFJLEdBQUcsZ0JBQWdCLENBQUM7SUFFeEMsWUFBcUIsV0FBMEI7UUFBMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWU7SUFBRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgybVQbGFpbk9iamVjdCB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5cbi8qKlxuICogSW5pdCBhY3Rpb25cbiAqL1xuZXhwb3J0IGNsYXNzIEluaXRTdGF0ZSB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ0BASU5JVCc7XG59XG5cbi8qKlxuICogVXBkYXRlIGFjdGlvblxuICovXG5leHBvcnQgY2xhc3MgVXBkYXRlU3RhdGUge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdAQFVQREFURV9TVEFURSc7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgYWRkZWRTdGF0ZXM/OiDJtVBsYWluT2JqZWN0KSB7fVxufVxuIl19
@@ -0,0 +1,4 @@
1
+ export { InitState, UpdateState } from './actions';
2
+ export { NGXS_PLUGINS } from './symbols';
3
+ export { getActionTypeFromInstance, actionMatcher, setValue, getValue } from './utils';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9wbHVnaW5zL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUE4QyxNQUFNLFdBQVcsQ0FBQztBQUNyRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBJbml0U3RhdGUsIFVwZGF0ZVN0YXRlIH0gZnJvbSAnLi9hY3Rpb25zJztcbmV4cG9ydCB7IE5HWFNfUExVR0lOUywgTmd4c1BsdWdpbiwgTmd4c1BsdWdpbkZuLCBOZ3hzTmV4dFBsdWdpbkZuIH0gZnJvbSAnLi9zeW1ib2xzJztcbmV4cG9ydCB7IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UsIGFjdGlvbk1hdGNoZXIsIHNldFZhbHVlLCBnZXRWYWx1ZSB9IGZyb20gJy4vdXRpbHMnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1zdG9yZS1wbHVnaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvcGx1Z2lucy9zcmMvbmd4cy1zdG9yZS1wbHVnaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,6 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ const NG_DEV_MODE = typeof ngDevMode !== 'undefined' && ngDevMode;
3
+ // The injection token is used to resolve to custom NGXS plugins provided
4
+ // at the root level through either `{provide}` scheme or `withNgxsPlugin`.
5
+ export const NGXS_PLUGINS = new InjectionToken(NG_DEV_MODE ? 'NGXS_PLUGINS' : '');
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3BsdWdpbnMvc3JjL3N5bWJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkvQyxNQUFNLFdBQVcsR0FBRyxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDO0FBRWxFLHlFQUF5RTtBQUN6RSwyRUFBMkU7QUFDM0UsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmRlY2xhcmUgY29uc3QgbmdEZXZNb2RlOiBib29sZWFuO1xuXG5jb25zdCBOR19ERVZfTU9ERSA9IHR5cGVvZiBuZ0Rldk1vZGUgIT09ICd1bmRlZmluZWQnICYmIG5nRGV2TW9kZTtcblxuLy8gVGhlIGluamVjdGlvbiB0b2tlbiBpcyB1c2VkIHRvIHJlc29sdmUgdG8gY3VzdG9tIE5HWFMgcGx1Z2lucyBwcm92aWRlZFxuLy8gYXQgdGhlIHJvb3QgbGV2ZWwgdGhyb3VnaCBlaXRoZXIgYHtwcm92aWRlfWAgc2NoZW1lIG9yIGB3aXRoTmd4c1BsdWdpbmAuXG5leHBvcnQgY29uc3QgTkdYU19QTFVHSU5TID0gbmV3IEluamVjdGlvblRva2VuKE5HX0RFVl9NT0RFID8gJ05HWFNfUExVR0lOUycgOiAnJyk7XG5cbmV4cG9ydCB0eXBlIE5neHNQbHVnaW5GbiA9IChzdGF0ZTogYW55LCBtdXRhdGlvbjogYW55LCBuZXh0OiBOZ3hzTmV4dFBsdWdpbkZuKSA9PiBhbnk7XG5cbmV4cG9ydCB0eXBlIE5neHNOZXh0UGx1Z2luRm4gPSAoc3RhdGU6IGFueSwgbXV0YXRpb246IGFueSkgPT4gYW55O1xuXG4vKipcbiAqIFBsdWdpbiBpbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZ3hzUGx1Z2luIHtcbiAgLyoqXG4gICAqIEhhbmRsZSB0aGUgc3RhdGUvYWN0aW9uIGJlZm9yZSBpdHMgc3VibWl0dGVkIHRvIHRoZSBzdGF0ZSBoYW5kbGVycy5cbiAgICovXG4gIGhhbmRsZShzdGF0ZTogYW55LCBhY3Rpb246IGFueSwgbmV4dDogTmd4c05leHRQbHVnaW5Gbik6IGFueTtcbn1cbiJdfQ==
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Returns the type from an action instance/class.
3
+ * @ignore
4
+ */
5
+ export function getActionTypeFromInstance(action) {
6
+ return action.constructor?.type || action.type;
7
+ }
8
+ /**
9
+ * Matches a action
10
+ * @ignore
11
+ */
12
+ export function actionMatcher(action1) {
13
+ const type1 = getActionTypeFromInstance(action1);
14
+ return function (action2) {
15
+ return type1 === getActionTypeFromInstance(action2);
16
+ };
17
+ }
18
+ /**
19
+ * Set a deeply nested value. Example:
20
+ *
21
+ * setValue({ foo: { bar: { eat: false } } },
22
+ * 'foo.bar.eat', true) //=> { foo: { bar: { eat: true } } }
23
+ *
24
+ * While it traverses it also creates new objects from top down.
25
+ *
26
+ * @ignore
27
+ */
28
+ export const setValue = (obj, prop, val) => {
29
+ obj = { ...obj };
30
+ const split = prop.split('.');
31
+ const lastIndex = split.length - 1;
32
+ split.reduce((acc, part, index) => {
33
+ if (index === lastIndex) {
34
+ acc[part] = val;
35
+ }
36
+ else {
37
+ acc[part] = Array.isArray(acc[part]) ? acc[part].slice() : { ...acc[part] };
38
+ }
39
+ return acc && acc[part];
40
+ }, obj);
41
+ return obj;
42
+ };
43
+ /**
44
+ * Get a deeply nested value. Example:
45
+ *
46
+ * getValue({ foo: bar: [] }, 'foo.bar') //=> []
47
+ *
48
+ * @ignore
49
+ */
50
+ export const getValue = (obj, prop) => prop.split('.').reduce((acc, part) => acc && acc[part], obj);
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9wbHVnaW5zL3NyYy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQUMsTUFBVztJQUNuRCxPQUFPLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDakQsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsT0FBWTtJQUN4QyxNQUFNLEtBQUssR0FBRyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVqRCxPQUFPLFVBQVUsT0FBWTtRQUMzQixPQUFPLEtBQUssS0FBSyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0RCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBUSxFQUFFLElBQVksRUFBRSxHQUFRLEVBQUUsRUFBRTtJQUMzRCxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBRWpCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFFbkMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDaEMsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNsQixDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM5RSxDQUFDO1FBRUQsT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUVSLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBUSxFQUFFLElBQVksRUFBTyxFQUFFLENBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBUSxFQUFFLElBQVksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmV0dXJucyB0aGUgdHlwZSBmcm9tIGFuIGFjdGlvbiBpbnN0YW5jZS9jbGFzcy5cbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UoYWN0aW9uOiBhbnkpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gYWN0aW9uLmNvbnN0cnVjdG9yPy50eXBlIHx8IGFjdGlvbi50eXBlO1xufVxuXG4vKipcbiAqIE1hdGNoZXMgYSBhY3Rpb25cbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbk1hdGNoZXIoYWN0aW9uMTogYW55KSB7XG4gIGNvbnN0IHR5cGUxID0gZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZShhY3Rpb24xKTtcblxuICByZXR1cm4gZnVuY3Rpb24gKGFjdGlvbjI6IGFueSkge1xuICAgIHJldHVybiB0eXBlMSA9PT0gZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZShhY3Rpb24yKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBTZXQgYSBkZWVwbHkgbmVzdGVkIHZhbHVlLiBFeGFtcGxlOlxuICpcbiAqICAgc2V0VmFsdWUoeyBmb286IHsgYmFyOiB7IGVhdDogZmFsc2UgfSB9IH0sXG4gKiAgICAgICdmb28uYmFyLmVhdCcsIHRydWUpIC8vPT4geyBmb286IHsgYmFyOiB7IGVhdDogdHJ1ZSB9IH0gfVxuICpcbiAqIFdoaWxlIGl0IHRyYXZlcnNlcyBpdCBhbHNvIGNyZWF0ZXMgbmV3IG9iamVjdHMgZnJvbSB0b3AgZG93bi5cbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRWYWx1ZSA9IChvYmo6IGFueSwgcHJvcDogc3RyaW5nLCB2YWw6IGFueSkgPT4ge1xuICBvYmogPSB7IC4uLm9iaiB9O1xuXG4gIGNvbnN0IHNwbGl0ID0gcHJvcC5zcGxpdCgnLicpO1xuICBjb25zdCBsYXN0SW5kZXggPSBzcGxpdC5sZW5ndGggLSAxO1xuXG4gIHNwbGl0LnJlZHVjZSgoYWNjLCBwYXJ0LCBpbmRleCkgPT4ge1xuICAgIGlmIChpbmRleCA9PT0gbGFzdEluZGV4KSB7XG4gICAgICBhY2NbcGFydF0gPSB2YWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFjY1twYXJ0XSA9IEFycmF5LmlzQXJyYXkoYWNjW3BhcnRdKSA/IGFjY1twYXJ0XS5zbGljZSgpIDogeyAuLi5hY2NbcGFydF0gfTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWNjICYmIGFjY1twYXJ0XTtcbiAgfSwgb2JqKTtcblxuICByZXR1cm4gb2JqO1xufTtcblxuLyoqXG4gKiBHZXQgYSBkZWVwbHkgbmVzdGVkIHZhbHVlLiBFeGFtcGxlOlxuICpcbiAqICAgIGdldFZhbHVlKHsgZm9vOiBiYXI6IFtdIH0sICdmb28uYmFyJykgLy89PiBbXVxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFZhbHVlID0gKG9iajogYW55LCBwcm9wOiBzdHJpbmcpOiBhbnkgPT5cbiAgcHJvcC5zcGxpdCgnLicpLnJlZHVjZSgoYWNjOiBhbnksIHBhcnQ6IHN0cmluZykgPT4gYWNjICYmIGFjY1twYXJ0XSwgb2JqKTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9hY3Rpb25zL3N5bWJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uRGVmPFRBcmdzIGV4dGVuZHMgYW55W10gPSBhbnlbXSwgVFJldHVybiA9IGFueT4ge1xuICB0eXBlOiBzdHJpbmc7XG5cbiAgbmV3ICguLi5hcmdzOiBUQXJncyk6IFRSZXR1cm47XG59XG5cbmV4cG9ydCB0eXBlIEFjdGlvblR5cGUgPSBBY3Rpb25EZWYgfCB7IHR5cGU6IHN0cmluZyB9O1xuIl19
@@ -0,0 +1,52 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ɵOrderedSubject } from '@ngxs/store/internals';
3
+ import { Observable } from 'rxjs';
4
+ import { share } from 'rxjs/operators';
5
+ import { leaveNgxs } from './operators/leave-ngxs';
6
+ import { InternalNgxsExecutionStrategy } from './execution/internal-ngxs-execution-strategy';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./execution/internal-ngxs-execution-strategy";
9
+ /**
10
+ * Internal Action stream that is emitted anytime an action is dispatched.
11
+ */
12
+ export class InternalActions extends ɵOrderedSubject {
13
+ ngOnDestroy() {
14
+ this.complete();
15
+ }
16
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: InternalActions, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
17
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: InternalActions, providedIn: 'root' }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: InternalActions, decorators: [{
20
+ type: Injectable,
21
+ args: [{ providedIn: 'root' }]
22
+ }] });
23
+ /**
24
+ * Action stream that is emitted anytime an action is dispatched.
25
+ *
26
+ * You can listen to this in services to react without stores.
27
+ */
28
+ export class Actions extends Observable {
29
+ constructor(internalActions$, internalExecutionStrategy) {
30
+ const sharedInternalActions$ = internalActions$.pipe(leaveNgxs(internalExecutionStrategy),
31
+ // The `InternalActions` subject emits outside of the Angular zone.
32
+ // We have to re-enter the Angular zone for any incoming consumer.
33
+ // The `share()` operator reduces the number of change detections.
34
+ // This would call leave only once for any stream emission across all active subscribers.
35
+ share());
36
+ super(observer => {
37
+ const childSubscription = sharedInternalActions$.subscribe({
38
+ next: ctx => observer.next(ctx),
39
+ error: error => observer.error(error),
40
+ complete: () => observer.complete()
41
+ });
42
+ observer.add(childSubscription);
43
+ });
44
+ }
45
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: Actions, deps: [{ token: InternalActions }, { token: i1.InternalNgxsExecutionStrategy }], target: i0.ɵɵFactoryTarget.Injectable }); }
46
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: Actions, providedIn: 'root' }); }
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: Actions, decorators: [{
49
+ type: Injectable,
50
+ args: [{ providedIn: 'root' }]
51
+ }], ctorParameters: () => [{ type: InternalActions }, { type: i1.InternalNgxsExecutionStrategy }] });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1zdHJlYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvYWN0aW9ucy1zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7QUFrQjdGOztHQUVHO0FBRUgsTUFBTSxPQUFPLGVBQWdCLFNBQVEsZUFBOEI7SUFDakUsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO2lJQUhVLGVBQWU7cUlBQWYsZUFBZSxjQURGLE1BQU07OzJGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7QUFPbEM7Ozs7R0FJRztBQUVILE1BQU0sT0FBTyxPQUFRLFNBQVEsVUFBeUI7SUFDcEQsWUFDRSxnQkFBaUMsRUFDakMseUJBQXdEO1FBRXhELE1BQU0sc0JBQXNCLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUNsRCxTQUFTLENBQUMseUJBQXlCLENBQUM7UUFDcEMsbUVBQW1FO1FBQ25FLGtFQUFrRTtRQUNsRSxrRUFBa0U7UUFDbEUseUZBQXlGO1FBQ3pGLEtBQUssRUFBRSxDQUNSLENBQUM7UUFFRixLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDZixNQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDLFNBQVMsQ0FBQztnQkFDekQsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQy9CLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUNyQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRTthQUNwQyxDQUFDLENBQUM7WUFFSCxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO2lJQXZCVSxPQUFPO3FJQUFQLE9BQU8sY0FETSxNQUFNOzsyRkFDbkIsT0FBTztrQkFEbkIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IMm1T3JkZXJlZFN1YmplY3QgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2hhcmUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IGxlYXZlTmd4cyB9IGZyb20gJy4vb3BlcmF0b3JzL2xlYXZlLW5neHMnO1xuaW1wb3J0IHsgSW50ZXJuYWxOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL2V4ZWN1dGlvbi9pbnRlcm5hbC1uZ3hzLWV4ZWN1dGlvbi1zdHJhdGVneSc7XG5cbi8qKlxuICogU3RhdHVzIG9mIGEgZGlzcGF0Y2hlZCBhY3Rpb25cbiAqL1xuZXhwb3J0IGNvbnN0IGVudW0gQWN0aW9uU3RhdHVzIHtcbiAgRGlzcGF0Y2hlZCA9ICdESVNQQVRDSEVEJyxcbiAgU3VjY2Vzc2Z1bCA9ICdTVUNDRVNTRlVMJyxcbiAgQ2FuY2VsZWQgPSAnQ0FOQ0VMRUQnLFxuICBFcnJvcmVkID0gJ0VSUk9SRUQnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uQ29udGV4dDxUID0gYW55PiB7XG4gIHN0YXR1czogQWN0aW9uU3RhdHVzO1xuICBhY3Rpb246IFQ7XG4gIGVycm9yPzogRXJyb3I7XG59XG5cbi8qKlxuICogSW50ZXJuYWwgQWN0aW9uIHN0cmVhbSB0aGF0IGlzIGVtaXR0ZWQgYW55dGltZSBhbiBhY3Rpb24gaXMgZGlzcGF0Y2hlZC5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBJbnRlcm5hbEFjdGlvbnMgZXh0ZW5kcyDJtU9yZGVyZWRTdWJqZWN0PEFjdGlvbkNvbnRleHQ+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jb21wbGV0ZSgpO1xuICB9XG59XG5cbi8qKlxuICogQWN0aW9uIHN0cmVhbSB0aGF0IGlzIGVtaXR0ZWQgYW55dGltZSBhbiBhY3Rpb24gaXMgZGlzcGF0Y2hlZC5cbiAqXG4gKiBZb3UgY2FuIGxpc3RlbiB0byB0aGlzIGluIHNlcnZpY2VzIHRvIHJlYWN0IHdpdGhvdXQgc3RvcmVzLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFjdGlvbnMgZXh0ZW5kcyBPYnNlcnZhYmxlPEFjdGlvbkNvbnRleHQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgaW50ZXJuYWxBY3Rpb25zJDogSW50ZXJuYWxBY3Rpb25zLFxuICAgIGludGVybmFsRXhlY3V0aW9uU3RyYXRlZ3k6IEludGVybmFsTmd4c0V4ZWN1dGlvblN0cmF0ZWd5XG4gICkge1xuICAgIGNvbnN0IHNoYXJlZEludGVybmFsQWN0aW9ucyQgPSBpbnRlcm5hbEFjdGlvbnMkLnBpcGUoXG4gICAgICBsZWF2ZU5neHMoaW50ZXJuYWxFeGVjdXRpb25TdHJhdGVneSksXG4gICAgICAvLyBUaGUgYEludGVybmFsQWN0aW9uc2Agc3ViamVjdCBlbWl0cyBvdXRzaWRlIG9mIHRoZSBBbmd1bGFyIHpvbmUuXG4gICAgICAvLyBXZSBoYXZlIHRvIHJlLWVudGVyIHRoZSBBbmd1bGFyIHpvbmUgZm9yIGFueSBpbmNvbWluZyBjb25zdW1lci5cbiAgICAgIC8vIFRoZSBgc2hhcmUoKWAgb3BlcmF0b3IgcmVkdWNlcyB0aGUgbnVtYmVyIG9mIGNoYW5nZSBkZXRlY3Rpb25zLlxuICAgICAgLy8gVGhpcyB3b3VsZCBjYWxsIGxlYXZlIG9ubHkgb25jZSBmb3IgYW55IHN0cmVhbSBlbWlzc2lvbiBhY3Jvc3MgYWxsIGFjdGl2ZSBzdWJzY3JpYmVycy5cbiAgICAgIHNoYXJlKClcbiAgICApO1xuXG4gICAgc3VwZXIob2JzZXJ2ZXIgPT4ge1xuICAgICAgY29uc3QgY2hpbGRTdWJzY3JpcHRpb24gPSBzaGFyZWRJbnRlcm5hbEFjdGlvbnMkLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IGN0eCA9PiBvYnNlcnZlci5uZXh0KGN0eCksXG4gICAgICAgIGVycm9yOiBlcnJvciA9PiBvYnNlcnZlci5lcnJvcihlcnJvciksXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiBvYnNlcnZlci5jb21wbGV0ZSgpXG4gICAgICB9KTtcblxuICAgICAgb2JzZXJ2ZXIuYWRkKGNoaWxkU3Vic2NyaXB0aW9uKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,48 @@
1
+ export function throwStateNameError(name) {
2
+ throw new Error(`${name} is not a valid state name. It needs to be a valid object property name.`);
3
+ }
4
+ export function throwStateNamePropertyError() {
5
+ throw new Error(`States must register a 'name' property.`);
6
+ }
7
+ export function throwStateUniqueError(current, newName, oldName) {
8
+ throw new Error(`State name '${current}' from ${newName} already exists in ${oldName}.`);
9
+ }
10
+ export function throwStateDecoratorError(name) {
11
+ throw new Error(`States must be decorated with @State() decorator, but "${name}" isn't.`);
12
+ }
13
+ export function throwActionDecoratorError() {
14
+ throw new Error('@Action() decorator cannot be used with static methods.');
15
+ }
16
+ export function throwSelectorDecoratorError() {
17
+ throw new Error('Selectors only work on methods.');
18
+ }
19
+ export function getZoneWarningMessage() {
20
+ return ('Your application was bootstrapped with nooped zone and your execution strategy requires an actual NgZone!\n' +
21
+ 'Please set the value of the executionStrategy property to NoopNgxsExecutionStrategy.\n' +
22
+ 'NgxsModule.forRoot(states, { executionStrategy: NoopNgxsExecutionStrategy })');
23
+ }
24
+ export function getUndecoratedStateWithInjectableWarningMessage(name) {
25
+ return `'${name}' class should be decorated with @Injectable() right after the @State() decorator`;
26
+ }
27
+ export function getInvalidInitializationOrderMessage(addedStates) {
28
+ let message = 'You have an invalid state initialization order. This typically occurs when `NgxsModule.forFeature`\n' +
29
+ 'or `provideStates` is called before `NgxsModule.forRoot` or `provideStore`.\n' +
30
+ 'One example is when `NgxsRouterPluginModule.forRoot` is called before `NgxsModule.forRoot`.';
31
+ if (addedStates) {
32
+ const stateNames = Object.keys(addedStates).map(stateName => `"${stateName}"`);
33
+ message +=
34
+ '\nFeature states added before the store initialization is complete: ' +
35
+ `${stateNames.join(', ')}.`;
36
+ }
37
+ return message;
38
+ }
39
+ export function throwSelectFactoryNotConnectedError() {
40
+ throw new Error('You have forgotten to import the NGXS module!');
41
+ }
42
+ export function throwPatchingArrayError() {
43
+ throw new Error('Patching arrays is not supported.');
44
+ }
45
+ export function throwPatchingPrimitiveError() {
46
+ throw new Error('Patching primitives is not supported.');
47
+ }
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL2NvbmZpZ3MvbWVzc2FnZXMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxJQUFZO0lBQzlDLE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxJQUFJLDBFQUEwRSxDQUNsRixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkI7SUFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLE9BQWUsRUFDZixPQUFlLEVBQ2YsT0FBZTtJQUVmLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxPQUFPLFVBQVUsT0FBTyxzQkFBc0IsT0FBTyxHQUFHLENBQUMsQ0FBQztBQUMzRixDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLElBQVk7SUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQywwREFBMEQsSUFBSSxVQUFVLENBQUMsQ0FBQztBQUM1RixDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QjtJQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkI7SUFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE9BQU8sQ0FDTCw2R0FBNkc7UUFDN0csd0ZBQXdGO1FBQ3hGLDhFQUE4RSxDQUMvRSxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSwrQ0FBK0MsQ0FBQyxJQUFZO0lBQzFFLE9BQU8sSUFBSSxJQUFJLG1GQUFtRixDQUFDO0FBQ3JHLENBQUM7QUFFRCxNQUFNLFVBQVUsb0NBQW9DLENBQUMsV0FBMEI7SUFDN0UsSUFBSSxPQUFPLEdBQ1Qsc0dBQXNHO1FBQ3RHLCtFQUErRTtRQUMvRSw2RkFBNkYsQ0FBQztJQUVoRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBRS9FLE9BQU87WUFDTCxzRUFBc0U7Z0JBQ3RFLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsTUFBTSxVQUFVLG1DQUFtQztJQUNqRCxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7QUFDbkUsQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUI7SUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0FBQ3ZELENBQUM7QUFFRCxNQUFNLFVBQVUsMkJBQTJCO0lBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztBQUMzRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgybVQbGFpbk9iamVjdCB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1N0YXRlTmFtZUVycm9yKG5hbWU6IHN0cmluZyk6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgIGAke25hbWV9IGlzIG5vdCBhIHZhbGlkIHN0YXRlIG5hbWUuIEl0IG5lZWRzIHRvIGJlIGEgdmFsaWQgb2JqZWN0IHByb3BlcnR5IG5hbWUuYFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dTdGF0ZU5hbWVQcm9wZXJ0eUVycm9yKCk6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IEVycm9yKGBTdGF0ZXMgbXVzdCByZWdpc3RlciBhICduYW1lJyBwcm9wZXJ0eS5gKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93U3RhdGVVbmlxdWVFcnJvcihcbiAgY3VycmVudDogc3RyaW5nLFxuICBuZXdOYW1lOiBzdHJpbmcsXG4gIG9sZE5hbWU6IHN0cmluZ1xuKTogbmV2ZXIge1xuICB0aHJvdyBuZXcgRXJyb3IoYFN0YXRlIG5hbWUgJyR7Y3VycmVudH0nIGZyb20gJHtuZXdOYW1lfSBhbHJlYWR5IGV4aXN0cyBpbiAke29sZE5hbWV9LmApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dTdGF0ZURlY29yYXRvckVycm9yKG5hbWU6IHN0cmluZyk6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IEVycm9yKGBTdGF0ZXMgbXVzdCBiZSBkZWNvcmF0ZWQgd2l0aCBAU3RhdGUoKSBkZWNvcmF0b3IsIGJ1dCBcIiR7bmFtZX1cIiBpc24ndC5gKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93QWN0aW9uRGVjb3JhdG9yRXJyb3IoKTogbmV2ZXIge1xuICB0aHJvdyBuZXcgRXJyb3IoJ0BBY3Rpb24oKSBkZWNvcmF0b3IgY2Fubm90IGJlIHVzZWQgd2l0aCBzdGF0aWMgbWV0aG9kcy4nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93U2VsZWN0b3JEZWNvcmF0b3JFcnJvcigpOiBuZXZlciB7XG4gIHRocm93IG5ldyBFcnJvcignU2VsZWN0b3JzIG9ubHkgd29yayBvbiBtZXRob2RzLicpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Wm9uZVdhcm5pbmdNZXNzYWdlKCk6IHN0cmluZyB7XG4gIHJldHVybiAoXG4gICAgJ1lvdXIgYXBwbGljYXRpb24gd2FzIGJvb3RzdHJhcHBlZCB3aXRoIG5vb3BlZCB6b25lIGFuZCB5b3VyIGV4ZWN1dGlvbiBzdHJhdGVneSByZXF1aXJlcyBhbiBhY3R1YWwgTmdab25lIVxcbicgK1xuICAgICdQbGVhc2Ugc2V0IHRoZSB2YWx1ZSBvZiB0aGUgZXhlY3V0aW9uU3RyYXRlZ3kgcHJvcGVydHkgdG8gTm9vcE5neHNFeGVjdXRpb25TdHJhdGVneS5cXG4nICtcbiAgICAnTmd4c01vZHVsZS5mb3JSb290KHN0YXRlcywgeyBleGVjdXRpb25TdHJhdGVneTogTm9vcE5neHNFeGVjdXRpb25TdHJhdGVneSB9KSdcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFVuZGVjb3JhdGVkU3RhdGVXaXRoSW5qZWN0YWJsZVdhcm5pbmdNZXNzYWdlKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgJyR7bmFtZX0nIGNsYXNzIHNob3VsZCBiZSBkZWNvcmF0ZWQgd2l0aCBASW5qZWN0YWJsZSgpIHJpZ2h0IGFmdGVyIHRoZSBAU3RhdGUoKSBkZWNvcmF0b3JgO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW52YWxpZEluaXRpYWxpemF0aW9uT3JkZXJNZXNzYWdlKGFkZGVkU3RhdGVzPzogybVQbGFpbk9iamVjdCkge1xuICBsZXQgbWVzc2FnZSA9XG4gICAgJ1lvdSBoYXZlIGFuIGludmFsaWQgc3RhdGUgaW5pdGlhbGl6YXRpb24gb3JkZXIuIFRoaXMgdHlwaWNhbGx5IG9jY3VycyB3aGVuIGBOZ3hzTW9kdWxlLmZvckZlYXR1cmVgXFxuJyArXG4gICAgJ29yIGBwcm92aWRlU3RhdGVzYCBpcyBjYWxsZWQgYmVmb3JlIGBOZ3hzTW9kdWxlLmZvclJvb3RgIG9yIGBwcm92aWRlU3RvcmVgLlxcbicgK1xuICAgICdPbmUgZXhhbXBsZSBpcyB3aGVuIGBOZ3hzUm91dGVyUGx1Z2luTW9kdWxlLmZvclJvb3RgIGlzIGNhbGxlZCBiZWZvcmUgYE5neHNNb2R1bGUuZm9yUm9vdGAuJztcblxuICBpZiAoYWRkZWRTdGF0ZXMpIHtcbiAgICBjb25zdCBzdGF0ZU5hbWVzID0gT2JqZWN0LmtleXMoYWRkZWRTdGF0ZXMpLm1hcChzdGF0ZU5hbWUgPT4gYFwiJHtzdGF0ZU5hbWV9XCJgKTtcblxuICAgIG1lc3NhZ2UgKz1cbiAgICAgICdcXG5GZWF0dXJlIHN0YXRlcyBhZGRlZCBiZWZvcmUgdGhlIHN0b3JlIGluaXRpYWxpemF0aW9uIGlzIGNvbXBsZXRlOiAnICtcbiAgICAgIGAke3N0YXRlTmFtZXMuam9pbignLCAnKX0uYDtcbiAgfVxuXG4gIHJldHVybiBtZXNzYWdlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dTZWxlY3RGYWN0b3J5Tm90Q29ubmVjdGVkRXJyb3IoKTogbmV2ZXIge1xuICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBoYXZlIGZvcmdvdHRlbiB0byBpbXBvcnQgdGhlIE5HWFMgbW9kdWxlIScpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dQYXRjaGluZ0FycmF5RXJyb3IoKTogbmV2ZXIge1xuICB0aHJvdyBuZXcgRXJyb3IoJ1BhdGNoaW5nIGFycmF5cyBpcyBub3Qgc3VwcG9ydGVkLicpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dQYXRjaGluZ1ByaW1pdGl2ZUVycm9yKCk6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdQYXRjaGluZyBwcmltaXRpdmVzIGlzIG5vdCBzdXBwb3J0ZWQuJyk7XG59XG4iXX0=
@@ -0,0 +1,31 @@
1
+ import { ɵensureStoreMetadata } from '@ngxs/store/internals';
2
+ import { throwActionDecoratorError } from '../configs/messages.config';
3
+ /**
4
+ * Decorates a method with action information.
5
+ */
6
+ export function Action(actions, options) {
7
+ return (target, name,
8
+ // This parameter ensures that the decorated method has a call signature that could be passed an instance of the given action(s).
9
+ _descriptor) => {
10
+ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
11
+ const isStaticMethod = target.hasOwnProperty('prototype');
12
+ if (isStaticMethod) {
13
+ throwActionDecoratorError();
14
+ }
15
+ }
16
+ const meta = ɵensureStoreMetadata(target.constructor);
17
+ const actionArray = Array.isArray(actions) ? actions : [actions];
18
+ for (const action of actionArray) {
19
+ const type = action.type;
20
+ if (!meta.actions[type]) {
21
+ meta.actions[type] = [];
22
+ }
23
+ meta.actions[type].push({
24
+ fn: name,
25
+ options: options || {},
26
+ type
27
+ });
28
+ }
29
+ };
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL2RlY29yYXRvcnMvYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBa0Isb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUc3RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQStDdkU7O0dBRUc7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQUNwQixPQUF3QixFQUN4QixPQUF3QjtJQUV4QixPQUFPLENBQ0wsTUFBVyxFQUNYLElBQXFCO0lBQ3JCLGlJQUFpSTtJQUNqSSxXQUE0RCxFQUN0RCxFQUFFO1FBQ1IsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxFQUFFLENBQUM7WUFDbEQsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUUxRCxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUNuQix5QkFBeUIsRUFBRSxDQUFDO1lBQzlCLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsb0JBQW9CLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXRELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVqRSxLQUFLLE1BQU0sTUFBTSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFFekIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDMUIsQ0FBQztZQUVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUN0QixFQUFFLEVBQUUsSUFBSTtnQkFDUixPQUFPLEVBQUUsT0FBTyxJQUFJLEVBQUU7Z0JBQ3RCLElBQUk7YUFDTCxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IMm1QWN0aW9uT3B0aW9ucywgybVlbnN1cmVTdG9yZU1ldGFkYXRhIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuaW1wb3J0IHsgQWN0aW9uRGVmLCBBY3Rpb25UeXBlIH0gZnJvbSAnLi4vYWN0aW9ucy9zeW1ib2xzJztcbmltcG9ydCB7IHRocm93QWN0aW9uRGVjb3JhdG9yRXJyb3IgfSBmcm9tICcuLi9jb25maWdzL21lc3NhZ2VzLmNvbmZpZyc7XG5pbXBvcnQgeyBTdGF0ZUNvbnRleHQgfSBmcm9tICcuLi9zeW1ib2xzJztcblxuLyoqXG4gKiBHaXZlbiBhbiBhY3Rpb24gY2xhc3MsIHJldHVybnMgaXRzIHBheWxvYWQuXG4gKi9cbnR5cGUgQWN0aW9uVG9QYXlsb2FkPEFjdGlvbiBleHRlbmRzIEFjdGlvblR5cGU+ID1cbiAgQWN0aW9uIGV4dGVuZHMgQWN0aW9uRGVmPGFueSwgaW5mZXIgQWN0aW9uUGF5bG9hZD4gPyBBY3Rpb25QYXlsb2FkIDogbmV2ZXI7XG5cbi8qKlxuICogR2l2ZW4gYSBsaXN0IG9mIGFjdGlvbiBjbGFzc2VzLCByZXR1cm5zIHRoZSB1bmlvbiBvZiB0aGVpciBwYXlsb2Fkcy5cbiAqL1xudHlwZSBBY3Rpb25zVG9QYXlsb2FkPEFjdGlvbnMgZXh0ZW5kcyByZWFkb25seSBBY3Rpb25UeXBlW10+ID0ge1xuICBbSyBpbiBrZXlvZiBBY3Rpb25zXTogQWN0aW9uVG9QYXlsb2FkPEFjdGlvbnNbS10+O1xufVtudW1iZXJdO1xuXG4vKipcbiAqIEdpdmVuIGFuIGFjdGlvbiBjbGFzcyBvciBhIGxpc3Qgb2YgYWN0aW9uIGNsYXNzZXMsIHJldHVybnMgdGhlIHVuaW9uIG9mIHRoZWlyIHBheWxvYWRzLlxuICovXG50eXBlIEFjdGlvbk9yQWN0aW9uc1RvUGF5bG9hZDxBY3Rpb25PckFjdGlvbnM+ID0gQWN0aW9uT3JBY3Rpb25zIGV4dGVuZHMgQWN0aW9uVHlwZVxuICA/IEFjdGlvblRvUGF5bG9hZDxBY3Rpb25PckFjdGlvbnM+XG4gIDogQWN0aW9uT3JBY3Rpb25zIGV4dGVuZHMgQWN0aW9uVHlwZVtdXG4gICAgPyBBY3Rpb25zVG9QYXlsb2FkPEFjdGlvbk9yQWN0aW9ucz5cbiAgICA6IG5ldmVyO1xuXG4vKipcbiAqIERlc2NyaWJlcyB3aGF0IG1ldGhvZHMgY2FuIGJlIGRlY29yYXRlZCB3aXRoIGFuIGBAQWN0aW9uYCBkZWNvcmF0b3IgdGhhdCBoYXMgYmVlbiBwYXNzZWQgdGhlIGdpdmVuIGFjdGlvbihzKS5cbiAqL1xudHlwZSBIYW5kbGVyVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8QWN0aW9uT3JBY3Rpb25zPiA9XG4gIHwgVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8KCkgPT4gYW55PlxuICB8IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPChzdGF0ZUNvbnRleHQ6IFN0YXRlQ29udGV4dDxhbnk+KSA9PiBhbnk+XG4gIHwgVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8XG4gICAgICAoXG4gICAgICAgIHN0YXRlQ29udGV4dDogU3RhdGVDb250ZXh0PGFueT4sXG4gICAgICAgIGFjdGlvbjogQWN0aW9uT3JBY3Rpb25zVG9QYXlsb2FkPEFjdGlvbk9yQWN0aW9ucz5cbiAgICAgICkgPT4gYW55XG4gICAgPjtcblxuLyoqXG4gKiBUaGUgcmVzdWx0IG9mIGEgY2FsbCB0byB0aGUgYEBBY3Rpb24oKWAgZGVjb3JhdG9yIHdpdGggdGhlIGdpdmVuIGFjdGlvbihzKSBhcyBpdHMgZmlyc3QgYXJndW1lbnQuXG4gKi9cbnR5cGUgQWN0aW9uRGVjb3JhdG9yPEFjdGlvbk9yQWN0aW9ucyBleHRlbmRzIEFjdGlvblR5cGUgfCBBY3Rpb25UeXBlW10+ID0gKFxuICB0YXJnZXQ6IGFueSxcbiAgbmFtZTogc3RyaW5nIHwgc3ltYm9sLFxuICBfZGVzY3JpcHRvcjogSGFuZGxlclR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPEFjdGlvbk9yQWN0aW9ucz5cbikgPT4gdm9pZDtcblxuLyoqXG4gKiBEZWNvcmF0ZXMgYSBtZXRob2Qgd2l0aCBhY3Rpb24gaW5mb3JtYXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBBY3Rpb248QWN0aW9uT3JBY3Rpb25zIGV4dGVuZHMgQWN0aW9uVHlwZSB8IEFjdGlvblR5cGVbXT4oXG4gIGFjdGlvbnM6IEFjdGlvbk9yQWN0aW9ucyxcbiAgb3B0aW9ucz86IMm1QWN0aW9uT3B0aW9uc1xuKTogQWN0aW9uRGVjb3JhdG9yPEFjdGlvbk9yQWN0aW9ucz4ge1xuICByZXR1cm4gKFxuICAgIHRhcmdldDogYW55LFxuICAgIG5hbWU6IHN0cmluZyB8IHN5bWJvbCxcbiAgICAvLyBUaGlzIHBhcmFtZXRlciBlbnN1cmVzIHRoYXQgdGhlIGRlY29yYXRlZCBtZXRob2QgaGFzIGEgY2FsbCBzaWduYXR1cmUgdGhhdCBjb3VsZCBiZSBwYXNzZWQgYW4gaW5zdGFuY2Ugb2YgdGhlIGdpdmVuIGFjdGlvbihzKS5cbiAgICBfZGVzY3JpcHRvcjogSGFuZGxlclR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPEFjdGlvbk9yQWN0aW9ucz5cbiAgKTogdm9pZCA9PiB7XG4gICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgIT09ICd1bmRlZmluZWQnICYmIG5nRGV2TW9kZSkge1xuICAgICAgY29uc3QgaXNTdGF0aWNNZXRob2QgPSB0YXJnZXQuaGFzT3duUHJvcGVydHkoJ3Byb3RvdHlwZScpO1xuXG4gICAgICBpZiAoaXNTdGF0aWNNZXRob2QpIHtcbiAgICAgICAgdGhyb3dBY3Rpb25EZWNvcmF0b3JFcnJvcigpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG1ldGEgPSDJtWVuc3VyZVN0b3JlTWV0YWRhdGEodGFyZ2V0LmNvbnN0cnVjdG9yKTtcblxuICAgIGNvbnN0IGFjdGlvbkFycmF5ID0gQXJyYXkuaXNBcnJheShhY3Rpb25zKSA/IGFjdGlvbnMgOiBbYWN0aW9uc107XG5cbiAgICBmb3IgKGNvbnN0IGFjdGlvbiBvZiBhY3Rpb25BcnJheSkge1xuICAgICAgY29uc3QgdHlwZSA9IGFjdGlvbi50eXBlO1xuXG4gICAgICBpZiAoIW1ldGEuYWN0aW9uc1t0eXBlXSkge1xuICAgICAgICBtZXRhLmFjdGlvbnNbdHlwZV0gPSBbXTtcbiAgICAgIH1cblxuICAgICAgbWV0YS5hY3Rpb25zW3R5cGVdLnB1c2goe1xuICAgICAgICBmbjogbmFtZSxcbiAgICAgICAgb3B0aW9uczogb3B0aW9ucyB8fCB7fSxcbiAgICAgICAgdHlwZVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuIl19
@@ -0,0 +1,29 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Store } from '../../store';
3
+ import { NgxsConfig } from '../../symbols';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../store";
6
+ import * as i2 from "../../symbols";
7
+ /**
8
+ * Allows the select decorator to get access to the DI store, this is used internally
9
+ * in `@Select` decorator.
10
+ */
11
+ export class SelectFactory {
12
+ static { this.store = null; }
13
+ static { this.config = null; }
14
+ constructor(store, config) {
15
+ SelectFactory.store = store;
16
+ SelectFactory.config = config;
17
+ }
18
+ ngOnDestroy() {
19
+ SelectFactory.store = null;
20
+ SelectFactory.config = null;
21
+ }
22
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SelectFactory, deps: [{ token: i1.Store }, { token: i2.NgxsConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
23
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SelectFactory, providedIn: 'root' }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SelectFactory, decorators: [{
26
+ type: Injectable,
27
+ args: [{ providedIn: 'root' }]
28
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.NgxsConfig }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvZGVjb3JhdG9ycy9zZWxlY3Qvc2VsZWN0LWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFFM0M7OztHQUdHO0FBRUgsTUFBTSxPQUFPLGFBQWE7YUFDakIsVUFBSyxHQUFpQixJQUFJLEFBQXJCLENBQXNCO2FBQzNCLFdBQU0sR0FBc0IsSUFBSSxBQUExQixDQUEyQjtJQUV4QyxZQUFZLEtBQVksRUFBRSxNQUFrQjtRQUMxQyxhQUFhLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUM1QixhQUFhLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVztRQUNULGFBQWEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQzNCLGFBQWEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7aUlBWlUsYUFBYTtxSUFBYixhQUFhLGNBREEsTUFBTTs7MkZBQ25CLGFBQWE7a0JBRHpCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnLi4vLi4vc3RvcmUnO1xuaW1wb3J0IHsgTmd4c0NvbmZpZyB9IGZyb20gJy4uLy4uL3N5bWJvbHMnO1xuXG4vKipcbiAqIEFsbG93cyB0aGUgc2VsZWN0IGRlY29yYXRvciB0byBnZXQgYWNjZXNzIHRvIHRoZSBESSBzdG9yZSwgdGhpcyBpcyB1c2VkIGludGVybmFsbHlcbiAqIGluIGBAU2VsZWN0YCBkZWNvcmF0b3IuXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU2VsZWN0RmFjdG9yeSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHN0YXRpYyBzdG9yZTogU3RvcmUgfCBudWxsID0gbnVsbDtcbiAgc3RhdGljIGNvbmZpZzogTmd4c0NvbmZpZyB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHN0b3JlOiBTdG9yZSwgY29uZmlnOiBOZ3hzQ29uZmlnKSB7XG4gICAgU2VsZWN0RmFjdG9yeS5zdG9yZSA9IHN0b3JlO1xuICAgIFNlbGVjdEZhY3RvcnkuY29uZmlnID0gY29uZmlnO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgU2VsZWN0RmFjdG9yeS5zdG9yZSA9IG51bGw7XG4gICAgU2VsZWN0RmFjdG9yeS5jb25maWcgPSBudWxsO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { createSelectObservable, createSelectorFn } from './symbols';
2
+ /**
3
+ * Decorator for selecting a slice of state from the store.
4
+ *
5
+ * @deprecated
6
+ * Read the deprecation notice at this link: https://ngxs.io/deprecations/select-decorator-deprecation.
7
+ */
8
+ export function Select(rawSelector, ...paths) {
9
+ return function (target, key) {
10
+ const name = key.toString();
11
+ const selectorId = `__${name}__selector`;
12
+ const selector = createSelectorFn(name, rawSelector, paths);
13
+ Object.defineProperties(target, {
14
+ [selectorId]: {
15
+ writable: true,
16
+ enumerable: false,
17
+ configurable: true
18
+ },
19
+ [name]: {
20
+ enumerable: true,
21
+ configurable: true,
22
+ get() {
23
+ return this[selectorId] || (this[selectorId] = createSelectObservable(selector));
24
+ }
25
+ }
26
+ });
27
+ };
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL2RlY29yYXRvcnMvc2VsZWN0L3NlbGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sV0FBVyxDQUFDO0FBRW5GOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBSSxXQUFlLEVBQUUsR0FBRyxLQUFlO0lBQzNELE9BQU8sVUFBVSxNQUFNLEVBQUUsR0FBRztRQUMxQixNQUFNLElBQUksR0FBVyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDcEMsTUFBTSxVQUFVLEdBQUcsS0FBSyxJQUFJLFlBQVksQ0FBQztRQUN6QyxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7WUFDOUIsQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDWixRQUFRLEVBQUUsSUFBSTtnQkFDZCxVQUFVLEVBQUUsS0FBSztnQkFDakIsWUFBWSxFQUFFLElBQUk7YUFDbkI7WUFDRCxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNOLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixZQUFZLEVBQUUsSUFBSTtnQkFDbEIsR0FBRztvQkFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUNuRixDQUFDO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlU2VsZWN0T2JzZXJ2YWJsZSwgY3JlYXRlU2VsZWN0b3JGbiwgUHJvcGVydHlUeXBlIH0gZnJvbSAnLi9zeW1ib2xzJztcblxuLyoqXG4gKiBEZWNvcmF0b3IgZm9yIHNlbGVjdGluZyBhIHNsaWNlIG9mIHN0YXRlIGZyb20gdGhlIHN0b3JlLlxuICpcbiAqIEBkZXByZWNhdGVkXG4gKiBSZWFkIHRoZSBkZXByZWNhdGlvbiBub3RpY2UgYXQgdGhpcyBsaW5rOiBodHRwczovL25neHMuaW8vZGVwcmVjYXRpb25zL3NlbGVjdC1kZWNvcmF0b3ItZGVwcmVjYXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTZWxlY3Q8VD4ocmF3U2VsZWN0b3I/OiBULCAuLi5wYXRoczogc3RyaW5nW10pOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpOiB2b2lkIHtcbiAgICBjb25zdCBuYW1lOiBzdHJpbmcgPSBrZXkudG9TdHJpbmcoKTtcbiAgICBjb25zdCBzZWxlY3RvcklkID0gYF9fJHtuYW1lfV9fc2VsZWN0b3JgO1xuICAgIGNvbnN0IHNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3JGbihuYW1lLCByYXdTZWxlY3RvciwgcGF0aHMpO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCB7XG4gICAgICBbc2VsZWN0b3JJZF06IHtcbiAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBbbmFtZV06IHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQoKTogUHJvcGVydHlUeXBlPFQ+IHtcbiAgICAgICAgICByZXR1cm4gdGhpc1tzZWxlY3RvcklkXSB8fCAodGhpc1tzZWxlY3RvcklkXSA9IGNyZWF0ZVNlbGVjdE9ic2VydmFibGUoc2VsZWN0b3IpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9O1xufVxuIl19
@@ -0,0 +1,29 @@
1
+ import { propGetter } from '../../internal/internals';
2
+ import { SelectFactory } from './select-factory';
3
+ import { throwSelectFactoryNotConnectedError } from '../../configs/messages.config';
4
+ const DOLLAR_CHAR_CODE = 36;
5
+ export function createSelectObservable(selector) {
6
+ if (!SelectFactory.store) {
7
+ throwSelectFactoryNotConnectedError();
8
+ }
9
+ return SelectFactory.store.select(selector);
10
+ }
11
+ export function createSelectorFn(name, rawSelector, paths = []) {
12
+ rawSelector = !rawSelector ? removeDollarAtTheEnd(name) : rawSelector;
13
+ if (typeof rawSelector === 'string') {
14
+ const propsArray = paths.length
15
+ ? [rawSelector, ...paths]
16
+ : rawSelector.split('.');
17
+ return propGetter(propsArray, SelectFactory.config);
18
+ }
19
+ return rawSelector;
20
+ }
21
+ /**
22
+ * @example If `foo$` => make it just `foo`
23
+ */
24
+ export function removeDollarAtTheEnd(name) {
25
+ const lastCharIndex = name.length - 1;
26
+ const dollarAtTheEnd = name.charCodeAt(lastCharIndex) === DOLLAR_CHAR_CODE;
27
+ return dollarAtTheEnd ? name.slice(0, lastCharIndex) : name;
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9kZWNvcmF0b3JzL3NlbGVjdC9zeW1ib2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFcEYsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7QUFFNUIsTUFBTSxVQUFVLHNCQUFzQixDQUFVLFFBQWE7SUFDM0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QixtQ0FBbUMsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFDRCxPQUFPLGFBQWEsQ0FBQyxLQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLFdBQWlCLEVBQUUsUUFBa0IsRUFBRTtJQUNwRixXQUFXLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFFdEUsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNwQyxNQUFNLFVBQVUsR0FBYSxLQUFLLENBQUMsTUFBTTtZQUN2QyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUM7WUFDekIsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsT0FBTyxVQUFVLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxNQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFDLElBQVk7SUFDL0MsTUFBTSxhQUFhLEdBQVcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDOUMsTUFBTSxjQUFjLEdBQVksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQztJQUNwRixPQUFPLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUM5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgybVFeHRyYWN0VG9rZW5UeXBlLCBTdGF0ZVRva2VuIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuaW1wb3J0IHsgcHJvcEdldHRlciB9IGZyb20gJy4uLy4uL2ludGVybmFsL2ludGVybmFscyc7XG5pbXBvcnQgeyBTZWxlY3RGYWN0b3J5IH0gZnJvbSAnLi9zZWxlY3QtZmFjdG9yeSc7XG5pbXBvcnQgeyB0aHJvd1NlbGVjdEZhY3RvcnlOb3RDb25uZWN0ZWRFcnJvciB9IGZyb20gJy4uLy4uL2NvbmZpZ3MvbWVzc2FnZXMuY29uZmlnJztcblxuY29uc3QgRE9MTEFSX0NIQVJfQ09ERSA9IDM2O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VsZWN0T2JzZXJ2YWJsZTxUID0gYW55PihzZWxlY3RvcjogYW55KTogT2JzZXJ2YWJsZTxUPiB7XG4gIGlmICghU2VsZWN0RmFjdG9yeS5zdG9yZSkge1xuICAgIHRocm93U2VsZWN0RmFjdG9yeU5vdENvbm5lY3RlZEVycm9yKCk7XG4gIH1cbiAgcmV0dXJuIFNlbGVjdEZhY3Rvcnkuc3RvcmUhLnNlbGVjdChzZWxlY3Rvcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTZWxlY3RvckZuKG5hbWU6IHN0cmluZywgcmF3U2VsZWN0b3I/OiBhbnksIHBhdGhzOiBzdHJpbmdbXSA9IFtdKTogYW55IHtcbiAgcmF3U2VsZWN0b3IgPSAhcmF3U2VsZWN0b3IgPyByZW1vdmVEb2xsYXJBdFRoZUVuZChuYW1lKSA6IHJhd1NlbGVjdG9yO1xuXG4gIGlmICh0eXBlb2YgcmF3U2VsZWN0b3IgPT09ICdzdHJpbmcnKSB7XG4gICAgY29uc3QgcHJvcHNBcnJheTogc3RyaW5nW10gPSBwYXRocy5sZW5ndGhcbiAgICAgID8gW3Jhd1NlbGVjdG9yLCAuLi5wYXRoc11cbiAgICAgIDogcmF3U2VsZWN0b3Iuc3BsaXQoJy4nKTtcbiAgICByZXR1cm4gcHJvcEdldHRlcihwcm9wc0FycmF5LCBTZWxlY3RGYWN0b3J5LmNvbmZpZyEpO1xuICB9XG5cbiAgcmV0dXJuIHJhd1NlbGVjdG9yO1xufVxuXG4vKipcbiAqIEBleGFtcGxlIElmIGBmb28kYCA9PiBtYWtlIGl0IGp1c3QgYGZvb2BcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZURvbGxhckF0VGhlRW5kKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGxhc3RDaGFySW5kZXg6IG51bWJlciA9IG5hbWUubGVuZ3RoIC0gMTtcbiAgY29uc3QgZG9sbGFyQXRUaGVFbmQ6IGJvb2xlYW4gPSBuYW1lLmNoYXJDb2RlQXQobGFzdENoYXJJbmRleCkgPT09IERPTExBUl9DSEFSX0NPREU7XG4gIHJldHVybiBkb2xsYXJBdFRoZUVuZCA/IG5hbWUuc2xpY2UoMCwgbGFzdENoYXJJbmRleCkgOiBuYW1lO1xufVxuXG5leHBvcnQgdHlwZSBQcm9wZXJ0eVR5cGU8VD4gPVxuICBUIGV4dGVuZHMgU3RhdGVUb2tlbjxhbnk+XG4gICAgPyBPYnNlcnZhYmxlPMm1RXh0cmFjdFRva2VuVHlwZTxUPj5cbiAgICA6IFQgZXh0ZW5kcyAoLi4uYXJnczogYW55W10pID0+IGFueVxuICAgICAgPyBPYnNlcnZhYmxlPFJldHVyblR5cGU8VD4+XG4gICAgICA6IGFueTtcbiJdfQ==
@@ -0,0 +1,29 @@
1
+ import { throwSelectorDecoratorError } from '../../configs/messages.config';
2
+ import { createSelector } from '../../selectors/create-selector';
3
+ export function Selector(selectors) {
4
+ return (target, key, descriptor) => {
5
+ descriptor ||= Object.getOwnPropertyDescriptor(target, key);
6
+ const originalFn = descriptor?.value;
7
+ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
8
+ if (originalFn && typeof originalFn !== 'function') {
9
+ throwSelectorDecoratorError();
10
+ }
11
+ }
12
+ const memoizedFn = createSelector(selectors, originalFn, {
13
+ containerClass: target,
14
+ selectorName: key.toString(),
15
+ getSelectorOptions() {
16
+ return {};
17
+ }
18
+ });
19
+ const newDescriptor = {
20
+ configurable: true,
21
+ get() {
22
+ return memoizedFn;
23
+ },
24
+ originalFn
25
+ };
26
+ return newDescriptor;
27
+ };
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvZGVjb3JhdG9ycy9zZWxlY3Rvci9zZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFhakUsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsU0FBYTtJQUViLE9BQU8sQ0FDTCxNQUFXLEVBQ1gsR0FBb0IsRUFDcEIsVUFBNkQsRUFDSixFQUFFO1FBQzNELFVBQVUsS0FBSyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBRSxDQUFDO1FBRTdELE1BQU0sVUFBVSxHQUFHLFVBQVUsRUFBRSxLQUFLLENBQUM7UUFFckMsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxFQUFFLENBQUM7WUFDbEQsSUFBSSxVQUFVLElBQUksT0FBTyxVQUFVLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQ25ELDJCQUEyQixFQUFFLENBQUM7WUFDaEMsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsU0FBUyxFQUFFLFVBQWlCLEVBQUU7WUFDOUQsY0FBYyxFQUFFLE1BQU07WUFDdEIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUU7WUFDNUIsa0JBQWtCO2dCQUNoQixPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFNLGFBQWEsR0FBRztZQUNwQixZQUFZLEVBQUUsSUFBSTtZQUNsQixHQUFHO2dCQUNELE9BQU8sVUFBVSxDQUFDO1lBQ3BCLENBQUM7WUFDRCxVQUFVO1NBQ1gsQ0FBQztRQUNGLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0aHJvd1NlbGVjdG9yRGVjb3JhdG9yRXJyb3IgfSBmcm9tICcuLi8uLi9jb25maWdzL21lc3NhZ2VzLmNvbmZpZyc7XG5pbXBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gJy4uLy4uL3NlbGVjdG9ycy9jcmVhdGUtc2VsZWN0b3InO1xuaW1wb3J0IHsgU2VsZWN0b3JEZWZUdXBsZSwgU2VsZWN0b3JUeXBlIH0gZnJvbSAnLi9zeW1ib2xzJztcblxuLyoqXG4gKiBEZWNvcmF0b3IgZm9yIGNyZWF0aW5nIGEgc3RhdGUgc2VsZWN0b3IgZm9yIHRoZSBjdXJyZW50IHN0YXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gU2VsZWN0b3IoKTogU2VsZWN0b3JUeXBlPHVua25vd24+O1xuXG4vKipcbiAqIERlY29yYXRvciBmb3IgY3JlYXRpbmcgYSBzdGF0ZSBzZWxlY3RvciBmcm9tIHRoZSBwcm92aWRlZCBzZWxlY3RvcnMgKGFuZCBvcHRpb25hbGx5IHRoZSBjb250YWluZXIgU3RhdGUsIGRlcGVuZGluZyBvbiB0aGUgYXBwbGljYWJsZSBTZWxlY3RvciBPcHRpb25zKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdG9yPFQgZXh0ZW5kcyBTZWxlY3RvckRlZlR1cGxlPihzZWxlY3RvcnM6IFQpOiBTZWxlY3RvclR5cGU8VD47XG5cbmV4cG9ydCBmdW5jdGlvbiBTZWxlY3RvcjxUIGV4dGVuZHMgU2VsZWN0b3JEZWZUdXBsZSA9IFtdPihcbiAgc2VsZWN0b3JzPzogVFxuKTogU2VsZWN0b3JUeXBlPHVua25vd24+IHwgU2VsZWN0b3JUeXBlPFQ+IHtcbiAgcmV0dXJuIDxVPihcbiAgICB0YXJnZXQ6IGFueSxcbiAgICBrZXk6IHN0cmluZyB8IHN5bWJvbCxcbiAgICBkZXNjcmlwdG9yPzogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8KC4uLnN0YXRlczogYW55W10pID0+IFU+XG4gICk6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPCguLi5zdGF0ZXM6IGFueVtdKSA9PiBVPiB8IHZvaWQgPT4ge1xuICAgIGRlc2NyaXB0b3IgfHw9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpITtcblxuICAgIGNvbnN0IG9yaWdpbmFsRm4gPSBkZXNjcmlwdG9yPy52YWx1ZTtcblxuICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlICE9PSAndW5kZWZpbmVkJyAmJiBuZ0Rldk1vZGUpIHtcbiAgICAgIGlmIChvcmlnaW5hbEZuICYmIHR5cGVvZiBvcmlnaW5hbEZuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93U2VsZWN0b3JEZWNvcmF0b3JFcnJvcigpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG1lbW9pemVkRm4gPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RvcnMsIG9yaWdpbmFsRm4gYXMgYW55LCB7XG4gICAgICBjb250YWluZXJDbGFzczogdGFyZ2V0LFxuICAgICAgc2VsZWN0b3JOYW1lOiBrZXkudG9TdHJpbmcoKSxcbiAgICAgIGdldFNlbGVjdG9yT3B0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG5ld0Rlc2NyaXB0b3IgPSB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBnZXQoKSB7XG4gICAgICAgIHJldHVybiBtZW1vaXplZEZuO1xuICAgICAgfSxcbiAgICAgIG9yaWdpbmFsRm5cbiAgICB9O1xuICAgIHJldHVybiBuZXdEZXNjcmlwdG9yO1xuICB9O1xufVxuIl19