@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,59 +1,63 @@
|
|
|
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 from 'react';
|
|
14
|
-
import { withFieldMetadata } from '../enhancers/withFieldMetadata';
|
|
15
|
-
import { withEmptyFieldEditingComponent } from '../enhancers/withEmptyFieldEditingComponent';
|
|
16
|
-
import { DefaultEmptyFieldEditingComponentText } from './DefaultEmptyFieldEditingComponents';
|
|
17
|
-
import { isFieldValueEmpty } from '@sitecore-content-sdk/core/layout';
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if (
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
|
|
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 from 'react';
|
|
14
|
+
import { withFieldMetadata } from '../enhancers/withFieldMetadata';
|
|
15
|
+
import { withEmptyFieldEditingComponent } from '../enhancers/withEmptyFieldEditingComponent';
|
|
16
|
+
import { DefaultEmptyFieldEditingComponentText } from './DefaultEmptyFieldEditingComponents';
|
|
17
|
+
import { isFieldValueEmpty } from '@sitecore-content-sdk/core/layout';
|
|
18
|
+
/**
|
|
19
|
+
* The Text component.
|
|
20
|
+
* @public
|
|
21
|
+
*/
|
|
22
|
+
export const Text = withFieldMetadata(withEmptyFieldEditingComponent((_a) => {
|
|
23
|
+
var { field, tag, editable = true, encode = true } = _a, otherProps = __rest(_a, ["field", "tag", "editable", "encode"]);
|
|
24
|
+
if (isFieldValueEmpty(field)) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
// can't use editable value if we want to output unencoded
|
|
28
|
+
if (!encode) {
|
|
29
|
+
// eslint-disable-next-line no-param-reassign, no-unused-vars
|
|
30
|
+
editable = false;
|
|
31
|
+
}
|
|
32
|
+
let output = field.value === undefined ? '' : field.value;
|
|
33
|
+
// when string value isn't formatted, we should format line breaks
|
|
34
|
+
const splitted = String(output).split('\n');
|
|
35
|
+
if (splitted.length) {
|
|
36
|
+
const formatted = [];
|
|
37
|
+
splitted.forEach((str, i) => {
|
|
38
|
+
const isLast = i === splitted.length - 1;
|
|
39
|
+
formatted.push(str);
|
|
40
|
+
if (!isLast) {
|
|
41
|
+
formatted.push(React.createElement("br", { key: i }));
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
output = formatted;
|
|
45
|
+
}
|
|
46
|
+
let children = null;
|
|
47
|
+
const htmlProps = Object.assign({}, otherProps);
|
|
48
|
+
if (!encode) {
|
|
49
|
+
htmlProps.dangerouslySetInnerHTML = {
|
|
50
|
+
__html: output,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
children = output;
|
|
55
|
+
}
|
|
56
|
+
if (tag || !encode) {
|
|
57
|
+
return React.createElement(tag || 'span', htmlProps, children);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
return React.createElement(React.Fragment, null, children);
|
|
61
|
+
}
|
|
62
|
+
}, { defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText }));
|
|
63
|
+
Text.displayName = 'Text';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SXA uses custom default export name
|
|
3
|
-
*/
|
|
4
|
-
export const DEFAULT_EXPORT_NAME = 'Default';
|
|
1
|
+
/**
|
|
2
|
+
* SXA uses custom default export name
|
|
3
|
+
*/
|
|
4
|
+
export const DEFAULT_EXPORT_NAME = 'Default';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './components';
|
|
2
|
-
export * from './props';
|
|
1
|
+
export * from './components';
|
|
2
|
+
export * from './props';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { AppPlaceholder } from '../components/Placeholder/AppPlaceholder';
|
|
3
|
-
export const withAppPlaceholder = (Component) => {
|
|
4
|
-
return (props) => {
|
|
5
|
-
const placeholders = props.rendering.placeholders;
|
|
6
|
-
const phProps = {};
|
|
7
|
-
for (const placeholder of Object.keys(placeholders)) {
|
|
8
|
-
phProps[placeholder] = (React.createElement(AppPlaceholder, { name: placeholder, rendering: props.rendering, componentMap: props.componentMap, page: props.page }));
|
|
9
|
-
}
|
|
10
|
-
const displayName = Component.displayName || Component.name || 'Component';
|
|
11
|
-
const propsCopy = Object.assign(Object.assign({}, props), { displayName });
|
|
12
|
-
return React.createElement(Component, Object.assign({}, propsCopy, { placeholders: phProps }));
|
|
13
|
-
};
|
|
14
|
-
};
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { AppPlaceholder } from '../components/Placeholder/AppPlaceholder';
|
|
3
|
+
export const withAppPlaceholder = (Component) => {
|
|
4
|
+
return (props) => {
|
|
5
|
+
const placeholders = props.rendering.placeholders || {};
|
|
6
|
+
const phProps = {};
|
|
7
|
+
for (const placeholder of Object.keys(placeholders)) {
|
|
8
|
+
phProps[placeholder] = (React.createElement(AppPlaceholder, { name: placeholder, rendering: props.rendering, componentMap: props.componentMap, page: props.page }));
|
|
9
|
+
}
|
|
10
|
+
const displayName = Component.displayName || Component.name || 'Component';
|
|
11
|
+
const propsCopy = Object.assign(Object.assign({}, props), { displayName });
|
|
12
|
+
return React.createElement(Component, Object.assign({}, propsCopy, { placeholders: phProps }));
|
|
13
|
+
};
|
|
14
|
+
};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { ComponentMapReactContext } from '../components/SitecoreProvider';
|
|
3
|
-
import { useContext } from 'react';
|
|
4
|
-
/**
|
|
5
|
-
* @param {React.ComponentClass<T> | React.FC<T>} Component
|
|
6
|
-
*/
|
|
7
|
-
export function withComponentMap(Component) {
|
|
8
|
-
/**
|
|
9
|
-
* @param {T} props - props to pass to the wrapped component
|
|
10
|
-
* @returns {JSX.Element} - the rendered component
|
|
11
|
-
*/
|
|
12
|
-
function WithComponentMap(props) {
|
|
13
|
-
const context = useContext(ComponentMapReactContext);
|
|
14
|
-
return React.createElement(Component, Object.assign({}, props, { componentMap: props.componentMap || context }));
|
|
15
|
-
}
|
|
16
|
-
WithComponentMap.displayName = `withComponentMap(${Component.displayName || Component.name || 'Anonymous'})`;
|
|
17
|
-
return WithComponentMap;
|
|
18
|
-
}
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ComponentMapReactContext } from '../components/SitecoreProvider';
|
|
3
|
+
import { useContext } from 'react';
|
|
4
|
+
/**
|
|
5
|
+
* @param {React.ComponentClass<T> | React.FC<T>} Component
|
|
6
|
+
*/
|
|
7
|
+
export function withComponentMap(Component) {
|
|
8
|
+
/**
|
|
9
|
+
* @param {T} props - props to pass to the wrapped component
|
|
10
|
+
* @returns {JSX.Element} - the rendered component
|
|
11
|
+
*/
|
|
12
|
+
function WithComponentMap(props) {
|
|
13
|
+
const context = useContext(ComponentMapReactContext);
|
|
14
|
+
return React.createElement(Component, Object.assign({}, props, { componentMap: props.componentMap || context }));
|
|
15
|
+
}
|
|
16
|
+
WithComponentMap.displayName = `withComponentMap(${Component.displayName || Component.name || 'Anonymous'})`;
|
|
17
|
+
return WithComponentMap;
|
|
18
|
+
}
|
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { useSitecore } from './withSitecore';
|
|
3
|
-
export const DefaultEditingError = () => (React.createElement("div", { className: "sc-jss-editing-error", role: "alert" }, "Datasource is required. Please choose a content item for this component."));
|
|
4
|
-
/**
|
|
5
|
-
* Checks whether a Sitecore datasource is present and renders appropriately depending on page mode (normal vs editing).
|
|
6
|
-
* @param {WithDatasourceCheckOptions} [options]
|
|
7
|
-
* @returns
|
|
8
|
-
* The wrapped component, if a datasource is present.
|
|
9
|
-
* A null component (in normal mode) or an error component (in editing mode), if a datasource is not present.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useSitecore } from './withSitecore';
|
|
3
|
+
export const DefaultEditingError = () => (React.createElement("div", { className: "sc-jss-editing-error", role: "alert" }, "Datasource is required. Please choose a content item for this component."));
|
|
4
|
+
/**
|
|
5
|
+
* Checks whether a Sitecore datasource is present and renders appropriately depending on page mode (normal vs editing).
|
|
6
|
+
* @param {WithDatasourceCheckOptions} [options]
|
|
7
|
+
* @returns
|
|
8
|
+
* The wrapped component, if a datasource is present.
|
|
9
|
+
* A null component (in normal mode) or an error component (in editing mode), if a datasource is not present.
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
export function withDatasourceCheck(options) {
|
|
13
|
+
return function withDatasourceCheckHoc(Component) {
|
|
14
|
+
return function WithDatasourceCheck(props) {
|
|
15
|
+
var _a, _b;
|
|
16
|
+
const { page } = useSitecore();
|
|
17
|
+
const EditingError = (_a = options === null || options === void 0 ? void 0 : options.editingErrorComponent) !== null && _a !== void 0 ? _a : DefaultEditingError;
|
|
18
|
+
// If the component is rendered in DesignLibrary, we don't need to check for datasource
|
|
19
|
+
const isDesignLibrary = page.mode.isDesignLibrary;
|
|
20
|
+
return isDesignLibrary || ((_b = props.rendering) === null || _b === void 0 ? void 0 : _b.dataSource) ? (React.createElement(Component, Object.assign({}, props))) : page.mode.isEditing ? (React.createElement(EditingError, null)) : null;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
}
|
|
@@ -1,17 +1,22 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { resetEditorChromes } from '..';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { resetEditorChromes } from '..';
|
|
3
|
+
/**
|
|
4
|
+
* HOC to inject editor chromes reset on component update.
|
|
5
|
+
* @param {React.ComponentClass<unknown> | React.FC<unknown>} WrappedComponent - The component to wrap.
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export const withEditorChromes = (WrappedComponent) => {
|
|
9
|
+
class Enhancer extends React.Component {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';
|
|
13
|
+
}
|
|
14
|
+
componentDidUpdate() {
|
|
15
|
+
resetEditorChromes();
|
|
16
|
+
}
|
|
17
|
+
render() {
|
|
18
|
+
return React.createElement(WrappedComponent, Object.assign({}, this.props));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return Enhancer;
|
|
22
|
+
};
|
|
@@ -1,34 +1,35 @@
|
|
|
1
|
-
import React, { forwardRef } from 'react';
|
|
2
|
-
import { isFieldValueEmpty, } from '@sitecore-content-sdk/core/layout';
|
|
3
|
-
/**
|
|
4
|
-
* Returns the passed field component or default component in case field value is empty and edit mode is 'metadata'
|
|
5
|
-
* @param {ComponentType<FieldComponentProps>} FieldComponent the field component
|
|
6
|
-
* @param {WithEmptyFieldEditingComponentProps} options the options of the HOC;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
}
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
|
+
import { isFieldValueEmpty, } from '@sitecore-content-sdk/core/layout';
|
|
3
|
+
/**
|
|
4
|
+
* Returns the passed field component or default component in case field value is empty and edit mode is 'metadata'
|
|
5
|
+
* @param {ComponentType<FieldComponentProps>} FieldComponent the field component
|
|
6
|
+
* @param {WithEmptyFieldEditingComponentProps} options the options of the HOC;
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export function withEmptyFieldEditingComponent(FieldComponent, options) {
|
|
10
|
+
const getEmptyFieldEditingComponent = (props) => {
|
|
11
|
+
var _a;
|
|
12
|
+
const { editable = true } = props;
|
|
13
|
+
if (((_a = props.field) === null || _a === void 0 ? void 0 : _a.metadata) && editable && isFieldValueEmpty(props.field)) {
|
|
14
|
+
const Component = props.emptyFieldEditingComponent || options.defaultEmptyFieldEditingComponent;
|
|
15
|
+
let resolvedProps = props;
|
|
16
|
+
// If no custom empty field editing component is provided, we can omit unnecessary props
|
|
17
|
+
// to do not insert them to html
|
|
18
|
+
if (!props.emptyFieldEditingComponent) {
|
|
19
|
+
resolvedProps = Object.assign(Object.assign({}, props), { editable: undefined, field: undefined });
|
|
20
|
+
}
|
|
21
|
+
return React.createElement(Component, Object.assign({}, resolvedProps));
|
|
22
|
+
}
|
|
23
|
+
return null;
|
|
24
|
+
};
|
|
25
|
+
if (options.isForwardRef) {
|
|
26
|
+
return forwardRef((props, ref) => {
|
|
27
|
+
const emptyFieldEditingComponent = getEmptyFieldEditingComponent(props);
|
|
28
|
+
return (emptyFieldEditingComponent || (React.createElement(FieldComponent, Object.assign({}, props, { ref: ref }))));
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
return (props) => {
|
|
32
|
+
const emptyFieldEditingComponent = getEmptyFieldEditingComponent(props);
|
|
33
|
+
return emptyFieldEditingComponent || React.createElement(FieldComponent, Object.assign({}, props));
|
|
34
|
+
};
|
|
35
|
+
}
|
|
@@ -1,31 +1,32 @@
|
|
|
1
|
-
import React, { forwardRef } from 'react';
|
|
2
|
-
import { FieldMetadata } from '../components/FieldMetadata';
|
|
3
|
-
/**
|
|
4
|
-
* Wraps the field component with metadata markup intended to be used for chromes hydration in Pages
|
|
5
|
-
* @param {ComponentType<FieldComponentProps>} FieldComponent the field component
|
|
6
|
-
* @param {boolean} isForwardRef set to 'true' if forward reference is needed
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
|
+
import { FieldMetadata } from '../components/FieldMetadata';
|
|
3
|
+
/**
|
|
4
|
+
* Wraps the field component with metadata markup intended to be used for chromes hydration in Pages
|
|
5
|
+
* @param {ComponentType<FieldComponentProps>} FieldComponent the field component
|
|
6
|
+
* @param {boolean} isForwardRef set to 'true' if forward reference is needed
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export function withFieldMetadata(FieldComponent, isForwardRef = false) {
|
|
10
|
+
if (isForwardRef) {
|
|
11
|
+
return forwardRef((props, ref) => {
|
|
12
|
+
var _a;
|
|
13
|
+
const { editable = true } = props;
|
|
14
|
+
const metadata = (_a = props.field) === null || _a === void 0 ? void 0 : _a.metadata;
|
|
15
|
+
if (!metadata || !editable) {
|
|
16
|
+
return React.createElement(FieldComponent, Object.assign({}, props, { ref: ref }));
|
|
17
|
+
}
|
|
18
|
+
return (React.createElement(FieldMetadata, { metadata: metadata },
|
|
19
|
+
React.createElement(FieldComponent, Object.assign({}, props, { ref: ref }))));
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return (props) => {
|
|
23
|
+
var _a;
|
|
24
|
+
const { editable = true } = props;
|
|
25
|
+
const metadata = (_a = props.field) === null || _a === void 0 ? void 0 : _a.metadata;
|
|
26
|
+
if (!metadata || !editable) {
|
|
27
|
+
return React.createElement(FieldComponent, Object.assign({}, props));
|
|
28
|
+
}
|
|
29
|
+
return (React.createElement(FieldMetadata, { metadata: metadata },
|
|
30
|
+
React.createElement(FieldComponent, Object.assign({}, props))));
|
|
31
|
+
};
|
|
32
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React, { useContext } from 'react';
|
|
2
|
+
import { ImportMapReactContext } from '../components/SitecoreProvider';
|
|
3
|
+
/**
|
|
4
|
+
* Higher-order component that injects the loadImportMap function from context into component props.
|
|
5
|
+
* If the component already receives loadImportMap via props, the prop value takes precedence.
|
|
6
|
+
* @param {React.ComponentClass<T> | React.FC<T>} Component - The component to enhance.
|
|
7
|
+
* @returns {React.ComponentClass<T> | React.FC<T>} The enhanced component with loadImportMap injected.
|
|
8
|
+
*/
|
|
9
|
+
export function withLoadImportMap(Component) {
|
|
10
|
+
const WithLoadImportMap = (props) => {
|
|
11
|
+
const loadImportMapContext = useContext(ImportMapReactContext);
|
|
12
|
+
const loadClientImportMap = props.loadImportMap || loadImportMapContext;
|
|
13
|
+
return React.createElement(Component, Object.assign({}, props, { loadImportMap: loadClientImportMap }));
|
|
14
|
+
};
|
|
15
|
+
WithLoadImportMap.displayName = `withLoadImportMap(${Component.displayName || Component.name || 'Component'})`;
|
|
16
|
+
return WithLoadImportMap;
|
|
17
|
+
}
|
|
@@ -1,59 +1,58 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { withComponentMap } from './withComponentMap';
|
|
3
|
-
import { withSitecore } from './withSitecore';
|
|
4
|
-
import { PlaceholderComponent, getPlaceholderRenderings, } from '../components/Placeholder';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*
|
|
8
|
-
* @param {
|
|
9
|
-
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { withComponentMap } from './withComponentMap';
|
|
3
|
+
import { withSitecore } from './withSitecore';
|
|
4
|
+
import { PlaceholderComponent, getPlaceholderRenderings, } from '../components/Placeholder';
|
|
5
|
+
import { ErrorComponent } from '../components/ErrorBoundary';
|
|
6
|
+
/**
|
|
7
|
+
* HOC to provide client-side placeholder functionality to a component.
|
|
8
|
+
* @param {WithPlaceholderSpec} placeholders
|
|
9
|
+
* @param {WithPlaceholderOptions} [options]
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
export function withPlaceholder(placeholders, options) {
|
|
13
|
+
return (WrappedComponent) => {
|
|
14
|
+
class WithPlaceholder extends PlaceholderComponent {
|
|
15
|
+
constructor(props) {
|
|
16
|
+
super(props);
|
|
17
|
+
}
|
|
18
|
+
render() {
|
|
19
|
+
let childProps = Object.assign({}, this.props);
|
|
20
|
+
delete childProps.componentMap;
|
|
21
|
+
if (options && options.propsTransformer) {
|
|
22
|
+
childProps = options.propsTransformer(childProps);
|
|
23
|
+
}
|
|
24
|
+
if (this.state.error) {
|
|
25
|
+
if (childProps.errorComponent) {
|
|
26
|
+
return React.createElement(childProps.errorComponent, { error: this.state.error });
|
|
27
|
+
}
|
|
28
|
+
return (React.createElement(ErrorComponent, { message: `A rendering error occurred: ${this.state.error.message}.` }));
|
|
29
|
+
}
|
|
30
|
+
const renderingData = options && options.resolvePlaceholderDataFromProps
|
|
31
|
+
? options.resolvePlaceholderDataFromProps(childProps)
|
|
32
|
+
: childProps.rendering;
|
|
33
|
+
const definitelyArrayPlacholders = !Array.isArray(placeholders)
|
|
34
|
+
? [placeholders]
|
|
35
|
+
: placeholders;
|
|
36
|
+
definitelyArrayPlacholders.forEach((placeholder) => {
|
|
37
|
+
let placeholderData;
|
|
38
|
+
if (typeof placeholder !== 'string' && placeholder.placeholder && placeholder.prop) {
|
|
39
|
+
placeholderData = getPlaceholderRenderings(renderingData, placeholder.placeholder, childProps.page.mode.isEditing);
|
|
40
|
+
if (placeholderData) {
|
|
41
|
+
childProps[placeholder.prop] =
|
|
42
|
+
PlaceholderComponent.getRenderedComponents(this.props, placeholderData);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
placeholderData = getPlaceholderRenderings(renderingData, placeholder, childProps.page.mode.isEditing);
|
|
47
|
+
if (placeholderData) {
|
|
48
|
+
childProps[placeholder] =
|
|
49
|
+
PlaceholderComponent.getRenderedComponents(this.props, placeholderData);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
return React.createElement(WrappedComponent, Object.assign({}, childProps));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return withSitecore()(withComponentMap(WithPlaceholder));
|
|
57
|
+
};
|
|
58
|
+
}
|