{"version":3,"sources":["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","webpack:///../jarvis/app/assets/javascripts/site/VControllers/components/Checkout/commits/productsSet.ts","webpack:///../jarvis/app/assets/javascripts/site/VControllers/components/Checkout/commits/steps.ts"],"names":["COMMIT_EVENT_MAP","Map","COMMIT_CHANGE_ITEM_QUANTITY","_ref","state","_ref2","_slicedToArray","productId","quantity","modal","documentDispatch","concat","type","dispatchEvent","payload","COMMIT_REMOVE_ITEM","_ref3","COMMIT_ADD_ITEM","_ref5","_ref6","item","fromTarget","dispatchCustomEvent","COMMIT_BULK_REMOVE","_ref7","forEach","COMMIT_BULK_ADD_PRODUCTS_SET_ITEMS","_ref9","_ref10","items","COMMIT_BULK_REMOVE_PRODUCTS_SET_ITEMS","_ref11","productsSetId","COMMIT_SET_STEP","_ref13","Step","Cart","Checkout","ThankYou","Env","version","document","body","scrollTo","onChangeState","initialState","loading","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","TotalPriceCalculator","deliveryState","totalPriceState","promoCode","promoCodeInstance","selectedItems","filter","selected","buildDeliveries","productsSetsGroup","buildProductsSetsGroup","productsSets","keys","map","id","_objectSpread","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","totalCalculator","subscribers","loadCartDataPromise","handleChangeState","refreshStore","init","statelessSubscribe","context","currentState","onUpdate","_asyncToGenerator","_regeneratorRuntime","mark","_callee","initState","wrap","_context","prev","next","commit","abrupt","sent","stop","_x","apply","_callee2","newState","_context2","t0","loadCartData","then","res","_b","data","Error","createStore","_x2","uuid","uuidV4","subscribe","_callee3","_context3","_x3","_x4","unsubscribe","removedUuid","getContext","newItems","COMMIT_REFRESH_CHECKOUT","_toConsumableArray","step"],"mappings":"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","file":"chunk.47.56b3c321485d60713933.169286c9.js","sourcesContent":["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","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"],"sourceRoot":""}