@zengenti/contensis-react-base 3.0.2-beta.3 → 3.0.2-beta.30

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 (153) hide show
  1. package/cjs/{App-5b34574e.js → App-eefb5b8f.js} +161 -444
  2. package/cjs/App-eefb5b8f.js.map +1 -0
  3. package/cjs/{login-840860bc.js → ChangePassword.container-7306be55.js} +305 -191
  4. package/cjs/ChangePassword.container-7306be55.js.map +1 -0
  5. package/cjs/ContensisDeliveryApi-e2b3ce60.js +264 -0
  6. package/cjs/ContensisDeliveryApi-e2b3ce60.js.map +1 -0
  7. package/cjs/CookieConstants-000427db.js +10 -0
  8. package/cjs/CookieConstants-000427db.js.map +1 -0
  9. package/cjs/CookieHelper.class-daeb09dd.js +52 -0
  10. package/cjs/CookieHelper.class-daeb09dd.js.map +1 -0
  11. package/cjs/{RouteLoader-3aa6456e.js → RouteLoader-85bee645.js} +28 -38
  12. package/cjs/RouteLoader-85bee645.js.map +1 -0
  13. package/cjs/{ToJs-a9a8522b.js → ToJs-29de3c36.js} +3 -4
  14. package/cjs/ToJs-29de3c36.js.map +1 -0
  15. package/cjs/client.js +26 -29
  16. package/cjs/client.js.map +1 -1
  17. package/cjs/contensis-react-base.js +146 -529
  18. package/cjs/contensis-react-base.js.map +1 -1
  19. package/cjs/forms.js +1488 -272
  20. package/cjs/forms.js.map +1 -1
  21. package/cjs/{fromJSLeaveImmer-e74c673c.js → fromJSLeaveImmer-7c363211.js} +1 -4
  22. package/cjs/{fromJSLeaveImmer-e74c673c.js.map → fromJSLeaveImmer-7c363211.js.map} +1 -1
  23. package/cjs/{reducers-3a4f8971.js → reducers-9afb5f89.js} +14 -31
  24. package/cjs/reducers-9afb5f89.js.map +1 -0
  25. package/cjs/redux.js +17 -17
  26. package/cjs/redux.js.map +1 -1
  27. package/cjs/routing.js +8 -7
  28. package/cjs/routing.js.map +1 -1
  29. package/cjs/{sagas-8a20e424.js → sagas-e04b94c1.js} +225 -301
  30. package/cjs/sagas-e04b94c1.js.map +1 -0
  31. package/cjs/search.js +68 -94
  32. package/cjs/search.js.map +1 -1
  33. package/cjs/{selectors-656da4b7.js → selectors-a6eac513.js} +85 -8
  34. package/cjs/selectors-a6eac513.js.map +1 -0
  35. package/cjs/urls-6fcaf4c6.js.map +1 -1
  36. package/cjs/user.js +35 -169
  37. package/cjs/user.js.map +1 -1
  38. package/cjs/util.js +49 -53
  39. package/cjs/util.js.map +1 -1
  40. package/cjs/{version-78dfc3bd.js → version-9edb5540.js} +50 -159
  41. package/cjs/version-9edb5540.js.map +1 -0
  42. package/cjs/version-d3b5fbde.js +98 -0
  43. package/cjs/version-d3b5fbde.js.map +1 -0
  44. package/esm/{App-707730d3.js → App-2db3d689.js} +145 -427
  45. package/esm/App-2db3d689.js.map +1 -0
  46. package/esm/{login-57395c9c.js → ChangePassword.container-54b4011d.js} +287 -184
  47. package/esm/ChangePassword.container-54b4011d.js.map +1 -0
  48. package/esm/ContensisDeliveryApi-50b8fd7c.js +258 -0
  49. package/esm/ContensisDeliveryApi-50b8fd7c.js.map +1 -0
  50. package/esm/CookieConstants-3d3b6531.js +6 -0
  51. package/esm/CookieConstants-3d3b6531.js.map +1 -0
  52. package/esm/CookieHelper.class-4d6ee27b.js +49 -0
  53. package/esm/CookieHelper.class-4d6ee27b.js.map +1 -0
  54. package/esm/{RouteLoader-5171c63f.js → RouteLoader-3e77f6a4.js} +27 -37
  55. package/esm/RouteLoader-3e77f6a4.js.map +1 -0
  56. package/esm/{ToJs-4e02a04d.js → ToJs-e533a70a.js} +3 -4
  57. package/esm/ToJs-e533a70a.js.map +1 -0
  58. package/esm/client.js +21 -24
  59. package/esm/client.js.map +1 -1
  60. package/esm/contensis-react-base.js +140 -524
  61. package/esm/contensis-react-base.js.map +1 -1
  62. package/esm/forms.js +1490 -274
  63. package/esm/forms.js.map +1 -1
  64. package/esm/{fromJSLeaveImmer-0114ffcf.js → fromJSLeaveImmer-e2dacd63.js} +1 -4
  65. package/esm/{fromJSLeaveImmer-0114ffcf.js.map → fromJSLeaveImmer-e2dacd63.js.map} +1 -1
  66. package/esm/{reducers-8e5d6232.js → reducers-3d5c37d1.js} +14 -31
  67. package/esm/reducers-3d5c37d1.js.map +1 -0
  68. package/esm/redux.js +9 -8
  69. package/esm/redux.js.map +1 -1
  70. package/esm/routing.js +5 -4
  71. package/esm/routing.js.map +1 -1
  72. package/esm/{sagas-e576b6f6.js → sagas-933a8fc8.js} +177 -254
  73. package/esm/sagas-933a8fc8.js.map +1 -0
  74. package/esm/search.js +69 -95
  75. package/esm/search.js.map +1 -1
  76. package/esm/{selectors-a5e5835b.js → selectors-5061d7c8.js} +70 -8
  77. package/esm/selectors-5061d7c8.js.map +1 -0
  78. package/esm/urls-eac9a747.js.map +1 -1
  79. package/esm/user.js +23 -161
  80. package/esm/user.js.map +1 -1
  81. package/esm/util.js +44 -53
  82. package/esm/util.js.map +1 -1
  83. package/esm/{version-e3a5ec66.js → version-1ef42ad1.js} +37 -142
  84. package/esm/version-1ef42ad1.js.map +1 -0
  85. package/esm/version-7550d14d.js +87 -0
  86. package/esm/version-7550d14d.js.map +1 -0
  87. package/models/client/client.d.ts +1 -1
  88. package/models/config.d.ts +4 -4
  89. package/models/redux/appstate.d.ts +2 -1
  90. package/models/routing/redux/actions.d.ts +10 -6
  91. package/models/routing/redux/selectors.d.ts +5 -4
  92. package/models/routing/redux/types.d.ts +0 -1
  93. package/models/routing/routes.d.ts +20 -17
  94. package/models/search/models/Queries.d.ts +9 -10
  95. package/models/search/models/Search.d.ts +26 -24
  96. package/models/search/models/SearchActions.d.ts +36 -36
  97. package/models/search/models/SearchState.d.ts +11 -11
  98. package/models/search/models/SearchUtil.d.ts +1 -1
  99. package/models/search/models/WithSearch.d.ts +1 -1
  100. package/models/search/redux/actions.d.ts +7 -7
  101. package/models/search/redux/selectors.d.ts +27 -27
  102. package/models/search/redux/util.d.ts +2 -2
  103. package/models/search/search/expressions.d.ts +4 -4
  104. package/models/search/search/util.d.ts +2 -2
  105. package/models/search/transformations/state-to-queryparams.mapper.d.ts +1 -1
  106. package/models/server/features/linkdepth-api/LinkDepthSearchService.d.ts +1 -1
  107. package/models/server/features/linkdepth-api/search.d.ts +3 -3
  108. package/models/server/internalServer.d.ts +7 -5
  109. package/models/server/util/bundles.d.ts +2 -2
  110. package/models/server/util/handleExceptions.d.ts +1 -1
  111. package/models/testImmer/redux/reducer.d.ts +1 -1
  112. package/models/user/components/Login.d.ts +2 -3
  113. package/models/user/containers/ChangePassword.container.d.ts +2 -2
  114. package/models/user/containers/ForgotPassword.container.d.ts +2 -2
  115. package/models/user/containers/Login.container.d.ts +2 -2
  116. package/models/user/containers/Registration.container.d.ts +2 -2
  117. package/models/user/hocs/withLogin.d.ts +5 -11
  118. package/models/user/hocs/withRegistration.d.ts +2 -8
  119. package/models/user/redux/actions.d.ts +2 -2
  120. package/models/user/redux/sagas/login.d.ts +9 -8
  121. package/models/user/redux/selectors.d.ts +4 -4
  122. package/models/user/util/CookieConstants.d.ts +7 -0
  123. package/models/user/util/CookieHelper.class.d.ts +15 -3
  124. package/models/user/util/LoginHelper.class.d.ts +27 -23
  125. package/models/util/ContensisDeliveryApi.d.ts +26 -13
  126. package/models/util/ToJs.d.ts +1 -1
  127. package/models/util/index.d.ts +1 -0
  128. package/models/util/json-mapper.d.ts +1 -1
  129. package/package.json +9 -10
  130. package/cjs/App-5b34574e.js.map +0 -1
  131. package/cjs/RouteLoader-3aa6456e.js.map +0 -1
  132. package/cjs/ToJs-a9a8522b.js.map +0 -1
  133. package/cjs/actions-8dc9e8de.js +0 -87
  134. package/cjs/actions-8dc9e8de.js.map +0 -1
  135. package/cjs/login-840860bc.js.map +0 -1
  136. package/cjs/reducers-3a4f8971.js.map +0 -1
  137. package/cjs/sagas-8a20e424.js.map +0 -1
  138. package/cjs/selectors-656da4b7.js.map +0 -1
  139. package/cjs/version-78dfc3bd.js.map +0 -1
  140. package/cjs/version-eba6d09b.js +0 -20
  141. package/cjs/version-eba6d09b.js.map +0 -1
  142. package/esm/App-707730d3.js.map +0 -1
  143. package/esm/RouteLoader-5171c63f.js.map +0 -1
  144. package/esm/ToJs-4e02a04d.js.map +0 -1
  145. package/esm/actions-180948dd.js +0 -72
  146. package/esm/actions-180948dd.js.map +0 -1
  147. package/esm/login-57395c9c.js.map +0 -1
  148. package/esm/reducers-8e5d6232.js.map +0 -1
  149. package/esm/sagas-e576b6f6.js.map +0 -1
  150. package/esm/selectors-a5e5835b.js.map +0 -1
  151. package/esm/version-2485e2fb.js +0 -15
  152. package/esm/version-2485e2fb.js.map +0 -1
  153. package/esm/version-e3a5ec66.js.map +0 -1
@@ -1,12 +1,13 @@
1
1
  import React, { useCallback, useEffect } from 'react';
2
+ import { useCookies } from 'react-cookie';
2
3
  import { connect } from 'react-redux';
3
4
  import { hot } from 'react-hot-loader';
4
5
  import { Route, useLocation, Redirect } from 'react-router-dom';
5
6
  import { matchRoutes, renderRoutes } from 'react-router-config';
6
7
  import { createSelector } from 'reselect';
7
- import { k as selectRouteEntryContentTypeId, a as selectRouteEntry, l as selectRouteIsError, m as selectIsNotFound, n as selectRouteLoading, i as selectMappedEntry, b as selectCurrentProject, o as selectCurrentPath, p as selectRouteStatusCode, r as selectRouteErrorMessage } from './selectors-a5e5835b.js';
8
- import { g as setNavigationPath } from './actions-180948dd.js';
9
- import { a as selectUserIsAuthenticated, b as selectUserGroups, t as toJS, m as matchUserGroup } from './ToJs-4e02a04d.js';
8
+ import { r as selectRouteEntryContentTypeId, a as selectRouteEntry, t as selectRouteIsError, u as selectIsNotFound, v as selectRouteLoading, k as selectMappedEntry, b as selectCurrentProject, w as selectCurrentPath, x as selectRouteStatusCode, y as selectRouteErrorMessage, z as setNavigationPath } from './selectors-5061d7c8.js';
9
+ import { a as selectUserIsAuthenticated, b as selectUserGroups, t as toJS, m as matchUserGroup } from './ToJs-e533a70a.js';
10
+ import { C as CookieHelper } from './CookieHelper.class-4d6ee27b.js';
10
11
 
11
12
  const NotFound = ({
12
13
  statusCode,
@@ -36,27 +37,21 @@ const Status = ({
36
37
 
37
38
  const replaceDoubleSlashRecursive = path => {
38
39
  const nextPath = path.replace(/\/\//, '/');
39
-
40
40
  if (nextPath.match(/\/\//)) {
41
41
  return replaceDoubleSlashRecursive(nextPath);
42
42
  }
43
-
44
43
  return nextPath;
45
44
  };
46
-
47
45
  const getTrimmedPath = path => {
48
46
  if (path !== '/') {
49
47
  const nextPath = replaceDoubleSlashRecursive(path);
50
48
  const lastChar = nextPath[nextPath.length - 1];
51
-
52
49
  if (lastChar === '/') {
53
50
  return nextPath.substring(0, nextPath.length - 1);
54
51
  }
55
52
  }
56
-
57
53
  return path;
58
54
  };
59
-
60
55
  const RouteLoader = ({
61
56
  contentTypeId,
62
57
  entry,
@@ -77,28 +72,25 @@ const RouteLoader = ({
77
72
  withEvents,
78
73
  trailingSlashRedirectCode = 302
79
74
  }) => {
80
- const location = useLocation(); // Always ensure paths are trimmed of trailing slashes so urls are always unique
81
-
82
- const trimmedPath = getTrimmedPath(location.pathname); // Match any Static Routes a developer has defined
75
+ const location = useLocation();
76
+ const cookies = new CookieHelper(...useCookies());
77
+ // Always ensure paths are trimmed of trailing slashes so urls are always unique
78
+ const trimmedPath = getTrimmedPath(location.pathname);
83
79
 
80
+ // Match any Static Routes a developer has defined
84
81
  const matchedStaticRoute = () => matchRoutes(routes.StaticRoutes, location.pathname);
85
-
86
82
  const isStaticRoute = () => matchedStaticRoute().length > 0;
87
-
88
- const staticRoute = isStaticRoute() && matchedStaticRoute()[0];
83
+ const staticRoute = isStaticRoute() ? matchedStaticRoute()[0] : undefined;
89
84
  const routeRequiresLogin = staticRoute && staticRoute.route.requireLogin;
90
85
  const setPath = useCallback(() => {
91
86
  // Use serverPath to control the path we send to siteview node api to resolve a route
92
87
  let serverPath = '';
93
-
94
88
  if (staticRoute && staticRoute.match && staticRoute.match.isExact) {
95
89
  var _route$path, _route$fetchNode;
96
-
97
90
  const {
98
91
  match,
99
92
  route
100
93
  } = staticRoute;
101
-
102
94
  if ((_route$path = route.path) !== null && _route$path !== void 0 && _route$path.includes('*')) {
103
95
  // Send the whole url to api if we have matched route containing wildcard
104
96
  serverPath = match.url;
@@ -115,30 +107,32 @@ const RouteLoader = ({
115
107
  }).replace(/\/$/, '');
116
108
  } else {
117
109
  var _route$path2;
118
-
119
110
  // Send all non-parameterised url parts to api
120
111
  serverPath = (_route$path2 = route.path) === null || _route$path2 === void 0 ? void 0 : _route$path2.split('/').filter(p => !p.startsWith(':')).join('/');
121
112
  }
122
113
  }
123
-
124
- setNavigationPath(serverPath || trimmedPath, location, staticRoute, withEvents, statePath, routes); // eslint-disable-next-line react-hooks/exhaustive-deps
125
- }, [setNavigationPath, // staticRoute,
126
- withEvents, location, routes, // statePath,
114
+ setNavigationPath(serverPath || trimmedPath, location, staticRoute, withEvents, statePath, routes, cookies);
115
+ // eslint-disable-next-line react-hooks/exhaustive-deps
116
+ }, [setNavigationPath,
117
+ // staticRoute,
118
+ withEvents, location, routes,
119
+ // statePath,
127
120
  trimmedPath]);
128
121
  if (typeof window == 'undefined') setPath();
129
122
  useEffect(() => {
130
123
  setPath();
131
- }, [location, setPath]); // Need to redirect when url endswith a /
124
+ }, [location, setPath]);
132
125
 
126
+ // Need to redirect when url endswith a /
133
127
  if (location.pathname.length > trimmedPath.length) {
134
128
  return /*#__PURE__*/React.createElement(Status, {
135
129
  code: trailingSlashRedirectCode
136
130
  }, /*#__PURE__*/React.createElement(Redirect, {
137
131
  to: `${trimmedPath}${location.search}${location.hash}`
138
132
  }));
139
- } // Render any Static Routes a developer has defined
140
-
133
+ }
141
134
 
135
+ // Render any Static Routes a developer has defined
142
136
  if (isStaticRoute() && !(!isLoggedIn && routeRequiresLogin)) {
143
137
  if (matchUserGroup(userGroups, routeRequiresLogin)) return renderRoutes(routes.StaticRoutes, {
144
138
  projectId,
@@ -147,19 +141,18 @@ const RouteLoader = ({
147
141
  mappedEntry,
148
142
  isLoggedIn
149
143
  });
150
- } // Render a supplied Loading component if the route
151
- // is not a static route and is in a loading state
152
-
144
+ }
153
145
 
146
+ // Render a supplied Loading component if the route
147
+ // is not a static route and is in a loading state
154
148
  if (isLoading && !isNotFound && loadingComponent) {
155
149
  const LoadingComponent = loadingComponent;
156
150
  return /*#__PURE__*/React.createElement(LoadingComponent, null);
157
- } // Match any defined Content Type Mappings
158
-
151
+ }
159
152
 
153
+ // Match any defined Content Type Mappings
160
154
  if (contentTypeId && !(!isLoggedIn && routeRequiresLogin)) {
161
155
  const MatchedComponent = routes.ContentTypeMappings.find(item => item.contentTypeID === contentTypeId);
162
-
163
156
  if (MatchedComponent && !(MatchedComponent.requireLogin && !isLoggedIn)) {
164
157
  if (matchUserGroup(userGroups, MatchedComponent.requireLogin)) return /*#__PURE__*/React.createElement(MatchedComponent.component, {
165
158
  projectId: projectId,
@@ -170,10 +163,9 @@ const RouteLoader = ({
170
163
  });
171
164
  }
172
165
  }
173
-
174
166
  const NotFoundComponent = notFoundComponent ? notFoundComponent : NotFound;
175
-
176
167
  if (isNotFound || isError) {
168
+ console.info(`RouteLoader rendering NotFound component: statusCode ${statusCode}, isNotFound ${isNotFound}, isError ${isError}`);
177
169
  return /*#__PURE__*/React.createElement(Status, {
178
170
  code: statusCode
179
171
  }, /*#__PURE__*/React.createElement(NotFoundComponent, {
@@ -181,10 +173,8 @@ const RouteLoader = ({
181
173
  statusText: statusText
182
174
  }));
183
175
  }
184
-
185
176
  return null;
186
177
  };
187
-
188
178
  const mapStateToPropsMemoized = createSelector(selectRouteEntryContentTypeId, selectRouteEntry, selectRouteIsError, selectIsNotFound, selectRouteLoading, selectUserIsAuthenticated, selectMappedEntry, selectCurrentProject, selectCurrentPath, selectRouteStatusCode, selectRouteErrorMessage, selectUserGroups, (contentTypeId, entry, isError, isNotFound, isLoading, isLoggedIn, mappedEntry, projectId, statePath, statusCode, statusText, userGroups) => ({
189
179
  contentTypeId,
190
180
  entry,
@@ -205,4 +195,4 @@ const mapDispatchToProps = {
205
195
  var RouteLoader$1 = hot(module)(connect(mapStateToPropsMemoized, mapDispatchToProps)(toJS(RouteLoader)));
206
196
 
207
197
  export { RouteLoader$1 as R };
208
- //# sourceMappingURL=RouteLoader-5171c63f.js.map
198
+ //# sourceMappingURL=RouteLoader-3e77f6a4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouteLoader-3e77f6a4.js","sources":["../src/routing/components/NotFound.tsx","../src/routing/components/Status.tsx","../src/routing/components/RouteLoader.tsx"],"sourcesContent":["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, { PropsWithChildren } from 'react';\nimport { Route } from 'react-router-dom';\n\nexport const Status = ({\n code,\n children,\n}: PropsWithChildren<{ code: number }>) => {\n return (\n <Route\n render={({ staticContext }) => {\n if (staticContext) staticContext.statusCode = code;\n return children;\n }}\n />\n );\n};\n","import React, { useEffect, useCallback } from 'react';\nimport { useCookies } from 'react-cookie';\nimport { connect } from 'react-redux';\nimport { hot } from 'react-hot-loader';\nimport { Redirect, useLocation } from 'react-router-dom';\nimport { renderRoutes, matchRoutes, RouteConfig } from 'react-router-config';\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 { CookieHelper } from '~/user/util/CookieHelper.class';\n\nimport { Entry } from 'contensis-delivery-api/lib/models';\nimport { AppRootProps, RouteComponentProps, RouteLoaderProps } from '../routes';\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\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 const cookies = new CookieHelper(...useCookies());\n // Always ensure paths are trimmed of trailing slashes so urls are always unique\n const trimmedPath = getTrimmedPath(location.pathname);\n\n // Match any Static Routes a developer has defined\n const matchedStaticRoute = () =>\n matchRoutes(routes.StaticRoutes as RouteConfig[], location.pathname);\n const isStaticRoute = () => matchedStaticRoute().length > 0;\n\n const staticRoute = isStaticRoute() ? matchedStaticRoute()[0] : undefined;\n const routeRequiresLogin = staticRoute && staticRoute.route.requireLogin;\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.match && staticRoute.match.isExact) {\n const { match, route } = staticRoute;\n\n if (route.path?.includes('*')) {\n // Send the whole url to api if we have matched route containing wildcard\n serverPath = match.url;\n } else if (typeof route.fetchNodeLevel === 'number') {\n // Send all url parts to a specified level to api\n serverPath = match.url\n .split('/')\n .splice(0, route.fetchNodeLevel + 1)\n .join('/');\n } else if (route.fetchNode?.params) {\n const fetchNodeParams: string[] = route.fetchNode.params;\n const routeParams: { [key: string]: string } = match.params;\n\n const regexExp = new RegExp(\n Object.keys(routeParams)\n .map(p => `:${p}`)\n .join('|'),\n 'g'\n );\n\n serverPath = match.path\n .replace(/\\?/g, '')\n .replace(regexExp, matched => {\n const param = matched.replace(':', '');\n if (fetchNodeParams.includes(param)) return routeParams[param];\n else return '';\n })\n .replace(/\\/$/, '');\n } else {\n // Send all non-parameterised url parts to api\n serverPath = (route.path 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 cookies\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 <Status code={trailingSlashRedirectCode}>\n <Redirect to={`${trimmedPath}${location.search}${location.hash}`} />\n </Status>\n );\n }\n\n // Render any Static Routes a developer has defined\n if (isStaticRoute() && !(!isLoggedIn && routeRequiresLogin)) {\n if (matchUserGroup(userGroups, routeRequiresLogin))\n return renderRoutes(\n routes.StaticRoutes as RouteConfig[],\n {\n projectId,\n contentTypeId,\n entry,\n mappedEntry,\n isLoggedIn,\n } as RouteComponentProps\n );\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 hot(module)(\n connect(mapStateToPropsMemoized, mapDispatchToProps)(toJS(RouteLoader as any))\n) as unknown as (props: AppRootProps & RouteLoaderProps) => JSX.Element;\n"],"names":["NotFound","statusCode","statusText","React","createElement","Fragment","style","background","color","fontSize","padding","Status","code","children","Route","render","staticContext","replaceDoubleSlashRecursive","path","nextPath","replace","match","getTrimmedPath","lastChar","length","substring","RouteLoader","contentTypeId","entry","isError","isLoading","isLoggedIn","isNotFound","loadingComponent","mappedEntry","notFoundComponent","projectId","routes","setNavigationPath","statePath","userGroups","withEvents","trailingSlashRedirectCode","location","useLocation","cookies","CookieHelper","useCookies","trimmedPath","pathname","matchedStaticRoute","matchRoutes","StaticRoutes","isStaticRoute","staticRoute","undefined","routeRequiresLogin","route","requireLogin","setPath","useCallback","serverPath","isExact","_route$path","_route$fetchNode","includes","url","fetchNodeLevel","split","splice","join","fetchNode","params","fetchNodeParams","routeParams","regexExp","RegExp","Object","keys","map","p","matched","param","_route$path2","filter","startsWith","window","useEffect","Redirect","to","search","hash","matchUserGroup","renderRoutes","LoadingComponent","MatchedComponent","ContentTypeMappings","find","item","contentTypeID","component","NotFoundComponent","console","info","mapStateToPropsMemoized","createSelector","selectRouteEntryContentTypeId","selectRouteEntry","selectRouteIsError","selectIsNotFound","selectRouteLoading","selectUserIsAuthenticated","selectMappedEntry","selectCurrentProject","selectCurrentPath","selectRouteStatusCode","selectRouteErrorMessage","selectUserGroups","mapDispatchToProps","hot","module","connect","toJS"],"mappings":"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"}
@@ -1,16 +1,16 @@
1
- import { g as getImmutableOrJS } from './selectors-a5e5835b.js';
1
+ import { g as getImmutableOrJS } from './selectors-5061d7c8.js';
2
2
  import React from 'react';
3
3
 
4
4
  const selectUserIsLoading = state => getImmutableOrJS(state, ['user', 'authenticationState', 'isLoading']);
5
5
  const selectUserIsAuthenticated = state => getImmutableOrJS(state, ['user', 'authenticationState', 'isAuthenticated']);
6
6
  const selectUserIsAuthenticationError = state => getImmutableOrJS(state, ['user', 'authenticationState', 'isAuthenticationError']);
7
7
  const selectUserIsError = state => getImmutableOrJS(state, ['user', 'authenticationState', 'isError']);
8
+
8
9
  /**
9
10
  * DEPRECATED 12/2021 - use selectUserErrorMessage instead
10
11
  * @param state AppState
11
12
  * @returns string
12
13
  */
13
-
14
14
  const selectUserAuthenticationErrorMessage = state => getImmutableOrJS(state, ['user', 'authenticationState', 'errorMessage']);
15
15
  const selectUserErrorMessage = state => getImmutableOrJS(state, ['user', 'authenticationState', 'errorMessage']);
16
16
  const selectClientCredentials = (state, returnType) => getImmutableOrJS(state, ['user', 'authenticationState', 'clientCredentials'], {}, returnType);
@@ -73,7 +73,6 @@ const matchUserGroup = (userGroups = [], requiredGroups = []) => {
73
73
  if (requiredGroup.id === userGroup.id) {
74
74
  return true;
75
75
  }
76
-
77
76
  if (requiredGroup.name === userGroup.name) {
78
77
  return true;
79
78
  }
@@ -96,4 +95,4 @@ const toJS = WrappedComponent => wrappedComponentProps => {
96
95
  };
97
96
 
98
97
  export { selectUserIsAuthenticated as a, selectUserGroups as b, selectUserErrorMessage as c, selectUserIsAuthenticationError as d, selectUserIsError as e, selectUserIsLoading as f, selectUser as g, selectUserRegistrationError as h, selectUserRegistrationIsLoading as i, selectUserRegistrationIsSuccess as j, selectUserRegistration as k, selectPasswordResetRequestSending as l, matchUserGroup as m, selectPasswordResetRequestSent as n, selectPasswordResetRequestError as o, selectResetPasswordSending as p, selectResetPasswordSent as q, selectResetPasswordError as r, selectClientCredentials as s, toJS as t, selectChangePasswordSending as u, selectChangePasswordSent as v, selectUserGuid as w, selectChangePasswordError as x, selectors as y };
99
- //# sourceMappingURL=ToJs-4e02a04d.js.map
98
+ //# sourceMappingURL=ToJs-e533a70a.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToJs-e533a70a.js","sources":["../src/user/redux/selectors.ts","../src/user/util/matchGroups.ts","../src/util/ToJs.tsx"],"sourcesContent":["import { StateType } from '~/config';\nimport { AppState } from '~/redux/appstate';\nimport { getImmutableOrJS as getIn } from '~/redux/util';\n\nexport const selectUserIsLoading = (state: AppState) =>\n getIn(state, ['user', 'authenticationState', 'isLoading']);\n\nexport const selectUserIsAuthenticated = (state: AppState) =>\n getIn(state, ['user', 'authenticationState', 'isAuthenticated']);\n\nexport const selectUserIsAuthenticationError = (state: AppState) =>\n getIn(state, ['user', 'authenticationState', 'isAuthenticationError']);\n\nexport const selectUserIsError = (state: AppState) =>\n getIn(state, ['user', 'authenticationState', 'isError']);\n\n/**\n * DEPRECATED 12/2021 - use selectUserErrorMessage instead\n * @param state AppState\n * @returns string\n */\nexport const selectUserAuthenticationErrorMessage = (state: AppState) =>\n getIn(state, ['user', 'authenticationState', 'errorMessage']);\n\nexport const selectUserErrorMessage = (state: AppState) =>\n getIn(state, ['user', 'authenticationState', 'errorMessage']);\n\nexport const selectClientCredentials = (\n state: AppState,\n returnType?: StateType\n) =>\n getIn(\n state,\n ['user', 'authenticationState', 'clientCredentials'],\n {},\n returnType\n );\n\nexport const selectUser = (state: AppState, returnType?: StateType) =>\n getIn(state, 'user', {}, returnType);\n\nexport const selectUserIsZengentiStaff = (state: AppState) =>\n getIn(state, ['user', 'isZengentiStaff']);\n\nexport const selectUserGuid = (state: AppState) => getIn(state, ['user', 'id']);\n\nexport const selectUsername = (state: AppState) =>\n getIn(state, ['user', 'username']);\n\nexport const selectUserEmail = (state: AppState) =>\n getIn(state, ['user', 'email']);\n\nexport const selectUserGroups = (state: AppState, returnType?: StateType) =>\n getIn(state, ['user', 'groups'], [], returnType);\n\nexport const selectUserSecurityToken = (state: AppState) =>\n getIn(state, [\n 'user',\n 'authenticationState',\n 'clientCredentials',\n 'contensisClassicToken',\n ]);\n\nexport const selectUserRegistration = (\n state: AppState,\n returnType?: StateType\n) => getIn(state, ['user', 'registration'], {}, returnType);\n\nexport const selectUserRegistrationError = (state: AppState) =>\n getIn(state, ['user', 'registration', 'error'], false);\n\nexport const selectUserRegistrationIsLoading = (state: AppState) =>\n getIn(state, ['user', 'registration', 'isLoading'], false);\n\nexport const selectUserRegistrationIsSuccess = (state: AppState) =>\n getIn(state, ['user', 'registration', 'success'], false);\n\nexport const selectPasswordResetRequestSending = (state: AppState) =>\n getIn(state, ['user', 'passwordResetRequest', 'isSending']);\n\nexport const selectPasswordResetRequestSent = (state: AppState) =>\n getIn(state, ['user', 'passwordResetRequest', 'sent']);\n\nexport const selectPasswordResetRequestError = (state: AppState) =>\n getIn(state, ['user', 'passwordResetRequest', 'error']);\n\nexport const selectResetPasswordSending = (state: AppState) =>\n getIn(state, ['user', 'resetPassword', 'isSending']);\n\nexport const selectResetPasswordSent = (state: AppState) =>\n getIn(state, ['user', 'resetPassword', 'sent']);\n\nexport const selectResetPasswordError = (state: AppState) =>\n getIn(state, ['user', 'resetPassword', 'error']);\n\nexport const selectChangePasswordSending = (state: AppState) =>\n getIn(state, ['user', 'changePassword', 'isSending']);\n\nexport const selectChangePasswordSent = (state: AppState) =>\n getIn(state, ['user', 'changePassword', 'sent']);\n\nexport const selectChangePasswordError = (state: AppState) =>\n getIn(state, ['user', 'changePassword', 'error']);\n","import { Group } from 'contensis-management-api/lib/models';\nimport { RequireLogin } from '~/routing/routes';\n\nexport const matchUserGroup = (\n userGroups: Group[] = [],\n requiredGroups: RequireLogin = []\n) => {\n if (\n !Array.isArray(requiredGroups) ||\n (Array.isArray(requiredGroups) && requiredGroups.length === 0)\n )\n return true;\n\n const groupMatch = requiredGroups.some(requiredGroup => {\n return userGroups.some(userGroup => {\n if (requiredGroup.id === userGroup.id) {\n return true;\n }\n if (requiredGroup.name === userGroup.name) {\n return true;\n }\n });\n });\n return groupMatch;\n};\n","/* eslint-disable react/display-name */\n/* eslint-disable @typescript-eslint/naming-convention */\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":["selectUserIsLoading","state","getIn","selectUserIsAuthenticated","selectUserIsAuthenticationError","selectUserIsError","selectUserAuthenticationErrorMessage","selectUserErrorMessage","selectClientCredentials","returnType","selectUser","selectUserIsZengentiStaff","selectUserGuid","selectUsername","selectUserEmail","selectUserGroups","selectUserSecurityToken","selectUserRegistration","selectUserRegistrationError","selectUserRegistrationIsLoading","selectUserRegistrationIsSuccess","selectPasswordResetRequestSending","selectPasswordResetRequestSent","selectPasswordResetRequestError","selectResetPasswordSending","selectResetPasswordSent","selectResetPasswordError","selectChangePasswordSending","selectChangePasswordSent","selectChangePasswordError","matchUserGroup","userGroups","requiredGroups","Array","isArray","length","groupMatch","some","requiredGroup","userGroup","id","name","toJS","WrappedComponent","wrappedComponentProps","KEY","VALUE","propsJS","Object","entries","reduce","newProps","wrappedComponentProp","propKey","propValue","React","createElement"],"mappings":"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"}
package/esm/client.js CHANGED
@@ -7,32 +7,36 @@ import { Router } from 'react-router-dom';
7
7
  import { loadableReady } from '@loadable/component';
8
8
  import { parse } from 'query-string';
9
9
  import { CookiesProvider } from 'react-cookie';
10
- import { s as selectVersionStatus } from './version-2485e2fb.js';
11
- import { c as createStore, s as setVersionStatus } from './version-e3a5ec66.js';
12
- import { d as deliveryApi, b as browserHistory, r as rootSaga, p as pickProject } from './App-707730d3.js';
13
- export { A as ReactApp } from './App-707730d3.js';
14
- import { s as setCurrentProject } from './actions-180948dd.js';
15
- import './selectors-a5e5835b.js';
16
- import 'jsonpath-mapper';
17
- import '@redux-saga/core/effects';
10
+ import { c as createStore, s as selectVersionStatus } from './version-1ef42ad1.js';
11
+ import { s as setVersionStatus } from './version-7550d14d.js';
12
+ import { b as browserHistory, r as rootSaga, p as pickProject } from './App-2db3d689.js';
13
+ export { A as ReactApp } from './App-2db3d689.js';
14
+ import { c as setCurrentProject } from './selectors-5061d7c8.js';
15
+ import { d as deliveryApi } from './ContensisDeliveryApi-50b8fd7c.js';
18
16
  import 'redux';
19
17
  import 'redux-thunk';
20
18
  import 'redux-saga';
21
19
  import 'redux-injectors';
22
20
  import 'immer';
23
21
  import 'deepmerge';
24
- import './reducers-8e5d6232.js';
22
+ import './reducers-3d5c37d1.js';
23
+ import '@redux-saga/core/effects';
25
24
  import 'history';
26
25
  import 'loglevel';
27
- import 'contensis-delivery-api';
28
- import './login-57395c9c.js';
29
- import './ToJs-4e02a04d.js';
30
26
  import 'await-to-js';
31
- import 'js-cookie';
32
- import './RouteLoader-5171c63f.js';
27
+ import './ChangePassword.container-54b4011d.js';
28
+ import './ToJs-e533a70a.js';
29
+ import 'jsonpath-mapper';
30
+ import './CookieConstants-3d3b6531.js';
31
+ import './CookieHelper.class-4d6ee27b.js';
32
+ import 'contensis-delivery-api';
33
+ import './RouteLoader-3e77f6a4.js';
33
34
  import 'react-router-config';
34
35
  import 'reselect';
35
36
 
37
+ // Fix TS2769 error No overload matches this call
38
+ const Container = AppContainer; // as typeof AppContainer;
39
+
36
40
  class ClientApp {
37
41
  constructor(ReactApp, config) {
38
42
  const documentRoot = document.getElementById('root');
@@ -43,9 +47,8 @@ class ClientApp {
43
47
  withSagas,
44
48
  withEvents
45
49
  } = config;
46
-
47
50
  const GetClientJSX = store => {
48
- const ClientJsx = /*#__PURE__*/React.createElement(AppContainer, null, /*#__PURE__*/React.createElement(CookiesProvider, null, /*#__PURE__*/React.createElement(Provider, {
51
+ const ClientJsx = /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(CookiesProvider, null, /*#__PURE__*/React.createElement(Provider, {
49
52
  store: store
50
53
  }, /*#__PURE__*/React.createElement(Router, {
51
54
  history: browserHistory
@@ -55,12 +58,11 @@ class ClientApp {
55
58
  })))));
56
59
  return ClientJsx;
57
60
  };
58
-
59
61
  const isProduction = !(process.env.NODE_ENV !== 'production');
62
+
60
63
  /**
61
64
  * Webpack HMR Setup.
62
65
  */
63
-
64
66
  const HMRRenderer = Component => {
65
67
  if (isProduction) loadableReady(() => {
66
68
  hydrate(Component, documentRoot);
@@ -68,7 +70,6 @@ class ClientApp {
68
70
  namespace: 'modern'
69
71
  });else render(Component, documentRoot);
70
72
  };
71
-
72
73
  const hmr = store => {
73
74
  // webpack Hot Module Replacement API
74
75
  if (module.hot) {
@@ -78,20 +79,17 @@ class ClientApp {
78
79
  });
79
80
  }
80
81
  };
81
-
82
82
  const qs = parse(window.location.search);
83
83
  const versionStatus = deliveryApi.getClientSideVersionStatus();
84
-
85
84
  if (window.isDynamic || window.REDUX_DATA || process.env.NODE_ENV !== 'production') {
86
85
  createStore(withReducers, window.REDUX_DATA, browserHistory, stateType).then(store => {
87
86
  const state = store.getState();
88
87
  const ssrVersionStatus = selectVersionStatus(state);
89
88
  if (!ssrVersionStatus) store.dispatch(setVersionStatus(versionStatus));
90
- /* eslint-disable no-console */
91
89
 
90
+ /* eslint-disable no-console */
92
91
  console.log('Hydrating from inline Redux');
93
92
  /* eslint-enable no-console */
94
-
95
93
  store.runSaga(rootSaga(withSagas));
96
94
  store.dispatch(setCurrentProject(pickProject(window.location.hostname, qs), [], window.location.hostname));
97
95
  delete window.REDUX_DATA;
@@ -111,7 +109,6 @@ class ClientApp {
111
109
  });
112
110
  }
113
111
  }
114
-
115
112
  }
116
113
 
117
114
  export { ClientApp as default };
package/esm/client.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sources":["../src/client/client.tsx"],"sourcesContent":["import 'isomorphic-fetch';\nimport React from 'react';\nimport { render, hydrate } from 'react-dom';\nimport { AppContainer } from 'react-hot-loader';\nimport { Provider as ReduxProvider } from 'react-redux';\nimport { Router } from 'react-router-dom';\nimport { loadableReady } from '@loadable/component';\nimport { parse } from 'query-string';\nimport { CookiesProvider } from 'react-cookie';\n\nimport { selectVersionStatus } from '~/redux/selectors/version';\nimport { setVersionStatus } from '~/redux/actions/version';\nimport rootSaga from '~/redux/sagas';\nimport { browserHistory as history } from '~/redux/store/history';\nimport createStore from '~/redux/store/store';\n\nimport { setCurrentProject } from '~/routing/redux/actions';\n\nimport { deliveryApi } from '~/util/ContensisDeliveryApi';\nimport pickProject from '~/util/pickProject';\n\nimport { AppConfig } from '~/config';\n\ndeclare let window: typeof globalThis & {\n isDynamic;\n REDUX_DATA;\n};\n\ntype ReactAppProps = { routes: any; withEvents: any };\n\nclass ClientApp {\n constructor(ReactApp: React.ComponentType<ReactAppProps>, config: AppConfig) {\n const documentRoot = document.getElementById('root');\n\n const {\n stateType = 'immutable',\n routes,\n withReducers,\n withSagas,\n withEvents,\n } = config;\n\n const GetClientJSX = store => {\n const ClientJsx = (\n <AppContainer>\n <CookiesProvider>\n <ReduxProvider store={store}>\n <Router history={history}>\n <ReactApp routes={routes} withEvents={withEvents} />\n </Router>\n </ReduxProvider>\n </CookiesProvider>\n </AppContainer>\n );\n return ClientJsx;\n };\n\n const isProduction = !(process.env.NODE_ENV !== 'production');\n\n /**\n * Webpack HMR Setup.\n */\n const HMRRenderer = Component => {\n if (isProduction)\n loadableReady(\n () => {\n hydrate(Component, documentRoot);\n },\n { namespace: 'modern' }\n );\n else render(Component, documentRoot);\n };\n\n const hmr = store => {\n // webpack Hot Module Replacement API\n if (module.hot) {\n module.hot.accept(ReactApp as unknown as string, () => {\n // if you are using harmony modules ({modules:false})\n HMRRenderer(GetClientJSX(store));\n });\n }\n };\n\n const qs = parse(window.location.search);\n const versionStatus = deliveryApi.getClientSideVersionStatus();\n\n if (\n window.isDynamic ||\n window.REDUX_DATA ||\n process.env.NODE_ENV !== 'production'\n ) {\n createStore(withReducers, window.REDUX_DATA, history, stateType).then(\n store => {\n const state = store.getState();\n const ssrVersionStatus = selectVersionStatus(state);\n if (!ssrVersionStatus)\n store.dispatch(setVersionStatus(versionStatus));\n\n /* eslint-disable no-console */\n console.log('Hydrating from inline Redux');\n /* eslint-enable no-console */\n store.runSaga(rootSaga(withSagas));\n store.dispatch(\n setCurrentProject(\n pickProject(window.location.hostname, qs),\n [],\n window.location.hostname\n )\n );\n\n delete window.REDUX_DATA;\n HMRRenderer(GetClientJSX(store));\n\n hmr(store);\n }\n );\n } else {\n fetch(`${window.location.pathname}?redux=true`)\n .then(response => response.json())\n .then(data => {\n const ssRedux = JSON.parse(data);\n createStore(withReducers, ssRedux, history, stateType).then(store => {\n store.dispatch(setVersionStatus(versionStatus));\n\n store.runSaga(rootSaga(withSagas));\n store.dispatch(\n setCurrentProject(\n pickProject(window.location.hostname, qs),\n [],\n window.location.hostname\n )\n );\n\n HMRRenderer(GetClientJSX(store));\n\n hmr(store);\n });\n });\n }\n }\n}\n\nexport default ClientApp;\n"],"names":["ClientApp","constructor","ReactApp","config","documentRoot","document","getElementById","stateType","routes","withReducers","withSagas","withEvents","GetClientJSX","store","ClientJsx","ReduxProvider","history","isProduction","process","env","NODE_ENV","HMRRenderer","Component","loadableReady","hydrate","namespace","render","hmr","module","hot","accept","qs","parse","window","location","search","versionStatus","deliveryApi","getClientSideVersionStatus","isDynamic","REDUX_DATA","createStore","then","state","getState","ssrVersionStatus","selectVersionStatus","dispatch","setVersionStatus","console","log","runSaga","rootSaga","setCurrentProject","pickProject","hostname","fetch","pathname","response","json","data","ssRedux","JSON"],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sources":["../src/client/client.tsx"],"sourcesContent":["import 'isomorphic-fetch';\nimport React from 'react';\nimport { render, hydrate } from 'react-dom';\nimport { AppContainer } from 'react-hot-loader';\nimport { Provider as ReduxProvider } from 'react-redux';\nimport { Router } from 'react-router-dom';\nimport { loadableReady } from '@loadable/component';\nimport { parse } from 'query-string';\nimport { CookiesProvider } from 'react-cookie';\n\nimport { selectVersionStatus } from '~/redux/selectors/version';\nimport { setVersionStatus } from '~/redux/actions/version';\nimport rootSaga from '~/redux/sagas';\nimport { browserHistory as history } from '~/redux/store/history';\nimport createStore from '~/redux/store/store';\n\nimport { setCurrentProject } from '~/routing/redux/actions';\n\nimport { deliveryApi } from '~/util/ContensisDeliveryApi';\nimport pickProject from '~/util/pickProject';\n\nimport { AppConfig } from '~/config';\n\ndeclare let window: typeof globalThis & {\n isDynamic;\n REDUX_DATA;\n};\n\ntype ReactAppProps = { routes: any; withEvents: any };\n\n// Fix TS2769 error No overload matches this call\nconst Container = AppContainer as any; // as typeof AppContainer;\n\nclass ClientApp {\n constructor(ReactApp: React.ComponentType<ReactAppProps>, config: AppConfig) {\n const documentRoot = document.getElementById('root');\n\n const {\n stateType = 'immutable',\n routes,\n withReducers,\n withSagas,\n withEvents,\n } = config;\n\n const GetClientJSX = store => {\n const ClientJsx = (\n <Container>\n <CookiesProvider>\n <ReduxProvider store={store}>\n <Router history={history}>\n <ReactApp routes={routes} withEvents={withEvents} />\n </Router>\n </ReduxProvider>\n </CookiesProvider>\n </Container>\n );\n return ClientJsx;\n };\n\n const isProduction = !(process.env.NODE_ENV !== 'production');\n\n /**\n * Webpack HMR Setup.\n */\n const HMRRenderer = Component => {\n if (isProduction)\n loadableReady(\n () => {\n hydrate(Component, documentRoot);\n },\n { namespace: 'modern' }\n );\n else render(Component, documentRoot);\n };\n\n const hmr = store => {\n // webpack Hot Module Replacement API\n if (module.hot) {\n module.hot.accept(ReactApp as unknown as string, () => {\n // if you are using harmony modules ({modules:false})\n HMRRenderer(GetClientJSX(store));\n });\n }\n };\n\n const qs = parse(window.location.search);\n const versionStatus = deliveryApi.getClientSideVersionStatus();\n\n if (\n window.isDynamic ||\n window.REDUX_DATA ||\n process.env.NODE_ENV !== 'production'\n ) {\n createStore(withReducers, window.REDUX_DATA, history, stateType).then(\n store => {\n const state = store.getState();\n const ssrVersionStatus = selectVersionStatus(state);\n if (!ssrVersionStatus)\n store.dispatch(setVersionStatus(versionStatus));\n\n /* eslint-disable no-console */\n console.log('Hydrating from inline Redux');\n /* eslint-enable no-console */\n store.runSaga(rootSaga(withSagas));\n store.dispatch(\n setCurrentProject(\n pickProject(window.location.hostname, qs),\n [],\n window.location.hostname\n )\n );\n\n delete window.REDUX_DATA;\n HMRRenderer(GetClientJSX(store));\n\n hmr(store);\n }\n );\n } else {\n fetch(`${window.location.pathname}?redux=true`)\n .then(response => response.json())\n .then(data => {\n const ssRedux = JSON.parse(data);\n createStore(withReducers, ssRedux, history, stateType).then(store => {\n store.dispatch(setVersionStatus(versionStatus));\n\n store.runSaga(rootSaga(withSagas));\n store.dispatch(\n setCurrentProject(\n pickProject(window.location.hostname, qs),\n [],\n window.location.hostname\n )\n );\n\n HMRRenderer(GetClientJSX(store));\n\n hmr(store);\n });\n });\n }\n }\n}\n\nexport default ClientApp;\n"],"names":["Container","AppContainer","ClientApp","constructor","ReactApp","config","documentRoot","document","getElementById","stateType","routes","withReducers","withSagas","withEvents","GetClientJSX","store","ClientJsx","React","createElement","CookiesProvider","ReduxProvider","Router","history","isProduction","process","env","NODE_ENV","HMRRenderer","Component","loadableReady","hydrate","namespace","render","hmr","module","hot","accept","qs","parse","window","location","search","versionStatus","deliveryApi","getClientSideVersionStatus","isDynamic","REDUX_DATA","createStore","then","state","getState","ssrVersionStatus","selectVersionStatus","dispatch","setVersionStatus","console","log","runSaga","rootSaga","setCurrentProject","pickProject","hostname","fetch","pathname","response","json","data","ssRedux","JSON"],"mappings":"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"}