@zengenti/contensis-react-base 4.0.0-beta.9 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/README.md +14 -1
  2. package/cjs/{App-vZrUfVgQ.js → App-CNylISW7.js} +546 -104
  3. package/cjs/App-CNylISW7.js.map +1 -0
  4. package/cjs/{ChangePassword.container-ECjEXixF.js → ChangePassword.container-C4Du3Wb1.js} +57 -50
  5. package/cjs/ChangePassword.container-C4Du3Wb1.js.map +1 -0
  6. package/cjs/{SSRContext-DVj_QAC1.js → ContensisDeliveryApi-MfcvdfDR.js} +32 -74
  7. package/cjs/ContensisDeliveryApi-MfcvdfDR.js.map +1 -0
  8. package/cjs/CookieConstants-DfPiWCRZ.js +12 -0
  9. package/cjs/CookieConstants-DfPiWCRZ.js.map +1 -0
  10. package/{esm/CookieHelper.class-FTURFpz3.js → cjs/CookieHelper.class-Det3qfdU.js} +4 -6
  11. package/cjs/CookieHelper.class-Det3qfdU.js.map +1 -0
  12. package/cjs/{RouteLoader-D5Yg7EB5.js → RouteLoader-DJeM8cym.js} +17 -9
  13. package/cjs/RouteLoader-DJeM8cym.js.map +1 -0
  14. package/cjs/SSRContext-tMufQDHY.js +116 -0
  15. package/cjs/SSRContext-tMufQDHY.js.map +1 -0
  16. package/cjs/ToJs-BsWqWjdm.js +23 -0
  17. package/cjs/ToJs-BsWqWjdm.js.map +1 -0
  18. package/cjs/{VersionInfo-B_dKCubg.js → VersionInfo-zFPsvS8q.js} +3 -25
  19. package/cjs/VersionInfo-zFPsvS8q.js.map +1 -0
  20. package/cjs/client.js +63 -65
  21. package/cjs/client.js.map +1 -1
  22. package/cjs/contensis-react-base.js +208 -119
  23. package/cjs/contensis-react-base.js.map +1 -1
  24. package/cjs/i18n.js +75 -0
  25. package/cjs/i18n.js.map +1 -0
  26. package/cjs/{ToJs-C9jwV7YB.js → matchGroups-dqONU-vY.js} +2 -22
  27. package/cjs/matchGroups-dqONU-vY.js.map +1 -0
  28. package/cjs/redux.js +8 -6
  29. package/cjs/redux.js.map +1 -1
  30. package/cjs/routing.js +15 -7
  31. package/cjs/routing.js.map +1 -1
  32. package/cjs/{sagas-BVX4Ps1e.js → sagas-BCy9u6zA.js} +523 -375
  33. package/cjs/sagas-BCy9u6zA.js.map +1 -0
  34. package/cjs/search.js +54 -29
  35. package/cjs/search.js.map +1 -1
  36. package/cjs/{selectors-wCs5fHD4.js → selectors-BrxJ8-F8.js} +27 -6
  37. package/cjs/selectors-BrxJ8-F8.js.map +1 -0
  38. package/cjs/selectors-DAQR0uZa.js +18 -0
  39. package/cjs/selectors-DAQR0uZa.js.map +1 -0
  40. package/cjs/slice-5xJMH24n.js +69 -0
  41. package/cjs/slice-5xJMH24n.js.map +1 -0
  42. package/cjs/{store-D07FOXvM.js → store-B7SJs5Hf.js} +64 -5
  43. package/cjs/store-B7SJs5Hf.js.map +1 -0
  44. package/cjs/urls-DGZlAs0y.js +25 -0
  45. package/cjs/urls-DGZlAs0y.js.map +1 -0
  46. package/cjs/user.js +20 -17
  47. package/cjs/user.js.map +1 -1
  48. package/cjs/util-eOjxDjxF.js +148 -0
  49. package/cjs/util-eOjxDjxF.js.map +1 -0
  50. package/cjs/util.js +80 -22
  51. package/cjs/util.js.map +1 -1
  52. package/cjs/{version-CM-bJ62L.js → version-rFG9Y6_B.js} +2 -2
  53. package/cjs/{version-CM-bJ62L.js.map → version-rFG9Y6_B.js.map} +1 -1
  54. package/cjs/{version-B7XFkBhY.js → version-yjHMrfVz.js} +15 -16
  55. package/cjs/version-yjHMrfVz.js.map +1 -0
  56. package/esm/{App-DLZweVSp.js → App-Bvs7Km54.js} +507 -66
  57. package/esm/App-Bvs7Km54.js.map +1 -0
  58. package/esm/{ChangePassword.container-BgzIy8dA.js → ChangePassword.container-CUBtn82K.js} +19 -13
  59. package/esm/ChangePassword.container-CUBtn82K.js.map +1 -0
  60. package/esm/{SSRContext-BE8ElZ3X.js → ContensisDeliveryApi-LWYXevZ1.js} +30 -67
  61. package/esm/ContensisDeliveryApi-LWYXevZ1.js.map +1 -0
  62. package/esm/CookieConstants-DEmbwzYr.js +7 -0
  63. package/esm/CookieConstants-DEmbwzYr.js.map +1 -0
  64. package/{cjs/CookieHelper.class-C3Eqoze9.js → esm/CookieHelper.class-C6rTRl_1.js} +2 -14
  65. package/esm/CookieHelper.class-C6rTRl_1.js.map +1 -0
  66. package/esm/{RouteLoader-xeQBXywk.js → RouteLoader-CzrlySZf.js} +14 -6
  67. package/esm/RouteLoader-CzrlySZf.js.map +1 -0
  68. package/esm/SSRContext-Bxtg1KGv.js +106 -0
  69. package/esm/SSRContext-Bxtg1KGv.js.map +1 -0
  70. package/esm/ToJs-BnRRHk6f.js +17 -0
  71. package/esm/ToJs-BnRRHk6f.js.map +1 -0
  72. package/esm/{VersionInfo-Cno7K0OA.js → VersionInfo-By2ZCZOh.js} +4 -24
  73. package/esm/VersionInfo-By2ZCZOh.js.map +1 -0
  74. package/esm/client.js +63 -64
  75. package/esm/client.js.map +1 -1
  76. package/esm/contensis-react-base.js +201 -114
  77. package/esm/contensis-react-base.js.map +1 -1
  78. package/esm/i18n.js +64 -0
  79. package/esm/i18n.js.map +1 -0
  80. package/esm/{ToJs-CNzfvyxJ.js → matchGroups-_w8BwzCC.js} +3 -18
  81. package/esm/matchGroups-_w8BwzCC.js.map +1 -0
  82. package/esm/redux.js +11 -8
  83. package/esm/redux.js.map +1 -1
  84. package/esm/routing.js +14 -7
  85. package/esm/routing.js.map +1 -1
  86. package/esm/{sagas-JI51CS37.js → sagas-Fr9yRduO.js} +511 -362
  87. package/esm/sagas-Fr9yRduO.js.map +1 -0
  88. package/esm/search.js +73 -47
  89. package/esm/search.js.map +1 -1
  90. package/esm/{selectors-DO2ocdOp.js → selectors-8ROQrTd7.js} +25 -7
  91. package/esm/selectors-8ROQrTd7.js.map +1 -0
  92. package/esm/selectors-DcmvOeX2.js +10 -0
  93. package/esm/selectors-DcmvOeX2.js.map +1 -0
  94. package/esm/slice-C6JLQik8.js +63 -0
  95. package/esm/slice-C6JLQik8.js.map +1 -0
  96. package/esm/{store-3u0RzHZ0.js → store-B4IrBYHm.js} +64 -6
  97. package/esm/store-B4IrBYHm.js.map +1 -0
  98. package/esm/urls-tLxo_skx.js +22 -0
  99. package/esm/urls-tLxo_skx.js.map +1 -0
  100. package/esm/user.js +9 -6
  101. package/esm/user.js.map +1 -1
  102. package/esm/util-Bl2u6LpY.js +136 -0
  103. package/esm/util-Bl2u6LpY.js.map +1 -0
  104. package/esm/util.js +58 -14
  105. package/esm/util.js.map +1 -1
  106. package/esm/{version-wnf-TITV.js → version-BQAL8sQO.js} +2 -2
  107. package/esm/{version-wnf-TITV.js.map → version-BQAL8sQO.js.map} +1 -1
  108. package/esm/{version-BlsI7hX2.js → version-CA9Mdm3A.js} +16 -16
  109. package/esm/version-CA9Mdm3A.js.map +1 -0
  110. package/i18n/package.json +5 -0
  111. package/models/app/pages/VersionInfo/components/VersionInfo.d.ts +1 -1
  112. package/models/app/pages/VersionInfo/components/VersionInfo.styled.d.ts +1 -2
  113. package/models/i18n/index.d.ts +5 -0
  114. package/models/i18n/redux/sagas.d.ts +19 -0
  115. package/models/i18n/redux/selectors.d.ts +11 -0
  116. package/models/i18n/redux/slice.d.ts +198 -0
  117. package/models/i18n/routes.d.ts +8 -0
  118. package/models/i18n/useI18n.hook.d.ts +20 -0
  119. package/models/index.d.ts +1 -0
  120. package/models/models/AppState.d.ts +2 -0
  121. package/models/models/ContentTypeMapping.d.ts +6 -1
  122. package/models/models/EntryMapper.d.ts +2 -1
  123. package/models/models/Locales.d.ts +11 -0
  124. package/models/models/MatchedRoute.d.ts +5 -1
  125. package/models/models/RouteComponent.d.ts +0 -1
  126. package/models/models/RouteNode.d.ts +4 -2
  127. package/models/models/SSRContext.d.ts +4 -4
  128. package/models/models/StaticRoute.d.ts +12 -1
  129. package/models/models/WithEvents.d.ts +8 -0
  130. package/models/models/config/AppConfig.d.ts +2 -0
  131. package/models/models/config/I18n.d.ts +38 -0
  132. package/models/models/config/ServerConfig.d.ts +14 -0
  133. package/models/redux/index.d.ts +2 -1
  134. package/models/redux/sagas/index.d.ts +3 -1
  135. package/models/redux/sagas/injector.d.ts +13 -0
  136. package/models/redux/store/injectors/index.d.ts +26 -0
  137. package/models/redux/store/injectors/inject.d.ts +24 -0
  138. package/models/redux/store/injectors/util.d.ts +2 -0
  139. package/models/redux/store/store.d.ts +13 -4
  140. package/models/redux/util.d.ts +1 -1
  141. package/models/routing/components/RouteLoader.d.ts +3 -3
  142. package/models/routing/httpContext.d.ts +0 -1
  143. package/models/routing/index.d.ts +1 -0
  144. package/models/routing/redux/actions.d.ts +1 -1
  145. package/models/routing/redux/invokeSearch.d.ts +22 -0
  146. package/models/routing/redux/selectors.d.ts +47 -4
  147. package/models/routing/util/expressions.d.ts +1 -1
  148. package/models/routing/util/find-contenttype-mapping.d.ts +3 -1
  149. package/models/search/containers/withListing.d.ts +1 -1
  150. package/models/search/containers/withSearch.d.ts +1 -1
  151. package/models/search/models/Queries.d.ts +3 -5
  152. package/models/search/models/Search.d.ts +43 -13
  153. package/models/search/models/SearchActions.d.ts +61 -18
  154. package/models/search/models/SearchProps.d.ts +11 -10
  155. package/models/search/models/SearchState.d.ts +23 -2
  156. package/models/search/models/SearchUtil.d.ts +3 -3
  157. package/models/search/redux/getIn.d.ts +2 -2
  158. package/models/search/redux/reducers.d.ts +3 -4
  159. package/models/search/redux/sagas.d.ts +13 -14
  160. package/models/search/redux/schema.d.ts +3 -3
  161. package/models/search/redux/selectors.d.ts +64 -42
  162. package/models/search/redux/util.d.ts +10 -1
  163. package/models/search/search/ContensisDeliveryApi.d.ts +6 -26
  164. package/models/search/search/expressions.d.ts +6 -4
  165. package/models/search/search/util.d.ts +9 -7
  166. package/models/search/transformations/state-to-queryparams.mapper.d.ts +1 -1
  167. package/models/server/features/linkdepth-api/search.d.ts +1 -1
  168. package/models/server/features/response-handler/render-stream.d.ts +2 -4
  169. package/models/server/features/static-assets/index.d.ts +4 -3
  170. package/models/server/internalServer.d.ts +1 -2
  171. package/models/server/middleware/subsiteDebug.d.ts +11 -0
  172. package/models/server/root.d.ts +3 -0
  173. package/models/server/util/bundles.d.ts +9 -9
  174. package/models/server/util/jsx.d.ts +2 -14
  175. package/models/user/components.styled/Login.styled.d.ts +1 -1
  176. package/models/user/components.styled/LoginForm.styled.d.ts +1 -1
  177. package/models/user/hocs/withRegistration.d.ts +1 -1
  178. package/models/util/CachedDeliveryApi.d.ts +8 -2
  179. package/models/util/ContensisDeliveryApi.d.ts +2 -4
  180. package/models/util/NoSSR.d.ts +6 -0
  181. package/models/util/SSRContext.d.ts +3 -19
  182. package/models/util/donotuse_useHistory.d.ts +6 -0
  183. package/models/util/errors.d.ts +16 -0
  184. package/models/util/index.d.ts +7 -2
  185. package/models/util/subsite.d.ts +12 -0
  186. package/models/util/urls.d.ts +1 -2
  187. package/models/util/useIsClient.d.ts +6 -0
  188. package/package.json +37 -39
  189. package/cjs/App-vZrUfVgQ.js.map +0 -1
  190. package/cjs/ChangePassword.container-ECjEXixF.js.map +0 -1
  191. package/cjs/CookieHelper.class-C3Eqoze9.js.map +0 -1
  192. package/cjs/RouteLoader-D5Yg7EB5.js.map +0 -1
  193. package/cjs/SSRContext-DVj_QAC1.js.map +0 -1
  194. package/cjs/ToJs-C9jwV7YB.js.map +0 -1
  195. package/cjs/VersionInfo-B_dKCubg.js.map +0 -1
  196. package/cjs/sagas-BVX4Ps1e.js.map +0 -1
  197. package/cjs/selectors-wCs5fHD4.js.map +0 -1
  198. package/cjs/store-D07FOXvM.js.map +0 -1
  199. package/cjs/version-B7XFkBhY.js.map +0 -1
  200. package/esm/App-DLZweVSp.js.map +0 -1
  201. package/esm/ChangePassword.container-BgzIy8dA.js.map +0 -1
  202. package/esm/CookieHelper.class-FTURFpz3.js.map +0 -1
  203. package/esm/RouteLoader-xeQBXywk.js.map +0 -1
  204. package/esm/SSRContext-BE8ElZ3X.js.map +0 -1
  205. package/esm/ToJs-CNzfvyxJ.js.map +0 -1
  206. package/esm/VersionInfo-Cno7K0OA.js.map +0 -1
  207. package/esm/sagas-JI51CS37.js.map +0 -1
  208. package/esm/selectors-DO2ocdOp.js.map +0 -1
  209. package/esm/store-3u0RzHZ0.js.map +0 -1
  210. package/esm/version-BlsI7hX2.js.map +0 -1
  211. package/models/redux/store/injectors.d.ts +0 -31
  212. package/models/search/search/ToJs.d.ts +0 -4
@@ -1,4 +1,5 @@
1
1
  import { produce } from 'immer';
2
+ import { createSelector } from 'reselect';
2
3
  import { jpath } from 'jsonpath-mapper';
3
4
  import queryString from 'query-string';
4
5
 
@@ -59,8 +60,9 @@ var routing$2 = /*#__PURE__*/Object.freeze({
59
60
  UPDATE_LOADING_STATE: UPDATE_LOADING_STATE
60
61
  });
61
62
 
62
- const setNavigationPath = (path, location, staticRoute, withEvents, statePath, routes, ssr) => action(SET_NAVIGATION_PATH, {
63
+ const setNavigationPath = (path, contentPath, location, staticRoute, withEvents, statePath, routes, ssr) => action(SET_NAVIGATION_PATH, {
63
64
  path,
65
+ contentPath,
64
66
  location,
65
67
  staticRoute,
66
68
  withEvents,
@@ -318,6 +320,7 @@ const selectSsrApiCalls = state => {
318
320
  return getImmutableOrJS(state, ['routing', 'apiCalls'], [], 'js');
319
321
  };
320
322
  const selectCurrentHostname = state => getImmutableOrJS(state, ['routing', 'currentHostname']);
323
+ const selectSsrHostname = state => getImmutableOrJS(state, ['routing', 'ssrHostname']);
321
324
  const selectCurrentTreeID = state => getImmutableOrJS(state, ['routing', 'currentHostname']);
322
325
  const selectRouteEntryEntryId = state => getImmutableOrJS(state, ['routing', 'entry', 'sys', 'id'], null);
323
326
  const selectRouteEntryContentTypeId = state => {
@@ -328,6 +331,10 @@ const selectRouteEntryLanguage = state => {
328
331
  const entry = selectRouteEntry(state);
329
332
  return getImmutableOrJS(entry, ['sys', 'language'], null);
330
333
  };
334
+ const selectRouteEntryAvailableLanguages = state => {
335
+ const entry = selectRouteEntry(state);
336
+ return getImmutableOrJS(entry, ['sys', 'availableLanguages'], []);
337
+ };
331
338
  const selectRouteEntrySlug = state => {
332
339
  const entry = selectRouteEntry(state);
333
340
  return getImmutableOrJS(entry, ['sys', 'slug'], null);
@@ -340,16 +347,24 @@ const selectCurrentPath = state => getImmutableOrJS(state, ['routing', 'currentP
340
347
  const selectCurrentLocation = state => getImmutableOrJS(state, ['routing', 'location']);
341
348
  const selectCurrentSearch = state => getImmutableOrJS(state, ['routing', 'location', 'search']);
342
349
  const selectCurrentHash = state => getImmutableOrJS(state, ['routing', 'location', 'hash']);
343
- const selectQueryStringAsObject = state => queryParams(selectCurrentSearch(state));
350
+
351
+ // export const selectQueryStringAsObject = (state: AppState) =>
352
+ // queryParams(selectCurrentSearch(state));
353
+
354
+ const selectQueryStringAsObject = createSelector([selectCurrentSearch], currentSearch => queryParams(currentSearch));
344
355
  const selectCurrentProject = state => getImmutableOrJS(state, ['routing', 'currentProject']);
345
356
  const selectIsNotFound = state => getImmutableOrJS(state, ['routing', 'notFound']);
346
357
  const selectCurrentAncestors = state => getImmutableOrJS(state, ['routing', 'currentNodeAncestors'], []);
347
358
  const selectCurrentSiblings = state => getImmutableOrJS(state, ['routing', 'currentNodeSiblings'], []);
348
359
  const selectCurrentNode = (state, returnType) => getImmutableOrJS(state, ['routing', 'currentNode'], null, returnType);
360
+ const selectCurrentNodeLanguage = state => getImmutableOrJS(state, ['routing', 'currentNode', 'language'], null);
349
361
  const selectCurrentChildren = state => getImmutableOrJS(state, ['routing', 'currentNode', 'children'], []);
350
- const selectBreadcrumb = state => {
351
- return [...selectCurrentAncestors(state), selectCurrentNode(state)];
352
- };
362
+
363
+ // export const selectBreadcrumb = (state: AppState) => {
364
+ // return [...selectCurrentAncestors(state), selectCurrentNode(state)];
365
+ // };
366
+
367
+ const selectBreadcrumb = createSelector([selectCurrentAncestors, selectCurrentNode], (currentAncestors, currentNode) => [...currentAncestors, currentNode]);
353
368
  const selectRouteErrorMessage = state => {
354
369
  const error = getImmutableOrJS(state, ['routing', 'error']);
355
370
  return getImmutableOrJS(error, ['data', 'message'], getImmutableOrJS(error, 'statusText'));
@@ -369,6 +384,7 @@ var routing = /*#__PURE__*/Object.freeze({
369
384
  selectCurrentHostname: selectCurrentHostname,
370
385
  selectCurrentLocation: selectCurrentLocation,
371
386
  selectCurrentNode: selectCurrentNode,
387
+ selectCurrentNodeLanguage: selectCurrentNodeLanguage,
372
388
  selectCurrentPath: selectCurrentPath,
373
389
  selectCurrentProject: selectCurrentProject,
374
390
  selectCurrentSearch: selectCurrentSearch,
@@ -378,6 +394,7 @@ var routing = /*#__PURE__*/Object.freeze({
378
394
  selectMappedEntry: selectMappedEntry,
379
395
  selectQueryStringAsObject: selectQueryStringAsObject,
380
396
  selectRouteEntry: selectRouteEntry,
397
+ selectRouteEntryAvailableLanguages: selectRouteEntryAvailableLanguages,
381
398
  selectRouteEntryContentTypeId: selectRouteEntryContentTypeId,
382
399
  selectRouteEntryEntryId: selectRouteEntryEntryId,
383
400
  selectRouteEntryID: selectRouteEntryID,
@@ -388,9 +405,10 @@ var routing = /*#__PURE__*/Object.freeze({
388
405
  selectRouteLoading: selectRouteLoading,
389
406
  selectRouteStatusCode: selectRouteStatusCode,
390
407
  selectSsrApiCalls: selectSsrApiCalls,
408
+ selectSsrHostname: selectSsrHostname,
391
409
  selectStaticRoute: selectStaticRoute,
392
410
  selectSurrogateKeys: selectSurrogateKeys
393
411
  });
394
412
 
395
- export { LOGIN_USER as $, SET_ENTRY as A, SET_ANCESTORS as B, selectCurrentNode as C, selectCurrentAncestors as D, selectCurrentSiblings as E, selectRouteEntryEntryId as F, selectRouteEntryLanguage as G, REGISTER_USER_SUCCESS as H, REGISTER_USER_FAILED as I, queryParams as J, selectCurrentSearch as K, setRoute as L, REQUEST_USER_PASSWORD_RESET as M, RESET_USER_PASSWORD as N, CHANGE_USER_PASSWORD as O, REQUEST_USER_PASSWORD_RESET_SENDING as P, REQUEST_USER_PASSWORD_RESET_SUCCESS as Q, REGISTER_USER as R, SET_TARGET_PROJECT as S, REQUEST_USER_PASSWORD_RESET_ERROR as T, UserReducer as U, RESET_USER_PASSWORD_SENDING as V, RESET_USER_PASSWORD_SUCCESS as W, RESET_USER_PASSWORD_ERROR as X, CHANGE_USER_PASSWORD_ERROR as Y, CHANGE_USER_PASSWORD_SENDING as Z, CHANGE_USER_PASSWORD_SUCCESS as _, routing$1 as a, LOGOUT_USER as a0, VALIDATE_USER as a1, SET_AUTHENTICATION_STATE as a2, selectSurrogateKeys as a3, selectSsrApiCalls as a4, routing as b, action as c, setCurrentProject as d, getJS as e, selectRouteEntryContentTypeId as f, getImmutableOrJS as g, selectRouteEntry as h, initialUserState as i, selectRouteIsError as j, selectIsNotFound as k, selectRouteLoading as l, selectMappedEntry as m, selectCurrentProject as n, selectCurrentPath as o, selectRouteStatusCode as p, selectRouteErrorMessage as q, routing$2 as r, setSurrogateKeys as s, types as t, setNavigationPath as u, SET_SURROGATE_KEYS as v, SET_SIBLINGS as w, SET_ROUTE as x, SET_NAVIGATION_PATH as y, UPDATE_LOADING_STATE as z };
396
- //# sourceMappingURL=selectors-DO2ocdOp.js.map
413
+ export { REQUEST_USER_PASSWORD_RESET_ERROR as $, SET_ENTRY as A, SET_ANCESTORS as B, LOGOUT_USER as C, SET_AUTHENTICATION_STATE as D, queryParams as E, selectCurrentSearch as F, setRoute as G, REQUEST_USER_PASSWORD_RESET as H, RESET_USER_PASSWORD as I, CHANGE_USER_PASSWORD as J, selectRouteEntryAvailableLanguages as K, LOGIN_USER as L, selectRouteEntryID as M, selectStaticRoute as N, selectCurrentNode as O, selectCurrentAncestors as P, selectCurrentSiblings as Q, REGISTER_USER as R, SET_TARGET_PROJECT as S, selectRouteEntryEntryId as T, UserReducer as U, VALIDATE_USER as V, selectRouteEntryLanguage as W, REGISTER_USER_SUCCESS as X, REGISTER_USER_FAILED as Y, REQUEST_USER_PASSWORD_RESET_SENDING as Z, REQUEST_USER_PASSWORD_RESET_SUCCESS as _, routing$1 as a, RESET_USER_PASSWORD_SENDING as a0, RESET_USER_PASSWORD_SUCCESS as a1, RESET_USER_PASSWORD_ERROR as a2, CHANGE_USER_PASSWORD_ERROR as a3, CHANGE_USER_PASSWORD_SENDING as a4, CHANGE_USER_PASSWORD_SUCCESS as a5, selectSurrogateKeys as a6, selectSsrApiCalls as a7, routing as b, setSurrogateKeys as c, action as d, getJS as e, selectCurrentProject as f, getImmutableOrJS as g, selectRouteEntryContentTypeId as h, initialUserState as i, selectRouteEntry as j, selectRouteIsError as k, selectIsNotFound as l, selectRouteLoading as m, selectMappedEntry as n, selectCurrentPath as o, selectRouteStatusCode as p, selectRouteErrorMessage as q, routing$2 as r, setCurrentProject as s, types as t, setNavigationPath as u, SET_SURROGATE_KEYS as v, SET_SIBLINGS as w, SET_ROUTE as x, SET_NAVIGATION_PATH as y, UPDATE_LOADING_STATE as z };
414
+ //# sourceMappingURL=selectors-8ROQrTd7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors-8ROQrTd7.js","sources":["../src/redux/util.ts","../src/routing/redux/types.ts","../src/routing/redux/actions.ts","../src/user/redux/types.ts","../src/user/redux/reducers.ts","../src/util/navigation.js","../src/routing/redux/selectors.ts"],"sourcesContent":["import { jpath } from '~/util/json-mapper';\n\nexport const action = (type: string, payload: any = {}) => ({\n type,\n ...payload,\n});\n\nexport const getJS = <S extends Record<string, unknown>, T extends keyof S>(\n state: S,\n stateKey: T\n) => {\n if (\n 'get' in state &&\n typeof state.get === 'function' &&\n 'toJS' in state &&\n typeof state.toJS === 'function'\n ) {\n return state.get(stateKey) as S[T];\n }\n return state[stateKey];\n};\n\nexport const getImmutableOrJS = <\n S extends Record<string, unknown>,\n T extends keyof S | any\n>(\n state: S,\n stateKey: T | T[],\n fallbackValue?: any,\n returnType: 'immutable' | 'js' = globalThis.STATE_TYPE\n) => {\n // Find a fromJS function from global that is dynamically loaded in createStore\n // or replace with a stub function for non-immutable gets\n const fromJS =\n returnType === 'immutable'\n ? globalThis.immutable?.fromJSOrdered || globalThis.immutable?.fromJS\n : v => v;\n\n if (\n state &&\n 'get' in state &&\n typeof state.get === 'function' &&\n 'getIn' in state &&\n typeof state.getIn === 'function' &&\n 'toJS' in state &&\n typeof state.toJS === 'function'\n ) {\n if (Array.isArray(stateKey))\n return fromJS(state.getIn(stateKey, fallbackValue));\n return fromJS(state.get(stateKey, fallbackValue)) as S[T | any];\n }\n\n if (Array.isArray(stateKey) && state && typeof state === 'object') {\n const result = jpath(stateKey.join('.'), state);\n if (typeof result === 'undefined') return fallbackValue;\n return result;\n }\n\n const result =\n state && typeof state === 'object' ? state[stateKey as string] : undefined;\n if (typeof result === 'undefined') return fallbackValue;\n return result;\n};\n","const ROUTING_PREFIX = '@ROUTING/';\nexport const GET_ENTRY = `${ROUTING_PREFIX}_GET_ENTRY`;\nexport const SET_ENTRY = `${ROUTING_PREFIX}_SET_ENTRY`;\nexport const SET_NODE = `${ROUTING_PREFIX}_SET_NODE`;\nexport const SET_ANCESTORS = `${ROUTING_PREFIX}_SET_ANCESTORS`;\nexport const SET_SIBLINGS = `${ROUTING_PREFIX}_SET_SIBLINGS`;\nexport const SET_ENTRY_ID = `${ROUTING_PREFIX}_SET_ENTRY_ID`;\nexport const SET_SURROGATE_KEYS = `${ROUTING_PREFIX}_SET_SURROGATE_KEYS`;\n\nexport const SET_NAVIGATION_PATH = `${ROUTING_PREFIX}_SET_NAVIGATION_PATH`;\n\nexport const SET_TARGET_PROJECT = `${ROUTING_PREFIX}_SET_TARGET_PROJECT`;\n\nexport const SET_ROUTE = `${ROUTING_PREFIX}_SET_ROUTE`;\n\nexport const UPDATE_LOADING_STATE = `${ROUTING_PREFIX}_UPDATE_LOADING_STATE`;\n","import { useLocation } from 'react-router-dom';\nimport { action } from '~/redux/util';\nimport {\n SET_ENTRY,\n SET_NAVIGATION_PATH,\n SET_TARGET_PROJECT,\n SET_ROUTE,\n SET_SURROGATE_KEYS,\n} from './types';\n\nimport { Entry } from 'contensis-delivery-api/lib/models';\nimport { AppRoutes, MatchedRoute, StaticRoute, SSRContext, WithEvents } from '~/models';\n\nexport const setNavigationPath = (\n path: string,\n contentPath: string,\n location: ReturnType<typeof useLocation>,\n staticRoute: MatchedRoute<string, StaticRoute> | undefined,\n withEvents: WithEvents,\n statePath: string,\n routes: AppRoutes,\n ssr: SSRContext\n) =>\n action(SET_NAVIGATION_PATH, {\n path,\n contentPath,\n location,\n staticRoute,\n withEvents,\n statePath,\n routes,\n ssr,\n });\n\nexport const setCurrentProject = (\n project: string,\n allowedGroups: any,\n hostname: string\n) => action(SET_TARGET_PROJECT, { project, allowedGroups, hostname });\n\nexport const setRoute = (path: string, state?: any) =>\n action(SET_ROUTE, { path, state });\n\nexport const setRouteEntry = (entry: Entry) => action(SET_ENTRY, { entry });\n\nexport const setSurrogateKeys = (keys: string, url: string, status: number) =>\n action(SET_SURROGATE_KEYS, { keys, url, status });\n","const ACTION_PREFIX = '@USER/';\nexport const VALIDATE_USER = `${ACTION_PREFIX}VALIDATE_USER`;\nexport const SET_AUTHENTICATION_STATE = `${ACTION_PREFIX}SET_AUTHENTICATION_STATE`;\nexport const LOGIN_USER = `${ACTION_PREFIX}LOGIN_USER`;\nexport const LOGIN_SUCCESSFUL = `${ACTION_PREFIX}LOGIN_SUCCESSFUL`;\nexport const LOGIN_FAILED = `${ACTION_PREFIX}LOGIN_FAILED`;\nexport const LOGOUT_USER = `${ACTION_PREFIX}LOGOUT_USER`;\nexport const REGISTER_USER = `${ACTION_PREFIX}REGISTER_USER`;\nexport const REGISTER_USER_SUCCESS = `${ACTION_PREFIX}REGISTER_USER_SUCCESS`;\nexport const REGISTER_USER_FAILED = `${ACTION_PREFIX}REGISTER_USER_FAILED`;\n\nexport const REQUEST_USER_PASSWORD_RESET = `${ACTION_PREFIX}REQUEST_USER_PASSWORD_RESET`;\nexport const RESET_USER_PASSWORD = `${ACTION_PREFIX}RESET_USER_PASSWORD`;\nexport const REQUEST_USER_PASSWORD_RESET_SENDING = `${ACTION_PREFIX}REQUEST_USER_PASSWORD_RESET_SENDING`;\nexport const REQUEST_USER_PASSWORD_RESET_SUCCESS = `${ACTION_PREFIX}REQUEST_USER_PASSWORD_RESET_SUCCESS`;\nexport const REQUEST_USER_PASSWORD_RESET_ERROR = `${ACTION_PREFIX}REQUEST_USER_PASSWORD_RESET_ERROR`;\nexport const RESET_USER_PASSWORD_SENDING = `${ACTION_PREFIX}RESET_USER_PASSWORD_SENDING`;\nexport const RESET_USER_PASSWORD_SUCCESS = `${ACTION_PREFIX}RESET_USER_PASSWORD_SUCCESS`;\nexport const RESET_USER_PASSWORD_ERROR = `${ACTION_PREFIX}RESET_USER_PASSWORD_ERROR`;\n\nexport const CHANGE_USER_PASSWORD = `${ACTION_PREFIX}CHANGE_USER_PASSWORD`;\nexport const CHANGE_USER_PASSWORD_SENDING = `${ACTION_PREFIX}CHANGE_USER_PASSWORD_SENDING`;\nexport const CHANGE_USER_PASSWORD_SUCCESS = `${ACTION_PREFIX}CHANGE_USER_PASSWORD_SUCCESS`;\nexport const CHANGE_USER_PASSWORD_ERROR = `${ACTION_PREFIX}CHANGE_USER_PASSWORD_ERROR`;\n","import { Draft, produce } from 'immer';\nimport { AppState } from '~/models';\nimport {\n REGISTER_USER,\n REGISTER_USER_FAILED,\n REGISTER_USER_SUCCESS,\n SET_AUTHENTICATION_STATE,\n LOGIN_USER,\n LOGOUT_USER,\n REQUEST_USER_PASSWORD_RESET_SENDING,\n REQUEST_USER_PASSWORD_RESET_SUCCESS,\n REQUEST_USER_PASSWORD_RESET_ERROR,\n RESET_USER_PASSWORD_SENDING,\n RESET_USER_PASSWORD_SUCCESS,\n RESET_USER_PASSWORD_ERROR,\n CHANGE_USER_PASSWORD_SENDING,\n CHANGE_USER_PASSWORD_SUCCESS,\n CHANGE_USER_PASSWORD_ERROR,\n} from './types';\n\nconst defaultAuthenticationState = {\n clientCredentials: null,\n errorMessage: null,\n isAuthenticated: false,\n isAuthenticationError: false,\n isError: false,\n isLoading: false,\n};\n\nconst defaultPasswordResetRequestValues = {\n isSending: false,\n sent: false,\n error: null,\n};\n\nconst defaultResetPasswordValues = {\n isSending: false,\n sent: false,\n error: null,\n};\n\nconst defaultChangePasswordValues = {\n isSending: false,\n sent: false,\n error: null,\n};\n\nconst defaultRegistrationValues = {\n isLoading: false,\n success: false,\n error: null,\n};\n\nexport const initialUserState = {\n authenticationState: defaultAuthenticationState,\n passwordResetRequest: defaultPasswordResetRequestValues,\n resetPassword: defaultResetPasswordValues,\n changePassword: defaultChangePasswordValues,\n groups: [],\n};\n\nexport default produce((state: Draft<AppState['user']>, action) => {\n switch (action.type) {\n case LOGOUT_USER: {\n return initialUserState;\n }\n case LOGIN_USER:\n case SET_AUTHENTICATION_STATE: {\n if (!action.authenticationState) {\n action.authenticationState = defaultAuthenticationState;\n }\n\n const {\n authenticationState: {\n clientCredentials = null,\n errorMessage = null,\n isAuthenticated,\n isAuthenticationError = false,\n isError = false,\n isLoading = action.type === LOGIN_USER,\n },\n user,\n } = action;\n\n if (user) {\n user.name =\n `${user.firstName}${user.lastName ? ` ${user.lastName}` : ''}` ||\n null;\n user.isZengentiStaff = user.email.includes('@zengenti.com');\n }\n\n state = {\n ...initialUserState,\n ...(user || state),\n authenticationState: {\n clientCredentials,\n errorMessage,\n isAuthenticated:\n isAuthenticated || state?.authenticationState?.isAuthenticated,\n isAuthenticationError,\n isError,\n isLoading,\n },\n };\n return state;\n }\n // REGISTER_USER is the trigger to set the user.registration initial state\n // and will set user.registration.isLoading to true\n // REGISTER_USER_FAILED will unset user.registration.isLoading and will set\n // the value in user.registration.error\n // REGISTER_USER_SUCCESS will unset user.registration.isLoading and will\n // set user.registration to the created user from the api response\n case REGISTER_USER:\n case REGISTER_USER_FAILED:\n case REGISTER_USER_SUCCESS: {\n const { error, user } = action;\n\n // Set registration object from the supplied action.user\n // so we can call these values back later\n state.registration = (user ||\n state.registration ||\n defaultRegistrationValues) as typeof defaultRegistrationValues;\n\n // Set registration flags so the UI can track the status\n state.registration.success = action.type === REGISTER_USER_SUCCESS;\n state.registration.error = error || false;\n state.registration.isLoading = action.type === REGISTER_USER;\n return;\n }\n case REQUEST_USER_PASSWORD_RESET_SENDING:\n if (state.passwordResetRequest) {\n state.passwordResetRequest = { ...defaultPasswordResetRequestValues };\n state.passwordResetRequest.isSending = true;\n }\n return;\n case REQUEST_USER_PASSWORD_RESET_SUCCESS:\n if (state.passwordResetRequest) {\n state.passwordResetRequest.isSending = false;\n state.passwordResetRequest.sent = true;\n }\n return;\n case REQUEST_USER_PASSWORD_RESET_ERROR:\n if (state.passwordResetRequest) {\n state.passwordResetRequest.isSending = false;\n state.passwordResetRequest.error = action.error;\n }\n return;\n case RESET_USER_PASSWORD_SENDING:\n if (state.resetPassword) {\n state.resetPassword.isSending = true;\n }\n return;\n case RESET_USER_PASSWORD_SUCCESS:\n if (state.resetPassword) {\n state.resetPassword.isSending = false;\n state.resetPassword.sent = true;\n }\n return;\n case RESET_USER_PASSWORD_ERROR:\n if (state.resetPassword) {\n state.resetPassword.isSending = false;\n state.resetPassword.error = action.error;\n }\n return;\n case CHANGE_USER_PASSWORD_SENDING:\n if (state.changePassword) {\n state.changePassword.isSending = true;\n }\n return;\n case CHANGE_USER_PASSWORD_SUCCESS:\n if (state.changePassword) {\n state.changePassword.isSending = false;\n state.changePassword.sent = true;\n }\n return;\n case CHANGE_USER_PASSWORD_ERROR:\n if (state.changePassword) {\n state.changePassword.isSending = false;\n state.changePassword.error = action.error;\n }\n return;\n default:\n return;\n }\n}, initialUserState);\n","import queryString from 'query-string';\n\nexport function queryParams(search) {\n return queryString.parse(\n typeof window != 'undefined' ? window.location.search : search\n );\n}\nexport const routeParams = staticRoute =>\n staticRoute && staticRoute.match ? staticRoute.match.params : {};\n\nexport const buildUrl = (route, params) => {\n const qs = queryString.stringify(params);\n const path = qs ? `${route}?${qs}` : route;\n return path;\n};\n\nexport const clientHostname = () =>\n `${window.location.protocol}//${window.location.hostname}:${window.location.port}`;\n","import { Entry } from 'contensis-delivery-api';\nimport { createSelector } from 'reselect';\nimport { AppState, MatchedRoute, StateType, StaticRoute } from '~/models';\nimport { getImmutableOrJS as getIn } from '~/redux/util';\nimport { queryParams } from '~/util/navigation';\n\nexport const selectRouteEntry = (state: AppState, returnType?: StateType) =>\n getIn(state, ['routing', 'entry'], {} as Entry, returnType);\n\nexport const selectMappedEntry = (state: AppState, returnType?: StateType) =>\n getIn(state, ['routing', 'mappedEntry'], null, returnType);\n\nexport const selectSurrogateKeys = (state: AppState) => {\n const keys = getIn(state, ['routing', 'surrogateKeys'], [], 'js');\n return keys;\n};\nexport const selectSsrApiCalls = (state: AppState) => {\n return getIn(state, ['routing', 'apiCalls'], [], 'js');\n};\nexport const selectCurrentHostname = (state: AppState) =>\n getIn(state, ['routing', 'currentHostname']);\n\nexport const selectSsrHostname = (state: AppState) =>\n getIn(state, ['routing', 'ssrHostname']);\n\nexport const selectCurrentTreeID = (state: AppState) =>\n getIn(state, ['routing', 'currentHostname']);\n\nexport const selectRouteEntryEntryId = (state: AppState) =>\n getIn(state, ['routing', 'entry', 'sys', 'id'], null);\n\nexport const selectRouteEntryContentTypeId = (state: AppState) => {\n const entry = selectRouteEntry(state);\n return getIn(entry, ['sys', 'contentTypeId'], null);\n};\n\nexport const selectRouteEntryLanguage = (state: AppState) => {\n const entry = selectRouteEntry(state);\n return getIn(entry, ['sys', 'language'], null);\n};\n\nexport const selectRouteEntryAvailableLanguages = (\n state: AppState\n): string[] => {\n const entry = selectRouteEntry(state);\n return getIn(entry, ['sys', 'availableLanguages'], []);\n};\n\nexport const selectRouteEntrySlug = (state: AppState) => {\n const entry = selectRouteEntry(state);\n return getIn(entry, ['sys', 'slug'], null);\n};\n\nexport const selectRouteEntryID = (state: AppState) =>\n getIn(state, ['routing', 'entryID']);\n\nexport const selectCanonicalPath = (state: AppState) => {\n return getIn(state, ['routing', 'canonicalPath']);\n};\n\nexport const selectCurrentPath = (state: AppState) =>\n getIn(state, ['routing', 'currentPath']);\n\nexport const selectCurrentLocation = (state: AppState) =>\n getIn(state, ['routing', 'location']);\nexport const selectCurrentSearch = (state: AppState) =>\n getIn(state, ['routing', 'location', 'search']);\nexport const selectCurrentHash = (state: AppState) =>\n getIn(state, ['routing', 'location', 'hash']);\n\n// export const selectQueryStringAsObject = (state: AppState) =>\n// queryParams(selectCurrentSearch(state));\n\nexport const selectQueryStringAsObject = createSelector(\n [selectCurrentSearch],\n currentSearch => queryParams(currentSearch)\n);\n\nexport const selectCurrentProject = (state: AppState) =>\n getIn(state, ['routing', 'currentProject']);\nexport const selectIsNotFound = (state: AppState) =>\n getIn(state, ['routing', 'notFound']);\nexport const selectCurrentAncestors = (state: AppState) =>\n getIn(state, ['routing', 'currentNodeAncestors'], []);\nexport const selectCurrentSiblings = (state: AppState) =>\n getIn(state, ['routing', 'currentNodeSiblings'], []);\nexport const selectCurrentNode = (state: AppState, returnType?: StateType) =>\n getIn(state, ['routing', 'currentNode'], null, returnType);\nexport const selectCurrentNodeLanguage = (state: AppState) =>\n getIn(state, ['routing', 'currentNode', 'language'], null);\nexport const selectCurrentChildren = state =>\n getIn(state, ['routing', 'currentNode', 'children'], []);\n\n// export const selectBreadcrumb = (state: AppState) => {\n// return [...selectCurrentAncestors(state), selectCurrentNode(state)];\n// };\n\nexport const selectBreadcrumb = createSelector(\n [selectCurrentAncestors, selectCurrentNode],\n (currentAncestors, currentNode) => [...currentAncestors, currentNode]\n);\n\nexport const selectRouteErrorMessage = (state: AppState) => {\n const error = getIn(state, ['routing', 'error']);\n return getIn(error, ['data', 'message'], getIn(error, 'statusText'));\n};\nexport const selectRouteIsError = (state: AppState) =>\n getIn(state, ['routing', 'isError']);\nexport const selectRouteLoading = (state: AppState) =>\n getIn(state, ['routing', 'isLoading']);\nexport const selectRouteStatusCode = (state: AppState) =>\n getIn(state, ['routing', 'statusCode']);\nexport const selectStaticRoute = (\n state: AppState\n): MatchedRoute<string, StaticRoute> =>\n getIn(state, ['routing', 'staticRoute']);\n"],"names":["action","type","payload","getJS","state","stateKey","get","toJS","getImmutableOrJS","fallbackValue","returnType","globalThis","STATE_TYPE","_globalThis$immutable","_globalThis$immutable2","fromJS","immutable","fromJSOrdered","v","getIn","Array","isArray","result","jpath","join","undefined","ROUTING_PREFIX","GET_ENTRY","SET_ENTRY","SET_NODE","SET_ANCESTORS","SET_SIBLINGS","SET_ENTRY_ID","SET_SURROGATE_KEYS","SET_NAVIGATION_PATH","SET_TARGET_PROJECT","SET_ROUTE","UPDATE_LOADING_STATE","setNavigationPath","path","contentPath","location","staticRoute","withEvents","statePath","routes","ssr","setCurrentProject","project","allowedGroups","hostname","setRoute","setRouteEntry","entry","setSurrogateKeys","keys","url","status","ACTION_PREFIX","VALIDATE_USER","SET_AUTHENTICATION_STATE","LOGIN_USER","LOGIN_SUCCESSFUL","LOGIN_FAILED","LOGOUT_USER","REGISTER_USER","REGISTER_USER_SUCCESS","REGISTER_USER_FAILED","REQUEST_USER_PASSWORD_RESET","RESET_USER_PASSWORD","REQUEST_USER_PASSWORD_RESET_SENDING","REQUEST_USER_PASSWORD_RESET_SUCCESS","REQUEST_USER_PASSWORD_RESET_ERROR","RESET_USER_PASSWORD_SENDING","RESET_USER_PASSWORD_SUCCESS","RESET_USER_PASSWORD_ERROR","CHANGE_USER_PASSWORD","CHANGE_USER_PASSWORD_SENDING","CHANGE_USER_PASSWORD_SUCCESS","CHANGE_USER_PASSWORD_ERROR","defaultAuthenticationState","clientCredentials","errorMessage","isAuthenticated","isAuthenticationError","isError","isLoading","defaultPasswordResetRequestValues","isSending","sent","error","defaultResetPasswordValues","defaultChangePasswordValues","defaultRegistrationValues","success","initialUserState","authenticationState","passwordResetRequest","resetPassword","changePassword","groups","produce","_state","user","name","firstName","lastName","isZengentiStaff","email","includes","registration","queryParams","search","queryString","parse","window","selectRouteEntry","selectMappedEntry","selectSurrogateKeys","selectSsrApiCalls","selectCurrentHostname","selectSsrHostname","selectCurrentTreeID","selectRouteEntryEntryId","selectRouteEntryContentTypeId","selectRouteEntryLanguage","selectRouteEntryAvailableLanguages","selectRouteEntrySlug","selectRouteEntryID","selectCanonicalPath","selectCurrentPath","selectCurrentLocation","selectCurrentSearch","selectCurrentHash","selectQueryStringAsObject","createSelector","currentSearch","selectCurrentProject","selectIsNotFound","selectCurrentAncestors","selectCurrentSiblings","selectCurrentNode","selectCurrentNodeLanguage","selectCurrentChildren","selectBreadcrumb","currentAncestors","currentNode","selectRouteErrorMessage","selectRouteIsError","selectRouteLoading","selectRouteStatusCode","selectStaticRoute"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ const selectLocales = state => state.i18n.locales;
2
+ const selectLocaleRoutes = state => state.i18n.routes;
3
+ const selectCurrentLanguage = state => state.i18n.currentLanguage;
4
+ const selectPrimaryLanguage = state => state.i18n.primaryLanguage;
5
+ const selectSupportedLanguages = state => state.i18n.supportedLanguages;
6
+ const selectDictionary = state => state.i18n.dictionary;
7
+ const selectDictionaryResolver = state => state.i18n.resolver;
8
+
9
+ export { selectDictionary as a, selectLocales as b, selectLocaleRoutes as c, selectPrimaryLanguage as d, selectSupportedLanguages as e, selectDictionaryResolver as f, selectCurrentLanguage as s };
10
+ //# sourceMappingURL=selectors-DcmvOeX2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors-DcmvOeX2.js","sources":["../src/i18n/redux/selectors.ts"],"sourcesContent":["import { AppState } from '~/models';\nimport { LocaleDictionary } from '~/models/Locales';\n\nexport const selectLocales = (state: AppState) => state.i18n.locales;\n\nexport const selectLocaleRoutes = (state: AppState) => state.i18n.routes;\n\nexport const selectCurrentLanguage = (state: AppState) =>\n state.i18n.currentLanguage;\n\nexport const selectPrimaryLanguage = (state: AppState) =>\n state.i18n.primaryLanguage;\n\nexport const selectSupportedLanguages = (state: AppState) =>\n state.i18n.supportedLanguages;\n\nexport const selectDictionary = <T extends LocaleDictionary = LocaleDictionary>(state: AppState) =>\n state.i18n.dictionary as T;\n\nexport const selectDictionaryResolver = (state: AppState) =>\n state.i18n.resolver;\n"],"names":["selectLocales","state","i18n","locales","selectLocaleRoutes","routes","selectCurrentLanguage","currentLanguage","selectPrimaryLanguage","primaryLanguage","selectSupportedLanguages","supportedLanguages","selectDictionary","dictionary","selectDictionaryResolver","resolver"],"mappings":"AAGO,MAAMA,aAAa,GAAIC,KAAe,IAAKA,KAAK,CAACC,IAAI,CAACC;AAEtD,MAAMC,kBAAkB,GAAIH,KAAe,IAAKA,KAAK,CAACC,IAAI,CAACG;AAE3D,MAAMC,qBAAqB,GAAIL,KAAe,IACnDA,KAAK,CAACC,IAAI,CAACK;AAEN,MAAMC,qBAAqB,GAAIP,KAAe,IACnDA,KAAK,CAACC,IAAI,CAACO;AAEN,MAAMC,wBAAwB,GAAIT,KAAe,IACtDA,KAAK,CAACC,IAAI,CAACS;AAEN,MAAMC,gBAAgB,GAAmDX,KAAe,IAC7FA,KAAK,CAACC,IAAI,CAACW;AAEN,MAAMC,wBAAwB,GAAIb,KAAe,IACtDA,KAAK,CAACC,IAAI,CAACa;;;;"}
@@ -0,0 +1,63 @@
1
+ import { createSlice } from '@reduxjs/toolkit';
2
+
3
+ const i18nSlice = createSlice({
4
+ name: 'i18n',
5
+ initialState: {
6
+ currentLanguage: '',
7
+ dictionary: {},
8
+ locales: {},
9
+ routes: {},
10
+ primaryLanguage: '',
11
+ supportedLanguages: [],
12
+ resolver: undefined,
13
+ error: undefined
14
+ },
15
+ reducers: {
16
+ GET_ENTRY_URI_ERROR(draft, {
17
+ payload
18
+ }) {
19
+ draft.error = payload;
20
+ },
21
+ INIT_LOCALES(draft, {
22
+ payload
23
+ }) {
24
+ draft.locales = payload.locales;
25
+ draft.routes = payload.routes;
26
+ draft.primaryLanguage = payload.primaryLanguage;
27
+ draft.supportedLanguages = payload.supportedLanguages;
28
+ if (payload.resolver) draft.resolver = payload.resolver;
29
+ },
30
+ SET_LANGUAGE(draft, {
31
+ payload
32
+ }) {
33
+ draft.currentLanguage = payload.language;
34
+ if (payload.dictionary) draft.dictionary = payload.dictionary;
35
+ },
36
+ SET_LOCALES(draft, {
37
+ payload
38
+ }) {
39
+ // Sort locales object by keys alphabetically
40
+ const sortedLocales = Object.keys(payload.locales || {}).sort().reduce((sorted, key) => {
41
+ sorted[key] = payload.locales[key];
42
+ return sorted;
43
+ }, {});
44
+ draft.locales = sortedLocales;
45
+ draft.primaryLanguage = payload.primaryLanguage;
46
+ draft.supportedLanguages = [...(payload.supportedLanguages || [])].sort();
47
+ if (payload.resolver) draft.resolver = payload.resolver;
48
+ },
49
+ /** UPDATE_LANGUAGE action triggers updateLanguage saga and ends with SET_LANGUAGE */
50
+ UPDATE_LANGUAGE(_draft, _) {}
51
+ }
52
+ });
53
+ const {
54
+ actions,
55
+ reducer,
56
+ getInitialState
57
+ } = i18nSlice;
58
+
59
+ // Alias some nicer named exports for the actions
60
+ const updateLanguage = actions.UPDATE_LANGUAGE;
61
+
62
+ export { actions as a, getInitialState as g, i18nSlice as i, reducer as r, updateLanguage as u };
63
+ //# sourceMappingURL=slice-C6JLQik8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slice-C6JLQik8.js","sources":["../src/i18n/redux/slice.ts"],"sourcesContent":["import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { I18nAppConfig } from '~/models/config/I18n';\nimport { LocaleDictionary, LocaleRoutes, Locales } from '~/models/Locales';\n\nexport type UpdateLanguageActionPayload = {\n language: string;\n redirect?: boolean | string;\n fallbackPath?: string;\n};\n\nconst i18nSlice = createSlice({\n name: 'i18n',\n initialState: {\n currentLanguage: '',\n dictionary: {} as LocaleDictionary,\n locales: {} as { [language: string]: any },\n routes: {} as LocaleRoutes,\n primaryLanguage: '',\n supportedLanguages: [] as string[],\n resolver: undefined as\n | ((language: string) => Promise<LocaleDictionary> | LocaleDictionary)\n | undefined,\n error: undefined as Error | undefined,\n },\n reducers: {\n GET_ENTRY_URI_ERROR(draft, { payload }: PayloadAction<Error>) {\n draft.error = payload;\n },\n INIT_LOCALES(\n draft,\n {\n payload,\n }: PayloadAction<\n {\n locales: Locales;\n routes: LocaleRoutes;\n } & I18nAppConfig\n >\n ) {\n draft.locales = payload.locales;\n draft.routes = payload.routes;\n draft.primaryLanguage = payload.primaryLanguage;\n draft.supportedLanguages = payload.supportedLanguages;\n if (payload.resolver) draft.resolver = payload.resolver;\n },\n SET_LANGUAGE(\n draft,\n {\n payload,\n }: PayloadAction<{\n language: string;\n dictionary: LocaleDictionary;\n redirect?: string;\n }>\n ) {\n draft.currentLanguage = payload.language;\n if (payload.dictionary) draft.dictionary = payload.dictionary;\n },\n SET_LOCALES(\n draft,\n {\n payload,\n }: PayloadAction<\n {\n locales: Locales;\n } & I18nAppConfig\n >\n ) {\n // Sort locales object by keys alphabetically\n const sortedLocales = Object.keys(payload.locales || {})\n .sort()\n .reduce((sorted, key) => {\n sorted[key] = payload.locales[key];\n return sorted;\n }, {});\n\n draft.locales = sortedLocales;\n draft.primaryLanguage = payload.primaryLanguage;\n draft.supportedLanguages = [...(payload.supportedLanguages || [])].sort();\n if (payload.resolver) draft.resolver = payload.resolver;\n },\n /** UPDATE_LANGUAGE action triggers updateLanguage saga and ends with SET_LANGUAGE */\n UPDATE_LANGUAGE(_draft, _: PayloadAction<UpdateLanguageActionPayload>) {},\n },\n});\n\nexport const { actions, reducer, getInitialState } = i18nSlice;\n\n// Alias some nicer named exports for the actions\nexport const updateLanguage = actions.UPDATE_LANGUAGE;\n\nexport default i18nSlice;\n"],"names":["i18nSlice","createSlice","name","initialState","currentLanguage","dictionary","locales","routes","primaryLanguage","supportedLanguages","resolver","undefined","error","reducers","GET_ENTRY_URI_ERROR","draft","payload","INIT_LOCALES","SET_LANGUAGE","language","SET_LOCALES","sortedLocales","Object","keys","sort","reduce","sorted","key","UPDATE_LANGUAGE","_draft","_","actions","reducer","getInitialState","updateLanguage"],"mappings":";;AAUA,MAAMA,SAAS,GAAGC,WAAW,CAAC;AAC5BC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,YAAY,EAAE;AACZC,IAAAA,eAAe,EAAE,EAAE;IACnBC,UAAU,EAAE,EAAsB;IAClCC,OAAO,EAAE,EAAiC;IAC1CC,MAAM,EAAE,EAAkB;AAC1BC,IAAAA,eAAe,EAAE,EAAE;AACnBC,IAAAA,kBAAkB,EAAE,EAAc;AAClCC,IAAAA,QAAQ,EAAEC,SAEG;AACbC,IAAAA,KAAK,EAAED;GACR;AACDE,EAAAA,QAAQ,EAAE;IACRC,mBAAmBA,CAACC,KAAK,EAAE;AAAEC,MAAAA;AAA8B,KAAC,EAAE;MAC5DD,KAAK,CAACH,KAAK,GAAGI,OAAO;IACvB,CAAC;IACDC,YAAYA,CACVF,KAAK,EACL;AACEC,MAAAA;AAMF,KAAC,EACD;AACAD,MAAAA,KAAK,CAACT,OAAO,GAAGU,OAAO,CAACV,OAAO;AAC/BS,MAAAA,KAAK,CAACR,MAAM,GAAGS,OAAO,CAACT,MAAM;AAC7BQ,MAAAA,KAAK,CAACP,eAAe,GAAGQ,OAAO,CAACR,eAAe;AAC/CO,MAAAA,KAAK,CAACN,kBAAkB,GAAGO,OAAO,CAACP,kBAAkB;MACrD,IAAIO,OAAO,CAACN,QAAQ,EAAEK,KAAK,CAACL,QAAQ,GAAGM,OAAO,CAACN,QAAQ;IACzD,CAAC;IACDQ,YAAYA,CACVH,KAAK,EACL;AACEC,MAAAA;AAKD,KAAC,EACF;AACAD,MAAAA,KAAK,CAACX,eAAe,GAAGY,OAAO,CAACG,QAAQ;MACxC,IAAIH,OAAO,CAACX,UAAU,EAAEU,KAAK,CAACV,UAAU,GAAGW,OAAO,CAACX,UAAU;IAC/D,CAAC;IACDe,WAAWA,CACTL,KAAK,EACL;AACEC,MAAAA;AAKF,KAAC,EACD;AACA;MACA,MAAMK,aAAa,GAAGC,MAAM,CAACC,IAAI,CAACP,OAAO,CAACV,OAAO,IAAI,EAAE,CAAC,CACrDkB,IAAI,EAAE,CACNC,MAAM,CAAC,CAACC,MAAM,EAAEC,GAAG,KAAK;QACvBD,MAAM,CAACC,GAAG,CAAC,GAAGX,OAAO,CAACV,OAAO,CAACqB,GAAG,CAAC;AAClC,QAAA,OAAOD,MAAM;MACf,CAAC,EAAE,EAAE,CAAC;MAERX,KAAK,CAACT,OAAO,GAAGe,aAAa;AAC7BN,MAAAA,KAAK,CAACP,eAAe,GAAGQ,OAAO,CAACR,eAAe;AAC/CO,MAAAA,KAAK,CAACN,kBAAkB,GAAG,CAAC,IAAIO,OAAO,CAACP,kBAAkB,IAAI,EAAE,CAAC,CAAC,CAACe,IAAI,EAAE;MACzE,IAAIR,OAAO,CAACN,QAAQ,EAAEK,KAAK,CAACL,QAAQ,GAAGM,OAAO,CAACN,QAAQ;IACzD,CAAC;AACD;AACAkB,IAAAA,eAAeA,CAACC,MAAM,EAAEC,CAA6C,EAAE,CAAC;AAC1E;AACF,CAAC;AAEM,MAAM;EAAEC,OAAO;EAAEC,OAAO;AAAEC,EAAAA;AAAgB,CAAC,GAAGjC;;AAErD;AACO,MAAMkC,cAAc,GAAGH,OAAO,CAACH;;;;"}
@@ -2,8 +2,10 @@ import { compose, applyMiddleware, createStore as createStore$1, combineReducers
2
2
  import { thunk } from 'redux-thunk';
3
3
  import createSagaMiddleware, { END } from 'redux-saga';
4
4
  import { createInjectorsEnhancer } from 'redux-injectors-19';
5
+ import { i as i18nSlice } from './slice-C6JLQik8.js';
5
6
  import { produce, original } from 'immer';
6
- import { S as SET_TARGET_PROJECT, v as SET_SURROGATE_KEYS, w as SET_SIBLINGS, x as SET_ROUTE, y as SET_NAVIGATION_PATH, z as UPDATE_LOADING_STATE, A as SET_ENTRY, B as SET_ANCESTORS, U as UserReducer } from './selectors-DO2ocdOp.js';
7
+ import { S as SET_TARGET_PROJECT, v as SET_SURROGATE_KEYS, w as SET_SIBLINGS, x as SET_ROUTE, y as SET_NAVIGATION_PATH, z as UPDATE_LOADING_STATE, A as SET_ENTRY, B as SET_ANCESTORS, U as UserReducer } from './selectors-8ROQrTd7.js';
8
+ import { all } from '@redux-saga/core/effects';
7
9
 
8
10
  const ACTION_PREFIX = '@NAVIGATION/';
9
11
  const GET_NODE_TREE = `${ACTION_PREFIX}_GET_NODE_TREE`;
@@ -56,9 +58,11 @@ const initialState$1 = {
56
58
  error: undefined,
57
59
  isError: false,
58
60
  isLoading: false,
61
+ isLivePreview: false,
59
62
  location: {},
60
63
  mappedEntry: null,
61
64
  notFound: false,
65
+ ssrHostname: null,
62
66
  staticRoute: null,
63
67
  statusCode: 200,
64
68
  surrogateKeys: [],
@@ -107,7 +111,11 @@ var RoutingReducer = produce((state, action) => {
107
111
  state.canonicalPath = entry.sys.uri || currentPath;
108
112
  if (mappedEntry && Object.keys(mappedEntry).length > 0) {
109
113
  state.mappedEntry = mappedEntry;
110
- state.entry = {
114
+ // Don't truncate the raw entry data when in live preview mode,
115
+ // as we want to be able to update it with new "patch" data coming
116
+ // passed in via the live preview iframe.
117
+ // In regular routes, the full entry data is not needed after mapping.
118
+ if (!state.isLivePreview) state.entry = {
111
119
  sys: entry.sys
112
120
  };
113
121
  }
@@ -165,6 +173,12 @@ var RoutingReducer = produce((state, action) => {
165
173
  };
166
174
  }
167
175
  }
176
+ // The default value is false, but if we've activated live preview for this route,
177
+ // we want it to persist for the life of the session so we don't reset it back to
178
+ // false on subsequent CSR navigation.
179
+ if (action.location.search.includes('livePreview=true')) {
180
+ state.isLivePreview = true;
181
+ }
168
182
  return;
169
183
  }
170
184
  case SET_ROUTE:
@@ -196,6 +210,7 @@ var RoutingReducer = produce((state, action) => {
196
210
  {
197
211
  state.currentProject = action.project;
198
212
  state.allowedGroups = action.allowedGroups;
213
+ state.ssrHostname = state.currentHostname || action.hostname;
199
214
  state.currentHostname = action.hostname;
200
215
  return;
201
216
  }
@@ -237,6 +252,13 @@ var VersionReducer = produce((state, action) => {
237
252
  }
238
253
  }, initialState);
239
254
 
255
+ const wrapSagasInGenerator = function (sagas) {
256
+ if (Array.isArray(sagas)) return function* rootSaga() {
257
+ yield all(sagas);
258
+ };
259
+ return sagas;
260
+ };
261
+
240
262
  /**
241
263
  * This middleware captures 'CALL_HISTORY_METHOD' actions to redirect to the
242
264
  * provided history object. This will prevent these actions from reaching your
@@ -256,6 +278,9 @@ const routerMiddleware = history => store => next => action => {
256
278
  history[method](...args);
257
279
  };
258
280
 
281
+ /** A no-op reducer to serve for server-rendered reducers
282
+ * that are re-injected client-side */
283
+ const stubReducer = (state = null) => state;
259
284
  let reduxStore;
260
285
  var createStore = async (featureReducers, initialState, history, stateType) => {
261
286
  let reduxDevToolsMiddleware = f => f;
@@ -264,6 +289,7 @@ var createStore = async (featureReducers, initialState, history, stateType) => {
264
289
  }
265
290
  const sagaMiddleware = createSagaMiddleware();
266
291
  const reducers = {
292
+ i18n: i18nSlice.reducer,
267
293
  navigation: NavigationReducer,
268
294
  routing: RoutingReducer,
269
295
  user: UserReducer,
@@ -291,18 +317,50 @@ var createStore = async (featureReducers, initialState, history, stateType) => {
291
317
  };
292
318
  const store = initialState => {
293
319
  const runSaga = sagaMiddleware.run;
320
+
321
+ // Track the initial set of sagas here
322
+ const initialSagas = new Set();
323
+
324
+ // Patch the runSaga function to capture and track the sagas
325
+ // passed as a raw array of effects
326
+ const patchedRunSaga = sagas => {
327
+ // Only track the saga the first time it is run
328
+ if (Array.isArray(sagas)) {
329
+ for (const saga of sagas) if (!initialSagas.has(saga)) {
330
+ initialSagas.add(saga);
331
+ }
332
+ } else {
333
+ if (!initialSagas.has(sagas)) {
334
+ initialSagas.add(sagas);
335
+ }
336
+ }
337
+ const rootSaga = wrapSagasInGenerator(sagas);
338
+
339
+ // Run the saga as usual
340
+ return runSaga(rootSaga);
341
+ };
342
+
343
+ // Assign stub reducers for any missing reducers that have been
344
+ // injected server-side and will be re-injected client-side
345
+ const injectReducers = {};
346
+ for (const key of Object.keys(initialState || {})) {
347
+ if (!(key in reducers)) injectReducers[key] = stubReducer;
348
+ }
294
349
  const middleware = compose(applyMiddleware(thunk, sagaMiddleware, routerMiddleware(history)), createInjectorsEnhancer({
295
350
  createReducer,
351
+ // Assign patched runSaga to store
296
352
  runSaga
297
353
  }), reduxDevToolsMiddleware);
298
- const store = createStore$1(createReducer(), initialState, middleware);
299
- store.runSaga = runSaga;
354
+ const store = createStore$1(createReducer(injectReducers), initialState, middleware);
355
+ store.runSaga = patchedRunSaga; // Assign patched runSaga to the store
300
356
  store.close = () => store.dispatch(END);
357
+ store.initialSagas = initialSagas; // Store the initial sagas set
358
+
301
359
  return store;
302
360
  };
303
361
  reduxStore = store(fromJS(initialState));
304
362
  return reduxStore;
305
363
  };
306
364
 
307
- export { GET_NODE_TREE as G, SET_VERSION as S, SET_VERSION_STATUS as a, SET_NODE_TREE as b, createStore as c, GET_NODE_TREE_ERROR as d, navigation as n, reduxStore as r, version as v };
308
- //# sourceMappingURL=store-3u0RzHZ0.js.map
365
+ export { GET_NODE_TREE as G, SET_VERSION as S, SET_VERSION_STATUS as a, SET_NODE_TREE as b, createStore as c, GET_NODE_TREE_ERROR as d, navigation as n, reduxStore as r, version as v, wrapSagasInGenerator as w };
366
+ //# sourceMappingURL=store-B4IrBYHm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store-B4IrBYHm.js","sources":["../src/redux/types/navigation.js","../src/redux/reducers/navigation.ts","../src/routing/redux/reducers.ts","../src/redux/types/version.js","../src/redux/reducers/version.ts","../src/redux/store/injectors/util.ts","../src/redux/store/routerMiddleware.js","../src/redux/store/store.ts"],"sourcesContent":["const ACTION_PREFIX = '@NAVIGATION/';\nexport const GET_NODE_TREE = `${ACTION_PREFIX}_GET_NODE_TREE`;\nexport const SET_NODE_TREE = `${ACTION_PREFIX}_SET_NODE_TREE`;\nexport const GET_NODE_TREE_ERROR = `${ACTION_PREFIX}_GET_NODE_TREE_ERROR`;\n","import { Draft, produce } from 'immer';\nimport { SET_NODE_TREE, GET_NODE_TREE_ERROR } from '~/redux/types/navigation';\n\nconst initialState = {\n root: null,\n error: {\n isError: false,\n message: null,\n },\n isReady: false,\n};\n\nexport default produce((state: Draft<any>, action) => {\n switch (action.type) {\n case SET_NODE_TREE: {\n state.root = action.nodes;\n state.isReady = true;\n return;\n }\n case GET_NODE_TREE_ERROR: {\n state.error.isError = true;\n state.error.message = action.error || 'Unknown error occurred';\n return;\n }\n default:\n return;\n }\n}, initialState);\n","import { Draft, original, produce } from 'immer';\n\nimport {\n SET_ENTRY,\n SET_NAVIGATION_PATH,\n SET_ANCESTORS,\n SET_TARGET_PROJECT,\n SET_ROUTE,\n SET_SIBLINGS,\n SET_SURROGATE_KEYS,\n UPDATE_LOADING_STATE,\n} from './types';\n\nconst initialState = {\n canonicalPath: null,\n currentHostname: null,\n currentPath: '/',\n currentNode: {},\n currentNodeAncestors: [],\n currentProject: 'unknown',\n entryID: null,\n entry: null,\n error: undefined,\n isError: false,\n isLoading: false,\n isLivePreview: false,\n location: {},\n mappedEntry: null,\n notFound: false,\n ssrHostname: null,\n staticRoute: null,\n statusCode: 200,\n surrogateKeys: [],\n apiCalls: [],\n};\n\nexport default produce((state: Draft<any>, action) => {\n switch (action.type) {\n case SET_ANCESTORS: {\n state.currentNodeAncestors = action.ancestors;\n return;\n }\n case SET_ENTRY: {\n const {\n entry,\n error,\n mappedEntry,\n node = {},\n isError = false,\n isLoading = false,\n notFound = false,\n statusCode,\n currentPath,\n } = action;\n\n let defaultStatus = 200;\n if (notFound === true && isError === false) defaultStatus = 404;\n else if (isError === true) defaultStatus = statusCode || 500;\n\n if (!entry) {\n state.entryID = null;\n state.entry = null;\n state.error = error;\n state.mappedEntry = null;\n state.isError = isError;\n state.isLoading = isLoading;\n state.notFound = notFound;\n state.statusCode = statusCode || defaultStatus;\n state.canonicalPath = currentPath;\n } else {\n state.entryID = action.id;\n state.entry = entry;\n state.error = error;\n state.isError = isError;\n state.isLoading = isLoading;\n state.notFound = notFound;\n state.statusCode = statusCode || defaultStatus;\n state.canonicalPath = entry.sys.uri || currentPath;\n\n if (mappedEntry && Object.keys(mappedEntry).length > 0) {\n state.mappedEntry = mappedEntry;\n // Don't truncate the raw entry data when in live preview mode,\n // as we want to be able to update it with new \"patch\" data coming\n // passed in via the live preview iframe.\n // In regular routes, the full entry data is not needed after mapping.\n if (!state.isLivePreview) state.entry = { sys: entry.sys };\n }\n }\n\n if (!node) {\n state.currentNode = null;\n } else {\n // On Set Node, we reset all dependants.\n state.currentNode = node;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { entry, ...nodeWithoutEntry } = node; // We have the entry stored elsewhere, so lets not keep it twice.\n state.currentNode = nodeWithoutEntry;\n }\n\n return;\n }\n case UPDATE_LOADING_STATE: {\n state.isLoading = action.isLoading;\n return;\n }\n case SET_NAVIGATION_PATH: {\n let staticRoute = {} as any;\n if (action.staticRoute) {\n staticRoute = { ...action.staticRoute };\n }\n if (action.path) {\n // Don't run a path update on initial load as we allready should have it in redux\n const entryUri = state?.entry?.sys?.uri;\n if (entryUri !== action.path) {\n state.currentPath = action.path;\n state.location = action.location;\n state.staticRoute = {\n ...staticRoute,\n route: { ...staticRoute.route, element: null },\n };\n state.isLoading = typeof window !== 'undefined';\n } else {\n state.location = action.location;\n state.staticRoute = {\n ...staticRoute,\n route: { ...staticRoute.route, element: null },\n };\n }\n }\n // The default value is false, but if we've activated live preview for this route,\n // we want it to persist for the life of the session so we don't reset it back to\n // false on subsequent CSR navigation.\n if (action.location.search.includes('livePreview=true')) {\n state.isLivePreview = true;\n }\n return;\n }\n case SET_ROUTE: {\n state.nextPath = action.path;\n return;\n }\n case SET_SIBLINGS: {\n // Can be null in some cases like the homepage.\n let currentNodeSiblingParent = null;\n if (action.siblings && action.siblings.length > 0) {\n currentNodeSiblingParent = action.siblings[0].parentId;\n }\n\n state.currentNodeSiblings = action.siblings;\n state.currentNodeSiblingsParent = currentNodeSiblingParent;\n return;\n }\n case SET_SURROGATE_KEYS: {\n const newKeys = (action.keys || '').split(' ');\n const allKeys = [...original(state.surrogateKeys), ...newKeys];\n const uniqueKeys = [...new Set(allKeys)];\n state.surrogateKeys = uniqueKeys;\n\n state.apiCalls = [\n ...original(state.apiCalls),\n [action.status, newKeys.length, action.url],\n ];\n return;\n }\n case SET_TARGET_PROJECT: {\n state.currentProject = action.project;\n state.allowedGroups = action.allowedGroups;\n state.ssrHostname = state.currentHostname || action.hostname;\n state.currentHostname = action.hostname;\n return;\n }\n default:\n return state;\n }\n}, initialState);\n","const VERSION_PREFIX = '@VERSION/';\nexport const SET_VERSION = `${VERSION_PREFIX}SET_VERSION`;\nexport const SET_VERSION_STATUS = `${VERSION_PREFIX}SET_VERSION_STATUS`;\n","import { Draft, produce } from 'immer';\nimport { SET_VERSION, SET_VERSION_STATUS } from '~/redux/types/version';\n\nconst initialState = {\n commitRef: null,\n buildNo: null,\n contensisVersionStatus: null as 'latest' | 'published' | null,\n};\n\nexport default produce((state: Draft<any>, action) => {\n switch (action.type) {\n case SET_VERSION_STATUS: {\n state.contensisVersionStatus = action.status;\n return;\n }\n case SET_VERSION: {\n state.commitRef = action.commitRef;\n state.buildNo = action.buildNo;\n return;\n }\n default:\n return;\n }\n}, initialState);\n","import { all, Effect } from 'redux-saga/effects';\n\nexport const wrapSagasInGenerator = function (\n sagas: Effect[] | (() => Generator)\n) {\n if (Array.isArray(sagas))\n return function* rootSaga() {\n yield all(sagas);\n };\n return sagas;\n};\n","/**\n * This middleware captures 'CALL_HISTORY_METHOD' actions to redirect to the\n * provided history object. This will prevent these actions from reaching your\n * reducer or any middleware that comes after this one.\n */\n/* eslint-disable no-unused-vars */\nconst routerMiddleware = history => store => next => action => {\n if (action.type !== 'CALL_HISTORY_METHOD') {\n return next(action);\n }\n\n const {\n payload: { method, args },\n } = action;\n history[method](...args);\n};\n\nexport default routerMiddleware;\n","import { History, MemoryHistory } from 'history';\nimport {\n applyMiddleware,\n combineReducers,\n compose,\n createStore,\n Action,\n Store,\n StoreEnhancer,\n Reducer,\n} from 'redux';\nimport { thunk as thunkMiddleware } from 'redux-thunk';\nimport createSagaMiddleware, { END, Task } from 'redux-saga';\nimport { Effect } from 'redux-saga/effects';\nimport { createInjectorsEnhancer } from 'redux-injectors-19';\n\n// Core reducers\nimport i18nSlice from '~/i18n/redux/slice';\nimport NavigationReducer from '../reducers/navigation';\nimport RoutingReducer from '~/routing/redux/reducers';\nimport UserReducer from '~/user/redux/reducers';\nimport VersionReducer from '../reducers/version';\n\nimport { wrapSagasInGenerator } from './injectors/util';\nimport routerMiddleware from './routerMiddleware';\n\nimport { AppState, StateType } from '~/models';\n\ndeclare let window: Window &\n typeof globalThis & {\n __REDUX_DEVTOOLS_EXTENSION__: any;\n };\n\ntype ReduxAppStore = Store<AppState, Action>;\ntype PatchedRunSaga = (sagas: Effect[] | (() => Generator)) => Task;\n\ntype ReduxSagaAppStore = ReduxAppStore & {\n runSaga: PatchedRunSaga;\n close: () => void;\n initialSagas: Set<any>; // Track initial sagas\n injectedReducers: any;\n injectedSagas: any;\n createReducer: (injectedReducers?: any) => Reducer<AppState>;\n};\n\n/** A no-op reducer to serve for server-rendered reducers\n * that are re-injected client-side */\nexport const stubReducer = (state = null) => state;\n\nexport let reduxStore: ReduxSagaAppStore;\n\nexport default async (\n featureReducers: any,\n initialState: AppState,\n history: History | MemoryHistory,\n stateType: StateType\n) => {\n let reduxDevToolsMiddleware = f => f;\n\n if (typeof window != 'undefined') {\n reduxDevToolsMiddleware = window.__REDUX_DEVTOOLS_EXTENSION__\n ? window.__REDUX_DEVTOOLS_EXTENSION__()\n : f => f;\n }\n\n const sagaMiddleware = createSagaMiddleware();\n\n const reducers = {\n i18n: i18nSlice.reducer,\n navigation: NavigationReducer,\n routing: RoutingReducer,\n user: UserReducer,\n version: VersionReducer,\n ...featureReducers,\n };\n\n // Reassign the combiner and fromJS functions when\n // stateType is 'immutable' with dynamic imports\n let combiner = combineReducers;\n let fromJS = <T = any>(obj: T) => obj;\n globalThis.STATE_TYPE = stateType;\n\n if (stateType === 'immutable') {\n globalThis.immutable = await import(\n /* webpackChunkName: \"immutable\" */ 'immutable'\n );\n\n fromJS = (\n await import(/* webpackChunkName: \"from-js\" */ '~/util/fromJSLeaveImmer')\n ).default;\n\n combiner = (\n await import(/* webpackChunkName: \"redux-immutable\" */ 'redux-immutable')\n ).combineReducers;\n }\n\n const createReducer = (injectedReducers = {}) => {\n const rootReducer = combiner<AppState>({\n ...injectedReducers,\n // other non-injected reducers go here\n ...reducers,\n });\n\n return rootReducer;\n };\n\n const store = (initialState: AppState) => {\n const runSaga = sagaMiddleware.run;\n\n // Track the initial set of sagas here\n const initialSagas = new Set();\n\n // Patch the runSaga function to capture and track the sagas\n // passed as a raw array of effects\n const patchedRunSaga = (sagas: Effect[] | (() => Generator)) => {\n // Only track the saga the first time it is run\n if (Array.isArray(sagas)) {\n for (const saga of sagas)\n if (!initialSagas.has(saga)) {\n initialSagas.add(saga);\n }\n } else {\n if (!initialSagas.has(sagas)) {\n initialSagas.add(sagas);\n }\n }\n\n const rootSaga = wrapSagasInGenerator(sagas);\n\n // Run the saga as usual\n return runSaga(rootSaga);\n };\n\n // Assign stub reducers for any missing reducers that have been\n // injected server-side and will be re-injected client-side\n const injectReducers = {};\n for (const key of Object.keys(initialState || {})) {\n if (!(key in reducers)) injectReducers[key] = stubReducer;\n }\n\n const middleware: StoreEnhancer<{\n runSaga: PatchedRunSaga;\n close: () => void;\n initialSagas: Set<any>;\n injectedReducers: any;\n injectedSagas: any;\n }> = compose(\n applyMiddleware(\n thunkMiddleware,\n sagaMiddleware,\n routerMiddleware(history)\n ),\n createInjectorsEnhancer({\n createReducer,\n // Assign patched runSaga to store\n runSaga,\n }),\n reduxDevToolsMiddleware\n );\n\n const store = createStore(\n createReducer(injectReducers),\n initialState,\n middleware\n );\n\n store.runSaga = patchedRunSaga; // Assign patched runSaga to the store\n store.close = () => store.dispatch(END);\n store.initialSagas = initialSagas; // Store the initial sagas set\n\n return store;\n };\n\n reduxStore = store(fromJS(initialState)) as ReduxSagaAppStore;\n return reduxStore;\n};\n"],"names":["ACTION_PREFIX","GET_NODE_TREE","SET_NODE_TREE","GET_NODE_TREE_ERROR","initialState","root","error","isError","message","isReady","produce","state","action","type","nodes","canonicalPath","currentHostname","currentPath","currentNode","currentNodeAncestors","currentProject","entryID","entry","undefined","isLoading","isLivePreview","location","mappedEntry","notFound","ssrHostname","staticRoute","statusCode","surrogateKeys","apiCalls","SET_ANCESTORS","ancestors","SET_ENTRY","node","defaultStatus","id","sys","uri","Object","keys","length","nodeWithoutEntry","UPDATE_LOADING_STATE","SET_NAVIGATION_PATH","path","_state$entry","entryUri","route","element","window","search","includes","SET_ROUTE","nextPath","SET_SIBLINGS","currentNodeSiblingParent","siblings","parentId","currentNodeSiblings","currentNodeSiblingsParent","SET_SURROGATE_KEYS","newKeys","split","allKeys","original","uniqueKeys","Set","status","url","SET_TARGET_PROJECT","project","allowedGroups","hostname","VERSION_PREFIX","SET_VERSION","SET_VERSION_STATUS","commitRef","buildNo","contensisVersionStatus","wrapSagasInGenerator","sagas","Array","isArray","rootSaga","all","routerMiddleware","history","store","next","payload","method","args","stubReducer","reduxStore","featureReducers","stateType","reduxDevToolsMiddleware","f","__REDUX_DEVTOOLS_EXTENSION__","sagaMiddleware","createSagaMiddleware","reducers","i18n","i18nSlice","reducer","navigation","NavigationReducer","routing","RoutingReducer","user","UserReducer","version","VersionReducer","combiner","combineReducers","fromJS","obj","globalThis","STATE_TYPE","immutable","default","createReducer","injectedReducers","rootReducer","runSaga","run","initialSagas","patchedRunSaga","saga","has","add","injectReducers","key","middleware","compose","applyMiddleware","thunkMiddleware","createInjectorsEnhancer","createStore","close","dispatch","END"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ const setCachingHeaders = (response, {
2
+ cacheControl = 'private',
3
+ surrogateControl = '3600'
4
+ }, method = 'header') => {
5
+ if (cacheControl) response[method]('Cache-Control', cacheControl);
6
+ if (surrogateControl) response[method]('Surrogate-Control', `max-age=${surrogateControl.toString()}`);
7
+ };
8
+
9
+ const urls = (alias, project) => {
10
+ const projectAndAlias = project && project.toLowerCase() !== 'website' ? `${project.toLowerCase()}-${alias}` : alias;
11
+ return {
12
+ api: `https://api-${alias}.cloud.contensis.com`,
13
+ cms: `https://cms-${alias}.cloud.contensis.com`,
14
+ liveWeb: `https://live-${projectAndAlias}.cloud.contensis.com`,
15
+ previewWeb: `https://preview-${projectAndAlias}.cloud.contensis.com`,
16
+ iisWeb: `https://iis-live-${projectAndAlias}.cloud.contensis.com`,
17
+ iisPreviewWeb: `https://iis-preview-${projectAndAlias}.cloud.contensis.com`
18
+ };
19
+ };
20
+
21
+ export { setCachingHeaders as s, urls as u };
22
+ //# sourceMappingURL=urls-tLxo_skx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urls-tLxo_skx.js","sources":["../src/server/features/caching/setCachingHeaders.ts","../src/util/urls.ts"],"sourcesContent":["import { Response } from 'express';\n\nconst setCachingHeaders = (\n response: Response,\n { cacheControl = 'private', surrogateControl = '3600' },\n method = 'header'\n) => {\n if (cacheControl) response[method]('Cache-Control', cacheControl);\n if (surrogateControl)\n response[method](\n 'Surrogate-Control',\n `max-age=${surrogateControl.toString()}`\n );\n};\n\nexport default setCachingHeaders;\n","export const urls = (alias: string, project: string) => {\n const projectAndAlias =\n project && project.toLowerCase() !== 'website'\n ? `${project.toLowerCase()}-${alias}`\n : alias;\n return {\n api: `https://api-${alias}.cloud.contensis.com`,\n cms: `https://cms-${alias}.cloud.contensis.com`,\n liveWeb: `https://live-${projectAndAlias}.cloud.contensis.com`,\n previewWeb: `https://preview-${projectAndAlias}.cloud.contensis.com`,\n iisWeb: `https://iis-live-${projectAndAlias}.cloud.contensis.com`,\n iisPreviewWeb: `https://iis-preview-${projectAndAlias}.cloud.contensis.com`,\n };\n};\n"],"names":["setCachingHeaders","response","cacheControl","surrogateControl","method","toString","urls","alias","project","projectAndAlias","toLowerCase","api","cms","liveWeb","previewWeb","iisWeb","iisPreviewWeb"],"mappings":"AAEA,MAAMA,iBAAiB,GAAGA,CACxBC,QAAkB,EAClB;AAAEC,EAAAA,YAAY,GAAG,SAAS;AAAEC,EAAAA,gBAAgB,GAAG;AAAO,CAAC,EACvDC,MAAM,GAAG,QAAQ,KACd;EACH,IAAIF,YAAY,EAAED,QAAQ,CAACG,MAAM,CAAC,CAAC,eAAe,EAAEF,YAAY,CAAC;AACjE,EAAA,IAAIC,gBAAgB,EAClBF,QAAQ,CAACG,MAAM,CAAC,CACd,mBAAmB,EACnB,CAAA,QAAA,EAAWD,gBAAgB,CAACE,QAAQ,EAAE,EACxC,CAAC;AACL;;MCbaC,IAAI,GAAGA,CAACC,KAAa,EAAEC,OAAe,KAAK;EACtD,MAAMC,eAAe,GACnBD,OAAO,IAAIA,OAAO,CAACE,WAAW,EAAE,KAAK,SAAS,GAC1C,CAAA,EAAGF,OAAO,CAACE,WAAW,EAAE,CAAA,CAAA,EAAIH,KAAK,CAAA,CAAE,GACnCA,KAAK;EACX,OAAO;IACLI,GAAG,EAAE,CAAA,YAAA,EAAeJ,KAAK,CAAA,oBAAA,CAAsB;IAC/CK,GAAG,EAAE,CAAA,YAAA,EAAeL,KAAK,CAAA,oBAAA,CAAsB;IAC/CM,OAAO,EAAE,CAAA,aAAA,EAAgBJ,eAAe,CAAA,oBAAA,CAAsB;IAC9DK,UAAU,EAAE,CAAA,gBAAA,EAAmBL,eAAe,CAAA,oBAAA,CAAsB;IACpEM,MAAM,EAAE,CAAA,iBAAA,EAAoBN,eAAe,CAAA,oBAAA,CAAsB;IACjEO,aAAa,EAAE,uBAAuBP,eAAe,CAAA,oBAAA;GACtD;AACH;;;;"}
package/esm/user.js CHANGED
@@ -1,16 +1,19 @@
1
- import { l as logoutUser, a as loginUser, r as registerUser } from './ChangePassword.container-BgzIy8dA.js';
2
- export { C as ChangePassword, F as ForgotPasswordContainer, c as LoginContainer, L as LoginHelper, R as RegistrationContainer, b as actions, h as handleRequiresLoginSaga, g as refreshSecurityToken, f as useChangePassword, e as useForgotPassword, u as useLogin, d as useRegistration } from './ChangePassword.container-BgzIy8dA.js';
1
+ import { l as logoutUser, a as loginUser, r as registerUser } from './ChangePassword.container-CUBtn82K.js';
2
+ export { C as ChangePassword, F as ForgotPasswordContainer, c as LoginContainer, L as LoginHelper, R as RegistrationContainer, b as actions, h as handleRequiresLoginSaga, g as refreshSecurityToken, f as useChangePassword, e as useForgotPassword, u as useLogin, d as useRegistration } from './ChangePassword.container-CUBtn82K.js';
3
3
  import React from 'react';
4
4
  import { useCookies } from 'react-cookie';
5
5
  import { connect } from 'react-redux';
6
- import { t as toJS, s as selectUserIsError, a as selectUserIsAuthenticationError, b as selectUser, c as selectUserIsLoading, d as selectUserIsAuthenticated, e as selectUserErrorMessage, f as selectUserRegistration, g as selectUserRegistrationIsSuccess, h as selectUserRegistrationIsLoading, i as selectUserRegistrationError } from './ToJs-CNzfvyxJ.js';
7
- export { j as selectors } from './ToJs-CNzfvyxJ.js';
8
- import { C as CookieHelper } from './CookieHelper.class-FTURFpz3.js';
9
- export { i as initialUserState, U as reducer, t as types } from './selectors-DO2ocdOp.js';
6
+ import { s as selectUserIsError, a as selectUserIsAuthenticationError, b as selectUser, c as selectUserIsLoading, d as selectUserIsAuthenticated, e as selectUserErrorMessage, f as selectUserRegistration, g as selectUserRegistrationIsSuccess, h as selectUserRegistrationIsLoading, i as selectUserRegistrationError } from './matchGroups-_w8BwzCC.js';
7
+ export { j as selectors } from './matchGroups-_w8BwzCC.js';
8
+ import { C as CookieHelper } from './CookieHelper.class-C6rTRl_1.js';
9
+ import { t as toJS } from './ToJs-BnRRHk6f.js';
10
+ export { i as initialUserState, U as reducer, t as types } from './selectors-8ROQrTd7.js';
10
11
  import '@redux-saga/core/effects';
11
12
  import 'jsonpath-mapper';
12
13
  import 'await-to-js';
14
+ import './CookieConstants-DEmbwzYr.js';
13
15
  import 'immer';
16
+ import 'reselect';
14
17
  import 'query-string';
15
18
 
16
19
  const getDisplayName$1 = WrappedComponent => {
package/esm/user.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sources":["../src/user/hocs/withLogin.tsx","../src/user/hocs/withRegistration.js"],"sourcesContent":["import React from 'react';\nimport { useCookies } from 'react-cookie';\nimport { connect } from 'react-redux';\nimport { loginUser, logoutUser } from '../redux/actions';\nimport {\n selectUser,\n selectUserErrorMessage,\n selectUserIsAuthenticationError,\n selectUserIsError,\n selectUserIsAuthenticated,\n selectUserIsLoading,\n} from '../redux/selectors';\nimport { CookieHelper } from '../util/CookieHelper.class';\nimport { toJS } from '~/util/ToJs';\nimport { AppState } from '~/models';\n\nconst getDisplayName = (WrappedComponent: React.ComponentType) => {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n};\n\nconst withLogin = (WrappedComponent: React.ComponentType) => {\n const mapStateToProps = (state: AppState) => {\n return {\n errorMessage: selectUserErrorMessage(state),\n isAuthenticated: selectUserIsAuthenticated(state),\n isAuthenticationError: selectUserIsAuthenticationError(state),\n isError: selectUserIsError(state),\n isLoading: selectUserIsLoading(state),\n user: selectUser(state),\n // DEPRECATED: authenticationError is deprecated use isAuthenticationError instead\n authenticationError: selectUserIsAuthenticationError(state),\n // DEPRECATED: error is deprecated use isError instead\n error: selectUserIsError(state),\n };\n };\n\n const ConnectedComponent = () => {\n const cookies = new CookieHelper(...useCookies());\n\n const mapDispatchToProps = {\n loginUser: (username: string, password: string) =>\n loginUser(username, password, cookies),\n logoutUser: (redirectPath?: string) => logoutUser(redirectPath, cookies),\n };\n\n const FinalComponent = connect(\n mapStateToProps,\n mapDispatchToProps\n )(toJS(WrappedComponent));\n\n return <FinalComponent />;\n };\n\n ConnectedComponent.displayName = `${getDisplayName(WrappedComponent)}`;\n ConnectedComponent.WrappedComponent = WrappedComponent;\n\n return ConnectedComponent;\n};\n\nexport default withLogin;\n","import { connect } from 'react-redux';\nimport { registerUser } from '../redux/actions';\nimport {\n selectUserRegistration,\n selectUserRegistrationError,\n selectUserRegistrationIsLoading,\n selectUserRegistrationIsSuccess,\n} from '../redux/selectors';\nimport { toJS } from '~/util/ToJs';\n\nconst getDisplayName = WrappedComponent => {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n};\n\nconst withRegistration = WrappedComponent => {\n const mapStateToProps = state => {\n return {\n error: selectUserRegistrationError(state),\n isLoading: selectUserRegistrationIsLoading(state),\n isSuccess: selectUserRegistrationIsSuccess(state),\n user: selectUserRegistration(state),\n };\n };\n\n const mapDispatchToProps = {\n registerUser,\n };\n\n const ConnectedComponent = connect(\n mapStateToProps,\n mapDispatchToProps\n )(toJS(WrappedComponent));\n\n ConnectedComponent.displayName = `${getDisplayName(WrappedComponent)}`;\n\n return ConnectedComponent;\n};\n\nexport default withRegistration;\n"],"names":["getDisplayName","WrappedComponent","displayName","name","withLogin","mapStateToProps","state","errorMessage","selectUserErrorMessage","isAuthenticated","selectUserIsAuthenticated","isAuthenticationError","selectUserIsAuthenticationError","isError","selectUserIsError","isLoading","selectUserIsLoading","user","selectUser","authenticationError","error","ConnectedComponent","cookies","CookieHelper","useCookies","mapDispatchToProps","loginUser","username","password","logoutUser","redirectPath","FinalComponent","connect","toJS","React","createElement","withRegistration","selectUserRegistrationError","selectUserRegistrationIsLoading","isSuccess","selectUserRegistrationIsSuccess","selectUserRegistration","registerUser"],"mappings":";;;;;;;;;;;;;;;AAgBA,MAAMA,gBAAc,GAAIC,gBAAqC,IAAK;EAChE,OAAOA,gBAAgB,CAACC,WAAW,IAAID,gBAAgB,CAACE,IAAI,IAAI,WAAW;AAC7E,CAAC;AAED,MAAMC,SAAS,GAAIH,gBAAqC,IAAK;EAC3D,MAAMI,eAAe,GAAIC,KAAe,IAAK;IAC3C,OAAO;AACLC,MAAAA,YAAY,EAAEC,sBAAsB,CAACF,KAAK,CAAC;AAC3CG,MAAAA,eAAe,EAAEC,yBAAyB,CAACJ,KAAK,CAAC;AACjDK,MAAAA,qBAAqB,EAAEC,+BAA+B,CAACN,KAAK,CAAC;AAC7DO,MAAAA,OAAO,EAAEC,iBAAiB,CAACR,KAAK,CAAC;AACjCS,MAAAA,SAAS,EAAEC,mBAAmB,CAACV,KAAK,CAAC;AACrCW,MAAAA,IAAI,EAAEC,UAAU,CAACZ,KAAK,CAAC;AACvB;AACAa,MAAAA,mBAAmB,EAAEP,+BAA+B,CAACN,KAAK,CAAC;AAC3D;MACAc,KAAK,EAAEN,iBAAiB,CAACR,KAAK;KAC/B;EACH,CAAC;EAED,MAAMe,kBAAkB,GAAGA,MAAM;IAC/B,MAAMC,OAAO,GAAG,IAAIC,YAAY,CAAC,GAAGC,UAAU,EAAE,CAAC;AAEjD,IAAA,MAAMC,kBAAkB,GAAG;AACzBC,MAAAA,SAAS,EAAEA,CAACC,QAAgB,EAAEC,QAAgB,KAC5CF,SAAS,CAACC,QAAQ,EAAEC,QAAQ,EAAEN,OAAO,CAAC;AACxCO,MAAAA,UAAU,EAAGC,YAAqB,IAAKD,UAAU,CAACC,YAAY,EAAER,OAAO;KACxE;AAED,IAAA,MAAMS,cAAc,GAAGC,OAAO,CAC5B3B,eAAe,EACfoB,kBACF,CAAC,CAACQ,IAAI,CAAChC,gBAAgB,CAAC,CAAC;AAEzB,IAAA,oBAAOiC,KAAA,CAAAC,aAAA,CAACJ,cAAc,MAAE,CAAC;EAC3B,CAAC;EAEDV,kBAAkB,CAACnB,WAAW,GAAG,CAAA,EAAGF,gBAAc,CAACC,gBAAgB,CAAC,CAAA,CAAE;EACtEoB,kBAAkB,CAACpB,gBAAgB,GAAGA,gBAAgB;AAEtD,EAAA,OAAOoB,kBAAkB;AAC3B;;AC/CA,MAAMrB,cAAc,GAAGC,gBAAgB,IAAI;EACzC,OAAOA,gBAAgB,CAACC,WAAW,IAAID,gBAAgB,CAACE,IAAI,IAAI,WAAW;AAC7E,CAAC;AAED,MAAMiC,gBAAgB,GAAGnC,gBAAgB,IAAI;EAC3C,MAAMI,eAAe,GAAGC,KAAK,IAAI;IAC/B,OAAO;AACLc,MAAAA,KAAK,EAAEiB,2BAA2B,CAAC/B,KAAK,CAAC;AACzCS,MAAAA,SAAS,EAAEuB,+BAA+B,CAAChC,KAAK,CAAC;AACjDiC,MAAAA,SAAS,EAAEC,+BAA+B,CAAClC,KAAK,CAAC;MACjDW,IAAI,EAAEwB,sBAAsB,CAACnC,KAAK;KACnC;EACH,CAAC;AAED,EAAA,MAAMmB,kBAAkB,GAAG;AACzBiB,IAAAA;GACD;AAED,EAAA,MAAMrB,kBAAkB,GAAGW,OAAO,CAChC3B,eAAe,EACfoB,kBACF,CAAC,CAACQ,IAAI,CAAChC,gBAAgB,CAAC,CAAC;EAEzBoB,kBAAkB,CAACnB,WAAW,GAAG,CAAA,EAAGF,cAAc,CAACC,gBAAgB,CAAC,CAAA,CAAE;AAEtE,EAAA,OAAOoB,kBAAkB;AAC3B;;;;"}
1
+ {"version":3,"file":"user.js","sources":["../src/user/hocs/withLogin.tsx","../src/user/hocs/withRegistration.js"],"sourcesContent":["import React from 'react';\nimport { useCookies } from 'react-cookie';\nimport { connect } from 'react-redux';\nimport { loginUser, logoutUser } from '../redux/actions';\nimport {\n selectUser,\n selectUserErrorMessage,\n selectUserIsAuthenticationError,\n selectUserIsError,\n selectUserIsAuthenticated,\n selectUserIsLoading,\n} from '../redux/selectors';\nimport { CookieHelper } from '../util/CookieHelper.class';\nimport { toJS } from '~/util/ToJs';\nimport { AppState } from '~/models';\n\nconst getDisplayName = (WrappedComponent: React.ComponentType) => {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n};\n\nconst withLogin = (WrappedComponent: React.ComponentType) => {\n const mapStateToProps = (state: AppState) => {\n return {\n errorMessage: selectUserErrorMessage(state),\n isAuthenticated: selectUserIsAuthenticated(state),\n isAuthenticationError: selectUserIsAuthenticationError(state),\n isError: selectUserIsError(state),\n isLoading: selectUserIsLoading(state),\n user: selectUser(state),\n // DEPRECATED: authenticationError is deprecated use isAuthenticationError instead\n authenticationError: selectUserIsAuthenticationError(state),\n // DEPRECATED: error is deprecated use isError instead\n error: selectUserIsError(state),\n };\n };\n\n const ConnectedComponent = () => {\n const cookies = new CookieHelper(...useCookies());\n\n const mapDispatchToProps = {\n loginUser: (username: string, password: string) =>\n loginUser(username, password, cookies),\n logoutUser: (redirectPath?: string) => logoutUser(redirectPath, cookies),\n };\n\n const FinalComponent = connect(\n mapStateToProps,\n mapDispatchToProps\n )(toJS(WrappedComponent));\n\n return <FinalComponent />;\n };\n\n ConnectedComponent.displayName = `${getDisplayName(WrappedComponent)}`;\n ConnectedComponent.WrappedComponent = WrappedComponent;\n\n return ConnectedComponent;\n};\n\nexport default withLogin;\n","import { connect } from 'react-redux';\nimport { registerUser } from '../redux/actions';\nimport {\n selectUserRegistration,\n selectUserRegistrationError,\n selectUserRegistrationIsLoading,\n selectUserRegistrationIsSuccess,\n} from '../redux/selectors';\nimport { toJS } from '~/util/ToJs';\n\nconst getDisplayName = WrappedComponent => {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n};\n\nconst withRegistration = WrappedComponent => {\n const mapStateToProps = state => {\n return {\n error: selectUserRegistrationError(state),\n isLoading: selectUserRegistrationIsLoading(state),\n isSuccess: selectUserRegistrationIsSuccess(state),\n user: selectUserRegistration(state),\n };\n };\n\n const mapDispatchToProps = {\n registerUser,\n };\n\n const ConnectedComponent = connect(\n mapStateToProps,\n mapDispatchToProps\n )(toJS(WrappedComponent));\n\n ConnectedComponent.displayName = `${getDisplayName(WrappedComponent)}`;\n\n return ConnectedComponent;\n};\n\nexport default withRegistration;\n"],"names":["getDisplayName","WrappedComponent","displayName","name","withLogin","mapStateToProps","state","errorMessage","selectUserErrorMessage","isAuthenticated","selectUserIsAuthenticated","isAuthenticationError","selectUserIsAuthenticationError","isError","selectUserIsError","isLoading","selectUserIsLoading","user","selectUser","authenticationError","error","ConnectedComponent","cookies","CookieHelper","useCookies","mapDispatchToProps","loginUser","username","password","logoutUser","redirectPath","FinalComponent","connect","toJS","React","createElement","withRegistration","selectUserRegistrationError","selectUserRegistrationIsLoading","isSuccess","selectUserRegistrationIsSuccess","selectUserRegistration","registerUser"],"mappings":";;;;;;;;;;;;;;;;;;AAgBA,MAAMA,gBAAc,GAAIC,gBAAqC,IAAK;EAChE,OAAOA,gBAAgB,CAACC,WAAW,IAAID,gBAAgB,CAACE,IAAI,IAAI,WAAW;AAC7E,CAAC;AAED,MAAMC,SAAS,GAAIH,gBAAqC,IAAK;EAC3D,MAAMI,eAAe,GAAIC,KAAe,IAAK;IAC3C,OAAO;AACLC,MAAAA,YAAY,EAAEC,sBAAsB,CAACF,KAAK,CAAC;AAC3CG,MAAAA,eAAe,EAAEC,yBAAyB,CAACJ,KAAK,CAAC;AACjDK,MAAAA,qBAAqB,EAAEC,+BAA+B,CAACN,KAAK,CAAC;AAC7DO,MAAAA,OAAO,EAAEC,iBAAiB,CAACR,KAAK,CAAC;AACjCS,MAAAA,SAAS,EAAEC,mBAAmB,CAACV,KAAK,CAAC;AACrCW,MAAAA,IAAI,EAAEC,UAAU,CAACZ,KAAK,CAAC;AACvB;AACAa,MAAAA,mBAAmB,EAAEP,+BAA+B,CAACN,KAAK,CAAC;AAC3D;MACAc,KAAK,EAAEN,iBAAiB,CAACR,KAAK;KAC/B;EACH,CAAC;EAED,MAAMe,kBAAkB,GAAGA,MAAM;IAC/B,MAAMC,OAAO,GAAG,IAAIC,YAAY,CAAC,GAAGC,UAAU,EAAE,CAAC;AAEjD,IAAA,MAAMC,kBAAkB,GAAG;AACzBC,MAAAA,SAAS,EAAEA,CAACC,QAAgB,EAAEC,QAAgB,KAC5CF,SAAS,CAACC,QAAQ,EAAEC,QAAQ,EAAEN,OAAO,CAAC;AACxCO,MAAAA,UAAU,EAAGC,YAAqB,IAAKD,UAAU,CAACC,YAAY,EAAER,OAAO;KACxE;AAED,IAAA,MAAMS,cAAc,GAAGC,OAAO,CAC5B3B,eAAe,EACfoB,kBACF,CAAC,CAACQ,IAAI,CAAChC,gBAAgB,CAAC,CAAC;AAEzB,IAAA,oBAAOiC,KAAA,CAAAC,aAAA,CAACJ,cAAc,MAAE,CAAC;EAC3B,CAAC;EAEDV,kBAAkB,CAACnB,WAAW,GAAG,CAAA,EAAGF,gBAAc,CAACC,gBAAgB,CAAC,CAAA,CAAE;EACtEoB,kBAAkB,CAACpB,gBAAgB,GAAGA,gBAAgB;AAEtD,EAAA,OAAOoB,kBAAkB;AAC3B;;AC/CA,MAAMrB,cAAc,GAAGC,gBAAgB,IAAI;EACzC,OAAOA,gBAAgB,CAACC,WAAW,IAAID,gBAAgB,CAACE,IAAI,IAAI,WAAW;AAC7E,CAAC;AAED,MAAMiC,gBAAgB,GAAGnC,gBAAgB,IAAI;EAC3C,MAAMI,eAAe,GAAGC,KAAK,IAAI;IAC/B,OAAO;AACLc,MAAAA,KAAK,EAAEiB,2BAA2B,CAAC/B,KAAK,CAAC;AACzCS,MAAAA,SAAS,EAAEuB,+BAA+B,CAAChC,KAAK,CAAC;AACjDiC,MAAAA,SAAS,EAAEC,+BAA+B,CAAClC,KAAK,CAAC;MACjDW,IAAI,EAAEwB,sBAAsB,CAACnC,KAAK;KACnC;EACH,CAAC;AAED,EAAA,MAAMmB,kBAAkB,GAAG;AACzBiB,IAAAA;GACD;AAED,EAAA,MAAMrB,kBAAkB,GAAGW,OAAO,CAChC3B,eAAe,EACfoB,kBACF,CAAC,CAACQ,IAAI,CAAChC,gBAAgB,CAAC,CAAC;EAEzBoB,kBAAkB,CAACnB,WAAW,GAAG,CAAA,EAAGF,cAAc,CAACC,gBAAgB,CAAC,CAAA,CAAE;AAEtE,EAAA,OAAOoB,kBAAkB;AAC3B;;;;"}