@sitecore-content-sdk/react 2.0.0-canary.2 → 2.0.0-canary.3
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/dist/cjs/components/Date.js +13 -11
- package/dist/cjs/components/DefaultEmptyFieldEditingComponents.js +2 -1
- package/dist/cjs/components/DesignLibrary/DesignLibrary.js +3 -7
- package/dist/cjs/components/DesignLibrary/DesignLibraryClientEvents.js +13 -5
- package/dist/cjs/components/EditingScripts.js +2 -2
- package/dist/cjs/components/ErrorBoundary.js +8 -3
- package/dist/cjs/components/File.js +3 -1
- package/dist/cjs/components/Form.js +12 -5
- package/dist/cjs/components/Image.js +12 -9
- package/dist/cjs/components/Link.js +19 -46
- package/dist/cjs/components/Placeholder/AppPlaceholder.js +57 -58
- package/dist/cjs/components/Placeholder/ClientComponentWrapper.js +5 -9
- package/dist/cjs/components/Placeholder/Placeholder.js +21 -93
- package/dist/cjs/components/Placeholder/index.js +1 -2
- package/dist/cjs/components/Placeholder/placeholder-utils.js +7 -35
- package/dist/cjs/components/RichText.js +18 -49
- package/dist/cjs/components/SitecoreProvider.js +81 -33
- package/dist/cjs/components/Text.js +12 -8
- 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 +8 -38
- 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 +9 -7
- package/dist/cjs/search/utils.js +2 -2
- package/dist/esm/components/Date.js +13 -11
- package/dist/esm/components/DefaultEmptyFieldEditingComponents.js +2 -1
- package/dist/esm/components/DesignLibrary/DesignLibrary.js +3 -7
- package/dist/esm/components/DesignLibrary/DesignLibraryClientEvents.js +12 -4
- package/dist/esm/components/EditingScripts.js +2 -2
- package/dist/esm/components/ErrorBoundary.js +8 -3
- package/dist/esm/components/File.js +3 -1
- package/dist/esm/components/Form.js +11 -4
- package/dist/esm/components/Image.js +12 -9
- package/dist/esm/components/Link.js +16 -13
- package/dist/esm/components/Placeholder/AppPlaceholder.js +58 -59
- package/dist/esm/components/Placeholder/ClientComponentWrapper.js +4 -8
- package/dist/esm/components/Placeholder/Placeholder.js +20 -89
- package/dist/esm/components/Placeholder/index.js +1 -1
- package/dist/esm/components/Placeholder/placeholder-utils.js +5 -32
- package/dist/esm/components/RichText.js +15 -16
- package/dist/esm/components/SitecoreProvider.js +46 -32
- package/dist/esm/components/Text.js +12 -8
- 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 +5 -5
- 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 +4 -3
- package/dist/esm/search/utils.js +1 -1
- package/package.json +5 -5
- 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 +0 -2
- package/types/components/DesignLibrary/DesignLibrary.d.ts.map +1 -1
- package/types/components/DesignLibrary/DesignLibraryClientEvents.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 +2 -2
- package/types/components/ErrorBoundary.d.ts.map +1 -1
- package/types/components/File.d.ts.map +1 -1
- package/types/components/Form.d.ts.map +1 -1
- package/types/components/Image.d.ts.map +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 +2 -2
- package/types/components/Placeholder/ClientComponentWrapper.d.ts.map +1 -1
- package/types/components/Placeholder/Placeholder.d.ts +4 -19
- package/types/components/Placeholder/Placeholder.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 +30 -56
- package/types/components/Placeholder/models.d.ts.map +1 -1
- package/types/components/Placeholder/placeholder-utils.d.ts +5 -13
- package/types/components/Placeholder/placeholder-utils.d.ts.map +1 -1
- package/types/components/RichText.d.ts +2 -0
- package/types/components/RichText.d.ts.map +1 -1
- package/types/components/SitecoreProvider.d.ts +43 -13
- package/types/components/SitecoreProvider.d.ts.map +1 -1
- package/types/components/Text.d.ts.map +1 -1
- package/types/enhancers/withAppPlaceholder.d.ts +6 -0
- package/types/enhancers/withAppPlaceholder.d.ts.map +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 +5 -3
- 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 +8 -50
- package/types/enhancers/withSitecore.d.ts.map +1 -1
- package/types/index.d.ts +4 -3
- package/types/index.d.ts.map +1 -1
- package/dist/cjs/enhancers/withComponentMap.js +0 -24
- package/dist/cjs/enhancers/withLoadImportMap.js +0 -62
- package/dist/esm/enhancers/withComponentMap.js +0 -18
- package/dist/esm/enhancers/withLoadImportMap.js +0 -25
- package/types/enhancers/withComponentMap.d.ts +0 -13
- package/types/enhancers/withComponentMap.d.ts.map +0 -1
- package/types/enhancers/withLoadImportMap.d.ts +0 -28
- package/types/enhancers/withLoadImportMap.d.ts.map +0 -1
|
@@ -20,19 +20,13 @@ const withFieldMetadata_1 = require("../enhancers/withFieldMetadata");
|
|
|
20
20
|
const withEmptyFieldEditingComponent_1 = require("../enhancers/withEmptyFieldEditingComponent");
|
|
21
21
|
const DefaultEmptyFieldEditingComponents_1 = require("./DefaultEmptyFieldEditingComponents");
|
|
22
22
|
const layout_1 = require("@sitecore-content-sdk/content/layout");
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
* @public
|
|
26
|
-
*/
|
|
27
|
-
exports.DateField = (0, withFieldMetadata_1.withFieldMetadata)((0, withEmptyFieldEditingComponent_1.withEmptyFieldEditingComponent)(
|
|
28
|
-
// eslint-disable-next-line no-unused-vars
|
|
29
|
-
(_a) => {
|
|
30
|
-
var { field, tag, editable = true, render } = _a, otherProps = __rest(_a, ["field", "tag", "editable", "render"]);
|
|
23
|
+
const DateFieldComponent = (_a) => {
|
|
24
|
+
var { field, tag, render } = _a, htmlProps = __rest(_a, ["field", "tag", "render"]);
|
|
31
25
|
if ((0, layout_1.isFieldValueEmpty)(field)) {
|
|
32
26
|
return null;
|
|
33
27
|
}
|
|
28
|
+
delete htmlProps.editable; // prevent editable from being passed to the DOM
|
|
34
29
|
let children;
|
|
35
|
-
const htmlProps = Object.assign({}, otherProps);
|
|
36
30
|
if (render) {
|
|
37
31
|
children = render(field.value ? new Date(field.value) : null);
|
|
38
32
|
}
|
|
@@ -40,10 +34,18 @@ exports.DateField = (0, withFieldMetadata_1.withFieldMetadata)((0, withEmptyFiel
|
|
|
40
34
|
children = field.value;
|
|
41
35
|
}
|
|
42
36
|
if (tag) {
|
|
43
|
-
|
|
37
|
+
const Tag = (tag || 'span');
|
|
38
|
+
return react_1.default.createElement(Tag, Object.assign({}, htmlProps), children);
|
|
44
39
|
}
|
|
45
40
|
else {
|
|
46
41
|
return react_1.default.createElement(react_1.default.Fragment, null, children);
|
|
47
42
|
}
|
|
48
|
-
}
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* The DateField component.
|
|
46
|
+
* @public
|
|
47
|
+
*/
|
|
48
|
+
exports.DateField = (0, withFieldMetadata_1.withFieldMetadata)((0, withEmptyFieldEditingComponent_1.withEmptyFieldEditingComponent)(DateFieldComponent, {
|
|
49
|
+
defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponents_1.DefaultEmptyFieldEditingComponentText,
|
|
50
|
+
}));
|
|
49
51
|
exports.DateField.displayName = 'Date';
|
|
@@ -11,7 +11,8 @@ const react_1 = __importDefault(require("react"));
|
|
|
11
11
|
* @public
|
|
12
12
|
*/
|
|
13
13
|
const DefaultEmptyFieldEditingComponentText = (props) => {
|
|
14
|
-
|
|
14
|
+
const Tag = (props.tag || 'span');
|
|
15
|
+
return (react_1.default.createElement(Tag, Object.assign({}, props, { suppressHydrationWarning: true }), "[No text in field]"));
|
|
15
16
|
};
|
|
16
17
|
exports.DefaultEmptyFieldEditingComponentText = DefaultEmptyFieldEditingComponentText;
|
|
17
18
|
/**
|
|
@@ -42,10 +42,9 @@ const layout_1 = require("@sitecore-content-sdk/content/layout");
|
|
|
42
42
|
const editing_1 = require("@sitecore-content-sdk/content/editing");
|
|
43
43
|
const codegen = __importStar(require("@sitecore-content-sdk/content/codegen"));
|
|
44
44
|
const editing = __importStar(require("@sitecore-content-sdk/content/editing"));
|
|
45
|
-
const
|
|
45
|
+
const SitecoreProvider_1 = require("../../components/SitecoreProvider");
|
|
46
46
|
const Placeholder_1 = require("../Placeholder");
|
|
47
47
|
const DesignLibraryErrorBoundary_1 = require("./DesignLibraryErrorBoundary");
|
|
48
|
-
const withLoadImportMap_1 = require("../../enhancers/withLoadImportMap");
|
|
49
48
|
const ErrorBoundary_1 = require("../ErrorBoundary");
|
|
50
49
|
let { getDesignLibraryImportMapEvent, getDesignLibraryComponentPropsEvent, addComponentPreviewHandler, sendErrorEvent, } = codegen;
|
|
51
50
|
let { postToDesignLibrary } = editing;
|
|
@@ -66,15 +65,12 @@ exports.__mockDependencies = __mockDependencies;
|
|
|
66
65
|
* when generation is enabled (`page.mode.designLibrary.isVariantGeneration === true`),
|
|
67
66
|
* wires the **variant generation** handshake so the parent (DL Studio) can send
|
|
68
67
|
* generated code to preview and iterate on.
|
|
69
|
-
* @param {DesignLibraryProps} props
|
|
70
|
-
* @param {() => Promise} [props.loadImportMap] Optional async loader that resolves to the import-map used to resolve the generated component’s imports. Required when `isVariantGeneration` is true.
|
|
71
68
|
* @returns {JSX.Element} The preview surface, or `null` when not in Design Library mode.
|
|
72
69
|
* @public
|
|
73
70
|
*/
|
|
74
71
|
const DesignLibrary = () => {
|
|
75
72
|
var _a, _b;
|
|
76
|
-
const { page } = (0,
|
|
77
|
-
const loadImportMap = (0, withLoadImportMap_1.useLoadImportMap)();
|
|
73
|
+
const { page, loadImportMap } = (0, SitecoreProvider_1.useSitecore)();
|
|
78
74
|
const route = page.layout.sitecore.route;
|
|
79
75
|
const rendering = (_a = route === null || route === void 0 ? void 0 : route.placeholders[layout_1.EDITING_COMPONENT_PLACEHOLDER]) === null || _a === void 0 ? void 0 : _a[0];
|
|
80
76
|
const uid = rendering === null || rendering === void 0 ? void 0 : rendering.uid;
|
|
@@ -155,7 +151,7 @@ const DesignLibrary = () => {
|
|
|
155
151
|
cancelled = true;
|
|
156
152
|
unsubscribe && unsubscribe();
|
|
157
153
|
};
|
|
158
|
-
}, [isVariantGeneration, uid]);
|
|
154
|
+
}, [isDesignLibrary, isVariantGeneration, uid, loadImportMap, propsState]);
|
|
159
155
|
return (react_1.default.createElement("main", null, isGeneratedComponentActive ? (react_1.default.createElement(DesignLibraryErrorBoundary_1.DesignLibraryErrorBoundary, { uid: uid, renderKey: renderKey },
|
|
160
156
|
react_1.default.createElement(Placeholder_1.PlaceholderMetadata, { rendering: rendering },
|
|
161
157
|
react_1.default.createElement(Component, { fields: propsState.fields, params: propsState.params, key: renderKey })))) : (react_1.default.createElement("div", { id: layout_1.EDITING_COMPONENT_ID }, route && (react_1.default.createElement(Placeholder_1.Placeholder, { name: layout_1.EDITING_COMPONENT_PLACEHOLDER, rendering: route, key: renderKey }))))));
|
|
@@ -39,7 +39,7 @@ const react_1 = __importStar(require("react"));
|
|
|
39
39
|
const dlHelpers = __importStar(require("@sitecore-content-sdk/content/editing"));
|
|
40
40
|
const codegen = __importStar(require("@sitecore-content-sdk/content/codegen"));
|
|
41
41
|
const update_server_component_action_1 = require("../../server-actions/update-server-component-action");
|
|
42
|
-
const
|
|
42
|
+
const SitecoreProvider_1 = require("../SitecoreProvider");
|
|
43
43
|
let { getDesignLibraryComponentPropsEvent, addServerComponentPreviewHandler, getDesignLibraryImportMapEvent, addStyleElement, sendErrorEvent, } = codegen;
|
|
44
44
|
let { getDesignLibraryStatusEvent, addComponentUpdateHandler, postToDesignLibrary } = dlHelpers;
|
|
45
45
|
let _updateComponentAction = update_server_component_action_1.updateComponentAction;
|
|
@@ -87,7 +87,9 @@ exports.DesignLibraryPreviewEvents = DesignLibraryPreviewEvents;
|
|
|
87
87
|
* @returns {JSX.Element} empty JSX element.
|
|
88
88
|
*/
|
|
89
89
|
const DesignLibraryVariantGenerationEvents = ({ designLibraryStatus, component, importMap, componentInitError, generatedComponentData, }) => {
|
|
90
|
-
|
|
90
|
+
var _a;
|
|
91
|
+
const { api } = (0, SitecoreProvider_1.useSitecore)();
|
|
92
|
+
const edgeUrl = (_a = api === null || api === void 0 ? void 0 : api.edge) === null || _a === void 0 ? void 0 : _a.edgeUrl;
|
|
91
93
|
(0, react_1.useEffect)(() => {
|
|
92
94
|
var _a;
|
|
93
95
|
if (!(component === null || component === void 0 ? void 0 : component.uid))
|
|
@@ -101,11 +103,10 @@ const DesignLibraryVariantGenerationEvents = ({ designLibraryStatus, component,
|
|
|
101
103
|
});
|
|
102
104
|
});
|
|
103
105
|
const unsubPreview = addServerComponentPreviewHandler((eventArgs) => {
|
|
104
|
-
var _a;
|
|
105
106
|
_previewComponentAction({
|
|
106
107
|
uid: component.uid,
|
|
107
108
|
args: eventArgs,
|
|
108
|
-
},
|
|
109
|
+
}, edgeUrl);
|
|
109
110
|
});
|
|
110
111
|
if (componentInitError) {
|
|
111
112
|
// an error occurred during initialization of the component on the server side
|
|
@@ -125,7 +126,14 @@ const DesignLibraryVariantGenerationEvents = ({ designLibraryStatus, component,
|
|
|
125
126
|
unsubUpdate && unsubUpdate();
|
|
126
127
|
unsubPreview && unsubPreview();
|
|
127
128
|
};
|
|
128
|
-
}, [
|
|
129
|
+
}, [
|
|
130
|
+
component,
|
|
131
|
+
designLibraryStatus,
|
|
132
|
+
importMap,
|
|
133
|
+
componentInitError,
|
|
134
|
+
generatedComponentData,
|
|
135
|
+
edgeUrl,
|
|
136
|
+
]);
|
|
129
137
|
return react_1.default.createElement(react_1.default.Fragment, null);
|
|
130
138
|
};
|
|
131
139
|
exports.DesignLibraryVariantGenerationEvents = DesignLibraryVariantGenerationEvents;
|
|
@@ -6,7 +6,7 @@ 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
|
|
9
|
+
const SitecoreProvider_1 = require("./SitecoreProvider");
|
|
10
10
|
const editing_1 = require("@sitecore-content-sdk/content/editing");
|
|
11
11
|
/**
|
|
12
12
|
* Renders client scripts and data for editing/preview mode for Pages.
|
|
@@ -16,7 +16,7 @@ const editing_1 = require("@sitecore-content-sdk/content/editing");
|
|
|
16
16
|
*/
|
|
17
17
|
const EditingScripts = () => {
|
|
18
18
|
var _a;
|
|
19
|
-
const { page: { mode, layout }, api, } = (0,
|
|
19
|
+
const { page: { mode, layout }, api, } = (0, SitecoreProvider_1.useSitecore)();
|
|
20
20
|
const { clientData, clientScripts } = layout.sitecore.context;
|
|
21
21
|
// Don't render anything if not in editing mode and rendering type is not component
|
|
22
22
|
if (mode.isNormal || mode.isPreview) {
|
|
@@ -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.';
|
|
@@ -98,4 +98,9 @@ class ErrorBoundary extends react_1.default.Component {
|
|
|
98
98
|
return (react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement("h4", null, this.props.componentLoadingMessage || this.defaultLoadingMessage) }, this.props.children));
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
|
-
|
|
101
|
+
const ErrorBoundary = (props) => {
|
|
102
|
+
const { page } = (0, SitecoreProvider_1.useSitecore)();
|
|
103
|
+
const boundaryProps = Object.assign(Object.assign({}, props), { page });
|
|
104
|
+
return react_1.default.createElement(ErrorBoundaryClass, Object.assign({}, boundaryProps));
|
|
105
|
+
};
|
|
106
|
+
exports.default = ErrorBoundary;
|
|
@@ -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';
|
|
@@ -37,7 +37,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
37
37
|
exports.Form = exports.mockFormModule = void 0;
|
|
38
38
|
const react_1 = __importStar(require("react"));
|
|
39
39
|
const content_1 = require("@sitecore-content-sdk/content");
|
|
40
|
-
const
|
|
40
|
+
const SitecoreProvider_1 = require("./SitecoreProvider");
|
|
41
41
|
const ErrorBoundary_1 = require("./ErrorBoundary");
|
|
42
42
|
let { executeScriptElements, loadForm, subscribeToFormSubmitEvent } = content_1.form;
|
|
43
43
|
/**
|
|
@@ -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,7 +15,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.Image = void 0;
|
|
18
|
-
/* eslint-disable no-unused-vars */
|
|
19
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");
|
|
@@ -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 =
|
|
19
|
+
const react_1 = __importDefault(require("react"));
|
|
50
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,73 @@ 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
|
-
const disableSuspense =
|
|
43
|
-
rendered = (react_1.default.createElement(ErrorBoundary_1.default, { "data-testid": "error-boundary", key: errorBoundaryKey, errorComponent:
|
|
52
|
+
const disableSuspense = placeholderProps.disableSuspense || false;
|
|
53
|
+
rendered = (react_1.default.createElement(ErrorBoundary_1.default, { "data-testid": "error-boundary", key: errorBoundaryKey, errorComponent: errorComponent, componentLoadingMessage: componentLoadingMessage, isDynamic: dynamic, disableSuspense: disableSuspense, rendering: rendered.props.rendering }, rendered));
|
|
44
54
|
}
|
|
45
55
|
// 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;
|
|
56
|
+
return isEditing ? (react_1.default.createElement(PlaceholderMetadata_1.PlaceholderMetadata, { key: key, rendering: componentRendering, componentRuntime: componentRuntime }, rendered)) : (rendered);
|
|
51
57
|
})
|
|
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;
|
|
58
|
+
.filter((element) => element); // remove nulls
|
|
59
|
+
if (!isEditing) {
|
|
60
|
+
return transformedComponents;
|
|
77
61
|
}
|
|
62
|
+
return [
|
|
63
|
+
react_1.default.createElement(PlaceholderMetadata_1.PlaceholderMetadata, { key: rendering.uid, placeholderName: name, rendering: rendering }, transformedComponents),
|
|
64
|
+
];
|
|
78
65
|
};
|
|
66
|
+
/**
|
|
67
|
+
* The implemention of placeholder compatible with React Server Components.
|
|
68
|
+
* Renders components from the layout data for the given placeholder name, with consideration for page edit mode.
|
|
69
|
+
* Pulls components from the provided component map.
|
|
70
|
+
* @param {AppPlaceholderProps} props Placeholder props
|
|
71
|
+
* @returns {React.ReactNode | React.ReactElement[]} rendered component(s)
|
|
72
|
+
* @public
|
|
73
|
+
*/
|
|
74
|
+
const AppPlaceholder = (props) => (
|
|
75
|
+
// Using error boundary for errors that may happen within Placeholder itself
|
|
76
|
+
react_1.default.createElement(ErrorBoundary_1.default, { errorComponent: props.errorComponent },
|
|
77
|
+
react_1.default.createElement(AppPlaceholderComponent, Object.assign({}, props))));
|
|
79
78
|
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;
|