{"version":3,"file":"chunks-ae19944a7710571c/apps_common_cart-utils_index_js.f6494034ed178541.js","mappings":"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","sources":["webpack://assemble/./apps/common/cart-utils/Shopware.js","webpack://assemble/./apps/common/cart-utils/Utils.js","webpack://assemble/./apps/common/cart-utils/BigCommerce.js","webpack://assemble/./apps/common/cart-utils/EasyStore.js","webpack://assemble/./apps/common/cart-utils/Shopify.js","webpack://assemble/./apps/common/cart-utils/Shopline.js","webpack://assemble/./apps/common/cart-utils/Wix.js","webpack://assemble/./apps/common/cart-utils/WooCommerce.js","webpack://assemble/./apps/common/cart-utils/index.js"],"sourcesContent":["import isEqual from 'lodash/isEqual';\nimport get from 'lodash/get';\nimport * as utils from './Utils';\n\n\n\nexport function formatCartItem(itemRow) {\n let variantOptions = itemRow.payload.options;\n let variantTitle = variantOptions.join(\"/\");\n\n let item = {};\n item['id'] = itemRow.id;\n item['title'] = variantTitle ? `${itemRow.label} (${variantTitle})` : itemRow.label;\n item['quantity'] = itemRow.quantity;\n item['price'] = parseFloat(itemRow.price.unitPrice);\n item['product_id'] = itemRow.productId;\n item['product_title'] = itemRow.label;\n item['variant_id'] = itemRow.variantId;\n item['variant_title'] = variantTitle;\n return item;\n}\n\n\nexport function formatCartResponse(response) {\n let data = {};\n data['currency'] = window.OnVoardData.active_currency;\n data['total_price'] = parseFloat(response.price.totalPrice);\n\n let items = [];\n response.lineItems.forEach((itemRow) => {\n let item = formatCartItem(itemRow);\n items.push(item);\n })\n\n data['items'] = items;\n return data;\n}\n\n\nfunction getAddedCartItems(response) {\n const existingData = get(window.OnVoardEventsData, 'shopware_cart', {});\n const existingMapper = {};\n if (existingData.lineItems) {\n existingData.lineItems.forEach((itemRow) => {\n existingMapper[`${itemRow.id}`] = parseInt(itemRow.quantity);\n })\n }\n\n const currentMapper = {};\n if (response.lineItems) {\n response.lineItems.forEach((itemRow) => {\n currentMapper[`${itemRow.id}`] = parseInt(itemRow.quantity);\n })\n }\n\n let addedIds = utils.getAddedCartItemIds(existingMapper, currentMapper);\n let addedItems = [];\n if (response.lineItems) {\n response.lineItems.forEach((itemRow) => {\n let itemId = `${itemRow.id}`;\n if (!addedIds.includes(itemId)) return;\n addedItems.push(itemRow)\n })\n }\n\n return addedItems;\n}\n\n\nexport function handleCartUpdate(response) {\n let noChange = isEqual(window.OnVoardEventsData['shopware_cart'], response);\n let isNew = !window.OnVoardEventsData['shopware_cart'] ? true : false;\n\n // no cart change\n if (noChange) return;\n\n // if first time loading, don't dispatch added cart items\n let addedCartItems = [];\n if (!isNew) addedCartItems = getAddedCartItems(response);\n\n window.OnVoardEventsData['shopware_cart'] = response;\n utils.dispatchCartUpdateEvent(response);\n addedCartItems.forEach((item) => {\n utils.dispatchAddCartItemEvent(item);\n })\n}\n\nfunction fetchCart(callback) {\n let ovItemsMapping = {};\n let ovInitialItems = {};\n let ovCart = {};\n\n fetch(window.OnVoardData[\"sw_storefront_url\"] + '/store-api/checkout/cart', {\n method: 'GET',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n 'sw-access-key': window.OnVoardData[\"sw_access_key\"],\n 'sw-context-token': window.OnVoardData[\"sw_context_token\"]\n }\n })\n .then(res => res.json())\n .then(json => {\n ovCart = json;\n let ovCartVariantIds = [];\n\n ovInitialItems = json.lineItems;\n ovInitialItems.forEach((item) => {\n if (item.payload.options && item.payload.options.length > 0) {\n ovCartVariantIds.push(item.referencedId);\n ovItemsMapping[item.referencedId] = item;\n return;\n }\n\n item['productId'] = item.referencedId;\n item['variantId'] = null;\n ovItemsMapping[item.referencedId] = item;\n })\n\n if (ovCartVariantIds.length === 0) {\n return new Promise((resolve, reject) => {\n resolve(new Response(JSON.stringify({\"elements\":[]})));\n })\n }\n\n return fetch(window.OnVoardData[\"sw_storefront_url\"] + '/store-api/product', {\n method: 'POST',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n 'sw-access-key': window.OnVoardData[\"sw_access_key\"],\n 'sw-context-token': window.OnVoardData[\"sw_context_token\"]\n },\n body: JSON.stringify({\n \"ids\": ovCartVariantIds,\n \"includes\": {\n \"product\": [\n \"id\", \"parentId\", \"productNumber\"\n ]\n }\n })\n })\n })\n .then(res => res.json())\n .then(json => {\n json.elements.forEach((row) => {\n ovItemsMapping[row.id]['productId'] = row.parentId;\n ovItemsMapping[row.id]['variantId'] = row.id;\n })\n\n var ovNewLineItems = [];\n ovInitialItems.forEach((item) => {\n ovNewLineItems.push(ovItemsMapping[item.referencedId]);\n })\n\n ovCart.lineItems = ovNewLineItems;\n callback(ovCart);\n window.OnVoardData['cart'] = ovCart;\n window.OnVoardData['cartLoaded'] = true;\n });\n}\n\n\nexport function setupCartUpdateEvent() {\n if (window.OnVoardEventsData.setupCartUpdateEvent) return;\n window.OnVoardEventsData.setupCartUpdateEvent = true;\n\n const triggerPaths = [\n \"/checkout/line-item/add\",\n \"/checkout/line-item/delete\",\n \"/widgets/checkout/info\",\n \"/store-api/checkout/cart/line-item\",\n ];\n\n let triggerCartUpdate = () => {\n let successCallback = (response) => {\n handleCartUpdate(response);\n };\n\n fetchCart(successCallback);\n };\n\n utils.interceptRequests(triggerPaths, (response, url) => {\n triggerCartUpdate();\n });\n}\n\nexport function setupCheckoutOffCanvasEvent() {\n if (window.OnVoardEventsData.setupCheckoutOffCanvasEvent) return;\n window.OnVoardEventsData.setupCheckoutOffCanvasEvent = true;\n\n const triggerPaths = [\n \"/widgets/checkout/info\",\n ];\n\n utils.interceptRequests(triggerPaths, (response, url) => {\n let event = new CustomEvent(\"ov_shopware_checkout_offcanvas\", {detail: response});\n document.dispatchEvent(event);\n });\n}\n\n\nexport function loadCart() {\n let successCallback = (response) => {\n handleCartUpdate(response);\n };\n\n fetchCart(successCallback);\n}\n\n","import * as comUtils from \"common/utils\";\nexport * from \"common/utils\";\n\n\nexport function parseResponse(response) {\n if (!(response instanceof Object)) {\n try {\n response = JSON.parse(response);\n } catch(e) {\n return;\n }\n }\n\n return response;\n}\n\nexport function convertCentsToAmount(cents) {\n if (!cents) return 0;\n return (cents / 100.0).toFixed(2);\n}\n\nexport function convertCentsToFloat(cents) {\n return parseFloat(convertCentsToAmount(cents));\n}\n\nexport function getAddedCartItemIds(existingMapper, currentMapper) {\n let addedIds = [];\n\n for (var id in currentMapper) {\n let currentQuantity = currentMapper[id];\n\n if (!(id in existingMapper)) {\n if (!addedIds.includes(id)) addedIds.push(id);\n continue;\n }\n\n let existingQuantity = existingMapper[id];\n if (currentQuantity > existingQuantity) {\n if (!addedIds.includes(id)) addedIds.push(id);\n continue;\n }\n }\n\n return addedIds;\n}\n\nexport function dispatchAddCartItemEvent(item) {\n let event = new CustomEvent(\"ov_add_cart_item\", {detail: item});\n document.dispatchEvent(event);\n}\n\nexport function dispatchCartUpdateEvent(response) {\n let event = new CustomEvent(\"ov_cart_update\", {detail: response});\n document.dispatchEvent(event);\n}\n\nexport function getExistingCartResponse() {\n let platform = comUtils.getEcommercePlatform();\n let response = null;\n if (window.OnVoardEventsData) {\n response = window.OnVoardEventsData[`${platform}_cart`] || null;\n }\n\n return response;\n}\n","import isEqual from 'lodash/isEqual';\nimport get from 'lodash/get';\nimport * as utils from './Utils';\n\n\nexport function formatCartItem(itemRow) {\n let productTitle = itemRow.name;\n let variantTitle = '';\n\n if (itemRow.options) {\n variantTitle = itemRow.options.map((option) => option.value).join(\"/\") || '';\n }\n\n let item = {};\n item['id'] = `${itemRow.id}`;\n item['title'] = variantTitle ? `${productTitle} (${variantTitle})` : productTitle;\n item['quantity'] = itemRow.quantity;\n item['price'] = itemRow.salePrice;\n item['product_id'] = `${itemRow.productId}`;\n item['product_title'] = productTitle;\n item['variant_id'] = `${itemRow.variantId}`;\n item['variant_title'] = variantTitle;\n return item;\n}\n\nexport function formatCartResponse(response) {\n if (!response.id) return {};\n\n let data = {};\n data['currency'] = response.currency.code;\n data['total_price'] = response.cartAmount;\n data['total_discount'] = response.discountAmount;\n\n let items = [];\n if (response.lineItems) {\n response.lineItems.physicalItems.forEach((itemRow) => {\n let item = formatCartItem(itemRow);\n items.push(item);\n })\n\n response.lineItems.digitalItems.forEach((itemRow) => {\n let item = formatCartItem(itemRow);\n items.push(item);\n })\n }\n\n data['items'] = items;\n return data;\n}\n\n\nfunction getAddedCartItems(response) {\n const existingData = get(window.OnVoardEventsData, 'bigcommerce_cart', {});\n\n const existingMapper = {};\n if (existingData.lineItems) {\n existingData.lineItems.physicalItems.forEach((itemRow) => {\n existingMapper[`${itemRow.id}`] = parseInt(itemRow.quantity);\n })\n\n existingData.lineItems.digitalItems.forEach((itemRow) => {\n existingMapper[`${itemRow.id}`] = parseInt(itemRow.quantity);\n })\n }\n\n const currentMapper = {};\n if (response.lineItems) {\n response.lineItems.physicalItems.forEach((itemRow) => {\n currentMapper[`${itemRow.id}`] = parseInt(itemRow.quantity);\n })\n\n response.lineItems.digitalItems.forEach((itemRow) => {\n currentMapper[`${itemRow.id}`] = parseInt(itemRow.quantity);\n })\n }\n\n let addedIds = utils.getAddedCartItemIds(existingMapper, currentMapper);\n let addedItems = [];\n if (response.lineItems) {\n response.lineItems.physicalItems.forEach((itemRow) => {\n let itemId = `${itemRow.id}`;\n if (!addedIds.includes(itemId)) return;\n addedItems.push(itemRow)\n })\n\n response.lineItems.digitalItems.forEach((itemRow) => {\n let itemId = `${itemRow.id}`;\n if (!addedIds.includes(itemId)) return;\n addedItems.push(itemRow)\n })\n }\n\n return addedItems;\n}\n\nexport function handleCartUpdate(response) {\n let noChange = isEqual(window.OnVoardEventsData['bigcommerce_cart'], response);\n let isNew = !window.OnVoardEventsData['bigcommerce_cart'] ? true : false;\n\n // no cart change\n if (noChange) return;\n\n // if first time loading, don't dispatch added cart items\n let addedCartItems = [];\n if (!isNew) addedCartItems = getAddedCartItems(response);\n\n window.OnVoardEventsData['bigcommerce_cart'] = response;\n utils.dispatchCartUpdateEvent(response);\n addedCartItems.forEach((item) => {\n utils.dispatchAddCartItemEvent(item);\n })\n}\n\nexport function setupCartUpdateEvent() {\n if (window.OnVoardEventsData.setupCartUpdateEvent) return;\n window.OnVoardEventsData.setupCartUpdateEvent = true;\n\n let cartUpdatePaths = [\n \"/api/storefront/carts\",\n ];\n\n utils.interceptRequests(cartUpdatePaths, (response, url) => {\n if (url.includes('items')) return;\n response = utils.parseResponse(response);\n if (!response) return;\n if (response.status === 'error') return;\n\n if (!utils.isArray(response)) {\n handleCartUpdate(response);\n return;\n }\n\n let cart = {};\n if (response && response.length > 0) cart = response[0];\n handleCartUpdate(cart);\n });\n\n const triggerPaths = [\n \"/remote/v1/cart/add\",\n \"/remote/v1/cart/update\",\n ];\n\n let triggerCartUpdate = () => {\n utils.getRq({\n \"url\": \"/api/storefront/carts?include=lineItems.physicalItems.options,lineItems.digitalItems.options\",\n \"headers\": {\n \"x-requested-with\": \"XMLHttpRequest\",\n },\n \"successCallback\": (response) => {\n response = utils.parseResponse(response);\n if (!response) return;\n if (response.status === 'error') return;\n\n let cart = {};\n if (response && response.length > 0) cart = response[0];\n handleCartUpdate(cart);\n },\n \"errorCallback\": () => {}\n });\n };\n\n utils.interceptRequests(triggerPaths, (response, url) => {\n triggerCartUpdate();\n });\n}\n\nexport function loadCart() {\n let successCallback = (response) => {\n response = utils.parseResponse(response);\n if (!response) return;\n if (response.status === 'error') return;\n\n let cart = {};\n if (response && response.length > 0) cart = response[0];\n handleCartUpdate(cart);\n };\n\n let errorCallback = () => {};\n\n utils.getRq({\n \"url\": \"/api/storefront/carts?include=lineItems.physicalItems.options,lineItems.digitalItems.options\",\n \"headers\": {\n \"x-requested-with\": \"XMLHttpRequest\",\n },\n \"successCallback\": successCallback,\n \"errorCallback\": errorCallback,\n });\n}\n\n","import isEqual from 'lodash/isEqual';\nimport get from 'lodash/get';\nimport * as utils from './Utils';\n\n\n\nexport function formatCartItem(itemRow) {\n let item = {};\n item['id'] = `${itemRow.id}`;\n item['title'] = itemRow.title;\n item['quantity'] = itemRow.quantity;\n item['price'] = parseFloat(itemRow.price);\n item['product_id'] = `${itemRow.product_id}`;\n item['product_title'] = itemRow.product_name;\n item['variant_id'] = `${itemRow.variant_id}`;\n item['variant_title'] = itemRow.variant_name;\n return item;\n}\n\nexport function flattenCartItems(response) {\n let flattenItems = [];\n\n if (!response.items) return [];\n response.items.forEach((itemRow) => {\n if (!itemRow.items) {\n flattenItems.push(itemRow);\n return;\n }\n\n itemRow.items.forEach((subItem) => {\n flattenItems.push(subItem);\n })\n })\n\n return flattenItems;\n}\n\nexport function formatCartResponse(response) {\n let data = {};\n data['currency'] = response.currency;\n data['total_price'] = response.total_price ? parseFloat(response.total_price) : parseFloat(0);\n data['total_discount'] = response.total_discount ? parseFloat(response.total_discount) : parseFloat(0);\n\n let cartItems = flattenCartItems(response);\n let items = [];\n cartItems.forEach((itemRow) => {\n let item = formatCartItem(itemRow);\n items.push(item);\n })\n\n data['items'] = items;\n return data;\n}\n\n\nfunction getAddedCartItems(response) {\n const existingData = get(window.OnVoardEventsData, 'easystore_cart', {});\n\n const existingMapper = {};\n if (existingData.items) {\n existingData.items.forEach((itemRow) => {\n if (itemRow.freebie) return;\n existingMapper[`${itemRow.i_id}`] = parseInt(itemRow.quantity);\n })\n }\n\n let cartItems = flattenCartItems(response);\n const currentMapper = {};\n cartItems.forEach((itemRow) => {\n if (itemRow.freebie) return;\n currentMapper[`${itemRow.i_id}`] = parseInt(itemRow.quantity);\n })\n\n let addedIds = utils.getAddedCartItemIds(existingMapper, currentMapper);\n let addedItems = [];\n cartItems.forEach((itemRow) => {\n let itemId = `${itemRow.i_id}`;\n if (!addedIds.includes(itemId)) return;\n addedItems.push(itemRow)\n })\n\n return addedItems;\n}\n\nexport function handleCartUpdate(response) {\n let noChange = isEqual(window.OnVoardEventsData['easystore_cart'], response);\n let isNew = !window.OnVoardEventsData['easystore_cart'] ? true : false;\n\n // no cart change\n if (noChange) return;\n\n // if first time loading, don't dispatch added cart items\n let addedCartItems = [];\n if (!isNew) addedCartItems = getAddedCartItems(response);\n\n window.OnVoardEventsData['easystore_cart'] = response;\n utils.dispatchCartUpdateEvent(response);\n addedCartItems.forEach((item) => {\n utils.dispatchAddCartItemEvent(item);\n })\n}\n\nexport function setupCartUpdateEvent() {\n if (window.OnVoardEventsData.setupCartUpdateEvent) return;\n window.OnVoardEventsData.setupCartUpdateEvent = true;\n\n // Important: For EasyStore, don't intercept request on checkout page as it will cause some bugs with their promotion feature.\n if (window.EasyStore.Checkout) return;\n\n let cartUpdatePaths = [\n \"/cart/add?retrieve=true\",\n \"/cart?retrieve=true\",\n \"/new_cart?retrieve=true\",\n \"/cart/remove_item_quantity?retrieve=true\",\n \"/cart/apply_cart_voucher_code?retrieve=true\",\n \"/new_cart/update\",\n ];\n\n utils.interceptRequests(cartUpdatePaths, (response, url) => {\n response = utils.parseResponse(response);\n if (!response) return;\n if (response.status === 'error') return;\n handleCartUpdate(response.cart || response);\n });\n\n // turn off because causing issues with promotion\n // const easyStoretriggerPaths = [\n // \"/cart/add\",\n // ];\n\n // let triggerCartUpdate = () => {\n // utils.getRq({\n // \"url\": \"/cart?retrieve=true\",\n // \"headers\": {\n // \"x-requested-with\": \"XMLHttpRequest\",\n // },\n // \"successCallback\": (response) => {\n // response = utils.parseResponse(response);\n // if (!response) return;\n // if (response.status === 'error') return;\n // handleCartUpdate(response);\n // },\n // \"errorCallback\": () => {}\n // });\n // };\n\n // utils.interceptRequests(easyStoretriggerPaths, (response, url) => {\n // triggerCartUpdate();\n // });\n}\n\nexport function loadCart() {\n // Important: For EasyStore, don't load cart on checkout page as it will cause some bugs with their promotion feature.\n if (window.EasyStore.Checkout) return;\n\n let cartPayload = null;\n if (!cartPayload && typeof global_cart !== 'undefined' && global_cart) cartPayload = global_cart;\n\n if (cartPayload && cartPayload.cart) {\n let response = utils.parseResponse(cartPayload.cart);\n handleCartUpdate(response);\n return;\n }\n\n let successCallback = (response) => {\n response = utils.parseResponse(response);\n if (!response) return;\n if (response.status === 'error') return;\n handleCartUpdate(response.cart || response);\n };\n\n let errorCallback = () => {};\n\n utils.getRq({\n \"url\": \"/cart?retrieve=true\",\n \"successCallback\": successCallback,\n \"errorCallback\": errorCallback,\n \"headers\": {\n \"x-requested-with\": \"XMLHttpRequest\"\n }\n });\n}\n\n","import isEqual from 'lodash/isEqual';\nimport get from 'lodash/get';\nimport * as utils from './Utils';\n\n\nexport function formatCartItem(itemRow) {\n let item = {};\n item['id'] = `${itemRow.id}`;\n item['title'] = itemRow.title;\n item['quantity'] = itemRow.quantity;\n item['price'] = utils.convertCentsToFloat(itemRow.price);\n item['product_id'] = `${itemRow.product_id}`;\n item['product_title'] = itemRow.product_title;\n item['variant_id'] = `${itemRow.variant_id}`;\n item['variant_title'] = itemRow.variant_title;\n return item;\n}\n\nexport function formatCartResponse(response) {\n let data = {};\n data['currency'] = response.currency;\n data['total_price'] = utils.convertCentsToFloat(response.total_price);\n data['original_total_price'] = utils.convertCentsToFloat(response.original_total_price);\n data['items_subtotal_price'] = utils.convertCentsToFloat(response.items_subtotal_price);\n\n let totalDiscount = parseFloat(0);\n if (response.cart_level_discount_applications) {\n response.cart_level_discount_applications.forEach((row) => {\n totalDiscount += utils.convertCentsToFloat(row.total_allocated_amount)\n })\n }\n\n data['total_discount'] = totalDiscount;\n\n let items = [];\n response.items.forEach((itemRow) => {\n let item = formatCartItem(itemRow);\n items.push(item);\n })\n\n data['items'] = items;\n return data;\n}\n\n\nfunction getAddedCartItems(response) {\n const existingData = get(window.OnVoardEventsData, 'shopify_cart', {});\n const existingMapper = {};\n if (existingData.items) {\n existingData.items.forEach((itemRow) => {\n existingMapper[`${itemRow.id}`] = parseInt(itemRow.quantity);\n })\n }\n\n const currentMapper = {};\n if (response.items) {\n response.items.forEach((itemRow) => {\n currentMapper[`${itemRow.id}`] = parseInt(itemRow.quantity);\n })\n }\n\n let addedIds = utils.getAddedCartItemIds(existingMapper, currentMapper);\n let addedItems = [];\n if (response.items) {\n response.items.forEach((itemRow) => {\n let itemId = `${itemRow.id}`;\n if (!addedIds.includes(itemId)) return;\n addedItems.push(itemRow)\n })\n }\n\n return addedItems;\n}\n\nexport function handleCartUpdate(response) {\n let noChange = isEqual(window.OnVoardEventsData['shopify_cart'], response);\n let isNew = !window.OnVoardEventsData['shopify_cart'] ? true : false;\n\n // no cart change\n if (noChange) return;\n\n // if first time loading, don't dispatch added cart items\n let addedCartItems = [];\n if (!isNew) addedCartItems = getAddedCartItems(response);\n\n window.OnVoardEventsData['shopify_cart'] = response;\n utils.dispatchCartUpdateEvent(response);\n addedCartItems.forEach((item) => {\n utils.dispatchAddCartItemEvent(item);\n })\n}\n\nexport function setupCartUpdateEvent() {\n if (window.OnVoardEventsData.setupCartUpdateEvent) return;\n window.OnVoardEventsData.setupCartUpdateEvent = true;\n\n let cartUpdatePaths = [\n \"/cart.js\",\n \"/cart/update.js\",\n \"/cart/update\",\n \"/cart/change.js\",\n \"/cart/change\",\n \"/cart/clear.js\",\n \"/cart/clear\",\n ];\n\n utils.interceptRequests(cartUpdatePaths, (response, url) => {\n response = utils.parseResponse(response);\n if (!response) return;\n handleCartUpdate(response);\n });\n\n let shopifytriggerPaths = [\n \"/cart/add.js\",\n \"/cart/add\",\n ];\n\n let triggerCartUpdate = () => {\n utils.getRq({\n \"url\": \"/cart.js\",\n \"headers\": {\n \"x-requested-with\": \"XMLHttpRequest\",\n },\n \"successCallback\": (response) => {\n response = utils.parseResponse(response);\n if (!response) return;\n handleCartUpdate(response);\n },\n \"errorCallback\": () => {}\n });\n };\n\n utils.interceptRequests(shopifytriggerPaths, (response, url) => {\n triggerCartUpdate();\n });\n}\n\n\nexport function loadCart() {\n let successCallback = (response) => {\n response = utils.parseResponse(response);\n if (!response) return;\n handleCartUpdate(response);\n };\n\n let errorCallback = () => {};\n\n utils.getRq({\n \"url\": \"/cart.js\",\n \"successCallback\": successCallback,\n \"errorCallback\": errorCallback\n });\n}\n\n\n","import isEqual from 'lodash/isEqual';\nimport get from 'lodash/get';\nimport * as utils from './Utils';\n\n\nexport function formatCartItem(itemRow) {\n let item = {};\n item['id'] = `${itemRow.id}`;\n item['title'] = itemRow.title;\n item['quantity'] = itemRow.quantity;\n item['price'] = itemRow.price;\n item['product_id'] = `${itemRow.product_id}`;\n item['product_title'] = itemRow.product_title;\n item['variant_id'] = `${itemRow.variant_id}`;\n item['variant_title'] = itemRow.variant_title;\n return item;\n}\n\nexport function formatCartResponse(response) {\n let data = {};\n data['currency'] = response.currency;\n data['total_price'] = response.total_price;\n data['total_discount'] = response.total_discount;\n\n let items = [];\n if (response.items && response.items.length > 0) {\n response.items.forEach((itemRow) => {\n let item = formatCartItem(itemRow);\n items.push(item);\n })\n }\n data['items'] = items;\n return data;\n}\n\n\nfunction getAddedCartItems(response) {\n const existingData = get(window.OnVoardEventsData, 'shopline_cart', {});\n const existingMapper = {};\n if (existingData.items) {\n existingData.items.forEach((itemRow) => {\n existingMapper[`${itemRow.id}`] = parseInt(itemRow.quantity);\n })\n }\n\n const currentMapper = {};\n if (response.items) {\n response.items.forEach((itemRow) => {\n currentMapper[`${itemRow.id}`] = parseInt(itemRow.quantity);\n })\n }\n\n let addedIds = utils.getAddedCartItemIds(existingMapper, currentMapper);\n let addedItems = [];\n if (response.items) {\n response.items.forEach((itemRow) => {\n let itemId = `${itemRow.id}`;\n if (!addedIds.includes(itemId)) return;\n addedItems.push(itemRow)\n })\n }\n\n return addedItems;\n}\n\nexport function handleCartUpdate(response) {\n if (window.OnVoardData) {\n window.OnVoardData['cart'] = response;\n }\n\n let noChange = isEqual(window.OnVoardEventsData['shopline_cart'], response);\n let isNew = !window.OnVoardEventsData['shopline_cart'] ? true : false;\n\n // no cart change\n if (noChange) return;\n\n // if first time loading, don't dispatch added cart items\n let addedCartItems = [];\n if (!isNew) addedCartItems = getAddedCartItems(response);\n\n window.OnVoardEventsData['shopline_cart'] = response;\n utils.dispatchCartUpdateEvent(response);\n addedCartItems.forEach((item) => {\n utils.dispatchAddCartItemEvent(item);\n })\n}\n\nexport function setupCartUpdateEvent() {\n if (window.OnVoardEventsData.setupCartUpdateEvent) return;\n window.OnVoardEventsData.setupCartUpdateEvent = true;\n\n let cartUpdatePaths = [];\n utils.interceptRequests(cartUpdatePaths, (response, url) => {\n response = utils.parseResponse(response);\n if (!response) return;\n if (!response.data) return;\n handleCartUpdate(response.data);\n });\n\n let shoplinetriggerPaths = [\n \"/leproxy/api/carts/cart\",\n ];\n\n let triggerCartUpdate = () => {\n utils.getRq({\n \"url\": \"/api/carts/ajax-cart\",\n \"headers\": {\n 'Content-Type': 'application/json',\n },\n \"successCallback\": (response) => {\n response = utils.parseResponse(response);\n if (!response) return;\n handleCartUpdate(response);\n },\n \"errorCallback\": () => {}\n });\n };\n\n utils.interceptRequests(shoplinetriggerPaths, (response, url) => {\n triggerCartUpdate();\n });\n}\n\n\nexport function loadCart() {\n let successCallback = (response) => {\n response = utils.parseResponse(response);\n if (!response) return;\n handleCartUpdate(response);\n };\n\n let errorCallback = () => {};\n\n utils.getRq({\n \"url\": \"/api/carts/ajax-cart\",\n \"headers\": {\n 'Content-Type': 'application/json',\n },\n \"successCallback\": successCallback,\n \"errorCallback\": errorCallback\n });\n}\n\n\n","import isEqual from 'lodash/isEqual';\nimport get from 'lodash/get';\nimport * as utils from './Utils';\n\n\nexport function formatCartItem(itemRow) {\n let product = itemRow.product;\n let productTitle = product.name;\n let variantTitle = '';\n\n if (itemRow.optionsSelectionsValues) {\n variantTitle = itemRow.optionsSelectionsValues.map((option) => option.value).join(\"/\") || '';\n }\n\n let item = {};\n item['id'] = `${itemRow.cartItemId}`;\n item['title'] = variantTitle ? `${productTitle} (${variantTitle})` : productTitle;\n item['quantity'] = itemRow.quantity;\n item['price'] = product.price;\n item['product_id'] = `${product.id}`;\n item['product_title'] = productTitle;\n item['variant_id'] = null; // wix doesn't provide variant ID\n item['variant_title'] = variantTitle;\n return item;\n}\n\nexport function formatCartResponse(response) {\n let data = {};\n data['currency'] = response.convertedCurrencyFormat.code;\n data['total_price'] = response.convertedTotals.subTotal;\n data['total_discount'] = response.convertedTotals.discount;\n\n let items = [];\n response.items.forEach((itemRow) => {\n let item = formatCartItem(itemRow);\n items.push(item);\n })\n\n data['items'] = items;\n return data;\n}\n\n\nfunction getAddedCartItems(response) {\n const existingData = get(window.OnVoardEventsData, 'wix_cart', {});\n\n const existingMapper = {};\n if (existingData.items) {\n existingData.items.forEach((itemRow) => {\n existingMapper[`${itemRow.cartItemId}`] = parseInt(itemRow.quantity);\n })\n }\n\n const currentMapper = {};\n if (response.items) {\n response.items.forEach((itemRow) => {\n currentMapper[`${itemRow.cartItemId}`] = parseInt(itemRow.quantity);\n })\n }\n\n let addedIds = utils.getAddedCartItemIds(existingMapper, currentMapper);\n let addedItems = [];\n if (response.items) {\n response.items.forEach((itemRow) => {\n let itemId = `${itemRow.cartItemId}`;\n if (!addedIds.includes(itemId)) return;\n addedItems.push(itemRow)\n })\n }\n\n return addedItems;\n}\n\nexport function handleCartUpdate(response) {\n let noChange = isEqual(window.OnVoardEventsData['wix_cart'], response);\n let isNew = !window.OnVoardEventsData['wix_cart'] ? true : false;\n\n // no cart change\n if (noChange) return;\n\n // if first time loading, don't dispatch added cart items\n let addedCartItems = [];\n if (!isNew) addedCartItems = getAddedCartItems(response);\n\n window.OnVoardEventsData['wix_cart'] = response;\n utils.dispatchCartUpdateEvent(response);\n addedCartItems.forEach((item) => {\n utils.dispatchAddCartItemEvent(item);\n })\n}\n\nexport function setupCartUpdateEvent() {\n if (window.OnVoardEventsData.setupCartUpdateEvent) return;\n window.OnVoardEventsData.setupCartUpdateEvent = true;\n\n document.addEventListener('ov_trigger_cart_reload', () => {\n loadCart();\n });\n}\n\nexport function loadCart() {\n import('common/wix-utils')\n .then((wixUtils) => {\n wixUtils.fetchCartData({callback: handleCartUpdate});\n });\n}\n\n\n\n","import isEqual from 'lodash/isEqual';\nimport get from 'lodash/get';\nimport * as utils from './Utils';\n\n\n\nexport function formatCartItem(itemRow) {\n let item = {};\n item['id'] = `${itemRow.key}`;\n item['title'] = itemRow.title;\n item['quantity'] = itemRow.quantity;\n item['price'] = itemRow.price;\n item['product_id'] = `${itemRow.product_id}`;\n item['product_title'] = itemRow.product_name;\n item['variant_id'] = `${itemRow.variation_id}`;\n item['variant_title'] = itemRow.variation_name;\n return item;\n}\n\nexport function formatCartResponse(response) {\n let data = {};\n data['currency'] = response.currency;\n data['total_price'] = response.subtotal;\n data['total_discount'] = response.discount_total;\n\n let items = [];\n response.items.forEach((itemRow) => {\n let item = formatCartItem(itemRow);\n items.push(item);\n })\n\n data['items'] = items;\n return data;\n}\n\n\nfunction getAddedCartItems(response) {\n const existingData = get(window.OnVoardEventsData, 'woocommerce_cart', {});\n\n const existingMapper = {};\n if (existingData.items) {\n existingData.items.forEach((itemRow) => {\n existingMapper[`${itemRow.key}`] = parseInt(itemRow.quantity);\n })\n }\n\n const currentMapper = {};\n if (response.items) {\n response.items.forEach((itemRow) => {\n currentMapper[`${itemRow.key}`] = parseInt(itemRow.quantity);\n })\n }\n\n let addedIds = utils.getAddedCartItemIds(existingMapper, currentMapper);\n let addedItems = [];\n if (response.items) {\n response.items.forEach((itemRow) => {\n let itemId = `${itemRow.key}`;\n if (!addedIds.includes(itemId)) return;\n addedItems.push(itemRow)\n })\n }\n\n return addedItems;\n}\n\nexport function handleCartUpdate(response) {\n let noChange = isEqual(window.OnVoardEventsData['woocommerce_cart'], response);\n let isNew = !window.OnVoardEventsData['woocommerce_cart'] ? true : false;\n\n // no cart change\n if (noChange) return;\n\n // if first time loading, don't dispatch added cart items\n let addedCartItems = [];\n if (!isNew) addedCartItems = getAddedCartItems(response);\n\n window.OnVoardEventsData['woocommerce_cart'] = response;\n utils.dispatchCartUpdateEvent(response);\n addedCartItems.forEach((item) => {\n utils.dispatchAddCartItemEvent(item);\n })\n}\n\nexport function setupCartUpdateEvent() {\n if (window.OnVoardEventsData.setupCartUpdateEvent) return;\n window.OnVoardEventsData.setupCartUpdateEvent = true;\n if (typeof jQuery === 'undefined') return;\n\n let triggerCartUpdate = () => {\n utils.getRq({\n \"url\": \"/wp-json/onvoard/get-cart\",\n \"headers\": {\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\",\n \"x-requested-with\": \"XMLHttpRequest\",\n },\n \"successCallback\": (response) => {\n response = utils.parseResponse(response);\n if (!response) return;\n if (response.status === 'error') return;\n handleCartUpdate(response);\n },\n \"errorCallback\": () => {}\n });\n };\n\n let cartEvents = [\n \"added_to_cart\",\n \"removed_from_cart\",\n \"updated_cart_totals\",\n ];\n\n jQuery(function($) {\n cartEvents.forEach((cartEvent) => {\n $(document.body).on(cartEvent, () => {\n triggerCartUpdate();\n });\n })\n });\n}\n\nexport function loadCart() {\n let successCallback = (response) => {\n response = utils.parseResponse(response);\n if (!response) return;\n if (response.status === 'error') return;\n handleCartUpdate(response);\n };\n\n let errorCallback = () => {};\n\n utils.getRq({\n \"url\": \"/wp-json/onvoard/get-cart\",\n \"headers\": {\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\",\n \"x-requested-with\": \"XMLHttpRequest\",\n },\n \"successCallback\": successCallback,\n \"errorCallback\": errorCallback,\n });\n}\n\n","import get from 'lodash/get';\nimport * as utils from './Utils';\nimport * as bigCommerceUtils from './BigCommerce';\nimport * as easyStoreUtils from './EasyStore';\nimport * as shopifyUtils from './Shopify';\nimport * as shoplineUtils from './Shopline';\nimport * as shopwareUtils from './Shopware';\nimport * as wixUtils from './Wix';\nimport * as wooCommerceUtils from './WooCommerce';\n\n\nexport function setupCartUpdateEvent() {\n if (!window.OnVoardEventsReady) window.OnVoardEventsReady = {};\n if (window.OnVoardEventsReady['cart_update']) return;\n\n let platform = utils.getEcommercePlatform();\n if (platform === 'shopify') {\n shopifyUtils.setupCartUpdateEvent();\n }\n\n if (platform === 'bigcommerce') {\n bigCommerceUtils.setupCartUpdateEvent();\n }\n\n if (platform === 'easystore') {\n easyStoreUtils.setupCartUpdateEvent();\n }\n\n if (platform === 'shopline') {\n shoplineUtils.setupCartUpdateEvent();\n }\n\n if (platform === 'shopware') {\n shopwareUtils.setupCartUpdateEvent();\n }\n\n if (platform === 'wix') {\n wixUtils.setupCartUpdateEvent();\n }\n\n if (platform === 'woocommerce') {\n wooCommerceUtils.setupCartUpdateEvent();\n }\n\n window.OnVoardEventsReady['cart_update'] = 1;\n}\n\nexport function loadCart() {\n let platform = utils.getEcommercePlatform();\n\n if (platform === 'shopify') {\n shopifyUtils.loadCart();\n }\n\n if (platform === 'bigcommerce') {\n bigCommerceUtils.loadCart();\n }\n\n if (platform === 'easystore') {\n easyStoreUtils.loadCart();\n }\n\n if (platform === 'shopline') {\n shoplineUtils.loadCart();\n }\n\n if (platform === 'shopware') {\n shopwareUtils.loadCart();\n }\n\n if (platform === 'wix') {\n wixUtils.loadCart();\n }\n\n if (platform === 'woocommerce') {\n wooCommerceUtils.loadCart();\n }\n}\n\nexport function formatCartResponse(response) {\n let platform = utils.getEcommercePlatform();\n\n if (platform === 'shopify') {\n return shopifyUtils.formatCartResponse(response);\n }\n\n if (platform === 'bigcommerce') {\n return bigCommerceUtils.formatCartResponse(response);\n }\n\n if (platform === 'easystore') {\n return easyStoreUtils.formatCartResponse(response);\n }\n\n if (platform === 'shopline') {\n return shoplineUtils.formatCartResponse(response);\n }\n\n if (platform === 'shopware') {\n return shopwareUtils.formatCartResponse(response);\n }\n\n if (platform === 'wix') {\n return wixUtils.formatCartResponse(response);\n }\n\n if (platform === 'woocommerce') {\n return wooCommerceUtils.formatCartResponse(response);\n }\n\n return response;\n}\n\nexport function formatCartItem(response) {\n let platform = utils.getEcommercePlatform();\n\n if (platform === 'shopify') {\n return shopifyUtils.formatCartItem(response);\n }\n\n if (platform === 'bigcommerce') {\n return bigCommerceUtils.formatCartItem(response);\n }\n\n if (platform === 'easystore') {\n return easyStoreUtils.formatCartItem(response);\n }\n\n if (platform === 'shopline') {\n return shoplineUtils.formatCartItem(response);\n }\n\n if (platform === 'shopware') {\n return shopwareUtils.formatCartItem(response);\n }\n\n if (platform === 'wix') {\n return wixUtils.formatCartItem(response);\n }\n\n if (platform === 'woocommerce') {\n return wooCommerceUtils.formatCartItem(response);\n }\n\n return response;\n}\n\nexport function checkCartDataLoaded() {\n let cartResponse = utils.getExistingCartResponse();\n if (cartResponse) return true;\n return false;\n}\n\nexport function loadInitialCartData() {\n let cartResponse = utils.getExistingCartResponse();\n\n if (cartResponse) {\n utils.dispatchCartUpdateEvent(cartResponse);\n return;\n }\n\n loadCart();\n}\n\n"],"names":["formatCartItem","itemRow","variantTitle","payload","options","join","item","id","label","quantity","parseFloat","price","unitPrice","productId","variantId","formatCartResponse","response","data","window","OnVoardData","active_currency","totalPrice","items","lineItems","forEach","push","handleCartUpdate","noChange","isEqual","OnVoardEventsData","isNew","addedCartItems","existingData","get","existingMapper","parseInt","currentMapper","addedIds","utils","addedItems","itemId","includes","getAddedCartItems","fetchCart","callback","ovItemsMapping","ovInitialItems","ovCart","fetch","method","headers","then","res","json","ovCartVariantIds","length","referencedId","Promise","resolve","reject","Response","JSON","stringify","body","elements","row","parentId","ovNewLineItems","setupCartUpdateEvent","url","setupCheckoutOffCanvasEvent","event","CustomEvent","detail","document","dispatchEvent","loadCart","parseResponse","Object","parse","e","convertCentsToFloat","cents","toFixed","convertCentsToAmount","getAddedCartItemIds","currentQuantity","dispatchAddCartItemEvent","dispatchCartUpdateEvent","getExistingCartResponse","platform","comUtils","productTitle","name","map","option","value","salePrice","physicalItems","digitalItems","status","cart","title","product_id","product_name","variant_id","variant_name","flattenCartItems","flattenItems","subItem","freebie","i_id","cartItems","product_title","variant_title","product","optionsSelectionsValues","cartItemId","wixUtils","fetchCartData","key","variation_id","variation_name","jQuery","cartEvents","$","cartEvent","on","OnVoardEventsReady","shopifyUtils","bigCommerceUtils","EasyStore","Checkout","shoplineUtils","shopwareUtils","addEventListener","wooCommerceUtils","cartPayload","global_cart","easyStoreUtils","currency","total_price","original_total_price","items_subtotal_price","totalDiscount","cart_level_discount_applications","total_allocated_amount","code","cartAmount","discountAmount","total_discount","convertedCurrencyFormat","convertedTotals","subTotal","discount","subtotal","discount_total","checkCartDataLoaded","loadInitialCartData","cartResponse"],"sourceRoot":""}