whoami7 - Manager
:
/
home
/
dataiclx
/
vielorbe.com
/
wp-content
/
plugins
/
surecart
/
dist
/
components
/
surecart
/
Upload File:
files >> //home/dataiclx/vielorbe.com/wp-content/plugins/surecart/dist/components/surecart/p-863940e9.js.map
{"version":3,"names":["productViewed","product","selectedPrice","quantity","event","CustomEvent","detail","id","name","price","permalink","prices","variant_options","_a","data","product_collections","bubbles","document","dispatchEvent","availablePrices","productId","state","filter","archived","sort","a","b","position","getProduct","isStockNeedsToBeChecked","_b","_c","_d","stock_enabled","allow_out_of_stock_purchases","isOptionSoldOut","optionNumber","option","isProductVariantOptionSoldOut","variantValues","isOptionMissing","isProductVariantOptionMissing","isProductOutOfStock","selectedVariant","available_stock","isSelectedVariantMissing","variants","length","getVariantFromValues","values","undefined","getDefaultState","serializedProductState","getSerializedState","Object","reduce","acc","productState","current","total","dialog","busy","error","adHocAmount","amount","disabled","line_item","price_id","ad_hoc","ad_hoc_amount","variant_id","option_1","option_2","option_3","availableSubscriptionPrices","recurring_interval","availableNonSubscriptionPrices","defaultState","stateProduct","isProductPage","forEach","store","createStore","newValue","oldValue","JSON","stringify","onChange","on","dispose","forceUpdate","setProduct","updateSelectedVariant","handleStockWithSelectedVariant","wp","i18n","sprintf","__","updateSelectedPrice","setLineItem"],"sources":["src/store/product/events.ts","src/store/product/getters.ts","src/store/product/store.ts","src/store/product/setters.ts","src/store/product/watchers.ts"],"sourcesContent":["import { Price, Product } from 'src/types';\n\n/**\n * Product viewed event.\n */\nexport const productViewed = (product: Product, selectedPrice: Price, quantity = 1) => {\n const event = new CustomEvent('scProductViewed', {\n detail: {\n id: product?.id,\n name: product?.name,\n price: selectedPrice,\n permalink: product?.permalink,\n prices: product?.prices,\n variant_options: product?.variant_options?.data,\n product_collections: product?.product_collections,\n quantity,\n },\n bubbles: true,\n });\n document.dispatchEvent(event);\n};\n","import { Price, ProductState } from 'src/types';\n\n/**\n * Internal dependencies.\n */\nimport state from './store';\nimport { getSerializedState, isProductVariantOptionMissing, isProductVariantOptionSoldOut } from '@store/utils';\nimport { getVariantFromValues } from '../../functions/util';\n\n/**\n * Available product prices\n *\n * @param {string} productId - Product ID\n *\n * @returns {Price[]} - Returns an array of prices that are not archived\n */\nexport const availablePrices = (productId: string): Price[] => (state[productId]?.prices || []).filter(price => !price?.archived).sort((a, b) => a?.position - b?.position); // sort by position\n\n/**\n * Get Product\n */\nexport const getProduct = (productId?: string): ProductState => state[productId] ?? null;\n\n/**\n * Check if product label stock is enabled and not out of stock purchases are allowed.\n *\n * @returns {boolean} - Returns stock needs to be checked or not\n */\nexport const isStockNeedsToBeChecked = (productId: string) => !!(state?.[productId]?.product?.stock_enabled && !state?.[productId]?.product?.allow_out_of_stock_purchases);\n\n/**\n * Check if this option is out of stock base on the selected variant.\n */\nexport const isOptionSoldOut = (productId: string, optionNumber: number, option: string) =>\n isProductVariantOptionSoldOut(optionNumber, option, state[productId].variantValues, state[productId].product);\n\n/**\n * Check if this option is out of stock base on the selected variant.\n */\nexport const isOptionMissing = (productId: string, optionNumber: number, option: string) =>\n isProductVariantOptionMissing(optionNumber, option, state[productId].variantValues, state[productId].product);\n\n/**\n * Is product out of stock.\n *\n * @returns {boolean} - Returns true if product is out of stock\n */\nexport const isProductOutOfStock = (productId: string) => {\n // If stock doesn't need to be checked, product is not out of stock.\n if (!isStockNeedsToBeChecked(productId)) {\n return false;\n }\n\n // If no variant is selected, check against product stock.\n if (!state?.[productId]?.selectedVariant?.id) return state[productId].product?.available_stock <= 0;\n\n // Check against selected variant's stock.\n return state[productId].selectedVariant?.available_stock <= 0;\n};\n\n/**\n * Is the selected variant missing.\n */\nexport const isSelectedVariantMissing = (productId: string) =>\n !!state?.[productId]?.variants?.length && getVariantFromValues({ variants: state[productId].variants, values: state[productId].variantValues })?.id === undefined;\n\n/**\n * Get product default state\n *\n * @returns {ProductState} - Returns the product state\n */\nexport const getDefaultState = (): { [key: string]: ProductState } => {\n const { product: serializedProductState = {} } = getSerializedState();\n\n return (\n Object.values(serializedProductState as { [key: string]: ProductState }).reduce((acc, productState) => {\n const { selectedPrice, product, selectedVariant } = productState || {};\n const current: ProductState = {\n ...productState,\n quantity: 1,\n total: null,\n dialog: null,\n busy: false,\n error: null,\n adHocAmount: selectedPrice?.amount || null,\n disabled: selectedPrice?.archived || product?.archived,\n line_item: {\n price_id: selectedPrice?.id,\n quantity: 1,\n ...(selectedPrice?.ad_hoc ? { ad_hoc_amount: selectedPrice?.amount } : {}),\n ...(selectedVariant?.id ? { variant_id: selectedVariant?.id } : {}),\n },\n variantValues: {\n ...(selectedVariant?.option_1 ? { option_1: selectedVariant?.option_1 } : {}),\n ...(selectedVariant?.option_2 ? { option_2: selectedVariant?.option_2 } : {}),\n ...(selectedVariant?.option_3 ? { option_3: selectedVariant?.option_3 } : {}),\n },\n };\n\n acc[product.id] = current;\n\n return acc;\n }, {}) || {}\n );\n};\n\nexport const availableSubscriptionPrices = (productId: string) =>\n (availablePrices(productId) || []).filter(price => price?.recurring_interval).sort((a, b) => a?.position - b?.position);\n\nexport const availableNonSubscriptionPrices = (productId: string) =>\n (availablePrices(productId) || []).filter(price => !price?.recurring_interval).sort((a, b) => a?.position - b?.position);\n","import { createStore } from '@stencil/store';\nimport { ProductState } from 'src/types';\nimport { productViewed } from './events';\nimport './facebook';\nimport './google';\nimport { getDefaultState } from './getters';\n\ninterface Store {\n [key: string]: ProductState;\n}\n\nconst defaultState: Store = getDefaultState();\n\nObject.values(defaultState)\n .filter((stateProduct: ProductState) => stateProduct?.isProductPage)\n .forEach((stateProduct: ProductState) => {\n if (stateProduct?.product?.id) {\n productViewed(stateProduct?.product, stateProduct?.selectedPrice, stateProduct?.quantity);\n }\n });\n\nconst store = createStore<Store>(defaultState, (newValue, oldValue) => {\n return JSON.stringify(newValue) !== JSON.stringify(oldValue);\n});\n\nconst { state, onChange, on, dispose, forceUpdate } = store;\nexport default state;\nexport { state, onChange, on, dispose, forceUpdate };\n","import { ProductState } from 'src/types';\nimport state from './store';\n\n/**\n * Set the product\n *\n * @param {string} productId - Product ID\n * @param {Partial<ProductState>} product - Product object\n *\n * @returns {void}\n */\nexport const setProduct = (productId: string, product: Partial<ProductState>): void => {\n if (!productId) return;\n state[productId] = {\n ...state[productId],\n ...product,\n };\n};\n","import { ProductState } from 'src/types';\nimport state, { on } from './store';\nimport { setProduct } from './setters';\nimport { getVariantFromValues } from '../../functions/util';\nimport { isStockNeedsToBeChecked } from './getters';\nimport { speak } from '@wordpress/a11y';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/** Handle set event on products store. */\non('set', (productId: string, newValue: ProductState, oldValue: ProductState) => {\n if (newValue?.selectedPrice?.id !== oldValue?.selectedPrice?.id) {\n updateSelectedPrice(productId, newValue);\n }\n\n // if variants change, check the stock.\n if (newValue?.selectedVariant?.id !== oldValue?.selectedVariant?.id) {\n handleStockWithSelectedVariant(productId);\n }\n\n const shouldUpdateLineItem =\n !oldValue || ['selectedPrice', 'adHocAmount', 'quantity', 'selectedVariant'].some(key => JSON.stringify(newValue[key]) !== JSON.stringify(oldValue[key]));\n if (shouldUpdateLineItem) {\n setLineItem(productId);\n }\n\n const shouldUpdateVariants = !oldValue || JSON.stringify(newValue?.variantValues) !== JSON.stringify(oldValue?.variantValues);\n if (shouldUpdateVariants) {\n updateSelectedVariant(productId, newValue);\n }\n});\n\n/**\n * Update the selected variant based on chosen values.\n */\nconst updateSelectedVariant = (productId: string, newValue: ProductState) => {\n const matchedVariant = getVariantFromValues({ variants: state[productId].variants, values: newValue?.variantValues });\n\n if (matchedVariant) {\n setProduct(productId, { selectedVariant: matchedVariant });\n }\n};\n\n/**\n * Handle when the selected variant changes.\n */\nconst handleStockWithSelectedVariant = (productId: string) => {\n // make sure we have a selected variant and stock needs to be checked.\n if (!state[productId].selectedVariant || !isStockNeedsToBeChecked) {\n return;\n }\n\n // if available stock is less than the quantity, adjust the quantity to the max available.\n if (state[productId]?.selectedVariant.available_stock < state[productId]?.quantity) {\n state[productId].quantity = state[productId]?.selectedVariant.available_stock || 1;\n speak(\n sprintf(__('There are just %d items left in stock, and the quantity has been adjusted to %d.', 'surecart'), state[productId].quantity, state[productId].quantity),\n 'assertive',\n );\n }\n};\n\nconst updateSelectedPrice = (productId: string, newValue: ProductState) => {\n setProduct(productId, {\n // update the total when the selected price changes.\n total: state[productId].adHocAmount || newValue?.selectedPrice?.amount || 0,\n // set the ad hoc amount to the selected product amount.\n adHocAmount: newValue?.selectedPrice?.amount,\n // update disabled based on if price is archived or product is archived.\n disabled: newValue?.selectedPrice?.archived || state[productId].product?.archived,\n });\n};\n\nconst setLineItem = (productId: string) => {\n setProduct(productId, {\n line_item: {\n price_id: state[productId]?.selectedPrice?.id,\n quantity: Math.max(state[productId]?.selectedPrice?.ad_hoc ? 1 : state[productId].quantity, 1),\n ...(state[productId]?.selectedPrice?.ad_hoc ? { ad_hoc_amount: state[productId]?.adHocAmount } : {}),\n variant: state[productId].selectedVariant?.id,\n },\n });\n};\n"],"mappings":"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","ignoreList":[]}
Copyright ©2021 || Defacer Indonesia