@plasmicpkgs/plasmic-contentful 0.0.103 → 0.0.106
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 +1 -0
- 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 +1 -0
- package/dist/plasmic-contentful.esm.js.map +1 -1
- package/package.json +4 -4
|
@@ -546,6 +546,7 @@ function ContentfulFetcher(_ref2) {
|
|
|
546
546
|
setControlContextData = _ref2.setControlContextData;
|
|
547
547
|
var creds = ensure(React.useContext(CredentialsContext));
|
|
548
548
|
var cacheKey = JSON.stringify({
|
|
549
|
+
include: include,
|
|
549
550
|
limit: limit,
|
|
550
551
|
filterField: filterField,
|
|
551
552
|
filterValue: filterValue,
|
|
@@ -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) {\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
|
+
{"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 include,\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",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)};
|
|
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({include:P,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) {\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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"}
|
|
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 include,\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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"}
|
|
@@ -539,6 +539,7 @@ function ContentfulFetcher(_ref2) {
|
|
|
539
539
|
setControlContextData = _ref2.setControlContextData;
|
|
540
540
|
var creds = ensure(useContext(CredentialsContext));
|
|
541
541
|
var cacheKey = JSON.stringify({
|
|
542
|
+
include: include,
|
|
542
543
|
limit: limit,
|
|
543
544
|
filterField: filterField,
|
|
544
545
|
filterValue: filterValue,
|
|
@@ -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) {\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,IAAMA,gBAAgB,GAAG,CAC9B;EACEC,KAAK,EAAE,MAAM;EACbC,KAAK,EAAE;CACR,EACD;EACED,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE;CACR,EACD;EACED,KAAK,EAAE,MAAM;EACbC,KAAK,EAAE;CACR,EACD;EACED,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE;CACR,CACF;AAEM,IAAMC,IAAI,GAAG,SAAPA,IAAIA,CAAOC,EAAY;EAAA,OAAUC,KAAK,CAACC,IAAI,CAAC,IAAIC,GAAG,CAACH,EAAE,CAAC,CAAC;AAAA;;SCJrDI,MAAMA,CAAIC,CAAuB;EAC/C,IAAIA,CAAC,KAAK,IAAI,IAAIA,CAAC,KAAKC,SAAS,EAAE;IACjC,MAAM,IAAIC,KAAK,sCAAsC,CAAC;GACvD,MAAM;IACL,OAAOF,CAAC;;AAEZ;AAEA,IAAMG,UAAU,GAAG,iCAAiC;AAEpD,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIC,WAAmB;EAAA,6BAC3BC,UAAU,CAACD,WAAW,CAAC;AAAA,CAAM;AAQnD,IAAME,kBAAkB,gBAAGC,KAAK,CAACC,aAAa,CAE5CR,SAAS,CAAC;AAEZ,IAAaS,iCAAiC,GAC5C;EACEC,IAAI,EAAE,gCAAgC;EACtCC,WAAW,EAAE,iCAAiC;EAC9CC,WAAW,EACT,wPAAwP;EAC1PC,UAAU,EAAE,+BAA+B;EAC3CC,UAAU,EAAEZ,UAAU;EACtBa,KAAK,EAAE;IACLC,KAAK,EAAE;MACLC,IAAI,EAAE,QAAQ;MACdN,WAAW,EAAE,OAAO;MACpBC,WAAW,EAAE,oBAAoB;MACjCM,YAAY,EAAE;KACf;IACDC,WAAW,EAAE;MACXF,IAAI,EAAE,QAAQ;MACdN,WAAW,EAAE,eAAe;MAC5BC,WAAW,EAAE,cAAc;MAC3BM,YAAY,EAAE;KACf;IACDE,WAAW,EAAE;MACXH,IAAI,EAAE,QAAQ;MACdN,WAAW,EAAE,aAAa;MAC1BO,YAAY,EAAE;;;CAGnB;AAEH,SAAgBG,6BAA6BA,CAAAC,IAAA;MAC3CH,WAAW,GAAAG,IAAA,CAAXH,WAAW;IACXH,KAAK,GAAAM,IAAA,CAALN,KAAK;IACLI,WAAW,GAAAE,IAAA,CAAXF,WAAW;IACXG,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EAER,OACEhB,oBAACD,kBAAkB,CAACkB,QAAQ;IAACjC,KAAK,EAAE;MAAEyB,KAAK,EAALA,KAAK;MAAEG,WAAW,EAAXA,WAAW;MAAEC,WAAW,EAAXA;;KACvDG,QAAQ,CACmB;AAElC;AAqBA,IAAaE,qBAAqB,GAA0C;EAC1Ef,IAAI,EAAE,mBAAmB;EACzBC,WAAW,EAAE,oBAAoB;EACjCE,UAAU,EAAE,mBAAmB;EAC/BC,UAAU,EAAEZ,UAAU;EACtBwB,YAAY,EAAE,IAAI;EAClBd,WAAW,EACT,sFAAsF;EACxFe,aAAa,EAAE;IACbC,OAAO,EAAE,MAAM;IACfC,mBAAmB,EAAE,iBAAiB;IACtCC,UAAU,EAAE,KAAK;IACjBC,aAAa,EAAE,KAAK;IACpBC,OAAO,EAAE,KAAK;IACdC,QAAQ,EAAE;GACX;EACDlB,KAAK,EAAE;IACLQ,QAAQ,EAAE;MACRN,IAAI,EAAE,MAAM;MACZC,YAAY,EAAE;QACZD,IAAI,EAAE,MAAM;QACZiB,MAAM,EAAE;UACNF,OAAO,EAAE;SACV;QACDT,QAAQ,EAAE;UACRN,IAAI,EAAE,WAAW;UACjBP,IAAI,EAAE;;;KAGX;IACDN,WAAW,EAAE;MACXa,IAAI,EAAE,QAAQ;MACdkB,OAAO,EAAE,SAAAA,QAACpB,KAAK,EAAEqB,GAAG;QAAA,IAAAC,cAAA,EAAAC,UAAA;QAAA,QAAAD,cAAA,GAClBD,GAAG,aAAAE,UAAA,GAAHF,GAAG,CAAEG,KAAK,qBAAVD,UAAA,CAAYE,GAAG,CAAC,UAACvB,IAAS;UAAA,IAAAwB,SAAA;UAAA,OAAM;YAC9BjD,KAAK,EAAEyB,IAAI,oBAAJA,IAAI,CAAEP,IAAI;YACjBnB,KAAK,EAAE0B,IAAI,aAAAwB,SAAA,GAAJxB,IAAI,CAAEyB,GAAG,qBAATD,SAAA,CAAWE;WACnB;SAAC,CAAC,YAAAN,cAAA,GAAI,EAAE;;MACX1B,WAAW,EAAE,cAAc;MAC3BC,WAAW,EAAE;KACd;IAEDgC,WAAW,EAAE;MACX3B,IAAI,EAAE,QAAQ;MACdN,WAAW,EAAE,cAAc;MAC3BC,WAAW,EAAE,uCAAuC;MACpDuB,OAAO,EAAE,SAAAA,QAACpB,KAAK,EAAEqB,GAAG;QAAA,IAAAS,WAAA;QAAA,QAAAA,WAAA,GAAKT,GAAG,oBAAHA,GAAG,CAAEU,MAAM,YAAAD,WAAA,GAAI,EAAE;;MAC1CE,MAAM,EAAE,SAAAA,OAAChC,KAAK,EAAEqB,GAAG;QAAA,OAAK,CAACrB,KAAK,CAACX,WAAW;;KAC3C;IACD4C,eAAe,EAAE;MACf/B,IAAI,EAAE,QAAQ;MACdN,WAAW,EAAE,kBAAkB;MAC/BC,WAAW,EACT,gGAAgG;MAClGuB,OAAO,EAAE,SAAAA,QAACpB,KAAK,EAAEqB,GAAG;QAAA,IAAAa,iBAAA;QAAA,QAAAA,iBAAA,GAAKb,GAAG,oBAAHA,GAAG,CAAEc,YAAY,YAAAD,iBAAA,GAAI,EAAE;;MAChDF,MAAM,EAAE,SAAAA,OAAChC,KAAK,EAAEqB,GAAG;QAAA,OAAK,CAACrB,KAAK,CAAC6B,WAAW;;KAC3C;IACDO,WAAW,EAAE;MACXlC,IAAI,EAAE,QAAQ;MACdN,WAAW,EAAE,cAAc;MAC3BC,WAAW,EAAE,qDAAqD;MAClEmC,MAAM,EAAE,SAAAA,OAAChC,KAAK,EAAEqB,GAAG;QAAA,OAAK,CAACrB,KAAK,CAACiC,eAAe;;KAC/C;IACDI,KAAK,EAAE;MACLnC,IAAI,EAAE,QAAQ;MACdN,WAAW,EAAE,OAAO;MACpBC,WAAW,EAAE;KACd;IACDyC,OAAO,EAAE;MACPpC,IAAI,EAAE,QAAQ;MACdN,WAAW,EAAE,oBAAoB;MACjC2C,gBAAgB,EAAE,CAAC;MACnB1C,WAAW,EACT,0OAA0O;MAC5O2C,GAAG,EAAE,EAAE;MACPC,GAAG,EAAE;KACN;IACDC,YAAY,EAAE;MACZxC,IAAI,EAAE,SAAS;MACfN,WAAW,EAAE,gBAAgB;MAC7BC,WAAW,EAAE,uDAAuD;MACpEM,YAAY,EAAE;KACf;IACDwC,QAAQ,EAAE;MACRzC,IAAI,EAAE,SAAS;MACfN,WAAW,EAAE,WAAW;MACxBC,WAAW,EACT,0LAA0L;MAC5LM,YAAY,EAAE;;;CAGnB;AAED,SAAgByC,iBAAiBA,CAAAC,KAAA;;MAC/BhB,WAAW,GAAAgB,KAAA,CAAXhB,WAAW;IACXO,WAAW,GAAAS,KAAA,CAAXT,WAAW;IACXH,eAAe,GAAAY,KAAA,CAAfZ,eAAe;IACfS,YAAY,GAAAG,KAAA,CAAZH,YAAY;IACZrD,WAAW,GAAAwD,KAAA,CAAXxD,WAAW;IACXmB,QAAQ,GAAAqC,KAAA,CAARrC,QAAQ;IACRsC,SAAS,GAAAD,KAAA,CAATC,SAAS;IACTT,KAAK,GAAAQ,KAAA,CAALR,KAAK;IACLC,OAAO,GAAAO,KAAA,CAAPP,OAAO;IACPK,QAAQ,GAAAE,KAAA,CAARF,QAAQ;IACRI,qBAAqB,GAAAF,KAAA,CAArBE,qBAAqB;EAErB,IAAMC,KAAK,GAAGjE,MAAM,CAACkE,UAAU,CAAC1D,kBAAkB,CAAC,CAAC;EACpD,IAAM2D,QAAQ,GAAGC,IAAI,CAACC,SAAS,CAAC;IAC9Bf,KAAK,EAALA,KAAK;IACLR,WAAW,EAAXA,WAAW;IACXO,WAAW,EAAXA,WAAW;IACXH,eAAe,EAAfA,eAAe;IACfe,KAAK,EAALA;GACD,CAAC;EAEF,IAAMK,OAAO,GAAG,4BAA4B;EAE5C,IAAAC,oBAAA,GAA+BC,mBAAmB,CAC7CL,QAAQ,iCAAAM,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CACX,SAAAC;MAAA,IAAAC,IAAA;MAAA,OAAAH,mBAAA,GAAAI,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OACqBC,KAAK,CACnBb,OAAO,gBAAWL,KAAK,CAAC/C,KAAK,sBAAiB+C,KAAK,CAAC3C,WAAW,oCAA+B2C,KAAK,CAAC5C,WAAa,CACrH;UAAA;YAFKwD,IAAI,GAAAG,QAAA,CAAAI,IAAA;YAAA,OAAAJ,QAAA,CAAAK,MAAA,WAGHR,IAAI,CAACS,IAAI,EAAE;UAAA;UAAA;YAAA,OAAAN,QAAA,CAAAO,IAAA;;SAAAX,OAAA;KACnB,GACF;IARaY,YAAY,GAAAjB,oBAAA,CAAlBkB,IAAI;EASZzB,qBAAqB,YAArBA,qBAAqB,CAAG;IACtBvB,KAAK,GAAAiD,mBAAA,GAAEF,YAAY,oBAAZA,YAAY,CAAEG,KAAK,YAAAD,mBAAA,GAAI;GAC/B,CAAC;EAEF,IAAAE,qBAAA,GAA8BpB,mBAAmB,CAC/ClE,WAAW,GAAM6D,QAAQ,SAAI7D,WAAW,oBAAiB,IAAI,eAAAmE,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAC7D,SAAAkB;MAAA,IAAAC,KAAA,EAAAjB,IAAA;MAAA,OAAAH,mBAAA,GAAAI,IAAA,UAAAiB,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAf,IAAA,GAAAe,SAAA,CAAAd,IAAA;UAAA;YACMY,KAAK,gBAAc7B,KAAK,CAAC/C,KAAK,sBAAiB+C,KAAK,CAAC3C,WAAW,8BAAyB2C,KAAK,CAAC5C,WAAW,sBAAiBf,WAAW;YAC1I,IAAIgD,KAAK,EAAE;cACTwC,KAAK,GAAMA,KAAK,eAAUxC,KAAO;;YAEnC,IAAIC,OAAO,EAAE;cACXuC,KAAK,GAAMA,KAAK,iBAAYvC,OAAS;;YACtCyC,SAAA,CAAAd,IAAA;YAAA,OACkBC,KAAK,MAAIb,OAAO,GAAGwB,KAAO,CAAC;UAAA;YAAxCjB,IAAI,GAAAmB,SAAA,CAAAZ,IAAA;YAAA,OAAAY,SAAA,CAAAX,MAAA,WACHR,IAAI,CAACS,IAAI,EAAE;UAAA;UAAA;YAAA,OAAAU,SAAA,CAAAT,IAAA;;SAAAM,QAAA;KACnB,GACF;IAbaI,WAAW,GAAAL,qBAAA,CAAjBH,IAAI;EAeZ,IAAAS,qBAAA,GAA+B1B,mBAAmB,CAChDlE,WAAW,IAAIwC,WAAW,IAAIO,WAAW,GAClCc,QAAQ,SAAI7D,WAAW,qBAC1B,IAAI,eAAAmE,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CACR,SAAAwB;MAAA,IAAAC,SAAA,EAAAvB,IAAA;MAAA,OAAAH,mBAAA,GAAAI,IAAA,UAAAuB,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAArB,IAAA,GAAAqB,SAAA,CAAApB,IAAA;UAAA;YACQkB,SAAS,gBAAcnC,KAAK,CAAC/C,KAAK,sBAAiB+C,KAAK,CAAC3C,WAAW,8BAAyB2C,KAAK,CAAC5C,WAAW,sBAAiBf,WAAW,gBAAWwC,WAAW,GAAGI,eAAe,SAAIG,WAAW;YAAAiD,SAAA,CAAApB,IAAA;YAAA,OACpLC,KAAK,MAAIb,OAAO,GAAG8B,SAAW,CAAC;UAAA;YAA5CvB,IAAI,GAAAyB,SAAA,CAAAlB,IAAA;YAAA,OAAAkB,SAAA,CAAAjB,MAAA,WACHR,IAAI,CAACS,IAAI,EAAE;UAAA;UAAA;YAAA,OAAAgB,SAAA,CAAAf,IAAA;;SAAAY,QAAA;KACnB,GACF;IATaI,YAAY,GAAAL,qBAAA,CAAlBT,IAAI;EAWZ,IAAI,CAACxB,KAAK,CAAC/C,KAAK,IAAI,CAAC+C,KAAK,CAAC5C,WAAW,EAAE;IACtC,OACEZ,+GAGM;;EAIV,IAAI,CAAC+E,YAAY,EAAE;IACjB,OAAO/E,+EAAsD;;EAG/D,IAAI,CAACwF,WAAW,EAAE;IAChB,OAAOxF,gEAAuC;;EAGhD,IAAM+F,YAAY,GAAaP,WAAW,oBAAXA,WAAW,CAAEN,KAAK,CAACc,OAAO,CAAC,UAACC,IAAS;IAClE,IAAM1D,MAAM,GAAG2D,MAAM,CAACC,IAAI,CAACF,IAAI,CAAC1D,MAAM,CAAC,CAAC6D,MAAM,CAAC,UAACC,KAAK;MACnD,IAAMrH,KAAK,GAAGsH,GAAG,CAACL,IAAI,EAAEI,KAAK,CAAC;MAC9B,OAAO,OAAOrH,KAAK,KAAK,QAAQ,IAAIqH,KAAK,KAAK,QAAQ;KACvD,CAAC;IACF,OAAO9D,MAAM;GACd,CAAC;EAEF,IAAIgE,SAAS;EACb,IAAMC,aAAa,GAAGN,MAAM,CAACO,MAAM,CAACjB,WAAW,CAACN,KAAK,CAAC,CAACjD,GAAG,CAAC,UAACgE,IAAS;IACnE,IAAM1D,MAAM,GAAG2D,MAAM,CAACQ,OAAO,CAACT,IAAI,CAAC1D,MAAM,CAAC,CAACoE,IAAI,CAC7C,UAACC,EAAE;MAAA,OAAKA,EAAE,CAAC,CAAC,CAAC,KAAKvE,WAAW;MAC9B;IACD,OAAOE,MAAM;GACd,CAAC;EAEF2D,MAAM,CAACO,MAAM,CAACD,aAAa,CAAC,CACzBvE,GAAG,CAAC,UAAC4E,KAAU;IAAA,OAAMzH,KAAK,CAAC0H,OAAO,CAACD,KAAK,CAAC,GAAGA,KAAK,GAAG,CAACA,KAAK,CAAC;GAAC,CAAC,CAC7D5E,GAAG,CAAC,UAACgE,IAAS;IACb,IAAI,OAAOA,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAOA,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;MAC9DM,SAAS,GAAGxH,gBAAgB;KAC7B,MAAM,IACL,OAAOkH,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAC3B,OAAOA,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAC3B,OAAOA,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAC3B;MACAM,SAAS,GAAG,CACV;QACEvH,KAAK,EAAE,SAAS;QAChBC,KAAK,EAAE;OACR,CACF;;GAEJ,CAAC;EAEJsE,qBAAqB,YAArBA,qBAAqB,CAAG;IACtBZ,YAAY,GAAAoE,UAAA,GAAER,SAAS,YAAAQ,UAAA,GAAI,EAAE;IAC7B/E,KAAK,GAAAgF,oBAAA,GAAEjC,YAAY,oBAAZA,YAAY,CAAEG,KAAK,YAAA8B,oBAAA,GAAI,EAAE;IAChCzE,MAAM,EAAErD,IAAI,CAAC6G,YAAY,WAAZA,YAAY,GAAI,EAAE;GAChC,CAAC;EAEF,IAAI1D,WAAW,IAAI,CAACI,eAAe,EAAE;IACnC,OAAOzC,qEAA4C;;EAErD,IAAIyC,eAAe,IAAI,CAACG,WAAW,EAAE;IACnC,OAAO5C,iEAAwC;;EAGjD,SAASiH,eAAeA,CAACjC,IAAgB;IACvC,IAAI,EAACA,IAAI,YAAJA,IAAI,CAAEE,KAAK,KAAI,EAACF,IAAI,YAAJA,IAAI,CAAEkC,QAAQ,GAAE;MACnC,OAAOlC,IAAI;;IAGb,IAAMmC,QAAQ,GAA0B,EAAE;IAE1C,IAAInC,IAAI,CAACkC,QAAQ,CAACE,KAAK,EAAE;MACvBpC,IAAI,CAACkC,QAAQ,CAACE,KAAK,CAACC,OAAO,CAAC,UAACC,KAAU;QACrCH,QAAQ,CAACG,KAAK,CAACnF,GAAG,CAACC,EAAE,CAAC,GAAGkF,KAAK,CAAC/E,MAAM;OACtC,CAAC;;IAGJ,IAAMgF,2BAA2B,GAAYvC,IAAI,CAACE,KAAK,CAACjD,GAAG,CAAC,UAACgE,IAAS;MACpE,IAAMuB,aAAa,GAAiD,EAAE;MAAC,IAAAC,KAAA,YAAAA,MAAAC,SAAA,EAClC;QACnC,IAAMC,UAAU,GAAG1B,IAAI,CAAC1D,MAAM,CAACmF,SAAS,CAAC;QACzC,IAAItI,KAAK,CAAC0H,OAAO,CAACa,UAAU,CAAC,EAAE;UAC7B,IAAMC,YAAY,GAAGD,UAAU,CAAC1F,GAAG,CAAC,UAAC4F,SAAS;YAC5C,IACE7C,IAAI,CAACkC,QAAQ,CAACY,KAAK,IACnBD,SAAS,IACT,OAAOA,SAAS,KAAK,QAAQ,IAC7B,KAAK,IAAIA,SAAS,IAClBA,SAAS,CAAC1F,GAAG,CAAC4F,QAAQ,KAAK,OAAO,EAClC;cACA,IAAMC,OAAO,GAAGH,SAAS,CAAC1F,GAAG,CAACC,EAAE;cAChC,IAAM6F,KAAK,GAAGjD,IAAI,CAACkC,QAAQ,CAACY,KAAK,CAACnB,IAAI,CACpC,UAACsB,KAAU;gBAAA,OAAKA,KAAK,CAAC9F,GAAG,CAACC,EAAE,KAAK4F,OAAO;gBACzC;cACD,IAAIC,KAAK,EAAE;gBAAA,IAAAC,aAAA;gBACT,OAAAC,QAAA,KACKN,SAAS;kBACZO,GAAG,EAAE,QAAQ,KAAAF,aAAA,GAAGD,KAAK,CAAC1F,MAAM,cAAA2F,aAAA,GAAZA,aAAA,CAAcG,IAAI,qBAAlBH,aAAA,CAAoBE,GAAG;;eAE1C,MAAM;gBACLE,OAAO,CAACC,GAAG,kCAAgCP,OAAS,CAAC;;aAExD,MAAM,IACLhD,IAAI,CAACkC,QAAQ,CAACE,KAAK,IACnBS,SAAS,IACT,OAAOA,SAAS,KAAK,QAAQ,IAC7B,KAAK,IAAIA,SAAS,IAClBA,SAAS,CAAC1F,GAAG,CAAC4F,QAAQ,KAAK,OAAO,EACnC;cACC,IAAMC,QAAO,GAAGH,SAAS,CAAC1F,GAAG,CAACC,EAAE;cAChC,IAAI+E,QAAQ,CAACa,QAAO,CAAC,EAAE;gBACrBR,aAAa,CAACE,SAAS,CAAC,GAAAS,QAAA,KACnBR,UAAU;kBACbpF,MAAM,EAAE4E,QAAQ,CAACa,QAAO;kBACzB;eACF,MAAM;gBACLM,OAAO,CAACC,GAAG,8BAA4BP,QAAS,CAAC;;;YAGnD,OAAOH,SAAS;WACnB,CAAC;UACFL,aAAa,CAACE,SAAS,CAAC,GAAGE,YAAY;SACxC,MAAM,IACL5C,IAAI,CAACkC,QAAQ,CAACY,KAAK,IACnBH,UAAU,IACV,OAAOA,UAAU,KAAK,QAAQ,IAC9B,KAAK,IAAIA,UAAU,IACnBA,UAAU,CAACxF,GAAG,CAAC4F,QAAQ,KAAK,OAAO,EACnC;UACA,IAAMC,OAAO,GAAGL,UAAU,CAACxF,GAAG,CAACC,EAAE;UACjC,IAAM6F,KAAK,GAAGjD,IAAI,CAACkC,QAAQ,CAACY,KAAK,CAACnB,IAAI,CACpC,UAACsB,KAAU;YAAA,OAAKA,KAAK,CAAC9F,GAAG,CAACC,EAAE,KAAK4F,OAAO;YACzC;UACD,IAAIC,KAAK,EAAE;YAAA,IAAAO,cAAA;YACThB,aAAa,CAACE,SAAS,CAAC,GAAAS,QAAA,KACnBR,UAAU;cACbS,GAAG,EAAE,QAAQ,KAAAI,cAAA,GAAGP,KAAK,CAAC1F,MAAM,cAAAiG,cAAA,GAAZA,cAAA,CAAcH,IAAI,qBAAlBG,cAAA,CAAoBJ,GAAG;cACxC;WACF,MAAM;YACLE,OAAO,CAACC,GAAG,kCAAgCP,OAAS,CAAC;;SAExD,MAAM,IACLhD,IAAI,CAACkC,QAAQ,CAACE,KAAK,IACnBO,UAAU,IACV,OAAOA,UAAU,KAAK,QAAQ,IAC9B,KAAK,IAAIA,UAAU,IACnBA,UAAU,CAACxF,GAAG,CAAC4F,QAAQ,KAAK,OAAO,EACnC;UACA,IAAMC,SAAO,GAAGL,UAAU,CAACxF,GAAG,CAACC,EAAE;UACjC,IAAI+E,QAAQ,CAACa,SAAO,CAAC,EAAE;YACrBR,aAAa,CAACE,SAAS,CAAC,GAAAS,QAAA,KACnBR,UAAU;cACbpF,MAAM,EAAE4E,QAAQ,CAACa,SAAO;cACzB;WACF,MAAM;YACLM,OAAO,CAACC,GAAG,8BAA4BP,SAAS,CAAC;;SAEpD,MAAM;UACLR,aAAa,CAACE,SAAS,CAAC,GAAGC,UAAU;;OAExC;MAjFD,KAAK,IAAMD,SAAS,IAAIzB,IAAI,CAAC1D,MAAM;QAAAkF,KAAA,CAAAC,SAAA;;MAkFnC,OAAAS,QAAA,KACKlC,IAAI;QACP1D,MAAM,EAAEiF;;KAEX,CAAC;IACF,OAAAW,QAAA,KACKnD,IAAI;MACPE,KAAK,EAAEqC;;;EAKX,IAAIkB,YAAY;EAEhB,IAAI3C,YAAY,EAAE;IAAA,IAAA4C,mBAAA,EAAAC,gBAAA;IAChB,IAAI,CAAA7C,YAAY,aAAA4C,mBAAA,GAAZ5C,YAAY,CAAEZ,KAAK,qBAAnBwD,mBAAA,CAAqBE,MAAM,MAAK,CAAC,EAAE;MACrC,OAAO5I;QAAKsD,SAAS,EAAEA;oCAAyC;;IAGlEmF,YAAY,GAAGvF,YAAY,GACvBlC,QAAQ,IAAA2H,gBAAA,GACR1B,eAAe,CAACnB,YAAY,CAAC,cAAA6C,gBAAA,GAA7BA,gBAAA,CAA+BzD,KAAK,qBAApCyD,gBAAA,CAAsC1G,GAAG,CACvC,UAACgE,IAAS,EAAE4C,KAAa;MAAA,IAAAC,SAAA;MAAA,OACvB9I,oBAAC+I,YAAY;QACXC,GAAG,EAAE/C,IAAI,aAAA6C,SAAA,GAAJ7C,IAAI,CAAE9D,GAAG,qBAAT2G,SAAA,CAAW1G,EAAE;QAClBjC,IAAI,EAAE,gBAAgB;QACtB6E,IAAI,EAAEiB,IAAI;QACVzD,MAAM,EAAE;SAERxC,oBAAC+I,YAAY;QACX5I,IAAI,EAAEP,oBAAoB,CAACC,WAAW,CAAC;QACvCmF,IAAI,EAAEiB;SAELgD,eAAe,CAACJ,KAAK,EAAE7H,QAAQ,CAAC,CACpB,CACF;KAChB,CACF;GACN,MAAM;IAAA,IAAAkI,kBAAA,EAAAC,iBAAA;IACL,IAAI,CAAA3D,WAAW,aAAA0D,kBAAA,GAAX1D,WAAW,CAAEN,KAAK,qBAAlBgE,kBAAA,CAAoBN,MAAM,MAAK,CAAC,EAAE;MACpC,OAAO5I;QAAKsD,SAAS,EAAEA;SAAYzD,WAAW,cAAgB;;IAGhE4I,YAAY,GAAGvF,YAAY,GACvBlC,QAAQ,IAAAmI,iBAAA,GACRlC,eAAe,CAACzB,WAAW,CAAC,cAAA2D,iBAAA,GAA5BA,iBAAA,CAA8BjE,KAAK,qBAAnCiE,iBAAA,CAAqClH,GAAG,CAAC,UAACgE,IAAS,EAAE4C,KAAa;MAAA,IAAAO,UAAA;MAAA,OAChEpJ,oBAAC+I,YAAY;QACXC,GAAG,EAAE/C,IAAI,aAAAmD,UAAA,GAAJnD,IAAI,CAAE9D,GAAG,qBAATiH,UAAA,CAAWhH,EAAE;QAClBjC,IAAI,EAAE,gBAAgB;QACtB6E,IAAI,EAAEiB,IAAI;QACVzD,MAAM,EAAE;SAERxC,oBAAC+I,YAAY;QAAC5I,IAAI,EAAEP,oBAAoB,CAACC,WAAW,CAAC;QAAEmF,IAAI,EAAEiB;SAC1DgD,eAAe,CAACJ,KAAK,EAAE7H,QAAQ,CAAC,CACpB,CACF;KAChB,CAAC;;EAGR,OACEhB,oBAAC+I,YAAY;IAAC5I,IAAI,EAAC,iBAAiB;IAAC6E,IAAI,EAAEQ,WAAW,oBAAXA,WAAW,CAAEN;KACrD/B,QAAQ,GACPnD,+CAAIyI,YAAY,MAAK,GAErBzI;IAAKsD,SAAS,EAAEA;UAAamF,YAAY,MAC1C,CACY;AAEnB;AAOA,IAAaY,mBAAmB,GAAwC;EACtElJ,IAAI,EAAE,iBAAiB;EACvBC,WAAW,EAAE,kBAAkB;EAC/BE,UAAU,EAAE,iBAAiB;EAC7BC,UAAU,EAAEZ,UAAU;EACtBa,KAAK,EAAE;IACL8I,UAAU,EAAE;MACV5I,IAAI,EAAE,cAAc;MACpBsE,IAAI,EAAE,SAAAA,KAACxE,KAAK,EAAEqB,GAAG;QAAA,IAAA0H,SAAA;QAAA,QAAAA,SAAA,GAAK1H,GAAG,oBAAHA,GAAG,CAAEmD,IAAI,YAAAuE,SAAA,GAAI,EAAE;;MACrCnJ,WAAW,EAAE,OAAO;MACpBC,WAAW,EAAE;;;CAGlB;AAED,SAAgBmJ,eAAeA,CAAAC,KAAA;;MAC7BnG,SAAS,GAAAmG,KAAA,CAATnG,SAAS;IACTgG,UAAU,GAAAG,KAAA,CAAVH,UAAU;IACV/F,qBAAqB,GAAAkG,KAAA,CAArBlG,qBAAqB;EAErB,IAAM0C,IAAI,IAAAyD,YAAA,GAAGC,WAAW,CAAC,gBAAgB,CAAC,qBAA7BD,YAAA,CAA+BnH,MAAM;EAClD,IAAI,CAAC0D,IAAI,EAAE;IACT,OAAOjG,4FAAmE;;EAE5EuD,qBAAqB,YAArBA,qBAAqB,CAAG;IACtByB,IAAI,EAAEiB;GACP,CAAC;EACF,IAAI,CAACqD,UAAU,EAAE;IACf,OAAOtJ,kFAAyD;;EAGlE,IAAMgF,IAAI,GAAGsB,GAAG,CAACL,IAAI,EAAEqD,UAAU,CAAC;EAClC,IACE,OAAOtE,IAAI,KAAK,QAAQ,IACxB,UAAU,IAAIA,IAAI,IAClBA,IAAI,CAAC4E,QAAQ,KAAK,UAAU,EAC5B;IACA,OACE5J;MACEsD,SAAS,EAAEA,SAAS;MACpBuG,uBAAuB,EAAE;QAAEC,MAAM,EAAEC,oBAAoB,CAAC/E,IAAI;;MAC5D;GAEL,MAAM,IACL,OAAOA,IAAI,KAAK,QAAQ,IACxBA,IAAI,CAAC7C,GAAG,CAAC4F,QAAQ,KAAK,OAAO,IAC7B/C,IAAI,CAACoD,GAAG,EACR;IACA,OAAOpI;MAAKsD,SAAS,EAAEA,SAAS;MAAE0G,GAAG,EAAEhF,IAAI,CAACoD;MAAO;GACpD,MAAM,IAAI,CAACpD,IAAI,EAAE;IAChB,OAAOhF,iEAAwC;GAChD,MAAM,IAAI,OAAOgF,IAAI,KAAK,QAAQ,EAAE;IACnC,OAAOhF;MAAKsD,SAAS,EAAEA;OAAY0B,IAAI,CAAO;GAC/C,MAAM;IACL,OAAOhF;MAAKsD,SAAS,EAAEA;OAAY0B,IAAI,CAACiF,QAAQ,EAAE,CAAO;;AAE7D;;SCthBgBC,WAAWA,CAACC,MAG3B;EACC,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CACtBC,SAAY,EACZC,WAAmD;IAEnD,IAAIH,MAAM,EAAE;MACVA,MAAM,CAACI,iBAAiB,CAACF,SAAS,EAAEC,WAAW,CAAC;KACjD,MAAM;MACLC,iBAAiB,CAACF,SAAS,EAAEC,WAAW,CAAC;;GAE5C;EAED,IAAIH,MAAM,EAAE;IACVA,MAAM,CAACK,qBAAqB,CAC1B1J,6BAA6B,EAC7BZ,iCAAiC,CAClC;GACF,MAAM;IACLsK,qBAAqB,CACnB1J,6BAA6B,EAC7BZ,iCAAiC,CAClC;;EAEHkK,kBAAkB,CAAChH,iBAAiB,EAAElC,qBAAqB,CAAC;EAC5DkJ,kBAAkB,CAACZ,eAAe,EAAEH,mBAAmB,CAAC;AAC1D;;;;"}
|
|
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 include,\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,IAAMA,gBAAgB,GAAG,CAC9B;EACEC,KAAK,EAAE,MAAM;EACbC,KAAK,EAAE;CACR,EACD;EACED,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE;CACR,EACD;EACED,KAAK,EAAE,MAAM;EACbC,KAAK,EAAE;CACR,EACD;EACED,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE;CACR,CACF;AAEM,IAAMC,IAAI,GAAG,SAAPA,IAAIA,CAAOC,EAAY;EAAA,OAAUC,KAAK,CAACC,IAAI,CAAC,IAAIC,GAAG,CAACH,EAAE,CAAC,CAAC;AAAA;;SCJrDI,MAAMA,CAAIC,CAAuB;EAC/C,IAAIA,CAAC,KAAK,IAAI,IAAIA,CAAC,KAAKC,SAAS,EAAE;IACjC,MAAM,IAAIC,KAAK,sCAAsC,CAAC;GACvD,MAAM;IACL,OAAOF,CAAC;;AAEZ;AAEA,IAAMG,UAAU,GAAG,iCAAiC;AAEpD,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIC,WAAmB;EAAA,6BAC3BC,UAAU,CAACD,WAAW,CAAC;AAAA,CAAM;AAQnD,IAAME,kBAAkB,gBAAGC,KAAK,CAACC,aAAa,CAE5CR,SAAS,CAAC;AAEZ,IAAaS,iCAAiC,GAC5C;EACEC,IAAI,EAAE,gCAAgC;EACtCC,WAAW,EAAE,iCAAiC;EAC9CC,WAAW,EACT,wPAAwP;EAC1PC,UAAU,EAAE,+BAA+B;EAC3CC,UAAU,EAAEZ,UAAU;EACtBa,KAAK,EAAE;IACLC,KAAK,EAAE;MACLC,IAAI,EAAE,QAAQ;MACdN,WAAW,EAAE,OAAO;MACpBC,WAAW,EAAE,oBAAoB;MACjCM,YAAY,EAAE;KACf;IACDC,WAAW,EAAE;MACXF,IAAI,EAAE,QAAQ;MACdN,WAAW,EAAE,eAAe;MAC5BC,WAAW,EAAE,cAAc;MAC3BM,YAAY,EAAE;KACf;IACDE,WAAW,EAAE;MACXH,IAAI,EAAE,QAAQ;MACdN,WAAW,EAAE,aAAa;MAC1BO,YAAY,EAAE;;;CAGnB;AAEH,SAAgBG,6BAA6BA,CAAAC,IAAA;MAC3CH,WAAW,GAAAG,IAAA,CAAXH,WAAW;IACXH,KAAK,GAAAM,IAAA,CAALN,KAAK;IACLI,WAAW,GAAAE,IAAA,CAAXF,WAAW;IACXG,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EAER,OACEhB,oBAACD,kBAAkB,CAACkB,QAAQ;IAACjC,KAAK,EAAE;MAAEyB,KAAK,EAALA,KAAK;MAAEG,WAAW,EAAXA,WAAW;MAAEC,WAAW,EAAXA;;KACvDG,QAAQ,CACmB;AAElC;AAqBA,IAAaE,qBAAqB,GAA0C;EAC1Ef,IAAI,EAAE,mBAAmB;EACzBC,WAAW,EAAE,oBAAoB;EACjCE,UAAU,EAAE,mBAAmB;EAC/BC,UAAU,EAAEZ,UAAU;EACtBwB,YAAY,EAAE,IAAI;EAClBd,WAAW,EACT,sFAAsF;EACxFe,aAAa,EAAE;IACbC,OAAO,EAAE,MAAM;IACfC,mBAAmB,EAAE,iBAAiB;IACtCC,UAAU,EAAE,KAAK;IACjBC,aAAa,EAAE,KAAK;IACpBC,OAAO,EAAE,KAAK;IACdC,QAAQ,EAAE;GACX;EACDlB,KAAK,EAAE;IACLQ,QAAQ,EAAE;MACRN,IAAI,EAAE,MAAM;MACZC,YAAY,EAAE;QACZD,IAAI,EAAE,MAAM;QACZiB,MAAM,EAAE;UACNF,OAAO,EAAE;SACV;QACDT,QAAQ,EAAE;UACRN,IAAI,EAAE,WAAW;UACjBP,IAAI,EAAE;;;KAGX;IACDN,WAAW,EAAE;MACXa,IAAI,EAAE,QAAQ;MACdkB,OAAO,EAAE,SAAAA,QAACpB,KAAK,EAAEqB,GAAG;QAAA,IAAAC,cAAA,EAAAC,UAAA;QAAA,QAAAD,cAAA,GAClBD,GAAG,aAAAE,UAAA,GAAHF,GAAG,CAAEG,KAAK,qBAAVD,UAAA,CAAYE,GAAG,CAAC,UAACvB,IAAS;UAAA,IAAAwB,SAAA;UAAA,OAAM;YAC9BjD,KAAK,EAAEyB,IAAI,oBAAJA,IAAI,CAAEP,IAAI;YACjBnB,KAAK,EAAE0B,IAAI,aAAAwB,SAAA,GAAJxB,IAAI,CAAEyB,GAAG,qBAATD,SAAA,CAAWE;WACnB;SAAC,CAAC,YAAAN,cAAA,GAAI,EAAE;;MACX1B,WAAW,EAAE,cAAc;MAC3BC,WAAW,EAAE;KACd;IAEDgC,WAAW,EAAE;MACX3B,IAAI,EAAE,QAAQ;MACdN,WAAW,EAAE,cAAc;MAC3BC,WAAW,EAAE,uCAAuC;MACpDuB,OAAO,EAAE,SAAAA,QAACpB,KAAK,EAAEqB,GAAG;QAAA,IAAAS,WAAA;QAAA,QAAAA,WAAA,GAAKT,GAAG,oBAAHA,GAAG,CAAEU,MAAM,YAAAD,WAAA,GAAI,EAAE;;MAC1CE,MAAM,EAAE,SAAAA,OAAChC,KAAK,EAAEqB,GAAG;QAAA,OAAK,CAACrB,KAAK,CAACX,WAAW;;KAC3C;IACD4C,eAAe,EAAE;MACf/B,IAAI,EAAE,QAAQ;MACdN,WAAW,EAAE,kBAAkB;MAC/BC,WAAW,EACT,gGAAgG;MAClGuB,OAAO,EAAE,SAAAA,QAACpB,KAAK,EAAEqB,GAAG;QAAA,IAAAa,iBAAA;QAAA,QAAAA,iBAAA,GAAKb,GAAG,oBAAHA,GAAG,CAAEc,YAAY,YAAAD,iBAAA,GAAI,EAAE;;MAChDF,MAAM,EAAE,SAAAA,OAAChC,KAAK,EAAEqB,GAAG;QAAA,OAAK,CAACrB,KAAK,CAAC6B,WAAW;;KAC3C;IACDO,WAAW,EAAE;MACXlC,IAAI,EAAE,QAAQ;MACdN,WAAW,EAAE,cAAc;MAC3BC,WAAW,EAAE,qDAAqD;MAClEmC,MAAM,EAAE,SAAAA,OAAChC,KAAK,EAAEqB,GAAG;QAAA,OAAK,CAACrB,KAAK,CAACiC,eAAe;;KAC/C;IACDI,KAAK,EAAE;MACLnC,IAAI,EAAE,QAAQ;MACdN,WAAW,EAAE,OAAO;MACpBC,WAAW,EAAE;KACd;IACDyC,OAAO,EAAE;MACPpC,IAAI,EAAE,QAAQ;MACdN,WAAW,EAAE,oBAAoB;MACjC2C,gBAAgB,EAAE,CAAC;MACnB1C,WAAW,EACT,0OAA0O;MAC5O2C,GAAG,EAAE,EAAE;MACPC,GAAG,EAAE;KACN;IACDC,YAAY,EAAE;MACZxC,IAAI,EAAE,SAAS;MACfN,WAAW,EAAE,gBAAgB;MAC7BC,WAAW,EAAE,uDAAuD;MACpEM,YAAY,EAAE;KACf;IACDwC,QAAQ,EAAE;MACRzC,IAAI,EAAE,SAAS;MACfN,WAAW,EAAE,WAAW;MACxBC,WAAW,EACT,0LAA0L;MAC5LM,YAAY,EAAE;;;CAGnB;AAED,SAAgByC,iBAAiBA,CAAAC,KAAA;;MAC/BhB,WAAW,GAAAgB,KAAA,CAAXhB,WAAW;IACXO,WAAW,GAAAS,KAAA,CAAXT,WAAW;IACXH,eAAe,GAAAY,KAAA,CAAfZ,eAAe;IACfS,YAAY,GAAAG,KAAA,CAAZH,YAAY;IACZrD,WAAW,GAAAwD,KAAA,CAAXxD,WAAW;IACXmB,QAAQ,GAAAqC,KAAA,CAARrC,QAAQ;IACRsC,SAAS,GAAAD,KAAA,CAATC,SAAS;IACTT,KAAK,GAAAQ,KAAA,CAALR,KAAK;IACLC,OAAO,GAAAO,KAAA,CAAPP,OAAO;IACPK,QAAQ,GAAAE,KAAA,CAARF,QAAQ;IACRI,qBAAqB,GAAAF,KAAA,CAArBE,qBAAqB;EAErB,IAAMC,KAAK,GAAGjE,MAAM,CAACkE,UAAU,CAAC1D,kBAAkB,CAAC,CAAC;EACpD,IAAM2D,QAAQ,GAAGC,IAAI,CAACC,SAAS,CAAC;IAC9Bd,OAAO,EAAPA,OAAO;IACPD,KAAK,EAALA,KAAK;IACLR,WAAW,EAAXA,WAAW;IACXO,WAAW,EAAXA,WAAW;IACXH,eAAe,EAAfA,eAAe;IACfe,KAAK,EAALA;GACD,CAAC;EAEF,IAAMK,OAAO,GAAG,4BAA4B;EAE5C,IAAAC,oBAAA,GAA+BC,mBAAmB,CAC7CL,QAAQ,iCAAAM,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CACX,SAAAC;MAAA,IAAAC,IAAA;MAAA,OAAAH,mBAAA,GAAAI,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OACqBC,KAAK,CACnBb,OAAO,gBAAWL,KAAK,CAAC/C,KAAK,sBAAiB+C,KAAK,CAAC3C,WAAW,oCAA+B2C,KAAK,CAAC5C,WAAa,CACrH;UAAA;YAFKwD,IAAI,GAAAG,QAAA,CAAAI,IAAA;YAAA,OAAAJ,QAAA,CAAAK,MAAA,WAGHR,IAAI,CAACS,IAAI,EAAE;UAAA;UAAA;YAAA,OAAAN,QAAA,CAAAO,IAAA;;SAAAX,OAAA;KACnB,GACF;IARaY,YAAY,GAAAjB,oBAAA,CAAlBkB,IAAI;EASZzB,qBAAqB,YAArBA,qBAAqB,CAAG;IACtBvB,KAAK,GAAAiD,mBAAA,GAAEF,YAAY,oBAAZA,YAAY,CAAEG,KAAK,YAAAD,mBAAA,GAAI;GAC/B,CAAC;EAEF,IAAAE,qBAAA,GAA8BpB,mBAAmB,CAC/ClE,WAAW,GAAM6D,QAAQ,SAAI7D,WAAW,oBAAiB,IAAI,eAAAmE,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAC7D,SAAAkB;MAAA,IAAAC,KAAA,EAAAjB,IAAA;MAAA,OAAAH,mBAAA,GAAAI,IAAA,UAAAiB,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAf,IAAA,GAAAe,SAAA,CAAAd,IAAA;UAAA;YACMY,KAAK,gBAAc7B,KAAK,CAAC/C,KAAK,sBAAiB+C,KAAK,CAAC3C,WAAW,8BAAyB2C,KAAK,CAAC5C,WAAW,sBAAiBf,WAAW;YAC1I,IAAIgD,KAAK,EAAE;cACTwC,KAAK,GAAMA,KAAK,eAAUxC,KAAO;;YAEnC,IAAIC,OAAO,EAAE;cACXuC,KAAK,GAAMA,KAAK,iBAAYvC,OAAS;;YACtCyC,SAAA,CAAAd,IAAA;YAAA,OACkBC,KAAK,MAAIb,OAAO,GAAGwB,KAAO,CAAC;UAAA;YAAxCjB,IAAI,GAAAmB,SAAA,CAAAZ,IAAA;YAAA,OAAAY,SAAA,CAAAX,MAAA,WACHR,IAAI,CAACS,IAAI,EAAE;UAAA;UAAA;YAAA,OAAAU,SAAA,CAAAT,IAAA;;SAAAM,QAAA;KACnB,GACF;IAbaI,WAAW,GAAAL,qBAAA,CAAjBH,IAAI;EAeZ,IAAAS,qBAAA,GAA+B1B,mBAAmB,CAChDlE,WAAW,IAAIwC,WAAW,IAAIO,WAAW,GAClCc,QAAQ,SAAI7D,WAAW,qBAC1B,IAAI,eAAAmE,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CACR,SAAAwB;MAAA,IAAAC,SAAA,EAAAvB,IAAA;MAAA,OAAAH,mBAAA,GAAAI,IAAA,UAAAuB,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAArB,IAAA,GAAAqB,SAAA,CAAApB,IAAA;UAAA;YACQkB,SAAS,gBAAcnC,KAAK,CAAC/C,KAAK,sBAAiB+C,KAAK,CAAC3C,WAAW,8BAAyB2C,KAAK,CAAC5C,WAAW,sBAAiBf,WAAW,gBAAWwC,WAAW,GAAGI,eAAe,SAAIG,WAAW;YAAAiD,SAAA,CAAApB,IAAA;YAAA,OACpLC,KAAK,MAAIb,OAAO,GAAG8B,SAAW,CAAC;UAAA;YAA5CvB,IAAI,GAAAyB,SAAA,CAAAlB,IAAA;YAAA,OAAAkB,SAAA,CAAAjB,MAAA,WACHR,IAAI,CAACS,IAAI,EAAE;UAAA;UAAA;YAAA,OAAAgB,SAAA,CAAAf,IAAA;;SAAAY,QAAA;KACnB,GACF;IATaI,YAAY,GAAAL,qBAAA,CAAlBT,IAAI;EAWZ,IAAI,CAACxB,KAAK,CAAC/C,KAAK,IAAI,CAAC+C,KAAK,CAAC5C,WAAW,EAAE;IACtC,OACEZ,+GAGM;;EAIV,IAAI,CAAC+E,YAAY,EAAE;IACjB,OAAO/E,+EAAsD;;EAG/D,IAAI,CAACwF,WAAW,EAAE;IAChB,OAAOxF,gEAAuC;;EAGhD,IAAM+F,YAAY,GAAaP,WAAW,oBAAXA,WAAW,CAAEN,KAAK,CAACc,OAAO,CAAC,UAACC,IAAS;IAClE,IAAM1D,MAAM,GAAG2D,MAAM,CAACC,IAAI,CAACF,IAAI,CAAC1D,MAAM,CAAC,CAAC6D,MAAM,CAAC,UAACC,KAAK;MACnD,IAAMrH,KAAK,GAAGsH,GAAG,CAACL,IAAI,EAAEI,KAAK,CAAC;MAC9B,OAAO,OAAOrH,KAAK,KAAK,QAAQ,IAAIqH,KAAK,KAAK,QAAQ;KACvD,CAAC;IACF,OAAO9D,MAAM;GACd,CAAC;EAEF,IAAIgE,SAAS;EACb,IAAMC,aAAa,GAAGN,MAAM,CAACO,MAAM,CAACjB,WAAW,CAACN,KAAK,CAAC,CAACjD,GAAG,CAAC,UAACgE,IAAS;IACnE,IAAM1D,MAAM,GAAG2D,MAAM,CAACQ,OAAO,CAACT,IAAI,CAAC1D,MAAM,CAAC,CAACoE,IAAI,CAC7C,UAACC,EAAE;MAAA,OAAKA,EAAE,CAAC,CAAC,CAAC,KAAKvE,WAAW;MAC9B;IACD,OAAOE,MAAM;GACd,CAAC;EAEF2D,MAAM,CAACO,MAAM,CAACD,aAAa,CAAC,CACzBvE,GAAG,CAAC,UAAC4E,KAAU;IAAA,OAAMzH,KAAK,CAAC0H,OAAO,CAACD,KAAK,CAAC,GAAGA,KAAK,GAAG,CAACA,KAAK,CAAC;GAAC,CAAC,CAC7D5E,GAAG,CAAC,UAACgE,IAAS;IACb,IAAI,OAAOA,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAOA,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;MAC9DM,SAAS,GAAGxH,gBAAgB;KAC7B,MAAM,IACL,OAAOkH,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAC3B,OAAOA,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAC3B,OAAOA,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAC3B;MACAM,SAAS,GAAG,CACV;QACEvH,KAAK,EAAE,SAAS;QAChBC,KAAK,EAAE;OACR,CACF;;GAEJ,CAAC;EAEJsE,qBAAqB,YAArBA,qBAAqB,CAAG;IACtBZ,YAAY,GAAAoE,UAAA,GAAER,SAAS,YAAAQ,UAAA,GAAI,EAAE;IAC7B/E,KAAK,GAAAgF,oBAAA,GAAEjC,YAAY,oBAAZA,YAAY,CAAEG,KAAK,YAAA8B,oBAAA,GAAI,EAAE;IAChCzE,MAAM,EAAErD,IAAI,CAAC6G,YAAY,WAAZA,YAAY,GAAI,EAAE;GAChC,CAAC;EAEF,IAAI1D,WAAW,IAAI,CAACI,eAAe,EAAE;IACnC,OAAOzC,qEAA4C;;EAErD,IAAIyC,eAAe,IAAI,CAACG,WAAW,EAAE;IACnC,OAAO5C,iEAAwC;;EAGjD,SAASiH,eAAeA,CAACjC,IAAgB;IACvC,IAAI,EAACA,IAAI,YAAJA,IAAI,CAAEE,KAAK,KAAI,EAACF,IAAI,YAAJA,IAAI,CAAEkC,QAAQ,GAAE;MACnC,OAAOlC,IAAI;;IAGb,IAAMmC,QAAQ,GAA0B,EAAE;IAE1C,IAAInC,IAAI,CAACkC,QAAQ,CAACE,KAAK,EAAE;MACvBpC,IAAI,CAACkC,QAAQ,CAACE,KAAK,CAACC,OAAO,CAAC,UAACC,KAAU;QACrCH,QAAQ,CAACG,KAAK,CAACnF,GAAG,CAACC,EAAE,CAAC,GAAGkF,KAAK,CAAC/E,MAAM;OACtC,CAAC;;IAGJ,IAAMgF,2BAA2B,GAAYvC,IAAI,CAACE,KAAK,CAACjD,GAAG,CAAC,UAACgE,IAAS;MACpE,IAAMuB,aAAa,GAAiD,EAAE;MAAC,IAAAC,KAAA,YAAAA,MAAAC,SAAA,EAClC;QACnC,IAAMC,UAAU,GAAG1B,IAAI,CAAC1D,MAAM,CAACmF,SAAS,CAAC;QACzC,IAAItI,KAAK,CAAC0H,OAAO,CAACa,UAAU,CAAC,EAAE;UAC7B,IAAMC,YAAY,GAAGD,UAAU,CAAC1F,GAAG,CAAC,UAAC4F,SAAS;YAC5C,IACE7C,IAAI,CAACkC,QAAQ,CAACY,KAAK,IACnBD,SAAS,IACT,OAAOA,SAAS,KAAK,QAAQ,IAC7B,KAAK,IAAIA,SAAS,IAClBA,SAAS,CAAC1F,GAAG,CAAC4F,QAAQ,KAAK,OAAO,EAClC;cACA,IAAMC,OAAO,GAAGH,SAAS,CAAC1F,GAAG,CAACC,EAAE;cAChC,IAAM6F,KAAK,GAAGjD,IAAI,CAACkC,QAAQ,CAACY,KAAK,CAACnB,IAAI,CACpC,UAACsB,KAAU;gBAAA,OAAKA,KAAK,CAAC9F,GAAG,CAACC,EAAE,KAAK4F,OAAO;gBACzC;cACD,IAAIC,KAAK,EAAE;gBAAA,IAAAC,aAAA;gBACT,OAAAC,QAAA,KACKN,SAAS;kBACZO,GAAG,EAAE,QAAQ,KAAAF,aAAA,GAAGD,KAAK,CAAC1F,MAAM,cAAA2F,aAAA,GAAZA,aAAA,CAAcG,IAAI,qBAAlBH,aAAA,CAAoBE,GAAG;;eAE1C,MAAM;gBACLE,OAAO,CAACC,GAAG,kCAAgCP,OAAS,CAAC;;aAExD,MAAM,IACLhD,IAAI,CAACkC,QAAQ,CAACE,KAAK,IACnBS,SAAS,IACT,OAAOA,SAAS,KAAK,QAAQ,IAC7B,KAAK,IAAIA,SAAS,IAClBA,SAAS,CAAC1F,GAAG,CAAC4F,QAAQ,KAAK,OAAO,EACnC;cACC,IAAMC,QAAO,GAAGH,SAAS,CAAC1F,GAAG,CAACC,EAAE;cAChC,IAAI+E,QAAQ,CAACa,QAAO,CAAC,EAAE;gBACrBR,aAAa,CAACE,SAAS,CAAC,GAAAS,QAAA,KACnBR,UAAU;kBACbpF,MAAM,EAAE4E,QAAQ,CAACa,QAAO;kBACzB;eACF,MAAM;gBACLM,OAAO,CAACC,GAAG,8BAA4BP,QAAS,CAAC;;;YAGnD,OAAOH,SAAS;WACnB,CAAC;UACFL,aAAa,CAACE,SAAS,CAAC,GAAGE,YAAY;SACxC,MAAM,IACL5C,IAAI,CAACkC,QAAQ,CAACY,KAAK,IACnBH,UAAU,IACV,OAAOA,UAAU,KAAK,QAAQ,IAC9B,KAAK,IAAIA,UAAU,IACnBA,UAAU,CAACxF,GAAG,CAAC4F,QAAQ,KAAK,OAAO,EACnC;UACA,IAAMC,OAAO,GAAGL,UAAU,CAACxF,GAAG,CAACC,EAAE;UACjC,IAAM6F,KAAK,GAAGjD,IAAI,CAACkC,QAAQ,CAACY,KAAK,CAACnB,IAAI,CACpC,UAACsB,KAAU;YAAA,OAAKA,KAAK,CAAC9F,GAAG,CAACC,EAAE,KAAK4F,OAAO;YACzC;UACD,IAAIC,KAAK,EAAE;YAAA,IAAAO,cAAA;YACThB,aAAa,CAACE,SAAS,CAAC,GAAAS,QAAA,KACnBR,UAAU;cACbS,GAAG,EAAE,QAAQ,KAAAI,cAAA,GAAGP,KAAK,CAAC1F,MAAM,cAAAiG,cAAA,GAAZA,cAAA,CAAcH,IAAI,qBAAlBG,cAAA,CAAoBJ,GAAG;cACxC;WACF,MAAM;YACLE,OAAO,CAACC,GAAG,kCAAgCP,OAAS,CAAC;;SAExD,MAAM,IACLhD,IAAI,CAACkC,QAAQ,CAACE,KAAK,IACnBO,UAAU,IACV,OAAOA,UAAU,KAAK,QAAQ,IAC9B,KAAK,IAAIA,UAAU,IACnBA,UAAU,CAACxF,GAAG,CAAC4F,QAAQ,KAAK,OAAO,EACnC;UACA,IAAMC,SAAO,GAAGL,UAAU,CAACxF,GAAG,CAACC,EAAE;UACjC,IAAI+E,QAAQ,CAACa,SAAO,CAAC,EAAE;YACrBR,aAAa,CAACE,SAAS,CAAC,GAAAS,QAAA,KACnBR,UAAU;cACbpF,MAAM,EAAE4E,QAAQ,CAACa,SAAO;cACzB;WACF,MAAM;YACLM,OAAO,CAACC,GAAG,8BAA4BP,SAAS,CAAC;;SAEpD,MAAM;UACLR,aAAa,CAACE,SAAS,CAAC,GAAGC,UAAU;;OAExC;MAjFD,KAAK,IAAMD,SAAS,IAAIzB,IAAI,CAAC1D,MAAM;QAAAkF,KAAA,CAAAC,SAAA;;MAkFnC,OAAAS,QAAA,KACKlC,IAAI;QACP1D,MAAM,EAAEiF;;KAEX,CAAC;IACF,OAAAW,QAAA,KACKnD,IAAI;MACPE,KAAK,EAAEqC;;;EAKX,IAAIkB,YAAY;EAEhB,IAAI3C,YAAY,EAAE;IAAA,IAAA4C,mBAAA,EAAAC,gBAAA;IAChB,IAAI,CAAA7C,YAAY,aAAA4C,mBAAA,GAAZ5C,YAAY,CAAEZ,KAAK,qBAAnBwD,mBAAA,CAAqBE,MAAM,MAAK,CAAC,EAAE;MACrC,OAAO5I;QAAKsD,SAAS,EAAEA;oCAAyC;;IAGlEmF,YAAY,GAAGvF,YAAY,GACvBlC,QAAQ,IAAA2H,gBAAA,GACR1B,eAAe,CAACnB,YAAY,CAAC,cAAA6C,gBAAA,GAA7BA,gBAAA,CAA+BzD,KAAK,qBAApCyD,gBAAA,CAAsC1G,GAAG,CACvC,UAACgE,IAAS,EAAE4C,KAAa;MAAA,IAAAC,SAAA;MAAA,OACvB9I,oBAAC+I,YAAY;QACXC,GAAG,EAAE/C,IAAI,aAAA6C,SAAA,GAAJ7C,IAAI,CAAE9D,GAAG,qBAAT2G,SAAA,CAAW1G,EAAE;QAClBjC,IAAI,EAAE,gBAAgB;QACtB6E,IAAI,EAAEiB,IAAI;QACVzD,MAAM,EAAE;SAERxC,oBAAC+I,YAAY;QACX5I,IAAI,EAAEP,oBAAoB,CAACC,WAAW,CAAC;QACvCmF,IAAI,EAAEiB;SAELgD,eAAe,CAACJ,KAAK,EAAE7H,QAAQ,CAAC,CACpB,CACF;KAChB,CACF;GACN,MAAM;IAAA,IAAAkI,kBAAA,EAAAC,iBAAA;IACL,IAAI,CAAA3D,WAAW,aAAA0D,kBAAA,GAAX1D,WAAW,CAAEN,KAAK,qBAAlBgE,kBAAA,CAAoBN,MAAM,MAAK,CAAC,EAAE;MACpC,OAAO5I;QAAKsD,SAAS,EAAEA;SAAYzD,WAAW,cAAgB;;IAGhE4I,YAAY,GAAGvF,YAAY,GACvBlC,QAAQ,IAAAmI,iBAAA,GACRlC,eAAe,CAACzB,WAAW,CAAC,cAAA2D,iBAAA,GAA5BA,iBAAA,CAA8BjE,KAAK,qBAAnCiE,iBAAA,CAAqClH,GAAG,CAAC,UAACgE,IAAS,EAAE4C,KAAa;MAAA,IAAAO,UAAA;MAAA,OAChEpJ,oBAAC+I,YAAY;QACXC,GAAG,EAAE/C,IAAI,aAAAmD,UAAA,GAAJnD,IAAI,CAAE9D,GAAG,qBAATiH,UAAA,CAAWhH,EAAE;QAClBjC,IAAI,EAAE,gBAAgB;QACtB6E,IAAI,EAAEiB,IAAI;QACVzD,MAAM,EAAE;SAERxC,oBAAC+I,YAAY;QAAC5I,IAAI,EAAEP,oBAAoB,CAACC,WAAW,CAAC;QAAEmF,IAAI,EAAEiB;SAC1DgD,eAAe,CAACJ,KAAK,EAAE7H,QAAQ,CAAC,CACpB,CACF;KAChB,CAAC;;EAGR,OACEhB,oBAAC+I,YAAY;IAAC5I,IAAI,EAAC,iBAAiB;IAAC6E,IAAI,EAAEQ,WAAW,oBAAXA,WAAW,CAAEN;KACrD/B,QAAQ,GACPnD,+CAAIyI,YAAY,MAAK,GAErBzI;IAAKsD,SAAS,EAAEA;UAAamF,YAAY,MAC1C,CACY;AAEnB;AAOA,IAAaY,mBAAmB,GAAwC;EACtElJ,IAAI,EAAE,iBAAiB;EACvBC,WAAW,EAAE,kBAAkB;EAC/BE,UAAU,EAAE,iBAAiB;EAC7BC,UAAU,EAAEZ,UAAU;EACtBa,KAAK,EAAE;IACL8I,UAAU,EAAE;MACV5I,IAAI,EAAE,cAAc;MACpBsE,IAAI,EAAE,SAAAA,KAACxE,KAAK,EAAEqB,GAAG;QAAA,IAAA0H,SAAA;QAAA,QAAAA,SAAA,GAAK1H,GAAG,oBAAHA,GAAG,CAAEmD,IAAI,YAAAuE,SAAA,GAAI,EAAE;;MACrCnJ,WAAW,EAAE,OAAO;MACpBC,WAAW,EAAE;;;CAGlB;AAED,SAAgBmJ,eAAeA,CAAAC,KAAA;;MAC7BnG,SAAS,GAAAmG,KAAA,CAATnG,SAAS;IACTgG,UAAU,GAAAG,KAAA,CAAVH,UAAU;IACV/F,qBAAqB,GAAAkG,KAAA,CAArBlG,qBAAqB;EAErB,IAAM0C,IAAI,IAAAyD,YAAA,GAAGC,WAAW,CAAC,gBAAgB,CAAC,qBAA7BD,YAAA,CAA+BnH,MAAM;EAClD,IAAI,CAAC0D,IAAI,EAAE;IACT,OAAOjG,4FAAmE;;EAE5EuD,qBAAqB,YAArBA,qBAAqB,CAAG;IACtByB,IAAI,EAAEiB;GACP,CAAC;EACF,IAAI,CAACqD,UAAU,EAAE;IACf,OAAOtJ,kFAAyD;;EAGlE,IAAMgF,IAAI,GAAGsB,GAAG,CAACL,IAAI,EAAEqD,UAAU,CAAC;EAClC,IACE,OAAOtE,IAAI,KAAK,QAAQ,IACxB,UAAU,IAAIA,IAAI,IAClBA,IAAI,CAAC4E,QAAQ,KAAK,UAAU,EAC5B;IACA,OACE5J;MACEsD,SAAS,EAAEA,SAAS;MACpBuG,uBAAuB,EAAE;QAAEC,MAAM,EAAEC,oBAAoB,CAAC/E,IAAI;;MAC5D;GAEL,MAAM,IACL,OAAOA,IAAI,KAAK,QAAQ,IACxBA,IAAI,CAAC7C,GAAG,CAAC4F,QAAQ,KAAK,OAAO,IAC7B/C,IAAI,CAACoD,GAAG,EACR;IACA,OAAOpI;MAAKsD,SAAS,EAAEA,SAAS;MAAE0G,GAAG,EAAEhF,IAAI,CAACoD;MAAO;GACpD,MAAM,IAAI,CAACpD,IAAI,EAAE;IAChB,OAAOhF,iEAAwC;GAChD,MAAM,IAAI,OAAOgF,IAAI,KAAK,QAAQ,EAAE;IACnC,OAAOhF;MAAKsD,SAAS,EAAEA;OAAY0B,IAAI,CAAO;GAC/C,MAAM;IACL,OAAOhF;MAAKsD,SAAS,EAAEA;OAAY0B,IAAI,CAACiF,QAAQ,EAAE,CAAO;;AAE7D;;SCvhBgBC,WAAWA,CAACC,MAG3B;EACC,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CACtBC,SAAY,EACZC,WAAmD;IAEnD,IAAIH,MAAM,EAAE;MACVA,MAAM,CAACI,iBAAiB,CAACF,SAAS,EAAEC,WAAW,CAAC;KACjD,MAAM;MACLC,iBAAiB,CAACF,SAAS,EAAEC,WAAW,CAAC;;GAE5C;EAED,IAAIH,MAAM,EAAE;IACVA,MAAM,CAACK,qBAAqB,CAC1B1J,6BAA6B,EAC7BZ,iCAAiC,CAClC;GACF,MAAM;IACLsK,qBAAqB,CACnB1J,6BAA6B,EAC7BZ,iCAAiC,CAClC;;EAEHkK,kBAAkB,CAAChH,iBAAiB,EAAElC,qBAAqB,CAAC;EAC5DkJ,kBAAkB,CAACZ,eAAe,EAAEH,mBAAmB,CAAC;AAC1D;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plasmicpkgs/plasmic-contentful",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.106",
|
|
4
4
|
"description": "Plasmic Contentful components.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
}
|
|
35
35
|
],
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@plasmicapp/host": "1.0.
|
|
38
|
-
"@plasmicapp/query": "0.1.
|
|
37
|
+
"@plasmicapp/host": "1.0.168",
|
|
38
|
+
"@plasmicapp/query": "0.1.70",
|
|
39
39
|
"@size-limit/preset-small-lib": "^7.0.8",
|
|
40
40
|
"@types/dlv": "^1.1.2",
|
|
41
41
|
"@types/react": "^18.0.27",
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"change-case": "^4.1.2",
|
|
54
54
|
"dlv": "^1.1.3"
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "6e966ef24adb9af472b56a5051faf2b8e6e04f12"
|
|
57
57
|
}
|