@plasmicpkgs/plasmic-contentful 0.0.186 → 0.0.188

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -227,7 +227,7 @@ function ContentfulFetcher({
227
227
  noLayout,
228
228
  setControlContextData
229
229
  }) {
230
- var _a, _b, _c, _d, _e, _f, _g;
230
+ var _a, _b, _c, _d, _e, _f, _g, _h;
231
231
  const creds = ensure(
232
232
  useContext(CredentialsContext),
233
233
  "Could not find context with current credentials"
@@ -242,7 +242,7 @@ function ContentfulFetcher({
242
242
  searchParameter,
243
243
  creds
244
244
  });
245
- const baseUrl = "https://cdn.contentful.com";
245
+ const baseUrl = typeof process !== "undefined" && ((_a = process.env) == null ? void 0 : _a.NEXT_PUBLIC_CONTENTFUL_BASE_URL) || "https://cdn.contentful.com";
246
246
  const { data: contentTypes } = usePlasmicQueryData(
247
247
  `${cacheKey}/contentTypes`,
248
248
  () => __async(this, null, function* () {
@@ -253,7 +253,7 @@ function ContentfulFetcher({
253
253
  })
254
254
  );
255
255
  setControlContextData == null ? void 0 : setControlContextData({
256
- types: (_a = contentTypes == null ? void 0 : contentTypes.items) != null ? _a : []
256
+ types: (_b = contentTypes == null ? void 0 : contentTypes.items) != null ? _b : []
257
257
  });
258
258
  function setOrderField(searchParams) {
259
259
  if (order) {
@@ -342,7 +342,7 @@ function ContentfulFetcher({
342
342
  });
343
343
  setControlContextData == null ? void 0 : setControlContextData({
344
344
  queryOptions: operators != null ? operators : [],
345
- types: (_b = contentTypes == null ? void 0 : contentTypes.items) != null ? _b : [],
345
+ types: (_c = contentTypes == null ? void 0 : contentTypes.items) != null ? _c : [],
346
346
  fields: uniq(filterFields != null ? filterFields : [])
347
347
  });
348
348
  if (filterField) {
@@ -356,10 +356,10 @@ function ContentfulFetcher({
356
356
  let renderedData;
357
357
  const fixedData = entriesData ? denormalizeData(entriesData) : void 0;
358
358
  if (filteredData) {
359
- if (((_c = filteredData == null ? void 0 : filteredData.items) == null ? void 0 : _c.length) === 0) {
359
+ if (((_d = filteredData == null ? void 0 : filteredData.items) == null ? void 0 : _d.length) === 0) {
360
360
  return /* @__PURE__ */ React.createElement("div", { className }, "No published entry found");
361
361
  }
362
- renderedData = noAutoRepeat ? children : (_e = (_d = denormalizeData(filteredData)) == null ? void 0 : _d.items) == null ? void 0 : _e.map(
362
+ renderedData = noAutoRepeat ? children : (_f = (_e = denormalizeData(filteredData)) == null ? void 0 : _e.items) == null ? void 0 : _f.map(
363
363
  (item, index) => {
364
364
  var _a2;
365
365
  return /* @__PURE__ */ React.createElement(
@@ -382,10 +382,10 @@ function ContentfulFetcher({
382
382
  }
383
383
  );
384
384
  } else {
385
- if (((_f = fixedData == null ? void 0 : fixedData.items) == null ? void 0 : _f.length) === 0) {
385
+ if (((_g = fixedData == null ? void 0 : fixedData.items) == null ? void 0 : _g.length) === 0) {
386
386
  return /* @__PURE__ */ React.createElement("div", { className }, contentType, " is empty");
387
387
  }
388
- renderedData = noAutoRepeat ? children : (_g = fixedData == null ? void 0 : fixedData.items) == null ? void 0 : _g.map((item, index) => {
388
+ renderedData = noAutoRepeat ? children : (_h = fixedData == null ? void 0 : fixedData.items) == null ? void 0 : _h.map((item, index) => {
389
389
  var _a2;
390
390
  return /* @__PURE__ */ React.createElement(
391
391
  DataProvider,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.tsx", "../src/contentful.tsx", "../src/utils.ts"],
4
- "sourcesContent": ["import registerComponent, {\n CodeComponentMeta,\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: CodeComponentMeta<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", "import { documentToHtmlString } from \"@contentful/rich-text-html-renderer\";\nimport { DataProvider, repeatedElement, useSelector } from \"@plasmicapp/host\";\nimport { CodeComponentMeta } from \"@plasmicapp/host/registerComponent\";\nimport { GlobalContextMeta } from \"@plasmicapp/host/registerGlobalContext\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport {\n _denormalizeData as denormalizeData,\n _ensure as ensure,\n _uniq as uniq,\n} from \"@plasmicpkgs/contentful\";\nimport { pascalCase } from \"change-case\";\nimport get from \"dlv\";\nimport React, { ReactNode, useContext } from \"react\";\nimport { searchParameters } from \"./utils\";\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 ContentfulControlContextData {\n types?: { name: string; id: string }[];\n fields?: string[];\n queryOptions?: [];\n}\n\ninterface ContentfulFetcherProps {\n contentType: string;\n children?: ReactNode;\n className?: string;\n limit?: number;\n include?: number;\n order?: string;\n reverseOrder?: boolean;\n filterField?: string;\n searchParameter?: string;\n filterValue?: string | number;\n noAutoRepeat?: boolean;\n noLayout?: boolean;\n setControlContextData?: (data: ContentfulControlContextData) => void;\n}\n\nexport const ContentfulFetcherMeta: CodeComponentMeta<ContentfulFetcherProps> =\n {\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) => !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) => !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) => !props.searchParameter,\n },\n order: {\n type: \"choice\",\n displayName: \"Order\",\n description: \"Field that the entries should be ordered by.\",\n options: (_props, ctx) => [\n ...(ctx?.fields ?? []),\n \"sys.createdAt\",\n \"sys.updatedAt\",\n ],\n hidden: (props) => !props.contentType,\n },\n reverseOrder: {\n type: \"boolean\",\n displayName: \"Reverse order\",\n description: \"Reverse the order of the entries.\",\n defaultValue: false,\n hidden: (props) => !props.order,\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 order,\n reverseOrder,\n limit,\n include,\n noLayout,\n setControlContextData,\n}: ContentfulFetcherProps) {\n const creds = ensure(\n useContext(CredentialsContext),\n \"Could not find context with current credentials\"\n );\n const cacheKey = JSON.stringify({\n include,\n order,\n reverseOrder,\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 function setOrderField(searchParams: URLSearchParams) {\n if (order) {\n searchParams.set(\n \"order\",\n `${reverseOrder ? \"-\" : \"\"}${\n order.startsWith(\"sys.\") ? order : `fields.${order}`\n }`\n );\n }\n }\n\n const { data: entriesData } = usePlasmicQueryData<any | null>(\n contentType ? `${cacheKey}/${contentType}/entriesData` : null,\n async () => {\n const path = `/spaces/${creds.space}/environments/${creds.environment}/entries`;\n\n const searchParams = new URLSearchParams();\n searchParams.set(\"access_token\", creds.accessToken);\n searchParams.set(\"content_type\", contentType);\n if (limit) {\n searchParams.set(\"limit\", limit.toString());\n }\n setOrderField(searchParams);\n if (include) {\n searchParams.set(\"include\", include.toString());\n }\n\n const resp = await fetch(`${baseUrl}${path}?${searchParams.toString()}`);\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 path = `/spaces/${creds.space}/environments/${creds.environment}/entries`;\n\n const searchParams = new URLSearchParams();\n searchParams.set(\"access_token\", creds.accessToken);\n searchParams.set(\"content_type\", contentType);\n if (limit) {\n searchParams.set(\"limit\", limit.toString());\n }\n setOrderField(searchParams);\n\n if (include) {\n searchParams.set(\"include\", include.toString());\n }\n\n if (filterField && searchParameter && filterValue) {\n searchParams.set(\n `fields.${filterField}${searchParameter}`,\n filterValue.toString()\n );\n }\n\n const resp = await fetch(`${baseUrl}${path}?${searchParams.toString()}`);\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) {\n if (!searchParameter) {\n return <div>Please specify a Search Parameter</div>;\n }\n if (!filterValue) {\n return <div>Please specify a Filter value</div>;\n }\n }\n\n let renderedData;\n\n const fixedData = entriesData ? denormalizeData(entriesData) : undefined;\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 (fixedData?.items?.length === 0) {\n return <div className={className}>{contentType} is empty</div>;\n }\n\n renderedData = noAutoRepeat\n ? children\n : fixedData?.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 return (\n <DataProvider name=\"contentfulItems\" data={fixedData?.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: CodeComponentMeta<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", "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"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import registerComponent, {\n CodeComponentMeta,\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: CodeComponentMeta<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", "import { documentToHtmlString } from \"@contentful/rich-text-html-renderer\";\nimport { DataProvider, repeatedElement, useSelector } from \"@plasmicapp/host\";\nimport { CodeComponentMeta } from \"@plasmicapp/host/registerComponent\";\nimport { GlobalContextMeta } from \"@plasmicapp/host/registerGlobalContext\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport {\n _denormalizeData as denormalizeData,\n _ensure as ensure,\n _uniq as uniq,\n} from \"@plasmicpkgs/contentful\";\nimport { pascalCase } from \"change-case\";\nimport get from \"dlv\";\nimport React, { ReactNode, useContext } from \"react\";\nimport { searchParameters } from \"./utils\";\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 ContentfulControlContextData {\n types?: { name: string; id: string }[];\n fields?: string[];\n queryOptions?: [];\n}\n\ninterface ContentfulFetcherProps {\n contentType: string;\n children?: ReactNode;\n className?: string;\n limit?: number;\n include?: number;\n order?: string;\n reverseOrder?: boolean;\n filterField?: string;\n searchParameter?: string;\n filterValue?: string | number;\n noAutoRepeat?: boolean;\n noLayout?: boolean;\n setControlContextData?: (data: ContentfulControlContextData) => void;\n}\n\nexport const ContentfulFetcherMeta: CodeComponentMeta<ContentfulFetcherProps> =\n {\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) => !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) => !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) => !props.searchParameter,\n },\n order: {\n type: \"choice\",\n displayName: \"Order\",\n description: \"Field that the entries should be ordered by.\",\n options: (_props, ctx) => [\n ...(ctx?.fields ?? []),\n \"sys.createdAt\",\n \"sys.updatedAt\",\n ],\n hidden: (props) => !props.contentType,\n },\n reverseOrder: {\n type: \"boolean\",\n displayName: \"Reverse order\",\n description: \"Reverse the order of the entries.\",\n defaultValue: false,\n hidden: (props) => !props.order,\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 order,\n reverseOrder,\n limit,\n include,\n noLayout,\n setControlContextData,\n}: ContentfulFetcherProps) {\n const creds = ensure(\n useContext(CredentialsContext),\n \"Could not find context with current credentials\"\n );\n const cacheKey = JSON.stringify({\n include,\n order,\n reverseOrder,\n limit,\n filterField,\n filterValue,\n searchParameter,\n creds,\n });\n\n const baseUrl =\n (typeof process !== \"undefined\" &&\n process.env?.NEXT_PUBLIC_CONTENTFUL_BASE_URL) ||\n \"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 function setOrderField(searchParams: URLSearchParams) {\n if (order) {\n searchParams.set(\n \"order\",\n `${reverseOrder ? \"-\" : \"\"}${\n order.startsWith(\"sys.\") ? order : `fields.${order}`\n }`\n );\n }\n }\n\n const { data: entriesData } = usePlasmicQueryData<any | null>(\n contentType ? `${cacheKey}/${contentType}/entriesData` : null,\n async () => {\n const path = `/spaces/${creds.space}/environments/${creds.environment}/entries`;\n\n const searchParams = new URLSearchParams();\n searchParams.set(\"access_token\", creds.accessToken);\n searchParams.set(\"content_type\", contentType);\n if (limit) {\n searchParams.set(\"limit\", limit.toString());\n }\n setOrderField(searchParams);\n if (include) {\n searchParams.set(\"include\", include.toString());\n }\n\n const resp = await fetch(`${baseUrl}${path}?${searchParams.toString()}`);\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 path = `/spaces/${creds.space}/environments/${creds.environment}/entries`;\n\n const searchParams = new URLSearchParams();\n searchParams.set(\"access_token\", creds.accessToken);\n searchParams.set(\"content_type\", contentType);\n if (limit) {\n searchParams.set(\"limit\", limit.toString());\n }\n setOrderField(searchParams);\n\n if (include) {\n searchParams.set(\"include\", include.toString());\n }\n\n if (filterField && searchParameter && filterValue) {\n searchParams.set(\n `fields.${filterField}${searchParameter}`,\n filterValue.toString()\n );\n }\n\n const resp = await fetch(`${baseUrl}${path}?${searchParams.toString()}`);\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) {\n if (!searchParameter) {\n return <div>Please specify a Search Parameter</div>;\n }\n if (!filterValue) {\n return <div>Please specify a Filter value</div>;\n }\n }\n\n let renderedData;\n\n const fixedData = entriesData ? denormalizeData(entriesData) : undefined;\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 (fixedData?.items?.length === 0) {\n return <div className={className}>{contentType} is empty</div>;\n }\n\n renderedData = noAutoRepeat\n ? children\n : fixedData?.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 return (\n <DataProvider name=\"contentfulItems\" data={fixedData?.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: CodeComponentMeta<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", "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"],
5
+ "mappings": "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",
6
6
  "names": ["_a"]
7
7
  }
package/dist/index.js CHANGED
@@ -262,7 +262,7 @@ function ContentfulFetcher({
262
262
  noLayout,
263
263
  setControlContextData
264
264
  }) {
265
- var _a, _b, _c, _d, _e, _f, _g;
265
+ var _a, _b, _c, _d, _e, _f, _g, _h;
266
266
  const creds = (0, import_contentful._ensure)(
267
267
  (0, import_react.useContext)(CredentialsContext),
268
268
  "Could not find context with current credentials"
@@ -277,7 +277,7 @@ function ContentfulFetcher({
277
277
  searchParameter,
278
278
  creds
279
279
  });
280
- const baseUrl = "https://cdn.contentful.com";
280
+ const baseUrl = typeof process !== "undefined" && ((_a = process.env) == null ? void 0 : _a.NEXT_PUBLIC_CONTENTFUL_BASE_URL) || "https://cdn.contentful.com";
281
281
  const { data: contentTypes } = (0, import_query.usePlasmicQueryData)(
282
282
  `${cacheKey}/contentTypes`,
283
283
  () => __async(this, null, function* () {
@@ -288,7 +288,7 @@ function ContentfulFetcher({
288
288
  })
289
289
  );
290
290
  setControlContextData == null ? void 0 : setControlContextData({
291
- types: (_a = contentTypes == null ? void 0 : contentTypes.items) != null ? _a : []
291
+ types: (_b = contentTypes == null ? void 0 : contentTypes.items) != null ? _b : []
292
292
  });
293
293
  function setOrderField(searchParams) {
294
294
  if (order) {
@@ -377,7 +377,7 @@ function ContentfulFetcher({
377
377
  });
378
378
  setControlContextData == null ? void 0 : setControlContextData({
379
379
  queryOptions: operators != null ? operators : [],
380
- types: (_b = contentTypes == null ? void 0 : contentTypes.items) != null ? _b : [],
380
+ types: (_c = contentTypes == null ? void 0 : contentTypes.items) != null ? _c : [],
381
381
  fields: (0, import_contentful._uniq)(filterFields != null ? filterFields : [])
382
382
  });
383
383
  if (filterField) {
@@ -391,10 +391,10 @@ function ContentfulFetcher({
391
391
  let renderedData;
392
392
  const fixedData = entriesData ? (0, import_contentful._denormalizeData)(entriesData) : void 0;
393
393
  if (filteredData) {
394
- if (((_c = filteredData == null ? void 0 : filteredData.items) == null ? void 0 : _c.length) === 0) {
394
+ if (((_d = filteredData == null ? void 0 : filteredData.items) == null ? void 0 : _d.length) === 0) {
395
395
  return /* @__PURE__ */ import_react.default.createElement("div", { className }, "No published entry found");
396
396
  }
397
- renderedData = noAutoRepeat ? children : (_e = (_d = (0, import_contentful._denormalizeData)(filteredData)) == null ? void 0 : _d.items) == null ? void 0 : _e.map(
397
+ renderedData = noAutoRepeat ? children : (_f = (_e = (0, import_contentful._denormalizeData)(filteredData)) == null ? void 0 : _e.items) == null ? void 0 : _f.map(
398
398
  (item, index) => {
399
399
  var _a2;
400
400
  return /* @__PURE__ */ import_react.default.createElement(
@@ -417,10 +417,10 @@ function ContentfulFetcher({
417
417
  }
418
418
  );
419
419
  } else {
420
- if (((_f = fixedData == null ? void 0 : fixedData.items) == null ? void 0 : _f.length) === 0) {
420
+ if (((_g = fixedData == null ? void 0 : fixedData.items) == null ? void 0 : _g.length) === 0) {
421
421
  return /* @__PURE__ */ import_react.default.createElement("div", { className }, contentType, " is empty");
422
422
  }
423
- renderedData = noAutoRepeat ? children : (_g = fixedData == null ? void 0 : fixedData.items) == null ? void 0 : _g.map((item, index) => {
423
+ renderedData = noAutoRepeat ? children : (_h = fixedData == null ? void 0 : fixedData.items) == null ? void 0 : _h.map((item, index) => {
424
424
  var _a2;
425
425
  return /* @__PURE__ */ import_react.default.createElement(
426
426
  import_host.DataProvider,
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.tsx", "../src/contentful.tsx", "../src/utils.ts"],
4
- "sourcesContent": ["import registerComponent, {\n CodeComponentMeta,\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: CodeComponentMeta<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", "import { documentToHtmlString } from \"@contentful/rich-text-html-renderer\";\nimport { DataProvider, repeatedElement, useSelector } from \"@plasmicapp/host\";\nimport { CodeComponentMeta } from \"@plasmicapp/host/registerComponent\";\nimport { GlobalContextMeta } from \"@plasmicapp/host/registerGlobalContext\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport {\n _denormalizeData as denormalizeData,\n _ensure as ensure,\n _uniq as uniq,\n} from \"@plasmicpkgs/contentful\";\nimport { pascalCase } from \"change-case\";\nimport get from \"dlv\";\nimport React, { ReactNode, useContext } from \"react\";\nimport { searchParameters } from \"./utils\";\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 ContentfulControlContextData {\n types?: { name: string; id: string }[];\n fields?: string[];\n queryOptions?: [];\n}\n\ninterface ContentfulFetcherProps {\n contentType: string;\n children?: ReactNode;\n className?: string;\n limit?: number;\n include?: number;\n order?: string;\n reverseOrder?: boolean;\n filterField?: string;\n searchParameter?: string;\n filterValue?: string | number;\n noAutoRepeat?: boolean;\n noLayout?: boolean;\n setControlContextData?: (data: ContentfulControlContextData) => void;\n}\n\nexport const ContentfulFetcherMeta: CodeComponentMeta<ContentfulFetcherProps> =\n {\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) => !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) => !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) => !props.searchParameter,\n },\n order: {\n type: \"choice\",\n displayName: \"Order\",\n description: \"Field that the entries should be ordered by.\",\n options: (_props, ctx) => [\n ...(ctx?.fields ?? []),\n \"sys.createdAt\",\n \"sys.updatedAt\",\n ],\n hidden: (props) => !props.contentType,\n },\n reverseOrder: {\n type: \"boolean\",\n displayName: \"Reverse order\",\n description: \"Reverse the order of the entries.\",\n defaultValue: false,\n hidden: (props) => !props.order,\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 order,\n reverseOrder,\n limit,\n include,\n noLayout,\n setControlContextData,\n}: ContentfulFetcherProps) {\n const creds = ensure(\n useContext(CredentialsContext),\n \"Could not find context with current credentials\"\n );\n const cacheKey = JSON.stringify({\n include,\n order,\n reverseOrder,\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 function setOrderField(searchParams: URLSearchParams) {\n if (order) {\n searchParams.set(\n \"order\",\n `${reverseOrder ? \"-\" : \"\"}${\n order.startsWith(\"sys.\") ? order : `fields.${order}`\n }`\n );\n }\n }\n\n const { data: entriesData } = usePlasmicQueryData<any | null>(\n contentType ? `${cacheKey}/${contentType}/entriesData` : null,\n async () => {\n const path = `/spaces/${creds.space}/environments/${creds.environment}/entries`;\n\n const searchParams = new URLSearchParams();\n searchParams.set(\"access_token\", creds.accessToken);\n searchParams.set(\"content_type\", contentType);\n if (limit) {\n searchParams.set(\"limit\", limit.toString());\n }\n setOrderField(searchParams);\n if (include) {\n searchParams.set(\"include\", include.toString());\n }\n\n const resp = await fetch(`${baseUrl}${path}?${searchParams.toString()}`);\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 path = `/spaces/${creds.space}/environments/${creds.environment}/entries`;\n\n const searchParams = new URLSearchParams();\n searchParams.set(\"access_token\", creds.accessToken);\n searchParams.set(\"content_type\", contentType);\n if (limit) {\n searchParams.set(\"limit\", limit.toString());\n }\n setOrderField(searchParams);\n\n if (include) {\n searchParams.set(\"include\", include.toString());\n }\n\n if (filterField && searchParameter && filterValue) {\n searchParams.set(\n `fields.${filterField}${searchParameter}`,\n filterValue.toString()\n );\n }\n\n const resp = await fetch(`${baseUrl}${path}?${searchParams.toString()}`);\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) {\n if (!searchParameter) {\n return <div>Please specify a Search Parameter</div>;\n }\n if (!filterValue) {\n return <div>Please specify a Filter value</div>;\n }\n }\n\n let renderedData;\n\n const fixedData = entriesData ? denormalizeData(entriesData) : undefined;\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 (fixedData?.items?.length === 0) {\n return <div className={className}>{contentType} is empty</div>;\n }\n\n renderedData = noAutoRepeat\n ? children\n : fixedData?.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 return (\n <DataProvider name=\"contentfulItems\" data={fixedData?.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: CodeComponentMeta<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", "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"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import registerComponent, {\n CodeComponentMeta,\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: CodeComponentMeta<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", "import { documentToHtmlString } from \"@contentful/rich-text-html-renderer\";\nimport { DataProvider, repeatedElement, useSelector } from \"@plasmicapp/host\";\nimport { CodeComponentMeta } from \"@plasmicapp/host/registerComponent\";\nimport { GlobalContextMeta } from \"@plasmicapp/host/registerGlobalContext\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport {\n _denormalizeData as denormalizeData,\n _ensure as ensure,\n _uniq as uniq,\n} from \"@plasmicpkgs/contentful\";\nimport { pascalCase } from \"change-case\";\nimport get from \"dlv\";\nimport React, { ReactNode, useContext } from \"react\";\nimport { searchParameters } from \"./utils\";\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 ContentfulControlContextData {\n types?: { name: string; id: string }[];\n fields?: string[];\n queryOptions?: [];\n}\n\ninterface ContentfulFetcherProps {\n contentType: string;\n children?: ReactNode;\n className?: string;\n limit?: number;\n include?: number;\n order?: string;\n reverseOrder?: boolean;\n filterField?: string;\n searchParameter?: string;\n filterValue?: string | number;\n noAutoRepeat?: boolean;\n noLayout?: boolean;\n setControlContextData?: (data: ContentfulControlContextData) => void;\n}\n\nexport const ContentfulFetcherMeta: CodeComponentMeta<ContentfulFetcherProps> =\n {\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) => !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) => !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) => !props.searchParameter,\n },\n order: {\n type: \"choice\",\n displayName: \"Order\",\n description: \"Field that the entries should be ordered by.\",\n options: (_props, ctx) => [\n ...(ctx?.fields ?? []),\n \"sys.createdAt\",\n \"sys.updatedAt\",\n ],\n hidden: (props) => !props.contentType,\n },\n reverseOrder: {\n type: \"boolean\",\n displayName: \"Reverse order\",\n description: \"Reverse the order of the entries.\",\n defaultValue: false,\n hidden: (props) => !props.order,\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 order,\n reverseOrder,\n limit,\n include,\n noLayout,\n setControlContextData,\n}: ContentfulFetcherProps) {\n const creds = ensure(\n useContext(CredentialsContext),\n \"Could not find context with current credentials\"\n );\n const cacheKey = JSON.stringify({\n include,\n order,\n reverseOrder,\n limit,\n filterField,\n filterValue,\n searchParameter,\n creds,\n });\n\n const baseUrl =\n (typeof process !== \"undefined\" &&\n process.env?.NEXT_PUBLIC_CONTENTFUL_BASE_URL) ||\n \"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 function setOrderField(searchParams: URLSearchParams) {\n if (order) {\n searchParams.set(\n \"order\",\n `${reverseOrder ? \"-\" : \"\"}${\n order.startsWith(\"sys.\") ? order : `fields.${order}`\n }`\n );\n }\n }\n\n const { data: entriesData } = usePlasmicQueryData<any | null>(\n contentType ? `${cacheKey}/${contentType}/entriesData` : null,\n async () => {\n const path = `/spaces/${creds.space}/environments/${creds.environment}/entries`;\n\n const searchParams = new URLSearchParams();\n searchParams.set(\"access_token\", creds.accessToken);\n searchParams.set(\"content_type\", contentType);\n if (limit) {\n searchParams.set(\"limit\", limit.toString());\n }\n setOrderField(searchParams);\n if (include) {\n searchParams.set(\"include\", include.toString());\n }\n\n const resp = await fetch(`${baseUrl}${path}?${searchParams.toString()}`);\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 path = `/spaces/${creds.space}/environments/${creds.environment}/entries`;\n\n const searchParams = new URLSearchParams();\n searchParams.set(\"access_token\", creds.accessToken);\n searchParams.set(\"content_type\", contentType);\n if (limit) {\n searchParams.set(\"limit\", limit.toString());\n }\n setOrderField(searchParams);\n\n if (include) {\n searchParams.set(\"include\", include.toString());\n }\n\n if (filterField && searchParameter && filterValue) {\n searchParams.set(\n `fields.${filterField}${searchParameter}`,\n filterValue.toString()\n );\n }\n\n const resp = await fetch(`${baseUrl}${path}?${searchParams.toString()}`);\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) {\n if (!searchParameter) {\n return <div>Please specify a Search Parameter</div>;\n }\n if (!filterValue) {\n return <div>Please specify a Filter value</div>;\n }\n }\n\n let renderedData;\n\n const fixedData = entriesData ? denormalizeData(entriesData) : undefined;\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 (fixedData?.items?.length === 0) {\n return <div className={className}>{contentType} is empty</div>;\n }\n\n renderedData = noAutoRepeat\n ? children\n : fixedData?.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 return (\n <DataProvider name=\"contentfulItems\" data={fixedData?.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: CodeComponentMeta<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", "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"],
5
+ "mappings": "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",
6
6
  "names": ["React", "_a", "ensure", "get", "uniq", "denormalizeData", "registerComponent", "registerGlobalContext"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plasmicpkgs/plasmic-contentful",
3
- "version": "0.0.186",
3
+ "version": "0.0.188",
4
4
  "description": "Plasmic Contentful components.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -42,9 +42,9 @@
42
42
  }
43
43
  ],
44
44
  "devDependencies": {
45
- "@plasmicapp/host": "1.0.237",
45
+ "@plasmicapp/host": "1.0.238",
46
46
  "@plasmicapp/query": "0.1.83",
47
- "@plasmicpkgs/contentful": "0.0.10",
47
+ "@plasmicpkgs/contentful": "0.0.12",
48
48
  "@types/dlv": "^1.1.2",
49
49
  "@types/react": "^18",
50
50
  "@types/react-dom": "^18",
@@ -62,5 +62,5 @@
62
62
  "@plasmicapp/host": "^1.0.211",
63
63
  "react": ">=16.8.0"
64
64
  },
65
- "gitHead": "32344d56d6f870db71a1047e7106912f5f5b8ce4"
65
+ "gitHead": "8d1c851cde5b6670789893501c50c16276c1673b"
66
66
  }