@sitecore-content-sdk/react 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/components/ClientEditingChromesUpdate.js +53 -52
- package/dist/cjs/components/Date.js +49 -45
- package/dist/cjs/components/DefaultEmptyFieldEditingComponents.js +32 -22
- package/dist/cjs/components/{DesignLibrary.js → DesignLibrary/DesignLibrary.js} +161 -202
- package/dist/cjs/components/DesignLibrary/DesignLibraryApp.js +31 -0
- package/dist/cjs/components/DesignLibrary/DesignLibraryClientEvents.js +123 -0
- package/dist/cjs/components/DesignLibrary/DesignLibraryErrorBoundary.js +65 -0
- package/dist/cjs/components/DesignLibrary/DesignLibraryServer.js +193 -0
- package/dist/cjs/components/DesignLibrary/index.js +7 -0
- package/dist/cjs/components/DesignLibrary/models.js +2 -0
- package/dist/cjs/components/EditingScripts.js +44 -43
- package/dist/cjs/components/ErrorBoundary.js +101 -92
- package/dist/cjs/components/FEaaS/BYOCServerWrapper.js +25 -28
- package/dist/cjs/components/FEaaS/BYOCWrapper.js +133 -122
- package/dist/cjs/components/FEaaS/FEaaSSeverWrapper.js +26 -34
- package/dist/cjs/components/FEaaS/FEaaSWrapper.js +84 -78
- package/dist/cjs/components/FEaaS/feaas-utils.js +130 -144
- package/dist/cjs/components/FEaaS/index.js +21 -21
- package/dist/cjs/components/FEaaS/models.js +7 -7
- package/dist/cjs/components/FieldMetadata.js +29 -29
- package/dist/cjs/components/File.js +43 -38
- package/dist/cjs/components/Form.js +100 -92
- package/dist/cjs/components/HiddenRendering.js +23 -23
- package/dist/cjs/components/Image.js +71 -66
- package/dist/cjs/components/Link.js +91 -86
- package/dist/cjs/components/MissingComponent.js +28 -28
- package/dist/cjs/components/Placeholder/AppPlaceholder.js +79 -76
- package/dist/cjs/components/Placeholder/ClientComponentWrapper.js +21 -21
- package/dist/cjs/components/Placeholder/Placeholder.js +144 -110
- package/dist/cjs/components/Placeholder/PlaceholderMetadata.js +68 -63
- package/dist/cjs/components/Placeholder/index.js +25 -25
- package/dist/cjs/components/Placeholder/models.js +18 -18
- package/dist/cjs/components/Placeholder/placeholder-utils.js +226 -226
- package/dist/cjs/components/RichText.js +75 -70
- package/dist/cjs/components/SitecoreProvider.js +62 -52
- package/dist/cjs/components/Text.js +69 -65
- package/dist/cjs/components/sharedTypes/components.js +7 -7
- package/dist/cjs/components/sharedTypes/index.js +18 -18
- package/dist/cjs/components/sharedTypes/props.js +2 -2
- package/dist/cjs/enhancers/withAppPlaceholder.js +21 -21
- package/dist/cjs/enhancers/withComponentMap.js +24 -24
- package/dist/cjs/enhancers/withDatasourceCheck.js +31 -30
- package/dist/cjs/enhancers/withEditorChromes.js +29 -24
- package/dist/cjs/enhancers/withEmptyFieldEditingComponent.js +71 -70
- package/dist/cjs/enhancers/withFieldMetadata.js +68 -67
- package/dist/cjs/enhancers/withLoadImportMap.js +53 -0
- package/dist/cjs/enhancers/withPlaceholder.js +64 -65
- package/dist/cjs/enhancers/withSitecore.js +47 -45
- package/dist/cjs/index.js +86 -85
- package/dist/cjs/rsc-utils/no-rsc.js +5 -5
- package/dist/cjs/rsc-utils/rsc.js +5 -5
- package/dist/cjs/search/index.js +7 -0
- package/dist/cjs/search/useInfiniteSearch.js +136 -0
- package/dist/cjs/search/useSearch.js +107 -0
- package/dist/cjs/search/utils.js +35 -0
- package/dist/cjs/server-actions/update-server-component-action.js +18 -0
- package/dist/cjs/utils.js +38 -38
- package/dist/esm/components/ClientEditingChromesUpdate.js +16 -15
- package/dist/esm/components/Date.js +43 -39
- package/dist/esm/components/DefaultEmptyFieldEditingComponents.js +24 -14
- package/dist/esm/components/{DesignLibrary.js → DesignLibrary/DesignLibrary.js} +124 -164
- package/dist/esm/components/DesignLibrary/DesignLibraryApp.js +24 -0
- package/dist/esm/components/DesignLibrary/DesignLibraryClientEvents.js +84 -0
- package/dist/esm/components/DesignLibrary/DesignLibraryErrorBoundary.js +28 -0
- package/dist/esm/components/DesignLibrary/DesignLibraryServer.js +150 -0
- package/dist/esm/components/DesignLibrary/index.js +2 -0
- package/dist/esm/components/DesignLibrary/models.js +1 -0
- package/dist/esm/components/EditingScripts.js +37 -36
- package/dist/esm/components/ErrorBoundary.js +64 -57
- package/dist/esm/components/FEaaS/BYOCServerWrapper.js +18 -21
- package/dist/esm/components/FEaaS/BYOCWrapper.js +91 -81
- package/dist/esm/components/FEaaS/FEaaSSeverWrapper.js +19 -27
- package/dist/esm/components/FEaaS/FEaaSWrapper.js +43 -37
- package/dist/esm/components/FEaaS/feaas-utils.js +91 -105
- package/dist/esm/components/FEaaS/index.js +6 -6
- package/dist/esm/components/FEaaS/models.js +4 -4
- package/dist/esm/components/FieldMetadata.js +22 -22
- package/dist/esm/components/File.js +36 -31
- package/dist/esm/components/Form.js +62 -54
- package/dist/esm/components/HiddenRendering.js +16 -16
- package/dist/esm/components/Image.js +65 -60
- package/dist/esm/components/Link.js +55 -50
- package/dist/esm/components/MissingComponent.js +21 -21
- package/dist/esm/components/Placeholder/AppPlaceholder.js +72 -69
- package/dist/esm/components/Placeholder/ClientComponentWrapper.js +14 -14
- package/dist/esm/components/Placeholder/Placeholder.js +104 -103
- package/dist/esm/components/Placeholder/PlaceholderMetadata.js +61 -56
- package/dist/esm/components/Placeholder/index.js +4 -4
- package/dist/esm/components/Placeholder/models.js +15 -15
- package/dist/esm/components/Placeholder/placeholder-utils.js +214 -214
- package/dist/esm/components/RichText.js +39 -34
- package/dist/esm/components/SitecoreProvider.js +55 -45
- package/dist/esm/components/Text.js +63 -59
- package/dist/esm/components/sharedTypes/components.js +4 -4
- package/dist/esm/components/sharedTypes/index.js +2 -2
- package/dist/esm/components/sharedTypes/props.js +1 -1
- package/dist/esm/enhancers/withAppPlaceholder.js +14 -14
- package/dist/esm/enhancers/withComponentMap.js +18 -18
- package/dist/esm/enhancers/withDatasourceCheck.js +23 -22
- package/dist/esm/enhancers/withEditorChromes.js +22 -17
- package/dist/esm/enhancers/withEmptyFieldEditingComponent.js +35 -34
- package/dist/esm/enhancers/withFieldMetadata.js +32 -31
- package/dist/esm/enhancers/withLoadImportMap.js +17 -0
- package/dist/esm/enhancers/withPlaceholder.js +58 -59
- package/dist/esm/enhancers/withSitecore.js +40 -38
- package/dist/esm/index.js +29 -29
- package/dist/esm/rsc-utils/no-rsc.js +2 -2
- package/dist/esm/rsc-utils/rsc.js +2 -2
- package/dist/esm/search/index.js +2 -0
- package/dist/esm/search/useInfiniteSearch.js +132 -0
- package/dist/esm/search/useSearch.js +103 -0
- package/dist/esm/search/utils.js +30 -0
- package/dist/esm/server-actions/update-server-component-action.js +15 -0
- package/dist/esm/utils.js +33 -33
- package/global.d.ts +17 -0
- package/package.json +27 -11
- package/search.d.ts +1 -0
- package/types/components/ClientEditingChromesUpdate.d.ts +8 -6
- package/types/components/ClientEditingChromesUpdate.d.ts.map +1 -0
- package/types/components/Date.d.ts +25 -16
- package/types/components/Date.d.ts.map +1 -0
- package/types/components/DefaultEmptyFieldEditingComponents.d.ts +20 -9
- package/types/components/DefaultEmptyFieldEditingComponents.d.ts.map +1 -0
- package/types/components/DesignLibrary/DesignLibrary.d.ts +20 -0
- package/types/components/DesignLibrary/DesignLibrary.d.ts.map +1 -0
- package/types/components/DesignLibrary/DesignLibraryApp.d.ts +14 -0
- package/types/components/DesignLibrary/DesignLibraryApp.d.ts.map +1 -0
- package/types/components/DesignLibrary/DesignLibraryClientEvents.d.ts +21 -0
- package/types/components/DesignLibrary/DesignLibraryClientEvents.d.ts.map +1 -0
- package/types/components/DesignLibrary/DesignLibraryErrorBoundary.d.ts +19 -0
- package/types/components/DesignLibrary/DesignLibraryErrorBoundary.d.ts.map +1 -0
- package/types/components/DesignLibrary/DesignLibraryServer.d.ts +38 -0
- package/types/components/DesignLibrary/DesignLibraryServer.d.ts.map +1 -0
- package/types/components/DesignLibrary/index.d.ts +3 -0
- package/types/components/DesignLibrary/index.d.ts.map +1 -0
- package/types/components/DesignLibrary/models.d.ts +67 -0
- package/types/components/DesignLibrary/models.d.ts.map +1 -0
- package/types/components/EditingScripts.d.ts +9 -7
- package/types/components/EditingScripts.d.ts.map +1 -0
- package/types/components/ErrorBoundary.d.ts +29 -17
- package/types/components/ErrorBoundary.d.ts.map +1 -0
- package/types/components/FEaaS/BYOCServerWrapper.d.ts +10 -3
- package/types/components/FEaaS/BYOCServerWrapper.d.ts.map +1 -0
- package/types/components/FEaaS/BYOCWrapper.d.ts +29 -25
- package/types/components/FEaaS/BYOCWrapper.d.ts.map +1 -0
- package/types/components/FEaaS/FEaaSSeverWrapper.d.ts +10 -8
- package/types/components/FEaaS/FEaaSSeverWrapper.d.ts.map +1 -0
- package/types/components/FEaaS/FEaaSWrapper.d.ts +14 -7
- package/types/components/FEaaS/FEaaSWrapper.d.ts.map +1 -0
- package/types/components/FEaaS/feaas-utils.d.ts +24 -21
- package/types/components/FEaaS/feaas-utils.d.ts.map +1 -0
- package/types/components/FEaaS/index.d.ts +7 -6
- package/types/components/FEaaS/index.d.ts.map +1 -0
- package/types/components/FEaaS/models.d.ts +136 -125
- package/types/components/FEaaS/models.d.ts.map +1 -0
- package/types/components/FieldMetadata.d.ts +18 -17
- package/types/components/FieldMetadata.d.ts.map +1 -0
- package/types/components/File.d.ts +28 -18
- package/types/components/File.d.ts.map +1 -0
- package/types/components/Form.d.ts +35 -29
- package/types/components/Form.d.ts.map +1 -0
- package/types/components/HiddenRendering.d.ts +3 -2
- package/types/components/HiddenRendering.d.ts.map +1 -0
- package/types/components/Image.d.ts +70 -48
- package/types/components/Image.d.ts.map +1 -0
- package/types/components/Link.d.ts +45 -27
- package/types/components/Link.d.ts.map +1 -0
- package/types/components/MissingComponent.d.ts +9 -8
- package/types/components/MissingComponent.d.ts.map +1 -0
- package/types/components/Placeholder/AppPlaceholder.d.ts +12 -10
- package/types/components/Placeholder/AppPlaceholder.d.ts.map +1 -0
- package/types/components/Placeholder/ClientComponentWrapper.d.ts +10 -9
- package/types/components/Placeholder/ClientComponentWrapper.d.ts.map +1 -0
- package/types/components/Placeholder/Placeholder.d.ts +33 -28
- package/types/components/Placeholder/Placeholder.d.ts.map +1 -0
- package/types/components/Placeholder/PlaceholderMetadata.d.ts +35 -28
- package/types/components/Placeholder/PlaceholderMetadata.d.ts.map +1 -0
- package/types/components/Placeholder/index.d.ts +6 -5
- package/types/components/Placeholder/index.d.ts.map +1 -0
- package/types/components/Placeholder/models.d.ts +149 -140
- package/types/components/Placeholder/models.d.ts.map +1 -0
- package/types/components/Placeholder/placeholder-utils.d.ts +52 -53
- package/types/components/Placeholder/placeholder-utils.d.ts.map +1 -0
- package/types/components/RichText.d.ts +31 -17
- package/types/components/RichText.d.ts.map +1 -0
- package/types/components/SitecoreProvider.d.ts +68 -48
- package/types/components/SitecoreProvider.d.ts.map +1 -0
- package/types/components/Text.d.ts +29 -20
- package/types/components/Text.d.ts.map +1 -0
- package/types/components/sharedTypes/components.d.ts +50 -38
- package/types/components/sharedTypes/components.d.ts.map +1 -0
- package/types/components/sharedTypes/index.d.ts +3 -2
- package/types/components/sharedTypes/index.d.ts.map +1 -0
- package/types/components/sharedTypes/props.d.ts +15 -14
- package/types/components/sharedTypes/props.d.ts.map +1 -0
- package/types/enhancers/withAppPlaceholder.d.ts +16 -15
- package/types/enhancers/withAppPlaceholder.d.ts.map +1 -0
- package/types/enhancers/withComponentMap.d.ts +13 -12
- package/types/enhancers/withComponentMap.d.ts.map +1 -0
- package/types/enhancers/withDatasourceCheck.d.ts +23 -21
- package/types/enhancers/withDatasourceCheck.d.ts.map +1 -0
- package/types/enhancers/withEditorChromes.d.ts +8 -2
- package/types/enhancers/withEditorChromes.d.ts.map +1 -0
- package/types/enhancers/withEmptyFieldEditingComponent.d.ts +29 -27
- package/types/enhancers/withEmptyFieldEditingComponent.d.ts.map +1 -0
- package/types/enhancers/withFieldMetadata.d.ts +18 -16
- package/types/enhancers/withFieldMetadata.d.ts.map +1 -0
- package/types/enhancers/withLoadImportMap.d.ts +22 -0
- package/types/enhancers/withLoadImportMap.d.ts.map +1 -0
- package/types/enhancers/withPlaceholder.d.ts +37 -35
- package/types/enhancers/withPlaceholder.d.ts.map +1 -0
- package/types/enhancers/withSitecore.d.ts +63 -48
- package/types/enhancers/withSitecore.d.ts.map +1 -0
- package/types/index.d.ts +31 -30
- package/types/index.d.ts.map +1 -0
- package/types/rsc-utils/no-rsc.d.ts +2 -1
- package/types/rsc-utils/no-rsc.d.ts.map +1 -0
- package/types/rsc-utils/rsc.d.ts +2 -1
- package/types/rsc-utils/rsc.d.ts.map +1 -0
- package/types/search/index.d.ts +4 -0
- package/types/search/index.d.ts.map +1 -0
- package/types/search/useInfiniteSearch.d.ts +116 -0
- package/types/search/useInfiniteSearch.d.ts.map +1 -0
- package/types/search/useSearch.d.ts +107 -0
- package/types/search/useSearch.d.ts.map +1 -0
- package/types/search/utils.d.ts +19 -0
- package/types/search/utils.d.ts.map +1 -0
- package/types/server-actions/update-server-component-action.d.ts +25 -0
- package/types/server-actions/update-server-component-action.d.ts.map +1 -0
- package/types/utils.d.ts +18 -17
- package/types/utils.d.ts.map +1 -0
- package/types/components/DesignLibrary.d.ts +0 -26
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
const baseStyles = {
|
|
3
|
-
backgroundSize: '3px 3px',
|
|
4
|
-
display: 'flex',
|
|
5
|
-
justifyContent: 'center',
|
|
6
|
-
alignItems: 'center',
|
|
7
|
-
padding: '30px',
|
|
8
|
-
color: '#aaa',
|
|
9
|
-
};
|
|
10
|
-
const backgroundImageStyle = {
|
|
11
|
-
backgroundImage: 'linear-gradient(45deg, #ffffff 25%, #dcdcdc 25%, #dcdcdc 50%, #ffffff 50%, #ffffff 75%, #dcdcdc 75%, #dcdcdc 100%)',
|
|
12
|
-
};
|
|
13
|
-
export const HiddenRendering = () => {
|
|
14
|
-
const styles = process.env.NODE_ENV === 'test' ? baseStyles : Object.assign(Object.assign({}, baseStyles), backgroundImageStyle);
|
|
15
|
-
return React.createElement("div", { style: styles }, "The component is hidden");
|
|
16
|
-
};
|
|
1
|
+
import React from 'react';
|
|
2
|
+
const baseStyles = {
|
|
3
|
+
backgroundSize: '3px 3px',
|
|
4
|
+
display: 'flex',
|
|
5
|
+
justifyContent: 'center',
|
|
6
|
+
alignItems: 'center',
|
|
7
|
+
padding: '30px',
|
|
8
|
+
color: '#aaa',
|
|
9
|
+
};
|
|
10
|
+
const backgroundImageStyle = {
|
|
11
|
+
backgroundImage: 'linear-gradient(45deg, #ffffff 25%, #dcdcdc 25%, #dcdcdc 50%, #ffffff 50%, #ffffff 75%, #dcdcdc 75%, #dcdcdc 100%)',
|
|
12
|
+
};
|
|
13
|
+
export const HiddenRendering = () => {
|
|
14
|
+
const styles = process.env.NODE_ENV === 'test' ? baseStyles : Object.assign(Object.assign({}, baseStyles), backgroundImageStyle);
|
|
15
|
+
return React.createElement("div", { style: styles }, "The component is hidden");
|
|
16
|
+
};
|
|
@@ -1,60 +1,65 @@
|
|
|
1
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
-
var t = {};
|
|
3
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
-
t[p] = s[p];
|
|
5
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
-
t[p[i]] = s[p[i]];
|
|
9
|
-
}
|
|
10
|
-
return t;
|
|
11
|
-
};
|
|
12
|
-
/* eslint-disable no-unused-vars */
|
|
13
|
-
import { mediaApi } from '@sitecore-content-sdk/core/media';
|
|
14
|
-
import React from 'react';
|
|
15
|
-
import { addClassName } from '../utils';
|
|
16
|
-
import { withFieldMetadata } from '../enhancers/withFieldMetadata';
|
|
17
|
-
import { withEmptyFieldEditingComponent } from '../enhancers/withEmptyFieldEditingComponent';
|
|
18
|
-
import { DefaultEmptyFieldEditingComponentImage } from './DefaultEmptyFieldEditingComponents';
|
|
19
|
-
import { isFieldValueEmpty } from '@sitecore-content-sdk/core/layout';
|
|
20
|
-
const getImageAttrs = (_a, imageParams, mediaUrlPrefix) => {
|
|
21
|
-
var { src, srcSet } = _a, otherAttrs = __rest(_a, ["src", "srcSet"]);
|
|
22
|
-
if (!src) {
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
addClassName(otherAttrs);
|
|
26
|
-
const newAttrs = Object.assign({}, otherAttrs);
|
|
27
|
-
// update image URL for content sdk handler and image rendering params
|
|
28
|
-
const resolvedSrc = mediaApi.updateImageUrl(src, imageParams, mediaUrlPrefix);
|
|
29
|
-
if (srcSet) {
|
|
30
|
-
// replace with HTML-formatted srcset, including updated image URLs
|
|
31
|
-
newAttrs.srcSet = mediaApi.getSrcSet(resolvedSrc, srcSet, imageParams, mediaUrlPrefix);
|
|
32
|
-
}
|
|
33
|
-
// always output original src as fallback for older browsers
|
|
34
|
-
newAttrs.src = resolvedSrc;
|
|
35
|
-
return newAttrs;
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
},
|
|
60
|
-
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
/* eslint-disable no-unused-vars */
|
|
13
|
+
import { mediaApi } from '@sitecore-content-sdk/core/media';
|
|
14
|
+
import React from 'react';
|
|
15
|
+
import { addClassName } from '../utils';
|
|
16
|
+
import { withFieldMetadata } from '../enhancers/withFieldMetadata';
|
|
17
|
+
import { withEmptyFieldEditingComponent } from '../enhancers/withEmptyFieldEditingComponent';
|
|
18
|
+
import { DefaultEmptyFieldEditingComponentImage } from './DefaultEmptyFieldEditingComponents';
|
|
19
|
+
import { isFieldValueEmpty } from '@sitecore-content-sdk/core/layout';
|
|
20
|
+
const getImageAttrs = (_a, imageParams, mediaUrlPrefix) => {
|
|
21
|
+
var { src, srcSet } = _a, otherAttrs = __rest(_a, ["src", "srcSet"]);
|
|
22
|
+
if (!src) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
addClassName(otherAttrs);
|
|
26
|
+
const newAttrs = Object.assign({}, otherAttrs);
|
|
27
|
+
// update image URL for content sdk handler and image rendering params
|
|
28
|
+
const resolvedSrc = mediaApi.updateImageUrl(src, imageParams, mediaUrlPrefix);
|
|
29
|
+
if (srcSet) {
|
|
30
|
+
// replace with HTML-formatted srcset, including updated image URLs
|
|
31
|
+
newAttrs.srcSet = mediaApi.getSrcSet(resolvedSrc, srcSet, imageParams, mediaUrlPrefix);
|
|
32
|
+
}
|
|
33
|
+
// always output original src as fallback for older browsers
|
|
34
|
+
newAttrs.src = resolvedSrc;
|
|
35
|
+
return newAttrs;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* The Image component.
|
|
39
|
+
* @param {ImageProps} props component props
|
|
40
|
+
* @public
|
|
41
|
+
*/
|
|
42
|
+
export const Image = withFieldMetadata(withEmptyFieldEditingComponent((_a) => {
|
|
43
|
+
var { editable = true, imageParams, field, mediaUrlPrefix } = _a, otherProps = __rest(_a, ["editable", "imageParams", "field", "mediaUrlPrefix"]);
|
|
44
|
+
const dynamicMedia = field;
|
|
45
|
+
if (isFieldValueEmpty(dynamicMedia)) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
// some wise-guy/gal is passing in a 'raw' image object value
|
|
49
|
+
const img = dynamicMedia.src
|
|
50
|
+
? field
|
|
51
|
+
: dynamicMedia.value;
|
|
52
|
+
if (!img) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
// prevent metadata from being passed to the img tag
|
|
56
|
+
if (img.metadata) {
|
|
57
|
+
delete img.metadata;
|
|
58
|
+
}
|
|
59
|
+
const attrs = getImageAttrs(Object.assign(Object.assign({}, img), otherProps), imageParams, mediaUrlPrefix);
|
|
60
|
+
if (attrs) {
|
|
61
|
+
return React.createElement("img", Object.assign({}, attrs));
|
|
62
|
+
}
|
|
63
|
+
return null; // we can't handle the truth
|
|
64
|
+
}, { defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentImage }));
|
|
65
|
+
Image.displayName = 'Image';
|
|
@@ -1,50 +1,55 @@
|
|
|
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, { forwardRef } from 'react';
|
|
14
|
-
import { isFieldValueEmpty } from '@sitecore-content-sdk/core/layout';
|
|
15
|
-
import { withFieldMetadata } from '../enhancers/withFieldMetadata';
|
|
16
|
-
import { withEmptyFieldEditingComponent } from '../enhancers/withEmptyFieldEditingComponent';
|
|
17
|
-
import { DefaultEmptyFieldEditingComponentText } from './DefaultEmptyFieldEditingComponents';
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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, { forwardRef } from 'react';
|
|
14
|
+
import { isFieldValueEmpty } from '@sitecore-content-sdk/core/layout';
|
|
15
|
+
import { withFieldMetadata } from '../enhancers/withFieldMetadata';
|
|
16
|
+
import { withEmptyFieldEditingComponent } from '../enhancers/withEmptyFieldEditingComponent';
|
|
17
|
+
import { DefaultEmptyFieldEditingComponentText } from './DefaultEmptyFieldEditingComponents';
|
|
18
|
+
/**
|
|
19
|
+
* The Link component.
|
|
20
|
+
* @param {LinkProps} props component props
|
|
21
|
+
* @public
|
|
22
|
+
*/
|
|
23
|
+
export const Link = withFieldMetadata(withEmptyFieldEditingComponent(forwardRef(
|
|
24
|
+
// eslint-disable-next-line no-unused-vars
|
|
25
|
+
(_a, ref) => {
|
|
26
|
+
var { field, editable = true, showLinkTextWithChildrenPresent } = _a, otherProps = __rest(_a, ["field", "editable", "showLinkTextWithChildrenPresent"]);
|
|
27
|
+
const children = otherProps.children;
|
|
28
|
+
const dynamicField = field;
|
|
29
|
+
if (isFieldValueEmpty(dynamicField)) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
// handle link directly on field for forgetful devs
|
|
33
|
+
const link = dynamicField.href
|
|
34
|
+
? field
|
|
35
|
+
: dynamicField.value;
|
|
36
|
+
if (!link) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
const anchor = link.linktype !== 'anchor' && link.anchor ? `#${link.anchor}` : '';
|
|
40
|
+
const querystring = link.querystring ? `?${link.querystring}` : '';
|
|
41
|
+
const anchorAttrs = {
|
|
42
|
+
href: `${link.href}${querystring}${anchor}`,
|
|
43
|
+
className: link.class,
|
|
44
|
+
title: link.title,
|
|
45
|
+
target: link.target,
|
|
46
|
+
};
|
|
47
|
+
if (anchorAttrs.target === '_blank' && !anchorAttrs.rel) {
|
|
48
|
+
// information disclosure attack prevention keeps target blank site from getting ref to window.opener
|
|
49
|
+
anchorAttrs.rel = 'noopener noreferrer';
|
|
50
|
+
}
|
|
51
|
+
const linkText = showLinkTextWithChildrenPresent || !children ? link.text || link.href : null;
|
|
52
|
+
const element = React.createElement('a', Object.assign(Object.assign(Object.assign({}, anchorAttrs), otherProps), { key: 'link', ref }), linkText, children);
|
|
53
|
+
return React.createElement(React.Fragment, null, element);
|
|
54
|
+
}), { defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText, isForwardRef: true }), true);
|
|
55
|
+
Link.displayName = 'Link';
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export const MissingComponent = (props) => {
|
|
3
|
-
const componentName = props.rendering && props.rendering.componentName
|
|
4
|
-
? props.rendering.componentName
|
|
5
|
-
: 'Unnamed Component';
|
|
6
|
-
// error override would mean component is not unimplemented
|
|
7
|
-
!props.errorOverride &&
|
|
8
|
-
console.log(`Component props for unimplemented '${componentName}' component`, props);
|
|
9
|
-
const errorMessage = props.errorOverride ||
|
|
10
|
-
'Content SDK component is missing React implementation. See the developer console for more information.';
|
|
11
|
-
return (React.createElement("div", { style: {
|
|
12
|
-
background: 'darkorange',
|
|
13
|
-
outline: '5px solid orange',
|
|
14
|
-
padding: '10px',
|
|
15
|
-
color: 'white',
|
|
16
|
-
maxWidth: '500px',
|
|
17
|
-
} },
|
|
18
|
-
React.createElement("h2", null, componentName),
|
|
19
|
-
React.createElement("p", null, errorMessage)));
|
|
20
|
-
};
|
|
21
|
-
MissingComponent.displayName = 'MissingComponent';
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export const MissingComponent = (props) => {
|
|
3
|
+
const componentName = props.rendering && props.rendering.componentName
|
|
4
|
+
? props.rendering.componentName
|
|
5
|
+
: 'Unnamed Component';
|
|
6
|
+
// error override would mean component is not unimplemented
|
|
7
|
+
!props.errorOverride &&
|
|
8
|
+
console.log(`Component props for unimplemented '${componentName}' component`, props);
|
|
9
|
+
const errorMessage = props.errorOverride ||
|
|
10
|
+
'Content SDK component is missing React implementation. See the developer console for more information.';
|
|
11
|
+
return (React.createElement("div", { style: {
|
|
12
|
+
background: 'darkorange',
|
|
13
|
+
outline: '5px solid orange',
|
|
14
|
+
padding: '10px',
|
|
15
|
+
color: 'white',
|
|
16
|
+
maxWidth: '500px',
|
|
17
|
+
} },
|
|
18
|
+
React.createElement("h2", null, componentName),
|
|
19
|
+
React.createElement("p", null, errorMessage)));
|
|
20
|
+
};
|
|
21
|
+
MissingComponent.displayName = 'MissingComponent';
|
|
@@ -1,69 +1,72 @@
|
|
|
1
|
-
import { getAppComponentProps, getComponentForRendering, getPlaceholderRenderings, renderEmptyPlaceholder, } from './placeholder-utils';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { PlaceholderMetadata } from './PlaceholderMetadata';
|
|
4
|
-
import ErrorBoundary from '../ErrorBoundary';
|
|
5
|
-
import { ClientComponentWrapper } from './ClientComponentWrapper';
|
|
6
|
-
import { rsc } from '#rsc-env';
|
|
7
|
-
/**
|
|
8
|
-
* The implemention of placeholder compatible with React Server Components.
|
|
9
|
-
* Renders components from the layout data for the given placeholder name, with consideration for page edit mode.
|
|
10
|
-
* Pulls components from the provided component map.
|
|
11
|
-
* @param {AppPlaceholderProps} props Placeholder props
|
|
12
|
-
* @returns {React.ReactNode | React.ReactElement[]} rendered component(s)
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
return
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
|
|
1
|
+
import { getAppComponentProps, getComponentForRendering, getPlaceholderRenderings, renderEmptyPlaceholder, } from './placeholder-utils';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { PlaceholderMetadata } from './PlaceholderMetadata';
|
|
4
|
+
import ErrorBoundary from '../ErrorBoundary';
|
|
5
|
+
import { ClientComponentWrapper } from './ClientComponentWrapper';
|
|
6
|
+
import { rsc } from '#rsc-env';
|
|
7
|
+
/**
|
|
8
|
+
* The implemention of placeholder compatible with React Server Components.
|
|
9
|
+
* Renders components from the layout data for the given placeholder name, with consideration for page edit mode.
|
|
10
|
+
* Pulls components from the provided component map.
|
|
11
|
+
* @param {AppPlaceholderProps} props Placeholder props
|
|
12
|
+
* @returns {React.ReactNode | React.ReactElement[]} rendered component(s)
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
export const AppPlaceholder = (props) => {
|
|
16
|
+
const { rendering: parentRendering, componentMap, page } = props;
|
|
17
|
+
const placeholderRenderings = getPlaceholderRenderings(parentRendering, props.name, page.mode.isEditing);
|
|
18
|
+
const components = placeholderRenderings
|
|
19
|
+
.map((rendering, index) => {
|
|
20
|
+
const { component: Component, isEmpty, componentType, dynamic, } = getComponentForRendering(rendering, props.name, componentMap, props.hiddenRenderingComponent, props.missingComponentComponent);
|
|
21
|
+
const isClient = componentType === 'client';
|
|
22
|
+
const key = rendering.uid || `component-${index}`;
|
|
23
|
+
// Use rsc context to determine the current runtime
|
|
24
|
+
const componentRuntime = rsc ? 'server' : 'client';
|
|
25
|
+
const renderedProps = getAppComponentProps(props, rendering);
|
|
26
|
+
const finalRenderedProps = props.modifyComponentProps
|
|
27
|
+
? props.modifyComponentProps(renderedProps)
|
|
28
|
+
: renderedProps;
|
|
29
|
+
// Client wrapper is required only when component crosses boundary from server to client.
|
|
30
|
+
// It happens when component is marker as client and rendered in RSC context.
|
|
31
|
+
// Also, it is not required when component is hidden or empty, as it will be rendered whthout boundary crossing.
|
|
32
|
+
const useClientWrapper = isClient && rsc && !isEmpty;
|
|
33
|
+
let rendered = useClientWrapper ? (React.createElement(ClientComponentWrapper, { rendering: rendering, componentProps: finalRenderedProps, placeholderName: props.name, key: key })) : (React.createElement(Component, Object.assign({ key: key }, finalRenderedProps, { rendering: rendering, page: page, componentMap: componentMap })));
|
|
34
|
+
if (!isEmpty) {
|
|
35
|
+
const errorBoundaryKey = rendered.type + '-' + index;
|
|
36
|
+
const disableSuspense = props.disableSuspense || false;
|
|
37
|
+
rendered = (React.createElement(ErrorBoundary, { "data-testid": "error-boundary", key: errorBoundaryKey, errorComponent: props.errorComponent, componentLoadingMessage: props.componentLoadingMessage, isDynamic: dynamic, disableSuspense: disableSuspense, rendering: rendered.props.rendering }, rendered));
|
|
38
|
+
}
|
|
39
|
+
// if in edit mode then emit shallow chromes for hydration in Pages
|
|
40
|
+
if (page.mode.isEditing) {
|
|
41
|
+
const key = rendering.uid || `component-${index}`;
|
|
42
|
+
return (React.createElement(PlaceholderMetadata, { key: key, rendering: rendering, componentRuntime: componentRuntime }, rendered));
|
|
43
|
+
}
|
|
44
|
+
return rendered;
|
|
45
|
+
})
|
|
46
|
+
.filter((element) => element);
|
|
47
|
+
const finalRendering = page.mode.isEditing
|
|
48
|
+
? [
|
|
49
|
+
React.createElement(PlaceholderMetadata, { key: parentRendering.uid, placeholderName: props.name, rendering: parentRendering }, components),
|
|
50
|
+
]
|
|
51
|
+
: components;
|
|
52
|
+
const placeholderEmpty = !placeholderRenderings.length;
|
|
53
|
+
if (placeholderEmpty) {
|
|
54
|
+
const rendered = props.renderEmpty ? props.renderEmpty(finalRendering) : finalRendering;
|
|
55
|
+
return page.mode.isEditing ? renderEmptyPlaceholder(rendered) : rendered;
|
|
56
|
+
}
|
|
57
|
+
if (props.render) {
|
|
58
|
+
return props.render(components, placeholderRenderings, props);
|
|
59
|
+
}
|
|
60
|
+
else if (props.renderEach) {
|
|
61
|
+
const renderEach = props.renderEach;
|
|
62
|
+
return finalRendering.map((component, index) => {
|
|
63
|
+
if (component && component.props && component.props.type === 'text/sitecore') {
|
|
64
|
+
return component;
|
|
65
|
+
}
|
|
66
|
+
return renderEach(component, index);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
return finalRendering;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { ComponentMapReactContext } from '../SitecoreProvider';
|
|
3
|
-
import { useContext } from 'react';
|
|
4
|
-
import React from 'react';
|
|
5
|
-
import { useSitecore } from '../../enhancers/withSitecore';
|
|
6
|
-
import { getComponentForRendering } from './placeholder-utils';
|
|
7
|
-
export const ClientComponentWrapper = (props) => {
|
|
8
|
-
const { page } = useSitecore();
|
|
9
|
-
const componentMap = useContext(ComponentMapReactContext);
|
|
10
|
-
const componentPropsWithContext = Object.assign(Object.assign({}, props.componentProps), { rendering: props.rendering, componentMap,
|
|
11
|
-
page });
|
|
12
|
-
const { component: Component } = getComponentForRendering(props.rendering, props.placeholderName, componentMap);
|
|
13
|
-
return React.createElement(Component, Object.assign({}, componentPropsWithContext));
|
|
14
|
-
};
|
|
1
|
+
'use client';
|
|
2
|
+
import { ComponentMapReactContext } from '../SitecoreProvider';
|
|
3
|
+
import { useContext } from 'react';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { useSitecore } from '../../enhancers/withSitecore';
|
|
6
|
+
import { getComponentForRendering } from './placeholder-utils';
|
|
7
|
+
export const ClientComponentWrapper = (props) => {
|
|
8
|
+
const { page } = useSitecore();
|
|
9
|
+
const componentMap = useContext(ComponentMapReactContext);
|
|
10
|
+
const componentPropsWithContext = Object.assign(Object.assign({}, props.componentProps), { rendering: props.rendering, componentMap,
|
|
11
|
+
page });
|
|
12
|
+
const { component: Component } = getComponentForRendering(props.rendering, props.placeholderName, componentMap);
|
|
13
|
+
return React.createElement(Component, Object.assign({}, componentPropsWithContext));
|
|
14
|
+
};
|