@sitecore-content-sdk/nextjs 1.3.0-canary.9 → 1.4.0-canary.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/README.md +11 -11
  2. package/dist/cjs/client/index.js +10 -10
  3. package/dist/cjs/client/models.js +2 -2
  4. package/dist/cjs/client/sitecore-nextjs-client.js +160 -156
  5. package/dist/cjs/components/BYOCWrapper.js +31 -30
  6. package/dist/cjs/components/ComponentPropsContext.js +66 -59
  7. package/dist/cjs/components/FEaaSWrapper.js +33 -32
  8. package/dist/cjs/components/Link.js +117 -90
  9. package/dist/cjs/components/NextImage.js +66 -62
  10. package/dist/cjs/components/Placeholder.js +55 -50
  11. package/dist/cjs/components/RichText.js +133 -128
  12. package/dist/cjs/config/define-config.js +26 -25
  13. package/dist/cjs/config/index.js +5 -5
  14. package/dist/cjs/config-cli/define-cli-config.js +40 -39
  15. package/dist/cjs/config-cli/index.js +5 -5
  16. package/dist/cjs/editing/codegen/import-map.js +129 -118
  17. package/dist/cjs/editing/codegen/index.js +6 -6
  18. package/dist/cjs/editing/constants.js +10 -10
  19. package/dist/cjs/editing/editing-config-middleware.js +70 -69
  20. package/dist/cjs/editing/editing-render-middleware.js +145 -144
  21. package/dist/cjs/editing/feaas-render-middleware.js +102 -101
  22. package/dist/cjs/editing/index.js +19 -19
  23. package/dist/cjs/editing/render-middleware.js +46 -46
  24. package/dist/cjs/editing/utils.js +260 -257
  25. package/dist/cjs/index.js +132 -131
  26. package/dist/cjs/middleware/app-router-multisite-middleware.js +41 -20
  27. package/dist/cjs/middleware/index.js +30 -30
  28. package/dist/cjs/middleware/locale-middleware.js +85 -84
  29. package/dist/cjs/middleware/middleware.js +195 -192
  30. package/dist/cjs/middleware/multisite-middleware.js +141 -118
  31. package/dist/cjs/middleware/personalize-middleware.js +240 -236
  32. package/dist/cjs/middleware/redirects-middleware.js +323 -297
  33. package/dist/cjs/middleware/robots-middleware.js +45 -44
  34. package/dist/cjs/middleware/sitemap-middleware.js +50 -49
  35. package/dist/cjs/monitoring/healthcheck-middleware.js +31 -30
  36. package/dist/cjs/monitoring/index.js +5 -5
  37. package/dist/cjs/route-handler/editing-config-route-handler.js +110 -106
  38. package/dist/cjs/route-handler/editing-render-route-handler.js +270 -165
  39. package/dist/cjs/route-handler/index.js +11 -11
  40. package/dist/cjs/route-handler/robots-route-handler.js +69 -68
  41. package/dist/cjs/route-handler/sitemap-route-handler.js +66 -65
  42. package/dist/cjs/search/index.js +17 -0
  43. package/dist/cjs/services/component-props-service.js +142 -138
  44. package/dist/cjs/sharedTypes/component-props.js +2 -2
  45. package/dist/cjs/sharedTypes/sitecore-page-props.js +2 -2
  46. package/dist/cjs/site/index.js +5 -5
  47. package/dist/cjs/tools/codegen/import-map.js +15 -0
  48. package/dist/cjs/tools/component-props.loader.js +95 -95
  49. package/dist/cjs/tools/generate-map.js +317 -317
  50. package/dist/cjs/tools/index.js +14 -13
  51. package/dist/cjs/tools/templating/byoc-component.js +36 -36
  52. package/dist/cjs/tools/templating/constants.js +7 -7
  53. package/dist/cjs/tools/templating/default-component.js +35 -35
  54. package/dist/cjs/tools/templating/utils.js +200 -0
  55. package/dist/cjs/utils/index.js +14 -14
  56. package/dist/cjs/utils/utils.js +82 -73
  57. package/dist/esm/client/index.js +2 -2
  58. package/dist/esm/client/models.js +1 -1
  59. package/dist/esm/client/sitecore-nextjs-client.js +156 -152
  60. package/dist/esm/components/BYOCWrapper.js +27 -26
  61. package/dist/esm/components/ComponentPropsContext.js +28 -21
  62. package/dist/esm/components/FEaaSWrapper.js +29 -28
  63. package/dist/esm/components/Link.js +78 -51
  64. package/dist/esm/components/NextImage.js +60 -56
  65. package/dist/esm/components/Placeholder.js +18 -13
  66. package/dist/esm/components/RichText.js +96 -91
  67. package/dist/esm/config/define-config.js +21 -20
  68. package/dist/esm/config/index.js +1 -1
  69. package/dist/esm/config-cli/define-cli-config.js +36 -35
  70. package/dist/esm/config-cli/index.js +1 -1
  71. package/dist/esm/editing/codegen/import-map.js +92 -81
  72. package/dist/esm/editing/codegen/index.js +1 -1
  73. package/dist/esm/editing/constants.js +7 -7
  74. package/dist/esm/editing/editing-config-middleware.js +66 -65
  75. package/dist/esm/editing/editing-render-middleware.js +141 -140
  76. package/dist/esm/editing/feaas-render-middleware.js +98 -97
  77. package/dist/esm/editing/index.js +6 -6
  78. package/dist/esm/editing/render-middleware.js +42 -42
  79. package/dist/esm/editing/utils.js +246 -243
  80. package/dist/esm/index.js +25 -25
  81. package/dist/esm/middleware/app-router-multisite-middleware.js +37 -16
  82. package/dist/esm/middleware/index.js +11 -11
  83. package/dist/esm/middleware/locale-middleware.js +81 -80
  84. package/dist/esm/middleware/middleware.js +189 -186
  85. package/dist/esm/middleware/multisite-middleware.js +137 -114
  86. package/dist/esm/middleware/personalize-middleware.js +236 -232
  87. package/dist/esm/middleware/redirects-middleware.js +316 -290
  88. package/dist/esm/middleware/robots-middleware.js +41 -40
  89. package/dist/esm/middleware/sitemap-middleware.js +46 -45
  90. package/dist/esm/monitoring/healthcheck-middleware.js +27 -26
  91. package/dist/esm/monitoring/index.js +1 -1
  92. package/dist/esm/route-handler/editing-config-route-handler.js +106 -102
  93. package/dist/esm/route-handler/editing-render-route-handler.js +265 -160
  94. package/dist/esm/route-handler/index.js +4 -4
  95. package/dist/esm/route-handler/robots-route-handler.js +65 -64
  96. package/dist/esm/route-handler/sitemap-route-handler.js +63 -62
  97. package/dist/esm/search/index.js +1 -0
  98. package/dist/esm/services/component-props-service.js +135 -131
  99. package/dist/esm/sharedTypes/component-props.js +1 -1
  100. package/dist/esm/sharedTypes/sitecore-page-props.js +1 -1
  101. package/dist/esm/site/index.js +1 -1
  102. package/dist/esm/tools/codegen/import-map.js +11 -0
  103. package/dist/esm/tools/component-props.loader.js +59 -59
  104. package/dist/esm/tools/generate-map.js +279 -279
  105. package/dist/esm/tools/index.js +3 -2
  106. package/dist/esm/tools/templating/byoc-component.js +30 -30
  107. package/dist/esm/tools/templating/constants.js +4 -4
  108. package/dist/esm/tools/templating/default-component.js +29 -29
  109. package/dist/esm/tools/templating/utils.js +190 -0
  110. package/dist/esm/utils/index.js +3 -3
  111. package/dist/esm/utils/utils.js +74 -65
  112. package/package.json +87 -13
  113. package/search.d.ts +1 -0
  114. package/types/client/index.d.ts +3 -2
  115. package/types/client/index.d.ts.map +1 -0
  116. package/types/client/models.d.ts +9 -8
  117. package/types/client/models.d.ts.map +1 -0
  118. package/types/client/sitecore-nextjs-client.d.ts +68 -63
  119. package/types/client/sitecore-nextjs-client.d.ts.map +1 -0
  120. package/types/components/BYOCWrapper.d.ts +16 -14
  121. package/types/components/BYOCWrapper.d.ts.map +1 -0
  122. package/types/components/ComponentPropsContext.d.ts +30 -18
  123. package/types/components/ComponentPropsContext.d.ts.map +1 -0
  124. package/types/components/FEaaSWrapper.d.ts +17 -15
  125. package/types/components/FEaaSWrapper.d.ts.map +1 -0
  126. package/types/components/Link.d.ts +25 -15
  127. package/types/components/Link.d.ts.map +1 -0
  128. package/types/components/NextImage.d.ts +11 -6
  129. package/types/components/NextImage.d.ts.map +1 -0
  130. package/types/components/Placeholder.d.ts +14 -8
  131. package/types/components/Placeholder.d.ts.map +1 -0
  132. package/types/components/RichText.d.ts +35 -25
  133. package/types/components/RichText.d.ts.map +1 -0
  134. package/types/config/define-config.d.ts +42 -38
  135. package/types/config/define-config.d.ts.map +1 -0
  136. package/types/config/index.d.ts +2 -1
  137. package/types/config/index.d.ts.map +1 -0
  138. package/types/config-cli/define-cli-config.d.ts +10 -8
  139. package/types/config-cli/define-cli-config.d.ts.map +1 -0
  140. package/types/config-cli/index.d.ts +2 -1
  141. package/types/config-cli/index.d.ts.map +1 -0
  142. package/types/editing/codegen/import-map.d.ts +15 -3
  143. package/types/editing/codegen/import-map.d.ts.map +1 -0
  144. package/types/editing/codegen/index.d.ts +3 -2
  145. package/types/editing/codegen/index.d.ts.map +1 -0
  146. package/types/editing/constants.d.ts +8 -7
  147. package/types/editing/constants.d.ts.map +1 -0
  148. package/types/editing/editing-config-middleware.d.ts +37 -31
  149. package/types/editing/editing-config-middleware.d.ts.map +1 -0
  150. package/types/editing/editing-render-middleware.d.ts +47 -44
  151. package/types/editing/editing-render-middleware.d.ts.map +1 -0
  152. package/types/editing/feaas-render-middleware.d.ts +35 -32
  153. package/types/editing/feaas-render-middleware.d.ts.map +1 -0
  154. package/types/editing/index.d.ts +7 -6
  155. package/types/editing/index.d.ts.map +1 -0
  156. package/types/editing/render-middleware.d.ts +26 -25
  157. package/types/editing/render-middleware.d.ts.map +1 -0
  158. package/types/editing/utils.d.ts +110 -106
  159. package/types/editing/utils.d.ts.map +1 -0
  160. package/types/index.d.ts +25 -24
  161. package/types/index.d.ts.map +1 -0
  162. package/types/middleware/app-router-multisite-middleware.d.ts +28 -13
  163. package/types/middleware/app-router-multisite-middleware.d.ts.map +1 -0
  164. package/types/middleware/index.d.ts +12 -11
  165. package/types/middleware/index.d.ts.map +1 -0
  166. package/types/middleware/locale-middleware.d.ts +35 -32
  167. package/types/middleware/locale-middleware.d.ts.map +1 -0
  168. package/types/middleware/middleware.d.ts +135 -127
  169. package/types/middleware/middleware.d.ts.map +1 -0
  170. package/types/middleware/multisite-middleware.d.ts +54 -37
  171. package/types/middleware/multisite-middleware.d.ts.map +1 -0
  172. package/types/middleware/personalize-middleware.d.ts +81 -65
  173. package/types/middleware/personalize-middleware.d.ts.map +1 -0
  174. package/types/middleware/redirects-middleware.d.ts +68 -65
  175. package/types/middleware/redirects-middleware.d.ts.map +1 -0
  176. package/types/middleware/robots-middleware.d.ts +15 -13
  177. package/types/middleware/robots-middleware.d.ts.map +1 -0
  178. package/types/middleware/sitemap-middleware.d.ts +16 -14
  179. package/types/middleware/sitemap-middleware.d.ts.map +1 -0
  180. package/types/monitoring/healthcheck-middleware.d.ts +14 -12
  181. package/types/monitoring/healthcheck-middleware.d.ts.map +1 -0
  182. package/types/monitoring/index.d.ts +2 -1
  183. package/types/monitoring/index.d.ts.map +1 -0
  184. package/types/route-handler/editing-config-route-handler.d.ts +30 -24
  185. package/types/route-handler/editing-config-route-handler.d.ts.map +1 -0
  186. package/types/route-handler/editing-render-route-handler.d.ts +33 -25
  187. package/types/route-handler/editing-render-route-handler.d.ts.map +1 -0
  188. package/types/route-handler/index.d.ts +5 -4
  189. package/types/route-handler/index.d.ts.map +1 -0
  190. package/types/route-handler/robots-route-handler.d.ts +30 -28
  191. package/types/route-handler/robots-route-handler.d.ts.map +1 -0
  192. package/types/route-handler/sitemap-route-handler.d.ts +30 -28
  193. package/types/route-handler/sitemap-route-handler.d.ts.map +1 -0
  194. package/types/search/index.d.ts +2 -0
  195. package/types/search/index.d.ts.map +1 -0
  196. package/types/services/component-props-service.d.ts +62 -57
  197. package/types/services/component-props-service.d.ts.map +1 -0
  198. package/types/sharedTypes/component-props.d.ts +62 -47
  199. package/types/sharedTypes/component-props.d.ts.map +1 -0
  200. package/types/sharedTypes/sitecore-page-props.d.ts +14 -9
  201. package/types/sharedTypes/sitecore-page-props.d.ts.map +1 -0
  202. package/types/site/index.d.ts +2 -1
  203. package/types/site/index.d.ts.map +1 -0
  204. package/types/tools/codegen/import-map.d.ts +10 -0
  205. package/types/tools/codegen/import-map.d.ts.map +1 -0
  206. package/types/tools/component-props.loader.d.ts +8 -7
  207. package/types/tools/component-props.loader.d.ts.map +1 -0
  208. package/types/tools/generate-map.d.ts +26 -24
  209. package/types/tools/generate-map.d.ts.map +1 -0
  210. package/types/tools/index.d.ts +4 -2
  211. package/types/tools/index.d.ts.map +1 -0
  212. package/types/tools/templating/byoc-component.d.ts +3 -2
  213. package/types/tools/templating/byoc-component.d.ts.map +1 -0
  214. package/types/tools/templating/constants.d.ts +5 -4
  215. package/types/tools/templating/constants.d.ts.map +1 -0
  216. package/types/tools/templating/default-component.d.ts +3 -2
  217. package/types/tools/templating/default-component.d.ts.map +1 -0
  218. package/types/tools/templating/utils.d.ts +44 -0
  219. package/types/tools/templating/utils.d.ts.map +1 -0
  220. package/types/utils/index.d.ts +4 -3
  221. package/types/utils/index.d.ts.map +1 -0
  222. package/types/utils/utils.d.ts +34 -24
  223. package/types/utils/utils.d.ts.map +1 -0
  224. package/client.js +0 -1
  225. package/codegen.js +0 -1
  226. package/config-cli.js +0 -1
  227. package/config.js +0 -1
  228. package/editing.js +0 -1
  229. package/middleware.js +0 -1
  230. package/monitoring.js +0 -1
  231. package/route-handler.js +0 -1
  232. package/site.js +0 -1
  233. package/tools.js +0 -1
  234. package/utils.js +0 -1
@@ -1,56 +1,60 @@
1
- 'use client';
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
- /* eslint-disable no-unused-vars */
14
- import { mediaApi } from '@sitecore-content-sdk/core/media';
15
- import React from 'react';
16
- import { withFieldMetadata, SitecoreProviderReactContext, DefaultEmptyFieldEditingComponentImage, withEmptyFieldEditingComponent, } from '@sitecore-content-sdk/react';
17
- import Image from 'next/image';
18
- import { isFieldValueEmpty } from '@sitecore-content-sdk/core/layout';
19
- export const NextImage = withFieldMetadata(withEmptyFieldEditingComponent((_a) => {
20
- var { editable = true, imageParams, field, mediaUrlPrefix, fill, priority } = _a, otherProps = __rest(_a, ["editable", "imageParams", "field", "mediaUrlPrefix", "fill", "priority"]);
21
- const context = React.useContext(SitecoreProviderReactContext);
22
- // next handles src and we use a custom loader,
23
- // throw error if these are present
24
- if (otherProps.src) {
25
- throw new Error('Detected src prop. If you wish to use src, use next/image directly.');
26
- }
27
- const dynamicMedia = field;
28
- if (isFieldValueEmpty(dynamicMedia)) {
29
- return null;
30
- }
31
- // some wise-guy/gal is passing in a 'raw' image object value
32
- const img = dynamicMedia.src
33
- ? field
34
- : dynamicMedia.value;
35
- if (!img) {
36
- return null;
37
- }
38
- // disable image optimization for Edit / Preview / Component rendering, but preserve original value if true
39
- const unoptimized = otherProps.unoptimized || !context.page.mode.isNormal;
40
- const attrs = Object.assign(Object.assign(Object.assign({}, img), otherProps), { fill,
41
- priority, src: mediaApi.updateImageUrl(img.src, imageParams, mediaUrlPrefix), unoptimized });
42
- const imageProps = Object.assign(Object.assign({}, attrs), {
43
- // force replace /media with /jssmedia in src since we _know_ we will be adding a 'mw' query string parameter
44
- // this is required for Sitecore media API resizing to work properly
45
- src: mediaApi.replaceMediaUrlPrefix(attrs.src, mediaUrlPrefix) });
46
- // Exclude `width`, `height` in case image is responsive, `fill` is used
47
- if (imageProps.fill) {
48
- delete imageProps.width;
49
- delete imageProps.height;
50
- }
51
- if (attrs) {
52
- return (React.createElement(Image, Object.assign({ alt: "" }, imageProps, (process.env.TEST ? { 'data-unoptimized': unoptimized } : {}))));
53
- }
54
- return null; // we can't handle the truth
55
- }, { defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentImage }));
56
- NextImage.displayName = 'NextImage';
1
+ 'use client';
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ /* eslint-disable no-unused-vars */
14
+ import { mediaApi } from '@sitecore-content-sdk/core/media';
15
+ import React from 'react';
16
+ import { withFieldMetadata, SitecoreProviderReactContext, DefaultEmptyFieldEditingComponentImage, withEmptyFieldEditingComponent, } from '@sitecore-content-sdk/react';
17
+ import Image from 'next/image';
18
+ import { isFieldValueEmpty } from '@sitecore-content-sdk/core/layout';
19
+ /**
20
+ * Next.js specific Image component implementation.
21
+ * @public
22
+ */
23
+ export const NextImage = withFieldMetadata(withEmptyFieldEditingComponent((_a) => {
24
+ var { editable = true, imageParams, field, mediaUrlPrefix, fill, priority } = _a, otherProps = __rest(_a, ["editable", "imageParams", "field", "mediaUrlPrefix", "fill", "priority"]);
25
+ const context = React.useContext(SitecoreProviderReactContext);
26
+ // next handles src and we use a custom loader,
27
+ // throw error if these are present
28
+ if (otherProps.src) {
29
+ throw new Error('Detected src prop. If you wish to use src, use next/image directly.');
30
+ }
31
+ const dynamicMedia = field;
32
+ if (isFieldValueEmpty(dynamicMedia)) {
33
+ return null;
34
+ }
35
+ // some wise-guy/gal is passing in a 'raw' image object value
36
+ const img = dynamicMedia.src
37
+ ? field
38
+ : dynamicMedia.value;
39
+ if (!img) {
40
+ return null;
41
+ }
42
+ // disable image optimization for Edit / Preview / Component rendering, but preserve original value if true
43
+ const unoptimized = otherProps.unoptimized || !context.page.mode.isNormal;
44
+ const attrs = Object.assign(Object.assign(Object.assign({}, img), otherProps), { fill,
45
+ priority, src: mediaApi.updateImageUrl(img.src, imageParams, mediaUrlPrefix), unoptimized });
46
+ const imageProps = Object.assign(Object.assign({}, attrs), {
47
+ // force replace /media with /jssmedia in src since we _know_ we will be adding a 'mw' query string parameter
48
+ // this is required for Sitecore media API resizing to work properly
49
+ src: mediaApi.replaceMediaUrlPrefix(attrs.src, mediaUrlPrefix) });
50
+ // Exclude `width`, `height` in case image is responsive, `fill` is used
51
+ if (imageProps.fill) {
52
+ delete imageProps.width;
53
+ delete imageProps.height;
54
+ }
55
+ if (attrs) {
56
+ return (React.createElement(Image, Object.assign({ alt: "" }, imageProps, (process.env.TEST ? { 'data-unoptimized': unoptimized } : {}))));
57
+ }
58
+ return null; // we can't handle the truth
59
+ }, { defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentImage }));
60
+ NextImage.displayName = 'NextImage';
@@ -1,13 +1,18 @@
1
- 'use client';
2
- import React, { useContext } from 'react';
3
- import { Placeholder as ReactPlaceholder, } from '@sitecore-content-sdk/react';
4
- import { ComponentPropsReactContext } from './ComponentPropsContext';
5
- export const Placeholder = (props) => {
6
- const componentPropsContext = useContext(ComponentPropsReactContext);
7
- return (React.createElement(ReactPlaceholder, Object.assign({}, props, { modifyComponentProps: (initialProps) => {
8
- if (!initialProps.rendering.uid)
9
- return initialProps;
10
- const data = componentPropsContext[initialProps.rendering.uid];
11
- return Object.assign(Object.assign({}, initialProps), data);
12
- } })));
13
- };
1
+ 'use client';
2
+ import React, { useContext } from 'react';
3
+ import { Placeholder as ReactPlaceholder, } from '@sitecore-content-sdk/react';
4
+ import { ComponentPropsReactContext } from './ComponentPropsContext';
5
+ /**
6
+ * The Placeholder component.
7
+ * @param {PlaceholderProps} props component props
8
+ * @public
9
+ */
10
+ export const Placeholder = (props) => {
11
+ const componentPropsContext = useContext(ComponentPropsReactContext);
12
+ return (React.createElement(ReactPlaceholder, Object.assign({}, props, { modifyComponentProps: (initialProps) => {
13
+ if (!initialProps.rendering.uid)
14
+ return initialProps;
15
+ const data = componentPropsContext[initialProps.rendering.uid];
16
+ return Object.assign(Object.assign({}, initialProps), data);
17
+ } })));
18
+ };
@@ -1,91 +1,96 @@
1
- 'use client';
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
- import React, { useEffect, useRef } from 'react';
14
- import { useRouter as usePageRouter } from 'next/compat/router';
15
- import { useRouter as useAppRouter } from 'next/navigation';
16
- import { RichText as ReactRichText, } from '@sitecore-content-sdk/react';
17
- export const prefetched = {};
18
- const useAppRouterWrapper = () => {
19
- try {
20
- return useAppRouter();
21
- }
22
- catch (_a) {
23
- return null;
24
- }
25
- };
26
- const useCompatibleRouter = () => {
27
- let pageRouter = usePageRouter();
28
- let appRouter = useAppRouterWrapper();
29
- return { pageRouter, appRouter };
30
- };
31
- export const RichText = (props) => {
32
- const { internalLinksSelector = 'a[href^="/"]', prefetchLinks = true, editable = true } = props, rest = __rest(props, ["internalLinksSelector", "prefetchLinks", "editable"]);
33
- const hasText = props.field && props.field.value;
34
- const isEditing = editable && props.field && props.field.metadata;
35
- const { pageRouter, appRouter } = useCompatibleRouter();
36
- const richTextRef = useRef(null);
37
- useEffect(() => {
38
- // NOT IN EDIT MODE
39
- if (hasText && !isEditing) {
40
- initializeLinks();
41
- }
42
- // eslint-disable-next-line react-hooks/exhaustive-deps
43
- }, [hasText]);
44
- const routeHandler = (ev) => {
45
- if (!ev.currentTarget)
46
- return;
47
- ev.preventDefault();
48
- const pathname = ev.currentTarget.href;
49
- if (pageRouter) {
50
- pageRouter.push(pathname, pathname, { locale: false });
51
- }
52
- else if (appRouter) {
53
- appRouter.push(pathname);
54
- }
55
- };
56
- const initializeLinks = () => {
57
- const node = richTextRef.current;
58
- // selects all links that start with '/'
59
- const internalLinks = node && node.querySelectorAll(internalLinksSelector);
60
- if (!internalLinks || !internalLinks.length)
61
- return;
62
- internalLinks.forEach((link) => {
63
- if (link.target === '_blank')
64
- return;
65
- const prefetch = () => {
66
- if (pageRouter) {
67
- pageRouter.prefetch(link.pathname, undefined, { locale: false });
68
- }
69
- else if (appRouter) {
70
- appRouter.prefetch(link.pathname);
71
- }
72
- prefetched[link.pathname] = true;
73
- };
74
- if (!prefetched[link.pathname] && prefetchLinks !== false) {
75
- if (prefetchLinks === true) {
76
- prefetch();
77
- }
78
- if (prefetchLinks === 'hover') {
79
- const mouseOverHandler = () => {
80
- prefetch();
81
- link.removeEventListener('mouseover', mouseOverHandler);
82
- };
83
- link.addEventListener('mouseover', mouseOverHandler, false);
84
- }
85
- }
86
- link.addEventListener('click', routeHandler, false);
87
- });
88
- };
89
- return React.createElement(ReactRichText, Object.assign({ ref: richTextRef, editable: editable }, rest));
90
- };
91
- RichText.displayName = 'NextRichText';
1
+ 'use client';
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ import React, { useEffect, useRef } from 'react';
14
+ import { useRouter as usePageRouter } from 'next/compat/router';
15
+ import { useRouter as useAppRouter } from 'next/navigation';
16
+ import { RichText as ReactRichText, } from '@sitecore-content-sdk/react';
17
+ export const prefetched = {};
18
+ const useAppRouterWrapper = () => {
19
+ try {
20
+ return useAppRouter();
21
+ }
22
+ catch (_a) {
23
+ return null;
24
+ }
25
+ };
26
+ const useCompatibleRouter = () => {
27
+ let pageRouter = usePageRouter();
28
+ let appRouter = useAppRouterWrapper();
29
+ return { pageRouter, appRouter };
30
+ };
31
+ /**
32
+ * The RichText component.
33
+ * @param {RichTextProps} props - The props for the RichText component.
34
+ * @public
35
+ */
36
+ export const RichText = (props) => {
37
+ const { internalLinksSelector = 'a[href^="/"]', prefetchLinks = true, editable = true } = props, rest = __rest(props, ["internalLinksSelector", "prefetchLinks", "editable"]);
38
+ const hasText = props.field && props.field.value;
39
+ const isEditing = editable && props.field && props.field.metadata;
40
+ const { pageRouter, appRouter } = useCompatibleRouter();
41
+ const richTextRef = useRef(null);
42
+ useEffect(() => {
43
+ // NOT IN EDIT MODE
44
+ if (hasText && !isEditing) {
45
+ initializeLinks();
46
+ }
47
+ // eslint-disable-next-line react-hooks/exhaustive-deps
48
+ }, [hasText]);
49
+ const routeHandler = (ev) => {
50
+ if (!ev.currentTarget)
51
+ return;
52
+ ev.preventDefault();
53
+ const pathname = ev.currentTarget.href;
54
+ if (pageRouter) {
55
+ pageRouter.push(pathname, pathname, { locale: false });
56
+ }
57
+ else if (appRouter) {
58
+ appRouter.push(pathname);
59
+ }
60
+ };
61
+ const initializeLinks = () => {
62
+ const node = richTextRef.current;
63
+ // selects all links that start with '/'
64
+ const internalLinks = node && node.querySelectorAll(internalLinksSelector);
65
+ if (!internalLinks || !internalLinks.length)
66
+ return;
67
+ internalLinks.forEach((link) => {
68
+ if (link.target === '_blank')
69
+ return;
70
+ const prefetch = () => {
71
+ if (pageRouter) {
72
+ pageRouter.prefetch(link.pathname, undefined, { locale: false });
73
+ }
74
+ else if (appRouter) {
75
+ appRouter.prefetch(link.pathname);
76
+ }
77
+ prefetched[link.pathname] = true;
78
+ };
79
+ if (!prefetched[link.pathname] && prefetchLinks !== false) {
80
+ if (prefetchLinks === true) {
81
+ prefetch();
82
+ }
83
+ if (prefetchLinks === 'hover') {
84
+ const mouseOverHandler = () => {
85
+ prefetch();
86
+ link.removeEventListener('mouseover', mouseOverHandler);
87
+ };
88
+ link.addEventListener('mouseover', mouseOverHandler, false);
89
+ }
90
+ }
91
+ link.addEventListener('click', routeHandler, false);
92
+ });
93
+ };
94
+ return React.createElement(ReactRichText, Object.assign({ ref: richTextRef, editable: editable }, rest));
95
+ };
96
+ RichText.displayName = 'NextRichText';
@@ -1,20 +1,21 @@
1
- import { defineConfig as defineConfigCore, } from '@sitecore-content-sdk/core/config';
2
- /**
3
- * Provides default NextJs initial values from env variables for SitecoreConfig
4
- * @param {SitecoreConfigInput} config optional override values to be written over default config settings
5
- * @returns default nextjs input config
6
- */
7
- export const getNextFallbackConfig = (config) => {
8
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
9
- return Object.assign(Object.assign({}, config), { api: Object.assign(Object.assign({}, config === null || config === void 0 ? void 0 : config.api), { edge: Object.assign(Object.assign({}, (_a = config === null || config === void 0 ? void 0 : config.api) === null || _a === void 0 ? void 0 : _a.edge), { contextId: ((_c = (_b = config === null || config === void 0 ? void 0 : config.api) === null || _b === void 0 ? void 0 : _b.edge) === null || _c === void 0 ? void 0 : _c.contextId) || '', clientContextId: ((_e = (_d = config === null || config === void 0 ? void 0 : config.api) === null || _d === void 0 ? void 0 : _d.edge) === null || _e === void 0 ? void 0 : _e.clientContextId) || process.env.NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID, edgeUrl: ((_g = (_f = config === null || config === void 0 ? void 0 : config.api) === null || _f === void 0 ? void 0 : _f.edge) === null || _g === void 0 ? void 0 : _g.edgeUrl) || process.env.NEXT_PUBLIC_SITECORE_EDGE_URL }), local: Object.assign(Object.assign({}, (_h = config === null || config === void 0 ? void 0 : config.api) === null || _h === void 0 ? void 0 : _h.local), { apiKey: ((_k = (_j = config === null || config === void 0 ? void 0 : config.api) === null || _j === void 0 ? void 0 : _j.local) === null || _k === void 0 ? void 0 : _k.apiKey) || process.env.NEXT_PUBLIC_SITECORE_API_KEY || '', apiHost: ((_m = (_l = config === null || config === void 0 ? void 0 : config.api) === null || _l === void 0 ? void 0 : _l.local) === null || _m === void 0 ? void 0 : _m.apiHost) || process.env.NEXT_PUBLIC_SITECORE_API_HOST || '' }) }), defaultSite: (config === null || config === void 0 ? void 0 : config.defaultSite) || process.env.NEXT_PUBLIC_DEFAULT_SITE_NAME || '', defaultLanguage: (config === null || config === void 0 ? void 0 : config.defaultLanguage) || process.env.NEXT_PUBLIC_DEFAULT_LANGUAGE || 'en', multisite: Object.assign(Object.assign({}, config === null || config === void 0 ? void 0 : config.multisite), { useCookieResolution: (_p = (_o = config === null || config === void 0 ? void 0 : config.multisite) === null || _o === void 0 ? void 0 : _o.useCookieResolution) !== null && _p !== void 0 ? _p : (() => process.env.VERCEL_ENV === 'preview') }), personalize: Object.assign(Object.assign({}, config === null || config === void 0 ? void 0 : config.personalize), { scope: ((_q = config === null || config === void 0 ? void 0 : config.personalize) === null || _q === void 0 ? void 0 : _q.scope) || process.env.NEXT_PUBLIC_PERSONALIZE_SCOPE }), generateStaticPaths: process.env.GENERATE_STATIC_PATHS !== undefined
10
- ? process.env.GENERATE_STATIC_PATHS.toLowerCase() === 'true'
11
- : (_r = config === null || config === void 0 ? void 0 : config.generateStaticPaths) !== null && _r !== void 0 ? _r : true, sitecoreInternalEditingHostUrl: (config === null || config === void 0 ? void 0 : config.sitecoreInternalEditingHostUrl) || process.env.SITECORE_INTERNAL_EDITING_HOST_URL });
12
- };
13
- /**
14
- * Accepts a SitecoreConfigInput object and returns full sitecore configuration
15
- * @param {SitecoreConfigInput} config override values to be written over default config settings
16
- * @returns {SitecoreConfig} full sitecore configuration to use in application
17
- */
18
- export const defineConfig = (config) => {
19
- return defineConfigCore(getNextFallbackConfig(config));
20
- };
1
+ import { defineConfig as defineConfigCore, } from '@sitecore-content-sdk/core/config';
2
+ /**
3
+ * Provides default NextJs initial values from env variables for SitecoreConfig
4
+ * @param {SitecoreConfigInput} config optional override values to be written over default config settings
5
+ * @returns default nextjs input config
6
+ */
7
+ export const getNextFallbackConfig = (config) => {
8
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
9
+ return Object.assign(Object.assign({}, config), { api: Object.assign(Object.assign({}, config === null || config === void 0 ? void 0 : config.api), { edge: Object.assign(Object.assign({}, (_a = config === null || config === void 0 ? void 0 : config.api) === null || _a === void 0 ? void 0 : _a.edge), { contextId: ((_c = (_b = config === null || config === void 0 ? void 0 : config.api) === null || _b === void 0 ? void 0 : _b.edge) === null || _c === void 0 ? void 0 : _c.contextId) || '', clientContextId: ((_e = (_d = config === null || config === void 0 ? void 0 : config.api) === null || _d === void 0 ? void 0 : _d.edge) === null || _e === void 0 ? void 0 : _e.clientContextId) || process.env.NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID, edgeUrl: ((_g = (_f = config === null || config === void 0 ? void 0 : config.api) === null || _f === void 0 ? void 0 : _f.edge) === null || _g === void 0 ? void 0 : _g.edgeUrl) || process.env.NEXT_PUBLIC_SITECORE_EDGE_URL }), local: Object.assign(Object.assign({}, (_h = config === null || config === void 0 ? void 0 : config.api) === null || _h === void 0 ? void 0 : _h.local), { apiKey: ((_k = (_j = config === null || config === void 0 ? void 0 : config.api) === null || _j === void 0 ? void 0 : _j.local) === null || _k === void 0 ? void 0 : _k.apiKey) || process.env.NEXT_PUBLIC_SITECORE_API_KEY || '', apiHost: ((_m = (_l = config === null || config === void 0 ? void 0 : config.api) === null || _l === void 0 ? void 0 : _l.local) === null || _m === void 0 ? void 0 : _m.apiHost) || process.env.NEXT_PUBLIC_SITECORE_API_HOST || '' }) }), defaultSite: (config === null || config === void 0 ? void 0 : config.defaultSite) || process.env.NEXT_PUBLIC_DEFAULT_SITE_NAME || '', defaultLanguage: (config === null || config === void 0 ? void 0 : config.defaultLanguage) || process.env.NEXT_PUBLIC_DEFAULT_LANGUAGE || 'en', multisite: Object.assign(Object.assign({}, config === null || config === void 0 ? void 0 : config.multisite), { useCookieResolution: (_p = (_o = config === null || config === void 0 ? void 0 : config.multisite) === null || _o === void 0 ? void 0 : _o.useCookieResolution) !== null && _p !== void 0 ? _p : (() => process.env.VERCEL_ENV === 'preview') }), personalize: Object.assign(Object.assign({}, config === null || config === void 0 ? void 0 : config.personalize), { scope: ((_q = config === null || config === void 0 ? void 0 : config.personalize) === null || _q === void 0 ? void 0 : _q.scope) || process.env.NEXT_PUBLIC_PERSONALIZE_SCOPE }), generateStaticPaths: process.env.GENERATE_STATIC_PATHS !== undefined
10
+ ? process.env.GENERATE_STATIC_PATHS.toLowerCase() === 'true'
11
+ : (_r = config === null || config === void 0 ? void 0 : config.generateStaticPaths) !== null && _r !== void 0 ? _r : true, sitecoreInternalEditingHostUrl: (config === null || config === void 0 ? void 0 : config.sitecoreInternalEditingHostUrl) || process.env.SITECORE_INTERNAL_EDITING_HOST_URL });
12
+ };
13
+ /**
14
+ * Accepts a SitecoreConfigInput object and returns full sitecore configuration
15
+ * @param {SitecoreConfigInput} config override values to be written over default config settings
16
+ * @returns {SitecoreConfig} full sitecore configuration to use in application
17
+ * @public
18
+ */
19
+ export const defineConfig = (config) => {
20
+ return defineConfigCore(getNextFallbackConfig(config));
21
+ };
@@ -1 +1 @@
1
- export { defineConfig } from './define-config';
1
+ export { defineConfig } from './define-config';
@@ -1,35 +1,36 @@
1
- import { defineCliConfig as defineCliConfigCore } from '@sitecore-content-sdk/core/config-cli';
2
- import { byocTemplate } from '../tools/templating/byoc-component';
3
- import { defaultTemplate } from '../tools/templating/default-component';
4
- import { generateMap } from '../tools/generate-map';
5
- /**
6
- * Accepts a `SitecoreCliConfigInput` object and returns the Sitecore Content SDK CLI configuration from the specified file,
7
- * updated with the required default values.
8
- * @param {SitecoreCliConfigInput} cliConfig the cli configuration provided by the application
9
- * @returns {SitecoreCliConfig} full sitecore cli configuration to use with cli
10
- */
11
- export const defineCliConfig = (cliConfig) => {
12
- addDefaultScaffoldTemplates(cliConfig);
13
- addDefaultComponentMapGenerator(cliConfig);
14
- return defineCliConfigCore(cliConfig);
15
- };
16
- /**
17
- * Adds default scaffold templates to the CLI configuration.
18
- * @param {SitecoreCliConfigInput} cliConfig - The CLI configuration object
19
- */
20
- function addDefaultScaffoldTemplates(cliConfig) {
21
- if (!cliConfig.scaffold) {
22
- cliConfig.scaffold = {};
23
- }
24
- if (!cliConfig.scaffold.templates) {
25
- cliConfig.scaffold.templates = [];
26
- }
27
- cliConfig.scaffold.templates.unshift(defaultTemplate, byocTemplate);
28
- }
29
- /**
30
- * Add the framework-specific implementaion of the component map generator to the CLI configuration.
31
- * @param {SitecoreCliConfigInput} cliConfig - The CLI configuration object
32
- */
33
- function addDefaultComponentMapGenerator(cliConfig) {
34
- cliConfig.componentMap = Object.assign({ generator: generateMap, paths: ['src/components'] }, cliConfig.componentMap);
35
- }
1
+ import { defineCliConfig as defineCliConfigCore } from '@sitecore-content-sdk/core/config-cli';
2
+ import { byocTemplate } from '../tools/templating/byoc-component';
3
+ import { defaultTemplate } from '../tools/templating/default-component';
4
+ import { generateMap } from '../tools/generate-map';
5
+ /**
6
+ * Accepts a `SitecoreCliConfigInput` object and returns the Sitecore Content SDK CLI configuration from the specified file,
7
+ * updated with the required default values.
8
+ * @param {SitecoreCliConfigInput} cliConfig the cli configuration provided by the application
9
+ * @returns {SitecoreCliConfig} full sitecore cli configuration to use with cli
10
+ * @public
11
+ */
12
+ export const defineCliConfig = (cliConfig) => {
13
+ addDefaultScaffoldTemplates(cliConfig);
14
+ addDefaultComponentMapGenerator(cliConfig);
15
+ return defineCliConfigCore(cliConfig);
16
+ };
17
+ /**
18
+ * Adds default scaffold templates to the CLI configuration.
19
+ * @param {SitecoreCliConfigInput} cliConfig - The CLI configuration object
20
+ */
21
+ function addDefaultScaffoldTemplates(cliConfig) {
22
+ if (!cliConfig.scaffold) {
23
+ cliConfig.scaffold = {};
24
+ }
25
+ if (!cliConfig.scaffold.templates) {
26
+ cliConfig.scaffold.templates = [];
27
+ }
28
+ cliConfig.scaffold.templates.unshift(defaultTemplate, byocTemplate);
29
+ }
30
+ /**
31
+ * Add the framework-specific implementaion of the component map generator to the CLI configuration.
32
+ * @param {SitecoreCliConfigInput} cliConfig - The CLI configuration object
33
+ */
34
+ function addDefaultComponentMapGenerator(cliConfig) {
35
+ cliConfig.componentMap = Object.assign({ generator: generateMap, paths: ['src/components'] }, cliConfig.componentMap);
36
+ }
@@ -1 +1 @@
1
- export { defineCliConfig } from './define-cli-config';
1
+ export { defineCliConfig } from './define-cli-config';