@plasmicpkgs/plasmic-content-stack 0.0.129 → 0.0.131

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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"plasmic-content-stack.cjs.development.js","sources":["../src/utils.ts","../src/contentstack.tsx","../src/index.tsx"],"sourcesContent":["export const queryOperators = [\n {\n value: \"\",\n label: 'Is'\n },\n {\n value: \"$ne\",\n label: 'Is not'\n },\n \n {\n value: \"$lt\",\n label: 'Less than'\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]","import {\n ComponentMeta,\n DataProvider,\n GlobalContextMeta,\n repeatedElement,\n useSelector,\n} from \"@plasmicapp/host\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport { pascalCase } from \"change-case\";\n\nimport get from \"dlv\";\nimport React, { ReactNode, useContext } from \"react\";\nimport { queryOperators } from \"./utils\";\n\nexport function ensure<T>(x: T | null | undefined): T {\n if (x === null || x === undefined) {\n debugger;\n throw new Error(`Value must not be undefined or null`);\n } else {\n return x;\n }\n}\n\nconst modulePath = \"@plasmicpkgs/plasmic-content-stack\";\n\nconst makeDataProviderName = (contentType: string) =>\n `currentContentstack${pascalCase(contentType)}Item`;\n\ninterface ContentStackCredentialsProviderProps {\n apiKey: string;\n accessToken: string;\n environment: string;\n}\n\nconst CredentialsContext = React.createContext<\n ContentStackCredentialsProviderProps | undefined\n>(undefined);\n\nexport const ContentStackCredentialsProviderMeta: GlobalContextMeta<ContentStackCredentialsProviderProps> = {\n name: \"ContentStackCredentialsProvider\",\n displayName: \"ContentStack Credentials Provider\",\n description:\n \"The API key is a unique key assigned to each stack. Learn how to [get your API key](https://www.contentstack.com/docs/developers/apis/content-management-api/#how-to-get-stack-api-key).\",\n importName: \"ContentStackCredentialsProvider\",\n importPath: modulePath,\n props: {\n apiKey: {\n type: \"string\",\n displayName: \"API Key\",\n description: \"API Key of your Stack \",\n defaultValue: \"blt02f7b45378b008ee\",\n },\n accessToken: {\n type: \"string\",\n displayName: \"Access Token \",\n description: \"Access Token\",\n defaultValue: \"cs5b69faf35efdebd91d08bcf4\",\n },\n environment: {\n type: \"string\",\n displayName: \"Environment\",\n defaultValue: \"production\",\n },\n },\n};\n\nexport function ContentStackCredentialsProvider({\n apiKey,\n accessToken,\n environment,\n children,\n}: React.PropsWithChildren<ContentStackCredentialsProviderProps>) {\n return (\n <CredentialsContext.Provider value={{ apiKey, accessToken, environment }}>\n {children}\n </CredentialsContext.Provider>\n );\n}\n\ninterface ContentStackFetcherProps {\n contentType: string;\n children?: ReactNode;\n className?: string;\n noLayout?: boolean;\n filterField?: string;\n queryOperator?: string;\n filterValue?: string | number;\n limit?: number;\n noAutoRepeat?: boolean;\n setControlContextData?: (data: {\n types?: { title: string; uid: string }[];\n filterFields?: string[];\n queryOptions?: [];\n }) => void;\n}\n\nexport const ContentStackFetcherMeta: ComponentMeta<ContentStackFetcherProps> = {\n name: \"ContentStackFetcher\",\n displayName: \"ContentStack Fetcher\",\n importName: \"ContentStackFetcher\",\n importPath: modulePath,\n providesData: true,\n description:\n \"Fetches ContentStack 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: \"ContentStackField\",\n },\n },\n },\n contentType: {\n type: \"choice\",\n options: (props, ctx) =>\n ctx?.types?.map((type: any) => ({\n label: type?.title,\n value: type?.uid,\n })) ?? [],\n displayName: \"Content type\",\n description: \"Content type to be queried.\",\n },\n filterField: {\n type: \"choice\",\n displayName: \"Filter field\",\n description: \"Field (from Collection) to filter by\",\n options: (props, ctx) => ctx?.filterFields ?? [],\n hidden: (props, ctx) => !props.contentType,\n },\n queryOperator: {\n type: \"choice\",\n displayName: \"Query Operator\",\n description: \"Query Operator filter by\",\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 },\n limit: {\n type: \"number\",\n displayName: \"Limit\",\n description: \"Limit\",\n },\n noAutoRepeat: {\n type: \"boolean\",\n displayName: \"No auto-repeat\",\n description: \"Do not automatically repeat children for every entries.\",\n defaultValue: false,\n },\n noLayout: {\n type: \"boolean\",\n displayName: \"No layout\",\n description:\n \"When set, ContentStack 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 ContentStackFetcher({\n contentType,\n filterField,\n filterValue,\n queryOperator,\n limit,\n noAutoRepeat,\n children,\n className,\n noLayout,\n setControlContextData,\n}: ContentStackFetcherProps) {\n const creds = ensure(useContext(CredentialsContext));\n const cacheKey = JSON.stringify({\n limit,\n contentType,\n filterField,\n filterValue,\n queryOperator,\n creds,\n });\n\n const allContentTypes = usePlasmicQueryData<any | null>(\n `${cacheKey}/contentTypes`,\n async () => {\n const resp = await fetch(\n \"https://cdn.contentstack.io/v3/content_types?include_count=true&include_global_field_schema=true\",\n {\n headers: {\n api_key: creds.apiKey,\n access_token: creds.accessToken,\n },\n }\n );\n return resp.json();\n }\n );\n const contentTypes = allContentTypes.data ?? [];\n\n const { data: entriesData } = usePlasmicQueryData<any | null>(\n contentType ? `${cacheKey}/${contentType}/entries` : null,\n async () => {\n const url = `https://cdn.contentstack.io/v3/content_types/${contentType}/entries?environment=${creds.environment}`;\n let query;\n\n if (limit) {\n query = `${url}&limit=${limit}`;\n } else {\n query = url;\n }\n const resp = await fetch(query, {\n headers: {\n api_key: creds.apiKey,\n access_token: creds.accessToken,\n },\n });\n return await resp.json();\n }\n );\n\n const { data: filteredData } = usePlasmicQueryData<any | null>(\n contentType && filterField && filterValue && entriesData\n ? `${cacheKey}/${contentType}/filtered`\n : null,\n async () => {\n if (\n !contentType &&\n !filterField &&\n !filterValue &&\n !entriesData &&\n !contentTypes\n ) {\n return null;\n }\n const matched = Object.values(entriesData)\n .flatMap((model: any) => (Array.isArray(model) ? model : [model]))\n .map((item: any) => {\n const fields = Object.entries(item).find(\n (el) => el[0] === filterField\n );\n return fields;\n });\n\n let url;\n if (!queryOperator) {\n Object.values(matched)\n .map((model: any) => (Array.isArray(model) ? model : [model]))\n .map((item: any) => {\n if (typeof item[1] === \"number\" && typeof item[1] !== \"object\") {\n url = `https://cdn.contentstack.io/v3/content_types/${contentType}/entries?environment=${creds.environment}&query={\"${filterField}\" : ${filterValue}}`;\n } else if (\n typeof item[1] !== \"number\" &&\n typeof item[1] !== \"object\" &&\n typeof item[1] === \"string\"\n ) {\n url = `https://cdn.contentstack.io/v3/content_types/${contentType}/entries?environment=${\n creds.environment\n }&query=${JSON.stringify({\n [filterField as string]: filterValue,\n })}`;\n } else {\n url = \"\";\n }\n });\n } else if (queryOperator === \"$ne\" || queryOperator === \"$regex\") {\n Object.values(matched)\n .map((model: any) => (Array.isArray(model) ? model : [model]))\n .map((item: any) => {\n if (typeof item[1] === \"number\" && typeof item[1] !== \"object\") {\n url = `https://cdn.contentstack.io/v3/content_types/${contentType}/entries?environment=${creds.environment}&query={\"${filterField}\":{\"${queryOperator}\":${filterValue}}}`;\n } else if (\n typeof item[1] !== \"number\" &&\n typeof item[1] !== \"object\" &&\n typeof item[1] === \"string\"\n ) {\n url = `https://cdn.contentstack.io/v3/content_types/${contentType}/entries?environment=${\n creds.environment\n }&query=${JSON.stringify({\n [filterField as string]: { [queryOperator]: filterValue },\n })}`;\n } else {\n url = \"\";\n }\n });\n } else {\n url = `https://cdn.contentstack.io/v3/content_types/${contentType}/entries?environment=${creds.environment}&query={\"${filterField}\":{\"${queryOperator}\" :${filterValue}}}`;\n }\n\n const resp = await fetch(url as string, {\n headers: {\n api_key: creds.apiKey,\n access_token: creds.accessToken,\n },\n });\n return await resp.json();\n }\n );\n\n if (!contentTypes) {\n return <div>Please configure the ContentStack credentials</div>;\n }\n\n const types = Object.values(contentTypes).flatMap((model: any) => {\n return model;\n });\n\n setControlContextData?.({\n types: types,\n });\n\n if (!creds.apiKey || !creds.accessToken || !creds.environment) {\n return (\n <div>\n Please specify a valid API Credentials: API Key, Access Token and\n Environment\n </div>\n );\n }\n\n if (!entriesData) {\n return <div>Please specify content type </div>;\n }\n\n const fieldsForFilter = Object.values(entriesData)\n .flatMap((model: any) => (Array.isArray(model) ? model : [model]))\n .map((item: any) => {\n const fields = Object.keys(item).filter((field) => {\n const value = get(item, field);\n return (\n (typeof value !== \"object\" &&\n field !== \"images\" &&\n typeof value === \"number\") ||\n (typeof value === \"string\" &&\n !value.match(\n /\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d(?:\\.\\d+)?Z?/gm\n ) &&\n !value.match(/^blt.*/))\n );\n });\n return fields;\n });\n\n let operators;\n\n const matchedFields = Object.values(entriesData)\n .flatMap((model: any) => (Array.isArray(model) ? model : [model]))\n .map((item: any) => {\n const fields = Object.entries(item).find((el) => el[0] === filterField);\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 = queryOperators;\n } else if (\n typeof item[1] !== \"number\" &&\n typeof item[1] !== \"object\" &&\n typeof item[1] === \"string\"\n ) {\n operators = [\n {\n value: \"\",\n label: \"Is\",\n },\n {\n value: \"$ne\",\n label: \"Is not\",\n },\n {\n value: \"$regex\",\n label: \"Matches regex\",\n },\n ];\n }\n });\n\n setControlContextData?.({\n queryOptions: operators,\n types: types,\n filterFields: fieldsForFilter[0],\n });\n\n if (queryOperator && !filterValue && !filterField) {\n return <div>Please specify a Filter Field and a Filter Value</div>;\n }\n if (!queryOperator && filterValue && !filterField) {\n return <div>Please specify a Query Operator and a Filter Field</div>;\n }\n if (!queryOperator && !filterValue && filterField) {\n return <div>Please specify a Query Operator and a Filter Value</div>;\n }\n\n if (queryOperator && filterValue && !filterField) {\n return <div>Please specify a Filter Field</div>;\n }\n\n if (queryOperator && !filterValue && filterField) {\n return <div>Please specify a Filter Value</div>;\n }\n\n const entries = Object.values(entriesData).flatMap((item: any) =>\n Array.isArray(item) ? item : [item]\n );\n\n let renderedData;\n\n if (filteredData) {\n const filtered = Object.values(filteredData).flatMap((model: any) => model)\n .length;\n\n if (filtered === 0) {\n return <div>No published entry found </div>;\n }\n\n const entries = Object.values(filteredData).flatMap((model: any) =>\n Array.isArray(model) ? model : [model]\n );\n\n renderedData = entries?.map((item: any, index: number) => (\n <DataProvider\n key={item._id}\n name={\"contentstackItem\"}\n data={item}\n hidden={true}\n >\n <DataProvider name={makeDataProviderName(contentType)} data={item}>\n {repeatedElement(index, children)}\n </DataProvider>\n </DataProvider>\n ));\n } else {\n const entries = Object.values(entriesData).flatMap((model: any) =>\n Array.isArray(model) ? model : [model]\n );\n renderedData = entries?.map((item: any, index: number) => (\n <DataProvider\n key={item._id}\n name={\"contentstackItem\"}\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 data={entries} name=\"contentStackItems\">\n {noAutoRepeat ? (\n children\n ) : (\n <DataProvider\n name={\"contentstackSchema\"}\n data={types?.find((type: any) => type.uid === contentType)?.schema}\n hidden={true}\n >\n {noLayout ? (\n <> {renderedData} </>\n ) : (\n <div className={className}> {renderedData} </div>\n )}\n </DataProvider>\n )}\n </DataProvider>\n );\n}\n\ninterface ContentStackFieldProps {\n className?: string;\n objectPath?: (string | number)[];\n setControlContextData?: (data: { data: Record<string, any> }) => void;\n}\nexport const ContentStackFieldMeta: ComponentMeta<ContentStackFieldProps> = {\n name: \"ContentStackField\",\n displayName: \"ContentStack Field\",\n importName: \"ContentStackField\",\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};\nexport function ContentStackField({\n objectPath,\n setControlContextData,\n ...rest\n}: ContentStackFieldProps) {\n const item = useSelector(\"contentstackItem\");\n if (!item) {\n return (\n <div>ContentStackField must be used within a ContentStackFetcher </div>\n );\n }\n const schema = useSelector(\"contentstackSchema\");\n\n setControlContextData?.({\n data: item,\n });\n\n if (!objectPath) {\n return <div>Please specify a valid path or select a field.</div>;\n }\n\n const isRichText = () =>\n schema?.find((field: any) => field.uid === get(objectPath, [0]))\n ?.field_metadata?.allow_rich_text;\n\n const data = get(item, objectPath);\n if (typeof data === \"object\" && data?.content_type?.startsWith(\"image\")) {\n return <img {...rest} src={data.url} />;\n } else if (!data || typeof data === \"object\") {\n return <div {...rest}> Please specify a valid field.</div>;\n } else if (isRichText()) {\n return <div {...rest} dangerouslySetInnerHTML={{ __html: data }} />;\n } else {\n return <div {...rest}> {data} </div>;\n }\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport {\n ContentStackCredentialsProvider,\n ContentStackCredentialsProviderMeta,\n ContentStackFetcher,\n ContentStackFetcherMeta,\n ContentStackField,\n ContentStackFieldMeta,\n} from \"./contentstack\";\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 ContentStackCredentialsProvider,\n ContentStackCredentialsProviderMeta\n );\n } else {\n registerGlobalContext(\n ContentStackCredentialsProvider,\n ContentStackCredentialsProviderMeta\n );\n }\n\n _registerComponent(ContentStackFetcher, ContentStackFetcherMeta);\n _registerComponent(ContentStackField, ContentStackFieldMeta);\n}\n\nexport * from \"./contentstack\";\n"],"names":["queryOperators","value","label","ensure","x","undefined","Error","modulePath","makeDataProviderName","contentType","pascalCase","CredentialsContext","React","createContext","ContentStackCredentialsProviderMeta","name","displayName","description","importName","importPath","props","apiKey","type","defaultValue","accessToken","environment","ContentStackCredentialsProvider","_ref","children","Provider","ContentStackFetcherMeta","providesData","defaultStyles","display","gridTemplateColumns","gridRowGap","gridColumnGap","padding","maxWidth","styles","options","ctx","_ctx$types$map","_ctx$types","types","map","title","uid","filterField","_ctx$filterFields","filterFields","hidden","queryOperator","_ctx$queryOptions","queryOptions","filterValue","limit","noAutoRepeat","noLayout","ContentStackFetcher","_ref2","className","setControlContextData","creds","useContext","cacheKey","JSON","stringify","allContentTypes","usePlasmicQueryData","_asyncToGenerator","_regeneratorRuntime","mark","_callee","resp","wrap","_callee$","_context","prev","next","fetch","headers","api_key","access_token","sent","abrupt","json","stop","contentTypes","_allContentTypes$data","data","_usePlasmicQueryData","_callee2","url","query","_callee2$","_context2","entriesData","_usePlasmicQueryData2","_callee3","matched","_callee3$","_context3","Object","values","flatMap","model","Array","isArray","item","fields","entries","find","el","_JSON$stringify","_filterField","_JSON$stringify2","filteredData","fieldsForFilter","keys","filter","field","get","match","operators","matchedFields","renderedData","filtered","length","index","DataProvider","key","_id","repeatedElement","_types$find","schema","ContentStackFieldMeta","objectPath","_ctx$data","ContentStackField","_ref6","rest","_objectWithoutPropertiesLoose","_excluded","useSelector","isRichText","_schema$find","field_metadata","allow_rich_text","_data$content_type","content_type","startsWith","src","dangerouslySetInnerHTML","__html","registerAll","loader","_registerComponent","Component","defaultMeta","registerComponent","registerGlobalContext"],"mappings":"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"}
@@ -1,2 +0,0 @@
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("@plasmicapp/host"),a=require("@plasmicapp/query"),o=require("change-case"),i=e(require("dlv")),c=require("react"),l=e(c);function u(){u=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,n){return e[t]=n}}function p(e,t,n,r){var o=Object.create((t&&t.prototype instanceof m?t:m).prototype),i=new S(r||[]);return a(o,"_invoke",{value:P(e,n,i)}),o}function f(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=p;var d="suspendedStart",y="executing",h="completed",v={};function m(){}function g(){}function b(){}var k={};s(k,i,(function(){return this}));var w=Object.getPrototypeOf,x=w&&w(w(L([])));x&&x!==n&&r.call(x,i)&&(k=x);var E=b.prototype=m.prototype=Object.create(k);function j(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function O(e,t){function n(a,o,i,c){var l=f(e[a],e,o);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==typeof s&&r.call(s,"__await")?t.resolve(s.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(s).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,c)}))}c(l.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function P(t,n,r){var a=d;return function(o,i){if(a===y)throw new Error("Generator is already running");if(a===h){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var c=r.delegate;if(c){var l=C(c,r);if(l){if(l===v)continue;return l}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===d)throw a=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=y;var u=f(t,n,r);if("normal"===u.type){if(a=r.done?h:"suspendedYield",u.arg===v)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(a=h,r.method="throw",r.arg=u.arg)}}}function C(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),v;var o=f(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,v;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function _(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 S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(_,this),this.reset(!0)}function L(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(typeof t+" is not iterable")}return g.prototype=b,a(E,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=s(b,l,"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,s(e,l,"GeneratorFunction")),e.prototype=Object.create(E),e},t.awrap=function(e){return{__await:e}},j(O.prototype),s(O.prototype,c,(function(){return this})),t.AsyncIterator=O,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var i=new O(p(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},j(E),s(E,l,"Generator"),s(E,i,(function(){return this})),s(E,"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=L,S.prototype={constructor:S,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 a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],c=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(i)},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),v},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),v}},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 a=r.arg;F(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:L(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),v}},t}function s(e,t,n,r,a,o,i){try{var c=e[o](i),l=c.value}catch(e){return void n(e)}c.done?t(l):Promise.resolve(l).then(r,a)}function p(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){s(o,r,a,i,c,"next",e)}function c(e){s(o,r,a,i,c,"throw",e)}i(void 0)}))}}var f=[{value:"",label:"Is"},{value:"$ne",label:"Is not"},{value:"$lt",label:"Less than"},{value:"$lte",label:"Less than or equal"},{value:"$gt",label:"Greater than"},{value:"$gte",label:"Greater than or equal "}],d=["objectPath","setControlContextData"];function y(e){if(null==e)throw new Error("Value must not be undefined or null");return e}var h="@plasmicpkgs/plasmic-content-stack",v=function(e){return"currentContentstack"+o.pascalCase(e)+"Item"},m=l.createContext(void 0),g={name:"ContentStackCredentialsProvider",displayName:"ContentStack Credentials Provider",description:"The API key is a unique key assigned to each stack. Learn how to [get your API key](https://www.contentstack.com/docs/developers/apis/content-management-api/#how-to-get-stack-api-key).",importName:"ContentStackCredentialsProvider",importPath:h,props:{apiKey:{type:"string",displayName:"API Key",description:"API Key of your Stack ",defaultValue:"blt02f7b45378b008ee"},accessToken:{type:"string",displayName:"Access Token ",description:"Access Token",defaultValue:"cs5b69faf35efdebd91d08bcf4"},environment:{type:"string",displayName:"Environment",defaultValue:"production"}}};function b(e){return l.createElement(m.Provider,{value:{apiKey:e.apiKey,accessToken:e.accessToken,environment:e.environment}},e.children)}var k={name:"ContentStackFetcher",displayName:"ContentStack Fetcher",importName:"ContentStackFetcher",importPath:h,providesData:!0,description:"Fetches ContentStack 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:"ContentStackField"}}},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){return{label:null==e?void 0:e.title,value:null==e?void 0:e.uid}})))?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.filterFields)?n:[]},hidden:function(e,t){return!e.contentType}},queryOperator:{type:"choice",displayName:"Query Operator",description:"Query Operator filter by",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"},limit:{type:"number",displayName:"Limit",description:"Limit"},noAutoRepeat:{type:"boolean",displayName:"No auto-repeat",description:"Do not automatically repeat children for every entries.",defaultValue:!1},noLayout:{type:"boolean",displayName:"No layout",description:"When set, ContentStack 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 w(e){var t,n,o=e.contentType,s=e.filterField,d=e.filterValue,h=e.queryOperator,g=e.limit,b=e.noAutoRepeat,k=e.children,w=e.className,x=e.noLayout,E=e.setControlContextData,j=y(c.useContext(m)),O=JSON.stringify({limit:g,contentType:o,filterField:s,filterValue:d,queryOperator:h,creds:j}),P=null!=(t=a.usePlasmicQueryData(O+"/contentTypes",p(u().mark((function e(){return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch("https://cdn.contentstack.io/v3/content_types?include_count=true&include_global_field_schema=true",{headers:{api_key:j.apiKey,access_token:j.accessToken}});case 2:return e.abrupt("return",e.sent.json());case 4:case"end":return e.stop()}}),e)})))).data)?t:[],C=a.usePlasmicQueryData(o?O+"/"+o+"/entries":null,p(u().mark((function e(){var t,n,r;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t="https://cdn.contentstack.io/v3/content_types/"+o+"/entries?environment="+j.environment,n=g?t+"&limit="+g:t,e.next=4,fetch(n,{headers:{api_key:j.apiKey,access_token:j.accessToken}});case 4:return r=e.sent,e.next=7,r.json();case 7:return e.abrupt("return",e.sent);case 8:case"end":return e.stop()}}),e)})))).data,_=a.usePlasmicQueryData(o&&s&&d&&C?O+"/"+o+"/filtered":null,p(u().mark((function e(){var t,n,r;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o||s||d||C||P){e.next=2;break}return e.abrupt("return",null);case 2:return t=Object.values(C).flatMap((function(e){return Array.isArray(e)?e:[e]})).map((function(e){return Object.entries(e).find((function(e){return e[0]===s}))})),h?"$ne"===h||"$regex"===h?Object.values(t).map((function(e){return Array.isArray(e)?e:[e]})).map((function(e){if("number"==typeof e[1]&&"object"!=typeof e[1])n="https://cdn.contentstack.io/v3/content_types/"+o+"/entries?environment="+j.environment+'&query={"'+s+'":{"'+h+'":'+d+"}}";else if("number"!=typeof e[1]&&"object"!=typeof e[1]&&"string"==typeof e[1]){var t,r;n="https://cdn.contentstack.io/v3/content_types/"+o+"/entries?environment="+j.environment+"&query="+JSON.stringify(((r={})[s]=((t={})[h]=d,t),r))}else n=""})):n="https://cdn.contentstack.io/v3/content_types/"+o+"/entries?environment="+j.environment+'&query={"'+s+'":{"'+h+'" :'+d+"}}":Object.values(t).map((function(e){return Array.isArray(e)?e:[e]})).map((function(e){if("number"==typeof e[1]&&"object"!=typeof e[1])n="https://cdn.contentstack.io/v3/content_types/"+o+"/entries?environment="+j.environment+'&query={"'+s+'" : '+d+"}";else if("number"!=typeof e[1]&&"object"!=typeof e[1]&&"string"==typeof e[1]){var t;n="https://cdn.contentstack.io/v3/content_types/"+o+"/entries?environment="+j.environment+"&query="+JSON.stringify(((t={})[s]=d,t))}else n=""})),e.next=6,fetch(n,{headers:{api_key:j.apiKey,access_token:j.accessToken}});case 6:return r=e.sent,e.next=9,r.json();case 9:return e.abrupt("return",e.sent);case 10:case"end":return e.stop()}}),e)})))).data;if(!P)return l.createElement("div",null,"Please configure the ContentStack credentials");var F=Object.values(P).flatMap((function(e){return e}));if(null==E||E({types:F}),!j.apiKey||!j.accessToken||!j.environment)return l.createElement("div",null,"Please specify a valid API Credentials: API Key, Access Token and Environment");if(!C)return l.createElement("div",null,"Please specify content type ");var S,L=Object.values(C).flatMap((function(e){return Array.isArray(e)?e:[e]})).map((function(e){return Object.keys(e).filter((function(t){var n=i(e,t);return"object"!=typeof n&&"images"!==t&&"number"==typeof n||"string"==typeof n&&!n.match(/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?Z?/gm)&&!n.match(/^blt.*/)}))})),N=Object.values(C).flatMap((function(e){return Array.isArray(e)?e:[e]})).map((function(e){return Object.entries(e).find((function(e){return e[0]===s}))}));if(Object.values(N).map((function(e){return Array.isArray(e)?e:[e]})).map((function(e){"number"==typeof e[1]&&"object"!=typeof e[1]?S=f:"number"!=typeof e[1]&&"object"!=typeof e[1]&&"string"==typeof e[1]&&(S=[{value:"",label:"Is"},{value:"$ne",label:"Is not"},{value:"$regex",label:"Matches regex"}])})),null==E||E({queryOptions:S,types:F,filterFields:L[0]}),h&&!d&&!s)return l.createElement("div",null,"Please specify a Filter Field and a Filter Value");if(!h&&d&&!s)return l.createElement("div",null,"Please specify a Query Operator and a Filter Field");if(!h&&!d&&s)return l.createElement("div",null,"Please specify a Query Operator and a Filter Value");if(h&&d&&!s)return l.createElement("div",null,"Please specify a Filter Field");if(h&&!d&&s)return l.createElement("div",null,"Please specify a Filter Value");var A,T=Object.values(C).flatMap((function(e){return Array.isArray(e)?e:[e]}));if(_){if(0===Object.values(_).flatMap((function(e){return e})).length)return l.createElement("div",null,"No published entry found ");var q=Object.values(_).flatMap((function(e){return Array.isArray(e)?e:[e]}));A=null==q?void 0:q.map((function(e,t){return l.createElement(r.DataProvider,{key:e._id,name:"contentstackItem",data:e,hidden:!0},l.createElement(r.DataProvider,{name:v(o),data:e},r.repeatedElement(t,k)))}))}else{var I=Object.values(C).flatMap((function(e){return Array.isArray(e)?e:[e]}));A=null==I?void 0:I.map((function(e,t){return l.createElement(r.DataProvider,{key:e._id,name:"contentstackItem",data:e,hidden:!0},l.createElement(r.DataProvider,{name:v(o),data:e},r.repeatedElement(t,k)))}))}return l.createElement(r.DataProvider,{data:T,name:"contentStackItems"},b?k:l.createElement(r.DataProvider,{name:"contentstackSchema",data:null==F||null==(n=F.find((function(e){return e.uid===o})))?void 0:n.schema,hidden:!0},x?l.createElement(l.Fragment,null," ",A," "):l.createElement("div",{className:w}," ",A," ")))}var x={name:"ContentStackField",displayName:"ContentStack Field",importName:"ContentStackField",importPath:h,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 E(e){var t,n=e.objectPath,a=e.setControlContextData,o=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}(e,d),c=r.useSelector("contentstackItem");if(!c)return l.createElement("div",null,"ContentStackField must be used within a ContentStackFetcher ");var u=r.useSelector("contentstackSchema");if(null==a||a({data:c}),!n)return l.createElement("div",null,"Please specify a valid path or select a field.");var s,p=i(c,n);return"object"==typeof p&&null!=p&&null!=(t=p.content_type)&&t.startsWith("image")?l.createElement("img",Object.assign({},o,{src:p.url})):p&&"object"!=typeof p?(null==u||null==(s=u.find((function(e){return e.uid===i(n,[0])})))||null==(s=s.field_metadata)?void 0:s.allow_rich_text)?l.createElement("div",Object.assign({},o,{dangerouslySetInnerHTML:{__html:p}})):l.createElement("div",Object.assign({},o)," ",p," "):l.createElement("div",Object.assign({},o)," Please specify a valid field.")}exports.ContentStackCredentialsProvider=b,exports.ContentStackCredentialsProviderMeta=g,exports.ContentStackFetcher=w,exports.ContentStackFetcherMeta=k,exports.ContentStackField=E,exports.ContentStackFieldMeta=x,exports.ensure=y,exports.registerAll=function(e){var r=function(n,r){e?e.registerComponent(n,r):t(n,r)};e?e.registerGlobalContext(b,g):n(b,g),r(w,k),r(E,x)};
2
- //# sourceMappingURL=plasmic-content-stack.cjs.production.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plasmic-content-stack.cjs.production.min.js","sources":["../src/utils.ts","../src/contentstack.tsx","../src/index.tsx"],"sourcesContent":["export const queryOperators = [\n {\n value: \"\",\n label: 'Is'\n },\n {\n value: \"$ne\",\n label: 'Is not'\n },\n \n {\n value: \"$lt\",\n label: 'Less than'\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]","import {\n ComponentMeta,\n DataProvider,\n GlobalContextMeta,\n repeatedElement,\n useSelector,\n} from \"@plasmicapp/host\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport { pascalCase } from \"change-case\";\n\nimport get from \"dlv\";\nimport React, { ReactNode, useContext } from \"react\";\nimport { queryOperators } from \"./utils\";\n\nexport function ensure<T>(x: T | null | undefined): T {\n if (x === null || x === undefined) {\n debugger;\n throw new Error(`Value must not be undefined or null`);\n } else {\n return x;\n }\n}\n\nconst modulePath = \"@plasmicpkgs/plasmic-content-stack\";\n\nconst makeDataProviderName = (contentType: string) =>\n `currentContentstack${pascalCase(contentType)}Item`;\n\ninterface ContentStackCredentialsProviderProps {\n apiKey: string;\n accessToken: string;\n environment: string;\n}\n\nconst CredentialsContext = React.createContext<\n ContentStackCredentialsProviderProps | undefined\n>(undefined);\n\nexport const ContentStackCredentialsProviderMeta: GlobalContextMeta<ContentStackCredentialsProviderProps> = {\n name: \"ContentStackCredentialsProvider\",\n displayName: \"ContentStack Credentials Provider\",\n description:\n \"The API key is a unique key assigned to each stack. Learn how to [get your API key](https://www.contentstack.com/docs/developers/apis/content-management-api/#how-to-get-stack-api-key).\",\n importName: \"ContentStackCredentialsProvider\",\n importPath: modulePath,\n props: {\n apiKey: {\n type: \"string\",\n displayName: \"API Key\",\n description: \"API Key of your Stack \",\n defaultValue: \"blt02f7b45378b008ee\",\n },\n accessToken: {\n type: \"string\",\n displayName: \"Access Token \",\n description: \"Access Token\",\n defaultValue: \"cs5b69faf35efdebd91d08bcf4\",\n },\n environment: {\n type: \"string\",\n displayName: \"Environment\",\n defaultValue: \"production\",\n },\n },\n};\n\nexport function ContentStackCredentialsProvider({\n apiKey,\n accessToken,\n environment,\n children,\n}: React.PropsWithChildren<ContentStackCredentialsProviderProps>) {\n return (\n <CredentialsContext.Provider value={{ apiKey, accessToken, environment }}>\n {children}\n </CredentialsContext.Provider>\n );\n}\n\ninterface ContentStackFetcherProps {\n contentType: string;\n children?: ReactNode;\n className?: string;\n noLayout?: boolean;\n filterField?: string;\n queryOperator?: string;\n filterValue?: string | number;\n limit?: number;\n noAutoRepeat?: boolean;\n setControlContextData?: (data: {\n types?: { title: string; uid: string }[];\n filterFields?: string[];\n queryOptions?: [];\n }) => void;\n}\n\nexport const ContentStackFetcherMeta: ComponentMeta<ContentStackFetcherProps> = {\n name: \"ContentStackFetcher\",\n displayName: \"ContentStack Fetcher\",\n importName: \"ContentStackFetcher\",\n importPath: modulePath,\n providesData: true,\n description:\n \"Fetches ContentStack 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: \"ContentStackField\",\n },\n },\n },\n contentType: {\n type: \"choice\",\n options: (props, ctx) =>\n ctx?.types?.map((type: any) => ({\n label: type?.title,\n value: type?.uid,\n })) ?? [],\n displayName: \"Content type\",\n description: \"Content type to be queried.\",\n },\n filterField: {\n type: \"choice\",\n displayName: \"Filter field\",\n description: \"Field (from Collection) to filter by\",\n options: (props, ctx) => ctx?.filterFields ?? [],\n hidden: (props, ctx) => !props.contentType,\n },\n queryOperator: {\n type: \"choice\",\n displayName: \"Query Operator\",\n description: \"Query Operator filter by\",\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 },\n limit: {\n type: \"number\",\n displayName: \"Limit\",\n description: \"Limit\",\n },\n noAutoRepeat: {\n type: \"boolean\",\n displayName: \"No auto-repeat\",\n description: \"Do not automatically repeat children for every entries.\",\n defaultValue: false,\n },\n noLayout: {\n type: \"boolean\",\n displayName: \"No layout\",\n description:\n \"When set, ContentStack 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 ContentStackFetcher({\n contentType,\n filterField,\n filterValue,\n queryOperator,\n limit,\n noAutoRepeat,\n children,\n className,\n noLayout,\n setControlContextData,\n}: ContentStackFetcherProps) {\n const creds = ensure(useContext(CredentialsContext));\n const cacheKey = JSON.stringify({\n limit,\n contentType,\n filterField,\n filterValue,\n queryOperator,\n creds,\n });\n\n const allContentTypes = usePlasmicQueryData<any | null>(\n `${cacheKey}/contentTypes`,\n async () => {\n const resp = await fetch(\n \"https://cdn.contentstack.io/v3/content_types?include_count=true&include_global_field_schema=true\",\n {\n headers: {\n api_key: creds.apiKey,\n access_token: creds.accessToken,\n },\n }\n );\n return resp.json();\n }\n );\n const contentTypes = allContentTypes.data ?? [];\n\n const { data: entriesData } = usePlasmicQueryData<any | null>(\n contentType ? `${cacheKey}/${contentType}/entries` : null,\n async () => {\n const url = `https://cdn.contentstack.io/v3/content_types/${contentType}/entries?environment=${creds.environment}`;\n let query;\n\n if (limit) {\n query = `${url}&limit=${limit}`;\n } else {\n query = url;\n }\n const resp = await fetch(query, {\n headers: {\n api_key: creds.apiKey,\n access_token: creds.accessToken,\n },\n });\n return await resp.json();\n }\n );\n\n const { data: filteredData } = usePlasmicQueryData<any | null>(\n contentType && filterField && filterValue && entriesData\n ? `${cacheKey}/${contentType}/filtered`\n : null,\n async () => {\n if (\n !contentType &&\n !filterField &&\n !filterValue &&\n !entriesData &&\n !contentTypes\n ) {\n return null;\n }\n const matched = Object.values(entriesData)\n .flatMap((model: any) => (Array.isArray(model) ? model : [model]))\n .map((item: any) => {\n const fields = Object.entries(item).find(\n (el) => el[0] === filterField\n );\n return fields;\n });\n\n let url;\n if (!queryOperator) {\n Object.values(matched)\n .map((model: any) => (Array.isArray(model) ? model : [model]))\n .map((item: any) => {\n if (typeof item[1] === \"number\" && typeof item[1] !== \"object\") {\n url = `https://cdn.contentstack.io/v3/content_types/${contentType}/entries?environment=${creds.environment}&query={\"${filterField}\" : ${filterValue}}`;\n } else if (\n typeof item[1] !== \"number\" &&\n typeof item[1] !== \"object\" &&\n typeof item[1] === \"string\"\n ) {\n url = `https://cdn.contentstack.io/v3/content_types/${contentType}/entries?environment=${\n creds.environment\n }&query=${JSON.stringify({\n [filterField as string]: filterValue,\n })}`;\n } else {\n url = \"\";\n }\n });\n } else if (queryOperator === \"$ne\" || queryOperator === \"$regex\") {\n Object.values(matched)\n .map((model: any) => (Array.isArray(model) ? model : [model]))\n .map((item: any) => {\n if (typeof item[1] === \"number\" && typeof item[1] !== \"object\") {\n url = `https://cdn.contentstack.io/v3/content_types/${contentType}/entries?environment=${creds.environment}&query={\"${filterField}\":{\"${queryOperator}\":${filterValue}}}`;\n } else if (\n typeof item[1] !== \"number\" &&\n typeof item[1] !== \"object\" &&\n typeof item[1] === \"string\"\n ) {\n url = `https://cdn.contentstack.io/v3/content_types/${contentType}/entries?environment=${\n creds.environment\n }&query=${JSON.stringify({\n [filterField as string]: { [queryOperator]: filterValue },\n })}`;\n } else {\n url = \"\";\n }\n });\n } else {\n url = `https://cdn.contentstack.io/v3/content_types/${contentType}/entries?environment=${creds.environment}&query={\"${filterField}\":{\"${queryOperator}\" :${filterValue}}}`;\n }\n\n const resp = await fetch(url as string, {\n headers: {\n api_key: creds.apiKey,\n access_token: creds.accessToken,\n },\n });\n return await resp.json();\n }\n );\n\n if (!contentTypes) {\n return <div>Please configure the ContentStack credentials</div>;\n }\n\n const types = Object.values(contentTypes).flatMap((model: any) => {\n return model;\n });\n\n setControlContextData?.({\n types: types,\n });\n\n if (!creds.apiKey || !creds.accessToken || !creds.environment) {\n return (\n <div>\n Please specify a valid API Credentials: API Key, Access Token and\n Environment\n </div>\n );\n }\n\n if (!entriesData) {\n return <div>Please specify content type </div>;\n }\n\n const fieldsForFilter = Object.values(entriesData)\n .flatMap((model: any) => (Array.isArray(model) ? model : [model]))\n .map((item: any) => {\n const fields = Object.keys(item).filter((field) => {\n const value = get(item, field);\n return (\n (typeof value !== \"object\" &&\n field !== \"images\" &&\n typeof value === \"number\") ||\n (typeof value === \"string\" &&\n !value.match(\n /\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d(?:\\.\\d+)?Z?/gm\n ) &&\n !value.match(/^blt.*/))\n );\n });\n return fields;\n });\n\n let operators;\n\n const matchedFields = Object.values(entriesData)\n .flatMap((model: any) => (Array.isArray(model) ? model : [model]))\n .map((item: any) => {\n const fields = Object.entries(item).find((el) => el[0] === filterField);\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 = queryOperators;\n } else if (\n typeof item[1] !== \"number\" &&\n typeof item[1] !== \"object\" &&\n typeof item[1] === \"string\"\n ) {\n operators = [\n {\n value: \"\",\n label: \"Is\",\n },\n {\n value: \"$ne\",\n label: \"Is not\",\n },\n {\n value: \"$regex\",\n label: \"Matches regex\",\n },\n ];\n }\n });\n\n setControlContextData?.({\n queryOptions: operators,\n types: types,\n filterFields: fieldsForFilter[0],\n });\n\n if (queryOperator && !filterValue && !filterField) {\n return <div>Please specify a Filter Field and a Filter Value</div>;\n }\n if (!queryOperator && filterValue && !filterField) {\n return <div>Please specify a Query Operator and a Filter Field</div>;\n }\n if (!queryOperator && !filterValue && filterField) {\n return <div>Please specify a Query Operator and a Filter Value</div>;\n }\n\n if (queryOperator && filterValue && !filterField) {\n return <div>Please specify a Filter Field</div>;\n }\n\n if (queryOperator && !filterValue && filterField) {\n return <div>Please specify a Filter Value</div>;\n }\n\n const entries = Object.values(entriesData).flatMap((item: any) =>\n Array.isArray(item) ? item : [item]\n );\n\n let renderedData;\n\n if (filteredData) {\n const filtered = Object.values(filteredData).flatMap((model: any) => model)\n .length;\n\n if (filtered === 0) {\n return <div>No published entry found </div>;\n }\n\n const entries = Object.values(filteredData).flatMap((model: any) =>\n Array.isArray(model) ? model : [model]\n );\n\n renderedData = entries?.map((item: any, index: number) => (\n <DataProvider\n key={item._id}\n name={\"contentstackItem\"}\n data={item}\n hidden={true}\n >\n <DataProvider name={makeDataProviderName(contentType)} data={item}>\n {repeatedElement(index, children)}\n </DataProvider>\n </DataProvider>\n ));\n } else {\n const entries = Object.values(entriesData).flatMap((model: any) =>\n Array.isArray(model) ? model : [model]\n );\n renderedData = entries?.map((item: any, index: number) => (\n <DataProvider\n key={item._id}\n name={\"contentstackItem\"}\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 data={entries} name=\"contentStackItems\">\n {noAutoRepeat ? (\n children\n ) : (\n <DataProvider\n name={\"contentstackSchema\"}\n data={types?.find((type: any) => type.uid === contentType)?.schema}\n hidden={true}\n >\n {noLayout ? (\n <> {renderedData} </>\n ) : (\n <div className={className}> {renderedData} </div>\n )}\n </DataProvider>\n )}\n </DataProvider>\n );\n}\n\ninterface ContentStackFieldProps {\n className?: string;\n objectPath?: (string | number)[];\n setControlContextData?: (data: { data: Record<string, any> }) => void;\n}\nexport const ContentStackFieldMeta: ComponentMeta<ContentStackFieldProps> = {\n name: \"ContentStackField\",\n displayName: \"ContentStack Field\",\n importName: \"ContentStackField\",\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};\nexport function ContentStackField({\n objectPath,\n setControlContextData,\n ...rest\n}: ContentStackFieldProps) {\n const item = useSelector(\"contentstackItem\");\n if (!item) {\n return (\n <div>ContentStackField must be used within a ContentStackFetcher </div>\n );\n }\n const schema = useSelector(\"contentstackSchema\");\n\n setControlContextData?.({\n data: item,\n });\n\n if (!objectPath) {\n return <div>Please specify a valid path or select a field.</div>;\n }\n\n const isRichText = () =>\n schema?.find((field: any) => field.uid === get(objectPath, [0]))\n ?.field_metadata?.allow_rich_text;\n\n const data = get(item, objectPath);\n if (typeof data === \"object\" && data?.content_type?.startsWith(\"image\")) {\n return <img {...rest} src={data.url} />;\n } else if (!data || typeof data === \"object\") {\n return <div {...rest}> Please specify a valid field.</div>;\n } else if (isRichText()) {\n return <div {...rest} dangerouslySetInnerHTML={{ __html: data }} />;\n } else {\n return <div {...rest}> {data} </div>;\n }\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport {\n ContentStackCredentialsProvider,\n ContentStackCredentialsProviderMeta,\n ContentStackFetcher,\n ContentStackFetcherMeta,\n ContentStackField,\n ContentStackFieldMeta,\n} from \"./contentstack\";\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 ContentStackCredentialsProvider,\n ContentStackCredentialsProviderMeta\n );\n } else {\n registerGlobalContext(\n ContentStackCredentialsProvider,\n ContentStackCredentialsProviderMeta\n );\n }\n\n _registerComponent(ContentStackFetcher, ContentStackFetcherMeta);\n _registerComponent(ContentStackField, ContentStackFieldMeta);\n}\n\nexport * from \"./contentstack\";\n"],"names":["queryOperators","value","label","ensure","x","Error","modulePath","makeDataProviderName","contentType","pascalCase","CredentialsContext","React","createContext","undefined","ContentStackCredentialsProviderMeta","name","displayName","description","importName","importPath","props","apiKey","type","defaultValue","accessToken","environment","ContentStackCredentialsProvider","_ref","Provider","children","ContentStackFetcherMeta","providesData","defaultStyles","display","gridTemplateColumns","gridRowGap","gridColumnGap","padding","maxWidth","styles","options","ctx","_ctx$types$map","_ctx$types","types","map","title","uid","filterField","_ctx$filterFields","filterFields","hidden","queryOperator","_ctx$queryOptions","queryOptions","filterValue","limit","noAutoRepeat","noLayout","ContentStackFetcher","_ref2","className","setControlContextData","creds","useContext","cacheKey","JSON","stringify","contentTypes","_allContentTypes$data","usePlasmicQueryData","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","fetch","headers","api_key","access_token","abrupt","sent","json","stop","data","entriesData","_callee2","url","query","resp","_context2","filteredData","_callee3","matched","_context3","Object","values","flatMap","model","Array","isArray","item","entries","find","el","_filterField","_JSON$stringify2","_JSON$stringify","operators","fieldsForFilter","keys","filter","field","get","match","matchedFields","renderedData","length","index","DataProvider","key","_id","repeatedElement","_types$find","schema","ContentStackFieldMeta","objectPath","_ctx$data","ContentStackField","_ref6","rest","_objectWithoutPropertiesLoose","_excluded","useSelector","_schema$find","_data$content_type","content_type","startsWith","src","field_metadata","allow_rich_text","dangerouslySetInnerHTML","__html","loader","_registerComponent","Component","defaultMeta","registerComponent","registerGlobalContext"],"mappings":"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"}