@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.
- package/README.md +11 -11
- package/dist/cjs/client/index.js +10 -10
- package/dist/cjs/client/models.js +2 -2
- package/dist/cjs/client/sitecore-nextjs-client.js +160 -156
- package/dist/cjs/components/BYOCWrapper.js +31 -30
- package/dist/cjs/components/ComponentPropsContext.js +66 -59
- package/dist/cjs/components/FEaaSWrapper.js +33 -32
- package/dist/cjs/components/Link.js +117 -90
- package/dist/cjs/components/NextImage.js +66 -62
- package/dist/cjs/components/Placeholder.js +55 -50
- package/dist/cjs/components/RichText.js +133 -128
- package/dist/cjs/config/define-config.js +26 -25
- package/dist/cjs/config/index.js +5 -5
- package/dist/cjs/config-cli/define-cli-config.js +40 -39
- package/dist/cjs/config-cli/index.js +5 -5
- package/dist/cjs/editing/codegen/import-map.js +129 -118
- package/dist/cjs/editing/codegen/index.js +6 -6
- package/dist/cjs/editing/constants.js +10 -10
- package/dist/cjs/editing/editing-config-middleware.js +70 -69
- package/dist/cjs/editing/editing-render-middleware.js +145 -144
- package/dist/cjs/editing/feaas-render-middleware.js +102 -101
- package/dist/cjs/editing/index.js +19 -19
- package/dist/cjs/editing/render-middleware.js +46 -46
- package/dist/cjs/editing/utils.js +260 -257
- package/dist/cjs/index.js +132 -131
- package/dist/cjs/middleware/app-router-multisite-middleware.js +41 -20
- package/dist/cjs/middleware/index.js +30 -30
- package/dist/cjs/middleware/locale-middleware.js +85 -84
- package/dist/cjs/middleware/middleware.js +195 -192
- package/dist/cjs/middleware/multisite-middleware.js +141 -118
- package/dist/cjs/middleware/personalize-middleware.js +240 -236
- package/dist/cjs/middleware/redirects-middleware.js +323 -297
- package/dist/cjs/middleware/robots-middleware.js +45 -44
- package/dist/cjs/middleware/sitemap-middleware.js +50 -49
- package/dist/cjs/monitoring/healthcheck-middleware.js +31 -30
- package/dist/cjs/monitoring/index.js +5 -5
- package/dist/cjs/route-handler/editing-config-route-handler.js +110 -106
- package/dist/cjs/route-handler/editing-render-route-handler.js +270 -165
- package/dist/cjs/route-handler/index.js +11 -11
- package/dist/cjs/route-handler/robots-route-handler.js +69 -68
- package/dist/cjs/route-handler/sitemap-route-handler.js +66 -65
- package/dist/cjs/search/index.js +17 -0
- package/dist/cjs/services/component-props-service.js +142 -138
- package/dist/cjs/sharedTypes/component-props.js +2 -2
- package/dist/cjs/sharedTypes/sitecore-page-props.js +2 -2
- package/dist/cjs/site/index.js +5 -5
- package/dist/cjs/tools/codegen/import-map.js +15 -0
- package/dist/cjs/tools/component-props.loader.js +95 -95
- package/dist/cjs/tools/generate-map.js +317 -317
- package/dist/cjs/tools/index.js +14 -13
- package/dist/cjs/tools/templating/byoc-component.js +36 -36
- package/dist/cjs/tools/templating/constants.js +7 -7
- package/dist/cjs/tools/templating/default-component.js +35 -35
- package/dist/cjs/tools/templating/utils.js +200 -0
- package/dist/cjs/utils/index.js +14 -14
- package/dist/cjs/utils/utils.js +82 -73
- package/dist/esm/client/index.js +2 -2
- package/dist/esm/client/models.js +1 -1
- package/dist/esm/client/sitecore-nextjs-client.js +156 -152
- package/dist/esm/components/BYOCWrapper.js +27 -26
- package/dist/esm/components/ComponentPropsContext.js +28 -21
- package/dist/esm/components/FEaaSWrapper.js +29 -28
- package/dist/esm/components/Link.js +78 -51
- package/dist/esm/components/NextImage.js +60 -56
- package/dist/esm/components/Placeholder.js +18 -13
- package/dist/esm/components/RichText.js +96 -91
- package/dist/esm/config/define-config.js +21 -20
- package/dist/esm/config/index.js +1 -1
- package/dist/esm/config-cli/define-cli-config.js +36 -35
- package/dist/esm/config-cli/index.js +1 -1
- package/dist/esm/editing/codegen/import-map.js +92 -81
- package/dist/esm/editing/codegen/index.js +1 -1
- package/dist/esm/editing/constants.js +7 -7
- package/dist/esm/editing/editing-config-middleware.js +66 -65
- package/dist/esm/editing/editing-render-middleware.js +141 -140
- package/dist/esm/editing/feaas-render-middleware.js +98 -97
- package/dist/esm/editing/index.js +6 -6
- package/dist/esm/editing/render-middleware.js +42 -42
- package/dist/esm/editing/utils.js +246 -243
- package/dist/esm/index.js +25 -25
- package/dist/esm/middleware/app-router-multisite-middleware.js +37 -16
- package/dist/esm/middleware/index.js +11 -11
- package/dist/esm/middleware/locale-middleware.js +81 -80
- package/dist/esm/middleware/middleware.js +189 -186
- package/dist/esm/middleware/multisite-middleware.js +137 -114
- package/dist/esm/middleware/personalize-middleware.js +236 -232
- package/dist/esm/middleware/redirects-middleware.js +316 -290
- package/dist/esm/middleware/robots-middleware.js +41 -40
- package/dist/esm/middleware/sitemap-middleware.js +46 -45
- package/dist/esm/monitoring/healthcheck-middleware.js +27 -26
- package/dist/esm/monitoring/index.js +1 -1
- package/dist/esm/route-handler/editing-config-route-handler.js +106 -102
- package/dist/esm/route-handler/editing-render-route-handler.js +265 -160
- package/dist/esm/route-handler/index.js +4 -4
- package/dist/esm/route-handler/robots-route-handler.js +65 -64
- package/dist/esm/route-handler/sitemap-route-handler.js +63 -62
- package/dist/esm/search/index.js +1 -0
- package/dist/esm/services/component-props-service.js +135 -131
- package/dist/esm/sharedTypes/component-props.js +1 -1
- package/dist/esm/sharedTypes/sitecore-page-props.js +1 -1
- package/dist/esm/site/index.js +1 -1
- package/dist/esm/tools/codegen/import-map.js +11 -0
- package/dist/esm/tools/component-props.loader.js +59 -59
- package/dist/esm/tools/generate-map.js +279 -279
- package/dist/esm/tools/index.js +3 -2
- package/dist/esm/tools/templating/byoc-component.js +30 -30
- package/dist/esm/tools/templating/constants.js +4 -4
- package/dist/esm/tools/templating/default-component.js +29 -29
- package/dist/esm/tools/templating/utils.js +190 -0
- package/dist/esm/utils/index.js +3 -3
- package/dist/esm/utils/utils.js +74 -65
- package/package.json +87 -13
- package/search.d.ts +1 -0
- package/types/client/index.d.ts +3 -2
- package/types/client/index.d.ts.map +1 -0
- package/types/client/models.d.ts +9 -8
- package/types/client/models.d.ts.map +1 -0
- package/types/client/sitecore-nextjs-client.d.ts +68 -63
- package/types/client/sitecore-nextjs-client.d.ts.map +1 -0
- package/types/components/BYOCWrapper.d.ts +16 -14
- package/types/components/BYOCWrapper.d.ts.map +1 -0
- package/types/components/ComponentPropsContext.d.ts +30 -18
- package/types/components/ComponentPropsContext.d.ts.map +1 -0
- package/types/components/FEaaSWrapper.d.ts +17 -15
- package/types/components/FEaaSWrapper.d.ts.map +1 -0
- package/types/components/Link.d.ts +25 -15
- package/types/components/Link.d.ts.map +1 -0
- package/types/components/NextImage.d.ts +11 -6
- package/types/components/NextImage.d.ts.map +1 -0
- package/types/components/Placeholder.d.ts +14 -8
- package/types/components/Placeholder.d.ts.map +1 -0
- package/types/components/RichText.d.ts +35 -25
- package/types/components/RichText.d.ts.map +1 -0
- package/types/config/define-config.d.ts +42 -38
- package/types/config/define-config.d.ts.map +1 -0
- package/types/config/index.d.ts +2 -1
- package/types/config/index.d.ts.map +1 -0
- package/types/config-cli/define-cli-config.d.ts +10 -8
- package/types/config-cli/define-cli-config.d.ts.map +1 -0
- package/types/config-cli/index.d.ts +2 -1
- package/types/config-cli/index.d.ts.map +1 -0
- package/types/editing/codegen/import-map.d.ts +15 -3
- package/types/editing/codegen/import-map.d.ts.map +1 -0
- package/types/editing/codegen/index.d.ts +3 -2
- package/types/editing/codegen/index.d.ts.map +1 -0
- package/types/editing/constants.d.ts +8 -7
- package/types/editing/constants.d.ts.map +1 -0
- package/types/editing/editing-config-middleware.d.ts +37 -31
- package/types/editing/editing-config-middleware.d.ts.map +1 -0
- package/types/editing/editing-render-middleware.d.ts +47 -44
- package/types/editing/editing-render-middleware.d.ts.map +1 -0
- package/types/editing/feaas-render-middleware.d.ts +35 -32
- package/types/editing/feaas-render-middleware.d.ts.map +1 -0
- package/types/editing/index.d.ts +7 -6
- package/types/editing/index.d.ts.map +1 -0
- package/types/editing/render-middleware.d.ts +26 -25
- package/types/editing/render-middleware.d.ts.map +1 -0
- package/types/editing/utils.d.ts +110 -106
- package/types/editing/utils.d.ts.map +1 -0
- package/types/index.d.ts +25 -24
- package/types/index.d.ts.map +1 -0
- package/types/middleware/app-router-multisite-middleware.d.ts +28 -13
- package/types/middleware/app-router-multisite-middleware.d.ts.map +1 -0
- package/types/middleware/index.d.ts +12 -11
- package/types/middleware/index.d.ts.map +1 -0
- package/types/middleware/locale-middleware.d.ts +35 -32
- package/types/middleware/locale-middleware.d.ts.map +1 -0
- package/types/middleware/middleware.d.ts +135 -127
- package/types/middleware/middleware.d.ts.map +1 -0
- package/types/middleware/multisite-middleware.d.ts +54 -37
- package/types/middleware/multisite-middleware.d.ts.map +1 -0
- package/types/middleware/personalize-middleware.d.ts +81 -65
- package/types/middleware/personalize-middleware.d.ts.map +1 -0
- package/types/middleware/redirects-middleware.d.ts +68 -65
- package/types/middleware/redirects-middleware.d.ts.map +1 -0
- package/types/middleware/robots-middleware.d.ts +15 -13
- package/types/middleware/robots-middleware.d.ts.map +1 -0
- package/types/middleware/sitemap-middleware.d.ts +16 -14
- package/types/middleware/sitemap-middleware.d.ts.map +1 -0
- package/types/monitoring/healthcheck-middleware.d.ts +14 -12
- package/types/monitoring/healthcheck-middleware.d.ts.map +1 -0
- package/types/monitoring/index.d.ts +2 -1
- package/types/monitoring/index.d.ts.map +1 -0
- package/types/route-handler/editing-config-route-handler.d.ts +30 -24
- package/types/route-handler/editing-config-route-handler.d.ts.map +1 -0
- package/types/route-handler/editing-render-route-handler.d.ts +33 -25
- package/types/route-handler/editing-render-route-handler.d.ts.map +1 -0
- package/types/route-handler/index.d.ts +5 -4
- package/types/route-handler/index.d.ts.map +1 -0
- package/types/route-handler/robots-route-handler.d.ts +30 -28
- package/types/route-handler/robots-route-handler.d.ts.map +1 -0
- package/types/route-handler/sitemap-route-handler.d.ts +30 -28
- package/types/route-handler/sitemap-route-handler.d.ts.map +1 -0
- package/types/search/index.d.ts +2 -0
- package/types/search/index.d.ts.map +1 -0
- package/types/services/component-props-service.d.ts +62 -57
- package/types/services/component-props-service.d.ts.map +1 -0
- package/types/sharedTypes/component-props.d.ts +62 -47
- package/types/sharedTypes/component-props.d.ts.map +1 -0
- package/types/sharedTypes/sitecore-page-props.d.ts +14 -9
- package/types/sharedTypes/sitecore-page-props.d.ts.map +1 -0
- package/types/site/index.d.ts +2 -1
- package/types/site/index.d.ts.map +1 -0
- package/types/tools/codegen/import-map.d.ts +10 -0
- package/types/tools/codegen/import-map.d.ts.map +1 -0
- package/types/tools/component-props.loader.d.ts +8 -7
- package/types/tools/component-props.loader.d.ts.map +1 -0
- package/types/tools/generate-map.d.ts +26 -24
- package/types/tools/generate-map.d.ts.map +1 -0
- package/types/tools/index.d.ts +4 -2
- package/types/tools/index.d.ts.map +1 -0
- package/types/tools/templating/byoc-component.d.ts +3 -2
- package/types/tools/templating/byoc-component.d.ts.map +1 -0
- package/types/tools/templating/constants.d.ts +5 -4
- package/types/tools/templating/constants.d.ts.map +1 -0
- package/types/tools/templating/default-component.d.ts +3 -2
- package/types/tools/templating/default-component.d.ts.map +1 -0
- package/types/tools/templating/utils.d.ts +44 -0
- package/types/tools/templating/utils.d.ts.map +1 -0
- package/types/utils/index.d.ts +4 -3
- package/types/utils/index.d.ts.map +1 -0
- package/types/utils/utils.d.ts +34 -24
- package/types/utils/utils.d.ts.map +1 -0
- package/client.js +0 -1
- package/codegen.js +0 -1
- package/config-cli.js +0 -1
- package/config.js +0 -1
- package/editing.js +0 -1
- package/middleware.js +0 -1
- package/monitoring.js +0 -1
- package/route-handler.js +0 -1
- package/site.js +0 -1
- package/tools.js +0 -1
- 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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
src: mediaApi.
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
if (
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
}
|
|
91
|
-
|
|
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
|
-
|
|
19
|
-
|
|
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
|
+
};
|
package/dist/esm/config/index.js
CHANGED
|
@@ -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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
*
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
*
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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';
|