@plasmicpkgs/plasmic-strapi 0.1.124 → 0.1.126
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.d.mts +45 -0
- package/dist/index.d.ts +45 -7
- package/dist/index.js +414 -5
- package/dist/index.mjs +379 -0
- package/package.json +12 -13
- package/dist/plasmic-strapi.cjs.development.js +0 -743
- package/dist/plasmic-strapi.cjs.development.js.map +0 -1
- package/dist/plasmic-strapi.cjs.production.min.js +0 -2
- package/dist/plasmic-strapi.cjs.production.min.js.map +0 -1
- package/dist/plasmic-strapi.esm.js +0 -729
- package/dist/plasmic-strapi.esm.js.map +0 -1
- package/dist/strapi.d.ts +0 -36
- package/dist/utils.d.ts +0 -5
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plasmic-strapi.cjs.development.js","sources":["../src/utils.ts","../src/strapi.tsx","../src/index.tsx"],"sourcesContent":["\nexport const queryParameters = [\n {\n value: '$eq',\n label: 'Equal'\n },\n {\n value: '$ne',\n label: 'Not equal'\n }, {\n value: '$lt',\n label: 'Less than'\n }, {\n value: '$lte',\n label: 'Less than or equal to'\n }, {\n value: '$gt',\n label: 'Greater than'\n }, {\n value: '$gte',\n label: 'Greater than or equal to'\n },\n {\n value: '$in',\n label: 'Included in an array'\n }, {\n value: '$notIn',\n label: 'Not included in an array'\n }, {\n value: '$contains',\n label: 'Contains'\n },\n {\n value: '$notContains',\n label: 'Does not contain'\n }, \n]\nexport const uniq = <T>(xs: Array<T>): T[] => Array.from(new Set(xs))","import {\n ComponentMeta,\n DataProvider,\n GlobalContextMeta,\n repeatedElement,\n useSelector,\n} from \"@plasmicapp/host\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport * as qs from \"qs\";\nimport get from \"dlv\";\nimport { pascalCase } from \"change-case\";\nimport React, { ReactNode, useContext } from \"react\";\nimport { queryParameters, uniq } from \"./utils\";\n\nexport function ensure<T>(x: T | null | undefined): T {\n if (x === null || x === undefined) {\n throw new Error(`Value must not be undefined or null`);\n } else {\n return x;\n }\n}\n\nconst modulePath = \"@plasmicpkgs/plasmic-strapi\";\n\nconst makeDataProviderName = (collection: string) =>\n `currentStrapi${pascalCase(collection)}Item`;\n\ninterface StrapiCredentialsProviderProps {\n host?: string;\n token?: string;\n}\n\nconst CredentialsContext = React.createContext<\n StrapiCredentialsProviderProps | undefined\n>(undefined);\n\nexport const strapiCredentialsProviderMeta: GlobalContextMeta<StrapiCredentialsProviderProps> =\n {\n name: \"StrapiCredentialsProvider\",\n displayName: \"Strapi Credentials Provider\",\n description: `[See tutorial video](https://www.youtube.com/watch?v=1SLoVY3hkQ4).\n\nAPI token is needed only if data is not publicly readable.\n\nLearn how to [get your API token](https://docs.strapi.io/user-docs/latest/settings/managing-global-settings.html#managing-api-tokens).`,\n importName: \"StrapiCredentialsProvider\",\n importPath: modulePath,\n props: {\n host: {\n type: \"string\",\n displayName: \"Host\",\n defaultValueHint: \"https://strapi-app.plasmic.app\",\n defaultValue: \"https://strapi-app.plasmic.app\",\n description: \"Server where you application is hosted.\",\n },\n token: {\n type: \"string\",\n displayName: \"API Token\",\n description:\n \"API Token (generated in http://yourhost/admin/settings/api-tokens) (or leave blank for unauthenticated usage).\",\n },\n },\n };\n\nexport function StrapiCredentialsProvider({\n host,\n token,\n children,\n}: React.PropsWithChildren<StrapiCredentialsProviderProps>) {\n host = host?.slice(-1) === \"/\" ? host.slice(0, -1) : host;\n return (\n <CredentialsContext.Provider value={{ host, token }}>\n {children}\n </CredentialsContext.Provider>\n );\n}\n\ninterface StrapiCollectionProps {\n name?: string;\n children?: ReactNode;\n className?: string;\n noLayout?: boolean;\n noAutoRepeat?: boolean;\n filterField?: string;\n filterValue?: string;\n limit?: number;\n filterParameter?: string;\n setControlContextData?: (data: { strapiFields: string[] }) => void;\n}\n\nexport const strapiCollectionMeta: ComponentMeta<StrapiCollectionProps> = {\n name: \"StrapiCollection\",\n displayName: \"Strapi Collection\",\n importName: \"StrapiCollection\",\n importPath: modulePath,\n providesData: true,\n description:\n \"Fetches Strapi data of a given collection, and repeats `children` slot content for each row fetched. [See tutorial video](https://www.youtube.com/watch?v=1SLoVY3hkQ4).\",\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 children: {\n type: \"component\",\n name: \"StrapiField\",\n },\n },\n },\n name: {\n type: \"string\",\n displayName: \"Name\",\n description: \"Name of the collection to be fetched.\",\n defaultValueHint: \"restaurants\",\n },\n filterField: {\n type: \"choice\",\n displayName: \"Filter field\",\n description: \"Field (from Collection) to filter by\",\n options: (props, ctx) => ctx?.strapiFields ?? [],\n hidden: (props, ctx) => !props.name,\n },\n filterParameter: {\n type: \"choice\",\n displayName: \"Filter Parameter\",\n description: \"Field Parameter filter by\",\n options: (props, ctx) => {\n return queryParameters.map((item: any) => ({\n label: item?.label,\n value: item?.value,\n }));\n },\n hidden: (props, ctx) => !props.filterField,\n },\n filterValue: {\n type: \"string\",\n displayName: \"Filter value\",\n description: \"Value to filter by, should be of filter field type\",\n hidden: (props, ctx) => !props.filterParameter,\n },\n limit: {\n type: \"number\",\n displayName: \"Limit\",\n description: \"Maximum n umber of collections to fetch (0 for unlimited).\",\n },\n noLayout: {\n type: \"boolean\",\n displayName: \"No layout\",\n description:\n \"When set, Strapi Collection 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 noAutoRepeat: {\n type: \"boolean\",\n displayName: \"No auto-repeat\",\n description: \"Do not automatically repeat children for every category.\",\n defaultValue: false,\n },\n },\n};\n\nexport function StrapiCollection({\n name,\n filterParameter,\n filterValue,\n filterField,\n limit,\n children,\n className,\n noLayout,\n noAutoRepeat,\n setControlContextData,\n}: StrapiCollectionProps) {\n const creds = ensure(useContext(CredentialsContext));\n\n if (!creds.host) {\n return <div>Please specify a host.</div>;\n }\n\n const query = creds.host + \"/api/\" + name;\n\n const cacheKey = JSON.stringify({\n creds,\n name,\n filterField,\n filterValue,\n filterParameter,\n });\n\n const data = usePlasmicQueryData<any[] | null>(cacheKey, async () => {\n if (!query) {\n return null;\n }\n\n const requestInit: any = { method: \"GET\" };\n if (creds.token) {\n requestInit.headers = { Authorization: \"Bearer \" + creds.token };\n }\n\n const queryParams = qs.stringify({\n ...(filterField && filterParameter && filterValue\n ? {\n filters: {\n [filterField]: {\n [filterParameter]: filterValue,\n },\n },\n }\n : {}),\n populate: \"*\",\n });\n\n const resp = await fetch(`${query}?${queryParams}`, requestInit);\n return resp.json();\n });\n\n if (!data?.data) {\n return (\n <div>\n Please configure the Strapi provider with a valid host and token.\n </div>\n );\n }\n\n if (!get(data.data, [\"data\"])) {\n return <div>Please specify a valid collection.</div>;\n }\n\n const collectionData = get(data.data, [\"data\"]) as any[];\n\n const filterFieds = collectionData.flatMap((item: any) => {\n const attributes = get(item, [\"attributes\"]);\n const displayableFields = Object.keys(attributes).filter((field) => {\n const value = attributes[field];\n const maybeMime = value?.data?.attributes?.mime;\n return (\n typeof value !== \"object\" ||\n (typeof maybeMime === \"string\" && maybeMime.startsWith(\"image\"))\n );\n });\n return displayableFields;\n });\n\n setControlContextData?.({\n strapiFields: uniq(filterFieds ?? []),\n });\n if (filterParameter && !filterValue && !filterField) {\n return <div>Please specify a Filter Field and a Filter Value</div>;\n }\n if (!filterParameter && filterValue && !filterField) {\n return <div>Please specify a Filter Parameter and a Filter Field</div>;\n }\n if (!filterParameter && !filterValue && filterField) {\n return <div>Please specify a Filter Parameter and a Filter Value</div>;\n }\n\n if (filterParameter && filterValue && !filterField) {\n return <div>Please specify a Filter Field</div>;\n }\n if (!filterParameter && filterValue && filterField) {\n return <div>Please specify a Filter Parameter</div>;\n }\n if (filterParameter && !filterValue && filterField) {\n return <div>Please specify a Filter Value</div>;\n }\n\n const collection =\n limit! > 0 ? collectionData.slice(0, limit) : collectionData;\n\n if (collection.length === 0) {\n return <div>No collection found </div>;\n }\n\n const repElements = noAutoRepeat\n ? children\n : collection.map((item, index) => (\n <DataProvider\n key={item.id}\n name={\"strapiItem\"}\n data={item}\n hidden={true}\n >\n <DataProvider name={makeDataProviderName(name!)} data={item}>\n {repeatedElement(index, children)}\n </DataProvider>\n </DataProvider>\n ));\n\n return (\n <DataProvider name=\"strapiItems\" data={collection}>\n {noLayout ? (\n <> {repElements} </>\n ) : (\n <div className={className}> {repElements} </div>\n )}\n </DataProvider>\n );\n}\n\ninterface StrapiFieldProps {\n className?: string;\n path?: string;\n setControlContextData?: (data: {\n fields: string[];\n isImage: boolean;\n }) => void;\n}\n\nexport const strapiFieldMeta: ComponentMeta<StrapiFieldProps> = {\n name: \"StrapiField\",\n displayName: \"Strapi Field\",\n importName: \"StrapiField\",\n importPath: modulePath,\n props: {\n path: {\n type: \"choice\",\n options: (props, ctx) => {\n return ctx?.fields ?? [];\n },\n displayName: \"Field\",\n description: \"Field name\",\n },\n },\n};\n\nexport function StrapiField({\n className,\n path,\n setControlContextData,\n}: StrapiFieldProps) {\n const item = useSelector(\"strapiItem\");\n if (!item) {\n return <div>StrapiField must be used within a StrapiCollection</div>;\n }\n\n // Getting only fields that aren't objects\n const attributes = get(item, [\"attributes\"]);\n const displayableFields = Object.keys(attributes).filter((field) => {\n const value = attributes[field];\n const maybeMime = value.data?.attributes?.mime;\n return (\n typeof value !== \"object\" ||\n (typeof maybeMime === \"string\" && maybeMime.startsWith(\"image\"))\n );\n });\n\n setControlContextData?.({\n fields: displayableFields,\n isImage: false,\n });\n\n if (!path) {\n return <div>StrapiField must specify a field name.</div>;\n }\n\n const data = get(item, [\"attributes\", path]);\n const maybeMime = data?.data?.attributes?.mime;\n\n setControlContextData?.({\n fields: displayableFields,\n isImage: typeof maybeMime === \"string\" && maybeMime.startsWith(\"image\"),\n });\n\n if (!data) {\n return <div>Please specify a valid field name.</div>;\n } else if (typeof maybeMime === \"string\" && maybeMime.startsWith(\"image\")) {\n const creds = ensure(useContext(CredentialsContext));\n const attrs = data.data.attributes;\n const img_url = attrs.url.startsWith(\"http\")\n ? attrs.url\n : creds.host + attrs.url;\n const img_width = attrs.width;\n const img_height = attrs.height;\n return (\n <img\n className={className}\n src={img_url}\n width={300}\n height={(300 * img_height) / img_width}\n />\n );\n } else {\n return <div className={className}>{data}</div>;\n }\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport {\n StrapiCredentialsProvider,\n strapiCredentialsProviderMeta,\n StrapiCollection,\n strapiCollectionMeta,\n StrapiField,\n strapiFieldMeta,\n} from \"./strapi\";\n\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(StrapiCredentialsProvider, strapiCredentialsProviderMeta);\n } else {\n registerGlobalContext(StrapiCredentialsProvider, strapiCredentialsProviderMeta);\n }\n\n _registerComponent(StrapiCollection, strapiCollectionMeta);\n _registerComponent(StrapiField, strapiFieldMeta);\n}\n\nexport * from \"./strapi\";"],"names":["queryParameters","value","label","uniq","xs","Array","from","Set","ensure","x","undefined","Error","modulePath","makeDataProviderName","collection","pascalCase","CredentialsContext","React","createContext","strapiCredentialsProviderMeta","name","displayName","description","importName","importPath","props","host","type","defaultValueHint","defaultValue","token","StrapiCredentialsProvider","_ref","children","_host","slice","Provider","strapiCollectionMeta","providesData","defaultStyles","display","gridTemplateColumns","gridRowGap","gridColumnGap","padding","maxWidth","filterField","options","ctx","_ctx$strapiFields","strapiFields","hidden","filterParameter","map","item","filterValue","limit","noLayout","noAutoRepeat","StrapiCollection","_ref2","className","setControlContextData","creds","useContext","query","cacheKey","JSON","stringify","data","usePlasmicQueryData","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_filterField","_filters","requestInit","queryParams","resp","wrap","_callee$","_context","prev","next","abrupt","method","headers","Authorization","qs","_extends","filters","populate","fetch","sent","json","stop","get","collectionData","filterFieds","flatMap","attributes","displayableFields","Object","keys","filter","field","maybeMime","_value$data","mime","startsWith","length","repElements","index","DataProvider","key","id","repeatedElement","strapiFieldMeta","path","_ctx$fields","fields","StrapiField","_ref4","useSelector","_value$data2","isImage","_data$data","attrs","img_url","url","img_width","width","img_height","height","src","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")),r=e(require("@plasmicapp/host/registerGlobalContext")),n=require("@plasmicapp/host"),a=require("@plasmicapp/query"),i=require("qs"),o=e(require("dlv")),l=require("change-case"),u=require("react"),s=e(u);function c(){c=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,a=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",l=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,r){return e[t]=r}}function p(e,t,r,n){var i=Object.create((t&&t.prototype instanceof y?t:y).prototype),o=new j(n||[]);return a(i,"_invoke",{value:L(e,r,o)}),i}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=p;var d="suspendedStart",h="executing",m="completed",v={};function y(){}function g(){}function b(){}var w={};s(w,o,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(O([])));E&&E!==r&&n.call(E,o)&&(w=E);var P=b.prototype=y.prototype=Object.create(w);function F(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function N(e,t){function r(a,i,o,l){var u=f(e[a],e,i);if("throw"!==u.type){var s=u.arg,c=s.value;return c&&"object"==typeof c&&n.call(c,"__await")?t.resolve(c.__await).then((function(e){r("next",e,o,l)}),(function(e){r("throw",e,o,l)})):t.resolve(c).then((function(e){s.value=e,o(s)}),(function(e){return r("throw",e,o,l)}))}l(u.arg)}var i;a(this,"_invoke",{value:function(e,n){function a(){return new t((function(t,a){r(e,n,t,a)}))}return i=i?i.then(a,a):a()}})}function L(t,r,n){var a=d;return function(i,o){if(a===h)throw new Error("Generator is already running");if(a===m){if("throw"===i)throw o;return{value:e,done:!0}}for(n.method=i,n.arg=o;;){var l=n.delegate;if(l){var u=S(l,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(a===d)throw a=m,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);a=h;var s=f(t,r,n);if("normal"===s.type){if(a=n.done?m:"suspendedYield",s.arg===v)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(a=m,n.method="throw",n.arg=s.arg)}}}function S(t,r){var n=r.method,a=t.iterator[n];if(a===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,S(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(a,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var o=i.arg;return o?o.done?(r[t.resultName]=o.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):o:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function j(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function O(t){if(t||""===t){var r=t[o];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,i=function r(){for(;++a<t.length;)if(n.call(t,a))return r.value=t[a],r.done=!1,r;return r.value=e,r.done=!0,r};return i.next=i}}throw new TypeError(typeof t+" is not iterable")}return g.prototype=b,a(P,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=s(b,u,"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,u,"GeneratorFunction")),e.prototype=Object.create(P),e},t.awrap=function(e){return{__await:e}},F(N.prototype),s(N.prototype,l,(function(){return this})),t.AsyncIterator=N,t.async=function(e,r,n,a,i){void 0===i&&(i=Promise);var o=new N(p(e,r,n,a),i);return t.isGeneratorFunction(r)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},F(P),s(P,u,"Generator"),s(P,o,(function(){return this})),s(P,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=O,j.prototype={constructor:j,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(C),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=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 r=this;function a(n,a){return l.type="throw",l.arg=t,r.next=n,a&&(r.method="next",r.arg=e),!!a}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],l=o.completion;if("root"===o.tryLoc)return a("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),s=n.call(o,"finallyLoc");if(u&&s){if(this.prev<o.catchLoc)return a(o.catchLoc,!0);if(this.prev<o.finallyLoc)return a(o.finallyLoc)}else if(u){if(this.prev<o.catchLoc)return a(o.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return a(o.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var i=a;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var o=i?i.completion:{};return o.type=e,o.arg=t,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(o)},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 r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),C(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var a=n.arg;C(r)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:O(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}function p(e,t,r,n,a,i,o){try{var l=e[i](o),u=l.value}catch(e){return void r(e)}l.done?t(u):Promise.resolve(u).then(n,a)}function f(e){return function(){var t=this,r=arguments;return new Promise((function(n,a){var i=e.apply(t,r);function o(e){p(i,n,a,o,l,"next",e)}function l(e){p(i,n,a,o,l,"throw",e)}o(void 0)}))}}function d(){return(d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var h=[{value:"$eq",label:"Equal"},{value:"$ne",label:"Not equal"},{value:"$lt",label:"Less than"},{value:"$lte",label:"Less than or equal to"},{value:"$gt",label:"Greater than"},{value:"$gte",label:"Greater than or equal to"},{value:"$in",label:"Included in an array"},{value:"$notIn",label:"Not included in an array"},{value:"$contains",label:"Contains"},{value:"$notContains",label:"Does not contain"}];function m(e){if(null==e)throw new Error("Value must not be undefined or null");return e}var v="@plasmicpkgs/plasmic-strapi",y=function(e){return"currentStrapi"+l.pascalCase(e)+"Item"},g=s.createContext(void 0),b={name:"StrapiCredentialsProvider",displayName:"Strapi Credentials Provider",description:"[See tutorial video](https://www.youtube.com/watch?v=1SLoVY3hkQ4).\n\nAPI token is needed only if data is not publicly readable.\n\nLearn how to [get your API token](https://docs.strapi.io/user-docs/latest/settings/managing-global-settings.html#managing-api-tokens).",importName:"StrapiCredentialsProvider",importPath:v,props:{host:{type:"string",displayName:"Host",defaultValueHint:"https://strapi-app.plasmic.app",defaultValue:"https://strapi-app.plasmic.app",description:"Server where you application is hosted."},token:{type:"string",displayName:"API Token",description:"API Token (generated in http://yourhost/admin/settings/api-tokens) (or leave blank for unauthenticated usage)."}}};function w(e){var t,r=e.host,n=e.token,a=e.children;return r="/"===(null==(t=r)?void 0:t.slice(-1))?r.slice(0,-1):r,s.createElement(g.Provider,{value:{host:r,token:n}},a)}var x={name:"StrapiCollection",displayName:"Strapi Collection",importName:"StrapiCollection",importPath:v,providesData:!0,description:"Fetches Strapi data of a given collection, and repeats `children` slot content for each row fetched. [See tutorial video](https://www.youtube.com/watch?v=1SLoVY3hkQ4).",defaultStyles:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr 1fr",gridRowGap:"8px",gridColumnGap:"8px",padding:"8px",maxWidth:"100%"},props:{children:{type:"slot",defaultValue:{type:"vbox",children:{type:"component",name:"StrapiField"}}},name:{type:"string",displayName:"Name",description:"Name of the collection to be fetched.",defaultValueHint:"restaurants"},filterField:{type:"choice",displayName:"Filter field",description:"Field (from Collection) to filter by",options:function(e,t){var r;return null!=(r=null==t?void 0:t.strapiFields)?r:[]},hidden:function(e,t){return!e.name}},filterParameter:{type:"choice",displayName:"Filter Parameter",description:"Field Parameter filter by",options:function(e,t){return h.map((function(e){return{label:null==e?void 0:e.label,value:null==e?void 0:e.value}}))},hidden:function(e,t){return!e.filterField}},filterValue:{type:"string",displayName:"Filter value",description:"Value to filter by, should be of filter field type",hidden:function(e,t){return!e.filterParameter}},limit:{type:"number",displayName:"Limit",description:"Maximum n umber of collections to fetch (0 for unlimited)."},noLayout:{type:"boolean",displayName:"No layout",description:"When set, Strapi Collection 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},noAutoRepeat:{type:"boolean",displayName:"No auto-repeat",description:"Do not automatically repeat children for every category.",defaultValue:!1}}};function E(e){var t=e.name,r=e.filterParameter,l=e.filterValue,p=e.filterField,h=e.limit,v=e.children,b=e.className,w=e.noLayout,x=e.noAutoRepeat,E=e.setControlContextData,P=m(u.useContext(g));if(!P.host)return s.createElement("div",null,"Please specify a host.");var F=P.host+"/api/"+t,N=JSON.stringify({creds:P,name:t,filterField:p,filterValue:l,filterParameter:r}),L=a.usePlasmicQueryData(N,f(c().mark((function e(){var t,n,a,o;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(F){e.next=2;break}return e.abrupt("return",null);case 2:return a={method:"GET"},P.token&&(a.headers={Authorization:"Bearer "+P.token}),o=i.stringify(d({},p&&r&&l?{filters:(n={},n[p]=(t={},t[r]=l,t),n)}:{},{populate:"*"})),e.next=7,fetch(F+"?"+o,a);case 7:return e.abrupt("return",e.sent.json());case 9:case"end":return e.stop()}}),e)}))));if(null==L||!L.data)return s.createElement("div",null,"Please configure the Strapi provider with a valid host and token.");if(!o(L.data,["data"]))return s.createElement("div",null,"Please specify a valid collection.");var S,k=o(L.data,["data"]),C=k.flatMap((function(e){var t=o(e,["attributes"]);return Object.keys(t).filter((function(e){var r,n=t[e],a=null==n||null==(r=n.data)||null==(r=r.attributes)?void 0:r.mime;return"object"!=typeof n||"string"==typeof a&&a.startsWith("image")}))}));if(null==E||E({strapiFields:(S=null!=C?C:[],Array.from(new Set(S)))}),r&&!l&&!p)return s.createElement("div",null,"Please specify a Filter Field and a Filter Value");if(!r&&l&&!p)return s.createElement("div",null,"Please specify a Filter Parameter and a Filter Field");if(!r&&!l&&p)return s.createElement("div",null,"Please specify a Filter Parameter and a Filter Value");if(r&&l&&!p)return s.createElement("div",null,"Please specify a Filter Field");if(!r&&l&&p)return s.createElement("div",null,"Please specify a Filter Parameter");if(r&&!l&&p)return s.createElement("div",null,"Please specify a Filter Value");var j=h>0?k.slice(0,h):k;if(0===j.length)return s.createElement("div",null,"No collection found ");var O=x?v:j.map((function(e,r){return s.createElement(n.DataProvider,{key:e.id,name:"strapiItem",data:e,hidden:!0},s.createElement(n.DataProvider,{name:y(t),data:e},n.repeatedElement(r,v)))}));return s.createElement(n.DataProvider,{name:"strapiItems",data:j},w?s.createElement(s.Fragment,null," ",O," "):s.createElement("div",{className:b}," ",O," "))}var P={name:"StrapiField",displayName:"Strapi Field",importName:"StrapiField",importPath:v,props:{path:{type:"choice",options:function(e,t){var r;return null!=(r=null==t?void 0:t.fields)?r:[]},displayName:"Field",description:"Field name"}}};function F(e){var t,r=e.className,a=e.path,i=e.setControlContextData,l=n.useSelector("strapiItem");if(!l)return s.createElement("div",null,"StrapiField must be used within a StrapiCollection");var c=o(l,["attributes"]),p=Object.keys(c).filter((function(e){var t,r=c[e],n=null==(t=r.data)||null==(t=t.attributes)?void 0:t.mime;return"object"!=typeof r||"string"==typeof n&&n.startsWith("image")}));if(null==i||i({fields:p,isImage:!1}),!a)return s.createElement("div",null,"StrapiField must specify a field name.");var f=o(l,["attributes",a]),d=null==f||null==(t=f.data)||null==(t=t.attributes)?void 0:t.mime;if(null==i||i({fields:p,isImage:"string"==typeof d&&d.startsWith("image")}),f){if("string"==typeof d&&d.startsWith("image")){var h=m(u.useContext(g)),v=f.data.attributes,y=v.url.startsWith("http")?v.url:h.host+v.url;return s.createElement("img",{className:r,src:y,width:300,height:300*v.height/v.width})}return s.createElement("div",{className:r},f)}return s.createElement("div",null,"Please specify a valid field name.")}exports.StrapiCollection=E,exports.StrapiCredentialsProvider=w,exports.StrapiField=F,exports.ensure=m,exports.registerAll=function(e){var n=function(r,n){e?e.registerComponent(r,n):t(r,n)};e?e.registerGlobalContext(w,b):r(w,b),n(E,x),n(F,P)},exports.strapiCollectionMeta=x,exports.strapiCredentialsProviderMeta=b,exports.strapiFieldMeta=P;
|
|
2
|
-
//# sourceMappingURL=plasmic-strapi.cjs.production.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plasmic-strapi.cjs.production.min.js","sources":["../src/utils.ts","../src/strapi.tsx","../src/index.tsx"],"sourcesContent":["\nexport const queryParameters = [\n {\n value: '$eq',\n label: 'Equal'\n },\n {\n value: '$ne',\n label: 'Not equal'\n }, {\n value: '$lt',\n label: 'Less than'\n }, {\n value: '$lte',\n label: 'Less than or equal to'\n }, {\n value: '$gt',\n label: 'Greater than'\n }, {\n value: '$gte',\n label: 'Greater than or equal to'\n },\n {\n value: '$in',\n label: 'Included in an array'\n }, {\n value: '$notIn',\n label: 'Not included in an array'\n }, {\n value: '$contains',\n label: 'Contains'\n },\n {\n value: '$notContains',\n label: 'Does not contain'\n }, \n]\nexport const uniq = <T>(xs: Array<T>): T[] => Array.from(new Set(xs))","import {\n ComponentMeta,\n DataProvider,\n GlobalContextMeta,\n repeatedElement,\n useSelector,\n} from \"@plasmicapp/host\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport * as qs from \"qs\";\nimport get from \"dlv\";\nimport { pascalCase } from \"change-case\";\nimport React, { ReactNode, useContext } from \"react\";\nimport { queryParameters, uniq } from \"./utils\";\n\nexport function ensure<T>(x: T | null | undefined): T {\n if (x === null || x === undefined) {\n throw new Error(`Value must not be undefined or null`);\n } else {\n return x;\n }\n}\n\nconst modulePath = \"@plasmicpkgs/plasmic-strapi\";\n\nconst makeDataProviderName = (collection: string) =>\n `currentStrapi${pascalCase(collection)}Item`;\n\ninterface StrapiCredentialsProviderProps {\n host?: string;\n token?: string;\n}\n\nconst CredentialsContext = React.createContext<\n StrapiCredentialsProviderProps | undefined\n>(undefined);\n\nexport const strapiCredentialsProviderMeta: GlobalContextMeta<StrapiCredentialsProviderProps> =\n {\n name: \"StrapiCredentialsProvider\",\n displayName: \"Strapi Credentials Provider\",\n description: `[See tutorial video](https://www.youtube.com/watch?v=1SLoVY3hkQ4).\n\nAPI token is needed only if data is not publicly readable.\n\nLearn how to [get your API token](https://docs.strapi.io/user-docs/latest/settings/managing-global-settings.html#managing-api-tokens).`,\n importName: \"StrapiCredentialsProvider\",\n importPath: modulePath,\n props: {\n host: {\n type: \"string\",\n displayName: \"Host\",\n defaultValueHint: \"https://strapi-app.plasmic.app\",\n defaultValue: \"https://strapi-app.plasmic.app\",\n description: \"Server where you application is hosted.\",\n },\n token: {\n type: \"string\",\n displayName: \"API Token\",\n description:\n \"API Token (generated in http://yourhost/admin/settings/api-tokens) (or leave blank for unauthenticated usage).\",\n },\n },\n };\n\nexport function StrapiCredentialsProvider({\n host,\n token,\n children,\n}: React.PropsWithChildren<StrapiCredentialsProviderProps>) {\n host = host?.slice(-1) === \"/\" ? host.slice(0, -1) : host;\n return (\n <CredentialsContext.Provider value={{ host, token }}>\n {children}\n </CredentialsContext.Provider>\n );\n}\n\ninterface StrapiCollectionProps {\n name?: string;\n children?: ReactNode;\n className?: string;\n noLayout?: boolean;\n noAutoRepeat?: boolean;\n filterField?: string;\n filterValue?: string;\n limit?: number;\n filterParameter?: string;\n setControlContextData?: (data: { strapiFields: string[] }) => void;\n}\n\nexport const strapiCollectionMeta: ComponentMeta<StrapiCollectionProps> = {\n name: \"StrapiCollection\",\n displayName: \"Strapi Collection\",\n importName: \"StrapiCollection\",\n importPath: modulePath,\n providesData: true,\n description:\n \"Fetches Strapi data of a given collection, and repeats `children` slot content for each row fetched. [See tutorial video](https://www.youtube.com/watch?v=1SLoVY3hkQ4).\",\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 children: {\n type: \"component\",\n name: \"StrapiField\",\n },\n },\n },\n name: {\n type: \"string\",\n displayName: \"Name\",\n description: \"Name of the collection to be fetched.\",\n defaultValueHint: \"restaurants\",\n },\n filterField: {\n type: \"choice\",\n displayName: \"Filter field\",\n description: \"Field (from Collection) to filter by\",\n options: (props, ctx) => ctx?.strapiFields ?? [],\n hidden: (props, ctx) => !props.name,\n },\n filterParameter: {\n type: \"choice\",\n displayName: \"Filter Parameter\",\n description: \"Field Parameter filter by\",\n options: (props, ctx) => {\n return queryParameters.map((item: any) => ({\n label: item?.label,\n value: item?.value,\n }));\n },\n hidden: (props, ctx) => !props.filterField,\n },\n filterValue: {\n type: \"string\",\n displayName: \"Filter value\",\n description: \"Value to filter by, should be of filter field type\",\n hidden: (props, ctx) => !props.filterParameter,\n },\n limit: {\n type: \"number\",\n displayName: \"Limit\",\n description: \"Maximum n umber of collections to fetch (0 for unlimited).\",\n },\n noLayout: {\n type: \"boolean\",\n displayName: \"No layout\",\n description:\n \"When set, Strapi Collection 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 noAutoRepeat: {\n type: \"boolean\",\n displayName: \"No auto-repeat\",\n description: \"Do not automatically repeat children for every category.\",\n defaultValue: false,\n },\n },\n};\n\nexport function StrapiCollection({\n name,\n filterParameter,\n filterValue,\n filterField,\n limit,\n children,\n className,\n noLayout,\n noAutoRepeat,\n setControlContextData,\n}: StrapiCollectionProps) {\n const creds = ensure(useContext(CredentialsContext));\n\n if (!creds.host) {\n return <div>Please specify a host.</div>;\n }\n\n const query = creds.host + \"/api/\" + name;\n\n const cacheKey = JSON.stringify({\n creds,\n name,\n filterField,\n filterValue,\n filterParameter,\n });\n\n const data = usePlasmicQueryData<any[] | null>(cacheKey, async () => {\n if (!query) {\n return null;\n }\n\n const requestInit: any = { method: \"GET\" };\n if (creds.token) {\n requestInit.headers = { Authorization: \"Bearer \" + creds.token };\n }\n\n const queryParams = qs.stringify({\n ...(filterField && filterParameter && filterValue\n ? {\n filters: {\n [filterField]: {\n [filterParameter]: filterValue,\n },\n },\n }\n : {}),\n populate: \"*\",\n });\n\n const resp = await fetch(`${query}?${queryParams}`, requestInit);\n return resp.json();\n });\n\n if (!data?.data) {\n return (\n <div>\n Please configure the Strapi provider with a valid host and token.\n </div>\n );\n }\n\n if (!get(data.data, [\"data\"])) {\n return <div>Please specify a valid collection.</div>;\n }\n\n const collectionData = get(data.data, [\"data\"]) as any[];\n\n const filterFieds = collectionData.flatMap((item: any) => {\n const attributes = get(item, [\"attributes\"]);\n const displayableFields = Object.keys(attributes).filter((field) => {\n const value = attributes[field];\n const maybeMime = value?.data?.attributes?.mime;\n return (\n typeof value !== \"object\" ||\n (typeof maybeMime === \"string\" && maybeMime.startsWith(\"image\"))\n );\n });\n return displayableFields;\n });\n\n setControlContextData?.({\n strapiFields: uniq(filterFieds ?? []),\n });\n if (filterParameter && !filterValue && !filterField) {\n return <div>Please specify a Filter Field and a Filter Value</div>;\n }\n if (!filterParameter && filterValue && !filterField) {\n return <div>Please specify a Filter Parameter and a Filter Field</div>;\n }\n if (!filterParameter && !filterValue && filterField) {\n return <div>Please specify a Filter Parameter and a Filter Value</div>;\n }\n\n if (filterParameter && filterValue && !filterField) {\n return <div>Please specify a Filter Field</div>;\n }\n if (!filterParameter && filterValue && filterField) {\n return <div>Please specify a Filter Parameter</div>;\n }\n if (filterParameter && !filterValue && filterField) {\n return <div>Please specify a Filter Value</div>;\n }\n\n const collection =\n limit! > 0 ? collectionData.slice(0, limit) : collectionData;\n\n if (collection.length === 0) {\n return <div>No collection found </div>;\n }\n\n const repElements = noAutoRepeat\n ? children\n : collection.map((item, index) => (\n <DataProvider\n key={item.id}\n name={\"strapiItem\"}\n data={item}\n hidden={true}\n >\n <DataProvider name={makeDataProviderName(name!)} data={item}>\n {repeatedElement(index, children)}\n </DataProvider>\n </DataProvider>\n ));\n\n return (\n <DataProvider name=\"strapiItems\" data={collection}>\n {noLayout ? (\n <> {repElements} </>\n ) : (\n <div className={className}> {repElements} </div>\n )}\n </DataProvider>\n );\n}\n\ninterface StrapiFieldProps {\n className?: string;\n path?: string;\n setControlContextData?: (data: {\n fields: string[];\n isImage: boolean;\n }) => void;\n}\n\nexport const strapiFieldMeta: ComponentMeta<StrapiFieldProps> = {\n name: \"StrapiField\",\n displayName: \"Strapi Field\",\n importName: \"StrapiField\",\n importPath: modulePath,\n props: {\n path: {\n type: \"choice\",\n options: (props, ctx) => {\n return ctx?.fields ?? [];\n },\n displayName: \"Field\",\n description: \"Field name\",\n },\n },\n};\n\nexport function StrapiField({\n className,\n path,\n setControlContextData,\n}: StrapiFieldProps) {\n const item = useSelector(\"strapiItem\");\n if (!item) {\n return <div>StrapiField must be used within a StrapiCollection</div>;\n }\n\n // Getting only fields that aren't objects\n const attributes = get(item, [\"attributes\"]);\n const displayableFields = Object.keys(attributes).filter((field) => {\n const value = attributes[field];\n const maybeMime = value.data?.attributes?.mime;\n return (\n typeof value !== \"object\" ||\n (typeof maybeMime === \"string\" && maybeMime.startsWith(\"image\"))\n );\n });\n\n setControlContextData?.({\n fields: displayableFields,\n isImage: false,\n });\n\n if (!path) {\n return <div>StrapiField must specify a field name.</div>;\n }\n\n const data = get(item, [\"attributes\", path]);\n const maybeMime = data?.data?.attributes?.mime;\n\n setControlContextData?.({\n fields: displayableFields,\n isImage: typeof maybeMime === \"string\" && maybeMime.startsWith(\"image\"),\n });\n\n if (!data) {\n return <div>Please specify a valid field name.</div>;\n } else if (typeof maybeMime === \"string\" && maybeMime.startsWith(\"image\")) {\n const creds = ensure(useContext(CredentialsContext));\n const attrs = data.data.attributes;\n const img_url = attrs.url.startsWith(\"http\")\n ? attrs.url\n : creds.host + attrs.url;\n const img_width = attrs.width;\n const img_height = attrs.height;\n return (\n <img\n className={className}\n src={img_url}\n width={300}\n height={(300 * img_height) / img_width}\n />\n );\n } else {\n return <div className={className}>{data}</div>;\n }\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport {\n StrapiCredentialsProvider,\n strapiCredentialsProviderMeta,\n StrapiCollection,\n strapiCollectionMeta,\n StrapiField,\n strapiFieldMeta,\n} from \"./strapi\";\n\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(StrapiCredentialsProvider, strapiCredentialsProviderMeta);\n } else {\n registerGlobalContext(StrapiCredentialsProvider, strapiCredentialsProviderMeta);\n }\n\n _registerComponent(StrapiCollection, strapiCollectionMeta);\n _registerComponent(StrapiField, strapiFieldMeta);\n}\n\nexport * from \"./strapi\";"],"names":["queryParameters","value","label","ensure","x","Error","modulePath","makeDataProviderName","collection","pascalCase","CredentialsContext","React","createContext","undefined","strapiCredentialsProviderMeta","name","displayName","description","importName","importPath","props","host","type","defaultValueHint","defaultValue","token","StrapiCredentialsProvider","_ref","children","_host","slice","Provider","strapiCollectionMeta","providesData","defaultStyles","display","gridTemplateColumns","gridRowGap","gridColumnGap","padding","maxWidth","filterField","options","ctx","_ctx$strapiFields","strapiFields","hidden","filterParameter","map","item","filterValue","limit","noLayout","noAutoRepeat","StrapiCollection","_ref2","className","setControlContextData","creds","useContext","query","cacheKey","JSON","stringify","data","usePlasmicQueryData","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_filterField","_filters","requestInit","queryParams","wrap","_context","prev","next","abrupt","method","headers","Authorization","qs","_extends","filters","populate","fetch","sent","json","stop","get","xs","collectionData","filterFieds","flatMap","attributes","Object","keys","filter","field","maybeMime","_value$data","mime","startsWith","Array","from","Set","length","repElements","index","DataProvider","key","id","repeatedElement","strapiFieldMeta","path","_ctx$fields","fields","StrapiField","_ref4","useSelector","displayableFields","_value$data2","isImage","_data$data","attrs","img_url","url","src","width","height","loader","_registerComponent","Component","defaultMeta","registerComponent","registerGlobalContext"],"mappings":"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"}
|