@contentstack/utils
Version:
Contentstack utilities for Javascript
74 lines • 3.37 kB
JavaScript
import { defaultOptions } from '../options/default-options';
// This function will find Embedded object present in string
export function findEmbeddedEntry(uid, contentTypeUid, embeddeditems) {
if (embeddeditems === void 0) { embeddeditems = []; }
return embeddeditems.filter(function (entry) {
if (!entry)
return false;
return ((entry.uid && entry.uid === uid && entry._content_type_uid === contentTypeUid) ||
(entry.system && entry.system.uid === uid && entry.system.content_type_uid === contentTypeUid));
});
}
export function findEmbeddedAsset(uid, embeddedAssets) {
if (embeddedAssets === void 0) { embeddedAssets = []; }
return embeddedAssets.filter(function (asset) {
if (!asset)
return false;
return ((asset.uid && asset.uid === uid) ||
(asset.system && asset.system.uid === uid));
});
}
export function findGQLEmbeddedItems(metadata, items) {
if (!metadata || !items)
return [];
if (metadata.itemType === 'entry') {
return findEmbeddedEntry(metadata.itemUid, metadata.contentTypeUid, items);
}
else {
return findEmbeddedAsset(metadata.itemUid, items);
}
}
export function findEmbeddedItems(object, entry) {
if (object && object !== undefined && entry && entry !== undefined) {
if (entry._embedded_items !== undefined) {
var entryEmbedable = entry;
var items = Object.values(entryEmbedable._embedded_items || []).reduce(function (accumulator, value) { return accumulator.concat(value); }, []);
return findGQLEmbeddedItems(object, items);
}
}
return [];
}
export function findRenderString(item, metadata, renderOptions) {
if ((!item && item === undefined) || (!metadata && metadata === undefined)) {
return '';
}
if (renderOptions && renderOptions[metadata.styleType] !== undefined) {
var renderFunction = renderOptions[metadata.styleType];
if (metadata.attributes['data-sys-content-type-uid'] !== undefined &&
typeof renderFunction !== 'function' &&
renderFunction[metadata.attributes['data-sys-content-type-uid']] !== undefined) {
return renderFunction[metadata.attributes['data-sys-content-type-uid']](item, metadata);
}
else if (metadata.attributes['data-sys-content-type-uid'] !== undefined &&
typeof renderFunction !== 'function' &&
renderFunction.$default !== undefined) {
return renderFunction.$default(item, metadata);
}
else if (metadata.contentTypeUid !== undefined &&
typeof renderFunction !== 'function' &&
renderFunction[metadata.contentTypeUid] !== undefined) {
return renderFunction[metadata.contentTypeUid](item, metadata);
}
else if (metadata.contentTypeUid !== undefined &&
typeof renderFunction !== 'function' &&
renderFunction.$default !== undefined) {
return renderFunction.$default(item, metadata);
}
else if (typeof renderFunction === 'function') {
return renderFunction(item, metadata);
}
}
var defaultRenderFunction = defaultOptions[metadata.styleType];
return defaultRenderFunction(item, metadata);
}
//# sourceMappingURL=find-embeded-object.js.map