@zengenti/contensis-react-base 4.0.0-beta.2 → 4.0.0-beta.20

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 (244) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +24 -478
  3. package/cjs/{App-b56aca04.js → App-C_1U2j24.js} +218 -236
  4. package/cjs/App-C_1U2j24.js.map +1 -0
  5. package/cjs/{ChangePassword.container-ae35785e.js → ChangePassword.container-H4i1yRi6.js} +240 -315
  6. package/cjs/ChangePassword.container-H4i1yRi6.js.map +1 -0
  7. package/cjs/{ContensisDeliveryApi-4fcf049d.js → ContensisDeliveryApi-lcZ45Kxx.js} +125 -118
  8. package/cjs/ContensisDeliveryApi-lcZ45Kxx.js.map +1 -0
  9. package/cjs/{CookieConstants-000427db.js → CookieConstants-DfPiWCRZ.js} +3 -1
  10. package/cjs/CookieConstants-DfPiWCRZ.js.map +1 -0
  11. package/cjs/CookieHelper.class-Det3qfdU.js +462 -0
  12. package/cjs/CookieHelper.class-Det3qfdU.js.map +1 -0
  13. package/cjs/{RouteLoader-c06dccd5.js → RouteLoader-CAkG-Y5y.js} +62 -74
  14. package/cjs/RouteLoader-CAkG-Y5y.js.map +1 -0
  15. package/cjs/SSRContext-ciyKagks.js +71 -0
  16. package/cjs/SSRContext-ciyKagks.js.map +1 -0
  17. package/cjs/ToJs-BsWqWjdm.js +23 -0
  18. package/cjs/ToJs-BsWqWjdm.js.map +1 -0
  19. package/cjs/VersionInfo-D0mF1vkY.js +204 -0
  20. package/cjs/VersionInfo-D0mF1vkY.js.map +1 -0
  21. package/cjs/{_commonjsHelpers-b3309d7b.js → _commonjsHelpers-BJu3ubxk.js} +1 -1
  22. package/cjs/_commonjsHelpers-BJu3ubxk.js.map +1 -0
  23. package/cjs/client.js +47 -71
  24. package/cjs/client.js.map +1 -1
  25. package/cjs/contensis-react-base.js +645 -3303
  26. package/cjs/contensis-react-base.js.map +1 -1
  27. package/cjs/{fromJSLeaveImmer-e74c673c.js → fromJSLeaveImmer-Blvlk4t2.js} +3 -7
  28. package/{esm/fromJSLeaveImmer-0114ffcf.js.map → cjs/fromJSLeaveImmer-Blvlk4t2.js.map} +1 -1
  29. package/cjs/{ToJs-a8d8f3f0.js → matchGroups-CNt2aNoC.js} +22 -96
  30. package/cjs/matchGroups-CNt2aNoC.js.map +1 -0
  31. package/cjs/redux.js +20 -20
  32. package/cjs/redux.js.map +1 -1
  33. package/cjs/routing.js +19 -7
  34. package/cjs/routing.js.map +1 -1
  35. package/cjs/sagas-CMBI1syl.js +5835 -0
  36. package/cjs/sagas-CMBI1syl.js.map +1 -0
  37. package/cjs/search.js +119 -321
  38. package/cjs/search.js.map +1 -1
  39. package/cjs/selectors-Bp_TrwG5.js +468 -0
  40. package/cjs/selectors-Bp_TrwG5.js.map +1 -0
  41. package/cjs/{version-34d91f68.js → store-CO5xslDu.js} +44 -114
  42. package/cjs/store-CO5xslDu.js.map +1 -0
  43. package/cjs/user.js +28 -33
  44. package/cjs/user.js.map +1 -1
  45. package/cjs/util-CTvFvplw.js +148 -0
  46. package/cjs/util-CTvFvplw.js.map +1 -0
  47. package/cjs/util.js +87 -215
  48. package/cjs/util.js.map +1 -1
  49. package/cjs/version-BolvQdgT.js +20 -0
  50. package/cjs/version-BolvQdgT.js.map +1 -0
  51. package/cjs/{version-a410c88e.js → version-DabwEeLw.js} +19 -22
  52. package/{esm/version-9f29becb.js.map → cjs/version-DabwEeLw.js.map} +1 -1
  53. package/esm/{App-83107d7e.js → App-DdEKwCTJ.js} +178 -196
  54. package/esm/App-DdEKwCTJ.js.map +1 -0
  55. package/esm/{ChangePassword.container-76fd5e9b.js → ChangePassword.container-BzycNMRX.js} +193 -250
  56. package/esm/ChangePassword.container-BzycNMRX.js.map +1 -0
  57. package/esm/{ContensisDeliveryApi-fe57a037.js → ContensisDeliveryApi-BgfEEyIk.js} +124 -119
  58. package/esm/ContensisDeliveryApi-BgfEEyIk.js.map +1 -0
  59. package/esm/{CookieConstants-3d3b6531.js → CookieConstants-DEmbwzYr.js} +3 -2
  60. package/esm/CookieConstants-DEmbwzYr.js.map +1 -0
  61. package/esm/CookieHelper.class-C6rTRl_1.js +459 -0
  62. package/esm/CookieHelper.class-C6rTRl_1.js.map +1 -0
  63. package/esm/{RouteLoader-29fd689a.js → RouteLoader-Bk6e6UV-.js} +46 -58
  64. package/esm/RouteLoader-Bk6e6UV-.js.map +1 -0
  65. package/esm/SSRContext-CXRqYy6B.js +63 -0
  66. package/esm/SSRContext-CXRqYy6B.js.map +1 -0
  67. package/esm/ToJs-BnRRHk6f.js +17 -0
  68. package/esm/ToJs-BnRRHk6f.js.map +1 -0
  69. package/esm/VersionInfo-j6NR0QJR.js +193 -0
  70. package/esm/VersionInfo-j6NR0QJR.js.map +1 -0
  71. package/esm/{_commonjsHelpers-1789f0cf.js → _commonjsHelpers-BFTU3MAI.js} +1 -1
  72. package/esm/_commonjsHelpers-BFTU3MAI.js.map +1 -0
  73. package/esm/client.js +39 -62
  74. package/esm/client.js.map +1 -1
  75. package/esm/contensis-react-base.js +616 -3272
  76. package/esm/contensis-react-base.js.map +1 -1
  77. package/esm/{fromJSLeaveImmer-0114ffcf.js → fromJSLeaveImmer-C_YACmOf.js} +2 -6
  78. package/{cjs/fromJSLeaveImmer-e74c673c.js.map → esm/fromJSLeaveImmer-C_YACmOf.js.map} +1 -1
  79. package/esm/{ToJs-df57f31d.js → matchGroups-Bq8QnqFx.js} +23 -91
  80. package/esm/matchGroups-Bq8QnqFx.js.map +1 -0
  81. package/esm/redux.js +11 -9
  82. package/esm/redux.js.map +1 -1
  83. package/esm/routing.js +18 -5
  84. package/esm/routing.js.map +1 -1
  85. package/esm/sagas-BFQ4tBq_.js +5743 -0
  86. package/esm/sagas-BFQ4tBq_.js.map +1 -0
  87. package/esm/search.js +124 -323
  88. package/esm/search.js.map +1 -1
  89. package/esm/selectors-CNC7sDxg.js +404 -0
  90. package/esm/selectors-CNC7sDxg.js.map +1 -0
  91. package/esm/{version-3d9911e2.js → store-CtDx5MLq.js} +38 -85
  92. package/esm/store-CtDx5MLq.js.map +1 -0
  93. package/esm/user.js +10 -13
  94. package/esm/user.js.map +1 -1
  95. package/esm/util-BC8LWRKL.js +136 -0
  96. package/esm/util-BC8LWRKL.js.map +1 -0
  97. package/esm/util.js +69 -201
  98. package/esm/util.js.map +1 -1
  99. package/esm/version-CaL4czqJ.js +15 -0
  100. package/esm/version-CaL4czqJ.js.map +1 -0
  101. package/esm/{version-9f29becb.js → version-CfABeHJA.js} +6 -9
  102. package/{cjs/version-a410c88e.js.map → esm/version-CfABeHJA.js.map} +1 -1
  103. package/models/app/App.d.ts +1 -1
  104. package/models/app/pages/VersionInfo/components/VersionInfo.d.ts +4 -1
  105. package/models/app/pages/VersionInfo/components/VersionInfo.styled.d.ts +1 -1
  106. package/models/client/client.d.ts +1 -1
  107. package/models/index.d.ts +1 -2
  108. package/models/models/AppRouteProps.d.ts +11 -0
  109. package/models/{redux/appstate.d.ts → models/AppState.d.ts} +3 -3
  110. package/models/models/ContentTypeMapping.d.ts +89 -0
  111. package/models/models/EntryMapper.d.ts +3 -0
  112. package/models/models/GetRouteActionArgs.d.ts +15 -0
  113. package/models/models/MatchedRoute.d.ts +8 -0
  114. package/models/models/ReduxInjector.d.ts +5 -0
  115. package/models/models/RequireLogin.d.ts +6 -0
  116. package/models/models/RouteComponent.d.ts +3 -0
  117. package/models/models/RouteComponentProps.d.ts +9 -0
  118. package/models/models/RouteLoaderProps.d.ts +9 -0
  119. package/models/models/RouteNode.d.ts +5 -0
  120. package/models/models/SSRContext.d.ts +32 -0
  121. package/models/models/StaticRoute.d.ts +61 -0
  122. package/models/models/WithEvents.d.ts +58 -0
  123. package/models/models/config/AppConfig.d.ts +13 -0
  124. package/models/{config.d.ts → models/config/ServerConfig.d.ts} +4 -12
  125. package/models/models/config/StateType.d.ts +2 -0
  126. package/models/models/config/index.d.ts +3 -0
  127. package/models/models/index.d.ts +16 -0
  128. package/models/redux/actions/index.d.ts +2 -2
  129. package/models/redux/sagas/navigation.d.ts +1 -3
  130. package/models/redux/selectors/index.d.ts +2 -2
  131. package/models/redux/store/injectors.d.ts +16 -4
  132. package/models/redux/store/store.d.ts +10 -4
  133. package/models/redux/types/index.d.ts +2 -2
  134. package/models/redux/types/navigation.d.ts +3 -3
  135. package/models/redux/types/version.d.ts +2 -2
  136. package/models/redux/util.d.ts +1 -1
  137. package/models/routing/components/Redirect.d.ts +1 -1
  138. package/models/routing/components/RouteLoader.d.ts +3 -3
  139. package/models/routing/components/StaticRouteLoader.d.ts +1 -1
  140. package/models/routing/components/Status.d.ts +1 -1
  141. package/models/routing/httpContext.d.ts +0 -1
  142. package/models/routing/index.d.ts +1 -0
  143. package/models/routing/redux/actions.d.ts +3 -4
  144. package/models/routing/redux/selectors.d.ts +44 -4
  145. package/models/routing/redux/types.d.ts +11 -11
  146. package/models/routing/util/expressions.d.ts +1 -1
  147. package/models/routing/util/find-contenttype-mapping.d.ts +1 -1
  148. package/models/routing/util/queries.d.ts +2 -2
  149. package/models/search/containers/withListing.d.ts +4 -1
  150. package/models/search/containers/withSearch.d.ts +4 -1
  151. package/models/search/models/Queries.d.ts +6 -6
  152. package/models/search/models/Search.d.ts +13 -4
  153. package/models/search/models/SearchActions.d.ts +29 -12
  154. package/models/search/models/SearchProps.d.ts +4 -10
  155. package/models/search/models/SearchState.d.ts +8 -2
  156. package/models/search/redux/getIn.d.ts +2 -2
  157. package/models/search/redux/reducers.d.ts +5 -261
  158. package/models/search/redux/sagas.d.ts +13 -14
  159. package/models/search/redux/schema.d.ts +2 -2
  160. package/models/search/redux/selectors.d.ts +10 -10
  161. package/models/search/redux/util.d.ts +9 -1
  162. package/models/search/search/ContensisDeliveryApi.d.ts +6 -26
  163. package/models/search/search/expressions.d.ts +3 -3
  164. package/models/search/search/util.d.ts +25 -8
  165. package/models/search/transformations/searchresult-to-state.mapper.d.ts +1 -2
  166. package/models/server/features/caching/cacheDuration.schema.d.ts +1 -0
  167. package/models/server/features/linkdepth-api/search.d.ts +2 -2
  168. package/models/server/features/response-handler/render-stream.d.ts +25 -0
  169. package/models/server/features/static-assets/index.d.ts +3 -3
  170. package/models/server/internalServer.d.ts +2 -3
  171. package/models/server/util/bundles.d.ts +10 -10
  172. package/models/server/util/headers.d.ts +1 -1
  173. package/models/server/util/html.d.ts +23 -0
  174. package/models/server/util/jsx.d.ts +42 -0
  175. package/models/server/webApp.d.ts +1 -1
  176. package/models/user/components/Login.d.ts +1 -1
  177. package/models/user/components/LoginForm.d.ts +6 -6
  178. package/models/user/components/LogoutForm.d.ts +4 -4
  179. package/models/user/components.styled/Login.styled.d.ts +1 -1
  180. package/models/user/components.styled/LoginForm.styled.d.ts +1 -1
  181. package/models/user/hocs/withLogin.d.ts +4 -4
  182. package/models/user/hocs/withRegistration.d.ts +6 -3
  183. package/models/user/hooks/useLogin.d.ts +4 -4
  184. package/models/user/redux/actions.d.ts +7 -6
  185. package/models/user/redux/sagas/index.d.ts +1 -1
  186. package/models/user/redux/sagas/login.d.ts +5 -17
  187. package/models/user/redux/selectors.d.ts +1 -2
  188. package/models/user/redux/types.d.ts +21 -21
  189. package/models/user/state.d.ts +12 -0
  190. package/models/user/transformations/mapClientCredentials.d.ts +3 -1
  191. package/models/user/util/ContensisManagementApi.d.ts +10 -9
  192. package/models/user/util/CookieConstants.d.ts +1 -0
  193. package/models/user/util/CookieHelper.class.d.ts +8 -4
  194. package/models/user/util/LoginHelper.class.d.ts +25 -37
  195. package/models/user/util/OidcUserManager.d.ts +1 -1
  196. package/models/user/util/matchGroups.d.ts +1 -1
  197. package/models/util/CachedDeliveryApi.d.ts +19 -12
  198. package/models/util/ContensisDeliveryApi.d.ts +11 -9
  199. package/models/util/NoSSR.d.ts +6 -0
  200. package/models/util/SSRContext.d.ts +24 -0
  201. package/models/util/donotuse_useHistory.d.ts +6 -0
  202. package/models/util/index.d.ts +5 -1
  203. package/models/util/json-mapper.d.ts +4 -5
  204. package/models/util/useIsClient.d.ts +6 -0
  205. package/package.json +75 -97
  206. package/cjs/App-b56aca04.js.map +0 -1
  207. package/cjs/ChangePassword.container-ae35785e.js.map +0 -1
  208. package/cjs/ContensisDeliveryApi-4fcf049d.js.map +0 -1
  209. package/cjs/CookieConstants-000427db.js.map +0 -1
  210. package/cjs/RouteLoader-c06dccd5.js.map +0 -1
  211. package/cjs/ToJs-a8d8f3f0.js.map +0 -1
  212. package/cjs/_commonjsHelpers-b3309d7b.js.map +0 -1
  213. package/cjs/forms.js +0 -5998
  214. package/cjs/forms.js.map +0 -1
  215. package/cjs/reducers-73a03ef4.js +0 -257
  216. package/cjs/reducers-73a03ef4.js.map +0 -1
  217. package/cjs/sagas-570f23ba.js +0 -2175
  218. package/cjs/sagas-570f23ba.js.map +0 -1
  219. package/cjs/selectors-14caa813.js +0 -228
  220. package/cjs/selectors-14caa813.js.map +0 -1
  221. package/cjs/urls-6fcaf4c6.js +0 -25
  222. package/cjs/urls-6fcaf4c6.js.map +0 -1
  223. package/cjs/version-34d91f68.js.map +0 -1
  224. package/esm/App-83107d7e.js.map +0 -1
  225. package/esm/ChangePassword.container-76fd5e9b.js.map +0 -1
  226. package/esm/ContensisDeliveryApi-fe57a037.js.map +0 -1
  227. package/esm/CookieConstants-3d3b6531.js.map +0 -1
  228. package/esm/RouteLoader-29fd689a.js.map +0 -1
  229. package/esm/ToJs-df57f31d.js.map +0 -1
  230. package/esm/_commonjsHelpers-1789f0cf.js.map +0 -1
  231. package/esm/forms.js +0 -5984
  232. package/esm/forms.js.map +0 -1
  233. package/esm/reducers-aa8cef1e.js +0 -234
  234. package/esm/reducers-aa8cef1e.js.map +0 -1
  235. package/esm/sagas-07e82e18.js +0 -2083
  236. package/esm/sagas-07e82e18.js.map +0 -1
  237. package/esm/selectors-691caf02.js +0 -186
  238. package/esm/selectors-691caf02.js.map +0 -1
  239. package/esm/urls-eac9a747.js +0 -22
  240. package/esm/urls-eac9a747.js.map +0 -1
  241. package/esm/version-3d9911e2.js.map +0 -1
  242. package/models/forms/index.d.ts +0 -1
  243. package/models/routing/routes.d.ts +0 -133
  244. package/models/search/search/ToJs.d.ts +0 -4
@@ -1,31 +1,27 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var reactCookie = require('react-cookie');
5
4
  var reactRedux = require('react-redux');
6
- var require$$2 = require('react-router-dom');
5
+ var reactRouterDom = require('react-router-dom');
7
6
  var reselect = require('reselect');
8
- var selectors = require('./selectors-14caa813.js');
9
- var ToJs = require('./ToJs-a8d8f3f0.js');
7
+ var selectors = require('./selectors-Bp_TrwG5.js');
8
+ var matchGroups = require('./matchGroups-CNt2aNoC.js');
9
+ var ToJs = require('./ToJs-BsWqWjdm.js');
10
+ var SSRContext = require('./SSRContext-ciyKagks.js');
10
11
 
11
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
13
 
13
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
14
-
15
- const HttpContext = /*#__PURE__*/React.createContext({});
16
- const useHttpContext = () => {
17
- return React.useContext(HttpContext);
18
- };
14
+ var React__default = /*#__PURE__*/_interopDefault(React);
19
15
 
20
16
  const mergeStaticRoutes = matchedStaticRoute => {
21
17
  let finalRoute = {};
22
-
23
18
  for (const [i, route] of matchedStaticRoute.entries()) {
24
- const staticRouteCopy = { ...route.route
19
+ const staticRouteCopy = {
20
+ ...route.route
25
21
  };
26
-
27
22
  if (i === matchedStaticRoute.length - 1) {
28
- finalRoute = { ...finalRoute,
23
+ finalRoute = {
24
+ ...finalRoute,
29
25
  ...staticRouteCopy,
30
26
  fullPath: `${finalRoute.fullPath || ''}${route.route.path ? route.route.path : ''}`
31
27
  };
@@ -36,7 +32,8 @@ const mergeStaticRoutes = matchedStaticRoute => {
36
32
  delete staticRouteCopy.path;
37
33
  delete staticRouteCopy.component;
38
34
  delete staticRouteCopy.element;
39
- finalRoute = { ...finalRoute,
35
+ finalRoute = {
36
+ ...finalRoute,
40
37
  ...staticRouteCopy,
41
38
  fullPath: `${finalRoute.fullPath || ''}${route.route.path ? route.route.path.endsWith('/') ? route.route.path : route.route.path + '/' : ''}`
42
39
  };
@@ -44,18 +41,21 @@ const mergeStaticRoutes = matchedStaticRoute => {
44
41
  }
45
42
  };
46
43
 
44
+ const HttpContext = /*#__PURE__*/React.createContext({});
45
+ const useHttpContext = () => {
46
+ return React.useContext(HttpContext);
47
+ };
48
+
47
49
  const Redirect = ({
48
50
  code,
49
51
  to
50
52
  }) => {
51
53
  const httpContext = useHttpContext();
52
-
53
54
  if (httpContext) {
54
55
  httpContext.statusCode = code;
55
56
  httpContext.url = to;
56
57
  }
57
-
58
- return /*#__PURE__*/React__default["default"].createElement(require$$2.Navigate, {
58
+ return /*#__PURE__*/React__default.default.createElement(reactRouterDom.Navigate, {
59
59
  to: to
60
60
  });
61
61
  };
@@ -65,18 +65,16 @@ const Status = ({
65
65
  children
66
66
  }) => {
67
67
  const httpContext = useHttpContext();
68
-
69
68
  if (httpContext) {
70
69
  httpContext.statusCode = code;
71
70
  }
72
-
73
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, children);
71
+ return /*#__PURE__*/React__default.default.createElement(React__default.default.Fragment, null, children);
74
72
  };
75
73
 
76
74
  const NotFound = ({
77
75
  statusCode,
78
76
  statusText
79
- }) => /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("header", null, /*#__PURE__*/React__default["default"].createElement("h1", null, statusCode || '404', " Page Not Found"), statusText && /*#__PURE__*/React__default["default"].createElement("h2", {
77
+ }) => /*#__PURE__*/React__default.default.createElement(React__default.default.Fragment, null, /*#__PURE__*/React__default.default.createElement("header", null, /*#__PURE__*/React__default.default.createElement("h1", null, statusCode || '404', " Page Not Found"), statusText && /*#__PURE__*/React__default.default.createElement("h2", {
80
78
  style: {
81
79
  background: '#eee',
82
80
  color: '#666',
@@ -88,33 +86,27 @@ const NotFound = ({
88
86
  const StaticRouteLoader = ({
89
87
  staticRoutes
90
88
  }) => {
91
- const staticRouteElement = require$$2.useRoutes(staticRoutes);
92
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, staticRouteElement);
89
+ const staticRouteElement = reactRouterDom.useRoutes(staticRoutes);
90
+ return /*#__PURE__*/React__default.default.createElement(React__default.default.Fragment, null, staticRouteElement);
93
91
  };
94
92
 
95
93
  const replaceDoubleSlashRecursive = path => {
96
94
  const nextPath = path.replace(/\/\//, '/');
97
-
98
95
  if (nextPath.match(/\/\//)) {
99
96
  return replaceDoubleSlashRecursive(nextPath);
100
97
  }
101
-
102
98
  return nextPath;
103
99
  };
104
-
105
100
  const getTrimmedPath = path => {
106
101
  if (path !== '/') {
107
102
  const nextPath = replaceDoubleSlashRecursive(path);
108
103
  const lastChar = nextPath[nextPath.length - 1];
109
-
110
104
  if (lastChar === '/') {
111
105
  return nextPath.substring(0, nextPath.length - 1);
112
106
  }
113
107
  }
114
-
115
108
  return path;
116
109
  };
117
-
118
110
  const processStaticRoutes = (staticRoutes, componentProps) => {
119
111
  const {
120
112
  projectId,
@@ -124,11 +116,11 @@ const processStaticRoutes = (staticRoutes, componentProps) => {
124
116
  isLoggedIn
125
117
  } = componentProps;
126
118
  return staticRoutes.map(x => {
127
- const route = { ...x
119
+ const route = {
120
+ ...x
128
121
  };
129
-
130
122
  if (route.component) {
131
- route.element = /*#__PURE__*/React__default["default"].createElement(route.component, {
123
+ route.element = /*#__PURE__*/React__default.default.createElement(route.component, {
132
124
  projectId: projectId,
133
125
  contentTypeId: contentTypeId ? contentTypeId : undefined,
134
126
  entry: entry,
@@ -137,7 +129,6 @@ const processStaticRoutes = (staticRoutes, componentProps) => {
137
129
  });
138
130
  delete route.component;
139
131
  }
140
-
141
132
  if (route.element) {
142
133
  route.element = /*#__PURE__*/React.cloneElement(route.element, {
143
134
  projectId,
@@ -147,15 +138,12 @@ const processStaticRoutes = (staticRoutes, componentProps) => {
147
138
  isLoggedIn
148
139
  });
149
140
  }
150
-
151
141
  if (route.children) {
152
142
  route.children = processStaticRoutes(route.children, componentProps);
153
143
  }
154
-
155
144
  return route;
156
145
  });
157
146
  };
158
-
159
147
  const RouteLoader = ({
160
148
  contentTypeId,
161
149
  entry,
@@ -176,41 +164,44 @@ const RouteLoader = ({
176
164
  withEvents,
177
165
  trailingSlashRedirectCode = 302
178
166
  }) => {
179
- const location = require$$2.useLocation();
180
- const cookies = new ToJs.CookieHelper(...reactCookie.useCookies()); // Always ensure paths are trimmed of trailing slashes so urls are always unique
167
+ const location = reactRouterDom.useLocation();
181
168
 
182
- const trimmedPath = getTrimmedPath(location.pathname); // Convert any react-router-v5 style routes to react-router-v6 style routes.
169
+ // In SSR pass references to things in backing sagas
170
+ // we cannot access in a global scope
171
+ const ssrContext = SSRContext.useSSRContext();
183
172
 
173
+ // Always ensure paths are trimmed of trailing slashes so urls are always unique
174
+ const trimmedPath = getTrimmedPath(location.pathname);
175
+
176
+ // Convert any react-router-v5 style routes to react-router-v6 style routes.
184
177
  const staticRoutes = processStaticRoutes(routes.StaticRoutes, {
185
178
  projectId,
186
179
  contentTypeId,
187
180
  entry,
188
181
  mappedEntry,
189
182
  isLoggedIn
190
- }); // Match any Static Routes a developer has defined
183
+ });
191
184
 
192
- const matchedStaticRoute = require$$2.matchRoutes(staticRoutes, location);
193
- const isStaticRoute = matchedStaticRoute && matchedStaticRoute.length > 0; // Combine custom params for all static routes, with the furthest config taking precedence.
185
+ // Match any Static Routes a developer has defined
186
+ const matchedStaticRoute = reactRouterDom.matchRoutes(staticRoutes, location);
187
+ const isStaticRoute = matchedStaticRoute && matchedStaticRoute.length > 0;
194
188
 
189
+ // Combine custom params for all static routes, with the furthest config taking precedence.
195
190
  if (isStaticRoute) {
196
191
  mergeStaticRoutes(matchedStaticRoute);
197
192
  }
198
-
199
193
  const staticRoute = isStaticRoute ? matchedStaticRoute.pop() || undefined : undefined;
200
194
  const routeRequiresLogin = staticRoute ? staticRoute.route.requireLogin : undefined;
201
195
  const setPath = React.useCallback(() => {
202
196
  // Use serverPath to control the path we send to siteview node api to resolve a route
203
197
  let serverPath = '';
204
-
205
198
  if (staticRoute && staticRoute.pathname === staticRoute.pathnameBase) {
206
199
  var _route$path, _route$fetchNode;
207
-
208
200
  const {
209
201
  route,
210
202
  pathname,
211
203
  params
212
204
  } = staticRoute;
213
-
214
205
  if ((_route$path = route.path) !== null && _route$path !== void 0 && _route$path.includes('*')) {
215
206
  // Send the whole url to api if we have matched route containing wildcard
216
207
  serverPath = pathname;
@@ -227,48 +218,49 @@ const RouteLoader = ({
227
218
  }).replace(/\/$/, '');
228
219
  } else {
229
220
  var _route$fullPath;
230
-
231
221
  // Send all non-parameterised url parts to api
232
222
  serverPath = (_route$fullPath = route.fullPath) === null || _route$fullPath === void 0 ? void 0 : _route$fullPath.split('/').filter(p => !p.startsWith(':')).join('/');
233
223
  }
234
224
  }
235
-
236
- setNavigationPath(serverPath || trimmedPath, location, staticRoute, withEvents, statePath, routes, cookies); // eslint-disable-next-line react-hooks/exhaustive-deps
237
- }, [setNavigationPath, // staticRoute,
238
- withEvents, location, routes, // statePath,
225
+ setNavigationPath(serverPath || trimmedPath, location, staticRoute, withEvents, statePath, routes, ssrContext);
226
+ // eslint-disable-next-line react-hooks/exhaustive-deps
227
+ }, [setNavigationPath,
228
+ // staticRoute,
229
+ withEvents, location, routes,
230
+ // statePath,
239
231
  trimmedPath]);
240
232
  if (typeof window == 'undefined') setPath();
241
233
  React.useEffect(() => {
242
234
  setPath();
243
- }, [location, setPath]); // Need to redirect when url endswith a /
235
+ }, [location, setPath]);
244
236
 
237
+ // Need to redirect when url endswith a /
245
238
  if (location.pathname.length > trimmedPath.length) {
246
- return /*#__PURE__*/React__default["default"].createElement(Redirect, {
239
+ return /*#__PURE__*/React__default.default.createElement(Redirect, {
247
240
  code: trailingSlashRedirectCode || 302,
248
241
  to: `${trimmedPath}${location.search}${location.hash}`
249
242
  });
250
- } // Render any Static Routes a developer has defined
251
-
243
+ }
252
244
 
245
+ // Render any Static Routes a developer has defined
253
246
  if (isStaticRoute && !(!isLoggedIn && routeRequiresLogin)) {
254
- if (ToJs.matchUserGroup(userGroups, routeRequiresLogin)) return /*#__PURE__*/React__default["default"].createElement(StaticRouteLoader, {
247
+ if (matchGroups.matchUserGroup(userGroups, routeRequiresLogin)) return /*#__PURE__*/React__default.default.createElement(StaticRouteLoader, {
255
248
  staticRoutes: staticRoutes
256
249
  });
257
- } // Render a supplied Loading component if the route
258
- // is not a static route and is in a loading state
259
-
250
+ }
260
251
 
252
+ // Render a supplied Loading component if the route
253
+ // is not a static route and is in a loading state
261
254
  if (isLoading && !isNotFound && loadingComponent) {
262
255
  const LoadingComponent = loadingComponent;
263
- return /*#__PURE__*/React__default["default"].createElement(LoadingComponent, null);
264
- } // Match any defined Content Type Mappings
265
-
256
+ return /*#__PURE__*/React__default.default.createElement(LoadingComponent, null);
257
+ }
266
258
 
259
+ // Match any defined Content Type Mappings
267
260
  if (contentTypeId && !(!isLoggedIn && routeRequiresLogin)) {
268
261
  const MatchedComponent = routes.ContentTypeMappings.find(item => item.contentTypeID === contentTypeId);
269
-
270
262
  if (MatchedComponent && !(MatchedComponent.requireLogin && !isLoggedIn)) {
271
- if (ToJs.matchUserGroup(userGroups, MatchedComponent.requireLogin)) return /*#__PURE__*/React__default["default"].createElement(MatchedComponent.component, {
263
+ if (matchGroups.matchUserGroup(userGroups, MatchedComponent.requireLogin)) return /*#__PURE__*/React__default.default.createElement(MatchedComponent.component, {
272
264
  projectId: projectId,
273
265
  contentTypeId: contentTypeId,
274
266
  entry: entry,
@@ -277,23 +269,19 @@ const RouteLoader = ({
277
269
  });
278
270
  }
279
271
  }
280
-
281
272
  const NotFoundComponent = notFoundComponent ? notFoundComponent : NotFound;
282
-
283
273
  if (isNotFound || isError) {
284
274
  console.info(`RouteLoader rendering NotFound component: statusCode ${statusCode}, isNotFound ${isNotFound}, isError ${isError}`);
285
- return /*#__PURE__*/React__default["default"].createElement(Status, {
275
+ return /*#__PURE__*/React__default.default.createElement(Status, {
286
276
  code: statusCode
287
- }, /*#__PURE__*/React__default["default"].createElement(NotFoundComponent, {
277
+ }, /*#__PURE__*/React__default.default.createElement(NotFoundComponent, {
288
278
  statusCode: statusCode,
289
279
  statusText: statusText
290
280
  }));
291
281
  }
292
-
293
282
  return null;
294
283
  };
295
-
296
- const mapStateToPropsMemoized = reselect.createSelector(selectors.selectRouteEntryContentTypeId, selectors.selectRouteEntry, selectors.selectRouteIsError, selectors.selectIsNotFound, selectors.selectRouteLoading, ToJs.selectUserIsAuthenticated, selectors.selectMappedEntry, selectors.selectCurrentProject, selectors.selectCurrentPath, selectors.selectRouteStatusCode, selectors.selectRouteErrorMessage, ToJs.selectUserGroups, (contentTypeId, entry, isError, isNotFound, isLoading, isLoggedIn, mappedEntry, projectId, statePath, statusCode, statusText, userGroups) => ({
284
+ const mapStateToPropsMemoized = reselect.createSelector(selectors.selectRouteEntryContentTypeId, selectors.selectRouteEntry, selectors.selectRouteIsError, selectors.selectIsNotFound, selectors.selectRouteLoading, matchGroups.selectUserIsAuthenticated, selectors.selectMappedEntry, selectors.selectCurrentProject, selectors.selectCurrentPath, selectors.selectRouteStatusCode, selectors.selectRouteErrorMessage, matchGroups.selectUserGroups, (contentTypeId, entry, isError, isNotFound, isLoading, isLoggedIn, mappedEntry, projectId, statePath, statusCode, statusText, userGroups) => ({
297
285
  contentTypeId,
298
286
  entry,
299
287
  isError,
@@ -318,4 +306,4 @@ exports.RouteLoader = RouteLoader$1;
318
306
  exports.Status = Status;
319
307
  exports.mergeStaticRoutes = mergeStaticRoutes;
320
308
  exports.useHttpContext = useHttpContext;
321
- //# sourceMappingURL=RouteLoader-c06dccd5.js.map
309
+ //# sourceMappingURL=RouteLoader-CAkG-Y5y.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouteLoader-CAkG-Y5y.js","sources":["../src/util/mergeStaticRoutes.ts","../src/routing/httpContext.ts","../src/routing/components/Redirect.tsx","../src/routing/components/Status.tsx","../src/routing/components/NotFound.tsx","../src/routing/components/StaticRouteLoader.tsx","../src/routing/components/RouteLoader.tsx"],"sourcesContent":["import { StaticRoute } from '../';\n\nexport const mergeStaticRoutes = matchedStaticRoute => {\n let finalRoute: StaticRoute = {};\n for (const [i, route] of matchedStaticRoute.entries()) {\n const staticRouteCopy = { ...route.route };\n if (i === matchedStaticRoute.length - 1) {\n finalRoute = {\n ...finalRoute,\n ...staticRouteCopy,\n fullPath: `${finalRoute.fullPath || ''}${\n route.route.path ? route.route.path : ''\n }`,\n };\n matchedStaticRoute[i].route = finalRoute;\n } else {\n delete staticRouteCopy.children;\n delete staticRouteCopy.index;\n delete staticRouteCopy.path;\n delete staticRouteCopy.component;\n delete staticRouteCopy.element;\n finalRoute = {\n ...finalRoute,\n ...staticRouteCopy,\n fullPath: `${finalRoute.fullPath || ''}${\n route.route.path\n ? route.route.path.endsWith('/')\n ? route.route.path\n : route.route.path + '/'\n : ''\n }`,\n };\n }\n }\n};\n","import { createContext, useContext } from 'react';\n\nexport type HttpContextValues = {\n statusCode?: number;\n url?: string;\n};\n\nexport const HttpContext = createContext<HttpContextValues>({});\nexport const useHttpContext = () => {\n return useContext(HttpContext);\n};\n","import React, { PropsWithChildren } from 'react';\nimport { Navigate } from 'react-router-dom';\nimport { useHttpContext } from '../httpContext';\n\nexport const Redirect = ({\n code,\n to,\n}: PropsWithChildren<{ code: 301 | 302; to: string }>) => {\n const httpContext = useHttpContext();\n if (httpContext) {\n httpContext.statusCode = code;\n httpContext.url = to;\n }\n return <Navigate to={to} />;\n};\n","import React, { PropsWithChildren } from 'react';\nimport { useHttpContext } from '../httpContext';\n\nexport const Status = ({\n code,\n children,\n}: PropsWithChildren<{ code: number }>) => {\n const httpContext = useHttpContext();\n if (httpContext) {\n httpContext.statusCode = code;\n }\n return <>{children}</>;\n};\n","import React from 'react';\n\nconst NotFound = ({\n statusCode,\n statusText,\n}: {\n statusCode: number;\n statusText: string;\n}) => (\n <>\n <header>\n <h1>{statusCode || '404'} Page Not Found</h1>\n {statusText && (\n <h2\n style={{\n background: '#eee',\n color: '#666',\n fontSize: '100%',\n padding: '10px',\n }}\n >\n {statusText}\n </h2>\n )}\n </header>\n </>\n);\n\nexport default NotFound;\n","import React from 'react';\nimport { RouteObject, useRoutes } from 'react-router-dom';\nimport type { StaticRoute } from '~/models';\n\nexport interface StaticRouteLoaderProps {\n staticRoutes: StaticRoute[];\n}\n\nexport const StaticRouteLoader = ({ staticRoutes }: StaticRouteLoaderProps) => {\n const staticRouteElement = useRoutes(staticRoutes as RouteObject[]);\n return <>{staticRouteElement}</>;\n};\n","import React, { useEffect, useCallback, cloneElement } from 'react';\nimport { connect } from 'react-redux';\nimport { useLocation, matchRoutes, RouteObject } from 'react-router-dom';\n\nimport { createSelector } from 'reselect';\n\nimport NotFound from './NotFound';\nimport { Status } from './Status';\n\nimport {\n selectCurrentPath,\n selectCurrentProject,\n selectIsNotFound,\n selectMappedEntry,\n selectRouteEntry,\n selectRouteEntryContentTypeId,\n selectRouteErrorMessage,\n selectRouteIsError,\n selectRouteLoading,\n selectRouteStatusCode,\n} from '../redux/selectors';\nimport { setNavigationPath } from '../redux/actions';\n\nimport {\n selectUserGroups,\n selectUserIsAuthenticated,\n} from '~/user/redux/selectors';\nimport { matchUserGroup } from '~/user/util/matchGroups';\nimport { toJS } from '~/util/ToJs';\nimport { useSSRContext } from '~/util/SSRContext';\n\nimport { mergeStaticRoutes } from '~/util/mergeStaticRoutes';\nimport { Entry } from 'contensis-delivery-api/lib/models';\nimport { AppRootProps, MatchedRoute, RouteComponentProps, RouteLoaderProps, StaticRoute } from '~/models';\nimport { StaticRouteLoader } from './StaticRouteLoader';\nimport { Redirect } from './Redirect';\n\nconst replaceDoubleSlashRecursive = (path: string) => {\n const nextPath = path.replace(/\\/\\//, '/');\n\n if (nextPath.match(/\\/\\//)) {\n return replaceDoubleSlashRecursive(nextPath);\n }\n\n return nextPath;\n};\n\nconst getTrimmedPath = path => {\n if (path !== '/') {\n const nextPath = replaceDoubleSlashRecursive(path);\n const lastChar = nextPath[nextPath.length - 1];\n if (lastChar === '/') {\n return nextPath.substring(0, nextPath.length - 1);\n }\n }\n return path;\n};\n\nconst processStaticRoutes = (\n staticRoutes: StaticRoute[],\n componentProps: Partial<IReduxProps>\n) => {\n const { projectId, contentTypeId, entry, mappedEntry, isLoggedIn } =\n componentProps;\n return staticRoutes.map(x => {\n const route = { ...x };\n if (route.component) {\n route.element = (\n <route.component\n projectId={projectId}\n contentTypeId={contentTypeId ? contentTypeId : undefined}\n entry={entry}\n mappedEntry={mappedEntry}\n isLoggedIn={isLoggedIn}\n />\n );\n delete route.component;\n }\n if (route.element) {\n route.element = cloneElement(route.element as React.ReactElement<any>, {\n projectId,\n contentTypeId,\n entry,\n mappedEntry,\n isLoggedIn,\n });\n }\n if (route.children) {\n route.children = processStaticRoutes(route.children, componentProps);\n }\n return route;\n });\n};\n\ninterface IReduxProps {\n contentTypeId: string | null;\n entry: Entry | null;\n isError: boolean;\n isNotFound: boolean;\n isLoading: boolean;\n isLoggedIn: boolean;\n mappedEntry: any;\n projectId: string;\n setNavigationPath: typeof setNavigationPath;\n statePath: string;\n statusCode: any;\n statusText: string;\n userGroups: any;\n}\n\nconst RouteLoader = ({\n contentTypeId,\n entry,\n isError,\n isLoading,\n isLoggedIn,\n isNotFound,\n loadingComponent,\n mappedEntry,\n notFoundComponent,\n projectId,\n routes,\n setNavigationPath,\n statePath,\n statusCode,\n statusText,\n userGroups,\n withEvents,\n trailingSlashRedirectCode = 302,\n}: AppRootProps & RouteLoaderProps & IReduxProps) => {\n const location = useLocation();\n\n // In SSR pass references to things in backing sagas\n // we cannot access in a global scope\n const ssrContext = useSSRContext();\n\n // Always ensure paths are trimmed of trailing slashes so urls are always unique\n const trimmedPath = getTrimmedPath(location.pathname);\n\n // Convert any react-router-v5 style routes to react-router-v6 style routes.\n const staticRoutes = processStaticRoutes(routes.StaticRoutes, {\n projectId,\n contentTypeId,\n entry,\n mappedEntry,\n isLoggedIn,\n });\n\n // Match any Static Routes a developer has defined\n const matchedStaticRoute = matchRoutes(\n staticRoutes as RouteObject[],\n location\n );\n const isStaticRoute = matchedStaticRoute && matchedStaticRoute.length > 0;\n\n // Combine custom params for all static routes, with the furthest config taking precedence.\n if (isStaticRoute) {\n mergeStaticRoutes(matchedStaticRoute);\n }\n\n const staticRoute: MatchedRoute<string, StaticRoute> | undefined =\n isStaticRoute ? matchedStaticRoute.pop() || undefined : undefined;\n\n const routeRequiresLogin = staticRoute\n ? staticRoute.route.requireLogin\n : undefined;\n\n const setPath = useCallback(() => {\n // Use serverPath to control the path we send to siteview node api to resolve a route\n let serverPath = '';\n if (staticRoute && staticRoute.pathname === staticRoute.pathnameBase) {\n const { route, pathname, params } = staticRoute;\n\n if (route.path?.includes('*')) {\n // Send the whole url to api if we have matched route containing wildcard\n serverPath = pathname;\n } else if (typeof route.fetchNodeLevel === 'number') {\n // Send all url parts to a specified level to api\n serverPath = pathname\n .split('/')\n .splice(0, route.fetchNodeLevel + 1)\n .join('/');\n } else if (\n typeof route.fetchNode === 'object' &&\n route.fetchNode?.params\n ) {\n const fetchNodeParams: string[] = route.fetchNode.params;\n const routeParams = params;\n\n const regexExp = new RegExp(\n Object.keys(routeParams)\n .map(p => `:${p}`)\n .join('|'),\n 'g'\n );\n\n serverPath = pathname\n .replace(/\\?/g, '')\n .replace(regexExp, matched => {\n const param = matched.replace(':', '');\n if (fetchNodeParams.includes(param))\n return routeParams[param] || '';\n else return '';\n })\n .replace(/\\/$/, '');\n } else {\n // Send all non-parameterised url parts to api\n serverPath = (route.fullPath as string)\n ?.split('/')\n .filter(p => !p.startsWith(':'))\n .join('/');\n }\n }\n\n setNavigationPath(\n serverPath || trimmedPath,\n location,\n staticRoute,\n withEvents,\n statePath,\n routes,\n ssrContext\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n setNavigationPath,\n // staticRoute,\n withEvents,\n location,\n routes,\n // statePath,\n trimmedPath,\n ]);\n\n if (typeof window == 'undefined') setPath();\n\n useEffect(() => {\n setPath();\n }, [location, setPath]);\n\n // Need to redirect when url endswith a /\n if (location.pathname.length > trimmedPath.length) {\n return (\n <Redirect\n code={trailingSlashRedirectCode || 302}\n to={`${trimmedPath}${location.search}${location.hash}`}\n />\n );\n }\n\n // Render any Static Routes a developer has defined\n if (isStaticRoute && !(!isLoggedIn && routeRequiresLogin)) {\n if (matchUserGroup(userGroups, routeRequiresLogin))\n return <StaticRouteLoader staticRoutes={staticRoutes} />;\n }\n\n // Render a supplied Loading component if the route\n // is not a static route and is in a loading state\n if (isLoading && !isNotFound && loadingComponent) {\n const LoadingComponent = loadingComponent;\n return <LoadingComponent />;\n }\n\n // Match any defined Content Type Mappings\n if (contentTypeId && !(!isLoggedIn && routeRequiresLogin)) {\n const MatchedComponent = routes.ContentTypeMappings.find(\n item => item.contentTypeID === contentTypeId\n );\n\n if (MatchedComponent && !(MatchedComponent.requireLogin && !isLoggedIn)) {\n if (matchUserGroup(userGroups, MatchedComponent.requireLogin))\n return (\n <MatchedComponent.component\n projectId={projectId}\n contentTypeId={contentTypeId}\n entry={entry}\n mappedEntry={mappedEntry}\n isLoggedIn={isLoggedIn}\n />\n );\n }\n }\n\n const NotFoundComponent = notFoundComponent ? notFoundComponent : NotFound;\n if (isNotFound || isError) {\n console.info(\n `RouteLoader rendering NotFound component: statusCode ${statusCode}, isNotFound ${isNotFound}, isError ${isError}`\n );\n\n return (\n <Status code={statusCode}>\n <NotFoundComponent statusCode={statusCode} statusText={statusText} />\n </Status>\n );\n }\n\n return null;\n};\nconst mapStateToPropsMemoized = createSelector(\n selectRouteEntryContentTypeId,\n selectRouteEntry,\n selectRouteIsError,\n selectIsNotFound,\n selectRouteLoading,\n selectUserIsAuthenticated,\n selectMappedEntry,\n selectCurrentProject,\n selectCurrentPath,\n selectRouteStatusCode,\n selectRouteErrorMessage,\n selectUserGroups,\n (\n contentTypeId,\n entry,\n isError,\n isNotFound,\n isLoading,\n isLoggedIn,\n mappedEntry,\n projectId,\n statePath,\n statusCode,\n statusText,\n userGroups\n ) => ({\n contentTypeId,\n entry,\n isError,\n isNotFound,\n isLoading,\n isLoggedIn,\n mappedEntry,\n projectId,\n statePath,\n statusCode,\n statusText,\n userGroups,\n })\n);\n\nconst mapDispatchToProps = {\n setNavigationPath,\n};\n\nexport default connect(\n mapStateToPropsMemoized,\n mapDispatchToProps\n)(toJS(RouteLoader as any)) as unknown as (\n props: AppRootProps & RouteLoaderProps\n) => React.JSX.Element;\n"],"names":["mergeStaticRoutes","matchedStaticRoute","finalRoute","i","route","entries","staticRouteCopy","length","fullPath","path","children","index","component","element","endsWith","HttpContext","createContext","useHttpContext","useContext","Redirect","code","to","httpContext","statusCode","url","React","createElement","Navigate","Status","Fragment","NotFound","statusText","style","background","color","fontSize","padding","StaticRouteLoader","staticRoutes","staticRouteElement","useRoutes","replaceDoubleSlashRecursive","nextPath","replace","match","getTrimmedPath","lastChar","substring","processStaticRoutes","componentProps","projectId","contentTypeId","entry","mappedEntry","isLoggedIn","map","x","undefined","cloneElement","RouteLoader","isError","isLoading","isNotFound","loadingComponent","notFoundComponent","routes","setNavigationPath","statePath","userGroups","withEvents","trailingSlashRedirectCode","location","useLocation","ssrContext","useSSRContext","trimmedPath","pathname","StaticRoutes","matchRoutes","isStaticRoute","staticRoute","pop","routeRequiresLogin","requireLogin","setPath","useCallback","serverPath","pathnameBase","_route$path","_route$fetchNode","params","includes","fetchNodeLevel","split","splice","join","fetchNode","fetchNodeParams","routeParams","regexExp","RegExp","Object","keys","p","matched","param","_route$fullPath","filter","startsWith","window","useEffect","search","hash","matchUserGroup","LoadingComponent","MatchedComponent","ContentTypeMappings","find","item","contentTypeID","NotFoundComponent","console","info","mapStateToPropsMemoized","createSelector","selectRouteEntryContentTypeId","selectRouteEntry","selectRouteIsError","selectIsNotFound","selectRouteLoading","selectUserIsAuthenticated","selectMappedEntry","selectCurrentProject","selectCurrentPath","selectRouteStatusCode","selectRouteErrorMessage","selectUserGroups","mapDispatchToProps","connect","toJS"],"mappings":";;;;;;;;;;;;;;;AAEO,MAAMA,iBAAiB,GAAGC,kBAAkB,IAAI;EACrD,IAAIC,UAAuB,GAAG,EAAE;AAChC,EAAA,KAAK,MAAM,CAACC,CAAC,EAAEC,KAAK,CAAC,IAAIH,kBAAkB,CAACI,OAAO,EAAE,EAAE;AACrD,IAAA,MAAMC,eAAe,GAAG;AAAE,MAAA,GAAGF,KAAK,CAACA;KAAO;AAC1C,IAAA,IAAID,CAAC,KAAKF,kBAAkB,CAACM,MAAM,GAAG,CAAC,EAAE;AACvCL,MAAAA,UAAU,GAAG;AACX,QAAA,GAAGA,UAAU;AACb,QAAA,GAAGI,eAAe;QAClBE,QAAQ,EAAE,GAAGN,UAAU,CAACM,QAAQ,IAAI,EAAE,GACpCJ,KAAK,CAACA,KAAK,CAACK,IAAI,GAAGL,KAAK,CAACA,KAAK,CAACK,IAAI,GAAG,EAAE,CAAA;OAE3C;AACDR,MAAAA,kBAAkB,CAACE,CAAC,CAAC,CAACC,KAAK,GAAGF,UAAU;AAC1C,IAAA,CAAC,MAAM;MACL,OAAOI,eAAe,CAACI,QAAQ;MAC/B,OAAOJ,eAAe,CAACK,KAAK;MAC5B,OAAOL,eAAe,CAACG,IAAI;MAC3B,OAAOH,eAAe,CAACM,SAAS;MAChC,OAAON,eAAe,CAACO,OAAO;AAC9BX,MAAAA,UAAU,GAAG;AACX,QAAA,GAAGA,UAAU;AACb,QAAA,GAAGI,eAAe;AAClBE,QAAAA,QAAQ,EAAE,CAAA,EAAGN,UAAU,CAACM,QAAQ,IAAI,EAAE,CAAA,EACpCJ,KAAK,CAACA,KAAK,CAACK,IAAI,GACZL,KAAK,CAACA,KAAK,CAACK,IAAI,CAACK,QAAQ,CAAC,GAAG,CAAC,GAC5BV,KAAK,CAACA,KAAK,CAACK,IAAI,GAChBL,KAAK,CAACA,KAAK,CAACK,IAAI,GAAG,GAAG,GACxB,EAAE,CAAA;OAET;AACH,IAAA;AACF,EAAA;AACF;;MC3BaM,WAAW,gBAAGC,mBAAa,CAAoB,EAAE;AACvD,MAAMC,cAAc,GAAGA,MAAM;EAClC,OAAOC,gBAAU,CAACH,WAAW,CAAC;AAChC;;ACNO,MAAMI,QAAQ,GAAGA,CAAC;EACvBC,IAAI;AACJC,EAAAA;AACkD,CAAC,KAAK;AACxD,EAAA,MAAMC,WAAW,GAAGL,cAAc,EAAE;AACpC,EAAA,IAAIK,WAAW,EAAE;IACfA,WAAW,CAACC,UAAU,GAAGH,IAAI;IAC7BE,WAAW,CAACE,GAAG,GAAGH,EAAE;AACtB,EAAA;AACA,EAAA,oBAAOI,sBAAA,CAAAC,aAAA,CAACC,uBAAQ,EAAA;AAACN,IAAAA,EAAE,EAAEA;AAAG,GAAE,CAAC;AAC7B;;ACXO,MAAMO,MAAM,GAAGA,CAAC;EACrBR,IAAI;AACJV,EAAAA;AACmC,CAAC,KAAK;AACzC,EAAA,MAAMY,WAAW,GAAGL,cAAc,EAAE;AACpC,EAAA,IAAIK,WAAW,EAAE;IACfA,WAAW,CAACC,UAAU,GAAGH,IAAI;AAC/B,EAAA;EACA,oBAAOK,sBAAA,CAAAC,aAAA,CAAAD,sBAAA,CAAAI,QAAA,EAAA,IAAA,EAAGnB,QAAW,CAAC;AACxB;;ACVA,MAAMoB,QAAQ,GAAGA,CAAC;EAChBP,UAAU;AACVQ,EAAAA;AAIF,CAAC,kBACCN,sBAAA,CAAAC,aAAA,CAAAD,sBAAA,CAAAI,QAAA,EAAA,IAAA,eACEJ,sBAAA,CAAAC,aAAA,CAAA,QAAA,EAAA,IAAA,eACED,sBAAA,CAAAC,aAAA,CAAA,IAAA,EAAA,IAAA,EAAKH,UAAU,IAAI,KAAK,EAAC,iBAAmB,CAAC,EAC5CQ,UAAU,iBACTN,sBAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AACEM,EAAAA,KAAK,EAAE;AACLC,IAAAA,UAAU,EAAE,MAAM;AAClBC,IAAAA,KAAK,EAAE,MAAM;AACbC,IAAAA,QAAQ,EAAE,MAAM;AAChBC,IAAAA,OAAO,EAAE;AACX;AAAE,CAAA,EAEDL,UACC,CAEA,CACR,CACH;;AClBM,MAAMM,iBAAiB,GAAGA,CAAC;AAAEC,EAAAA;AAAqC,CAAC,KAAK;AAC7E,EAAA,MAAMC,kBAAkB,GAAGC,wBAAS,CAACF,YAA6B,CAAC;EACnE,oBAAOb,sBAAA,CAAAC,aAAA,CAAAD,sBAAA,CAAAI,QAAA,EAAA,IAAA,EAAGU,kBAAqB,CAAC;AAClC,CAAC;;AC0BD,MAAME,2BAA2B,GAAIhC,IAAY,IAAK;EACpD,MAAMiC,QAAQ,GAAGjC,IAAI,CAACkC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;AAE1C,EAAA,IAAID,QAAQ,CAACE,KAAK,CAAC,MAAM,CAAC,EAAE;IAC1B,OAAOH,2BAA2B,CAACC,QAAQ,CAAC;AAC9C,EAAA;AAEA,EAAA,OAAOA,QAAQ;AACjB,CAAC;AAED,MAAMG,cAAc,GAAGpC,IAAI,IAAI;EAC7B,IAAIA,IAAI,KAAK,GAAG,EAAE;AAChB,IAAA,MAAMiC,QAAQ,GAAGD,2BAA2B,CAAChC,IAAI,CAAC;IAClD,MAAMqC,QAAQ,GAAGJ,QAAQ,CAACA,QAAQ,CAACnC,MAAM,GAAG,CAAC,CAAC;IAC9C,IAAIuC,QAAQ,KAAK,GAAG,EAAE;MACpB,OAAOJ,QAAQ,CAACK,SAAS,CAAC,CAAC,EAAEL,QAAQ,CAACnC,MAAM,GAAG,CAAC,CAAC;AACnD,IAAA;AACF,EAAA;AACA,EAAA,OAAOE,IAAI;AACb,CAAC;AAED,MAAMuC,mBAAmB,GAAGA,CAC1BV,YAA2B,EAC3BW,cAAoC,KACjC;EACH,MAAM;IAAEC,SAAS;IAAEC,aAAa;IAAEC,KAAK;IAAEC,WAAW;AAAEC,IAAAA;AAAW,GAAC,GAChEL,cAAc;AAChB,EAAA,OAAOX,YAAY,CAACiB,GAAG,CAACC,CAAC,IAAI;AAC3B,IAAA,MAAMpD,KAAK,GAAG;MAAE,GAAGoD;KAAG;IACtB,IAAIpD,KAAK,CAACQ,SAAS,EAAE;MACnBR,KAAK,CAACS,OAAO,gBACXY,sBAAA,CAAAC,aAAA,CAACtB,KAAK,CAACQ,SAAS,EAAA;AACdsC,QAAAA,SAAS,EAAEA,SAAU;AACrBC,QAAAA,aAAa,EAAEA,aAAa,GAAGA,aAAa,GAAGM,SAAU;AACzDL,QAAAA,KAAK,EAAEA,KAAM;AACbC,QAAAA,WAAW,EAAEA,WAAY;AACzBC,QAAAA,UAAU,EAAEA;AAAW,OACxB,CACF;MACD,OAAOlD,KAAK,CAACQ,SAAS;AACxB,IAAA;IACA,IAAIR,KAAK,CAACS,OAAO,EAAE;MACjBT,KAAK,CAACS,OAAO,gBAAG6C,kBAAY,CAACtD,KAAK,CAACS,OAAO,EAA6B;QACrEqC,SAAS;QACTC,aAAa;QACbC,KAAK;QACLC,WAAW;AACXC,QAAAA;AACF,OAAC,CAAC;AACJ,IAAA;IACA,IAAIlD,KAAK,CAACM,QAAQ,EAAE;MAClBN,KAAK,CAACM,QAAQ,GAAGsC,mBAAmB,CAAC5C,KAAK,CAACM,QAAQ,EAAEuC,cAAc,CAAC;AACtE,IAAA;AACA,IAAA,OAAO7C,KAAK;AACd,EAAA,CAAC,CAAC;AACJ,CAAC;AAkBD,MAAMuD,WAAW,GAAGA,CAAC;EACnBR,aAAa;EACbC,KAAK;EACLQ,OAAO;EACPC,SAAS;EACTP,UAAU;EACVQ,UAAU;EACVC,gBAAgB;EAChBV,WAAW;EACXW,iBAAiB;EACjBd,SAAS;EACTe,MAAM;EACNC,iBAAiB;EACjBC,SAAS;EACT5C,UAAU;EACVQ,UAAU;EACVqC,UAAU;EACVC,UAAU;AACVC,EAAAA,yBAAyB,GAAG;AACiB,CAAC,KAAK;AACnD,EAAA,MAAMC,QAAQ,GAAGC,0BAAW,EAAE;;AAE9B;AACA;AACA,EAAA,MAAMC,UAAU,GAAGC,wBAAa,EAAE;;AAElC;AACA,EAAA,MAAMC,WAAW,GAAG9B,cAAc,CAAC0B,QAAQ,CAACK,QAAQ,CAAC;;AAErD;AACA,EAAA,MAAMtC,YAAY,GAAGU,mBAAmB,CAACiB,MAAM,CAACY,YAAY,EAAE;IAC5D3B,SAAS;IACTC,aAAa;IACbC,KAAK;IACLC,WAAW;AACXC,IAAAA;AACF,GAAC,CAAC;;AAEF;AACA,EAAA,MAAMrD,kBAAkB,GAAG6E,0BAAW,CACpCxC,YAAY,EACZiC,QACF,CAAC;EACD,MAAMQ,aAAa,GAAG9E,kBAAkB,IAAIA,kBAAkB,CAACM,MAAM,GAAG,CAAC;;AAEzE;AACA,EAAA,IAAIwE,aAAa,EAAE;IACjB/E,iBAAiB,CAACC,kBAAkB,CAAC;AACvC,EAAA;AAEA,EAAA,MAAM+E,WAA0D,GAC9DD,aAAa,GAAG9E,kBAAkB,CAACgF,GAAG,EAAE,IAAIxB,SAAS,GAAGA,SAAS;EAEnE,MAAMyB,kBAAkB,GAAGF,WAAW,GAClCA,WAAW,CAAC5E,KAAK,CAAC+E,YAAY,GAC9B1B,SAAS;AAEb,EAAA,MAAM2B,OAAO,GAAGC,iBAAW,CAAC,MAAM;AAChC;IACA,IAAIC,UAAU,GAAG,EAAE;IACnB,IAAIN,WAAW,IAAIA,WAAW,CAACJ,QAAQ,KAAKI,WAAW,CAACO,YAAY,EAAE;MAAA,IAAAC,WAAA,EAAAC,gBAAA;MACpE,MAAM;QAAErF,KAAK;QAAEwE,QAAQ;AAAEc,QAAAA;AAAO,OAAC,GAAGV,WAAW;AAE/C,MAAA,IAAA,CAAAQ,WAAA,GAAIpF,KAAK,CAACK,IAAI,MAAA,IAAA,IAAA+E,WAAA,KAAA,MAAA,IAAVA,WAAA,CAAYG,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC7B;AACAL,QAAAA,UAAU,GAAGV,QAAQ;MACvB,CAAC,MAAM,IAAI,OAAOxE,KAAK,CAACwF,cAAc,KAAK,QAAQ,EAAE;AACnD;QACAN,UAAU,GAAGV,QAAQ,CAClBiB,KAAK,CAAC,GAAG,CAAC,CACVC,MAAM,CAAC,CAAC,EAAE1F,KAAK,CAACwF,cAAc,GAAG,CAAC,CAAC,CACnCG,IAAI,CAAC,GAAG,CAAC;MACd,CAAC,MAAM,IACL,OAAO3F,KAAK,CAAC4F,SAAS,KAAK,QAAQ,IAAA,CAAAP,gBAAA,GACnCrF,KAAK,CAAC4F,SAAS,MAAA,IAAA,IAAAP,gBAAA,eAAfA,gBAAA,CAAiBC,MAAM,EACvB;AACA,QAAA,MAAMO,eAAyB,GAAG7F,KAAK,CAAC4F,SAAS,CAACN,MAAM;QACxD,MAAMQ,WAAW,GAAGR,MAAM;QAE1B,MAAMS,QAAQ,GAAG,IAAIC,MAAM,CACzBC,MAAM,CAACC,IAAI,CAACJ,WAAW,CAAC,CACrB3C,GAAG,CAACgD,CAAC,IAAI,CAAA,CAAA,EAAIA,CAAC,CAAA,CAAE,CAAC,CACjBR,IAAI,CAAC,GAAG,CAAC,EACZ,GACF,CAAC;AAEDT,QAAAA,UAAU,GAAGV,QAAQ,CAClBjC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAClBA,OAAO,CAACwD,QAAQ,EAAEK,OAAO,IAAI;UAC5B,MAAMC,KAAK,GAAGD,OAAO,CAAC7D,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;AACtC,UAAA,IAAIsD,eAAe,CAACN,QAAQ,CAACc,KAAK,CAAC,EACjC,OAAOP,WAAW,CAACO,KAAK,CAAC,IAAI,EAAE,CAAC,KAC7B,OAAO,EAAE;AAChB,QAAA,CAAC,CAAC,CACD9D,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACvB,MAAA,CAAC,MAAM;AAAA,QAAA,IAAA+D,eAAA;AACL;AACApB,QAAAA,UAAU,GAAA,CAAAoB,eAAA,GAAItG,KAAK,CAACI,QAAQ,MAAA,IAAA,IAAAkG,eAAA,KAAA,MAAA,GAAA,MAAA,GAAfA,eAAA,CACTb,KAAK,CAAC,GAAG,CAAC,CACXc,MAAM,CAACJ,CAAC,IAAI,CAACA,CAAC,CAACK,UAAU,CAAC,GAAG,CAAC,CAAC,CAC/Bb,IAAI,CAAC,GAAG,CAAC;AACd,MAAA;AACF,IAAA;AAEA7B,IAAAA,iBAAiB,CACfoB,UAAU,IAAIX,WAAW,EACzBJ,QAAQ,EACRS,WAAW,EACXX,UAAU,EACVF,SAAS,EACTF,MAAM,EACNQ,UACF,CAAC;AACD;EACF,CAAC,EAAE,CACDP,iBAAiB;AACjB;EACAG,UAAU,EACVE,QAAQ,EACRN,MAAM;AACN;AACAU,EAAAA,WAAW,CACZ,CAAC;AAEF,EAAA,IAAI,OAAOkC,MAAM,IAAI,WAAW,EAAEzB,OAAO,EAAE;AAE3C0B,EAAAA,eAAS,CAAC,MAAM;AACd1B,IAAAA,OAAO,EAAE;AACX,EAAA,CAAC,EAAE,CAACb,QAAQ,EAAEa,OAAO,CAAC,CAAC;;AAEvB;EACA,IAAIb,QAAQ,CAACK,QAAQ,CAACrE,MAAM,GAAGoE,WAAW,CAACpE,MAAM,EAAE;AACjD,IAAA,oBACEkB,sBAAA,CAAAC,aAAA,CAACP,QAAQ,EAAA;MACPC,IAAI,EAAEkD,yBAAyB,IAAI,GAAI;MACvCjD,EAAE,EAAE,CAAA,EAAGsD,WAAW,CAAA,EAAGJ,QAAQ,CAACwC,MAAM,CAAA,EAAGxC,QAAQ,CAACyC,IAAI,CAAA;AAAG,KACxD,CAAC;AAEN,EAAA;;AAEA;EACA,IAAIjC,aAAa,IAAI,EAAE,CAACzB,UAAU,IAAI4B,kBAAkB,CAAC,EAAE;AACzD,IAAA,IAAI+B,0BAAc,CAAC7C,UAAU,EAAEc,kBAAkB,CAAC,EAChD,oBAAOzD,sBAAA,CAAAC,aAAA,CAACW,iBAAiB,EAAA;AAACC,MAAAA,YAAY,EAAEA;AAAa,KAAE,CAAC;AAC5D,EAAA;;AAEA;AACA;AACA,EAAA,IAAIuB,SAAS,IAAI,CAACC,UAAU,IAAIC,gBAAgB,EAAE;IAChD,MAAMmD,gBAAgB,GAAGnD,gBAAgB;AACzC,IAAA,oBAAOtC,sBAAA,CAAAC,aAAA,CAACwF,gBAAgB,MAAE,CAAC;AAC7B,EAAA;;AAEA;EACA,IAAI/D,aAAa,IAAI,EAAE,CAACG,UAAU,IAAI4B,kBAAkB,CAAC,EAAE;AACzD,IAAA,MAAMiC,gBAAgB,GAAGlD,MAAM,CAACmD,mBAAmB,CAACC,IAAI,CACtDC,IAAI,IAAIA,IAAI,CAACC,aAAa,KAAKpE,aACjC,CAAC;IAED,IAAIgE,gBAAgB,IAAI,EAAEA,gBAAgB,CAAChC,YAAY,IAAI,CAAC7B,UAAU,CAAC,EAAE;AACvE,MAAA,IAAI2D,0BAAc,CAAC7C,UAAU,EAAE+C,gBAAgB,CAAChC,YAAY,CAAC,EAC3D,oBACE1D,sBAAA,CAAAC,aAAA,CAACyF,gBAAgB,CAACvG,SAAS,EAAA;AACzBsC,QAAAA,SAAS,EAAEA,SAAU;AACrBC,QAAAA,aAAa,EAAEA,aAAc;AAC7BC,QAAAA,KAAK,EAAEA,KAAM;AACbC,QAAAA,WAAW,EAAEA,WAAY;AACzBC,QAAAA,UAAU,EAAEA;AAAW,OACxB,CAAC;AAER,IAAA;AACF,EAAA;AAEA,EAAA,MAAMkE,iBAAiB,GAAGxD,iBAAiB,GAAGA,iBAAiB,GAAGlC,QAAQ;EAC1E,IAAIgC,UAAU,IAAIF,OAAO,EAAE;IACzB6D,OAAO,CAACC,IAAI,CACV,CAAA,qDAAA,EAAwDnG,UAAU,gBAAgBuC,UAAU,CAAA,UAAA,EAAaF,OAAO,CAAA,CAClH,CAAC;AAED,IAAA,oBACEnC,sBAAA,CAAAC,aAAA,CAACE,MAAM,EAAA;AAACR,MAAAA,IAAI,EAAEG;AAAW,KAAA,eACvBE,sBAAA,CAAAC,aAAA,CAAC8F,iBAAiB,EAAA;AAACjG,MAAAA,UAAU,EAAEA,UAAW;AAACQ,MAAAA,UAAU,EAAEA;AAAW,KAAE,CAC9D,CAAC;AAEb,EAAA;AAEA,EAAA,OAAO,IAAI;AACb,CAAC;AACD,MAAM4F,uBAAuB,GAAGC,uBAAc,CAC5CC,uCAA6B,EAC7BC,0BAAgB,EAChBC,4BAAkB,EAClBC,0BAAgB,EAChBC,4BAAkB,EAClBC,qCAAyB,EACzBC,2BAAiB,EACjBC,8BAAoB,EACpBC,2BAAiB,EACjBC,+BAAqB,EACrBC,iCAAuB,EACvBC,4BAAgB,EAChB,CACErF,aAAa,EACbC,KAAK,EACLQ,OAAO,EACPE,UAAU,EACVD,SAAS,EACTP,UAAU,EACVD,WAAW,EACXH,SAAS,EACTiB,SAAS,EACT5C,UAAU,EACVQ,UAAU,EACVqC,UAAU,MACN;EACJjB,aAAa;EACbC,KAAK;EACLQ,OAAO;EACPE,UAAU;EACVD,SAAS;EACTP,UAAU;EACVD,WAAW;EACXH,SAAS;EACTiB,SAAS;EACT5C,UAAU;EACVQ,UAAU;AACVqC,EAAAA;AACF,CAAC,CACH,CAAC;AAED,MAAMqE,kBAAkB,GAAG;AACzBvE,qBAAAA;AACF,CAAC;AAED,oBAAewE,kBAAO,CACpBf,uBAAuB,EACvBc,kBACF,CAAC,CAACE,SAAI,CAAChF,WAAkB,CAAC,CAAC;;;;;;;;;"}
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var reactCookie = require('react-cookie');
5
+ var reactRedux = require('react-redux');
6
+ var ContensisDeliveryApi = require('./ContensisDeliveryApi-lcZ45Kxx.js');
7
+ var CookieHelper_class = require('./CookieHelper.class-Det3qfdU.js');
8
+
9
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
+
11
+ var React__default = /*#__PURE__*/_interopDefault(React);
12
+
13
+ const SSRContext = /*#__PURE__*/React.createContext(null);
14
+
15
+ /**
16
+ * SSRContextProvider allows us to hold and access request-scoped references
17
+ * throughout the component tree
18
+ *
19
+ * adding this in client side allows consumers to write universal code and use
20
+ * the same helpers and request-scoped refs for api, cookies and redux dispatcher
21
+ * as in SSR */
22
+ const SSRContextProvider = ({
23
+ accessMethod,
24
+ children,
25
+ request,
26
+ response
27
+ }) => {
28
+ // In SSR pass references to things in backing sagas
29
+ // we cannot access in a global scope
30
+ const dispatch = reactRedux.useDispatch();
31
+ const cookies = new CookieHelper_class.CookieHelper(...reactCookie.useCookies());
32
+ const api = ContensisDeliveryApi.cachedSearchWithContext({
33
+ cookies,
34
+ dispatch,
35
+ request,
36
+ response
37
+ });
38
+ const [context] = React.useState({
39
+ accessMethod,
40
+ api,
41
+ cookies,
42
+ dispatch,
43
+ request,
44
+ response
45
+ });
46
+ return /*#__PURE__*/React__default.default.createElement(SSRContext.Provider, {
47
+ value: {
48
+ ...context
49
+ }
50
+ }, children);
51
+ };
52
+
53
+ /**
54
+ * Server side usage provides access to request-scoped references throughout the component tree
55
+ *
56
+ * Client side usage allows consumers to write universal code, using the same
57
+ * helpers and request-scoped refs for api, cookies and redux dispatcher as in SSR
58
+ * @returns SSRContextType
59
+ */
60
+ const useSSRContext = () => React.useContext(SSRContext);
61
+ const useDeliveryApi = () => {
62
+ const {
63
+ api
64
+ } = useSSRContext();
65
+ return api;
66
+ };
67
+
68
+ exports.SSRContextProvider = SSRContextProvider;
69
+ exports.useDeliveryApi = useDeliveryApi;
70
+ exports.useSSRContext = useSSRContext;
71
+ //# sourceMappingURL=SSRContext-ciyKagks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SSRContext-ciyKagks.js","sources":["../src/util/SSRContext.tsx"],"sourcesContent":["import { Request, Response } from 'express';\nimport React, {\n PropsWithChildren,\n createContext,\n useContext,\n useState,\n} from 'react';\nimport { useCookies } from 'react-cookie';\nimport { useDispatch } from 'react-redux';\nimport {\n SSRAccessMethod,\n SSRContext as SSRContextType,\n} from '~/models';\nimport { cachedSearchWithContext } from '~/util/CachedDeliveryApi';\nimport { CookieHelper } from '~/user/util/CookieHelper.class';\n\nconst SSRContext = createContext<SSRContextType | null>(null);\n\n/**\n * SSRContextProvider allows us to hold and access request-scoped references\n * throughout the component tree\n *\n * adding this in client side allows consumers to write universal code and use\n * the same helpers and request-scoped refs for api, cookies and redux dispatcher\n * as in SSR */\nexport const SSRContextProvider = ({\n accessMethod,\n children,\n request,\n response,\n}: PropsWithChildren<{\n accessMethod?: SSRAccessMethod;\n request?: Request;\n response?: Response;\n}>) => {\n // In SSR pass references to things in backing sagas\n // we cannot access in a global scope\n const dispatch = useDispatch();\n const cookies = new CookieHelper(...useCookies());\n const api = cachedSearchWithContext({ cookies, dispatch, request, response });\n\n const [context] = useState<SSRContextType>({\n accessMethod,\n api,\n cookies,\n dispatch,\n request,\n response,\n });\n\n return (\n <SSRContext.Provider value={{ ...context }}>{children}</SSRContext.Provider>\n );\n};\n\n/**\n * Server side usage provides access to request-scoped references throughout the component tree\n *\n * Client side usage allows consumers to write universal code, using the same\n * helpers and request-scoped refs for api, cookies and redux dispatcher as in SSR\n * @returns SSRContextType\n */\nexport const useSSRContext = () => useContext(SSRContext) as SSRContextType;\n\nexport const useDeliveryApi = () => {\n const { api } = useSSRContext();\n return api;\n};\n"],"names":["SSRContext","createContext","SSRContextProvider","accessMethod","children","request","response","dispatch","useDispatch","cookies","CookieHelper","useCookies","api","cachedSearchWithContext","context","useState","React","createElement","Provider","value","useSSRContext","useContext","useDeliveryApi"],"mappings":";;;;;;;;;;;;AAgBA,MAAMA,UAAU,gBAAGC,mBAAa,CAAwB,IAAI,CAAC;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,kBAAkB,GAAGA,CAAC;EACjCC,YAAY;EACZC,QAAQ;EACRC,OAAO;AACPC,EAAAA;AAKD,CAAC,KAAK;AACL;AACA;AACA,EAAA,MAAMC,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,MAAMC,OAAO,GAAG,IAAIC,+BAAY,CAAC,GAAGC,sBAAU,EAAE,CAAC;EACjD,MAAMC,GAAG,GAAGC,4CAAuB,CAAC;IAAEJ,OAAO;IAAEF,QAAQ;IAAEF,OAAO;AAAEC,IAAAA;AAAS,GAAC,CAAC;AAE7E,EAAA,MAAM,CAACQ,OAAO,CAAC,GAAGC,cAAQ,CAAiB;IACzCZ,YAAY;IACZS,GAAG;IACHH,OAAO;IACPF,QAAQ;IACRF,OAAO;AACPC,IAAAA;AACF,GAAC,CAAC;AAEF,EAAA,oBACEU,sBAAA,CAAAC,aAAA,CAACjB,UAAU,CAACkB,QAAQ,EAAA;AAACC,IAAAA,KAAK,EAAE;MAAE,GAAGL;AAAQ;AAAE,GAAA,EAAEV,QAA8B,CAAC;AAEhF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMgB,aAAa,GAAGA,MAAMC,gBAAU,CAACrB,UAAU;AAEjD,MAAMsB,cAAc,GAAGA,MAAM;EAClC,MAAM;AAAEV,IAAAA;GAAK,GAAGQ,aAAa,EAAE;AAC/B,EAAA,OAAOR,GAAG;AACZ;;;;;;"}
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
+
7
+ var React__default = /*#__PURE__*/_interopDefault(React);
8
+
9
+ /* eslint-disable react/display-name */
10
+ const toJS = WrappedComponent => wrappedComponentProps => {
11
+ const KEY = 0;
12
+ const VALUE = 1;
13
+ const propsJS = Object.entries(wrappedComponentProps).reduce((newProps, wrappedComponentProp) => {
14
+ const propKey = wrappedComponentProp[KEY];
15
+ const propValue = wrappedComponentProp[VALUE];
16
+ newProps[propKey] = propValue && typeof propValue === 'object' && 'toJS' in propValue ? propValue.toJS() : propValue;
17
+ return newProps;
18
+ }, {});
19
+ return /*#__PURE__*/React__default.default.createElement(WrappedComponent, propsJS);
20
+ };
21
+
22
+ exports.toJS = toJS;
23
+ //# sourceMappingURL=ToJs-BsWqWjdm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToJs-BsWqWjdm.js","sources":["../src/util/ToJs.tsx"],"sourcesContent":["/* eslint-disable react/display-name */\nimport React from 'react';\n\nexport const toJS =\n <Props extends { [key: string]: any }>(\n WrappedComponent: React.ComponentType<Props>\n ) =>\n (wrappedComponentProps: Props) => {\n const KEY = 0;\n const VALUE = 1;\n\n const propsJS = Object.entries(wrappedComponentProps).reduce<Props>(\n (newProps: any, wrappedComponentProp) => {\n const propKey = wrappedComponentProp[KEY];\n const propValue = wrappedComponentProp[VALUE];\n newProps[propKey] =\n propValue && typeof propValue === 'object' && 'toJS' in propValue\n ? propValue.toJS()\n : propValue;\n return newProps as Props;\n },\n {} as Props\n );\n\n return <WrappedComponent {...propsJS} />;\n };\n"],"names":["toJS","WrappedComponent","wrappedComponentProps","KEY","VALUE","propsJS","Object","entries","reduce","newProps","wrappedComponentProp","propKey","propValue","React","createElement"],"mappings":";;;;;;;;AAAA;MAGaA,IAAI,GAEbC,gBAA4C,IAE7CC,qBAA4B,IAAK;EAChC,MAAMC,GAAG,GAAG,CAAC;EACb,MAAMC,KAAK,GAAG,CAAC;AAEf,EAAA,MAAMC,OAAO,GAAGC,MAAM,CAACC,OAAO,CAACL,qBAAqB,CAAC,CAACM,MAAM,CAC1D,CAACC,QAAa,EAAEC,oBAAoB,KAAK;AACvC,IAAA,MAAMC,OAAO,GAAGD,oBAAoB,CAACP,GAAG,CAAC;AACzC,IAAA,MAAMS,SAAS,GAAGF,oBAAoB,CAACN,KAAK,CAAC;IAC7CK,QAAQ,CAACE,OAAO,CAAC,GACfC,SAAS,IAAI,OAAOA,SAAS,KAAK,QAAQ,IAAI,MAAM,IAAIA,SAAS,GAC7DA,SAAS,CAACZ,IAAI,EAAE,GAChBY,SAAS;AACf,IAAA,OAAOH,QAAQ;EACjB,CAAC,EACD,EACF,CAAC;AAED,EAAA,oBAAOI,sBAAA,CAAAC,aAAA,CAACb,gBAAgB,EAAKI,OAAU,CAAC;AAC1C;;;;"}