@plasmicpkgs/plasmic-yotpo 0.0.88 → 0.0.89

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 +1 @@
1
- {"version":3,"file":"plasmic-yotpo.cjs.development.js","sources":["../src/yotpo.tsx","../src/index.tsx"],"sourcesContent":["import { CodeComponentMeta } from \"@plasmicapp/host/registerComponent\";\nimport { GlobalContextMeta } from \"@plasmicapp/host/registerGlobalContext\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport isArray from \"lodash/isArray\";\nimport React, { useContext } from \"react\";\n\nimport { Image, ProductElement, ReviewResponse } from \"./types\";\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-yotpo\";\n\ninterface YotpoProps {\n appKey: string;\n uToken: string;\n}\n\nconst CredentialsContext = React.createContext<YotpoProps | undefined>(\n undefined\n);\n\nexport const YotpoCredentialsProviderMeta: GlobalContextMeta<YotpoProps> = {\n name: \"Yotpo\",\n displayName: \"Yotpo Credentials Provider\",\n description:\n \"Your app key is sometimes referred to as your Store ID.[get your App Key](https://support.yotpo.com/en/article/finding-your-yotpo-app-key-and-secret-key).\",\n importName: \"Yotpo\",\n importPath: modulePath,\n props: {\n appKey: {\n type: \"string\",\n displayName: \"App Key\",\n description: \"App Key of your Yotpo Store \",\n },\n uToken: {\n type: \"string\",\n displayName: \"UToken\",\n description:\n \"Utoken is required in non-public API calls to ensure private account data is accessible only by authorized users.\",\n },\n },\n};\n\nexport function YotpoCredentialsProvider({\n appKey,\n uToken,\n children,\n}: React.PropsWithChildren<YotpoProps>) {\n return (\n <CredentialsContext.Provider value={{ appKey, uToken }}>\n {children}\n </CredentialsContext.Provider>\n );\n}\n\ninterface YotpoReviewsProps {\n reviewId?: string;\n productPrice?: string;\n currency?: string;\n setControlContextData?: (data: {\n reviews?: { name: string; id: number }[];\n }) => void;\n className?: string;\n}\n\nexport const YotpoReviewsMeta: CodeComponentMeta<YotpoReviewsProps> = {\n name: \"hostless-yotpo-star-reviews\",\n displayName: \"Yotpo Reviews\",\n importName: \"YotpoReviews\",\n importPath: modulePath,\n providesData: true,\n description: \"Yotpo Reviews for your product pages \",\n defaultStyles: {\n width: \"400px\",\n height: \"600px\",\n },\n props: {\n reviewId: {\n type: \"choice\",\n options: (props, ctx) =>\n ctx?.reviews?.map((item: any) => ({\n label: item?.name,\n value: item?.id,\n })) ?? [],\n displayName: \"Review\",\n description: \"Review Widget which to be displayed\",\n },\n productPrice: {\n type: \"string\",\n displayName: \"Price\",\n description: \"Price of the Product\",\n },\n currency: {\n type: \"string\",\n displayName: \"Currency\",\n description: \"Currency\",\n },\n },\n};\n\nexport function YotpoReviews({\n reviewId,\n setControlContextData,\n productPrice,\n currency,\n className,\n}: YotpoReviewsProps) {\n const creds = ensure(useContext(CredentialsContext));\n const cacheKey = JSON.stringify({\n creds,\n reviewId,\n });\n React.useEffect(() => {\n const script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.async = true;\n script.innerHTML = `(function e(){var e=document.createElement(\"script\");e.type=\"text/javascript\",e.async=true,e.src=\"//staticw2.yotpo.com/${creds.appKey}/widget.js\";var t=document.getElementsByTagName(\"script\")[0];t.parentNode.insertBefore(e,t)})();`;\n document.body.appendChild(script);\n\n return () => {\n document.body.removeChild(script);\n };\n }, [creds]);\n\n const { data: reviewsData } = usePlasmicQueryData<any | null>(\n `${cacheKey}/reviews`,\n async () => {\n const options = {\n method: \"GET\",\n headers: {\n accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n };\n\n const res = await fetch(\n `https://api.yotpo.com/v1/apps/${creds.appKey}/reviews?utoken=${creds.uToken}`,\n options\n );\n return res.json();\n }\n );\n\n const { data: reviewData } = usePlasmicQueryData<ReviewResponse | null>(\n `${cacheKey}/review`,\n async () => {\n if (!reviewId) {\n return undefined;\n }\n const options = {\n method: \"GET\",\n headers: {\n accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n };\n\n const res = await fetch(\n `https://api.yotpo.com/reviews/${reviewId}?utoken=${creds.uToken}`,\n options\n );\n return res.json();\n }\n );\n\n if (!reviewsData) {\n return (\n <div>\n Please configure the Yotpo Credentials provider with valid AppKey.\n </div>\n );\n }\n const data = Object.values(reviewsData).map((item: any) => item);\n\n setControlContextData?.({\n reviews: data[0] || [],\n });\n\n if (!creds.uToken || !creds.appKey) {\n return <div>Please specify a valid API Credentials: uToken,appKey</div>;\n }\n\n if (!reviewData) {\n return <div>Please choose the reviewId</div>;\n }\n\n if (!productPrice || !currency) {\n return <div> Please enter Product price and Currency</div>;\n }\n\n const review = Object.values(reviewsData).flatMap((item: any) =>\n (isArray(item) ? item : [item]).filter((r: any) => r.id === reviewId)\n );\n\n const renderedData = reviewData?.response.review.products.map(\n (item: ProductElement) => {\n const imageUrl = item?.Product.images.map((image: Image) => {\n return image.image_url;\n });\n return (\n <div\n key={item.Product.id}\n className=\"yotpo yotpo-main-widget\"\n data-product-id={review[0]?.sku}\n data-price={productPrice}\n data-currency={currency}\n data-name={item?.Product.name}\n data-url={item?.Product.shorten_url}\n data-image-url={imageUrl}\n ></div>\n );\n }\n );\n return <div className={className}>{renderedData}</div>;\n}\n\ninterface YotpoStarRatingProps {\n productId: string;\n className?: string;\n setControlContextData?: (data: {\n reviews?: { name: string; id: number }[];\n }) => void;\n}\n\nexport const YotpoStarRatingMeta: CodeComponentMeta<YotpoStarRatingProps> = {\n name: \"hostless-yotpo-star-rating\",\n displayName: \"Yotpo Star Rating\",\n importName: \"YotpoStarRating\",\n importPath: modulePath,\n providesData: true,\n description: \"Yotpo Star Rating for your product pages \",\n props: {\n productId: {\n type: \"choice\",\n options: (props, ctx) =>\n ctx?.reviews?.map((item: any) => ({\n label: item?.name,\n value: item?.id,\n })) ?? [],\n displayName: \"Product\",\n description: \"Product which you want to show rating\",\n },\n },\n};\n\nexport function YotpoStarRating({\n productId,\n className,\n setControlContextData,\n}: YotpoStarRatingProps) {\n const creds = ensure(useContext(CredentialsContext));\n const cacheKey = JSON.stringify({\n creds,\n productId,\n });\n React.useEffect(() => {\n const script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.async = true;\n script.innerHTML = `(function e(){var e=document.createElement(\"script\");e.type=\"text/javascript\",e.async=true,e.src=\"//staticw2.yotpo.com/${creds.appKey}/widget.js\";var t=document.getElementsByTagName(\"script\")[0];t.parentNode.insertBefore(e,t)})();`;\n document.body.appendChild(script);\n\n return () => {\n document.body.removeChild(script);\n };\n }, [creds]);\n\n const { data: reviews } = usePlasmicQueryData<any | null>(\n `${cacheKey}/starReviews`,\n async () => {\n const options = {\n method: \"GET\",\n headers: {\n accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n };\n\n const res = await fetch(\n `https://api.yotpo.com/v1/apps/${creds.appKey}/reviews?utoken=${creds.uToken}`,\n options\n );\n return res.json();\n }\n );\n const { data: review } = usePlasmicQueryData<ReviewResponse | null>(\n `${cacheKey}/starReview`,\n async () => {\n if (!productId) {\n return undefined;\n }\n const options = {\n method: \"GET\",\n headers: {\n accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n };\n\n const res = await fetch(\n `https://api.yotpo.com/reviews/${productId}?utoken=${creds.uToken}`,\n options\n );\n return res.json();\n }\n );\n\n if (!creds.uToken || !creds.appKey) {\n return <div>Please specify a valid API Credentials: uToken,appKey</div>;\n }\n\n if (!reviews) {\n return (\n <div>\n Please configure the Yotpo Credentials provider with valid AppKey.\n </div>\n );\n }\n\n const data = Object.values(reviews).map((item: any) => item);\n\n setControlContextData?.({\n reviews: data[0] || [],\n });\n\n if (!review) {\n return (\n <div>\n Please configure the Yotpo Credentials provider with valid AppKey.\n </div>\n );\n }\n const product = Object.values(reviews).flatMap((item: any) =>\n (isArray(item) ? item : [item]).filter((r: any) => r.id === productId)\n );\n\n const renderedData = review?.response.review.products.map(\n (item: ProductElement) => (\n <div\n className=\"yotpo bottomLine\"\n data-product-id={product[0]?.sku}\n data-url={item.Product.product_url}\n />\n )\n );\n\n return <div className={className}>{renderedData}</div>;\n}\n","import registerComponent, {\n CodeComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport React from \"react\";\nimport {\n YotpoCredentialsProvider,\n YotpoCredentialsProviderMeta,\n YotpoReviews,\n YotpoReviewsMeta,\n YotpoStarRating,\n YotpoStarRatingMeta,\n} from \"./yotpo\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n}) {\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: CodeComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n\n if (loader) {\n loader.registerGlobalContext(\n YotpoCredentialsProvider,\n YotpoCredentialsProviderMeta\n );\n } else {\n registerGlobalContext(\n YotpoCredentialsProvider,\n YotpoCredentialsProviderMeta\n );\n }\n\n _registerComponent(YotpoReviews, YotpoReviewsMeta);\n _registerComponent(YotpoStarRating, YotpoStarRatingMeta);\n}\n\nexport * from \"./yotpo\";\n"],"names":["ensure","x","undefined","Error","modulePath","CredentialsContext","React","createContext","YotpoCredentialsProviderMeta","name","displayName","description","importName","importPath","props","appKey","type","uToken","YotpoCredentialsProvider","_ref","children","Provider","value","YotpoReviewsMeta","providesData","defaultStyles","width","height","reviewId","options","ctx","_ctx$reviews$map","_ctx$reviews","reviews","map","item","label","id","productPrice","currency","YotpoReviews","_ref2","setControlContextData","className","creds","useContext","cacheKey","JSON","stringify","useEffect","script","document","createElement","async","innerHTML","body","appendChild","removeChild","_usePlasmicQueryData","usePlasmicQueryData","_asyncToGenerator","_regeneratorRuntime","mark","_callee","res","wrap","_callee$","_context","prev","next","method","headers","accept","fetch","sent","abrupt","json","stop","reviewsData","data","_usePlasmicQueryData2","_callee2","_callee2$","_context2","reviewData","Object","values","review","flatMap","isArray","filter","r","renderedData","response","products","imageUrl","Product","images","image","image_url","key","_review$","sku","shorten_url","YotpoStarRatingMeta","productId","_ctx$reviews$map2","_ctx$reviews2","YotpoStarRating","_ref5","_usePlasmicQueryData3","_callee3","_callee3$","_context3","_usePlasmicQueryData4","_callee4","_callee4$","_context4","product","_product$","product_url","registerAll","loader","_registerComponent","Component","defaultMeta","registerComponent","registerGlobalContext"],"mappings":"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"}
1
+ {"version":3,"file":"plasmic-yotpo.cjs.development.js","sources":["../src/yotpo.tsx","../src/index.tsx"],"sourcesContent":["import { CodeComponentMeta } from \"@plasmicapp/host/registerComponent\";\nimport { GlobalContextMeta } from \"@plasmicapp/host/registerGlobalContext\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport isArray from \"lodash/isArray\";\nimport React, { useContext } from \"react\";\n\nimport { Image, ProductElement, ReviewResponse } from \"./types\";\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-yotpo\";\n\ninterface YotpoProps {\n appKey: string;\n uToken: string;\n}\n\nconst CredentialsContext = React.createContext<YotpoProps | undefined>(\n undefined\n);\n\nexport const YotpoCredentialsProviderMeta: GlobalContextMeta<YotpoProps> = {\n name: \"Yotpo\",\n displayName: \"Yotpo Credentials Provider\",\n description:\n \"Your app key is sometimes referred to as your Store ID.[get your App Key](https://support.yotpo.com/en/article/finding-your-yotpo-app-key-and-secret-key).\",\n importName: \"Yotpo\",\n importPath: modulePath,\n props: {\n appKey: {\n type: \"string\",\n displayName: \"App Key\",\n description: \"App Key of your Yotpo Store \",\n },\n uToken: {\n type: \"string\",\n displayName: \"UToken\",\n description:\n \"Utoken is required in non-public API calls to ensure private account data is accessible only by authorized users.\",\n },\n },\n};\n\nexport function YotpoCredentialsProvider({\n appKey,\n uToken,\n children,\n}: React.PropsWithChildren<YotpoProps>) {\n return (\n <CredentialsContext.Provider value={{ appKey, uToken }}>\n {children}\n </CredentialsContext.Provider>\n );\n}\n\ninterface YotpoReviewsProps {\n reviewId?: string;\n productPrice?: string;\n currency?: string;\n setControlContextData?: (data: {\n reviews?: { name: string; id: number }[];\n }) => void;\n className?: string;\n}\n\nexport const YotpoReviewsMeta: CodeComponentMeta<YotpoReviewsProps> = {\n name: \"hostless-yotpo-star-reviews\",\n displayName: \"Yotpo Reviews\",\n importName: \"YotpoReviews\",\n importPath: modulePath,\n providesData: true,\n description: \"Yotpo Reviews for your product pages \",\n defaultStyles: {\n width: \"400px\",\n height: \"600px\",\n },\n props: {\n reviewId: {\n type: \"choice\",\n options: (props, ctx) =>\n ctx?.reviews?.map((item: any) => ({\n label: item?.name,\n value: item?.id,\n })) ?? [],\n displayName: \"Review\",\n description: \"Review Widget which to be displayed\",\n },\n productPrice: {\n type: \"string\",\n displayName: \"Price\",\n description: \"Price of the Product\",\n },\n currency: {\n type: \"string\",\n displayName: \"Currency\",\n description: \"Currency\",\n },\n },\n};\n\nexport function YotpoReviews({\n reviewId,\n setControlContextData,\n productPrice,\n currency,\n className,\n}: YotpoReviewsProps) {\n const creds = ensure(useContext(CredentialsContext));\n const cacheKey = JSON.stringify({\n creds,\n reviewId,\n });\n React.useEffect(() => {\n const script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.async = true;\n script.innerHTML = `(function e(){var e=document.createElement(\"script\");e.type=\"text/javascript\",e.async=true,e.src=\"//staticw2.yotpo.com/${creds.appKey}/widget.js\";var t=document.getElementsByTagName(\"script\")[0];t.parentNode.insertBefore(e,t)})();`;\n document.body.appendChild(script);\n\n return () => {\n document.body.removeChild(script);\n };\n }, [creds]);\n\n const { data: reviewsData } = usePlasmicQueryData<any | null>(\n `${cacheKey}/reviews`,\n async () => {\n const options = {\n method: \"GET\",\n headers: {\n accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n };\n\n const res = await fetch(\n `https://api.yotpo.com/v1/apps/${creds.appKey}/reviews?utoken=${creds.uToken}`,\n options\n );\n return res.json();\n }\n );\n\n const { data: reviewData } = usePlasmicQueryData<ReviewResponse | null>(\n `${cacheKey}/review`,\n async () => {\n if (!reviewId) {\n return undefined;\n }\n const options = {\n method: \"GET\",\n headers: {\n accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n };\n\n const res = await fetch(\n `https://api.yotpo.com/reviews/${reviewId}?utoken=${creds.uToken}`,\n options\n );\n return res.json();\n }\n );\n\n if (!reviewsData) {\n return (\n <div>\n Please configure the Yotpo Credentials provider with valid AppKey.\n </div>\n );\n }\n const data = Object.values(reviewsData).map((item: any) => item);\n\n setControlContextData?.({\n reviews: data[0] || [],\n });\n\n if (!creds.uToken || !creds.appKey) {\n return <div>Please specify a valid API Credentials: uToken,appKey</div>;\n }\n\n if (!reviewData) {\n return <div>Please choose the reviewId</div>;\n }\n\n if (!productPrice || !currency) {\n return <div> Please enter Product price and Currency</div>;\n }\n\n const review = Object.values(reviewsData).flatMap((item: any) =>\n (isArray(item) ? item : [item]).filter((r: any) => r.id === reviewId)\n );\n\n const renderedData = reviewData?.response.review.products.map(\n (item: ProductElement) => {\n const imageUrl = item?.Product.images.map((image: Image) => {\n return image.image_url;\n });\n return (\n <div\n key={item.Product.id}\n className=\"yotpo yotpo-main-widget\"\n data-product-id={review[0]?.sku}\n data-price={productPrice}\n data-currency={currency}\n data-name={item?.Product.name}\n data-url={item?.Product.shorten_url}\n data-image-url={imageUrl}\n ></div>\n );\n }\n );\n return <div className={className}>{renderedData}</div>;\n}\n\ninterface YotpoStarRatingProps {\n productId: string;\n className?: string;\n setControlContextData?: (data: {\n reviews?: { name: string; id: number }[];\n }) => void;\n}\n\nexport const YotpoStarRatingMeta: CodeComponentMeta<YotpoStarRatingProps> = {\n name: \"hostless-yotpo-star-rating\",\n displayName: \"Yotpo Star Rating\",\n importName: \"YotpoStarRating\",\n importPath: modulePath,\n providesData: true,\n description: \"Yotpo Star Rating for your product pages \",\n props: {\n productId: {\n type: \"choice\",\n options: (props, ctx) =>\n ctx?.reviews?.map((item: any) => ({\n label: item?.name,\n value: item?.id,\n })) ?? [],\n displayName: \"Product\",\n description: \"Product which you want to show rating\",\n },\n },\n};\n\nexport function YotpoStarRating({\n productId,\n className,\n setControlContextData,\n}: YotpoStarRatingProps) {\n const creds = ensure(useContext(CredentialsContext));\n const cacheKey = JSON.stringify({\n creds,\n productId,\n });\n React.useEffect(() => {\n const script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.async = true;\n script.innerHTML = `(function e(){var e=document.createElement(\"script\");e.type=\"text/javascript\",e.async=true,e.src=\"//staticw2.yotpo.com/${creds.appKey}/widget.js\";var t=document.getElementsByTagName(\"script\")[0];t.parentNode.insertBefore(e,t)})();`;\n document.body.appendChild(script);\n\n return () => {\n document.body.removeChild(script);\n };\n }, [creds]);\n\n const { data: reviews } = usePlasmicQueryData<any | null>(\n `${cacheKey}/starReviews`,\n async () => {\n const options = {\n method: \"GET\",\n headers: {\n accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n };\n\n const res = await fetch(\n `https://api.yotpo.com/v1/apps/${creds.appKey}/reviews?utoken=${creds.uToken}`,\n options\n );\n return res.json();\n }\n );\n const { data: review } = usePlasmicQueryData<ReviewResponse | null>(\n `${cacheKey}/starReview`,\n async () => {\n if (!productId) {\n return undefined;\n }\n const options = {\n method: \"GET\",\n headers: {\n accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n };\n\n const res = await fetch(\n `https://api.yotpo.com/reviews/${productId}?utoken=${creds.uToken}`,\n options\n );\n return res.json();\n }\n );\n\n if (!creds.uToken || !creds.appKey) {\n return <div>Please specify a valid API Credentials: uToken,appKey</div>;\n }\n\n if (!reviews) {\n return (\n <div>\n Please configure the Yotpo Credentials provider with valid AppKey.\n </div>\n );\n }\n\n const data = Object.values(reviews).map((item: any) => item);\n\n setControlContextData?.({\n reviews: data[0] || [],\n });\n\n if (!review) {\n return (\n <div>\n Please configure the Yotpo Credentials provider with valid AppKey.\n </div>\n );\n }\n const product = Object.values(reviews).flatMap((item: any) =>\n (isArray(item) ? item : [item]).filter((r: any) => r.id === productId)\n );\n\n const renderedData = review?.response.review.products.map(\n (item: ProductElement) => (\n <div\n className=\"yotpo bottomLine\"\n data-product-id={product[0]?.sku}\n data-url={item.Product.product_url}\n />\n )\n );\n\n return <div className={className}>{renderedData}</div>;\n}\n","import registerComponent, {\n CodeComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport React from \"react\";\nimport {\n YotpoCredentialsProvider,\n YotpoCredentialsProviderMeta,\n YotpoReviews,\n YotpoReviewsMeta,\n YotpoStarRating,\n YotpoStarRatingMeta,\n} from \"./yotpo\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n}) {\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: CodeComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n\n if (loader) {\n loader.registerGlobalContext(\n YotpoCredentialsProvider,\n YotpoCredentialsProviderMeta\n );\n } else {\n registerGlobalContext(\n YotpoCredentialsProvider,\n YotpoCredentialsProviderMeta\n );\n }\n\n _registerComponent(YotpoReviews, YotpoReviewsMeta);\n _registerComponent(YotpoStarRating, YotpoStarRatingMeta);\n}\n\nexport * from \"./yotpo\";\n"],"names":["ensure","x","undefined","Error","modulePath","CredentialsContext","React","createContext","YotpoCredentialsProviderMeta","name","displayName","description","importName","importPath","props","appKey","type","uToken","YotpoCredentialsProvider","_ref","children","Provider","value","YotpoReviewsMeta","providesData","defaultStyles","width","height","reviewId","options","ctx","_ctx$reviews$map","_ctx$reviews","reviews","map","item","label","id","productPrice","currency","YotpoReviews","_ref2","setControlContextData","className","creds","useContext","cacheKey","JSON","stringify","useEffect","script","document","createElement","async","innerHTML","body","appendChild","removeChild","_usePlasmicQueryData","usePlasmicQueryData","_asyncToGenerator","_regenerator","m","_callee","res","w","_context","n","method","headers","accept","fetch","v","a","json","reviewsData","data","_usePlasmicQueryData2","_callee2","_context2","reviewData","Object","values","review","flatMap","isArray","filter","r","renderedData","response","products","imageUrl","Product","images","image","image_url","key","_review$","sku","shorten_url","YotpoStarRatingMeta","productId","_ctx$reviews$map2","_ctx$reviews2","YotpoStarRating","_ref5","_usePlasmicQueryData3","_callee3","_context3","_usePlasmicQueryData4","_callee4","_context4","product","_product$","product_url","registerAll","loader","_registerComponent","Component","defaultMeta","registerComponent","registerGlobalContext"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("@plasmicapp/host/registerComponent")),r=e(require("@plasmicapp/host/registerGlobalContext")),n=require("@plasmicapp/query"),o=e(require("lodash/isArray")),a=require("react"),i=e(a);function u(e,t,r,n,o,a,i){try{var u=e[a](i),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function c(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){u(a,n,o,i,c,"next",e)}function c(e){u(a,n,o,i,c,"throw",e)}i(void 0)}))}}function s(){s=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},a="function"==typeof Symbol?Symbol:{},i=a.iterator||"@@iterator",u=a.asyncIterator||"@@asyncIterator",c=a.toStringTag||"@@toStringTag";function p(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(e){p=function(e,t,r){return e[t]=r}}function l(e,t,r,n){var a=Object.create((t&&t.prototype instanceof m?t:m).prototype),i=new Y(n||[]);return o(a,"_invoke",{value:N(e,r,i)}),a}function d(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=l;var f="suspendedStart",v="executing",h="completed",y={};function m(){}function g(){}function w(){}var x={};p(x,i,(function(){return this}));var b=Object.getPrototypeOf,E=b&&b(b(O([])));E&&E!==r&&n.call(E,i)&&(x=E);var P=w.prototype=m.prototype=Object.create(x);function k(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function j(e,t){function r(o,a,i,u){var c=d(e[o],e,a);if("throw"!==c.type){var s=c.arg,p=s.value;return p&&"object"==typeof p&&n.call(p,"__await")?t.resolve(p.__await).then((function(e){r("next",e,i,u)}),(function(e){r("throw",e,i,u)})):t.resolve(p).then((function(e){s.value=e,i(s)}),(function(e){return r("throw",e,i,u)}))}u(c.arg)}var a;o(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,o){r(e,n,t,o)}))}return a=a?a.then(o,o):o()}})}function N(t,r,n){var o=f;return function(a,i){if(o===v)throw Error("Generator is already running");if(o===h){if("throw"===a)throw i;return{value:e,done:!0}}for(n.method=a,n.arg=i;;){var u=n.delegate;if(u){var c=L(u,n);if(c){if(c===y)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===f)throw o=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=v;var s=d(t,r,n);if("normal"===s.type){if(o=n.done?h:"suspendedYield",s.arg===y)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=h,n.method="throw",n.arg=s.arg)}}}function L(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,L(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=d(o,t.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var i=a.arg;return i?i.done?(r[t.resultName]=i.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,y):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function C(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 T(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function Y(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(C,this),this.reset(!0)}function O(t){if(t||""===t){var r=t[i];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,a=function r(){for(;++o<t.length;)if(n.call(t,o))return r.value=t[o],r.done=!1,r;return r.value=e,r.done=!0,r};return a.next=a}}throw new TypeError(typeof t+" is not iterable")}return g.prototype=w,o(P,"constructor",{value:w,configurable:!0}),o(w,"constructor",{value:g,configurable:!0}),g.displayName=p(w,c,"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,w):(e.__proto__=w,p(e,c,"GeneratorFunction")),e.prototype=Object.create(P),e},t.awrap=function(e){return{__await:e}},k(j.prototype),p(j.prototype,u,(function(){return this})),t.AsyncIterator=j,t.async=function(e,r,n,o,a){void 0===a&&(a=Promise);var i=new j(l(e,r,n,o),a);return t.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},k(P),p(P,c,"Generator"),p(P,i,(function(){return this})),p(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,Y.prototype={constructor:Y,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(T),!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 o(n,o){return u.type="throw",u.arg=t,r.next=n,o&&(r.method="next",r.arg=e),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],u=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return o(i.catchLoc,!0);if(this.prev<i.finallyLoc)return o(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return o(i.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return o(i.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,y):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),y},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),T(r),y}},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 o=n.arg;T(r)}return o}}throw 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),y}},t}function p(e){if(null==e)throw new Error("Value must not be undefined or null");return e}var l="@plasmicpkgs/plasmic-yotpo",d=i.createContext(void 0),f={name:"Yotpo",displayName:"Yotpo Credentials Provider",description:"Your app key is sometimes referred to as your Store ID.[get your App Key](https://support.yotpo.com/en/article/finding-your-yotpo-app-key-and-secret-key).",importName:"Yotpo",importPath:l,props:{appKey:{type:"string",displayName:"App Key",description:"App Key of your Yotpo Store "},uToken:{type:"string",displayName:"UToken",description:"Utoken is required in non-public API calls to ensure private account data is accessible only by authorized users."}}};function v(e){return i.createElement(d.Provider,{value:{appKey:e.appKey,uToken:e.uToken}},e.children)}var h={name:"hostless-yotpo-star-reviews",displayName:"Yotpo Reviews",importName:"YotpoReviews",importPath:l,providesData:!0,description:"Yotpo Reviews for your product pages ",defaultStyles:{width:"400px",height:"600px"},props:{reviewId:{type:"choice",options:function(e,t){var r,n;return null!=(r=null==t||null==(n=t.reviews)?void 0:n.map((function(e){return{label:null==e?void 0:e.name,value:null==e?void 0:e.id}})))?r:[]},displayName:"Review",description:"Review Widget which to be displayed"},productPrice:{type:"string",displayName:"Price",description:"Price of the Product"},currency:{type:"string",displayName:"Currency",description:"Currency"}}};function y(e){var t=e.reviewId,r=e.setControlContextData,u=e.productPrice,l=e.currency,f=e.className,v=p(a.useContext(d)),h=JSON.stringify({creds:v,reviewId:t});i.useEffect((function(){var e=document.createElement("script");return e.type="text/javascript",e.async=!0,e.innerHTML='(function e(){var e=document.createElement("script");e.type="text/javascript",e.async=true,e.src="//staticw2.yotpo.com/'+v.appKey+'/widget.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})();',document.body.appendChild(e),function(){document.body.removeChild(e)}}),[v]);var y=n.usePlasmicQueryData(h+"/reviews",c(s().mark((function e(){var t;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t={method:"GET",headers:{accept:"application/json","Content-Type":"application/json"}},e.next=3,fetch("https://api.yotpo.com/v1/apps/"+v.appKey+"/reviews?utoken="+v.uToken,t);case 3:return e.abrupt("return",e.sent.json());case 5:case"end":return e.stop()}}),e)})))).data,m=n.usePlasmicQueryData(h+"/review",c(s().mark((function e(){var r;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}return e.abrupt("return",void 0);case 2:return r={method:"GET",headers:{accept:"application/json","Content-Type":"application/json"}},e.next=5,fetch("https://api.yotpo.com/reviews/"+t+"?utoken="+v.uToken,r);case 5:return e.abrupt("return",e.sent.json());case 7:case"end":return e.stop()}}),e)})))).data;if(!y)return i.createElement("div",null,"Please configure the Yotpo Credentials provider with valid AppKey.");var g=Object.values(y).map((function(e){return e}));if(null==r||r({reviews:g[0]||[]}),!v.uToken||!v.appKey)return i.createElement("div",null,"Please specify a valid API Credentials: uToken,appKey");if(!m)return i.createElement("div",null,"Please choose the reviewId");if(!u||!l)return i.createElement("div",null," Please enter Product price and Currency");var w=Object.values(y).flatMap((function(e){return(o(e)?e:[e]).filter((function(e){return e.id===t}))})),x=null==m?void 0:m.response.review.products.map((function(e){var t,r=null==e?void 0:e.Product.images.map((function(e){return e.image_url}));return i.createElement("div",{key:e.Product.id,className:"yotpo yotpo-main-widget","data-product-id":null==(t=w[0])?void 0:t.sku,"data-price":u,"data-currency":l,"data-name":null==e?void 0:e.Product.name,"data-url":null==e?void 0:e.Product.shorten_url,"data-image-url":r})}));return i.createElement("div",{className:f},x)}var m={name:"hostless-yotpo-star-rating",displayName:"Yotpo Star Rating",importName:"YotpoStarRating",importPath:l,providesData:!0,description:"Yotpo Star Rating for your product pages ",props:{productId:{type:"choice",options:function(e,t){var r,n;return null!=(r=null==t||null==(n=t.reviews)?void 0:n.map((function(e){return{label:null==e?void 0:e.name,value:null==e?void 0:e.id}})))?r:[]},displayName:"Product",description:"Product which you want to show rating"}}};function g(e){var t=e.productId,r=e.className,u=e.setControlContextData,l=p(a.useContext(d)),f=JSON.stringify({creds:l,productId:t});i.useEffect((function(){var e=document.createElement("script");return e.type="text/javascript",e.async=!0,e.innerHTML='(function e(){var e=document.createElement("script");e.type="text/javascript",e.async=true,e.src="//staticw2.yotpo.com/'+l.appKey+'/widget.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})();',document.body.appendChild(e),function(){document.body.removeChild(e)}}),[l]);var v=n.usePlasmicQueryData(f+"/starReviews",c(s().mark((function e(){var t;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t={method:"GET",headers:{accept:"application/json","Content-Type":"application/json"}},e.next=3,fetch("https://api.yotpo.com/v1/apps/"+l.appKey+"/reviews?utoken="+l.uToken,t);case 3:return e.abrupt("return",e.sent.json());case 5:case"end":return e.stop()}}),e)})))).data,h=n.usePlasmicQueryData(f+"/starReview",c(s().mark((function e(){var r;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}return e.abrupt("return",void 0);case 2:return r={method:"GET",headers:{accept:"application/json","Content-Type":"application/json"}},e.next=5,fetch("https://api.yotpo.com/reviews/"+t+"?utoken="+l.uToken,r);case 5:return e.abrupt("return",e.sent.json());case 7:case"end":return e.stop()}}),e)})))).data;if(!l.uToken||!l.appKey)return i.createElement("div",null,"Please specify a valid API Credentials: uToken,appKey");if(!v)return i.createElement("div",null,"Please configure the Yotpo Credentials provider with valid AppKey.");var y=Object.values(v).map((function(e){return e}));if(null==u||u({reviews:y[0]||[]}),!h)return i.createElement("div",null,"Please configure the Yotpo Credentials provider with valid AppKey.");var m=Object.values(v).flatMap((function(e){return(o(e)?e:[e]).filter((function(e){return e.id===t}))})),g=null==h?void 0:h.response.review.products.map((function(e){var t;return i.createElement("div",{className:"yotpo bottomLine","data-product-id":null==(t=m[0])?void 0:t.sku,"data-url":e.Product.product_url})}));return i.createElement("div",{className:r},g)}exports.YotpoCredentialsProvider=v,exports.YotpoCredentialsProviderMeta=f,exports.YotpoReviews=y,exports.YotpoReviewsMeta=h,exports.YotpoStarRating=g,exports.YotpoStarRatingMeta=m,exports.ensure=p,exports.registerAll=function(e){var n=function(r,n){e?e.registerComponent(r,n):t(r,n)};e?e.registerGlobalContext(v,f):r(v,f),n(y,h),n(g,m)};
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/query"),o=e(require("lodash/isArray")),a=require("react"),i=e(a);function u(e,t,r,n,o,a,i){try{var u=e[a](i),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function c(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){u(a,n,o,i,c,"next",e)}function c(e){u(a,n,o,i,c,"throw",e)}i(void 0)}))}}function p(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function a(r,n,o,a){var c=Object.create((n&&n.prototype instanceof u?n:u).prototype);return s(c,"_invoke",function(r,n,o){var a,u,c,p=0,s=o||[],l=!1,d={p:0,n:0,v:e,a:v,f:v.bind(e,4),d:function(t,r){return a=t,u=0,c=e,d.n=r,i}};function v(r,n){for(u=r,c=n,t=0;!l&&p&&!o&&t<s.length;t++){var o,a=s[t],v=d.p,f=a[2];r>3?(o=f===n)&&(c=a[(u=a[4])?5:(u=3,3)],a[4]=a[5]=e):a[0]<=v&&((o=r<2&&v<a[1])?(u=0,d.v=n,d.n=a[1]):v<f&&(o=r<3||a[0]>n||n>f)&&(a[4]=r,a[5]=n,d.n=f,u=0))}if(o||r>1)return i;throw l=!0,n}return function(o,s,f){if(p>1)throw TypeError("Generator is already running");for(l&&1===s&&v(s,f),u=s,c=f;(t=u<2?e:c)||!l;){a||(u?u<3?(u>1&&(d.n=-1),v(u,c)):d.n=c:d.v=c);try{if(p=2,a){if(u||(o="next"),t=a[o]){if(!(t=t.call(a,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,u<2&&(u=0)}else 1===u&&(t=a.return)&&t.call(a),u<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),u=1);a=e}else if((t=(l=d.n<0)?c:r.call(n,d))!==i)break}catch(t){a=e,u=1,c=t}finally{p=1}}return{value:t,done:l}}}(r,o,a),!0),c}var i={};function u(){}function c(){}function l(){}t=Object.getPrototypeOf;var d=[][n]?t(t([][n]())):(s(t={},n,(function(){return this})),t),v=l.prototype=u.prototype=Object.create(d);function f(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,s(e,o,"GeneratorFunction")),e.prototype=Object.create(v),e}return c.prototype=l,s(v,"constructor",l),s(l,"constructor",c),c.displayName="GeneratorFunction",s(l,o,"GeneratorFunction"),s(v),s(v,o,"Generator"),s(v,n,(function(){return this})),s(v,"toString",(function(){return"[object Generator]"})),(p=function(){return{w:a,m:f}})()}function s(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(s=function(e,t,r,n){function a(t,r){s(e,t,(function(e){return this._invoke(t,r,e)}))}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(a("next",0),a("throw",1),a("return",2))})(e,t,r,n)}function l(e){if(null==e)throw new Error("Value must not be undefined or null");return e}var d="@plasmicpkgs/plasmic-yotpo",v=i.createContext(void 0),f={name:"Yotpo",displayName:"Yotpo Credentials Provider",description:"Your app key is sometimes referred to as your Store ID.[get your App Key](https://support.yotpo.com/en/article/finding-your-yotpo-app-key-and-secret-key).",importName:"Yotpo",importPath:d,props:{appKey:{type:"string",displayName:"App Key",description:"App Key of your Yotpo Store "},uToken:{type:"string",displayName:"UToken",description:"Utoken is required in non-public API calls to ensure private account data is accessible only by authorized users."}}};function y(e){return i.createElement(v.Provider,{value:{appKey:e.appKey,uToken:e.uToken}},e.children)}var m={name:"hostless-yotpo-star-reviews",displayName:"Yotpo Reviews",importName:"YotpoReviews",importPath:d,providesData:!0,description:"Yotpo Reviews for your product pages ",defaultStyles:{width:"400px",height:"600px"},props:{reviewId:{type:"choice",options:function(e,t){var r,n;return null!=(r=null==t||null==(n=t.reviews)?void 0:n.map((function(e){return{label:null==e?void 0:e.name,value:null==e?void 0:e.id}})))?r:[]},displayName:"Review",description:"Review Widget which to be displayed"},productPrice:{type:"string",displayName:"Price",description:"Price of the Product"},currency:{type:"string",displayName:"Currency",description:"Currency"}}};function h(e){var t=e.reviewId,r=e.setControlContextData,u=e.productPrice,s=e.currency,d=e.className,f=l(a.useContext(v)),y=JSON.stringify({creds:f,reviewId:t});i.useEffect((function(){var e=document.createElement("script");return e.type="text/javascript",e.async=!0,e.innerHTML='(function e(){var e=document.createElement("script");e.type="text/javascript",e.async=true,e.src="//staticw2.yotpo.com/'+f.appKey+'/widget.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})();',document.body.appendChild(e),function(){document.body.removeChild(e)}}),[f]);var m=n.usePlasmicQueryData(y+"/reviews",c(p().m((function e(){var t;return p().w((function(e){for(;;)switch(e.n){case 0:return t={method:"GET",headers:{accept:"application/json","Content-Type":"application/json"}},e.n=1,fetch("https://api.yotpo.com/v1/apps/"+f.appKey+"/reviews?utoken="+f.uToken,t);case 1:return e.a(2,e.v.json())}}),e)})))).data,h=n.usePlasmicQueryData(y+"/review",c(p().m((function e(){var r;return p().w((function(e){for(;;)switch(e.n){case 0:if(t){e.n=1;break}return e.a(2,void 0);case 1:return r={method:"GET",headers:{accept:"application/json","Content-Type":"application/json"}},e.n=2,fetch("https://api.yotpo.com/reviews/"+t+"?utoken="+f.uToken,r);case 2:return e.a(2,e.v.json())}}),e)})))).data;if(!m)return i.createElement("div",null,"Please configure the Yotpo Credentials provider with valid AppKey.");var w=Object.values(m).map((function(e){return e}));if(null==r||r({reviews:w[0]||[]}),!f.uToken||!f.appKey)return i.createElement("div",null,"Please specify a valid API Credentials: uToken,appKey");if(!h)return i.createElement("div",null,"Please choose the reviewId");if(!u||!s)return i.createElement("div",null," Please enter Product price and Currency");var g=Object.values(m).flatMap((function(e){return(o(e)?e:[e]).filter((function(e){return e.id===t}))})),P=null==h?void 0:h.response.review.products.map((function(e){var t,r=null==e?void 0:e.Product.images.map((function(e){return e.image_url}));return i.createElement("div",{key:e.Product.id,className:"yotpo yotpo-main-widget","data-product-id":null==(t=g[0])?void 0:t.sku,"data-price":u,"data-currency":s,"data-name":null==e?void 0:e.Product.name,"data-url":null==e?void 0:e.Product.shorten_url,"data-image-url":r})}));return i.createElement("div",{className:d},P)}var w={name:"hostless-yotpo-star-rating",displayName:"Yotpo Star Rating",importName:"YotpoStarRating",importPath:d,providesData:!0,description:"Yotpo Star Rating for your product pages ",props:{productId:{type:"choice",options:function(e,t){var r,n;return null!=(r=null==t||null==(n=t.reviews)?void 0:n.map((function(e){return{label:null==e?void 0:e.name,value:null==e?void 0:e.id}})))?r:[]},displayName:"Product",description:"Product which you want to show rating"}}};function g(e){var t=e.productId,r=e.className,u=e.setControlContextData,s=l(a.useContext(v)),d=JSON.stringify({creds:s,productId:t});i.useEffect((function(){var e=document.createElement("script");return e.type="text/javascript",e.async=!0,e.innerHTML='(function e(){var e=document.createElement("script");e.type="text/javascript",e.async=true,e.src="//staticw2.yotpo.com/'+s.appKey+'/widget.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})();',document.body.appendChild(e),function(){document.body.removeChild(e)}}),[s]);var f=n.usePlasmicQueryData(d+"/starReviews",c(p().m((function e(){var t;return p().w((function(e){for(;;)switch(e.n){case 0:return t={method:"GET",headers:{accept:"application/json","Content-Type":"application/json"}},e.n=1,fetch("https://api.yotpo.com/v1/apps/"+s.appKey+"/reviews?utoken="+s.uToken,t);case 1:return e.a(2,e.v.json())}}),e)})))).data,y=n.usePlasmicQueryData(d+"/starReview",c(p().m((function e(){var r;return p().w((function(e){for(;;)switch(e.n){case 0:if(t){e.n=1;break}return e.a(2,void 0);case 1:return r={method:"GET",headers:{accept:"application/json","Content-Type":"application/json"}},e.n=2,fetch("https://api.yotpo.com/reviews/"+t+"?utoken="+s.uToken,r);case 2:return e.a(2,e.v.json())}}),e)})))).data;if(!s.uToken||!s.appKey)return i.createElement("div",null,"Please specify a valid API Credentials: uToken,appKey");if(!f)return i.createElement("div",null,"Please configure the Yotpo Credentials provider with valid AppKey.");var m=Object.values(f).map((function(e){return e}));if(null==u||u({reviews:m[0]||[]}),!y)return i.createElement("div",null,"Please configure the Yotpo Credentials provider with valid AppKey.");var h=Object.values(f).flatMap((function(e){return(o(e)?e:[e]).filter((function(e){return e.id===t}))})),w=null==y?void 0:y.response.review.products.map((function(e){var t;return i.createElement("div",{className:"yotpo bottomLine","data-product-id":null==(t=h[0])?void 0:t.sku,"data-url":e.Product.product_url})}));return i.createElement("div",{className:r},w)}exports.YotpoCredentialsProvider=y,exports.YotpoCredentialsProviderMeta=f,exports.YotpoReviews=h,exports.YotpoReviewsMeta=m,exports.YotpoStarRating=g,exports.YotpoStarRatingMeta=w,exports.ensure=l,exports.registerAll=function(e){var n=function(r,n){e?e.registerComponent(r,n):t(r,n)};e?e.registerGlobalContext(y,f):r(y,f),n(h,m),n(g,w)};
2
2
  //# sourceMappingURL=plasmic-yotpo.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plasmic-yotpo.cjs.production.min.js","sources":["../src/yotpo.tsx","../src/index.tsx"],"sourcesContent":["import { CodeComponentMeta } from \"@plasmicapp/host/registerComponent\";\nimport { GlobalContextMeta } from \"@plasmicapp/host/registerGlobalContext\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport isArray from \"lodash/isArray\";\nimport React, { useContext } from \"react\";\n\nimport { Image, ProductElement, ReviewResponse } from \"./types\";\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-yotpo\";\n\ninterface YotpoProps {\n appKey: string;\n uToken: string;\n}\n\nconst CredentialsContext = React.createContext<YotpoProps | undefined>(\n undefined\n);\n\nexport const YotpoCredentialsProviderMeta: GlobalContextMeta<YotpoProps> = {\n name: \"Yotpo\",\n displayName: \"Yotpo Credentials Provider\",\n description:\n \"Your app key is sometimes referred to as your Store ID.[get your App Key](https://support.yotpo.com/en/article/finding-your-yotpo-app-key-and-secret-key).\",\n importName: \"Yotpo\",\n importPath: modulePath,\n props: {\n appKey: {\n type: \"string\",\n displayName: \"App Key\",\n description: \"App Key of your Yotpo Store \",\n },\n uToken: {\n type: \"string\",\n displayName: \"UToken\",\n description:\n \"Utoken is required in non-public API calls to ensure private account data is accessible only by authorized users.\",\n },\n },\n};\n\nexport function YotpoCredentialsProvider({\n appKey,\n uToken,\n children,\n}: React.PropsWithChildren<YotpoProps>) {\n return (\n <CredentialsContext.Provider value={{ appKey, uToken }}>\n {children}\n </CredentialsContext.Provider>\n );\n}\n\ninterface YotpoReviewsProps {\n reviewId?: string;\n productPrice?: string;\n currency?: string;\n setControlContextData?: (data: {\n reviews?: { name: string; id: number }[];\n }) => void;\n className?: string;\n}\n\nexport const YotpoReviewsMeta: CodeComponentMeta<YotpoReviewsProps> = {\n name: \"hostless-yotpo-star-reviews\",\n displayName: \"Yotpo Reviews\",\n importName: \"YotpoReviews\",\n importPath: modulePath,\n providesData: true,\n description: \"Yotpo Reviews for your product pages \",\n defaultStyles: {\n width: \"400px\",\n height: \"600px\",\n },\n props: {\n reviewId: {\n type: \"choice\",\n options: (props, ctx) =>\n ctx?.reviews?.map((item: any) => ({\n label: item?.name,\n value: item?.id,\n })) ?? [],\n displayName: \"Review\",\n description: \"Review Widget which to be displayed\",\n },\n productPrice: {\n type: \"string\",\n displayName: \"Price\",\n description: \"Price of the Product\",\n },\n currency: {\n type: \"string\",\n displayName: \"Currency\",\n description: \"Currency\",\n },\n },\n};\n\nexport function YotpoReviews({\n reviewId,\n setControlContextData,\n productPrice,\n currency,\n className,\n}: YotpoReviewsProps) {\n const creds = ensure(useContext(CredentialsContext));\n const cacheKey = JSON.stringify({\n creds,\n reviewId,\n });\n React.useEffect(() => {\n const script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.async = true;\n script.innerHTML = `(function e(){var e=document.createElement(\"script\");e.type=\"text/javascript\",e.async=true,e.src=\"//staticw2.yotpo.com/${creds.appKey}/widget.js\";var t=document.getElementsByTagName(\"script\")[0];t.parentNode.insertBefore(e,t)})();`;\n document.body.appendChild(script);\n\n return () => {\n document.body.removeChild(script);\n };\n }, [creds]);\n\n const { data: reviewsData } = usePlasmicQueryData<any | null>(\n `${cacheKey}/reviews`,\n async () => {\n const options = {\n method: \"GET\",\n headers: {\n accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n };\n\n const res = await fetch(\n `https://api.yotpo.com/v1/apps/${creds.appKey}/reviews?utoken=${creds.uToken}`,\n options\n );\n return res.json();\n }\n );\n\n const { data: reviewData } = usePlasmicQueryData<ReviewResponse | null>(\n `${cacheKey}/review`,\n async () => {\n if (!reviewId) {\n return undefined;\n }\n const options = {\n method: \"GET\",\n headers: {\n accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n };\n\n const res = await fetch(\n `https://api.yotpo.com/reviews/${reviewId}?utoken=${creds.uToken}`,\n options\n );\n return res.json();\n }\n );\n\n if (!reviewsData) {\n return (\n <div>\n Please configure the Yotpo Credentials provider with valid AppKey.\n </div>\n );\n }\n const data = Object.values(reviewsData).map((item: any) => item);\n\n setControlContextData?.({\n reviews: data[0] || [],\n });\n\n if (!creds.uToken || !creds.appKey) {\n return <div>Please specify a valid API Credentials: uToken,appKey</div>;\n }\n\n if (!reviewData) {\n return <div>Please choose the reviewId</div>;\n }\n\n if (!productPrice || !currency) {\n return <div> Please enter Product price and Currency</div>;\n }\n\n const review = Object.values(reviewsData).flatMap((item: any) =>\n (isArray(item) ? item : [item]).filter((r: any) => r.id === reviewId)\n );\n\n const renderedData = reviewData?.response.review.products.map(\n (item: ProductElement) => {\n const imageUrl = item?.Product.images.map((image: Image) => {\n return image.image_url;\n });\n return (\n <div\n key={item.Product.id}\n className=\"yotpo yotpo-main-widget\"\n data-product-id={review[0]?.sku}\n data-price={productPrice}\n data-currency={currency}\n data-name={item?.Product.name}\n data-url={item?.Product.shorten_url}\n data-image-url={imageUrl}\n ></div>\n );\n }\n );\n return <div className={className}>{renderedData}</div>;\n}\n\ninterface YotpoStarRatingProps {\n productId: string;\n className?: string;\n setControlContextData?: (data: {\n reviews?: { name: string; id: number }[];\n }) => void;\n}\n\nexport const YotpoStarRatingMeta: CodeComponentMeta<YotpoStarRatingProps> = {\n name: \"hostless-yotpo-star-rating\",\n displayName: \"Yotpo Star Rating\",\n importName: \"YotpoStarRating\",\n importPath: modulePath,\n providesData: true,\n description: \"Yotpo Star Rating for your product pages \",\n props: {\n productId: {\n type: \"choice\",\n options: (props, ctx) =>\n ctx?.reviews?.map((item: any) => ({\n label: item?.name,\n value: item?.id,\n })) ?? [],\n displayName: \"Product\",\n description: \"Product which you want to show rating\",\n },\n },\n};\n\nexport function YotpoStarRating({\n productId,\n className,\n setControlContextData,\n}: YotpoStarRatingProps) {\n const creds = ensure(useContext(CredentialsContext));\n const cacheKey = JSON.stringify({\n creds,\n productId,\n });\n React.useEffect(() => {\n const script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.async = true;\n script.innerHTML = `(function e(){var e=document.createElement(\"script\");e.type=\"text/javascript\",e.async=true,e.src=\"//staticw2.yotpo.com/${creds.appKey}/widget.js\";var t=document.getElementsByTagName(\"script\")[0];t.parentNode.insertBefore(e,t)})();`;\n document.body.appendChild(script);\n\n return () => {\n document.body.removeChild(script);\n };\n }, [creds]);\n\n const { data: reviews } = usePlasmicQueryData<any | null>(\n `${cacheKey}/starReviews`,\n async () => {\n const options = {\n method: \"GET\",\n headers: {\n accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n };\n\n const res = await fetch(\n `https://api.yotpo.com/v1/apps/${creds.appKey}/reviews?utoken=${creds.uToken}`,\n options\n );\n return res.json();\n }\n );\n const { data: review } = usePlasmicQueryData<ReviewResponse | null>(\n `${cacheKey}/starReview`,\n async () => {\n if (!productId) {\n return undefined;\n }\n const options = {\n method: \"GET\",\n headers: {\n accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n };\n\n const res = await fetch(\n `https://api.yotpo.com/reviews/${productId}?utoken=${creds.uToken}`,\n options\n );\n return res.json();\n }\n );\n\n if (!creds.uToken || !creds.appKey) {\n return <div>Please specify a valid API Credentials: uToken,appKey</div>;\n }\n\n if (!reviews) {\n return (\n <div>\n Please configure the Yotpo Credentials provider with valid AppKey.\n </div>\n );\n }\n\n const data = Object.values(reviews).map((item: any) => item);\n\n setControlContextData?.({\n reviews: data[0] || [],\n });\n\n if (!review) {\n return (\n <div>\n Please configure the Yotpo Credentials provider with valid AppKey.\n </div>\n );\n }\n const product = Object.values(reviews).flatMap((item: any) =>\n (isArray(item) ? item : [item]).filter((r: any) => r.id === productId)\n );\n\n const renderedData = review?.response.review.products.map(\n (item: ProductElement) => (\n <div\n className=\"yotpo bottomLine\"\n data-product-id={product[0]?.sku}\n data-url={item.Product.product_url}\n />\n )\n );\n\n return <div className={className}>{renderedData}</div>;\n}\n","import registerComponent, {\n CodeComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport React from \"react\";\nimport {\n YotpoCredentialsProvider,\n YotpoCredentialsProviderMeta,\n YotpoReviews,\n YotpoReviewsMeta,\n YotpoStarRating,\n YotpoStarRatingMeta,\n} from \"./yotpo\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n}) {\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: CodeComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n\n if (loader) {\n loader.registerGlobalContext(\n YotpoCredentialsProvider,\n YotpoCredentialsProviderMeta\n );\n } else {\n registerGlobalContext(\n YotpoCredentialsProvider,\n YotpoCredentialsProviderMeta\n );\n }\n\n _registerComponent(YotpoReviews, YotpoReviewsMeta);\n _registerComponent(YotpoStarRating, YotpoStarRatingMeta);\n}\n\nexport * from \"./yotpo\";\n"],"names":["ensure","x","Error","modulePath","CredentialsContext","React","createContext","undefined","YotpoCredentialsProviderMeta","name","displayName","description","importName","importPath","props","appKey","type","uToken","YotpoCredentialsProvider","_ref","Provider","value","children","YotpoReviewsMeta","providesData","defaultStyles","width","height","reviewId","options","ctx","_ctx$reviews$map","_ctx$reviews","reviews","map","item","label","id","productPrice","currency","YotpoReviews","_ref2","setControlContextData","className","creds","useContext","cacheKey","JSON","stringify","useEffect","script","document","createElement","async","innerHTML","body","appendChild","removeChild","reviewsData","usePlasmicQueryData","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","method","headers","accept","Content-Type","fetch","abrupt","sent","json","stop","data","reviewData","_callee2","_context2","Object","values","review","flatMap","isArray","filter","r","renderedData","response","products","imageUrl","Product","images","image","image_url","key","_review$","sku","shorten_url","YotpoStarRatingMeta","productId","_ctx$reviews$map2","_ctx$reviews2","YotpoStarRating","_ref5","_callee3","_context3","_callee4","_context4","product","_product$","product_url","loader","_registerComponent","Component","defaultMeta","registerComponent","registerGlobalContext"],"mappings":"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"}
1
+ {"version":3,"file":"plasmic-yotpo.cjs.production.min.js","sources":["../src/yotpo.tsx","../src/index.tsx"],"sourcesContent":["import { CodeComponentMeta } from \"@plasmicapp/host/registerComponent\";\nimport { GlobalContextMeta } from \"@plasmicapp/host/registerGlobalContext\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport isArray from \"lodash/isArray\";\nimport React, { useContext } from \"react\";\n\nimport { Image, ProductElement, ReviewResponse } from \"./types\";\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-yotpo\";\n\ninterface YotpoProps {\n appKey: string;\n uToken: string;\n}\n\nconst CredentialsContext = React.createContext<YotpoProps | undefined>(\n undefined\n);\n\nexport const YotpoCredentialsProviderMeta: GlobalContextMeta<YotpoProps> = {\n name: \"Yotpo\",\n displayName: \"Yotpo Credentials Provider\",\n description:\n \"Your app key is sometimes referred to as your Store ID.[get your App Key](https://support.yotpo.com/en/article/finding-your-yotpo-app-key-and-secret-key).\",\n importName: \"Yotpo\",\n importPath: modulePath,\n props: {\n appKey: {\n type: \"string\",\n displayName: \"App Key\",\n description: \"App Key of your Yotpo Store \",\n },\n uToken: {\n type: \"string\",\n displayName: \"UToken\",\n description:\n \"Utoken is required in non-public API calls to ensure private account data is accessible only by authorized users.\",\n },\n },\n};\n\nexport function YotpoCredentialsProvider({\n appKey,\n uToken,\n children,\n}: React.PropsWithChildren<YotpoProps>) {\n return (\n <CredentialsContext.Provider value={{ appKey, uToken }}>\n {children}\n </CredentialsContext.Provider>\n );\n}\n\ninterface YotpoReviewsProps {\n reviewId?: string;\n productPrice?: string;\n currency?: string;\n setControlContextData?: (data: {\n reviews?: { name: string; id: number }[];\n }) => void;\n className?: string;\n}\n\nexport const YotpoReviewsMeta: CodeComponentMeta<YotpoReviewsProps> = {\n name: \"hostless-yotpo-star-reviews\",\n displayName: \"Yotpo Reviews\",\n importName: \"YotpoReviews\",\n importPath: modulePath,\n providesData: true,\n description: \"Yotpo Reviews for your product pages \",\n defaultStyles: {\n width: \"400px\",\n height: \"600px\",\n },\n props: {\n reviewId: {\n type: \"choice\",\n options: (props, ctx) =>\n ctx?.reviews?.map((item: any) => ({\n label: item?.name,\n value: item?.id,\n })) ?? [],\n displayName: \"Review\",\n description: \"Review Widget which to be displayed\",\n },\n productPrice: {\n type: \"string\",\n displayName: \"Price\",\n description: \"Price of the Product\",\n },\n currency: {\n type: \"string\",\n displayName: \"Currency\",\n description: \"Currency\",\n },\n },\n};\n\nexport function YotpoReviews({\n reviewId,\n setControlContextData,\n productPrice,\n currency,\n className,\n}: YotpoReviewsProps) {\n const creds = ensure(useContext(CredentialsContext));\n const cacheKey = JSON.stringify({\n creds,\n reviewId,\n });\n React.useEffect(() => {\n const script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.async = true;\n script.innerHTML = `(function e(){var e=document.createElement(\"script\");e.type=\"text/javascript\",e.async=true,e.src=\"//staticw2.yotpo.com/${creds.appKey}/widget.js\";var t=document.getElementsByTagName(\"script\")[0];t.parentNode.insertBefore(e,t)})();`;\n document.body.appendChild(script);\n\n return () => {\n document.body.removeChild(script);\n };\n }, [creds]);\n\n const { data: reviewsData } = usePlasmicQueryData<any | null>(\n `${cacheKey}/reviews`,\n async () => {\n const options = {\n method: \"GET\",\n headers: {\n accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n };\n\n const res = await fetch(\n `https://api.yotpo.com/v1/apps/${creds.appKey}/reviews?utoken=${creds.uToken}`,\n options\n );\n return res.json();\n }\n );\n\n const { data: reviewData } = usePlasmicQueryData<ReviewResponse | null>(\n `${cacheKey}/review`,\n async () => {\n if (!reviewId) {\n return undefined;\n }\n const options = {\n method: \"GET\",\n headers: {\n accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n };\n\n const res = await fetch(\n `https://api.yotpo.com/reviews/${reviewId}?utoken=${creds.uToken}`,\n options\n );\n return res.json();\n }\n );\n\n if (!reviewsData) {\n return (\n <div>\n Please configure the Yotpo Credentials provider with valid AppKey.\n </div>\n );\n }\n const data = Object.values(reviewsData).map((item: any) => item);\n\n setControlContextData?.({\n reviews: data[0] || [],\n });\n\n if (!creds.uToken || !creds.appKey) {\n return <div>Please specify a valid API Credentials: uToken,appKey</div>;\n }\n\n if (!reviewData) {\n return <div>Please choose the reviewId</div>;\n }\n\n if (!productPrice || !currency) {\n return <div> Please enter Product price and Currency</div>;\n }\n\n const review = Object.values(reviewsData).flatMap((item: any) =>\n (isArray(item) ? item : [item]).filter((r: any) => r.id === reviewId)\n );\n\n const renderedData = reviewData?.response.review.products.map(\n (item: ProductElement) => {\n const imageUrl = item?.Product.images.map((image: Image) => {\n return image.image_url;\n });\n return (\n <div\n key={item.Product.id}\n className=\"yotpo yotpo-main-widget\"\n data-product-id={review[0]?.sku}\n data-price={productPrice}\n data-currency={currency}\n data-name={item?.Product.name}\n data-url={item?.Product.shorten_url}\n data-image-url={imageUrl}\n ></div>\n );\n }\n );\n return <div className={className}>{renderedData}</div>;\n}\n\ninterface YotpoStarRatingProps {\n productId: string;\n className?: string;\n setControlContextData?: (data: {\n reviews?: { name: string; id: number }[];\n }) => void;\n}\n\nexport const YotpoStarRatingMeta: CodeComponentMeta<YotpoStarRatingProps> = {\n name: \"hostless-yotpo-star-rating\",\n displayName: \"Yotpo Star Rating\",\n importName: \"YotpoStarRating\",\n importPath: modulePath,\n providesData: true,\n description: \"Yotpo Star Rating for your product pages \",\n props: {\n productId: {\n type: \"choice\",\n options: (props, ctx) =>\n ctx?.reviews?.map((item: any) => ({\n label: item?.name,\n value: item?.id,\n })) ?? [],\n displayName: \"Product\",\n description: \"Product which you want to show rating\",\n },\n },\n};\n\nexport function YotpoStarRating({\n productId,\n className,\n setControlContextData,\n}: YotpoStarRatingProps) {\n const creds = ensure(useContext(CredentialsContext));\n const cacheKey = JSON.stringify({\n creds,\n productId,\n });\n React.useEffect(() => {\n const script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.async = true;\n script.innerHTML = `(function e(){var e=document.createElement(\"script\");e.type=\"text/javascript\",e.async=true,e.src=\"//staticw2.yotpo.com/${creds.appKey}/widget.js\";var t=document.getElementsByTagName(\"script\")[0];t.parentNode.insertBefore(e,t)})();`;\n document.body.appendChild(script);\n\n return () => {\n document.body.removeChild(script);\n };\n }, [creds]);\n\n const { data: reviews } = usePlasmicQueryData<any | null>(\n `${cacheKey}/starReviews`,\n async () => {\n const options = {\n method: \"GET\",\n headers: {\n accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n };\n\n const res = await fetch(\n `https://api.yotpo.com/v1/apps/${creds.appKey}/reviews?utoken=${creds.uToken}`,\n options\n );\n return res.json();\n }\n );\n const { data: review } = usePlasmicQueryData<ReviewResponse | null>(\n `${cacheKey}/starReview`,\n async () => {\n if (!productId) {\n return undefined;\n }\n const options = {\n method: \"GET\",\n headers: {\n accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n };\n\n const res = await fetch(\n `https://api.yotpo.com/reviews/${productId}?utoken=${creds.uToken}`,\n options\n );\n return res.json();\n }\n );\n\n if (!creds.uToken || !creds.appKey) {\n return <div>Please specify a valid API Credentials: uToken,appKey</div>;\n }\n\n if (!reviews) {\n return (\n <div>\n Please configure the Yotpo Credentials provider with valid AppKey.\n </div>\n );\n }\n\n const data = Object.values(reviews).map((item: any) => item);\n\n setControlContextData?.({\n reviews: data[0] || [],\n });\n\n if (!review) {\n return (\n <div>\n Please configure the Yotpo Credentials provider with valid AppKey.\n </div>\n );\n }\n const product = Object.values(reviews).flatMap((item: any) =>\n (isArray(item) ? item : [item]).filter((r: any) => r.id === productId)\n );\n\n const renderedData = review?.response.review.products.map(\n (item: ProductElement) => (\n <div\n className=\"yotpo bottomLine\"\n data-product-id={product[0]?.sku}\n data-url={item.Product.product_url}\n />\n )\n );\n\n return <div className={className}>{renderedData}</div>;\n}\n","import registerComponent, {\n CodeComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport React from \"react\";\nimport {\n YotpoCredentialsProvider,\n YotpoCredentialsProviderMeta,\n YotpoReviews,\n YotpoReviewsMeta,\n YotpoStarRating,\n YotpoStarRatingMeta,\n} from \"./yotpo\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n}) {\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: CodeComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n\n if (loader) {\n loader.registerGlobalContext(\n YotpoCredentialsProvider,\n YotpoCredentialsProviderMeta\n );\n } else {\n registerGlobalContext(\n YotpoCredentialsProvider,\n YotpoCredentialsProviderMeta\n );\n }\n\n _registerComponent(YotpoReviews, YotpoReviewsMeta);\n _registerComponent(YotpoStarRating, YotpoStarRatingMeta);\n}\n\nexport * from \"./yotpo\";\n"],"names":["ensure","x","Error","modulePath","CredentialsContext","React","createContext","undefined","YotpoCredentialsProviderMeta","name","displayName","description","importName","importPath","props","appKey","type","uToken","YotpoCredentialsProvider","_ref","Provider","value","children","YotpoReviewsMeta","providesData","defaultStyles","width","height","reviewId","options","ctx","_ctx$reviews$map","_ctx$reviews","reviews","map","item","label","id","productPrice","currency","YotpoReviews","_ref2","setControlContextData","className","creds","useContext","cacheKey","JSON","stringify","useEffect","script","document","createElement","async","innerHTML","body","appendChild","removeChild","reviewsData","usePlasmicQueryData","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","method","headers","accept","Content-Type","fetch","a","v","json","data","reviewData","_callee2","_context2","Object","values","review","flatMap","isArray","filter","r","renderedData","response","products","imageUrl","Product","images","image","image_url","key","_review$","sku","shorten_url","YotpoStarRatingMeta","productId","_ctx$reviews$map2","_ctx$reviews2","YotpoStarRating","_ref5","_callee3","_context3","_callee4","_context4","product","_product$","product_url","loader","_registerComponent","Component","defaultMeta","registerComponent","registerGlobalContext"],"mappings":"6pFAQgBA,EAAUC,GACxB,GAAIA,MAAAA,EAEF,MAAM,IAAIC,6CAEV,OAAOD,EAIX,IAAME,EAAa,6BAObC,EAAqBC,EAAMC,mBAC/BC,GAGWC,EAA8D,CACzEC,KAAM,QACNC,YAAa,6BACbC,YACE,6JACFC,WAAY,QACZC,WAAYV,EACZW,MAAO,CACLC,OAAQ,CACNC,KAAM,SACNN,YAAa,UACbC,YAAa,gCAEfM,OAAQ,CACND,KAAM,SACNN,YAAa,SACbC,YACE,gIAKQO,EAAwBC,GAKtC,OACEd,gBAACD,EAAmBgB,UAASC,MAAO,CAAEN,OALlCI,EAANJ,OAKgDE,OAJ1CE,EAANF,SACQE,EAARG,cAmBWC,EAAyD,CACpEd,KAAM,8BACNC,YAAa,gBACbE,WAAY,eACZC,WAAYV,EACZqB,cAAc,EACdb,YAAa,wCACbc,cAAe,CACbC,MAAO,QACPC,OAAQ,SAEVb,MAAO,CACLc,SAAU,CACRZ,KAAM,SACNa,QAAS,SAACf,EAAOgB,GAAG,IAAAC,EAAAC,EAAA,cAAAD,QAClBD,UAAGE,EAAHF,EAAKG,gBAALD,EAAcE,KAAI,SAACC,GAAS,MAAM,CAChCC,YAAOD,SAAAA,EAAM1B,KACbY,YAAOc,SAAAA,EAAME,QACZN,EAAI,IACTrB,YAAa,SACbC,YAAa,uCAEf2B,aAAc,CACZtB,KAAM,SACNN,YAAa,QACbC,YAAa,wBAEf4B,SAAU,CACRvB,KAAM,SACNN,YAAa,WACbC,YAAa,uBAKH6B,EAAYC,OAC1Bb,EAAQa,EAARb,SACAc,EAAqBD,EAArBC,sBACAJ,EAAYG,EAAZH,aACAC,EAAQE,EAARF,SACAI,EAASF,EAATE,UAEMC,EAAQ5C,EAAO6C,aAAWzC,IAC1B0C,EAAWC,KAAKC,UAAU,CAC9BJ,MAAAA,EACAhB,SAAAA,IAEFvB,EAAM4C,WAAU,WACd,IAAMC,EAASC,SAASC,cAAc,UAMtC,OALAF,EAAOlC,KAAO,kBACdkC,EAAOG,OAAQ,EACfH,EAAOI,oIAAsIV,EAAM7B,0GACnJoC,SAASI,KAAKC,YAAYN,GAEnB,WACLC,SAASI,KAAKE,YAAYP,MAE3B,CAACN,IAEJ,IAAcc,EAAgBC,sBACzBb,aAAQc,EAAAC,IAAAC,GACX,SAAAC,IAAA,IAAAlC,EAAA,OAAAgC,IAAAG,YAAAC,GAAA,cAAAA,EAAAC,GAAA,OAOG,OANKrC,EAAU,CACdsC,OAAQ,MACRC,QAAS,CACPC,OAAQ,mBACRC,eAAgB,qBAEnBL,EAAAC,IAEiBK,uCACiB3B,EAAM7B,0BAAyB6B,EAAM3B,OACtEY,GACD,OAHQ,OAAAoC,EAAAO,IAAAP,EAAAQ,EAIEC,WAAMX,QAfbY,KAmBMC,EAAejB,sBACxBb,YAAQc,EAAAC,IAAAC,GACX,SAAAe,IAAA,IAAAhD,EAAA,OAAAgC,IAAAG,YAAAc,GAAA,cAAAA,EAAAZ,GAAA,OAAA,GACOtC,GAAQkD,EAAAZ,IAAA,MAAA,OAAAY,EAAAN,SACJjE,GAAS,OAQjB,OANKsB,EAAU,CACdsC,OAAQ,MACRC,QAAS,CACPC,OAAQ,mBACRC,eAAgB,qBAEnBQ,EAAAZ,IAEiBK,uCACiB3C,aAAmBgB,EAAM3B,OAC1DY,GACD,OAHQ,OAAAiD,EAAAN,IAAAM,EAAAL,EAIEC,WAAMG,QAlBbF,KAsBR,IAAKjB,EACH,OACErD,iGAKJ,IAAMsE,EAAOI,OAAOC,OAAOtB,GAAaxB,KAAI,SAACC,GAAS,OAAKA,KAM3D,SAJAO,GAAAA,EAAwB,CACtBT,QAAS0C,EAAK,IAAM,MAGjB/B,EAAM3B,SAAW2B,EAAM7B,OAC1B,OAAOV,oFAGT,IAAKuE,EACH,OAAOvE,yDAGT,IAAKiC,IAAiBC,EACpB,OAAOlC,uEAGT,IAAM4E,EAASF,OAAOC,OAAOtB,GAAawB,SAAQ,SAAC/C,GAAS,OACzDgD,EAAQhD,GAAQA,EAAO,CAACA,IAAOiD,QAAO,SAACC,GAAM,OAAKA,EAAEhD,KAAOT,QAGxD0D,QAAeV,SAAAA,EAAYW,SAASN,OAAOO,SAAStD,KACxD,SAACC,SACOsD,QAAWtD,SAAAA,EAAMuD,QAAQC,OAAOzD,KAAI,SAAC0D,GACzC,OAAOA,EAAMC,aAEf,OACExF,uBACEyF,IAAK3D,EAAKuD,QAAQrD,GAClBM,UAAU,qDACOsC,EAAO,WAAPc,EAAWC,iBAChB1D,kBACGC,oBACJJ,SAAAA,EAAMuD,QAAQjF,sBACf0B,SAAAA,EAAMuD,QAAQO,6BACRR,OAKxB,OAAOpF,uBAAKsC,UAAWA,GAAY2C,OAWxBY,EAA+D,CAC1EzF,KAAM,6BACNC,YAAa,oBACbE,WAAY,kBACZC,WAAYV,EACZqB,cAAc,EACdb,YAAa,4CACbG,MAAO,CACLqF,UAAW,CACTnF,KAAM,SACNa,QAAS,SAACf,EAAOgB,GAAG,IAAAsE,EAAAC,EAAA,cAAAD,QAClBtE,UAAGuE,EAAHvE,EAAKG,gBAALoE,EAAcnE,KAAI,SAACC,GAAS,MAAM,CAChCC,YAAOD,SAAAA,EAAM1B,KACbY,YAAOc,SAAAA,EAAME,QACZ+D,EAAI,IACT1F,YAAa,UACbC,YAAa,oDAKH2F,EAAeC,OAC7BJ,EAASI,EAATJ,UACAxD,EAAS4D,EAAT5D,UACAD,EAAqB6D,EAArB7D,sBAEME,EAAQ5C,EAAO6C,aAAWzC,IAC1B0C,EAAWC,KAAKC,UAAU,CAC9BJ,MAAAA,EACAuD,UAAAA,IAEF9F,EAAM4C,WAAU,WACd,IAAMC,EAASC,SAASC,cAAc,UAMtC,OALAF,EAAOlC,KAAO,kBACdkC,EAAOG,OAAQ,EACfH,EAAOI,oIAAsIV,EAAM7B,0GACnJoC,SAASI,KAAKC,YAAYN,GAEnB,WACLC,SAASI,KAAKE,YAAYP,MAE3B,CAACN,IAEJ,IAAcX,EAAY0B,sBACrBb,iBAAQc,EAAAC,IAAAC,GACX,SAAA0C,IAAA,IAAA3E,EAAA,OAAAgC,IAAAG,YAAAyC,GAAA,cAAAA,EAAAvC,GAAA,OAOG,OANKrC,EAAU,CACdsC,OAAQ,MACRC,QAAS,CACPC,OAAQ,mBACRC,eAAgB,qBAEnBmC,EAAAvC,IAEiBK,uCACiB3B,EAAM7B,0BAAyB6B,EAAM3B,OACtEY,GACD,OAHQ,OAAA4E,EAAAjC,IAAAiC,EAAAhC,EAIEC,WAAM8B,QAfb7B,KAkBMM,EAAWtB,sBACpBb,gBAAQc,EAAAC,IAAAC,GACX,SAAA4C,IAAA,IAAA7E,EAAA,OAAAgC,IAAAG,YAAA2C,GAAA,cAAAA,EAAAzC,GAAA,OAAA,GACOiC,GAASQ,EAAAzC,IAAA,MAAA,OAAAyC,EAAAnC,SACLjE,GAAS,OAQjB,OANKsB,EAAU,CACdsC,OAAQ,MACRC,QAAS,CACPC,OAAQ,mBACRC,eAAgB,qBAEnBqC,EAAAzC,IAEiBK,uCACiB4B,aAAoBvD,EAAM3B,OAC3DY,GACD,OAHQ,OAAA8E,EAAAnC,IAAAmC,EAAAlC,EAIEC,WAAMgC,QAlBb/B,KAsBR,IAAK/B,EAAM3B,SAAW2B,EAAM7B,OAC1B,OAAOV,oFAGT,IAAK4B,EACH,OACE5B,iGAMJ,IAAMsE,EAAOI,OAAOC,OAAO/C,GAASC,KAAI,SAACC,GAAS,OAAKA,KAMvD,SAJAO,GAAAA,EAAwB,CACtBT,QAAS0C,EAAK,IAAM,MAGjBM,EACH,OACE5E,iGAKJ,IAAMuG,EAAU7B,OAAOC,OAAO/C,GAASiD,SAAQ,SAAC/C,GAAS,OACtDgD,EAAQhD,GAAQA,EAAO,CAACA,IAAOiD,QAAO,SAACC,GAAM,OAAKA,EAAEhD,KAAO8D,QAGxDb,QAAeL,SAAAA,EAAQM,SAASN,OAAOO,SAAStD,KACpD,SAACC,GAAoB,IAAA0E,EAAA,OACnBxG,uBACEsC,UAAU,8CACOiE,EAAQ,WAARC,EAAYb,eACnB7D,EAAKuD,QAAQoB,iBAK7B,OAAOzG,uBAAKsC,UAAWA,GAAY2C,qOCnVTyB,GAI1B,IAAMC,EAAqB,SACzBC,EACAC,GAEIH,EACFA,EAAOI,kBAAkBF,EAAWC,GAEpCC,EAAkBF,EAAWC,IAI7BH,EACFA,EAAOK,sBACLlG,EACAV,GAGF4G,EACElG,EACAV,GAIJwG,EAAmBxE,EAAcjB,GACjCyF,EAAmBV,EAAiBJ"}