@ngrx-traits/common 12.2.0 → 13.0.0

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 (228) hide show
  1. package/crud-entities/crud-entities.model.d.ts +1 -3
  2. package/entities-pagination/entities-pagination.model.d.ts +8 -11
  3. package/entities-pagination/entities-pagination.model.internal.d.ts +9 -1
  4. package/entities-pagination/entities-pagination.trait.d.ts +4 -5
  5. package/esm2020/async-action/async-action.model.mjs +2 -0
  6. package/esm2020/async-action/async-action.trait.mjs +110 -0
  7. package/esm2020/async-action/index.mjs +3 -0
  8. package/esm2020/crud-entities/crud-entities.model.mjs +8 -0
  9. package/esm2020/crud-entities/crud-entities.trait.actions.mjs +20 -0
  10. package/esm2020/crud-entities/crud-entities.trait.mjs +57 -0
  11. package/esm2020/crud-entities/crud-entities.trait.mutators.mjs +121 -0
  12. package/esm2020/crud-entities/crud-entities.trait.reducer.mjs +17 -0
  13. package/esm2020/crud-entities/crud-entities.trait.selectors.mjs +54 -0
  14. package/esm2020/crud-entities/index.mjs +3 -0
  15. package/esm2020/entities-pagination/entities-pagination.model.internal.mjs +2 -0
  16. package/esm2020/entities-pagination/entities-pagination.model.mjs +2 -0
  17. package/esm2020/entities-pagination/entities-pagination.trait.actions.mjs +20 -0
  18. package/esm2020/entities-pagination/entities-pagination.trait.effects.mjs +62 -0
  19. package/esm2020/entities-pagination/entities-pagination.trait.mjs +93 -0
  20. package/esm2020/entities-pagination/entities-pagination.trait.mutators.mjs +55 -0
  21. package/esm2020/entities-pagination/entities-pagination.trait.reducer.mjs +87 -0
  22. package/esm2020/entities-pagination/entities-pagination.trait.selectors.mjs +84 -0
  23. package/esm2020/entities-pagination/index.mjs +3 -0
  24. package/esm2020/filter-entities/filter-entities.model.internal.mjs +2 -0
  25. package/esm2020/filter-entities/filter-entities.model.mjs +2 -0
  26. package/esm2020/filter-entities/filter-entities.trait.actions.mjs +16 -0
  27. package/esm2020/filter-entities/filter-entities.trait.effect.mjs +59 -0
  28. package/esm2020/filter-entities/filter-entities.trait.mjs +73 -0
  29. package/esm2020/filter-entities/filter-entities.trait.mutators.mjs +10 -0
  30. package/esm2020/filter-entities/filter-entities.trait.reducer.mjs +11 -0
  31. package/esm2020/filter-entities/filter-entities.trait.selectors.mjs +9 -0
  32. package/esm2020/filter-entities/index.mjs +3 -0
  33. package/esm2020/index.mjs +12 -0
  34. package/esm2020/load-entities/index.mjs +3 -0
  35. package/esm2020/load-entities/load-entities.model.mjs +2 -0
  36. package/esm2020/load-entities/load-entities.mutators.mjs +7 -0
  37. package/esm2020/load-entities/load-entities.trait.actions.mjs +10 -0
  38. package/esm2020/load-entities/load-entities.trait.mjs +62 -0
  39. package/esm2020/load-entities/load-entities.trait.reducer.mjs +27 -0
  40. package/esm2020/load-entities/load-entities.trait.selectors.mjs +38 -0
  41. package/esm2020/load-entities/load-entities.utils.mjs +10 -0
  42. package/esm2020/load-entity/index.mjs +3 -0
  43. package/esm2020/load-entity/load-entity.model.mjs +2 -0
  44. package/esm2020/load-entity/load-entity.traits.mjs +74 -0
  45. package/esm2020/ngrx-traits-common.mjs +5 -0
  46. package/esm2020/public_api.mjs +2 -0
  47. package/esm2020/reset/index.mjs +2 -0
  48. package/esm2020/reset/reset.trait.mjs +39 -0
  49. package/esm2020/select-entities/index.mjs +4 -0
  50. package/esm2020/select-entities/select-entities.model.mjs +2 -0
  51. package/esm2020/select-entities/select-entities.trait.actions.mjs +11 -0
  52. package/esm2020/select-entities/select-entities.trait.mjs +54 -0
  53. package/esm2020/select-entities/select-entities.trait.mutators.mjs +27 -0
  54. package/esm2020/select-entities/select-entities.trait.reducer.mjs +42 -0
  55. package/esm2020/select-entities/select-entities.trait.selectors.mjs +28 -0
  56. package/esm2020/select-entities/select-entities.utils.mjs +30 -0
  57. package/esm2020/select-entity/index.mjs +3 -0
  58. package/esm2020/select-entity/select-entity.model.mjs +2 -0
  59. package/esm2020/select-entity/select-entity.trait.actions.mjs +9 -0
  60. package/esm2020/select-entity/select-entity.trait.mjs +51 -0
  61. package/esm2020/select-entity/select-entity.trait.mutators.mjs +26 -0
  62. package/esm2020/select-entity/select-entity.trait.reducer.mjs +35 -0
  63. package/esm2020/select-entity/select-entity.trait.selectors.mjs +13 -0
  64. package/esm2020/set-entity/index.mjs +3 -0
  65. package/esm2020/set-entity/set-entity.model.mjs +2 -0
  66. package/esm2020/set-entity/set-entity.trait.mjs +58 -0
  67. package/esm2020/sort-entities/index.mjs +4 -0
  68. package/esm2020/sort-entities/sort-entities.model.mjs +2 -0
  69. package/esm2020/sort-entities/sort-entities.trait.actions.mjs +8 -0
  70. package/esm2020/sort-entities/sort-entities.trait.effect.mjs +28 -0
  71. package/esm2020/sort-entities/sort-entities.trait.mjs +59 -0
  72. package/esm2020/sort-entities/sort-entities.trait.mutators.mjs +17 -0
  73. package/esm2020/sort-entities/sort-entities.trait.reducer.mjs +28 -0
  74. package/esm2020/sort-entities/sort-entities.trait.selectors.mjs +9 -0
  75. package/esm2020/sort-entities/sort-entities.utils.mjs +63 -0
  76. package/fesm2015/{ngrx-traits-common.js → ngrx-traits-common.mjs} +61 -82
  77. package/fesm2015/ngrx-traits-common.mjs.map +1 -0
  78. package/fesm2020/ngrx-traits-common.mjs +1747 -0
  79. package/fesm2020/ngrx-traits-common.mjs.map +1 -0
  80. package/load-entity/load-entity.traits.d.ts +1 -1
  81. package/package.json +27 -15
  82. package/reset/reset.trait.d.ts +3 -4
  83. package/set-entity/set-entity.trait.d.ts +1 -1
  84. package/bundles/ngrx-traits-common.umd.js +0 -2194
  85. package/bundles/ngrx-traits-common.umd.js.map +0 -1
  86. package/esm2015/async-action/async-action.model.js +0 -2
  87. package/esm2015/async-action/async-action.model.js.map +0 -1
  88. package/esm2015/async-action/async-action.trait.js +0 -101
  89. package/esm2015/async-action/async-action.trait.js.map +0 -1
  90. package/esm2015/async-action/index.js +0 -3
  91. package/esm2015/async-action/index.js.map +0 -1
  92. package/esm2015/crud-entities/crud-entities.model.js +0 -8
  93. package/esm2015/crud-entities/crud-entities.model.js.map +0 -1
  94. package/esm2015/crud-entities/crud-entities.trait.actions.js +0 -20
  95. package/esm2015/crud-entities/crud-entities.trait.actions.js.map +0 -1
  96. package/esm2015/crud-entities/crud-entities.trait.js +0 -57
  97. package/esm2015/crud-entities/crud-entities.trait.js.map +0 -1
  98. package/esm2015/crud-entities/crud-entities.trait.mutators.js +0 -101
  99. package/esm2015/crud-entities/crud-entities.trait.mutators.js.map +0 -1
  100. package/esm2015/crud-entities/crud-entities.trait.reducer.js +0 -15
  101. package/esm2015/crud-entities/crud-entities.trait.reducer.js.map +0 -1
  102. package/esm2015/crud-entities/crud-entities.trait.selectors.js +0 -70
  103. package/esm2015/crud-entities/crud-entities.trait.selectors.js.map +0 -1
  104. package/esm2015/crud-entities/index.js +0 -3
  105. package/esm2015/crud-entities/index.js.map +0 -1
  106. package/esm2015/entities-pagination/entities-pagination.model.internal.js +0 -2
  107. package/esm2015/entities-pagination/entities-pagination.model.internal.js.map +0 -1
  108. package/esm2015/entities-pagination/entities-pagination.model.js +0 -2
  109. package/esm2015/entities-pagination/entities-pagination.model.js.map +0 -1
  110. package/esm2015/entities-pagination/entities-pagination.trait.actions.js +0 -20
  111. package/esm2015/entities-pagination/entities-pagination.trait.actions.js.map +0 -1
  112. package/esm2015/entities-pagination/entities-pagination.trait.effects.js +0 -54
  113. package/esm2015/entities-pagination/entities-pagination.trait.effects.js.map +0 -1
  114. package/esm2015/entities-pagination/entities-pagination.trait.js +0 -94
  115. package/esm2015/entities-pagination/entities-pagination.trait.js.map +0 -1
  116. package/esm2015/entities-pagination/entities-pagination.trait.mutators.js +0 -23
  117. package/esm2015/entities-pagination/entities-pagination.trait.mutators.js.map +0 -1
  118. package/esm2015/entities-pagination/entities-pagination.trait.reducer.js +0 -33
  119. package/esm2015/entities-pagination/entities-pagination.trait.reducer.js.map +0 -1
  120. package/esm2015/entities-pagination/entities-pagination.trait.selectors.js +0 -65
  121. package/esm2015/entities-pagination/entities-pagination.trait.selectors.js.map +0 -1
  122. package/esm2015/entities-pagination/index.js +0 -3
  123. package/esm2015/entities-pagination/index.js.map +0 -1
  124. package/esm2015/filter-entities/filter-entities.model.internal.js +0 -2
  125. package/esm2015/filter-entities/filter-entities.model.internal.js.map +0 -1
  126. package/esm2015/filter-entities/filter-entities.model.js +0 -2
  127. package/esm2015/filter-entities/filter-entities.model.js.map +0 -1
  128. package/esm2015/filter-entities/filter-entities.trait.actions.js +0 -16
  129. package/esm2015/filter-entities/filter-entities.trait.actions.js.map +0 -1
  130. package/esm2015/filter-entities/filter-entities.trait.effect.js +0 -56
  131. package/esm2015/filter-entities/filter-entities.trait.effect.js.map +0 -1
  132. package/esm2015/filter-entities/filter-entities.trait.js +0 -73
  133. package/esm2015/filter-entities/filter-entities.trait.js.map +0 -1
  134. package/esm2015/filter-entities/filter-entities.trait.mutators.js +0 -7
  135. package/esm2015/filter-entities/filter-entities.trait.mutators.js.map +0 -1
  136. package/esm2015/filter-entities/filter-entities.trait.reducer.js +0 -9
  137. package/esm2015/filter-entities/filter-entities.trait.reducer.js.map +0 -1
  138. package/esm2015/filter-entities/filter-entities.trait.selectors.js +0 -9
  139. package/esm2015/filter-entities/filter-entities.trait.selectors.js.map +0 -1
  140. package/esm2015/filter-entities/index.js +0 -3
  141. package/esm2015/filter-entities/index.js.map +0 -1
  142. package/esm2015/index.js +0 -12
  143. package/esm2015/index.js.map +0 -1
  144. package/esm2015/load-entities/index.js +0 -3
  145. package/esm2015/load-entities/index.js.map +0 -1
  146. package/esm2015/load-entities/load-entities.model.js +0 -2
  147. package/esm2015/load-entities/load-entities.model.js.map +0 -1
  148. package/esm2015/load-entities/load-entities.mutators.js +0 -8
  149. package/esm2015/load-entities/load-entities.mutators.js.map +0 -1
  150. package/esm2015/load-entities/load-entities.trait.actions.js +0 -10
  151. package/esm2015/load-entities/load-entities.trait.actions.js.map +0 -1
  152. package/esm2015/load-entities/load-entities.trait.js +0 -62
  153. package/esm2015/load-entities/load-entities.trait.js.map +0 -1
  154. package/esm2015/load-entities/load-entities.trait.reducer.js +0 -12
  155. package/esm2015/load-entities/load-entities.trait.reducer.js.map +0 -1
  156. package/esm2015/load-entities/load-entities.trait.selectors.js +0 -33
  157. package/esm2015/load-entities/load-entities.trait.selectors.js.map +0 -1
  158. package/esm2015/load-entities/load-entities.utils.js +0 -10
  159. package/esm2015/load-entities/load-entities.utils.js.map +0 -1
  160. package/esm2015/load-entity/index.js +0 -3
  161. package/esm2015/load-entity/index.js.map +0 -1
  162. package/esm2015/load-entity/load-entity.model.js +0 -2
  163. package/esm2015/load-entity/load-entity.model.js.map +0 -1
  164. package/esm2015/load-entity/load-entity.traits.js +0 -71
  165. package/esm2015/load-entity/load-entity.traits.js.map +0 -1
  166. package/esm2015/ngrx-traits-common.js +0 -5
  167. package/esm2015/ngrx-traits-common.js.map +0 -1
  168. package/esm2015/public_api.js +0 -2
  169. package/esm2015/public_api.js.map +0 -1
  170. package/esm2015/reset/index.js +0 -2
  171. package/esm2015/reset/index.js.map +0 -1
  172. package/esm2015/reset/reset.trait.js +0 -69
  173. package/esm2015/reset/reset.trait.js.map +0 -1
  174. package/esm2015/select-entities/index.js +0 -4
  175. package/esm2015/select-entities/index.js.map +0 -1
  176. package/esm2015/select-entities/select-entities.model.js +0 -2
  177. package/esm2015/select-entities/select-entities.model.js.map +0 -1
  178. package/esm2015/select-entities/select-entities.trait.actions.js +0 -11
  179. package/esm2015/select-entities/select-entities.trait.actions.js.map +0 -1
  180. package/esm2015/select-entities/select-entities.trait.js +0 -54
  181. package/esm2015/select-entities/select-entities.trait.js.map +0 -1
  182. package/esm2015/select-entities/select-entities.trait.mutators.js +0 -21
  183. package/esm2015/select-entities/select-entities.trait.mutators.js.map +0 -1
  184. package/esm2015/select-entities/select-entities.trait.reducer.js +0 -40
  185. package/esm2015/select-entities/select-entities.trait.reducer.js.map +0 -1
  186. package/esm2015/select-entities/select-entities.trait.selectors.js +0 -28
  187. package/esm2015/select-entities/select-entities.trait.selectors.js.map +0 -1
  188. package/esm2015/select-entities/select-entities.utils.js +0 -25
  189. package/esm2015/select-entities/select-entities.utils.js.map +0 -1
  190. package/esm2015/select-entity/index.js +0 -3
  191. package/esm2015/select-entity/index.js.map +0 -1
  192. package/esm2015/select-entity/select-entity.model.js +0 -2
  193. package/esm2015/select-entity/select-entity.model.js.map +0 -1
  194. package/esm2015/select-entity/select-entity.trait.actions.js +0 -9
  195. package/esm2015/select-entity/select-entity.trait.actions.js.map +0 -1
  196. package/esm2015/select-entity/select-entity.trait.js +0 -51
  197. package/esm2015/select-entity/select-entity.trait.js.map +0 -1
  198. package/esm2015/select-entity/select-entity.trait.mutators.js +0 -17
  199. package/esm2015/select-entity/select-entity.trait.mutators.js.map +0 -1
  200. package/esm2015/select-entity/select-entity.trait.reducer.js +0 -26
  201. package/esm2015/select-entity/select-entity.trait.reducer.js.map +0 -1
  202. package/esm2015/select-entity/select-entity.trait.selectors.js +0 -13
  203. package/esm2015/select-entity/select-entity.trait.selectors.js.map +0 -1
  204. package/esm2015/set-entity/index.js +0 -3
  205. package/esm2015/set-entity/index.js.map +0 -1
  206. package/esm2015/set-entity/set-entity.model.js +0 -2
  207. package/esm2015/set-entity/set-entity.model.js.map +0 -1
  208. package/esm2015/set-entity/set-entity.trait.js +0 -55
  209. package/esm2015/set-entity/set-entity.trait.js.map +0 -1
  210. package/esm2015/sort-entities/index.js +0 -4
  211. package/esm2015/sort-entities/index.js.map +0 -1
  212. package/esm2015/sort-entities/sort-entities.model.js +0 -2
  213. package/esm2015/sort-entities/sort-entities.model.js.map +0 -1
  214. package/esm2015/sort-entities/sort-entities.trait.actions.js +0 -8
  215. package/esm2015/sort-entities/sort-entities.trait.actions.js.map +0 -1
  216. package/esm2015/sort-entities/sort-entities.trait.effect.js +0 -28
  217. package/esm2015/sort-entities/sort-entities.trait.effect.js.map +0 -1
  218. package/esm2015/sort-entities/sort-entities.trait.js +0 -59
  219. package/esm2015/sort-entities/sort-entities.trait.js.map +0 -1
  220. package/esm2015/sort-entities/sort-entities.trait.mutators.js +0 -13
  221. package/esm2015/sort-entities/sort-entities.trait.mutators.js.map +0 -1
  222. package/esm2015/sort-entities/sort-entities.trait.reducer.js +0 -22
  223. package/esm2015/sort-entities/sort-entities.trait.reducer.js.map +0 -1
  224. package/esm2015/sort-entities/sort-entities.trait.selectors.js +0 -10
  225. package/esm2015/sort-entities/sort-entities.trait.selectors.js.map +0 -1
  226. package/esm2015/sort-entities/sort-entities.utils.js +0 -63
  227. package/esm2015/sort-entities/sort-entities.utils.js.map +0 -1
  228. package/fesm2015/ngrx-traits-common.js.map +0 -1
@@ -44,9 +44,7 @@ export declare type CrudEntitiesSelectors<Entity> = {
44
44
  * @param state
45
45
  * @param props
46
46
  */
47
- selectEntitiesChangesList: (state: LoadEntitiesState<Entity> & CrudEntitiesState<Entity>, props: {
48
- type: ChangeType;
49
- }) => EntityChange<Entity>[];
47
+ selectEntitiesChangesList: (state: LoadEntitiesState<Entity> & CrudEntitiesState<Entity>) => EntityChange<Entity>[];
50
48
  /**
51
49
  * Returns the entities plus the kind of change,
52
50
  * filters redundant changes ideal for a batch update
@@ -34,18 +34,11 @@ export declare type EntitiesPaginationActions = {
34
34
  clearEntitiesPagesCache: ActionCreator<string, () => TypedAction<string>>;
35
35
  };
36
36
  export declare type EntitiesPaginationSelectors<T> = {
37
- isEntitiesPageInCache: (state: LoadEntitiesState<T> & EntitiesPaginationState, props?: {
38
- page?: number;
39
- }) => boolean;
40
- selectPageEntitiesList: (state: LoadEntitiesState<T> & EntitiesPaginationState, props?: {
41
- page?: number;
42
- }) => T[];
43
- selectEntitiesPage: (state: LoadEntitiesState<T> & EntitiesPaginationState, props?: {
44
- page?: number;
45
- }) => PageModel<T>;
37
+ selectEntitiesCurrentPageList: (state: LoadEntitiesState<T> & EntitiesPaginationState) => T[];
38
+ selectEntitiesCurrentPage: (state: LoadEntitiesState<T> & EntitiesPaginationState) => PageModel<T>;
46
39
  selectEntitiesPagedRequest: (state: LoadEntitiesState<T> & EntitiesPaginationState) => PagedRequest;
47
- selectEntitiesPageInfo: (state: LoadEntitiesState<T> & EntitiesPaginationState) => PageInfoModel;
48
- isLoadingEntitiesPage: (state: LoadEntitiesState<T> & EntitiesPaginationState) => boolean;
40
+ selectEntitiesCurrentPageInfo: (state: LoadEntitiesState<T> & EntitiesPaginationState) => PageInfoModel;
41
+ isLoadingEntitiesCurrentPage: (state: LoadEntitiesState<T> & EntitiesPaginationState) => boolean;
49
42
  };
50
43
  export declare type EntitiesPaginationMutators<T> = {
51
44
  mergePaginatedEntities<S extends LoadEntitiesState<T> & EntitiesPaginationState>(entities: T[], total: number | undefined, state: S): S;
@@ -55,6 +48,10 @@ export interface PageModel<T> {
55
48
  pageIndex: number;
56
49
  total: number | undefined;
57
50
  pageSize: number;
51
+ pagesCount: number | undefined;
52
+ hasPrevious: boolean;
53
+ hasNext: boolean;
54
+ cacheType: CacheType;
58
55
  }
59
56
  export interface PageInfoModel {
60
57
  pageIndex: number;
@@ -1,5 +1,6 @@
1
1
  import { ActionCreator, TypedAction } from '@ngrx/store/src/models';
2
- import { EntitiesPaginationActions } from './entities-pagination.model';
2
+ import { EntitiesPaginationActions, EntitiesPaginationSelectors, EntitiesPaginationState } from './entities-pagination.model';
3
+ import { LoadEntitiesState } from '../load-entities/load-entities.model';
3
4
  /**
4
5
  * @internal
5
6
  */
@@ -10,3 +11,10 @@ export declare type ƟPaginationActions = EntitiesPaginationActions & {
10
11
  index: number;
11
12
  } & TypedAction<string>>;
12
13
  };
14
+ /**
15
+ * @internal
16
+ */
17
+ export declare type ƟEntitiesPaginationSelectors<Entity> = EntitiesPaginationSelectors<Entity> & {
18
+ isEntitiesCurrentPageInCache: (state: LoadEntitiesState<Entity> & EntitiesPaginationState) => boolean;
19
+ isEntitiesNextPageInCache: (state: LoadEntitiesState<Entity> & EntitiesPaginationState) => boolean;
20
+ };
@@ -57,13 +57,12 @@ import { EntitiesPaginationConfig, EntitiesPaginationSelectors } from './entitie
57
57
  * traits.actions.loadTodosLastPage()
58
58
  * traits.actions.clearTodosPagesCache()
59
59
  * // generated selectors
60
- * traits.selectors.isTodosPageInCache()
61
- * traits.selectors.selectPageTodosList()
62
- * traits.selectors.isLoadingTodosPage()
60
+ * traits.selectors.selectTodosCurrentPageList()
61
+ * traits.selectors.isLoadingTodosCurrentPage()
63
62
  * // use isLoadingTodosPage over isLoadingTodos (which will return true even
64
63
  * // if the page loading is not the current one)
65
- * traits.selectors.selectTodosPage()
64
+ * traits.selectors.selectTodosCurrentPage()
66
65
  * traits.selectors.selectTodosPagedRequest()// use in effects to get paging parameter
67
- * traits.selectors.selectTodosPageInfo()
66
+ * traits.selectors.selectTodosCurrentPageInfo()
68
67
  */
69
68
  export declare function addEntitiesPaginationTrait<Entity>({ cacheType, pageSize, currentPage, pagesToCache, }?: EntitiesPaginationConfig): import("@ngrx-traits/core").TraitFactory<import("../load-entities/load-entities.model").LoadEntitiesState<Entity> & import("./entities-pagination.model").EntitiesPaginationState, import("./entities-pagination.model").EntitiesPaginationActions, EntitiesPaginationSelectors<Entity>, {}, "pagination", EntitiesPaginationConfig, import("@ngrx-traits/core").AllTraitConfigs>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtYWN0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRyYWl0cy9jb21tb24vc3JjL2xpYi9hc3luYy1hY3Rpb24vYXN5bmMtYWN0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb3N0Zml4UHJvcHMsIFByZWZpeFByb3BzIH0gZnJvbSAnQG5ncngtdHJhaXRzL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uQ3JlYXRvciwgTm90QWxsb3dlZENoZWNrIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgVHlwZWRBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZS9zcmMvbW9kZWxzJztcbmltcG9ydCB7IFN0YXR1c1N0YXRlIH0gZnJvbSAnLi4vbG9hZC1lbnRpdGllcyc7XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkNyZWF0b3JXaXRoT3B0aW9uYWxQcm9wczxUPiA9IFQgZXh0ZW5kcyB1bmRlZmluZWRcbiAgPyBBY3Rpb25DcmVhdG9yPHN0cmluZywgKCkgPT4gVHlwZWRBY3Rpb248c3RyaW5nPj5cbiAgOiBBY3Rpb25DcmVhdG9yPFxuICAgICAgc3RyaW5nLFxuICAgICAgKHByb3BzOiBUICYgTm90QWxsb3dlZENoZWNrPFQgJiBvYmplY3Q+KSA9PiBUICYgVHlwZWRBY3Rpb248c3RyaW5nPlxuICAgID47XG5cbnR5cGUgQXN5bmNBY3Rpb25zPFJlcXVlc3QsIFJlc3BvbnNlLCBGYWlsdXJlPiA9IHtcbiAgJyc6IEFjdGlvbkNyZWF0b3JXaXRoT3B0aW9uYWxQcm9wczxSZXF1ZXN0PjtcbiAgU3VjY2VzczogQWN0aW9uQ3JlYXRvcldpdGhPcHRpb25hbFByb3BzPFJlc3BvbnNlPjtcbiAgRmFpbDogQWN0aW9uQ3JlYXRvcldpdGhPcHRpb25hbFByb3BzPEZhaWx1cmU+O1xufTtcblxudHlwZSBTdGF0dXNTZWxlY3RvcnM8UyBleHRlbmRzIFN0YXR1c1N0YXRlPiA9IHtcbiAgaXNMb2FkaW5nOiAoc3RhdGU6IFMpID0+IGJvb2xlYW47XG4gIGlzU3VjY2VzczogKHN0YXRlOiBTKSA9PiBib29sZWFuO1xuICBpc0ZhaWw6IChzdGF0ZTogUykgPT4gYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIEFzeW5jQWN0aW9uU3RhdGU8SiBleHRlbmRzIHN0cmluZz4gPSBQcmVmaXhQcm9wczxTdGF0dXNTdGF0ZSwgSj47XG5cbmV4cG9ydCB0eXBlIEFzeW5jQWN0aW9uU2VsZWN0b3JzPEogZXh0ZW5kcyBzdHJpbmcsIFM+ID0gUG9zdGZpeFByb3BzPFxuICBTdGF0dXNTZWxlY3RvcnM8Uz4sXG4gIEpcbj47XG5cbmV4cG9ydCB0eXBlIEFzeW5jQWN0aW9uQWN0aW9uczxcbiAgUmVxdWVzdCxcbiAgUmVzcG9uc2UsXG4gIEZhaWx1cmUsXG4gIEogZXh0ZW5kcyBzdHJpbmdcbj4gPSBQcmVmaXhQcm9wczxBc3luY0FjdGlvbnM8UmVxdWVzdCwgUmVzcG9uc2UsIEZhaWx1cmU+LCBKPjtcbiJdfQ==
@@ -0,0 +1,110 @@
1
+ import { createAction, createReducer, on } from '@ngrx/store';
2
+ import { camelCaseToSentence, createTraitFactory } from '@ngrx-traits/core';
3
+ /**
4
+ * Generates the typical ngrx code need to make a async action with
5
+ * a request, success and failure actions, plus a status property to track its progress
6
+ * and selectors to query the status. This trait can be added more thant once as long
7
+ * as the name prop is different.
8
+ *
9
+ * @param options - Config object for the trait factory
10
+ * @param options.name - Name of the main request action, should be in camel case
11
+ * @param options.actionProps - Optional param for the main request action, use the props()
12
+ * function for its value, if not present action will have no params,
13
+ * @param options.actionSuccessProps - Optional param for the request success action,
14
+ * use the props() function for its value, if not present action success will have no params
15
+ * @param options.actionFailProps - Optional param for the request fail action,
16
+ * use the props() function for its value, if not present action fail will have no params
17
+ * @returns the trait factory
18
+ *
19
+ * @example
20
+ * // The following trait config
21
+ * const traits = createEntityFeatureFactory(
22
+ * {entityName: 'Todo'},
23
+ * addAsyncActionTrait({
24
+ * name: 'createClient',
25
+ * actionProps: props<{ name: string }>(),
26
+ * actionSuccessProps: props<{ id: string }>(),
27
+ * }),
28
+ * )({
29
+ * actionsGroupKey: 'Client',
30
+ * featureSelector: createFeatureSelector<AsyncActionState<'createClient'>>(
31
+ * 'client',
32
+ * ),
33
+ * });
34
+ * // adds following props to the state:
35
+ * // createClientStatus?: 'loading' | 'success' | 'fail';
36
+ *
37
+ * // generated actions
38
+ * traits.actions.createClient({name:'Pedro'})
39
+ * traits.actions.createClientSuccess({id:'123'})
40
+ * traits.actions.createClientFail();
41
+ * //generated selectors
42
+ * traits.selectors.isLoadingCreateClient
43
+ * traits.selectors.isSuccessCreateClient
44
+ * traits.selectors.isFailCreateClient
45
+ */
46
+ export function addAsyncActionTrait({ name, actionProps, actionSuccessProps, actionFailProps, }) {
47
+ const nameAsSentence = camelCaseToSentence(name);
48
+ let internalActions;
49
+ return createTraitFactory({
50
+ key: name + '-call',
51
+ config: {
52
+ name,
53
+ actionProps,
54
+ actionSuccessProps,
55
+ actionFailProps,
56
+ },
57
+ actions: ({ actionsGroupKey, }) => {
58
+ internalActions = {
59
+ request: (actionProps
60
+ ? createAction(`${actionsGroupKey} ${nameAsSentence}`, actionProps)
61
+ : createAction(`${actionsGroupKey} ${nameAsSentence}`)),
62
+ requestSuccess: (actionSuccessProps
63
+ ? createAction(`${actionsGroupKey} ${nameAsSentence} Success`, actionSuccessProps)
64
+ : createAction(`${actionsGroupKey} ${nameAsSentence} Success`)),
65
+ requestFail: (actionFailProps
66
+ ? createAction(`${actionsGroupKey} ${nameAsSentence} Failure`, actionFailProps)
67
+ : createAction(`${actionsGroupKey} ${nameAsSentence} Failure`)),
68
+ };
69
+ if (name) {
70
+ return {
71
+ [`${name}`]: internalActions.request,
72
+ [`${name}Success`]: internalActions.requestSuccess,
73
+ [`${name}Fail`]: internalActions.requestFail,
74
+ };
75
+ }
76
+ return internalActions;
77
+ },
78
+ selectors: () => {
79
+ function isLoadingEntity(state) {
80
+ return state[`${name}Status`] === 'loading';
81
+ }
82
+ function isSuccessEntity(state) {
83
+ return state[`${name}Status`] === 'success';
84
+ }
85
+ function isFailEntity(state) {
86
+ return state[`${name}Status`] === 'fail';
87
+ }
88
+ const capitalizedName = name.charAt(0).toUpperCase() + name.slice(1);
89
+ return {
90
+ [`isLoading${capitalizedName}`]: isLoadingEntity,
91
+ [`isSuccess${capitalizedName}`]: isSuccessEntity,
92
+ [`isFail${capitalizedName}`]: isFailEntity,
93
+ };
94
+ },
95
+ initialState: ({ previousInitialState }) => previousInitialState,
96
+ reducer: ({ initialState }) => {
97
+ return createReducer(initialState, on(internalActions.request, (state) => ({
98
+ ...state,
99
+ [`${name}Status`]: 'loading',
100
+ })), on(internalActions.requestFail, (state) => ({
101
+ ...state,
102
+ [`${name}Status`]: 'fail',
103
+ })), on(internalActions.requestSuccess, (state) => ({
104
+ ...state,
105
+ [`${name}Status`]: 'success',
106
+ })));
107
+ },
108
+ });
109
+ }
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtYWN0aW9uLnRyYWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRyYWl0cy9jb21tb24vc3JjL2xpYi9hc3luYy1hY3Rpb24vYXN5bmMtYWN0aW9uLnRyYWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVk1RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMENHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUtqQyxFQUNBLElBQUksRUFDSixXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLGVBQWUsR0FNaEI7SUFDQyxNQUFNLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVqRCxJQUFJLGVBS0gsQ0FBQztJQUNGLE9BQU8sa0JBQWtCLENBQUM7UUFDeEIsR0FBRyxFQUFFLElBQUksR0FBRyxPQUFPO1FBQ25CLE1BQU0sRUFBRTtZQUNOLElBQUk7WUFDSixXQUFXO1lBQ1gsa0JBQWtCO1lBQ2xCLGVBQWU7U0FDaEI7UUFDRCxPQUFPLEVBQUUsQ0FBQyxFQUNSLGVBQWUsR0FDVyxFQUsxQixFQUFFO1lBQ0YsZUFBZSxHQUFHO2dCQUNoQixPQUFPLEVBQUUsQ0FBQyxXQUFXO29CQUNuQixDQUFDLENBQUMsWUFBWSxDQUNWLEdBQUcsZUFBZSxJQUFJLGNBQWMsRUFBRSxFQUN0QyxXQUFrQixDQUNuQjtvQkFDSCxDQUFDLENBQUMsWUFBWSxDQUNWLEdBQUcsZUFBZSxJQUFJLGNBQWMsRUFBRSxDQUN2QyxDQUE0QztnQkFDakQsY0FBYyxFQUFFLENBQUMsa0JBQWtCO29CQUNqQyxDQUFDLENBQUMsWUFBWSxDQUNWLEdBQUcsZUFBZSxJQUFJLGNBQWMsVUFBVSxFQUM5QyxrQkFBeUIsQ0FDMUI7b0JBQ0gsQ0FBQyxDQUFDLFlBQVksQ0FDVixHQUFHLGVBQWUsSUFBSSxjQUFjLFVBQVUsQ0FDL0MsQ0FBNkM7Z0JBQ2xELFdBQVcsRUFBRSxDQUFDLGVBQWU7b0JBQzNCLENBQUMsQ0FBQyxZQUFZLENBQ1YsR0FBRyxlQUFlLElBQUksY0FBYyxVQUFVLEVBQzlDLGVBQXNCLENBQ3ZCO29CQUNILENBQUMsQ0FBQyxZQUFZLENBQ1YsR0FBRyxlQUFlLElBQUksY0FBYyxVQUFVLENBQy9DLENBQTRDO2FBQ2xELENBQUM7WUFDRixJQUFJLElBQUksRUFBRTtnQkFDUixPQUFPO29CQUNMLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxPQUFPO29CQUNwQyxDQUFDLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxlQUFlLENBQUMsY0FBYztvQkFDbEQsQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLEVBQUUsZUFBZSxDQUFDLFdBQVc7aUJBQ1EsQ0FBQzthQUN4RDtZQUNELE9BQU8sZUFBZSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxTQUFTLEVBQUUsR0FBRyxFQUFFO1lBQ2QsU0FBUyxlQUFlLENBQWdDLEtBQVE7Z0JBQzlELE9BQVEsS0FBYSxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUMsS0FBSyxTQUFTLENBQUM7WUFDdkQsQ0FBQztZQUNELFNBQVMsZUFBZSxDQUFnQyxLQUFRO2dCQUM5RCxPQUFRLEtBQWEsQ0FBQyxHQUFHLElBQUksUUFBUSxDQUFDLEtBQUssU0FBUyxDQUFDO1lBQ3ZELENBQUM7WUFDRCxTQUFTLFlBQVksQ0FBZ0MsS0FBUTtnQkFDM0QsT0FBUSxLQUFhLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxLQUFLLE1BQU0sQ0FBQztZQUNwRCxDQUFDO1lBQ0QsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JFLE9BQU87Z0JBQ0wsQ0FBQyxZQUFZLGVBQWUsRUFBRSxDQUFDLEVBQUUsZUFBZTtnQkFDaEQsQ0FBQyxZQUFZLGVBQWUsRUFBRSxDQUFDLEVBQUUsZUFBZTtnQkFDaEQsQ0FBQyxTQUFTLGVBQWUsRUFBRSxDQUFDLEVBQUUsWUFBWTthQUNLLENBQUM7UUFDcEQsQ0FBQztRQUNELFlBQVksRUFBRSxDQUFDLEVBQUUsb0JBQW9CLEVBQWtDLEVBQUUsRUFBRSxDQUN6RSxvQkFBMkM7UUFDN0MsT0FBTyxFQUFFLENBQUMsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFO1lBQzVCLE9BQU8sYUFBYSxDQUNsQixZQUFZLEVBQ1osRUFBRSxDQUNBLGVBQWUsQ0FBQyxPQUFPLEVBQ3ZCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDUixDQUFDO2dCQUNDLEdBQUcsS0FBSztnQkFDUixDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUMsRUFBRSxTQUFTO2FBQ0wsQ0FBQSxDQUM1QixFQUNELEVBQUUsQ0FDQSxlQUFlLENBQUMsV0FBVyxFQUMzQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQ1IsQ0FBQztnQkFDQyxHQUFHLEtBQUs7Z0JBQ1IsQ0FBQyxHQUFHLElBQUksUUFBUSxDQUFDLEVBQUUsTUFBTTthQUNGLENBQUEsQ0FDNUIsRUFDRCxFQUFFLENBQ0EsZUFBZSxDQUFDLGNBQWMsRUFDOUIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNSLENBQUM7Z0JBQ0MsR0FBRyxLQUFLO2dCQUNSLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxFQUFFLFNBQVM7YUFDTCxDQUFBLENBQzVCLENBQ0YsQ0FBQztRQUNKLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQWN0aW9uLCBjcmVhdGVSZWR1Y2VyLCBvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEFjdGlvbkNyZWF0b3JQcm9wcyB9IGZyb20gJ0BuZ3J4L3N0b3JlL3NyYy9tb2RlbHMnO1xuaW1wb3J0IHsgY2FtZWxDYXNlVG9TZW50ZW5jZSwgY3JlYXRlVHJhaXRGYWN0b3J5IH0gZnJvbSAnQG5ncngtdHJhaXRzL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aW9uQ3JlYXRvcldpdGhPcHRpb25hbFByb3BzLFxuICBBc3luY0FjdGlvbkFjdGlvbnMsXG4gIEFzeW5jQWN0aW9uU2VsZWN0b3JzLFxuICBBc3luY0FjdGlvblN0YXRlLFxufSBmcm9tICcuL2FzeW5jLWFjdGlvbi5tb2RlbCc7XG5pbXBvcnQge1xuICBUcmFpdEFjdGlvbnNGYWN0b3J5Q29uZmlnLFxuICBUcmFpdEluaXRpYWxTdGF0ZUZhY3RvcnlDb25maWcsXG59IGZyb20gJ0BuZ3J4LXRyYWl0cy9jb3JlJztcblxuLyoqXG4gKiBHZW5lcmF0ZXMgdGhlIHR5cGljYWwgbmdyeCBjb2RlIG5lZWQgdG8gbWFrZSBhIGFzeW5jIGFjdGlvbiB3aXRoXG4gKiBhIHJlcXVlc3QsIHN1Y2Nlc3MgYW5kIGZhaWx1cmUgYWN0aW9ucywgcGx1cyBhIHN0YXR1cyBwcm9wZXJ0eSB0byB0cmFjayBpdHMgcHJvZ3Jlc3NcbiAqIGFuZCBzZWxlY3RvcnMgdG8gcXVlcnkgdGhlIHN0YXR1cy4gVGhpcyB0cmFpdCBjYW4gYmUgYWRkZWQgbW9yZSB0aGFudCBvbmNlIGFzIGxvbmdcbiAqIGFzIHRoZSBuYW1lIHByb3AgaXMgZGlmZmVyZW50LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlnIG9iamVjdCBmb3IgdGhlIHRyYWl0IGZhY3RvcnlcbiAqIEBwYXJhbSBvcHRpb25zLm5hbWUgLSBOYW1lIG9mIHRoZSBtYWluIHJlcXVlc3QgYWN0aW9uLCBzaG91bGQgYmUgaW4gY2FtZWwgY2FzZVxuICogQHBhcmFtIG9wdGlvbnMuYWN0aW9uUHJvcHMgLSBPcHRpb25hbCBwYXJhbSBmb3IgdGhlIG1haW4gcmVxdWVzdCBhY3Rpb24sIHVzZSB0aGUgcHJvcHMoKVxuICogZnVuY3Rpb24gZm9yIGl0cyB2YWx1ZSwgaWYgbm90IHByZXNlbnQgYWN0aW9uIHdpbGwgaGF2ZSBubyBwYXJhbXMsXG4gKiBAcGFyYW0gb3B0aW9ucy5hY3Rpb25TdWNjZXNzUHJvcHMgLSBPcHRpb25hbCBwYXJhbSBmb3IgdGhlIHJlcXVlc3Qgc3VjY2VzcyBhY3Rpb24sXG4gKiB1c2UgdGhlIHByb3BzKCkgZnVuY3Rpb24gZm9yIGl0cyB2YWx1ZSwgaWYgbm90IHByZXNlbnQgYWN0aW9uIHN1Y2Nlc3Mgd2lsbCBoYXZlIG5vIHBhcmFtc1xuICogQHBhcmFtIG9wdGlvbnMuYWN0aW9uRmFpbFByb3BzIC0gT3B0aW9uYWwgcGFyYW0gZm9yIHRoZSByZXF1ZXN0IGZhaWwgYWN0aW9uLFxuICogdXNlIHRoZSBwcm9wcygpIGZ1bmN0aW9uIGZvciBpdHMgdmFsdWUsIGlmIG5vdCBwcmVzZW50IGFjdGlvbiBmYWlsIHdpbGwgaGF2ZSBubyBwYXJhbXNcbiAqIEByZXR1cm5zIHRoZSB0cmFpdCBmYWN0b3J5XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRoZSBmb2xsb3dpbmcgdHJhaXQgY29uZmlnXG4gKiBjb25zdCB0cmFpdHMgPSBjcmVhdGVFbnRpdHlGZWF0dXJlRmFjdG9yeShcbiAqIHtlbnRpdHlOYW1lOiAnVG9kbyd9LFxuICogYWRkQXN5bmNBY3Rpb25UcmFpdCh7XG4gKiAgICAgICAgbmFtZTogJ2NyZWF0ZUNsaWVudCcsXG4gKiAgICAgICAgYWN0aW9uUHJvcHM6IHByb3BzPHsgbmFtZTogc3RyaW5nIH0+KCksXG4gKiAgICAgICAgYWN0aW9uU3VjY2Vzc1Byb3BzOiBwcm9wczx7IGlkOiBzdHJpbmcgfT4oKSxcbiAqICAgICAgfSksXG4gKiApKHtcbiAqICAgICAgYWN0aW9uc0dyb3VwS2V5OiAnQ2xpZW50JyxcbiAqICAgICAgZmVhdHVyZVNlbGVjdG9yOiBjcmVhdGVGZWF0dXJlU2VsZWN0b3I8QXN5bmNBY3Rpb25TdGF0ZTwnY3JlYXRlQ2xpZW50Jz4+KFxuICogICAgICAgICdjbGllbnQnLFxuICogICAgICApLFxuICogICAgfSk7XG4gKiAvLyAgIGFkZHMgZm9sbG93aW5nIHByb3BzIHRvIHRoZSBzdGF0ZTpcbiAqIC8vICAgIGNyZWF0ZUNsaWVudFN0YXR1cz86ICdsb2FkaW5nJyB8ICdzdWNjZXNzJyB8ICdmYWlsJztcbiAqXG4gKiAvLyBnZW5lcmF0ZWQgYWN0aW9uc1xuICogdHJhaXRzLmFjdGlvbnMuY3JlYXRlQ2xpZW50KHtuYW1lOidQZWRybyd9KVxuICogdHJhaXRzLmFjdGlvbnMuY3JlYXRlQ2xpZW50U3VjY2Vzcyh7aWQ6JzEyMyd9KVxuICogdHJhaXRzLmFjdGlvbnMuY3JlYXRlQ2xpZW50RmFpbCgpO1xuICogLy9nZW5lcmF0ZWQgc2VsZWN0b3JzXG4gKiB0cmFpdHMuc2VsZWN0b3JzLmlzTG9hZGluZ0NyZWF0ZUNsaWVudFxuICogdHJhaXRzLnNlbGVjdG9ycy5pc1N1Y2Nlc3NDcmVhdGVDbGllbnRcbiAqIHRyYWl0cy5zZWxlY3RvcnMuaXNGYWlsQ3JlYXRlQ2xpZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRBc3luY0FjdGlvblRyYWl0PFxuICBKIGV4dGVuZHMgc3RyaW5nLFxuICBSZXF1ZXN0IGV4dGVuZHMgb2JqZWN0IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICBSZXNwb25zZSBleHRlbmRzIG9iamVjdCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgRmFpbHVyZSBleHRlbmRzIG9iamVjdCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuPih7XG4gIG5hbWUsXG4gIGFjdGlvblByb3BzLFxuICBhY3Rpb25TdWNjZXNzUHJvcHMsXG4gIGFjdGlvbkZhaWxQcm9wcyxcbn06IHtcbiAgbmFtZTogSjtcbiAgYWN0aW9uUHJvcHM/OiBBY3Rpb25DcmVhdG9yUHJvcHM8UmVxdWVzdD47XG4gIGFjdGlvblN1Y2Nlc3NQcm9wcz86IEFjdGlvbkNyZWF0b3JQcm9wczxSZXNwb25zZT47XG4gIGFjdGlvbkZhaWxQcm9wcz86IEFjdGlvbkNyZWF0b3JQcm9wczxGYWlsdXJlPjtcbn0pIHtcbiAgY29uc3QgbmFtZUFzU2VudGVuY2UgPSBjYW1lbENhc2VUb1NlbnRlbmNlKG5hbWUpO1xuXG4gIGxldCBpbnRlcm5hbEFjdGlvbnM6IEFzeW5jQWN0aW9uQWN0aW9uczxcbiAgICBSZXF1ZXN0LFxuICAgIFJlc3BvbnNlLFxuICAgIEZhaWx1cmUsXG4gICAgJ3JlcXVlc3QnXG4gID47XG4gIHJldHVybiBjcmVhdGVUcmFpdEZhY3Rvcnkoe1xuICAgIGtleTogbmFtZSArICctY2FsbCcsXG4gICAgY29uZmlnOiB7XG4gICAgICBuYW1lLFxuICAgICAgYWN0aW9uUHJvcHMsXG4gICAgICBhY3Rpb25TdWNjZXNzUHJvcHMsXG4gICAgICBhY3Rpb25GYWlsUHJvcHMsXG4gICAgfSxcbiAgICBhY3Rpb25zOiAoe1xuICAgICAgYWN0aW9uc0dyb3VwS2V5LFxuICAgIH06IFRyYWl0QWN0aW9uc0ZhY3RvcnlDb25maWcpOiBBc3luY0FjdGlvbkFjdGlvbnM8XG4gICAgICBSZXF1ZXN0LFxuICAgICAgUmVzcG9uc2UsXG4gICAgICBGYWlsdXJlLFxuICAgICAgSlxuICAgID4gPT4ge1xuICAgICAgaW50ZXJuYWxBY3Rpb25zID0ge1xuICAgICAgICByZXF1ZXN0OiAoYWN0aW9uUHJvcHNcbiAgICAgICAgICA/IGNyZWF0ZUFjdGlvbihcbiAgICAgICAgICAgICAgYCR7YWN0aW9uc0dyb3VwS2V5fSAke25hbWVBc1NlbnRlbmNlfWAsXG4gICAgICAgICAgICAgIGFjdGlvblByb3BzIGFzIGFueVxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogY3JlYXRlQWN0aW9uKFxuICAgICAgICAgICAgICBgJHthY3Rpb25zR3JvdXBLZXl9ICR7bmFtZUFzU2VudGVuY2V9YFxuICAgICAgICAgICAgKSkgYXMgQWN0aW9uQ3JlYXRvcldpdGhPcHRpb25hbFByb3BzPFJlcXVlc3Q+LFxuICAgICAgICByZXF1ZXN0U3VjY2VzczogKGFjdGlvblN1Y2Nlc3NQcm9wc1xuICAgICAgICAgID8gY3JlYXRlQWN0aW9uKFxuICAgICAgICAgICAgICBgJHthY3Rpb25zR3JvdXBLZXl9ICR7bmFtZUFzU2VudGVuY2V9IFN1Y2Nlc3NgLFxuICAgICAgICAgICAgICBhY3Rpb25TdWNjZXNzUHJvcHMgYXMgYW55XG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBjcmVhdGVBY3Rpb24oXG4gICAgICAgICAgICAgIGAke2FjdGlvbnNHcm91cEtleX0gJHtuYW1lQXNTZW50ZW5jZX0gU3VjY2Vzc2BcbiAgICAgICAgICAgICkpIGFzIEFjdGlvbkNyZWF0b3JXaXRoT3B0aW9uYWxQcm9wczxSZXNwb25zZT4sXG4gICAgICAgIHJlcXVlc3RGYWlsOiAoYWN0aW9uRmFpbFByb3BzXG4gICAgICAgICAgPyBjcmVhdGVBY3Rpb24oXG4gICAgICAgICAgICAgIGAke2FjdGlvbnNHcm91cEtleX0gJHtuYW1lQXNTZW50ZW5jZX0gRmFpbHVyZWAsXG4gICAgICAgICAgICAgIGFjdGlvbkZhaWxQcm9wcyBhcyBhbnlcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IGNyZWF0ZUFjdGlvbihcbiAgICAgICAgICAgICAgYCR7YWN0aW9uc0dyb3VwS2V5fSAke25hbWVBc1NlbnRlbmNlfSBGYWlsdXJlYFxuICAgICAgICAgICAgKSkgYXMgQWN0aW9uQ3JlYXRvcldpdGhPcHRpb25hbFByb3BzPEZhaWx1cmU+LFxuICAgICAgfTtcbiAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgW2Ake25hbWV9YF06IGludGVybmFsQWN0aW9ucy5yZXF1ZXN0LFxuICAgICAgICAgIFtgJHtuYW1lfVN1Y2Nlc3NgXTogaW50ZXJuYWxBY3Rpb25zLnJlcXVlc3RTdWNjZXNzLFxuICAgICAgICAgIFtgJHtuYW1lfUZhaWxgXTogaW50ZXJuYWxBY3Rpb25zLnJlcXVlc3RGYWlsLFxuICAgICAgICB9IGFzIEFzeW5jQWN0aW9uQWN0aW9uczxSZXF1ZXN0LCBSZXNwb25zZSwgRmFpbHVyZSwgSj47XG4gICAgICB9XG4gICAgICByZXR1cm4gaW50ZXJuYWxBY3Rpb25zO1xuICAgIH0sXG4gICAgc2VsZWN0b3JzOiAoKSA9PiB7XG4gICAgICBmdW5jdGlvbiBpc0xvYWRpbmdFbnRpdHk8UyBleHRlbmRzIEFzeW5jQWN0aW9uU3RhdGU8Sj4+KHN0YXRlOiBTKSB7XG4gICAgICAgIHJldHVybiAoc3RhdGUgYXMgYW55KVtgJHtuYW1lfVN0YXR1c2BdID09PSAnbG9hZGluZyc7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBpc1N1Y2Nlc3NFbnRpdHk8UyBleHRlbmRzIEFzeW5jQWN0aW9uU3RhdGU8Sj4+KHN0YXRlOiBTKSB7XG4gICAgICAgIHJldHVybiAoc3RhdGUgYXMgYW55KVtgJHtuYW1lfVN0YXR1c2BdID09PSAnc3VjY2Vzcyc7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBpc0ZhaWxFbnRpdHk8UyBleHRlbmRzIEFzeW5jQWN0aW9uU3RhdGU8Sj4+KHN0YXRlOiBTKSB7XG4gICAgICAgIHJldHVybiAoc3RhdGUgYXMgYW55KVtgJHtuYW1lfVN0YXR1c2BdID09PSAnZmFpbCc7XG4gICAgICB9XG4gICAgICBjb25zdCBjYXBpdGFsaXplZE5hbWUgPSBuYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIFtgaXNMb2FkaW5nJHtjYXBpdGFsaXplZE5hbWV9YF06IGlzTG9hZGluZ0VudGl0eSxcbiAgICAgICAgW2Bpc1N1Y2Nlc3Mke2NhcGl0YWxpemVkTmFtZX1gXTogaXNTdWNjZXNzRW50aXR5LFxuICAgICAgICBbYGlzRmFpbCR7Y2FwaXRhbGl6ZWROYW1lfWBdOiBpc0ZhaWxFbnRpdHksXG4gICAgICB9IGFzIEFzeW5jQWN0aW9uU2VsZWN0b3JzPEosIEFzeW5jQWN0aW9uU3RhdGU8Sj4+O1xuICAgIH0sXG4gICAgaW5pdGlhbFN0YXRlOiAoeyBwcmV2aW91c0luaXRpYWxTdGF0ZSB9OiBUcmFpdEluaXRpYWxTdGF0ZUZhY3RvcnlDb25maWcpID0+XG4gICAgICBwcmV2aW91c0luaXRpYWxTdGF0ZSBhcyBBc3luY0FjdGlvblN0YXRlPEo+LFxuICAgIHJlZHVjZXI6ICh7IGluaXRpYWxTdGF0ZSB9KSA9PiB7XG4gICAgICByZXR1cm4gY3JlYXRlUmVkdWNlcihcbiAgICAgICAgaW5pdGlhbFN0YXRlLFxuICAgICAgICBvbihcbiAgICAgICAgICBpbnRlcm5hbEFjdGlvbnMucmVxdWVzdCxcbiAgICAgICAgICAoc3RhdGUpID0+XG4gICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgW2Ake25hbWV9U3RhdHVzYF06ICdsb2FkaW5nJyxcbiAgICAgICAgICAgIH0gYXMgQXN5bmNBY3Rpb25TdGF0ZTxKPilcbiAgICAgICAgKSxcbiAgICAgICAgb24oXG4gICAgICAgICAgaW50ZXJuYWxBY3Rpb25zLnJlcXVlc3RGYWlsLFxuICAgICAgICAgIChzdGF0ZSkgPT5cbiAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICBbYCR7bmFtZX1TdGF0dXNgXTogJ2ZhaWwnLFxuICAgICAgICAgICAgfSBhcyBBc3luY0FjdGlvblN0YXRlPEo+KVxuICAgICAgICApLFxuICAgICAgICBvbihcbiAgICAgICAgICBpbnRlcm5hbEFjdGlvbnMucmVxdWVzdFN1Y2Nlc3MsXG4gICAgICAgICAgKHN0YXRlKSA9PlxuICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgIFtgJHtuYW1lfVN0YXR1c2BdOiAnc3VjY2VzcycsXG4gICAgICAgICAgICB9IGFzIEFzeW5jQWN0aW9uU3RhdGU8Sj4pXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfSxcbiAgfSk7XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './async-action.model';
2
+ export * from './async-action.trait';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdHJhaXRzL2NvbW1vbi9zcmMvbGliL2FzeW5jLWFjdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FzeW5jLWFjdGlvbi5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2FzeW5jLWFjdGlvbi50cmFpdCc7XG4iXX0=
@@ -0,0 +1,8 @@
1
+ export var ChangeType;
2
+ (function (ChangeType) {
3
+ ChangeType["CREATED"] = "c";
4
+ ChangeType["UPDATED"] = "u";
5
+ ChangeType["DELETED"] = "d";
6
+ })(ChangeType || (ChangeType = {}));
7
+ export const crudEntitiesTraitKey = 'crud';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC1lbnRpdGllcy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10cmFpdHMvY29tbW9uL3NyYy9saWIvY3J1ZC1lbnRpdGllcy9jcnVkLWVudGl0aWVzLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sQ0FBTixJQUFZLFVBSVg7QUFKRCxXQUFZLFVBQVU7SUFDcEIsMkJBQWEsQ0FBQTtJQUNiLDJCQUFhLENBQUE7SUFDYiwyQkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUpXLFVBQVUsS0FBVixVQUFVLFFBSXJCO0FBeUhELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByZWRpY2F0ZSwgVXBkYXRlIH0gZnJvbSAnQG5ncngvZW50aXR5L3NyYy9tb2RlbHMnO1xuaW1wb3J0IHsgTG9hZEVudGl0aWVzU3RhdGUgfSBmcm9tICcuLi9sb2FkLWVudGl0aWVzL2xvYWQtZW50aXRpZXMubW9kZWwnO1xuaW1wb3J0IHsgQWN0aW9uQ3JlYXRvciB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IFR5cGVkQWN0aW9uIH0gZnJvbSAnQG5ncngvc3RvcmUvc3JjL21vZGVscyc7XG5cbmV4cG9ydCBlbnVtIENoYW5nZVR5cGUge1xuICBDUkVBVEVEID0gJ2MnLFxuICBVUERBVEVEID0gJ3UnLFxuICBERUxFVEVEID0gJ2QnLFxufVxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2U8VD4ge1xuICBpZDogc3RyaW5nIHwgbnVtYmVyO1xuICBjaGFuZ2VUeXBlOiBDaGFuZ2VUeXBlO1xuICBlbnRpdHlDaGFuZ2VzPzogUGFydGlhbDxUPjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5Q2hhbmdlPFQ+IHtcbiAgZW50aXR5OiBUO1xuICBjaGFuZ2VUeXBlOiBDaGFuZ2VUeXBlO1xufVxuZXhwb3J0IGludGVyZmFjZSBDcnVkRW50aXRpZXNTdGF0ZTxUPiB7XG4gIGNoYW5nZXM6IENoYW5nZTxUPltdO1xufVxuXG5leHBvcnQgdHlwZSBDcnVkRW50aXRpZXNBY3Rpb25zPFQ+ID0ge1xuICBhZGRFbnRpdGllczogQWN0aW9uQ3JlYXRvcjxcbiAgICBzdHJpbmcsXG4gICAgKC4uLmVudGl0aWVzOiBUW10pID0+IHsgZW50aXRpZXM6IFRbXSB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPlxuICA+O1xuICByZW1vdmVFbnRpdGllczogQWN0aW9uQ3JlYXRvcjxcbiAgICBzdHJpbmcsXG4gICAgKFxuICAgICAgLi4ua2V5czogc3RyaW5nW10gfCBudW1iZXJbXVxuICAgICkgPT4geyBrZXlzOiBzdHJpbmdbXSB8IG51bWJlcltdIH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+XG4gID47XG4gIHVwZGF0ZUVudGl0aWVzOiBBY3Rpb25DcmVhdG9yPFxuICAgIHN0cmluZyxcbiAgICAoLi4udXBkYXRlczogVXBkYXRlPFQ+W10pID0+IHsgdXBkYXRlczogVXBkYXRlPFQ+W10gfSAmIFR5cGVkQWN0aW9uPHN0cmluZz5cbiAgPjtcbiAgdXBzZXJ0RW50aXRpZXM6IEFjdGlvbkNyZWF0b3I8XG4gICAgc3RyaW5nLFxuICAgICguLi5lbnRpdGllczogVFtdKSA9PiB7IGVudGl0aWVzOiBUW10gfSAmIFR5cGVkQWN0aW9uPHN0cmluZz5cbiAgPjtcblxuICByZW1vdmVBbGxFbnRpdGllczogQWN0aW9uQ3JlYXRvcjxcbiAgICBzdHJpbmcsXG4gICAgKFxuICAgICAgcHJlZGljYXRlPzogUHJlZGljYXRlPFQ+XG4gICAgKSA9PiB7IHByZWRpY2F0ZT86IFByZWRpY2F0ZTxUPiB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPlxuICA+O1xuICBjbGVhckVudGl0aWVzQ2hhbmdlczogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsICgpID0+IFR5cGVkQWN0aW9uPHN0cmluZz4+O1xufTtcblxuZXhwb3J0IHR5cGUgQ3J1ZEVudGl0aWVzU2VsZWN0b3JzPEVudGl0eT4gPSB7XG4gIC8qKlxuICAgKiBSZXR1cm4gYWxsIGNoYW5nZXMgbWFkZSB0byB0aGUgbGlzdCBwbHVzIGVudGl0aWVzLCBhbmQgY2FuIGJlIGZpbHRlcmVkXG4gICAqIGJ5IGNoYW5nZSB0eXBlXG4gICAqIEBwYXJhbSBzdGF0ZVxuICAgKiBAcGFyYW0gcHJvcHNcbiAgICovXG4gIHNlbGVjdEVudGl0aWVzQ2hhbmdlc0xpc3Q6IChcbiAgICBzdGF0ZTogTG9hZEVudGl0aWVzU3RhdGU8RW50aXR5PiAmIENydWRFbnRpdGllc1N0YXRlPEVudGl0eT5cbiAgKSA9PiBFbnRpdHlDaGFuZ2U8RW50aXR5PltdO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBlbnRpdGllcyBwbHVzIHRoZSBraW5kIG9mIGNoYW5nZSxcbiAgICogZmlsdGVycyByZWR1bmRhbnQgY2hhbmdlcyBpZGVhbCBmb3IgYSBiYXRjaCB1cGRhdGVcbiAgICogaWYgeW91IGFkZCBhbmQgcmVtb3ZlIHRoZSBzYW1lIGFuZCBpdGVtcyB0aGlzIGNoYW5nZXMgYXJlIHJlbW92ZSBmcm9tIHRoZSBsaXN0XG4gICAqIGlmIHlvdSBhZGQgYW5kIHRoZW4gdXBkYXRlIG9uZSBvciBtb3JlIHRpbWVzLCB0aGUgdXBkYXRlcyBhcmUgZGlzY2FyZGVkXG4gICAqIGlmIHlvdSB1cGRhdGUgb25lIG9yIG1vcmUgdGltZXMgYW5kIHRoZW4gcmVtb3ZlLCB0aGUgdXBkYXRlcyBhcmUgZGlzY2FyZGVkXG4gICAqIEBwYXJhbSBzdGF0ZVxuICAgKi9cbiAgc2VsZWN0RmlsdGVyZWRFbnRpdGllc0NoYW5nZXNMaXN0OiAoXG4gICAgc3RhdGU6IExvYWRFbnRpdGllc1N0YXRlPEVudGl0eT4gJiBDcnVkRW50aXRpZXNTdGF0ZTxFbnRpdHk+XG4gICkgPT4gRW50aXR5Q2hhbmdlPEVudGl0eT5bXTtcbn07XG5cbmV4cG9ydCB0eXBlIENydWRFbnRpdGllc011dGF0b3JzPEVudGl0eT4gPSB7XG4gIGFkZEVudGl0aWVzPFMgZXh0ZW5kcyBMb2FkRW50aXRpZXNTdGF0ZTxFbnRpdHk+ICYgQ3J1ZEVudGl0aWVzU3RhdGU8RW50aXR5Pj4oXG4gICAgZW50aXRpZXM6IEVudGl0eVtdLFxuICAgIHN0YXRlOiBTXG4gICk6IFM7XG5cbiAgcmVtb3ZlRW50aXRpZXM8XG4gICAgUyBleHRlbmRzIExvYWRFbnRpdGllc1N0YXRlPEVudGl0eT4gJiBDcnVkRW50aXRpZXNTdGF0ZTxFbnRpdHk+XG4gID4oXG4gICAga2V5czogc3RyaW5nW10sXG4gICAgc3RhdGU6IFNcbiAgKTogUztcbiAgcmVtb3ZlRW50aXRpZXM8XG4gICAgUyBleHRlbmRzIExvYWRFbnRpdGllc1N0YXRlPEVudGl0eT4gJiBDcnVkRW50aXRpZXNTdGF0ZTxFbnRpdHk+XG4gID4oXG4gICAga2V5czogbnVtYmVyW10sXG4gICAgc3RhdGU6IFNcbiAgKTogUztcbiAgcmVtb3ZlRW50aXRpZXM8XG4gICAgUyBleHRlbmRzIExvYWRFbnRpdGllc1N0YXRlPEVudGl0eT4gJiBDcnVkRW50aXRpZXNTdGF0ZTxFbnRpdHk+XG4gID4oXG4gICAgcHJlZGljYXRlOiBQcmVkaWNhdGU8RW50aXR5PixcbiAgICBzdGF0ZTogU1xuICApOiBTO1xuXG4gIHJlbW92ZUFsbEVudGl0aWVzPFxuICAgIFMgZXh0ZW5kcyBMb2FkRW50aXRpZXNTdGF0ZTxFbnRpdHk+ICYgQ3J1ZEVudGl0aWVzU3RhdGU8RW50aXR5PlxuICA+KFxuICAgIHN0YXRlOiBTXG4gICk6IFM7XG5cbiAgY2xlYXJFbnRpdGllc0NoYW5nZXM8XG4gICAgUyBleHRlbmRzIExvYWRFbnRpdGllc1N0YXRlPEVudGl0eT4gJiBDcnVkRW50aXRpZXNTdGF0ZTxFbnRpdHk+XG4gID4oXG4gICAgc3RhdGU6IFNcbiAgKTogUztcblxuICB1cGRhdGVFbnRpdGllczxcbiAgICBTIGV4dGVuZHMgTG9hZEVudGl0aWVzU3RhdGU8RW50aXR5PiAmIENydWRFbnRpdGllc1N0YXRlPEVudGl0eT5cbiAgPihcbiAgICB1cGRhdGVzOiBVcGRhdGU8RW50aXR5PltdLFxuICAgIHN0YXRlOiBTXG4gICk6IFM7XG4gIHVwc2VydEVudGl0aWVzPFxuICAgIFMgZXh0ZW5kcyBMb2FkRW50aXRpZXNTdGF0ZTxFbnRpdHk+ICYgQ3J1ZEVudGl0aWVzU3RhdGU8RW50aXR5PlxuICA+KFxuICAgIGVudGl0aWVzOiBFbnRpdHlbXSxcbiAgICBzdGF0ZTogU1xuICApOiBTO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDcnVkRW50aXRpZXNDb25maWcge1xuICBzdG9yZUNoYW5nZXM/OiBib29sZWFuO1xufVxuZXhwb3J0IGNvbnN0IGNydWRFbnRpdGllc1RyYWl0S2V5ID0gJ2NydWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENydWRFbnRpdGllc0tleWVkQ29uZmlnIHtcbiAgY3J1ZD86IENydWRFbnRpdGllc0NvbmZpZztcbn1cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { createAction } from '@ngrx/store';
2
+ export function createCrudTraitActions(actionsGroupKey, entitiesName) {
3
+ return {
4
+ addEntities: createAction(`${actionsGroupKey} Add ${entitiesName}`, (...entities) => ({
5
+ entities,
6
+ })),
7
+ removeEntities: createAction(`${actionsGroupKey} Remove ${entitiesName}`, (...keys) => ({
8
+ keys,
9
+ })),
10
+ updateEntities: createAction(`${actionsGroupKey} Update ${entitiesName}`, (...updates) => ({
11
+ updates,
12
+ })),
13
+ upsertEntities: createAction(`${actionsGroupKey} Upsert ${entitiesName}`, (...entities) => ({
14
+ entities,
15
+ })),
16
+ removeAllEntities: createAction(`${actionsGroupKey} Remove All ${entitiesName}`, (predicate) => ({ predicate })),
17
+ clearEntitiesChanges: createAction(`${actionsGroupKey} Clear ${entitiesName} Changes`),
18
+ };
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC1lbnRpdGllcy50cmFpdC5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRyYWl0cy9jb21tb24vc3JjL2xpYi9jcnVkLWVudGl0aWVzL2NydWQtZW50aXRpZXMudHJhaXQuYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzNDLE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsZUFBdUIsRUFDdkIsWUFBb0I7SUFFcEIsT0FBTztRQUNMLFdBQVcsRUFBRSxZQUFZLENBQ3ZCLEdBQUcsZUFBZSxRQUFRLFlBQVksRUFBRSxFQUN4QyxDQUFDLEdBQUcsUUFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQixRQUFRO1NBQ1QsQ0FBQyxDQUNIO1FBQ0QsY0FBYyxFQUFFLFlBQVksQ0FDMUIsR0FBRyxlQUFlLFdBQVcsWUFBWSxFQUFFLEVBQzNDLENBQUMsR0FBRyxJQUF5QixFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2pDLElBQUk7U0FDTCxDQUFDLENBQ0g7UUFDRCxjQUFjLEVBQUUsWUFBWSxDQUMxQixHQUFHLGVBQWUsV0FBVyxZQUFZLEVBQUUsRUFDM0MsQ0FBQyxHQUFHLE9BQXlCLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDakMsT0FBTztTQUNSLENBQUMsQ0FDSDtRQUNELGNBQWMsRUFBRSxZQUFZLENBQzFCLEdBQUcsZUFBZSxXQUFXLFlBQVksRUFBRSxFQUMzQyxDQUFDLEdBQUcsUUFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQixRQUFRO1NBQ1QsQ0FBQyxDQUNIO1FBQ0QsaUJBQWlCLEVBQUUsWUFBWSxDQUM3QixHQUFHLGVBQWUsZUFBZSxZQUFZLEVBQUUsRUFDL0MsQ0FBQyxTQUE2QixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FDbkQ7UUFDRCxvQkFBb0IsRUFBRSxZQUFZLENBQ2hDLEdBQUcsZUFBZSxXQUFXLFlBQVksVUFBVSxDQUNwRDtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3J1ZEVudGl0aWVzQWN0aW9ucyB9IGZyb20gJy4vY3J1ZC1lbnRpdGllcy5tb2RlbCc7XG5pbXBvcnQgeyBjcmVhdGVBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBQcmVkaWNhdGUsIFVwZGF0ZSB9IGZyb20gJ0BuZ3J4L2VudGl0eSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDcnVkVHJhaXRBY3Rpb25zPEVudGl0eT4oXG4gIGFjdGlvbnNHcm91cEtleTogc3RyaW5nLFxuICBlbnRpdGllc05hbWU6IHN0cmluZ1xuKTogQ3J1ZEVudGl0aWVzQWN0aW9uczxFbnRpdHk+IHtcbiAgcmV0dXJuIHtcbiAgICBhZGRFbnRpdGllczogY3JlYXRlQWN0aW9uKFxuICAgICAgYCR7YWN0aW9uc0dyb3VwS2V5fSBBZGQgJHtlbnRpdGllc05hbWV9YCxcbiAgICAgICguLi5lbnRpdGllczogRW50aXR5W10pID0+ICh7XG4gICAgICAgIGVudGl0aWVzLFxuICAgICAgfSlcbiAgICApLFxuICAgIHJlbW92ZUVudGl0aWVzOiBjcmVhdGVBY3Rpb24oXG4gICAgICBgJHthY3Rpb25zR3JvdXBLZXl9IFJlbW92ZSAke2VudGl0aWVzTmFtZX1gLFxuICAgICAgKC4uLmtleXM6IHN0cmluZ1tdIHwgbnVtYmVyW10pID0+ICh7XG4gICAgICAgIGtleXMsXG4gICAgICB9KVxuICAgICksXG4gICAgdXBkYXRlRW50aXRpZXM6IGNyZWF0ZUFjdGlvbihcbiAgICAgIGAke2FjdGlvbnNHcm91cEtleX0gVXBkYXRlICR7ZW50aXRpZXNOYW1lfWAsXG4gICAgICAoLi4udXBkYXRlczogVXBkYXRlPEVudGl0eT5bXSkgPT4gKHtcbiAgICAgICAgdXBkYXRlcyxcbiAgICAgIH0pXG4gICAgKSxcbiAgICB1cHNlcnRFbnRpdGllczogY3JlYXRlQWN0aW9uKFxuICAgICAgYCR7YWN0aW9uc0dyb3VwS2V5fSBVcHNlcnQgJHtlbnRpdGllc05hbWV9YCxcbiAgICAgICguLi5lbnRpdGllczogRW50aXR5W10pID0+ICh7XG4gICAgICAgIGVudGl0aWVzLFxuICAgICAgfSlcbiAgICApLFxuICAgIHJlbW92ZUFsbEVudGl0aWVzOiBjcmVhdGVBY3Rpb24oXG4gICAgICBgJHthY3Rpb25zR3JvdXBLZXl9IFJlbW92ZSBBbGwgJHtlbnRpdGllc05hbWV9YCxcbiAgICAgIChwcmVkaWNhdGU/OiBQcmVkaWNhdGU8RW50aXR5PikgPT4gKHsgcHJlZGljYXRlIH0pXG4gICAgKSxcbiAgICBjbGVhckVudGl0aWVzQ2hhbmdlczogY3JlYXRlQWN0aW9uKFxuICAgICAgYCR7YWN0aW9uc0dyb3VwS2V5fSBDbGVhciAgJHtlbnRpdGllc05hbWV9IENoYW5nZXNgXG4gICAgKSxcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,57 @@
1
+ import { createTraitFactory, } from '@ngrx-traits/core';
2
+ import { createCrudTraitActions } from './crud-entities.trait.actions';
3
+ import { createCrudTraitSelectors } from './crud-entities.trait.selectors';
4
+ import { createCrudInitialState, createCrudTraitReducer, } from './crud-entities.trait.reducer';
5
+ import { crudEntitiesTraitKey, } from './crud-entities.model';
6
+ import { loadEntitiesTraitKey, } from '../load-entities/load-entities.model';
7
+ import { createCrudTraitMutators } from './crud-entities.trait.mutators';
8
+ /**
9
+ * Generates ngrx code to add, remove update, upsert entities on a list, it also
10
+ * tracks the changes made, helpful for implementing batch updates. The `storeChanges` (false by default),
11
+ * will store for add and update the changed entity props in the property `entityChanges` of the `Change` object.
12
+ * @param config
13
+ * @param config.storeChanges - Will store the changes made, default fals
14
+ *
15
+ * @example
16
+ * // The following trait config
17
+ *
18
+ * export interface TestState
19
+ * extends EntityAndStatusState<Todo>, CrudState<Todo>{}
20
+ *
21
+ * const traits = createEntityFeatureFactory(
22
+ * addLoadEntitiesTrait<Todo>(),
23
+ * addCrudEntitiesTrait<Todo>()
24
+ * )({
25
+ * actionsGroupKey: '[Todos]',
26
+ * featureSelector: createFeatureSelector<TestState>>(
27
+ * 'todos',
28
+ * ),
29
+ * });
30
+ *
31
+ * // adds following props to the state:
32
+ * // changes: Change<Todo>[];
33
+ *
34
+ * // generated actions
35
+ * traits.actions.addTodos(entity1,entity2...)
36
+ * traits.actions.updateTodos({id: id1, changes:{prop1}},{id: id2, changes:{prop2}} ...)
37
+ * traits.actions.upsertTodos(entity1,entity2...)
38
+ * traits.actions.removeAllTodos()
39
+ * traits.actions.clearTodosChanges()
40
+ * // generated selectors
41
+ * traits.selectors.selectTodosChangesList()
42
+ * traits.selectors.selectFilteredTodosChangesList()
43
+ * traits.selectors.selectAllFilteredChanges()
44
+ */
45
+ export function addCrudEntitiesTrait({ storeChanges = false, } = {}) {
46
+ return createTraitFactory({
47
+ key: crudEntitiesTraitKey,
48
+ depends: [loadEntitiesTraitKey],
49
+ config: { storeChanges },
50
+ actions: ({ actionsGroupKey, entitiesName }) => createCrudTraitActions(actionsGroupKey, entitiesName),
51
+ selectors: ({ previousSelectors }) => createCrudTraitSelectors(previousSelectors),
52
+ mutators: ({ allConfigs }) => createCrudTraitMutators(allConfigs),
53
+ initialState: ({ previousInitialState }) => createCrudInitialState(previousInitialState),
54
+ reducer: ({ initialState, allActions, allMutators, allConfigs }) => createCrudTraitReducer(initialState, allActions, allMutators, allConfigs),
55
+ });
56
+ }
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC1lbnRpdGllcy50cmFpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10cmFpdHMvY29tbW9uL3NyYy9saWIvY3J1ZC1lbnRpdGllcy9jcnVkLWVudGl0aWVzLnRyYWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxrQkFBa0IsR0FLbkIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHNCQUFzQixHQUN2QixNQUFNLCtCQUErQixDQUFDO0FBS3ZDLE9BQU8sRUFJTCxvQkFBb0IsR0FDckIsTUFBTSx1QkFBdUIsQ0FBQztBQUsvQixPQUFPLEVBSUwsb0JBQW9CLEdBQ3JCLE1BQU0sc0NBQXNDLENBQUM7QUFLOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFekU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9DRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBUyxFQUMzQyxZQUFZLEdBQUcsS0FBSyxNQUNFLEVBQUU7SUFDeEIsT0FBTyxrQkFBa0IsQ0FBQztRQUN4QixHQUFHLEVBQUUsb0JBQW9CO1FBQ3pCLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO1FBQy9CLE1BQU0sRUFBRSxFQUFFLFlBQVksRUFBd0I7UUFDOUMsT0FBTyxFQUFFLENBQUMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUE2QixFQUFFLEVBQUUsQ0FDeEUsc0JBQXNCLENBQVMsZUFBZSxFQUFFLFlBQVksQ0FBQztRQUMvRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLGlCQUFpQixFQUErQixFQUFFLEVBQUUsQ0FDaEUsd0JBQXdCLENBQ3RCLGlCQUFrRCxDQUNuRDtRQUNILFFBQVEsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFtQyxFQUFFLEVBQUUsQ0FDNUQsdUJBQXVCLENBQ3JCLFVBQXVFLENBQ3hFO1FBQ0gsWUFBWSxFQUFFLENBQUMsRUFBRSxvQkFBb0IsRUFBa0MsRUFBRSxFQUFFLENBQ3pFLHNCQUFzQixDQUFTLG9CQUFvQixDQUFDO1FBQ3RELE9BQU8sRUFBRSxDQUFDLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUNqRSxzQkFBc0IsQ0FDcEIsWUFBWSxFQUNaLFVBSTJCLEVBQzNCLFdBQVcsRUFDWCxVQUkrQixDQUNoQztLQUNKLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjcmVhdGVUcmFpdEZhY3RvcnksXG4gIFRyYWl0QWN0aW9uc0ZhY3RvcnlDb25maWcsXG4gIFRyYWl0SW5pdGlhbFN0YXRlRmFjdG9yeUNvbmZpZyxcbiAgVHJhaXRTZWxlY3RvcnNGYWN0b3J5Q29uZmlnLFxuICBUcmFpdFN0YXRlTXV0YXRvcnNGYWN0b3J5Q29uZmlnLFxufSBmcm9tICdAbmdyeC10cmFpdHMvY29yZSc7XG5pbXBvcnQgeyBjcmVhdGVDcnVkVHJhaXRBY3Rpb25zIH0gZnJvbSAnLi9jcnVkLWVudGl0aWVzLnRyYWl0LmFjdGlvbnMnO1xuaW1wb3J0IHsgY3JlYXRlQ3J1ZFRyYWl0U2VsZWN0b3JzIH0gZnJvbSAnLi9jcnVkLWVudGl0aWVzLnRyYWl0LnNlbGVjdG9ycyc7XG5pbXBvcnQge1xuICBjcmVhdGVDcnVkSW5pdGlhbFN0YXRlLFxuICBjcmVhdGVDcnVkVHJhaXRSZWR1Y2VyLFxufSBmcm9tICcuL2NydWQtZW50aXRpZXMudHJhaXQucmVkdWNlcic7XG5pbXBvcnQge1xuICBTb3J0RW50aXRpZXNBY3Rpb25zLFxuICBTb3J0RW50aXRpZXNLZXllZENvbmZpZyxcbn0gZnJvbSAnLi4vc29ydC1lbnRpdGllcy9zb3J0LWVudGl0aWVzLm1vZGVsJztcbmltcG9ydCB7XG4gIENydWRFbnRpdGllc0FjdGlvbnMsXG4gIENydWRFbnRpdGllc0NvbmZpZyxcbiAgQ3J1ZEVudGl0aWVzS2V5ZWRDb25maWcsXG4gIGNydWRFbnRpdGllc1RyYWl0S2V5LFxufSBmcm9tICcuL2NydWQtZW50aXRpZXMubW9kZWwnO1xuaW1wb3J0IHtcbiAgRmlsdGVyRW50aXRpZXNBY3Rpb25zLFxuICBGaWx0ZXJFbnRpdGllc0tleWVkQ29uZmlnLFxufSBmcm9tICcuLi9maWx0ZXItZW50aXRpZXMvZmlsdGVyLWVudGl0aWVzLm1vZGVsJztcbmltcG9ydCB7XG4gIExvYWRFbnRpdGllc0FjdGlvbnMsXG4gIExvYWRFbnRpdGllc0tleWVkQ29uZmlnLFxuICBMb2FkRW50aXRpZXNTZWxlY3RvcnMsXG4gIGxvYWRFbnRpdGllc1RyYWl0S2V5LFxufSBmcm9tICcuLi9sb2FkLWVudGl0aWVzL2xvYWQtZW50aXRpZXMubW9kZWwnO1xuaW1wb3J0IHtcbiAgRW50aXRpZXNQYWdpbmF0aW9uQWN0aW9ucyxcbiAgRW50aXRpZXNQYWdpbmF0aW9uS2V5ZWRDb25maWcsXG59IGZyb20gJy4uL2VudGl0aWVzLXBhZ2luYXRpb24vZW50aXRpZXMtcGFnaW5hdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBjcmVhdGVDcnVkVHJhaXRNdXRhdG9ycyB9IGZyb20gJy4vY3J1ZC1lbnRpdGllcy50cmFpdC5tdXRhdG9ycyc7XG5cbi8qKlxuICogR2VuZXJhdGVzIG5ncnggY29kZSB0byBhZGQsIHJlbW92ZSB1cGRhdGUsIHVwc2VydCBlbnRpdGllcyBvbiBhIGxpc3QsIGl0IGFsc29cbiAqIHRyYWNrcyB0aGUgY2hhbmdlcyBtYWRlLCBoZWxwZnVsIGZvciBpbXBsZW1lbnRpbmcgYmF0Y2ggdXBkYXRlcy4gVGhlIGBzdG9yZUNoYW5nZXNgIChmYWxzZSBieSBkZWZhdWx0KSxcbiAqIHdpbGwgc3RvcmUgZm9yIGFkZCBhbmQgdXBkYXRlIHRoZSBjaGFuZ2VkIGVudGl0eSBwcm9wcyBpbiB0aGUgcHJvcGVydHkgYGVudGl0eUNoYW5nZXNgIG9mIHRoZSBgQ2hhbmdlYCBvYmplY3QuXG4gKiBAcGFyYW0gY29uZmlnXG4gKiBAcGFyYW0gY29uZmlnLnN0b3JlQ2hhbmdlcyAtIFdpbGwgc3RvcmUgdGhlIGNoYW5nZXMgbWFkZSwgZGVmYXVsdCBmYWxzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRoZSBmb2xsb3dpbmcgdHJhaXQgY29uZmlnXG4gKlxuICogZXhwb3J0IGludGVyZmFjZSBUZXN0U3RhdGVcbiAqIGV4dGVuZHMgRW50aXR5QW5kU3RhdHVzU3RhdGU8VG9kbz4sIENydWRTdGF0ZTxUb2RvPnt9XG4gKlxuICogICAgY29uc3QgdHJhaXRzID0gY3JlYXRlRW50aXR5RmVhdHVyZUZhY3RvcnkoXG4gKiAgICAgIGFkZExvYWRFbnRpdGllc1RyYWl0PFRvZG8+KCksXG4gKiAgICAgIGFkZENydWRFbnRpdGllc1RyYWl0PFRvZG8+KClcbiAqICAgICkoe1xuICogICAgICBhY3Rpb25zR3JvdXBLZXk6ICdbVG9kb3NdJyxcbiAqICAgICAgZmVhdHVyZVNlbGVjdG9yOiBjcmVhdGVGZWF0dXJlU2VsZWN0b3I8VGVzdFN0YXRlPj4oXG4gKiAgICAgICAgJ3RvZG9zJyxcbiAqICAgICAgKSxcbiAqICAgIH0pO1xuICpcbiAqIC8vICAgYWRkcyBmb2xsb3dpbmcgcHJvcHMgdG8gdGhlIHN0YXRlOlxuICogLy8gICAgY2hhbmdlczogQ2hhbmdlPFRvZG8+W107XG4gKlxuICogLy8gZ2VuZXJhdGVkIGFjdGlvbnNcbiAqIHRyYWl0cy5hY3Rpb25zLmFkZFRvZG9zKGVudGl0eTEsZW50aXR5Mi4uLilcbiAqIHRyYWl0cy5hY3Rpb25zLnVwZGF0ZVRvZG9zKHtpZDogaWQxLCBjaGFuZ2VzOntwcm9wMX19LHtpZDogaWQyLCBjaGFuZ2VzOntwcm9wMn19IC4uLilcbiAqIHRyYWl0cy5hY3Rpb25zLnVwc2VydFRvZG9zKGVudGl0eTEsZW50aXR5Mi4uLilcbiAqIHRyYWl0cy5hY3Rpb25zLnJlbW92ZUFsbFRvZG9zKClcbiAqIHRyYWl0cy5hY3Rpb25zLmNsZWFyVG9kb3NDaGFuZ2VzKClcbiAqIC8vIGdlbmVyYXRlZCBzZWxlY3RvcnNcbiAqIHRyYWl0cy5zZWxlY3RvcnMuc2VsZWN0VG9kb3NDaGFuZ2VzTGlzdCgpXG4gKiB0cmFpdHMuc2VsZWN0b3JzLnNlbGVjdEZpbHRlcmVkVG9kb3NDaGFuZ2VzTGlzdCgpXG4gKiB0cmFpdHMuc2VsZWN0b3JzLnNlbGVjdEFsbEZpbHRlcmVkQ2hhbmdlcygpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRDcnVkRW50aXRpZXNUcmFpdDxFbnRpdHk+KHtcbiAgc3RvcmVDaGFuZ2VzID0gZmFsc2UsXG59OiBDcnVkRW50aXRpZXNDb25maWcgPSB7fSkge1xuICByZXR1cm4gY3JlYXRlVHJhaXRGYWN0b3J5KHtcbiAgICBrZXk6IGNydWRFbnRpdGllc1RyYWl0S2V5LFxuICAgIGRlcGVuZHM6IFtsb2FkRW50aXRpZXNUcmFpdEtleV0sXG4gICAgY29uZmlnOiB7IHN0b3JlQ2hhbmdlcyB9IGFzIENydWRFbnRpdGllc0NvbmZpZyxcbiAgICBhY3Rpb25zOiAoeyBhY3Rpb25zR3JvdXBLZXksIGVudGl0aWVzTmFtZSB9OiBUcmFpdEFjdGlvbnNGYWN0b3J5Q29uZmlnKSA9PlxuICAgICAgY3JlYXRlQ3J1ZFRyYWl0QWN0aW9uczxFbnRpdHk+KGFjdGlvbnNHcm91cEtleSwgZW50aXRpZXNOYW1lKSxcbiAgICBzZWxlY3RvcnM6ICh7IHByZXZpb3VzU2VsZWN0b3JzIH06IFRyYWl0U2VsZWN0b3JzRmFjdG9yeUNvbmZpZykgPT5cbiAgICAgIGNyZWF0ZUNydWRUcmFpdFNlbGVjdG9yczxFbnRpdHk+KFxuICAgICAgICBwcmV2aW91c1NlbGVjdG9ycyBhcyBMb2FkRW50aXRpZXNTZWxlY3RvcnM8RW50aXR5PlxuICAgICAgKSxcbiAgICBtdXRhdG9yczogKHsgYWxsQ29uZmlncyB9OiBUcmFpdFN0YXRlTXV0YXRvcnNGYWN0b3J5Q29uZmlnKSA9PlxuICAgICAgY3JlYXRlQ3J1ZFRyYWl0TXV0YXRvcnM8RW50aXR5PihcbiAgICAgICAgYWxsQ29uZmlncyBhcyBDcnVkRW50aXRpZXNLZXllZENvbmZpZyAmIExvYWRFbnRpdGllc0tleWVkQ29uZmlnPEVudGl0eT5cbiAgICAgICksXG4gICAgaW5pdGlhbFN0YXRlOiAoeyBwcmV2aW91c0luaXRpYWxTdGF0ZSB9OiBUcmFpdEluaXRpYWxTdGF0ZUZhY3RvcnlDb25maWcpID0+XG4gICAgICBjcmVhdGVDcnVkSW5pdGlhbFN0YXRlPEVudGl0eT4ocHJldmlvdXNJbml0aWFsU3RhdGUpLFxuICAgIHJlZHVjZXI6ICh7IGluaXRpYWxTdGF0ZSwgYWxsQWN0aW9ucywgYWxsTXV0YXRvcnMsIGFsbENvbmZpZ3MgfSkgPT5cbiAgICAgIGNyZWF0ZUNydWRUcmFpdFJlZHVjZXIoXG4gICAgICAgIGluaXRpYWxTdGF0ZSxcbiAgICAgICAgYWxsQWN0aW9ucyBhcyBDcnVkRW50aXRpZXNBY3Rpb25zPEVudGl0eT4gJlxuICAgICAgICAgIExvYWRFbnRpdGllc0FjdGlvbnM8RW50aXR5PiAmXG4gICAgICAgICAgU29ydEVudGl0aWVzQWN0aW9uczxFbnRpdHk+ICZcbiAgICAgICAgICBGaWx0ZXJFbnRpdGllc0FjdGlvbnM8YW55PiAmXG4gICAgICAgICAgRW50aXRpZXNQYWdpbmF0aW9uQWN0aW9ucyxcbiAgICAgICAgYWxsTXV0YXRvcnMsXG4gICAgICAgIGFsbENvbmZpZ3MgYXMgQ3J1ZEVudGl0aWVzS2V5ZWRDb25maWcgJlxuICAgICAgICAgIEZpbHRlckVudGl0aWVzS2V5ZWRDb25maWc8RW50aXR5LCB1bmtub3duPiAmXG4gICAgICAgICAgTG9hZEVudGl0aWVzS2V5ZWRDb25maWc8RW50aXR5PiAmXG4gICAgICAgICAgU29ydEVudGl0aWVzS2V5ZWRDb25maWc8RW50aXR5PiAmXG4gICAgICAgICAgRW50aXRpZXNQYWdpbmF0aW9uS2V5ZWRDb25maWdcbiAgICAgICksXG4gIH0pO1xufVxuIl19
@@ -0,0 +1,121 @@
1
+ import { ChangeType, } from './crud-entities.model';
2
+ export function createCrudTraitMutators(allConfigs) {
3
+ const { storeChanges } = allConfigs.crud || {};
4
+ const adapter = allConfigs.loadEntities.adapter;
5
+ function generateChangeEntry(entity, changeType, customId) {
6
+ return {
7
+ id: customId ?? adapter.selectId(entity),
8
+ changeType,
9
+ entityChanges: (storeChanges && entity) || undefined,
10
+ };
11
+ }
12
+ function addEntities(entities, state, addFirst = false) {
13
+ const changes = [
14
+ ...state.changes,
15
+ ...entities.map((entity) => generateChangeEntry(entity, ChangeType.CREATED)),
16
+ ];
17
+ if (!addFirst)
18
+ return adapter.addMany(entities, {
19
+ ...state,
20
+ changes,
21
+ });
22
+ const newIds = entities.map((e) => adapter.selectId(e));
23
+ const newEntities = { ...state.entities };
24
+ entities.forEach((e) => {
25
+ const id = adapter.selectId(e);
26
+ newEntities[id] = e;
27
+ });
28
+ return {
29
+ ...state,
30
+ ids: [...newIds, ...state.ids],
31
+ entities: newEntities,
32
+ changes,
33
+ };
34
+ }
35
+ function upsertEntities(entities, state) {
36
+ const oldChanges = [...state.changes];
37
+ const existingIds = adapter.getSelectors().selectIds(state);
38
+ const [additions, updates] = entities.reduce(([a, u], entity) => existingIds.indexOf(adapter.selectId(entity)) !== -1
39
+ ? [a, [...u, entity]]
40
+ : [[...a, entity], u], [new Array(), new Array()]);
41
+ return adapter.upsertMany(entities, {
42
+ ...state,
43
+ changes: [
44
+ ...oldChanges,
45
+ ...additions.map((entity) => generateChangeEntry(entity, ChangeType.CREATED)),
46
+ ...updates.map((entity) => generateChangeEntry(entity, ChangeType.UPDATED)),
47
+ ],
48
+ });
49
+ }
50
+ function removeEntities(keysOrPredicate, state) {
51
+ if (typeof keysOrPredicate === 'function') {
52
+ return adapter.removeMany(keysOrPredicate, {
53
+ ...state,
54
+ changes: [
55
+ ...state.changes,
56
+ ...state.ids.map((id) => ({
57
+ id,
58
+ changeType: ChangeType.DELETED,
59
+ })),
60
+ ],
61
+ });
62
+ }
63
+ return adapter.removeMany(keysOrPredicate, {
64
+ ...state,
65
+ changes: [
66
+ ...state.changes,
67
+ ...keysOrPredicate.map((key) => ({
68
+ id: key,
69
+ changeType: ChangeType.DELETED,
70
+ })),
71
+ ],
72
+ });
73
+ }
74
+ function removeAllEntities(state) {
75
+ return adapter.removeAll({
76
+ ...state,
77
+ changes: [
78
+ ...state.changes,
79
+ ...state.ids.map((id) => ({
80
+ id,
81
+ changeType: ChangeType.DELETED,
82
+ })),
83
+ ],
84
+ });
85
+ }
86
+ function clearEntitiesChanges(state) {
87
+ return { ...state, changes: [] };
88
+ }
89
+ function updateEntities(updates, state) {
90
+ const oldChanges = [...state.changes];
91
+ updates.forEach((updated) => {
92
+ const id = adapter.selectId(updated.changes);
93
+ if (id && id !== updated.id) {
94
+ // if the id changes update the id of pold changes
95
+ const index = oldChanges.findIndex((v) => v.id === updated.id);
96
+ const oldChange = oldChanges[index];
97
+ oldChanges[index] = { ...oldChange, id };
98
+ }
99
+ });
100
+ return adapter.updateMany(updates, {
101
+ ...state,
102
+ changes: [
103
+ ...oldChanges,
104
+ ...updates.map((updated) => ({
105
+ id: adapter.selectId(updated.changes) ?? updated.id,
106
+ changeType: ChangeType.UPDATED,
107
+ entityChanges: (storeChanges && updated.changes) || undefined,
108
+ })),
109
+ ],
110
+ });
111
+ }
112
+ return {
113
+ addEntities,
114
+ removeEntities,
115
+ updateEntities,
116
+ removeAllEntities,
117
+ clearEntitiesChanges,
118
+ upsertEntities,
119
+ };
120
+ }
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC1lbnRpdGllcy50cmFpdC5tdXRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10cmFpdHMvY29tbW9uL3NyYy9saWIvY3J1ZC1lbnRpdGllcy9jcnVkLWVudGl0aWVzLnRyYWl0Lm11dGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxVQUFVLEdBSVgsTUFBTSx1QkFBdUIsQ0FBQztBQU8vQixNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLFVBQXFFO0lBRXJFLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxVQUFVLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUMvQyxNQUFNLE9BQU8sR0FBRyxVQUFXLENBQUMsWUFBYSxDQUFDLE9BQU8sQ0FBQztJQUVsRCxTQUFTLG1CQUFtQixDQUMxQixNQUFjLEVBQ2QsVUFBc0IsRUFDdEIsUUFBMEI7UUFFMUIsT0FBTztZQUNMLEVBQUUsRUFBRSxRQUFRLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDeEMsVUFBVTtZQUNWLGFBQWEsRUFBRSxDQUFDLFlBQVksSUFBSSxNQUFNLENBQUMsSUFBSSxTQUFTO1NBQ3JELENBQUM7SUFDSixDQUFDO0lBRUQsU0FBUyxXQUFXLENBRWxCLFFBQWtCLEVBQUUsS0FBUSxFQUFFLFFBQVEsR0FBRyxLQUFLO1FBQzlDLE1BQU0sT0FBTyxHQUFHO1lBQ2QsR0FBRyxLQUFLLENBQUMsT0FBTztZQUNoQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUN6QixtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUNoRDtTQUNGLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUTtZQUNYLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7Z0JBQy9CLEdBQUcsS0FBSztnQkFDUixPQUFPO2FBQ1IsQ0FBQyxDQUFDO1FBRUwsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sV0FBVyxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3JCLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsV0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixHQUFHLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDOUIsUUFBUSxFQUFFLFdBQVc7WUFDckIsT0FBTztTQUNSLENBQUM7SUFDSixDQUFDO0lBRUQsU0FBUyxjQUFjLENBRXJCLFFBQWtCLEVBQUUsS0FBUTtRQUM1QixNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFhLENBQUM7UUFFeEUsTUFBTSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUMxQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQ2pCLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFnQixDQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDckIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDekIsQ0FBQyxJQUFJLEtBQUssRUFBVSxFQUFFLElBQUksS0FBSyxFQUFVLENBQUMsQ0FDM0MsQ0FBQztRQUVGLE9BQU8sT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDbEMsR0FBRyxLQUFLO1lBQ1IsT0FBTyxFQUFFO2dCQUNQLEdBQUcsVUFBVTtnQkFFYixHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUMxQixtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUNoRDtnQkFDRCxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUN4QixtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUNoRDthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQVdELFNBQVMsY0FBYyxDQUVyQixlQUF3RCxFQUFFLEtBQVE7UUFDbEUsSUFBSSxPQUFPLGVBQWUsS0FBSyxVQUFVLEVBQUU7WUFDekMsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRTtnQkFDekMsR0FBRyxLQUFLO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxHQUFHLEtBQUssQ0FBQyxPQUFPO29CQUNoQixHQUFJLEtBQUssQ0FBQyxHQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO3dCQUNuQyxFQUFFO3dCQUNGLFVBQVUsRUFBRSxVQUFVLENBQUMsT0FBTztxQkFDL0IsQ0FBQyxDQUFDO2lCQUNKO2FBQ0YsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsZUFBMkIsRUFBRTtZQUNyRCxHQUFHLEtBQUs7WUFDUixPQUFPLEVBQUU7Z0JBQ1AsR0FBRyxLQUFLLENBQUMsT0FBTztnQkFDaEIsR0FBSSxlQUE0QixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDckQsRUFBRSxFQUFFLEdBQUc7b0JBQ1AsVUFBVSxFQUFFLFVBQVUsQ0FBQyxPQUFPO2lCQUMvQixDQUFDLENBQUM7YUFDSjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxTQUFTLGlCQUFpQixDQUV4QixLQUFRO1FBQ1IsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQ3ZCLEdBQUcsS0FBSztZQUNSLE9BQU8sRUFBRTtnQkFDUCxHQUFHLEtBQUssQ0FBQyxPQUFPO2dCQUNoQixHQUFJLEtBQUssQ0FBQyxHQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUNuQyxFQUFFO29CQUNGLFVBQVUsRUFBRSxVQUFVLENBQUMsT0FBTztpQkFDL0IsQ0FBQyxDQUFDO2FBQ0o7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsU0FBUyxvQkFBb0IsQ0FFM0IsS0FBUTtRQUNSLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELFNBQVMsY0FBYyxDQUVyQixPQUF5QixFQUFFLEtBQVE7UUFDbkMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDMUIsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBaUIsQ0FBQyxDQUFDO1lBQ3ZELElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxPQUFPLENBQUMsRUFBRSxFQUFFO2dCQUMzQixrREFBa0Q7Z0JBQ2xELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMvRCxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDO2FBQzFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFO1lBQ2pDLEdBQUcsS0FBSztZQUNSLE9BQU8sRUFBRTtnQkFDUCxHQUFHLFVBQVU7Z0JBQ2IsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUNaLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDVixDQUFDO29CQUNDLEVBQUUsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFpQixDQUFDLElBQUksT0FBTyxDQUFDLEVBQUU7b0JBQzdELFVBQVUsRUFBRSxVQUFVLENBQUMsT0FBTztvQkFDOUIsYUFBYSxFQUFFLENBQUMsWUFBWSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxTQUFTO2lCQUMzQyxDQUFBLENBQ3ZCO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTztRQUNMLFdBQVc7UUFDWCxjQUFjO1FBQ2QsY0FBYztRQUNkLGlCQUFpQjtRQUNqQixvQkFBb0I7UUFDcEIsY0FBYztLQUNmLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlLFxuICBDaGFuZ2VUeXBlLFxuICBDcnVkRW50aXRpZXNLZXllZENvbmZpZyxcbiAgQ3J1ZEVudGl0aWVzTXV0YXRvcnMsXG4gIENydWRFbnRpdGllc1N0YXRlLFxufSBmcm9tICcuL2NydWQtZW50aXRpZXMubW9kZWwnO1xuaW1wb3J0IHsgUHJlZGljYXRlLCBVcGRhdGUgfSBmcm9tICdAbmdyeC9lbnRpdHknO1xuaW1wb3J0IHtcbiAgTG9hZEVudGl0aWVzS2V5ZWRDb25maWcsXG4gIExvYWRFbnRpdGllc1N0YXRlLFxufSBmcm9tICcuLi9sb2FkLWVudGl0aWVzL2xvYWQtZW50aXRpZXMubW9kZWwnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ3J1ZFRyYWl0TXV0YXRvcnM8RW50aXR5PihcbiAgYWxsQ29uZmlnczogQ3J1ZEVudGl0aWVzS2V5ZWRDb25maWcgJiBMb2FkRW50aXRpZXNLZXllZENvbmZpZzxFbnRpdHk+XG4pOiBDcnVkRW50aXRpZXNNdXRhdG9yczxFbnRpdHk+IHtcbiAgY29uc3QgeyBzdG9yZUNoYW5nZXMgfSA9IGFsbENvbmZpZ3MuY3J1ZCB8fCB7fTtcbiAgY29uc3QgYWRhcHRlciA9IGFsbENvbmZpZ3MhLmxvYWRFbnRpdGllcyEuYWRhcHRlcjtcblxuICBmdW5jdGlvbiBnZW5lcmF0ZUNoYW5nZUVudHJ5KFxuICAgIGVudGl0eTogRW50aXR5LFxuICAgIGNoYW5nZVR5cGU6IENoYW5nZVR5cGUsXG4gICAgY3VzdG9tSWQ/OiBzdHJpbmcgfCBudW1iZXJcbiAgKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBjdXN0b21JZCA/PyBhZGFwdGVyLnNlbGVjdElkKGVudGl0eSksXG4gICAgICBjaGFuZ2VUeXBlLFxuICAgICAgZW50aXR5Q2hhbmdlczogKHN0b3JlQ2hhbmdlcyAmJiBlbnRpdHkpIHx8IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgZnVuY3Rpb24gYWRkRW50aXRpZXM8XG4gICAgUyBleHRlbmRzIExvYWRFbnRpdGllc1N0YXRlPEVudGl0eT4gJiBDcnVkRW50aXRpZXNTdGF0ZTxFbnRpdHk+XG4gID4oZW50aXRpZXM6IEVudGl0eVtdLCBzdGF0ZTogUywgYWRkRmlyc3QgPSBmYWxzZSkge1xuICAgIGNvbnN0IGNoYW5nZXMgPSBbXG4gICAgICAuLi5zdGF0ZS5jaGFuZ2VzLFxuICAgICAgLi4uZW50aXRpZXMubWFwKChlbnRpdHkpID0+XG4gICAgICAgIGdlbmVyYXRlQ2hhbmdlRW50cnkoZW50aXR5LCBDaGFuZ2VUeXBlLkNSRUFURUQpXG4gICAgICApLFxuICAgIF07XG4gICAgaWYgKCFhZGRGaXJzdClcbiAgICAgIHJldHVybiBhZGFwdGVyLmFkZE1hbnkoZW50aXRpZXMsIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGNoYW5nZXMsXG4gICAgICB9KTtcblxuICAgIGNvbnN0IG5ld0lkcyA9IGVudGl0aWVzLm1hcCgoZSkgPT4gYWRhcHRlci5zZWxlY3RJZChlKSk7XG4gICAgY29uc3QgbmV3RW50aXRpZXMgPSB7IC4uLnN0YXRlLmVudGl0aWVzIH07XG4gICAgZW50aXRpZXMuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgY29uc3QgaWQgPSBhZGFwdGVyLnNlbGVjdElkKGUpO1xuICAgICAgbmV3RW50aXRpZXNbaWRdID0gZTtcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBpZHM6IFsuLi5uZXdJZHMsIC4uLnN0YXRlLmlkc10sXG4gICAgICBlbnRpdGllczogbmV3RW50aXRpZXMsXG4gICAgICBjaGFuZ2VzLFxuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiB1cHNlcnRFbnRpdGllczxcbiAgICBTIGV4dGVuZHMgTG9hZEVudGl0aWVzU3RhdGU8RW50aXR5PiAmIENydWRFbnRpdGllc1N0YXRlPEVudGl0eT5cbiAgPihlbnRpdGllczogRW50aXR5W10sIHN0YXRlOiBTKSB7XG4gICAgY29uc3Qgb2xkQ2hhbmdlcyA9IFsuLi5zdGF0ZS5jaGFuZ2VzXTtcbiAgICBjb25zdCBleGlzdGluZ0lkcyA9IGFkYXB0ZXIuZ2V0U2VsZWN0b3JzKCkuc2VsZWN0SWRzKHN0YXRlKSBhcyBzdHJpbmdbXTtcblxuICAgIGNvbnN0IFthZGRpdGlvbnMsIHVwZGF0ZXNdID0gZW50aXRpZXMucmVkdWNlKFxuICAgICAgKFthLCB1XSwgZW50aXR5KSA9PlxuICAgICAgICBleGlzdGluZ0lkcy5pbmRleE9mKGFkYXB0ZXIuc2VsZWN0SWQoZW50aXR5IGFzIEVudGl0eSkgYXMgc3RyaW5nKSAhPT0gLTFcbiAgICAgICAgICA/IFthLCBbLi4udSwgZW50aXR5XV1cbiAgICAgICAgICA6IFtbLi4uYSwgZW50aXR5XSwgdV0sXG4gICAgICBbbmV3IEFycmF5PEVudGl0eT4oKSwgbmV3IEFycmF5PEVudGl0eT4oKV1cbiAgICApO1xuXG4gICAgcmV0dXJuIGFkYXB0ZXIudXBzZXJ0TWFueShlbnRpdGllcywge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBjaGFuZ2VzOiBbXG4gICAgICAgIC4uLm9sZENoYW5nZXMsXG5cbiAgICAgICAgLi4uYWRkaXRpb25zLm1hcCgoZW50aXR5KSA9PlxuICAgICAgICAgIGdlbmVyYXRlQ2hhbmdlRW50cnkoZW50aXR5LCBDaGFuZ2VUeXBlLkNSRUFURUQpXG4gICAgICAgICksXG4gICAgICAgIC4uLnVwZGF0ZXMubWFwKChlbnRpdHkpID0+XG4gICAgICAgICAgZ2VuZXJhdGVDaGFuZ2VFbnRyeShlbnRpdHksIENoYW5nZVR5cGUuVVBEQVRFRClcbiAgICAgICAgKSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiByZW1vdmVFbnRpdGllczxcbiAgICBTIGV4dGVuZHMgTG9hZEVudGl0aWVzU3RhdGU8RW50aXR5PiAmIENydWRFbnRpdGllc1N0YXRlPEVudGl0eT5cbiAgPihrZXlzOiBudW1iZXJbXSwgc3RhdGU6IFMpOiBTO1xuICBmdW5jdGlvbiByZW1vdmVFbnRpdGllczxcbiAgICBTIGV4dGVuZHMgTG9hZEVudGl0aWVzU3RhdGU8RW50aXR5PiAmIENydWRFbnRpdGllc1N0YXRlPEVudGl0eT5cbiAgPihrZXlzOiBzdHJpbmdbXSwgc3RhdGU6IFMpOiBTO1xuICBmdW5jdGlvbiByZW1vdmVFbnRpdGllczxcbiAgICBTIGV4dGVuZHMgTG9hZEVudGl0aWVzU3RhdGU8RW50aXR5PiAmIENydWRFbnRpdGllc1N0YXRlPEVudGl0eT5cbiAgPihwcmVkaWNhdGU6IFByZWRpY2F0ZTxFbnRpdHk+LCBzdGF0ZTogUyk6IFM7XG4gIGZ1bmN0aW9uIHJlbW92ZUVudGl0aWVzPFxuICAgIFMgZXh0ZW5kcyBMb2FkRW50aXRpZXNTdGF0ZTxFbnRpdHk+ICYgQ3J1ZEVudGl0aWVzU3RhdGU8RW50aXR5PlxuICA+KGtleXNPclByZWRpY2F0ZTogUHJlZGljYXRlPEVudGl0eT4gfCBzdHJpbmdbXSB8IG51bWJlcltdLCBzdGF0ZTogUyk6IFMge1xuICAgIGlmICh0eXBlb2Yga2V5c09yUHJlZGljYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gYWRhcHRlci5yZW1vdmVNYW55KGtleXNPclByZWRpY2F0ZSwge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY2hhbmdlczogW1xuICAgICAgICAgIC4uLnN0YXRlLmNoYW5nZXMsXG4gICAgICAgICAgLi4uKHN0YXRlLmlkcyBhcyBhbnlbXSkubWFwKChpZCkgPT4gKHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgY2hhbmdlVHlwZTogQ2hhbmdlVHlwZS5ERUxFVEVELFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBhZGFwdGVyLnJlbW92ZU1hbnkoa2V5c09yUHJlZGljYXRlIGFzIHN0cmluZ1tdLCB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGNoYW5nZXM6IFtcbiAgICAgICAgLi4uc3RhdGUuY2hhbmdlcyxcbiAgICAgICAgLi4uKGtleXNPclByZWRpY2F0ZSBhcyBzdHJpbmdbXSkubWFwKChrZXk6IHN0cmluZykgPT4gKHtcbiAgICAgICAgICBpZDoga2V5LFxuICAgICAgICAgIGNoYW5nZVR5cGU6IENoYW5nZVR5cGUuREVMRVRFRCxcbiAgICAgICAgfSkpLFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuICBmdW5jdGlvbiByZW1vdmVBbGxFbnRpdGllczxcbiAgICBTIGV4dGVuZHMgTG9hZEVudGl0aWVzU3RhdGU8RW50aXR5PiAmIENydWRFbnRpdGllc1N0YXRlPEVudGl0eT5cbiAgPihzdGF0ZTogUyk6IFMge1xuICAgIHJldHVybiBhZGFwdGVyLnJlbW92ZUFsbCh7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGNoYW5nZXM6IFtcbiAgICAgICAgLi4uc3RhdGUuY2hhbmdlcyxcbiAgICAgICAgLi4uKHN0YXRlLmlkcyBhcyBhbnlbXSkubWFwKChpZCkgPT4gKHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBjaGFuZ2VUeXBlOiBDaGFuZ2VUeXBlLkRFTEVURUQsXG4gICAgICAgIH0pKSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cbiAgZnVuY3Rpb24gY2xlYXJFbnRpdGllc0NoYW5nZXM8XG4gICAgUyBleHRlbmRzIExvYWRFbnRpdGllc1N0YXRlPEVudGl0eT4gJiBDcnVkRW50aXRpZXNTdGF0ZTxFbnRpdHk+XG4gID4oc3RhdGU6IFMpIHtcbiAgICByZXR1cm4geyAuLi5zdGF0ZSwgY2hhbmdlczogW10gfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHVwZGF0ZUVudGl0aWVzPFxuICAgIFMgZXh0ZW5kcyBMb2FkRW50aXRpZXNTdGF0ZTxFbnRpdHk+ICYgQ3J1ZEVudGl0aWVzU3RhdGU8RW50aXR5PlxuICA+KHVwZGF0ZXM6IFVwZGF0ZTxFbnRpdHk+W10sIHN0YXRlOiBTKSB7XG4gICAgY29uc3Qgb2xkQ2hhbmdlcyA9IFsuLi5zdGF0ZS5jaGFuZ2VzXTtcbiAgICB1cGRhdGVzLmZvckVhY2goKHVwZGF0ZWQpID0+IHtcbiAgICAgIGNvbnN0IGlkID0gYWRhcHRlci5zZWxlY3RJZCh1cGRhdGVkLmNoYW5nZXMgYXMgRW50aXR5KTtcbiAgICAgIGlmIChpZCAmJiBpZCAhPT0gdXBkYXRlZC5pZCkge1xuICAgICAgICAvLyBpZiB0aGUgaWQgY2hhbmdlcyB1cGRhdGUgdGhlIGlkIG9mIHBvbGQgY2hhbmdlc1xuICAgICAgICBjb25zdCBpbmRleCA9IG9sZENoYW5nZXMuZmluZEluZGV4KCh2KSA9PiB2LmlkID09PSB1cGRhdGVkLmlkKTtcbiAgICAgICAgY29uc3Qgb2xkQ2hhbmdlID0gb2xkQ2hhbmdlc1tpbmRleF07XG4gICAgICAgIG9sZENoYW5nZXNbaW5kZXhdID0geyAuLi5vbGRDaGFuZ2UsIGlkIH07XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGFkYXB0ZXIudXBkYXRlTWFueSh1cGRhdGVzLCB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGNoYW5nZXM6IFtcbiAgICAgICAgLi4ub2xkQ2hhbmdlcyxcbiAgICAgICAgLi4udXBkYXRlcy5tYXAoXG4gICAgICAgICAgKHVwZGF0ZWQpID0+XG4gICAgICAgICAgICAoe1xuICAgICAgICAgICAgICBpZDogYWRhcHRlci5zZWxlY3RJZCh1cGRhdGVkLmNoYW5nZXMgYXMgRW50aXR5KSA/PyB1cGRhdGVkLmlkLFxuICAgICAgICAgICAgICBjaGFuZ2VUeXBlOiBDaGFuZ2VUeXBlLlVQREFURUQsXG4gICAgICAgICAgICAgIGVudGl0eUNoYW5nZXM6IChzdG9yZUNoYW5nZXMgJiYgdXBkYXRlZC5jaGFuZ2VzKSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICB9IGFzIENoYW5nZTxFbnRpdHk+KVxuICAgICAgICApLFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYWRkRW50aXRpZXMsXG4gICAgcmVtb3ZlRW50aXRpZXMsXG4gICAgdXBkYXRlRW50aXRpZXMsXG4gICAgcmVtb3ZlQWxsRW50aXRpZXMsXG4gICAgY2xlYXJFbnRpdGllc0NoYW5nZXMsXG4gICAgdXBzZXJ0RW50aXRpZXMsXG4gIH07XG59XG4iXX0=
@@ -0,0 +1,17 @@
1
+ import { createReducer, on } from '@ngrx/store';
2
+ import { insertIf } from '@ngrx-traits/core';
3
+ export function createCrudInitialState(previousInitialState) {
4
+ return {
5
+ ...previousInitialState,
6
+ changes: [],
7
+ };
8
+ }
9
+ export function createCrudTraitReducer(initialState, allActions, allMutators, allConfigs) {
10
+ const sortRemote = allConfigs.sort?.remote;
11
+ const filterRemote = allConfigs.filter && !allConfigs.filter?.filterFn;
12
+ const paginationCacheType = allConfigs.pagination?.cacheType;
13
+ return createReducer(initialState, on(allActions.addEntities, (state, { entities }) => allMutators.addEntities(entities, state)), on(allActions.updateEntities, (state, { updates }) => allMutators.updateEntities(updates, state)), on(allActions.upsertEntities, (state, { entities }) => allMutators.upsertEntities(entities, state)), on(allActions.removeEntities, (state, { keys }) => allMutators.removeEntities(keys, state)), on(allActions.removeAllEntities, (state, { predicate }) => predicate
14
+ ? allMutators.removeEntities(predicate, state)
15
+ : allMutators.removeAllEntities(state)), on(allActions.clearEntitiesChanges, (state) => allMutators.clearEntitiesChanges(state)), ...insertIf(sortRemote, () => on(allActions.sortEntities, (state) => allMutators.clearEntitiesChanges(state))), ...insertIf(filterRemote, () => on(allActions.filterEntities, (state) => allMutators.clearEntitiesChanges(state))), ...insertIf(!allActions.loadEntitiesPageSuccess, () => on(allActions.loadEntitiesSuccess, (state) => allMutators.clearEntitiesChanges(state))), ...insertIf(!!allActions.loadEntitiesPageSuccess && paginationCacheType === 'partial', () => on(allActions.loadEntitiesPageSuccess, (state) => allMutators.clearEntitiesChanges(state))));
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC1lbnRpdGllcy50cmFpdC5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRyYWl0cy9jb21tb24vc3JjL2xpYi9jcnVkLWVudGl0aWVzL2NydWQtZW50aXRpZXMudHJhaXQucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQWlCaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTdDLE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsb0JBQXlCO0lBRXpCLE9BQU87UUFDTCxHQUFHLG9CQUFvQjtRQUN2QixPQUFPLEVBQUUsRUFBRTtLQUNaLENBQUM7QUFDSixDQUFDO0FBQ0QsTUFBTSxVQUFVLHNCQUFzQixDQUlwQyxZQUFlLEVBQ2YsVUFJMkIsRUFDM0IsV0FBeUMsRUFDekMsVUFJK0I7SUFFL0IsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7SUFDM0MsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO0lBQ3ZFLE1BQU0sbUJBQW1CLEdBQUcsVUFBVSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUM7SUFFN0QsT0FBTyxhQUFhLENBQ2xCLFlBQVksRUFDWixFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FDakQsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQ3pDLEVBQ0QsRUFBRSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQ25ELFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUMzQyxFQUNELEVBQUUsQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUNwRCxXQUFXLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FDNUMsRUFDRCxFQUFFLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FDaEQsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFhLEVBQUUsS0FBSyxDQUFDLENBQ2pELEVBQ0QsRUFBRSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FDeEQsU0FBUztRQUNQLENBQUMsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDOUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FDekMsRUFDRCxFQUFFLENBQUMsVUFBVSxDQUFDLG9CQUFvQixFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDNUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUN4QyxFQUNELEdBQUcsUUFBUSxDQUFJLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FDOUIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNwQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQ3hDLENBQ0YsRUFDRCxHQUFHLFFBQVEsQ0FBSSxZQUFZLEVBQUUsR0FBRyxFQUFFLENBQ2hDLEVBQUUsQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDdEMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUN4QyxDQUNGLEVBQ0QsR0FBRyxRQUFRLENBQUksQ0FBQyxVQUFVLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFLENBQ3ZELEVBQUUsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUMzQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQ3hDLENBQ0YsRUFDRCxHQUFHLFFBQVEsQ0FDVCxDQUFDLENBQUMsVUFBVSxDQUFDLHVCQUF1QixJQUFJLG1CQUFtQixLQUFLLFNBQVMsRUFDekUsR0FBRyxFQUFFLENBQ0gsRUFBRSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQy9DLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FDeEMsQ0FDSixDQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRmlsdGVyRW50aXRpZXNBY3Rpb25zLFxuICBGaWx0ZXJFbnRpdGllc0tleWVkQ29uZmlnLFxufSBmcm9tICcuLi9maWx0ZXItZW50aXRpZXMvZmlsdGVyLWVudGl0aWVzLm1vZGVsJztcbmltcG9ydCB7IGNyZWF0ZVJlZHVjZXIsIG9uIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQ3J1ZEVudGl0aWVzQWN0aW9ucyxcbiAgQ3J1ZEVudGl0aWVzS2V5ZWRDb25maWcsXG4gIENydWRFbnRpdGllc011dGF0b3JzLFxuICBDcnVkRW50aXRpZXNTdGF0ZSxcbn0gZnJvbSAnLi9jcnVkLWVudGl0aWVzLm1vZGVsJztcbmltcG9ydCB7XG4gIExvYWRFbnRpdGllc0FjdGlvbnMsXG4gIExvYWRFbnRpdGllc0tleWVkQ29uZmlnLFxuICBMb2FkRW50aXRpZXNTdGF0ZSxcbn0gZnJvbSAnLi4vbG9hZC1lbnRpdGllcyc7XG5pbXBvcnQgeyBTb3J0RW50aXRpZXNBY3Rpb25zLCBTb3J0RW50aXRpZXNLZXllZENvbmZpZyB9IGZyb20gJy4uL3NvcnQtZW50aXRpZXMnO1xuaW1wb3J0IHtcbiAgRW50aXRpZXNQYWdpbmF0aW9uQWN0aW9ucyxcbiAgRW50aXRpZXNQYWdpbmF0aW9uS2V5ZWRDb25maWcsXG59IGZyb20gJy4uL2VudGl0aWVzLXBhZ2luYXRpb24nO1xuaW1wb3J0IHsgaW5zZXJ0SWYgfSBmcm9tICdAbmdyeC10cmFpdHMvY29yZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDcnVkSW5pdGlhbFN0YXRlPEVudGl0eT4oXG4gIHByZXZpb3VzSW5pdGlhbFN0YXRlOiBhbnlcbik6IExvYWRFbnRpdGllc1N0YXRlPEVudGl0eT4gJiBDcnVkRW50aXRpZXNTdGF0ZTxFbnRpdHk+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5wcmV2aW91c0luaXRpYWxTdGF0ZSxcbiAgICBjaGFuZ2VzOiBbXSxcbiAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDcnVkVHJhaXRSZWR1Y2VyPFxuICBFbnRpdHksXG4gIFMgZXh0ZW5kcyBMb2FkRW50aXRpZXNTdGF0ZTxFbnRpdHk+ICYgQ3J1ZEVudGl0aWVzU3RhdGU8RW50aXR5PlxuPihcbiAgaW5pdGlhbFN0YXRlOiBTLFxuICBhbGxBY3Rpb25zOiBDcnVkRW50aXRpZXNBY3Rpb25zPEVudGl0eT4gJlxuICAgIExvYWRFbnRpdGllc0FjdGlvbnM8RW50aXR5PiAmXG4gICAgU29ydEVudGl0aWVzQWN0aW9uczxFbnRpdHk+ICZcbiAgICBGaWx0ZXJFbnRpdGllc0FjdGlvbnM8YW55PiAmXG4gICAgRW50aXRpZXNQYWdpbmF0aW9uQWN0aW9ucyxcbiAgYWxsTXV0YXRvcnM6IENydWRFbnRpdGllc011dGF0b3JzPEVudGl0eT4sXG4gIGFsbENvbmZpZ3M6IENydWRFbnRpdGllc0tleWVkQ29uZmlnICZcbiAgICBGaWx0ZXJFbnRpdGllc0tleWVkQ29uZmlnPEVudGl0eSwgdW5rbm93bj4gJlxuICAgIExvYWRFbnRpdGllc0tleWVkQ29uZmlnPEVudGl0eT4gJlxuICAgIFNvcnRFbnRpdGllc0tleWVkQ29uZmlnPEVudGl0eT4gJlxuICAgIEVudGl0aWVzUGFnaW5hdGlvbktleWVkQ29uZmlnXG4pIHtcbiAgY29uc3Qgc29ydFJlbW90ZSA9IGFsbENvbmZpZ3Muc29ydD8ucmVtb3RlO1xuICBjb25zdCBmaWx0ZXJSZW1vdGUgPSBhbGxDb25maWdzLmZpbHRlciAmJiAhYWxsQ29uZmlncy5maWx0ZXI/LmZpbHRlckZuO1xuICBjb25zdCBwYWdpbmF0aW9uQ2FjaGVUeXBlID0gYWxsQ29uZmlncy5wYWdpbmF0aW9uPy5jYWNoZVR5cGU7XG5cbiAgcmV0dXJuIGNyZWF0ZVJlZHVjZXIoXG4gICAgaW5pdGlhbFN0YXRlLFxuICAgIG9uKGFsbEFjdGlvbnMuYWRkRW50aXRpZXMsIChzdGF0ZSwgeyBlbnRpdGllcyB9KSA9PlxuICAgICAgYWxsTXV0YXRvcnMuYWRkRW50aXRpZXMoZW50aXRpZXMsIHN0YXRlKVxuICAgICksXG4gICAgb24oYWxsQWN0aW9ucy51cGRhdGVFbnRpdGllcywgKHN0YXRlLCB7IHVwZGF0ZXMgfSkgPT5cbiAgICAgIGFsbE11dGF0b3JzLnVwZGF0ZUVudGl0aWVzKHVwZGF0ZXMsIHN0YXRlKVxuICAgICksXG4gICAgb24oYWxsQWN0aW9ucy51cHNlcnRFbnRpdGllcywgKHN0YXRlLCB7IGVudGl0aWVzIH0pID0+XG4gICAgICBhbGxNdXRhdG9ycy51cHNlcnRFbnRpdGllcyhlbnRpdGllcywgc3RhdGUpXG4gICAgKSxcbiAgICBvbihhbGxBY3Rpb25zLnJlbW92ZUVudGl0aWVzLCAoc3RhdGUsIHsga2V5cyB9KSA9PlxuICAgICAgYWxsTXV0YXRvcnMucmVtb3ZlRW50aXRpZXMoa2V5cyBhcyBhbnlbXSwgc3RhdGUpXG4gICAgKSxcbiAgICBvbihhbGxBY3Rpb25zLnJlbW92ZUFsbEVudGl0aWVzLCAoc3RhdGUsIHsgcHJlZGljYXRlIH0pID0+XG4gICAgICBwcmVkaWNhdGVcbiAgICAgICAgPyBhbGxNdXRhdG9ycy5yZW1vdmVFbnRpdGllcyhwcmVkaWNhdGUsIHN0YXRlKVxuICAgICAgICA6IGFsbE11dGF0b3JzLnJlbW92ZUFsbEVudGl0aWVzKHN0YXRlKVxuICAgICksXG4gICAgb24oYWxsQWN0aW9ucy5jbGVhckVudGl0aWVzQ2hhbmdlcywgKHN0YXRlKSA9PlxuICAgICAgYWxsTXV0YXRvcnMuY2xlYXJFbnRpdGllc0NoYW5nZXMoc3RhdGUpXG4gICAgKSxcbiAgICAuLi5pbnNlcnRJZjxTPihzb3J0UmVtb3RlLCAoKSA9PlxuICAgICAgb24oYWxsQWN0aW9ucy5zb3J0RW50aXRpZXMsIChzdGF0ZSkgPT5cbiAgICAgICAgYWxsTXV0YXRvcnMuY2xlYXJFbnRpdGllc0NoYW5nZXMoc3RhdGUpXG4gICAgICApXG4gICAgKSxcbiAgICAuLi5pbnNlcnRJZjxTPihmaWx0ZXJSZW1vdGUsICgpID0+XG4gICAgICBvbihhbGxBY3Rpb25zLmZpbHRlckVudGl0aWVzLCAoc3RhdGUpID0+XG4gICAgICAgIGFsbE11dGF0b3JzLmNsZWFyRW50aXRpZXNDaGFuZ2VzKHN0YXRlKVxuICAgICAgKVxuICAgICksXG4gICAgLi4uaW5zZXJ0SWY8Uz4oIWFsbEFjdGlvbnMubG9hZEVudGl0aWVzUGFnZVN1Y2Nlc3MsICgpID0+XG4gICAgICBvbihhbGxBY3Rpb25zLmxvYWRFbnRpdGllc1N1Y2Nlc3MsIChzdGF0ZSkgPT5cbiAgICAgICAgYWxsTXV0YXRvcnMuY2xlYXJFbnRpdGllc0NoYW5nZXMoc3RhdGUpXG4gICAgICApXG4gICAgKSxcbiAgICAuLi5pbnNlcnRJZjxTPihcbiAgICAgICEhYWxsQWN0aW9ucy5sb2FkRW50aXRpZXNQYWdlU3VjY2VzcyAmJiBwYWdpbmF0aW9uQ2FjaGVUeXBlID09PSAncGFydGlhbCcsXG4gICAgICAoKSA9PlxuICAgICAgICBvbihhbGxBY3Rpb25zLmxvYWRFbnRpdGllc1BhZ2VTdWNjZXNzLCAoc3RhdGUpID0+XG4gICAgICAgICAgYWxsTXV0YXRvcnMuY2xlYXJFbnRpdGllc0NoYW5nZXMoc3RhdGUpXG4gICAgICAgIClcbiAgICApXG4gICk7XG59XG4iXX0=
@@ -0,0 +1,54 @@
1
+ import { createSelector } from '@ngrx/store';
2
+ import { ChangeType, } from './crud-entities.model';
3
+ export function createCrudTraitSelectors(previousSelectors) {
4
+ function selectChanges(state) {
5
+ return state.changes;
6
+ }
7
+ function selectFilteredChanges(state) {
8
+ const cache = {};
9
+ return state.changes.reduce((acc, value) => {
10
+ const changes = cache[value.id];
11
+ if (!changes) {
12
+ cache[value.id] = [value.changeType];
13
+ acc.push(value);
14
+ return acc;
15
+ }
16
+ if (value.changeType === ChangeType.UPDATED) {
17
+ return acc;
18
+ }
19
+ if (value.changeType === ChangeType.DELETED &&
20
+ changes.includes(ChangeType.CREATED)) {
21
+ delete cache[value.id];
22
+ return acc.filter((v) => v.id !== value.id);
23
+ }
24
+ if (value.changeType === ChangeType.DELETED) {
25
+ delete cache[value.id];
26
+ const newAcc = acc.filter((v) => v.id !== value.id);
27
+ newAcc.push(value);
28
+ return newAcc;
29
+ }
30
+ return acc;
31
+ }, []);
32
+ }
33
+ const { selectEntitiesMap } = previousSelectors;
34
+ const selectEntitiesChangesList = createSelector((state) => selectEntitiesMap(state), selectChanges, (entities, changed) => {
35
+ const map = changed.map((change) => ({
36
+ changeType: change.changeType,
37
+ entity: entities[change.id] ?? {
38
+ id: change.id,
39
+ },
40
+ }));
41
+ return map;
42
+ });
43
+ const selectFilteredEntitiesChangesList = createSelector(selectFilteredChanges, (state) => selectEntitiesMap(state), (changes, entities) => changes.map((c) => {
44
+ return {
45
+ entity: entities[c.id] ?? { id: c.id },
46
+ changeType: c.changeType,
47
+ };
48
+ }));
49
+ return {
50
+ selectEntitiesChangesList,
51
+ selectFilteredEntitiesChangesList,
52
+ };
53
+ }
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC1lbnRpdGllcy50cmFpdC5zZWxlY3RvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdHJhaXRzL2NvbW1vbi9zcmMvbGliL2NydWQtZW50aXRpZXMvY3J1ZC1lbnRpdGllcy50cmFpdC5zZWxlY3RvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBRUwsVUFBVSxHQUlYLE1BQU0sdUJBQXVCLENBQUM7QUFPL0IsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxpQkFBZ0Q7SUFFaEQsU0FBUyxhQUFhLENBQXNDLEtBQVE7UUFDbEUsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxTQUFTLHFCQUFxQixDQUM1QixLQUFRO1FBRVIsTUFBTSxLQUFLLEdBQW1DLEVBQUUsQ0FBQztRQUNqRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3pDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDWixLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNyQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNoQixPQUFPLEdBQUcsQ0FBQzthQUNaO1lBRUQsSUFBSSxLQUFLLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FBQyxPQUFPLEVBQUU7Z0JBQzNDLE9BQU8sR0FBRyxDQUFDO2FBQ1o7WUFFRCxJQUNFLEtBQUssQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLE9BQU87Z0JBQ3ZDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUNwQztnQkFDQSxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDN0M7WUFFRCxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLE9BQU8sRUFBRTtnQkFDM0MsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN2QixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDcEQsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkIsT0FBTyxNQUFNLENBQUM7YUFDZjtZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQXNCLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsTUFBTSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsaUJBQWlCLENBQUM7SUFFaEQsTUFBTSx5QkFBeUIsR0FBRyxjQUFjLENBQzlDLENBQUMsS0FBNEQsRUFBRSxFQUFFLENBQy9ELGlCQUFpQixDQUFDLEtBQUssQ0FBQyxFQUMxQixhQUFhLEVBQ2IsQ0FBQyxRQUE0QixFQUFFLE9BQXlCLEVBQUUsRUFBRTtRQUMxRCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUNyQixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ1QsQ0FBQztZQUNDLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtZQUM3QixNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSTtnQkFDN0IsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO2FBQ2Q7U0FDdUIsQ0FBQSxDQUM3QixDQUFDO1FBQ0YsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLENBQ0YsQ0FBQztJQUVGLE1BQU0saUNBQWlDLEdBQUcsY0FBYyxDQUN0RCxxQkFBcUIsRUFDckIsQ0FBQyxLQUE0RCxFQUFFLEVBQUUsQ0FDL0QsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQzFCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNoQixPQUFPO1lBQ0wsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN0QyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVU7U0FDRCxDQUFDO0lBQzVCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFFRixPQUFPO1FBQ0wseUJBQXlCO1FBQ3pCLGlDQUFpQztLQUNsQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlLFxuICBDaGFuZ2VUeXBlLFxuICBDcnVkRW50aXRpZXNTZWxlY3RvcnMsXG4gIENydWRFbnRpdGllc1N0YXRlLFxuICBFbnRpdHlDaGFuZ2UsXG59IGZyb20gJy4vY3J1ZC1lbnRpdGllcy5tb2RlbCc7XG5pbXBvcnQge1xuICBMb2FkRW50aXRpZXNTZWxlY3RvcnMsXG4gIExvYWRFbnRpdGllc1N0YXRlLFxufSBmcm9tICcuLi9sb2FkLWVudGl0aWVzL2xvYWQtZW50aXRpZXMubW9kZWwnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ0BuZ3J4L2VudGl0eSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDcnVkVHJhaXRTZWxlY3RvcnM8RW50aXR5PihcbiAgcHJldmlvdXNTZWxlY3RvcnM6IExvYWRFbnRpdGllc1NlbGVjdG9yczxFbnRpdHk+XG4pOiBDcnVkRW50aXRpZXNTZWxlY3RvcnM8RW50aXR5PiB7XG4gIGZ1bmN0aW9uIHNlbGVjdENoYW5nZXM8UyBleHRlbmRzIENydWRFbnRpdGllc1N0YXRlPEVudGl0eT4+KHN0YXRlOiBTKSB7XG4gICAgcmV0dXJuIHN0YXRlLmNoYW5nZXM7XG4gIH1cblxuICBmdW5jdGlvbiBzZWxlY3RGaWx0ZXJlZENoYW5nZXM8UyBleHRlbmRzIENydWRFbnRpdGllc1N0YXRlPEVudGl0eT4+KFxuICAgIHN0YXRlOiBTXG4gICkge1xuICAgIGNvbnN0IGNhY2hlOiB7IFtpZDogc3RyaW5nXTogQ2hhbmdlVHlwZVtdIH0gPSB7fTtcbiAgICByZXR1cm4gc3RhdGUuY2hhbmdlcy5yZWR1Y2UoKGFjYywgdmFsdWUpID0+IHtcbiAgICAgIGNvbnN0IGNoYW5nZXMgPSBjYWNoZVt2YWx1ZS5pZF07XG4gICAgICBpZiAoIWNoYW5nZXMpIHtcbiAgICAgICAgY2FjaGVbdmFsdWUuaWRdID0gW3ZhbHVlLmNoYW5nZVR5cGVdO1xuICAgICAgICBhY2MucHVzaCh2YWx1ZSk7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWx1ZS5jaGFuZ2VUeXBlID09PSBDaGFuZ2VUeXBlLlVQREFURUQpIHtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICB2YWx1ZS5jaGFuZ2VUeXBlID09PSBDaGFuZ2VUeXBlLkRFTEVURUQgJiZcbiAgICAgICAgY2hhbmdlcy5pbmNsdWRlcyhDaGFuZ2VUeXBlLkNSRUFURUQpXG4gICAgICApIHtcbiAgICAgICAgZGVsZXRlIGNhY2hlW3ZhbHVlLmlkXTtcbiAgICAgICAgcmV0dXJuIGFjYy5maWx0ZXIoKHYpID0+IHYuaWQgIT09IHZhbHVlLmlkKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbHVlLmNoYW5nZVR5cGUgPT09IENoYW5nZVR5cGUuREVMRVRFRCkge1xuICAgICAgICBkZWxldGUgY2FjaGVbdmFsdWUuaWRdO1xuICAgICAgICBjb25zdCBuZXdBY2MgPSBhY2MuZmlsdGVyKCh2KSA9PiB2LmlkICE9PSB2YWx1ZS5pZCk7XG4gICAgICAgIG5ld0FjYy5wdXNoKHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG5ld0FjYztcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10gYXMgQ2hhbmdlPEVudGl0eT5bXSk7XG4gIH1cblxuICBjb25zdCB7IHNlbGVjdEVudGl0aWVzTWFwIH0gPSBwcmV2aW91c1NlbGVjdG9ycztcblxuICBjb25zdCBzZWxlY3RFbnRpdGllc0NoYW5nZXNMaXN0ID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBMb2FkRW50aXRpZXNTdGF0ZTxFbnRpdHk+ICYgQ3J1ZEVudGl0aWVzU3RhdGU8RW50aXR5PikgPT5cbiAgICAgIHNlbGVjdEVudGl0aWVzTWFwKHN0YXRlKSxcbiAgICBzZWxlY3RDaGFuZ2VzLFxuICAgIChlbnRpdGllczogRGljdGlvbmFyeTxFbnRpdHk+LCBjaGFuZ2VkOiBDaGFuZ2U8RW50aXR5PltdKSA9PiB7XG4gICAgICBjb25zdCBtYXAgPSBjaGFuZ2VkLm1hcChcbiAgICAgICAgKGNoYW5nZSkgPT5cbiAgICAgICAgICAoe1xuICAgICAgICAgICAgY2hhbmdlVHlwZTogY2hhbmdlLmNoYW5nZVR5cGUsXG4gICAgICAgICAgICBlbnRpdHk6IGVudGl0aWVzW2NoYW5nZS5pZF0gPz8ge1xuICAgICAgICAgICAgICBpZDogY2hhbmdlLmlkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9IGFzIEVudGl0eUNoYW5nZTxFbnRpdHk+KVxuICAgICAgKTtcbiAgICAgIHJldHVybiBtYXA7XG4gICAgfVxuICApO1xuXG4gIGNvbnN0IHNlbGVjdEZpbHRlcmVkRW50aXRpZXNDaGFuZ2VzTGlzdCA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgIHNlbGVjdEZpbHRlcmVkQ2hhbmdlcyxcbiAgICAoc3RhdGU6IExvYWRFbnRpdGllc1N0YXRlPEVudGl0eT4gJiBDcnVkRW50aXRpZXNTdGF0ZTxFbnRpdHk+KSA9PlxuICAgICAgc2VsZWN0RW50aXRpZXNNYXAoc3RhdGUpLFxuICAgIChjaGFuZ2VzLCBlbnRpdGllcykgPT5cbiAgICAgIGNoYW5nZXMubWFwKChjKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZW50aXR5OiBlbnRpdGllc1tjLmlkXSA/PyB7IGlkOiBjLmlkIH0sXG4gICAgICAgICAgY2hhbmdlVHlwZTogYy5jaGFuZ2VUeXBlLFxuICAgICAgICB9IGFzIEVudGl0eUNoYW5nZTxFbnRpdHk+O1xuICAgICAgfSlcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIHNlbGVjdEVudGl0aWVzQ2hhbmdlc0xpc3QsXG4gICAgc2VsZWN0RmlsdGVyZWRFbnRpdGllc0NoYW5nZXNMaXN0LFxuICB9O1xufVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './crud-entities.model';
2
+ export * from './crud-entities.trait';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdHJhaXRzL2NvbW1vbi9zcmMvbGliL2NydWQtZW50aXRpZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jcnVkLWVudGl0aWVzLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vY3J1ZC1lbnRpdGllcy50cmFpdCc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRpZXMtcGFnaW5hdGlvbi5tb2RlbC5pbnRlcm5hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10cmFpdHMvY29tbW9uL3NyYy9saWIvZW50aXRpZXMtcGFnaW5hdGlvbi9lbnRpdGllcy1wYWdpbmF0aW9uLm1vZGVsLmludGVybmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb25DcmVhdG9yLCBUeXBlZEFjdGlvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlL3NyYy9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgRW50aXRpZXNQYWdpbmF0aW9uQWN0aW9ucyxcbiAgRW50aXRpZXNQYWdpbmF0aW9uU2VsZWN0b3JzLFxuICBFbnRpdGllc1BhZ2luYXRpb25TdGF0ZSxcbn0gZnJvbSAnLi9lbnRpdGllcy1wYWdpbmF0aW9uLm1vZGVsJztcbmltcG9ydCB7IExvYWRFbnRpdGllc1N0YXRlIH0gZnJvbSAnLi4vbG9hZC1lbnRpdGllcy9sb2FkLWVudGl0aWVzLm1vZGVsJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IHR5cGUgxp9QYWdpbmF0aW9uQWN0aW9ucyA9IEVudGl0aWVzUGFnaW5hdGlvbkFjdGlvbnMgJiB7XG4gIHNldEVudGl0aWVzUmVxdWVzdFBhZ2U6IEFjdGlvbkNyZWF0b3I8XG4gICAgc3RyaW5nLFxuICAgIChwcm9wczogeyBpbmRleDogbnVtYmVyIH0pID0+IHsgaW5kZXg6IG51bWJlciB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPlxuICA+O1xufTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IHR5cGUgxp9FbnRpdGllc1BhZ2luYXRpb25TZWxlY3RvcnM8RW50aXR5PiA9XG4gIEVudGl0aWVzUGFnaW5hdGlvblNlbGVjdG9yczxFbnRpdHk+ICYge1xuICAgIGlzRW50aXRpZXNDdXJyZW50UGFnZUluQ2FjaGU6IChcbiAgICAgIHN0YXRlOiBMb2FkRW50aXRpZXNTdGF0ZTxFbnRpdHk+ICYgRW50aXRpZXNQYWdpbmF0aW9uU3RhdGVcbiAgICApID0+IGJvb2xlYW47XG4gICAgaXNFbnRpdGllc05leHRQYWdlSW5DYWNoZTogKFxuICAgICAgc3RhdGU6IExvYWRFbnRpdGllc1N0YXRlPEVudGl0eT4gJiBFbnRpdGllc1BhZ2luYXRpb25TdGF0ZVxuICAgICkgPT4gYm9vbGVhbjtcbiAgfTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export const entitiesPaginationTraitKey = 'pagination';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRpZXMtcGFnaW5hdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10cmFpdHMvY29tbW9uL3NyYy9saWIvZW50aXRpZXMtcGFnaW5hdGlvbi9lbnRpdGllcy1wYWdpbmF0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdHQSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlICovXG5pbXBvcnQgeyBMb2FkRW50aXRpZXNTdGF0ZSB9IGZyb20gJy4uL2xvYWQtZW50aXRpZXMnO1xuXG5pbXBvcnQgeyBBY3Rpb25DcmVhdG9yLCBUeXBlZEFjdGlvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlL3NyYy9tb2RlbHMnO1xuXG5leHBvcnQgdHlwZSBDYWNoZVR5cGUgPSAnZnVsbCcgfCAncGFydGlhbCcgfCAnZ3Jvdyc7XG5leHBvcnQgaW50ZXJmYWNlIEVudGl0aWVzUGFnaW5hdGlvblN0YXRlIHtcbiAgcGFnaW5hdGlvbjoge1xuICAgIGN1cnJlbnRQYWdlOiBudW1iZXI7XG4gICAgcmVxdWVzdFBhZ2U6IG51bWJlcjtcbiAgICBwYWdlU2l6ZTogbnVtYmVyO1xuICAgIHRvdGFsPzogbnVtYmVyO1xuICAgIHBhZ2VzVG9DYWNoZTogbnVtYmVyO1xuICAgIGNhY2hlOiB7XG4gICAgICB0eXBlOiBDYWNoZVR5cGU7XG4gICAgICBzdGFydDogbnVtYmVyO1xuICAgICAgZW5kOiBudW1iZXI7XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgRW50aXRpZXNQYWdpbmF0aW9uQWN0aW9ucyA9IHtcbiAgbG9hZEVudGl0aWVzUGFnZTogQWN0aW9uQ3JlYXRvcjxcbiAgICBzdHJpbmcsXG4gICAgKHByb3BzOiB7XG4gICAgICBpbmRleDogbnVtYmVyO1xuICAgICAgZm9yY2VMb2FkPzogYm9vbGVhbjtcbiAgICB9KSA9PiB7IGluZGV4OiBudW1iZXI7IGZvcmNlTG9hZD86IGJvb2xlYW4gfSAmIFR5cGVkQWN0aW9uPHN0cmluZz5cbiAgPjtcbiAgbG9hZEVudGl0aWVzUGFnZVN1Y2Nlc3M6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAoKSA9PiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgbG9hZEVudGl0aWVzUGFnZUZhaWw6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAoKSA9PiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgbG9hZEVudGl0aWVzTmV4dFBhZ2U6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAoKSA9PiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgbG9hZEVudGl0aWVzUHJldmlvdXNQYWdlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKCkgPT4gVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIGxvYWRFbnRpdGllc0ZpcnN0UGFnZTogQWN0aW9uQ3JlYXRvcjxcbiAgICBzdHJpbmcsXG4gICAgKGZvcmNlTG9hZD86IGJvb2xlYW4pID0+IHsgZm9yY2VMb2FkPzogYm9vbGVhbiB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPlxuICA+O1xuICBsb2FkRW50aXRpZXNMYXN0UGFnZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsICgpID0+IFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBjbGVhckVudGl0aWVzUGFnZXNDYWNoZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsICgpID0+IFR5cGVkQWN0aW9uPHN0cmluZz4+O1xufTtcblxuZXhwb3J0IHR5cGUgRW50aXRpZXNQYWdpbmF0aW9uU2VsZWN0b3JzPFQ+ID0ge1xuICBzZWxlY3RFbnRpdGllc0N1cnJlbnRQYWdlTGlzdDogKFxuICAgIHN0YXRlOiBMb2FkRW50aXRpZXNTdGF0ZTxUPiAmIEVudGl0aWVzUGFnaW5hdGlvblN0YXRlXG4gICkgPT4gVFtdO1xuICBzZWxlY3RFbnRpdGllc0N1cnJlbnRQYWdlOiAoXG4gICAgc3RhdGU6IExvYWRFbnRpdGllc1N0YXRlPFQ+ICYgRW50aXRpZXNQYWdpbmF0aW9uU3RhdGVcbiAgKSA9PiBQYWdlTW9kZWw8VD47XG4gIHNlbGVjdEVudGl0aWVzUGFnZWRSZXF1ZXN0OiAoXG4gICAgc3RhdGU6IExvYWRFbnRpdGllc1N0YXRlPFQ+ICYgRW50aXRpZXNQYWdpbmF0aW9uU3RhdGVcbiAgKSA9PiBQYWdlZFJlcXVlc3Q7XG4gIHNlbGVjdEVudGl0aWVzQ3VycmVudFBhZ2VJbmZvOiAoXG4gICAgc3RhdGU6IExvYWRFbnRpdGllc1N0YXRlPFQ+ICYgRW50aXRpZXNQYWdpbmF0aW9uU3RhdGVcbiAgKSA9PiBQYWdlSW5mb01vZGVsO1xuICBpc0xvYWRpbmdFbnRpdGllc0N1cnJlbnRQYWdlOiAoXG4gICAgc3RhdGU6IExvYWRFbnRpdGllc1N0YXRlPFQ+ICYgRW50aXRpZXNQYWdpbmF0aW9uU3RhdGVcbiAgKSA9PiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgRW50aXRpZXNQYWdpbmF0aW9uTXV0YXRvcnM8VD4gPSB7XG4gIG1lcmdlUGFnaW5hdGVkRW50aXRpZXM8XG4gICAgUyBleHRlbmRzIExvYWRFbnRpdGllc1N0YXRlPFQ+ICYgRW50aXRpZXNQYWdpbmF0aW9uU3RhdGVcbiAgPihcbiAgICBlbnRpdGllczogVFtdLFxuICAgIHRvdGFsOiBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgc3RhdGU6IFNcbiAgKTogUztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZU1vZGVsPFQ+IHtcbiAgZW50aXRpZXM6IFRbXTtcbiAgcGFnZUluZGV4OiBudW1iZXI7XG4gIHRvdGFsOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHBhZ2VTaXplOiBudW1iZXI7XG4gIHBhZ2VzQ291bnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgaGFzUHJldmlvdXM6IGJvb2xlYW47XG4gIGhhc05leHQ6IGJvb2xlYW47XG4gIGNhY2hlVHlwZTogQ2FjaGVUeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VJbmZvTW9kZWwge1xuICBwYWdlSW5kZXg6IG51bWJlcjtcbiAgdG90YWw6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcGFnZVNpemU6IG51bWJlcjtcbiAgcGFnZXNDb3VudDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBoYXNQcmV2aW91czogYm9vbGVhbjtcbiAgaGFzTmV4dDogYm9vbGVhbjtcbiAgY2FjaGVUeXBlOiBDYWNoZVR5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZWRSZXF1ZXN0IHtcbiAgc3RhcnRJbmRleDogbnVtYmVyO1xuICBzaXplOiBudW1iZXI7XG4gIHBhZ2U6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IGVudGl0aWVzUGFnaW5hdGlvblRyYWl0S2V5ID0gJ3BhZ2luYXRpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0aWVzUGFnaW5hdGlvbkNvbmZpZyB7XG4gIGNhY2hlVHlwZT86IENhY2hlVHlwZTtcbiAgcGFnZVNpemU/OiBudW1iZXI7XG4gIGN1cnJlbnRQYWdlPzogbnVtYmVyO1xuICBwYWdlc1RvQ2FjaGU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXRpZXNQYWdpbmF0aW9uS2V5ZWRDb25maWcge1xuICBwYWdpbmF0aW9uPzogRW50aXRpZXNQYWdpbmF0aW9uQ29uZmlnO1xufVxuIl19