{"version":3,"file":"chunk.995.ff645d688e2ac38455ae.b4513ffe.js","mappings":"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","sources":["webpack:///./app/assets/javascripts/site/VControllers/components/Checkout/commits/productsSet.ts","webpack:///./app/assets/javascripts/site/VControllers/components/Checkout/commits/steps.ts","webpack:///./app/assets/javascripts/site/VControllers/components/Checkout/store.ts","webpack:///./app/assets/javascripts/site/VControllers/components/Checkout/factories/PromoCodeFactory.ts","webpack:///./app/assets/javascripts/site/VControllers/components/Checkout/services/TotalPriceCalculator.ts","webpack:///./app/assets/javascripts/site/VControllers/components/Checkout/context.ts"],"sourcesContent":["import { COMMIT_REFRESH_CHECKOUT } from './refreshCheckout';\nexport function COMMIT_BULK_ADD_PRODUCTS_SET_ITEMS(state, newItems, data) {\n return {\n ...COMMIT_REFRESH_CHECKOUT(state, data),\n items: [\n ...state.items,\n ...newItems\n ],\n loading: false\n };\n}\nexport function COMMIT_BULK_REMOVE_PRODUCTS_SET_ITEMS(state, productsSetId, data) {\n return { ...COMMIT_REFRESH_CHECKOUT(state, data),\n items: state.items.filter(item => item.productsSetId !== productsSetId),\n loading: false\n };\n}\n","export function COMMIT_SET_STEP(state, step) {\n return { ...state, step };\n}\n","import Store from 'core/services/Store';\nimport { COMMIT_CHANGE_ITEM_QUANTITY, COMMIT_REMOVE_ITEM, COMMIT_ADD_ITEM, COMMIT_BULK_REMOVE } from './commits/cartItems';\nimport { COMMIT_BULK_ADD_PRODUCTS_SET_ITEMS, COMMIT_BULK_REMOVE_PRODUCTS_SET_ITEMS } from './commits/productsSet';\nimport { documentDispatch, dispatchCustomEvent } from 'core/utils/events';\nimport { buildMd5 } from './factories/AddressFactory';\nimport { COMMIT_SET_STEP } from './commits/steps';\nimport { Step } from './constants';\nconst COMMIT_EVENT_MAP = new Map([\n [\n COMMIT_CHANGE_ITEM_QUANTITY,\n function ([productId, quantity, _, modal], state) {\n if (modal) {\n documentDispatch(`show${modal.type}Modal`, { modal });\n }\n dispatchEvent('changeItemQuantity', { payload: { productId, quantity }, state });\n }\n ],\n [\n COMMIT_REMOVE_ITEM,\n function ([productId], state) {\n dispatchEvent('removeItem', { payload: { productId }, state });\n }\n ],\n [\n COMMIT_ADD_ITEM,\n function ([item, _, fromTarget, modal], state) {\n if (modal) {\n documentDispatch(`show${modal.type}Modal`, { modal });\n }\n if (fromTarget) {\n dispatchCustomEvent(fromTarget, 'c-Checkout:addItemFromRecent', { item });\n return;\n }\n dispatchEvent('addItemFromRecent', { payload: { item }, state });\n }\n ],\n [\n COMMIT_BULK_REMOVE,\n function ([productIds], state) {\n productIds.forEach(productId => dispatchEvent('removeItem', { payload: { productId }, state }));\n }\n ],\n [\n COMMIT_BULK_ADD_PRODUCTS_SET_ITEMS,\n function ([items, _, fromTarget], state) {\n if (fromTarget) {\n dispatchCustomEvent(fromTarget, 'c-Checkout:addProductsSet', { payload: { items } });\n return;\n }\n dispatchEvent('addProductsSet', { payload: { items }, state });\n }\n ],\n [\n COMMIT_BULK_REMOVE_PRODUCTS_SET_ITEMS,\n function ([productsSetId], state) {\n dispatchEvent('removeProductsSet', { payload: { productsSetId }, state });\n }\n ],\n [\n COMMIT_SET_STEP,\n function ([step], state) {\n switch (step) {\n case Step.Cart:\n dispatchEvent('cartView', { payload: {}, state });\n break;\n case Step.Checkout:\n dispatchEvent('checkout', { payload: {}, state });\n break;\n case Step.ThankYou:\n if (Env.version === 'mobile')\n document.body.scrollTo(0, 0);\n break;\n }\n }\n ]\n]);\nexport default function (onChangeState, initialState) {\n initialState.loading = false;\n initialState.deliveryChanging = false;\n initialState.formAddressMd5 = buildMd5(initialState.formFields);\n initialState.isReachedLimitWarningOpened = false;\n initialState.notices = {};\n const store = Store({\n props: { initialState },\n callbacks: {\n CALLBACK_AFTER_COMMIT: onChangeState\n }\n });\n store.on('beforeCommit', catchCommitEvent);\n return store;\n}\nfunction catchCommitEvent(state, commitFn, args) {\n const handleFunc = COMMIT_EVENT_MAP.get(commitFn);\n if (handleFunc)\n handleFunc(args, state);\n}\nfunction dispatchEvent(eventName, detail) {\n documentDispatch(`c-Checkout:${eventName}`, detail);\n}\n","import { formatPrice, truncateString } from '../services/humanize';\nconst DEFAULT_PAYLOAD = {\n name: '',\n discount: 0,\n fixed: false,\n items: {}\n};\nexport class PromoCodeFactory {\n constructor(payload = DEFAULT_PAYLOAD) {\n Object.assign(this, payload);\n }\n get isPersisted() {\n return !!this.name;\n }\n get displayName() {\n const name = truncateString(this.name, this.fixed ? 10 : 5);\n return this.fixed ? name : name + ` - ${this.humanDiscount}`;\n }\n get humanDiscount() {\n if (this.fixed)\n return formatPrice(this.discount);\n return `${this.discount} %`;\n }\n}\n","import { DeliveryMessageType } from '../constants';\nimport { PromoCodeFactory } from '../factories/PromoCodeFactory';\nexport class TotalPriceCalculator {\n constructor(items, deliveryState, totalPriceState, promoCode) {\n this.deliveryState = deliveryState;\n this.promoCodeInstance = new PromoCodeFactory(promoCode || undefined);\n this.selectedItems = items.filter(({ selected }) => selected);\n Object.assign(this, totalPriceState);\n this.buildDeliveries();\n const productsSetsGroup = this.buildProductsSetsGroup(items);\n this.productsSets = Object.keys(productsSetsGroup).map(id => ({ ...productsSetsGroup[id], id: Number(id) }));\n }\n get isFreeDelivery() {\n var _a;\n return !!((_a = this.nextFreeDelivery) === null || _a === void 0 ? void 0 : _a.minFreePrice);\n }\n get isAnySelected() {\n return this.selectedItems.length > 0;\n }\n get totalAmount() {\n return this.selectedItems.reduce((sum, { quantity }) => sum + quantity, 0);\n }\n get baseDelivery() {\n const delivery = this.deliveryState.services.find(item => item.default);\n return delivery;\n }\n get isPossibleFreeDelivery() {\n var _a;\n return Boolean(this.isFreeDelivery || ((_a = this.currentDelivery) === null || _a === void 0 ? void 0 : _a.minFreePrice));\n }\n get lackDeliveryPrice() {\n const nextFreeDelivery = this.nextFreeDelivery;\n if (!nextFreeDelivery)\n return;\n const { minFreePrice = 0 } = nextFreeDelivery;\n return minFreePrice - this.totalPriceWithoutDelivery;\n }\n get deliveryGoalTitle() {\n const { nextFreeDelivery, currentDelivery = { title: '' } } = this;\n return nextFreeDelivery ? nextFreeDelivery.title : currentDelivery.title;\n }\n get deliveryMessageType() {\n let type = DeliveryMessageType.Undefined;\n if (this.deliveryInternalType === DeliveryMessageType.RecoverableError)\n type = DeliveryMessageType.RecoverableError;\n if (this.showDeliveryPrice)\n type = DeliveryMessageType.Defined;\n if (this.isPossibleFreeDelivery && !this.lackDeliveryPrice)\n type = DeliveryMessageType.Free;\n return type;\n }\n get availableDeliveries() {\n const { services } = this.deliveryState;\n return services\n .filter(({ delivery }) => delivery)\n .sort(({ minFreePrice: price1 = 0 }, { minFreePrice: price2 = 0 }) => price1 - price2);\n }\n getNextFreeDelivery(deliveries) {\n return deliveries.find(({ fixPrice, minFreePrice }) => fixPrice !== 0 && minFreePrice && minFreePrice !== 0);\n }\n getCurrentDelivery(deliveries) {\n return deliveries.find(({ requested }) => requested) || this.baseDelivery;\n }\n buildDeliveries() {\n const deliveries = this.availableDeliveries;\n this.nextFreeDelivery = this.getNextFreeDelivery(deliveries);\n this.currentDelivery = this.getCurrentDelivery(deliveries);\n }\n buildProductsSetsGroup(items) {\n return items.reduce((acc, item) => {\n if (!item.productsSetId)\n return acc;\n const currentSet = acc[item.productsSetId] || this.buildEmptySet();\n currentSet.items.push(item);\n currentSet.oldPriceSum += item.oldPrice;\n currentSet.currentPriceSum += item.price;\n currentSet.discountPriceSum = currentSet.oldPriceSum - currentSet.currentPriceSum;\n acc[item.productsSetId] = currentSet;\n return acc;\n }, {});\n }\n buildEmptySet() {\n return {\n items: [],\n oldPriceSum: 0,\n currentPriceSum: 0,\n discountPriceSum: 0\n };\n }\n}\n","import { uuidV4 } from 'core/utils/uuid';\nimport createStore from './store';\nimport { loadCartData } from './api/checkout';\nimport { TotalPriceCalculator } from './services/TotalPriceCalculator';\nexport function buildCalculator(state) {\n const { items, promocode, delivery, totalPriceInfo } = state;\n return new TotalPriceCalculator(items, delivery, totalPriceInfo, promocode);\n}\nconst context = (function () {\n let store;\n let totalCalculator;\n let subscribers = [];\n let loadCartDataPromise = null;\n const handleLoadCartData = () => {\n if (!loadCartDataPromise)\n loadCartDataPromise = loadCartData();\n return loadCartDataPromise.then((res) => {\n var _a, _b;\n return (_b = (_a = res === null || res === void 0 ? void 0 : res.data) === null || _a === void 0 ? void 0 : _a.state) !== null && _b !== void 0 ? _b : null;\n });\n };\n const handleChangeState = (currentState) => {\n totalCalculator = buildCalculator(currentState);\n subscribers.forEach(({ onUpdate }) => { onUpdate(currentState); });\n };\n const refreshStore = async (initState) => {\n if (store) {\n if (initState)\n return await store.commit(() => initState);\n return;\n }\n await init(initState);\n };\n const init = async (initState) => {\n if (store)\n return;\n const newState = initState !== null && initState !== void 0 ? initState : await handleLoadCartData();\n if (!newState)\n throw new Error('Can\\'t get cart state');\n store = createStore(handleChangeState, newState);\n totalCalculator = buildCalculator(newState);\n };\n const unsubscribe = (removedUuid) => {\n subscribers = subscribers.filter(({ uuid }) => uuid !== removedUuid);\n };\n const statelessSubscribe = (onUpdate) => {\n const uuid = uuidV4();\n subscribers.push({ uuid, onUpdate });\n return uuid;\n };\n const subscribe = async (onUpdate, initState) => {\n await refreshStore(initState);\n return statelessSubscribe(onUpdate);\n };\n return { subscribe, unsubscribe, statelessSubscribe, getContext: () => ({ store, totalCalculator }), init };\n})();\nexport default context;\n"],"names":["COMMIT_BULK_ADD_PRODUCTS_SET_ITEMS","state","newItems","data","_objectSpread","COMMIT_REFRESH_CHECKOUT","items","concat","_toConsumableArray","loading","COMMIT_BULK_REMOVE_PRODUCTS_SET_ITEMS","productsSetId","filter","item","COMMIT_SET_STEP","step","COMMIT_EVENT_MAP","Map","COMMIT_CHANGE_ITEM_QUANTITY","_ref","_ref2","_slicedToArray","productId","quantity","modal","documentDispatch","type","dispatchEvent","payload","COMMIT_REMOVE_ITEM","_ref3","COMMIT_ADD_ITEM","_ref5","_ref6","fromTarget","dispatchCustomEvent","COMMIT_BULK_REMOVE","_ref7","forEach","_ref9","_ref0","_ref1","_ref11","Step","Cart","Checkout","ThankYou","Env","version","document","body","scrollTo","onChangeState","initialState","deliveryChanging","formAddressMd5","buildMd5","formFields","isReachedLimitWarningOpened","notices","store","Store","props","callbacks","CALLBACK_AFTER_COMMIT","on","catchCommitEvent","commitFn","args","handleFunc","get","eventName","detail","DEFAULT_PAYLOAD","name","discount","fixed","PromoCodeFactory","arguments","length","undefined","_classCallCheck","Object","assign","this","key","truncateString","humanDiscount","formatPrice","totalCalculator","subscribers","loadCartDataPromise","handleLoadCartData","handleChangeState","refreshStore","init","statelessSubscribe","TotalPriceCalculator","deliveryState","totalPriceState","promoCode","promoCodeInstance","selectedItems","selected","buildDeliveries","productsSetsGroup","buildProductsSetsGroup","productsSets","keys","map","id","Number","value","deliveries","find","fixPrice","minFreePrice","requested","baseDelivery","availableDeliveries","nextFreeDelivery","getNextFreeDelivery","currentDelivery","getCurrentDelivery","_this","reduce","acc","currentSet","buildEmptySet","push","oldPriceSum","oldPrice","currentPriceSum","price","discountPriceSum","_a","sum","_ref4","services","Boolean","isFreeDelivery","_nextFreeDelivery$min","totalPriceWithoutDelivery","_this$currentDelivery","title","DeliveryMessageType","Undefined","deliveryInternalType","RecoverableError","showDeliveryPrice","Defined","isPossibleFreeDelivery","lackDeliveryPrice","Free","delivery","sort","_ref6$minFreePrice","price1","_ref7$minFreePrice","buildCalculator","promocode","totalPriceInfo","loadCartData","then","res","_b","currentState","onUpdate","_asyncToGenerator","_regeneratorRuntime","_callee","initState","_context","prev","next","commit","abrupt","sent","stop","_x","apply","_callee2","newState","_context2","t0","Error","createStore","_x2","uuid","uuidV4","subscribe","_callee3","_context3","_x3","_x4","unsubscribe","removedUuid","getContext"],"sourceRoot":""}