@sitecore-jss/sitecore-jss-react 22.4.0-canary.1 → 22.4.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.
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.ComponentLibraryLayout = void 0;
27
+ const react_1 = __importStar(require("react"));
28
+ const Placeholder_1 = require("./Placeholder");
29
+ const layout_1 = require("@sitecore-jss/sitecore-jss/layout");
30
+ const editing_1 = require("@sitecore-jss/sitecore-jss/editing");
31
+ const EditingScripts_1 = require("./EditingScripts");
32
+ const ComponentLibraryLayout = (layoutData) => {
33
+ const { route } = layoutData.sitecore;
34
+ const [rootUpdate, setRootUpdate] = (0, react_1.useState)(null);
35
+ const rootComponent = route === null || route === void 0 ? void 0 : route.placeholders[layout_1.EDITING_COMPONENT_PLACEHOLDER][0];
36
+ // useEffect may execute multiple times on single render (i.e. in dev) - but we only want to fire ready event once
37
+ let componentReady = false;
38
+ // have an up-to-date layout state between re-renders (SSR re-render excluded)
39
+ const persistedRoot = (0, react_1.useMemo)(() => (Object.assign(Object.assign({}, (rootComponent || {})), rootUpdate)), [
40
+ rootComponent,
41
+ rootUpdate,
42
+ ]);
43
+ route.placeholders[layout_1.EDITING_COMPONENT_PLACEHOLDER][0] = persistedRoot;
44
+ (0, react_1.useEffect)(() => {
45
+ // useEffect will fire when components are ready - and we inform the whole wide world of it too
46
+ if (!componentReady) {
47
+ componentReady = true;
48
+ window.top.postMessage(editing_1.COMPONENT_LIBRARY_READY_MESSAGE, '*');
49
+ }
50
+ const unsubscribe = (0, editing_1.addComponentUpdateHandler)(persistedRoot, (updatedRoot) => setRootUpdate(Object.assign({}, updatedRoot)));
51
+ // useEffect will cleanup event handler on re-render
52
+ return unsubscribe;
53
+ }, []);
54
+ return (react_1.default.createElement(react_1.default.Fragment, null,
55
+ react_1.default.createElement(EditingScripts_1.EditingScripts, null),
56
+ react_1.default.createElement("main", null,
57
+ 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 })))));
58
+ };
59
+ exports.ComponentLibraryLayout = ComponentLibraryLayout;
package/dist/cjs/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withEmptyFieldEditingComponent = exports.withFieldMetadata = exports.ComponentBuilder = exports.EditFrame = exports.withDatasourceCheck = exports.withPlaceholder = exports.withEditorChromes = exports.useSitecoreContext = exports.withSitecoreContext = exports.SitecoreContextReactContext = exports.SitecoreContext = exports.VisitorIdentification = exports.File = exports.LinkPropTypes = exports.Link = exports.BYOCWrapper = exports.fetchBYOCComponentServerProps = exports.BYOCComponent = exports.FEaaSWrapper = exports.fetchFEaaSComponentServerProps = exports.FEaaSComponent = exports.DateField = exports.Text = exports.RichTextPropTypes = exports.RichText = exports.getEEMarkup = exports.Image = exports.Placeholder = exports.mediaApi = exports.GraphQLRequestClient = exports.DefaultRetryStrategy = exports.RestDictionaryService = exports.GraphQLDictionaryService = exports.trackingApi = exports.EditMode = exports.getFieldValue = exports.getChildPlaceholder = exports.RestLayoutService = exports.GraphQLLayoutService = exports.LayoutServicePageState = exports.getComponentLibraryStylesheetLinks = exports.getContentStylesheetLink = exports.DefaultEditFrameButtons = exports.DefaultEditFrameButton = exports.resetEditorChromes = exports.isEditorActive = exports.MemoryCacheClient = exports.ClientError = exports.enableDebug = exports.constants = void 0;
4
- exports.DefaultEmptyFieldEditingComponentImage = exports.DefaultEmptyFieldEditingComponentText = exports.EditingScripts = void 0;
3
+ exports.withFieldMetadata = exports.ComponentBuilder = exports.EditFrame = exports.withDatasourceCheck = exports.withPlaceholder = exports.withEditorChromes = exports.useSitecoreContext = exports.withSitecoreContext = exports.SitecoreContextReactContext = exports.SitecoreContext = exports.VisitorIdentification = exports.File = exports.LinkPropTypes = exports.Link = exports.BYOCWrapper = exports.fetchBYOCComponentServerProps = exports.BYOCComponent = exports.ComponentLibraryLayout = exports.FEaaSWrapper = exports.fetchFEaaSComponentServerProps = exports.FEaaSComponent = exports.DateField = exports.Text = exports.RichTextPropTypes = exports.RichText = exports.getEEMarkup = exports.Image = exports.Placeholder = exports.mediaApi = exports.GraphQLRequestClient = exports.DefaultRetryStrategy = exports.RestDictionaryService = exports.GraphQLDictionaryService = exports.trackingApi = exports.EditMode = exports.getFieldValue = exports.getChildPlaceholder = exports.RestLayoutService = exports.GraphQLLayoutService = exports.LayoutServicePageState = exports.getComponentLibraryStylesheetLinks = exports.getContentStylesheetLink = exports.DefaultEditFrameButtons = exports.DefaultEditFrameButton = exports.resetEditorChromes = exports.isEditorActive = exports.MemoryCacheClient = exports.ClientError = exports.enableDebug = exports.constants = void 0;
4
+ exports.DefaultEmptyFieldEditingComponentImage = exports.DefaultEmptyFieldEditingComponentText = exports.EditingScripts = exports.withEmptyFieldEditingComponent = void 0;
5
5
  var sitecore_jss_1 = require("@sitecore-jss/sitecore-jss");
6
6
  Object.defineProperty(exports, "constants", { enumerable: true, get: function () { return sitecore_jss_1.constants; } });
7
7
  Object.defineProperty(exports, "enableDebug", { enumerable: true, get: function () { return sitecore_jss_1.enableDebug; } });
@@ -48,6 +48,8 @@ Object.defineProperty(exports, "FEaaSComponent", { enumerable: true, get: functi
48
48
  Object.defineProperty(exports, "fetchFEaaSComponentServerProps", { enumerable: true, get: function () { return FEaaSComponent_1.fetchFEaaSComponentServerProps; } });
49
49
  var FEaaSWrapper_1 = require("./components/FEaaSWrapper");
50
50
  Object.defineProperty(exports, "FEaaSWrapper", { enumerable: true, get: function () { return FEaaSWrapper_1.FEaaSWrapper; } });
51
+ var ComponentLibraryLayout_1 = require("./components/ComponentLibraryLayout");
52
+ Object.defineProperty(exports, "ComponentLibraryLayout", { enumerable: true, get: function () { return ComponentLibraryLayout_1.ComponentLibraryLayout; } });
51
53
  var BYOCComponent_1 = require("./components/BYOCComponent");
52
54
  Object.defineProperty(exports, "BYOCComponent", { enumerable: true, get: function () { return BYOCComponent_1.BYOCComponent; } });
53
55
  Object.defineProperty(exports, "fetchBYOCComponentServerProps", { enumerable: true, get: function () { return BYOCComponent_1.fetchBYOCComponentServerProps; } });
@@ -0,0 +1,32 @@
1
+ import React, { useEffect, useMemo, useState } from 'react';
2
+ import { Placeholder } from './Placeholder';
3
+ import { EDITING_COMPONENT_ID, EDITING_COMPONENT_PLACEHOLDER, } from '@sitecore-jss/sitecore-jss/layout';
4
+ import { addComponentUpdateHandler, COMPONENT_LIBRARY_READY_MESSAGE, } from '@sitecore-jss/sitecore-jss/editing';
5
+ import { EditingScripts } from './EditingScripts';
6
+ export const ComponentLibraryLayout = (layoutData) => {
7
+ const { route } = layoutData.sitecore;
8
+ const [rootUpdate, setRootUpdate] = useState(null);
9
+ const rootComponent = route === null || route === void 0 ? void 0 : route.placeholders[EDITING_COMPONENT_PLACEHOLDER][0];
10
+ // useEffect may execute multiple times on single render (i.e. in dev) - but we only want to fire ready event once
11
+ let componentReady = false;
12
+ // have an up-to-date layout state between re-renders (SSR re-render excluded)
13
+ const persistedRoot = useMemo(() => (Object.assign(Object.assign({}, (rootComponent || {})), rootUpdate)), [
14
+ rootComponent,
15
+ rootUpdate,
16
+ ]);
17
+ route.placeholders[EDITING_COMPONENT_PLACEHOLDER][0] = persistedRoot;
18
+ useEffect(() => {
19
+ // useEffect will fire when components are ready - and we inform the whole wide world of it too
20
+ if (!componentReady) {
21
+ componentReady = true;
22
+ window.top.postMessage(COMPONENT_LIBRARY_READY_MESSAGE, '*');
23
+ }
24
+ const unsubscribe = addComponentUpdateHandler(persistedRoot, (updatedRoot) => setRootUpdate(Object.assign({}, updatedRoot)));
25
+ // useEffect will cleanup event handler on re-render
26
+ return unsubscribe;
27
+ }, []);
28
+ return (React.createElement(React.Fragment, null,
29
+ React.createElement(EditingScripts, null),
30
+ React.createElement("main", null,
31
+ React.createElement("div", { id: EDITING_COMPONENT_ID }, route && React.createElement(Placeholder, { name: EDITING_COMPONENT_PLACEHOLDER, rendering: route })))));
32
+ };
package/dist/esm/index.js CHANGED
@@ -12,6 +12,7 @@ export { Text } from './components/Text';
12
12
  export { DateField } from './components/Date';
13
13
  export { FEaaSComponent, fetchFEaaSComponentServerProps, } from './components/FEaaSComponent';
14
14
  export { FEaaSWrapper } from './components/FEaaSWrapper';
15
+ export { ComponentLibraryLayout } from './components/ComponentLibraryLayout';
15
16
  export { BYOCComponent, fetchBYOCComponentServerProps, } from './components/BYOCComponent';
16
17
  export { BYOCWrapper } from './components/BYOCWrapper';
17
18
  export { Link, LinkPropTypes } from './components/Link';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sitecore-jss/sitecore-jss-react",
3
- "version": "22.4.0-canary.1",
3
+ "version": "22.4.0-canary.3",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "sideEffects": false,
@@ -61,14 +61,14 @@
61
61
  "react-dom": "^18.2.0"
62
62
  },
63
63
  "dependencies": {
64
- "@sitecore-jss/sitecore-jss": "^22.4.0-canary.1",
64
+ "@sitecore-jss/sitecore-jss": "^22.4.0-canary.3",
65
65
  "fast-deep-equal": "^3.1.3",
66
66
  "prop-types": "^15.8.1",
67
67
  "style-attr": "^1.3.0"
68
68
  },
69
69
  "description": "",
70
70
  "types": "types/index.d.ts",
71
- "gitHead": "d3ecb29aed9eb83d3d4db8df8ee58870aae6e74f",
71
+ "gitHead": "9e192b19fd1c19e559a93469ce26392eed3621e0",
72
72
  "files": [
73
73
  "dist",
74
74
  "types"
@@ -0,0 +1,2 @@
1
+ import { LayoutServiceData } from '@sitecore-jss/sitecore-jss/layout';
2
+ export declare const ComponentLibraryLayout: (layoutData: LayoutServiceData) => JSX.Element;
package/types/index.d.ts CHANGED
@@ -14,6 +14,7 @@ export { Text, TextField } from './components/Text';
14
14
  export { DateField, DateFieldProps } from './components/Date';
15
15
  export { FEaaSComponent, FEaaSComponentProps, FEaaSComponentParams, fetchFEaaSComponentServerProps, } from './components/FEaaSComponent';
16
16
  export { FEaaSWrapper } from './components/FEaaSWrapper';
17
+ export { ComponentLibraryLayout } from './components/ComponentLibraryLayout';
17
18
  export { BYOCComponent, BYOCComponentParams, BYOCComponentProps, fetchBYOCComponentServerProps, } from './components/BYOCComponent';
18
19
  export { BYOCWrapper } from './components/BYOCWrapper';
19
20
  export { Link, LinkField, LinkFieldValue, LinkProps, LinkPropTypes } from './components/Link';