@eui/core 15.4.1 → 15.4.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 (213) hide show
  1. package/LICENSE +296 -296
  2. package/README.md +26 -26
  3. package/assets/i18n-eui/bg.json +114 -114
  4. package/assets/i18n-eui/cs.json +114 -114
  5. package/assets/i18n-eui/da.json +114 -114
  6. package/assets/i18n-eui/de.json +114 -114
  7. package/assets/i18n-eui/el.json +114 -114
  8. package/assets/i18n-eui/en.json +113 -113
  9. package/assets/i18n-eui/es.json +114 -114
  10. package/assets/i18n-eui/et.json +114 -114
  11. package/assets/i18n-eui/fi.json +114 -114
  12. package/assets/i18n-eui/fr.json +114 -114
  13. package/assets/i18n-eui/ga.json +114 -114
  14. package/assets/i18n-eui/hr.json +114 -114
  15. package/assets/i18n-eui/hu.json +114 -114
  16. package/assets/i18n-eui/it.json +114 -114
  17. package/assets/i18n-eui/lt.json +114 -114
  18. package/assets/i18n-eui/lv.json +114 -114
  19. package/assets/i18n-eui/mt.json +114 -114
  20. package/assets/i18n-eui/nl.json +114 -114
  21. package/assets/i18n-eui/pl.json +114 -114
  22. package/assets/i18n-eui/pt.json +114 -114
  23. package/assets/i18n-eui/ro.json +114 -114
  24. package/assets/i18n-eui/sk.json +114 -114
  25. package/assets/i18n-eui/sl.json +114 -114
  26. package/assets/i18n-eui/sv.json +114 -114
  27. package/docs/classes/RouterMock.html +5 -5
  28. package/docs/dependencies.html +7 -95
  29. package/docs/index.html +59 -36
  30. package/docs/injectables/CoreAppEffects.html +51 -51
  31. package/docs/js/menu-wc.js +7 -12
  32. package/docs/js/menu-wc_es5.js +1 -1
  33. package/docs/js/search/search_index.js +2 -2
  34. package/docs/miscellaneous/variables.html +1211 -1211
  35. package/esm2020/eui-core.mjs +4 -4
  36. package/esm2020/index.mjs +13 -13
  37. package/esm2020/lib/eui-core.module.mjs +78 -78
  38. package/esm2020/lib/helpers/date-helpers.mjs +3 -3
  39. package/esm2020/lib/helpers/dom-helpers.mjs +87 -87
  40. package/esm2020/lib/helpers/event-helpers.mjs +9 -9
  41. package/esm2020/lib/helpers/form-helpers.mjs +42 -42
  42. package/esm2020/lib/helpers/format-helpers.mjs +66 -66
  43. package/esm2020/lib/helpers/http-helpers.mjs +7 -7
  44. package/esm2020/lib/helpers/index.mjs +8 -8
  45. package/esm2020/lib/helpers/utils.mjs +7 -7
  46. package/esm2020/lib/interceptors/add-lang-param.interceptor.mjs +35 -35
  47. package/esm2020/lib/interceptors/cache-prevention.interceptor.mjs +21 -21
  48. package/esm2020/lib/interceptors/cors-security.interceptor.mjs +15 -15
  49. package/esm2020/lib/interceptors/csrf-prevention.interceptor.mjs +15 -15
  50. package/esm2020/lib/interceptors/eu-login-session-timeout-handling.interceptor.mjs +72 -72
  51. package/esm2020/lib/interceptors/index.mjs +8 -8
  52. package/esm2020/lib/interceptors/openid/index.mjs +4 -4
  53. package/esm2020/lib/interceptors/openid/openid-connect.interceptor.mjs +149 -149
  54. package/esm2020/lib/interceptors/openid/openid-connect.service.mjs +56 -56
  55. package/esm2020/lib/interceptors/openid/openid-connect.service.mock.mjs +8 -8
  56. package/esm2020/lib/interceptors/ux-request-error-model.interceptor.mjs +31 -31
  57. package/esm2020/lib/services/app/eui-init-app.mjs +29 -29
  58. package/esm2020/lib/services/app/eui-pre-init-app.mjs +43 -43
  59. package/esm2020/lib/services/app/eui-startup.mjs +40 -40
  60. package/esm2020/lib/services/app/factories/log.mjs +55 -55
  61. package/esm2020/lib/services/app/index.mjs +2 -2
  62. package/esm2020/lib/services/config/defaults.mjs +68 -68
  63. package/esm2020/lib/services/config/tokens.mjs +74 -74
  64. package/esm2020/lib/services/errors/eui.error.mjs +38 -38
  65. package/esm2020/lib/services/errors/global-error-handler.mjs +24 -24
  66. package/esm2020/lib/services/errors/http-error-handler-callback-functions.mjs +17 -17
  67. package/esm2020/lib/services/errors/http-error-handler.interceptor.mjs +55 -55
  68. package/esm2020/lib/services/errors/index.mjs +5 -5
  69. package/esm2020/lib/services/i18n/i18n.loader.mjs +198 -198
  70. package/esm2020/lib/services/i18n/i18n.resource.mjs +43 -43
  71. package/esm2020/lib/services/i18n/i18n.service.mjs +228 -228
  72. package/esm2020/lib/services/i18n/i18n.service.mock.mjs +38 -38
  73. package/esm2020/lib/services/i18n/index.mjs +6 -6
  74. package/esm2020/lib/services/index.mjs +19 -19
  75. package/esm2020/lib/services/locale/index.mjs +3 -3
  76. package/esm2020/lib/services/locale/locale.service.mjs +232 -232
  77. package/esm2020/lib/services/locale/locale.service.mock.mjs +43 -43
  78. package/esm2020/lib/services/log/index.mjs +4 -4
  79. package/esm2020/lib/services/log/log.module.mjs +38 -38
  80. package/esm2020/lib/services/log/log.service.mjs +51 -51
  81. package/esm2020/lib/services/log/log.service.mock.mjs +7 -7
  82. package/esm2020/lib/services/permission/permission.service.mjs +110 -110
  83. package/esm2020/lib/services/queue/api-queue.service.mjs +137 -137
  84. package/esm2020/lib/services/queue/api-queue.service.mock.mjs +23 -23
  85. package/esm2020/lib/services/queue/index.mjs +3 -3
  86. package/esm2020/lib/services/storage/async-storage.service.mjs +17 -17
  87. package/esm2020/lib/services/storage/async-storage.service.mock.mjs +22 -22
  88. package/esm2020/lib/services/storage/index.mjs +8 -8
  89. package/esm2020/lib/services/storage/local-forage.service.mjs +93 -93
  90. package/esm2020/lib/services/storage/local-storage.service.mjs +75 -75
  91. package/esm2020/lib/services/storage/session-storage.service.mjs +75 -75
  92. package/esm2020/lib/services/storage/storage.service.mjs +6 -6
  93. package/esm2020/lib/services/storage/storage.service.mock.mjs +12 -12
  94. package/esm2020/lib/services/store/actions/app.actions.mjs +74 -74
  95. package/esm2020/lib/services/store/actions/i18n.actions.mjs +11 -11
  96. package/esm2020/lib/services/store/actions/index.mjs +6 -6
  97. package/esm2020/lib/services/store/actions/locale.actions.mjs +11 -11
  98. package/esm2020/lib/services/store/actions/notifications.actions.mjs +11 -11
  99. package/esm2020/lib/services/store/actions/user.actions.mjs +39 -39
  100. package/esm2020/lib/services/store/effects/app.effects.mjs +55 -55
  101. package/esm2020/lib/services/store/effects/index.mjs +4 -4
  102. package/esm2020/lib/services/store/index.mjs +6 -6
  103. package/esm2020/lib/services/store/reducers/app.reducers.mjs +56 -56
  104. package/esm2020/lib/services/store/reducers/core.reducers.mjs +13 -13
  105. package/esm2020/lib/services/store/reducers/i18n.reducers.mjs +16 -16
  106. package/esm2020/lib/services/store/reducers/index.mjs +8 -8
  107. package/esm2020/lib/services/store/reducers/locale.reducers.mjs +16 -16
  108. package/esm2020/lib/services/store/reducers/meta.reducers.mjs +89 -89
  109. package/esm2020/lib/services/store/reducers/notifications.reducers.mjs +13 -13
  110. package/esm2020/lib/services/store/reducers/user.reducers.mjs +43 -43
  111. package/esm2020/lib/services/store/store.service.mjs +112 -112
  112. package/esm2020/lib/services/store/store.service.mock.mjs +22 -22
  113. package/esm2020/lib/services/user/index.mjs +3 -3
  114. package/esm2020/lib/services/user/user.service.mjs +64 -64
  115. package/esm2020/lib/services/user/user.service.mock.mjs +32 -32
  116. package/esm2020/lib/services/ux-app-shell.service.mjs +690 -690
  117. package/esm2020/lib/services/ux-dynamic-component/ux-dynamic-component.service.mjs +63 -63
  118. package/esm2020/lib/services/ux-dynamic-menu/ux-dynamic-menu.service.mjs +66 -66
  119. package/esm2020/lib/services/ux-error-feedback/ux-error-feedback.service.mjs +99 -99
  120. package/esm2020/lib/services/ux-error-feedback/ux-error-handler.operator.mjs +16 -16
  121. package/esm2020/lib/services/ux-timezone.service.mjs +716 -716
  122. package/fesm2015/eui-core.mjs +4484 -4484
  123. package/fesm2015/eui-core.mjs.map +1 -1
  124. package/fesm2020/eui-core.mjs +4538 -4538
  125. package/fesm2020/eui-core.mjs.map +1 -1
  126. package/index.d.ts +5 -5
  127. package/lib/eui-core.module.d.ts +20 -20
  128. package/lib/helpers/date-helpers.d.ts +2 -2
  129. package/lib/helpers/dom-helpers.d.ts +26 -26
  130. package/lib/helpers/event-helpers.d.ts +1 -1
  131. package/lib/helpers/form-helpers.d.ts +10 -10
  132. package/lib/helpers/format-helpers.d.ts +12 -12
  133. package/lib/helpers/http-helpers.d.ts +2 -2
  134. package/lib/helpers/index.d.ts +7 -7
  135. package/lib/helpers/utils.d.ts +6 -6
  136. package/lib/interceptors/add-lang-param.interceptor.d.ts +16 -16
  137. package/lib/interceptors/cache-prevention.interceptor.d.ts +8 -8
  138. package/lib/interceptors/cors-security.interceptor.d.ts +8 -8
  139. package/lib/interceptors/csrf-prevention.interceptor.d.ts +8 -8
  140. package/lib/interceptors/eu-login-session-timeout-handling.interceptor.d.ts +12 -12
  141. package/lib/interceptors/index.d.ts +7 -7
  142. package/lib/interceptors/openid/index.d.ts +3 -3
  143. package/lib/interceptors/openid/openid-connect.interceptor.d.ts +14 -14
  144. package/lib/interceptors/openid/openid-connect.service.d.ts +17 -17
  145. package/lib/interceptors/openid/openid-connect.service.mock.d.ts +5 -5
  146. package/lib/interceptors/ux-request-error-model.interceptor.d.ts +13 -13
  147. package/lib/services/app/eui-init-app.d.ts +2 -2
  148. package/lib/services/app/eui-pre-init-app.d.ts +16 -16
  149. package/lib/services/app/eui-startup.d.ts +4 -4
  150. package/lib/services/app/factories/log.d.ts +25 -25
  151. package/lib/services/app/index.d.ts +1 -1
  152. package/lib/services/config/defaults.d.ts +11 -11
  153. package/lib/services/config/tokens.d.ts +19 -19
  154. package/lib/services/errors/eui.error.d.ts +15 -15
  155. package/lib/services/errors/global-error-handler.d.ts +10 -10
  156. package/lib/services/errors/http-error-handler-callback-functions.d.ts +6 -6
  157. package/lib/services/errors/http-error-handler.interceptor.d.ts +22 -22
  158. package/lib/services/errors/index.d.ts +4 -4
  159. package/lib/services/i18n/i18n.loader.d.ts +79 -79
  160. package/lib/services/i18n/i18n.resource.d.ts +35 -35
  161. package/lib/services/i18n/i18n.service.d.ts +73 -73
  162. package/lib/services/i18n/i18n.service.mock.d.ts +19 -19
  163. package/lib/services/i18n/index.d.ts +4 -4
  164. package/lib/services/index.d.ts +18 -18
  165. package/lib/services/locale/index.d.ts +2 -2
  166. package/lib/services/locale/locale.service.d.ts +68 -68
  167. package/lib/services/locale/locale.service.mock.d.ts +15 -15
  168. package/lib/services/log/index.d.ts +3 -3
  169. package/lib/services/log/log.module.d.ts +15 -15
  170. package/lib/services/log/log.service.d.ts +27 -27
  171. package/lib/services/log/log.service.mock.d.ts +4 -4
  172. package/lib/services/permission/permission.service.d.ts +52 -52
  173. package/lib/services/queue/api-queue.service.d.ts +76 -76
  174. package/lib/services/queue/api-queue.service.mock.d.ts +13 -13
  175. package/lib/services/queue/index.d.ts +2 -2
  176. package/lib/services/storage/async-storage.service.d.ts +44 -44
  177. package/lib/services/storage/async-storage.service.mock.d.ts +11 -11
  178. package/lib/services/storage/index.d.ts +7 -7
  179. package/lib/services/storage/local-forage.service.d.ts +48 -48
  180. package/lib/services/storage/local-storage.service.d.ts +34 -34
  181. package/lib/services/storage/session-storage.service.d.ts +34 -34
  182. package/lib/services/storage/storage.service.d.ts +28 -28
  183. package/lib/services/storage/storage.service.mock.d.ts +7 -7
  184. package/lib/services/store/actions/app.actions.d.ts +82 -82
  185. package/lib/services/store/actions/i18n.actions.d.ts +11 -11
  186. package/lib/services/store/actions/index.d.ts +5 -5
  187. package/lib/services/store/actions/locale.actions.d.ts +11 -11
  188. package/lib/services/store/actions/notifications.actions.d.ts +10 -10
  189. package/lib/services/store/actions/user.actions.d.ts +35 -35
  190. package/lib/services/store/effects/app.effects.d.ts +19 -19
  191. package/lib/services/store/effects/index.d.ts +3 -3
  192. package/lib/services/store/index.d.ts +5 -5
  193. package/lib/services/store/reducers/app.reducers.d.ts +3 -3
  194. package/lib/services/store/reducers/core.reducers.d.ts +3 -3
  195. package/lib/services/store/reducers/i18n.reducers.d.ts +3 -3
  196. package/lib/services/store/reducers/index.d.ts +7 -7
  197. package/lib/services/store/reducers/locale.reducers.d.ts +3 -3
  198. package/lib/services/store/reducers/meta.reducers.d.ts +17 -17
  199. package/lib/services/store/reducers/notifications.reducers.d.ts +3 -3
  200. package/lib/services/store/reducers/user.reducers.d.ts +3 -3
  201. package/lib/services/store/store.service.d.ts +43 -43
  202. package/lib/services/store/store.service.mock.d.ts +12 -12
  203. package/lib/services/user/index.d.ts +2 -2
  204. package/lib/services/user/user.service.d.ts +15 -15
  205. package/lib/services/user/user.service.mock.d.ts +16 -16
  206. package/lib/services/ux-app-shell.service.d.ts +155 -155
  207. package/lib/services/ux-dynamic-component/ux-dynamic-component.service.d.ts +36 -36
  208. package/lib/services/ux-dynamic-menu/ux-dynamic-menu.service.d.ts +14 -14
  209. package/lib/services/ux-error-feedback/ux-error-feedback.service.d.ts +35 -35
  210. package/lib/services/ux-error-feedback/ux-error-handler.operator.d.ts +3 -3
  211. package/lib/services/ux-timezone.service.d.ts +269 -269
  212. package/package.json +2 -2
  213. package/docs/overview.html +0 -171
@@ -1,43 +1,43 @@
1
- import { CoreUserActionTypes, } from '../actions/user.actions';
2
- import { initialUserState } from '@eui/base';
3
- const updateUser = (state, action) => {
4
- let fullName = action.payload.fullName;
5
- if (!fullName) {
6
- fullName = `${action.payload.firstName || ''} ${action.payload.lastName || ''}`.trim();
7
- }
8
- return Object.assign({}, state, action.payload, { fullName });
9
- };
10
- const updateUserDetails = (state, action) => {
11
- let fullName = action.payload.fullName;
12
- if (!fullName) {
13
- fullName = `${action.payload.firstName || ''} ${action.payload.lastName || ''}`.trim();
14
- }
15
- // todo should be checked if state.details is really there
16
- const details = Object.assign({}, state.details, action.payload, { fullName });
17
- return Object.assign({}, state, details);
18
- };
19
- const updateUserPreferences = (state, action) => {
20
- const preferences = Object.assign({}, state.preferences, action.payload);
21
- return Object.assign({}, state, { preferences });
22
- };
23
- const updateUserRights = (state, action) => Object.assign({}, state, { rights: [...action.payload] });
24
- const updateUserDashboard = (state, action) => {
25
- // apply the dashboard to preferences
26
- const preferences = Object.assign({}, state.preferences, { dashboard: action.payload });
27
- // update the state
28
- return { ...state, preferences };
29
- };
30
- const actionToReducerMap = {
31
- [CoreUserActionTypes.UPDATE_USER_DETAILS]: updateUserDetails,
32
- [CoreUserActionTypes.UPDATE_USER_PREFERENCES]: updateUserPreferences,
33
- [CoreUserActionTypes.UPDATE_USER_STATE]: updateUser,
34
- [CoreUserActionTypes.UPDATE_USER_RIGHTS]: updateUserRights,
35
- [CoreUserActionTypes.UPDATE_USER_DASHBOARD]: updateUserDashboard,
36
- };
37
- export const coreUserReducers = (state = initialUserState, action) => {
38
- if (actionToReducerMap[action.type]) {
39
- return actionToReducerMap[action.type](state, action);
40
- }
41
- return state;
42
- };
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5yZWR1Y2Vycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvc3RvcmUvcmVkdWNlcnMvdXNlci5yZWR1Y2Vycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0gsbUJBQW1CLEdBT3RCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFhLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXhELE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBZ0IsRUFBRSxNQUE2QixFQUFhLEVBQUU7SUFDOUUsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDdkMsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUNYLFFBQVEsR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztLQUMxRjtJQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFnQixFQUFFLE1BQStCLEVBQWEsRUFBRTtJQUN2RixJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUN2QyxJQUFJLENBQUMsUUFBUSxFQUFFO1FBQ1gsUUFBUSxHQUFHLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksRUFBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0tBQzFGO0lBQ0QsMERBQTBEO0lBQzFELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0UsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDN0MsQ0FBQyxDQUFDO0FBRUYsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQWdCLEVBQUUsTUFBbUMsRUFBYSxFQUFFO0lBQy9GLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUNyRCxDQUFDLENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBZ0IsRUFBRSxNQUE4QixFQUFhLEVBQUUsQ0FDckYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRTlELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFnQixFQUFFLE1BQWlDLEVBQUUsRUFBRTtJQUNoRixxQ0FBcUM7SUFDckMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN4RixtQkFBbUI7SUFDbkIsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLFdBQVcsRUFBRSxDQUFDO0FBQ3JDLENBQUMsQ0FBQztBQUVGLE1BQU0sa0JBQWtCLEdBQWdGO0lBQ3BHLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsRUFBRSxpQkFBaUI7SUFDNUQsQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLHFCQUFxQjtJQUNwRSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsVUFBVTtJQUNuRCxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLEVBQUUsZ0JBQWdCO0lBQzFELENBQUMsbUJBQW1CLENBQUMscUJBQXFCLENBQUMsRUFBRSxtQkFBbUI7Q0FDbkUsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFvRCxDQUFDLEtBQUssR0FBRyxnQkFBZ0IsRUFBRSxNQUF1QixFQUFFLEVBQUU7SUFDbkksSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDakMsT0FBTyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQ3pEO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgQ29yZVVzZXJBY3Rpb25UeXBlcyxcclxuICAgIENvcmVVc2VyQWN0aW9ucyxcclxuICAgIFVwZGF0ZVVzZXJEYXNoYm9hcmRBY3Rpb24sXHJcbiAgICBVcGRhdGVVc2VyU3RhdGVBY3Rpb24sXHJcbiAgICBVcGRhdGVVc2VyRGV0YWlsc0FjdGlvbixcclxuICAgIFVwZGF0ZVVzZXJQcmVmZXJlbmNlc0FjdGlvbixcclxuICAgIFVwZGF0ZVVzZXJSaWdodHNBY3Rpb24sXHJcbn0gZnJvbSAnLi4vYWN0aW9ucy91c2VyLmFjdGlvbnMnO1xyXG5pbXBvcnQgeyBVc2VyU3RhdGUsIGluaXRpYWxVc2VyU3RhdGUgfSBmcm9tICdAZXVpL2Jhc2UnO1xyXG5cclxuY29uc3QgdXBkYXRlVXNlciA9IChzdGF0ZTogVXNlclN0YXRlLCBhY3Rpb246IFVwZGF0ZVVzZXJTdGF0ZUFjdGlvbik6IFVzZXJTdGF0ZSA9PiB7XHJcbiAgICBsZXQgZnVsbE5hbWUgPSBhY3Rpb24ucGF5bG9hZC5mdWxsTmFtZTtcclxuICAgIGlmICghZnVsbE5hbWUpIHtcclxuICAgICAgICBmdWxsTmFtZSA9IGAke2FjdGlvbi5wYXlsb2FkLmZpcnN0TmFtZSB8fCAnJ30gJHthY3Rpb24ucGF5bG9hZC5sYXN0TmFtZSB8fCAnJ31gLnRyaW0oKTtcclxuICAgIH1cclxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgYWN0aW9uLnBheWxvYWQsIHsgZnVsbE5hbWUgfSk7XHJcbn07XHJcblxyXG5jb25zdCB1cGRhdGVVc2VyRGV0YWlscyA9IChzdGF0ZTogVXNlclN0YXRlLCBhY3Rpb246IFVwZGF0ZVVzZXJEZXRhaWxzQWN0aW9uKTogVXNlclN0YXRlID0+IHtcclxuICAgIGxldCBmdWxsTmFtZSA9IGFjdGlvbi5wYXlsb2FkLmZ1bGxOYW1lO1xyXG4gICAgaWYgKCFmdWxsTmFtZSkge1xyXG4gICAgICAgIGZ1bGxOYW1lID0gYCR7YWN0aW9uLnBheWxvYWQuZmlyc3ROYW1lIHx8ICcnfSAke2FjdGlvbi5wYXlsb2FkLmxhc3ROYW1lIHx8ICcnfWAudHJpbSgpO1xyXG4gICAgfVxyXG4gICAgLy8gdG9kbyBzaG91bGQgYmUgY2hlY2tlZCBpZiBzdGF0ZS5kZXRhaWxzIGlzIHJlYWxseSB0aGVyZVxyXG4gICAgY29uc3QgZGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLmRldGFpbHMsIGFjdGlvbi5wYXlsb2FkLCB7IGZ1bGxOYW1lIH0pO1xyXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCBkZXRhaWxzKTtcclxufTtcclxuXHJcbmNvbnN0IHVwZGF0ZVVzZXJQcmVmZXJlbmNlcyA9IChzdGF0ZTogVXNlclN0YXRlLCBhY3Rpb246IFVwZGF0ZVVzZXJQcmVmZXJlbmNlc0FjdGlvbik6IFVzZXJTdGF0ZSA9PiB7XHJcbiAgICBjb25zdCBwcmVmZXJlbmNlcyA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnByZWZlcmVuY2VzLCBhY3Rpb24ucGF5bG9hZCk7XHJcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHsgcHJlZmVyZW5jZXMgfSk7XHJcbn07XHJcblxyXG5jb25zdCB1cGRhdGVVc2VyUmlnaHRzID0gKHN0YXRlOiBVc2VyU3RhdGUsIGFjdGlvbjogVXBkYXRlVXNlclJpZ2h0c0FjdGlvbik6IFVzZXJTdGF0ZSA9PlxyXG4gICAgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHsgcmlnaHRzOiBbLi4uYWN0aW9uLnBheWxvYWRdIH0pO1xyXG5cclxuY29uc3QgdXBkYXRlVXNlckRhc2hib2FyZCA9IChzdGF0ZTogVXNlclN0YXRlLCBhY3Rpb246IFVwZGF0ZVVzZXJEYXNoYm9hcmRBY3Rpb24pID0+IHtcclxuICAgIC8vIGFwcGx5IHRoZSBkYXNoYm9hcmQgdG8gcHJlZmVyZW5jZXNcclxuICAgIGNvbnN0IHByZWZlcmVuY2VzID0gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUucHJlZmVyZW5jZXMsIHsgZGFzaGJvYXJkOiBhY3Rpb24ucGF5bG9hZCB9KTtcclxuICAgIC8vIHVwZGF0ZSB0aGUgc3RhdGVcclxuICAgIHJldHVybiB7IC4uLnN0YXRlLCBwcmVmZXJlbmNlcyB9O1xyXG59O1xyXG5cclxuY29uc3QgYWN0aW9uVG9SZWR1Y2VyTWFwOiB7IFtrZXk6IHN0cmluZ106IChzdGF0ZTogVXNlclN0YXRlLCBhY3Rpb246IENvcmVVc2VyQWN0aW9ucykgPT4gVXNlclN0YXRlIH0gPSB7XHJcbiAgICBbQ29yZVVzZXJBY3Rpb25UeXBlcy5VUERBVEVfVVNFUl9ERVRBSUxTXTogdXBkYXRlVXNlckRldGFpbHMsXHJcbiAgICBbQ29yZVVzZXJBY3Rpb25UeXBlcy5VUERBVEVfVVNFUl9QUkVGRVJFTkNFU106IHVwZGF0ZVVzZXJQcmVmZXJlbmNlcyxcclxuICAgIFtDb3JlVXNlckFjdGlvblR5cGVzLlVQREFURV9VU0VSX1NUQVRFXTogdXBkYXRlVXNlcixcclxuICAgIFtDb3JlVXNlckFjdGlvblR5cGVzLlVQREFURV9VU0VSX1JJR0hUU106IHVwZGF0ZVVzZXJSaWdodHMsXHJcbiAgICBbQ29yZVVzZXJBY3Rpb25UeXBlcy5VUERBVEVfVVNFUl9EQVNIQk9BUkRdOiB1cGRhdGVVc2VyRGFzaGJvYXJkLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGNvcmVVc2VyUmVkdWNlcnM6IChzdGF0ZTogVXNlclN0YXRlLCBhY3Rpb246IEFjdGlvbikgPT4gVXNlclN0YXRlID0gKHN0YXRlID0gaW5pdGlhbFVzZXJTdGF0ZSwgYWN0aW9uOiBDb3JlVXNlckFjdGlvbnMpID0+IHtcclxuICAgIGlmIChhY3Rpb25Ub1JlZHVjZXJNYXBbYWN0aW9uLnR5cGVdKSB7XHJcbiAgICAgICAgcmV0dXJuIGFjdGlvblRvUmVkdWNlck1hcFthY3Rpb24udHlwZV0oc3RhdGUsIGFjdGlvbik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3RhdGU7XHJcbn07XHJcbiJdfQ==
1
+ import { CoreUserActionTypes, } from '../actions/user.actions';
2
+ import { initialUserState } from '@eui/base';
3
+ const updateUser = (state, action) => {
4
+ let fullName = action.payload.fullName;
5
+ if (!fullName) {
6
+ fullName = `${action.payload.firstName || ''} ${action.payload.lastName || ''}`.trim();
7
+ }
8
+ return Object.assign({}, state, action.payload, { fullName });
9
+ };
10
+ const updateUserDetails = (state, action) => {
11
+ let fullName = action.payload.fullName;
12
+ if (!fullName) {
13
+ fullName = `${action.payload.firstName || ''} ${action.payload.lastName || ''}`.trim();
14
+ }
15
+ // todo should be checked if state.details is really there
16
+ const details = Object.assign({}, state.details, action.payload, { fullName });
17
+ return Object.assign({}, state, details);
18
+ };
19
+ const updateUserPreferences = (state, action) => {
20
+ const preferences = Object.assign({}, state.preferences, action.payload);
21
+ return Object.assign({}, state, { preferences });
22
+ };
23
+ const updateUserRights = (state, action) => Object.assign({}, state, { rights: [...action.payload] });
24
+ const updateUserDashboard = (state, action) => {
25
+ // apply the dashboard to preferences
26
+ const preferences = Object.assign({}, state.preferences, { dashboard: action.payload });
27
+ // update the state
28
+ return { ...state, preferences };
29
+ };
30
+ const actionToReducerMap = {
31
+ [CoreUserActionTypes.UPDATE_USER_DETAILS]: updateUserDetails,
32
+ [CoreUserActionTypes.UPDATE_USER_PREFERENCES]: updateUserPreferences,
33
+ [CoreUserActionTypes.UPDATE_USER_STATE]: updateUser,
34
+ [CoreUserActionTypes.UPDATE_USER_RIGHTS]: updateUserRights,
35
+ [CoreUserActionTypes.UPDATE_USER_DASHBOARD]: updateUserDashboard,
36
+ };
37
+ export const coreUserReducers = (state = initialUserState, action) => {
38
+ if (actionToReducerMap[action.type]) {
39
+ return actionToReducerMap[action.type](state, action);
40
+ }
41
+ return state;
42
+ };
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5yZWR1Y2Vycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvc3RvcmUvcmVkdWNlcnMvdXNlci5yZWR1Y2Vycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0gsbUJBQW1CLEdBT3RCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFhLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXhELE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBZ0IsRUFBRSxNQUE2QixFQUFhLEVBQUU7SUFDOUUsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDdkMsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUNYLFFBQVEsR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztLQUMxRjtJQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFnQixFQUFFLE1BQStCLEVBQWEsRUFBRTtJQUN2RixJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUN2QyxJQUFJLENBQUMsUUFBUSxFQUFFO1FBQ1gsUUFBUSxHQUFHLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksRUFBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0tBQzFGO0lBQ0QsMERBQTBEO0lBQzFELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0UsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDN0MsQ0FBQyxDQUFDO0FBRUYsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQWdCLEVBQUUsTUFBbUMsRUFBYSxFQUFFO0lBQy9GLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUNyRCxDQUFDLENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBZ0IsRUFBRSxNQUE4QixFQUFhLEVBQUUsQ0FDckYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRTlELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFnQixFQUFFLE1BQWlDLEVBQUUsRUFBRTtJQUNoRixxQ0FBcUM7SUFDckMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN4RixtQkFBbUI7SUFDbkIsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLFdBQVcsRUFBRSxDQUFDO0FBQ3JDLENBQUMsQ0FBQztBQUVGLE1BQU0sa0JBQWtCLEdBQWdGO0lBQ3BHLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsRUFBRSxpQkFBaUI7SUFDNUQsQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLHFCQUFxQjtJQUNwRSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsVUFBVTtJQUNuRCxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLEVBQUUsZ0JBQWdCO0lBQzFELENBQUMsbUJBQW1CLENBQUMscUJBQXFCLENBQUMsRUFBRSxtQkFBbUI7Q0FDbkUsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFvRCxDQUFDLEtBQUssR0FBRyxnQkFBZ0IsRUFBRSxNQUF1QixFQUFFLEVBQUU7SUFDbkksSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDakMsT0FBTyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQ3pEO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgICBDb3JlVXNlckFjdGlvblR5cGVzLFxuICAgIENvcmVVc2VyQWN0aW9ucyxcbiAgICBVcGRhdGVVc2VyRGFzaGJvYXJkQWN0aW9uLFxuICAgIFVwZGF0ZVVzZXJTdGF0ZUFjdGlvbixcbiAgICBVcGRhdGVVc2VyRGV0YWlsc0FjdGlvbixcbiAgICBVcGRhdGVVc2VyUHJlZmVyZW5jZXNBY3Rpb24sXG4gICAgVXBkYXRlVXNlclJpZ2h0c0FjdGlvbixcbn0gZnJvbSAnLi4vYWN0aW9ucy91c2VyLmFjdGlvbnMnO1xuaW1wb3J0IHsgVXNlclN0YXRlLCBpbml0aWFsVXNlclN0YXRlIH0gZnJvbSAnQGV1aS9iYXNlJztcblxuY29uc3QgdXBkYXRlVXNlciA9IChzdGF0ZTogVXNlclN0YXRlLCBhY3Rpb246IFVwZGF0ZVVzZXJTdGF0ZUFjdGlvbik6IFVzZXJTdGF0ZSA9PiB7XG4gICAgbGV0IGZ1bGxOYW1lID0gYWN0aW9uLnBheWxvYWQuZnVsbE5hbWU7XG4gICAgaWYgKCFmdWxsTmFtZSkge1xuICAgICAgICBmdWxsTmFtZSA9IGAke2FjdGlvbi5wYXlsb2FkLmZpcnN0TmFtZSB8fCAnJ30gJHthY3Rpb24ucGF5bG9hZC5sYXN0TmFtZSB8fCAnJ31gLnRyaW0oKTtcbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCBhY3Rpb24ucGF5bG9hZCwgeyBmdWxsTmFtZSB9KTtcbn07XG5cbmNvbnN0IHVwZGF0ZVVzZXJEZXRhaWxzID0gKHN0YXRlOiBVc2VyU3RhdGUsIGFjdGlvbjogVXBkYXRlVXNlckRldGFpbHNBY3Rpb24pOiBVc2VyU3RhdGUgPT4ge1xuICAgIGxldCBmdWxsTmFtZSA9IGFjdGlvbi5wYXlsb2FkLmZ1bGxOYW1lO1xuICAgIGlmICghZnVsbE5hbWUpIHtcbiAgICAgICAgZnVsbE5hbWUgPSBgJHthY3Rpb24ucGF5bG9hZC5maXJzdE5hbWUgfHwgJyd9ICR7YWN0aW9uLnBheWxvYWQubGFzdE5hbWUgfHwgJyd9YC50cmltKCk7XG4gICAgfVxuICAgIC8vIHRvZG8gc2hvdWxkIGJlIGNoZWNrZWQgaWYgc3RhdGUuZGV0YWlscyBpcyByZWFsbHkgdGhlcmVcbiAgICBjb25zdCBkZXRhaWxzID0gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuZGV0YWlscywgYWN0aW9uLnBheWxvYWQsIHsgZnVsbE5hbWUgfSk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCBkZXRhaWxzKTtcbn07XG5cbmNvbnN0IHVwZGF0ZVVzZXJQcmVmZXJlbmNlcyA9IChzdGF0ZTogVXNlclN0YXRlLCBhY3Rpb246IFVwZGF0ZVVzZXJQcmVmZXJlbmNlc0FjdGlvbik6IFVzZXJTdGF0ZSA9PiB7XG4gICAgY29uc3QgcHJlZmVyZW5jZXMgPSBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5wcmVmZXJlbmNlcywgYWN0aW9uLnBheWxvYWQpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgeyBwcmVmZXJlbmNlcyB9KTtcbn07XG5cbmNvbnN0IHVwZGF0ZVVzZXJSaWdodHMgPSAoc3RhdGU6IFVzZXJTdGF0ZSwgYWN0aW9uOiBVcGRhdGVVc2VyUmlnaHRzQWN0aW9uKTogVXNlclN0YXRlID0+XG4gICAgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHsgcmlnaHRzOiBbLi4uYWN0aW9uLnBheWxvYWRdIH0pO1xuXG5jb25zdCB1cGRhdGVVc2VyRGFzaGJvYXJkID0gKHN0YXRlOiBVc2VyU3RhdGUsIGFjdGlvbjogVXBkYXRlVXNlckRhc2hib2FyZEFjdGlvbikgPT4ge1xuICAgIC8vIGFwcGx5IHRoZSBkYXNoYm9hcmQgdG8gcHJlZmVyZW5jZXNcbiAgICBjb25zdCBwcmVmZXJlbmNlcyA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnByZWZlcmVuY2VzLCB7IGRhc2hib2FyZDogYWN0aW9uLnBheWxvYWQgfSk7XG4gICAgLy8gdXBkYXRlIHRoZSBzdGF0ZVxuICAgIHJldHVybiB7IC4uLnN0YXRlLCBwcmVmZXJlbmNlcyB9O1xufTtcblxuY29uc3QgYWN0aW9uVG9SZWR1Y2VyTWFwOiB7IFtrZXk6IHN0cmluZ106IChzdGF0ZTogVXNlclN0YXRlLCBhY3Rpb246IENvcmVVc2VyQWN0aW9ucykgPT4gVXNlclN0YXRlIH0gPSB7XG4gICAgW0NvcmVVc2VyQWN0aW9uVHlwZXMuVVBEQVRFX1VTRVJfREVUQUlMU106IHVwZGF0ZVVzZXJEZXRhaWxzLFxuICAgIFtDb3JlVXNlckFjdGlvblR5cGVzLlVQREFURV9VU0VSX1BSRUZFUkVOQ0VTXTogdXBkYXRlVXNlclByZWZlcmVuY2VzLFxuICAgIFtDb3JlVXNlckFjdGlvblR5cGVzLlVQREFURV9VU0VSX1NUQVRFXTogdXBkYXRlVXNlcixcbiAgICBbQ29yZVVzZXJBY3Rpb25UeXBlcy5VUERBVEVfVVNFUl9SSUdIVFNdOiB1cGRhdGVVc2VyUmlnaHRzLFxuICAgIFtDb3JlVXNlckFjdGlvblR5cGVzLlVQREFURV9VU0VSX0RBU0hCT0FSRF06IHVwZGF0ZVVzZXJEYXNoYm9hcmQsXG59O1xuXG5leHBvcnQgY29uc3QgY29yZVVzZXJSZWR1Y2VyczogKHN0YXRlOiBVc2VyU3RhdGUsIGFjdGlvbjogQWN0aW9uKSA9PiBVc2VyU3RhdGUgPSAoc3RhdGUgPSBpbml0aWFsVXNlclN0YXRlLCBhY3Rpb246IENvcmVVc2VyQWN0aW9ucykgPT4ge1xuICAgIGlmIChhY3Rpb25Ub1JlZHVjZXJNYXBbYWN0aW9uLnR5cGVdKSB7XG4gICAgICAgIHJldHVybiBhY3Rpb25Ub1JlZHVjZXJNYXBbYWN0aW9uLnR5cGVdKHN0YXRlLCBhY3Rpb24pO1xuICAgIH1cbiAgICByZXR1cm4gc3RhdGU7XG59O1xuIl19
@@ -1,112 +1,112 @@
1
- import { Injectable, Optional } from '@angular/core';
2
- import { throwError } from 'rxjs';
3
- import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
4
- import { InitStoreAction } from './actions/app.actions';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@ngrx/store";
7
- import * as i2 from "../log/index";
8
- export var BrowserStorageType;
9
- (function (BrowserStorageType) {
10
- BrowserStorageType[BrowserStorageType["local"] = 0] = "local";
11
- BrowserStorageType[BrowserStorageType["session"] = 1] = "session";
12
- })(BrowserStorageType || (BrowserStorageType = {}));
13
- // todo should stay here but all the store directory should be moved upper level
14
- export class StoreService {
15
- constructor(store, logService) {
16
- this.store = store;
17
- this.logService = logService;
18
- /**
19
- * autoSave handlers to call before saving in local Storage
20
- */
21
- this._autoSaveHandlers = {};
22
- /** storage instance e.g. localStorage, sessionStorage */
23
- this._storage = localStorage;
24
- }
25
- // use init with just version info, to update to user state, UserService.updateState
26
- // initializeStore(version?: string, userDetails?: BaseUserDetails) {
27
- // this.dispatch(new InitStoreAction({ version, userDetails }));
28
- // }
29
- init(version, storageType) {
30
- this.dispatch(new InitStoreAction({ version }));
31
- this._storage = storageType === BrowserStorageType.session ? sessionStorage : localStorage;
32
- }
33
- addAutoSaveHandler(stateSlice, handler) {
34
- if (!this.store) {
35
- if (this.logService) {
36
- this.logService.warn('StoreService.addAutoSaveHandler() not available without NGRX');
37
- }
38
- return;
39
- }
40
- this._autoSaveHandlers[stateSlice] = handler;
41
- }
42
- handleAutoSave() {
43
- if (!this.store) {
44
- return;
45
- }
46
- this.store.pipe(debounceTime(1000), distinctUntilChanged()).subscribe((state) => {
47
- this.saveState(state);
48
- });
49
- }
50
- /**
51
- * Proxy to NGRX store.dispatch()
52
- * that allows to intercept if the store is present
53
- */
54
- dispatch(action) {
55
- if (this.store) {
56
- return this.store.dispatch(action);
57
- }
58
- }
59
- dispatchAction(state, actionKey, reducer) {
60
- if (this.store) {
61
- this.store.addReducer(actionKey, reducer);
62
- return this.store.dispatch({ type: actionKey, payload: state });
63
- }
64
- }
65
- /**
66
- * Proxy to NGRX store.select()
67
- * that allows to intercept if the store is present
68
- */
69
- select(key) {
70
- if (!this.store) {
71
- return throwError(() => new Error('NGRX Store not configured'));
72
- }
73
- return this.store.select(key);
74
- }
75
- /**
76
- * filters and save the state with the Browser storage
77
- * @param state type of CoreState
78
- */
79
- saveState(state) {
80
- let stateToSave = {
81
- app: state.app,
82
- };
83
- if (state.user) {
84
- const { userId, preferences } = state.user;
85
- stateToSave.user = { userId, preferences };
86
- }
87
- Object.keys(this._autoSaveHandlers).forEach((sliceState) => {
88
- const handler = this._autoSaveHandlers[sliceState];
89
- stateToSave = Object.assign(stateToSave, { [sliceState]: handler(state[sliceState]) });
90
- });
91
- try {
92
- const serializedState = JSON.stringify(stateToSave);
93
- this._storage.setItem('state', serializedState);
94
- }
95
- catch (err) {
96
- // Ignore write errors.
97
- }
98
- }
99
- }
100
- /** @nocollapse */ StoreService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: StoreService, deps: [{ token: i1.Store, optional: true }, { token: i2.LogService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
101
- /** @nocollapse */ StoreService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: StoreService, providedIn: 'root' });
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: StoreService, decorators: [{
103
- type: Injectable,
104
- args: [{
105
- providedIn: 'root',
106
- }]
107
- }], ctorParameters: function () { return [{ type: i1.Store, decorators: [{
108
- type: Optional
109
- }] }, { type: i2.LogService, decorators: [{
110
- type: Optional
111
- }] }]; } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvc3RvcmUvc3RvcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFHeEQsTUFBTSxDQUFOLElBQVksa0JBR1g7QUFIRCxXQUFZLGtCQUFrQjtJQUMxQiw2REFBSyxDQUFBO0lBQ0wsaUVBQU8sQ0FBQTtBQUNYLENBQUMsRUFIVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBRzdCO0FBRUQsZ0ZBQWdGO0FBSWhGLE1BQU0sT0FBTyxZQUFZO0lBUXJCLFlBQWtDLEtBQWlCLEVBQXdCLFVBQXNCO1FBQS9ELFVBQUssR0FBTCxLQUFLLENBQVk7UUFBd0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVBqRzs7V0FFRztRQUNPLHNCQUFpQixHQUFnQyxFQUFFLENBQUM7UUFDOUQseURBQXlEO1FBQ2pELGFBQVEsR0FBWSxZQUFZLENBQUM7SUFFMkQsQ0FBQztJQUVyRyxvRkFBb0Y7SUFDcEYscUVBQXFFO0lBQ3JFLG9FQUFvRTtJQUNwRSxJQUFJO0lBQ0osSUFBSSxDQUFDLE9BQWdCLEVBQUUsV0FBZ0M7UUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVoRCxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsS0FBSyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENB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LENBQUM7OzRIQTdGUSxZQUFZO2dJQUFaLFlBQVksY0FGVCxNQUFNOzJGQUVULFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFTZ0IsUUFBUTs7MEJBQWlDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3Rpb24sIEFjdGlvblJlZHVjZXIsIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBMb2dTZXJ2aWNlIH0gZnJvbSAnLi4vbG9nL2luZGV4JztcclxuaW1wb3J0IHsgSW5pdFN0b3JlQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb25zL2FwcC5hY3Rpb25zJztcclxuaW1wb3J0IHsgQ29yZVN0YXRlIH0gZnJvbSAnQGV1aS9iYXNlJztcclxuXHJcbmV4cG9ydCBlbnVtIEJyb3dzZXJTdG9yYWdlVHlwZSB7XHJcbiAgICBsb2NhbCxcclxuICAgIHNlc3Npb24sXHJcbn1cclxuXHJcbi8vIHRvZG8gc2hvdWxkIHN0YXkgaGVyZSBidXQgYWxsIHRoZSBzdG9yZSBkaXJlY3Rvcnkgc2hvdWxkIGJlIG1vdmVkIHVwcGVyIGxldmVsXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0b3JlU2VydmljZSB7XHJcbiAgICAvKipcclxuICAgICAqIGF1dG9TYXZlIGhhbmRsZXJzIHRvIGNhbGwgYmVmb3JlIHNhdmluZyBpbiBsb2NhbCBTdG9yYWdlXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfYXV0b1NhdmVIYW5kbGVyczogeyBba2V5OiBzdHJpbmddOiBGdW5jdGlvbiB9ID0ge307XHJcbiAgICAvKiogc3RvcmFnZSBpbnN0YW5jZSBlLmcuIGxvY2FsU3RvcmFnZSwgc2Vzc2lvblN0b3JhZ2UgKi9cclxuICAgIHByaXZhdGUgX3N0b3JhZ2U6IFN0b3JhZ2UgPSBsb2NhbFN0b3JhZ2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJvdGVjdGVkIHN0b3JlOiBTdG9yZTxhbnk+LCBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgbG9nU2VydmljZTogTG9nU2VydmljZSkge31cclxuXHJcbiAgICAvLyB1c2UgaW5pdCB3aXRoIGp1c3QgdmVyc2lvbiBpbmZvLCB0byB1cGRhdGUgdG8gdXNlciBzdGF0ZSwgVXNlclNlcnZpY2UudXBkYXRlU3RhdGVcclxuICAgIC8vIGluaXRpYWxpemVTdG9yZSh2ZXJzaW9uPzogc3RyaW5nLCB1c2VyRGV0YWlscz86IEJhc2VVc2VyRGV0YWlscykge1xyXG4gICAgLy8gICAgIHRoaXMuZGlzcGF0Y2gobmV3IEluaXRTdG9yZUFjdGlvbih7IHZlcnNpb24sIHVzZXJEZXRhaWxzIH0pKTtcclxuICAgIC8vIH1cclxuICAgIGluaXQodmVyc2lvbj86IHN0cmluZywgc3RvcmFnZVR5cGU/OiBCcm93c2VyU3RvcmFnZVR5cGUpIHtcclxuICAgICAgICB0aGlzLmRpc3BhdGNoKG5ldyBJbml0U3RvcmVBY3Rpb24oeyB2ZXJzaW9uIH0pKTtcclxuXHJcbiAgICAgICAgdGhpcy5fc3RvcmFnZSA9IHN0b3JhZ2VUeXBlID09PSBCcm93c2VyU3RvcmFnZVR5cGUuc2Vzc2lvbiA/IHNlc3Npb25TdG9yYWdlIDogbG9jYWxTdG9yYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZEF1dG9TYXZlSGFuZGxlcihzdGF0ZVNsaWNlOiBzdHJpbmcsIGhhbmRsZXI6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnN0b3JlKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmxvZ1NlcnZpY2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9nU2VydmljZS53YXJuKCdTdG9yZVNlcnZpY2UuYWRkQXV0b1NhdmVIYW5kbGVyKCkgbm90IGF2YWlsYWJsZSB3aXRob3V0IE5HUlgnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2F1dG9TYXZlSGFuZGxlcnNbc3RhdGVTbGljZV0gPSBoYW5kbGVyO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUF1dG9TYXZlKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5zdG9yZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnN0b3JlLnBpcGUoZGVib3VuY2VUaW1lKDEwMDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2F2ZVN0YXRlKHN0YXRlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3h5IHRvIE5HUlggc3RvcmUuZGlzcGF0Y2goKVxyXG4gICAgICogdGhhdCBhbGxvd3MgdG8gaW50ZXJjZXB0IGlmIHRoZSBzdG9yZSBpcyBwcmVzZW50XHJcbiAgICAgKi9cclxuICAgIGRpc3BhdGNoKGFjdGlvbjogYW55KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RvcmUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmUuZGlzcGF0Y2goYWN0aW9uKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZGlzcGF0Y2hBY3Rpb24oc3RhdGU6IGFueSwgYWN0aW9uS2V5OiBhbnksIHJlZHVjZXI6IEFjdGlvblJlZHVjZXI8YW55LCBBY3Rpb24+KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RvcmUpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZS5hZGRSZWR1Y2VyKGFjdGlvbktleSwgcmVkdWNlcik7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN0b3JlLmRpc3BhdGNoKHsgdHlwZTogYWN0aW9uS2V5LCBwYXlsb2FkOiBzdGF0ZSB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm94eSB0byBOR1JYIHN0b3JlLnNlbGVjdCgpXHJcbiAgICAgKiB0aGF0IGFsbG93cyB0byBpbnRlcmNlcHQgaWYgdGhlIHN0b3JlIGlzIHByZXNlbnRcclxuICAgICAqL1xyXG4gICAgc2VsZWN0KGtleTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICBpZiAoIXRoaXMuc3RvcmUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdOR1JYIFN0b3JlIG5vdCBjb25maWd1cmVkJykpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3Qoa2V5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGZpbHRlcnMgYW5kIHNhdmUgdGhlIHN0YXRlIHdpdGggdGhlIEJyb3dzZXIgc3RvcmFnZVxyXG4gICAgICogQHBhcmFtIHN0YXRlIHR5cGUgb2YgQ29yZVN0YXRlXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBzYXZlU3RhdGUoc3RhdGU6IENvcmVTdGF0ZSkge1xyXG4gICAgICAgIGxldCBzdGF0ZVRvU2F2ZTogQ29yZVN0YXRlID0ge1xyXG4gICAgICAgICAgICBhcHA6IHN0YXRlLmFwcCxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpZiAoc3RhdGUudXNlcikge1xyXG4gICAgICAgICAgICBjb25zdCB7IHVzZXJJZCwgcHJlZmVyZW5jZXMgfSA9IHN0YXRlLnVzZXI7XHJcbiAgICAgICAgICAgIHN0YXRlVG9TYXZlLnVzZXIgPSB7IHVzZXJJZCwgcHJlZmVyZW5jZXMgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMuX2F1dG9TYXZlSGFuZGxlcnMpLmZvckVhY2goKHNsaWNlU3RhdGU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5fYXV0b1NhdmVIYW5kbGVyc1tzbGljZVN0YXRlXTtcclxuICAgICAgICAgICAgc3RhdGVUb1NhdmUgPSBPYmplY3QuYXNzaWduKHN0YXRlVG9TYXZlLCB7IFtzbGljZVN0YXRlXTogaGFuZGxlcihzdGF0ZVtzbGljZVN0YXRlXSkgfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlcmlhbGl6ZWRTdGF0ZSA9IEpTT04uc3RyaW5naWZ5KHN0YXRlVG9TYXZlKTtcclxuICAgICAgICAgICAgdGhpcy5fc3RvcmFnZS5zZXRJdGVtKCdzdGF0ZScsIHNlcmlhbGl6ZWRTdGF0ZSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgIC8vIElnbm9yZSB3cml0ZSBlcnJvcnMuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
1
+ import { Injectable, Optional } from '@angular/core';
2
+ import { throwError } from 'rxjs';
3
+ import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
4
+ import { InitStoreAction } from './actions/app.actions';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@ngrx/store";
7
+ import * as i2 from "../log/index";
8
+ export var BrowserStorageType;
9
+ (function (BrowserStorageType) {
10
+ BrowserStorageType[BrowserStorageType["local"] = 0] = "local";
11
+ BrowserStorageType[BrowserStorageType["session"] = 1] = "session";
12
+ })(BrowserStorageType || (BrowserStorageType = {}));
13
+ // todo should stay here but all the store directory should be moved upper level
14
+ export class StoreService {
15
+ constructor(store, logService) {
16
+ this.store = store;
17
+ this.logService = logService;
18
+ /**
19
+ * autoSave handlers to call before saving in local Storage
20
+ */
21
+ this._autoSaveHandlers = {};
22
+ /** storage instance e.g. localStorage, sessionStorage */
23
+ this._storage = localStorage;
24
+ }
25
+ // use init with just version info, to update to user state, UserService.updateState
26
+ // initializeStore(version?: string, userDetails?: BaseUserDetails) {
27
+ // this.dispatch(new InitStoreAction({ version, userDetails }));
28
+ // }
29
+ init(version, storageType) {
30
+ this.dispatch(new InitStoreAction({ version }));
31
+ this._storage = storageType === BrowserStorageType.session ? sessionStorage : localStorage;
32
+ }
33
+ addAutoSaveHandler(stateSlice, handler) {
34
+ if (!this.store) {
35
+ if (this.logService) {
36
+ this.logService.warn('StoreService.addAutoSaveHandler() not available without NGRX');
37
+ }
38
+ return;
39
+ }
40
+ this._autoSaveHandlers[stateSlice] = handler;
41
+ }
42
+ handleAutoSave() {
43
+ if (!this.store) {
44
+ return;
45
+ }
46
+ this.store.pipe(debounceTime(1000), distinctUntilChanged()).subscribe((state) => {
47
+ this.saveState(state);
48
+ });
49
+ }
50
+ /**
51
+ * Proxy to NGRX store.dispatch()
52
+ * that allows to intercept if the store is present
53
+ */
54
+ dispatch(action) {
55
+ if (this.store) {
56
+ return this.store.dispatch(action);
57
+ }
58
+ }
59
+ dispatchAction(state, actionKey, reducer) {
60
+ if (this.store) {
61
+ this.store.addReducer(actionKey, reducer);
62
+ return this.store.dispatch({ type: actionKey, payload: state });
63
+ }
64
+ }
65
+ /**
66
+ * Proxy to NGRX store.select()
67
+ * that allows to intercept if the store is present
68
+ */
69
+ select(key) {
70
+ if (!this.store) {
71
+ return throwError(() => new Error('NGRX Store not configured'));
72
+ }
73
+ return this.store.select(key);
74
+ }
75
+ /**
76
+ * filters and save the state with the Browser storage
77
+ * @param state type of CoreState
78
+ */
79
+ saveState(state) {
80
+ let stateToSave = {
81
+ app: state.app,
82
+ };
83
+ if (state.user) {
84
+ const { userId, preferences } = state.user;
85
+ stateToSave.user = { userId, preferences };
86
+ }
87
+ Object.keys(this._autoSaveHandlers).forEach((sliceState) => {
88
+ const handler = this._autoSaveHandlers[sliceState];
89
+ stateToSave = Object.assign(stateToSave, { [sliceState]: handler(state[sliceState]) });
90
+ });
91
+ try {
92
+ const serializedState = JSON.stringify(stateToSave);
93
+ this._storage.setItem('state', serializedState);
94
+ }
95
+ catch (err) {
96
+ // Ignore write errors.
97
+ }
98
+ }
99
+ }
100
+ /** @nocollapse */ StoreService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: StoreService, deps: [{ token: i1.Store, optional: true }, { token: i2.LogService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
101
+ /** @nocollapse */ StoreService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: StoreService, providedIn: 'root' });
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: StoreService, decorators: [{
103
+ type: Injectable,
104
+ args: [{
105
+ providedIn: 'root',
106
+ }]
107
+ }], ctorParameters: function () { return [{ type: i1.Store, decorators: [{
108
+ type: Optional
109
+ }] }, { type: i2.LogService, decorators: [{
110
+ type: Optional
111
+ }] }]; } });
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvc3RvcmUvc3RvcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFHeEQsTUFBTSxDQUFOLElBQVksa0JBR1g7QUFIRCxXQUFZLGtCQUFrQjtJQUMxQiw2REFBSyxDQUFBO0lBQ0wsaUVBQU8sQ0FBQTtBQUNYLENBQUMsRUFIVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBRzdCO0FBRUQsZ0ZBQWdGO0FBSWhGLE1BQU0sT0FBTyxZQUFZO0lBUXJCLFlBQWtDLEtBQWlCLEVBQXdCLFVBQXNCO1FBQS9ELFVBQUssR0FBTCxLQUFLLENBQVk7UUFBd0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVBqRzs7V0FFRztRQUNPLHNCQUFpQixHQUFnQyxFQUFFLENBQUM7UUFDOUQseURBQXlEO1FBQ2pELGFBQVEsR0FBWSxZQUFZLENBQUM7SUFFMkQsQ0FBQztJQUVyRyxvRkFBb0Y7SUFDcEYscUVBQXFFO0lBQ3JFLG9FQUFvRTtJQUNwRSxJQUFJO0lBQ0osSUFBSSxDQUFDLE9BQWdCLEVBQUUsV0FBZ0M7UUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVoRCxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsS0FBSyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENB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LENBQUM7OzRIQTdGUSxZQUFZO2dJQUFaLFlBQVksY0FGVCxNQUFNOzJGQUVULFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFTZ0IsUUFBUTs7MEJBQWlDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uLCBBY3Rpb25SZWR1Y2VyLCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IExvZ1NlcnZpY2UgfSBmcm9tICcuLi9sb2cvaW5kZXgnO1xuaW1wb3J0IHsgSW5pdFN0b3JlQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb25zL2FwcC5hY3Rpb25zJztcbmltcG9ydCB7IENvcmVTdGF0ZSB9IGZyb20gJ0BldWkvYmFzZSc7XG5cbmV4cG9ydCBlbnVtIEJyb3dzZXJTdG9yYWdlVHlwZSB7XG4gICAgbG9jYWwsXG4gICAgc2Vzc2lvbixcbn1cblxuLy8gdG9kbyBzaG91bGQgc3RheSBoZXJlIGJ1dCBhbGwgdGhlIHN0b3JlIGRpcmVjdG9yeSBzaG91bGQgYmUgbW92ZWQgdXBwZXIgbGV2ZWxcbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFN0b3JlU2VydmljZSB7XG4gICAgLyoqXG4gICAgICogYXV0b1NhdmUgaGFuZGxlcnMgdG8gY2FsbCBiZWZvcmUgc2F2aW5nIGluIGxvY2FsIFN0b3JhZ2VcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2F1dG9TYXZlSGFuZGxlcnM6IHsgW2tleTogc3RyaW5nXTogRnVuY3Rpb24gfSA9IHt9O1xuICAgIC8qKiBzdG9yYWdlIGluc3RhbmNlIGUuZy4gbG9jYWxTdG9yYWdlLCBzZXNzaW9uU3RvcmFnZSAqL1xuICAgIHByaXZhdGUgX3N0b3JhZ2U6IFN0b3JhZ2UgPSBsb2NhbFN0b3JhZ2U7XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgc3RvcmU6IFN0b3JlPGFueT4sIEBPcHRpb25hbCgpIHByb3RlY3RlZCBsb2dTZXJ2aWNlOiBMb2dTZXJ2aWNlKSB7fVxuXG4gICAgLy8gdXNlIGluaXQgd2l0aCBqdXN0IHZlcnNpb24gaW5mbywgdG8gdXBkYXRlIHRvIHVzZXIgc3RhdGUsIFVzZXJTZXJ2aWNlLnVwZGF0ZVN0YXRlXG4gICAgLy8gaW5pdGlhbGl6ZVN0b3JlKHZlcnNpb24/OiBzdHJpbmcsIHVzZXJEZXRhaWxzPzogQmFzZVVzZXJEZXRhaWxzKSB7XG4gICAgLy8gICAgIHRoaXMuZGlzcGF0Y2gobmV3IEluaXRTdG9yZUFjdGlvbih7IHZlcnNpb24sIHVzZXJEZXRhaWxzIH0pKTtcbiAgICAvLyB9XG4gICAgaW5pdCh2ZXJzaW9uPzogc3RyaW5nLCBzdG9yYWdlVHlwZT86IEJyb3dzZXJTdG9yYWdlVHlwZSkge1xuICAgICAgICB0aGlzLmRpc3BhdGNoKG5ldyBJbml0U3RvcmVBY3Rpb24oeyB2ZXJzaW9uIH0pKTtcblxuICAgICAgICB0aGlzLl9zdG9yYWdlID0gc3RvcmFnZVR5cGUgPT09IEJyb3dzZXJTdG9yYWdlVHlwZS5zZXNzaW9uID8gc2Vzc2lvblN0b3JhZ2UgOiBsb2NhbFN0b3JhZ2U7XG4gICAgfVxuXG4gICAgYWRkQXV0b1NhdmVIYW5kbGVyKHN0YXRlU2xpY2U6IHN0cmluZywgaGFuZGxlcjogRnVuY3Rpb24pIHtcbiAgICAgICAgaWYgKCF0aGlzLnN0b3JlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5sb2dTZXJ2aWNlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dTZXJ2aWNlLndhcm4oJ1N0b3JlU2VydmljZS5hZGRBdXRvU2F2ZUhhbmRsZXIoKSBub3QgYXZhaWxhYmxlIHdpdGhvdXQgTkdSWCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2F1dG9TYXZlSGFuZGxlcnNbc3RhdGVTbGljZV0gPSBoYW5kbGVyO1xuICAgIH1cblxuICAgIGhhbmRsZUF1dG9TYXZlKCkge1xuICAgICAgICBpZiAoIXRoaXMuc3RvcmUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3RvcmUucGlwZShkZWJvdW5jZVRpbWUoMTAwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2F2ZVN0YXRlKHN0YXRlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJveHkgdG8gTkdSWCBzdG9yZS5kaXNwYXRjaCgpXG4gICAgICogdGhhdCBhbGxvd3MgdG8gaW50ZXJjZXB0IGlmIHRoZSBzdG9yZSBpcyBwcmVzZW50XG4gICAgICovXG4gICAgZGlzcGF0Y2goYWN0aW9uOiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RvcmUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN0b3JlLmRpc3BhdGNoKGFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkaXNwYXRjaEFjdGlvbihzdGF0ZTogYW55LCBhY3Rpb25LZXk6IGFueSwgcmVkdWNlcjogQWN0aW9uUmVkdWNlcjxhbnksIEFjdGlvbj4pIHtcbiAgICAgICAgaWYgKHRoaXMuc3RvcmUpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuYWRkUmVkdWNlcihhY3Rpb25LZXksIHJlZHVjZXIpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmUuZGlzcGF0Y2goeyB0eXBlOiBhY3Rpb25LZXksIHBheWxvYWQ6IHN0YXRlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJveHkgdG8gTkdSWCBzdG9yZS5zZWxlY3QoKVxuICAgICAqIHRoYXQgYWxsb3dzIHRvIGludGVyY2VwdCBpZiB0aGUgc3RvcmUgaXMgcHJlc2VudFxuICAgICAqL1xuICAgIHNlbGVjdChrZXk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGlmICghdGhpcy5zdG9yZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdOR1JYIFN0b3JlIG5vdCBjb25maWd1cmVkJykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdChrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGZpbHRlcnMgYW5kIHNhdmUgdGhlIHN0YXRlIHdpdGggdGhlIEJyb3dzZXIgc3RvcmFnZVxuICAgICAqIEBwYXJhbSBzdGF0ZSB0eXBlIG9mIENvcmVTdGF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzYXZlU3RhdGUoc3RhdGU6IENvcmVTdGF0ZSkge1xuICAgICAgICBsZXQgc3RhdGVUb1NhdmU6IENvcmVTdGF0ZSA9IHtcbiAgICAgICAgICAgIGFwcDogc3RhdGUuYXBwLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChzdGF0ZS51c2VyKSB7XG4gICAgICAgICAgICBjb25zdCB7IHVzZXJJZCwgcHJlZmVyZW5jZXMgfSA9IHN0YXRlLnVzZXI7XG4gICAgICAgICAgICBzdGF0ZVRvU2F2ZS51c2VyID0geyB1c2VySWQsIHByZWZlcmVuY2VzIH07XG4gICAgICAgIH1cblxuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLl9hdXRvU2F2ZUhhbmRsZXJzKS5mb3JFYWNoKChzbGljZVN0YXRlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLl9hdXRvU2F2ZUhhbmRsZXJzW3NsaWNlU3RhdGVdO1xuICAgICAgICAgICAgc3RhdGVUb1NhdmUgPSBPYmplY3QuYXNzaWduKHN0YXRlVG9TYXZlLCB7IFtzbGljZVN0YXRlXTogaGFuZGxlcihzdGF0ZVtzbGljZVN0YXRlXSkgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBzZXJpYWxpemVkU3RhdGUgPSBKU09OLnN0cmluZ2lmeShzdGF0ZVRvU2F2ZSk7XG4gICAgICAgICAgICB0aGlzLl9zdG9yYWdlLnNldEl0ZW0oJ3N0YXRlJywgc2VyaWFsaXplZFN0YXRlKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgd3JpdGUgZXJyb3JzLlxuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,22 +1,22 @@
1
- import { of } from 'rxjs';
2
- import { StoreService } from './store.service';
3
- import { Injectable } from '@angular/core';
4
- import * as i0 from "@angular/core";
5
- export class StoreServiceMock extends StoreService {
6
- constructor() {
7
- super(null, null);
8
- }
9
- init() { }
10
- addAutoSaveHandler() { }
11
- handleAutoSave() { }
12
- dispatch() { }
13
- select() {
14
- return of({});
15
- }
16
- }
17
- /** @nocollapse */ StoreServiceMock.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: StoreServiceMock, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
18
- /** @nocollapse */ StoreServiceMock.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: StoreServiceMock });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: StoreServiceMock, decorators: [{
20
- type: Injectable
21
- }], ctorParameters: function () { return []; } });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc2VydmljZS5tb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9zdG9yZS9zdG9yZS5zZXJ2aWNlLm1vY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFlBQVk7SUFDOUM7UUFDSSxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLEtBQUksQ0FBQztJQUVULGtCQUFrQixLQUFJLENBQUM7SUFFdkIsY0FBYyxLQUFJLENBQUM7SUFFbkIsUUFBUSxLQUFJLENBQUM7SUFFYixNQUFNO1FBQ0YsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEIsQ0FBQzs7Z0lBZlEsZ0JBQWdCO29JQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN0b3JlU2VydmljZSB9IGZyb20gJy4vc3RvcmUuc2VydmljZSc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFN0b3JlU2VydmljZU1vY2sgZXh0ZW5kcyBTdG9yZVNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIobnVsbCwgbnVsbCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCgpIHt9XHJcblxyXG4gICAgYWRkQXV0b1NhdmVIYW5kbGVyKCkge31cclxuXHJcbiAgICBoYW5kbGVBdXRvU2F2ZSgpIHt9XHJcblxyXG4gICAgZGlzcGF0Y2goKSB7fVxyXG5cclxuICAgIHNlbGVjdCgpIHtcclxuICAgICAgICByZXR1cm4gb2Yoe30pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
1
+ import { of } from 'rxjs';
2
+ import { StoreService } from './store.service';
3
+ import { Injectable } from '@angular/core';
4
+ import * as i0 from "@angular/core";
5
+ export class StoreServiceMock extends StoreService {
6
+ constructor() {
7
+ super(null, null);
8
+ }
9
+ init() { }
10
+ addAutoSaveHandler() { }
11
+ handleAutoSave() { }
12
+ dispatch() { }
13
+ select() {
14
+ return of({});
15
+ }
16
+ }
17
+ /** @nocollapse */ StoreServiceMock.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: StoreServiceMock, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
18
+ /** @nocollapse */ StoreServiceMock.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: StoreServiceMock });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: StoreServiceMock, decorators: [{
20
+ type: Injectable
21
+ }], ctorParameters: function () { return []; } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc2VydmljZS5tb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9zdG9yZS9zdG9yZS5zZXJ2aWNlLm1vY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFlBQVk7SUFDOUM7UUFDSSxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLEtBQUksQ0FBQztJQUVULGtCQUFrQixLQUFJLENBQUM7SUFFdkIsY0FBYyxLQUFJLENBQUM7SUFFbkIsUUFBUSxLQUFJLENBQUM7SUFFYixNQUFNO1FBQ0YsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEIsQ0FBQzs7Z0lBZlEsZ0JBQWdCO29JQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdG9yZVNlcnZpY2UgfSBmcm9tICcuL3N0b3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU3RvcmVTZXJ2aWNlTW9jayBleHRlbmRzIFN0b3JlU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKG51bGwsIG51bGwpO1xuICAgIH1cblxuICAgIGluaXQoKSB7fVxuXG4gICAgYWRkQXV0b1NhdmVIYW5kbGVyKCkge31cblxuICAgIGhhbmRsZUF1dG9TYXZlKCkge31cblxuICAgIGRpc3BhdGNoKCkge31cblxuICAgIHNlbGVjdCgpIHtcbiAgICAgICAgcmV0dXJuIG9mKHt9KTtcbiAgICB9XG59XG4iXX0=
@@ -1,3 +1,3 @@
1
- export * from './user.service';
2
- export * from './user.service.mock';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3VzZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi91c2VyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3VzZXIuc2VydmljZS5tb2NrJztcclxuIl19
1
+ export * from './user.service';
2
+ export * from './user.service.mock';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3VzZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi91c2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyLnNlcnZpY2UubW9jayc7XG4iXX0=
@@ -1,64 +1,64 @@
1
- import { Injectable } from '@angular/core';
2
- import { of } from 'rxjs';
3
- import { EuiService, getUserState } from '@eui/base';
4
- import { UpdateUserStateAction } from '../store/actions';
5
- import { createSelector } from '@ngrx/store';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../store/store.service";
8
- // export const USER_API_CONFIG_TOKEN = new InjectionToken<UserApiConfig>('USER_API_CONFIG');
9
- // export const DEFAULT_USER_PREFERENCES_TOKEN = new InjectionToken<BaseUserPreferences>('DEFAULT_USER_PREFERENCES');
10
- export class UserService extends EuiService {
11
- constructor(store) {
12
- super({ userId: 'annonymous' });
13
- this.store = store;
14
- }
15
- init(userState) {
16
- super.initEuiService();
17
- // eslint-disable-next-line no-prototype-builtins
18
- if (typeof userState === 'object' && userState.hasOwnProperty('userId')) {
19
- this.updateState(userState);
20
- return of({ success: true });
21
- }
22
- return of({ success: false, error: 'Init object should be instance of BaseUserState' });
23
- }
24
- getState(keyOrMapFn) {
25
- let selector = getUserState;
26
- let dotNotationToObject = (obj, key) => key.split('.').reduce((slice, i) => slice[i], obj);
27
- if (keyOrMapFn) {
28
- switch (typeof keyOrMapFn) {
29
- case 'function':
30
- selector = createSelector(getUserState, keyOrMapFn);
31
- break;
32
- case 'string':
33
- selector = createSelector(getUserState, (state) => dotNotationToObject(state, keyOrMapFn));
34
- break;
35
- }
36
- }
37
- return this.store.select(selector);
38
- }
39
- updateState(userState, reducer) {
40
- // if (typeof pathOrReducer === 'string') {
41
- // let dotNotationToObject = (obj, key) => key.split('.').reduce((obj, i) => obj[i], obj);
42
- //
43
- // const customReducer = (state: UserState, action: UpdateUserDetailsAction): UserState => {
44
- // return Object.assign({}, dotNotationToObject(state, pathOrReducer), action.payload);
45
- // };
46
- // this.store.dispatchAction(userState, 'user', customReducer);
47
- // }
48
- if (reducer) {
49
- this.store.dispatchAction(userState, 'user', reducer);
50
- }
51
- else {
52
- this.store.dispatch(new UpdateUserStateAction(userState));
53
- }
54
- }
55
- }
56
- /** @nocollapse */ UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UserService, deps: [{ token: i1.StoreService }], target: i0.ɵɵFactoryTarget.Injectable });
57
- /** @nocollapse */ UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UserService, providedIn: 'root' });
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UserService, decorators: [{
59
- type: Injectable,
60
- args: [{
61
- providedIn: 'root',
62
- }]
63
- }], ctorParameters: function () { return [{ type: i1.StoreService }]; } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy91c2VyL3VzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBb0IsWUFBWSxFQUFhLE1BQU0sV0FBVyxDQUFDO0FBRWxGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQUU3Qyw2RkFBNkY7QUFDN0YscUhBQXFIO0FBS3JILE1BQU0sT0FBTyxXQUE2QyxTQUFRLFVBQXlCO0lBQ3ZGLFlBQXNCLEtBQW1CO1FBQ3JDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBRGQsVUFBSyxHQUFMLEtBQUssQ0FBYztJQUV6QyxDQUFDO0lBRUQsSUFBSSxDQUFDLFNBQVk7UUFDYixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsaURBQWlEO1FBQ2pELElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxJQUFJLFNBQVMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDckUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM1QixPQUFPLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ2hDO1FBQ0QsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxpREFBaUQsRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUlELFFBQVEsQ0FBSSxVQUF1QztRQUMvQyxJQUFJLFFBQVEsR0FBUSxZQUFZLENBQUM7UUFDakMsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRTNGLElBQUksVUFBVSxFQUFFO1lBQ1osUUFBUSxPQUFPLFVBQVUsRUFBRTtnQkFDdkIsS0FBSyxVQUFVO29CQUNYLFFBQVEsR0FBRyxjQUFjLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO29CQUNwRCxNQUFNO2dCQUNWLEtBQUssUUFBUTtvQkFDVCxRQUFRLEdBQUcsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7b0JBQzNGLE1BQU07YUFDYjtTQUNKO1FBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBS0QsV0FBVyxDQUFJLFNBQWdCLEVBQUUsT0FBYTtRQUMxQywyQ0FBMkM7UUFDM0MsOEZBQThGO1FBQzlGLEVBQUU7UUFDRixnR0FBZ0c7UUFDaEcsK0ZBQStGO1FBQy9GLFNBQVM7UUFDVCxtRUFBbUU7UUFDbkUsSUFBSTtRQUVKLElBQUksT0FBTyxFQUFFO1lBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUN6RDthQUFNO1lBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxTQUFnQixDQUFDLENBQUMsQ0FBQztTQUNwRTtJQUNMLENBQUM7OzJIQXJEUSxXQUFXOytIQUFYLFdBQVcsY0FGUixNQUFNOzJGQUVULFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBFdWlTZXJ2aWNlLCBFdWlTZXJ2aWNlU3RhdHVzLCBnZXRVc2VyU3RhdGUsIFVzZXJTdGF0ZSB9IGZyb20gJ0BldWkvYmFzZSc7XHJcbmltcG9ydCB7IFN0b3JlU2VydmljZSB9IGZyb20gJy4uL3N0b3JlL3N0b3JlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVcGRhdGVVc2VyU3RhdGVBY3Rpb24gfSBmcm9tICcuLi9zdG9yZS9hY3Rpb25zJztcclxuaW1wb3J0IHsgY3JlYXRlU2VsZWN0b3IgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcblxyXG4vLyBleHBvcnQgY29uc3QgVVNFUl9BUElfQ09ORklHX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPFVzZXJBcGlDb25maWc+KCdVU0VSX0FQSV9DT05GSUcnKTtcclxuLy8gZXhwb3J0IGNvbnN0IERFRkFVTFRfVVNFUl9QUkVGRVJFTkNFU19UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxCYXNlVXNlclByZWZlcmVuY2VzPignREVGQVVMVF9VU0VSX1BSRUZFUkVOQ0VTJyk7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyU2VydmljZTxUIGV4dGVuZHMgVXNlclN0YXRlID0gVXNlclN0YXRlPiBleHRlbmRzIEV1aVNlcnZpY2U8VCB8IFVzZXJTdGF0ZT4ge1xyXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIHN0b3JlOiBTdG9yZVNlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcih7IHVzZXJJZDogJ2Fubm9ueW1vdXMnIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQodXNlclN0YXRlOiBUKTogT2JzZXJ2YWJsZTxFdWlTZXJ2aWNlU3RhdHVzPiB7XHJcbiAgICAgICAgc3VwZXIuaW5pdEV1aVNlcnZpY2UoKTtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXHJcbiAgICAgICAgaWYgKHR5cGVvZiB1c2VyU3RhdGUgPT09ICdvYmplY3QnICYmIHVzZXJTdGF0ZS5oYXNPd25Qcm9wZXJ0eSgndXNlcklkJykpIHtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVTdGF0ZSh1c2VyU3RhdGUpO1xyXG4gICAgICAgICAgICByZXR1cm4gb2YoeyBzdWNjZXNzOiB0cnVlIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb2YoeyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICdJbml0IG9iamVjdCBzaG91bGQgYmUgaW5zdGFuY2Ugb2YgQmFzZVVzZXJTdGF0ZScgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U3RhdGU8SyA9IFQ+KG1hcEZuPzogKHN0YXRlOiBUKSA9PiBLKTogT2JzZXJ2YWJsZTxLPjtcclxuICAgIGdldFN0YXRlPGEgZXh0ZW5kcyBrZXlvZiBUPihrZXk/OiBhKTogT2JzZXJ2YWJsZTxUW2FdPjtcclxuICAgIGdldFN0YXRlPEs+KGtleU9yTWFwRm4/OiAoKHN0YXRlOiBUKSA9PiBLKSB8IHN0cmluZyk6IE9ic2VydmFibGU8Sz4ge1xyXG4gICAgICAgIGxldCBzZWxlY3RvcjogYW55ID0gZ2V0VXNlclN0YXRlO1xyXG4gICAgICAgIGxldCBkb3ROb3RhdGlvblRvT2JqZWN0ID0gKG9iaiwga2V5KSA9PiBrZXkuc3BsaXQoJy4nKS5yZWR1Y2UoKHNsaWNlLCBpKSA9PiBzbGljZVtpXSwgb2JqKTtcclxuXHJcbiAgICAgICAgaWYgKGtleU9yTWFwRm4pIHtcclxuICAgICAgICAgICAgc3dpdGNoICh0eXBlb2Yga2V5T3JNYXBGbikge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZnVuY3Rpb24nOlxyXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoZ2V0VXNlclN0YXRlLCBrZXlPck1hcEZuKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6XHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihnZXRVc2VyU3RhdGUsIChzdGF0ZSkgPT4gZG90Tm90YXRpb25Ub09iamVjdChzdGF0ZSwga2V5T3JNYXBGbikpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3Qoc2VsZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVN0YXRlPEsgPSBUPih1c2VyU3RhdGU6IFQpO1xyXG4gICAgLy8gdXBkYXRlU3RhdGU8YSBleHRlbmRzIGtleW9mIFQ+KHNsaWNlOiBUW2FdLCBwYXRoOiBzdHJpbmcpO1xyXG4gICAgdXBkYXRlU3RhdGU8YSBleHRlbmRzIGtleW9mIFQ+KHNsaWNlOiBUW2FdLCByZWR1Y2VyOiAoc3RhdGU6IGFueSwgYWN0aW9uOiBUW2FdKSA9PiBhbnkpO1xyXG4gICAgdXBkYXRlU3RhdGU8Sz4odXNlclN0YXRlOiBLIHwgVCwgcmVkdWNlcj86IGFueSkge1xyXG4gICAgICAgIC8vIGlmICh0eXBlb2YgcGF0aE9yUmVkdWNlciA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAvLyAgICAgbGV0IGRvdE5vdGF0aW9uVG9PYmplY3QgPSAob2JqLCBrZXkpID0+IGtleS5zcGxpdCgnLicpLnJlZHVjZSgob2JqLCBpKSA9PiBvYmpbaV0sIG9iaik7XHJcbiAgICAgICAgLy9cclxuICAgICAgICAvLyAgICAgY29uc3QgY3VzdG9tUmVkdWNlciA9IChzdGF0ZTogVXNlclN0YXRlLCBhY3Rpb246IFVwZGF0ZVVzZXJEZXRhaWxzQWN0aW9uKTogVXNlclN0YXRlID0+IHtcclxuICAgICAgICAvLyAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBkb3ROb3RhdGlvblRvT2JqZWN0KHN0YXRlLCBwYXRoT3JSZWR1Y2VyKSwgYWN0aW9uLnBheWxvYWQpO1xyXG4gICAgICAgIC8vICAgICB9O1xyXG4gICAgICAgIC8vICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoQWN0aW9uKHVzZXJTdGF0ZSwgJ3VzZXInLCBjdXN0b21SZWR1Y2VyKTtcclxuICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgIGlmIChyZWR1Y2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2hBY3Rpb24odXNlclN0YXRlLCAndXNlcicsIHJlZHVjZXIpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFVwZGF0ZVVzZXJTdGF0ZUFjdGlvbih1c2VyU3RhdGUgYXMgYW55KSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
1
+ import { Injectable } from '@angular/core';
2
+ import { of } from 'rxjs';
3
+ import { EuiService, getUserState } from '@eui/base';
4
+ import { UpdateUserStateAction } from '../store/actions';
5
+ import { createSelector } from '@ngrx/store';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../store/store.service";
8
+ // export const USER_API_CONFIG_TOKEN = new InjectionToken<UserApiConfig>('USER_API_CONFIG');
9
+ // export const DEFAULT_USER_PREFERENCES_TOKEN = new InjectionToken<BaseUserPreferences>('DEFAULT_USER_PREFERENCES');
10
+ export class UserService extends EuiService {
11
+ constructor(store) {
12
+ super({ userId: 'annonymous' });
13
+ this.store = store;
14
+ }
15
+ init(userState) {
16
+ super.initEuiService();
17
+ // eslint-disable-next-line no-prototype-builtins
18
+ if (typeof userState === 'object' && userState.hasOwnProperty('userId')) {
19
+ this.updateState(userState);
20
+ return of({ success: true });
21
+ }
22
+ return of({ success: false, error: 'Init object should be instance of BaseUserState' });
23
+ }
24
+ getState(keyOrMapFn) {
25
+ let selector = getUserState;
26
+ let dotNotationToObject = (obj, key) => key.split('.').reduce((slice, i) => slice[i], obj);
27
+ if (keyOrMapFn) {
28
+ switch (typeof keyOrMapFn) {
29
+ case 'function':
30
+ selector = createSelector(getUserState, keyOrMapFn);
31
+ break;
32
+ case 'string':
33
+ selector = createSelector(getUserState, (state) => dotNotationToObject(state, keyOrMapFn));
34
+ break;
35
+ }
36
+ }
37
+ return this.store.select(selector);
38
+ }
39
+ updateState(userState, reducer) {
40
+ // if (typeof pathOrReducer === 'string') {
41
+ // let dotNotationToObject = (obj, key) => key.split('.').reduce((obj, i) => obj[i], obj);
42
+ //
43
+ // const customReducer = (state: UserState, action: UpdateUserDetailsAction): UserState => {
44
+ // return Object.assign({}, dotNotationToObject(state, pathOrReducer), action.payload);
45
+ // };
46
+ // this.store.dispatchAction(userState, 'user', customReducer);
47
+ // }
48
+ if (reducer) {
49
+ this.store.dispatchAction(userState, 'user', reducer);
50
+ }
51
+ else {
52
+ this.store.dispatch(new UpdateUserStateAction(userState));
53
+ }
54
+ }
55
+ }
56
+ /** @nocollapse */ UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UserService, deps: [{ token: i1.StoreService }], target: i0.ɵɵFactoryTarget.Injectable });
57
+ /** @nocollapse */ UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UserService, providedIn: 'root' });
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UserService, decorators: [{
59
+ type: Injectable,
60
+ args: [{
61
+ providedIn: 'root',
62
+ }]
63
+ }], ctorParameters: function () { return [{ type: i1.StoreService }]; } });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy91c2VyL3VzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBb0IsWUFBWSxFQUFhLE1BQU0sV0FBVyxDQUFDO0FBRWxGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQUU3Qyw2RkFBNkY7QUFDN0YscUhBQXFIO0FBS3JILE1BQU0sT0FBTyxXQUE2QyxTQUFRLFVBQXlCO0lBQ3ZGLFlBQXNCLEtBQW1CO1FBQ3JDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBRGQsVUFBSyxHQUFMLEtBQUssQ0FBYztJQUV6QyxDQUFDO0lBRUQsSUFBSSxDQUFDLFNBQVk7UUFDYixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsaURBQWlEO1FBQ2pELElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxJQUFJLFNBQVMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDckUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM1QixPQUFPLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ2hDO1FBQ0QsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxpREFBaUQsRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUlELFFBQVEsQ0FBSSxVQUF1QztRQUMvQyxJQUFJLFFBQVEsR0FBUSxZQUFZLENBQUM7UUFDakMsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRTNGLElBQUksVUFBVSxFQUFFO1lBQ1osUUFBUSxPQUFPLFVBQVUsRUFBRTtnQkFDdkIsS0FBSyxVQUFVO29CQUNYLFFBQVEsR0FBRyxjQUFjLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO29CQUNwRCxNQUFNO2dCQUNWLEtBQUssUUFBUTtvQkFDVCxRQUFRLEdBQUcsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7b0JBQzNGLE1BQU07YUFDYjtTQUNKO1FBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBS0QsV0FBVyxDQUFJLFNBQWdCLEVBQUUsT0FBYTtRQUMxQywyQ0FBMkM7UUFDM0MsOEZBQThGO1FBQzlGLEVBQUU7UUFDRixnR0FBZ0c7UUFDaEcsK0ZBQStGO1FBQy9GLFNBQVM7UUFDVCxtRUFBbUU7UUFDbkUsSUFBSTtRQUVKLElBQUksT0FBTyxFQUFFO1lBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUN6RDthQUFNO1lBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxTQUFnQixDQUFDLENBQUMsQ0FBQztTQUNwRTtJQUNMLENBQUM7OzJIQXJEUSxXQUFXOytIQUFYLFdBQVcsY0FGUixNQUFNOzJGQUVULFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEV1aVNlcnZpY2UsIEV1aVNlcnZpY2VTdGF0dXMsIGdldFVzZXJTdGF0ZSwgVXNlclN0YXRlIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCB7IFN0b3JlU2VydmljZSB9IGZyb20gJy4uL3N0b3JlL3N0b3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXBkYXRlVXNlclN0YXRlQWN0aW9uIH0gZnJvbSAnLi4vc3RvcmUvYWN0aW9ucyc7XG5pbXBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuLy8gZXhwb3J0IGNvbnN0IFVTRVJfQVBJX0NPTkZJR19UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxVc2VyQXBpQ29uZmlnPignVVNFUl9BUElfQ09ORklHJyk7XG4vLyBleHBvcnQgY29uc3QgREVGQVVMVF9VU0VSX1BSRUZFUkVOQ0VTX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEJhc2VVc2VyUHJlZmVyZW5jZXM+KCdERUZBVUxUX1VTRVJfUFJFRkVSRU5DRVMnKTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2U8VCBleHRlbmRzIFVzZXJTdGF0ZSA9IFVzZXJTdGF0ZT4gZXh0ZW5kcyBFdWlTZXJ2aWNlPFQgfCBVc2VyU3RhdGU+IHtcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc3RvcmU6IFN0b3JlU2VydmljZSkge1xuICAgICAgICBzdXBlcih7IHVzZXJJZDogJ2Fubm9ueW1vdXMnIH0pO1xuICAgIH1cblxuICAgIGluaXQodXNlclN0YXRlOiBUKTogT2JzZXJ2YWJsZTxFdWlTZXJ2aWNlU3RhdHVzPiB7XG4gICAgICAgIHN1cGVyLmluaXRFdWlTZXJ2aWNlKCk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcbiAgICAgICAgaWYgKHR5cGVvZiB1c2VyU3RhdGUgPT09ICdvYmplY3QnICYmIHVzZXJTdGF0ZS5oYXNPd25Qcm9wZXJ0eSgndXNlcklkJykpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU3RhdGUodXNlclN0YXRlKTtcbiAgICAgICAgICAgIHJldHVybiBvZih7IHN1Y2Nlc3M6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9mKHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiAnSW5pdCBvYmplY3Qgc2hvdWxkIGJlIGluc3RhbmNlIG9mIEJhc2VVc2VyU3RhdGUnIH0pO1xuICAgIH1cblxuICAgIGdldFN0YXRlPEsgPSBUPihtYXBGbj86IChzdGF0ZTogVCkgPT4gSyk6IE9ic2VydmFibGU8Sz47XG4gICAgZ2V0U3RhdGU8YSBleHRlbmRzIGtleW9mIFQ+KGtleT86IGEpOiBPYnNlcnZhYmxlPFRbYV0+O1xuICAgIGdldFN0YXRlPEs+KGtleU9yTWFwRm4/OiAoKHN0YXRlOiBUKSA9PiBLKSB8IHN0cmluZyk6IE9ic2VydmFibGU8Sz4ge1xuICAgICAgICBsZXQgc2VsZWN0b3I6IGFueSA9IGdldFVzZXJTdGF0ZTtcbiAgICAgICAgbGV0IGRvdE5vdGF0aW9uVG9PYmplY3QgPSAob2JqLCBrZXkpID0+IGtleS5zcGxpdCgnLicpLnJlZHVjZSgoc2xpY2UsIGkpID0+IHNsaWNlW2ldLCBvYmopO1xuXG4gICAgICAgIGlmIChrZXlPck1hcEZuKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiBrZXlPck1hcEZuKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKGdldFVzZXJTdGF0ZSwga2V5T3JNYXBGbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoZ2V0VXNlclN0YXRlLCAoc3RhdGUpID0+IGRvdE5vdGF0aW9uVG9PYmplY3Qoc3RhdGUsIGtleU9yTWFwRm4pKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3Qoc2VsZWN0b3IpO1xuICAgIH1cblxuICAgIHVwZGF0ZVN0YXRlPEsgPSBUPih1c2VyU3RhdGU6IFQpO1xuICAgIC8vIHVwZGF0ZVN0YXRlPGEgZXh0ZW5kcyBrZXlvZiBUPihzbGljZTogVFthXSwgcGF0aDogc3RyaW5nKTtcbiAgICB1cGRhdGVTdGF0ZTxhIGV4dGVuZHMga2V5b2YgVD4oc2xpY2U6IFRbYV0sIHJlZHVjZXI6IChzdGF0ZTogYW55LCBhY3Rpb246IFRbYV0pID0+IGFueSk7XG4gICAgdXBkYXRlU3RhdGU8Sz4odXNlclN0YXRlOiBLIHwgVCwgcmVkdWNlcj86IGFueSkge1xuICAgICAgICAvLyBpZiAodHlwZW9mIHBhdGhPclJlZHVjZXIgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIC8vICAgICBsZXQgZG90Tm90YXRpb25Ub09iamVjdCA9IChvYmosIGtleSkgPT4ga2V5LnNwbGl0KCcuJykucmVkdWNlKChvYmosIGkpID0+IG9ialtpXSwgb2JqKTtcbiAgICAgICAgLy9cbiAgICAgICAgLy8gICAgIGNvbnN0IGN1c3RvbVJlZHVjZXIgPSAoc3RhdGU6IFVzZXJTdGF0ZSwgYWN0aW9uOiBVcGRhdGVVc2VyRGV0YWlsc0FjdGlvbik6IFVzZXJTdGF0ZSA9PiB7XG4gICAgICAgIC8vICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIGRvdE5vdGF0aW9uVG9PYmplY3Qoc3RhdGUsIHBhdGhPclJlZHVjZXIpLCBhY3Rpb24ucGF5bG9hZCk7XG4gICAgICAgIC8vICAgICB9O1xuICAgICAgICAvLyAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaEFjdGlvbih1c2VyU3RhdGUsICd1c2VyJywgY3VzdG9tUmVkdWNlcik7XG4gICAgICAgIC8vIH1cblxuICAgICAgICBpZiAocmVkdWNlcikge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaEFjdGlvbih1c2VyU3RhdGUsICd1c2VyJywgcmVkdWNlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBVcGRhdGVVc2VyU3RhdGVBY3Rpb24odXNlclN0YXRlIGFzIGFueSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19