@sitecore-content-sdk/react 1.5.0 → 2.0.0-canary.10
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/LICENSE.txt +202 -202
- package/dist/cjs/components/ClientEditingChromesUpdate.js +1 -1
- package/dist/cjs/components/Date.js +14 -12
- package/dist/cjs/components/DefaultEmptyFieldEditingComponents.js +2 -1
- package/dist/cjs/components/DesignLibrary/DesignLibrary.js +12 -14
- package/dist/cjs/components/DesignLibrary/DesignLibraryApp.js +1 -1
- package/dist/cjs/components/DesignLibrary/DesignLibraryClientEvents.js +16 -8
- package/dist/cjs/components/DesignLibrary/DesignLibraryErrorBoundary.js +1 -1
- package/dist/cjs/components/DesignLibrary/DesignLibraryServer.js +15 -9
- package/dist/cjs/components/EditingScripts.js +4 -5
- package/dist/cjs/components/ErrorBoundary.js +10 -6
- package/dist/cjs/components/FieldMetadata.js +1 -1
- package/dist/cjs/components/File.js +4 -2
- package/dist/cjs/components/Form.js +14 -7
- package/dist/cjs/components/Image.js +14 -11
- package/dist/cjs/components/Link.js +20 -47
- package/dist/cjs/components/Placeholder/AppPlaceholder.js +56 -58
- package/dist/cjs/components/Placeholder/ClientComponentWrapper.js +5 -9
- package/dist/cjs/components/Placeholder/Placeholder.js +22 -103
- package/dist/cjs/components/Placeholder/PlaceholderMetadata.js +2 -2
- package/dist/cjs/components/Placeholder/index.js +1 -2
- package/dist/cjs/components/Placeholder/placeholder-utils.js +11 -38
- package/dist/cjs/components/RichText.js +19 -50
- package/dist/cjs/components/SitecoreProvider.js +81 -41
- package/dist/cjs/components/Text.js +13 -9
- package/dist/cjs/enhancers/withAppPlaceholder.js +6 -0
- package/dist/cjs/enhancers/withDatasourceCheck.js +4 -3
- package/dist/cjs/enhancers/withEditorChromes.js +50 -15
- package/dist/cjs/enhancers/withEmptyFieldEditingComponent.js +9 -39
- package/dist/cjs/enhancers/withFieldMetadata.js +9 -39
- package/dist/cjs/enhancers/withPlaceholder.js +16 -52
- package/dist/cjs/enhancers/withSitecore.js +5 -29
- package/dist/cjs/index.js +16 -13
- package/dist/cjs/search/index.js +3 -1
- package/dist/cjs/search/utils.js +2 -2
- package/dist/cjs/server-actions/update-server-component-action.js +10 -10
- package/dist/cjs/utils.js +1 -1
- package/dist/esm/components/ClientEditingChromesUpdate.js +1 -1
- package/dist/esm/components/Date.js +14 -12
- package/dist/esm/components/DefaultEmptyFieldEditingComponents.js +2 -1
- package/dist/esm/components/DesignLibrary/DesignLibrary.js +11 -14
- package/dist/esm/components/DesignLibrary/DesignLibraryApp.js +1 -1
- package/dist/esm/components/DesignLibrary/DesignLibraryClientEvents.js +15 -7
- package/dist/esm/components/DesignLibrary/DesignLibraryErrorBoundary.js +1 -1
- package/dist/esm/components/DesignLibrary/DesignLibraryServer.js +15 -9
- package/dist/esm/components/EditingScripts.js +2 -3
- package/dist/esm/components/ErrorBoundary.js +10 -6
- package/dist/esm/components/FieldMetadata.js +1 -1
- package/dist/esm/components/File.js +4 -2
- package/dist/esm/components/Form.js +12 -5
- package/dist/esm/components/Image.js +14 -11
- package/dist/esm/components/Link.js +17 -14
- package/dist/esm/components/Placeholder/AppPlaceholder.js +57 -59
- package/dist/esm/components/Placeholder/ClientComponentWrapper.js +4 -8
- package/dist/esm/components/Placeholder/Placeholder.js +21 -99
- package/dist/esm/components/Placeholder/PlaceholderMetadata.js +2 -2
- package/dist/esm/components/Placeholder/index.js +1 -1
- package/dist/esm/components/Placeholder/placeholder-utils.js +9 -35
- package/dist/esm/components/RichText.js +16 -17
- package/dist/esm/components/SitecoreProvider.js +46 -40
- package/dist/esm/components/Text.js +13 -9
- package/dist/esm/enhancers/withAppPlaceholder.js +6 -0
- package/dist/esm/enhancers/withDatasourceCheck.js +3 -2
- package/dist/esm/enhancers/withEditorChromes.js +17 -12
- package/dist/esm/enhancers/withEmptyFieldEditingComponent.js +6 -6
- package/dist/esm/enhancers/withFieldMetadata.js +6 -6
- package/dist/esm/enhancers/withPlaceholder.js +15 -52
- package/dist/esm/enhancers/withSitecore.js +6 -29
- package/dist/esm/index.js +11 -10
- package/dist/esm/search/index.js +1 -0
- package/dist/esm/search/utils.js +1 -1
- package/dist/esm/server-actions/update-server-component-action.js +4 -4
- package/dist/esm/utils.js +1 -1
- package/package.json +114 -113
- package/types/components/Date.d.ts +1 -1
- package/types/components/Date.d.ts.map +1 -1
- package/types/components/DefaultEmptyFieldEditingComponents.d.ts.map +1 -1
- package/types/components/DesignLibrary/DesignLibrary.d.ts +1 -7
- package/types/components/DesignLibrary/DesignLibrary.d.ts.map +1 -1
- package/types/components/DesignLibrary/DesignLibraryClientEvents.d.ts.map +1 -1
- package/types/components/DesignLibrary/DesignLibraryServer.d.ts.map +1 -1
- package/types/components/DesignLibrary/models.d.ts +12 -13
- package/types/components/DesignLibrary/models.d.ts.map +1 -1
- package/types/components/EditingScripts.d.ts +2 -2
- package/types/components/EditingScripts.d.ts.map +1 -1
- package/types/components/ErrorBoundary.d.ts +4 -4
- package/types/components/ErrorBoundary.d.ts.map +1 -1
- package/types/components/FEaaS/models.d.ts +2 -2
- package/types/components/FEaaS/models.d.ts.map +1 -1
- package/types/components/File.d.ts.map +1 -1
- package/types/components/Form.d.ts +1 -1
- package/types/components/Form.d.ts.map +1 -1
- package/types/components/Image.d.ts +1 -1
- package/types/components/Image.d.ts.map +1 -1
- package/types/components/Link.d.ts +1 -1
- package/types/components/Link.d.ts.map +1 -1
- package/types/components/Placeholder/AppPlaceholder.d.ts +1 -1
- package/types/components/Placeholder/AppPlaceholder.d.ts.map +1 -1
- package/types/components/Placeholder/ClientComponentWrapper.d.ts +3 -3
- package/types/components/Placeholder/ClientComponentWrapper.d.ts.map +1 -1
- package/types/components/Placeholder/Placeholder.d.ts +4 -26
- package/types/components/Placeholder/Placeholder.d.ts.map +1 -1
- package/types/components/Placeholder/PlaceholderMetadata.d.ts +1 -1
- package/types/components/Placeholder/PlaceholderMetadata.d.ts.map +1 -1
- package/types/components/Placeholder/index.d.ts +1 -1
- package/types/components/Placeholder/index.d.ts.map +1 -1
- package/types/components/Placeholder/models.d.ts +38 -61
- package/types/components/Placeholder/models.d.ts.map +1 -1
- package/types/components/Placeholder/placeholder-utils.d.ts +8 -15
- package/types/components/Placeholder/placeholder-utils.d.ts.map +1 -1
- package/types/components/RichText.d.ts +3 -1
- package/types/components/RichText.d.ts.map +1 -1
- package/types/components/SitecoreProvider.d.ts +46 -17
- package/types/components/SitecoreProvider.d.ts.map +1 -1
- package/types/components/Text.d.ts +1 -1
- package/types/components/Text.d.ts.map +1 -1
- package/types/enhancers/withAppPlaceholder.d.ts +8 -2
- package/types/enhancers/withAppPlaceholder.d.ts.map +1 -1
- package/types/enhancers/withDatasourceCheck.d.ts +1 -1
- package/types/enhancers/withDatasourceCheck.d.ts.map +1 -1
- package/types/enhancers/withEditorChromes.d.ts +4 -1
- package/types/enhancers/withEditorChromes.d.ts.map +1 -1
- package/types/enhancers/withEmptyFieldEditingComponent.d.ts +6 -4
- package/types/enhancers/withEmptyFieldEditingComponent.d.ts.map +1 -1
- package/types/enhancers/withFieldMetadata.d.ts +4 -2
- package/types/enhancers/withFieldMetadata.d.ts.map +1 -1
- package/types/enhancers/withPlaceholder.d.ts +14 -32
- package/types/enhancers/withPlaceholder.d.ts.map +1 -1
- package/types/enhancers/withSitecore.d.ts +9 -51
- package/types/enhancers/withSitecore.d.ts.map +1 -1
- package/types/index.d.ts +12 -11
- package/types/index.d.ts.map +1 -1
- package/types/search/index.d.ts +1 -0
- package/types/search/index.d.ts.map +1 -1
- package/types/server-actions/update-server-component-action.d.ts +2 -2
- package/types/server-actions/update-server-component-action.d.ts.map +1 -1
- package/types/utils.d.ts +1 -1
- package/types/utils.d.ts.map +1 -1
- package/dist/cjs/enhancers/withComponentMap.js +0 -24
- package/dist/cjs/enhancers/withLoadImportMap.js +0 -53
- package/dist/esm/enhancers/withComponentMap.js +0 -18
- package/dist/esm/enhancers/withLoadImportMap.js +0 -17
- package/types/enhancers/withComponentMap.d.ts +0 -13
- package/types/enhancers/withComponentMap.d.ts.map +0 -1
- package/types/enhancers/withLoadImportMap.d.ts +0 -22
- package/types/enhancers/withLoadImportMap.d.ts.map +0 -1
|
@@ -39,11 +39,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
40
|
exports.DesignLibraryServerPreview = exports.DesignLibraryServerVariantGeneration = exports.DesignLibraryServer = exports.__mockDependencies = void 0;
|
|
41
41
|
const react_1 = __importDefault(require("react"));
|
|
42
|
-
const layout_1 = require("@sitecore-content-sdk/
|
|
42
|
+
const layout_1 = require("@sitecore-content-sdk/content/layout");
|
|
43
43
|
const DesignLibraryClientEvents_1 = require("./DesignLibraryClientEvents");
|
|
44
|
-
const globalCache = __importStar(require("@sitecore-content-sdk/core/
|
|
45
|
-
const editing_1 = require("@sitecore-content-sdk/
|
|
46
|
-
const codegen = __importStar(require("@sitecore-content-sdk/
|
|
44
|
+
const globalCache = __importStar(require("@sitecore-content-sdk/core/tools"));
|
|
45
|
+
const editing_1 = require("@sitecore-content-sdk/content/editing");
|
|
46
|
+
const codegen = __importStar(require("@sitecore-content-sdk/content/codegen"));
|
|
47
47
|
const Placeholder_1 = require("../Placeholder");
|
|
48
48
|
const DesignLibraryErrorBoundary_1 = require("./DesignLibraryErrorBoundary");
|
|
49
49
|
const ErrorBoundary_1 = require("../ErrorBoundary");
|
|
@@ -103,10 +103,14 @@ const DesignLibraryServerVariantGeneration = async ({ page, rendering, loadServe
|
|
|
103
103
|
let Component;
|
|
104
104
|
let componentInitError;
|
|
105
105
|
let generatedComponentData;
|
|
106
|
+
const getComponentInitError = (type, error) => ({
|
|
107
|
+
type,
|
|
108
|
+
message: error instanceof Error ? error.message : String(error),
|
|
109
|
+
});
|
|
106
110
|
// load importmap and importmap payload to pass to FE
|
|
107
111
|
// if not provided, or errors during load set error to pass to FE
|
|
108
112
|
if (!loadServerImportMap) {
|
|
109
|
-
componentInitError = 'No loadImportMap provided';
|
|
113
|
+
componentInitError = getComponentInitError(codegen.DesignLibraryPreviewError.ImportMapMissing, 'No loadImportMap provided');
|
|
110
114
|
}
|
|
111
115
|
else {
|
|
112
116
|
try {
|
|
@@ -115,7 +119,7 @@ const DesignLibraryServerVariantGeneration = async ({ page, rendering, loadServe
|
|
|
115
119
|
importMapInfo = getImportMapInfo(importMap);
|
|
116
120
|
}
|
|
117
121
|
catch (e) {
|
|
118
|
-
componentInitError = `Error loading import map: ${e}
|
|
122
|
+
componentInitError = getComponentInitError(codegen.DesignLibraryPreviewError.ImportMapLoad, `Error loading import map: ${e}`);
|
|
119
123
|
}
|
|
120
124
|
}
|
|
121
125
|
let componentToUpdate = (_b = (_a = rendering === null || rendering === void 0 ? void 0 : rendering.placeholders) === null || _a === void 0 ? void 0 : _a[layout_1.EDITING_COMPONENT_PLACEHOLDER]) === null || _b === void 0 ? void 0 : _b[0];
|
|
@@ -144,7 +148,7 @@ const DesignLibraryServerVariantGeneration = async ({ page, rendering, loadServe
|
|
|
144
148
|
}
|
|
145
149
|
catch (error) {
|
|
146
150
|
// error during component initialization - send error to client
|
|
147
|
-
componentInitError = error
|
|
151
|
+
componentInitError = getComponentInitError(codegen.DesignLibraryPreviewError.RenderInit, error);
|
|
148
152
|
}
|
|
149
153
|
}
|
|
150
154
|
}
|
|
@@ -152,7 +156,9 @@ const DesignLibraryServerVariantGeneration = async ({ page, rendering, loadServe
|
|
|
152
156
|
// we have a preview update, get it and clean the cache
|
|
153
157
|
designLibraryStatus = editing_1.DesignLibraryStatus.RENDERED;
|
|
154
158
|
const previewData = getCacheAndClean(componentPreviewKey);
|
|
155
|
-
|
|
159
|
+
if (previewData === null || previewData === void 0 ? void 0 : previewData.error) {
|
|
160
|
+
componentInitError = getComponentInitError(codegen.DesignLibraryPreviewError.GeneratedComponentFetch, previewData.error);
|
|
161
|
+
}
|
|
156
162
|
if (previewData === null || previewData === void 0 ? void 0 : previewData.generatedComponentData) {
|
|
157
163
|
generatedComponentData = previewData.generatedComponentData;
|
|
158
164
|
try {
|
|
@@ -161,7 +167,7 @@ const DesignLibraryServerVariantGeneration = async ({ page, rendering, loadServe
|
|
|
161
167
|
}
|
|
162
168
|
catch (error) {
|
|
163
169
|
// error during component initialization - send error to client
|
|
164
|
-
componentInitError = error
|
|
170
|
+
componentInitError = getComponentInitError(codegen.DesignLibraryPreviewError.RenderInit, error);
|
|
165
171
|
}
|
|
166
172
|
}
|
|
167
173
|
}
|
|
@@ -6,9 +6,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.EditingScripts = void 0;
|
|
8
8
|
const react_1 = __importDefault(require("react"));
|
|
9
|
-
const
|
|
10
|
-
const editing_1 = require("@sitecore-content-sdk/
|
|
11
|
-
const editing_2 = require("@sitecore-content-sdk/core/editing");
|
|
9
|
+
const SitecoreProvider_1 = require("./SitecoreProvider");
|
|
10
|
+
const editing_1 = require("@sitecore-content-sdk/content/editing");
|
|
12
11
|
/**
|
|
13
12
|
* Renders client scripts and data for editing/preview mode for Pages.
|
|
14
13
|
* Renders script required for the Design Library (when mode.isDesignLibrary is true).
|
|
@@ -17,7 +16,7 @@ const editing_2 = require("@sitecore-content-sdk/core/editing");
|
|
|
17
16
|
*/
|
|
18
17
|
const EditingScripts = () => {
|
|
19
18
|
var _a;
|
|
20
|
-
const { page: { mode, layout }, api, } = (0,
|
|
19
|
+
const { page: { mode, layout }, api, } = (0, SitecoreProvider_1.useSitecore)();
|
|
21
20
|
const { clientData, clientScripts } = layout.sitecore.context;
|
|
22
21
|
// Don't render anything if not in editing mode and rendering type is not component
|
|
23
22
|
if (mode.isNormal || mode.isPreview) {
|
|
@@ -32,7 +31,7 @@ const EditingScripts = () => {
|
|
|
32
31
|
const month = String(now.getUTCMonth() + 1).padStart(2, '0');
|
|
33
32
|
const year = String(now.getUTCFullYear());
|
|
34
33
|
const cacheTimestamp = `${hour}-${day}-${month}-${year}`;
|
|
35
|
-
const scriptUrl = `${(0,
|
|
34
|
+
const scriptUrl = `${(0, editing_1.getDesignLibraryScriptLink)((_a = api === null || api === void 0 ? void 0 : api.edge) === null || _a === void 0 ? void 0 : _a.edgeUrl)}?cb=${cacheTimestamp}`;
|
|
36
35
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
37
36
|
react_1.default.createElement("script", { src: scriptUrl, suppressHydrationWarning: true })));
|
|
38
37
|
}
|
|
@@ -36,7 +36,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
36
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
37
|
exports.ErrorComponent = void 0;
|
|
38
38
|
const react_1 = __importStar(require("react"));
|
|
39
|
-
const
|
|
39
|
+
const SitecoreProvider_1 = require("./SitecoreProvider");
|
|
40
40
|
/**
|
|
41
41
|
* Simple error component applying basic error styling.
|
|
42
42
|
* @param {object} props - Either with `message` (string) or with `children` (ReactNode), but not both.
|
|
@@ -45,7 +45,7 @@ const ErrorComponent = (props) => {
|
|
|
45
45
|
return (react_1.default.createElement("div", { className: "sc-content-sdk-placeholder-error" }, props.message ? props.message : props.children));
|
|
46
46
|
};
|
|
47
47
|
exports.ErrorComponent = ErrorComponent;
|
|
48
|
-
class
|
|
48
|
+
class ErrorBoundaryClass extends react_1.default.Component {
|
|
49
49
|
constructor(props) {
|
|
50
50
|
super(props);
|
|
51
51
|
this.defaultErrorMessage = 'There was a problem loading this section.';
|
|
@@ -69,7 +69,7 @@ class ErrorBoundary extends react_1.default.Component {
|
|
|
69
69
|
return this.isInDevMode() || this.props.page.mode.isEditing || this.props.page.mode.isPreview;
|
|
70
70
|
}
|
|
71
71
|
render() {
|
|
72
|
-
var _a;
|
|
72
|
+
var _a, _b;
|
|
73
73
|
if (this.state.error) {
|
|
74
74
|
if (this.props.errorComponent) {
|
|
75
75
|
return react_1.default.createElement(this.props.errorComponent, { error: this.state.error });
|
|
@@ -92,10 +92,14 @@ class ErrorBoundary extends react_1.default.Component {
|
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
// do not apply suspense when suspense is disabled or when on already dynamic components
|
|
95
|
-
if (this.props.disableSuspense || this.props.isDynamic)
|
|
95
|
+
if (((_b = this.props.disableSuspense) !== null && _b !== void 0 ? _b : true) || this.props.isDynamic)
|
|
96
96
|
return this.props.children;
|
|
97
|
-
}
|
|
98
97
|
return (react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement("h4", null, this.props.componentLoadingMessage || this.defaultLoadingMessage) }, this.props.children));
|
|
99
98
|
}
|
|
100
99
|
}
|
|
101
|
-
|
|
100
|
+
const ErrorBoundary = (props) => {
|
|
101
|
+
const { page } = (0, SitecoreProvider_1.useSitecore)();
|
|
102
|
+
const boundaryProps = Object.assign(Object.assign({}, props), { page });
|
|
103
|
+
return react_1.default.createElement(ErrorBoundaryClass, Object.assign({}, boundaryProps));
|
|
104
|
+
};
|
|
105
|
+
exports.default = ErrorBoundary;
|
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.FieldMetadata = void 0;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const editing_1 = require("@sitecore-content-sdk/
|
|
8
|
+
const editing_1 = require("@sitecore-content-sdk/content/editing");
|
|
9
9
|
/**
|
|
10
10
|
* The component which renders field metadata markup
|
|
11
11
|
* @param {FieldMetadataProps} props the props of the component
|
|
@@ -15,7 +15,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.File = void 0;
|
|
18
|
-
const layout_1 = require("@sitecore-content-sdk/
|
|
18
|
+
const layout_1 = require("@sitecore-content-sdk/content/layout");
|
|
19
19
|
const react_1 = __importDefault(require("react"));
|
|
20
20
|
/**
|
|
21
21
|
* The File component.
|
|
@@ -37,7 +37,9 @@ const File = (_a) => {
|
|
|
37
37
|
const anchorAttrs = {
|
|
38
38
|
href: file.src,
|
|
39
39
|
};
|
|
40
|
-
return react_1.default.createElement(
|
|
40
|
+
return (react_1.default.createElement("a", Object.assign({}, anchorAttrs, otherProps),
|
|
41
|
+
linkText,
|
|
42
|
+
children));
|
|
41
43
|
};
|
|
42
44
|
exports.File = File;
|
|
43
45
|
exports.File.displayName = 'File';
|
|
@@ -36,10 +36,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
36
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
37
|
exports.Form = exports.mockFormModule = void 0;
|
|
38
38
|
const react_1 = __importStar(require("react"));
|
|
39
|
-
const
|
|
40
|
-
const
|
|
39
|
+
const content_1 = require("@sitecore-content-sdk/content");
|
|
40
|
+
const SitecoreProvider_1 = require("./SitecoreProvider");
|
|
41
41
|
const ErrorBoundary_1 = require("./ErrorBoundary");
|
|
42
|
-
let { executeScriptElements, loadForm, subscribeToFormSubmitEvent } =
|
|
42
|
+
let { executeScriptElements, loadForm, subscribeToFormSubmitEvent } = content_1.form;
|
|
43
43
|
/**
|
|
44
44
|
* Mock function to replace the form module functions for `testing` purposes.
|
|
45
45
|
* @param {any} formModule - The form module to mock
|
|
@@ -56,11 +56,11 @@ exports.mockFormModule = mockFormModule;
|
|
|
56
56
|
* @public
|
|
57
57
|
*/
|
|
58
58
|
const Form = ({ params, rendering }) => {
|
|
59
|
-
var _a;
|
|
59
|
+
var _a, _b, _c, _d, _e;
|
|
60
60
|
const id = params === null || params === void 0 ? void 0 : params.RenderingIdentifier;
|
|
61
61
|
const [error, setError] = (0, react_1.useState)(false);
|
|
62
62
|
const [content, setContent] = (0, react_1.useState)('');
|
|
63
|
-
const context = (0,
|
|
63
|
+
const context = (0, SitecoreProvider_1.useSitecore)();
|
|
64
64
|
const formRef = (0, react_1.useRef)(null);
|
|
65
65
|
const isEditing = context.page.mode.isEditing;
|
|
66
66
|
(0, react_1.useEffect)(() => {
|
|
@@ -91,10 +91,17 @@ const Form = ({ params, rendering }) => {
|
|
|
91
91
|
}
|
|
92
92
|
executeScriptElements(formRef.current);
|
|
93
93
|
}
|
|
94
|
-
}, [
|
|
94
|
+
}, [
|
|
95
|
+
content,
|
|
96
|
+
isEditing,
|
|
97
|
+
params.FormId,
|
|
98
|
+
rendering.uid,
|
|
99
|
+
(_b = (_a = context.api) === null || _a === void 0 ? void 0 : _a.edge) === null || _b === void 0 ? void 0 : _b.clientContextId,
|
|
100
|
+
(_d = (_c = context.api) === null || _c === void 0 ? void 0 : _c.edge) === null || _d === void 0 ? void 0 : _d.edgeUrl,
|
|
101
|
+
]);
|
|
95
102
|
if (isEditing && error) {
|
|
96
103
|
return react_1.default.createElement(ErrorBoundary_1.ErrorComponent, { message: "There was a problem loading this section" });
|
|
97
104
|
}
|
|
98
|
-
return (react_1.default.createElement("div", { ref: formRef, dangerouslySetInnerHTML: { __html: content }, className: (
|
|
105
|
+
return (react_1.default.createElement("div", { ref: formRef, dangerouslySetInnerHTML: { __html: content }, className: (_e = params.styles) === null || _e === void 0 ? void 0 : _e.trimEnd(), id: id ? id : undefined }));
|
|
99
106
|
};
|
|
100
107
|
exports.Form = Form;
|
|
@@ -15,14 +15,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.Image = void 0;
|
|
18
|
-
|
|
19
|
-
const media_1 = require("@sitecore-content-sdk/core/media");
|
|
18
|
+
const media_1 = require("@sitecore-content-sdk/content/media");
|
|
20
19
|
const react_1 = __importDefault(require("react"));
|
|
21
20
|
const utils_1 = require("../utils");
|
|
22
21
|
const withFieldMetadata_1 = require("../enhancers/withFieldMetadata");
|
|
23
22
|
const withEmptyFieldEditingComponent_1 = require("../enhancers/withEmptyFieldEditingComponent");
|
|
24
23
|
const DefaultEmptyFieldEditingComponents_1 = require("./DefaultEmptyFieldEditingComponents");
|
|
25
|
-
const layout_1 = require("@sitecore-content-sdk/
|
|
24
|
+
const layout_1 = require("@sitecore-content-sdk/content/layout");
|
|
26
25
|
const getImageAttrs = (_a, imageParams, mediaUrlPrefix) => {
|
|
27
26
|
var { src, srcSet } = _a, otherAttrs = __rest(_a, ["src", "srcSet"]);
|
|
28
27
|
if (!src) {
|
|
@@ -40,17 +39,13 @@ const getImageAttrs = (_a, imageParams, mediaUrlPrefix) => {
|
|
|
40
39
|
newAttrs.src = resolvedSrc;
|
|
41
40
|
return newAttrs;
|
|
42
41
|
};
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
* @param {ImageProps} props component props
|
|
46
|
-
* @public
|
|
47
|
-
*/
|
|
48
|
-
exports.Image = (0, withFieldMetadata_1.withFieldMetadata)((0, withEmptyFieldEditingComponent_1.withEmptyFieldEditingComponent)((_a) => {
|
|
49
|
-
var { editable = true, imageParams, field, mediaUrlPrefix } = _a, otherProps = __rest(_a, ["editable", "imageParams", "field", "mediaUrlPrefix"]);
|
|
42
|
+
const ImageComponent = (_a) => {
|
|
43
|
+
var { imageParams, field, mediaUrlPrefix } = _a, otherProps = __rest(_a, ["imageParams", "field", "mediaUrlPrefix"]);
|
|
50
44
|
const dynamicMedia = field;
|
|
51
45
|
if ((0, layout_1.isFieldValueEmpty)(dynamicMedia)) {
|
|
52
46
|
return null;
|
|
53
47
|
}
|
|
48
|
+
delete otherProps.editable; // prevent editable from being passed to the DOM
|
|
54
49
|
// some wise-guy/gal is passing in a 'raw' image object value
|
|
55
50
|
const img = dynamicMedia.src
|
|
56
51
|
? field
|
|
@@ -67,5 +62,13 @@ exports.Image = (0, withFieldMetadata_1.withFieldMetadata)((0, withEmptyFieldEdi
|
|
|
67
62
|
return react_1.default.createElement("img", Object.assign({}, attrs));
|
|
68
63
|
}
|
|
69
64
|
return null; // we can't handle the truth
|
|
70
|
-
}
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* The Image component.
|
|
68
|
+
* @param {ImageProps} props component props
|
|
69
|
+
* @public
|
|
70
|
+
*/
|
|
71
|
+
exports.Image = (0, withFieldMetadata_1.withFieldMetadata)((0, withEmptyFieldEditingComponent_1.withEmptyFieldEditingComponent)(ImageComponent, {
|
|
72
|
+
defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponents_1.DefaultEmptyFieldEditingComponentImage,
|
|
73
|
+
}));
|
|
71
74
|
exports.Image.displayName = 'Image';
|
|
@@ -1,38 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
'use client';
|
|
3
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
-
if (k2 === undefined) k2 = k;
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
-
}
|
|
9
|
-
Object.defineProperty(o, k2, desc);
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
o[k2] = m[k];
|
|
13
|
-
}));
|
|
14
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
-
}) : function(o, v) {
|
|
17
|
-
o["default"] = v;
|
|
18
|
-
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
-
var ownKeys = function(o) {
|
|
21
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
-
var ar = [];
|
|
23
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
-
return ar;
|
|
25
|
-
};
|
|
26
|
-
return ownKeys(o);
|
|
27
|
-
};
|
|
28
|
-
return function (mod) {
|
|
29
|
-
if (mod && mod.__esModule) return mod;
|
|
30
|
-
var result = {};
|
|
31
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
-
__setModuleDefault(result, mod);
|
|
33
|
-
return result;
|
|
34
|
-
};
|
|
35
|
-
})();
|
|
36
3
|
var __rest = (this && this.__rest) || function (s, e) {
|
|
37
4
|
var t = {};
|
|
38
5
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
@@ -44,24 +11,21 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
44
11
|
}
|
|
45
12
|
return t;
|
|
46
13
|
};
|
|
14
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
15
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16
|
+
};
|
|
47
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
18
|
exports.Link = void 0;
|
|
49
|
-
const react_1 =
|
|
50
|
-
const layout_1 = require("@sitecore-content-sdk/
|
|
19
|
+
const react_1 = __importDefault(require("react"));
|
|
20
|
+
const layout_1 = require("@sitecore-content-sdk/content/layout");
|
|
51
21
|
const withFieldMetadata_1 = require("../enhancers/withFieldMetadata");
|
|
52
22
|
const withEmptyFieldEditingComponent_1 = require("../enhancers/withEmptyFieldEditingComponent");
|
|
53
23
|
const DefaultEmptyFieldEditingComponents_1 = require("./DefaultEmptyFieldEditingComponents");
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
* @param {LinkProps} props component props
|
|
57
|
-
* @public
|
|
58
|
-
*/
|
|
59
|
-
exports.Link = (0, withFieldMetadata_1.withFieldMetadata)((0, withEmptyFieldEditingComponent_1.withEmptyFieldEditingComponent)((0, react_1.forwardRef)(
|
|
60
|
-
// eslint-disable-next-line no-unused-vars
|
|
61
|
-
(_a, ref) => {
|
|
62
|
-
var { field, editable = true, showLinkTextWithChildrenPresent } = _a, otherProps = __rest(_a, ["field", "editable", "showLinkTextWithChildrenPresent"]);
|
|
24
|
+
const LinkComponent = (_a) => {
|
|
25
|
+
var { field, showLinkTextWithChildrenPresent, ref } = _a, otherProps = __rest(_a, ["field", "showLinkTextWithChildrenPresent", "ref"]);
|
|
63
26
|
const children = otherProps.children;
|
|
64
27
|
const dynamicField = field;
|
|
28
|
+
delete otherProps.editable; // prevent editable from being passed to the DOM
|
|
65
29
|
if ((0, layout_1.isFieldValueEmpty)(dynamicField)) {
|
|
66
30
|
return null;
|
|
67
31
|
}
|
|
@@ -85,7 +49,16 @@ exports.Link = (0, withFieldMetadata_1.withFieldMetadata)((0, withEmptyFieldEdit
|
|
|
85
49
|
anchorAttrs.rel = 'noopener noreferrer';
|
|
86
50
|
}
|
|
87
51
|
const linkText = showLinkTextWithChildrenPresent || !children ? link.text || link.href : null;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
52
|
+
return (react_1.default.createElement("a", Object.assign({}, anchorAttrs, otherProps, { key: "link", ref: ref }),
|
|
53
|
+
linkText,
|
|
54
|
+
children));
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* The Link component.
|
|
58
|
+
* @param {LinkProps} props component props
|
|
59
|
+
* @public
|
|
60
|
+
*/
|
|
61
|
+
exports.Link = (0, withFieldMetadata_1.withFieldMetadata)((0, withEmptyFieldEditingComponent_1.withEmptyFieldEditingComponent)(LinkComponent, {
|
|
62
|
+
defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponents_1.DefaultEmptyFieldEditingComponentText,
|
|
63
|
+
}));
|
|
91
64
|
exports.Link.displayName = 'Link';
|
|
@@ -6,74 +6,72 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.AppPlaceholder = void 0;
|
|
7
7
|
const placeholder_utils_1 = require("./placeholder-utils");
|
|
8
8
|
const react_1 = __importDefault(require("react"));
|
|
9
|
-
const PlaceholderMetadata_1 = require("./PlaceholderMetadata");
|
|
10
9
|
const ErrorBoundary_1 = __importDefault(require("../ErrorBoundary"));
|
|
11
10
|
const ClientComponentWrapper_1 = require("./ClientComponentWrapper");
|
|
12
11
|
const _rsc_env_1 = require("#rsc-env");
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
12
|
+
const PlaceholderMetadata_1 = require("./PlaceholderMetadata");
|
|
13
|
+
const AppPlaceholderComponent = (props) => {
|
|
14
|
+
const renderingData = props.rendering;
|
|
15
|
+
const isEditing = props.page.mode.isEditing;
|
|
16
|
+
const placeholderRenderings = (0, placeholder_utils_1.getPlaceholderRenderings)(renderingData, props.name, isEditing);
|
|
17
|
+
const isEmpty = !placeholderRenderings.length;
|
|
18
|
+
const components = getPlaceholderComponents(props, placeholderRenderings);
|
|
19
|
+
if (isEmpty) {
|
|
20
|
+
let renderedOutput = components;
|
|
21
|
+
if (props.renderEmpty) {
|
|
22
|
+
renderedOutput = props.renderEmpty(components);
|
|
23
|
+
}
|
|
24
|
+
return isEditing ? (0, placeholder_utils_1.renderEmptyPlaceholder)(renderedOutput) : renderedOutput;
|
|
25
|
+
}
|
|
26
|
+
else if (props.render) {
|
|
27
|
+
return props.render(components, placeholderRenderings, props);
|
|
28
|
+
}
|
|
29
|
+
return components;
|
|
30
|
+
};
|
|
31
|
+
const getPlaceholderComponents = (placeholderProps, placeholderRenderings) => {
|
|
32
|
+
const { name, rendering, passThroughComponentProps, missingComponentComponent, hiddenRenderingComponent, errorComponent, componentLoadingMessage, renderEach, modifyComponentProps, componentMap, page, } = placeholderProps;
|
|
33
|
+
const isEditing = page.mode.isEditing;
|
|
34
|
+
const componentRuntime = _rsc_env_1.rsc ? 'server' : 'client';
|
|
35
|
+
const transformedComponents = placeholderRenderings
|
|
36
|
+
.map((componentRendering, index) => {
|
|
37
|
+
const { component: ChildComponent, isEmpty: componentEmpty, componentType, dynamic, } = (0, placeholder_utils_1.getComponentForRendering)(componentRendering, name, componentMap, hiddenRenderingComponent, missingComponentComponent);
|
|
38
|
+
const key = componentRendering.uid || `component-${index}`;
|
|
39
|
+
const renderedProps = modifyComponentProps
|
|
40
|
+
? modifyComponentProps((0, placeholder_utils_1.getChildComponentProps)(placeholderProps, componentRendering))
|
|
41
|
+
: (0, placeholder_utils_1.getChildComponentProps)(placeholderProps, componentRendering);
|
|
35
42
|
// Client wrapper is required only when component crosses boundary from server to client.
|
|
36
43
|
// It happens when component is marker as client and rendered in RSC context.
|
|
37
44
|
// Also, it is not required when component is hidden or empty, as it will be rendered whthout boundary crossing.
|
|
38
|
-
const useClientWrapper =
|
|
39
|
-
let rendered = useClientWrapper ? (react_1.default.createElement(ClientComponentWrapper_1.ClientComponentWrapper, { rendering: rendering, componentProps:
|
|
40
|
-
if (
|
|
45
|
+
const useClientWrapper = componentType === 'client' && _rsc_env_1.rsc && !componentEmpty;
|
|
46
|
+
let rendered = useClientWrapper ? (react_1.default.createElement(ClientComponentWrapper_1.ClientComponentWrapper, { rendering: renderedProps.rendering, componentProps: Object.assign(Object.assign({}, renderedProps), passThroughComponentProps), placeholderName: name, key: key })) : (react_1.default.createElement(ChildComponent, Object.assign({ key: key }, renderedProps, passThroughComponentProps, { page: page, componentMap: componentMap })));
|
|
47
|
+
if (renderEach) {
|
|
48
|
+
rendered = renderEach(rendered, index);
|
|
49
|
+
}
|
|
50
|
+
if (!componentEmpty) {
|
|
41
51
|
const errorBoundaryKey = rendered.type + '-' + index;
|
|
42
|
-
|
|
43
|
-
rendered = (react_1.default.createElement(ErrorBoundary_1.default, { "data-testid": "error-boundary", key: errorBoundaryKey, errorComponent: props.errorComponent, componentLoadingMessage: props.componentLoadingMessage, isDynamic: dynamic, disableSuspense: disableSuspense, rendering: rendered.props.rendering }, rendered));
|
|
52
|
+
rendered = (react_1.default.createElement(ErrorBoundary_1.default, { "data-testid": "error-boundary", key: errorBoundaryKey, errorComponent: errorComponent, componentLoadingMessage: componentLoadingMessage, isDynamic: dynamic, disableSuspense: placeholderProps.disableSuspense, rendering: rendered.props.rendering }, rendered));
|
|
44
53
|
}
|
|
45
54
|
// if in edit mode then emit shallow chromes for hydration in Pages
|
|
46
|
-
|
|
47
|
-
const key = rendering.uid || `component-${index}`;
|
|
48
|
-
return (react_1.default.createElement(PlaceholderMetadata_1.PlaceholderMetadata, { key: key, rendering: rendering, componentRuntime: componentRuntime }, rendered));
|
|
49
|
-
}
|
|
50
|
-
return rendered;
|
|
55
|
+
return isEditing ? (react_1.default.createElement(PlaceholderMetadata_1.PlaceholderMetadata, { key: key, rendering: componentRendering, componentRuntime: componentRuntime }, rendered)) : (rendered);
|
|
51
56
|
})
|
|
52
|
-
.filter((element) => element);
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
react_1.default.createElement(PlaceholderMetadata_1.PlaceholderMetadata, { key: parentRendering.uid || 'placeholder-metadata-root', placeholderName: props.name, rendering: parentRendering }, components),
|
|
56
|
-
]
|
|
57
|
-
: components;
|
|
58
|
-
const placeholderEmpty = !placeholderRenderings.length;
|
|
59
|
-
if (placeholderEmpty) {
|
|
60
|
-
const rendered = props.renderEmpty ? props.renderEmpty(finalRendering) : finalRendering;
|
|
61
|
-
return page.mode.isEditing ? (0, placeholder_utils_1.renderEmptyPlaceholder)(rendered) : rendered;
|
|
62
|
-
}
|
|
63
|
-
if (props.render) {
|
|
64
|
-
return props.render(components, placeholderRenderings, props);
|
|
65
|
-
}
|
|
66
|
-
else if (props.renderEach) {
|
|
67
|
-
const renderEach = props.renderEach;
|
|
68
|
-
return finalRendering.map((component, index) => {
|
|
69
|
-
if (component && component.props && component.props.type === 'text/sitecore') {
|
|
70
|
-
return component;
|
|
71
|
-
}
|
|
72
|
-
return renderEach(component, index);
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
return finalRendering;
|
|
57
|
+
.filter((element) => element); // remove nulls
|
|
58
|
+
if (!isEditing) {
|
|
59
|
+
return transformedComponents;
|
|
77
60
|
}
|
|
61
|
+
return [
|
|
62
|
+
react_1.default.createElement(PlaceholderMetadata_1.PlaceholderMetadata, { key: rendering.uid, placeholderName: name, rendering: rendering }, transformedComponents),
|
|
63
|
+
];
|
|
78
64
|
};
|
|
65
|
+
/**
|
|
66
|
+
* The implemention of placeholder compatible with React Server Components.
|
|
67
|
+
* Renders components from the layout data for the given placeholder name, with consideration for page edit mode.
|
|
68
|
+
* Pulls components from the provided component map.
|
|
69
|
+
* @param {AppPlaceholderProps} props Placeholder props
|
|
70
|
+
* @returns {React.ReactNode | React.ReactElement[]} rendered component(s)
|
|
71
|
+
* @public
|
|
72
|
+
*/
|
|
73
|
+
const AppPlaceholder = (props) => (
|
|
74
|
+
// Using error boundary for errors that may happen within Placeholder itself
|
|
75
|
+
react_1.default.createElement(ErrorBoundary_1.default, { errorComponent: props.errorComponent },
|
|
76
|
+
react_1.default.createElement(AppPlaceholderComponent, Object.assign({}, props))));
|
|
79
77
|
exports.AppPlaceholder = AppPlaceholder;
|
|
@@ -6,16 +6,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.ClientComponentWrapper = void 0;
|
|
8
8
|
const SitecoreProvider_1 = require("../SitecoreProvider");
|
|
9
|
-
const react_1 = require("react");
|
|
10
|
-
const react_2 = __importDefault(require("react"));
|
|
11
|
-
const withSitecore_1 = require("../../enhancers/withSitecore");
|
|
9
|
+
const react_1 = __importDefault(require("react"));
|
|
12
10
|
const placeholder_utils_1 = require("./placeholder-utils");
|
|
13
11
|
const ClientComponentWrapper = (props) => {
|
|
14
|
-
const { page } = (0,
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
const { component: Component } = (0, placeholder_utils_1.getComponentForRendering)(props.rendering, props.placeholderName, componentMap);
|
|
19
|
-
return react_2.default.createElement(Component, Object.assign({}, componentPropsWithContext));
|
|
12
|
+
const { page, componentMap: clientComponentMap } = (0, SitecoreProvider_1.useSitecore)();
|
|
13
|
+
const componentPropsWithContext = Object.assign(Object.assign({}, props.componentProps), { rendering: props.rendering, componentMap: clientComponentMap, page });
|
|
14
|
+
const { component: Component } = (0, placeholder_utils_1.getComponentForRendering)(props.rendering, props.placeholderName, clientComponentMap);
|
|
15
|
+
return react_1.default.createElement(Component, Object.assign({}, componentPropsWithContext));
|
|
20
16
|
};
|
|
21
17
|
exports.ClientComponentWrapper = ClientComponentWrapper;
|