@contentful/experiences-visual-editor-react 1.41.0-dev-20250612T0852-ddef0ff.0 → 1.41.0-dev-20250612T1337-f66b32d.0
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/index.js +39 -25
- package/dist/index.js.map +1 -1
- package/dist/renderApp.js +39 -25
- package/dist/renderApp.js.map +1 -1
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -1842,18 +1842,41 @@ const transformMedia = (asset, variables, resolveDesignValue, variableName, path
|
|
|
1842
1842
|
return asset.fields.file?.url;
|
|
1843
1843
|
};
|
|
1844
1844
|
|
|
1845
|
+
const isAsset = (value) => {
|
|
1846
|
+
return (null !== value &&
|
|
1847
|
+
typeof value === 'object' &&
|
|
1848
|
+
'sys' in value &&
|
|
1849
|
+
value.sys?.type === 'Asset');
|
|
1850
|
+
};
|
|
1851
|
+
const isEntry = (value) => {
|
|
1852
|
+
return (null !== value &&
|
|
1853
|
+
typeof value === 'object' &&
|
|
1854
|
+
'sys' in value &&
|
|
1855
|
+
value.sys?.type === 'Entry');
|
|
1856
|
+
};
|
|
1857
|
+
|
|
1845
1858
|
function getResolvedEntryFromLink(entryOrAsset, path, entityStore) {
|
|
1846
|
-
if (entryOrAsset
|
|
1859
|
+
if (isAsset(entryOrAsset)) {
|
|
1847
1860
|
return entryOrAsset;
|
|
1848
1861
|
}
|
|
1862
|
+
else if (!isEntry(entryOrAsset)) {
|
|
1863
|
+
throw new Error(`Expected an Entry or Asset, but got: ${JSON.stringify(entryOrAsset)}`);
|
|
1864
|
+
}
|
|
1849
1865
|
const value = get(entryOrAsset, path.split('/').slice(2, -1));
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1866
|
+
let resolvedEntity;
|
|
1867
|
+
if (isAsset(value) || isEntry(value)) {
|
|
1868
|
+
// In some cases, reference fields are already resolved
|
|
1869
|
+
resolvedEntity = value;
|
|
1870
|
+
}
|
|
1871
|
+
else if (value?.sys.type === 'Link') {
|
|
1872
|
+
// Look up the reference in the entity store
|
|
1873
|
+
resolvedEntity = entityStore.getEntityFromLink(value);
|
|
1874
|
+
if (!resolvedEntity) {
|
|
1875
|
+
return;
|
|
1876
|
+
}
|
|
1853
1877
|
}
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
if (!resolvedEntity) {
|
|
1878
|
+
else {
|
|
1879
|
+
console.warn(`Expected a link to a reference, but got: ${JSON.stringify(value)}`);
|
|
1857
1880
|
return;
|
|
1858
1881
|
}
|
|
1859
1882
|
//resolve any embedded links - we currently only support 2 levels deep
|
|
@@ -2108,10 +2131,13 @@ class EntityStoreBase {
|
|
|
2108
2131
|
}
|
|
2109
2132
|
entity = resolvedEntity;
|
|
2110
2133
|
}
|
|
2111
|
-
else {
|
|
2134
|
+
else if (isAsset(linkOrEntryOrAsset) || isEntry(linkOrEntryOrAsset)) {
|
|
2112
2135
|
// We already have the complete entity in preview & delivery (resolved by the CMA client)
|
|
2113
2136
|
entity = linkOrEntryOrAsset;
|
|
2114
2137
|
}
|
|
2138
|
+
else {
|
|
2139
|
+
throw new Error(`Unexpected object when resolving entity: ${JSON.stringify(linkOrEntryOrAsset)}`);
|
|
2140
|
+
}
|
|
2115
2141
|
return entity;
|
|
2116
2142
|
}
|
|
2117
2143
|
/**
|
|
@@ -2157,14 +2183,14 @@ class EntityStoreBase {
|
|
|
2157
2183
|
};
|
|
2158
2184
|
}
|
|
2159
2185
|
addEntity(entity) {
|
|
2160
|
-
if (
|
|
2186
|
+
if (isAsset(entity)) {
|
|
2161
2187
|
this.assetMap.set(entity.sys.id, entity);
|
|
2162
2188
|
}
|
|
2163
|
-
else if (
|
|
2189
|
+
else if (isEntry(entity)) {
|
|
2164
2190
|
this.entryMap.set(entity.sys.id, entity);
|
|
2165
2191
|
}
|
|
2166
2192
|
else {
|
|
2167
|
-
|
|
2193
|
+
throw new Error(`Attempted to add an entity to the store that is neither Asset nor Entry: '${JSON.stringify(entity)}'`);
|
|
2168
2194
|
}
|
|
2169
2195
|
}
|
|
2170
2196
|
async fetchAsset(id) {
|
|
@@ -2234,7 +2260,7 @@ class EntityStoreBase {
|
|
|
2234
2260
|
resolvedFieldset.push([entityToResolveFieldsFrom, field, _localeQualifier]);
|
|
2235
2261
|
entityToResolveFieldsFrom = entity; // we move up
|
|
2236
2262
|
}
|
|
2237
|
-
else if (
|
|
2263
|
+
else if (isAsset(fieldValue) || isEntry(fieldValue)) {
|
|
2238
2264
|
resolvedFieldset.push([entityToResolveFieldsFrom, field, _localeQualifier]);
|
|
2239
2265
|
entityToResolveFieldsFrom = fieldValue; // we move up
|
|
2240
2266
|
}
|
|
@@ -2270,18 +2296,6 @@ class EntityStoreBase {
|
|
|
2270
2296
|
const [leafEntity] = resolvedFieldset[resolvedFieldset.length - 1];
|
|
2271
2297
|
return leafEntity;
|
|
2272
2298
|
}
|
|
2273
|
-
isAsset(value) {
|
|
2274
|
-
return (null !== value &&
|
|
2275
|
-
typeof value === 'object' &&
|
|
2276
|
-
'sys' in value &&
|
|
2277
|
-
value.sys?.type === 'Asset');
|
|
2278
|
-
}
|
|
2279
|
-
isEntry(value) {
|
|
2280
|
-
return (null !== value &&
|
|
2281
|
-
typeof value === 'object' &&
|
|
2282
|
-
'sys' in value &&
|
|
2283
|
-
value.sys?.type === 'Entry');
|
|
2284
|
-
}
|
|
2285
2299
|
getEntity(type, id) {
|
|
2286
2300
|
if (type === 'Asset') {
|
|
2287
2301
|
return this.assetMap.get(id);
|
|
@@ -5507,7 +5521,7 @@ function useSingleColumn(node, resolveDesignValue) {
|
|
|
5507
5521
|
return false;
|
|
5508
5522
|
}
|
|
5509
5523
|
const { cfWrapColumns } = parentNode.data.props;
|
|
5510
|
-
if (cfWrapColumns
|
|
5524
|
+
if (cfWrapColumns?.type !== 'DesignValue') {
|
|
5511
5525
|
return false;
|
|
5512
5526
|
}
|
|
5513
5527
|
return resolveDesignValue(cfWrapColumns.valuesByBreakpoint);
|