@sitecore-jss/sitecore-jss-react 23.0.0-canary.2 → 23.0.0-canary.21
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 +3 -5
- package/dist/cjs/components/ErrorBoundary.js +18 -2
- package/dist/cjs/components/Image.js +5 -10
- package/dist/cjs/components/Link.js +5 -8
- package/dist/cjs/components/Placeholder.js +3 -10
- package/dist/cjs/components/PlaceholderCommon.js +15 -58
- package/dist/cjs/components/RichText.js +10 -11
- package/dist/cjs/components/SitecoreContext.js +0 -8
- package/dist/cjs/components/Text.js +3 -6
- package/dist/cjs/enhancers/withDatasourceCheck.js +1 -4
- package/dist/cjs/enhancers/withPlaceholder.js +2 -2
- package/dist/cjs/enhancers/withSitecoreContext.js +1 -2
- package/dist/cjs/index.js +1 -28
- package/dist/cjs/utils.js +1 -16
- package/dist/esm/components/Date.js +2 -5
- package/dist/esm/components/ErrorBoundary.js +18 -2
- package/dist/esm/components/Image.js +4 -10
- package/dist/esm/components/Link.js +5 -8
- package/dist/esm/components/Placeholder.js +3 -10
- package/dist/esm/components/PlaceholderCommon.js +16 -59
- package/dist/esm/components/RichText.js +11 -12
- package/dist/esm/components/SitecoreContext.js +0 -8
- package/dist/esm/components/Text.js +2 -6
- package/dist/esm/enhancers/withDatasourceCheck.js +1 -4
- package/dist/esm/enhancers/withPlaceholder.js +2 -2
- package/dist/esm/enhancers/withSitecoreContext.js +2 -3
- package/dist/esm/index.js +1 -11
- package/dist/esm/utils.js +0 -14
- package/package.json +3 -6
- package/types/ComponentBuilder.d.ts +0 -1
- package/types/components/Date.d.ts +2 -4
- package/types/components/EditFrame.d.ts +0 -1
- package/types/components/ErrorBoundary.d.ts +0 -1
- package/types/components/File.d.ts +0 -1
- package/types/components/HiddenRendering.d.ts +0 -1
- package/types/components/Image.d.ts +2 -4
- package/types/components/Link.d.ts +3 -5
- package/types/components/MissingComponent.d.ts +0 -1
- package/types/components/Placeholder.d.ts +0 -1
- package/types/components/PlaceholderCommon.d.ts +12 -4
- package/types/components/RichText.d.ts +3 -5
- package/types/components/SitecoreContext.d.ts +0 -21
- package/types/components/Text.d.ts +2 -4
- package/types/components/VisitorIdentification.d.ts +0 -1
- package/types/components/sharedTypes.d.ts +1 -8
- package/types/enhancers/withComponentFactory.d.ts +0 -1
- package/types/enhancers/withDatasourceCheck.d.ts +0 -1
- package/types/enhancers/withEditorChromes.d.ts +0 -1
- package/types/enhancers/withPlaceholder.d.ts +0 -1
- package/types/enhancers/withSitecoreContext.d.ts +1 -3
- package/types/index.d.ts +1 -11
- package/types/utils.d.ts +0 -9
- package/dist/cjs/components/BYOCComponent.js +0 -122
- package/dist/cjs/components/BYOCWrapper.js +0 -18
- package/dist/cjs/components/DefaultEmptyFieldEditingComponents.js +0 -22
- package/dist/cjs/components/DesignLibrary.js +0 -72
- package/dist/cjs/components/EditingScripts.js +0 -47
- package/dist/cjs/components/FEaaSComponent.js +0 -151
- package/dist/cjs/components/FEaaSWrapper.js +0 -18
- package/dist/cjs/components/FieldMetadata.js +0 -29
- package/dist/cjs/components/Form.js +0 -80
- package/dist/cjs/components/PlaceholderMetadata.js +0 -63
- package/dist/cjs/enhancers/withEmptyFieldEditingComponent.js +0 -63
- package/dist/cjs/enhancers/withFieldMetadata.js +0 -60
- package/dist/esm/components/BYOCComponent.js +0 -91
- package/dist/esm/components/BYOCWrapper.js +0 -11
- package/dist/esm/components/DefaultEmptyFieldEditingComponents.js +0 -14
- package/dist/esm/components/DesignLibrary.js +0 -45
- package/dist/esm/components/EditingScripts.js +0 -40
- package/dist/esm/components/FEaaSComponent.js +0 -119
- package/dist/esm/components/FEaaSWrapper.js +0 -11
- package/dist/esm/components/FieldMetadata.js +0 -22
- package/dist/esm/components/Form.js +0 -52
- package/dist/esm/components/PlaceholderMetadata.js +0 -56
- package/dist/esm/enhancers/withEmptyFieldEditingComponent.js +0 -36
- package/dist/esm/enhancers/withFieldMetadata.js +0 -33
- package/types/components/BYOCComponent.d.ts +0 -91
- package/types/components/BYOCWrapper.d.ts +0 -4
- package/types/components/DefaultEmptyFieldEditingComponents.d.ts +0 -10
- package/types/components/DesignLibrary.d.ts +0 -3
- package/types/components/EditingScripts.d.ts +0 -8
- package/types/components/FEaaSComponent.d.ts +0 -72
- package/types/components/FEaaSWrapper.d.ts +0 -4
- package/types/components/FieldMetadata.d.ts +0 -18
- package/types/components/Form.d.ts +0 -30
- package/types/components/PlaceholderMetadata.d.ts +0 -29
- package/types/enhancers/withEmptyFieldEditingComponent.d.ts +0 -28
- package/types/enhancers/withFieldMetadata.d.ts +0 -17
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
/// <reference types="@types/react" />
|
|
2
1
|
import React, { RefAttributes } from 'react';
|
|
3
2
|
import { EditableFieldProps } from './sharedTypes';
|
|
4
|
-
import { FieldMetadata } from '@sitecore-jss/sitecore-jss/layout';
|
|
5
3
|
export interface LinkFieldValue {
|
|
6
4
|
[attributeName: string]: unknown;
|
|
7
5
|
href?: string;
|
|
@@ -19,13 +17,13 @@ export interface LinkField {
|
|
|
19
17
|
editableFirstPart?: string;
|
|
20
18
|
editableLastPart?: string;
|
|
21
19
|
}
|
|
22
|
-
export type LinkProps = EditableFieldProps
|
|
20
|
+
export type LinkProps = EditableFieldProps & React.AnchorHTMLAttributes<HTMLAnchorElement> & RefAttributes<HTMLAnchorElement> & {
|
|
23
21
|
/** The link field data. */
|
|
24
|
-
field:
|
|
22
|
+
field: LinkField | LinkFieldValue;
|
|
25
23
|
/**
|
|
26
24
|
* Displays a link text ('description' in Sitecore) even when children exist
|
|
27
25
|
* NOTE: when in Sitecore Experience Editor, this setting is ignored due to technical limitations, and the description is always rendered.
|
|
28
26
|
*/
|
|
29
27
|
showLinkTextWithChildrenPresent?: boolean;
|
|
30
28
|
};
|
|
31
|
-
export declare const Link: React.
|
|
29
|
+
export declare const Link: React.ForwardRefExoticComponent<Omit<LinkProps, "ref"> & React.RefAttributes<HTMLAnchorElement>>;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
/// <reference types="@types/react" />
|
|
2
1
|
import React, { ComponentType } from 'react';
|
|
3
2
|
import { ComponentFactory } from './sharedTypes';
|
|
4
|
-
import { ComponentRendering, RouteData, Field, Item, HtmlElementRendering
|
|
3
|
+
import { ComponentRendering, RouteData, Field, Item, HtmlElementRendering } from '@sitecore-jss/sitecore-jss/layout';
|
|
5
4
|
import { SitecoreContextValue } from './SitecoreContext';
|
|
6
5
|
type ErrorComponentProps = {
|
|
7
6
|
[prop: string]: unknown;
|
|
@@ -43,6 +42,13 @@ export interface PlaceholderProps {
|
|
|
43
42
|
* @returns {ComponentProps} modified or initial props
|
|
44
43
|
*/
|
|
45
44
|
modifyComponentProps?: (componentProps: ComponentProps) => ComponentProps;
|
|
45
|
+
/**
|
|
46
|
+
* An alternative to `modifyComponentProps` that allows passing additional props to rendered
|
|
47
|
+
* components without forwarding Placeholder/SitecoreContext internal props.
|
|
48
|
+
*/
|
|
49
|
+
passThroughComponentProps?: {
|
|
50
|
+
[key: string]: unknown;
|
|
51
|
+
};
|
|
46
52
|
/**
|
|
47
53
|
* A component that is rendered in place of any components that are in this placeholder,
|
|
48
54
|
* but do not have a definition in the componentFactory (i.e. don't have a React implementation)
|
|
@@ -80,7 +86,7 @@ export declare class PlaceholderCommon<T extends PlaceholderProps> extends React
|
|
|
80
86
|
error?: Error;
|
|
81
87
|
}>;
|
|
82
88
|
constructor(props: T);
|
|
83
|
-
static getPlaceholderDataFromRenderingData(rendering: ComponentRendering | RouteData, name: string
|
|
89
|
+
static getPlaceholderDataFromRenderingData(rendering: ComponentRendering | RouteData, name: string): (ComponentRendering<import("@sitecore-jss/sitecore-jss/layout").ComponentFields> | HtmlElementRendering)[];
|
|
84
90
|
componentDidMount(): void;
|
|
85
91
|
componentDidUpdate(): void;
|
|
86
92
|
componentDidCatch(error: Error): void;
|
|
@@ -89,7 +95,9 @@ export declare class PlaceholderCommon<T extends PlaceholderProps> extends React
|
|
|
89
95
|
} | {
|
|
90
96
|
styles: string;
|
|
91
97
|
};
|
|
92
|
-
getComponentsForRenderingData(placeholderData: (ComponentRendering | HtmlElementRendering)[]): React.
|
|
98
|
+
getComponentsForRenderingData(placeholderData: (ComponentRendering | HtmlElementRendering)[]): React.ReactElement<{
|
|
99
|
+
[attr: string]: unknown;
|
|
100
|
+
}, string | React.JSXElementConstructor<any>>[];
|
|
93
101
|
getComponentForRendering(renderingDefinition: ComponentRendering): ComponentType | null;
|
|
94
102
|
addRef(nodeRef: Element): void;
|
|
95
103
|
createRawElement(elem: HtmlElementRendering, baseProps: {
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
/// <reference types="@types/react" />
|
|
2
1
|
import React from 'react';
|
|
3
2
|
import { EditableFieldProps } from './sharedTypes';
|
|
4
|
-
|
|
5
|
-
export interface RichTextField extends FieldMetadata {
|
|
3
|
+
export interface RichTextField {
|
|
6
4
|
value?: string;
|
|
7
5
|
editable?: string;
|
|
8
6
|
}
|
|
9
|
-
export interface RichTextProps extends EditableFieldProps
|
|
7
|
+
export interface RichTextProps extends EditableFieldProps {
|
|
10
8
|
[htmlAttributes: string]: unknown;
|
|
11
9
|
/** The rich text field data. */
|
|
12
10
|
field?: RichTextField;
|
|
@@ -16,4 +14,4 @@ export interface RichTextProps extends EditableFieldProps<RichTextProps> {
|
|
|
16
14
|
*/
|
|
17
15
|
tag?: string;
|
|
18
16
|
}
|
|
19
|
-
export declare const RichText: React.
|
|
17
|
+
export declare const RichText: React.ForwardRefExoticComponent<Omit<RichTextProps, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
@@ -1,35 +1,14 @@
|
|
|
1
|
-
/// <reference types="@types/react" />
|
|
2
1
|
import React from 'react';
|
|
3
2
|
import { ComponentFactory } from './sharedTypes';
|
|
4
3
|
import { LayoutServiceContext, LayoutServiceData, RouteData } from '../index';
|
|
5
4
|
export interface SitecoreContextProps {
|
|
6
5
|
componentFactory: ComponentFactory;
|
|
7
6
|
layoutData?: LayoutServiceData;
|
|
8
|
-
/**
|
|
9
|
-
* API settings to connect to Sitecore.
|
|
10
|
-
*/
|
|
11
|
-
api?: {
|
|
12
|
-
/**
|
|
13
|
-
* Sitecore XM Cloud Edge endpoint credentials for Sitecore connection.
|
|
14
|
-
*/
|
|
15
|
-
edge?: {
|
|
16
|
-
/**
|
|
17
|
-
* A unified identifier used to connect and retrieve data from XM Cloud instance
|
|
18
|
-
*/
|
|
19
|
-
contextId: string;
|
|
20
|
-
/**
|
|
21
|
-
* XM Cloud endpoint that the app will communicate and retrieve data from
|
|
22
|
-
* @default https://edge-platform.sitecorecloud.io
|
|
23
|
-
*/
|
|
24
|
-
edgeUrl?: string;
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
7
|
children: React.ReactNode;
|
|
28
8
|
}
|
|
29
9
|
export interface SitecoreContextState {
|
|
30
10
|
setContext: (value: SitecoreContextValue | LayoutServiceData) => void;
|
|
31
11
|
context: SitecoreContextValue;
|
|
32
|
-
api?: SitecoreContextProps['api'];
|
|
33
12
|
}
|
|
34
13
|
export declare const SitecoreContextReactContext: React.Context<SitecoreContextState>;
|
|
35
14
|
export declare const ComponentFactoryReactContext: React.Context<ComponentFactory>;
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
/// <reference types="@types/react" />
|
|
2
1
|
import React from 'react';
|
|
3
2
|
import { EditableFieldProps } from './sharedTypes';
|
|
4
|
-
|
|
5
|
-
export interface TextField extends FieldMetadata {
|
|
3
|
+
export interface TextField {
|
|
6
4
|
value?: string | number;
|
|
7
5
|
editable?: string;
|
|
8
6
|
}
|
|
9
|
-
export interface TextProps extends EditableFieldProps
|
|
7
|
+
export interface TextProps extends EditableFieldProps {
|
|
10
8
|
[htmlAttributes: string]: unknown;
|
|
11
9
|
/** The text field data. */
|
|
12
10
|
field?: TextField;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="@types/react" />
|
|
2
1
|
import { ComponentType } from 'react';
|
|
3
2
|
/**
|
|
4
3
|
* @param {string} componentName component to be imported from the component factory
|
|
@@ -16,17 +15,11 @@ export type JssComponentType = ComponentType & {
|
|
|
16
15
|
/**
|
|
17
16
|
* Shared editing field props
|
|
18
17
|
*/
|
|
19
|
-
export interface EditableFieldProps
|
|
18
|
+
export interface EditableFieldProps {
|
|
20
19
|
/**
|
|
21
20
|
* Can be used to explicitly disable inline editing.
|
|
22
21
|
* If true and `field.editable` has a value, then `field.editable` will be processed and rendered as component output. If false, `field.editable` value will be ignored and not rendered.
|
|
23
22
|
* @default true
|
|
24
23
|
*/
|
|
25
24
|
editable?: boolean;
|
|
26
|
-
/**
|
|
27
|
-
* -- Edit Mode Metadata --
|
|
28
|
-
*
|
|
29
|
-
* Custom element to render in Pages in Metadata edit mode if field value is empty
|
|
30
|
-
*/
|
|
31
|
-
emptyFieldEditingComponent?: React.ComponentClass<EmptyFieldEditingComponentProps> | React.FC<EmptyFieldEditingComponentProps>;
|
|
32
25
|
}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
/// <reference types="@types/react" />
|
|
2
1
|
import React from 'react';
|
|
3
2
|
import { EnhancedOmit } from '@sitecore-jss/sitecore-jss/utils';
|
|
4
|
-
import {
|
|
3
|
+
import { SitecoreContextValue } from '../components/SitecoreContext';
|
|
5
4
|
export interface WithSitecoreContextOptions {
|
|
6
5
|
updatable?: boolean;
|
|
7
6
|
}
|
|
8
7
|
export interface WithSitecoreContextProps {
|
|
9
8
|
sitecoreContext: SitecoreContextValue;
|
|
10
|
-
api?: SitecoreContextState['api'];
|
|
11
9
|
updateSitecoreContext?: ((value: SitecoreContextValue) => void) | false;
|
|
12
10
|
}
|
|
13
11
|
export type WithSitecoreContextHocProps<ComponentProps> = EnhancedOmit<ComponentProps, keyof WithSitecoreContextProps>;
|
package/types/index.d.ts
CHANGED
|
@@ -1,23 +1,17 @@
|
|
|
1
1
|
export { constants, enableDebug, ClientError, CacheClient, CacheOptions, MemoryCacheClient, HttpDataFetcher, NativeDataFetcher, NativeDataFetcherError, NativeDataFetcherResponse, NativeDataFetcherConfig, } from '@sitecore-jss/sitecore-jss';
|
|
2
2
|
export { EnhancedOmit } from '@sitecore-jss/sitecore-jss/utils';
|
|
3
3
|
export { isEditorActive, resetEditorChromes, DefaultEditFrameButton, DefaultEditFrameButtons, EditFrameDataSource, FieldEditButton, WebEditButton, EditButtonTypes, } from '@sitecore-jss/sitecore-jss/editing';
|
|
4
|
-
export {
|
|
4
|
+
export { LayoutService, LayoutServiceData, LayoutServicePageState, LayoutServiceContext, LayoutServiceContextData, GraphQLLayoutService, RestLayoutService, RouteData, Field, Item, HtmlElementRendering, getChildPlaceholder, getFieldValue, ComponentRendering, ComponentFields, ComponentParams, } from '@sitecore-jss/sitecore-jss/layout';
|
|
5
5
|
export { trackingApi, TrackingRequestOptions, CampaignInstance, GoalInstance, OutcomeInstance, EventInstance, PageViewInstance, } from '@sitecore-jss/sitecore-jss/tracking';
|
|
6
6
|
export { DictionaryPhrases, DictionaryService, GraphQLDictionaryService, RestDictionaryService, } from '@sitecore-jss/sitecore-jss/i18n';
|
|
7
7
|
export { GraphQLClientError, RetryStrategy, DefaultRetryStrategy, GraphQLRequestClientFactoryConfig, GraphQLRequestClient, } from '@sitecore-jss/sitecore-jss/graphql';
|
|
8
8
|
export { mediaApi } from '@sitecore-jss/sitecore-jss/media';
|
|
9
9
|
export { ComponentFactory, JssComponentType } from './components/sharedTypes';
|
|
10
10
|
export { Placeholder, PlaceholderComponentProps } from './components/Placeholder';
|
|
11
|
-
export { Form } from './components/Form';
|
|
12
11
|
export { Image, ImageProps, ImageField, getEEMarkup, ImageFieldValue, ImageSizeParameters, } from './components/Image';
|
|
13
12
|
export { RichText, RichTextProps, RichTextField } from './components/RichText';
|
|
14
13
|
export { Text, TextField } from './components/Text';
|
|
15
14
|
export { DateField, DateFieldProps } from './components/Date';
|
|
16
|
-
export { FEaaSComponent, FEaaSComponentProps, FEaaSComponentParams, fetchFEaaSComponentServerProps, } from './components/FEaaSComponent';
|
|
17
|
-
export { FEaaSWrapper } from './components/FEaaSWrapper';
|
|
18
|
-
export { DesignLibrary } from './components/DesignLibrary';
|
|
19
|
-
export { BYOCComponent, BYOCComponentParams, BYOCComponentProps, fetchBYOCComponentServerProps, } from './components/BYOCComponent';
|
|
20
|
-
export { BYOCWrapper } from './components/BYOCWrapper';
|
|
21
15
|
export { Link, LinkField, LinkFieldValue, LinkProps } from './components/Link';
|
|
22
16
|
export { File, FileField } from './components/File';
|
|
23
17
|
export { VisitorIdentification } from './components/VisitorIdentification';
|
|
@@ -28,7 +22,3 @@ export { withPlaceholder } from './enhancers/withPlaceholder';
|
|
|
28
22
|
export { withDatasourceCheck } from './enhancers/withDatasourceCheck';
|
|
29
23
|
export { EditFrameProps, EditFrame } from './components/EditFrame';
|
|
30
24
|
export { ComponentBuilder, ComponentBuilderConfig } from './ComponentBuilder';
|
|
31
|
-
export { withFieldMetadata } from './enhancers/withFieldMetadata';
|
|
32
|
-
export { withEmptyFieldEditingComponent } from './enhancers/withEmptyFieldEditingComponent';
|
|
33
|
-
export { EditingScripts } from './components/EditingScripts';
|
|
34
|
-
export { DefaultEmptyFieldEditingComponentText, DefaultEmptyFieldEditingComponentImage, } from './components/DefaultEmptyFieldEditingComponents';
|
package/types/utils.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { ComponentFields } from '@sitecore-jss/sitecore-jss/layout';
|
|
2
1
|
export declare const convertKebabCasetoCamelCase: (str: string) => string;
|
|
3
2
|
/**
|
|
4
3
|
* https://facebook.github.io/react/docs/dom-elements.html
|
|
@@ -32,11 +31,3 @@ export declare const addClassName: (otherAttrs: {
|
|
|
32
31
|
export declare const getAttributesString: (attributes: {
|
|
33
32
|
[key: string]: unknown;
|
|
34
33
|
}) => string;
|
|
35
|
-
/**
|
|
36
|
-
* Used in FEAAS and BYOC implementations to convert datasource item field values into component props
|
|
37
|
-
* @param {ComponentFields} fields field collection from Sitecore
|
|
38
|
-
* @returns JSON object that can be used as props
|
|
39
|
-
*/
|
|
40
|
-
export declare const getDataFromFields: (fields: ComponentFields) => {
|
|
41
|
-
[key: string]: unknown;
|
|
42
|
-
};
|
|
@@ -1,122 +0,0 @@
|
|
|
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
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
-
};
|
|
37
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.fetchBYOCComponentServerProps = exports.BYOCComponent = exports.BYOC_COMPONENT_RENDERING_NAME = void 0;
|
|
39
|
-
const react_1 = __importDefault(require("react"));
|
|
40
|
-
const utils_1 = require("../utils");
|
|
41
|
-
const MissingComponent_1 = require("./MissingComponent");
|
|
42
|
-
const FEAAS = __importStar(require("@sitecore-feaas/clientside/react"));
|
|
43
|
-
exports.BYOC_COMPONENT_RENDERING_NAME = 'BYOCComponent';
|
|
44
|
-
const DefaultErrorComponent = (props) => {
|
|
45
|
-
var _a;
|
|
46
|
-
return (react_1.default.createElement("div", null,
|
|
47
|
-
"A rendering error occurred: ", (_a = props.error) === null || _a === void 0 ? void 0 :
|
|
48
|
-
_a.message,
|
|
49
|
-
"."));
|
|
50
|
-
};
|
|
51
|
-
/**
|
|
52
|
-
* BYOCComponent facilitate the rendering of external components. It manages potential errors,
|
|
53
|
-
* missing components, and customization of error messages or alternative rendering components.
|
|
54
|
-
* @param {ByocComponentProps} props component props
|
|
55
|
-
* @returns dynamicly rendered component or Missing Component error frame
|
|
56
|
-
*/
|
|
57
|
-
class BYOCComponent extends react_1.default.Component {
|
|
58
|
-
constructor(props) {
|
|
59
|
-
super(props);
|
|
60
|
-
this.state = {};
|
|
61
|
-
}
|
|
62
|
-
static getDerivedStateFromError(error) {
|
|
63
|
-
// Update state so the next render will show the fallback UI.
|
|
64
|
-
return { error: error };
|
|
65
|
-
}
|
|
66
|
-
componentDidCatch(error) {
|
|
67
|
-
this.setState({ error });
|
|
68
|
-
}
|
|
69
|
-
render() {
|
|
70
|
-
var _a, _b, _c;
|
|
71
|
-
const props = this.props;
|
|
72
|
-
if (this.state.error) {
|
|
73
|
-
return this.props.errorComponent ? (react_1.default.createElement(this.props.errorComponent, { error: this.state.error })) : (react_1.default.createElement(DefaultErrorComponent, { error: this.state.error }));
|
|
74
|
-
}
|
|
75
|
-
const { ComponentName: componentName } = props.params || {};
|
|
76
|
-
if (!componentName) {
|
|
77
|
-
const noNameProps = {
|
|
78
|
-
errorOverride: 'BYOC: The ComponentName for this rendering is missing',
|
|
79
|
-
};
|
|
80
|
-
return props.missingComponentComponent ? (react_1.default.createElement(this.props.missingComponentComponent, Object.assign({}, noNameProps))) : (react_1.default.createElement(MissingComponent_1.MissingComponent, Object.assign({}, noNameProps)));
|
|
81
|
-
}
|
|
82
|
-
const unRegisteredComponentProps = {
|
|
83
|
-
rendering: {
|
|
84
|
-
componentName: componentName,
|
|
85
|
-
},
|
|
86
|
-
errorOverride: 'BYOC: This component was not registered.',
|
|
87
|
-
};
|
|
88
|
-
const fallbackComponent = this.props.missingComponentComponent ? (react_1.default.createElement(this.props.missingComponentComponent, Object.assign({}, unRegisteredComponentProps))) : (react_1.default.createElement(MissingComponent_1.MissingComponent, Object.assign({}, unRegisteredComponentProps)));
|
|
89
|
-
const ErrorComponent = this.props.errorComponent;
|
|
90
|
-
let componentProps = {};
|
|
91
|
-
if ((_a = props.params) === null || _a === void 0 ? void 0 : _a.ComponentProps) {
|
|
92
|
-
try {
|
|
93
|
-
componentProps = (_b = JSON.parse(props.params.ComponentProps)) !== null && _b !== void 0 ? _b : {};
|
|
94
|
-
}
|
|
95
|
-
catch (e) {
|
|
96
|
-
console.error(`Parsing props for ${componentName} component from rendering params failed. Error: ${e}`);
|
|
97
|
-
return ErrorComponent ? (react_1.default.createElement(ErrorComponent, { error: e })) : (react_1.default.createElement(DefaultErrorComponent, { error: e }));
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
// apply props from item datasource
|
|
101
|
-
const dataSourcesData = Object.assign(Object.assign({}, props.fetchedData), { _: (0, utils_1.getDataFromFields)((_c = props.fields) !== null && _c !== void 0 ? _c : {}) });
|
|
102
|
-
// we render fallback on client to avoid problems with client-only components
|
|
103
|
-
return (react_1.default.createElement(FEAAS.ExternalComponent, Object.assign({}, props.rendering, { componentName: componentName, clientFallback: fallbackComponent, datasources: dataSourcesData }, componentProps)));
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
exports.BYOCComponent = BYOCComponent;
|
|
107
|
-
/**
|
|
108
|
-
* Fetches server component props required for server rendering, based on rendering params.
|
|
109
|
-
* @param {BYOCComponentParams} params component params
|
|
110
|
-
*/
|
|
111
|
-
function fetchBYOCComponentServerProps(params) {
|
|
112
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
113
|
-
const fetchDataOptions = params.ComponentDataOverride
|
|
114
|
-
? JSON.parse(params.ComponentDataOverride)
|
|
115
|
-
: {};
|
|
116
|
-
const fetchedData = yield FEAAS.DataSettings.fetch(fetchDataOptions || {});
|
|
117
|
-
return {
|
|
118
|
-
fetchedData,
|
|
119
|
-
};
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
exports.fetchBYOCComponentServerProps = fetchBYOCComponentServerProps;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.BYOCWrapper = exports.BYOC_WRAPPER_RENDERING_NAME = void 0;
|
|
7
|
-
const BYOCComponent_1 = require("./BYOCComponent");
|
|
8
|
-
const react_1 = __importDefault(require("react"));
|
|
9
|
-
exports.BYOC_WRAPPER_RENDERING_NAME = 'BYOCWrapper';
|
|
10
|
-
const BYOCWrapper = (props) => {
|
|
11
|
-
var _a, _b, _c;
|
|
12
|
-
const styles = (_b = (_a = props.params) === null || _a === void 0 ? void 0 : _a.styles) === null || _b === void 0 ? void 0 : _b.trimEnd();
|
|
13
|
-
const id = (_c = props.params) === null || _c === void 0 ? void 0 : _c.RenderingIdentifier;
|
|
14
|
-
return (react_1.default.createElement("div", { className: styles ? styles : undefined, id: id ? id : undefined },
|
|
15
|
-
react_1.default.createElement("div", { className: "component-content" },
|
|
16
|
-
react_1.default.createElement(BYOCComponent_1.BYOCComponent, Object.assign({}, props)))));
|
|
17
|
-
};
|
|
18
|
-
exports.BYOCWrapper = BYOCWrapper;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.DefaultEmptyFieldEditingComponentImage = exports.DefaultEmptyFieldEditingComponentText = void 0;
|
|
7
|
-
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const DefaultEmptyFieldEditingComponentText = (props) => {
|
|
9
|
-
return react_1.default.createElement(props.tag || 'span', props, '[No text in field]');
|
|
10
|
-
};
|
|
11
|
-
exports.DefaultEmptyFieldEditingComponentText = DefaultEmptyFieldEditingComponentText;
|
|
12
|
-
const DefaultEmptyFieldEditingComponentImage = (props) => {
|
|
13
|
-
const inlineStyles = {
|
|
14
|
-
minWidth: '48px',
|
|
15
|
-
minHeight: '48px',
|
|
16
|
-
maxWidth: '400px',
|
|
17
|
-
maxHeight: '400px',
|
|
18
|
-
cursor: 'pointer',
|
|
19
|
-
};
|
|
20
|
-
return (react_1.default.createElement("img", Object.assign({}, props, { alt: "", src: 'data:image/svg+xml,%3Csvg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 240 240" style="enable-background:new 0 0 240 240;" xml:space="preserve"%3E%3Cstyle type="text/css"%3E .st0%7Bfill:none;%7D .st1%7Bfill:%23969696;%7D .st2%7Bfill:%23FFFFFF;%7D .st3%7Bfill:%23FFFFFF;stroke:%23FFFFFF;stroke-width:0.75;stroke-miterlimit:10;%7D%0A%3C/style%3E%3Cg%3E%3Crect class="st0" width="240" height="240"/%3E%3Cg%3E%3Cg%3E%3Crect x="20" y="20" class="st1" width="200" height="200"/%3E%3C/g%3E%3Cg%3E%3Ccircle class="st2" cx="174" cy="67" r="14"/%3E%3Cpath class="st2" d="M174,54c7.17,0,13,5.83,13,13s-5.83,13-13,13s-13-5.83-13-13S166.83,54,174,54 M174,52 c-8.28,0-15,6.72-15,15s6.72,15,15,15s15-6.72,15-15S182.28,52,174,52L174,52z"/%3E%3C/g%3E%3Cpolyline class="st3" points="29.5,179.25 81.32,122.25 95.41,137.75 137.23,91.75 209.5,179.75 "/%3E%3C/g%3E%3C/g%3E%3C/svg%3E', style: inlineStyles, className: `scEmptyImage ${props.className || ''}` })));
|
|
21
|
-
};
|
|
22
|
-
exports.DefaultEmptyFieldEditingComponentImage = DefaultEmptyFieldEditingComponentImage;
|
|
@@ -1,72 +0,0 @@
|
|
|
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.DesignLibrary = 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 DesignLibrary = (layoutData) => {
|
|
32
|
-
const { route } = layoutData.sitecore;
|
|
33
|
-
const isDesignLibrary = layoutData.sitecore.context.renderingType === layout_1.RenderingType.Component;
|
|
34
|
-
if (!isDesignLibrary) {
|
|
35
|
-
return react_1.default.createElement(react_1.default.Fragment, null);
|
|
36
|
-
}
|
|
37
|
-
const [renderKey, setRenderKey] = (0, react_1.useState)(0);
|
|
38
|
-
const [rootUpdate, setRootUpdate] = (0, react_1.useState)(null);
|
|
39
|
-
const rootComponent = route === null || route === void 0 ? void 0 : route.placeholders[layout_1.EDITING_COMPONENT_PLACEHOLDER][0];
|
|
40
|
-
// useEffect may execute multiple times on single render (i.e. in dev) - but we only want to fire ready event once
|
|
41
|
-
let componentReady = false;
|
|
42
|
-
// have an up-to-date layout state between re-renders (SSR re-render excluded)
|
|
43
|
-
const persistedRoot = (0, react_1.useMemo)(() => (Object.assign(Object.assign({}, (rootComponent || {})), rootUpdate)), [
|
|
44
|
-
rootComponent,
|
|
45
|
-
rootUpdate,
|
|
46
|
-
]);
|
|
47
|
-
route.placeholders[layout_1.EDITING_COMPONENT_PLACEHOLDER][0] = persistedRoot;
|
|
48
|
-
(0, react_1.useEffect)(() => {
|
|
49
|
-
// useEffect will fire when components are ready - and we inform the whole wide world of it too
|
|
50
|
-
if (!componentReady) {
|
|
51
|
-
componentReady = true;
|
|
52
|
-
window.top.postMessage((0, editing_1.getDesignLibraryStatusEvent)(editing_1.DesignLibraryStatus.READY, rootComponent.uid), '*');
|
|
53
|
-
}
|
|
54
|
-
const unsubscribe = (0, editing_1.addComponentUpdateHandler)(persistedRoot, (updatedRoot) => {
|
|
55
|
-
setRootUpdate(Object.assign({}, updatedRoot));
|
|
56
|
-
setRenderKey((key) => key + 1);
|
|
57
|
-
});
|
|
58
|
-
// useEffect will cleanup event handler on re-render
|
|
59
|
-
return unsubscribe;
|
|
60
|
-
}, []);
|
|
61
|
-
(0, react_1.useEffect)(() => {
|
|
62
|
-
// Send a rendered event only as effect of a component update command
|
|
63
|
-
if (renderKey === 0) {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
window.top.postMessage((0, editing_1.getDesignLibraryStatusEvent)(editing_1.DesignLibraryStatus.RENDERED, rootComponent.uid), '*');
|
|
67
|
-
}, [renderKey, rootComponent.uid]);
|
|
68
|
-
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
69
|
-
react_1.default.createElement("main", null,
|
|
70
|
-
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 }))))));
|
|
71
|
-
};
|
|
72
|
-
exports.DesignLibrary = DesignLibrary;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.EditingScripts = void 0;
|
|
7
|
-
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const layout_1 = require("@sitecore-jss/sitecore-jss/layout");
|
|
9
|
-
const withSitecoreContext_1 = require("../enhancers/withSitecoreContext");
|
|
10
|
-
const editing_1 = require("@sitecore-jss/sitecore-jss/editing");
|
|
11
|
-
const editing_2 = require("@sitecore-jss/sitecore-jss/editing");
|
|
12
|
-
/**
|
|
13
|
-
* - Renders client scripts and data for editing/preview mode for Pages
|
|
14
|
-
* - Renders script required for the Design Library (when RenderingType is `component`).
|
|
15
|
-
* This script is only rendered when EditMode is Metadata or RenderingType is `component`, otherwise it renders nothing.
|
|
16
|
-
* @returns A JSX element containing the editing scripts or an empty fragment if not in editing/preview mode.
|
|
17
|
-
*/
|
|
18
|
-
const EditingScripts = () => {
|
|
19
|
-
var _a;
|
|
20
|
-
const { sitecoreContext: { pageState, editMode, clientData, clientScripts, renderingType }, api, } = (0, withSitecoreContext_1.useSitecoreContext)();
|
|
21
|
-
// Don't render anything if not in editing/preview mode and rendering type is not component
|
|
22
|
-
if (renderingType !== layout_1.RenderingType.Component &&
|
|
23
|
-
(pageState === layout_1.LayoutServicePageState.Normal || pageState === layout_1.LayoutServicePageState.Preview)) {
|
|
24
|
-
return react_1.default.createElement(react_1.default.Fragment, null);
|
|
25
|
-
}
|
|
26
|
-
// In case of RenderingType.Component - render only the script for Design Libnrary
|
|
27
|
-
if (renderingType === layout_1.RenderingType.Component) {
|
|
28
|
-
// Add cache buster to the script URL (format hh-dd-mm-yyyy, UTC)
|
|
29
|
-
const now = new Date();
|
|
30
|
-
const hour = String(now.getUTCHours()).padStart(2, '0');
|
|
31
|
-
const day = String(now.getUTCDate()).padStart(2, '0');
|
|
32
|
-
const month = String(now.getUTCMonth() + 1).padStart(2, '0');
|
|
33
|
-
const year = String(now.getUTCFullYear());
|
|
34
|
-
const cacheTimestamp = `${hour}-${day}-${month}-${year}`;
|
|
35
|
-
const scriptUrl = `${(0, editing_2.getDesignLibraryScriptLink)((_a = api === null || api === void 0 ? void 0 : api.edge) === null || _a === void 0 ? void 0 : _a.edgeUrl)}?cb=${cacheTimestamp}`;
|
|
36
|
-
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
37
|
-
react_1.default.createElement("script", { src: scriptUrl, suppressHydrationWarning: true })));
|
|
38
|
-
}
|
|
39
|
-
if (editMode === layout_1.EditMode.Metadata) {
|
|
40
|
-
const jssClientData = Object.assign(Object.assign({}, clientData), (0, editing_1.getJssPagesClientData)());
|
|
41
|
-
return (react_1.default.createElement(react_1.default.Fragment, null, clientScripts === null || clientScripts === void 0 ? void 0 :
|
|
42
|
-
clientScripts.map((src, index) => (react_1.default.createElement("script", { src: src, key: index }))),
|
|
43
|
-
Object.keys(jssClientData).map((id) => (react_1.default.createElement("script", { key: id, id: id, type: "application/json", dangerouslySetInnerHTML: { __html: JSON.stringify(jssClientData[id]) } })))));
|
|
44
|
-
}
|
|
45
|
-
return react_1.default.createElement(react_1.default.Fragment, null);
|
|
46
|
-
};
|
|
47
|
-
exports.EditingScripts = EditingScripts;
|