@plasmicpkgs/plasmic-contentful 0.0.100 → 0.0.102
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/plasmic-contentful.cjs.development.js +30 -7
- package/dist/plasmic-contentful.cjs.development.js.map +1 -1
- package/dist/plasmic-contentful.cjs.production.min.js +1 -1
- package/dist/plasmic-contentful.cjs.production.min.js.map +1 -1
- package/dist/plasmic-contentful.esm.js +30 -7
- package/dist/plasmic-contentful.esm.js.map +1 -1
- package/package.json +3 -3
|
@@ -662,17 +662,22 @@ function ContentfulFetcher(_ref2) {
|
|
|
662
662
|
return React__default.createElement("div", null, "Please specify a Filter value");
|
|
663
663
|
}
|
|
664
664
|
function denormalizeData(data) {
|
|
665
|
-
if (!(data != null && data.items) || !(data != null && data.includes)
|
|
666
|
-
return data;
|
|
665
|
+
if (!(data != null && data.items) || !(data != null && data.includes)) {
|
|
666
|
+
return data;
|
|
667
|
+
}
|
|
668
|
+
var entryMap = {};
|
|
669
|
+
if (data.includes.Entry) {
|
|
670
|
+
data.includes.Entry.forEach(function (entry) {
|
|
671
|
+
entryMap[entry.sys.id] = entry.fields;
|
|
672
|
+
});
|
|
667
673
|
}
|
|
668
|
-
|
|
669
674
|
var itemsWithDenormalizedFields = data.items.map(function (item) {
|
|
670
675
|
var updatedFields = {};
|
|
671
|
-
var _loop = function _loop() {
|
|
676
|
+
var _loop = function _loop(fieldName) {
|
|
672
677
|
var fieldValue = item.fields[fieldName];
|
|
673
678
|
if (Array.isArray(fieldValue)) {
|
|
674
679
|
var updatedArray = fieldValue.map(function (arrayItem) {
|
|
675
|
-
if (arrayItem && typeof arrayItem === "object" && "sys" in arrayItem && arrayItem.sys.linkType === "Asset") {
|
|
680
|
+
if (data.includes.Asset && arrayItem && typeof arrayItem === "object" && "sys" in arrayItem && arrayItem.sys.linkType === "Asset") {
|
|
676
681
|
var fieldId = arrayItem.sys.id;
|
|
677
682
|
var asset = data.includes.Asset.find(function (asset) {
|
|
678
683
|
return asset.sys.id === fieldId;
|
|
@@ -685,11 +690,20 @@ function ContentfulFetcher(_ref2) {
|
|
|
685
690
|
} else {
|
|
686
691
|
console.log("Asset URL not found for ID: " + fieldId);
|
|
687
692
|
}
|
|
693
|
+
} else if (data.includes.Entry && arrayItem && typeof arrayItem === "object" && "sys" in arrayItem && arrayItem.sys.linkType === "Entry") {
|
|
694
|
+
var _fieldId = arrayItem.sys.id;
|
|
695
|
+
if (entryMap[_fieldId]) {
|
|
696
|
+
updatedFields[fieldName] = _extends({}, fieldValue, {
|
|
697
|
+
fields: entryMap[_fieldId]
|
|
698
|
+
});
|
|
699
|
+
} else {
|
|
700
|
+
console.log("Entry not found for ID: " + _fieldId);
|
|
701
|
+
}
|
|
688
702
|
}
|
|
689
703
|
return arrayItem;
|
|
690
704
|
});
|
|
691
705
|
updatedFields[fieldName] = updatedArray;
|
|
692
|
-
} else if (fieldValue && typeof fieldValue === "object" && "sys" in fieldValue && fieldValue.sys.linkType === "Asset") {
|
|
706
|
+
} else if (data.includes.Asset && fieldValue && typeof fieldValue === "object" && "sys" in fieldValue && fieldValue.sys.linkType === "Asset") {
|
|
693
707
|
var fieldId = fieldValue.sys.id;
|
|
694
708
|
var asset = data.includes.Asset.find(function (asset) {
|
|
695
709
|
return asset.sys.id === fieldId;
|
|
@@ -702,12 +716,21 @@ function ContentfulFetcher(_ref2) {
|
|
|
702
716
|
} else {
|
|
703
717
|
console.log("Asset URL not found for ID: " + fieldId);
|
|
704
718
|
}
|
|
719
|
+
} else if (data.includes.Entry && fieldValue && typeof fieldValue === "object" && "sys" in fieldValue && fieldValue.sys.linkType === "Entry") {
|
|
720
|
+
var _fieldId2 = fieldValue.sys.id;
|
|
721
|
+
if (entryMap[_fieldId2]) {
|
|
722
|
+
updatedFields[fieldName] = _extends({}, fieldValue, {
|
|
723
|
+
fields: entryMap[_fieldId2]
|
|
724
|
+
});
|
|
725
|
+
} else {
|
|
726
|
+
console.log("Entry not found for ID: " + _fieldId2);
|
|
727
|
+
}
|
|
705
728
|
} else {
|
|
706
729
|
updatedFields[fieldName] = fieldValue;
|
|
707
730
|
}
|
|
708
731
|
};
|
|
709
732
|
for (var fieldName in item.fields) {
|
|
710
|
-
_loop();
|
|
733
|
+
_loop(fieldName);
|
|
711
734
|
}
|
|
712
735
|
return _extends({}, item, {
|
|
713
736
|
fields: updatedFields
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plasmic-contentful.cjs.development.js","sources":["../src/utils.ts","../src/contentful.tsx","../src/index.tsx"],"sourcesContent":["export const searchParameters = [\n {\n value: \"[lt]\",\n label: \"Less than\",\n },\n {\n value: \"[lte]\",\n label: \"Less than or equal\",\n },\n {\n value: \"[gt]\",\n label: \"Greater than\",\n },\n {\n value: \"[gte]\",\n label: \"Greater than or equal \",\n },\n];\n\nexport const uniq = <T>(xs: Array<T>): T[] => Array.from(new Set(xs));\n","import { documentToHtmlString } from \"@contentful/rich-text-html-renderer\";\nimport {\n ComponentMeta,\n DataProvider,\n GlobalContextMeta,\n repeatedElement,\n useSelector,\n} from \"@plasmicapp/host\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport { pascalCase } from \"change-case\";\nimport get from \"dlv\";\nimport React, { ReactNode, useContext } from \"react\";\nimport { searchParameters, uniq } from \"./utils\";\nimport { Entry } from \"./types\";\n\nexport function ensure<T>(x: T | null | undefined): T {\n if (x === null || x === undefined) {\n throw new Error(`Value must not be undefined or null`);\n } else {\n return x;\n }\n}\n\nconst modulePath = \"@plasmicpkgs/plasmic-contentful\";\n\nconst makeDataProviderName = (contentType: string) =>\n `currentContentful${pascalCase(contentType)}Item`;\n\ninterface ContentfulCredentialsProviderProps {\n space: string;\n accessToken: string;\n environment?: string;\n}\n\nconst CredentialsContext = React.createContext<\n ContentfulCredentialsProviderProps | undefined\n>(undefined);\n\nexport const ContentfulCredentialsProviderMeta: GlobalContextMeta<ContentfulCredentialsProviderProps> =\n {\n name: \"Contentful CredentialsProvider\",\n displayName: \"Contentful Credentials Provider\",\n description:\n \"Any client requesting content from the CDA needs to provide an access token that has access to the environment you're requesting content from. Learn how to [get your API key](https://www.contentful.com/developers/docs/references/authentication/).\",\n importName: \"ContentfulCredentialsProvider\",\n importPath: modulePath,\n props: {\n space: {\n type: \"string\",\n displayName: \"Space\",\n description: \"Name of your space\",\n defaultValue: \"lmfbwqzbh93n\",\n },\n accessToken: {\n type: \"string\",\n displayName: \"Access Token \",\n description: \"Access Token\",\n defaultValue: \"aWvf6oSLTuqxKCxSUpokajdQr84hGQFE6zoJG7DVVLg\",\n },\n environment: {\n type: \"string\",\n displayName: \"Environment\",\n defaultValue: \"master\",\n },\n },\n };\n\nexport function ContentfulCredentialsProvider({\n accessToken,\n space,\n environment,\n children,\n}: React.PropsWithChildren<ContentfulCredentialsProviderProps>) {\n return (\n <CredentialsContext.Provider value={{ space, accessToken, environment }}>\n {children}\n </CredentialsContext.Provider>\n );\n}\n\ninterface ContentfulFetcherProps {\n contentType: string;\n children?: ReactNode;\n className?: string;\n limit?: number;\n include?: number;\n order?: string;\n filterField?: string;\n searchParameter?: string;\n filterValue?: string | number;\n noAutoRepeat?: boolean;\n noLayout?: boolean;\n setControlContextData?: (data: {\n types?: { name: string; id: string }[];\n fields?: string[];\n queryOptions?: [];\n }) => void;\n}\n\nexport const ContentfulFetcherMeta: ComponentMeta<ContentfulFetcherProps> = {\n name: \"ContentfulFetcher\",\n displayName: \"Contentful Fetcher\",\n importName: \"ContentfulFetcher\",\n importPath: modulePath,\n providesData: true,\n description:\n \"Fetches Contentful data and repeats content of children once for every row fetched. \",\n defaultStyles: {\n display: \"grid\",\n gridTemplateColumns: \"1fr 1fr 1fr 1fr\",\n gridRowGap: \"8px\",\n gridColumnGap: \"8px\",\n padding: \"8px\",\n maxWidth: \"100%\",\n },\n props: {\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"vbox\",\n styles: {\n padding: \"8px\",\n },\n children: {\n type: \"component\",\n name: \"ContentfulField\",\n },\n },\n },\n contentType: {\n type: \"choice\",\n options: (props, ctx) =>\n ctx?.types?.map((type: any) => ({\n label: type?.name,\n value: type?.sys?.id,\n })) ?? [],\n displayName: \"Content type\",\n description: \"Content type to be queried.\",\n },\n\n filterField: {\n type: \"choice\",\n displayName: \"Filter field\",\n description: \"Field (from Collection) to filter by.\",\n options: (props, ctx) => ctx?.fields ?? [],\n hidden: (props, ctx) => !props.contentType,\n },\n searchParameter: {\n type: \"choice\",\n displayName: \"Search Parameter\",\n description:\n \"Search Parameter to filter by (see Contentful Content Delivery API documentation for details).\",\n options: (props, ctx) => ctx?.queryOptions ?? [],\n hidden: (props, ctx) => !props.filterField,\n },\n filterValue: {\n type: \"string\",\n displayName: \"Filter value\",\n description: \"Value to filter by, should be of filter field type.\",\n hidden: (props, ctx) => !props.searchParameter,\n },\n limit: {\n type: \"number\",\n displayName: \"Limit\",\n description: \"Limit the number of entries that are returned.\",\n },\n include: {\n type: \"number\",\n displayName: \"Linked items depth\",\n defaultValueHint: 1,\n description:\n \"When you have related content (e.g. entries with links to image assets) it's possible to include both search results and related data in a single request. Using the include parameter, you can specify the number of levels to resolve.\",\n max: 10,\n min: 0,\n },\n noAutoRepeat: {\n type: \"boolean\",\n displayName: \"No auto-repeat\",\n description: \"Do not automatically repeat children for every entry.\",\n defaultValue: false,\n },\n noLayout: {\n type: \"boolean\",\n displayName: \"No layout\",\n description:\n \"When set, Contentful Fetcher will not layout its children; instead, the layout set on its parent element will be used. Useful if you want to set flex gap or control container tag type.\",\n defaultValue: false,\n },\n },\n};\n\nexport function ContentfulFetcher({\n filterField,\n filterValue,\n searchParameter,\n noAutoRepeat,\n contentType,\n children,\n className,\n limit,\n include,\n noLayout,\n setControlContextData,\n}: ContentfulFetcherProps) {\n const creds = ensure(useContext(CredentialsContext));\n const cacheKey = JSON.stringify({\n limit,\n filterField,\n filterValue,\n searchParameter,\n creds,\n });\n\n const baseUrl = \"https://cdn.contentful.com\";\n\n const { data: contentTypes } = usePlasmicQueryData<any | null>(\n `${cacheKey}/contentTypes`,\n async () => {\n const resp = await fetch(\n `${baseUrl}/spaces/${creds.space}/environments/${creds.environment}/content_types?access_token=${creds.accessToken}`\n );\n return resp.json();\n }\n );\n setControlContextData?.({\n types: contentTypes?.items ?? [],\n });\n\n const { data: entriesData } = usePlasmicQueryData<any | null>(\n contentType ? `${cacheKey}/${contentType}/entriesData` : null,\n async () => {\n let query = `/spaces/${creds.space}/environments/${creds.environment}/entries?access_token=${creds.accessToken}&content_type=${contentType}`;\n if (limit) {\n query = `${query}&limit=${limit}`;\n }\n if (include) {\n query = `${query}&include=${include}`;\n }\n const resp = await fetch(`${baseUrl}${query}`);\n return resp.json();\n }\n );\n\n const { data: filteredData } = usePlasmicQueryData<any | null>(\n contentType && filterField && filterValue\n ? `${cacheKey}/${contentType}/filteredData`\n : null,\n async () => {\n const queryPath = `/spaces/${creds.space}/environments/${creds.environment}/entries?access_token=${creds.accessToken}&content_type=${contentType}&fields.${filterField}${searchParameter}=${filterValue}`;\n const resp = await fetch(`${baseUrl}${queryPath}`);\n return resp.json();\n }\n );\n\n if (!creds.space || !creds.accessToken) {\n return (\n <div>\n Please specify a valid API Credentials: Space, Access Token and\n Environment\n </div>\n );\n }\n\n if (!contentTypes) {\n return <div>Please configure the Contentful credentials</div>;\n }\n\n if (!entriesData) {\n return <div>Please select a content type</div>;\n }\n\n const filterFields: string[] = entriesData?.items.flatMap((item: any) => {\n const fields = Object.keys(item.fields).filter((field) => {\n const value = get(item, field);\n return typeof value !== \"object\" && field !== \"photos\";\n });\n return fields;\n });\n\n let operators;\n const matchedFields = Object.values(entriesData.items).map((item: any) => {\n const fields = Object.entries(item.fields).find(\n (el) => el[0] === filterField\n );\n return fields;\n });\n\n Object.values(matchedFields)\n .map((model: any) => (Array.isArray(model) ? model : [model]))\n .map((item: any) => {\n if (typeof item[1] === \"number\" && typeof item[1] !== \"object\") {\n operators = searchParameters;\n } else if (\n typeof item[1] !== \"number\" &&\n typeof item[1] !== \"object\" &&\n typeof item[1] === \"string\"\n ) {\n operators = [\n {\n value: \"[match]\",\n label: \"Full text search\",\n },\n ];\n }\n });\n\n setControlContextData?.({\n queryOptions: operators ?? [],\n types: contentTypes?.items ?? [],\n fields: uniq(filterFields ?? []),\n });\n\n if (filterField && !searchParameter) {\n return <div>Please specify a Search Parameter</div>;\n }\n if (searchParameter && !filterValue) {\n return <div>Please specify a Filter value</div>;\n }\n\n function denormalizeData(data: any | null) {\n if (!data?.items || !data?.includes || !data?.includes.Asset) {\n return data; // Return the original data if the required properties are missing\n }\n const itemsWithDenormalizedFields: Entry[] = data.items.map((item: any) => {\n const updatedFields: { [fieldName: string]: unknown | unknown[] } = {};\n\n for (const fieldName in item.fields) {\n const fieldValue = item.fields[fieldName];\n\n if (Array.isArray(fieldValue)) {\n const updatedArray = fieldValue.map((arrayItem) => {\n if (\n arrayItem &&\n typeof arrayItem === \"object\" &&\n \"sys\" in arrayItem &&\n arrayItem.sys.linkType === \"Asset\"\n ) {\n const fieldId = arrayItem.sys.id;\n const asset = data.includes.Asset.find(\n (asset: any) => asset.sys.id === fieldId\n );\n if (asset) {\n return {\n ...arrayItem,\n url: \"https:\" + asset.fields?.file?.url,\n };\n } else {\n console.log(`Asset URL not found for ID: ${fieldId}`);\n }\n }\n return arrayItem;\n });\n updatedFields[fieldName] = updatedArray;\n } else if (\n fieldValue &&\n typeof fieldValue === \"object\" &&\n \"sys\" in fieldValue &&\n fieldValue.sys.linkType === \"Asset\"\n ) {\n const fieldId = fieldValue.sys.id;\n const asset = data.includes.Asset.find(\n (asset: any) => asset.sys.id === fieldId\n );\n if (asset) {\n updatedFields[fieldName] = {\n ...fieldValue,\n url: \"https:\" + asset.fields?.file?.url,\n };\n } else {\n console.log(`Asset URL not found for ID: ${fieldId}`);\n }\n } else {\n updatedFields[fieldName] = fieldValue;\n }\n }\n return {\n ...item,\n fields: updatedFields,\n };\n });\n return {\n ...data,\n items: itemsWithDenormalizedFields,\n };\n }\n\n let renderedData;\n\n if (filteredData) {\n if (filteredData?.items?.length === 0) {\n return <div className={className}>No published entry found</div>;\n }\n\n renderedData = noAutoRepeat\n ? children\n : denormalizeData(filteredData)?.items?.map(\n (item: any, index: number) => (\n <DataProvider\n key={item?.sys?.id}\n name={\"contentfulItem\"}\n data={item}\n hidden={true}\n >\n <DataProvider\n name={makeDataProviderName(contentType)}\n data={item}\n >\n {repeatedElement(index, children)}\n </DataProvider>\n </DataProvider>\n )\n );\n } else {\n if (entriesData?.items?.length === 0) {\n return <div className={className}>{contentType} is empty</div>;\n }\n\n renderedData = noAutoRepeat\n ? children\n : denormalizeData(entriesData)?.items?.map((item: any, index: number) => (\n <DataProvider\n key={item?.sys?.id}\n name={\"contentfulItem\"}\n data={item}\n hidden={true}\n >\n <DataProvider name={makeDataProviderName(contentType)} data={item}>\n {repeatedElement(index, children)}\n </DataProvider>\n </DataProvider>\n ));\n }\n\n return (\n <DataProvider name=\"contentfulItems\" data={entriesData?.items}>\n {noLayout ? (\n <> {renderedData} </>\n ) : (\n <div className={className}> {renderedData} </div>\n )}\n </DataProvider>\n );\n}\ninterface ContentfulFieldProps {\n className?: string;\n objectPath?: (string | number)[];\n setControlContextData?: (data: { data: object }) => void;\n}\n\nexport const ContentfulFieldMeta: ComponentMeta<ContentfulFieldProps> = {\n name: \"ContentfulField\",\n displayName: \"Contentful Field\",\n importName: \"ContentfulField\",\n importPath: modulePath,\n props: {\n objectPath: {\n type: \"dataSelector\",\n data: (props, ctx) => ctx?.data ?? {},\n displayName: \"Field\",\n description: \"Field to be displayed.\",\n },\n },\n};\n\nexport function ContentfulField({\n className,\n objectPath,\n setControlContextData,\n}: ContentfulFieldProps) {\n const item = useSelector(\"contentfulItem\")?.fields;\n if (!item) {\n return <div>ContentfulField must be used within a ContentfulFetcher </div>;\n }\n setControlContextData?.({\n data: item,\n });\n if (!objectPath) {\n return <div>Please specify a valid path or select a field.</div>;\n }\n\n const data = get(item, objectPath);\n if (\n typeof data === \"object\" &&\n \"nodeType\" in data &&\n data.nodeType === \"document\"\n ) {\n return (\n <div\n className={className}\n dangerouslySetInnerHTML={{ __html: documentToHtmlString(data) }}\n />\n );\n } else if (\n typeof data === \"object\" &&\n data.sys.linkType === \"Asset\" &&\n data.url\n ) {\n return <img className={className} src={data.url} />;\n } else if (!data) {\n return <div>Please specify a valid field.</div>;\n } else if (typeof data !== \"object\") {\n return <div className={className}>{data}</div>;\n } else {\n return <div className={className}>{data.toString()}</div>;\n }\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport {\n ContentfulCredentialsProvider,\n ContentfulCredentialsProviderMeta,\n ContentfulFetcher,\n ContentfulFetcherMeta,\n ContentfulField,\n ContentfulFieldMeta,\n} from \"./contentful\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n}) {\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: ComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n\n if (loader) {\n loader.registerGlobalContext(\n ContentfulCredentialsProvider,\n ContentfulCredentialsProviderMeta\n );\n } else {\n registerGlobalContext(\n ContentfulCredentialsProvider,\n ContentfulCredentialsProviderMeta\n );\n }\n _registerComponent(ContentfulFetcher, ContentfulFetcherMeta);\n _registerComponent(ContentfulField, ContentfulFieldMeta);\n}\n\nexport * from \"./contentful\";\n"],"names":["searchParameters","value","label","uniq","xs","Array","from","Set","ensure","x","undefined","Error","modulePath","makeDataProviderName","contentType","pascalCase","CredentialsContext","React","createContext","ContentfulCredentialsProviderMeta","name","displayName","description","importName","importPath","props","space","type","defaultValue","accessToken","environment","ContentfulCredentialsProvider","_ref","children","Provider","ContentfulFetcherMeta","providesData","defaultStyles","display","gridTemplateColumns","gridRowGap","gridColumnGap","padding","maxWidth","styles","options","ctx","_ctx$types$map","_ctx$types","types","map","_type$sys","sys","id","filterField","_ctx$fields","fields","hidden","searchParameter","_ctx$queryOptions","queryOptions","filterValue","limit","include","defaultValueHint","max","min","noAutoRepeat","noLayout","ContentfulFetcher","_ref2","className","setControlContextData","creds","useContext","cacheKey","JSON","stringify","baseUrl","_usePlasmicQueryData","usePlasmicQueryData","_asyncToGenerator","_regeneratorRuntime","mark","_callee","resp","wrap","_callee$","_context","prev","next","fetch","sent","abrupt","json","stop","contentTypes","data","_contentTypes$items","items","_usePlasmicQueryData2","_callee2","query","_callee2$","_context2","entriesData","_usePlasmicQueryData3","_callee3","queryPath","_callee3$","_context3","filteredData","filterFields","flatMap","item","Object","keys","filter","field","get","operators","matchedFields","values","entries","find","el","model","isArray","_operators","_contentTypes$items2","denormalizeData","includes","Asset","itemsWithDenormalizedFields","updatedFields","_loop","fieldValue","fieldName","updatedArray","arrayItem","linkType","fieldId","asset","_asset$fields","_extends","url","file","console","log","_asset$fields2","renderedData","_filteredData$items","_denormalizeData","length","index","_item$sys","DataProvider","key","repeatedElement","_entriesData$items","_denormalizeData2","_item$sys2","ContentfulFieldMeta","objectPath","_ctx$data","ContentfulField","_ref6","_useSelector","useSelector","nodeType","dangerouslySetInnerHTML","__html","documentToHtmlString","src","toString","registerAll","loader","_registerComponent","Component","defaultMeta","registerComponent","registerGlobalContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plasmic-contentful.cjs.development.js","sources":["../src/utils.ts","../src/contentful.tsx","../src/index.tsx"],"sourcesContent":["export const searchParameters = [\n {\n value: \"[lt]\",\n label: \"Less than\",\n },\n {\n value: \"[lte]\",\n label: \"Less than or equal\",\n },\n {\n value: \"[gt]\",\n label: \"Greater than\",\n },\n {\n value: \"[gte]\",\n label: \"Greater than or equal \",\n },\n];\n\nexport const uniq = <T>(xs: Array<T>): T[] => Array.from(new Set(xs));\n","import { documentToHtmlString } from \"@contentful/rich-text-html-renderer\";\nimport {\n ComponentMeta,\n DataProvider,\n GlobalContextMeta,\n repeatedElement,\n useSelector,\n} from \"@plasmicapp/host\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport { pascalCase } from \"change-case\";\nimport get from \"dlv\";\nimport React, { ReactNode, useContext } from \"react\";\nimport { searchParameters, uniq } from \"./utils\";\nimport { Entry } from \"./types\";\n\nexport function ensure<T>(x: T | null | undefined): T {\n if (x === null || x === undefined) {\n throw new Error(`Value must not be undefined or null`);\n } else {\n return x;\n }\n}\n\nconst modulePath = \"@plasmicpkgs/plasmic-contentful\";\n\nconst makeDataProviderName = (contentType: string) =>\n `currentContentful${pascalCase(contentType)}Item`;\n\ninterface ContentfulCredentialsProviderProps {\n space: string;\n accessToken: string;\n environment?: string;\n}\n\nconst CredentialsContext = React.createContext<\n ContentfulCredentialsProviderProps | undefined\n>(undefined);\n\nexport const ContentfulCredentialsProviderMeta: GlobalContextMeta<ContentfulCredentialsProviderProps> =\n {\n name: \"Contentful CredentialsProvider\",\n displayName: \"Contentful Credentials Provider\",\n description:\n \"Any client requesting content from the CDA needs to provide an access token that has access to the environment you're requesting content from. Learn how to [get your API key](https://www.contentful.com/developers/docs/references/authentication/).\",\n importName: \"ContentfulCredentialsProvider\",\n importPath: modulePath,\n props: {\n space: {\n type: \"string\",\n displayName: \"Space\",\n description: \"Name of your space\",\n defaultValue: \"lmfbwqzbh93n\",\n },\n accessToken: {\n type: \"string\",\n displayName: \"Access Token \",\n description: \"Access Token\",\n defaultValue: \"aWvf6oSLTuqxKCxSUpokajdQr84hGQFE6zoJG7DVVLg\",\n },\n environment: {\n type: \"string\",\n displayName: \"Environment\",\n defaultValue: \"master\",\n },\n },\n };\n\nexport function ContentfulCredentialsProvider({\n accessToken,\n space,\n environment,\n children,\n}: React.PropsWithChildren<ContentfulCredentialsProviderProps>) {\n return (\n <CredentialsContext.Provider value={{ space, accessToken, environment }}>\n {children}\n </CredentialsContext.Provider>\n );\n}\n\ninterface ContentfulFetcherProps {\n contentType: string;\n children?: ReactNode;\n className?: string;\n limit?: number;\n include?: number;\n order?: string;\n filterField?: string;\n searchParameter?: string;\n filterValue?: string | number;\n noAutoRepeat?: boolean;\n noLayout?: boolean;\n setControlContextData?: (data: {\n types?: { name: string; id: string }[];\n fields?: string[];\n queryOptions?: [];\n }) => void;\n}\n\nexport const ContentfulFetcherMeta: ComponentMeta<ContentfulFetcherProps> = {\n name: \"ContentfulFetcher\",\n displayName: \"Contentful Fetcher\",\n importName: \"ContentfulFetcher\",\n importPath: modulePath,\n providesData: true,\n description:\n \"Fetches Contentful data and repeats content of children once for every row fetched. \",\n defaultStyles: {\n display: \"grid\",\n gridTemplateColumns: \"1fr 1fr 1fr 1fr\",\n gridRowGap: \"8px\",\n gridColumnGap: \"8px\",\n padding: \"8px\",\n maxWidth: \"100%\",\n },\n props: {\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"vbox\",\n styles: {\n padding: \"8px\",\n },\n children: {\n type: \"component\",\n name: \"ContentfulField\",\n },\n },\n },\n contentType: {\n type: \"choice\",\n options: (props, ctx) =>\n ctx?.types?.map((type: any) => ({\n label: type?.name,\n value: type?.sys?.id,\n })) ?? [],\n displayName: \"Content type\",\n description: \"Content type to be queried.\",\n },\n\n filterField: {\n type: \"choice\",\n displayName: \"Filter field\",\n description: \"Field (from Collection) to filter by.\",\n options: (props, ctx) => ctx?.fields ?? [],\n hidden: (props, ctx) => !props.contentType,\n },\n searchParameter: {\n type: \"choice\",\n displayName: \"Search Parameter\",\n description:\n \"Search Parameter to filter by (see Contentful Content Delivery API documentation for details).\",\n options: (props, ctx) => ctx?.queryOptions ?? [],\n hidden: (props, ctx) => !props.filterField,\n },\n filterValue: {\n type: \"string\",\n displayName: \"Filter value\",\n description: \"Value to filter by, should be of filter field type.\",\n hidden: (props, ctx) => !props.searchParameter,\n },\n limit: {\n type: \"number\",\n displayName: \"Limit\",\n description: \"Limit the number of entries that are returned.\",\n },\n include: {\n type: \"number\",\n displayName: \"Linked items depth\",\n defaultValueHint: 1,\n description:\n \"When you have related content (e.g. entries with links to image assets) it's possible to include both search results and related data in a single request. Using the include parameter, you can specify the number of levels to resolve.\",\n max: 10,\n min: 0,\n },\n noAutoRepeat: {\n type: \"boolean\",\n displayName: \"No auto-repeat\",\n description: \"Do not automatically repeat children for every entry.\",\n defaultValue: false,\n },\n noLayout: {\n type: \"boolean\",\n displayName: \"No layout\",\n description:\n \"When set, Contentful Fetcher will not layout its children; instead, the layout set on its parent element will be used. Useful if you want to set flex gap or control container tag type.\",\n defaultValue: false,\n },\n },\n};\n\nexport function ContentfulFetcher({\n filterField,\n filterValue,\n searchParameter,\n noAutoRepeat,\n contentType,\n children,\n className,\n limit,\n include,\n noLayout,\n setControlContextData,\n}: ContentfulFetcherProps) {\n const creds = ensure(useContext(CredentialsContext));\n const cacheKey = JSON.stringify({\n limit,\n filterField,\n filterValue,\n searchParameter,\n creds,\n });\n\n const baseUrl = \"https://cdn.contentful.com\";\n\n const { data: contentTypes } = usePlasmicQueryData<any | null>(\n `${cacheKey}/contentTypes`,\n async () => {\n const resp = await fetch(\n `${baseUrl}/spaces/${creds.space}/environments/${creds.environment}/content_types?access_token=${creds.accessToken}`\n );\n return resp.json();\n }\n );\n setControlContextData?.({\n types: contentTypes?.items ?? [],\n });\n\n const { data: entriesData } = usePlasmicQueryData<any | null>(\n contentType ? `${cacheKey}/${contentType}/entriesData` : null,\n async () => {\n let query = `/spaces/${creds.space}/environments/${creds.environment}/entries?access_token=${creds.accessToken}&content_type=${contentType}`;\n if (limit) {\n query = `${query}&limit=${limit}`;\n }\n if (include) {\n query = `${query}&include=${include}`;\n }\n const resp = await fetch(`${baseUrl}${query}`);\n return resp.json();\n }\n );\n\n const { data: filteredData } = usePlasmicQueryData<any | null>(\n contentType && filterField && filterValue\n ? `${cacheKey}/${contentType}/filteredData`\n : null,\n async () => {\n const queryPath = `/spaces/${creds.space}/environments/${creds.environment}/entries?access_token=${creds.accessToken}&content_type=${contentType}&fields.${filterField}${searchParameter}=${filterValue}`;\n const resp = await fetch(`${baseUrl}${queryPath}`);\n return resp.json();\n }\n );\n\n if (!creds.space || !creds.accessToken) {\n return (\n <div>\n Please specify a valid API Credentials: Space, Access Token and\n Environment\n </div>\n );\n }\n\n if (!contentTypes) {\n return <div>Please configure the Contentful credentials</div>;\n }\n\n if (!entriesData) {\n return <div>Please select a content type</div>;\n }\n\n const filterFields: string[] = entriesData?.items.flatMap((item: any) => {\n const fields = Object.keys(item.fields).filter((field) => {\n const value = get(item, field);\n return typeof value !== \"object\" && field !== \"photos\";\n });\n return fields;\n });\n\n let operators;\n const matchedFields = Object.values(entriesData.items).map((item: any) => {\n const fields = Object.entries(item.fields).find(\n (el) => el[0] === filterField\n );\n return fields;\n });\n\n Object.values(matchedFields)\n .map((model: any) => (Array.isArray(model) ? model : [model]))\n .map((item: any) => {\n if (typeof item[1] === \"number\" && typeof item[1] !== \"object\") {\n operators = searchParameters;\n } else if (\n typeof item[1] !== \"number\" &&\n typeof item[1] !== \"object\" &&\n typeof item[1] === \"string\"\n ) {\n operators = [\n {\n value: \"[match]\",\n label: \"Full text search\",\n },\n ];\n }\n });\n\n setControlContextData?.({\n queryOptions: operators ?? [],\n types: contentTypes?.items ?? [],\n fields: uniq(filterFields ?? []),\n });\n\n if (filterField && !searchParameter) {\n return <div>Please specify a Search Parameter</div>;\n }\n if (searchParameter && !filterValue) {\n return <div>Please specify a Filter value</div>;\n }\n\n function denormalizeData(data: any | null) {\n if (!data?.items || !data?.includes) {\n return data;\n }\n \n const entryMap: { [id: string]: any } = {};\n \n if (data.includes.Entry) {\n data.includes.Entry.forEach((entry: any) => {\n entryMap[entry.sys.id] = entry.fields;\n });\n }\n \n const itemsWithDenormalizedFields: Entry[] = data.items.map((item: any) => {\n const updatedFields: { [fieldName: string]: unknown | unknown[] } = {};\n for (const fieldName in item.fields) {\n const fieldValue = item.fields[fieldName];\n if (Array.isArray(fieldValue)) {\n const updatedArray = fieldValue.map((arrayItem) => {\n if (\n data.includes.Asset &&\n arrayItem &&\n typeof arrayItem === \"object\" &&\n \"sys\" in arrayItem &&\n arrayItem.sys.linkType === \"Asset\"\n ) {\n const fieldId = arrayItem.sys.id;\n const asset = data.includes.Asset.find(\n (asset: any) => asset.sys.id === fieldId\n );\n if (asset) {\n return {\n ...arrayItem,\n url: \"https:\" + asset.fields?.file?.url,\n };\n } else {\n console.log(`Asset URL not found for ID: ${fieldId}`);\n }\n } else if (\n data.includes.Entry &&\n arrayItem &&\n typeof arrayItem === \"object\" &&\n \"sys\" in arrayItem &&\n arrayItem.sys.linkType === \"Entry\"\n ){\n const fieldId = arrayItem.sys.id;\n if (entryMap[fieldId]) {\n updatedFields[fieldName] = {\n ...fieldValue,\n fields: entryMap[fieldId],\n };\n } else {\n console.log(`Entry not found for ID: ${fieldId}`);\n }\n }\n return arrayItem;\n });\n updatedFields[fieldName] = updatedArray;\n } else if (\n data.includes.Asset &&\n fieldValue &&\n typeof fieldValue === \"object\" &&\n \"sys\" in fieldValue &&\n fieldValue.sys.linkType === \"Asset\"\n ) {\n const fieldId = fieldValue.sys.id;\n const asset = data.includes.Asset.find(\n (asset: any) => asset.sys.id === fieldId\n );\n if (asset) {\n updatedFields[fieldName] = {\n ...fieldValue,\n url: \"https:\" + asset.fields?.file?.url,\n };\n } else {\n console.log(`Asset URL not found for ID: ${fieldId}`);\n }\n } else if (\n data.includes.Entry &&\n fieldValue &&\n typeof fieldValue === \"object\" &&\n \"sys\" in fieldValue &&\n fieldValue.sys.linkType === \"Entry\"\n ) {\n const fieldId = fieldValue.sys.id;\n if (entryMap[fieldId]) {\n updatedFields[fieldName] = {\n ...fieldValue,\n fields: entryMap[fieldId],\n };\n } else {\n console.log(`Entry not found for ID: ${fieldId}`);\n }\n } else {\n updatedFields[fieldName] = fieldValue;\n }\n }\n return {\n ...item,\n fields: updatedFields,\n };\n });\n return {\n ...data,\n items: itemsWithDenormalizedFields,\n };\n }\n \n \n let renderedData;\n\n if (filteredData) {\n if (filteredData?.items?.length === 0) {\n return <div className={className}>No published entry found</div>;\n }\n\n renderedData = noAutoRepeat\n ? children\n : denormalizeData(filteredData)?.items?.map(\n (item: any, index: number) => (\n <DataProvider\n key={item?.sys?.id}\n name={\"contentfulItem\"}\n data={item}\n hidden={true}\n >\n <DataProvider\n name={makeDataProviderName(contentType)}\n data={item}\n >\n {repeatedElement(index, children)}\n </DataProvider>\n </DataProvider>\n )\n );\n } else {\n if (entriesData?.items?.length === 0) {\n return <div className={className}>{contentType} is empty</div>;\n }\n\n renderedData = noAutoRepeat\n ? children\n : denormalizeData(entriesData)?.items?.map((item: any, index: number) => (\n <DataProvider\n key={item?.sys?.id}\n name={\"contentfulItem\"}\n data={item}\n hidden={true}\n >\n <DataProvider name={makeDataProviderName(contentType)} data={item}>\n {repeatedElement(index, children)}\n </DataProvider>\n </DataProvider>\n ));\n }\n\n return (\n <DataProvider name=\"contentfulItems\" data={entriesData?.items}>\n {noLayout ? (\n <> {renderedData} </>\n ) : (\n <div className={className}> {renderedData} </div>\n )}\n </DataProvider>\n );\n}\ninterface ContentfulFieldProps {\n className?: string;\n objectPath?: (string | number)[];\n setControlContextData?: (data: { data: object }) => void;\n}\n\nexport const ContentfulFieldMeta: ComponentMeta<ContentfulFieldProps> = {\n name: \"ContentfulField\",\n displayName: \"Contentful Field\",\n importName: \"ContentfulField\",\n importPath: modulePath,\n props: {\n objectPath: {\n type: \"dataSelector\",\n data: (props, ctx) => ctx?.data ?? {},\n displayName: \"Field\",\n description: \"Field to be displayed.\",\n },\n },\n};\n\nexport function ContentfulField({\n className,\n objectPath,\n setControlContextData,\n}: ContentfulFieldProps) {\n const item = useSelector(\"contentfulItem\")?.fields;\n if (!item) {\n return <div>ContentfulField must be used within a ContentfulFetcher </div>;\n }\n setControlContextData?.({\n data: item,\n });\n if (!objectPath) {\n return <div>Please specify a valid path or select a field.</div>;\n }\n\n const data = get(item, objectPath);\n if (\n typeof data === \"object\" &&\n \"nodeType\" in data &&\n data.nodeType === \"document\"\n ) {\n return (\n <div\n className={className}\n dangerouslySetInnerHTML={{ __html: documentToHtmlString(data) }}\n />\n );\n } else if (\n typeof data === \"object\" &&\n data.sys.linkType === \"Asset\" &&\n data.url\n ) {\n return <img className={className} src={data.url} />;\n } else if (!data) {\n return <div>Please specify a valid field.</div>;\n } else if (typeof data !== \"object\") {\n return <div className={className}>{data}</div>;\n } else {\n return <div className={className}>{data.toString()}</div>;\n }\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport {\n ContentfulCredentialsProvider,\n ContentfulCredentialsProviderMeta,\n ContentfulFetcher,\n ContentfulFetcherMeta,\n ContentfulField,\n ContentfulFieldMeta,\n} from \"./contentful\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n}) {\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: ComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n\n if (loader) {\n loader.registerGlobalContext(\n ContentfulCredentialsProvider,\n ContentfulCredentialsProviderMeta\n );\n } else {\n registerGlobalContext(\n ContentfulCredentialsProvider,\n ContentfulCredentialsProviderMeta\n );\n }\n _registerComponent(ContentfulFetcher, ContentfulFetcherMeta);\n _registerComponent(ContentfulField, ContentfulFieldMeta);\n}\n\nexport * from \"./contentful\";\n"],"names":["searchParameters","value","label","uniq","xs","Array","from","Set","ensure","x","undefined","Error","modulePath","makeDataProviderName","contentType","pascalCase","CredentialsContext","React","createContext","ContentfulCredentialsProviderMeta","name","displayName","description","importName","importPath","props","space","type","defaultValue","accessToken","environment","ContentfulCredentialsProvider","_ref","children","Provider","ContentfulFetcherMeta","providesData","defaultStyles","display","gridTemplateColumns","gridRowGap","gridColumnGap","padding","maxWidth","styles","options","ctx","_ctx$types$map","_ctx$types","types","map","_type$sys","sys","id","filterField","_ctx$fields","fields","hidden","searchParameter","_ctx$queryOptions","queryOptions","filterValue","limit","include","defaultValueHint","max","min","noAutoRepeat","noLayout","ContentfulFetcher","_ref2","className","setControlContextData","creds","useContext","cacheKey","JSON","stringify","baseUrl","_usePlasmicQueryData","usePlasmicQueryData","_asyncToGenerator","_regeneratorRuntime","mark","_callee","resp","wrap","_callee$","_context","prev","next","fetch","sent","abrupt","json","stop","contentTypes","data","_contentTypes$items","items","_usePlasmicQueryData2","_callee2","query","_callee2$","_context2","entriesData","_usePlasmicQueryData3","_callee3","queryPath","_callee3$","_context3","filteredData","filterFields","flatMap","item","Object","keys","filter","field","get","operators","matchedFields","values","entries","find","el","model","isArray","_operators","_contentTypes$items2","denormalizeData","includes","entryMap","Entry","forEach","entry","itemsWithDenormalizedFields","updatedFields","_loop","fieldName","fieldValue","updatedArray","arrayItem","Asset","linkType","fieldId","asset","_asset$fields","_extends","url","file","console","log","_asset$fields2","renderedData","_filteredData$items","_denormalizeData","length","index","_item$sys","DataProvider","key","repeatedElement","_entriesData$items","_denormalizeData2","_item$sys2","ContentfulFieldMeta","objectPath","_ctx$data","ContentfulField","_ref6","_useSelector","useSelector","nodeType","dangerouslySetInnerHTML","__html","documentToHtmlString","src","toString","registerAll","loader","_registerComponent","Component","defaultMeta","registerComponent","registerGlobalContext"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("@plasmicapp/host/registerComponent")),n=e(require("@plasmicapp/host/registerGlobalContext")),r=require("@contentful/rich-text-html-renderer"),o=require("@plasmicapp/host"),i=require("@plasmicapp/query"),a=require("change-case"),l=e(require("dlv")),s=require("react"),u=e(s);function c(){c=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",l=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function f(e,t,n,r){var i=Object.create((t&&t.prototype instanceof v?t:v).prototype),a=new T(r||[]);return o(i,"_invoke",{value:N(e,n,a)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=f;var p="suspendedStart",h="executing",m="completed",y={};function v(){}function g(){}function b(){}var w={};u(w,a,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(A([])));E&&E!==n&&r.call(E,a)&&(w=E);var C=b.prototype=v.prototype=Object.create(w);function P(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function L(e,t){function n(o,i,a,l){var s=d(e[o],e,i);if("throw"!==s.type){var u=s.arg,c=u.value;return c&&"object"==typeof c&&r.call(c,"__await")?t.resolve(c.__await).then((function(e){n("next",e,a,l)}),(function(e){n("throw",e,a,l)})):t.resolve(c).then((function(e){u.value=e,a(u)}),(function(e){return n("throw",e,a,l)}))}l(s.arg)}var i;o(this,"_invoke",{value:function(e,r){function o(){return new t((function(t,o){n(e,r,t,o)}))}return i=i?i.then(o,o):o()}})}function N(t,n,r){var o=p;return function(i,a){if(o===h)throw new Error("Generator is already running");if(o===m){if("throw"===i)throw a;return{value:e,done:!0}}for(r.method=i,r.arg=a;;){var l=r.delegate;if(l){var s=j(l,r);if(s){if(s===y)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(o===p)throw o=m,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);o=h;var u=d(t,n,r);if("normal"===u.type){if(o=r.done?m:"suspendedYield",u.arg===y)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(o=m,r.method="throw",r.arg=u.arg)}}}function j(t,n){var r=n.method,o=t.iterator[r];if(o===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,j(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),y;var i=d(o,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,y;var a=i.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,y):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function F(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function A(t){if(t||""===t){var n=t[a];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function n(){for(;++o<t.length;)if(r.call(t,o))return n.value=t[o],n.done=!1,n;return n.value=e,n.done=!0,n};return i.next=i}}throw new TypeError(typeof t+" is not iterable")}return g.prototype=b,o(C,"constructor",{value:b,configurable:!0}),o(b,"constructor",{value:g,configurable:!0}),g.displayName=u(b,s,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,u(e,s,"GeneratorFunction")),e.prototype=Object.create(C),e},t.awrap=function(e){return{__await:e}},P(L.prototype),u(L.prototype,l,(function(){return this})),t.AsyncIterator=L,t.async=function(e,n,r,o,i){void 0===i&&(i=Promise);var a=new L(f(e,n,r,o),i);return t.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},P(C),u(C,s,"Generator"),u(C,a,(function(){return this})),u(C,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=A,T.prototype={constructor:T,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(F),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function o(r,o){return l.type="throw",l.arg=t,n.next=r,o&&(n.method="next",n.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],l=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),u=r.call(a,"finallyLoc");if(s&&u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,y):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),y},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),F(n),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;F(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:A(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),y}},t}function f(e,t,n,r,o,i,a){try{var l=e[i](a),s=l.value}catch(e){return void n(e)}l.done?t(s):Promise.resolve(s).then(r,o)}function d(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){f(i,r,o,a,l,"next",e)}function l(e){f(i,r,o,a,l,"throw",e)}a(void 0)}))}}function p(){return(p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var h=[{value:"[lt]",label:"Less than"},{value:"[lte]",label:"Less than or equal"},{value:"[gt]",label:"Greater than"},{value:"[gte]",label:"Greater than or equal "}];function m(e){if(null==e)throw new Error("Value must not be undefined or null");return e}var y="@plasmicpkgs/plasmic-contentful",v=function(e){return"currentContentful"+a.pascalCase(e)+"Item"},g=u.createContext(void 0),b={name:"Contentful CredentialsProvider",displayName:"Contentful Credentials Provider",description:"Any client requesting content from the CDA needs to provide an access token that has access to the environment you're requesting content from. Learn how to [get your API key](https://www.contentful.com/developers/docs/references/authentication/).",importName:"ContentfulCredentialsProvider",importPath:y,props:{space:{type:"string",displayName:"Space",description:"Name of your space",defaultValue:"lmfbwqzbh93n"},accessToken:{type:"string",displayName:"Access Token ",description:"Access Token",defaultValue:"aWvf6oSLTuqxKCxSUpokajdQr84hGQFE6zoJG7DVVLg"},environment:{type:"string",displayName:"Environment",defaultValue:"master"}}};function w(e){return u.createElement(g.Provider,{value:{space:e.space,accessToken:e.accessToken,environment:e.environment}},e.children)}var x={name:"ContentfulFetcher",displayName:"Contentful Fetcher",importName:"ContentfulFetcher",importPath:y,providesData:!0,description:"Fetches Contentful data and repeats content of children once for every row fetched. ",defaultStyles:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr 1fr",gridRowGap:"8px",gridColumnGap:"8px",padding:"8px",maxWidth:"100%"},props:{children:{type:"slot",defaultValue:{type:"vbox",styles:{padding:"8px"},children:{type:"component",name:"ContentfulField"}}},contentType:{type:"choice",options:function(e,t){var n,r;return null!=(n=null==t||null==(r=t.types)?void 0:r.map((function(e){var t;return{label:null==e?void 0:e.name,value:null==e||null==(t=e.sys)?void 0:t.id}})))?n:[]},displayName:"Content type",description:"Content type to be queried."},filterField:{type:"choice",displayName:"Filter field",description:"Field (from Collection) to filter by.",options:function(e,t){var n;return null!=(n=null==t?void 0:t.fields)?n:[]},hidden:function(e,t){return!e.contentType}},searchParameter:{type:"choice",displayName:"Search Parameter",description:"Search Parameter to filter by (see Contentful Content Delivery API documentation for details).",options:function(e,t){var n;return null!=(n=null==t?void 0:t.queryOptions)?n:[]},hidden:function(e,t){return!e.filterField}},filterValue:{type:"string",displayName:"Filter value",description:"Value to filter by, should be of filter field type.",hidden:function(e,t){return!e.searchParameter}},limit:{type:"number",displayName:"Limit",description:"Limit the number of entries that are returned."},include:{type:"number",displayName:"Linked items depth",defaultValueHint:1,description:"When you have related content (e.g. entries with links to image assets) it's possible to include both search results and related data in a single request. Using the include parameter, you can specify the number of levels to resolve.",max:10,min:0},noAutoRepeat:{type:"boolean",displayName:"No auto-repeat",description:"Do not automatically repeat children for every entry.",defaultValue:!1},noLayout:{type:"boolean",displayName:"No layout",description:"When set, Contentful Fetcher will not layout its children; instead, the layout set on its parent element will be used. Useful if you want to set flex gap or control container tag type.",defaultValue:!1}}};function E(e){var t,n,r,a=e.filterField,f=e.filterValue,y=e.searchParameter,b=e.noAutoRepeat,w=e.contentType,x=e.children,E=e.className,C=e.limit,P=e.include,L=e.noLayout,N=e.setControlContextData,j=m(s.useContext(g)),k=JSON.stringify({limit:C,filterField:a,filterValue:f,searchParameter:y,creds:j}),F="https://cdn.contentful.com",T=i.usePlasmicQueryData(k+"/contentTypes",d(c().mark((function e(){return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(F+"/spaces/"+j.space+"/environments/"+j.environment+"/content_types?access_token="+j.accessToken);case 2:return e.abrupt("return",e.sent.json());case 4:case"end":return e.stop()}}),e)})))).data;null==N||N({types:null!=(t=null==T?void 0:T.items)?t:[]});var A=i.usePlasmicQueryData(w?k+"/"+w+"/entriesData":null,d(c().mark((function e(){var t;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t="/spaces/"+j.space+"/environments/"+j.environment+"/entries?access_token="+j.accessToken+"&content_type="+w,C&&(t=t+"&limit="+C),P&&(t=t+"&include="+P),e.next=5,fetch(""+F+t);case 5:return e.abrupt("return",e.sent.json());case 7:case"end":return e.stop()}}),e)})))).data,O=i.usePlasmicQueryData(w&&a&&f?k+"/"+w+"/filteredData":null,d(c().mark((function e(){var t;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t="/spaces/"+j.space+"/environments/"+j.environment+"/entries?access_token="+j.accessToken+"&content_type="+w+"&fields."+a+y+"="+f,e.next=3,fetch(""+F+t);case 3:return e.abrupt("return",e.sent.json());case 5:case"end":return e.stop()}}),e)})))).data;if(!j.space||!j.accessToken)return u.createElement("div",null,"Please specify a valid API Credentials: Space, Access Token and Environment");if(!T)return u.createElement("div",null,"Please configure the Contentful credentials");if(!A)return u.createElement("div",null,"Please select a content type");var _,S,q,D=null==A?void 0:A.items.flatMap((function(e){return Object.keys(e.fields).filter((function(t){return"object"!=typeof l(e,t)&&"photos"!==t}))})),G=Object.values(A.items).map((function(e){return Object.entries(e.fields).find((function(e){return e[0]===a}))}));if(Object.values(G).map((function(e){return Array.isArray(e)?e:[e]})).map((function(e){"number"==typeof e[1]&&"object"!=typeof e[1]?_=h:"number"!=typeof e[1]&&"object"!=typeof e[1]&&"string"==typeof e[1]&&(_=[{value:"[match]",label:"Full text search"}])})),null==N||N({queryOptions:null!=(n=_)?n:[],types:null!=(r=null==T?void 0:T.items)?r:[],fields:(S=null!=D?D:[],Array.from(new Set(S)))}),a&&!y)return u.createElement("div",null,"Please specify a Search Parameter");if(y&&!f)return u.createElement("div",null,"Please specify a Filter value");function I(e){if(null==e||!e.items||null==e||!e.includes||null==e||!e.includes.Asset)return e;var t=e.items.map((function(t){var n={},r=function(){var r=t.fields[o];if(Array.isArray(r)){var i=r.map((function(t){if(t&&"object"==typeof t&&"sys"in t&&"Asset"===t.sys.linkType){var n,r=t.sys.id,o=e.includes.Asset.find((function(e){return e.sys.id===r}));if(o)return p({},t,{url:"https:"+(null==(n=o.fields)||null==(n=n.file)?void 0:n.url)});console.log("Asset URL not found for ID: "+r)}return t}));n[o]=i}else if(r&&"object"==typeof r&&"sys"in r&&"Asset"===r.sys.linkType){var a,l=r.sys.id,s=e.includes.Asset.find((function(e){return e.sys.id===l}));s?n[o]=p({},r,{url:"https:"+(null==(a=s.fields)||null==(a=a.file)?void 0:a.url)}):console.log("Asset URL not found for ID: "+l)}else n[o]=r};for(var o in t.fields)r();return p({},t,{fields:n})}));return p({},e,{items:t})}if(O){var V,M;if(0===(null==O||null==(V=O.items)?void 0:V.length))return u.createElement("div",{className:E},"No published entry found");q=b?x:null==(M=I(O))||null==(M=M.items)?void 0:M.map((function(e,t){var n;return u.createElement(o.DataProvider,{key:null==e||null==(n=e.sys)?void 0:n.id,name:"contentfulItem",data:e,hidden:!0},u.createElement(o.DataProvider,{name:v(w),data:e},o.repeatedElement(t,x)))}))}else{var Q,R;if(0===(null==A||null==(Q=A.items)?void 0:Q.length))return u.createElement("div",{className:E},w," is empty");q=b?x:null==(R=I(A))||null==(R=R.items)?void 0:R.map((function(e,t){var n;return u.createElement(o.DataProvider,{key:null==e||null==(n=e.sys)?void 0:n.id,name:"contentfulItem",data:e,hidden:!0},u.createElement(o.DataProvider,{name:v(w),data:e},o.repeatedElement(t,x)))}))}return u.createElement(o.DataProvider,{name:"contentfulItems",data:null==A?void 0:A.items},L?u.createElement(u.Fragment,null," ",q," "):u.createElement("div",{className:E}," ",q," "))}var C={name:"ContentfulField",displayName:"Contentful Field",importName:"ContentfulField",importPath:y,props:{objectPath:{type:"dataSelector",data:function(e,t){var n;return null!=(n=null==t?void 0:t.data)?n:{}},displayName:"Field",description:"Field to be displayed."}}};function P(e){var t,n=e.className,i=e.objectPath,a=e.setControlContextData,s=null==(t=o.useSelector("contentfulItem"))?void 0:t.fields;if(!s)return u.createElement("div",null,"ContentfulField must be used within a ContentfulFetcher ");if(null==a||a({data:s}),!i)return u.createElement("div",null,"Please specify a valid path or select a field.");var c=l(s,i);return"object"==typeof c&&"nodeType"in c&&"document"===c.nodeType?u.createElement("div",{className:n,dangerouslySetInnerHTML:{__html:r.documentToHtmlString(c)}}):"object"==typeof c&&"Asset"===c.sys.linkType&&c.url?u.createElement("img",{className:n,src:c.url}):c?u.createElement("div",{className:n},"object"!=typeof c?c:c.toString()):u.createElement("div",null,"Please specify a valid field.")}exports.ContentfulCredentialsProvider=w,exports.ContentfulCredentialsProviderMeta=b,exports.ContentfulFetcher=E,exports.ContentfulFetcherMeta=x,exports.ContentfulField=P,exports.ContentfulFieldMeta=C,exports.ensure=m,exports.registerAll=function(e){var r=function(n,r){e?e.registerComponent(n,r):t(n,r)};e?e.registerGlobalContext(w,b):n(w,b),r(E,x),r(P,C)};
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("@plasmicapp/host/registerComponent")),n=e(require("@plasmicapp/host/registerGlobalContext")),r=require("@contentful/rich-text-html-renderer"),o=require("@plasmicapp/host"),i=require("@plasmicapp/query"),a=require("change-case"),l=e(require("dlv")),s=require("react"),u=e(s);function c(){c=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",l=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function f(e,t,n,r){var i=Object.create((t&&t.prototype instanceof v?t:v).prototype),a=new T(r||[]);return o(i,"_invoke",{value:N(e,n,a)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=f;var p="suspendedStart",h="executing",y="completed",m={};function v(){}function g(){}function b(){}var w={};u(w,a,(function(){return this}));var E=Object.getPrototypeOf,x=E&&E(E(A([])));x&&x!==n&&r.call(x,a)&&(w=x);var C=b.prototype=v.prototype=Object.create(w);function P(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function L(e,t){function n(o,i,a,l){var s=d(e[o],e,i);if("throw"!==s.type){var u=s.arg,c=u.value;return c&&"object"==typeof c&&r.call(c,"__await")?t.resolve(c.__await).then((function(e){n("next",e,a,l)}),(function(e){n("throw",e,a,l)})):t.resolve(c).then((function(e){u.value=e,a(u)}),(function(e){return n("throw",e,a,l)}))}l(s.arg)}var i;o(this,"_invoke",{value:function(e,r){function o(){return new t((function(t,o){n(e,r,t,o)}))}return i=i?i.then(o,o):o()}})}function N(t,n,r){var o=p;return function(i,a){if(o===h)throw new Error("Generator is already running");if(o===y){if("throw"===i)throw a;return{value:e,done:!0}}for(r.method=i,r.arg=a;;){var l=r.delegate;if(l){var s=j(l,r);if(s){if(s===m)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(o===p)throw o=y,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);o=h;var u=d(t,n,r);if("normal"===u.type){if(o=r.done?y:"suspendedYield",u.arg===m)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(o=y,r.method="throw",r.arg=u.arg)}}}function j(t,n){var r=n.method,o=t.iterator[r];if(o===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,j(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),m;var i=d(o,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,m;var a=i.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,m):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function F(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function A(t){if(t||""===t){var n=t[a];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function n(){for(;++o<t.length;)if(r.call(t,o))return n.value=t[o],n.done=!1,n;return n.value=e,n.done=!0,n};return i.next=i}}throw new TypeError(typeof t+" is not iterable")}return g.prototype=b,o(C,"constructor",{value:b,configurable:!0}),o(b,"constructor",{value:g,configurable:!0}),g.displayName=u(b,s,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,u(e,s,"GeneratorFunction")),e.prototype=Object.create(C),e},t.awrap=function(e){return{__await:e}},P(L.prototype),u(L.prototype,l,(function(){return this})),t.AsyncIterator=L,t.async=function(e,n,r,o,i){void 0===i&&(i=Promise);var a=new L(f(e,n,r,o),i);return t.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},P(C),u(C,s,"Generator"),u(C,a,(function(){return this})),u(C,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=A,T.prototype={constructor:T,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(F),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function o(r,o){return l.type="throw",l.arg=t,n.next=r,o&&(n.method="next",n.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],l=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),u=r.call(a,"finallyLoc");if(s&&u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,m):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),F(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;F(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:A(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),m}},t}function f(e,t,n,r,o,i,a){try{var l=e[i](a),s=l.value}catch(e){return void n(e)}l.done?t(s):Promise.resolve(s).then(r,o)}function d(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){f(i,r,o,a,l,"next",e)}function l(e){f(i,r,o,a,l,"throw",e)}a(void 0)}))}}function p(){return(p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var h=[{value:"[lt]",label:"Less than"},{value:"[lte]",label:"Less than or equal"},{value:"[gt]",label:"Greater than"},{value:"[gte]",label:"Greater than or equal "}];function y(e){if(null==e)throw new Error("Value must not be undefined or null");return e}var m="@plasmicpkgs/plasmic-contentful",v=function(e){return"currentContentful"+a.pascalCase(e)+"Item"},g=u.createContext(void 0),b={name:"Contentful CredentialsProvider",displayName:"Contentful Credentials Provider",description:"Any client requesting content from the CDA needs to provide an access token that has access to the environment you're requesting content from. Learn how to [get your API key](https://www.contentful.com/developers/docs/references/authentication/).",importName:"ContentfulCredentialsProvider",importPath:m,props:{space:{type:"string",displayName:"Space",description:"Name of your space",defaultValue:"lmfbwqzbh93n"},accessToken:{type:"string",displayName:"Access Token ",description:"Access Token",defaultValue:"aWvf6oSLTuqxKCxSUpokajdQr84hGQFE6zoJG7DVVLg"},environment:{type:"string",displayName:"Environment",defaultValue:"master"}}};function w(e){return u.createElement(g.Provider,{value:{space:e.space,accessToken:e.accessToken,environment:e.environment}},e.children)}var E={name:"ContentfulFetcher",displayName:"Contentful Fetcher",importName:"ContentfulFetcher",importPath:m,providesData:!0,description:"Fetches Contentful data and repeats content of children once for every row fetched. ",defaultStyles:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr 1fr",gridRowGap:"8px",gridColumnGap:"8px",padding:"8px",maxWidth:"100%"},props:{children:{type:"slot",defaultValue:{type:"vbox",styles:{padding:"8px"},children:{type:"component",name:"ContentfulField"}}},contentType:{type:"choice",options:function(e,t){var n,r;return null!=(n=null==t||null==(r=t.types)?void 0:r.map((function(e){var t;return{label:null==e?void 0:e.name,value:null==e||null==(t=e.sys)?void 0:t.id}})))?n:[]},displayName:"Content type",description:"Content type to be queried."},filterField:{type:"choice",displayName:"Filter field",description:"Field (from Collection) to filter by.",options:function(e,t){var n;return null!=(n=null==t?void 0:t.fields)?n:[]},hidden:function(e,t){return!e.contentType}},searchParameter:{type:"choice",displayName:"Search Parameter",description:"Search Parameter to filter by (see Contentful Content Delivery API documentation for details).",options:function(e,t){var n;return null!=(n=null==t?void 0:t.queryOptions)?n:[]},hidden:function(e,t){return!e.filterField}},filterValue:{type:"string",displayName:"Filter value",description:"Value to filter by, should be of filter field type.",hidden:function(e,t){return!e.searchParameter}},limit:{type:"number",displayName:"Limit",description:"Limit the number of entries that are returned."},include:{type:"number",displayName:"Linked items depth",defaultValueHint:1,description:"When you have related content (e.g. entries with links to image assets) it's possible to include both search results and related data in a single request. Using the include parameter, you can specify the number of levels to resolve.",max:10,min:0},noAutoRepeat:{type:"boolean",displayName:"No auto-repeat",description:"Do not automatically repeat children for every entry.",defaultValue:!1},noLayout:{type:"boolean",displayName:"No layout",description:"When set, Contentful Fetcher will not layout its children; instead, the layout set on its parent element will be used. Useful if you want to set flex gap or control container tag type.",defaultValue:!1}}};function x(e){var t,n,r,a=e.filterField,f=e.filterValue,m=e.searchParameter,b=e.noAutoRepeat,w=e.contentType,E=e.children,x=e.className,C=e.limit,P=e.include,L=e.noLayout,N=e.setControlContextData,j=y(s.useContext(g)),k=JSON.stringify({limit:C,filterField:a,filterValue:f,searchParameter:m,creds:j}),F="https://cdn.contentful.com",T=i.usePlasmicQueryData(k+"/contentTypes",d(c().mark((function e(){return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(F+"/spaces/"+j.space+"/environments/"+j.environment+"/content_types?access_token="+j.accessToken);case 2:return e.abrupt("return",e.sent.json());case 4:case"end":return e.stop()}}),e)})))).data;null==N||N({types:null!=(t=null==T?void 0:T.items)?t:[]});var A=i.usePlasmicQueryData(w?k+"/"+w+"/entriesData":null,d(c().mark((function e(){var t;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t="/spaces/"+j.space+"/environments/"+j.environment+"/entries?access_token="+j.accessToken+"&content_type="+w,C&&(t=t+"&limit="+C),P&&(t=t+"&include="+P),e.next=5,fetch(""+F+t);case 5:return e.abrupt("return",e.sent.json());case 7:case"end":return e.stop()}}),e)})))).data,O=i.usePlasmicQueryData(w&&a&&f?k+"/"+w+"/filteredData":null,d(c().mark((function e(){var t;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t="/spaces/"+j.space+"/environments/"+j.environment+"/entries?access_token="+j.accessToken+"&content_type="+w+"&fields."+a+m+"="+f,e.next=3,fetch(""+F+t);case 3:return e.abrupt("return",e.sent.json());case 5:case"end":return e.stop()}}),e)})))).data;if(!j.space||!j.accessToken)return u.createElement("div",null,"Please specify a valid API Credentials: Space, Access Token and Environment");if(!T)return u.createElement("div",null,"Please configure the Contentful credentials");if(!A)return u.createElement("div",null,"Please select a content type");var _,D,S,q=null==A?void 0:A.items.flatMap((function(e){return Object.keys(e.fields).filter((function(t){return"object"!=typeof l(e,t)&&"photos"!==t}))})),G=Object.values(A.items).map((function(e){return Object.entries(e.fields).find((function(e){return e[0]===a}))}));if(Object.values(G).map((function(e){return Array.isArray(e)?e:[e]})).map((function(e){"number"==typeof e[1]&&"object"!=typeof e[1]?_=h:"number"!=typeof e[1]&&"object"!=typeof e[1]&&"string"==typeof e[1]&&(_=[{value:"[match]",label:"Full text search"}])})),null==N||N({queryOptions:null!=(n=_)?n:[],types:null!=(r=null==T?void 0:T.items)?r:[],fields:(D=null!=q?q:[],Array.from(new Set(D)))}),a&&!m)return u.createElement("div",null,"Please specify a Search Parameter");if(m&&!f)return u.createElement("div",null,"Please specify a Filter value");function I(e){if(null==e||!e.items||null==e||!e.includes)return e;var t={};e.includes.Entry&&e.includes.Entry.forEach((function(e){t[e.sys.id]=e.fields}));var n=e.items.map((function(n){var r={},o=function(o){var i=n.fields[o];if(Array.isArray(i)){var a=i.map((function(n){if(e.includes.Asset&&n&&"object"==typeof n&&"sys"in n&&"Asset"===n.sys.linkType){var a,l=n.sys.id,s=e.includes.Asset.find((function(e){return e.sys.id===l}));if(s)return p({},n,{url:"https:"+(null==(a=s.fields)||null==(a=a.file)?void 0:a.url)});console.log("Asset URL not found for ID: "+l)}else if(e.includes.Entry&&n&&"object"==typeof n&&"sys"in n&&"Entry"===n.sys.linkType){var u=n.sys.id;t[u]?r[o]=p({},i,{fields:t[u]}):console.log("Entry not found for ID: "+u)}return n}));r[o]=a}else if(e.includes.Asset&&i&&"object"==typeof i&&"sys"in i&&"Asset"===i.sys.linkType){var l,s=i.sys.id,u=e.includes.Asset.find((function(e){return e.sys.id===s}));u?r[o]=p({},i,{url:"https:"+(null==(l=u.fields)||null==(l=l.file)?void 0:l.url)}):console.log("Asset URL not found for ID: "+s)}else if(e.includes.Entry&&i&&"object"==typeof i&&"sys"in i&&"Entry"===i.sys.linkType){var c=i.sys.id;t[c]?r[o]=p({},i,{fields:t[c]}):console.log("Entry not found for ID: "+c)}else r[o]=i};for(var i in n.fields)o(i);return p({},n,{fields:r})}));return p({},e,{items:n})}if(O){var V,M;if(0===(null==O||null==(V=O.items)?void 0:V.length))return u.createElement("div",{className:x},"No published entry found");S=b?E:null==(M=I(O))||null==(M=M.items)?void 0:M.map((function(e,t){var n;return u.createElement(o.DataProvider,{key:null==e||null==(n=e.sys)?void 0:n.id,name:"contentfulItem",data:e,hidden:!0},u.createElement(o.DataProvider,{name:v(w),data:e},o.repeatedElement(t,E)))}))}else{var Q,R;if(0===(null==A||null==(Q=A.items)?void 0:Q.length))return u.createElement("div",{className:x},w," is empty");S=b?E:null==(R=I(A))||null==(R=R.items)?void 0:R.map((function(e,t){var n;return u.createElement(o.DataProvider,{key:null==e||null==(n=e.sys)?void 0:n.id,name:"contentfulItem",data:e,hidden:!0},u.createElement(o.DataProvider,{name:v(w),data:e},o.repeatedElement(t,E)))}))}return u.createElement(o.DataProvider,{name:"contentfulItems",data:null==A?void 0:A.items},L?u.createElement(u.Fragment,null," ",S," "):u.createElement("div",{className:x}," ",S," "))}var C={name:"ContentfulField",displayName:"Contentful Field",importName:"ContentfulField",importPath:m,props:{objectPath:{type:"dataSelector",data:function(e,t){var n;return null!=(n=null==t?void 0:t.data)?n:{}},displayName:"Field",description:"Field to be displayed."}}};function P(e){var t,n=e.className,i=e.objectPath,a=e.setControlContextData,s=null==(t=o.useSelector("contentfulItem"))?void 0:t.fields;if(!s)return u.createElement("div",null,"ContentfulField must be used within a ContentfulFetcher ");if(null==a||a({data:s}),!i)return u.createElement("div",null,"Please specify a valid path or select a field.");var c=l(s,i);return"object"==typeof c&&"nodeType"in c&&"document"===c.nodeType?u.createElement("div",{className:n,dangerouslySetInnerHTML:{__html:r.documentToHtmlString(c)}}):"object"==typeof c&&"Asset"===c.sys.linkType&&c.url?u.createElement("img",{className:n,src:c.url}):c?u.createElement("div",{className:n},"object"!=typeof c?c:c.toString()):u.createElement("div",null,"Please specify a valid field.")}exports.ContentfulCredentialsProvider=w,exports.ContentfulCredentialsProviderMeta=b,exports.ContentfulFetcher=x,exports.ContentfulFetcherMeta=E,exports.ContentfulField=P,exports.ContentfulFieldMeta=C,exports.ensure=y,exports.registerAll=function(e){var r=function(n,r){e?e.registerComponent(n,r):t(n,r)};e?e.registerGlobalContext(w,b):n(w,b),r(x,E),r(P,C)};
|
|
2
2
|
//# sourceMappingURL=plasmic-contentful.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plasmic-contentful.cjs.production.min.js","sources":["../src/utils.ts","../src/contentful.tsx","../src/index.tsx"],"sourcesContent":["export const searchParameters = [\n {\n value: \"[lt]\",\n label: \"Less than\",\n },\n {\n value: \"[lte]\",\n label: \"Less than or equal\",\n },\n {\n value: \"[gt]\",\n label: \"Greater than\",\n },\n {\n value: \"[gte]\",\n label: \"Greater than or equal \",\n },\n];\n\nexport const uniq = <T>(xs: Array<T>): T[] => Array.from(new Set(xs));\n","import { documentToHtmlString } from \"@contentful/rich-text-html-renderer\";\nimport {\n ComponentMeta,\n DataProvider,\n GlobalContextMeta,\n repeatedElement,\n useSelector,\n} from \"@plasmicapp/host\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport { pascalCase } from \"change-case\";\nimport get from \"dlv\";\nimport React, { ReactNode, useContext } from \"react\";\nimport { searchParameters, uniq } from \"./utils\";\nimport { Entry } from \"./types\";\n\nexport function ensure<T>(x: T | null | undefined): T {\n if (x === null || x === undefined) {\n throw new Error(`Value must not be undefined or null`);\n } else {\n return x;\n }\n}\n\nconst modulePath = \"@plasmicpkgs/plasmic-contentful\";\n\nconst makeDataProviderName = (contentType: string) =>\n `currentContentful${pascalCase(contentType)}Item`;\n\ninterface ContentfulCredentialsProviderProps {\n space: string;\n accessToken: string;\n environment?: string;\n}\n\nconst CredentialsContext = React.createContext<\n ContentfulCredentialsProviderProps | undefined\n>(undefined);\n\nexport const ContentfulCredentialsProviderMeta: GlobalContextMeta<ContentfulCredentialsProviderProps> =\n {\n name: \"Contentful CredentialsProvider\",\n displayName: \"Contentful Credentials Provider\",\n description:\n \"Any client requesting content from the CDA needs to provide an access token that has access to the environment you're requesting content from. Learn how to [get your API key](https://www.contentful.com/developers/docs/references/authentication/).\",\n importName: \"ContentfulCredentialsProvider\",\n importPath: modulePath,\n props: {\n space: {\n type: \"string\",\n displayName: \"Space\",\n description: \"Name of your space\",\n defaultValue: \"lmfbwqzbh93n\",\n },\n accessToken: {\n type: \"string\",\n displayName: \"Access Token \",\n description: \"Access Token\",\n defaultValue: \"aWvf6oSLTuqxKCxSUpokajdQr84hGQFE6zoJG7DVVLg\",\n },\n environment: {\n type: \"string\",\n displayName: \"Environment\",\n defaultValue: \"master\",\n },\n },\n };\n\nexport function ContentfulCredentialsProvider({\n accessToken,\n space,\n environment,\n children,\n}: React.PropsWithChildren<ContentfulCredentialsProviderProps>) {\n return (\n <CredentialsContext.Provider value={{ space, accessToken, environment }}>\n {children}\n </CredentialsContext.Provider>\n );\n}\n\ninterface ContentfulFetcherProps {\n contentType: string;\n children?: ReactNode;\n className?: string;\n limit?: number;\n include?: number;\n order?: string;\n filterField?: string;\n searchParameter?: string;\n filterValue?: string | number;\n noAutoRepeat?: boolean;\n noLayout?: boolean;\n setControlContextData?: (data: {\n types?: { name: string; id: string }[];\n fields?: string[];\n queryOptions?: [];\n }) => void;\n}\n\nexport const ContentfulFetcherMeta: ComponentMeta<ContentfulFetcherProps> = {\n name: \"ContentfulFetcher\",\n displayName: \"Contentful Fetcher\",\n importName: \"ContentfulFetcher\",\n importPath: modulePath,\n providesData: true,\n description:\n \"Fetches Contentful data and repeats content of children once for every row fetched. \",\n defaultStyles: {\n display: \"grid\",\n gridTemplateColumns: \"1fr 1fr 1fr 1fr\",\n gridRowGap: \"8px\",\n gridColumnGap: \"8px\",\n padding: \"8px\",\n maxWidth: \"100%\",\n },\n props: {\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"vbox\",\n styles: {\n padding: \"8px\",\n },\n children: {\n type: \"component\",\n name: \"ContentfulField\",\n },\n },\n },\n contentType: {\n type: \"choice\",\n options: (props, ctx) =>\n ctx?.types?.map((type: any) => ({\n label: type?.name,\n value: type?.sys?.id,\n })) ?? [],\n displayName: \"Content type\",\n description: \"Content type to be queried.\",\n },\n\n filterField: {\n type: \"choice\",\n displayName: \"Filter field\",\n description: \"Field (from Collection) to filter by.\",\n options: (props, ctx) => ctx?.fields ?? [],\n hidden: (props, ctx) => !props.contentType,\n },\n searchParameter: {\n type: \"choice\",\n displayName: \"Search Parameter\",\n description:\n \"Search Parameter to filter by (see Contentful Content Delivery API documentation for details).\",\n options: (props, ctx) => ctx?.queryOptions ?? [],\n hidden: (props, ctx) => !props.filterField,\n },\n filterValue: {\n type: \"string\",\n displayName: \"Filter value\",\n description: \"Value to filter by, should be of filter field type.\",\n hidden: (props, ctx) => !props.searchParameter,\n },\n limit: {\n type: \"number\",\n displayName: \"Limit\",\n description: \"Limit the number of entries that are returned.\",\n },\n include: {\n type: \"number\",\n displayName: \"Linked items depth\",\n defaultValueHint: 1,\n description:\n \"When you have related content (e.g. entries with links to image assets) it's possible to include both search results and related data in a single request. Using the include parameter, you can specify the number of levels to resolve.\",\n max: 10,\n min: 0,\n },\n noAutoRepeat: {\n type: \"boolean\",\n displayName: \"No auto-repeat\",\n description: \"Do not automatically repeat children for every entry.\",\n defaultValue: false,\n },\n noLayout: {\n type: \"boolean\",\n displayName: \"No layout\",\n description:\n \"When set, Contentful Fetcher will not layout its children; instead, the layout set on its parent element will be used. Useful if you want to set flex gap or control container tag type.\",\n defaultValue: false,\n },\n },\n};\n\nexport function ContentfulFetcher({\n filterField,\n filterValue,\n searchParameter,\n noAutoRepeat,\n contentType,\n children,\n className,\n limit,\n include,\n noLayout,\n setControlContextData,\n}: ContentfulFetcherProps) {\n const creds = ensure(useContext(CredentialsContext));\n const cacheKey = JSON.stringify({\n limit,\n filterField,\n filterValue,\n searchParameter,\n creds,\n });\n\n const baseUrl = \"https://cdn.contentful.com\";\n\n const { data: contentTypes } = usePlasmicQueryData<any | null>(\n `${cacheKey}/contentTypes`,\n async () => {\n const resp = await fetch(\n `${baseUrl}/spaces/${creds.space}/environments/${creds.environment}/content_types?access_token=${creds.accessToken}`\n );\n return resp.json();\n }\n );\n setControlContextData?.({\n types: contentTypes?.items ?? [],\n });\n\n const { data: entriesData } = usePlasmicQueryData<any | null>(\n contentType ? `${cacheKey}/${contentType}/entriesData` : null,\n async () => {\n let query = `/spaces/${creds.space}/environments/${creds.environment}/entries?access_token=${creds.accessToken}&content_type=${contentType}`;\n if (limit) {\n query = `${query}&limit=${limit}`;\n }\n if (include) {\n query = `${query}&include=${include}`;\n }\n const resp = await fetch(`${baseUrl}${query}`);\n return resp.json();\n }\n );\n\n const { data: filteredData } = usePlasmicQueryData<any | null>(\n contentType && filterField && filterValue\n ? `${cacheKey}/${contentType}/filteredData`\n : null,\n async () => {\n const queryPath = `/spaces/${creds.space}/environments/${creds.environment}/entries?access_token=${creds.accessToken}&content_type=${contentType}&fields.${filterField}${searchParameter}=${filterValue}`;\n const resp = await fetch(`${baseUrl}${queryPath}`);\n return resp.json();\n }\n );\n\n if (!creds.space || !creds.accessToken) {\n return (\n <div>\n Please specify a valid API Credentials: Space, Access Token and\n Environment\n </div>\n );\n }\n\n if (!contentTypes) {\n return <div>Please configure the Contentful credentials</div>;\n }\n\n if (!entriesData) {\n return <div>Please select a content type</div>;\n }\n\n const filterFields: string[] = entriesData?.items.flatMap((item: any) => {\n const fields = Object.keys(item.fields).filter((field) => {\n const value = get(item, field);\n return typeof value !== \"object\" && field !== \"photos\";\n });\n return fields;\n });\n\n let operators;\n const matchedFields = Object.values(entriesData.items).map((item: any) => {\n const fields = Object.entries(item.fields).find(\n (el) => el[0] === filterField\n );\n return fields;\n });\n\n Object.values(matchedFields)\n .map((model: any) => (Array.isArray(model) ? model : [model]))\n .map((item: any) => {\n if (typeof item[1] === \"number\" && typeof item[1] !== \"object\") {\n operators = searchParameters;\n } else if (\n typeof item[1] !== \"number\" &&\n typeof item[1] !== \"object\" &&\n typeof item[1] === \"string\"\n ) {\n operators = [\n {\n value: \"[match]\",\n label: \"Full text search\",\n },\n ];\n }\n });\n\n setControlContextData?.({\n queryOptions: operators ?? [],\n types: contentTypes?.items ?? [],\n fields: uniq(filterFields ?? []),\n });\n\n if (filterField && !searchParameter) {\n return <div>Please specify a Search Parameter</div>;\n }\n if (searchParameter && !filterValue) {\n return <div>Please specify a Filter value</div>;\n }\n\n function denormalizeData(data: any | null) {\n if (!data?.items || !data?.includes || !data?.includes.Asset) {\n return data; // Return the original data if the required properties are missing\n }\n const itemsWithDenormalizedFields: Entry[] = data.items.map((item: any) => {\n const updatedFields: { [fieldName: string]: unknown | unknown[] } = {};\n\n for (const fieldName in item.fields) {\n const fieldValue = item.fields[fieldName];\n\n if (Array.isArray(fieldValue)) {\n const updatedArray = fieldValue.map((arrayItem) => {\n if (\n arrayItem &&\n typeof arrayItem === \"object\" &&\n \"sys\" in arrayItem &&\n arrayItem.sys.linkType === \"Asset\"\n ) {\n const fieldId = arrayItem.sys.id;\n const asset = data.includes.Asset.find(\n (asset: any) => asset.sys.id === fieldId\n );\n if (asset) {\n return {\n ...arrayItem,\n url: \"https:\" + asset.fields?.file?.url,\n };\n } else {\n console.log(`Asset URL not found for ID: ${fieldId}`);\n }\n }\n return arrayItem;\n });\n updatedFields[fieldName] = updatedArray;\n } else if (\n fieldValue &&\n typeof fieldValue === \"object\" &&\n \"sys\" in fieldValue &&\n fieldValue.sys.linkType === \"Asset\"\n ) {\n const fieldId = fieldValue.sys.id;\n const asset = data.includes.Asset.find(\n (asset: any) => asset.sys.id === fieldId\n );\n if (asset) {\n updatedFields[fieldName] = {\n ...fieldValue,\n url: \"https:\" + asset.fields?.file?.url,\n };\n } else {\n console.log(`Asset URL not found for ID: ${fieldId}`);\n }\n } else {\n updatedFields[fieldName] = fieldValue;\n }\n }\n return {\n ...item,\n fields: updatedFields,\n };\n });\n return {\n ...data,\n items: itemsWithDenormalizedFields,\n };\n }\n\n let renderedData;\n\n if (filteredData) {\n if (filteredData?.items?.length === 0) {\n return <div className={className}>No published entry found</div>;\n }\n\n renderedData = noAutoRepeat\n ? children\n : denormalizeData(filteredData)?.items?.map(\n (item: any, index: number) => (\n <DataProvider\n key={item?.sys?.id}\n name={\"contentfulItem\"}\n data={item}\n hidden={true}\n >\n <DataProvider\n name={makeDataProviderName(contentType)}\n data={item}\n >\n {repeatedElement(index, children)}\n </DataProvider>\n </DataProvider>\n )\n );\n } else {\n if (entriesData?.items?.length === 0) {\n return <div className={className}>{contentType} is empty</div>;\n }\n\n renderedData = noAutoRepeat\n ? children\n : denormalizeData(entriesData)?.items?.map((item: any, index: number) => (\n <DataProvider\n key={item?.sys?.id}\n name={\"contentfulItem\"}\n data={item}\n hidden={true}\n >\n <DataProvider name={makeDataProviderName(contentType)} data={item}>\n {repeatedElement(index, children)}\n </DataProvider>\n </DataProvider>\n ));\n }\n\n return (\n <DataProvider name=\"contentfulItems\" data={entriesData?.items}>\n {noLayout ? (\n <> {renderedData} </>\n ) : (\n <div className={className}> {renderedData} </div>\n )}\n </DataProvider>\n );\n}\ninterface ContentfulFieldProps {\n className?: string;\n objectPath?: (string | number)[];\n setControlContextData?: (data: { data: object }) => void;\n}\n\nexport const ContentfulFieldMeta: ComponentMeta<ContentfulFieldProps> = {\n name: \"ContentfulField\",\n displayName: \"Contentful Field\",\n importName: \"ContentfulField\",\n importPath: modulePath,\n props: {\n objectPath: {\n type: \"dataSelector\",\n data: (props, ctx) => ctx?.data ?? {},\n displayName: \"Field\",\n description: \"Field to be displayed.\",\n },\n },\n};\n\nexport function ContentfulField({\n className,\n objectPath,\n setControlContextData,\n}: ContentfulFieldProps) {\n const item = useSelector(\"contentfulItem\")?.fields;\n if (!item) {\n return <div>ContentfulField must be used within a ContentfulFetcher </div>;\n }\n setControlContextData?.({\n data: item,\n });\n if (!objectPath) {\n return <div>Please specify a valid path or select a field.</div>;\n }\n\n const data = get(item, objectPath);\n if (\n typeof data === \"object\" &&\n \"nodeType\" in data &&\n data.nodeType === \"document\"\n ) {\n return (\n <div\n className={className}\n dangerouslySetInnerHTML={{ __html: documentToHtmlString(data) }}\n />\n );\n } else if (\n typeof data === \"object\" &&\n data.sys.linkType === \"Asset\" &&\n data.url\n ) {\n return <img className={className} src={data.url} />;\n } else if (!data) {\n return <div>Please specify a valid field.</div>;\n } else if (typeof data !== \"object\") {\n return <div className={className}>{data}</div>;\n } else {\n return <div className={className}>{data.toString()}</div>;\n }\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport {\n ContentfulCredentialsProvider,\n ContentfulCredentialsProviderMeta,\n ContentfulFetcher,\n ContentfulFetcherMeta,\n ContentfulField,\n ContentfulFieldMeta,\n} from \"./contentful\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n}) {\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: ComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n\n if (loader) {\n loader.registerGlobalContext(\n ContentfulCredentialsProvider,\n ContentfulCredentialsProviderMeta\n );\n } else {\n registerGlobalContext(\n ContentfulCredentialsProvider,\n ContentfulCredentialsProviderMeta\n );\n }\n _registerComponent(ContentfulFetcher, ContentfulFetcherMeta);\n _registerComponent(ContentfulField, ContentfulFieldMeta);\n}\n\nexport * from \"./contentful\";\n"],"names":["searchParameters","value","label","ensure","x","Error","modulePath","makeDataProviderName","contentType","pascalCase","CredentialsContext","React","createContext","undefined","ContentfulCredentialsProviderMeta","name","displayName","description","importName","importPath","props","space","type","defaultValue","accessToken","environment","ContentfulCredentialsProvider","_ref","Provider","children","ContentfulFetcherMeta","providesData","defaultStyles","display","gridTemplateColumns","gridRowGap","gridColumnGap","padding","maxWidth","styles","options","ctx","_ctx$types$map","_ctx$types","types","map","_type$sys","sys","id","filterField","_ctx$fields","fields","hidden","searchParameter","_ctx$queryOptions","queryOptions","filterValue","limit","include","defaultValueHint","max","min","noAutoRepeat","noLayout","ContentfulFetcher","_ref2","className","setControlContextData","creds","useContext","cacheKey","JSON","stringify","baseUrl","contentTypes","usePlasmicQueryData","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","fetch","abrupt","sent","json","stop","data","_contentTypes$items","items","entriesData","_callee2","query","_context2","filteredData","_callee3","queryPath","_context3","operators","xs","renderedData","filterFields","flatMap","item","Object","keys","filter","field","get","matchedFields","values","entries","find","el","model","Array","isArray","_operators","_contentTypes$items2","from","Set","denormalizeData","includes","Asset","itemsWithDenormalizedFields","updatedFields","_loop","fieldValue","fieldName","updatedArray","arrayItem","linkType","_asset$fields","fieldId","asset","_extends","url","file","console","log","_asset$fields2","_filteredData$items","_denormalizeData","length","index","_item$sys","DataProvider","key","repeatedElement","_entriesData$items","_denormalizeData2","_item$sys2","ContentfulFieldMeta","objectPath","_ctx$data","ContentfulField","_ref6","_useSelector","useSelector","nodeType","dangerouslySetInnerHTML","__html","documentToHtmlString","src","toString","loader","_registerComponent","Component","defaultMeta","registerComponent","registerGlobalContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plasmic-contentful.cjs.production.min.js","sources":["../src/utils.ts","../src/contentful.tsx","../src/index.tsx"],"sourcesContent":["export const searchParameters = [\n {\n value: \"[lt]\",\n label: \"Less than\",\n },\n {\n value: \"[lte]\",\n label: \"Less than or equal\",\n },\n {\n value: \"[gt]\",\n label: \"Greater than\",\n },\n {\n value: \"[gte]\",\n label: \"Greater than or equal \",\n },\n];\n\nexport const uniq = <T>(xs: Array<T>): T[] => Array.from(new Set(xs));\n","import { documentToHtmlString } from \"@contentful/rich-text-html-renderer\";\nimport {\n ComponentMeta,\n DataProvider,\n GlobalContextMeta,\n repeatedElement,\n useSelector,\n} from \"@plasmicapp/host\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport { pascalCase } from \"change-case\";\nimport get from \"dlv\";\nimport React, { ReactNode, useContext } from \"react\";\nimport { searchParameters, uniq } from \"./utils\";\nimport { Entry } from \"./types\";\n\nexport function ensure<T>(x: T | null | undefined): T {\n if (x === null || x === undefined) {\n throw new Error(`Value must not be undefined or null`);\n } else {\n return x;\n }\n}\n\nconst modulePath = \"@plasmicpkgs/plasmic-contentful\";\n\nconst makeDataProviderName = (contentType: string) =>\n `currentContentful${pascalCase(contentType)}Item`;\n\ninterface ContentfulCredentialsProviderProps {\n space: string;\n accessToken: string;\n environment?: string;\n}\n\nconst CredentialsContext = React.createContext<\n ContentfulCredentialsProviderProps | undefined\n>(undefined);\n\nexport const ContentfulCredentialsProviderMeta: GlobalContextMeta<ContentfulCredentialsProviderProps> =\n {\n name: \"Contentful CredentialsProvider\",\n displayName: \"Contentful Credentials Provider\",\n description:\n \"Any client requesting content from the CDA needs to provide an access token that has access to the environment you're requesting content from. Learn how to [get your API key](https://www.contentful.com/developers/docs/references/authentication/).\",\n importName: \"ContentfulCredentialsProvider\",\n importPath: modulePath,\n props: {\n space: {\n type: \"string\",\n displayName: \"Space\",\n description: \"Name of your space\",\n defaultValue: \"lmfbwqzbh93n\",\n },\n accessToken: {\n type: \"string\",\n displayName: \"Access Token \",\n description: \"Access Token\",\n defaultValue: \"aWvf6oSLTuqxKCxSUpokajdQr84hGQFE6zoJG7DVVLg\",\n },\n environment: {\n type: \"string\",\n displayName: \"Environment\",\n defaultValue: \"master\",\n },\n },\n };\n\nexport function ContentfulCredentialsProvider({\n accessToken,\n space,\n environment,\n children,\n}: React.PropsWithChildren<ContentfulCredentialsProviderProps>) {\n return (\n <CredentialsContext.Provider value={{ space, accessToken, environment }}>\n {children}\n </CredentialsContext.Provider>\n );\n}\n\ninterface ContentfulFetcherProps {\n contentType: string;\n children?: ReactNode;\n className?: string;\n limit?: number;\n include?: number;\n order?: string;\n filterField?: string;\n searchParameter?: string;\n filterValue?: string | number;\n noAutoRepeat?: boolean;\n noLayout?: boolean;\n setControlContextData?: (data: {\n types?: { name: string; id: string }[];\n fields?: string[];\n queryOptions?: [];\n }) => void;\n}\n\nexport const ContentfulFetcherMeta: ComponentMeta<ContentfulFetcherProps> = {\n name: \"ContentfulFetcher\",\n displayName: \"Contentful Fetcher\",\n importName: \"ContentfulFetcher\",\n importPath: modulePath,\n providesData: true,\n description:\n \"Fetches Contentful data and repeats content of children once for every row fetched. \",\n defaultStyles: {\n display: \"grid\",\n gridTemplateColumns: \"1fr 1fr 1fr 1fr\",\n gridRowGap: \"8px\",\n gridColumnGap: \"8px\",\n padding: \"8px\",\n maxWidth: \"100%\",\n },\n props: {\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"vbox\",\n styles: {\n padding: \"8px\",\n },\n children: {\n type: \"component\",\n name: \"ContentfulField\",\n },\n },\n },\n contentType: {\n type: \"choice\",\n options: (props, ctx) =>\n ctx?.types?.map((type: any) => ({\n label: type?.name,\n value: type?.sys?.id,\n })) ?? [],\n displayName: \"Content type\",\n description: \"Content type to be queried.\",\n },\n\n filterField: {\n type: \"choice\",\n displayName: \"Filter field\",\n description: \"Field (from Collection) to filter by.\",\n options: (props, ctx) => ctx?.fields ?? [],\n hidden: (props, ctx) => !props.contentType,\n },\n searchParameter: {\n type: \"choice\",\n displayName: \"Search Parameter\",\n description:\n \"Search Parameter to filter by (see Contentful Content Delivery API documentation for details).\",\n options: (props, ctx) => ctx?.queryOptions ?? [],\n hidden: (props, ctx) => !props.filterField,\n },\n filterValue: {\n type: \"string\",\n displayName: \"Filter value\",\n description: \"Value to filter by, should be of filter field type.\",\n hidden: (props, ctx) => !props.searchParameter,\n },\n limit: {\n type: \"number\",\n displayName: \"Limit\",\n description: \"Limit the number of entries that are returned.\",\n },\n include: {\n type: \"number\",\n displayName: \"Linked items depth\",\n defaultValueHint: 1,\n description:\n \"When you have related content (e.g. entries with links to image assets) it's possible to include both search results and related data in a single request. Using the include parameter, you can specify the number of levels to resolve.\",\n max: 10,\n min: 0,\n },\n noAutoRepeat: {\n type: \"boolean\",\n displayName: \"No auto-repeat\",\n description: \"Do not automatically repeat children for every entry.\",\n defaultValue: false,\n },\n noLayout: {\n type: \"boolean\",\n displayName: \"No layout\",\n description:\n \"When set, Contentful Fetcher will not layout its children; instead, the layout set on its parent element will be used. Useful if you want to set flex gap or control container tag type.\",\n defaultValue: false,\n },\n },\n};\n\nexport function ContentfulFetcher({\n filterField,\n filterValue,\n searchParameter,\n noAutoRepeat,\n contentType,\n children,\n className,\n limit,\n include,\n noLayout,\n setControlContextData,\n}: ContentfulFetcherProps) {\n const creds = ensure(useContext(CredentialsContext));\n const cacheKey = JSON.stringify({\n limit,\n filterField,\n filterValue,\n searchParameter,\n creds,\n });\n\n const baseUrl = \"https://cdn.contentful.com\";\n\n const { data: contentTypes } = usePlasmicQueryData<any | null>(\n `${cacheKey}/contentTypes`,\n async () => {\n const resp = await fetch(\n `${baseUrl}/spaces/${creds.space}/environments/${creds.environment}/content_types?access_token=${creds.accessToken}`\n );\n return resp.json();\n }\n );\n setControlContextData?.({\n types: contentTypes?.items ?? [],\n });\n\n const { data: entriesData } = usePlasmicQueryData<any | null>(\n contentType ? `${cacheKey}/${contentType}/entriesData` : null,\n async () => {\n let query = `/spaces/${creds.space}/environments/${creds.environment}/entries?access_token=${creds.accessToken}&content_type=${contentType}`;\n if (limit) {\n query = `${query}&limit=${limit}`;\n }\n if (include) {\n query = `${query}&include=${include}`;\n }\n const resp = await fetch(`${baseUrl}${query}`);\n return resp.json();\n }\n );\n\n const { data: filteredData } = usePlasmicQueryData<any | null>(\n contentType && filterField && filterValue\n ? `${cacheKey}/${contentType}/filteredData`\n : null,\n async () => {\n const queryPath = `/spaces/${creds.space}/environments/${creds.environment}/entries?access_token=${creds.accessToken}&content_type=${contentType}&fields.${filterField}${searchParameter}=${filterValue}`;\n const resp = await fetch(`${baseUrl}${queryPath}`);\n return resp.json();\n }\n );\n\n if (!creds.space || !creds.accessToken) {\n return (\n <div>\n Please specify a valid API Credentials: Space, Access Token and\n Environment\n </div>\n );\n }\n\n if (!contentTypes) {\n return <div>Please configure the Contentful credentials</div>;\n }\n\n if (!entriesData) {\n return <div>Please select a content type</div>;\n }\n\n const filterFields: string[] = entriesData?.items.flatMap((item: any) => {\n const fields = Object.keys(item.fields).filter((field) => {\n const value = get(item, field);\n return typeof value !== \"object\" && field !== \"photos\";\n });\n return fields;\n });\n\n let operators;\n const matchedFields = Object.values(entriesData.items).map((item: any) => {\n const fields = Object.entries(item.fields).find(\n (el) => el[0] === filterField\n );\n return fields;\n });\n\n Object.values(matchedFields)\n .map((model: any) => (Array.isArray(model) ? model : [model]))\n .map((item: any) => {\n if (typeof item[1] === \"number\" && typeof item[1] !== \"object\") {\n operators = searchParameters;\n } else if (\n typeof item[1] !== \"number\" &&\n typeof item[1] !== \"object\" &&\n typeof item[1] === \"string\"\n ) {\n operators = [\n {\n value: \"[match]\",\n label: \"Full text search\",\n },\n ];\n }\n });\n\n setControlContextData?.({\n queryOptions: operators ?? [],\n types: contentTypes?.items ?? [],\n fields: uniq(filterFields ?? []),\n });\n\n if (filterField && !searchParameter) {\n return <div>Please specify a Search Parameter</div>;\n }\n if (searchParameter && !filterValue) {\n return <div>Please specify a Filter value</div>;\n }\n\n function denormalizeData(data: any | null) {\n if (!data?.items || !data?.includes) {\n return data;\n }\n \n const entryMap: { [id: string]: any } = {};\n \n if (data.includes.Entry) {\n data.includes.Entry.forEach((entry: any) => {\n entryMap[entry.sys.id] = entry.fields;\n });\n }\n \n const itemsWithDenormalizedFields: Entry[] = data.items.map((item: any) => {\n const updatedFields: { [fieldName: string]: unknown | unknown[] } = {};\n for (const fieldName in item.fields) {\n const fieldValue = item.fields[fieldName];\n if (Array.isArray(fieldValue)) {\n const updatedArray = fieldValue.map((arrayItem) => {\n if (\n data.includes.Asset &&\n arrayItem &&\n typeof arrayItem === \"object\" &&\n \"sys\" in arrayItem &&\n arrayItem.sys.linkType === \"Asset\"\n ) {\n const fieldId = arrayItem.sys.id;\n const asset = data.includes.Asset.find(\n (asset: any) => asset.sys.id === fieldId\n );\n if (asset) {\n return {\n ...arrayItem,\n url: \"https:\" + asset.fields?.file?.url,\n };\n } else {\n console.log(`Asset URL not found for ID: ${fieldId}`);\n }\n } else if (\n data.includes.Entry &&\n arrayItem &&\n typeof arrayItem === \"object\" &&\n \"sys\" in arrayItem &&\n arrayItem.sys.linkType === \"Entry\"\n ){\n const fieldId = arrayItem.sys.id;\n if (entryMap[fieldId]) {\n updatedFields[fieldName] = {\n ...fieldValue,\n fields: entryMap[fieldId],\n };\n } else {\n console.log(`Entry not found for ID: ${fieldId}`);\n }\n }\n return arrayItem;\n });\n updatedFields[fieldName] = updatedArray;\n } else if (\n data.includes.Asset &&\n fieldValue &&\n typeof fieldValue === \"object\" &&\n \"sys\" in fieldValue &&\n fieldValue.sys.linkType === \"Asset\"\n ) {\n const fieldId = fieldValue.sys.id;\n const asset = data.includes.Asset.find(\n (asset: any) => asset.sys.id === fieldId\n );\n if (asset) {\n updatedFields[fieldName] = {\n ...fieldValue,\n url: \"https:\" + asset.fields?.file?.url,\n };\n } else {\n console.log(`Asset URL not found for ID: ${fieldId}`);\n }\n } else if (\n data.includes.Entry &&\n fieldValue &&\n typeof fieldValue === \"object\" &&\n \"sys\" in fieldValue &&\n fieldValue.sys.linkType === \"Entry\"\n ) {\n const fieldId = fieldValue.sys.id;\n if (entryMap[fieldId]) {\n updatedFields[fieldName] = {\n ...fieldValue,\n fields: entryMap[fieldId],\n };\n } else {\n console.log(`Entry not found for ID: ${fieldId}`);\n }\n } else {\n updatedFields[fieldName] = fieldValue;\n }\n }\n return {\n ...item,\n fields: updatedFields,\n };\n });\n return {\n ...data,\n items: itemsWithDenormalizedFields,\n };\n }\n \n \n let renderedData;\n\n if (filteredData) {\n if (filteredData?.items?.length === 0) {\n return <div className={className}>No published entry found</div>;\n }\n\n renderedData = noAutoRepeat\n ? children\n : denormalizeData(filteredData)?.items?.map(\n (item: any, index: number) => (\n <DataProvider\n key={item?.sys?.id}\n name={\"contentfulItem\"}\n data={item}\n hidden={true}\n >\n <DataProvider\n name={makeDataProviderName(contentType)}\n data={item}\n >\n {repeatedElement(index, children)}\n </DataProvider>\n </DataProvider>\n )\n );\n } else {\n if (entriesData?.items?.length === 0) {\n return <div className={className}>{contentType} is empty</div>;\n }\n\n renderedData = noAutoRepeat\n ? children\n : denormalizeData(entriesData)?.items?.map((item: any, index: number) => (\n <DataProvider\n key={item?.sys?.id}\n name={\"contentfulItem\"}\n data={item}\n hidden={true}\n >\n <DataProvider name={makeDataProviderName(contentType)} data={item}>\n {repeatedElement(index, children)}\n </DataProvider>\n </DataProvider>\n ));\n }\n\n return (\n <DataProvider name=\"contentfulItems\" data={entriesData?.items}>\n {noLayout ? (\n <> {renderedData} </>\n ) : (\n <div className={className}> {renderedData} </div>\n )}\n </DataProvider>\n );\n}\ninterface ContentfulFieldProps {\n className?: string;\n objectPath?: (string | number)[];\n setControlContextData?: (data: { data: object }) => void;\n}\n\nexport const ContentfulFieldMeta: ComponentMeta<ContentfulFieldProps> = {\n name: \"ContentfulField\",\n displayName: \"Contentful Field\",\n importName: \"ContentfulField\",\n importPath: modulePath,\n props: {\n objectPath: {\n type: \"dataSelector\",\n data: (props, ctx) => ctx?.data ?? {},\n displayName: \"Field\",\n description: \"Field to be displayed.\",\n },\n },\n};\n\nexport function ContentfulField({\n className,\n objectPath,\n setControlContextData,\n}: ContentfulFieldProps) {\n const item = useSelector(\"contentfulItem\")?.fields;\n if (!item) {\n return <div>ContentfulField must be used within a ContentfulFetcher </div>;\n }\n setControlContextData?.({\n data: item,\n });\n if (!objectPath) {\n return <div>Please specify a valid path or select a field.</div>;\n }\n\n const data = get(item, objectPath);\n if (\n typeof data === \"object\" &&\n \"nodeType\" in data &&\n data.nodeType === \"document\"\n ) {\n return (\n <div\n className={className}\n dangerouslySetInnerHTML={{ __html: documentToHtmlString(data) }}\n />\n );\n } else if (\n typeof data === \"object\" &&\n data.sys.linkType === \"Asset\" &&\n data.url\n ) {\n return <img className={className} src={data.url} />;\n } else if (!data) {\n return <div>Please specify a valid field.</div>;\n } else if (typeof data !== \"object\") {\n return <div className={className}>{data}</div>;\n } else {\n return <div className={className}>{data.toString()}</div>;\n }\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport {\n ContentfulCredentialsProvider,\n ContentfulCredentialsProviderMeta,\n ContentfulFetcher,\n ContentfulFetcherMeta,\n ContentfulField,\n ContentfulFieldMeta,\n} from \"./contentful\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n}) {\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: ComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n\n if (loader) {\n loader.registerGlobalContext(\n ContentfulCredentialsProvider,\n ContentfulCredentialsProviderMeta\n );\n } else {\n registerGlobalContext(\n ContentfulCredentialsProvider,\n ContentfulCredentialsProviderMeta\n );\n }\n _registerComponent(ContentfulFetcher, ContentfulFetcherMeta);\n _registerComponent(ContentfulField, ContentfulFieldMeta);\n}\n\nexport * from \"./contentful\";\n"],"names":["searchParameters","value","label","ensure","x","Error","modulePath","makeDataProviderName","contentType","pascalCase","CredentialsContext","React","createContext","undefined","ContentfulCredentialsProviderMeta","name","displayName","description","importName","importPath","props","space","type","defaultValue","accessToken","environment","ContentfulCredentialsProvider","_ref","Provider","children","ContentfulFetcherMeta","providesData","defaultStyles","display","gridTemplateColumns","gridRowGap","gridColumnGap","padding","maxWidth","styles","options","ctx","_ctx$types$map","_ctx$types","types","map","_type$sys","sys","id","filterField","_ctx$fields","fields","hidden","searchParameter","_ctx$queryOptions","queryOptions","filterValue","limit","include","defaultValueHint","max","min","noAutoRepeat","noLayout","ContentfulFetcher","_ref2","className","setControlContextData","creds","useContext","cacheKey","JSON","stringify","baseUrl","contentTypes","usePlasmicQueryData","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","fetch","abrupt","sent","json","stop","data","_contentTypes$items","items","entriesData","_callee2","query","_context2","filteredData","_callee3","queryPath","_context3","operators","xs","renderedData","filterFields","flatMap","item","Object","keys","filter","field","get","matchedFields","values","entries","find","el","model","Array","isArray","_operators","_contentTypes$items2","from","Set","denormalizeData","includes","entryMap","Entry","forEach","entry","itemsWithDenormalizedFields","updatedFields","_loop","fieldName","fieldValue","updatedArray","arrayItem","Asset","linkType","_asset$fields","fieldId","asset","_extends","url","file","console","log","_asset$fields2","_filteredData$items","_denormalizeData","length","index","_item$sys","DataProvider","key","repeatedElement","_entriesData$items","_denormalizeData2","_item$sys2","ContentfulFieldMeta","objectPath","_ctx$data","ContentfulField","_ref6","_useSelector","useSelector","nodeType","dangerouslySetInnerHTML","__html","documentToHtmlString","src","toString","loader","_registerComponent","Component","defaultMeta","registerComponent","registerGlobalContext"],"mappings":"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"}
|
|
@@ -655,17 +655,22 @@ function ContentfulFetcher(_ref2) {
|
|
|
655
655
|
return React.createElement("div", null, "Please specify a Filter value");
|
|
656
656
|
}
|
|
657
657
|
function denormalizeData(data) {
|
|
658
|
-
if (!(data != null && data.items) || !(data != null && data.includes)
|
|
659
|
-
return data;
|
|
658
|
+
if (!(data != null && data.items) || !(data != null && data.includes)) {
|
|
659
|
+
return data;
|
|
660
|
+
}
|
|
661
|
+
var entryMap = {};
|
|
662
|
+
if (data.includes.Entry) {
|
|
663
|
+
data.includes.Entry.forEach(function (entry) {
|
|
664
|
+
entryMap[entry.sys.id] = entry.fields;
|
|
665
|
+
});
|
|
660
666
|
}
|
|
661
|
-
|
|
662
667
|
var itemsWithDenormalizedFields = data.items.map(function (item) {
|
|
663
668
|
var updatedFields = {};
|
|
664
|
-
var _loop = function _loop() {
|
|
669
|
+
var _loop = function _loop(fieldName) {
|
|
665
670
|
var fieldValue = item.fields[fieldName];
|
|
666
671
|
if (Array.isArray(fieldValue)) {
|
|
667
672
|
var updatedArray = fieldValue.map(function (arrayItem) {
|
|
668
|
-
if (arrayItem && typeof arrayItem === "object" && "sys" in arrayItem && arrayItem.sys.linkType === "Asset") {
|
|
673
|
+
if (data.includes.Asset && arrayItem && typeof arrayItem === "object" && "sys" in arrayItem && arrayItem.sys.linkType === "Asset") {
|
|
669
674
|
var fieldId = arrayItem.sys.id;
|
|
670
675
|
var asset = data.includes.Asset.find(function (asset) {
|
|
671
676
|
return asset.sys.id === fieldId;
|
|
@@ -678,11 +683,20 @@ function ContentfulFetcher(_ref2) {
|
|
|
678
683
|
} else {
|
|
679
684
|
console.log("Asset URL not found for ID: " + fieldId);
|
|
680
685
|
}
|
|
686
|
+
} else if (data.includes.Entry && arrayItem && typeof arrayItem === "object" && "sys" in arrayItem && arrayItem.sys.linkType === "Entry") {
|
|
687
|
+
var _fieldId = arrayItem.sys.id;
|
|
688
|
+
if (entryMap[_fieldId]) {
|
|
689
|
+
updatedFields[fieldName] = _extends({}, fieldValue, {
|
|
690
|
+
fields: entryMap[_fieldId]
|
|
691
|
+
});
|
|
692
|
+
} else {
|
|
693
|
+
console.log("Entry not found for ID: " + _fieldId);
|
|
694
|
+
}
|
|
681
695
|
}
|
|
682
696
|
return arrayItem;
|
|
683
697
|
});
|
|
684
698
|
updatedFields[fieldName] = updatedArray;
|
|
685
|
-
} else if (fieldValue && typeof fieldValue === "object" && "sys" in fieldValue && fieldValue.sys.linkType === "Asset") {
|
|
699
|
+
} else if (data.includes.Asset && fieldValue && typeof fieldValue === "object" && "sys" in fieldValue && fieldValue.sys.linkType === "Asset") {
|
|
686
700
|
var fieldId = fieldValue.sys.id;
|
|
687
701
|
var asset = data.includes.Asset.find(function (asset) {
|
|
688
702
|
return asset.sys.id === fieldId;
|
|
@@ -695,12 +709,21 @@ function ContentfulFetcher(_ref2) {
|
|
|
695
709
|
} else {
|
|
696
710
|
console.log("Asset URL not found for ID: " + fieldId);
|
|
697
711
|
}
|
|
712
|
+
} else if (data.includes.Entry && fieldValue && typeof fieldValue === "object" && "sys" in fieldValue && fieldValue.sys.linkType === "Entry") {
|
|
713
|
+
var _fieldId2 = fieldValue.sys.id;
|
|
714
|
+
if (entryMap[_fieldId2]) {
|
|
715
|
+
updatedFields[fieldName] = _extends({}, fieldValue, {
|
|
716
|
+
fields: entryMap[_fieldId2]
|
|
717
|
+
});
|
|
718
|
+
} else {
|
|
719
|
+
console.log("Entry not found for ID: " + _fieldId2);
|
|
720
|
+
}
|
|
698
721
|
} else {
|
|
699
722
|
updatedFields[fieldName] = fieldValue;
|
|
700
723
|
}
|
|
701
724
|
};
|
|
702
725
|
for (var fieldName in item.fields) {
|
|
703
|
-
_loop();
|
|
726
|
+
_loop(fieldName);
|
|
704
727
|
}
|
|
705
728
|
return _extends({}, item, {
|
|
706
729
|
fields: updatedFields
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plasmic-contentful.esm.js","sources":["../src/utils.ts","../src/contentful.tsx","../src/index.tsx"],"sourcesContent":["export const searchParameters = [\n {\n value: \"[lt]\",\n label: \"Less than\",\n },\n {\n value: \"[lte]\",\n label: \"Less than or equal\",\n },\n {\n value: \"[gt]\",\n label: \"Greater than\",\n },\n {\n value: \"[gte]\",\n label: \"Greater than or equal \",\n },\n];\n\nexport const uniq = <T>(xs: Array<T>): T[] => Array.from(new Set(xs));\n","import { documentToHtmlString } from \"@contentful/rich-text-html-renderer\";\nimport {\n ComponentMeta,\n DataProvider,\n GlobalContextMeta,\n repeatedElement,\n useSelector,\n} from \"@plasmicapp/host\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport { pascalCase } from \"change-case\";\nimport get from \"dlv\";\nimport React, { ReactNode, useContext } from \"react\";\nimport { searchParameters, uniq } from \"./utils\";\nimport { Entry } from \"./types\";\n\nexport function ensure<T>(x: T | null | undefined): T {\n if (x === null || x === undefined) {\n throw new Error(`Value must not be undefined or null`);\n } else {\n return x;\n }\n}\n\nconst modulePath = \"@plasmicpkgs/plasmic-contentful\";\n\nconst makeDataProviderName = (contentType: string) =>\n `currentContentful${pascalCase(contentType)}Item`;\n\ninterface ContentfulCredentialsProviderProps {\n space: string;\n accessToken: string;\n environment?: string;\n}\n\nconst CredentialsContext = React.createContext<\n ContentfulCredentialsProviderProps | undefined\n>(undefined);\n\nexport const ContentfulCredentialsProviderMeta: GlobalContextMeta<ContentfulCredentialsProviderProps> =\n {\n name: \"Contentful CredentialsProvider\",\n displayName: \"Contentful Credentials Provider\",\n description:\n \"Any client requesting content from the CDA needs to provide an access token that has access to the environment you're requesting content from. Learn how to [get your API key](https://www.contentful.com/developers/docs/references/authentication/).\",\n importName: \"ContentfulCredentialsProvider\",\n importPath: modulePath,\n props: {\n space: {\n type: \"string\",\n displayName: \"Space\",\n description: \"Name of your space\",\n defaultValue: \"lmfbwqzbh93n\",\n },\n accessToken: {\n type: \"string\",\n displayName: \"Access Token \",\n description: \"Access Token\",\n defaultValue: \"aWvf6oSLTuqxKCxSUpokajdQr84hGQFE6zoJG7DVVLg\",\n },\n environment: {\n type: \"string\",\n displayName: \"Environment\",\n defaultValue: \"master\",\n },\n },\n };\n\nexport function ContentfulCredentialsProvider({\n accessToken,\n space,\n environment,\n children,\n}: React.PropsWithChildren<ContentfulCredentialsProviderProps>) {\n return (\n <CredentialsContext.Provider value={{ space, accessToken, environment }}>\n {children}\n </CredentialsContext.Provider>\n );\n}\n\ninterface ContentfulFetcherProps {\n contentType: string;\n children?: ReactNode;\n className?: string;\n limit?: number;\n include?: number;\n order?: string;\n filterField?: string;\n searchParameter?: string;\n filterValue?: string | number;\n noAutoRepeat?: boolean;\n noLayout?: boolean;\n setControlContextData?: (data: {\n types?: { name: string; id: string }[];\n fields?: string[];\n queryOptions?: [];\n }) => void;\n}\n\nexport const ContentfulFetcherMeta: ComponentMeta<ContentfulFetcherProps> = {\n name: \"ContentfulFetcher\",\n displayName: \"Contentful Fetcher\",\n importName: \"ContentfulFetcher\",\n importPath: modulePath,\n providesData: true,\n description:\n \"Fetches Contentful data and repeats content of children once for every row fetched. \",\n defaultStyles: {\n display: \"grid\",\n gridTemplateColumns: \"1fr 1fr 1fr 1fr\",\n gridRowGap: \"8px\",\n gridColumnGap: \"8px\",\n padding: \"8px\",\n maxWidth: \"100%\",\n },\n props: {\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"vbox\",\n styles: {\n padding: \"8px\",\n },\n children: {\n type: \"component\",\n name: \"ContentfulField\",\n },\n },\n },\n contentType: {\n type: \"choice\",\n options: (props, ctx) =>\n ctx?.types?.map((type: any) => ({\n label: type?.name,\n value: type?.sys?.id,\n })) ?? [],\n displayName: \"Content type\",\n description: \"Content type to be queried.\",\n },\n\n filterField: {\n type: \"choice\",\n displayName: \"Filter field\",\n description: \"Field (from Collection) to filter by.\",\n options: (props, ctx) => ctx?.fields ?? [],\n hidden: (props, ctx) => !props.contentType,\n },\n searchParameter: {\n type: \"choice\",\n displayName: \"Search Parameter\",\n description:\n \"Search Parameter to filter by (see Contentful Content Delivery API documentation for details).\",\n options: (props, ctx) => ctx?.queryOptions ?? [],\n hidden: (props, ctx) => !props.filterField,\n },\n filterValue: {\n type: \"string\",\n displayName: \"Filter value\",\n description: \"Value to filter by, should be of filter field type.\",\n hidden: (props, ctx) => !props.searchParameter,\n },\n limit: {\n type: \"number\",\n displayName: \"Limit\",\n description: \"Limit the number of entries that are returned.\",\n },\n include: {\n type: \"number\",\n displayName: \"Linked items depth\",\n defaultValueHint: 1,\n description:\n \"When you have related content (e.g. entries with links to image assets) it's possible to include both search results and related data in a single request. Using the include parameter, you can specify the number of levels to resolve.\",\n max: 10,\n min: 0,\n },\n noAutoRepeat: {\n type: \"boolean\",\n displayName: \"No auto-repeat\",\n description: \"Do not automatically repeat children for every entry.\",\n defaultValue: false,\n },\n noLayout: {\n type: \"boolean\",\n displayName: \"No layout\",\n description:\n \"When set, Contentful Fetcher will not layout its children; instead, the layout set on its parent element will be used. Useful if you want to set flex gap or control container tag type.\",\n defaultValue: false,\n },\n },\n};\n\nexport function ContentfulFetcher({\n filterField,\n filterValue,\n searchParameter,\n noAutoRepeat,\n contentType,\n children,\n className,\n limit,\n include,\n noLayout,\n setControlContextData,\n}: ContentfulFetcherProps) {\n const creds = ensure(useContext(CredentialsContext));\n const cacheKey = JSON.stringify({\n limit,\n filterField,\n filterValue,\n searchParameter,\n creds,\n });\n\n const baseUrl = \"https://cdn.contentful.com\";\n\n const { data: contentTypes } = usePlasmicQueryData<any | null>(\n `${cacheKey}/contentTypes`,\n async () => {\n const resp = await fetch(\n `${baseUrl}/spaces/${creds.space}/environments/${creds.environment}/content_types?access_token=${creds.accessToken}`\n );\n return resp.json();\n }\n );\n setControlContextData?.({\n types: contentTypes?.items ?? [],\n });\n\n const { data: entriesData } = usePlasmicQueryData<any | null>(\n contentType ? `${cacheKey}/${contentType}/entriesData` : null,\n async () => {\n let query = `/spaces/${creds.space}/environments/${creds.environment}/entries?access_token=${creds.accessToken}&content_type=${contentType}`;\n if (limit) {\n query = `${query}&limit=${limit}`;\n }\n if (include) {\n query = `${query}&include=${include}`;\n }\n const resp = await fetch(`${baseUrl}${query}`);\n return resp.json();\n }\n );\n\n const { data: filteredData } = usePlasmicQueryData<any | null>(\n contentType && filterField && filterValue\n ? `${cacheKey}/${contentType}/filteredData`\n : null,\n async () => {\n const queryPath = `/spaces/${creds.space}/environments/${creds.environment}/entries?access_token=${creds.accessToken}&content_type=${contentType}&fields.${filterField}${searchParameter}=${filterValue}`;\n const resp = await fetch(`${baseUrl}${queryPath}`);\n return resp.json();\n }\n );\n\n if (!creds.space || !creds.accessToken) {\n return (\n <div>\n Please specify a valid API Credentials: Space, Access Token and\n Environment\n </div>\n );\n }\n\n if (!contentTypes) {\n return <div>Please configure the Contentful credentials</div>;\n }\n\n if (!entriesData) {\n return <div>Please select a content type</div>;\n }\n\n const filterFields: string[] = entriesData?.items.flatMap((item: any) => {\n const fields = Object.keys(item.fields).filter((field) => {\n const value = get(item, field);\n return typeof value !== \"object\" && field !== \"photos\";\n });\n return fields;\n });\n\n let operators;\n const matchedFields = Object.values(entriesData.items).map((item: any) => {\n const fields = Object.entries(item.fields).find(\n (el) => el[0] === filterField\n );\n return fields;\n });\n\n Object.values(matchedFields)\n .map((model: any) => (Array.isArray(model) ? model : [model]))\n .map((item: any) => {\n if (typeof item[1] === \"number\" && typeof item[1] !== \"object\") {\n operators = searchParameters;\n } else if (\n typeof item[1] !== \"number\" &&\n typeof item[1] !== \"object\" &&\n typeof item[1] === \"string\"\n ) {\n operators = [\n {\n value: \"[match]\",\n label: \"Full text search\",\n },\n ];\n }\n });\n\n setControlContextData?.({\n queryOptions: operators ?? [],\n types: contentTypes?.items ?? [],\n fields: uniq(filterFields ?? []),\n });\n\n if (filterField && !searchParameter) {\n return <div>Please specify a Search Parameter</div>;\n }\n if (searchParameter && !filterValue) {\n return <div>Please specify a Filter value</div>;\n }\n\n function denormalizeData(data: any | null) {\n if (!data?.items || !data?.includes || !data?.includes.Asset) {\n return data; // Return the original data if the required properties are missing\n }\n const itemsWithDenormalizedFields: Entry[] = data.items.map((item: any) => {\n const updatedFields: { [fieldName: string]: unknown | unknown[] } = {};\n\n for (const fieldName in item.fields) {\n const fieldValue = item.fields[fieldName];\n\n if (Array.isArray(fieldValue)) {\n const updatedArray = fieldValue.map((arrayItem) => {\n if (\n arrayItem &&\n typeof arrayItem === \"object\" &&\n \"sys\" in arrayItem &&\n arrayItem.sys.linkType === \"Asset\"\n ) {\n const fieldId = arrayItem.sys.id;\n const asset = data.includes.Asset.find(\n (asset: any) => asset.sys.id === fieldId\n );\n if (asset) {\n return {\n ...arrayItem,\n url: \"https:\" + asset.fields?.file?.url,\n };\n } else {\n console.log(`Asset URL not found for ID: ${fieldId}`);\n }\n }\n return arrayItem;\n });\n updatedFields[fieldName] = updatedArray;\n } else if (\n fieldValue &&\n typeof fieldValue === \"object\" &&\n \"sys\" in fieldValue &&\n fieldValue.sys.linkType === \"Asset\"\n ) {\n const fieldId = fieldValue.sys.id;\n const asset = data.includes.Asset.find(\n (asset: any) => asset.sys.id === fieldId\n );\n if (asset) {\n updatedFields[fieldName] = {\n ...fieldValue,\n url: \"https:\" + asset.fields?.file?.url,\n };\n } else {\n console.log(`Asset URL not found for ID: ${fieldId}`);\n }\n } else {\n updatedFields[fieldName] = fieldValue;\n }\n }\n return {\n ...item,\n fields: updatedFields,\n };\n });\n return {\n ...data,\n items: itemsWithDenormalizedFields,\n };\n }\n\n let renderedData;\n\n if (filteredData) {\n if (filteredData?.items?.length === 0) {\n return <div className={className}>No published entry found</div>;\n }\n\n renderedData = noAutoRepeat\n ? children\n : denormalizeData(filteredData)?.items?.map(\n (item: any, index: number) => (\n <DataProvider\n key={item?.sys?.id}\n name={\"contentfulItem\"}\n data={item}\n hidden={true}\n >\n <DataProvider\n name={makeDataProviderName(contentType)}\n data={item}\n >\n {repeatedElement(index, children)}\n </DataProvider>\n </DataProvider>\n )\n );\n } else {\n if (entriesData?.items?.length === 0) {\n return <div className={className}>{contentType} is empty</div>;\n }\n\n renderedData = noAutoRepeat\n ? children\n : denormalizeData(entriesData)?.items?.map((item: any, index: number) => (\n <DataProvider\n key={item?.sys?.id}\n name={\"contentfulItem\"}\n data={item}\n hidden={true}\n >\n <DataProvider name={makeDataProviderName(contentType)} data={item}>\n {repeatedElement(index, children)}\n </DataProvider>\n </DataProvider>\n ));\n }\n\n return (\n <DataProvider name=\"contentfulItems\" data={entriesData?.items}>\n {noLayout ? (\n <> {renderedData} </>\n ) : (\n <div className={className}> {renderedData} </div>\n )}\n </DataProvider>\n );\n}\ninterface ContentfulFieldProps {\n className?: string;\n objectPath?: (string | number)[];\n setControlContextData?: (data: { data: object }) => void;\n}\n\nexport const ContentfulFieldMeta: ComponentMeta<ContentfulFieldProps> = {\n name: \"ContentfulField\",\n displayName: \"Contentful Field\",\n importName: \"ContentfulField\",\n importPath: modulePath,\n props: {\n objectPath: {\n type: \"dataSelector\",\n data: (props, ctx) => ctx?.data ?? {},\n displayName: \"Field\",\n description: \"Field to be displayed.\",\n },\n },\n};\n\nexport function ContentfulField({\n className,\n objectPath,\n setControlContextData,\n}: ContentfulFieldProps) {\n const item = useSelector(\"contentfulItem\")?.fields;\n if (!item) {\n return <div>ContentfulField must be used within a ContentfulFetcher </div>;\n }\n setControlContextData?.({\n data: item,\n });\n if (!objectPath) {\n return <div>Please specify a valid path or select a field.</div>;\n }\n\n const data = get(item, objectPath);\n if (\n typeof data === \"object\" &&\n \"nodeType\" in data &&\n data.nodeType === \"document\"\n ) {\n return (\n <div\n className={className}\n dangerouslySetInnerHTML={{ __html: documentToHtmlString(data) }}\n />\n );\n } else if (\n typeof data === \"object\" &&\n data.sys.linkType === \"Asset\" &&\n data.url\n ) {\n return <img className={className} src={data.url} />;\n } else if (!data) {\n return <div>Please specify a valid field.</div>;\n } else if (typeof data !== \"object\") {\n return <div className={className}>{data}</div>;\n } else {\n return <div className={className}>{data.toString()}</div>;\n }\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport {\n ContentfulCredentialsProvider,\n ContentfulCredentialsProviderMeta,\n ContentfulFetcher,\n ContentfulFetcherMeta,\n ContentfulField,\n ContentfulFieldMeta,\n} from \"./contentful\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n}) {\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: ComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n\n if (loader) {\n loader.registerGlobalContext(\n ContentfulCredentialsProvider,\n ContentfulCredentialsProviderMeta\n );\n } else {\n registerGlobalContext(\n ContentfulCredentialsProvider,\n ContentfulCredentialsProviderMeta\n );\n }\n _registerComponent(ContentfulFetcher, ContentfulFetcherMeta);\n _registerComponent(ContentfulField, ContentfulFieldMeta);\n}\n\nexport * from \"./contentful\";\n"],"names":["searchParameters","value","label","uniq","xs","Array","from","Set","ensure","x","undefined","Error","modulePath","makeDataProviderName","contentType","pascalCase","CredentialsContext","React","createContext","ContentfulCredentialsProviderMeta","name","displayName","description","importName","importPath","props","space","type","defaultValue","accessToken","environment","ContentfulCredentialsProvider","_ref","children","Provider","ContentfulFetcherMeta","providesData","defaultStyles","display","gridTemplateColumns","gridRowGap","gridColumnGap","padding","maxWidth","styles","options","ctx","_ctx$types$map","_ctx$types","types","map","_type$sys","sys","id","filterField","_ctx$fields","fields","hidden","searchParameter","_ctx$queryOptions","queryOptions","filterValue","limit","include","defaultValueHint","max","min","noAutoRepeat","noLayout","ContentfulFetcher","_ref2","className","setControlContextData","creds","useContext","cacheKey","JSON","stringify","baseUrl","_usePlasmicQueryData","usePlasmicQueryData","_asyncToGenerator","_regeneratorRuntime","mark","_callee","resp","wrap","_callee$","_context","prev","next","fetch","sent","abrupt","json","stop","contentTypes","data","_contentTypes$items","items","_usePlasmicQueryData2","_callee2","query","_callee2$","_context2","entriesData","_usePlasmicQueryData3","_callee3","queryPath","_callee3$","_context3","filteredData","filterFields","flatMap","item","Object","keys","filter","field","get","operators","matchedFields","values","entries","find","el","model","isArray","_operators","_contentTypes$items2","denormalizeData","includes","Asset","itemsWithDenormalizedFields","updatedFields","_loop","fieldValue","fieldName","updatedArray","arrayItem","linkType","fieldId","asset","_asset$fields","_extends","url","file","console","log","_asset$fields2","renderedData","_filteredData$items","_denormalizeData","length","index","_item$sys","DataProvider","key","repeatedElement","_entriesData$items","_denormalizeData2","_item$sys2","ContentfulFieldMeta","objectPath","_ctx$data","ContentfulField","_ref6","_useSelector","useSelector","nodeType","dangerouslySetInnerHTML","__html","documentToHtmlString","src","toString","registerAll","loader","_registerComponent","Component","defaultMeta","registerComponent","registerGlobalContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plasmic-contentful.esm.js","sources":["../src/utils.ts","../src/contentful.tsx","../src/index.tsx"],"sourcesContent":["export const searchParameters = [\n {\n value: \"[lt]\",\n label: \"Less than\",\n },\n {\n value: \"[lte]\",\n label: \"Less than or equal\",\n },\n {\n value: \"[gt]\",\n label: \"Greater than\",\n },\n {\n value: \"[gte]\",\n label: \"Greater than or equal \",\n },\n];\n\nexport const uniq = <T>(xs: Array<T>): T[] => Array.from(new Set(xs));\n","import { documentToHtmlString } from \"@contentful/rich-text-html-renderer\";\nimport {\n ComponentMeta,\n DataProvider,\n GlobalContextMeta,\n repeatedElement,\n useSelector,\n} from \"@plasmicapp/host\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport { pascalCase } from \"change-case\";\nimport get from \"dlv\";\nimport React, { ReactNode, useContext } from \"react\";\nimport { searchParameters, uniq } from \"./utils\";\nimport { Entry } from \"./types\";\n\nexport function ensure<T>(x: T | null | undefined): T {\n if (x === null || x === undefined) {\n throw new Error(`Value must not be undefined or null`);\n } else {\n return x;\n }\n}\n\nconst modulePath = \"@plasmicpkgs/plasmic-contentful\";\n\nconst makeDataProviderName = (contentType: string) =>\n `currentContentful${pascalCase(contentType)}Item`;\n\ninterface ContentfulCredentialsProviderProps {\n space: string;\n accessToken: string;\n environment?: string;\n}\n\nconst CredentialsContext = React.createContext<\n ContentfulCredentialsProviderProps | undefined\n>(undefined);\n\nexport const ContentfulCredentialsProviderMeta: GlobalContextMeta<ContentfulCredentialsProviderProps> =\n {\n name: \"Contentful CredentialsProvider\",\n displayName: \"Contentful Credentials Provider\",\n description:\n \"Any client requesting content from the CDA needs to provide an access token that has access to the environment you're requesting content from. Learn how to [get your API key](https://www.contentful.com/developers/docs/references/authentication/).\",\n importName: \"ContentfulCredentialsProvider\",\n importPath: modulePath,\n props: {\n space: {\n type: \"string\",\n displayName: \"Space\",\n description: \"Name of your space\",\n defaultValue: \"lmfbwqzbh93n\",\n },\n accessToken: {\n type: \"string\",\n displayName: \"Access Token \",\n description: \"Access Token\",\n defaultValue: \"aWvf6oSLTuqxKCxSUpokajdQr84hGQFE6zoJG7DVVLg\",\n },\n environment: {\n type: \"string\",\n displayName: \"Environment\",\n defaultValue: \"master\",\n },\n },\n };\n\nexport function ContentfulCredentialsProvider({\n accessToken,\n space,\n environment,\n children,\n}: React.PropsWithChildren<ContentfulCredentialsProviderProps>) {\n return (\n <CredentialsContext.Provider value={{ space, accessToken, environment }}>\n {children}\n </CredentialsContext.Provider>\n );\n}\n\ninterface ContentfulFetcherProps {\n contentType: string;\n children?: ReactNode;\n className?: string;\n limit?: number;\n include?: number;\n order?: string;\n filterField?: string;\n searchParameter?: string;\n filterValue?: string | number;\n noAutoRepeat?: boolean;\n noLayout?: boolean;\n setControlContextData?: (data: {\n types?: { name: string; id: string }[];\n fields?: string[];\n queryOptions?: [];\n }) => void;\n}\n\nexport const ContentfulFetcherMeta: ComponentMeta<ContentfulFetcherProps> = {\n name: \"ContentfulFetcher\",\n displayName: \"Contentful Fetcher\",\n importName: \"ContentfulFetcher\",\n importPath: modulePath,\n providesData: true,\n description:\n \"Fetches Contentful data and repeats content of children once for every row fetched. \",\n defaultStyles: {\n display: \"grid\",\n gridTemplateColumns: \"1fr 1fr 1fr 1fr\",\n gridRowGap: \"8px\",\n gridColumnGap: \"8px\",\n padding: \"8px\",\n maxWidth: \"100%\",\n },\n props: {\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"vbox\",\n styles: {\n padding: \"8px\",\n },\n children: {\n type: \"component\",\n name: \"ContentfulField\",\n },\n },\n },\n contentType: {\n type: \"choice\",\n options: (props, ctx) =>\n ctx?.types?.map((type: any) => ({\n label: type?.name,\n value: type?.sys?.id,\n })) ?? [],\n displayName: \"Content type\",\n description: \"Content type to be queried.\",\n },\n\n filterField: {\n type: \"choice\",\n displayName: \"Filter field\",\n description: \"Field (from Collection) to filter by.\",\n options: (props, ctx) => ctx?.fields ?? [],\n hidden: (props, ctx) => !props.contentType,\n },\n searchParameter: {\n type: \"choice\",\n displayName: \"Search Parameter\",\n description:\n \"Search Parameter to filter by (see Contentful Content Delivery API documentation for details).\",\n options: (props, ctx) => ctx?.queryOptions ?? [],\n hidden: (props, ctx) => !props.filterField,\n },\n filterValue: {\n type: \"string\",\n displayName: \"Filter value\",\n description: \"Value to filter by, should be of filter field type.\",\n hidden: (props, ctx) => !props.searchParameter,\n },\n limit: {\n type: \"number\",\n displayName: \"Limit\",\n description: \"Limit the number of entries that are returned.\",\n },\n include: {\n type: \"number\",\n displayName: \"Linked items depth\",\n defaultValueHint: 1,\n description:\n \"When you have related content (e.g. entries with links to image assets) it's possible to include both search results and related data in a single request. Using the include parameter, you can specify the number of levels to resolve.\",\n max: 10,\n min: 0,\n },\n noAutoRepeat: {\n type: \"boolean\",\n displayName: \"No auto-repeat\",\n description: \"Do not automatically repeat children for every entry.\",\n defaultValue: false,\n },\n noLayout: {\n type: \"boolean\",\n displayName: \"No layout\",\n description:\n \"When set, Contentful Fetcher will not layout its children; instead, the layout set on its parent element will be used. Useful if you want to set flex gap or control container tag type.\",\n defaultValue: false,\n },\n },\n};\n\nexport function ContentfulFetcher({\n filterField,\n filterValue,\n searchParameter,\n noAutoRepeat,\n contentType,\n children,\n className,\n limit,\n include,\n noLayout,\n setControlContextData,\n}: ContentfulFetcherProps) {\n const creds = ensure(useContext(CredentialsContext));\n const cacheKey = JSON.stringify({\n limit,\n filterField,\n filterValue,\n searchParameter,\n creds,\n });\n\n const baseUrl = \"https://cdn.contentful.com\";\n\n const { data: contentTypes } = usePlasmicQueryData<any | null>(\n `${cacheKey}/contentTypes`,\n async () => {\n const resp = await fetch(\n `${baseUrl}/spaces/${creds.space}/environments/${creds.environment}/content_types?access_token=${creds.accessToken}`\n );\n return resp.json();\n }\n );\n setControlContextData?.({\n types: contentTypes?.items ?? [],\n });\n\n const { data: entriesData } = usePlasmicQueryData<any | null>(\n contentType ? `${cacheKey}/${contentType}/entriesData` : null,\n async () => {\n let query = `/spaces/${creds.space}/environments/${creds.environment}/entries?access_token=${creds.accessToken}&content_type=${contentType}`;\n if (limit) {\n query = `${query}&limit=${limit}`;\n }\n if (include) {\n query = `${query}&include=${include}`;\n }\n const resp = await fetch(`${baseUrl}${query}`);\n return resp.json();\n }\n );\n\n const { data: filteredData } = usePlasmicQueryData<any | null>(\n contentType && filterField && filterValue\n ? `${cacheKey}/${contentType}/filteredData`\n : null,\n async () => {\n const queryPath = `/spaces/${creds.space}/environments/${creds.environment}/entries?access_token=${creds.accessToken}&content_type=${contentType}&fields.${filterField}${searchParameter}=${filterValue}`;\n const resp = await fetch(`${baseUrl}${queryPath}`);\n return resp.json();\n }\n );\n\n if (!creds.space || !creds.accessToken) {\n return (\n <div>\n Please specify a valid API Credentials: Space, Access Token and\n Environment\n </div>\n );\n }\n\n if (!contentTypes) {\n return <div>Please configure the Contentful credentials</div>;\n }\n\n if (!entriesData) {\n return <div>Please select a content type</div>;\n }\n\n const filterFields: string[] = entriesData?.items.flatMap((item: any) => {\n const fields = Object.keys(item.fields).filter((field) => {\n const value = get(item, field);\n return typeof value !== \"object\" && field !== \"photos\";\n });\n return fields;\n });\n\n let operators;\n const matchedFields = Object.values(entriesData.items).map((item: any) => {\n const fields = Object.entries(item.fields).find(\n (el) => el[0] === filterField\n );\n return fields;\n });\n\n Object.values(matchedFields)\n .map((model: any) => (Array.isArray(model) ? model : [model]))\n .map((item: any) => {\n if (typeof item[1] === \"number\" && typeof item[1] !== \"object\") {\n operators = searchParameters;\n } else if (\n typeof item[1] !== \"number\" &&\n typeof item[1] !== \"object\" &&\n typeof item[1] === \"string\"\n ) {\n operators = [\n {\n value: \"[match]\",\n label: \"Full text search\",\n },\n ];\n }\n });\n\n setControlContextData?.({\n queryOptions: operators ?? [],\n types: contentTypes?.items ?? [],\n fields: uniq(filterFields ?? []),\n });\n\n if (filterField && !searchParameter) {\n return <div>Please specify a Search Parameter</div>;\n }\n if (searchParameter && !filterValue) {\n return <div>Please specify a Filter value</div>;\n }\n\n function denormalizeData(data: any | null) {\n if (!data?.items || !data?.includes) {\n return data;\n }\n \n const entryMap: { [id: string]: any } = {};\n \n if (data.includes.Entry) {\n data.includes.Entry.forEach((entry: any) => {\n entryMap[entry.sys.id] = entry.fields;\n });\n }\n \n const itemsWithDenormalizedFields: Entry[] = data.items.map((item: any) => {\n const updatedFields: { [fieldName: string]: unknown | unknown[] } = {};\n for (const fieldName in item.fields) {\n const fieldValue = item.fields[fieldName];\n if (Array.isArray(fieldValue)) {\n const updatedArray = fieldValue.map((arrayItem) => {\n if (\n data.includes.Asset &&\n arrayItem &&\n typeof arrayItem === \"object\" &&\n \"sys\" in arrayItem &&\n arrayItem.sys.linkType === \"Asset\"\n ) {\n const fieldId = arrayItem.sys.id;\n const asset = data.includes.Asset.find(\n (asset: any) => asset.sys.id === fieldId\n );\n if (asset) {\n return {\n ...arrayItem,\n url: \"https:\" + asset.fields?.file?.url,\n };\n } else {\n console.log(`Asset URL not found for ID: ${fieldId}`);\n }\n } else if (\n data.includes.Entry &&\n arrayItem &&\n typeof arrayItem === \"object\" &&\n \"sys\" in arrayItem &&\n arrayItem.sys.linkType === \"Entry\"\n ){\n const fieldId = arrayItem.sys.id;\n if (entryMap[fieldId]) {\n updatedFields[fieldName] = {\n ...fieldValue,\n fields: entryMap[fieldId],\n };\n } else {\n console.log(`Entry not found for ID: ${fieldId}`);\n }\n }\n return arrayItem;\n });\n updatedFields[fieldName] = updatedArray;\n } else if (\n data.includes.Asset &&\n fieldValue &&\n typeof fieldValue === \"object\" &&\n \"sys\" in fieldValue &&\n fieldValue.sys.linkType === \"Asset\"\n ) {\n const fieldId = fieldValue.sys.id;\n const asset = data.includes.Asset.find(\n (asset: any) => asset.sys.id === fieldId\n );\n if (asset) {\n updatedFields[fieldName] = {\n ...fieldValue,\n url: \"https:\" + asset.fields?.file?.url,\n };\n } else {\n console.log(`Asset URL not found for ID: ${fieldId}`);\n }\n } else if (\n data.includes.Entry &&\n fieldValue &&\n typeof fieldValue === \"object\" &&\n \"sys\" in fieldValue &&\n fieldValue.sys.linkType === \"Entry\"\n ) {\n const fieldId = fieldValue.sys.id;\n if (entryMap[fieldId]) {\n updatedFields[fieldName] = {\n ...fieldValue,\n fields: entryMap[fieldId],\n };\n } else {\n console.log(`Entry not found for ID: ${fieldId}`);\n }\n } else {\n updatedFields[fieldName] = fieldValue;\n }\n }\n return {\n ...item,\n fields: updatedFields,\n };\n });\n return {\n ...data,\n items: itemsWithDenormalizedFields,\n };\n }\n \n \n let renderedData;\n\n if (filteredData) {\n if (filteredData?.items?.length === 0) {\n return <div className={className}>No published entry found</div>;\n }\n\n renderedData = noAutoRepeat\n ? children\n : denormalizeData(filteredData)?.items?.map(\n (item: any, index: number) => (\n <DataProvider\n key={item?.sys?.id}\n name={\"contentfulItem\"}\n data={item}\n hidden={true}\n >\n <DataProvider\n name={makeDataProviderName(contentType)}\n data={item}\n >\n {repeatedElement(index, children)}\n </DataProvider>\n </DataProvider>\n )\n );\n } else {\n if (entriesData?.items?.length === 0) {\n return <div className={className}>{contentType} is empty</div>;\n }\n\n renderedData = noAutoRepeat\n ? children\n : denormalizeData(entriesData)?.items?.map((item: any, index: number) => (\n <DataProvider\n key={item?.sys?.id}\n name={\"contentfulItem\"}\n data={item}\n hidden={true}\n >\n <DataProvider name={makeDataProviderName(contentType)} data={item}>\n {repeatedElement(index, children)}\n </DataProvider>\n </DataProvider>\n ));\n }\n\n return (\n <DataProvider name=\"contentfulItems\" data={entriesData?.items}>\n {noLayout ? (\n <> {renderedData} </>\n ) : (\n <div className={className}> {renderedData} </div>\n )}\n </DataProvider>\n );\n}\ninterface ContentfulFieldProps {\n className?: string;\n objectPath?: (string | number)[];\n setControlContextData?: (data: { data: object }) => void;\n}\n\nexport const ContentfulFieldMeta: ComponentMeta<ContentfulFieldProps> = {\n name: \"ContentfulField\",\n displayName: \"Contentful Field\",\n importName: \"ContentfulField\",\n importPath: modulePath,\n props: {\n objectPath: {\n type: \"dataSelector\",\n data: (props, ctx) => ctx?.data ?? {},\n displayName: \"Field\",\n description: \"Field to be displayed.\",\n },\n },\n};\n\nexport function ContentfulField({\n className,\n objectPath,\n setControlContextData,\n}: ContentfulFieldProps) {\n const item = useSelector(\"contentfulItem\")?.fields;\n if (!item) {\n return <div>ContentfulField must be used within a ContentfulFetcher </div>;\n }\n setControlContextData?.({\n data: item,\n });\n if (!objectPath) {\n return <div>Please specify a valid path or select a field.</div>;\n }\n\n const data = get(item, objectPath);\n if (\n typeof data === \"object\" &&\n \"nodeType\" in data &&\n data.nodeType === \"document\"\n ) {\n return (\n <div\n className={className}\n dangerouslySetInnerHTML={{ __html: documentToHtmlString(data) }}\n />\n );\n } else if (\n typeof data === \"object\" &&\n data.sys.linkType === \"Asset\" &&\n data.url\n ) {\n return <img className={className} src={data.url} />;\n } else if (!data) {\n return <div>Please specify a valid field.</div>;\n } else if (typeof data !== \"object\") {\n return <div className={className}>{data}</div>;\n } else {\n return <div className={className}>{data.toString()}</div>;\n }\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport {\n ContentfulCredentialsProvider,\n ContentfulCredentialsProviderMeta,\n ContentfulFetcher,\n ContentfulFetcherMeta,\n ContentfulField,\n ContentfulFieldMeta,\n} from \"./contentful\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n}) {\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: ComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n\n if (loader) {\n loader.registerGlobalContext(\n ContentfulCredentialsProvider,\n ContentfulCredentialsProviderMeta\n );\n } else {\n registerGlobalContext(\n ContentfulCredentialsProvider,\n ContentfulCredentialsProviderMeta\n );\n }\n _registerComponent(ContentfulFetcher, ContentfulFetcherMeta);\n _registerComponent(ContentfulField, ContentfulFieldMeta);\n}\n\nexport * from \"./contentful\";\n"],"names":["searchParameters","value","label","uniq","xs","Array","from","Set","ensure","x","undefined","Error","modulePath","makeDataProviderName","contentType","pascalCase","CredentialsContext","React","createContext","ContentfulCredentialsProviderMeta","name","displayName","description","importName","importPath","props","space","type","defaultValue","accessToken","environment","ContentfulCredentialsProvider","_ref","children","Provider","ContentfulFetcherMeta","providesData","defaultStyles","display","gridTemplateColumns","gridRowGap","gridColumnGap","padding","maxWidth","styles","options","ctx","_ctx$types$map","_ctx$types","types","map","_type$sys","sys","id","filterField","_ctx$fields","fields","hidden","searchParameter","_ctx$queryOptions","queryOptions","filterValue","limit","include","defaultValueHint","max","min","noAutoRepeat","noLayout","ContentfulFetcher","_ref2","className","setControlContextData","creds","useContext","cacheKey","JSON","stringify","baseUrl","_usePlasmicQueryData","usePlasmicQueryData","_asyncToGenerator","_regeneratorRuntime","mark","_callee","resp","wrap","_callee$","_context","prev","next","fetch","sent","abrupt","json","stop","contentTypes","data","_contentTypes$items","items","_usePlasmicQueryData2","_callee2","query","_callee2$","_context2","entriesData","_usePlasmicQueryData3","_callee3","queryPath","_callee3$","_context3","filteredData","filterFields","flatMap","item","Object","keys","filter","field","get","operators","matchedFields","values","entries","find","el","model","isArray","_operators","_contentTypes$items2","denormalizeData","includes","entryMap","Entry","forEach","entry","itemsWithDenormalizedFields","updatedFields","_loop","fieldName","fieldValue","updatedArray","arrayItem","Asset","linkType","fieldId","asset","_asset$fields","_extends","url","file","console","log","_asset$fields2","renderedData","_filteredData$items","_denormalizeData","length","index","_item$sys","DataProvider","key","repeatedElement","_entriesData$items","_denormalizeData2","_item$sys2","ContentfulFieldMeta","objectPath","_ctx$data","ContentfulField","_ref6","_useSelector","useSelector","nodeType","dangerouslySetInnerHTML","__html","documentToHtmlString","src","toString","registerAll","loader","_registerComponent","Component","defaultMeta","registerComponent","registerGlobalContext"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plasmicpkgs/plasmic-contentful",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.102",
|
|
4
4
|
"description": "Plasmic Contentful components.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
}
|
|
35
35
|
],
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@plasmicapp/host": "1.0.
|
|
37
|
+
"@plasmicapp/host": "1.0.165",
|
|
38
38
|
"@plasmicapp/query": "0.1.68",
|
|
39
39
|
"@size-limit/preset-small-lib": "^7.0.8",
|
|
40
40
|
"@types/dlv": "^1.1.2",
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"change-case": "^4.1.2",
|
|
54
54
|
"dlv": "^1.1.3"
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "7fcbeeb029e7a41aaa58fa554034e21886517bbe"
|
|
57
57
|
}
|