@plasmicpkgs/commerce-swell 0.0.234 → 0.0.236
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/commerce-swell.cjs.development.js +178 -176
- package/dist/commerce-swell.cjs.development.js.map +1 -1
- package/dist/commerce-swell.cjs.production.min.js +1 -1
- package/dist/commerce-swell.cjs.production.min.js.map +1 -1
- package/dist/commerce-swell.esm.js +178 -175
- package/dist/commerce-swell.esm.js.map +1 -1
- package/dist/provider.d.ts +4 -5
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commerce-swell.cjs.development.js","sources":["../src/const.ts","../src/utils/normalize.ts","../src/utils/handle-fetch-response.ts","../src/utils/get-checkout-id.ts","../src/cart/utils/checkout-to-cart.ts","../src/cart/utils/checkout-create.ts","../src/cart/use-cart.tsx","../src/cart/use-add-item.tsx","../src/cart/use-remove-item.tsx","../src/cart/use-update-item.tsx","../src/utils/common.ts","../src/utils/category-tree.ts","../src/product/use-search.tsx","../src/product/use-product.tsx","../src/site/use-categories.ts","../src/site/use-brands.ts","../src/fetcher.ts","../src/provider.ts","../src/swell.ts","../src/registerCommerceProvider.tsx","../src/index.tsx"],"sourcesContent":["/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: Removed store id and public key\n*/\nexport const SWELL_CHECKOUT_ID_COOKIE = 'SWELL_checkoutId'\n\nexport const SWELL_CHECKOUT_URL_COOKIE = 'swell_checkoutUrl'\n\nexport const SWELL_CUSTOMER_TOKEN_COOKIE = 'swell_customerToken'\n\nexport const SWELL_COOKIE_EXPIRE = 30\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: Added \"Default Variant\" to default title when there's no product variant\n*/\nimport { MoneyV2 } from \"../schema\";\nimport type {\n Cart,\n CartLineItem,\n LineItem,\n ProductOptionValue,\n SwellCart,\n SwellImage,\n SwellProduct,\n SwellProductOptionValue,\n SwellVariant,\n} from \"../types\";\nimport { Product, ProductOption } from \"../types/product\";\nimport { Category, SwellCategoryChildren } from \"../types/site\";\n\nconst money = ({ amount, currencyCode }: MoneyV2) => {\n return {\n value: +amount,\n currencyCode,\n };\n};\n\ntype swellProductOption = {\n id: string;\n name: string;\n values: any[];\n};\n\ntype normalizedProductOption = {\n id: string;\n displayName: string;\n values: ProductOptionValue[];\n};\n\nconst normalizeProductOption = ({\n id,\n name: displayName = \"\",\n values = [],\n}: swellProductOption): ProductOption => {\n let returnValues = values.map((value) => {\n let output: any = {\n label: value.name,\n // id: value?.id || id,\n };\n if (displayName.match(/colou?r/gi)) {\n output = {\n ...output,\n hexColors: [value.name],\n };\n }\n return output;\n });\n return {\n __typename: \"MultipleChoiceOption\",\n id,\n displayName,\n values: returnValues,\n };\n};\n\nconst normalizeProductImages = (images: SwellImage[]) => {\n if (!images || images.length < 1) {\n return [{ url: \"/\" }];\n }\n return images?.map(({ file, ...rest }: SwellImage) => ({\n url: file?.url + \"\",\n height: Number(file?.height),\n width: Number(file?.width),\n ...rest,\n }));\n};\n\nconst normalizeProductVariants = (\n variants: SwellVariant[],\n productOptions: swellProductOption[]\n) => {\n return variants?.map(\n ({ id, name, price, option_value_ids: optionValueIds = [] }) => {\n const values = name\n .split(\",\")\n .map((i) => ({ name: i.trim(), label: i.trim() }));\n\n const options = optionValueIds.map((id) => {\n const matchingOption = productOptions.find((option) => {\n return option.values.find(\n (value: SwellProductOptionValue) => value.id == id\n );\n });\n return normalizeProductOption({\n id,\n name: matchingOption?.name ?? \"\",\n values,\n });\n });\n\n return {\n id,\n name,\n // sku: sku ?? id,\n price: price ?? undefined,\n // listPrice: price ?? null,\n // requiresShipping: true,\n options,\n };\n }\n );\n};\n\nexport function normalizeProduct(swellProduct: SwellProduct): Product {\n const {\n id,\n name,\n description,\n images,\n options,\n slug,\n variants,\n price: value,\n currency: currencyCode,\n } = swellProduct;\n // ProductView accesses variants for each product\n const emptyVariants = [{ options: [], id, name: \"Default variant\" }];\n\n const productOptions = options\n ? options.map((o) => normalizeProductOption(o))\n : [];\n const productVariants = variants\n ? normalizeProductVariants(variants.results, options)\n : [];\n\n const productImages = normalizeProductImages(images);\n const product = {\n ...swellProduct,\n description,\n id,\n vendor: \"\",\n path: `/${slug}`,\n images: productImages,\n variants:\n productVariants && productVariants.length\n ? productVariants\n : emptyVariants,\n options: productOptions,\n price: {\n value,\n currencyCode,\n },\n };\n return product;\n}\n\nexport function normalizeCart({\n id,\n account_id,\n date_created,\n currency,\n tax_included_total,\n items,\n sub_total,\n grand_total,\n discounts,\n}: SwellCart) {\n const cart: Cart = {\n id: id,\n customerId: account_id + \"\",\n email: \"\",\n createdAt: date_created,\n currency: { code: currency },\n taxesIncluded: tax_included_total > 0,\n lineItems: items?.map(normalizeLineItem) ?? [],\n lineItemsSubtotalPrice: +sub_total,\n subtotalPrice: +sub_total,\n totalPrice: grand_total,\n discounts: discounts?.map((discount) => ({ value: discount.amount })),\n };\n return cart;\n}\n/*\nexport function normalizeCustomer(customer: SwellCustomer): Customer {\n const { first_name: firstName, last_name: lastName } = customer\n return {\n ...customer,\n firstName,\n lastName,\n }\n}\n*/\nfunction normalizeLineItem({\n id,\n product,\n price,\n variant,\n quantity,\n}: CartLineItem): LineItem {\n const item = {\n id,\n variantId: variant?.id,\n productId: product.id ?? \"\",\n name: product?.name ?? \"\",\n quantity,\n variant: {\n id: variant?.id ?? \"\",\n sku: variant?.sku ?? \"\",\n name: variant?.name!,\n image: {\n url:\n product?.images && product.images.length > 0\n ? product?.images[0].file.url\n : \"/\",\n },\n requiresShipping: false,\n price: price,\n listPrice: price,\n },\n path: \"\",\n discounts: [],\n options: [\n {\n value: variant?.name,\n },\n ],\n };\n return item;\n}\n\nexport function normalizeChildren(children: SwellCategoryChildren) {\n return children?.results.map((ch) => ch.id);\n}\n\nexport function normalizeCategory({\n id,\n name,\n slug,\n products,\n images,\n depth,\n children,\n parent_id,\n}: any): Category {\n return {\n id,\n name,\n slug,\n path: `/${slug}`,\n isEmpty: products?.length === 0,\n images: images?.map((image: any) => ({\n url: image.file.url,\n })),\n depth,\n children: normalizeChildren(children),\n parentId: parent_id,\n };\n}\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: None\n*/\nimport { CommerceError } from '@plasmicpkgs/commerce'\n\ntype SwellFetchResponse = {\n error: {\n message: string\n code?: string\n }\n}\n\nconst handleFetchResponse = async (res: SwellFetchResponse) => {\n if (res) {\n if (res.error) {\n throw new CommerceError(res.error)\n }\n return res\n }\n return null;\n}\n\nexport default handleFetchResponse\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: None\n*/\nimport Cookies from 'js-cookie'\nimport { SWELL_CHECKOUT_ID_COOKIE } from '../const'\n\nconst getCheckoutId = (id?: string) => {\n return id ?? Cookies.get(SWELL_CHECKOUT_ID_COOKIE)\n}\n\nexport default getCheckoutId\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: None\n*/\nimport { CommerceError } from '@plasmicpkgs/commerce'\nimport { CartType } from '@plasmicpkgs/commerce'\n\nimport {\n CheckoutLineItemsAddPayload,\n CheckoutLineItemsRemovePayload,\n CheckoutLineItemsUpdatePayload,\n Maybe,\n} from '../../schema'\nimport { normalizeCart } from '../../utils'\nexport type CheckoutPayload =\n | CheckoutLineItemsAddPayload\n | CheckoutLineItemsUpdatePayload\n | CheckoutLineItemsRemovePayload\n\nconst checkoutToCart = (checkoutPayload?: Maybe<CheckoutPayload>): CartType.Cart => {\n if (!checkoutPayload) {\n throw new CommerceError({\n message: 'Invalid response from Swell',\n })\n }\n return normalizeCart(checkoutPayload as any)\n}\n\nexport default checkoutToCart\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes:\n - Added sameSite and secure to the cookie options to allow third-party cookies.\n\t We need this to make work on the studio\n*/\nimport { SWELL_CHECKOUT_URL_COOKIE, SWELL_COOKIE_EXPIRE } from '../../const'\n\nimport Cookies from 'js-cookie'\n\nexport const checkoutCreate = async (fetch: any) => {\n const cart = await fetch({\n query: 'cart',\n method: 'get',\n })\n\n if (!cart) {\n await fetch({\n query: 'cart',\n method: 'setItems',\n variables: [[]],\n })\n }\n\n const checkoutUrl = cart?.checkout_url\n const options: Cookies.CookieAttributes = {\n expires: SWELL_COOKIE_EXPIRE,\n sameSite: \"none\",\n secure: true\n }\n if (checkoutUrl) {\n Cookies.set(SWELL_CHECKOUT_URL_COOKIE, checkoutUrl, options)\n }\n\n return cart\n}\n\nexport default checkoutCreate\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: None\n*/\nimport { useCart, UseCart } from '@plasmicpkgs/commerce'\nimport { SWRHook } from '@plasmicpkgs/commerce'\nimport { useMemo } from 'react'\nimport { normalizeCart } from '../utils/normalize'\nimport { checkoutCreate, checkoutToCart } from './utils'\nimport type { CartType } from '@plasmicpkgs/commerce'\n\nexport default useCart as UseCart<typeof handler>\n\ntype GetCartHook = CartType.GetCartHook;\n\nexport const handler: SWRHook<GetCartHook> = {\n fetchOptions: {\n query: 'cart',\n method: 'get',\n },\n async fetcher({ fetch }) {\n const cart = await checkoutCreate(fetch)\n\n return cart ? normalizeCart(cart) : null\n },\n useHook:\n ({ useData }) =>\n (input) => {\n const response = useData({\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n })\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.lineItems.length ?? 0) <= 0\n },\n enumerable: true,\n },\n }),\n [response]\n )\n },\n}\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: None\n*/\nimport type { MutationHook } from '@plasmicpkgs/commerce'\nimport { CommerceError } from '@plasmicpkgs/commerce'\nimport { useAddItem, UseAddItem } from '@plasmicpkgs/commerce'\nimport useCart from './use-cart'\nimport { checkoutToCart } from './utils'\nimport { getCheckoutId } from '../utils'\nimport { useCallback } from 'react'\nimport { AddItemHook } from '../types/cart'\n\nexport default useAddItem as UseAddItem<typeof handler>\n\nexport const handler: MutationHook<AddItemHook> = {\n fetchOptions: {\n query: 'cart',\n method: 'addItem',\n },\n async fetcher({ input: item, options, fetch }) {\n if (\n item.quantity &&\n (!Number.isInteger(item.quantity) || item.quantity! < 1)\n ) {\n throw new CommerceError({\n message: 'The item quantity has to be a valid integer greater than 0',\n })\n }\n const variables: {\n product_id: string | undefined\n variant_id?: string\n checkoutId?: string\n quantity?: number\n } = {\n checkoutId: getCheckoutId(),\n product_id: item.productId,\n quantity: item.quantity,\n }\n if (item.productId !== item.variantId) {\n variables.variant_id = item.variantId\n }\n\n const response = await fetch({\n ...options,\n variables,\n })\n\n return checkoutToCart(response) as any\n },\n useHook:\n ({ fetch }) =>\n () => {\n const { mutate } = useCart()\n\n return useCallback(\n async function addItem(input) {\n const data = await fetch({ input })\n await mutate(data, false)\n return data\n },\n [fetch, mutate]\n )\n },\n}\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: None\n*/\nimport type {\n HookFetcherContext,\n MutationHookContext,\n} from \"@plasmicpkgs/commerce\";\nimport { useCallback } from \"react\";\n\nimport { CartType, useRemoveItem, UseRemoveItem } from \"@plasmicpkgs/commerce\";\nimport useCart from \"./use-cart\";\nimport { checkoutToCart } from \"./utils\";\n\ntype Cart = CartType.Cart;\ntype LineItem = CartType.LineItem;\ntype RemoveItemHook = CartType.RemoveItemHook;\n\nexport type RemoveItemFn<T = any> = T extends LineItem\n ? (input?: RemoveItemActionInput<T>) => Promise<Cart | null | undefined>\n : (input: RemoveItemActionInput<T>) => Promise<Cart | null>;\n\nexport type RemoveItemActionInput<T = any> = T extends LineItem\n ? Partial<RemoveItemHook[\"actionInput\"]>\n : RemoveItemHook[\"actionInput\"];\n\nexport default useRemoveItem as UseRemoveItem<typeof handler>;\n\nexport const handler = {\n fetchOptions: {\n query: \"cart\",\n method: \"removeItem\",\n },\n async fetcher({\n input: { itemId },\n options,\n fetch,\n }: HookFetcherContext<RemoveItemHook>) {\n const response = await fetch({ ...options, variables: [itemId] });\n\n return checkoutToCart(response);\n },\n useHook: ({ fetch }: MutationHookContext<RemoveItemHook>) => () => {\n const { mutate } = useCart();\n\n return useCallback(\n async function removeItem(input: { id: string }) {\n const data = await fetch({ input: { itemId: input.id } });\n await mutate(data, false);\n\n return data;\n },\n [fetch, mutate]\n );\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: None\n*/\nimport type {\n HookFetcherContext,\n MutationHookContext,\n} from \"@plasmicpkgs/commerce\";\nimport { ValidationError } from \"@plasmicpkgs/commerce\";\nimport debounce from \"debounce\";\nimport { useCallback } from \"react\";\n// import useUpdateItem, {\n// UpdateItemInput as UpdateItemInputBase,\n// UseUpdateItem,\n// } from '@vercel/commerce/cart/use-update-item'\nimport { CartType, useUpdateItem, UseUpdateItem } from \"@plasmicpkgs/commerce\";\nimport { UpdateItemHook } from \"../types/cart\";\nimport useCart from \"./use-cart\";\nimport { handler as removeItemHandler } from \"./use-remove-item\";\nimport { checkoutToCart } from \"./utils\";\n// export type UpdateItemInput<T = any> = T extends LineItem\n// ? Partial<UpdateItemInputBase<LineItem>>\n// : UpdateItemInputBase<LineItem>\n\nexport default useUpdateItem as UseUpdateItem<typeof handler>;\n\ntype CartItemBody = CartType.CartItemBody;\ntype LineItem = CartType.LineItem;\n\nexport type UpdateItemActionInput<T = any> = T extends LineItem\n ? Partial<UpdateItemHook[\"actionInput\"]>\n : UpdateItemHook[\"actionInput\"];\n\nexport const handler = {\n fetchOptions: {\n query: \"cart\",\n method: \"updateItem\",\n },\n async fetcher({\n input: { itemId, item },\n options,\n fetch,\n }: HookFetcherContext<UpdateItemHook>) {\n if (Number.isInteger(item.quantity)) {\n // Also allow the update hook to remove an item if the quantity is lower than 1\n if (item.quantity! < 1) {\n return removeItemHandler.fetcher({\n options: removeItemHandler.fetchOptions,\n input: { itemId },\n fetch,\n });\n }\n } else if (item.quantity) {\n throw new ValidationError({\n message: \"The item quantity has to be a valid integer\",\n });\n }\n const response = await fetch({\n ...options,\n variables: [itemId, { quantity: item.quantity }],\n });\n\n return checkoutToCart(response);\n },\n useHook:\n ({ fetch }: MutationHookContext<UpdateItemHook>) =>\n <T extends LineItem | undefined = undefined>(\n ctx: {\n item?: T;\n wait?: number;\n } = {}\n ) => {\n const { item } = ctx;\n const { mutate, data: cartData } = useCart() as any;\n\n return useCallback(\n debounce(async (input: UpdateItemActionInput) => {\n const itemId = input.id ?? item?.id;\n if (!itemId) {\n throw new ValidationError({\n message: \"Invalid input used for this operation\",\n });\n }\n\n const data = await fetch({\n input: {\n item: {\n quantity: input.quantity,\n },\n itemId,\n },\n });\n await mutate(data, false);\n return data;\n }, ctx.wait ?? 500),\n [fetch, mutate]\n );\n },\n};\n","export function ensure<T>(x: T | null | undefined, msg = \"\"): T {\n if (x === null || x === undefined) {\n debugger;\n throw new Error(\n `Value must not be undefined or null${msg ? `- ${msg}` : \"\"}`\n );\n } else {\n return x;\n }\n}\n\nexport const ensureNoNilFields = (\n o: Record<string, any>\n): Record<string, any> =>\n Object.fromEntries(Object.entries(o).filter(([k, v]) => v != null));\n","import { Category } from \"../types/site\";\nimport { ensure } from \"./common\";\n\nexport const walkCategoryTree = (\n category?: Category,\n categories?: Category[]\n) => {\n if (!category || !categories) {\n return [];\n }\n\n const queue: Category[] = [category];\n const result: Category[] = [];\n while (queue.length > 0) {\n const curr = ensure(queue.shift());\n result.push(curr);\n queue.push(\n ...(curr.children?.map((child) =>\n ensure(\n categories.find((category) => category.id === child),\n \"The child category must always exist in the categories list\"\n )\n ) ?? [])\n );\n }\n return result;\n};\n\nexport const topologicalSortForCategoryTree = (categories: Category[]) => {\n return categories\n .filter((category) => !category.parentId)\n .flatMap((category) => walkCategoryTree(category, categories));\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: Added count as a parameter to input\n*/\nimport type { SearchProductsHook } from \"@plasmicpkgs/commerce\";\nimport {\n HookSWRInput,\n SWRHook,\n useSearch,\n UseSearch,\n} from \"@plasmicpkgs/commerce\";\nimport { SwellProduct } from \"../types\";\nimport { Category } from \"../types/site\";\nimport { normalizeProduct } from \"../utils\";\nimport { walkCategoryTree } from \"../utils/category-tree\";\nimport { ensureNoNilFields } from \"../utils/common\";\n\nexport type SearchProductsInput = {\n search?: string;\n categoryId?: string;\n brandId?: string;\n sort?: string;\n count?: number;\n includeSubCategories?: boolean;\n categories?: Category[];\n};\n\nconst useSearchTyped: UseSearch<typeof handler> = useSearch;\nexport default useSearchTyped;\n\nexport const handler: SWRHook<SearchProductsHook> = {\n fetchOptions: {\n query: \"products\",\n method: \"list\",\n },\n async fetcher({ input, options, fetch }) {\n const sortMap = new Map([\n [\"latest-desc\", \"\"],\n [\"price-asc\", \"price asc\"],\n [\"price-desc\", \"price desc\"],\n [\"trending-desc\", \"popularity\"],\n ]);\n const {\n categoryId,\n includeSubCategories,\n categories,\n brandId,\n search,\n sort = \"latest-desc\",\n count,\n } = input;\n const mappedSort = sortMap.get(sort);\n\n const includedCategories = includeSubCategories\n ? walkCategoryTree(\n categories?.find((category) => category.id === categoryId),\n categories\n )\n : undefined;\n\n const { results: products } = await fetch({\n query: options.query,\n method: options.method,\n variables: ensureNoNilFields({\n category: !includeSubCategories ? categoryId : undefined,\n brand: brandId,\n search,\n sort: mappedSort,\n expand: [\"variants\"],\n limit: count,\n $filters: {\n ...(includeSubCategories\n ? { category: includedCategories?.map((c) => c.id) }\n : {}),\n },\n }),\n });\n\n return {\n products: products.map((product: SwellProduct) =>\n normalizeProduct(product)\n ),\n found: products.length > 0,\n };\n },\n useHook:\n ({ useData }) =>\n (input = {}) => {\n return useData({\n input: [\n [\"search\", input.search],\n [\"categoryId\", input.categoryId],\n [\"includeSubCategories\", input.includeSubCategories],\n [\"categories\", input.categories],\n [\"brandId\", input.brandId],\n [\"sort\", input.sort],\n [\"count\", input.count],\n ] as HookSWRInput,\n swrOptions: {\n revalidateOnFocus: false,\n ...input.swrOptions,\n },\n });\n },\n};\n","import { GetProductHook, SWRHook, UseProduct, useProduct } from '@plasmicpkgs/commerce'\nimport { normalizeProduct } from '../utils'\nimport { SwellProduct } from '../types'\n\nexport type GetProductInput = {\n id?: string;\n}\n\nexport default useProduct as UseProduct<typeof handler>\n\nexport const handler: SWRHook<GetProductHook> = {\n fetchOptions: {\n query: 'products',\n method: 'get',\n },\n async fetcher({ input, options, fetch }) {\n const { id } = input;\n const product = await fetch({\n query: options.query,\n method: options.method,\n variables: [id],\n });\n if (!product) {\n return null;\n }\n return normalizeProduct(product);\n },\n useHook:\n ({ useData }) =>\n (input = {}) => {\n return useData({\n input: [\n ['id', input.id],\n ],\n swrOptions: {\n revalidateOnFocus: false,\n ...input.swrOptions,\n },\n })\n },\n}\n","import {\n SiteTypes,\n SWRHook,\n useCategories,\n UseCategories,\n} from \"@plasmicpkgs/commerce\";\nimport { useMemo } from \"react\";\nimport { Category } from \"../types/site\";\nimport { normalizeCategory } from \"../utils\";\nimport { topologicalSortForCategoryTree } from \"../utils/category-tree\";\nimport { ensureNoNilFields } from \"../utils/common\";\n\nexport default useCategories as UseCategories<typeof handler>;\n\ntype GetCategoriesHook = SiteTypes.GetCategoriesHook;\n\nexport const handler: SWRHook<GetCategoriesHook> = {\n fetchOptions: {\n query: \"categories\",\n method: \"get\",\n },\n async fetcher({ input, options, fetch }) {\n const { addIsEmptyField, categoryId } = input;\n\n const data = await fetch({\n query: options.query,\n method: options.method,\n variables: ensureNoNilFields({\n expand: [\"children\", \"parent_id\"],\n id: categoryId,\n }),\n });\n\n let categories = data?.results ?? [];\n if (addIsEmptyField) {\n categories = await Promise.all(\n categories.map(async (category: any) => ({\n ...category,\n products: (\n await fetch({\n query: \"products\",\n method: \"list\",\n variables: ensureNoNilFields({\n limit: 1,\n category: category.id,\n }),\n })\n ).results,\n }))\n );\n }\n\n const normalizedCategories: Category[] = !categoryId\n ? topologicalSortForCategoryTree(categories.map(normalizeCategory))\n : categories.map(normalizeCategory);\n\n for (const category of normalizedCategories) {\n category.depth =\n (normalizedCategories.find((c) => c.id === category.parentId)?.depth ??\n -1) + 1;\n }\n return normalizedCategories;\n },\n useHook: ({ useData }) => (input) => {\n const response = useData({\n input: [\n [\"addIsEmptyField\", input?.addIsEmptyField],\n [\"categoryId\", input?.categoryId],\n ],\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n });\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.length ?? 0) <= 0;\n },\n enumerable: true,\n },\n }),\n [response]\n );\n },\n};\n","import {\n SiteTypes,\n SWRHook,\n useBrands,\n UseBrands,\n} from \"@plasmicpkgs/commerce\";\nimport { useMemo } from \"react\";\n\nexport default useBrands as UseBrands<typeof handler>;\n\ntype GetBrandsHook = SiteTypes.GetBrandsHook;\n\nexport const handler: SWRHook<GetBrandsHook> = {\n fetchOptions: {\n query: \"attributes\",\n method: \"get\",\n },\n async fetcher({ fetch }) {\n const vendors: [string] =\n (\n await fetch({\n query: \"attributes\",\n method: \"get\",\n variables: \"brand\",\n })\n )?.values ?? [];\n return Array.from(new Set(vendors).values()).map((v) => ({\n entityId: v,\n name: v,\n path: `brands/${v}`,\n }));\n },\n useHook: ({ useData }) => (input) => {\n const response = useData({\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n });\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.length ?? 0) <= 0;\n },\n enumerable: true,\n },\n }),\n [response]\n );\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: None\n*/\nimport { Fetcher } from '@plasmicpkgs/commerce'\nimport { CommerceError } from '@plasmicpkgs/commerce'\nimport { handleFetchResponse } from './utils'\nimport swell from './provider'\n\nconst fetcher: Fetcher = async ({ method = 'get', variables, query }) => {\n async function callSwell() {\n if (Array.isArray(variables)) {\n const arg1 = variables[0]\n const arg2 = variables[1]\n const response = await swell[query!][method](arg1, arg2)\n return handleFetchResponse(response)\n } else {\n const response = await swell[query!][method](variables)\n return handleFetchResponse(response)\n }\n }\n\n if (query && query in swell) {\n return await callSwell()\n } else {\n throw new CommerceError({ message: 'Invalid query argument!' })\n }\n}\n\nexport default fetcher\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: Added storeId and publicKey parameters\n*/\n// @ts-ignore\nimport swell, { init } from \"swell-js\";\n\nimport { CommerceExtraFeatures, Provider } from \"@plasmicpkgs/commerce\";\nimport { SWELL_CHECKOUT_ID_COOKIE } from \"./const\";\nimport { handler as useCart } from \"./cart/use-cart\";\nimport { handler as useAddItem } from \"./cart/use-add-item\";\nimport { handler as useUpdateItem } from \"./cart/use-update-item\";\nimport { handler as useRemoveItem } from \"./cart/use-remove-item\";\nimport { handler as useSearch } from \"./product/use-search\";\nimport { handler as useProduct } from \"./product/use-product\";\nimport { handler as useCategories } from \"./site/use-categories\";\nimport { handler as useBrands } from \"./site/use-brands\";\nimport fetcher from \"./fetcher\";\nimport { Fetcher } from \"@plasmicpkgs/commerce\";\n\nexport const getSwellProvider = (storeId: string, publicKey: string) => {\n init(storeId, publicKey);\n\n return {\n locale: \"en-us\",\n cartCookie: SWELL_CHECKOUT_ID_COOKIE,\n swell,\n fetcher,\n cart: { useCart, useAddItem, useUpdateItem, useRemoveItem },\n products: { useSearch, useProduct },\n site: { useCategories, useBrands },\n extraFeatures: {\n includeSubCategories: true,\n },\n };\n};\n\nexport type SwellProvider = {\n locale: string;\n cartCookie: string;\n fetcher: Fetcher;\n cart: {\n useCart: typeof useCart;\n useAddItem: typeof useAddItem;\n useUpdateItem: typeof useUpdateItem;\n useRemoveItem: typeof useRemoveItem;\n };\n products: {\n useSearch: typeof useSearch;\n };\n site: {\n useCategories: typeof useCategories;\n useBrands: typeof useBrands;\n };\n extraFeatures: CommerceExtraFeatures;\n swell: any;\n};\n\nexport default swell as any;\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: None\n*/\nimport {\n CommerceAPIConfig,\n getCommerceProvider as getCoreCommerceProvider,\n useCommerce as useCoreCommerce,\n} from '@plasmicpkgs/commerce'\nimport { SWELL_CHECKOUT_ID_COOKIE, SWELL_COOKIE_EXPIRE, SWELL_CUSTOMER_TOKEN_COOKIE } from './const'\nimport { getSwellProvider, SwellProvider } from './provider'\nimport fetchApi from './utils/fetch-swell-api'\n\nexport type { SwellProvider }\n\nexport const getCommerceProvider = (storeId: string, publicKey: string) => \n getCoreCommerceProvider(getSwellProvider(storeId, publicKey))\n\nexport const useCommerce = () => useCoreCommerce<SwellProvider>()\n\n\nexport interface SwellConfig extends CommerceAPIConfig {\n fetch: any\n}\n\nconst config: SwellConfig = {\n locale: 'en-US',\n commerceUrl: '',\n apiToken: ''!,\n cartCookie: SWELL_CHECKOUT_ID_COOKIE,\n cartCookieMaxAge: SWELL_COOKIE_EXPIRE,\n fetch: fetchApi,\n customerCookie: SWELL_CUSTOMER_TOKEN_COOKIE,\n}\n","import { GlobalContextMeta } from \"@plasmicapp/host\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport {\n CartActionsProvider,\n globalActionsRegistrations,\n} from \"@plasmicpkgs/commerce\";\nimport React from \"react\";\nimport { Registerable } from \"./registerable\";\nimport { getCommerceProvider } from \"./swell\";\n\ninterface CommerceProviderProps {\n children?: React.ReactNode;\n storeId: string;\n publicKey: string;\n}\n\nconst globalContextName = \"plasmic-commerce-swell-provider\";\n\nexport const commerceProviderMeta: GlobalContextMeta<CommerceProviderProps> = {\n name: \"plasmic-commerce-swell-provider\",\n displayName: \"Swell Provider\",\n props: {\n storeId: {\n type: \"string\",\n defaultValue: \"plasmic-sandbox\",\n },\n publicKey: {\n type: \"string\",\n defaultValue: \"pk_QaZeGhtpQaVbNQnWJdRlE1abE6Ezf9U9\",\n },\n },\n ...{ globalActions: globalActionsRegistrations },\n description: `Get your store ID and public storefront API key from the Swell admin UI under Developer > API Keys.\n\n[Watch how to use this integration](https://www.youtube.com/watch?v=b2mgOTbP2_8).`,\n importPath: \"@plasmicpkgs/commerce-swell\",\n importName: \"CommerceProviderComponent\",\n};\n\nexport function CommerceProviderComponent(props: CommerceProviderProps) {\n const { storeId, publicKey, children } = props;\n\n const CommerceProvider = React.useMemo(\n () => getCommerceProvider(storeId, publicKey),\n [storeId, publicKey]\n );\n\n return (\n <CommerceProvider>\n <CartActionsProvider globalContextName={globalContextName}>\n {children}\n </CartActionsProvider>\n </CommerceProvider>\n );\n}\n\nexport function registerCommerceProvider(\n loader?: Registerable,\n customCommerceProviderMeta?: GlobalContextMeta<CommerceProviderProps>\n) {\n const doRegisterComponent: typeof registerGlobalContext = (...args) =>\n loader\n ? loader.registerGlobalContext(...args)\n : registerGlobalContext(...args);\n doRegisterComponent(\n CommerceProviderComponent,\n customCommerceProviderMeta ?? commerceProviderMeta\n );\n}\n","import { Registerable } from \"./registerable\";\nimport { registerCommerceProvider } from \"./registerCommerceProvider\";\nexport * from \"./registerable\";\nexport * from \"./registerCommerceProvider\";\nexport * from \"./swell\";\nexport { registerCommerceProvider };\n\nexport function registerAll(loader?: Registerable) {\n registerCommerceProvider(loader);\n}\n"],"names":["SWELL_CHECKOUT_ID_COOKIE","SWELL_CHECKOUT_URL_COOKIE","SWELL_COOKIE_EXPIRE","normalizeProductOption","_ref2","id","_ref2$name","name","displayName","_ref2$values","values","returnValues","map","value","output","label","match","_extends","hexColors","__typename","normalizeProductImages","images","length","url","_ref3","file","rest","_objectWithoutPropertiesLoose","_excluded","height","Number","width","normalizeProductVariants","variants","productOptions","_ref4","price","_ref4$option_value_id","option_value_ids","optionValueIds","split","i","trim","options","matchingOption","find","option","_matchingOption$name","undefined","normalizeProduct","swellProduct","description","slug","currencyCode","currency","emptyVariants","o","productVariants","results","productImages","product","vendor","path","normalizeCart","_ref5","account_id","date_created","tax_included_total","items","sub_total","grand_total","discounts","cart","customerId","email","createdAt","code","taxesIncluded","lineItems","_items$map","normalizeLineItem","lineItemsSubtotalPrice","subtotalPrice","totalPrice","discount","amount","_ref6","variant","quantity","item","variantId","productId","_product$id","_product$name","_variant$id","sku","_variant$sku","image","requiresShipping","listPrice","normalizeChildren","children","ch","normalizeCategory","_ref7","products","depth","parent_id","isEmpty","parentId","handleFetchResponse","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","res","wrap","_callee$","_context","prev","next","error","CommerceError","abrupt","stop","_x","apply","arguments","getCheckoutId","Cookies","get","checkoutToCart","checkoutPayload","message","checkoutCreate","fetch","checkoutUrl","query","method","sent","variables","checkout_url","expires","sameSite","secure","set","handler","fetchOptions","fetcher","useHook","useData","input","response","swrOptions","revalidateOnFocus","useMemo","Object","create","_response$data$lineIt","_response$data","data","enumerable","isInteger","checkoutId","product_id","variant_id","_useCart","useCart","mutate","useCallback","_addItem","_callee2","_callee2$","_context2","addItem","itemId","_removeItem","removeItem","_ref$input","removeItemHandler","ValidationError","ctx","_ctx","debounce","_input$id","_ctx$wait","wait","ensure","x","msg","Error","ensureNoNilFields","fromEntries","entries","filter","v","walkCategoryTree","category","categories","queue","result","_curr$children$map","_curr$children","curr","shift","push","child","topologicalSortForCategoryTree","flatMap","sortMap","Map","categoryId","includeSubCategories","brandId","search","_input$sort","sort","count","mappedSort","includedCategories","brand","expand","limit","$filters","c","_yield$fetch","found","addIsEmptyField","_context3","_data$results","Promise","all","t0","t1","t2","t3","t4","normalizedCategories","_loop","_normalizedCategories","_normalizedCategories2","_loop$","_step","_iterator","_createForOfIteratorHelperLoose","done","delegateYield","_response$data$length","_yield$fetch$values","vendors","Array","from","Set","entityId","_ref$method","callSwell","_callSwell","_callSwell3","arg1","arg2","_response","isArray","swell","_callSwell2","getSwellProvider","storeId","publicKey","init","locale","cartCookie","useAddItem","useUpdateItem","useRemoveItem","useSearch","useProduct","site","useCategories","useBrands","extraFeatures","getCommerceProvider","getCoreCommerceProvider","useCommerce","useCoreCommerce","globalContextName","commerceProviderMeta","props","type","defaultValue","globalActions","globalActionsRegistrations","importPath","importName","CommerceProviderComponent","CommerceProvider","React","CartActionsProvider","registerCommerceProvider","loader","customCommerceProviderMeta","doRegisterComponent","registerGlobalContext","registerAll"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commerce-swell.cjs.development.js","sources":["../src/const.ts","../src/utils/normalize.ts","../src/utils/handle-fetch-response.ts","../src/utils/get-checkout-id.ts","../src/cart/utils/checkout-to-cart.ts","../src/cart/utils/checkout-create.ts","../src/cart/use-cart.tsx","../src/cart/use-add-item.tsx","../src/cart/use-remove-item.tsx","../src/cart/use-update-item.tsx","../src/fetcher.ts","../src/product/use-product.tsx","../src/utils/common.ts","../src/utils/category-tree.ts","../src/product/use-search.tsx","../src/site/use-brands.ts","../src/site/use-categories.ts","../src/provider.ts","../src/swell.ts","../src/registerCommerceProvider.tsx","../src/index.tsx"],"sourcesContent":["/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: Removed store id and public key\n*/\nexport const SWELL_CHECKOUT_ID_COOKIE = 'SWELL_checkoutId'\n\nexport const SWELL_CHECKOUT_URL_COOKIE = 'swell_checkoutUrl'\n\nexport const SWELL_CUSTOMER_TOKEN_COOKIE = 'swell_customerToken'\n\nexport const SWELL_COOKIE_EXPIRE = 30\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: Added \"Default Variant\" to default title when there's no product variant\n*/\nimport { MoneyV2 } from \"../schema\";\nimport type {\n Cart,\n CartLineItem,\n LineItem,\n ProductOptionValue,\n SwellCart,\n SwellImage,\n SwellProduct,\n SwellProductOptionValue,\n SwellVariant,\n} from \"../types\";\nimport { Product, ProductOption } from \"../types/product\";\nimport { Category, SwellCategoryChildren } from \"../types/site\";\n\nconst money = ({ amount, currencyCode }: MoneyV2) => {\n return {\n value: +amount,\n currencyCode,\n };\n};\n\ntype swellProductOption = {\n id: string;\n name: string;\n values: any[];\n};\n\ntype normalizedProductOption = {\n id: string;\n displayName: string;\n values: ProductOptionValue[];\n};\n\nconst normalizeProductOption = ({\n id,\n name: displayName = \"\",\n values = [],\n}: swellProductOption): ProductOption => {\n let returnValues = values.map((value) => {\n let output: any = {\n label: value.name,\n // id: value?.id || id,\n };\n if (displayName.match(/colou?r/gi)) {\n output = {\n ...output,\n hexColors: [value.name],\n };\n }\n return output;\n });\n return {\n __typename: \"MultipleChoiceOption\",\n id,\n displayName,\n values: returnValues,\n };\n};\n\nconst normalizeProductImages = (images: SwellImage[]) => {\n if (!images || images.length < 1) {\n return [{ url: \"/\" }];\n }\n return images?.map(({ file, ...rest }: SwellImage) => ({\n url: file?.url + \"\",\n height: Number(file?.height),\n width: Number(file?.width),\n ...rest,\n }));\n};\n\nconst normalizeProductVariants = (\n variants: SwellVariant[],\n productOptions: swellProductOption[]\n) => {\n return variants?.map(\n ({ id, name, price, option_value_ids: optionValueIds = [] }) => {\n const values = name\n .split(\",\")\n .map((i) => ({ name: i.trim(), label: i.trim() }));\n\n const options = optionValueIds.map((id) => {\n const matchingOption = productOptions.find((option) => {\n return option.values.find(\n (value: SwellProductOptionValue) => value.id == id\n );\n });\n return normalizeProductOption({\n id,\n name: matchingOption?.name ?? \"\",\n values,\n });\n });\n\n return {\n id,\n name,\n // sku: sku ?? id,\n price: price ?? undefined,\n // listPrice: price ?? null,\n // requiresShipping: true,\n options,\n };\n }\n );\n};\n\nexport function normalizeProduct(swellProduct: SwellProduct): Product {\n const {\n id,\n name,\n description,\n images,\n options,\n slug,\n variants,\n price: value,\n currency: currencyCode,\n } = swellProduct;\n // ProductView accesses variants for each product\n const emptyVariants = [{ options: [], id, name: \"Default variant\" }];\n\n const productOptions = options\n ? options.map((o) => normalizeProductOption(o))\n : [];\n const productVariants = variants\n ? normalizeProductVariants(variants.results, options)\n : [];\n\n const productImages = normalizeProductImages(images);\n const product = {\n ...swellProduct,\n description,\n id,\n vendor: \"\",\n path: `/${slug}`,\n images: productImages,\n variants:\n productVariants && productVariants.length\n ? productVariants\n : emptyVariants,\n options: productOptions,\n price: {\n value,\n currencyCode,\n },\n };\n return product;\n}\n\nexport function normalizeCart({\n id,\n account_id,\n date_created,\n currency,\n tax_included_total,\n items,\n sub_total,\n grand_total,\n discounts,\n}: SwellCart) {\n const cart: Cart = {\n id: id,\n customerId: account_id + \"\",\n email: \"\",\n createdAt: date_created,\n currency: { code: currency },\n taxesIncluded: tax_included_total > 0,\n lineItems: items?.map(normalizeLineItem) ?? [],\n lineItemsSubtotalPrice: +sub_total,\n subtotalPrice: +sub_total,\n totalPrice: grand_total,\n discounts: discounts?.map((discount) => ({ value: discount.amount })),\n };\n return cart;\n}\n/*\nexport function normalizeCustomer(customer: SwellCustomer): Customer {\n const { first_name: firstName, last_name: lastName } = customer\n return {\n ...customer,\n firstName,\n lastName,\n }\n}\n*/\nfunction normalizeLineItem({\n id,\n product,\n price,\n variant,\n quantity,\n}: CartLineItem): LineItem {\n const item = {\n id,\n variantId: variant?.id,\n productId: product.id ?? \"\",\n name: product?.name ?? \"\",\n quantity,\n variant: {\n id: variant?.id ?? \"\",\n sku: variant?.sku ?? \"\",\n name: variant?.name!,\n image: {\n url:\n product?.images && product.images.length > 0\n ? product?.images[0].file.url\n : \"/\",\n },\n requiresShipping: false,\n price: price,\n listPrice: price,\n },\n path: \"\",\n discounts: [],\n options: [\n {\n value: variant?.name,\n },\n ],\n };\n return item;\n}\n\nexport function normalizeChildren(children: SwellCategoryChildren) {\n return children?.results.map((ch) => ch.id);\n}\n\nexport function normalizeCategory({\n id,\n name,\n slug,\n products,\n images,\n depth,\n children,\n parent_id,\n}: any): Category {\n return {\n id,\n name,\n slug,\n path: `/${slug}`,\n isEmpty: products?.length === 0,\n images: images?.map((image: any) => ({\n url: image.file.url,\n })),\n depth,\n children: normalizeChildren(children),\n parentId: parent_id,\n };\n}\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: None\n*/\nimport { CommerceError } from '@plasmicpkgs/commerce'\n\ntype SwellFetchResponse = {\n error: {\n message: string\n code?: string\n }\n}\n\nconst handleFetchResponse = async (res: SwellFetchResponse) => {\n if (res) {\n if (res.error) {\n throw new CommerceError(res.error)\n }\n return res\n }\n return null;\n}\n\nexport default handleFetchResponse\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: None\n*/\nimport Cookies from 'js-cookie'\nimport { SWELL_CHECKOUT_ID_COOKIE } from '../const'\n\nconst getCheckoutId = (id?: string) => {\n return id ?? Cookies.get(SWELL_CHECKOUT_ID_COOKIE)\n}\n\nexport default getCheckoutId\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: None\n*/\nimport { CommerceError } from '@plasmicpkgs/commerce'\nimport { CartType } from '@plasmicpkgs/commerce'\n\nimport {\n CheckoutLineItemsAddPayload,\n CheckoutLineItemsRemovePayload,\n CheckoutLineItemsUpdatePayload,\n Maybe,\n} from '../../schema'\nimport { normalizeCart } from '../../utils'\nexport type CheckoutPayload =\n | CheckoutLineItemsAddPayload\n | CheckoutLineItemsUpdatePayload\n | CheckoutLineItemsRemovePayload\n\nconst checkoutToCart = (checkoutPayload?: Maybe<CheckoutPayload>): CartType.Cart => {\n if (!checkoutPayload) {\n throw new CommerceError({\n message: 'Invalid response from Swell',\n })\n }\n return normalizeCart(checkoutPayload as any)\n}\n\nexport default checkoutToCart\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes:\n - Added sameSite and secure to the cookie options to allow third-party cookies.\n\t We need this to make work on the studio\n*/\nimport { SWELL_CHECKOUT_URL_COOKIE, SWELL_COOKIE_EXPIRE } from '../../const'\n\nimport Cookies from 'js-cookie'\n\nexport const checkoutCreate = async (fetch: any) => {\n const cart = await fetch({\n query: 'cart',\n method: 'get',\n })\n\n if (!cart) {\n await fetch({\n query: 'cart',\n method: 'setItems',\n variables: [[]],\n })\n }\n\n const checkoutUrl = cart?.checkout_url\n const options: Cookies.CookieAttributes = {\n expires: SWELL_COOKIE_EXPIRE,\n sameSite: \"none\",\n secure: true\n }\n if (checkoutUrl) {\n Cookies.set(SWELL_CHECKOUT_URL_COOKIE, checkoutUrl, options)\n }\n\n return cart\n}\n\nexport default checkoutCreate\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: None\n*/\nimport { useCart, UseCart } from '@plasmicpkgs/commerce'\nimport { SWRHook } from '@plasmicpkgs/commerce'\nimport { useMemo } from 'react'\nimport { normalizeCart } from '../utils/normalize'\nimport { checkoutCreate, checkoutToCart } from './utils'\nimport type { CartType } from '@plasmicpkgs/commerce'\n\nexport default useCart as UseCart<typeof handler>\n\ntype GetCartHook = CartType.GetCartHook;\n\nexport const handler: SWRHook<GetCartHook> = {\n fetchOptions: {\n query: 'cart',\n method: 'get',\n },\n async fetcher({ fetch }) {\n const cart = await checkoutCreate(fetch)\n\n return cart ? normalizeCart(cart) : null\n },\n useHook:\n ({ useData }) =>\n (input) => {\n const response = useData({\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n })\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.lineItems.length ?? 0) <= 0\n },\n enumerable: true,\n },\n }),\n [response]\n )\n },\n}\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: None\n*/\nimport type { MutationHook } from '@plasmicpkgs/commerce'\nimport { CommerceError } from '@plasmicpkgs/commerce'\nimport { useAddItem, UseAddItem } from '@plasmicpkgs/commerce'\nimport useCart from './use-cart'\nimport { checkoutToCart } from './utils'\nimport { getCheckoutId } from '../utils'\nimport { useCallback } from 'react'\nimport { AddItemHook } from '../types/cart'\n\nexport default useAddItem as UseAddItem<typeof handler>\n\nexport const handler: MutationHook<AddItemHook> = {\n fetchOptions: {\n query: 'cart',\n method: 'addItem',\n },\n async fetcher({ input: item, options, fetch }) {\n if (\n item.quantity &&\n (!Number.isInteger(item.quantity) || item.quantity! < 1)\n ) {\n throw new CommerceError({\n message: 'The item quantity has to be a valid integer greater than 0',\n })\n }\n const variables: {\n product_id: string | undefined\n variant_id?: string\n checkoutId?: string\n quantity?: number\n } = {\n checkoutId: getCheckoutId(),\n product_id: item.productId,\n quantity: item.quantity,\n }\n if (item.productId !== item.variantId) {\n variables.variant_id = item.variantId\n }\n\n const response = await fetch({\n ...options,\n variables,\n })\n\n return checkoutToCart(response) as any\n },\n useHook:\n ({ fetch }) =>\n () => {\n const { mutate } = useCart()\n\n return useCallback(\n async function addItem(input) {\n const data = await fetch({ input })\n await mutate(data, false)\n return data\n },\n [fetch, mutate]\n )\n },\n}\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: None\n*/\nimport type {\n HookFetcherContext,\n MutationHookContext,\n} from \"@plasmicpkgs/commerce\";\nimport { useCallback } from \"react\";\n\nimport { CartType, useRemoveItem, UseRemoveItem } from \"@plasmicpkgs/commerce\";\nimport useCart from \"./use-cart\";\nimport { checkoutToCart } from \"./utils\";\n\ntype Cart = CartType.Cart;\ntype LineItem = CartType.LineItem;\ntype RemoveItemHook = CartType.RemoveItemHook;\n\nexport type RemoveItemFn<T = any> = T extends LineItem\n ? (input?: RemoveItemActionInput<T>) => Promise<Cart | null | undefined>\n : (input: RemoveItemActionInput<T>) => Promise<Cart | null>;\n\nexport type RemoveItemActionInput<T = any> = T extends LineItem\n ? Partial<RemoveItemHook[\"actionInput\"]>\n : RemoveItemHook[\"actionInput\"];\n\nexport default useRemoveItem as UseRemoveItem<typeof handler>;\n\nexport const handler = {\n fetchOptions: {\n query: \"cart\",\n method: \"removeItem\",\n },\n async fetcher({\n input: { itemId },\n options,\n fetch,\n }: HookFetcherContext<RemoveItemHook>) {\n const response = await fetch({ ...options, variables: [itemId] });\n\n return checkoutToCart(response);\n },\n useHook: ({ fetch }: MutationHookContext<RemoveItemHook>) => () => {\n const { mutate } = useCart();\n\n return useCallback(\n async function removeItem(input: { id: string }) {\n const data = await fetch({ input: { itemId: input.id } });\n await mutate(data, false);\n\n return data;\n },\n [fetch, mutate]\n );\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: None\n*/\nimport type {\n HookFetcherContext,\n MutationHookContext,\n} from \"@plasmicpkgs/commerce\";\nimport { ValidationError } from \"@plasmicpkgs/commerce\";\nimport debounce from \"debounce\";\nimport { useCallback } from \"react\";\n// import useUpdateItem, {\n// UpdateItemInput as UpdateItemInputBase,\n// UseUpdateItem,\n// } from '@vercel/commerce/cart/use-update-item'\nimport { CartType, useUpdateItem, UseUpdateItem } from \"@plasmicpkgs/commerce\";\nimport { UpdateItemHook } from \"../types/cart\";\nimport useCart from \"./use-cart\";\nimport { handler as removeItemHandler } from \"./use-remove-item\";\nimport { checkoutToCart } from \"./utils\";\n// export type UpdateItemInput<T = any> = T extends LineItem\n// ? Partial<UpdateItemInputBase<LineItem>>\n// : UpdateItemInputBase<LineItem>\n\nexport default useUpdateItem as UseUpdateItem<typeof handler>;\n\ntype CartItemBody = CartType.CartItemBody;\ntype LineItem = CartType.LineItem;\n\nexport type UpdateItemActionInput<T = any> = T extends LineItem\n ? Partial<UpdateItemHook[\"actionInput\"]>\n : UpdateItemHook[\"actionInput\"];\n\nexport const handler = {\n fetchOptions: {\n query: \"cart\",\n method: \"updateItem\",\n },\n async fetcher({\n input: { itemId, item },\n options,\n fetch,\n }: HookFetcherContext<UpdateItemHook>) {\n if (Number.isInteger(item.quantity)) {\n // Also allow the update hook to remove an item if the quantity is lower than 1\n if (item.quantity! < 1) {\n return removeItemHandler.fetcher({\n options: removeItemHandler.fetchOptions,\n input: { itemId },\n fetch,\n });\n }\n } else if (item.quantity) {\n throw new ValidationError({\n message: \"The item quantity has to be a valid integer\",\n });\n }\n const response = await fetch({\n ...options,\n variables: [itemId, { quantity: item.quantity }],\n });\n\n return checkoutToCart(response);\n },\n useHook:\n ({ fetch }: MutationHookContext<UpdateItemHook>) =>\n <T extends LineItem | undefined = undefined>(\n ctx: {\n item?: T;\n wait?: number;\n } = {}\n ) => {\n const { item } = ctx;\n const { mutate, data: cartData } = useCart() as any;\n\n return useCallback(\n debounce(async (input: UpdateItemActionInput) => {\n const itemId = input.id ?? item?.id;\n if (!itemId) {\n throw new ValidationError({\n message: \"Invalid input used for this operation\",\n });\n }\n\n const data = await fetch({\n input: {\n item: {\n quantity: input.quantity,\n },\n itemId,\n },\n });\n await mutate(data, false);\n return data;\n }, ctx.wait ?? 500),\n [fetch, mutate]\n );\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: None\n*/\nimport { Fetcher } from '@plasmicpkgs/commerce'\nimport { CommerceError } from '@plasmicpkgs/commerce'\nimport { handleFetchResponse } from './utils'\nimport swell from './provider'\n\nconst fetcher: Fetcher = async ({ method = 'get', variables, query }) => {\n async function callSwell() {\n if (Array.isArray(variables)) {\n const arg1 = variables[0]\n const arg2 = variables[1]\n const response = await swell[query!][method](arg1, arg2)\n return handleFetchResponse(response)\n } else {\n const response = await swell[query!][method](variables)\n return handleFetchResponse(response)\n }\n }\n\n if (query && query in swell) {\n return await callSwell()\n } else {\n throw new CommerceError({ message: 'Invalid query argument!' })\n }\n}\n\nexport default fetcher\n","import { GetProductHook, SWRHook, UseProduct, useProduct } from '@plasmicpkgs/commerce'\nimport { normalizeProduct } from '../utils'\nimport { SwellProduct } from '../types'\n\nexport type GetProductInput = {\n id?: string;\n}\n\nexport default useProduct as UseProduct<typeof handler>\n\nexport const handler: SWRHook<GetProductHook> = {\n fetchOptions: {\n query: 'products',\n method: 'get',\n },\n async fetcher({ input, options, fetch }) {\n const { id } = input;\n const product = await fetch({\n query: options.query,\n method: options.method,\n variables: [id],\n });\n if (!product) {\n return null;\n }\n return normalizeProduct(product);\n },\n useHook:\n ({ useData }) =>\n (input = {}) => {\n return useData({\n input: [\n ['id', input.id],\n ],\n swrOptions: {\n revalidateOnFocus: false,\n ...input.swrOptions,\n },\n })\n },\n}\n","export function ensure<T>(x: T | null | undefined, msg = \"\"): T {\n if (x === null || x === undefined) {\n debugger;\n throw new Error(\n `Value must not be undefined or null${msg ? `- ${msg}` : \"\"}`\n );\n } else {\n return x;\n }\n}\n\nexport const ensureNoNilFields = (\n o: Record<string, any>\n): Record<string, any> =>\n Object.fromEntries(Object.entries(o).filter(([k, v]) => v != null));\n","import { Category } from \"../types/site\";\nimport { ensure } from \"./common\";\n\nexport const walkCategoryTree = (\n category?: Category,\n categories?: Category[]\n) => {\n if (!category || !categories) {\n return [];\n }\n\n const queue: Category[] = [category];\n const result: Category[] = [];\n while (queue.length > 0) {\n const curr = ensure(queue.shift());\n result.push(curr);\n queue.push(\n ...(curr.children?.map((child) =>\n ensure(\n categories.find((category) => category.id === child),\n \"The child category must always exist in the categories list\"\n )\n ) ?? [])\n );\n }\n return result;\n};\n\nexport const topologicalSortForCategoryTree = (categories: Category[]) => {\n return categories\n .filter((category) => !category.parentId)\n .flatMap((category) => walkCategoryTree(category, categories));\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: Added count as a parameter to input\n*/\nimport type { SearchProductsHook } from \"@plasmicpkgs/commerce\";\nimport {\n HookSWRInput,\n SWRHook,\n useSearch,\n UseSearch,\n} from \"@plasmicpkgs/commerce\";\nimport { SwellProduct } from \"../types\";\nimport { Category } from \"../types/site\";\nimport { normalizeProduct } from \"../utils\";\nimport { walkCategoryTree } from \"../utils/category-tree\";\nimport { ensureNoNilFields } from \"../utils/common\";\n\nexport type SearchProductsInput = {\n search?: string;\n categoryId?: string;\n brandId?: string;\n sort?: string;\n count?: number;\n includeSubCategories?: boolean;\n categories?: Category[];\n};\n\nconst useSearchTyped: UseSearch<typeof handler> = useSearch;\nexport default useSearchTyped;\n\nexport const handler: SWRHook<SearchProductsHook> = {\n fetchOptions: {\n query: \"products\",\n method: \"list\",\n },\n async fetcher({ input, options, fetch }) {\n const sortMap = new Map([\n [\"latest-desc\", \"\"],\n [\"price-asc\", \"price asc\"],\n [\"price-desc\", \"price desc\"],\n [\"trending-desc\", \"popularity\"],\n ]);\n const {\n categoryId,\n includeSubCategories,\n categories,\n brandId,\n search,\n sort = \"latest-desc\",\n count,\n } = input;\n const mappedSort = sortMap.get(sort);\n\n const includedCategories = includeSubCategories\n ? walkCategoryTree(\n categories?.find((category) => category.id === categoryId),\n categories\n )\n : undefined;\n\n const { results: products } = await fetch({\n query: options.query,\n method: options.method,\n variables: ensureNoNilFields({\n category: !includeSubCategories ? categoryId : undefined,\n brand: brandId,\n search,\n sort: mappedSort,\n expand: [\"variants\"],\n limit: count,\n $filters: {\n ...(includeSubCategories\n ? { category: includedCategories?.map((c) => c.id) }\n : {}),\n },\n }),\n });\n\n return {\n products: products.map((product: SwellProduct) =>\n normalizeProduct(product)\n ),\n found: products.length > 0,\n };\n },\n useHook:\n ({ useData }) =>\n (input = {}) => {\n return useData({\n input: [\n [\"search\", input.search],\n [\"categoryId\", input.categoryId],\n [\"includeSubCategories\", input.includeSubCategories],\n [\"categories\", input.categories],\n [\"brandId\", input.brandId],\n [\"sort\", input.sort],\n [\"count\", input.count],\n ] as HookSWRInput,\n swrOptions: {\n revalidateOnFocus: false,\n ...input.swrOptions,\n },\n });\n },\n};\n","import {\n SiteTypes,\n SWRHook,\n useBrands,\n UseBrands,\n} from \"@plasmicpkgs/commerce\";\nimport { useMemo } from \"react\";\n\nexport default useBrands as UseBrands<typeof handler>;\n\ntype GetBrandsHook = SiteTypes.GetBrandsHook;\n\nexport const handler: SWRHook<GetBrandsHook> = {\n fetchOptions: {\n query: \"attributes\",\n method: \"get\",\n },\n async fetcher({ fetch }) {\n const vendors: [string] =\n (\n await fetch({\n query: \"attributes\",\n method: \"get\",\n variables: \"brand\",\n })\n )?.values ?? [];\n return Array.from(new Set(vendors).values()).map((v) => ({\n entityId: v,\n name: v,\n path: `brands/${v}`,\n }));\n },\n useHook: ({ useData }) => (input) => {\n const response = useData({\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n });\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.length ?? 0) <= 0;\n },\n enumerable: true,\n },\n }),\n [response]\n );\n },\n};\n","import {\n SiteTypes,\n SWRHook,\n useCategories,\n UseCategories,\n} from \"@plasmicpkgs/commerce\";\nimport { useMemo } from \"react\";\nimport { Category } from \"../types/site\";\nimport { normalizeCategory } from \"../utils\";\nimport { topologicalSortForCategoryTree } from \"../utils/category-tree\";\nimport { ensureNoNilFields } from \"../utils/common\";\n\nexport default useCategories as UseCategories<typeof handler>;\n\ntype GetCategoriesHook = SiteTypes.GetCategoriesHook;\n\nexport const handler: SWRHook<GetCategoriesHook> = {\n fetchOptions: {\n query: \"categories\",\n method: \"get\",\n },\n async fetcher({ input, options, fetch }) {\n const { addIsEmptyField, categoryId } = input;\n\n const data = await fetch({\n query: options.query,\n method: options.method,\n variables: ensureNoNilFields({\n expand: [\"children\", \"parent_id\"],\n id: categoryId,\n }),\n });\n\n let categories = data?.results ?? [];\n if (addIsEmptyField) {\n categories = await Promise.all(\n categories.map(async (category: any) => ({\n ...category,\n products: (\n await fetch({\n query: \"products\",\n method: \"list\",\n variables: ensureNoNilFields({\n limit: 1,\n category: category.id,\n }),\n })\n ).results,\n }))\n );\n }\n\n const normalizedCategories: Category[] = !categoryId\n ? topologicalSortForCategoryTree(categories.map(normalizeCategory))\n : categories.map(normalizeCategory);\n\n for (const category of normalizedCategories) {\n category.depth =\n (normalizedCategories.find((c) => c.id === category.parentId)?.depth ??\n -1) + 1;\n }\n return normalizedCategories;\n },\n useHook: ({ useData }) => (input) => {\n const response = useData({\n input: [\n [\"addIsEmptyField\", input?.addIsEmptyField],\n [\"categoryId\", input?.categoryId],\n ],\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n });\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.length ?? 0) <= 0;\n },\n enumerable: true,\n },\n }),\n [response]\n );\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: Added storeId and publicKey parameters\n*/\nimport swell from \"swell-js\";\n\nimport { CommerceExtraFeatures, Fetcher } from \"@plasmicpkgs/commerce\";\nimport { handler as useAddItem } from \"./cart/use-add-item\";\nimport { handler as useCart } from \"./cart/use-cart\";\nimport { handler as useRemoveItem } from \"./cart/use-remove-item\";\nimport { handler as useUpdateItem } from \"./cart/use-update-item\";\nimport { SWELL_CHECKOUT_ID_COOKIE } from \"./const\";\nimport fetcher from \"./fetcher\";\nimport { handler as useProduct } from \"./product/use-product\";\nimport { handler as useSearch } from \"./product/use-search\";\nimport { handler as useBrands } from \"./site/use-brands\";\nimport { handler as useCategories } from \"./site/use-categories\";\n\nexport const getSwellProvider = (storeId: string, publicKey: string) => {\n // Their types claim `init` is a named export, but examining the JS files in\n // dist/, you can see it's actually a function on the default export.\n // @ts-expect-error swell-js types are wrong\n swell.init(storeId, publicKey);\n\n return {\n locale: \"en-us\",\n cartCookie: SWELL_CHECKOUT_ID_COOKIE,\n swell,\n fetcher,\n cart: { useCart, useAddItem, useUpdateItem, useRemoveItem },\n products: { useSearch, useProduct },\n site: { useCategories, useBrands },\n extraFeatures: {\n includeSubCategories: true,\n },\n };\n};\n\nexport type SwellProvider = {\n locale: string;\n cartCookie: string;\n fetcher: Fetcher;\n cart: {\n useCart: typeof useCart;\n useAddItem: typeof useAddItem;\n useUpdateItem: typeof useUpdateItem;\n useRemoveItem: typeof useRemoveItem;\n };\n products: {\n useSearch: typeof useSearch;\n };\n site: {\n useCategories: typeof useCategories;\n useBrands: typeof useBrands;\n };\n extraFeatures: CommerceExtraFeatures;\n swell: any;\n};\n\nexport default swell as any;\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/swell/src\n Changes: None\n*/\nimport {\n CommerceAPIConfig,\n getCommerceProvider as getCoreCommerceProvider,\n useCommerce as useCoreCommerce,\n} from '@plasmicpkgs/commerce'\nimport { SWELL_CHECKOUT_ID_COOKIE, SWELL_COOKIE_EXPIRE, SWELL_CUSTOMER_TOKEN_COOKIE } from './const'\nimport { getSwellProvider, SwellProvider } from './provider'\nimport fetchApi from './utils/fetch-swell-api'\n\nexport type { SwellProvider }\n\nexport const getCommerceProvider = (storeId: string, publicKey: string) => \n getCoreCommerceProvider(getSwellProvider(storeId, publicKey))\n\nexport const useCommerce = () => useCoreCommerce<SwellProvider>()\n\n\nexport interface SwellConfig extends CommerceAPIConfig {\n fetch: any\n}\n\nconst config: SwellConfig = {\n locale: 'en-US',\n commerceUrl: '',\n apiToken: ''!,\n cartCookie: SWELL_CHECKOUT_ID_COOKIE,\n cartCookieMaxAge: SWELL_COOKIE_EXPIRE,\n fetch: fetchApi,\n customerCookie: SWELL_CUSTOMER_TOKEN_COOKIE,\n}\n","import { GlobalContextMeta } from \"@plasmicapp/host\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport {\n CartActionsProvider,\n globalActionsRegistrations,\n} from \"@plasmicpkgs/commerce\";\nimport React from \"react\";\nimport { Registerable } from \"./registerable\";\nimport { getCommerceProvider } from \"./swell\";\n\ninterface CommerceProviderProps {\n children?: React.ReactNode;\n storeId: string;\n publicKey: string;\n}\n\nconst globalContextName = \"plasmic-commerce-swell-provider\";\n\nexport const commerceProviderMeta: GlobalContextMeta<CommerceProviderProps> = {\n name: \"plasmic-commerce-swell-provider\",\n displayName: \"Swell Provider\",\n props: {\n storeId: {\n type: \"string\",\n defaultValue: \"plasmic-sandbox\",\n },\n publicKey: {\n type: \"string\",\n defaultValue: \"pk_QaZeGhtpQaVbNQnWJdRlE1abE6Ezf9U9\",\n },\n },\n ...{ globalActions: globalActionsRegistrations },\n description: `Get your store ID and public storefront API key from the Swell admin UI under Developer > API Keys.\n\n[Watch how to use this integration](https://www.youtube.com/watch?v=b2mgOTbP2_8).`,\n importPath: \"@plasmicpkgs/commerce-swell\",\n importName: \"CommerceProviderComponent\",\n};\n\nexport function CommerceProviderComponent(props: CommerceProviderProps) {\n const { storeId, publicKey, children } = props;\n\n const CommerceProvider = React.useMemo(\n () => getCommerceProvider(storeId, publicKey),\n [storeId, publicKey]\n );\n\n return (\n <CommerceProvider>\n <CartActionsProvider globalContextName={globalContextName}>\n {children}\n </CartActionsProvider>\n </CommerceProvider>\n );\n}\n\nexport function registerCommerceProvider(\n loader?: Registerable,\n customCommerceProviderMeta?: GlobalContextMeta<CommerceProviderProps>\n) {\n const doRegisterComponent: typeof registerGlobalContext = (...args) =>\n loader\n ? loader.registerGlobalContext(...args)\n : registerGlobalContext(...args);\n doRegisterComponent(\n CommerceProviderComponent,\n customCommerceProviderMeta ?? commerceProviderMeta\n );\n}\n","import { Registerable } from \"./registerable\";\nimport { registerCommerceProvider } from \"./registerCommerceProvider\";\nexport * from \"./registerable\";\nexport * from \"./registerCommerceProvider\";\nexport * from \"./swell\";\nexport { registerCommerceProvider };\n\nexport function registerAll(loader?: Registerable) {\n registerCommerceProvider(loader);\n}\n"],"names":["SWELL_CHECKOUT_ID_COOKIE","SWELL_CHECKOUT_URL_COOKIE","SWELL_COOKIE_EXPIRE","normalizeProductOption","_ref2","id","_ref2$name","name","displayName","_ref2$values","values","returnValues","map","value","output","label","match","_extends","hexColors","__typename","normalizeProductImages","images","length","url","_ref3","file","rest","_objectWithoutPropertiesLoose","_excluded","height","Number","width","normalizeProductVariants","variants","productOptions","_ref4","price","_ref4$option_value_id","option_value_ids","optionValueIds","split","i","trim","options","matchingOption","find","option","_matchingOption$name","undefined","normalizeProduct","swellProduct","description","slug","currencyCode","currency","emptyVariants","o","productVariants","results","productImages","product","vendor","path","normalizeCart","_ref5","account_id","date_created","tax_included_total","items","sub_total","grand_total","discounts","cart","customerId","email","createdAt","code","taxesIncluded","lineItems","_items$map","normalizeLineItem","lineItemsSubtotalPrice","subtotalPrice","totalPrice","discount","amount","_ref6","variant","quantity","item","variantId","productId","_product$id","_product$name","_variant$id","sku","_variant$sku","image","requiresShipping","listPrice","normalizeChildren","children","ch","normalizeCategory","_ref7","products","depth","parent_id","isEmpty","parentId","handleFetchResponse","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","res","wrap","_callee$","_context","prev","next","error","CommerceError","abrupt","stop","_x","apply","arguments","getCheckoutId","Cookies","get","checkoutToCart","checkoutPayload","message","checkoutCreate","fetch","checkoutUrl","query","method","sent","variables","checkout_url","expires","sameSite","secure","set","handler","fetchOptions","fetcher","useHook","useData","input","response","swrOptions","revalidateOnFocus","useMemo","Object","create","_response$data$lineIt","_response$data","data","enumerable","isInteger","checkoutId","product_id","variant_id","_useCart","useCart","mutate","useCallback","_addItem","_callee2","_callee2$","_context2","addItem","itemId","_removeItem","removeItem","_ref$input","removeItemHandler","ValidationError","ctx","_ctx","debounce","_input$id","_ctx$wait","wait","_ref$method","callSwell","_callSwell","_callSwell3","arg1","arg2","_response","Array","isArray","swell","_callSwell2","ensure","x","msg","Error","ensureNoNilFields","fromEntries","entries","filter","v","walkCategoryTree","category","categories","queue","result","_curr$children$map","_curr$children","curr","shift","push","child","topologicalSortForCategoryTree","flatMap","sortMap","Map","categoryId","includeSubCategories","brandId","search","_input$sort","sort","count","mappedSort","includedCategories","brand","expand","limit","$filters","c","_yield$fetch","found","t0","t1","t2","_yield$fetch$values","t3","vendors","from","Set","entityId","_response$data$length","addIsEmptyField","_context3","_data$results","Promise","all","t4","normalizedCategories","_loop","_normalizedCategories","_normalizedCategories2","_loop$","_step","_iterator","_createForOfIteratorHelperLoose","done","delegateYield","getSwellProvider","storeId","publicKey","init","locale","cartCookie","useAddItem","useUpdateItem","useRemoveItem","useSearch","useProduct","site","useCategories","useBrands","extraFeatures","getCommerceProvider","getCoreCommerceProvider","useCommerce","useCoreCommerce","globalContextName","commerceProviderMeta","props","type","defaultValue","globalActions","globalActionsRegistrations","importPath","importName","CommerceProviderComponent","CommerceProvider","React","CartActionsProvider","registerCommerceProvider","loader","customCommerceProviderMeta","doRegisterComponent","registerGlobalContext","registerAll"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var e=t(require("@plasmicapp/host/registerGlobalContext")),r=require("@plasmicpkgs/commerce"),n=require("react"),i=t(n),o=require("swell-js"),a=t(o),u=t(require("js-cookie")),c=t(require("debounce"));function s(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function l(t,e,r,n,i,o,a){try{var u=t[o](a),c=u.value}catch(t){return void r(t)}u.done?e(c):Promise.resolve(c).then(n,i)}function f(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var o=t.apply(e,r);function a(t){l(o,n,i,a,u,"next",t)}function u(t){l(o,n,i,a,u,"throw",t)}a(void 0)}))}}function p(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(r)return(r=r.call(t)).next.bind(r);if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return s(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0;return function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function d(){return(d=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)({}).hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t}).apply(null,arguments)}function h(){h=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,i=Object.defineProperty||function(t,e,r){t[e]=r.value},o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",u=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var o=Object.create((e&&e.prototype instanceof y?e:y).prototype),a=new P(n||[]);return i(o,"_invoke",{value:q(t,r,a)}),o}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var p="suspendedStart",d="executing",v="completed",m={};function y(){}function g(){}function b(){}var w={};s(w,a,(function(){return this}));var x=Object.getPrototypeOf,k=x&&x(x(j([])));k&&k!==r&&n.call(k,a)&&(w=k);var I=b.prototype=y.prototype=Object.create(w);function O(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function E(t,e){function r(i,o,a,u){var c=f(t[i],t,o);if("throw"!==c.type){var s=c.arg,l=s.value;return l&&"object"==typeof l&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,u)}),(function(t){r("throw",t,a,u)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r("throw",t,a,u)}))}u(c.arg)}var o;i(this,"_invoke",{value:function(t,n){function i(){return new e((function(e,i){r(t,n,e,i)}))}return o=o?o.then(i,i):i()}})}function q(e,r,n){var i=p;return function(o,a){if(i===d)throw Error("Generator is already running");if(i===v){if("throw"===o)throw a;return{value:t,done:!0}}for(n.method=o,n.arg=a;;){var u=n.delegate;if(u){var c=_(u,n);if(c){if(c===m)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===p)throw i=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=d;var s=f(e,r,n);if("normal"===s.type){if(i=n.done?v:"suspendedYield",s.arg===m)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(i=v,n.method="throw",n.arg=s.arg)}}}function _(e,r){var n=r.method,i=e.iterator[n];if(i===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,_(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var o=f(i,e.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,m;var a=o.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,m):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function C(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function P(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(C,this),this.reset(!0)}function j(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,o=function r(){for(;++i<e.length;)if(n.call(e,i))return r.value=e[i],r.done=!1,r;return r.value=t,r.done=!0,r};return o.next=o}}throw new TypeError(typeof e+" is not iterable")}return g.prototype=b,i(I,"constructor",{value:b,configurable:!0}),i(b,"constructor",{value:g,configurable:!0}),g.displayName=s(b,c,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===g||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,b):(t.__proto__=b,s(t,c,"GeneratorFunction")),t.prototype=Object.create(I),t},e.awrap=function(t){return{__await:t}},O(E.prototype),s(E.prototype,u,(function(){return this})),e.AsyncIterator=E,e.async=function(t,r,n,i,o){void 0===o&&(o=Promise);var a=new E(l(t,r,n,i),o);return e.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},O(I),s(I,c,"Generator"),s(I,a,(function(){return this})),s(I,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=j,P.prototype={constructor:P,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(L),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function i(n,i){return u.type="throw",u.arg=e,r.next=n,i&&(r.method="next",r.arg=t),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var c=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(c&&s){if(this.prev<a.catchLoc)return i(a.catchLoc,!0);if(this.prev<a.finallyLoc)return i(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return i(a.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return i(a.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=t,a.arg=e,o?(this.method="next",this.next=o.finallyLoc,m):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),m},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),L(r),m}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;L(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:j(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),m}},e}var v=["file"],m=function(t){var e=t.id,r=t.name,n=void 0===r?"":r,i=t.values,o=(void 0===i?[]:i).map((function(t){var e={label:t.name};return n.match(/colou?r/gi)&&(e=d({},e,{hexColors:[t.name]})),e}));return{__typename:"MultipleChoiceOption",id:e,displayName:n,values:o}};function y(t){var e=t.id,r=t.description,n=t.images,i=t.options,o=t.slug,a=t.variants,u=t.price,c=t.currency,s=[{options:[],id:e,name:"Default variant"}],l=i?i.map((function(t){return m(t)})):[],f=a?function(t,e){return null==t?void 0:t.map((function(t){var r=t.id,n=t.name,i=t.price,o=t.option_value_ids,a=void 0===o?[]:o,u=n.split(",").map((function(t){return{name:t.trim(),label:t.trim()}}));return{id:r,name:n,price:null!=i?i:void 0,options:a.map((function(t){var r,n=e.find((function(e){return e.values.find((function(e){return e.id==t}))}));return m({id:t,name:null!=(r=null==n?void 0:n.name)?r:"",values:u})}))}}))}(a.results,i):[],p=function(t){return!t||t.length<1?[{url:"/"}]:null==t?void 0:t.map((function(t){var e=t.file,r=function(t,e){if(null==t)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(-1!==e.indexOf(n))continue;r[n]=t[n]}return r}(t,v);return d({url:(null==e?void 0:e.url)+"",height:Number(null==e?void 0:e.height),width:Number(null==e?void 0:e.width)},r)}))}(n);return d({},t,{description:r,id:e,vendor:"",path:"/"+o,images:p,variants:f&&f.length?f:s,options:l,price:{value:u,currencyCode:c}})}function g(t){var e,r=t.items,n=t.sub_total,i=t.grand_total,o=t.discounts;return{id:t.id,customerId:t.account_id+"",email:"",createdAt:t.date_created,currency:{code:t.currency},taxesIncluded:t.tax_included_total>0,lineItems:null!=(e=null==r?void 0:r.map(b))?e:[],lineItemsSubtotalPrice:+n,subtotalPrice:+n,totalPrice:i,discounts:null==o?void 0:o.map((function(t){return{value:t.amount}}))}}function b(t){var e,r,n,i,o=t.product,a=t.price,u=t.variant;return{id:t.id,variantId:null==u?void 0:u.id,productId:null!=(e=o.id)?e:"",name:null!=(r=null==o?void 0:o.name)?r:"",quantity:t.quantity,variant:{id:null!=(n=null==u?void 0:u.id)?n:"",sku:null!=(i=null==u?void 0:u.sku)?i:"",name:null==u?void 0:u.name,image:{url:null!=o&&o.images&&o.images.length>0?null==o?void 0:o.images[0].file.url:"/"},requiresShipping:!1,price:a,listPrice:a},path:"",discounts:[],options:[{value:null==u?void 0:u.name}]}}function w(t){return null==t?void 0:t.results.map((function(t){return t.id}))}function x(t){var e=t.slug,r=t.products,n=t.images,i=t.depth,o=t.children,a=t.parent_id;return{id:t.id,name:t.name,slug:e,path:"/"+e,isEmpty:0===(null==r?void 0:r.length),images:null==n?void 0:n.map((function(t){return{url:t.file.url}})),depth:i,children:w(o),parentId:a}}var k=function(){var t=f(h().mark((function t(e){return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!e){t.next=4;break}if(!e.error){t.next=3;break}throw new r.CommerceError(e.error);case 3:return t.abrupt("return",e);case 4:return t.abrupt("return",null);case 5:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),I=function(t){if(!t)throw new r.CommerceError({message:"Invalid response from Swell"});return g(t)},O=function(){var t=f(h().mark((function t(e){var r,n,i;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e({query:"cart",method:"get"});case 2:if(r=t.sent){t.next=6;break}return t.next=6,e({query:"cart",method:"setItems",variables:[[]]});case 6:return i={expires:30,sameSite:"none",secure:!0},(n=null==r?void 0:r.checkout_url)&&u.set("swell_checkoutUrl",n,i),t.abrupt("return",r);case 10:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),E={fetchOptions:{query:"cart",method:"get"},fetcher:function(t){return f(h().mark((function e(){var r,n;return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.fetch,e.next=3,O(r);case 3:return e.abrupt("return",(n=e.sent)?g(n):null);case 5:case"end":return e.stop()}}),e)})))()},useHook:function(t){var e=t.useData;return function(t){var r=e({swrOptions:d({revalidateOnFocus:!1},null==t?void 0:t.swrOptions)});return n.useMemo((function(){return Object.create(r,{isEmpty:{get:function(){var t,e;return(null!=(t=null==(e=r.data)?void 0:e.lineItems.length)?t:0)<=0},enumerable:!0}})}),[r])}}},q={fetchOptions:{query:"cart",method:"addItem"},fetcher:function(t){return f(h().mark((function e(){var n,i,o,a;return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=t.options,o=t.fetch,!(n=t.input).quantity||Number.isInteger(n.quantity)&&!(n.quantity<1)){e.next=3;break}throw new r.CommerceError({message:"The item quantity has to be a valid integer greater than 0"});case 3:return a={checkoutId:u.get("SWELL_checkoutId"),product_id:n.productId,quantity:n.quantity},n.productId!==n.variantId&&(a.variant_id=n.variantId),e.next=7,o(d({},i,{variables:a}));case 7:return e.abrupt("return",I(e.sent));case 9:case"end":return e.stop()}}),e)})))()},useHook:function(t){var e=t.fetch;return function(){var t=r.useCart().mutate;return n.useCallback(function(){var r=f(h().mark((function r(n){var i;return h().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e({input:n});case 2:return i=r.sent,r.next=5,t(i,!1);case 5:return r.abrupt("return",i);case 6:case"end":return r.stop()}}),r)})));return function(t){return r.apply(this,arguments)}}(),[e,t])}}},_={fetchOptions:{query:"cart",method:"removeItem"},fetcher:function(t){return f(h().mark((function e(){var r,n,i;return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.input.itemId,n=t.options,i=t.fetch,e.next=3,i(d({},n,{variables:[r]}));case 3:return e.abrupt("return",I(e.sent));case 5:case"end":return e.stop()}}),e)})))()},useHook:function(t){var e=t.fetch;return function(){var t=r.useCart().mutate;return n.useCallback(function(){var r=f(h().mark((function r(n){var i;return h().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e({input:{itemId:n.id}});case 2:return i=r.sent,r.next=5,t(i,!1);case 5:return r.abrupt("return",i);case 6:case"end":return r.stop()}}),r)})));return function(t){return r.apply(this,arguments)}}(),[e,t])}}},C={fetchOptions:{query:"cart",method:"updateItem"},fetcher:function(t){return f(h().mark((function e(){var n,i,o,a,u;return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=(n=t.input).itemId,o=n.item,a=t.options,u=t.fetch,!Number.isInteger(o.quantity)){e.next=6;break}if(!(o.quantity<1)){e.next=4;break}return e.abrupt("return",_.fetcher({options:_.fetchOptions,input:{itemId:i},fetch:u}));case 4:e.next=8;break;case 6:if(!o.quantity){e.next=8;break}throw new r.ValidationError({message:"The item quantity has to be a valid integer"});case 8:return e.next=10,u(d({},a,{variables:[i,{quantity:o.quantity}]}));case 10:return e.abrupt("return",I(e.sent));case 12:case"end":return e.stop()}}),e)})))()},useHook:function(t){var e=t.fetch;return function(t){var i;void 0===t&&(t={});var o=t.item,a=r.useCart().mutate;return n.useCallback(c(function(){var t=f(h().mark((function t(n){var i,u,c;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(u=null!=(i=n.id)?i:null==o?void 0:o.id){t.next=3;break}throw new r.ValidationError({message:"Invalid input used for this operation"});case 3:return t.next=5,e({input:{item:{quantity:n.quantity},itemId:u}});case 5:return c=t.sent,t.next=8,a(c,!1);case 8:return t.abrupt("return",c);case 9:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),null!=(i=t.wait)?i:500),[e,a])}}};function L(t,e){if(void 0===e&&(e=""),null==t)throw new Error("Value must not be undefined or null"+(e?"- "+e:""));return t}var P=function(t){return Object.fromEntries(Object.entries(t).filter((function(t){return null!=t[1]})))},j=function(t,e){if(!t||!e)return[];for(var r=[t],n=[];r.length>0;){var i,o,a=L(r.shift());n.push(a),r.push.apply(r,null!=(i=null==(o=a.children)?void 0:o.map((function(t){return L(e.find((function(e){return e.id===t})),"The child category must always exist in the categories list")})))?i:[])}return n},S=function(t){return t.filter((function(t){return!t.parentId})).flatMap((function(e){return j(e,t)}))},A={fetchOptions:{query:"products",method:"list"},fetcher:function(t){return f(h().mark((function e(){var r,n,i,o,a,u,c,s,l,f,p,v,m,g;return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.input,n=t.options,i=t.fetch,o=new Map([["latest-desc",""],["price-asc","price asc"],["price-desc","price desc"],["trending-desc","popularity"]]),a=r.categoryId,u=r.includeSubCategories,c=r.categories,s=r.brandId,l=r.search,p=r.count,v=o.get(void 0===(f=r.sort)?"latest-desc":f),m=u?j(null==c?void 0:c.find((function(t){return t.id===a})),c):void 0,e.next=7,i({query:n.query,method:n.method,variables:P({category:u?void 0:a,brand:s,search:l,sort:v,expand:["variants"],limit:p,$filters:d({},u?{category:null==m?void 0:m.map((function(t){return t.id}))}:{})})});case 7:return e.abrupt("return",{products:(g=e.sent.results).map((function(t){return y(t)})),found:g.length>0});case 10:case"end":return e.stop()}}),e)})))()},useHook:function(t){var e=t.useData;return function(t){return void 0===t&&(t={}),e({input:[["search",t.search],["categoryId",t.categoryId],["includeSubCategories",t.includeSubCategories],["categories",t.categories],["brandId",t.brandId],["sort",t.sort],["count",t.count]],swrOptions:d({revalidateOnFocus:!1},t.swrOptions)})}}},N={fetchOptions:{query:"products",method:"get"},fetcher:function(t){return f(h().mark((function e(){var r,n,i,o;return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.options,n=t.fetch,i=t.input.id,e.next=4,n({query:r.query,method:r.method,variables:[i]});case 4:if(o=e.sent){e.next=7;break}return e.abrupt("return",null);case 7:return e.abrupt("return",y(o));case 8:case"end":return e.stop()}}),e)})))()},useHook:function(t){var e=t.useData;return function(t){return void 0===t&&(t={}),e({input:[["id",t.id]],swrOptions:d({revalidateOnFocus:!1},t.swrOptions)})}}},F={fetchOptions:{query:"categories",method:"get"},fetcher:function(t){return f(h().mark((function e(){var r,n,i,o,a,u,c,s,l,v,m,y;return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=t.options,o=t.fetch,a=(n=t.input).addIsEmptyField,u=n.categoryId,e.next=4,o({query:i.query,method:i.method,variables:P({expand:["children","parent_id"],id:u})});case 4:if(s=null!=(r=null==(c=e.sent)?void 0:c.results)?r:[],!a){e.next=10;break}return e.next=9,Promise.all(s.map(function(){var t=f(h().mark((function t(e){return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.t0=d,t.t1={},t.t2=e,t.next=5,o({query:"products",method:"list",variables:P({limit:1,category:e.id})});case 5:return t.t3=t.sent.results,t.t4={products:t.t3},t.abrupt("return",(0,t.t0)(t.t1,t.t2,t.t4));case 8:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()));case 9:s=e.sent;case 10:l=u?s.map(x):S(s.map(x)),v=h().mark((function t(){var e,r,n;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:(n=y.value).depth=(null!=(e=null==(r=l.find((function(t){return t.id===n.parentId})))?void 0:r.depth)?e:-1)+1;case 2:case"end":return t.stop()}}),t)})),m=p(l);case 13:if((y=m()).done){e.next=17;break}return e.delegateYield(v(),"t0",15);case 15:e.next=13;break;case 17:return e.abrupt("return",l);case 18:case"end":return e.stop()}}),e)})))()},useHook:function(t){var e=t.useData;return function(t){var r=e({input:[["addIsEmptyField",null==t?void 0:t.addIsEmptyField],["categoryId",null==t?void 0:t.categoryId]],swrOptions:d({revalidateOnFocus:!1},null==t?void 0:t.swrOptions)});return n.useMemo((function(){return Object.create(r,{isEmpty:{get:function(){var t,e;return(null!=(t=null==(e=r.data)?void 0:e.length)?t:0)<=0},enumerable:!0}})}),[r])}}},G={fetchOptions:{query:"attributes",method:"get"},fetcher:function(t){return f(h().mark((function e(){var r,n,i;return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=t.fetch,e.next=3,i({query:"attributes",method:"get",variables:"brand"});case 3:if(e.t0=n=e.sent,null!=e.t0){e.next=8;break}e.t1=void 0,e.next=9;break;case 8:e.t1=n.values;case 9:if(e.t2=r=e.t1,null==e.t2){e.next=14;break}e.t3=r,e.next=15;break;case 14:e.t3=[];case 15:return e.abrupt("return",Array.from(new Set(e.t3).values()).map((function(t){return{entityId:t,name:t,path:"brands/"+t}})));case 17:case"end":return e.stop()}}),e)})))()},useHook:function(t){var e=t.useData;return function(t){var r=e({swrOptions:d({revalidateOnFocus:!1},null==t?void 0:t.swrOptions)});return n.useMemo((function(){return Object.create(r,{isEmpty:{get:function(){var t,e;return(null!=(t=null==(e=r.data)?void 0:e.length)?t:0)<=0},enumerable:!0}})}),[r])}}},T=function(){var t=f(h().mark((function t(e){var n,i,o,u,c,s;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(s=function(){return(s=f(h().mark((function t(){var e,r;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!Array.isArray(o)){t.next=9;break}return e=o[0],r=o[1],t.next=5,a[u][i](e,r);case 5:return t.abrupt("return",k(t.sent));case 9:return t.next=11,a[u][i](o);case 11:return t.abrupt("return",k(t.sent));case 13:case"end":return t.stop()}}),t)})))).apply(this,arguments)},c=function(){return s.apply(this,arguments)},i=void 0===(n=e.method)?"get":n,o=e.variables,!(u=e.query)||!(u in a)){t.next=9;break}return t.next=6,c();case 6:return t.abrupt("return",t.sent);case 9:throw new r.CommerceError({message:"Invalid query argument!"});case 10:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),M=function(t,e){return r.getCommerceProvider(function(t,e){return o.init(t,e),{locale:"en-us",cartCookie:"SWELL_checkoutId",swell:a,fetcher:T,cart:{useCart:E,useAddItem:q,useUpdateItem:C,useRemoveItem:_},products:{useSearch:A,useProduct:N},site:{useCategories:F,useBrands:G},extraFeatures:{includeSubCategories:!0}}}(t,e))},D=d({name:"plasmic-commerce-swell-provider",displayName:"Swell Provider",props:{storeId:{type:"string",defaultValue:"plasmic-sandbox"},publicKey:{type:"string",defaultValue:"pk_QaZeGhtpQaVbNQnWJdRlE1abE6Ezf9U9"}}},{globalActions:r.globalActionsRegistrations},{description:"Get your store ID and public storefront API key from the Swell admin UI under Developer > API Keys.\n\n[Watch how to use this integration](https://www.youtube.com/watch?v=b2mgOTbP2_8).",importPath:"@plasmicpkgs/commerce-swell",importName:"CommerceProviderComponent"});function H(t){var e=t.storeId,n=t.publicKey,o=t.children,a=i.useMemo((function(){return M(e,n)}),[e,n]);return i.createElement(a,null,i.createElement(r.CartActionsProvider,{globalContextName:"plasmic-commerce-swell-provider"},o))}function V(t,r){!function(){t?t.registerGlobalContext.apply(t,arguments):e.apply(void 0,arguments)}(H,null!=r?r:D)}exports.CommerceProviderComponent=H,exports.commerceProviderMeta=D,exports.getCommerceProvider=M,exports.registerAll=function(t){V(t)},exports.registerCommerceProvider=V,exports.useCommerce=function(){return r.useCommerce()};
|
|
1
|
+
"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var e=t(require("@plasmicapp/host/registerGlobalContext")),r=require("@plasmicpkgs/commerce"),n=require("react"),i=t(n),o=t(require("swell-js")),a=t(require("js-cookie")),u=t(require("debounce"));function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function s(t,e,r,n,i,o,a){try{var u=t[o](a),c=u.value}catch(t){return void r(t)}u.done?e(c):Promise.resolve(c).then(n,i)}function l(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var o=t.apply(e,r);function a(t){s(o,n,i,a,u,"next",t)}function u(t){s(o,n,i,a,u,"throw",t)}a(void 0)}))}}function f(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(r)return(r=r.call(t)).next.bind(r);if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return c(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?c(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0;return function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function p(){return(p=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)({}).hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t}).apply(null,arguments)}function d(){d=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,i=Object.defineProperty||function(t,e,r){t[e]=r.value},o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",u=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var o=Object.create((e&&e.prototype instanceof y?e:y).prototype),a=new P(n||[]);return i(o,"_invoke",{value:q(t,r,a)}),o}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var p="suspendedStart",h="executing",v="completed",m={};function y(){}function g(){}function b(){}var w={};s(w,a,(function(){return this}));var x=Object.getPrototypeOf,k=x&&x(x(j([])));k&&k!==r&&n.call(k,a)&&(w=k);var I=b.prototype=y.prototype=Object.create(w);function O(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function E(t,e){function r(i,o,a,u){var c=f(t[i],t,o);if("throw"!==c.type){var s=c.arg,l=s.value;return l&&"object"==typeof l&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,u)}),(function(t){r("throw",t,a,u)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r("throw",t,a,u)}))}u(c.arg)}var o;i(this,"_invoke",{value:function(t,n){function i(){return new e((function(e,i){r(t,n,e,i)}))}return o=o?o.then(i,i):i()}})}function q(e,r,n){var i=p;return function(o,a){if(i===h)throw Error("Generator is already running");if(i===v){if("throw"===o)throw a;return{value:t,done:!0}}for(n.method=o,n.arg=a;;){var u=n.delegate;if(u){var c=_(u,n);if(c){if(c===m)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===p)throw i=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=h;var s=f(e,r,n);if("normal"===s.type){if(i=n.done?v:"suspendedYield",s.arg===m)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(i=v,n.method="throw",n.arg=s.arg)}}}function _(e,r){var n=r.method,i=e.iterator[n];if(i===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,_(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var o=f(i,e.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,m;var a=o.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,m):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function C(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function P(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(C,this),this.reset(!0)}function j(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,o=function r(){for(;++i<e.length;)if(n.call(e,i))return r.value=e[i],r.done=!1,r;return r.value=t,r.done=!0,r};return o.next=o}}throw new TypeError(typeof e+" is not iterable")}return g.prototype=b,i(I,"constructor",{value:b,configurable:!0}),i(b,"constructor",{value:g,configurable:!0}),g.displayName=s(b,c,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===g||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,b):(t.__proto__=b,s(t,c,"GeneratorFunction")),t.prototype=Object.create(I),t},e.awrap=function(t){return{__await:t}},O(E.prototype),s(E.prototype,u,(function(){return this})),e.AsyncIterator=E,e.async=function(t,r,n,i,o){void 0===o&&(o=Promise);var a=new E(l(t,r,n,i),o);return e.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},O(I),s(I,c,"Generator"),s(I,a,(function(){return this})),s(I,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=j,P.prototype={constructor:P,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(L),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function i(n,i){return u.type="throw",u.arg=e,r.next=n,i&&(r.method="next",r.arg=t),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var c=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(c&&s){if(this.prev<a.catchLoc)return i(a.catchLoc,!0);if(this.prev<a.finallyLoc)return i(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return i(a.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return i(a.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=t,a.arg=e,o?(this.method="next",this.next=o.finallyLoc,m):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),m},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),L(r),m}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;L(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:j(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),m}},e}var h=["file"],v=function(t){var e=t.id,r=t.name,n=void 0===r?"":r,i=t.values,o=(void 0===i?[]:i).map((function(t){var e={label:t.name};return n.match(/colou?r/gi)&&(e=p({},e,{hexColors:[t.name]})),e}));return{__typename:"MultipleChoiceOption",id:e,displayName:n,values:o}};function m(t){var e=t.id,r=t.description,n=t.images,i=t.options,o=t.slug,a=t.variants,u=t.price,c=t.currency,s=[{options:[],id:e,name:"Default variant"}],l=i?i.map((function(t){return v(t)})):[],f=a?function(t,e){return null==t?void 0:t.map((function(t){var r=t.id,n=t.name,i=t.price,o=t.option_value_ids,a=void 0===o?[]:o,u=n.split(",").map((function(t){return{name:t.trim(),label:t.trim()}}));return{id:r,name:n,price:null!=i?i:void 0,options:a.map((function(t){var r,n=e.find((function(e){return e.values.find((function(e){return e.id==t}))}));return v({id:t,name:null!=(r=null==n?void 0:n.name)?r:"",values:u})}))}}))}(a.results,i):[],d=function(t){return!t||t.length<1?[{url:"/"}]:null==t?void 0:t.map((function(t){var e=t.file,r=function(t,e){if(null==t)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(-1!==e.indexOf(n))continue;r[n]=t[n]}return r}(t,h);return p({url:(null==e?void 0:e.url)+"",height:Number(null==e?void 0:e.height),width:Number(null==e?void 0:e.width)},r)}))}(n);return p({},t,{description:r,id:e,vendor:"",path:"/"+o,images:d,variants:f&&f.length?f:s,options:l,price:{value:u,currencyCode:c}})}function y(t){var e,r=t.items,n=t.sub_total,i=t.grand_total,o=t.discounts;return{id:t.id,customerId:t.account_id+"",email:"",createdAt:t.date_created,currency:{code:t.currency},taxesIncluded:t.tax_included_total>0,lineItems:null!=(e=null==r?void 0:r.map(g))?e:[],lineItemsSubtotalPrice:+n,subtotalPrice:+n,totalPrice:i,discounts:null==o?void 0:o.map((function(t){return{value:t.amount}}))}}function g(t){var e,r,n,i,o=t.product,a=t.price,u=t.variant;return{id:t.id,variantId:null==u?void 0:u.id,productId:null!=(e=o.id)?e:"",name:null!=(r=null==o?void 0:o.name)?r:"",quantity:t.quantity,variant:{id:null!=(n=null==u?void 0:u.id)?n:"",sku:null!=(i=null==u?void 0:u.sku)?i:"",name:null==u?void 0:u.name,image:{url:null!=o&&o.images&&o.images.length>0?null==o?void 0:o.images[0].file.url:"/"},requiresShipping:!1,price:a,listPrice:a},path:"",discounts:[],options:[{value:null==u?void 0:u.name}]}}function b(t){return null==t?void 0:t.results.map((function(t){return t.id}))}function w(t){var e=t.slug,r=t.products,n=t.images,i=t.depth,o=t.children,a=t.parent_id;return{id:t.id,name:t.name,slug:e,path:"/"+e,isEmpty:0===(null==r?void 0:r.length),images:null==n?void 0:n.map((function(t){return{url:t.file.url}})),depth:i,children:b(o),parentId:a}}var x=function(){var t=l(d().mark((function t(e){return d().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!e){t.next=4;break}if(!e.error){t.next=3;break}throw new r.CommerceError(e.error);case 3:return t.abrupt("return",e);case 4:return t.abrupt("return",null);case 5:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),k=function(t){if(!t)throw new r.CommerceError({message:"Invalid response from Swell"});return y(t)},I=function(){var t=l(d().mark((function t(e){var r,n,i;return d().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e({query:"cart",method:"get"});case 2:if(r=t.sent){t.next=6;break}return t.next=6,e({query:"cart",method:"setItems",variables:[[]]});case 6:return i={expires:30,sameSite:"none",secure:!0},(n=null==r?void 0:r.checkout_url)&&a.set("swell_checkoutUrl",n,i),t.abrupt("return",r);case 10:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),O={fetchOptions:{query:"cart",method:"get"},fetcher:function(t){return l(d().mark((function e(){var r,n;return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.fetch,e.next=3,I(r);case 3:return e.abrupt("return",(n=e.sent)?y(n):null);case 5:case"end":return e.stop()}}),e)})))()},useHook:function(t){var e=t.useData;return function(t){var r=e({swrOptions:p({revalidateOnFocus:!1},null==t?void 0:t.swrOptions)});return n.useMemo((function(){return Object.create(r,{isEmpty:{get:function(){var t,e;return(null!=(t=null==(e=r.data)?void 0:e.lineItems.length)?t:0)<=0},enumerable:!0}})}),[r])}}},E={fetchOptions:{query:"cart",method:"addItem"},fetcher:function(t){return l(d().mark((function e(){var n,i,o,u;return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=t.options,o=t.fetch,!(n=t.input).quantity||Number.isInteger(n.quantity)&&!(n.quantity<1)){e.next=3;break}throw new r.CommerceError({message:"The item quantity has to be a valid integer greater than 0"});case 3:return u={checkoutId:a.get("SWELL_checkoutId"),product_id:n.productId,quantity:n.quantity},n.productId!==n.variantId&&(u.variant_id=n.variantId),e.next=7,o(p({},i,{variables:u}));case 7:return e.abrupt("return",k(e.sent));case 9:case"end":return e.stop()}}),e)})))()},useHook:function(t){var e=t.fetch;return function(){var t=r.useCart().mutate;return n.useCallback(function(){var r=l(d().mark((function r(n){var i;return d().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e({input:n});case 2:return i=r.sent,r.next=5,t(i,!1);case 5:return r.abrupt("return",i);case 6:case"end":return r.stop()}}),r)})));return function(t){return r.apply(this,arguments)}}(),[e,t])}}},q={fetchOptions:{query:"cart",method:"removeItem"},fetcher:function(t){return l(d().mark((function e(){var r,n,i;return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.input.itemId,n=t.options,i=t.fetch,e.next=3,i(p({},n,{variables:[r]}));case 3:return e.abrupt("return",k(e.sent));case 5:case"end":return e.stop()}}),e)})))()},useHook:function(t){var e=t.fetch;return function(){var t=r.useCart().mutate;return n.useCallback(function(){var r=l(d().mark((function r(n){var i;return d().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e({input:{itemId:n.id}});case 2:return i=r.sent,r.next=5,t(i,!1);case 5:return r.abrupt("return",i);case 6:case"end":return r.stop()}}),r)})));return function(t){return r.apply(this,arguments)}}(),[e,t])}}},_={fetchOptions:{query:"cart",method:"updateItem"},fetcher:function(t){return l(d().mark((function e(){var n,i,o,a,u;return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=(n=t.input).itemId,o=n.item,a=t.options,u=t.fetch,!Number.isInteger(o.quantity)){e.next=6;break}if(!(o.quantity<1)){e.next=4;break}return e.abrupt("return",q.fetcher({options:q.fetchOptions,input:{itemId:i},fetch:u}));case 4:e.next=8;break;case 6:if(!o.quantity){e.next=8;break}throw new r.ValidationError({message:"The item quantity has to be a valid integer"});case 8:return e.next=10,u(p({},a,{variables:[i,{quantity:o.quantity}]}));case 10:return e.abrupt("return",k(e.sent));case 12:case"end":return e.stop()}}),e)})))()},useHook:function(t){var e=t.fetch;return function(t){var i;void 0===t&&(t={});var o=t.item,a=r.useCart().mutate;return n.useCallback(u(function(){var t=l(d().mark((function t(n){var i,u,c;return d().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(u=null!=(i=n.id)?i:null==o?void 0:o.id){t.next=3;break}throw new r.ValidationError({message:"Invalid input used for this operation"});case 3:return t.next=5,e({input:{item:{quantity:n.quantity},itemId:u}});case 5:return c=t.sent,t.next=8,a(c,!1);case 8:return t.abrupt("return",c);case 9:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),null!=(i=t.wait)?i:500),[e,a])}}},C=function(){var t=l(d().mark((function t(e){var n,i,a,u,c,s;return d().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(s=function(){return(s=l(d().mark((function t(){var e,r;return d().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!Array.isArray(a)){t.next=9;break}return e=a[0],r=a[1],t.next=5,o[u][i](e,r);case 5:return t.abrupt("return",x(t.sent));case 9:return t.next=11,o[u][i](a);case 11:return t.abrupt("return",x(t.sent));case 13:case"end":return t.stop()}}),t)})))).apply(this,arguments)},c=function(){return s.apply(this,arguments)},i=void 0===(n=e.method)?"get":n,a=e.variables,!(u=e.query)||!(u in o)){t.next=9;break}return t.next=6,c();case 6:return t.abrupt("return",t.sent);case 9:throw new r.CommerceError({message:"Invalid query argument!"});case 10:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),L={fetchOptions:{query:"products",method:"get"},fetcher:function(t){return l(d().mark((function e(){var r,n,i,o;return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.options,n=t.fetch,i=t.input.id,e.next=4,n({query:r.query,method:r.method,variables:[i]});case 4:if(o=e.sent){e.next=7;break}return e.abrupt("return",null);case 7:return e.abrupt("return",m(o));case 8:case"end":return e.stop()}}),e)})))()},useHook:function(t){var e=t.useData;return function(t){return void 0===t&&(t={}),e({input:[["id",t.id]],swrOptions:p({revalidateOnFocus:!1},t.swrOptions)})}}};function P(t,e){if(void 0===e&&(e=""),null==t)throw new Error("Value must not be undefined or null"+(e?"- "+e:""));return t}var j=function(t){return Object.fromEntries(Object.entries(t).filter((function(t){return null!=t[1]})))},S=function(t,e){if(!t||!e)return[];for(var r=[t],n=[];r.length>0;){var i,o,a=P(r.shift());n.push(a),r.push.apply(r,null!=(i=null==(o=a.children)?void 0:o.map((function(t){return P(e.find((function(e){return e.id===t})),"The child category must always exist in the categories list")})))?i:[])}return n},A=function(t){return t.filter((function(t){return!t.parentId})).flatMap((function(e){return S(e,t)}))},N={fetchOptions:{query:"products",method:"list"},fetcher:function(t){return l(d().mark((function e(){var r,n,i,o,a,u,c,s,l,f,h,v,y,g;return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.input,n=t.options,i=t.fetch,o=new Map([["latest-desc",""],["price-asc","price asc"],["price-desc","price desc"],["trending-desc","popularity"]]),a=r.categoryId,u=r.includeSubCategories,c=r.categories,s=r.brandId,l=r.search,h=r.count,v=o.get(void 0===(f=r.sort)?"latest-desc":f),y=u?S(null==c?void 0:c.find((function(t){return t.id===a})),c):void 0,e.next=7,i({query:n.query,method:n.method,variables:j({category:u?void 0:a,brand:s,search:l,sort:v,expand:["variants"],limit:h,$filters:p({},u?{category:null==y?void 0:y.map((function(t){return t.id}))}:{})})});case 7:return e.abrupt("return",{products:(g=e.sent.results).map((function(t){return m(t)})),found:g.length>0});case 10:case"end":return e.stop()}}),e)})))()},useHook:function(t){var e=t.useData;return function(t){return void 0===t&&(t={}),e({input:[["search",t.search],["categoryId",t.categoryId],["includeSubCategories",t.includeSubCategories],["categories",t.categories],["brandId",t.brandId],["sort",t.sort],["count",t.count]],swrOptions:p({revalidateOnFocus:!1},t.swrOptions)})}}},F={fetchOptions:{query:"attributes",method:"get"},fetcher:function(t){return l(d().mark((function e(){var r,n,i;return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=t.fetch,e.next=3,i({query:"attributes",method:"get",variables:"brand"});case 3:if(e.t0=n=e.sent,null!=e.t0){e.next=8;break}e.t1=void 0,e.next=9;break;case 8:e.t1=n.values;case 9:if(e.t2=r=e.t1,null==e.t2){e.next=14;break}e.t3=r,e.next=15;break;case 14:e.t3=[];case 15:return e.abrupt("return",Array.from(new Set(e.t3).values()).map((function(t){return{entityId:t,name:t,path:"brands/"+t}})));case 17:case"end":return e.stop()}}),e)})))()},useHook:function(t){var e=t.useData;return function(t){var r=e({swrOptions:p({revalidateOnFocus:!1},null==t?void 0:t.swrOptions)});return n.useMemo((function(){return Object.create(r,{isEmpty:{get:function(){var t,e;return(null!=(t=null==(e=r.data)?void 0:e.length)?t:0)<=0},enumerable:!0}})}),[r])}}},G={fetchOptions:{query:"categories",method:"get"},fetcher:function(t){return l(d().mark((function e(){var r,n,i,o,a,u,c,s,h,v,m,y;return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=t.options,o=t.fetch,a=(n=t.input).addIsEmptyField,u=n.categoryId,e.next=4,o({query:i.query,method:i.method,variables:j({expand:["children","parent_id"],id:u})});case 4:if(s=null!=(r=null==(c=e.sent)?void 0:c.results)?r:[],!a){e.next=10;break}return e.next=9,Promise.all(s.map(function(){var t=l(d().mark((function t(e){return d().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.t0=p,t.t1={},t.t2=e,t.next=5,o({query:"products",method:"list",variables:j({limit:1,category:e.id})});case 5:return t.t3=t.sent.results,t.t4={products:t.t3},t.abrupt("return",(0,t.t0)(t.t1,t.t2,t.t4));case 8:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()));case 9:s=e.sent;case 10:h=u?s.map(w):A(s.map(w)),v=d().mark((function t(){var e,r,n;return d().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:(n=y.value).depth=(null!=(e=null==(r=h.find((function(t){return t.id===n.parentId})))?void 0:r.depth)?e:-1)+1;case 2:case"end":return t.stop()}}),t)})),m=f(h);case 13:if((y=m()).done){e.next=17;break}return e.delegateYield(v(),"t0",15);case 15:e.next=13;break;case 17:return e.abrupt("return",h);case 18:case"end":return e.stop()}}),e)})))()},useHook:function(t){var e=t.useData;return function(t){var r=e({input:[["addIsEmptyField",null==t?void 0:t.addIsEmptyField],["categoryId",null==t?void 0:t.categoryId]],swrOptions:p({revalidateOnFocus:!1},null==t?void 0:t.swrOptions)});return n.useMemo((function(){return Object.create(r,{isEmpty:{get:function(){var t,e;return(null!=(t=null==(e=r.data)?void 0:e.length)?t:0)<=0},enumerable:!0}})}),[r])}}},T=function(t,e){return r.getCommerceProvider(function(t,e){return o.init(t,e),{locale:"en-us",cartCookie:"SWELL_checkoutId",swell:o,fetcher:C,cart:{useCart:O,useAddItem:E,useUpdateItem:_,useRemoveItem:q},products:{useSearch:N,useProduct:L},site:{useCategories:G,useBrands:F},extraFeatures:{includeSubCategories:!0}}}(t,e))},M=p({name:"plasmic-commerce-swell-provider",displayName:"Swell Provider",props:{storeId:{type:"string",defaultValue:"plasmic-sandbox"},publicKey:{type:"string",defaultValue:"pk_QaZeGhtpQaVbNQnWJdRlE1abE6Ezf9U9"}}},{globalActions:r.globalActionsRegistrations},{description:"Get your store ID and public storefront API key from the Swell admin UI under Developer > API Keys.\n\n[Watch how to use this integration](https://www.youtube.com/watch?v=b2mgOTbP2_8).",importPath:"@plasmicpkgs/commerce-swell",importName:"CommerceProviderComponent"});function D(t){var e=t.storeId,n=t.publicKey,o=t.children,a=i.useMemo((function(){return T(e,n)}),[e,n]);return i.createElement(a,null,i.createElement(r.CartActionsProvider,{globalContextName:"plasmic-commerce-swell-provider"},o))}function H(t,r){!function(){t?t.registerGlobalContext.apply(t,arguments):e.apply(void 0,arguments)}(D,null!=r?r:M)}exports.CommerceProviderComponent=D,exports.commerceProviderMeta=M,exports.getCommerceProvider=T,exports.registerAll=function(t){H(t)},exports.registerCommerceProvider=H,exports.useCommerce=function(){return r.useCommerce()};
|
|
2
2
|
//# sourceMappingURL=commerce-swell.cjs.production.min.js.map
|