ngrx-entity-crud 12.0.6-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/README.md +259 -0
  2. package/bundles/ngrx-entity-crud.umd.js +1829 -0
  3. package/bundles/ngrx-entity-crud.umd.js.map +1 -0
  4. package/esm2015/lib/actions.js +88 -0
  5. package/esm2015/lib/base-crud-gql.service.js +71 -0
  6. package/esm2015/lib/base-crud.service.js +136 -0
  7. package/esm2015/lib/create_adapter.js +14 -0
  8. package/esm2015/lib/effect.js +467 -0
  9. package/esm2015/lib/entity_state.js +23 -0
  10. package/esm2015/lib/ibase-crud-service.js +2 -0
  11. package/esm2015/lib/j-ngrx-filter.js +133 -0
  12. package/esm2015/lib/models.js +17 -0
  13. package/esm2015/lib/reducer.js +353 -0
  14. package/esm2015/lib/state_selectors.js +56 -0
  15. package/esm2015/lib/utils.js +19 -0
  16. package/esm2015/ngrx-entity-crud.js +5 -0
  17. package/esm2015/public-api.js +7 -0
  18. package/fesm2015/ngrx-entity-crud.js +1367 -0
  19. package/fesm2015/ngrx-entity-crud.js.map +1 -0
  20. package/lib/actions.d.ts +5 -0
  21. package/lib/actions.d.ts.map +1 -0
  22. package/lib/base-crud-gql.service.d.ts +19 -0
  23. package/lib/base-crud-gql.service.d.ts.map +1 -0
  24. package/lib/base-crud.service.d.ts +34 -0
  25. package/lib/base-crud.service.d.ts.map +1 -0
  26. package/lib/create_adapter.d.ts +6 -0
  27. package/lib/create_adapter.d.ts.map +1 -0
  28. package/lib/effect.d.ts +132 -0
  29. package/lib/effect.d.ts.map +1 -0
  30. package/lib/entity_state.d.ts +9 -0
  31. package/lib/entity_state.d.ts.map +1 -0
  32. package/lib/ibase-crud-service.d.ts +13 -0
  33. package/lib/ibase-crud-service.d.ts.map +1 -0
  34. package/lib/j-ngrx-filter.d.ts +14 -0
  35. package/lib/j-ngrx-filter.d.ts.map +1 -0
  36. package/lib/models.d.ts +494 -0
  37. package/lib/models.d.ts.map +1 -0
  38. package/lib/reducer.d.ts +11 -0
  39. package/lib/reducer.d.ts.map +1 -0
  40. package/lib/state_selectors.d.ts +5 -0
  41. package/lib/state_selectors.d.ts.map +1 -0
  42. package/lib/utils.d.ts +8 -0
  43. package/lib/utils.d.ts.map +1 -0
  44. package/ngrx-entity-crud.d.ts +5 -0
  45. package/ngrx-entity-crud.d.ts.map +1 -0
  46. package/ngrx-entity-crud.metadata.json +1 -0
  47. package/package.json +41 -0
  48. package/public-api.d.ts +7 -0
  49. package/public-api.d.ts.map +1 -0
  50. package/schematics/auth/files/model/auth.ts +17 -0
  51. package/schematics/auth/files/store/auth-store/actions.ts +30 -0
  52. package/schematics/auth/files/store/auth-store/auth-mock.service.ts +95 -0
  53. package/schematics/auth/files/store/auth-store/auth-store.module.ts +34 -0
  54. package/schematics/auth/files/store/auth-store/auth.guard.ts +44 -0
  55. package/schematics/auth/files/store/auth-store/auth.service.ts +28 -0
  56. package/schematics/auth/files/store/auth-store/conf.ts +2 -0
  57. package/schematics/auth/files/store/auth-store/effects.ts +53 -0
  58. package/schematics/auth/files/store/auth-store/index.d.ts +13 -0
  59. package/schematics/auth/files/store/auth-store/index.ts +13 -0
  60. package/schematics/auth/files/store/auth-store/names.ts +3 -0
  61. package/schematics/auth/files/store/auth-store/reducer.ts +16 -0
  62. package/schematics/auth/files/store/auth-store/selectors.ts +51 -0
  63. package/schematics/auth/files/store/auth-store/state.ts +16 -0
  64. package/schematics/auth/files/views/login/components/logout-button/logout-button.component.ts +49 -0
  65. package/schematics/auth/files/views/login/login-main/login-main.component.html +25 -0
  66. package/schematics/auth/files/views/login/login-main/login-main.component.ts +57 -0
  67. package/schematics/auth/files/views/login/login-routing.module.ts +30 -0
  68. package/schematics/auth/files/views/login/login.module.ts +30 -0
  69. package/schematics/auth/index.d.ts +2 -0
  70. package/schematics/auth/index.js +77 -0
  71. package/schematics/auth/index.js.map +1 -0
  72. package/schematics/auth/schema.json +21 -0
  73. package/schematics/auth0/files/store/auth-store/actions.ts +21 -0
  74. package/schematics/auth0/files/store/auth-store/auth-store.module.ts +32 -0
  75. package/schematics/auth0/files/store/auth-store/auth.guard.ts +44 -0
  76. package/schematics/auth0/files/store/auth-store/authentication.service.ts +32 -0
  77. package/schematics/auth0/files/store/auth-store/conf.ts +2 -0
  78. package/schematics/auth0/files/store/auth-store/effects.ts +59 -0
  79. package/schematics/auth0/files/store/auth-store/index.d.ts +13 -0
  80. package/schematics/auth0/files/store/auth-store/index.ts +13 -0
  81. package/schematics/auth0/files/store/auth-store/login.component.ts +75 -0
  82. package/schematics/auth0/files/store/auth-store/names.ts +3 -0
  83. package/schematics/auth0/files/store/auth-store/profile.ts +12 -0
  84. package/schematics/auth0/files/store/auth-store/reducer.ts +23 -0
  85. package/schematics/auth0/files/store/auth-store/selectors.ts +24 -0
  86. package/schematics/auth0/files/store/auth-store/state.ts +11 -0
  87. package/schematics/auth0/index.d.ts +2 -0
  88. package/schematics/auth0/index.js +67 -0
  89. package/schematics/auth0/index.js.map +1 -0
  90. package/schematics/auth0/schema.json +21 -0
  91. package/schematics/collection.json +30 -0
  92. package/schematics/my-utility.d.ts +58 -0
  93. package/schematics/my-utility.js +257 -0
  94. package/schematics/my-utility.js.map +1 -0
  95. package/schematics/ng-add/files/root-store/index.d.ts +8 -0
  96. package/schematics/ng-add/files/root-store/index.ts +8 -0
  97. package/schematics/ng-add/files/root-store/root-reducer.ts +11 -0
  98. package/schematics/ng-add/files/root-store/root-store.module.ts +29 -0
  99. package/schematics/ng-add/files/root-store/router-store/actions.ts +27 -0
  100. package/schematics/ng-add/files/root-store/router-store/effects.ts +65 -0
  101. package/schematics/ng-add/files/root-store/router-store/index.d.ts +11 -0
  102. package/schematics/ng-add/files/root-store/router-store/index.ts +11 -0
  103. package/schematics/ng-add/files/root-store/router-store/pop-up-base.component.ts +83 -0
  104. package/schematics/ng-add/files/root-store/router-store/pop-up-base.module.ts +24 -0
  105. package/schematics/ng-add/files/root-store/router-store/reducer.ts +31 -0
  106. package/schematics/ng-add/files/root-store/router-store/router-store.module.ts +30 -0
  107. package/schematics/ng-add/files/root-store/router-store/selectors.ts +63 -0
  108. package/schematics/ng-add/files/root-store/router-store/state.ts +18 -0
  109. package/schematics/ng-add/files/root-store/selectors.ts +20 -0
  110. package/schematics/ng-add/files/root-store/slide-menu-store/actions.ts +11 -0
  111. package/schematics/ng-add/files/root-store/slide-menu-store/effects.ts +10 -0
  112. package/schematics/ng-add/files/root-store/slide-menu-store/index.d.ts +13 -0
  113. package/schematics/ng-add/files/root-store/slide-menu-store/index.ts +13 -0
  114. package/schematics/ng-add/files/root-store/slide-menu-store/names.ts +3 -0
  115. package/schematics/ng-add/files/root-store/slide-menu-store/operators.ts +24 -0
  116. package/schematics/ng-add/files/root-store/slide-menu-store/reducer.ts +8 -0
  117. package/schematics/ng-add/files/root-store/slide-menu-store/selectors.ts +41 -0
  118. package/schematics/ng-add/files/root-store/slide-menu-store/slide-menu-store.module.ts +27 -0
  119. package/schematics/ng-add/files/root-store/slide-menu-store/state.ts +14 -0
  120. package/schematics/ng-add/files/root-store/state.ts +5 -0
  121. package/schematics/ng-add/index.d.ts +2 -0
  122. package/schematics/ng-add/index.js +78 -0
  123. package/schematics/ng-add/index.js.map +1 -0
  124. package/schematics/ng-add/schema.json +22 -0
  125. package/schematics/section/files/ionic/__clazz@dasherize__/__clazz@dasherize__-edit/__clazz@dasherize__-edit.component.html +52 -0
  126. package/schematics/section/files/ionic/__clazz@dasherize__/__clazz@dasherize__-edit/__clazz@dasherize__-edit.component.ts +57 -0
  127. package/schematics/section/files/ionic/__clazz@dasherize__/__clazz@dasherize__-list/__clazz@dasherize__-list.component.html +7 -0
  128. package/schematics/section/files/ionic/__clazz@dasherize__/__clazz@dasherize__-list/__clazz@dasherize__-list.component.ts +50 -0
  129. package/schematics/section/files/ionic/__clazz@dasherize__/__clazz@dasherize__-main/__clazz@dasherize__-main.component.html +15 -0
  130. package/schematics/section/files/ionic/__clazz@dasherize__/__clazz@dasherize__-main/__clazz@dasherize__-main.component.ts +23 -0
  131. package/schematics/section/files/ionic/__clazz@dasherize__/__clazz@dasherize__-routing.module.ts +36 -0
  132. package/schematics/section/files/ionic/__clazz@dasherize__/__clazz@dasherize__.module.ts +33 -0
  133. package/schematics/section/files/no-libs/__clazz@dasherize__/__clazz@dasherize__-edit/__clazz@dasherize__-edit.component.html +1 -0
  134. package/schematics/section/files/no-libs/__clazz@dasherize__/__clazz@dasherize__-edit/__clazz@dasherize__-edit.component.ts +16 -0
  135. package/schematics/section/files/no-libs/__clazz@dasherize__/__clazz@dasherize__-list/__clazz@dasherize__-list.component.html +1 -0
  136. package/schematics/section/files/no-libs/__clazz@dasherize__/__clazz@dasherize__-list/__clazz@dasherize__-list.component.ts +27 -0
  137. package/schematics/section/files/no-libs/__clazz@dasherize__/__clazz@dasherize__-main/__clazz@dasherize__-main.component.html +1 -0
  138. package/schematics/section/files/no-libs/__clazz@dasherize__/__clazz@dasherize__-main/__clazz@dasherize__-main.component.ts +18 -0
  139. package/schematics/section/files/no-libs/__clazz@dasherize__/__clazz@dasherize__-routing.module.ts +36 -0
  140. package/schematics/section/files/no-libs/__clazz@dasherize__/__clazz@dasherize__.module.ts +26 -0
  141. package/schematics/section/files/primeng/__clazz@dasherize__/__clazz@dasherize__-edit/__clazz@dasherize__-edit.component.html +38 -0
  142. package/schematics/section/files/primeng/__clazz@dasherize__/__clazz@dasherize__-edit/__clazz@dasherize__-edit.component.ts +50 -0
  143. package/schematics/section/files/primeng/__clazz@dasherize__/__clazz@dasherize__-list/__clazz@dasherize__-list.component.html +30 -0
  144. package/schematics/section/files/primeng/__clazz@dasherize__/__clazz@dasherize__-list/__clazz@dasherize__-list.component.ts +101 -0
  145. package/schematics/section/files/primeng/__clazz@dasherize__/__clazz@dasherize__-main/__clazz@dasherize__-main.component.html +12 -0
  146. package/schematics/section/files/primeng/__clazz@dasherize__/__clazz@dasherize__-main/__clazz@dasherize__-main.component.ts +21 -0
  147. package/schematics/section/files/primeng/__clazz@dasherize__/__clazz@dasherize__-routing.module.ts +37 -0
  148. package/schematics/section/files/primeng/__clazz@dasherize__/__clazz@dasherize__.module.ts +49 -0
  149. package/schematics/section/files/primeng/__clazz@dasherize__/components/button-create-many-test-__clazz@dasherize__.component.ts +46 -0
  150. package/schematics/section/files/primeng/__clazz@dasherize__/components/button-delete-__clazz@dasherize__.component.ts +35 -0
  151. package/schematics/section/files/primeng/__clazz@dasherize__/components/button-edit-many-test-__clazz@dasherize__.component.ts +45 -0
  152. package/schematics/section/files/primeng/__clazz@dasherize__/components/button-new-__clazz@dasherize__.component.ts +45 -0
  153. package/schematics/section/index.d.ts +2 -0
  154. package/schematics/section/index.js +56 -0
  155. package/schematics/section/index.js.map +1 -0
  156. package/schematics/section/schema.json +39 -0
  157. package/schematics/store/files/base-model/__clazz@dasherize__.ts +8 -0
  158. package/schematics/store/files/base-store/__clazz@dasherize__-store/__clazz@dasherize__-store.module.ts +26 -0
  159. package/schematics/store/files/base-store/__clazz@dasherize__-store/__clazz@dasherize__.actions.ts +9 -0
  160. package/schematics/store/files/base-store/__clazz@dasherize__-store/__clazz@dasherize__.effects.ts +11 -0
  161. package/schematics/store/files/base-store/__clazz@dasherize__-store/__clazz@dasherize__.names.ts +3 -0
  162. package/schematics/store/files/base-store/__clazz@dasherize__-store/__clazz@dasherize__.reducer.ts +8 -0
  163. package/schematics/store/files/base-store/__clazz@dasherize__-store/__clazz@dasherize__.selectors.ts +18 -0
  164. package/schematics/store/files/base-store/__clazz@dasherize__-store/__clazz@dasherize__.state.ts +6 -0
  165. package/schematics/store/files/base-store/__clazz@dasherize__-store/index.d.ts +13 -0
  166. package/schematics/store/files/base-store/__clazz@dasherize__-store/index.ts +13 -0
  167. package/schematics/store/files/crud-graphql/__clazz@dasherize__-store/__clazz@dasherize__.criteria.ts +39 -0
  168. package/schematics/store/files/crud-graphql/__clazz@dasherize__-store/__clazz@dasherize__.graphql +34 -0
  169. package/schematics/store/files/crud-model/__clazz@dasherize__.ts +8 -0
  170. package/schematics/store/files/crud-service/__clazz@dasherize__.service.ts +11 -0
  171. package/schematics/store/files/crud-service-graphql/__clazz@dasherize__.service.ts +16 -0
  172. package/schematics/store/files/crud-store/__clazz@dasherize__-store/__clazz@dasherize__-store.module.ts +26 -0
  173. package/schematics/store/files/crud-store/__clazz@dasherize__-store/__clazz@dasherize__.actions.ts +55 -0
  174. package/schematics/store/files/crud-store/__clazz@dasherize__-store/__clazz@dasherize__.effects.ts +90 -0
  175. package/schematics/store/files/crud-store/__clazz@dasherize__-store/__clazz@dasherize__.names.ts +3 -0
  176. package/schematics/store/files/crud-store/__clazz@dasherize__-store/__clazz@dasherize__.reducer.ts +103 -0
  177. package/schematics/store/files/crud-store/__clazz@dasherize__-store/__clazz@dasherize__.selectors.ts +26 -0
  178. package/schematics/store/files/crud-store/__clazz@dasherize__-store/__clazz@dasherize__.state.ts +11 -0
  179. package/schematics/store/files/crud-store/__clazz@dasherize__-store/index.d.ts +15 -0
  180. package/schematics/store/files/crud-store/__clazz@dasherize__-store/index.ts +15 -0
  181. package/schematics/store/index.d.ts +2 -0
  182. package/schematics/store/index.js +100 -0
  183. package/schematics/store/index.js.map +1 -0
  184. package/schematics/store/schema.json +45 -0
@@ -0,0 +1,353 @@
1
+ import { createReducer, on } from '@ngrx/store';
2
+ import { selectIdValue, toDictionary } from './utils';
3
+ export function evalData(fn, def = null) {
4
+ try {
5
+ return fn();
6
+ }
7
+ catch (e) {
8
+ return def;
9
+ }
10
+ }
11
+ export function createCrudOns(adapter, initialState, actions) {
12
+ const searchRequestOn = on(actions.SearchRequest, (state, criteria) => {
13
+ if (!criteria.path && !criteria.mode && !criteria.queryParams) {
14
+ throw new Error('It is not possible a search without payload, use :\'{criteria:{}}\'');
15
+ }
16
+ const { itemSelected, idSelected, entitiesSelected, idsSelected } = initialState;
17
+ if (criteria.mode === 'REFRESH' || criteria.mode === 'upsertMany') {
18
+ return Object.assign({}, state, {
19
+ isLoading: true,
20
+ error: initialState.error,
21
+ lastCriteria: criteria,
22
+ itemSelected,
23
+ idSelected,
24
+ entitiesSelected,
25
+ idsSelected
26
+ });
27
+ }
28
+ return adapter.removeAll(Object.assign({}, state, {
29
+ isLoading: true,
30
+ error: initialState.error,
31
+ lastCriteria: criteria,
32
+ itemSelected,
33
+ idSelected,
34
+ entitiesSelected,
35
+ idsSelected
36
+ }));
37
+ });
38
+ const deleteRequestOn = on(actions.DeleteRequest, (state, request) => {
39
+ return Object.assign({}, state, { isLoading: true, error: initialState.error });
40
+ });
41
+ const deleteManyRequestOn = on(actions.DeleteManyRequest, (state, request) => {
42
+ return Object.assign({}, state, { isLoading: true, error: initialState.error });
43
+ });
44
+ const editRequestOn = on(actions.EditRequest, (state, request) => {
45
+ return Object.assign({}, state, { isLoading: true, error: initialState.error });
46
+ });
47
+ const editManyRequestOn = on(actions.EditManyRequest, (state, request) => {
48
+ return Object.assign({}, state, { isLoading: true, error: initialState.error });
49
+ });
50
+ const createRequestOn = on(actions.CreateRequest, (state, request) => {
51
+ return Object.assign({}, state, { isLoading: true, error: initialState.error });
52
+ });
53
+ const createManyRequestOn = on(actions.CreateManyRequest, (state, request) => {
54
+ return Object.assign({}, state, { isLoading: true, error: initialState.error });
55
+ });
56
+ const selectRequestOn = on(actions.SelectRequest, (state, request) => {
57
+ return Object.assign({}, state, { isLoading: true, error: initialState.error });
58
+ });
59
+ const searchSuccessOn = on(actions.SearchSuccess, (state, { type, items, request }) => {
60
+ const mode = evalData(() => request.mode, null) || 'setAll';
61
+ let method;
62
+ switch (mode) {
63
+ case 'REFRESH': {
64
+ // console.log('REFRESH');
65
+ method = adapter.setAll;
66
+ break;
67
+ }
68
+ case 'upsertMany': {
69
+ // console.log('upsertMany');
70
+ method = adapter.upsertMany;
71
+ break;
72
+ }
73
+ case 'setAll': {
74
+ // console.log('setAll');
75
+ method = adapter.setAll;
76
+ break;
77
+ }
78
+ default: {
79
+ // console.log('default');
80
+ method = adapter.setAll;
81
+ break;
82
+ }
83
+ }
84
+ return method(items, Object.assign({}, state, {
85
+ isLoaded: true,
86
+ isLoading: false,
87
+ error: null
88
+ }));
89
+ });
90
+ const deleteSuccessOn = on(actions.DeleteSuccess, (state, { type, id }) => {
91
+ // tolgo dallo store.idsSelected l'elemento cancellato
92
+ const idsSelected = state.idsSelected.filter((idA) => idA === id);
93
+ const entitiesSelected = idsSelected.reduce((prev, curr) => {
94
+ prev[curr] = state.entitiesSelected[curr];
95
+ return prev;
96
+ }, {});
97
+ // se ho cancellato l'id seezionato, lo tolgo dallo store.
98
+ const idSelected = !!state.idSelected && state.idSelected === id ? null : state.idSelected;
99
+ const itemSelected = !idSelected ? null : state.itemSelected;
100
+ return adapter.removeOne(id, Object.assign({}, state, {
101
+ isLoaded: true,
102
+ isLoading: false,
103
+ error: null,
104
+ idSelected,
105
+ idsSelected,
106
+ itemSelected,
107
+ entitiesSelected
108
+ }));
109
+ });
110
+ const deleteManySuccessOn = on(actions.DeleteManySuccess, (state, { type, ids }) => {
111
+ // tolgo dallo store.idsSelected gli elementi che sono stati cancellati.
112
+ const idsSelected = state.idsSelected.filter((id) => !(id in ids));
113
+ const entitiesSelected = idsSelected.reduce((prev, curr) => {
114
+ prev[curr] = state.entitiesSelected[curr];
115
+ return prev;
116
+ }, {});
117
+ // se ho cancellato l'id seezionato, lo tolgo dallo store.
118
+ const idSelected = !!state.idSelected && state.idSelected in ids ? null : state.idSelected;
119
+ const itemSelected = !idSelected ? null : state.itemSelected;
120
+ return adapter.removeMany(ids, Object.assign({}, state, {
121
+ isLoaded: true,
122
+ isLoading: false,
123
+ error: null,
124
+ idSelected,
125
+ idsSelected,
126
+ itemSelected,
127
+ entitiesSelected
128
+ }));
129
+ });
130
+ const deleteOn = on(actions.Delete, (state, { type, id }) => {
131
+ // tolgo dallo store.idsSelected l'elemento cancellato
132
+ const idsSelected = state.idsSelected.filter((idA) => idA === id);
133
+ // se ho cancellato l'id seezionato, lo tolgo dallo store.
134
+ const idSelected = !!state.idSelected && state.idSelected === id ? null : state.idSelected;
135
+ return adapter.removeOne(id, Object.assign({}, state, {
136
+ isLoaded: true,
137
+ isLoading: false,
138
+ error: null,
139
+ idSelected,
140
+ idsSelected
141
+ }));
142
+ });
143
+ const responseOn = on(actions.Response, (state, response) => {
144
+ const responses = [...state.responses, response];
145
+ return Object.assign(Object.assign({}, state), { responses });
146
+ });
147
+ const resetResponsesOn = on(actions.ResetResponses, (state) => {
148
+ const responses = [];
149
+ return Object.assign(Object.assign({}, state), { responses });
150
+ });
151
+ const createSuccessOn = on(actions.CreateSuccess, (state, { type, item }) => adapter.addOne(item, Object.assign({}, state, {
152
+ isLoaded: true,
153
+ isLoading: false,
154
+ error: null
155
+ })));
156
+ const createManySuccessOn = on(actions.CreateManySuccess, (state, { type, items }) => adapter.addMany(items, Object.assign({}, state, {
157
+ isLoaded: true,
158
+ isLoading: false,
159
+ error: null
160
+ })));
161
+ const createOn = on(actions.Create, (state, { type, item }) => adapter.addOne(item, Object.assign({}, state, {
162
+ isLoaded: true,
163
+ isLoading: false,
164
+ error: null
165
+ })));
166
+ const editSuccessOn = on(actions.EditSuccess, (state, { item, type }) => adapter.upsertOne(item, Object.assign({}, state, {
167
+ isLoaded: true,
168
+ isLoading: false,
169
+ error: null
170
+ })));
171
+ const editManySuccessOn = on(actions.EditManySuccess, (state, { items, type }) => adapter.upsertMany(items, Object.assign({}, state, {
172
+ isLoaded: true,
173
+ isLoading: false,
174
+ error: null
175
+ })));
176
+ const editOn = on(actions.Edit, (state, { item, type }) => adapter.upsertOne(item, Object.assign({}, state, {
177
+ isLoaded: true,
178
+ isLoading: false,
179
+ error: null
180
+ })));
181
+ const filtersOn = on(actions.Filters, (state, { type, filters }) => Object.assign({}, state, { filters }));
182
+ const removeAllSelectedOn = on(actions.RemoveAllSelected, (state, { type }) => {
183
+ const result = Object.assign(Object.assign({}, state), { idsSelected: [],
184
+ // itemsSelected: [], //todo: @deprecated da cancellare questo tipo di assegnazione.
185
+ entitiesSelected: {} });
186
+ return result;
187
+ });
188
+ const addManySelectedOn = on(actions.AddManySelected, (state, { type, items }) => {
189
+ const entitiesCurr = toDictionary(items, adapter);
190
+ const entitiesSelected = Object.assign(Object.assign({}, state.entitiesSelected), entitiesCurr);
191
+ const idsSelected = Object.keys(entitiesSelected);
192
+ const result = Object.assign(Object.assign({}, state), { idsSelected,
193
+ // itemsSelected: items, //todo: @deprecated da cancellare questo tipo di assegnazione.
194
+ entitiesSelected });
195
+ return result;
196
+ });
197
+ const removeManySelectedOn = on(actions.RemoveManySelected, (state, { type, ids }) => {
198
+ const idsAsString = ids.map(x => x + '');
199
+ const idsSelected = Object.keys(state.entitiesSelected).filter(id => !idsAsString.includes(id + ''));
200
+ const entitiesSelected = idsSelected.reduce((prec, curr) => (Object.assign(Object.assign({}, prec), { [curr]: state.entitiesSelected[curr] })), {});
201
+ // const itemsSelected = Object.values(entitiesSelected);
202
+ const result = Object.assign(Object.assign({}, state), { idsSelected,
203
+ // itemsSelected, //todo: @deprecated da cancellare questo tipo di assegnazione.
204
+ entitiesSelected });
205
+ return result;
206
+ });
207
+ const selectItemsOn = on(actions.SelectItems, (state, { type, items }) => {
208
+ const entitiesSelected = toDictionary(items, adapter);
209
+ const idsSelected = Object.keys(entitiesSelected);
210
+ const result = Object.assign(Object.assign({}, state), { idsSelected,
211
+ // itemsSelected: items,
212
+ entitiesSelected });
213
+ return result;
214
+ });
215
+ const selectItemOn = on(actions.SelectItem, (state, { type, item }) => {
216
+ const idSelected = selectIdValue(item, adapter.selectId);
217
+ const result = Object.assign(Object.assign({}, state), { idSelected, itemSelected: item });
218
+ return result;
219
+ });
220
+ const selectSuccessOn = on(actions.SelectSuccess, (state, { type, item }) => {
221
+ const idSelected = selectIdValue(item, adapter.selectId);
222
+ const result = Object.assign(Object.assign({}, state), { idSelected, itemSelected: item, isLoaded: true, isLoading: false, error: null });
223
+ return result;
224
+ });
225
+ const searchFailureOn = on(actions.SearchFailure, (state, { type, error }) => Object.assign({}, state, {
226
+ isLoaded: false,
227
+ isLoading: false,
228
+ error
229
+ }));
230
+ const deleteFailureOn = on(actions.DeleteFailure, (state, { type, error }) => Object.assign({}, state, {
231
+ isLoaded: false,
232
+ isLoading: false,
233
+ error
234
+ }));
235
+ const deleteManyFailureOn = on(actions.DeleteManyFailure, (state, { type, error }) => Object.assign({}, state, {
236
+ isLoaded: false,
237
+ isLoading: false,
238
+ error
239
+ }));
240
+ const createFailureOn = on(actions.CreateFailure, (state, { type, error }) => Object.assign({}, state, {
241
+ isLoaded: false,
242
+ isLoading: false,
243
+ error
244
+ }));
245
+ const createManyFailureOn = on(actions.CreateManyFailure, (state, { type, error }) => Object.assign({}, state, {
246
+ isLoaded: false,
247
+ isLoading: false,
248
+ error
249
+ }));
250
+ const editFailureOn = on(actions.EditFailure, (state, { error, type }) => Object.assign({}, state, {
251
+ isLoaded: false,
252
+ isLoading: false,
253
+ error
254
+ }));
255
+ const editManyFailureOn = on(actions.EditManyFailure, (state, { error, type }) => Object.assign({}, state, {
256
+ isLoaded: false,
257
+ isLoading: false,
258
+ error
259
+ }));
260
+ const selectFailureOn = on(actions.SelectFailure, (state, { error, type }) => Object.assign({}, state, {
261
+ isLoaded: false,
262
+ isLoading: false,
263
+ error
264
+ }));
265
+ const resetOn = on(actions.Reset, (state) => (Object.assign(Object.assign({}, state), initialState)));
266
+ return {
267
+ responseOn,
268
+ resetResponsesOn,
269
+ searchRequestOn,
270
+ deleteRequestOn,
271
+ deleteManyRequestOn,
272
+ editRequestOn,
273
+ editManyRequestOn,
274
+ createRequestOn,
275
+ createManyRequestOn,
276
+ selectRequestOn,
277
+ searchSuccessOn,
278
+ deleteSuccessOn,
279
+ deleteManySuccessOn,
280
+ createSuccessOn,
281
+ createManySuccessOn,
282
+ selectSuccessOn,
283
+ editSuccessOn,
284
+ editManySuccessOn,
285
+ searchFailureOn,
286
+ deleteFailureOn,
287
+ deleteManyFailureOn,
288
+ createFailureOn,
289
+ createManyFailureOn,
290
+ selectFailureOn,
291
+ editFailureOn,
292
+ editManyFailureOn,
293
+ resetOn,
294
+ filtersOn,
295
+ selectItemsOn,
296
+ removeAllSelectedOn,
297
+ addManySelectedOn,
298
+ removeManySelectedOn,
299
+ selectItemOn,
300
+ editOn,
301
+ createOn,
302
+ deleteOn
303
+ };
304
+ }
305
+ export function createCrudReducerFactory(adapter) {
306
+ function createCrudReducer(initialState, actions, ...ons) {
307
+ const { responseOn, resetResponsesOn, searchRequestOn, deleteRequestOn, deleteManyRequestOn, editRequestOn, editManyRequestOn, createRequestOn, createManyRequestOn, selectRequestOn, searchSuccessOn, deleteSuccessOn, deleteManySuccessOn, createSuccessOn, createManySuccessOn, selectSuccessOn, editSuccessOn, editManySuccessOn, searchFailureOn, deleteFailureOn, deleteManyFailureOn, createFailureOn, createManyFailureOn, selectFailureOn, editFailureOn, editManyFailureOn, resetOn, filtersOn, selectItemsOn, removeAllSelectedOn, addManySelectedOn, removeManySelectedOn, selectItemOn, editOn, createOn, deleteOn } = createCrudOns(adapter, initialState, actions);
308
+ const totalOns = [
309
+ ...ons,
310
+ responseOn,
311
+ resetResponsesOn,
312
+ searchRequestOn,
313
+ deleteRequestOn,
314
+ deleteManyRequestOn,
315
+ editRequestOn,
316
+ editManyRequestOn,
317
+ createRequestOn,
318
+ createManyRequestOn,
319
+ selectRequestOn,
320
+ searchSuccessOn,
321
+ deleteSuccessOn,
322
+ deleteManySuccessOn,
323
+ createSuccessOn,
324
+ createManySuccessOn,
325
+ selectSuccessOn,
326
+ editSuccessOn,
327
+ editManySuccessOn,
328
+ searchFailureOn,
329
+ deleteFailureOn,
330
+ deleteManyFailureOn,
331
+ createFailureOn,
332
+ createManyFailureOn,
333
+ selectFailureOn,
334
+ editFailureOn,
335
+ editManyFailureOn,
336
+ resetOn,
337
+ filtersOn,
338
+ selectItemsOn,
339
+ removeAllSelectedOn,
340
+ addManySelectedOn,
341
+ removeManySelectedOn,
342
+ selectItemOn,
343
+ editOn,
344
+ createOn,
345
+ deleteOn
346
+ ];
347
+ return createReducer(initialState, ...totalOns);
348
+ }
349
+ return {
350
+ createCrudReducer
351
+ };
352
+ }
353
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25ncngtZW50aXR5LWNydWQvc3JjL2xpYi9yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBZ0IsYUFBYSxFQUFFLEVBQUUsRUFBZSxNQUFNLGFBQWEsQ0FBQztBQUMzRSxPQUFPLEVBQUMsYUFBYSxFQUFFLFlBQVksRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUVwRCxNQUFNLFVBQVUsUUFBUSxDQUFJLEVBQVcsRUFBRSxNQUFXLElBQUk7SUFDdEQsSUFBSTtRQUNGLE9BQU8sRUFBRSxFQUFFLENBQUM7S0FDYjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxHQUFHLENBQUM7S0FDWjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFrQyxPQUF5QixFQUFFLFlBQWUsRUFBRSxPQUFtQjtJQUM1SCxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQVEsRUFBRSxRQUFtQixFQUFFLEVBQUU7UUFDbEYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRTtZQUM3RCxNQUFNLElBQUksS0FBSyxDQUFDLHFFQUFxRSxDQUFDLENBQUM7U0FDeEY7UUFFRCxNQUFNLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUMsR0FBRyxZQUFZLENBQUM7UUFFL0UsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRTtZQUNqRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQ2xCLEVBQUUsRUFDRixLQUFLLEVBQ0w7Z0JBQ0UsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsS0FBSyxFQUFFLFlBQVksQ0FBQyxL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QUNGLE9BQU8sYUFBYSxDQUFJLFlBQVksRUFDbEMsR0FBRyxRQUFRLENBQ1osQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ0wsaUJBQWlCO0tBQ2xCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBY3Rpb25zLCBFbnRpdHlDcnVkU3RhdGUsIElDcml0ZXJpYSwgT3B0UmVxdWVzdH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHtFbnRpdHlBZGFwdGVyfSBmcm9tICdAbmdyeC9lbnRpdHknO1xuaW1wb3J0IHtBY3Rpb25DcmVhdG9yLCBjcmVhdGVSZWR1Y2VyLCBvbiwgUmVkdWNlclR5cGVzfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge3NlbGVjdElkVmFsdWUsIHRvRGljdGlvbmFyeX0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBldmFsRGF0YTxUPihmbjogKCkgPT4gVCwgZGVmOiBhbnkgPSBudWxsKTogVCB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGZuKCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZGVmO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDcnVkT25zPFQsIFMgZXh0ZW5kcyBFbnRpdHlDcnVkU3RhdGU8VD4+KGFkYXB0ZXI6IEVudGl0eUFkYXB0ZXI8VD4sIGluaXRpYWxTdGF0ZTogUywgYWN0aW9uczogQWN0aW9uczxUPik6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICBjb25zdCBzZWFyY2hSZXF1ZXN0T24gPSBvbihhY3Rpb25zLlNlYXJjaFJlcXVlc3QsIChzdGF0ZTogUywgY3JpdGVyaWE6IElDcml0ZXJpYSkgPT4ge1xuICAgIGlmICghY3JpdGVyaWEucGF0aCAmJiAhY3JpdGVyaWEubW9kZSAmJiAhY3JpdGVyaWEucXVlcnlQYXJhbXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSXQgaXMgbm90IHBvc3NpYmxlIGEgc2VhcmNoIHdpdGhvdXQgcGF5bG9hZCwgdXNlIDpcXCd7Y3JpdGVyaWE6e319XFwnJyk7XG4gICAgfVxuXG4gICAgY29uc3Qge2l0ZW1TZWxlY3RlZCwgaWRTZWxlY3RlZCwgZW50aXRpZXNTZWxlY3RlZCwgaWRzU2VsZWN0ZWR9ID0gaW5pdGlhbFN0YXRlO1xuXG4gICAgaWYgKGNyaXRlcmlhLm1vZGUgPT09ICdSRUZSRVNIJyB8fCBjcml0ZXJpYS5tb2RlID09PSAndXBzZXJ0TWFueScpIHtcbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgICAgICB7fSxcbiAgICAgICAgc3RhdGUsXG4gICAgICAgIHtcbiAgICAgICAgICBpc0xvYWRpbmc6IHRydWUsXG4gICAgICAgICAgZXJyb3I6IGluaXRpYWxTdGF0ZS5lcnJvcixcbiAgICAgICAgICBsYXN0Q3JpdGVyaWE6IGNyaXRlcmlhLFxuICAgICAgICAgIGl0ZW1TZWxlY3RlZCxcbiAgICAgICAgICBpZFNlbGVjdGVkLFxuICAgICAgICAgIGVudGl0aWVzU2VsZWN0ZWQsXG4gICAgICAgICAgaWRzU2VsZWN0ZWRcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGFkYXB0ZXIucmVtb3ZlQWxsKFxuICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAge30sXG4gICAgICAgIHN0YXRlLFxuICAgICAgICB7XG4gICAgICAgICAgaXNMb2FkaW5nOiB0cnVlLFxuICAgICAgICAgIGVycm9yOiBpbml0aWFsU3RhdGUuZXJyb3IsXG4gICAgICAgICAgbGFzdENyaXRlcmlhOiBjcml0ZXJpYSxcbiAgICAgICAgICBpdGVtU2VsZWN0ZWQsXG4gICAgICAgICAgaWRTZWxlY3RlZCxcbiAgICAgICAgICBlbnRpdGllc1NlbGVjdGVkLFxuICAgICAgICAgIGlkc1NlbGVjdGVkXG4gICAgICAgIH0pXG4gICAgKTtcbiAgfSk7XG4gIGNvbnN0IGRlbGV0ZVJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuRGVsZXRlUmVxdWVzdCwgKHN0YXRlOiBTLCByZXF1ZXN0OiBPcHRSZXF1ZXN0KSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge2lzTG9hZGluZzogdHJ1ZSwgZXJyb3I6IGluaXRpYWxTdGF0ZS5lcnJvcn1cbiAgICApO1xuICB9KTtcbiAgY29uc3QgZGVsZXRlTWFueVJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuRGVsZXRlTWFueVJlcXVlc3QsIChzdGF0ZTogUywgcmVxdWVzdDogT3B0UmVxdWVzdCkgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtpc0xvYWRpbmc6IHRydWUsIGVycm9yOiBpbml0aWFsU3RhdGUuZXJyb3J9XG4gICAgKTtcbiAgfSk7XG4gIGNvbnN0IGVkaXRSZXF1ZXN0T24gPSBvbihhY3Rpb25zLkVkaXRSZXF1ZXN0LCAoc3RhdGU6IFMsIHJlcXVlc3Q6IE9wdFJlcXVlc3QpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7aXNMb2FkaW5nOiB0cnVlLCBlcnJvcjogaW5pdGlhbFN0YXRlLmVycm9yfVxuICAgICk7XG4gIH0pO1xuICBjb25zdCBlZGl0TWFueVJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuRWRpdE1hbnlSZXF1ZXN0LCAoc3RhdGU6IFMsIHJlcXVlc3Q6IE9wdFJlcXVlc3QpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7aXNMb2FkaW5nOiB0cnVlLCBlcnJvcjogaW5pdGlhbFN0YXRlLmVycm9yfVxuICAgICk7XG4gIH0pO1xuICBjb25zdCBjcmVhdGVSZXF1ZXN0T24gPSBvbihhY3Rpb25zLkNyZWF0ZVJlcXVlc3QsIChzdGF0ZTogUywgcmVxdWVzdDogT3B0UmVxdWVzdCkgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtpc0xvYWRpbmc6IHRydWUsIGVycm9yOiBpbml0aWFsU3RhdGUuZXJyb3J9XG4gICAgKTtcbiAgfSk7XG4gIGNvbnN0IGNyZWF0ZU1hbnlSZXF1ZXN0T24gPSBvbihhY3Rpb25zLkNyZWF0ZU1hbnlSZXF1ZXN0LCAoc3RhdGU6IFMsIHJlcXVlc3Q6IE9wdFJlcXVlc3QpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7aXNMb2FkaW5nOiB0cnVlLCBlcnJvcjogaW5pdGlhbFN0YXRlLmVycm9yfVxuICAgICk7XG4gIH0pO1xuICBjb25zdCBzZWxlY3RSZXF1ZXN0T24gPSBvbihhY3Rpb25zLlNlbGVjdFJlcXVlc3QsIChzdGF0ZTogUywgcmVxdWVzdDogSUNyaXRlcmlhKSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge2lzTG9hZGluZzogdHJ1ZSwgZXJyb3I6IGluaXRpYWxTdGF0ZS5lcnJvcn1cbiAgICApO1xuICB9KTtcblxuICBjb25zdCBzZWFyY2hTdWNjZXNzT24gPSBvbihhY3Rpb25zLlNlYXJjaFN1Y2Nlc3MsIChzdGF0ZTogUywge3R5cGUsIGl0ZW1zLCByZXF1ZXN0fSkgPT4ge1xuICAgIGNvbnN0IG1vZGUgPSBldmFsRGF0YSgoKSA9PiByZXF1ZXN0Lm1vZGUsIG51bGwpIHx8ICdzZXRBbGwnO1xuICAgIGxldCBtZXRob2Q7XG4gICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICBjYXNlICAnUkVGUkVTSCcgOiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdSRUZSRVNIJyk7XG4gICAgICAgIG1ldGhvZCA9IGFkYXB0ZXIuc2V0QWxsO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3Vwc2VydE1hbnknOiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCd1cHNlcnRNYW55Jyk7XG4gICAgICAgIG1ldGhvZCA9IGFkYXB0ZXIudXBzZXJ0TWFueTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdzZXRBbGwnOiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdzZXRBbGwnKTtcbiAgICAgICAgbWV0aG9kID0gYWRhcHRlci5zZXRBbGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdkZWZhdWx0Jyk7XG4gICAgICAgIG1ldGhvZCA9IGFkYXB0ZXIuc2V0QWxsO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWV0aG9kKGl0ZW1zLCBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IHRydWUsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yOiBudWxsXG4gICAgICB9XG4gICAgKSk7XG4gIH0pO1xuICBjb25zdCBkZWxldGVTdWNjZXNzT24gPSBvbihhY3Rpb25zLkRlbGV0ZVN1Y2Nlc3MsIChzdGF0ZTogUywge3R5cGUsIGlkfSkgPT4ge1xuXG4gICAgICAvLyB0b2xnbyBkYWxsbyBzdG9yZS5pZHNTZWxlY3RlZCBsJ2VsZW1lbnRvIGNhbmNlbGxhdG9cbiAgICAgIGNvbnN0IGlkc1NlbGVjdGVkID0gKHN0YXRlLmlkc1NlbGVjdGVkIGFzIGFueVtdKS5maWx0ZXIoKGlkQSkgPT4gaWRBID09PSBpZCk7XG4gICAgICBjb25zdCBlbnRpdGllc1NlbGVjdGVkID0gaWRzU2VsZWN0ZWQucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICAgIHByZXZbY3Vycl0gPSBzdGF0ZS5lbnRpdGllc1NlbGVjdGVkW2N1cnJdO1xuICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgIH0sIHt9KTtcblxuICAgICAgLy8gc2UgaG8gY2FuY2VsbGF0byBsJ2lkIHNlZXppb25hdG8sIGxvIHRvbGdvIGRhbGxvIHN0b3JlLlxuICAgICAgY29uc3QgaWRTZWxlY3RlZCA9ICEhc3RhdGUuaWRTZWxlY3RlZCAmJiBzdGF0ZS5pZFNlbGVjdGVkID09PSBpZCA/IG51bGwgOiBzdGF0ZS5pZFNlbGVjdGVkO1xuICAgICAgY29uc3QgaXRlbVNlbGVjdGVkID0gIWlkU2VsZWN0ZWQgPyBudWxsIDogc3RhdGUuaXRlbVNlbGVjdGVkO1xuXG4gICAgICByZXR1cm4gYWRhcHRlci5yZW1vdmVPbmUoaWQsXG4gICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAge30sIHN0YXRlLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgICAgaWRTZWxlY3RlZCxcbiAgICAgICAgICAgIGlkc1NlbGVjdGVkLFxuICAgICAgICAgICAgaXRlbVNlbGVjdGVkLFxuICAgICAgICAgICAgZW50aXRpZXNTZWxlY3RlZFxuICAgICAgICAgIH1cbiAgICAgICAgKSk7XG4gICAgfVxuICApO1xuXG4gIGNvbnN0IGRlbGV0ZU1hbnlTdWNjZXNzT24gPSBvbihhY3Rpb25zLkRlbGV0ZU1hbnlTdWNjZXNzLCAoc3RhdGU6IFMsIHt0eXBlLCBpZHN9KSA9PiB7XG5cbiAgICAvLyB0b2xnbyBkYWxsbyBzdG9yZS5pZHNTZWxlY3RlZCBnbGkgZWxlbWVudGkgY2hlIHNvbm8gc3RhdGkgY2FuY2VsbGF0aS5cbiAgICBjb25zdCBpZHNTZWxlY3RlZDogc3RyaW5nW10gPSAoc3RhdGUuaWRzU2VsZWN0ZWQgYXMgYW55W10pLmZpbHRlcigoaWQpID0+ICEoaWQgaW4gaWRzKSk7XG4gICAgY29uc3QgZW50aXRpZXNTZWxlY3RlZCA9IGlkc1NlbGVjdGVkLnJlZHVjZSgocHJldiwgY3VycikgPT4ge1xuICAgICAgcHJldltjdXJyXSA9IHN0YXRlLmVudGl0aWVzU2VsZWN0ZWRbY3Vycl07XG4gICAgICByZXR1cm4gcHJldjtcbiAgICB9LCB7fSk7XG5cbiAgICAvLyBzZSBobyBjYW5jZWxsYXRvIGwnaWQgc2VlemlvbmF0bywgbG8gdG9sZ28gZGFsbG8gc3RvcmUuXG4gICAgY29uc3QgaWRTZWxlY3RlZCA9ICEhc3RhdGUuaWRTZWxlY3RlZCAmJiBzdGF0ZS5pZFNlbGVjdGVkIGluIGlkcyA/IG51bGwgOiBzdGF0ZS5pZFNlbGVjdGVkO1xuICAgIGNvbnN0IGl0ZW1TZWxlY3RlZCA9ICFpZFNlbGVjdGVkID8gbnVsbCA6IHN0YXRlLml0ZW1TZWxlY3RlZDtcbiAgICByZXR1cm4gYWRhcHRlci5yZW1vdmVNYW55KGlkcyxcbiAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgIHt9LCBzdGF0ZSxcbiAgICAgICAge1xuICAgICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgICAgaWRTZWxlY3RlZCxcbiAgICAgICAgICBpZHNTZWxlY3RlZCxcbiAgICAgICAgICBpdGVtU2VsZWN0ZWQsXG4gICAgICAgICAgZW50aXRpZXNTZWxlY3RlZFxuICAgICAgICB9XG4gICAgICApKTtcbiAgfSk7XG5cbiAgY29uc3QgZGVsZXRlT24gPSBvbihhY3Rpb25zLkRlbGV0ZSwgKHN0YXRlOiBTLCB7dHlwZSwgaWR9KSA9PiB7XG4gICAgICAvLyB0b2xnbyBkYWxsbyBzdG9yZS5pZHNTZWxlY3RlZCBsJ2VsZW1lbnRvIGNhbmNlbGxhdG9cbiAgICAgIGNvbnN0IGlkc1NlbGVjdGVkID0gKHN0YXRlLmlkc1NlbGVjdGVkIGFzIGFueVtdKS5maWx0ZXIoKGlkQSkgPT4gaWRBID09PSBpZCk7XG5cbiAgICAgIC8vIHNlIGhvIGNhbmNlbGxhdG8gbCdpZCBzZWV6aW9uYXRvLCBsbyB0b2xnbyBkYWxsbyBzdG9yZS5cbiAgICAgIGNvbnN0IGlkU2VsZWN0ZWQgPSAhIXN0YXRlLmlkU2VsZWN0ZWQgJiYgc3RhdGUuaWRTZWxlY3RlZCA9PT0gaWQgPyBudWxsIDogc3RhdGUuaWRTZWxlY3RlZDtcblxuICAgICAgcmV0dXJuIGFkYXB0ZXIucmVtb3ZlT25lKGlkLFxuICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgIHt9LCBzdGF0ZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpc0xvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICAgIGlkU2VsZWN0ZWQsXG4gICAgICAgICAgICBpZHNTZWxlY3RlZFxuICAgICAgICAgIH1cbiAgICAgICAgKSk7XG4gICAgfVxuICApO1xuICBjb25zdCByZXNwb25zZU9uID0gb24oYWN0aW9ucy5SZXNwb25zZSwgKHN0YXRlOiBTLCByZXNwb25zZSkgPT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlcyA9IFsuLi5zdGF0ZS5yZXNwb25zZXMsIHJlc3BvbnNlXTtcbiAgICByZXR1cm4gey4uLnt9LCAuLi5zdGF0ZSwgLi4ue3Jlc3BvbnNlc319O1xuICB9KTtcblxuICBjb25zdCByZXNldFJlc3BvbnNlc09uID0gb24oYWN0aW9ucy5SZXNldFJlc3BvbnNlcywgKHN0YXRlOiBTKSA9PiB7XG4gICAgICBjb25zdCByZXNwb25zZXMgPSBbXTtcbiAgICAgIHJldHVybiB7Li4uc3RhdGUsIC4uLntyZXNwb25zZXN9fTtcbiAgICB9XG4gICk7XG4gIGNvbnN0IGNyZWF0ZVN1Y2Nlc3NPbiA9IG9uKGFjdGlvbnMuQ3JlYXRlU3VjY2VzcywgKHN0YXRlOiBTLCB7dHlwZSwgaXRlbX0pID0+IGFkYXB0ZXIuYWRkT25lKGl0ZW0sXG4gICAgT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LCBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IHRydWUsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yOiBudWxsXG4gICAgICB9XG4gICAgKSkpO1xuICBjb25zdCBjcmVhdGVNYW55U3VjY2Vzc09uID0gb24oYWN0aW9ucy5DcmVhdGVNYW55U3VjY2VzcywgKHN0YXRlOiBTLCB7dHlwZSwgaXRlbXN9KSA9PiBhZGFwdGVyLmFkZE1hbnkoaXRlbXMsXG4gICAgT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LCBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IHRydWUsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yOiBudWxsXG4gICAgICB9XG4gICAgKSkpO1xuICBjb25zdCBjcmVhdGVPbiA9IG9uKGFjdGlvbnMuQ3JlYXRlLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtfSkgPT4gYWRhcHRlci5hZGRPbmUoaXRlbSxcbiAgICBPYmplY3QuYXNzaWduKFxuICAgICAge30sIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogdHJ1ZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgIH1cbiAgICApKSk7XG4gIGNvbnN0IGVkaXRTdWNjZXNzT24gPSBvbihhY3Rpb25zLkVkaXRTdWNjZXNzLCAoc3RhdGU6IFMsIHtpdGVtLCB0eXBlfSkgPT4gYWRhcHRlci51cHNlcnRPbmUoaXRlbSxcbiAgICBPYmplY3QuYXNzaWduKFxuICAgICAge30sIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogdHJ1ZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgIH1cbiAgICApKSk7XG4gIGNvbnN0IGVkaXRNYW55U3VjY2Vzc09uID0gb24oYWN0aW9ucy5FZGl0TWFueVN1Y2Nlc3MsIChzdGF0ZTogUywge2l0ZW1zLCB0eXBlfSkgPT4gYWRhcHRlci51cHNlcnRNYW55KGl0ZW1zLFxuICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSwgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgfVxuICAgICkpKTtcbiAgY29uc3QgZWRpdE9uID0gb24oYWN0aW9ucy5FZGl0LCAoc3RhdGU6IFMsIHtpdGVtLCB0eXBlfSkgPT4gYWRhcHRlci51cHNlcnRPbmUoaXRlbSxcbiAgICBPYmplY3QuYXNzaWduKFxuICAgICAge30sIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogdHJ1ZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgIH1cbiAgICApKSk7XG4gIGNvbnN0IGZpbHRlcnNPbiA9IG9uKGFjdGlvbnMuRmlsdGVycywgKHN0YXRlOiBTLCB7dHlwZSwgZmlsdGVyc30pID0+IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7ZmlsdGVyc30pKTtcblxuICBjb25zdCByZW1vdmVBbGxTZWxlY3RlZE9uID0gb24oYWN0aW9ucy5SZW1vdmVBbGxTZWxlY3RlZCwgKHN0YXRlOiBTLCB7dHlwZX06IHsgdHlwZTogc3RyaW5nIH0pID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGlkc1NlbGVjdGVkOiBbXSxcbiAgICAgIC8vIGl0ZW1zU2VsZWN0ZWQ6IFtdLCAvL3RvZG86IEBkZXByZWNhdGVkIGRhIGNhbmNlbGxhcmUgcXVlc3RvIHRpcG8gZGkgYXNzZWduYXppb25lLlxuICAgICAgZW50aXRpZXNTZWxlY3RlZDoge31cbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG5cbiAgY29uc3QgYWRkTWFueVNlbGVjdGVkT24gPSBvbihhY3Rpb25zLkFkZE1hbnlTZWxlY3RlZCwgKHN0YXRlOiBTLCB7dHlwZSwgaXRlbXN9OiB7IHR5cGU6IHN0cmluZywgaXRlbXM6IFRbXSB9KSA9PiB7XG4gICAgY29uc3QgZW50aXRpZXNDdXJyID0gdG9EaWN0aW9uYXJ5KGl0ZW1zLCBhZGFwdGVyKTtcbiAgICBjb25zdCBlbnRpdGllc1NlbGVjdGVkID0gey4uLnN0YXRlLmVudGl0aWVzU2VsZWN0ZWQsIC4uLmVudGl0aWVzQ3Vycn07XG4gICAgY29uc3QgaWRzU2VsZWN0ZWQgPSBPYmplY3Qua2V5cyhlbnRpdGllc1NlbGVjdGVkKTtcbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGlkc1NlbGVjdGVkLFxuICAgICAgLy8gaXRlbXNTZWxlY3RlZDogaXRlbXMsIC8vdG9kbzogQGRlcHJlY2F0ZWQgZGEgY2FuY2VsbGFyZSBxdWVzdG8gdGlwbyBkaSBhc3NlZ25hemlvbmUuXG4gICAgICBlbnRpdGllc1NlbGVjdGVkXG4gICAgfTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xuXG4gIGNvbnN0IHJlbW92ZU1hbnlTZWxlY3RlZE9uID0gb24oYWN0aW9ucy5SZW1vdmVNYW55U2VsZWN0ZWQsIChzdGF0ZTogUywge3R5cGUsIGlkc306IHsgdHlwZTogc3RyaW5nLCBpZHM6IHN0cmluZ1tdIH0pID0+IHtcbiAgICBjb25zdCBpZHNBc1N0cmluZyA9IGlkcy5tYXAoeCA9PiB4ICsgJycpO1xuICAgIGNvbnN0IGlkc1NlbGVjdGVkID0gT2JqZWN0LmtleXMoc3RhdGUuZW50aXRpZXNTZWxlY3RlZCkuZmlsdGVyKGlkID0+ICFpZHNBc1N0cmluZy5pbmNsdWRlcyhpZCArICcnKSk7XG4gICAgY29uc3QgZW50aXRpZXNTZWxlY3RlZCA9IGlkc1NlbGVjdGVkLnJlZHVjZSgocHJlYywgY3VycikgPT4gKHsuLi5wcmVjLCBbY3Vycl06IHN0YXRlLmVudGl0aWVzU2VsZWN0ZWRbY3Vycl19KSwge30pO1xuICAgIC8vIGNvbnN0IGl0ZW1zU2VsZWN0ZWQgPSBPYmplY3QudmFsdWVzKGVudGl0aWVzU2VsZWN0ZWQpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBpZHNTZWxlY3RlZCxcbiAgICAgIC8vIGl0ZW1zU2VsZWN0ZWQsIC8vdG9kbzogQGRlcHJlY2F0ZWQgZGEgY2FuY2VsbGFyZSBxdWVzdG8gdGlwbyBkaSBhc3NlZ25hemlvbmUuXG4gICAgICBlbnRpdGllc1NlbGVjdGVkXG4gICAgfTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xuXG4gIGNvbnN0IHNlbGVjdEl0ZW1zT24gPSBvbihhY3Rpb25zLlNlbGVjdEl0ZW1zLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtc30pID0+IHtcbiAgICBjb25zdCBlbnRpdGllc1NlbGVjdGVkID0gdG9EaWN0aW9uYXJ5KGl0ZW1zLCBhZGFwdGVyKTtcbiAgICBjb25zdCBpZHNTZWxlY3RlZCA9IE9iamVjdC5rZXlzKGVudGl0aWVzU2VsZWN0ZWQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgaWRzU2VsZWN0ZWQsXG4gICAgICAvLyBpdGVtc1NlbGVjdGVkOiBpdGVtcyxcbiAgICAgIGVudGl0aWVzU2VsZWN0ZWRcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG4gIGNvbnN0IHNlbGVjdEl0ZW1PbiA9IG9uKGFjdGlvbnMuU2VsZWN0SXRlbSwgKHN0YXRlOiBTLCB7dHlwZSwgaXRlbX0pID0+IHtcbiAgICBjb25zdCBpZFNlbGVjdGVkID0gc2VsZWN0SWRWYWx1ZShpdGVtLCBhZGFwdGVyLnNlbGVjdElkKTtcbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGlkU2VsZWN0ZWQsXG4gICAgICBpdGVtU2VsZWN0ZWQ6IGl0ZW1cbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG4gIGNvbnN0IHNlbGVjdFN1Y2Nlc3NPbiA9IG9uKGFjdGlvbnMuU2VsZWN0U3VjY2VzcywgKHN0YXRlOiBTLCB7dHlwZSwgaXRlbX0pID0+IHtcbiAgICAgIGNvbnN0IGlkU2VsZWN0ZWQgPSBzZWxlY3RJZFZhbHVlKGl0ZW0sIGFkYXB0ZXIuc2VsZWN0SWQpO1xuICAgICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgaWRTZWxlY3RlZCxcbiAgICAgICAgaXRlbVNlbGVjdGVkOiBpdGVtLFxuICAgICAgICBpc0xvYWRlZDogdHJ1ZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICApO1xuICBjb25zdCBzZWFyY2hGYWlsdXJlT24gPSBvbihcbiAgICBhY3Rpb25zLlNlYXJjaEZhaWx1cmUsXG4gICAgKHN0YXRlOiBTLCB7dHlwZSwgZXJyb3J9KSA9PiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IGZhbHNlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvclxuICAgICAgfVxuICAgICkpO1xuICBjb25zdCBkZWxldGVGYWlsdXJlT24gPSBvbihcbiAgICBhY3Rpb25zLkRlbGV0ZUZhaWx1cmUsXG4gICAgKHN0YXRlOiBTLCB7dHlwZSwgZXJyb3J9KSA9PiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IGZhbHNlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvclxuICAgICAgfVxuICAgICkpO1xuICBjb25zdCBkZWxldGVNYW55RmFpbHVyZU9uID0gb24oXG4gICAgYWN0aW9ucy5EZWxldGVNYW55RmFpbHVyZSxcbiAgICAoc3RhdGU6IFMsIHt0eXBlLCBlcnJvcn0pID0+IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogZmFsc2UsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yXG4gICAgICB9XG4gICAgKSk7XG4gIGNvbnN0IGNyZWF0ZUZhaWx1cmVPbiA9IG9uKFxuICAgIGFjdGlvbnMuQ3JlYXRlRmFpbHVyZSxcbiAgICAoc3RhdGU6IFMsIHt0eXBlLCBlcnJvcn0pID0+IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogZmFsc2UsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yXG4gICAgICB9XG4gICAgKSk7XG4gIGNvbnN0IGNyZWF0ZU1hbnlGYWlsdXJlT24gPSBvbihcbiAgICBhY3Rpb25zLkNyZWF0ZU1hbnlGYWlsdXJlLFxuICAgIChzdGF0ZTogUywge3R5cGUsIGVycm9yfSkgPT4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiBmYWxzZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3JcbiAgICAgIH1cbiAgICApKTtcbiAgY29uc3QgZWRpdEZhaWx1cmVPbiA9IG9uKFxuICAgIGFjdGlvbnMuRWRpdEZhaWx1cmUsXG4gICAgKHN0YXRlOiBTLCB7ZXJyb3IsIHR5cGV9KSA9PiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IGZhbHNlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvclxuICAgICAgfVxuICAgICkpO1xuICBjb25zdCBlZGl0TWFueUZhaWx1cmVPbiA9IG9uKFxuICAgIGFjdGlvbnMuRWRpdE1hbnlGYWlsdXJlLFxuICAgIChzdGF0ZTogUywge2Vycm9yLCB0eXBlfSkgPT4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiBmYWxzZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3JcbiAgICAgIH1cbiAgICApKTtcbiAgY29uc3Qgc2VsZWN0RmFpbHVyZU9uID0gb24oXG4gICAgYWN0aW9ucy5TZWxlY3RGYWlsdXJlLFxuICAgIChzdGF0ZTogUywge2Vycm9yLCB0eXBlfSkgPT4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiBmYWxzZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3JcbiAgICAgIH1cbiAgICApKTtcbiAgY29uc3QgcmVzZXRPbiA9IG9uKGFjdGlvbnMuUmVzZXQsIChzdGF0ZTogUykgPT4gKHsuLi5zdGF0ZSwgLi4uaW5pdGlhbFN0YXRlfSkpO1xuICByZXR1cm4ge1xuICAgIHJlc3BvbnNlT24sXG4gICAgcmVzZXRSZXNwb25zZXNPbixcbiAgICBzZWFyY2hSZXF1ZXN0T24sXG4gICAgZGVsZXRlUmVxdWVzdE9uLFxuICAgIGRlbGV0ZU1hbnlSZXF1ZXN0T24sXG4gICAgZWRpdFJlcXVlc3RPbixcbiAgICBlZGl0TWFueVJlcXVlc3RPbixcbiAgICBjcmVhdGVSZXF1ZXN0T24sXG4gICAgY3JlYXRlTWFueVJlcXVlc3RPbixcbiAgICBzZWxlY3RSZXF1ZXN0T24sXG4gICAgc2VhcmNoU3VjY2Vzc09uLFxuICAgIGRlbGV0ZVN1Y2Nlc3NPbixcbiAgICBkZWxldGVNYW55U3VjY2Vzc09uLFxuICAgIGNyZWF0ZVN1Y2Nlc3NPbixcbiAgICBjcmVhdGVNYW55U3VjY2Vzc09uLFxuICAgIHNlbGVjdFN1Y2Nlc3NPbixcbiAgICBlZGl0U3VjY2Vzc09uLFxuICAgIGVkaXRNYW55U3VjY2Vzc09uLFxuICAgIHNlYXJjaEZhaWx1cmVPbixcbiAgICBkZWxldGVGYWlsdXJlT24sXG4gICAgZGVsZXRlTWFueUZhaWx1cmVPbixcbiAgICBjcmVhdGVGYWlsdXJlT24sXG4gICAgY3JlYXRlTWFueUZhaWx1cmVPbixcbiAgICBzZWxlY3RGYWlsdXJlT24sXG4gICAgZWRpdEZhaWx1cmVPbixcbiAgICBlZGl0TWFueUZhaWx1cmVPbixcbiAgICByZXNldE9uLFxuICAgIGZpbHRlcnNPbixcbiAgICBzZWxlY3RJdGVtc09uLFxuICAgIHJlbW92ZUFsbFNlbGVjdGVkT24sXG4gICAgYWRkTWFueVNlbGVjdGVkT24sXG4gICAgcmVtb3ZlTWFueVNlbGVjdGVkT24sXG4gICAgc2VsZWN0SXRlbU9uLFxuICAgIGVkaXRPbixcbiAgICBjcmVhdGVPbixcbiAgICBkZWxldGVPblxuICB9O1xuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDcnVkUmVkdWNlckZhY3Rvcnk8VD4oYWRhcHRlcjogRW50aXR5QWRhcHRlcjxUPikge1xuICBmdW5jdGlvbiBjcmVhdGVDcnVkUmVkdWNlcjxTIGV4dGVuZHMgRW50aXR5Q3J1ZFN0YXRlPFQ+Pihpbml0aWFsU3RhdGU6IFMsIGFjdGlvbnM6IEFjdGlvbnM8VD4sIC4uLm9uczogUmVkdWNlclR5cGVzPFMsIEFjdGlvbkNyZWF0b3JbXT5bXSkge1xuICAgIGNvbnN0IHtcbiAgICAgIHJlc3BvbnNlT24sXG4gICAgICByZXNldFJlc3BvbnNlc09uLFxuICAgICAgc2VhcmNoUmVxdWVzdE9uLFxuICAgICAgZGVsZXRlUmVxdWVzdE9uLFxuICAgICAgZGVsZXRlTWFueVJlcXVlc3RPbixcbiAgICAgIGVkaXRSZXF1ZXN0T24sXG4gICAgICBlZGl0TWFueVJlcXVlc3RPbixcbiAgICAgIGNyZWF0ZVJlcXVlc3RPbixcbiAgICAgIGNyZWF0ZU1hbnlSZXF1ZXN0T24sXG4gICAgICBzZWxlY3RSZXF1ZXN0T24sXG4gICAgICBzZWFyY2hTdWNjZXNzT24sXG4gICAgICBkZWxldGVTdWNjZXNzT24sXG4gICAgICBkZWxldGVNYW55U3VjY2Vzc09uLFxuICAgICAgY3JlYXRlU3VjY2Vzc09uLFxuICAgICAgY3JlYXRlTWFueVN1Y2Nlc3NPbixcbiAgICAgIHNlbGVjdFN1Y2Nlc3NPbixcbiAgICAgIGVkaXRTdWNjZXNzT24sXG4gICAgICBlZGl0TWFueVN1Y2Nlc3NPbixcbiAgICAgIHNlYXJjaEZhaWx1cmVPbixcbiAgICAgIGRlbGV0ZUZhaWx1cmVPbixcbiAgICAgIGRlbGV0ZU1hbnlGYWlsdXJlT24sXG4gICAgICBjcmVhdGVGYWlsdXJlT24sXG4gICAgICBjcmVhdGVNYW55RmFpbHVyZU9uLFxuICAgICAgc2VsZWN0RmFpbHVyZU9uLFxuICAgICAgZWRpdEZhaWx1cmVPbixcbiAgICAgIGVkaXRNYW55RmFpbHVyZU9uLFxuICAgICAgcmVzZXRPbixcbiAgICAgIGZpbHRlcnNPbixcbiAgICAgIHNlbGVjdEl0ZW1zT24sXG4gICAgICByZW1vdmVBbGxTZWxlY3RlZE9uLFxuICAgICAgYWRkTWFueVNlbGVjdGVkT24sXG4gICAgICByZW1vdmVNYW55U2VsZWN0ZWRPbixcbiAgICAgIHNlbGVjdEl0ZW1PbixcbiAgICAgIGVkaXRPbixcbiAgICAgIGNyZWF0ZU9uLFxuICAgICAgZGVsZXRlT25cbiAgICB9ID0gY3JlYXRlQ3J1ZE9ucyhhZGFwdGVyLCBpbml0aWFsU3RhdGUsIGFjdGlvbnMpO1xuICAgIGNvbnN0IHRvdGFsT25zOiBSZWR1Y2VyVHlwZXM8UywgQWN0aW9uQ3JlYXRvcltdPltdID0gW1xuICAgICAgLi4ub25zLFxuICAgICAgcmVzcG9uc2VPbixcbiAgICAgIHJlc2V0UmVzcG9uc2VzT24sXG4gICAgICBzZWFyY2hSZXF1ZXN0T24sXG4gICAgICBkZWxldGVSZXF1ZXN0T24sXG4gICAgICBkZWxldGVNYW55UmVxdWVzdE9uLFxuICAgICAgZWRpdFJlcXVlc3RPbixcbiAgICAgIGVkaXRNYW55UmVxdWVzdE9uLFxuICAgICAgY3JlYXRlUmVxdWVzdE9uLFxuICAgICAgY3JlYXRlTWFueVJlcXVlc3RPbixcbiAgICAgIHNlbGVjdFJlcXVlc3RPbixcbiAgICAgIHNlYXJjaFN1Y2Nlc3NPbixcbiAgICAgIGRlbGV0ZVN1Y2Nlc3NPbixcbiAgICAgIGRlbGV0ZU1hbnlTdWNjZXNzT24sXG4gICAgICBjcmVhdGVTdWNjZXNzT24sXG4gICAgICBjcmVhdGVNYW55U3VjY2Vzc09uLFxuICAgICAgc2VsZWN0U3VjY2Vzc09uLFxuICAgICAgZWRpdFN1Y2Nlc3NPbixcbiAgICAgIGVkaXRNYW55U3VjY2Vzc09uLFxuICAgICAgc2VhcmNoRmFpbHVyZU9uLFxuICAgICAgZGVsZXRlRmFpbHVyZU9uLFxuICAgICAgZGVsZXRlTWFueUZhaWx1cmVPbixcbiAgICAgIGNyZWF0ZUZhaWx1cmVPbixcbiAgICAgIGNyZWF0ZU1hbnlGYWlsdXJlT24sXG4gICAgICBzZWxlY3RGYWlsdXJlT24sXG4gICAgICBlZGl0RmFpbHVyZU9uLFxuICAgICAgZWRpdE1hbnlGYWlsdXJlT24sXG4gICAgICByZXNldE9uLFxuICAgICAgZmlsdGVyc09uLFxuICAgICAgc2VsZWN0SXRlbXNPbixcbiAgICAgIHJlbW92ZUFsbFNlbGVjdGVkT24sXG4gICAgICBhZGRNYW55U2VsZWN0ZWRPbixcbiAgICAgIHJlbW92ZU1hbnlTZWxlY3RlZE9uLFxuICAgICAgc2VsZWN0SXRlbU9uLFxuICAgICAgZWRpdE9uLFxuICAgICAgY3JlYXRlT24sXG4gICAgICBkZWxldGVPblxuICAgIF07XG4gICAgcmV0dXJuIGNyZWF0ZVJlZHVjZXI8Uz4oaW5pdGlhbFN0YXRlLFxuICAgICAgLi4udG90YWxPbnNcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBjcmVhdGVDcnVkUmVkdWNlclxuICB9O1xufVxuIl19
@@ -0,0 +1,56 @@
1
+ import { createSelector } from '@ngrx/store';
2
+ import { jNgrxFilter } from './j-ngrx-filter';
3
+ export function createCrudSelectorsFactory(adapter) {
4
+ function getCrudSelectors(selectState) {
5
+ const getError = (state) => state.error;
6
+ const getIsLoading = (state) => state.isLoading;
7
+ const getIsLoaded = (state) => state.isLoaded;
8
+ const getFilters = (state) => state.filters;
9
+ const getLastCriteria = (state) => state.lastCriteria;
10
+ const getItemSelected = (state) => state.itemSelected;
11
+ const getIdSelected = (state) => state.idSelected;
12
+ // const getItemsSelected = (state: CrudState<T>): T[] => state.itemsSelected;
13
+ const getEntitiesSelected = (state) => state.entitiesSelected;
14
+ const getIdsSelected = (state) => state.idsSelected;
15
+ const getRespones = (state) => state.responses;
16
+ const selectError = createSelector(selectState, getError);
17
+ const selectIsLoading = createSelector(selectState, getIsLoading);
18
+ const selectIsLoaded = createSelector(selectState, getIsLoaded);
19
+ const selectFilters = createSelector(selectState, getFilters);
20
+ const selectLastCriteria = createSelector(selectState, getLastCriteria);
21
+ const selectItemSelected = createSelector(selectState, getItemSelected);
22
+ const selectEntitiesSelected = createSelector(selectState, getEntitiesSelected);
23
+ const selectItemsSelected = createSelector(selectEntitiesSelected, (entities) => Object.values(entities));
24
+ const selectIdSelected = createSelector(selectState, getIdSelected);
25
+ const selectIdsSelected = createSelector(selectState, getIdsSelected);
26
+ const selectResponses = createSelector(selectState, getRespones);
27
+ const { selectAll, selectEntities, selectIds, selectTotal } = adapter.getSelectors(selectState);
28
+ const selectItemsSelectedOrigin = createSelector(selectIdsSelected, selectEntities, (ids, entities) => ids.map((id) => entities[id]));
29
+ const selectItemSelectedOrigin = createSelector(selectIdSelected, selectEntities, (id, entities) => entities[id]);
30
+ const selectFilteredItems = createSelector([selectAll, selectFilters], (allTasks, filters) => {
31
+ return jNgrxFilter(allTasks, filters);
32
+ });
33
+ return {
34
+ selectError,
35
+ selectIsLoading,
36
+ selectIsLoaded,
37
+ selectFilters,
38
+ selectFilteredItems,
39
+ selectAll,
40
+ selectEntities,
41
+ selectIds,
42
+ selectTotal,
43
+ selectLastCriteria,
44
+ selectIdSelected,
45
+ selectItemSelected,
46
+ selectItemSelectedOrigin,
47
+ selectIdsSelected,
48
+ selectItemsSelected,
49
+ selectEntitiesSelected,
50
+ selectItemsSelectedOrigin,
51
+ selectResponses,
52
+ };
53
+ }
54
+ return { getCrudSelectors };
55
+ }
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVfc2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdyeC1lbnRpdHktY3J1ZC9zcmMvbGliL3N0YXRlX3NlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsY0FBYyxFQUFtQixNQUFNLGFBQWEsQ0FBQztBQUM3RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFNUMsTUFBTSxVQUFVLDBCQUEwQixDQUFJLE9BQU87SUFLbkQsU0FBUyxnQkFBZ0IsQ0FDdkIsV0FBNkM7UUFHN0MsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFtQixFQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzNELE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBbUIsRUFBVyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUN2RSxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQW1CLEVBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDckUsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFtQixFQUFvQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUM1RixNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQW1CLEVBQWEsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7UUFDL0UsTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUFtQixFQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO1FBQ3ZFLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBbUIsRUFBbUIsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDakYsOEVBQThFO1FBQzlFLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFtQixFQUFpQixFQUFFLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO1FBQzNGLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBbUIsRUFBdUIsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDdkYsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFtQixFQUFvQixFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUUvRSxNQUFNLFdBQVcsR0FBNkIsY0FBYyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNwRixNQUFNLGVBQWUsR0FBaUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNoRyxNQUFNLGNBQWMsR0FBaUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM5RixNQUFNLGFBQWEsR0FBMEQsY0FBYyxDQUN6RixXQUFXLEVBQ1gsVUFBVSxDQUNYLENBQUM7UUFDRixNQUFNLGtCQUFrQixHQUFtQyxjQUFjLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBRXhHLE1BQU0sa0JBQWtCLEdBQTJCLGNBQWMsQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDaEcsTUFBTSxzQkFBc0IsR0FBdUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3BILE1BQU0sbUJBQW1CLEdBQTZCLGNBQWMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLFFBQXVCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUVuSixNQUFNLGdCQUFnQixHQUF5QyxjQUFjLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzFHLE1BQU0saUJBQWlCLEdBQTZDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFFaEgsTUFBTSxlQUFlLEdBQTBDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFeEcsTUFBTSxFQUNKLFNBQVMsRUFDVCxjQUFjLEVBQ2QsU0FBUyxFQUNULFdBQVcsRUFDWixHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFdEMsTUFBTSx5QkFBeUIsR0FBRyxjQUFjLENBQzlDLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsQ0FBQyxHQUFVLEVBQUUsUUFBdUIsRUFBTyxFQUFFLENBQzNDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFFLFFBQVEsQ0FBQyxFQUFFLENBQU8sQ0FBQyxDQUM1QyxDQUFDO1FBRUYsTUFBTSx3QkFBd0IsR0FBRyxjQUFjLENBQzdDLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsQ0FBQyxFQUFFLEVBQUUsUUFBdUIsRUFBTyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUNuRCxDQUFDO1FBRUYsTUFBTSxtQkFBbUIsR0FBK0IsY0FBYyxDQUFDLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxFQUMvRixDQUFDLFFBQWEsRUFBRSxPQUF5QyxFQUFPLEVBQUU7WUFDaEUsT0FBTyxXQUFXLENBQUksUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FDRixDQUFDO1FBRUYsT0FBTztZQUNMLFdBQVc7WUFDWCxlQUFlO1lBQ2YsY0FBYztZQUNkLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsU0FBUztZQUNULGNBQWM7WUFDZCxTQUFTO1lBQ1QsV0FBVztZQUNYLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsa0JBQWtCO1lBQ2xCLHdCQUF3QjtZQUN4QixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLHNCQUFzQjtZQUN0Qix5QkFBeUI7WUFDekIsZUFBZTtTQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxDQUFDO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NydWRTdGF0ZSwgRGljdGlvbmFyeSwgRW50aXR5Q3J1ZFNlbGVjdG9ycywgRW50aXR5Q3J1ZFN0YXRlLCBGaWx0ZXJNZXRhZGF0YSwgSUNyaXRlcmlhLCBPcHRSZXNwb25zZX0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHtjcmVhdGVTZWxlY3RvciwgTWVtb2l6ZWRTZWxlY3Rvcn0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtqTmdyeEZpbHRlcn0gZnJvbSAnLi9qLW5ncngtZmlsdGVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNydWRTZWxlY3RvcnNGYWN0b3J5PFQ+KGFkYXB0ZXIpIHtcblxuICBmdW5jdGlvbiBnZXRDcnVkU2VsZWN0b3JzPFY+KFxuICAgIHNlbGVjdFN0YXRlOiAoc3RhdGU6IFYpID0+IEVudGl0eUNydWRTdGF0ZTxUPlxuICApOiBFbnRpdHlDcnVkU2VsZWN0b3JzPFQsIFY+O1xuICBmdW5jdGlvbiBnZXRDcnVkU2VsZWN0b3JzPFY+KFxuICAgIHNlbGVjdFN0YXRlOiAoc3RhdGU6IFYpID0+IEVudGl0eUNydWRTdGF0ZTxUPlxuICApOiBFbnRpdHlDcnVkU2VsZWN0b3JzPFQsIFY+IHtcblxuICAgIGNvbnN0IGdldEVycm9yID0gKHN0YXRlOiBDcnVkU3RhdGU8VD4pOiBhbnkgPT4gc3RhdGUuZXJyb3I7XG4gICAgY29uc3QgZ2V0SXNMb2FkaW5nID0gKHN0YXRlOiBDcnVkU3RhdGU8VD4pOiBib29sZWFuID0+IHN0YXRlLmlzTG9hZGluZztcbiAgICBjb25zdCBnZXRJc0xvYWRlZCA9IChzdGF0ZTogQ3J1ZFN0YXRlPFQ+KTogYm9vbGVhbiA9PiBzdGF0ZS5pc0xvYWRlZDtcbiAgICBjb25zdCBnZXRGaWx0ZXJzID0gKHN0YXRlOiBDcnVkU3RhdGU8VD4pOiB7IFtzOiBzdHJpbmddOiBGaWx0ZXJNZXRhZGF0YTsgfSA9PiBzdGF0ZS5maWx0ZXJzO1xuICAgIGNvbnN0IGdldExhc3RDcml0ZXJpYSA9IChzdGF0ZTogQ3J1ZFN0YXRlPFQ+KTogSUNyaXRlcmlhID0+IHN0YXRlLmxhc3RDcml0ZXJpYTtcbiAgICBjb25zdCBnZXRJdGVtU2VsZWN0ZWQgPSAoc3RhdGU6IENydWRTdGF0ZTxUPik6IFQgPT4gc3RhdGUuaXRlbVNlbGVjdGVkO1xuICAgIGNvbnN0IGdldElkU2VsZWN0ZWQgPSAoc3RhdGU6IENydWRTdGF0ZTxUPik6IHN0cmluZyB8IG51bWJlciA9PiBzdGF0ZS5pZFNlbGVjdGVkO1xuICAgIC8vIGNvbnN0IGdldEl0ZW1zU2VsZWN0ZWQgPSAoc3RhdGU6IENydWRTdGF0ZTxUPik6IFRbXSA9PiBzdGF0ZS5pdGVtc1NlbGVjdGVkO1xuICAgIGNvbnN0IGdldEVudGl0aWVzU2VsZWN0ZWQgPSAoc3RhdGU6IENydWRTdGF0ZTxUPik6IERpY3Rpb25hcnk8VD4gPT4gc3RhdGUuZW50aXRpZXNTZWxlY3RlZDtcbiAgICBjb25zdCBnZXRJZHNTZWxlY3RlZCA9IChzdGF0ZTogQ3J1ZFN0YXRlPFQ+KTogc3RyaW5nW10gfCBudW1iZXJbXSA9PiBzdGF0ZS5pZHNTZWxlY3RlZDtcbiAgICBjb25zdCBnZXRSZXNwb25lcyA9IChzdGF0ZTogQ3J1ZFN0YXRlPFQ+KTogT3B0UmVzcG9uc2U8VD5bXSA9PiBzdGF0ZS5yZXNwb25zZXM7XG5cbiAgICBjb25zdCBzZWxlY3RFcnJvcjogTWVtb2l6ZWRTZWxlY3RvcjxWLCBhbnk+ID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIGdldEVycm9yKTtcbiAgICBjb25zdCBzZWxlY3RJc0xvYWRpbmc6IE1lbW9pemVkU2VsZWN0b3I8ViwgYm9vbGVhbj4gPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdGF0ZSwgZ2V0SXNMb2FkaW5nKTtcbiAgICBjb25zdCBzZWxlY3RJc0xvYWRlZDogTWVtb2l6ZWRTZWxlY3RvcjxWLCBib29sZWFuPiA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFN0YXRlLCBnZXRJc0xvYWRlZCk7XG4gICAgY29uc3Qgc2VsZWN0RmlsdGVyczogTWVtb2l6ZWRTZWxlY3RvcjxWLCB7IFtzOiBzdHJpbmddOiBGaWx0ZXJNZXRhZGF0YTsgfT4gPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIHNlbGVjdFN0YXRlLFxuICAgICAgZ2V0RmlsdGVyc1xuICAgICk7XG4gICAgY29uc3Qgc2VsZWN0TGFzdENyaXRlcmlhOiBNZW1vaXplZFNlbGVjdG9yPFYsIElDcml0ZXJpYT4gPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdGF0ZSwgZ2V0TGFzdENyaXRlcmlhKTtcblxuICAgIGNvbnN0IHNlbGVjdEl0ZW1TZWxlY3RlZDogTWVtb2l6ZWRTZWxlY3RvcjxWLCBUPiA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFN0YXRlLCBnZXRJdGVtU2VsZWN0ZWQpO1xuICAgIGNvbnN0IHNlbGVjdEVudGl0aWVzU2VsZWN0ZWQ6IE1lbW9pemVkU2VsZWN0b3I8ViwgRGljdGlvbmFyeTxUPj4gPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdGF0ZSwgZ2V0RW50aXRpZXNTZWxlY3RlZCk7XG4gICAgY29uc3Qgc2VsZWN0SXRlbXNTZWxlY3RlZDogTWVtb2l6ZWRTZWxlY3RvcjxWLCBUW10+ID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0RW50aXRpZXNTZWxlY3RlZCwgKGVudGl0aWVzOiBEaWN0aW9uYXJ5PFQ+KSA9PiBPYmplY3QudmFsdWVzKGVudGl0aWVzKSk7XG5cbiAgICBjb25zdCBzZWxlY3RJZFNlbGVjdGVkOiBNZW1vaXplZFNlbGVjdG9yPFYsIHN0cmluZyB8IG51bWJlcj4gPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdGF0ZSwgZ2V0SWRTZWxlY3RlZCk7XG4gICAgY29uc3Qgc2VsZWN0SWRzU2VsZWN0ZWQ6IE1lbW9pemVkU2VsZWN0b3I8Viwgc3RyaW5nW10gfCBudW1iZXJbXT4gPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdGF0ZSwgZ2V0SWRzU2VsZWN0ZWQpO1xuXG4gICAgY29uc3Qgc2VsZWN0UmVzcG9uc2VzOiBNZW1vaXplZFNlbGVjdG9yPFYsIE9wdFJlc3BvbnNlPFQ+W10+ID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIGdldFJlc3BvbmVzKTtcblxuICAgIGNvbnN0IHtcbiAgICAgIHNlbGVjdEFsbCxcbiAgICAgIHNlbGVjdEVudGl0aWVzLFxuICAgICAgc2VsZWN0SWRzLFxuICAgICAgc2VsZWN0VG90YWxcbiAgICB9ID0gYWRhcHRlci5nZXRTZWxlY3RvcnMoc2VsZWN0U3RhdGUpO1xuXG4gICAgY29uc3Qgc2VsZWN0SXRlbXNTZWxlY3RlZE9yaWdpbiA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgc2VsZWN0SWRzU2VsZWN0ZWQsXG4gICAgICBzZWxlY3RFbnRpdGllcyxcbiAgICAgIChpZHM6IGFueVtdLCBlbnRpdGllczogRGljdGlvbmFyeTxUPik6IGFueSA9PlxuICAgICAgICBpZHMubWFwKChpZDogYW55KSA9PiAoZW50aXRpZXNbaWRdIGFzIFQpKVxuICAgICk7XG5cbiAgICBjb25zdCBzZWxlY3RJdGVtU2VsZWN0ZWRPcmlnaW4gPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIHNlbGVjdElkU2VsZWN0ZWQsXG4gICAgICBzZWxlY3RFbnRpdGllcyxcbiAgICAgIChpZCwgZW50aXRpZXM6IERpY3Rpb25hcnk8VD4pOiBhbnkgPT4gZW50aXRpZXNbaWRdXG4gICAgKTtcblxuICAgIGNvbnN0IHNlbGVjdEZpbHRlcmVkSXRlbXM6IE1lbW9pemVkU2VsZWN0b3I8YW55LCBUW10+ID0gY3JlYXRlU2VsZWN0b3IoW3NlbGVjdEFsbCwgc2VsZWN0RmlsdGVyc10sXG4gICAgICAoYWxsVGFza3M6IFRbXSwgZmlsdGVyczogeyBbczogc3RyaW5nXTogRmlsdGVyTWV0YWRhdGE7IH0pOiBUW10gPT4ge1xuICAgICAgICByZXR1cm4gak5ncnhGaWx0ZXI8VD4oYWxsVGFza3MsIGZpbHRlcnMpO1xuICAgICAgfVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2VsZWN0RXJyb3IsXG4gICAgICBzZWxlY3RJc0xvYWRpbmcsXG4gICAgICBzZWxlY3RJc0xvYWRlZCxcbiAgICAgIHNlbGVjdEZpbHRlcnMsXG4gICAgICBzZWxlY3RGaWx0ZXJlZEl0ZW1zLFxuICAgICAgc2VsZWN0QWxsLFxuICAgICAgc2VsZWN0RW50aXRpZXMsXG4gICAgICBzZWxlY3RJZHMsXG4gICAgICBzZWxlY3RUb3RhbCxcbiAgICAgIHNlbGVjdExhc3RDcml0ZXJpYSxcbiAgICAgIHNlbGVjdElkU2VsZWN0ZWQsXG4gICAgICBzZWxlY3RJdGVtU2VsZWN0ZWQsXG4gICAgICBzZWxlY3RJdGVtU2VsZWN0ZWRPcmlnaW4sXG4gICAgICBzZWxlY3RJZHNTZWxlY3RlZCxcbiAgICAgIHNlbGVjdEl0ZW1zU2VsZWN0ZWQsXG4gICAgICBzZWxlY3RFbnRpdGllc1NlbGVjdGVkLFxuICAgICAgc2VsZWN0SXRlbXNTZWxlY3RlZE9yaWdpbixcbiAgICAgIHNlbGVjdFJlc3BvbnNlcyxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtnZXRDcnVkU2VsZWN0b3JzfTtcbn1cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { filter } from 'rxjs/operators';
2
+ import { ActionEnum } from './models';
3
+ import { isDevMode } from '@angular/core';
4
+ export const ofFailure = () => {
5
+ return input$ => input$.pipe(filter(value => value.type.endsWith(ActionEnum.FAILURE)));
6
+ };
7
+ export function selectIdValue(entity, selectId) {
8
+ const key = selectId(entity);
9
+ if (isDevMode() && key === undefined) {
10
+ console.warn('@ngrx/entity: The entity passed to the `selectId` implementation returned undefined.', 'You should probably provide your own `selectId` implementation.', 'The entity that was passed:', entity, 'The `selectId` implementation:', selectId.toString());
11
+ }
12
+ return key;
13
+ }
14
+ export const toDictionary = (items, adapter) => items.reduce((prev, curr) => {
15
+ const key = selectIdValue(curr, adapter.selectId);
16
+ prev[key] = curr;
17
+ return prev;
18
+ }, {});
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3J4LWVudGl0eS1jcnVkL3NyYy9saWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBQyxVQUFVLEVBQXlCLE1BQU0sVUFBVSxDQUFDO0FBRTVELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHeEMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEdBQWtELEVBQUU7SUFDM0UsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6RixDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUsYUFBYSxDQUFJLE1BQVMsRUFBRSxRQUF1QjtJQUNqRSxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFN0IsSUFBSSxTQUFTLEVBQUUsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1FBQ3BDLE9BQU8sQ0FBQyxJQUFJLENBQ1Ysc0ZBQXNGLEVBQ3RGLGlFQUFpRSxFQUNqRSw2QkFBNkIsRUFDN0IsTUFBTSxFQUNOLGdDQUFnQyxFQUNoQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQ3BCLENBQUM7S0FDSDtJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFJLEtBQVUsRUFBRSxPQUF5QixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBaUIsRUFBRTtJQUNuSCxNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ2pCLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXJ9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7QWN0aW9uRW51bSwgRGljdGlvbmFyeSwgSWRTZWxlY3Rvcn0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHtBY3Rpb259IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7aXNEZXZNb2RlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RW50aXR5QWRhcHRlcn0gZnJvbSAnQG5ncngvZW50aXR5JztcblxuZXhwb3J0IGNvbnN0IG9mRmFpbHVyZSA9IDxUIGV4dGVuZHMgQWN0aW9uPigpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4gPT4ge1xuICByZXR1cm4gaW5wdXQkID0+IGlucHV0JC5waXBlKGZpbHRlcih2YWx1ZSA9PiB2YWx1ZS50eXBlLmVuZHNXaXRoKEFjdGlvbkVudW0uRkFJTFVSRSkpKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3RJZFZhbHVlPFQ+KGVudGl0eTogVCwgc2VsZWN0SWQ6IElkU2VsZWN0b3I8VD4pIHtcbiAgY29uc3Qga2V5ID0gc2VsZWN0SWQoZW50aXR5KTtcblxuICBpZiAoaXNEZXZNb2RlKCkgJiYga2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICAnQG5ncngvZW50aXR5OiBUaGUgZW50aXR5IHBhc3NlZCB0byB0aGUgYHNlbGVjdElkYCBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCB1bmRlZmluZWQuJyxcbiAgICAgICdZb3Ugc2hvdWxkIHByb2JhYmx5IHByb3ZpZGUgeW91ciBvd24gYHNlbGVjdElkYCBpbXBsZW1lbnRhdGlvbi4nLFxuICAgICAgJ1RoZSBlbnRpdHkgdGhhdCB3YXMgcGFzc2VkOicsXG4gICAgICBlbnRpdHksXG4gICAgICAnVGhlIGBzZWxlY3RJZGAgaW1wbGVtZW50YXRpb246JyxcbiAgICAgIHNlbGVjdElkLnRvU3RyaW5nKClcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGtleTtcbn1cblxuZXhwb3J0IGNvbnN0IHRvRGljdGlvbmFyeSA9IDxUPihpdGVtczogVFtdLCBhZGFwdGVyOiBFbnRpdHlBZGFwdGVyPFQ+KSA9PiBpdGVtcy5yZWR1Y2UoKHByZXYsIGN1cnIpOiBEaWN0aW9uYXJ5PFQ+ID0+IHtcbiAgY29uc3Qga2V5ID0gc2VsZWN0SWRWYWx1ZShjdXJyLCBhZGFwdGVyLnNlbGVjdElkKTtcbiAgcHJldltrZXldID0gY3VycjtcbiAgcmV0dXJuIHByZXY7XG59LCB7fSk7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdyeC1lbnRpdHktY3J1ZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25ncngtZW50aXR5LWNydWQvc3JjL25ncngtZW50aXR5LWNydWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,7 @@
1
+ export * from './lib/models';
2
+ export * from './lib/create_adapter';
3
+ export * from './lib/effect';
4
+ export * from './lib/base-crud.service';
5
+ export * from './lib/base-crud-gql.service';
6
+ export { createCrudOns } from './lib/reducer';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25ncngtZW50aXR5LWNydWQvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jcmVhdGVfYWRhcHRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lZmZlY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jcnVkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1jcnVkLWdxbC5zZXJ2aWNlJztcbmV4cG9ydCB7Y3JlYXRlQ3J1ZE9uc30gZnJvbSAnLi9saWIvcmVkdWNlcic7XG4iXX0=