{"version":3,"file":"chunk.995.51372fd58cc92649ea27.e0aae1ed.js","mappings":"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","sources":["webpack:///../jarvis/app/assets/javascripts/site/VControllers/components/Checkout/commits/productsSet.ts","webpack:///../jarvis/app/assets/javascripts/site/VControllers/components/Checkout/commits/steps.ts","webpack:///../jarvis/app/assets/javascripts/site/VControllers/components/Checkout/store.ts","webpack:///../jarvis/app/assets/javascripts/site/VControllers/components/Checkout/factories/PromoCodeFactory.ts","webpack:///../jarvis/app/assets/javascripts/site/VControllers/components/Checkout/services/TotalPriceCalculator.ts","webpack:///../jarvis/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","_ref10","_ref11","_ref13","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","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","currentState","onUpdate","_asyncToGenerator","_regeneratorRuntime","_callee","initState","_context","prev","next","commit","abrupt","sent","stop","_x","apply","_callee2","newState","_context2","t0","loadCartData","then","res","_b","Error","createStore","_x2","uuid","uuidV4","subscribe","_callee3","_context3","_x3","_x4","unsubscribe","removedUuid","getContext"],"sourceRoot":""}