{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/logo_orange.svg","webpack:///./src/assets/logo_gray.svg","webpack:///./src/components/CardPage.vue?d7c1","webpack:///./src/views/Home.vue?d211","webpack:///./src/App.vue?425d","webpack:///./src/App.vue?ad16","webpack:///./src/components/CardPage.vue?206b","webpack:///./src/components/CardPage.vue","webpack:///./src/components/CardPage.vue?34fd","webpack:///./src/components/NavItems.vue?031c","webpack:///./src/components/NavItems.vue","webpack:///./src/components/NavItems.vue?0d76","webpack:///./src/App.vue","webpack:///./src/App.vue?8ecf","webpack:///./src/registerServiceWorker.ts","webpack:///./src/views/Home.vue?8296","webpack:///./src/views/Home.vue","webpack:///./src/views/Home.vue?f63c","webpack:///./src/router/index.ts","webpack:///./src/api/index.ts","webpack:///./src/store/modules/settings/index.ts","webpack:///./src/store/modules/additions/index.ts","webpack:///./src/store/modules/sections/index.ts","webpack:///./src/store/modules/meals/index.ts","webpack:///./src/localStorage/index.ts","webpack:///./src/store/modules/basket/index.ts","webpack:///./src/store/modules/order/index.ts","webpack:///./src/store/index.ts","webpack:///./src/main.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","alt","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","render","_ctx","_cache","$props","$setup","$data","$options","_component_NavItems","_component_router_link","_component_router_view","_component_CardPage","showMealCardPage","menuItems","mainMenuItems","workTime","start","hour","minute","finish","phone","link","title","to","default","_","onClick","$event","showMobileMenu","opened","sectionsToMenuItems","basketCost","Component","info","oferta","policy","social","item","ind","protect","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","mealData","srcset","smallImgUrl","media","largeImgUrl","hash","getSectionDataById","sectionId","url","changeDisplayedMealId","description","weight","additions","price","getAdditionsCost","basketItem","getAdditionDataById","selected","changeAdditionCount","disabled","getBasketItemCost","addToBasket","id","mealId","count","additionId","this","toString","addBasketItem","Date","getTime","displayedMealId","getMealDataById","additionsHash","forEach","additId","computed","methods","__exports__","routeName","required","with","getSectionList","getAdditionList","getMealList","log","getBasketFromLocalStorage","components","CardPage","NavItems","ready","registered","cached","updatefound","updated","registration","waiting","postMessage","location","reload","offline","getAllSections","section","getMealsBySectionId","meal","openMealCard","menuImgUrl","toLowerCase","scrollTo","top","behavior","routes","path","component","router","history","scrollBehavior","el","getElementById","scrollIntoView","apiUrl","fetch","response","json","imgFileName","orderData","method","body","JSON","stringify","headers","settingsState","instagram","getters","startWorkTimeOnDate","state","date","todayData","setHours","finishWorkTimeOnDate","settings","namespaced","additionState","arAdditions","getAdditionPrice","additionPrice","aGetters","getterName","summ","keys","additionData","mutations","addAddition","actions","commit","rootState","api","stateData","arSections","map","addSection","sections","mealState","arMeals","oneMealCost","mGetters","mealImgsUrls","getMealImgUrl","menuImgFileName","orderImgUrl","orderImgFileName","largeImgFileName","smallImgFileName","getMealIdsBySectionId","filter","mealIds","addMeal","meals","keyName","basket","localStorage","getItem","parse","setItem","removeItem","localStorageObject","basketState","moduleState","basketGetters","rootGetters","currBasketItemCost","reduce","prevBasketItem","currBasketItem","getBasketFullInfo","itemInfo","additionsData","addData","basketForOrder","bItem","Id","saveItem","updateBasketItem","basketItemKey","findIndex","notEmptyAdditions","deleteBasketItem","itemId","clearBasket","deleteItem","element","saveBasketToLocalStorage","orderState","defaultDeliveryType","params","clientAddressRequired","deliveryCost","minutesBeforeMinAvailableOrderTime","minutesBetweenOrderTimeIntervals","durationOfOneOrderTimeInterval","timeTemplate","deliveryTypes","minutesFromStartWorkTimeToFirstAcceptedOrder","minutesFromLastAcceptedOrderToFinishWorkTime","deliveryTypeDefaultInView","sendingOrderNow","receivedOrderDataFromApi","orderTimeForCalculateDeliveryTimes","orderGetters","rS","time","orderTime","firstAcceptedOrderTimeToday","setMinutes","getMinutes","lastAcceptedOrderTimeToday","setDate","getDate","startTimeOfFirstAvailableDeliveryTime","deliveryTypeId","deliveryTypeData","find","elem","startTimeOfLastAvailableDeliveryTime","deliveryTimes","timeNow","orderTimeForCalc","startOfFirstTimeItem","maxStartOfLastTimeItem","tempStartTime","tempFinishTime","deliveryTimesWithTemplate","timeArray","template","interval","replaceValuesInPattern","pattern","replacements","getHours","replaceAll","cost","orderCost","validateOrderData","returnedData","deliveryType","positions","clientName","clientPhone","test","address","deliveryTime","changeSendingOrderNow","sendingStatus","saveOrderDataFromApi","sendOrderToApi","sendOrder","root","order","rootMutations","store","strict","use","mount"],"mappings":"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","file":"js/app.2f8d8167.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-2d0bdedb\":\"5a3644b2\",\"chunk-2d0cf51e\":\"92d89b14\",\"chunk-2d22d746\":\"a41f0b44\",\"chunk-74a75623\":\"db676377\",\"chunk-c86a9f48\":\"bace4be4\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-74a75623\":1,\"chunk-c86a9f48\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-2d0bdedb\":\"31d6cfe0\",\"chunk-2d0cf51e\":\"31d6cfe0\",\"chunk-2d22d746\":\"31d6cfe0\",\"chunk-74a75623\":\"73007004\",\"chunk-c86a9f48\":\"f5d544ff\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = __webpack_public_path__ + \"img/logo_orange.ef49a461.svg\";","module.exports = __webpack_public_path__ + \"img/logo_gray.b6280c81.svg\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CardPage.vue?vue&type=style&index=0&id=1ef3a012&scoped=true&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Home.vue?vue&type=style&index=0&id=4709026c&lang=scss\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./App.vue?vue&type=style&index=0&id=7c07a5bc&lang=scss\"","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, withCtx as _withCtx, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, Transition as _Transition, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\nimport _imports_0 from '@/assets/logo_orange.svg'\nimport _imports_1 from '@/assets/logo_gray.svg'\n\n\nconst _hoisted_1 = { class: \"nav nav-main\" }\nconst _hoisted_2 = { class: \"nav-time\" }\nconst _hoisted_3 = [\"href\"]\nconst _hoisted_4 = { class: \"nav nav-header\" }\nconst _hoisted_5 = { class: \"nav-logo-container\" }\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n class: \"logo\",\n alt: \"\"\n}, null, -1)\nconst _hoisted_7 = /*#__PURE__*/_createTextVNode(\" Меню \")\nconst _hoisted_8 = { class: \"price\" }\nconst _hoisted_9 = { class: \"nav nav-footer\" }\nconst _hoisted_10 = { class: \"nav-logo-container\" }\nconst _hoisted_11 = /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_1,\n class: \"logo\",\n alt: \"\"\n}, null, -1)\nconst _hoisted_12 = { class: \"nav-time\" }\nconst _hoisted_13 = { class: \"nav-footer-contacts\" }\nconst _hoisted_14 = [\"href\"]\nconst _hoisted_15 = { class: \"nav-footer-social\" }\nconst _hoisted_16 = [\"href\"]\nconst _hoisted_17 = { class: \"show-min\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_NavItems = _resolveComponent(\"NavItems\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_router_view = _resolveComponent(\"router-view\")!\n const _component_CardPage = _resolveComponent(\"CardPage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"header\", {\n class: _normalizeClass({ 'section-hidden': _ctx.showMealCardPage })\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"section\", null, [\n _createElementVNode(\"nav\", null, [\n _createVNode(_component_NavItems, { menuItems: _ctx.mainMenuItems }, null, 8, [\"menuItems\"])\n ]),\n _createElementVNode(\"div\", _hoisted_2, \" Пн-Вс с \" + _toDisplayString(_ctx.workTime.start.hour) + \":\" + _toDisplayString(_ctx.workTime.start.minute) + \" до \" + _toDisplayString(_ctx.workTime.finish.hour) + \":\" + _toDisplayString(_ctx.workTime.finish.minute), 1),\n _createElementVNode(\"a\", {\n href: 'tel:' + _ctx.phone.link,\n class: \"nav-phone\"\n }, _toDisplayString(_ctx.phone.title), 9, _hoisted_3)\n ])\n ]),\n _createElementVNode(\"section\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_component_router_link, { to: \"/\" }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"div\", {\n class: \"nav-mobile\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.showMobileMenu = !_ctx.showMobileMenu))\n }, [\n _hoisted_7,\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"nav-mobile-burger\", { opened: _ctx.showMobileMenu }])\n }, null, 2)\n ]),\n _createElementVNode(\"nav\", {\n class: _normalizeClass({ opened: _ctx.showMobileMenu })\n }, [\n _createVNode(_component_NavItems, { menuItems: _ctx.sectionsToMenuItems }, null, 8, [\"menuItems\"])\n ], 2),\n _createVNode(_component_router_link, {\n to: { name: 'Basket' },\n class: \"basket\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.showMobileMenu = false))\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.basketCost), 1)\n ]),\n _: 1\n })\n ])\n ], 2),\n _createElementVNode(\"main\", {\n class: _normalizeClass({ 'section-hidden': _ctx.showMealCardPage })\n }, [\n _createVNode(_component_router_view, null, {\n default: _withCtx(({ Component }) => [\n _createVNode(_Transition, { name: \"component-fade\" }, {\n default: _withCtx(() => [\n (_openBlock(), _createBlock(_resolveDynamicComponent(Component)))\n ]),\n _: 2\n }, 1024)\n ]),\n _: 1\n })\n ], 2),\n _createElementVNode(\"footer\", {\n class: _normalizeClass({ 'section-hidden': _ctx.showMealCardPage })\n }, [\n _createElementVNode(\"section\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(_component_router_link, { to: \"/\" }, {\n default: _withCtx(() => [\n _hoisted_11\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_12, \" Пн-Вс с \" + _toDisplayString(_ctx.workTime.start.hour) + \":\" + _toDisplayString(_ctx.workTime.start.minute) + \" до \" + _toDisplayString(_ctx.workTime.finish.hour) + \":\" + _toDisplayString(_ctx.workTime.finish.minute), 1)\n ]),\n _createElementVNode(\"nav\", null, [\n _createVNode(_component_NavItems, { menuItems: _ctx.mainMenuItems }, null, 8, [\"menuItems\"]),\n _createElementVNode(\"ul\", null, [\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, { to: { name: 'Oferta' } }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.info.oferta.title), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, { to: { name: 'Policy' } }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.info.policy.title), 1)\n ]),\n _: 1\n })\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"a\", {\n href: 'tel:' + _ctx.phone.link,\n class: \"nav-phone\"\n }, _toDisplayString(_ctx.phone.title), 9, _hoisted_14)\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.social, (item, ind) => {\n return (_openBlock(), _createElementBlock(\"span\", { key: ind }, [\n _createElementVNode(\"a\", {\n href: item?.link,\n class: \"instagram\",\n target: \"_blank\"\n }, null, 8, _hoisted_16)\n ]))\n }), 128))\n ]),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.info.protect.title), 1)\n ])\n ]),\n _createElementVNode(\"section\", _hoisted_17, [\n _createVNode(_component_router_link, { to: { name: 'Oferta' } }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.info.oferta.title), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, { to: { name: 'Policy' } }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.info.policy.title), 1)\n ]),\n _: 1\n }),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.info.protect.title), 1)\n ])\n ], 2),\n _createVNode(_Transition, { name: \"component-fade\" }, {\n default: _withCtx(() => [\n (_ctx.showMealCardPage)\n ? (_openBlock(), _createBlock(_component_CardPage, { key: 0 }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ]))\n}","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1ef3a012\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = { class: \"card-page card-page-opened\" }\nconst _hoisted_3 = [\"srcset\"]\nconst _hoisted_4 = [\"src\", \"alt\"]\nconst _hoisted_5 = { class: \"card-page-container\" }\nconst _hoisted_6 = { class: \"card-page-section\" }\nconst _hoisted_7 = { class: \"card-page-close\" }\nconst _hoisted_8 = { class: \"description\" }\nconst _hoisted_9 = { class: \"card-page-info\" }\nconst _hoisted_10 = { class: \"card-page-weight\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"price\"\n}\nconst _hoisted_12 = {\n key: 0,\n class: \"card-page-addition\"\n}\nconst _hoisted_13 = { class: \"card-page-addition-title\" }\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"title\" }, \"Добавь для вкуса:\", -1))\nconst _hoisted_15 = { class: \"price\" }\nconst _hoisted_16 = { class: \"card-page-addition-container\" }\nconst _hoisted_17 = { class: \"title\" }\nconst _hoisted_18 = { class: \"price\" }\nconst _hoisted_19 = { class: \"actions\" }\nconst _hoisted_20 = [\"onClick\", \"disabled\"]\nconst _hoisted_21 = { class: \"count\" }\nconst _hoisted_22 = [\"onClick\"]\nconst _hoisted_23 = { class: \"card-page-actions\" }\nconst _hoisted_24 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Итого:\", -1))\nconst _hoisted_25 = { class: \"price\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_ctx.mealData)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"picture\", null, [\n _createElementVNode(\"source\", {\n srcset: _ctx.mealData.smallImgUrl,\n media: \"(max-width: 630px)\"\n }, null, 8, _hoisted_3),\n _createElementVNode(\"img\", {\n src: _ctx.mealData.largeImgUrl,\n alt: _ctx.mealData.name\n }, null, 8, _hoisted_4)\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_router_link, {\n to: {\n name: 'Home',\n hash: '#' + _ctx.getSectionDataById(_ctx.mealData.sectionId).url,\n },\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.changeDisplayedMealId(0)))\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.getSectionDataById(_ctx.mealData.sectionId).name), 1)\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"span\", {\n class: \"close\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.changeDisplayedMealId(0)))\n })\n ]),\n _createElementVNode(\"h3\", null, _toDisplayString(_ctx.mealData.name), 1),\n _createElementVNode(\"div\", _hoisted_8, _toDisplayString(_ctx.mealData.description), 1),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.mealData.weight), 1),\n (_ctx.mealData.additions.length)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11, _toDisplayString(_ctx.mealData.price), 1))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.mealData.additions.length)\n ? (_openBlock(), _createElementBlock(\"details\", _hoisted_12, [\n _createElementVNode(\"summary\", _hoisted_13, [\n _hoisted_14,\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.getAdditionsCost(_ctx.basketItem.additions)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.mealData.additions, (item, key) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_ctx.getAdditionDataById(item))\n ? (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"card-page-addition-element\", { selected: _ctx.basketItem.additions[item] }]),\n key: key\n }, [\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.getAdditionDataById(item).name), 1),\n _createElementVNode(\"span\", _hoisted_18, _toDisplayString(_ctx.getAdditionDataById(item).price), 1),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"button\", {\n class: \"reduce\",\n onClick: ($event: any) => (_ctx.changeAdditionCount(item, _ctx.basketItem.additions[item] - 1)),\n disabled: _ctx.basketItem.additions[item] == 0\n }, null, 8, _hoisted_20),\n _createElementVNode(\"span\", _hoisted_21, _toDisplayString(_ctx.basketItem.additions[item]), 1),\n _createElementVNode(\"button\", {\n class: \"add\",\n onClick: ($event: any) => (_ctx.changeAdditionCount(item, _ctx.basketItem.additions[item] + 1))\n }, null, 8, _hoisted_22)\n ])\n ], 2))\n : _createCommentVNode(\"\", true)\n ], 64))\n }), 256))\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_23, [\n _hoisted_24,\n _createElementVNode(\"span\", _hoisted_25, _toDisplayString(_ctx.getBasketItemCost(_ctx.basketItem)), 1),\n _createElementVNode(\"button\", {\n class: \"btn-main\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.addToBasket()))\n }, \"Заказать\")\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n}","\nimport { Options, Vue } from \"vue-class-component\";\nimport { mapGetters, mapMutations, mapState } from \"vuex\";\n\nimport { MealId, Meal, MealFullData } from \"../interfaces/Meal\";\nimport { AdditionsInMeal, AdditionId, AdditionData } from \"../interfaces/Addition\";\nimport { SectionId, SectionData } from \"../interfaces/Section\";\nimport { BasketItem } from \"../interfaces/Basket\";\n\n@Options({\n computed: {\n ...mapState([\"displayedMealId\"]),\n ...mapState(\"meals\", [\"arMeals\"]),\n ...mapGetters(\"meals\", [\"getMealDataById\"]),\n ...mapGetters(\"additions\", [\"getAdditionDataById\", \"getAdditionsCost\"]),\n ...mapGetters(\"sections\", [\"getSectionDataById\"]),\n ...mapGetters(\"basket\", [\"getBasketItemCost\"]),\n },\n methods: {\n ...mapMutations([\"changeDisplayedMealId\"]),\n ...mapMutations(\"basket\", [\"addBasketItem\"]),\n },\n})\nexport default class CardPage extends Vue {\n displayedMealId!: MealId;\n\n mealData: MealFullData | false = false;\n\n arMeals!: Meal[];\n\n basketItem: BasketItem = {\n id: 0,\n mealId: 0,\n count: 1,\n additions: {},\n };\n\n getMealDataById!: (mealId: MealId) => MealFullData | false;\n\n changeDisplayedMealId!: (mealId: MealId) => void;\n\n getAdditionDataById!: (id: AdditionId) => AdditionData;\n\n getSectionDataById!: (id: SectionId) => SectionData;\n\n getAdditionsCost!: (data: AdditionsInMeal) => number;\n\n getBasketItemCost!: (basketItem: BasketItem) => number;\n\n addBasketItem!: (data: BasketItem) => void;\n\n changeAdditionCount(additionId: number, count: number): void {\n this.basketItem.additions[additionId.toString()] = count;\n }\n\n addToBasket(): void {\n this.addBasketItem(this.basketItem);\n this.changeDisplayedMealId(0);\n }\n\n beforeMount(): void {\n this.basketItem = {\n id: new Date().getTime(),\n mealId: this.displayedMealId,\n count: 1,\n additions: {},\n };\n this.mealData = this.getMealDataById(this.displayedMealId);\n if (this.mealData && this.mealData.additions) {\n const additionsHash: { [key: string]: number } = {};\n this.mealData.additions.forEach((additId) => {\n additionsHash[`${additId}`] = 0;\n });\n this.basketItem.additions = additionsHash;\n }\n }\n}\n","import { render } from \"./CardPage.vue?vue&type=template&id=1ef3a012&scoped=true&ts=true\"\nimport script from \"./CardPage.vue?vue&type=script&lang=ts\"\nexport * from \"./CardPage.vue?vue&type=script&lang=ts\"\n\nimport \"./CardPage.vue?vue&type=style&index=0&id=1ef3a012&scoped=true&lang=scss\"\n\nimport exportComponent from \"/Users/khodorevaav/sanya/works/mrbag/web_site/mrbag-tests/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1ef3a012\"]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"ul\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.menuItems, (item, ind) => {\n return (_openBlock(), _createElementBlock(\"li\", { key: ind }, [\n _createVNode(_component_router_link, {\n to: {\n name: item.routeName,\n hash: '#' + item.link,\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.title), 1)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ]))\n }), 128))\n ]))\n}","\n/* eslint max-classes-per-file: [\"error\", 2] */\n\nimport { Options, Vue, prop } from \"vue-class-component\";\nimport { PropType } from \"vue\";\nimport { MenuItem } from \"../store/modules/settings/types\";\n\nclass Props {\n menuItems = prop({\n type: Object as PropType,\n required: true,\n });\n}\n\n@Options({})\nexport default class NavItems extends Vue.with(Props) {}\n","import { render } from \"./NavItems.vue?vue&type=template&id=41d18508&ts=true\"\nimport script from \"./NavItems.vue?vue&type=script&lang=ts\"\nexport * from \"./NavItems.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/Users/khodorevaav/sanya/works/mrbag/web_site/mrbag-tests/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { Options, Vue } from \"vue-class-component\";\nimport { mapActions, mapState, mapMutations, mapGetters } from \"vuex\";\n\nimport { MealId } from \"./interfaces/Meal\";\nimport {\n infoKeys,\n MenuItem,\n MenuItemExternal,\n socialKeys,\n WorkTimeData,\n} from \"./store/modules/settings/types\";\nimport CardPage from \"./components/CardPage.vue\";\nimport NavItems from \"./components/NavItems.vue\";\n\n@Options({\n components: {\n CardPage,\n NavItems,\n },\n computed: {\n ...mapState([\"displayedMealId\"]),\n ...mapState(\"settings\", [\"mainMenuItems\", \"info\", \"phone\", \"social\", \"workTime\"]),\n ...mapGetters(\"sections\", [\"sectionsToMenuItems\"]),\n ...mapGetters(\"basket\", [\"basketCost\"]),\n },\n methods: {\n ...mapMutations([\"changeDisplayedMealId\"]),\n ...mapActions(\"sections\", [\"getSectionList\"]),\n ...mapActions(\"additions\", [\"getAdditionList\"]),\n ...mapActions(\"meals\", [\"getMealList\"]),\n ...mapActions(\"basket\", [\"getBasketFromLocalStorage\"]),\n },\n})\nexport default class App extends Vue {\n showMobileMenu = false;\n\n displayedMealId!: MealId;\n\n info!: Record;\n\n phone!: MenuItemExternal;\n\n social!: Partial>;\n\n workTime!: {\n start: WorkTimeData;\n finish: WorkTimeData;\n };\n\n mainMenuItems!: MenuItem[];\n\n sectionsToMenuItems!: MenuItem[];\n\n basketCost!: number;\n\n getSectionList!: () => Promise;\n\n getAdditionList!: () => Promise;\n\n getMealList!: () => Promise;\n\n changeDisplayedMealId!: (mealId: MealId) => void;\n\n getBasketFromLocalStorage!: () => void;\n\n get showMealCardPage(): boolean {\n return this.displayedMealId > 0;\n }\n\n async created(): Promise {\n try {\n await this.getSectionList();\n await this.getAdditionList();\n await this.getMealList();\n } catch (error) {\n console.log(error);\n }\n this.getBasketFromLocalStorage();\n }\n}\n","import { render } from \"./App.vue?vue&type=template&id=7c07a5bc&ts=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=7c07a5bc&lang=scss\"\n\nimport exportComponent from \"/Users/khodorevaav/sanya/works/mrbag/web_site/mrbag-tests/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","/* eslint-disable no-console */\n\nimport { register } from \"register-service-worker\";\n\nif (process.env.NODE_ENV === \"production\") {\n register(`${process.env.BASE_URL}service-worker.js`, {\n ready() {\n console.log(\n \"App is being served from cache by a service worker.\\n\" +\n \"For more details, visit https://goo.gl/AFskqB\"\n );\n },\n registered() {\n console.log(\"Service worker has been registered.\");\n },\n cached() {\n console.log(\"Content has been cached for offline use.\");\n },\n updatefound() {\n console.log(\"New content is downloading.\");\n },\n updated(registration) {\n console.log(\"New content is available; please refresh.\");\n if (!registration || !registration.waiting) return;\n registration.waiting.postMessage({ type: \"SKIP_WAITING\" });\n window.location.reload();\n },\n offline() {\n console.log(\"No internet connection found. App is running in offline mode.\");\n },\n error(error) {\n console.error(\"Error during service worker registration:\", error);\n },\n });\n}\n","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = [\"id\"]\nconst _hoisted_2 = { class: \"card-container\" }\nconst _hoisted_3 = [\"onClick\"]\nconst _hoisted_4 = [\"src\", \"alt\"]\nconst _hoisted_5 = { class: \"card-info\" }\nconst _hoisted_6 = { class: \"card-title\" }\nconst _hoisted_7 = { class: \"card-action\" }\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"button\", { class: \"btn-main\" }, \"Заказать\", -1)\nconst _hoisted_9 = { class: \"price\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"section\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.getAllSections, (section, sectionId) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: sectionId }, [\n _createElementVNode(\"h2\", {\n class: \"\",\n id: section.url\n }, _toDisplayString(section.name), 9, _hoisted_1),\n _createElementVNode(\"div\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.getMealsBySectionId(sectionId), (meal, mealId) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"card\",\n key: mealId,\n onClick: ($event: any) => (_ctx.openMealCard(mealId))\n }, [\n _createElementVNode(\"img\", {\n src: meal.menuImgUrl,\n alt: meal.name.toLowerCase()\n }, null, 8, _hoisted_4),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"h3\", _hoisted_6, _toDisplayString(meal.name), 1),\n _createElementVNode(\"div\", _hoisted_7, [\n _hoisted_8,\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(meal.price), 1)\n ])\n ])\n ], 8, _hoisted_3))\n }), 128))\n ])\n ]))\n }), 128))\n ]))\n}","\nimport { Options, Vue } from \"vue-class-component\";\nimport { mapGetters, mapMutations } from \"vuex\";\nimport { SectionData } from \"../interfaces/Section\";\nimport { MealFullData, MealId } from \"../interfaces/Meal\";\n\n@Options({\n computed: {\n ...mapGetters(\"sections\", [\"getAllSections\"]),\n ...mapGetters(\"meals\", [\"getMealsBySectionId\"]),\n },\n methods: mapMutations([\"changeDisplayedMealId\"]),\n})\nexport default class Home extends Vue {\n getAllSections!: { [key: string]: SectionData };\n\n getMealsBySectionId!: (sectionId: number | string) => { [key: string]: MealFullData };\n\n changeDisplayedMealId!: (id: MealId) => void;\n\n openMealCard(mealId: MealId | string) {\n this.changeDisplayedMealId(+mealId);\n window.scrollTo({\n top: 0,\n behavior: \"smooth\",\n });\n }\n}\n","import { render } from \"./Home.vue?vue&type=template&id=4709026c&ts=true\"\nimport script from \"./Home.vue?vue&type=script&lang=ts\"\nexport * from \"./Home.vue?vue&type=script&lang=ts\"\n\nimport \"./Home.vue?vue&type=style&index=0&id=4709026c&lang=scss\"\n\nimport exportComponent from \"/Users/khodorevaav/sanya/works/mrbag/web_site/mrbag-tests/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createRouter, createWebHistory, RouteRecordRaw } from \"vue-router\";\nimport Home from \"../views/Home.vue\";\n\nconst routes: Array = [\n {\n path: \"/\",\n name: \"Home\",\n component: Home,\n },\n {\n path: \"/basket/\",\n name: \"Basket\",\n component: () => import(\"@/views/Basket.vue\"),\n },\n {\n path: \"/ordering/\",\n name: \"Ordering\",\n component: () => import(\"@/views/Ordering.vue\"),\n },\n {\n path: \"/about\",\n name: \"About\",\n component: () => import(\"@/views/About.vue\"),\n },\n {\n path: \"/oferta\",\n name: \"Oferta\",\n component: () => import(\"@/views/Oferta.vue\"),\n },\n {\n path: \"/policy\",\n name: \"Policy\",\n component: () => import(\"@/views/Policy.vue\"),\n },\n];\n\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes,\n scrollBehavior(to) {\n if (to.hash) {\n const el = document.getElementById(to.hash.slice(1));\n if (el) {\n el.scrollIntoView({ behavior: \"smooth\" });\n }\n }\n },\n});\n\nexport default router;\n","import { Section } from \"@/interfaces/Section\";\nimport { Addition } from \"@/interfaces/Addition\";\nimport { Meal } from \"@/interfaces/Meal\";\nimport { Order, OrderAnswerFromApi } from \"@/interfaces/Order\";\nimport { API } from \"./types\";\n\nexport default class DataFromApi implements API {\n apiUrl: string;\n\n constructor(apiUrl = \"\") {\n this.apiUrl = apiUrl;\n }\n\n async getSectionList(): Promise {\n const response = await fetch(`${this.apiUrl}/api/active-sections`);\n const data: Section[] = await response.json();\n return data;\n }\n\n async getAdditionList(): Promise {\n const response = await fetch(`${this.apiUrl}/api/active-additions`);\n const data: Addition[] = await response.json();\n return data;\n }\n\n async getMealList(): Promise {\n const response = await fetch(`${this.apiUrl}/api/active-meals`);\n const data: Meal[] = await response.json();\n return data;\n }\n\n getMealImgUrl(imgFileName: string): string {\n return `${this.apiUrl}/api/meals/image/${imgFileName}`;\n }\n\n async sendOrder(orderData: Order): Promise {\n const response = await fetch(`${this.apiUrl}/api/orders`, {\n method: \"POST\",\n body: JSON.stringify(orderData),\n headers: { \"Content-Type\": \"application/json\" },\n });\n const data: OrderAnswerFromApi = await response.json();\n return data;\n }\n}\n","import { Module } from \"vuex\";\nimport { RootState } from \"@/store/types\";\nimport { SettingsGetters, SettingsState } from \"./types\";\n\nconst settingsState: SettingsState = {\n workTime: {\n start: {\n hour: \"09\",\n minute: \"00\",\n },\n finish: {\n hour: \"22\",\n minute: \"00\",\n },\n },\n phone: {\n title: \"+7 903 409-14-09\",\n link: \"\",\n },\n social: {\n instagram: {\n title: \"Mr.B.A.G - Instagram\",\n link: \"https://www.instagram.com/\",\n },\n },\n info: {\n oferta: {\n link: \"\",\n title: \"Публичная оферта\",\n routeName: \"Oferta\",\n },\n policy: {\n link: \"\",\n title: \"Политика конфедициальности\",\n routeName: \"Policy\",\n },\n protect: {\n link: \"\",\n title: \"2021 Mr.B.A.G Все права защищены\",\n routeName: \"\",\n },\n },\n mainMenuItems: [\n {\n title: \"Акции\",\n link: \"action\",\n routeName: \"About\",\n },\n {\n title: \"О нас\",\n link: \"about-us\",\n routeName: \"About\",\n },\n {\n title: \"Доставка и оплата\",\n link: \"delivery\",\n routeName: \"About\",\n },\n {\n title: \"Контакты\",\n link: \"contacts\",\n routeName: \"About\",\n },\n ],\n};\n\nexport const getters: SettingsGetters = {\n startWorkTimeOnDate: (state) => (date) => {\n const todayData: Date = date ? new Date(date) : new Date();\n todayData.setHours(+state.workTime.start.hour, +state.workTime.start.minute, 0);\n\n return todayData;\n },\n finishWorkTimeOnDate: (state) => (date) => {\n const todayData: Date = date ? new Date(date) : new Date();\n todayData.setHours(+state.workTime.finish.hour, +state.workTime.finish.minute, 0);\n\n return todayData;\n },\n};\n\nconst settings: Module = {\n namespaced: true,\n state: settingsState,\n getters,\n};\n\nexport default settings;\n","import { Module } from \"vuex\";\nimport { Addition, AdditionData } from \"@/interfaces/Addition\";\nimport { RootState } from \"@/store/types\";\nimport { AdditionState, AdditionGetters, AdditionMutations, AdditionActions } from \"./types\";\n\nconst additionState: AdditionState = { arAdditions: {} };\n\nexport const getters: AdditionGetters = {\n getAdditionPrice: (state) => (id) => {\n const additionPrice = state.arAdditions[id] ? state.arAdditions[id].price : false;\n return additionPrice;\n },\n getAdditionDataById: (state, aGetters) => (id) => {\n if (!state.arAdditions[id]) {\n return false;\n }\n\n const getterName = \"getAdditionPrice\";\n\n const result: AdditionData = {\n name: state.arAdditions[id].name,\n price: aGetters[getterName](id),\n };\n\n return result;\n },\n getAdditionsCost: (state, aGetters) => (data) => {\n let summ = 0;\n\n Object.keys(data).forEach((key: string) => {\n const getterName = \"getAdditionDataById\";\n const additionData = aGetters[getterName](+key);\n summ += additionData ? additionData.price * data[key] : 0;\n });\n\n return summ;\n },\n};\n\nconst mutations: AdditionMutations = {\n addAddition(state, data) {\n state.arAdditions[data.id] = {\n name: data.name,\n price: data.price,\n };\n },\n};\n\nconst actions: AdditionActions = {\n async getAdditionList({ commit, rootState }) {\n const data: Addition[] = await rootState.api.getAdditionList();\n if (data) {\n data.forEach((value: Addition) => {\n commit(\"addAddition\", value);\n });\n }\n },\n};\n\nconst additions: Module = {\n namespaced: true,\n state: additionState,\n getters,\n mutations,\n actions,\n modules: {},\n};\n\nexport default additions;\n","import { Module } from \"vuex\";\nimport { Section } from \"@/interfaces/Section\";\nimport { RootState } from \"@/store/types\";\nimport { SectionState, SectionMutations, SectionActions, SectionGetters } from \"./types\";\nimport { MenuItem } from \"../settings/types\";\n\nconst stateData: SectionState = { arSections: {} };\n\nconst getters: SectionGetters = {\n getSectionDataById: (state) => (id) => state.arSections[id],\n getAllSections: (state) => state.arSections,\n sectionsToMenuItems: (state) => {\n const result: MenuItem[] = Object.keys(state.arSections).map((key) => {\n const item: MenuItem = {\n title: state.arSections[key].name,\n link: state.arSections[key].url,\n routeName: \"Home\",\n };\n return item;\n });\n\n return result;\n },\n};\n\nconst mutations: SectionMutations = {\n addSection(state, data) {\n state.arSections[data.id] = {\n name: data.name,\n url: data.url,\n };\n },\n};\n\nconst actions: SectionActions = {\n async getSectionList({ commit, rootState }) {\n const data: Section[] = await rootState.api.getSectionList();\n if (data) {\n data.forEach((value: Section) => {\n commit(\"addSection\", value);\n });\n }\n },\n};\n\nconst sections: Module = {\n namespaced: true,\n state: stateData,\n getters,\n mutations,\n actions,\n modules: {},\n};\nexport default sections;\n","import { Module } from \"vuex\";\nimport { Meal, MealData, MealFullData, MealId, MealImgsUrls } from \"@/interfaces/Meal\";\nimport { RootState } from \"@/store/types\";\nimport { MealState, MealMutations, MealActions, MealGetters } from \"./types\";\n\nconst mealState: MealState = { arMeals: {} };\n\nexport const getters: MealGetters = {\n oneMealCost: (state) => (mealId) => state.arMeals[mealId].price,\n getMealDataById: (state, mGetters, rootState) => (mealId) => {\n if (!state.arMeals[mealId]) {\n return false;\n }\n\n const mealImgsUrls: MealImgsUrls = {\n menuImgUrl: rootState.api.getMealImgUrl(state.arMeals[mealId].menuImgFileName),\n orderImgUrl: rootState.api.getMealImgUrl(state.arMeals[mealId].orderImgFileName),\n largeImgUrl: rootState.api.getMealImgUrl(state.arMeals[mealId].largeImgFileName),\n smallImgUrl: rootState.api.getMealImgUrl(state.arMeals[mealId].smallImgFileName),\n };\n\n const mealData = { ...state.arMeals[mealId], ...mealImgsUrls };\n\n return mealData;\n },\n getMealIdsBySectionId: (state) => (sectionId) => {\n const result = Object.keys(state.arMeals)\n .filter((key) => +state.arMeals[key].sectionId === +sectionId)\n .map((id) => +id);\n return result;\n },\n getMealsBySectionId: (state, mGetters) => (sectionId) => {\n const result: { [key: string]: MealFullData } = {};\n const mealIds: MealId[] = mGetters.getMealIdsBySectionId(sectionId);\n mealIds.forEach((mealId) => {\n result[+mealId] = mGetters.getMealDataById(+mealId);\n });\n return result;\n },\n};\n\nconst mutations: MealMutations = {\n addMeal(state, data): void {\n const result: MealData = {\n name: data.name,\n description: data.description,\n menuImgFileName: data.menuImgFileName,\n orderImgFileName: data.orderImgFileName,\n largeImgFileName: data.largeImgFileName,\n smallImgFileName: data.smallImgFileName,\n price: data.price,\n sectionId: data.sectionId,\n };\n result.additions = data.additions ? [...data.additions] : [];\n state.arMeals[data.id] = result;\n },\n};\n\nconst actions: MealActions = {\n async getMealList({ commit, rootState }) {\n const data: Meal[] = await rootState.api.getMealList();\n if (data) {\n data.map((value: Meal) => {\n commit(\"addMeal\", value);\n return true;\n });\n }\n },\n};\n\nconst meals: Module = {\n namespaced: true,\n state: mealState,\n getters,\n mutations,\n actions,\n modules: {},\n};\nexport default meals;\n","import { BasketItem } from \"@/interfaces/Basket\";\nimport { Storage } from \"./interface\";\n\nexport default class LocalStorage implements Storage {\n readonly keyName = \"basket\";\n\n getItem(): BasketItem[] {\n let result: BasketItem[] = [];\n\n const basket = localStorage.getItem(this.keyName);\n if (basket) {\n result = JSON.parse(basket);\n }\n\n // TODO: if result not BasketItem[]\n\n return result;\n }\n\n saveItem(data: BasketItem[]): void {\n try {\n localStorage.setItem(this.keyName, JSON.stringify(data));\n } catch (error) {\n // TODO: if the storage is full\n // https://developer.mozilla.org/en-US/docs/Web/API/Storage/setItem#exceptions\n }\n }\n\n deleteItem(): void {\n localStorage.removeItem(this.keyName);\n }\n}\n","import { Module } from \"vuex\";\nimport LocalStorage from \"@/localStorage\";\nimport { BasketFullInfoItem, BasketItem, BasketItemToApi } from \"@/interfaces/Basket\";\nimport { RootState } from \"@/store/types\";\nimport { MealFullData } from \"@/interfaces/Meal\";\nimport { AdditionData, AdditionsInMeal } from \"@/interfaces/Addition\";\nimport { BState, BGetters, BMutations, BActions } from \"./types\";\n\nconst localStorageObject = new LocalStorage();\n\nconst basketState: BState = { basket: [] };\n\nexport const getters: BGetters = {\n getBasketItemCost: (moduleState, basketGetters, rootState, rootGetters) => (basketItem) => {\n const count: number = basketItem.count > 0 ? basketItem.count : 1;\n let currBasketItemCost: number =\n rootGetters[\"meals/oneMealCost\"](basketItem.mealId) +\n rootGetters[\"additions/getAdditionsCost\"](basketItem.additions);\n\n currBasketItemCost *= count;\n\n return currBasketItemCost;\n },\n basketCost(moduleState, basketGetters): number {\n let result = 0;\n\n result = moduleState.basket.reduce(\n (prevBasketItem: number, currBasketItem: BasketItem) => {\n const getterName = \"getBasketItemCost\";\n const currBasketItemCost = basketGetters[getterName](currBasketItem);\n\n return prevBasketItem + currBasketItemCost;\n },\n result\n );\n\n return result;\n },\n getBasketFullInfo(moduleState, basketGetters, rootState, rootGetters) {\n const result: BasketFullInfoItem[] = [];\n\n moduleState.basket.forEach((item: BasketItem) => {\n const mealData: MealFullData | false = rootGetters[\"meals/getMealDataById\"](item.mealId);\n\n if (mealData) {\n const itemInfo: BasketFullInfoItem = {\n ...item,\n mealData,\n additionsData: {},\n };\n\n itemInfo.additions = { ...item.additions };\n\n Object.keys(item.additions).forEach((key: string) => {\n const addData: AdditionData = rootGetters[\"additions/getAdditionDataById\"](+key);\n\n if (addData) {\n itemInfo.additionsData[key] = addData;\n }\n });\n\n result.push(itemInfo);\n }\n });\n\n return result;\n },\n\n basketForOrder(state) {\n return state.basket.map((bItem) => {\n const { mealId, count } = bItem;\n\n const additions = Object.keys(bItem.additions).map((key) => ({\n Id: +key,\n count: bItem.additions[key],\n }));\n\n const result: BasketItemToApi = {\n mealId,\n count,\n additions,\n };\n\n return result;\n });\n },\n};\n\nconst mutations: BMutations = {\n addBasketItem(state, data) {\n const result: BasketItem = {\n id: data.id,\n mealId: data.mealId,\n count: data.count,\n additions: {},\n };\n Object.keys(data.additions).forEach((additId: string) => {\n if (data.additions[additId]) {\n result.additions[additId] = data.additions[additId];\n }\n });\n state.basket.push(result);\n\n localStorageObject.saveItem(state.basket);\n },\n\n updateBasketItem(state, data) {\n const basketItemKey = state.basket.findIndex((item) => item.id === data.id);\n\n const notEmptyAdditions: AdditionsInMeal = {};\n Object.keys(data.additions).forEach((additId: string) => {\n if (data.additions[additId]) {\n notEmptyAdditions[additId] = data.additions[additId];\n }\n });\n\n state.basket[basketItemKey] = {\n id: data.id,\n mealId: data.mealId,\n count: data.count,\n additions: { ...notEmptyAdditions },\n };\n\n localStorageObject.saveItem(state.basket);\n },\n\n deleteBasketItem(state, itemId) {\n state.basket.splice(\n state.basket.findIndex((item) => item.id === itemId),\n 1\n );\n\n localStorageObject.saveItem(state.basket);\n },\n\n clearBasket(state) {\n state.basket = [];\n localStorageObject.deleteItem();\n },\n};\n\nconst actions: BActions = {\n getBasketFromLocalStorage({ commit }) {\n const data: BasketItem[] = localStorageObject.getItem();\n if (data) {\n data.forEach((element: BasketItem) => {\n commit(\"addBasketItem\", element);\n });\n }\n },\n\n saveBasketToLocalStorage({ state }) {\n localStorageObject.saveItem(state.basket);\n },\n};\n\nconst basket: Module = {\n namespaced: true,\n state: basketState,\n getters,\n mutations,\n actions,\n modules: {},\n};\n\nexport default basket;\n","import { Module } from \"vuex\";\nimport { RootState } from \"@/store/types\";\nimport {\n DeliveryTypeItem,\n DeliveryTypesForComponent,\n SendOrderToApiResult,\n ValidatorResult,\n} from \"@/interfaces/Order\";\nimport { OrderActions, OrderGetters, OrderMutations, OrderState } from \"./types\";\n\nconst orderState: OrderState = {\n defaultDeliveryType: {\n id: 0,\n name: \"Самовывоз\",\n params: {\n clientAddressRequired: false,\n deliveryCost: 0,\n minutesBeforeMinAvailableOrderTime: 60,\n minutesBetweenOrderTimeIntervals: 30,\n durationOfOneOrderTimeInterval: 30,\n timeTemplate: \"h1:m1\",\n },\n },\n deliveryTypes: [\n {\n id: 1,\n name: \"Доставка\",\n params: {\n clientAddressRequired: true,\n deliveryCost: 99,\n minutesBeforeMinAvailableOrderTime: 60,\n minutesBetweenOrderTimeIntervals: 30,\n durationOfOneOrderTimeInterval: 30,\n timeTemplate: \"h1:m1 - h2:m2\",\n },\n },\n {\n id: 2,\n name: \"Самовывоз\",\n params: {\n clientAddressRequired: false,\n deliveryCost: 0,\n minutesBeforeMinAvailableOrderTime: 20,\n minutesBetweenOrderTimeIntervals: 30,\n durationOfOneOrderTimeInterval: 10,\n timeTemplate: \"h1:m1\",\n },\n },\n {\n id: 3,\n name: \"На месте\",\n params: {\n clientAddressRequired: false,\n deliveryCost: 0,\n minutesBeforeMinAvailableOrderTime: 20,\n minutesBetweenOrderTimeIntervals: 30,\n durationOfOneOrderTimeInterval: 30,\n timeTemplate: \"h1:m1\",\n },\n },\n ],\n minutesFromStartWorkTimeToFirstAcceptedOrder: 20,\n minutesFromLastAcceptedOrderToFinishWorkTime: 60,\n deliveryTypeDefaultInView: 2,\n sendingOrderNow: false,\n receivedOrderDataFromApi: {},\n};\n\nexport const getters: OrderGetters = {\n orderTimeForCalculateDeliveryTimes: (state, orderGetters, rS, rootGetters) => (time) => {\n let orderTime = time ? new Date(time) : new Date();\n const firstAcceptedOrderTimeToday: Date = rootGetters[\"settings/startWorkTimeOnDate\"]();\n firstAcceptedOrderTimeToday.setMinutes(\n firstAcceptedOrderTimeToday.getMinutes() + state.minutesFromStartWorkTimeToFirstAcceptedOrder\n );\n\n if (orderTime <= firstAcceptedOrderTimeToday) {\n orderTime = firstAcceptedOrderTimeToday;\n }\n\n const getterName = \"startTimeOfLastAvailableDeliveryTime\";\n const lastAcceptedOrderTimeToday: Date = orderGetters[getterName](orderTime);\n\n if (orderTime > lastAcceptedOrderTimeToday) {\n firstAcceptedOrderTimeToday.setDate(firstAcceptedOrderTimeToday.getDate() + 1);\n orderTime = firstAcceptedOrderTimeToday;\n }\n\n return orderTime;\n },\n startTimeOfFirstAvailableDeliveryTime: (state) => (time, deliveryTypeId) => {\n const orderTime = time ? new Date(time) : new Date();\n let { minutesBeforeMinAvailableOrderTime } = state.defaultDeliveryType.params;\n\n if (deliveryTypeId) {\n const deliveryTypeData = state.deliveryTypes.find((elem) => elem.id === deliveryTypeId);\n if (deliveryTypeData) {\n minutesBeforeMinAvailableOrderTime =\n deliveryTypeData.params.minutesBeforeMinAvailableOrderTime;\n }\n }\n\n orderTime.setMinutes(orderTime.getMinutes() + minutesBeforeMinAvailableOrderTime);\n\n return orderTime;\n },\n startTimeOfLastAvailableDeliveryTime: (state, orderGetters, rootState, rootGetters) => (time) => {\n const orderTime = time ? new Date(time) : new Date();\n const result: Date = rootGetters[\"settings/finishWorkTimeOnDate\"](orderTime);\n result.setMinutes(result.getMinutes() - state.minutesFromLastAcceptedOrderToFinishWorkTime);\n\n return result;\n },\n deliveryTimes: (state, orderGetters) => (deliveryTypeId, timeNow) => {\n const orderTime = timeNow ? new Date(timeNow) : new Date();\n\n let getterName = \"orderTimeForCalculateDeliveryTimes\";\n const orderTimeForCalc: Date = orderGetters[getterName](orderTime);\n\n getterName = \"startTimeOfFirstAvailableDeliveryTime\";\n const startOfFirstTimeItem: Date = orderGetters[getterName](orderTimeForCalc, deliveryTypeId);\n\n getterName = \"startTimeOfLastAvailableDeliveryTime\";\n const maxStartOfLastTimeItem: Date = orderGetters[getterName](orderTimeForCalc);\n\n let { minutesBetweenOrderTimeIntervals, durationOfOneOrderTimeInterval } =\n state.defaultDeliveryType.params;\n if (deliveryTypeId) {\n const deliveryTypeData = state.deliveryTypes.find((elem) => elem.id === deliveryTypeId);\n if (deliveryTypeData) {\n minutesBetweenOrderTimeIntervals = deliveryTypeData.params.minutesBetweenOrderTimeIntervals;\n durationOfOneOrderTimeInterval = deliveryTypeData.params.durationOfOneOrderTimeInterval;\n }\n }\n\n const result: Array<[Date, Date]> = [];\n\n const tempStartTime = startOfFirstTimeItem;\n const tempFinishTime: Date = new Date(tempStartTime);\n tempFinishTime.setMinutes(tempFinishTime.getMinutes() + durationOfOneOrderTimeInterval);\n\n while (tempStartTime <= maxStartOfLastTimeItem) {\n result.push([new Date(tempStartTime), new Date(tempFinishTime)]);\n\n tempStartTime.setMinutes(tempStartTime.getMinutes() + minutesBetweenOrderTimeIntervals);\n tempFinishTime.setMinutes(tempFinishTime.getMinutes() + minutesBetweenOrderTimeIntervals);\n }\n\n return result;\n },\n deliveryTimesWithTemplate: (state, orderGetters) => (deliveryTypeId, timeNow) => {\n let getterName = \"deliveryTimes\";\n const timeArray: Array<[Date, Date]> = orderGetters[getterName](deliveryTypeId, timeNow);\n\n let template = state.defaultDeliveryType.params.timeTemplate;\n if (deliveryTypeId) {\n const deliveryTypeData = state.deliveryTypes.find((elem) => elem.id === deliveryTypeId);\n if (deliveryTypeData) {\n template = deliveryTypeData.params.timeTemplate;\n }\n }\n\n const result: Array<{ time: [Date, Date]; template: string }> = [];\n\n getterName = \"replaceValuesInPattern\";\n\n timeArray.forEach((interval: [Date, Date]) => {\n const [start, finish] = interval;\n result.push({\n time: [new Date(start), new Date(finish)],\n template: orderGetters[getterName](template, interval),\n });\n });\n\n return result;\n },\n replaceValuesInPattern: () => (pattern, interval) => {\n const [start, finish] = interval;\n const replacements = [\n {\n pattern: \"h1\",\n value: (start.getHours() < 10 ? \"0\" : \"\") + start.getHours().toString(),\n },\n {\n pattern: \"m1\",\n value: (start.getMinutes() < 10 ? \"0\" : \"\") + start.getMinutes().toString(),\n },\n {\n pattern: \"h2\",\n value: (finish.getHours() < 10 ? \"0\" : \"\") + finish.getHours().toString(),\n },\n {\n pattern: \"m2\",\n value: (finish.getMinutes() < 10 ? \"0\" : \"\") + finish.getMinutes().toString(),\n },\n ];\n\n let result = pattern;\n\n replacements.forEach((item) => {\n result = result.replaceAll(item.pattern, item.value);\n });\n\n return result;\n },\n\n deliveryTypes: (state) => {\n const result: DeliveryTypesForComponent = {};\n\n state.deliveryTypes.forEach((item: DeliveryTypeItem) => {\n result[item.id.toString()] = {\n name: item.name,\n params: { clientAddressRequired: item.params.clientAddressRequired },\n };\n });\n\n return result;\n },\n\n deliveryTypeDefaultInView: (state) => state.deliveryTypeDefaultInView,\n\n deliveryCost: (state) => (deliveryTypeId) => {\n // TODO: write actual calculate\n let cost = state.defaultDeliveryType.params.deliveryCost;\n\n if (deliveryTypeId) {\n const deliveryTypeData = state.deliveryTypes.find((elem) => elem.id === deliveryTypeId);\n if (deliveryTypeData) {\n cost = deliveryTypeData.params.deliveryCost;\n }\n }\n\n return cost;\n },\n\n orderCost: (state, orderGetters, rootState, rootGetters) => (deliveryTypeId) => {\n let result = 0;\n\n result += +rootGetters[\"basket/basketCost\"];\n\n const getterName = \"deliveryCost\";\n result += +orderGetters[getterName](deliveryTypeId);\n\n return result;\n },\n\n validateOrderData: (state) => (orderData) => {\n const returnedData: ValidatorResult = {\n result: true,\n error: \"\",\n };\n\n let clientAddressRequired = false;\n if (orderData.deliveryType) {\n const deliveryTypeData = state.deliveryTypes.find(\n (elem) => elem.id === orderData.deliveryType\n );\n\n if (deliveryTypeData && deliveryTypeData.params.clientAddressRequired) {\n clientAddressRequired = true;\n }\n }\n\n if (orderData.positions.length === 0) {\n returnedData.error = \"Корзина пуста\";\n } else if (!orderData.clientName || !orderData.clientPhone) {\n returnedData.error = \"Не заполнены имя или номер телефона\";\n } else if (\n !/^((8|\\+?7)[-\\s]?)?(\\(?\\d{3,4}\\)?[-\\s]?)?[\\d\\-\\s]{5,10}$/.test(\n orderData.clientPhone.replaceAll(/\\s+/g, \"\")\n )\n ) {\n returnedData.error = \"Введён неверный номер телефона\";\n } else if (clientAddressRequired && !orderData.address.length) {\n returnedData.error = \"Не заполнен адрес доставки\";\n } else if (!orderData.deliveryTime || orderData.deliveryTime <= new Date().getTime()) {\n returnedData.error = \"Неверно указано время\";\n }\n\n if (returnedData.error.length) {\n returnedData.result = false;\n }\n\n return returnedData;\n },\n};\n\nconst mutations: OrderMutations = {\n changeSendingOrderNow: (state, sendingStatus) => {\n state.sendingOrderNow = sendingStatus;\n },\n\n saveOrderDataFromApi: (state, data) => {\n state.receivedOrderDataFromApi = { ...data };\n },\n};\n\nconst actions: OrderActions = {\n async sendOrderToApi({ commit, rootState }, orderData) {\n const result: SendOrderToApiResult = {\n result: false,\n error: \"\",\n data: {},\n };\n\n try {\n commit(\"changeSendingOrderNow\", true);\n const data = await rootState.api.sendOrder(orderData);\n commit(\"changeSendingOrderNow\", false);\n commit(\"saveOrderDataFromApi\", data);\n result.result = true;\n commit(\"basket/clearBasket\", null, { root: true });\n } catch (e) {\n // e\n // TODO:\n result.error = \"Ошибка отправки заказа. Попробуйте позже или свяжитесь с нами.\";\n }\n\n return result;\n },\n};\n\nconst order: Module = {\n namespaced: true,\n state: orderState,\n getters,\n mutations,\n actions,\n};\n\nexport default order;\n","import { createStore, StoreOptions } from \"vuex\";\nimport DataFromApi from \"@/api\";\nimport settings from \"./modules/settings\";\nimport additions from \"./modules/additions\";\nimport sections from \"./modules/sections\";\nimport meals from \"./modules/meals\";\nimport basket from \"./modules/basket\";\nimport order from \"./modules/order\";\nimport { RootState, RootMutations } from \"./types\";\n\nconst rootState: RootState = {\n displayedMealId: 0,\n api: new DataFromApi(),\n};\n\nconst rootMutations: RootMutations = {\n changeDisplayedMealId(state, mealId) {\n state.displayedMealId = mealId;\n },\n};\n\nconst store: StoreOptions = {\n state: rootState,\n getters: {},\n mutations: rootMutations,\n actions: {},\n modules: {\n settings,\n sections,\n additions,\n meals,\n basket,\n order,\n },\n strict: process.env.NODE_ENV !== \"production\",\n};\n\nexport default createStore(store);\n","import { createApp } from \"vue\";\nimport App from \"./App.vue\";\nimport \"./registerServiceWorker\";\nimport router from \"./router\";\nimport store from \"./store\";\nimport \"normalize.css\";\n\nif (process.env.NODE_ENV === \"development\") {\n /* eslint-disable global-require */\n /* eslint-disable @typescript-eslint/no-var-requires */\n const worker = require(\"./mocks/browser\");\n /* eslint-enable global-require */\n worker.default.start();\n}\n\ncreateApp(App).use(store).use(router).mount(\"#app\");\n"],"sourceRoot":""}