@contentful/experiences-core 1.42.3-prerelease-20250701T0855-59fc0e2.0 → 1.42.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/constants.d.ts +2 -1
- package/dist/constants.js +2 -1
- package/dist/constants.js.map +1 -1
- package/dist/entity/EntityStore.d.ts +36 -0
- package/dist/exports.d.ts +1 -1
- package/dist/exports.js +1 -1
- package/dist/index.js +168 -28
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/constants.d.ts
CHANGED
|
@@ -124,5 +124,6 @@ declare enum PostMessageMethods {
|
|
|
124
124
|
}
|
|
125
125
|
declare const SUPPORTED_IMAGE_FORMATS: readonly ["jpg", "png", "webp", "gif", "avif"];
|
|
126
126
|
declare const PATTERN_PROPERTY_DIVIDER = "-----";
|
|
127
|
+
declare const SIDELOADED_PREFIX = "sideloaded_";
|
|
127
128
|
|
|
128
|
-
export { ASSEMBLY_BLOCK_NODE_TYPE, ASSEMBLY_DEFAULT_CATEGORY, ASSEMBLY_NODE_TYPE, ASSEMBLY_NODE_TYPES, CF_STYLE_ATTRIBUTES, CONTENTFUL_COMPONENTS, CONTENTFUL_COMPONENT_CATEGORY, CONTENTFUL_DEFAULT_CATEGORY, DEFAULT_IMAGE_WIDTH, EMPTY_CONTAINER_HEIGHT, HYPERLINK_DEFAULT_PATTERN, INCOMING_EVENTS, INTERNAL_EVENTS, LATEST_SCHEMA_VERSION, OUTGOING_EVENTS, PATTERN_PROPERTY_DIVIDER, PostMessageMethods, SCROLL_STATES, SUPPORTED_IMAGE_FORMATS, StudioCanvasMode, VISUAL_EDITOR_CONTAINER_ID, VISUAL_EDITOR_EVENTS };
|
|
129
|
+
export { ASSEMBLY_BLOCK_NODE_TYPE, ASSEMBLY_DEFAULT_CATEGORY, ASSEMBLY_NODE_TYPE, ASSEMBLY_NODE_TYPES, CF_STYLE_ATTRIBUTES, CONTENTFUL_COMPONENTS, CONTENTFUL_COMPONENT_CATEGORY, CONTENTFUL_DEFAULT_CATEGORY, DEFAULT_IMAGE_WIDTH, EMPTY_CONTAINER_HEIGHT, HYPERLINK_DEFAULT_PATTERN, INCOMING_EVENTS, INTERNAL_EVENTS, LATEST_SCHEMA_VERSION, OUTGOING_EVENTS, PATTERN_PROPERTY_DIVIDER, PostMessageMethods, SCROLL_STATES, SIDELOADED_PREFIX, SUPPORTED_IMAGE_FORMATS, StudioCanvasMode, VISUAL_EDITOR_CONTAINER_ID, VISUAL_EDITOR_EVENTS };
|
package/dist/constants.js
CHANGED
|
@@ -167,6 +167,7 @@ var PostMessageMethods;
|
|
|
167
167
|
})(PostMessageMethods || (PostMessageMethods = {}));
|
|
168
168
|
const SUPPORTED_IMAGE_FORMATS = ['jpg', 'png', 'webp', 'gif', 'avif'];
|
|
169
169
|
const PATTERN_PROPERTY_DIVIDER = '-----';
|
|
170
|
+
const SIDELOADED_PREFIX = 'sideloaded_';
|
|
170
171
|
|
|
171
|
-
export { ASSEMBLY_BLOCK_NODE_TYPE, ASSEMBLY_DEFAULT_CATEGORY, ASSEMBLY_NODE_TYPE, ASSEMBLY_NODE_TYPES, CF_STYLE_ATTRIBUTES, CONTENTFUL_COMPONENTS, CONTENTFUL_COMPONENT_CATEGORY, CONTENTFUL_DEFAULT_CATEGORY, DEFAULT_IMAGE_WIDTH, EMPTY_CONTAINER_HEIGHT, HYPERLINK_DEFAULT_PATTERN, INCOMING_EVENTS, INTERNAL_EVENTS, LATEST_SCHEMA_VERSION, OUTGOING_EVENTS, PATTERN_PROPERTY_DIVIDER, PostMessageMethods, SCROLL_STATES, SUPPORTED_IMAGE_FORMATS, StudioCanvasMode, VISUAL_EDITOR_CONTAINER_ID, VISUAL_EDITOR_EVENTS };
|
|
172
|
+
export { ASSEMBLY_BLOCK_NODE_TYPE, ASSEMBLY_DEFAULT_CATEGORY, ASSEMBLY_NODE_TYPE, ASSEMBLY_NODE_TYPES, CF_STYLE_ATTRIBUTES, CONTENTFUL_COMPONENTS, CONTENTFUL_COMPONENT_CATEGORY, CONTENTFUL_DEFAULT_CATEGORY, DEFAULT_IMAGE_WIDTH, EMPTY_CONTAINER_HEIGHT, HYPERLINK_DEFAULT_PATTERN, INCOMING_EVENTS, INTERNAL_EVENTS, LATEST_SCHEMA_VERSION, OUTGOING_EVENTS, PATTERN_PROPERTY_DIVIDER, PostMessageMethods, SCROLL_STATES, SIDELOADED_PREFIX, SUPPORTED_IMAGE_FORMATS, StudioCanvasMode, VISUAL_EDITOR_CONTAINER_ID, VISUAL_EDITOR_EVENTS };
|
|
172
173
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../src/constants.ts"],"sourcesContent":["export const SCROLL_STATES = {\n Start: 'scrollStart',\n IsScrolling: 'isScrolling',\n End: 'scrollEnd',\n} as const;\n\nexport const OUTGOING_EVENTS = {\n Connected: 'connected',\n DesignTokens: 'registerDesignTokens',\n RegisteredBreakpoints: 'registeredBreakpoints',\n MouseMove: 'mouseMove',\n NewHoveredElement: 'newHoveredElement',\n ComponentSelected: 'componentSelected',\n RegisteredComponents: 'registeredComponents',\n RequestComponentTreeUpdate: 'requestComponentTreeUpdate',\n ComponentDragCanceled: 'componentDragCanceled',\n ComponentDropped: 'componentDropped',\n ComponentMoved: 'componentMoved',\n CanvasReload: 'canvasReload',\n UpdateSelectedComponentCoordinates: 'updateSelectedComponentCoordinates',\n CanvasScroll: 'canvasScrolling',\n CanvasError: 'canvasError',\n ComponentMoveStarted: 'componentMoveStarted',\n ComponentMoveEnded: 'componentMoveEnded',\n OutsideCanvasClick: 'outsideCanvasClick',\n SDKFeatures: 'sdkFeatures',\n RequestEntities: 'REQUEST_ENTITIES',\n} as const;\n\nexport const INCOMING_EVENTS = {\n RequestEditorMode: 'requestEditorMode',\n RequestReadOnlyMode: 'requestReadOnlyMode',\n ExperienceUpdated: 'componentTreeUpdated',\n ComponentDraggingChanged: 'componentDraggingChanged',\n ComponentDragCanceled: 'componentDragCanceled',\n ComponentDragStarted: 'componentDragStarted',\n ComponentDragEnded: 'componentDragEnded',\n ComponentMoveEnded: 'componentMoveEnded',\n CanvasResized: 'canvasResized',\n SelectComponent: 'selectComponent',\n HoverComponent: 'hoverComponent',\n UpdatedEntity: 'updatedEntity',\n AssembliesAdded: 'assembliesAdded',\n AssembliesRegistered: 'assembliesRegistered',\n MouseMove: 'mouseMove',\n RequestedEntities: 'REQUESTED_ENTITIES',\n} as const;\n\nexport const INTERNAL_EVENTS = {\n ComponentsRegistered: 'cfComponentsRegistered',\n VisualEditorInitialize: 'cfVisualEditorInitialize',\n} as const;\n\nexport const VISUAL_EDITOR_EVENTS = {\n Ready: 'cfVisualEditorReady',\n};\n\n/**\n * These modes are ONLY intended to be internally used within the context of\n * editing an experience inside of Contentful Studio. i.e. these modes\n * intentionally do not include preview/delivery modes.\n */\nexport enum StudioCanvasMode {\n READ_ONLY = 'readOnlyMode',\n EDITOR = 'editorMode',\n NONE = 'none',\n}\n\nexport const VISUAL_EDITOR_CONTAINER_ID = 'cf-visual-editor';\nexport const CONTENTFUL_COMPONENT_CATEGORY = 'contentful-component';\nexport const CONTENTFUL_DEFAULT_CATEGORY = 'Contentful';\n\nexport const CONTENTFUL_COMPONENTS = {\n section: {\n id: 'contentful-section',\n name: 'Section',\n },\n container: {\n id: 'contentful-container',\n name: 'Container',\n },\n columns: {\n id: 'contentful-columns',\n name: 'Columns',\n },\n singleColumn: {\n id: 'contentful-single-column',\n name: 'Column',\n },\n button: {\n id: 'contentful-button',\n name: 'Button',\n },\n heading: {\n id: 'contentful-heading',\n name: 'Heading',\n },\n image: {\n id: 'contentful-image',\n name: 'Image',\n },\n richText: {\n id: 'contentful-richText',\n name: 'Rich Text',\n },\n text: {\n id: 'contentful-text',\n name: 'Text',\n },\n divider: {\n id: 'contentful-divider',\n name: 'Divider',\n },\n carousel: {\n id: 'contentful-carousel',\n name: 'Carousel',\n },\n} as const;\n\nexport const ASSEMBLY_NODE_TYPE = 'assembly';\nexport const ASSEMBLY_DEFAULT_CATEGORY = 'Assemblies';\nexport const ASSEMBLY_BLOCK_NODE_TYPE = 'assemblyBlock';\nexport const ASSEMBLY_NODE_TYPES = [ASSEMBLY_NODE_TYPE, ASSEMBLY_BLOCK_NODE_TYPE];\nexport const LATEST_SCHEMA_VERSION = '2023-09-28';\nexport const CF_STYLE_ATTRIBUTES = [\n 'cfVisibility',\n 'cfHorizontalAlignment',\n 'cfVerticalAlignment',\n 'cfMargin',\n 'cfPadding',\n 'cfBackgroundColor',\n 'cfWidth',\n 'cfMaxWidth',\n 'cfHeight',\n 'cfImageAsset',\n 'cfImageOptions',\n 'cfBackgroundImageUrl',\n 'cfBackgroundImageOptions',\n 'cfFlexDirection',\n 'cfFlexWrap',\n 'cfFlexReverse',\n 'cfBorder',\n 'cfBorderRadius',\n 'cfGap',\n 'cfColumnSpan',\n 'cfColumnSpanLock',\n 'cfColumns',\n 'cfFontSize',\n 'cfFontWeight',\n 'cfLineHeight',\n 'cfLetterSpacing',\n 'cfTextColor',\n 'cfTextAlign',\n 'cfTextTransform',\n 'cfTextBold',\n 'cfTextItalic',\n 'cfTextUnderline',\n // For backwards compatibility\n // we need to keep those in this constant array\n // so that omit() in <VisualEditorBlock> and <CompositionBlock>\n // can filter them out and not pass as props\n 'cfBackgroundImageScaling',\n 'cfBackgroundImageAlignment',\n 'cfBackgroundImageAlignmentVertical',\n 'cfBackgroundImageAlignmentHorizontal',\n];\n\nexport const EMPTY_CONTAINER_HEIGHT = '80px';\n\nexport const HYPERLINK_DEFAULT_PATTERN = `/{locale}/{entry.fields.slug}/`;\n\nexport const DEFAULT_IMAGE_WIDTH = '500px';\n\nexport enum PostMessageMethods {\n REQUEST_ENTITIES = 'REQUEST_ENTITIES',\n REQUESTED_ENTITIES = 'REQUESTED_ENTITIES',\n}\n\nexport const SUPPORTED_IMAGE_FORMATS = ['jpg', 'png', 'webp', 'gif', 'avif'] as const;\n\nexport const PATTERN_PROPERTY_DIVIDER = '-----';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../src/constants.ts"],"sourcesContent":["export const SCROLL_STATES = {\n Start: 'scrollStart',\n IsScrolling: 'isScrolling',\n End: 'scrollEnd',\n} as const;\n\nexport const OUTGOING_EVENTS = {\n Connected: 'connected',\n DesignTokens: 'registerDesignTokens',\n RegisteredBreakpoints: 'registeredBreakpoints',\n MouseMove: 'mouseMove',\n NewHoveredElement: 'newHoveredElement',\n ComponentSelected: 'componentSelected',\n RegisteredComponents: 'registeredComponents',\n RequestComponentTreeUpdate: 'requestComponentTreeUpdate',\n ComponentDragCanceled: 'componentDragCanceled',\n ComponentDropped: 'componentDropped',\n ComponentMoved: 'componentMoved',\n CanvasReload: 'canvasReload',\n UpdateSelectedComponentCoordinates: 'updateSelectedComponentCoordinates',\n CanvasScroll: 'canvasScrolling',\n CanvasError: 'canvasError',\n ComponentMoveStarted: 'componentMoveStarted',\n ComponentMoveEnded: 'componentMoveEnded',\n OutsideCanvasClick: 'outsideCanvasClick',\n SDKFeatures: 'sdkFeatures',\n RequestEntities: 'REQUEST_ENTITIES',\n} as const;\n\nexport const INCOMING_EVENTS = {\n RequestEditorMode: 'requestEditorMode',\n RequestReadOnlyMode: 'requestReadOnlyMode',\n ExperienceUpdated: 'componentTreeUpdated',\n ComponentDraggingChanged: 'componentDraggingChanged',\n ComponentDragCanceled: 'componentDragCanceled',\n ComponentDragStarted: 'componentDragStarted',\n ComponentDragEnded: 'componentDragEnded',\n ComponentMoveEnded: 'componentMoveEnded',\n CanvasResized: 'canvasResized',\n SelectComponent: 'selectComponent',\n HoverComponent: 'hoverComponent',\n UpdatedEntity: 'updatedEntity',\n AssembliesAdded: 'assembliesAdded',\n AssembliesRegistered: 'assembliesRegistered',\n MouseMove: 'mouseMove',\n RequestedEntities: 'REQUESTED_ENTITIES',\n} as const;\n\nexport const INTERNAL_EVENTS = {\n ComponentsRegistered: 'cfComponentsRegistered',\n VisualEditorInitialize: 'cfVisualEditorInitialize',\n} as const;\n\nexport const VISUAL_EDITOR_EVENTS = {\n Ready: 'cfVisualEditorReady',\n};\n\n/**\n * These modes are ONLY intended to be internally used within the context of\n * editing an experience inside of Contentful Studio. i.e. these modes\n * intentionally do not include preview/delivery modes.\n */\nexport enum StudioCanvasMode {\n READ_ONLY = 'readOnlyMode',\n EDITOR = 'editorMode',\n NONE = 'none',\n}\n\nexport const VISUAL_EDITOR_CONTAINER_ID = 'cf-visual-editor';\nexport const CONTENTFUL_COMPONENT_CATEGORY = 'contentful-component';\nexport const CONTENTFUL_DEFAULT_CATEGORY = 'Contentful';\n\nexport const CONTENTFUL_COMPONENTS = {\n section: {\n id: 'contentful-section',\n name: 'Section',\n },\n container: {\n id: 'contentful-container',\n name: 'Container',\n },\n columns: {\n id: 'contentful-columns',\n name: 'Columns',\n },\n singleColumn: {\n id: 'contentful-single-column',\n name: 'Column',\n },\n button: {\n id: 'contentful-button',\n name: 'Button',\n },\n heading: {\n id: 'contentful-heading',\n name: 'Heading',\n },\n image: {\n id: 'contentful-image',\n name: 'Image',\n },\n richText: {\n id: 'contentful-richText',\n name: 'Rich Text',\n },\n text: {\n id: 'contentful-text',\n name: 'Text',\n },\n divider: {\n id: 'contentful-divider',\n name: 'Divider',\n },\n carousel: {\n id: 'contentful-carousel',\n name: 'Carousel',\n },\n} as const;\n\nexport const ASSEMBLY_NODE_TYPE = 'assembly';\nexport const ASSEMBLY_DEFAULT_CATEGORY = 'Assemblies';\nexport const ASSEMBLY_BLOCK_NODE_TYPE = 'assemblyBlock';\nexport const ASSEMBLY_NODE_TYPES = [ASSEMBLY_NODE_TYPE, ASSEMBLY_BLOCK_NODE_TYPE];\nexport const LATEST_SCHEMA_VERSION = '2023-09-28';\nexport const CF_STYLE_ATTRIBUTES = [\n 'cfVisibility',\n 'cfHorizontalAlignment',\n 'cfVerticalAlignment',\n 'cfMargin',\n 'cfPadding',\n 'cfBackgroundColor',\n 'cfWidth',\n 'cfMaxWidth',\n 'cfHeight',\n 'cfImageAsset',\n 'cfImageOptions',\n 'cfBackgroundImageUrl',\n 'cfBackgroundImageOptions',\n 'cfFlexDirection',\n 'cfFlexWrap',\n 'cfFlexReverse',\n 'cfBorder',\n 'cfBorderRadius',\n 'cfGap',\n 'cfColumnSpan',\n 'cfColumnSpanLock',\n 'cfColumns',\n 'cfFontSize',\n 'cfFontWeight',\n 'cfLineHeight',\n 'cfLetterSpacing',\n 'cfTextColor',\n 'cfTextAlign',\n 'cfTextTransform',\n 'cfTextBold',\n 'cfTextItalic',\n 'cfTextUnderline',\n // For backwards compatibility\n // we need to keep those in this constant array\n // so that omit() in <VisualEditorBlock> and <CompositionBlock>\n // can filter them out and not pass as props\n 'cfBackgroundImageScaling',\n 'cfBackgroundImageAlignment',\n 'cfBackgroundImageAlignmentVertical',\n 'cfBackgroundImageAlignmentHorizontal',\n];\n\nexport const EMPTY_CONTAINER_HEIGHT = '80px';\n\nexport const HYPERLINK_DEFAULT_PATTERN = `/{locale}/{entry.fields.slug}/`;\n\nexport const DEFAULT_IMAGE_WIDTH = '500px';\n\nexport enum PostMessageMethods {\n REQUEST_ENTITIES = 'REQUEST_ENTITIES',\n REQUESTED_ENTITIES = 'REQUESTED_ENTITIES',\n}\n\nexport const SUPPORTED_IMAGE_FORMATS = ['jpg', 'png', 'webp', 'gif', 'avif'] as const;\n\nexport const PATTERN_PROPERTY_DIVIDER = '-----';\n\nexport const SIDELOADED_PREFIX = 'sideloaded_';\n"],"names":[],"mappings":"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"}
|
|
@@ -14,9 +14,45 @@ declare class EntityStore extends EntityStoreBase {
|
|
|
14
14
|
private _experienceEntryId;
|
|
15
15
|
private _unboundValues;
|
|
16
16
|
private _usedComponentsWithDeepReferences;
|
|
17
|
+
private _hoistedParameterDefinitions;
|
|
18
|
+
private _hoistedVariableMappings;
|
|
17
19
|
constructor(json: string);
|
|
18
20
|
constructor({ experienceEntry, entities, locale }: EntityStoreArgs);
|
|
21
|
+
private static calculateHoistedParameterDefinitions;
|
|
22
|
+
private static calculateHoistedVariableMappings;
|
|
19
23
|
getCurrentLocale(): string;
|
|
24
|
+
get hoistedVariableMappings(): Record<string, {
|
|
25
|
+
type: "ContentTypeMapping";
|
|
26
|
+
parameterId: string;
|
|
27
|
+
pathsByContentType: Record<string, {
|
|
28
|
+
path: string;
|
|
29
|
+
}>;
|
|
30
|
+
}>;
|
|
31
|
+
get hoistedParameterDefinitions(): Record<string, {
|
|
32
|
+
contentTypes: Record<string, {
|
|
33
|
+
sys: {
|
|
34
|
+
type: "Link";
|
|
35
|
+
id: string;
|
|
36
|
+
linkType: "ContentType";
|
|
37
|
+
};
|
|
38
|
+
}>;
|
|
39
|
+
defaultSource?: {
|
|
40
|
+
type: "Entry";
|
|
41
|
+
contentTypeId: string;
|
|
42
|
+
link: {
|
|
43
|
+
sys: {
|
|
44
|
+
type: "Link";
|
|
45
|
+
id: string;
|
|
46
|
+
linkType: "Entry";
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
} | undefined;
|
|
50
|
+
passToNodes?: {
|
|
51
|
+
parameterId: string;
|
|
52
|
+
nodeId: string;
|
|
53
|
+
prebindingId: string;
|
|
54
|
+
}[] | undefined;
|
|
55
|
+
}>;
|
|
20
56
|
get experienceEntryFields(): ExperienceFields | undefined;
|
|
21
57
|
get experienceEntryId(): string | undefined;
|
|
22
58
|
get schemaVersion(): "2023-09-28" | undefined;
|
package/dist/exports.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { ASSEMBLY_BLOCK_NODE_TYPE, ASSEMBLY_DEFAULT_CATEGORY, ASSEMBLY_NODE_TYPE, ASSEMBLY_NODE_TYPES, CF_STYLE_ATTRIBUTES, CONTENTFUL_COMPONENTS, CONTENTFUL_COMPONENT_CATEGORY, CONTENTFUL_DEFAULT_CATEGORY, DEFAULT_IMAGE_WIDTH, EMPTY_CONTAINER_HEIGHT, HYPERLINK_DEFAULT_PATTERN, INCOMING_EVENTS, INTERNAL_EVENTS, LATEST_SCHEMA_VERSION, OUTGOING_EVENTS, PATTERN_PROPERTY_DIVIDER, PostMessageMethods, SCROLL_STATES, SUPPORTED_IMAGE_FORMATS, StudioCanvasMode, VISUAL_EDITOR_CONTAINER_ID, VISUAL_EDITOR_EVENTS } from './constants.js';
|
|
1
|
+
export { ASSEMBLY_BLOCK_NODE_TYPE, ASSEMBLY_DEFAULT_CATEGORY, ASSEMBLY_NODE_TYPE, ASSEMBLY_NODE_TYPES, CF_STYLE_ATTRIBUTES, CONTENTFUL_COMPONENTS, CONTENTFUL_COMPONENT_CATEGORY, CONTENTFUL_DEFAULT_CATEGORY, DEFAULT_IMAGE_WIDTH, EMPTY_CONTAINER_HEIGHT, HYPERLINK_DEFAULT_PATTERN, INCOMING_EVENTS, INTERNAL_EVENTS, LATEST_SCHEMA_VERSION, OUTGOING_EVENTS, PATTERN_PROPERTY_DIVIDER, PostMessageMethods, SCROLL_STATES, SIDELOADED_PREFIX, SUPPORTED_IMAGE_FORMATS, StudioCanvasMode, VISUAL_EDITOR_CONTAINER_ID, VISUAL_EDITOR_EVENTS } from './constants.js';
|
|
2
2
|
export { AssembliesAddedPayload, AssembliesRegisteredPayload, BackgroundImageAlignmentOption, BackgroundImageOptions, BackgroundImageScalingOption, Binding, BindingMap, BindingMapByBlockId, BoundComponentPropertyTypes, CSSProperties, CanvasErrorPayload, CanvasReloadPayload, CanvasResizedPayload, CanvasScrollPayload, ComponentBinding, ComponentDefinition, ComponentDefinitionVariable, ComponentDefinitionVariableBase, ComponentDefinitionVariableTypeMap, ComponentDefinitionVariableValidation, ComponentDragCanceledPayload, ComponentDragEndedPayload, ComponentDragStartedPayload, ComponentDraggingChangedPayload, ComponentDroppedPayload, ComponentMoveEndedPayload, ComponentMoveStartedPayload, ComponentMovedPayload, ComponentRegistration, ComponentRegistrationOptions, ComponentSelectedPayload, ConnectedPayload, ContainerStyleVariableName, Coordinates, DataSourceEntryValueType, DesignTokensDefinition, DesignTokensPayload, DesignVariableMap, DesignVariableTypes, DragWrapperProps, Experience, ExperienceEntry, ExperienceFields, ExperienceTree, ExperienceTreeNode, ExperienceUpdatedPayload, HoverComponentPayload, HoveredElement, ImageLoadingOption, ImageObjectFitOption, ImageObjectPositionOption, ImageOptions, IncomingComponentDragCanceledPayload, IncomingComponentMoveEndedPayload, IncomingEvent, IncomingMessage, IncomingMouseMovePayload, InternalEvent, Link, ManagementEntity, MouseMovePayload, NewHoveredElementPayload, OptimizedBackgroundImageAsset, OptimizedImageAsset, OutgoingEvent, OutgoingMessage, OutsideCanvasClickPayload, RawCoordinates, RecursiveDesignTokenDefinition, RegisteredBreakpointsPayload, RegisteredComponentsPayload, RequestComponentTreeUpdatePayload, RequestEditorModePayload, RequestEntitiesMessage, RequestEntitiesPayload, RequestReadOnlyModePayload, RequestedEntitiesMessage, RequestedEntitiesPayload, ResolveDesignValueType, SDKFeaturesPayload, ScrollState, SelectComponentPayload, SendMessageParams, StyleProps, UpdateSelectedComponentCoordinatesPayload, UpdatedEntityPayload, ValidationOption, VariableFormats, WrapperTags } from './types.js';
|
|
3
3
|
export { BoundValue, Breakpoint, ComponentDefinitionPropertyType as ComponentDefinitionVariableType, ComponentPropertyValue, ComponentTreeNode, ComponentValue, DesignValue, ExperienceComponentSettings, ExperienceDataSource, ExperienceUnboundValues, NoValue, Parameter, ParameterDefinition, PrimitiveValue, SchemaVersions, UnboundValue, ValuesByBreakpoint, VariableMapping } from '@contentful/experiences-validators';
|
package/dist/exports.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { ASSEMBLY_BLOCK_NODE_TYPE, ASSEMBLY_DEFAULT_CATEGORY, ASSEMBLY_NODE_TYPE, ASSEMBLY_NODE_TYPES, CF_STYLE_ATTRIBUTES, CONTENTFUL_COMPONENTS, CONTENTFUL_COMPONENT_CATEGORY, CONTENTFUL_DEFAULT_CATEGORY, DEFAULT_IMAGE_WIDTH, EMPTY_CONTAINER_HEIGHT, HYPERLINK_DEFAULT_PATTERN, INCOMING_EVENTS, INTERNAL_EVENTS, LATEST_SCHEMA_VERSION, OUTGOING_EVENTS, PATTERN_PROPERTY_DIVIDER, PostMessageMethods, SCROLL_STATES, SUPPORTED_IMAGE_FORMATS, StudioCanvasMode, VISUAL_EDITOR_CONTAINER_ID, VISUAL_EDITOR_EVENTS } from './constants.js';
|
|
1
|
+
export { ASSEMBLY_BLOCK_NODE_TYPE, ASSEMBLY_DEFAULT_CATEGORY, ASSEMBLY_NODE_TYPE, ASSEMBLY_NODE_TYPES, CF_STYLE_ATTRIBUTES, CONTENTFUL_COMPONENTS, CONTENTFUL_COMPONENT_CATEGORY, CONTENTFUL_DEFAULT_CATEGORY, DEFAULT_IMAGE_WIDTH, EMPTY_CONTAINER_HEIGHT, HYPERLINK_DEFAULT_PATTERN, INCOMING_EVENTS, INTERNAL_EVENTS, LATEST_SCHEMA_VERSION, OUTGOING_EVENTS, PATTERN_PROPERTY_DIVIDER, PostMessageMethods, SCROLL_STATES, SIDELOADED_PREFIX, SUPPORTED_IMAGE_FORMATS, StudioCanvasMode, VISUAL_EDITOR_CONTAINER_ID, VISUAL_EDITOR_EVENTS } from './constants.js';
|
|
2
2
|
//# sourceMappingURL=exports.js.map
|
package/dist/index.js
CHANGED
|
@@ -131,6 +131,7 @@ var PostMessageMethods;
|
|
|
131
131
|
PostMessageMethods["REQUESTED_ENTITIES"] = "REQUESTED_ENTITIES";
|
|
132
132
|
})(PostMessageMethods || (PostMessageMethods = {}));
|
|
133
133
|
const SUPPORTED_IMAGE_FORMATS = ['jpg', 'png', 'webp', 'gif', 'avif'];
|
|
134
|
+
const SIDELOADED_PREFIX = 'sideloaded_';
|
|
134
135
|
|
|
135
136
|
const structureComponentIds = new Set([
|
|
136
137
|
CONTENTFUL_COMPONENTS.section.id,
|
|
@@ -3248,8 +3249,8 @@ const sendMessage = (eventType, data) => {
|
|
|
3248
3249
|
*/
|
|
3249
3250
|
class EntityStoreBase {
|
|
3250
3251
|
constructor({ entities, locale }) {
|
|
3251
|
-
this.entryMap = new Map();
|
|
3252
|
-
this.assetMap = new Map();
|
|
3252
|
+
/* serialized */ this.entryMap = new Map();
|
|
3253
|
+
/* serialized */ this.assetMap = new Map();
|
|
3253
3254
|
this.locale = locale;
|
|
3254
3255
|
for (const entity of entities) {
|
|
3255
3256
|
this.addEntity(entity);
|
|
@@ -3666,9 +3667,11 @@ class EntityStore extends EntityStoreBase {
|
|
|
3666
3667
|
],
|
|
3667
3668
|
locale: serializedAttributes.locale,
|
|
3668
3669
|
});
|
|
3669
|
-
this.
|
|
3670
|
-
this.
|
|
3671
|
-
this.
|
|
3670
|
+
this._hoistedParameterDefinitions = {};
|
|
3671
|
+
this._hoistedVariableMappings = {};
|
|
3672
|
+
this._experienceEntryFields = serializedAttributes._experienceEntryFields; // non-broken deserialization always should result in valid ExperienceFields
|
|
3673
|
+
this._experienceEntryId = serializedAttributes._experienceEntryId; // // non-broken deserialization always should result in valid experienceEntryId
|
|
3674
|
+
this._unboundValues = serializedAttributes._unboundValues; // non-broken deserialization always should result in valid unboundValues
|
|
3672
3675
|
}
|
|
3673
3676
|
else {
|
|
3674
3677
|
const { experienceEntry, entities, locale } = options;
|
|
@@ -3676,18 +3679,101 @@ class EntityStore extends EntityStoreBase {
|
|
|
3676
3679
|
throw new Error('Provided entry is not an experience entry');
|
|
3677
3680
|
}
|
|
3678
3681
|
super({ entities, locale });
|
|
3682
|
+
this._hoistedParameterDefinitions = {};
|
|
3683
|
+
this._hoistedVariableMappings = {};
|
|
3679
3684
|
this._experienceEntryFields = experienceEntry.fields;
|
|
3680
3685
|
this._experienceEntryId = experienceEntry.sys.id;
|
|
3681
3686
|
this._unboundValues = experienceEntry.fields.unboundValues;
|
|
3682
3687
|
}
|
|
3688
|
+
// DERIVE ENTITY STORE INSTANCE VARIBLES
|
|
3689
|
+
// Register prebindings
|
|
3690
|
+
{
|
|
3691
|
+
const usedComponentLinks = this._experienceEntryFields.usedComponents ?? [];
|
|
3692
|
+
const usedComponents = usedComponentLinks
|
|
3693
|
+
.map((component) => (isLink(component) ? this.getEntityFromLink(component) : component))
|
|
3694
|
+
.filter((component) => component !== undefined);
|
|
3695
|
+
this._hoistedParameterDefinitions = EntityStore.calculateHoistedParameterDefinitions(this._experienceEntryFields, usedComponents);
|
|
3696
|
+
this._hoistedVariableMappings = EntityStore.calculateHoistedVariableMappings(this._experienceEntryFields, usedComponents);
|
|
3697
|
+
}
|
|
3698
|
+
// Register deep references
|
|
3683
3699
|
this._usedComponentsWithDeepReferences = resolveDeepUsedComponents({
|
|
3684
3700
|
experienceEntryFields: this._experienceEntryFields,
|
|
3685
3701
|
parentComponents: new Set([this._experienceEntryId]),
|
|
3686
3702
|
});
|
|
3687
3703
|
}
|
|
3704
|
+
static calculateHoistedParameterDefinitions(parentEntryFields, usedComponents) {
|
|
3705
|
+
let hoistedDefinitions = {};
|
|
3706
|
+
// --------------------
|
|
3707
|
+
// Hoist prebinding for the L1 parent pattern aka `pA`
|
|
3708
|
+
// --------------------
|
|
3709
|
+
hoistedDefinitions = Object.assign(hoistedDefinitions, parentEntryFields.componentSettings?.prebindingDefinitions?.[0].parameterDefinitions || {});
|
|
3710
|
+
// --------------------
|
|
3711
|
+
// Hoist prebinding for the L2 nested patterns, patterns aka`pB`
|
|
3712
|
+
// --------------------
|
|
3713
|
+
usedComponents.forEach((patternEntryLevel2) => {
|
|
3714
|
+
hoistedDefinitions = {
|
|
3715
|
+
...hoistedDefinitions,
|
|
3716
|
+
...patternEntryLevel2.fields.componentSettings?.prebindingDefinitions?.[0]
|
|
3717
|
+
.parameterDefinitions,
|
|
3718
|
+
};
|
|
3719
|
+
});
|
|
3720
|
+
// --------------------
|
|
3721
|
+
// Hoist prebinding for L3 nested patterns, patterns aka `pC`
|
|
3722
|
+
// --------------------
|
|
3723
|
+
const usedComponentsLevel3 = usedComponents.flatMap((patternEntryLevel2) => {
|
|
3724
|
+
const usedComponents = patternEntryLevel2.fields.usedComponents || [];
|
|
3725
|
+
const filteredUsedComponents = usedComponents.filter((component) => component !== undefined && isExperienceEntry(component));
|
|
3726
|
+
return filteredUsedComponents;
|
|
3727
|
+
});
|
|
3728
|
+
usedComponentsLevel3.forEach((patternEntryLevel3) => {
|
|
3729
|
+
hoistedDefinitions = {
|
|
3730
|
+
...hoistedDefinitions,
|
|
3731
|
+
...patternEntryLevel3.fields.componentSettings?.prebindingDefinitions?.[0]
|
|
3732
|
+
.parameterDefinitions,
|
|
3733
|
+
};
|
|
3734
|
+
});
|
|
3735
|
+
return hoistedDefinitions;
|
|
3736
|
+
}
|
|
3737
|
+
static calculateHoistedVariableMappings(parentEntryFields, usedComponents) {
|
|
3738
|
+
let hoistedMappings = {};
|
|
3739
|
+
// --------------------
|
|
3740
|
+
// Hoist prebinding for the L1 parent pattern aka `pA`
|
|
3741
|
+
// --------------------
|
|
3742
|
+
hoistedMappings = Object.assign(hoistedMappings, parentEntryFields.componentSettings?.prebindingDefinitions?.[0].variableMappings || {});
|
|
3743
|
+
// --------------------
|
|
3744
|
+
// Hoist prebinding for the L2 nested patterns, patterns aka`pB`
|
|
3745
|
+
// --------------------
|
|
3746
|
+
usedComponents.forEach((patternEntryLevel2) => {
|
|
3747
|
+
hoistedMappings = {
|
|
3748
|
+
...hoistedMappings,
|
|
3749
|
+
...patternEntryLevel2.fields.componentSettings?.prebindingDefinitions?.[0].variableMappings,
|
|
3750
|
+
};
|
|
3751
|
+
});
|
|
3752
|
+
// --------------------
|
|
3753
|
+
// Hoist prebinding for L3 nested patterns, patterns aka `pC`
|
|
3754
|
+
// --------------------
|
|
3755
|
+
const usedComponentsLevel3 = usedComponents.flatMap((patternEntryLevel2) => {
|
|
3756
|
+
const usedComponents = patternEntryLevel2.fields.usedComponents || [];
|
|
3757
|
+
const filteredUsedComponents = usedComponents.filter((component) => component !== undefined && isExperienceEntry(component));
|
|
3758
|
+
return filteredUsedComponents;
|
|
3759
|
+
});
|
|
3760
|
+
usedComponentsLevel3.forEach((patternEntryLevel3) => {
|
|
3761
|
+
hoistedMappings = {
|
|
3762
|
+
...hoistedMappings,
|
|
3763
|
+
...patternEntryLevel3.fields.componentSettings?.prebindingDefinitions?.[0].variableMappings,
|
|
3764
|
+
};
|
|
3765
|
+
});
|
|
3766
|
+
return hoistedMappings;
|
|
3767
|
+
}
|
|
3688
3768
|
getCurrentLocale() {
|
|
3689
3769
|
return this.locale;
|
|
3690
3770
|
}
|
|
3771
|
+
get hoistedVariableMappings() {
|
|
3772
|
+
return this._hoistedVariableMappings;
|
|
3773
|
+
}
|
|
3774
|
+
get hoistedParameterDefinitions() {
|
|
3775
|
+
return this._hoistedParameterDefinitions;
|
|
3776
|
+
}
|
|
3691
3777
|
get experienceEntryFields() {
|
|
3692
3778
|
return this._experienceEntryFields;
|
|
3693
3779
|
}
|
|
@@ -4165,30 +4251,84 @@ const removeSelfReferencingDataSource = (experienceEntry) => {
|
|
|
4165
4251
|
* This ensures that any default values defined in pattern property definitions are included
|
|
4166
4252
|
* in the dataSource, so that linked entities can be fetched and resolved correctly.
|
|
4167
4253
|
* Without this, defaults may be omitted, resulting in unresolved references during binding.
|
|
4254
|
+
*
|
|
4255
|
+
* @returns The number of sideloaded default values, or false if the entry is not a pattern.
|
|
4168
4256
|
*/
|
|
4169
|
-
const
|
|
4170
|
-
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4177
|
-
|
|
4178
|
-
|
|
4179
|
-
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
|
|
4183
|
-
|
|
4184
|
-
|
|
4185
|
-
|
|
4186
|
-
|
|
4187
|
-
|
|
4188
|
-
|
|
4257
|
+
const sideloadPrebindingDefaultValues = (patternEntry) => {
|
|
4258
|
+
let sideloadedCount = 0;
|
|
4259
|
+
const addDefaultValueToDataSource = (_definitionId, definition) => {
|
|
4260
|
+
if (!definition.defaultSource) {
|
|
4261
|
+
// prebinding preset doesn't have default value, which is perfectly fine
|
|
4262
|
+
return;
|
|
4263
|
+
}
|
|
4264
|
+
const { contentTypeId, link, type, // At the time of writing, it means that defaultSource is a link to a Contentful Entry, but in the future it could be a link to third party resource or smth.
|
|
4265
|
+
// this .type enumeration will not have the same meaning as `Link#sys#linkType`.
|
|
4266
|
+
} = definition.defaultSource;
|
|
4267
|
+
if (!isLink(link)) {
|
|
4268
|
+
// default value is not a link, maybe due to a bug
|
|
4269
|
+
return;
|
|
4270
|
+
}
|
|
4271
|
+
if (!type || !contentTypeId) {
|
|
4272
|
+
// broken data structure, unlikely to happen, only due to a bug
|
|
4273
|
+
return;
|
|
4274
|
+
}
|
|
4275
|
+
// Throw in the link to the default-entry into the dataSource, this way
|
|
4276
|
+
// we rely on the mechanism of fetchReferencedEntities() to "sideload" them.
|
|
4277
|
+
// Keep in mind that dataSource will be available as EntityStore.dataSource
|
|
4278
|
+
// and now will contain also key for `sideloaded_uuid` entry.
|
|
4279
|
+
// When "sideloading" entries into the entityStore, we must ensure that
|
|
4280
|
+
// there's corresponding entry in the dataSource, because all bound variables
|
|
4281
|
+
// are resolved, via path that is indirectly referencing the dataSource,
|
|
4282
|
+
// eg. { type: 'BoundValue', path: '/sideloaded_uuid/fields/title' }
|
|
4283
|
+
patternEntry.fields.dataSource = {
|
|
4284
|
+
...patternEntry.fields.dataSource,
|
|
4285
|
+
[`${SIDELOADED_PREFIX}${link.sys.id}`]: {
|
|
4286
|
+
// to highlight that this is a sideloaded entry, we prefix it
|
|
4287
|
+
sys: {
|
|
4288
|
+
type: 'Link',
|
|
4289
|
+
linkType: link.sys.linkType,
|
|
4290
|
+
id: link.sys.id,
|
|
4291
|
+
},
|
|
4189
4292
|
},
|
|
4190
|
-
}
|
|
4293
|
+
};
|
|
4294
|
+
sideloadedCount++;
|
|
4191
4295
|
};
|
|
4296
|
+
if (!checkIsAssemblyEntry(patternEntry)) {
|
|
4297
|
+
// Only supported for pattern entries since experience entries don't define pattern properties.
|
|
4298
|
+
return false;
|
|
4299
|
+
}
|
|
4300
|
+
// --------------------
|
|
4301
|
+
// Sideload prebinding values for the L1 parent pattern aka `pA`
|
|
4302
|
+
// --------------------
|
|
4303
|
+
const definitions = patternEntry.fields.componentSettings?.prebindingDefinitions?.[0].parameterDefinitions ?? {};
|
|
4304
|
+
Object.entries(definitions).forEach(([id, definition]) => {
|
|
4305
|
+
addDefaultValueToDataSource(id, definition);
|
|
4306
|
+
});
|
|
4307
|
+
// --------------------
|
|
4308
|
+
// Sideload all default values for the L2 nested patterns, patterns aka`pB`
|
|
4309
|
+
// --------------------
|
|
4310
|
+
const nestedPatternEntriesLevel2 = (patternEntry.fields.usedComponents || []).filter((component) => component !== undefined && checkIsAssemblyEntry(component));
|
|
4311
|
+
nestedPatternEntriesLevel2.forEach((patternEntry) => {
|
|
4312
|
+
const parameterDefinitions = patternEntry.fields.componentSettings?.prebindingDefinitions?.[0].parameterDefinitions ?? {};
|
|
4313
|
+
Object.entries(parameterDefinitions).forEach(([id, definition]) => {
|
|
4314
|
+
addDefaultValueToDataSource(id, definition);
|
|
4315
|
+
});
|
|
4316
|
+
});
|
|
4317
|
+
// --------------------
|
|
4318
|
+
// Sideload all default values for the L3 nested patterns, patterns aka `pC`
|
|
4319
|
+
// --------------------
|
|
4320
|
+
const nestedPatternEntriesLevel3 = nestedPatternEntriesLevel2.flatMap((patternEntryLevel2) => {
|
|
4321
|
+
const usedComponents = patternEntryLevel2.fields.usedComponents || [];
|
|
4322
|
+
const filteredUsedComponents = usedComponents.filter((component) => component !== undefined && checkIsAssemblyEntry(component));
|
|
4323
|
+
return filteredUsedComponents;
|
|
4324
|
+
});
|
|
4325
|
+
nestedPatternEntriesLevel3.forEach((patternEntry) => {
|
|
4326
|
+
const parameterDefinitions = patternEntry.fields.componentSettings?.prebindingDefinitions?.[0].parameterDefinitions ?? {};
|
|
4327
|
+
Object.entries(parameterDefinitions).forEach(([id, definition]) => {
|
|
4328
|
+
addDefaultValueToDataSource(id, definition);
|
|
4329
|
+
});
|
|
4330
|
+
});
|
|
4331
|
+
return sideloadedCount;
|
|
4192
4332
|
};
|
|
4193
4333
|
|
|
4194
4334
|
const errorMessagesWhileFetching$1 = {
|
|
@@ -4226,7 +4366,7 @@ async function fetchBySlug({ client, experienceTypeId, slug, localeCode, isEdito
|
|
|
4226
4366
|
}
|
|
4227
4367
|
removeCircularPatternReferences(experienceEntry);
|
|
4228
4368
|
removeSelfReferencingDataSource(experienceEntry);
|
|
4229
|
-
|
|
4369
|
+
sideloadPrebindingDefaultValues(experienceEntry);
|
|
4230
4370
|
try {
|
|
4231
4371
|
const { entries, assets } = await fetchReferencedEntities({
|
|
4232
4372
|
client,
|
|
@@ -4285,7 +4425,7 @@ async function fetchById({ client, experienceTypeId, id, localeCode, isEditorMod
|
|
|
4285
4425
|
}
|
|
4286
4426
|
removeCircularPatternReferences(experienceEntry);
|
|
4287
4427
|
removeSelfReferencingDataSource(experienceEntry);
|
|
4288
|
-
|
|
4428
|
+
sideloadPrebindingDefaultValues(experienceEntry);
|
|
4289
4429
|
try {
|
|
4290
4430
|
const { entries, assets } = await fetchReferencedEntities({
|
|
4291
4431
|
client,
|