{"version":3,"file":"js/catalog-shops.js","mappings":"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","sources":["/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/block/catalog/shops-map/shops-map.js","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/block/catalog/shops-page-tabs/shops-page-tabs.js","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/block/catalog/shops-table/shops-table.js","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/block/filters/shops-filters/shops-filters.js","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/component/UI/modal.js","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/component/UI/tabs.js","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/component/catalog/add_to_basket_button.js","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/component/catalog/basket.js","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/component/common/helpers.js","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/component/common/modal.js","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/component/filters/ajax-filter.js","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/component/filters/popup.js","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/component/map/map.js","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/component/map/shop-detail-popup.js","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/component/math_helpers/deg2rad.js","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/component/math_helpers/rad2deg.js","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/block/basket/basket-add-modal/basket-add-modal.scss*","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/block/catalog/shops-map/shops-map.scss*","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/block/catalog/shops-page-tabs/shops-page-tabs.scss*","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/block/catalog/shops-page/shops-page.scss*","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/block/catalog/shops-table/shops-table.scss*","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/block/filters/shops-filters/shops-filters.scss*","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/block/shared/rating/rating.scss*","webpack/bootstrap","webpack/runtime/define property getters","webpack/runtime/hasOwnProperty shorthand","webpack/runtime/make namespace object","/builds/43805/sites/market.tarkett.ru/www/local/templates/new_design/frontend/src/entry/catalog-shops.js"],"sourcesContent":["import { YMap } from \"../../../component/map/map\";\nimport { DetailPopup } from \"../../../component/map/shop-detail-popup\";\n\nwindow.addEventListener(\"load\", () => {\n const mainMapId = \"shops-map\";\n const mapElement = document.getElementById(mainMapId);\n const tableBlock = document.querySelector(\".b-shops-table\");\n const coords = JSON.parse(mapElement.dataset.coords);\n const detailPopup = new DetailPopup();\n\n const getPoints = () => {\n const pointIds = [\n ...document.querySelectorAll(`${mapElement.dataset.selector}`),\n ].map((block) => block.dataset.offerId);\n\n const storeMode = mapElement.dataset.storeMode === '1';\n\n const url = storeMode ?\n new URL(\"/stores/ajax/storemode/\", window.location.origin)\n :\n new URL(\"/stores/ajax/\", window.location.origin);\n\n let fetchParams = {};\n if (pointIds.length > 40) {\n const searchParams = new URLSearchParams();\n searchParams.set(\"ids\", pointIds.join(','));\n\n console.log(pointIds.join(','));\n\n fetchParams = {\n method: 'POST',\n body: searchParams.toString(),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded'\n }\n };\n\n console.log(fetchParams);\n } else {\n url.searchParams.set(\"ids\", pointIds.join(\",\"));\n }\n url.searchParams.set(\"user_lat\", coords.latitude);\n url.searchParams.set(\"user_long\", coords.longitude);\n\n return fetch(url, fetchParams)\n .then((r) => r.json())\n .then((response) => {\n return response\n .filter((item) => item.id) // т.к. приходит точка с кооридатами пользователя\n .map((item) => {\n const row = tableBlock.querySelector(\n `.b-shops-table__row--product[data-offer-id=\"${item.id}\"]`,\n );\n\n const distance =\n row && row.querySelector(\".b-shops-table__distance-label\");\n const name = row && row.querySelector(\".b-shops-table__name\");\n const address =\n row && row.querySelector(\".b-shops-table__address-label\");\n const workTime =\n row && row.querySelector(\".b-shops-table__cell--time\");\n const delivery =\n row && row.querySelector(\".b-shops-table__cell--delivery\");\n const price =\n row && row.querySelector(\".b-shops-table__cell--price\");\n const rating =\n row && row.querySelector(\".b-shops-table__cell--rating\");\n const button = (row &&\n row.querySelector(\".b-shops-table__button\")) || {\n dataset: {},\n };\n\n return {\n id: item.id,\n coords: [item.coordinates.lat, item.coordinates.lng],\n params: {\n originalItem: item,\n distance:\n distance && distance.textContent.replace(/[\\n\\t\\r]/g, \"\"),\n name: name && name.textContent.replace(/[\\n\\t\\r]/g, \"\"),\n url: name && name.href,\n address:\n address && address.textContent.replace(/[\\n\\t\\r]/g, \"\"),\n workTime:\n workTime && workTime.textContent.replace(/[\\n\\t\\r]/g, \"\"),\n delivery:\n delivery && delivery.textContent.replace(/[\\n\\t\\r]/g, \"\"),\n price: price && price.textContent.replace(/[\\n\\t\\r]/g, \"\"),\n rating: rating && rating.innerHTML,\n ...button.dataset,\n },\n };\n });\n });\n };\n\n const map = new YMap(mainMapId, [], {\n initialCoords: [coords.latitude, coords.longitude],\n initialZoom: mapElement.dataset.zoom,\n afterInit: (ctx) => {\n getPoints().then((items) => {\n ctx.setItems(items);\n ctx.showMarks();\n });\n },\n pointClickEvent: (e) => {\n detailPopup.setDataAndShow(\n e.originalEvent.target.properties._data.params,\n );\n },\n });\n\n document.addEventListener(\"tab-switch\", (e) => {\n if (e.detail.tabs.activeTabId === \"map\") {\n map.setZoom(map.initialZoom);\n }\n });\n\n document.addEventListener(\"shops-table-update\", () => {\n getPoints().then((items) => {\n map.setItems(items);\n map.showMarks();\n });\n });\n});\n","import { Tabs } from \"../../../component/UI/tabs\";\n\nwindow.addEventListener(\"load\", () => {\n const className = \"b-shops-page-tabs\";\n\n const tabs = new Tabs(className, {\n btnChildClass: \"active\",\n contentChildClass: \"active\",\n onSwitch: () => {\n document.dispatchEvent(\n new CustomEvent(\"tab-switch\", {\n detail: {\n tabs,\n },\n }),\n );\n },\n });\n});\n","import { initAddToBasketButtons } from \"../../../component/catalog/add_to_basket_button\";\nimport { initAddToBasketModal } from \"../../../component/catalog/basket\";\nimport { degToRad } from \"../../../component/math_helpers/deg2rad\";\nimport { radToDeg } from \"../../../component/math_helpers/rad2deg\";\n\nconst className = 'b-shops-table';\n\nsetItemsCount();\ninitProductModal();\ninitDistance();\n\ndocument.addEventListener(\"shops-table-update\", () => {\n setItemsCount();\n initDistance();\n});\n\nfunction initDistance() {\n const rows = document.querySelectorAll(`.${className}__row--product`);\n\n if (navigator?.geolocation) {\n navigator.geolocation.getCurrentPosition((position) => {\n if (position) {\n const formatOutput = (number) => {\n return Intl.NumberFormat(\n 'ru-RU',\n {\n maximumFractionDigits: 2,\n },\n ).format(number);\n };\n \n const calculateDistance = (storeCoord, userCoord, unitRaw = 'км') => {\n const statuteMileNauticalMileCof = 1.1515;\n const minutesInDegree = 60;\n const kmMileCoof = 1.609344;\n const feetMileCoof = 5280;\n const yardsFeetCoof = 1 / 3;\n const mKmCoof = 1000;\n \n const theta = userCoord.long - storeCoord.long;\n const miles = radToDeg(\n Math.acos(\n (\n Math.sin(degToRad(userCoord.lat))\n *\n Math.sin(degToRad(storeCoord.lat))\n )\n +\n (\n Math.cos(degToRad(userCoord.lat))\n *\n Math.cos(degToRad(storeCoord.lat))\n *\n Math.cos(degToRad(theta))\n )\n )\n ) * minutesInDegree * statuteMileNauticalMileCof;\n \n switch(unitRaw) {\n case 'м':\n case 'метр':\n return formatOutput(miles * kmMileCoof * mKmCoof);\n case 'фут':\n case 'ф':\n return formatOutput(miles * feetMileCoof);\n case 'ярд':\n case 'я':\n return formatOutput(miles * feetMileCoof * yardsFeetCoof);\n case 'км': \n case 'километр':\n default:\n return formatOutput(miles * kmMileCoof);\n }\n };\n\n const userLat = position?.coords?.latitude;\n const userLong = position?.coords?.longitude;\n\n rows.forEach((row) => {\n const distanceElement = row.querySelector(`.${className}__distance`);\n const distanceLabel = distanceElement?.querySelector(`.${className}__distance-label`);\n const distanceUnitRaw = distanceElement?.dataset?.distanceUnit ?? 'км';\n\n if (\n !distanceElement\n ||\n distanceElement.classList.contains(`${className}__distance--inited`)\n ||\n !distanceLabel\n ) {\n return;\n }\n\n const storeCoord = {\n lat: distanceElement.dataset?.lat ?? '0.0',\n long: distanceElement.dataset?.long ?? '0.0',\n };\n\n if (\n (userLat && userLong)\n &&\n (storeCoord.lat && storeCoord.long)\n ) {\n const userCoord = {\n lat: userLat,\n long: userLong,\n };\n \n const distance = calculateDistance(storeCoord, userCoord);\n \n distanceLabel.innerText = `${distance} ${distanceUnitRaw}`;\n }\n });\n }\n\n rows.forEach((row) => {\n const distanceElement = row.querySelector(`.${className}__distance`);\n distanceElement.classList.add(`${className}__distance--inited`);\n });\n \n }, () => {\n rows.forEach((row) => {\n const distanceElement = row.querySelector(`.${className}__distance`);\n distanceElement.classList.add(`${className}__distance--inited`);\n });\n });\n } else {\n rows.forEach((row) => {\n const distanceElement = row.querySelector(`.${className}__distance`);\n distanceElement.classList.add(`${className}__distance--inited`);\n });\n }\n}\n\nfunction initProductModal() {\n initAddToBasketModal();\n initAddToBasketButtons();\n}\n\nfunction setItemsCount() {\n const rows = document.querySelectorAll(`.${className}__row--product`);\n const countBlock = document.querySelector(\".b-shops-page-tabs__header-text\");\n\n countBlock.textContent = rows.length\n ? `${rows.length} ${countBlock.dataset.header}`\n : \"Рядом с вами не найдено ни одного магазина.\";\n}\n","import { AjaxFilter } from \"../../../component/filters/ajax-filter\";\nimport { initMobilePopup } from \"../../../component/filters/popup\";\n\nconst className = \"b-shops-filters\";\nconst block = document.querySelector(`.${className}`);\n\ninitFilter(block, className);\n\n//При мобильном разрешении фильтр позиционируется в попап\ninitMobilePopup(block, className);\n\nfunction initFilter(block, className) {\n const itemContainerClass = `b-shops-table__wrapper`;\n const form = block.querySelector(`.${className}__filters`);\n const itemsContainer = document.querySelector(`.${itemContainerClass}`);\n\n const updateTable = (itemsHtml) => {\n itemsContainer.innerHTML = itemsHtml;\n\n document.dispatchEvent(new CustomEvent(\"shops-table-update\"));\n };\n\n const updateCountBlock = (data) => {\n const countBlock = document.querySelector(`.${className}__count`);\n const selects = data.querySelectorAll(\".b-select .selected\").length;\n\n countBlock.textContent = selects > 0 ? selects : \"\";\n };\n\n updateCountBlock(form);\n\n new AjaxFilter({\n form,\n updateUrl: true,\n onAfterFilterFetch: (data) => {\n const tableItems = data.querySelector(`.${itemContainerClass}`);\n\n updateTable(\n (tableItems && tableItems.innerHTML) || \"Актуальных товаров не найдено\",\n );\n updateCountBlock(data);\n },\n });\n}\n","import { lockBody, unlockBody } from \"../common/helpers\";\n\nexport class BaseModal {\n constructor(modal, params) {\n this.modal = modal;\n\n this.modalClass = params.modalClass;\n this.modalContainerClass = params.modalContainerClass;\n this.modalOpenClass = params.modalOpenClass;\n this.closeBtnClass = params.closeBtnClass;\n this.contentClass = params.contentClass;\n this.id = modal?.id || params.id;\n\n this.modalClassAdditional = params.modalClassAdditional ?? \"\";\n this.modalCloseZIndex = params.modalCloseZIndex ?? \"-25\";\n this.modalOpenZIndex = params.modalOpenZIndex ?? \"25\";\n\n this.title = params.title ?? \"\";\n\n this.openTimeout = params.openTimeout ?? 100;\n this.closeTimeout = params.closeTimeout ?? 350;\n\n this.needCreate = params.needCreate ?? false;\n\n this.onBeforeOpen = params.onBeforeOpen ?? (() => {});\n this.onBeforeClose = params.onBeforeClose ?? (() => {});\n this.onBeforeCreate = params.onBeforeCreate ?? (() => {});\n this.onAfterOpen = params.onAfterOpen ?? (() => {});\n this.onAfterClose = params.onAfterClose ?? (() => {});\n this.onAfterCreate = params.onAfterCreate ?? (() => {});\n\n this.isOpen = false;\n this.created = !this.needCreate;\n this.currentEvent = null;\n\n this.close = this.close.bind(this);\n\n if (this.created) {\n this.setModalElements();\n }\n\n this.setEvents();\n }\n\n setModalElements() {\n this.closeBtn = this.modal?.querySelector(`.${this.closeBtnClass}`);\n this.content = this.modal?.querySelector(`.${this.contentClass}`);\n }\n\n setEvents() {\n if (this.created) {\n this.setModalEvents();\n }\n\n this.setOtherEvents();\n }\n\n setModalEvents() {\n this.modal.addEventListener(\"click\", (e) => {\n if (e.target.closest(\".b-modal__wrapper\")) {\n return;\n }\n\n this.close(e);\n });\n\n this.closeBtn.addEventListener(\"click\", (e) => {\n e.stopPropagation();\n this.close(e);\n });\n\n document.addEventListener(\"modal-close\", (e) => {\n if (e.detail.id === this.id) {\n this.close();\n }\n });\n }\n\n setOtherEvents() {\n document.addEventListener(\"click\", (e) => {\n if (e.target.closest(`[aria-controls=\"${this.id}\"]`)) {\n if (!this.created) {\n this.create();\n }\n\n this.open(e);\n }\n });\n\n document.addEventListener(\"keyup\", (e) => {\n if (e.code === \"Escape\" && this.isOpen) {\n this.close(e);\n }\n });\n }\n\n open(e = null, callEvents = true) {\n this.currentEvent = e;\n\n if (callEvents) {\n const prevent = this.onBeforeOpen(this) === false;\n\n if (prevent) {\n this.currentEvent = null;\n return;\n }\n }\n\n this.modal.style.zIndex = this.modalOpenZIndex;\n lockBody();\n\n setTimeout(() => {\n this.modal.classList.add(this.modalOpenClass);\n this.isOpen = true;\n this.modal.setAttribute(\"aria-modal\", \"true\");\n\n if (callEvents) {\n this.onAfterOpen(this);\n }\n }, this.openTimeout);\n }\n\n close(e = null, callEvents = true) {\n this.currentEvent = e;\n\n if (callEvents) {\n this.onBeforeClose(this);\n }\n\n unlockBody();\n this.modal.classList.remove(this.modalOpenClass);\n this.isOpen = false;\n\n setTimeout(() => {\n this.modal.setAttribute(\"aria-modal\", \"false\");\n this.modal.style.zIndex = this.modalCloseZIndex;\n\n if (callEvents) {\n this.onAfterClose(this);\n }\n }, this.closeTimeout);\n }\n\n create() {\n this.onBeforeCreate(this);\n\n const modal = document.createElement(\"div\");\n\n modal.id = this.id;\n modal.classList.add(this.modalClass);\n this.modalClassAdditional && modal.classList.add(this.modalClassAdditional);\n modal.setAttribute(\"role\", \"dialog\");\n modal.setAttribute(\"aria-modal\", \"true\");\n\n const header = this.title\n ? `

${this.title}

`\n : \"\";\n\n modal.innerHTML = `\n\t\t\t
\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t${header}\n\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t`;\n\n document.body.append(modal);\n this.modal = modal;\n this.created = true;\n\n this.setModalElements();\n this.setModalEvents();\n this.onAfterCreate(this);\n }\n\n setTitle(_title) {\n const title = this.modal.querySelector(\".b-modal__header\");\n\n if (title) {\n title.textContent = _title;\n }\n\n this.title = _title;\n }\n}\n","export class Tabs {\n constructor(className, params = {}) {\n this.container = document.querySelector(`.${className}`);\n\n if (!this.container) return;\n\n this.nav = this.container.dataset.nav === \"1\";\n this.onSwitch = params.onSwitch ?? (() => {});\n\n this.initialTabId = params.initialTabId ?? null;\n this.activeTabId = this.initialTabId;\n\n this.buttonClass = params.buttonClass ?? `${className}__button`;\n this.buttonClassActive =\n params.buttonClassActive ?? `${this.buttonClass}--active`;\n\n this.contentClass = params.contentClass ?? `${className}__content`;\n this.contentClassActive =\n params.contentClassActive ?? `${this.contentClass}--active`;\n\n this.btnChildClass = params.btnChildClass ?? \"\";\n this.contentChildClass = params.contentChildClass ?? \"\";\n\n this.tabs = new Map();\n this.activeTab = null;\n\n this.container.addEventListener(\"click\", (e) => {\n const button = e.target.closest(`.${this.buttonClass}`);\n\n if (!button) return;\n\n const id = button.getAttribute(\"aria-controls\");\n\n this.switch(id);\n });\n\n this.setContentsMap();\n\n if (this.tabs.size > 0) {\n this.switch(this.getInitialTab(), false);\n }\n }\n\n getTabFromUrl() {\n const searchParams = new URLSearchParams(location.search);\n return searchParams.get(\"tab\");\n }\n\n getInitialTab() {\n return this.getTabFromUrl() || this.initialTabId || this.getFirstTabId();\n }\n\n getFirstTabId() {\n return Array.from(this.tabs.keys())[0];\n }\n\n changeUrlByTab(tabId) {\n const baseUrl = new URL(location.pathname, location.origin);\n const searchParams = new URLSearchParams(location.search);\n searchParams.set(\"tab\", tabId);\n\n history.pushState(null, null, `${baseUrl}?${searchParams}`);\n }\n\n switch(id, triggerEvent = true) {\n this.tabs.forEach((tab, key) => {\n if (id !== key) {\n tab.content.classList.remove(this.contentClassActive);\n tab.button.classList.remove(this.buttonClassActive);\n\n if (this.btnChildClass && typeof this.btnChildClass === \"string\") {\n tab.button.firstElementChild?.classList.remove(this.btnChildClass);\n }\n\n if (\n this.contentChildClass &&\n typeof this.contentChildClass === \"string\"\n ) {\n tab.content.firstElementChild?.classList.remove(\n this.contentChildClass,\n );\n }\n return;\n }\n\n this.activeTab = tab;\n this.activeTabId = id;\n tab.content.classList.add(this.contentClassActive);\n tab.button.classList.add(this.buttonClassActive);\n\n if (this.btnChildClass && typeof this.btnChildClass === \"string\") {\n tab.button.firstElementChild?.classList.add(this.btnChildClass);\n }\n\n if (\n this.contentChildClass &&\n typeof this.contentChildClass === \"string\"\n ) {\n tab.content.firstElementChild?.classList.add(this.contentChildClass);\n }\n });\n\n if (this.nav) {\n this.changeUrlByTab(id);\n }\n\n if (triggerEvent) {\n this.onSwitch(id, this);\n }\n }\n\n setContentsMap() {\n const buttons = this.container.querySelectorAll(`.${this.buttonClass}`);\n\n buttons.forEach((button) => {\n const id = button.getAttribute(\"aria-controls\");\n const content = document.getElementById(id);\n\n if (content) {\n this.tabs.set(id, {\n button,\n content,\n });\n }\n });\n }\n}\n","export const initAddToBasketButtons = (text = \"Перейти в корзину\", url = \"/cart/\") => {\n\tdocument.addEventListener('basket-item-add', (event) => {\n\t\tconst data = event?.detail?.body;\n\t\n\t\tif (data) {\n\t\t const createCartLink = () => {\n\t\t\tconst anchor = document.createElement('a');\n\t\t\tanchor.innerText = text;\n\t\t\tanchor.href = url;\n\t\t\tanchor.classList.add(\n\t\t\t \"b-button\",\n\t\t\t \"b-button--secondary\",\n\t\t\t \"b-button--slim\",\n\t\t\t \"b-button--full\",\n\t\t\t \"b-products-table__button\"\n\t\t\t);\n\t\t\treturn anchor;\n\t\t };\n\t\n\t\t const offerID = data.get('offerID');\n\t\n\t\t if (offerID) {\n\t\t\tconst button = document.querySelector(`button[data-offer-id=\"${offerID}\"]`);\n\t\t\t\n\t\t\tconst parent = button?.parentElement;\n\t\n\t\t\tif (parent) {\n\t\t\t parent.replaceChild(createCartLink(), button);\n\t\t\t}\n\t\t }\n\t\t}\n\t});\n};","import { modalFactory } from \"../common/modal\";\n\nexport const BASKET_ITEM_ADD_EVENT = \"basket-item-add\";\nexport const BASKET_ITEM_UPDATE_EVENT = \"basket-item-update\";\nexport const BASKET_ITEM_DELETE_EVENT = \"basket-item-delete\";\nexport const BASKET_PROPERTY_CHANGE_EVENT = \"basket-property-change\";\n\nexport const toBasketRequest = async (params) => {\n const response = await fetch(params.url, {\n method: \"POST\",\n body: params.body,\n });\n\n const result = await response.json();\n\n if (params.eventName) {\n document.dispatchEvent(\n new CustomEvent(params.eventName, {\n detail: {\n body: params.body,\n result,\n },\n }),\n );\n }\n\n return result;\n};\n\nexport const addToBasket = async (body) => {\n return toBasketRequest({\n url: \"/basket/add/\",\n body,\n eventName: BASKET_ITEM_ADD_EVENT,\n });\n};\n\nexport const updateToBasket = async (body) => {\n return toBasketRequest({\n url: \"/basket/update/\",\n body,\n eventName: BASKET_ITEM_UPDATE_EVENT,\n });\n};\n\nexport const deleteBasketItem = (body) => {\n return toBasketRequest({\n url: \"/basket/delete/\",\n body,\n eventName: BASKET_ITEM_DELETE_EVENT,\n });\n};\n\nexport const changeBasketProperties = (body) => {\n return toBasketRequest({\n url: \"/basket/property/\",\n body,\n eventName: BASKET_PROPERTY_CHANGE_EVENT,\n });\n};\n\nexport const initDeleteBasketItemModal = (_params = {}) => {\n let form = null;\n let item = null;\n let formMessageBlock = null;\n\n const params = Object.assign(\n {\n messages: {\n successAdd: \"Удаление товара\",\n description:\n \"Вы уверены, что хотите удалить этот товар из своей корзины?\",\n submit: \"Удалить\",\n cancel: \"Отменить\",\n title: \"Удалить товар в корзине\",\n },\n },\n _params,\n );\n\n const formSubmitHandler = () => {\n const body = new FormData(form);\n\n deleteBasketItem(body).then((result) => {\n if (!result.success) {\n formMessageBlock.innerHTML =\n \"
\" + result.errors.join(\"
\") + \"
\";\n return;\n }\n\n formMessageBlock.innerHTML = \"\";\n modal.close();\n });\n };\n\n const modal = modalFactory({\n id: \"product-delete-modal\",\n title: params.messages.title,\n onAfterCreate: (ctx) => {\n form = renderButtonsModal(item, params);\n ctx.content.append(form);\n\n form.addEventListener(\"submit\", (e) => {\n e.preventDefault();\n formSubmitHandler();\n });\n\n formMessageBlock = form.querySelector(\".b-basket-add-modal__message\");\n\n const cancelButton = form.querySelector(\n `[data-action=\"closeDeleteForm\"]`,\n );\n cancelButton.addEventListener(\"click\", () => modal.close());\n },\n onBeforeOpen: () => {\n document.getElementById(\"basket-item-delete-field\").value = item.offerId;\n },\n });\n\n document.addEventListener(\"click\", (e) => {\n const button = e.target.closest(\"button\");\n\n if (\n !button ||\n !button.dataset.deleteBasketItem ||\n !button.dataset.offerId\n ) {\n return;\n }\n\n item = button.dataset;\n\n modal.open();\n });\n\n return modal;\n};\n\nexport const initUpdateBasketItemModal = (_params = {}) => {\n let form = null;\n let item = null;\n let formMessageBlock = null;\n\n const params = Object.assign(\n {\n messages: {\n successAdd: \"Товар был добавлен в вашу корзину\",\n description:\n \"Фактическое количество может быть автоматически пересчитано с учётом количества товара в упаковке.\",\n submit: \"Обновить корзину\",\n title: \"Редактирование товара в корзине\",\n },\n disableSubmit: false,\n },\n _params,\n );\n\n const formSubmitHandler = () => {\n const body = new FormData(form);\n\n updateToBasket(body).then((result) => {\n if (!result.success) {\n formMessageBlock.innerHTML =\n \"
\" + result.errors.join(\"
\") + \"
\";\n return;\n }\n\n formMessageBlock.innerHTML = \"\";\n modal.close();\n });\n };\n\n const modal = modalFactory({\n id: \"product-update-modal\",\n title: params.messages.title,\n onAfterCreate: (ctx) => {\n form = renderItemForm(item, params);\n ctx.content.append(form);\n\n const submit = form.querySelector('button[type=\"submit\"]');\n const field = document.getElementById(\"product-modal-quantity\");\n\n field.addEventListener(\"input\", (e) => {\n submit.toggleAttribute(\"disabled\", e.target.value.length === 0);\n });\n\n form.addEventListener(\"submit\", (e) => {\n e.preventDefault();\n formSubmitHandler();\n });\n\n formMessageBlock = form.querySelector(\".b-basket-add-modal__message\");\n\n field.addEventListener('blur', () => {\n const rawValue = field.value;\n const ratio = field.dataset.ratio ?? 1;\n\n if (1 < ratio) {\n let actualQuantity = ratio * Math.ceil(rawValue / ratio);\n \n actualQuantity = Math.round(actualQuantity * 1000) / 1000;\n\n if (rawValue != actualQuantity) {\n field.value = actualQuantity;\n }\n }\n });\n },\n onBeforeOpen: () => {\n document.getElementById(\"product-modal-message\").innerText = \"\";\n document.getElementById(\"product-modal-price\").innerText =\n `Цена: ${item.price}`;\n document.getElementById(\"product-modal-packing\").innerText =\n item.packing || \"\";\n document.getElementById(\"product-modal-offerId\").value = item.offerId;\n const quantity = form?.querySelector('.b-input__field[name=\"quantity\"]');\n if (quantity && item['ratio']) {\n quantity.dataset.ratio = item['ratio'];\n }\n },\n });\n\n document.addEventListener(\"click\", (e) => {\n const button = e.target.closest(\"button\");\n\n if (!button || !button.dataset.editBasketItem || !button.dataset.offerId) {\n return;\n }\n\n item = button.dataset;\n\n modal.open();\n });\n\n return modal;\n};\n\nexport const initAddToBasketModal = (_params = {}) => {\n let form = null;\n let item = null;\n let formMessageBlock = null;\n\n const params = Object.assign(\n {\n messages: {\n successAdd: \"Товар был добавлен в вашу корзину\",\n description:\n \"Фактическое количество может быть автоматически пересчитано с учётом количества товара в упаковке.\",\n submit: \"Добавить в корзину\",\n title: \"Добавьте свой товар в корзину\",\n },\n disableSubmit: true,\n },\n _params,\n );\n\n const formSubmitHandler = () => {\n const body = new FormData(form);\n\n addToBasket(body).then((result) => {\n if (!result.success) {\n formMessageBlock.innerHTML =\n \"
\" + result.errors.join(\"
\") + \"
\";\n return;\n }\n\n formMessageBlock.innerHTML = `\n
\n
\n ${params.messages.successAdd}\n
\n
\n \n Продолжить покупки\n \n \n Перейти в корзину\n \n
\n
\n `;\n });\n };\n\n const modal = modalFactory({\n id: \"product-add-modal\",\n title: params.messages.title,\n onAfterCreate: (ctx) => {\n form = renderItemForm(item, params);\n ctx.content.append(form);\n\n const submit = form.querySelector('button[type=\"submit\"]');\n const field = document.getElementById(\"product-modal-quantity\");\n\n field.addEventListener(\"input\", (e) => {\n submit.toggleAttribute(\"disabled\", e.target.value.length === 0);\n });\n\n field.addEventListener('blur', () => {\n const rawValue = field.value;\n const ratio = field.dataset.ratio ?? 1;\n\n if (1 < ratio) {\n let actualQuantity = ratio * Math.ceil(rawValue / ratio);\n \n actualQuantity = Math.round(actualQuantity * 1000) / 1000;\n\n console.log(actualQuantity);\n \n if (rawValue != actualQuantity) {\n field.value = actualQuantity;\n }\n }\n });\n\n form.addEventListener(\"submit\", (e) => {\n e.preventDefault();\n formSubmitHandler();\n });\n\n formMessageBlock = form.querySelector(\".b-basket-add-modal__message\");\n },\n onBeforeOpen: () => {\n document.getElementById(\"product-modal-message\").innerText = \"\";\n document.getElementById(\"product-modal-price\").innerText =\n `Цена: ${item.price}`;\n document.getElementById(\"product-modal-packing\").innerText =\n item.packing || \"\";\n document.getElementById(\"product-modal-offerId\").value = item.offerId;\n const quantity = form?.querySelector('.b-input__field[name=\"quantity\"]');\n if (quantity && item['ratio']) {\n quantity.dataset.ratio = item['ratio'];\n console.log('update');\n }\n },\n });\n\n document.addEventListener('modal:close', () => {\n modal.close();\n });\n\n document.addEventListener(\"click\", (e) => {\n const button = e.target.closest(\"button\");\n\n if (!button || !button.dataset.addToBasket || !button.dataset.offerId) {\n return;\n }\n\n item = button.dataset;\n\n modal.open();\n });\n\n return modal;\n};\n\nfunction renderItemForm(item, params) {\n const form = document.createElement(\"form\");\n\n form.classList.add(\"b-basket-add-modal\");\n form.innerHTML = `\n\t\t${renderFormProductInfo(item)}\n\t\t${renderFormFields(item, params)}\n\t\t
\n\t`;\n\n return form;\n}\n\nfunction renderFormProductInfo(item) {\n return `\n\t\t
\n\t\t\t\"${item.title}\"\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t${item.title}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t${item.format}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tКод продукта: ${item.skuId}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tЦена: ${item.price}\n\t\t\t\t\n\t\t\t\t${item.packing}\n\t\t\t
\n\t\t
\n\t`;\n}\n\nfunction renderFormFields(item, params) {\n return `\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t${item.unit}\n\t\t\t
\n\t\t\t

\n\t\t\t\t${params.messages.description}\n\t\t\t

\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t`;\n}\n\nfunction renderButtonsModal(item, params) {\n const form = document.createElement(\"form\");\n\n form.classList.add(`b-basket-add-modal__body`);\n\n form.innerHTML = `\n\t\t\n\t\t

\n\t\t\t${params.messages.description}\n\t\t

\n\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t\t
\n\t`;\n\n return form;\n}\n","/**\n * Фиксирует страницу, так что бы нельзя было скролить.\n * @type {() => void}\n * @see unlockBody\n */\nexport const lockBody = () => {\n const scrollPosition = window.scrollY;\n\n document.body.dataset.scrollPosition = scrollPosition;\n document.body.dataset.lock = \"1\";\n\n Object.assign(document.body.style, {\n left: 0,\n position: \"fixed\",\n top: `-${scrollPosition}px`,\n paddingRight: \"var(--scroll-w, 0)\",\n });\n};\n\n/**\n * Убирает фиксирование страницы, сделанное с помощью хелпера lockBody\n * @type {() => void}\n * @see lockBody\n */\nexport const unlockBody = () => {\n const scrollPosition = parseInt(document.body.dataset.scrollPosition);\n\n document.body.dataset.lock = \"0\";\n\n document.body.removeAttribute(\"style\");\n\n window.scrollTo({\n left: 0,\n top: scrollPosition,\n behavior: \"instant\",\n });\n};\n\n/**\n * Получить cookie по имени\n *\n * @param name\n * @returns {string|null}\n * @type {(name: string) => string|null}\n */\nexport const getCookie = (name) => {\n const matches = document.cookie.match(\n new RegExp(\n \"(?:^|; )\" + name.replace(/([$?*|{}\\]\\\\^])/g, \"\\\\$1\") + \"=([^;]*)\",\n ),\n );\n\n return matches ? decodeURIComponent(matches[1]) : null;\n};\n\n/**\n * Установить cookie\n *\n * @param data\n * @type {(data: {age: string|int|null|undefined, path: string|null|undefined, name: string, value: string}) => void}\n */\nexport const setCookie = (data) => {\n if (!data.age) {\n data.age = \"2419200\"; // 4 недели\n }\n\n if (!data.path) {\n data.path = \"/\";\n }\n\n document.cookie = `${data.name}=${data.value}; max-age=${data.age}; path=${data.path};`;\n};\n\n/**\n * Декторатор для отложенного вызова функции полсе последнего вызова,\n * Функция выполняется только после времени, прошедшего с последнего вызова\n *\n * @param callback\n * @param time - время после вызова, через которое функция должна выполниться\n * @returns {(function(...[*]): void)|*}\n */\nexport const debounce = (callback, time) => {\n let timerID = 0;\n\n return function (...args) {\n clearTimeout(timerID);\n timerID = setTimeout(() => callback(...args), time);\n };\n};\n\n/**\n * Начинает загрузку файла по переаднной ссылке\n *\n * @param fileUrl\n * @type {(fileUrl: string) => void}\n */\nexport const downloadFile = (fileUrl) => {\n const a = document.createElement(\"a\");\n\n a.setAttribute(\"download\", \"\");\n a.href = fileUrl;\n a.click();\n};\n\nexport const array_chunk = (array, chunks) => {\n const res = [];\n\n for (let i = 0; i < array.length; i += chunks) {\n res.push(array.slice(i, i + chunks));\n }\n\n return res;\n};\n\nexport const scrollToTop = () => {\n window.scrollTo({\n top: 0,\n behavior: \"smooth\",\n });\n};\n","import { BaseModal } from \"../UI/modal\";\n\nexport const modalFactory = (\n _params,\n createImmediately = false,\n modalContainer = null,\n) => {\n let modal = null;\n let stage = null;\n\n let params = {\n modalClass: \"b-modal\",\n modalContainerClass: `b-modal__container`,\n modalOpenClass: `b-modal--open`,\n closeBtnClass: `b-modal__close`,\n contentClass: `b-modal__content`,\n needCreate: modalContainer === null,\n };\n\n Object.assign(params, _params);\n\n const create = () => {\n if (stage === 1) {\n return;\n }\n\n stage = 1;\n modal = new BaseModal(modalContainer, params);\n\n if (!modalContainer) {\n modal.create();\n }\n };\n\n const open = () => {\n if (!modal) {\n create();\n }\n\n modal.open();\n };\n\n const close = () => {\n if (!modal) {\n create();\n }\n\n modal.close();\n };\n\n const get = () => {\n return modal;\n };\n\n const getContent = () => {\n return modal.content;\n };\n\n if (createImmediately) {\n create();\n }\n\n return { get, getContent, open, close, create };\n};\n","export class AjaxFilter {\n constructor(params) {\n this.form = params.form;\n this.updateUrl = params.updateUrl ?? true;\n this.method = params.method ?? (this.form.method?.toUpperCase() || \"GET\");\n\n this.baseUrl = new URL(\n params.baseUrl ?? (this.form.action || window.location.pathname),\n window.location.origin,\n );\n\n this.onBeforeFilterFetch = params.onBeforeFilterFetch ?? (() => {});\n this.onAfterFilterFetch = params.onAfterFilterFetch ?? (() => {});\n\n this.filter = this.filter.bind(this);\n this.clear = this.clear.bind(this);\n\n this.setEvents();\n }\n\n setEvents() {\n this.form.addEventListener(\"change\", this.filter);\n document.addEventListener(\"clear-filter\", this.clear);\n }\n\n async filter() {\n const url = this.makeUrl();\n\n this.fetch(url);\n }\n\n async clear() {\n this.fetch(this.baseUrl);\n }\n\n async fetch(url) {\n this.onBeforeFilterFetch(url, this);\n this.dispatchEvent(\"before-filter-fetch\", { url });\n\n const data = await this.getHtml(url);\n\n if (this.updateUrl) {\n url.searchParams.delete(\"ajax\");\n history.pushState(null, null, url);\n }\n\n this.onAfterFilterFetch(data, url, this);\n this.dispatchEvent(\"after-filter-fetch\", data);\n }\n\n makeUrl() {\n if (this.method === \"GET\") {\n return this.makeUrlForGet();\n }\n }\n\n makeUrlForGet() {\n const values = [...this.getSelectsValues(), ...this.getInputValues()];\n\n const urlParams = new URLSearchParams(window.location.search);\n\n values.forEach((value) => {\n urlParams.set(value.name, value.value);\n });\n\n urlParams.set(\"ajax\", \"Y\");\n\n return new URL(\n `${window.location.pathname}?${urlParams}`,\n window.location.origin,\n );\n }\n\n getInputValues() {\n return [...this.form.querySelectorAll(\"input\")].map((input) => {\n return {\n name: input.name,\n value: input.value,\n };\n });\n }\n\n getSelectsValues() {\n return [...this.form.querySelectorAll(\"select\")].map((select) => ({\n name: select.name,\n value: select.value,\n }));\n }\n\n async getHtml(url) {\n const el = document.createElement(\"div\");\n\n const res = await fetch(url);\n el.innerHTML = await res.text();\n\n return el;\n }\n\n dispatchEvent(name, data) {\n document.dispatchEvent(\n new CustomEvent(name, {\n detail: {\n data,\n ctx: this,\n },\n }),\n );\n }\n}\n","export function initMobilePopup(block, className) {\n const filterWrapper = block.querySelector(`.${className}__wrapper`);\n const filterShowButton = block.querySelector(`.${className}__open`);\n const filterHideButton = block.querySelector(`.${className}__close`);\n const filterAcceptButton = block.querySelector(\".b-button--filter-accept\");\n const filterClearButton = block.querySelector(\".b-button--filter-clear\");\n\n /**\n * Медиа запрос на мобильный формат фильтра\n * \n * @var {MediaQueryList}\n */\n const breakpoint = window.matchMedia('(width < 1024px)');\n\n /**\n * Правки скачков анимаций, возникающих из-за не совсем правильных анимаций\n * \n * @return {void}\n */\n const manageAnimation = () => {\n if (!filterWrapper) {\n return;\n }\n\n if (breakpoint.matches) {\n filterWrapper.classList.add('inited');\n return;\n }\n\n filterWrapper.classList.remove('inited');\n };\n\n const showFilter = () => {\n filterWrapper.classList.add(\"show\");\n };\n\n const hideFilter = () => {\n filterWrapper.classList.remove(\"show\");\n };\n\n filterShowButton.addEventListener(\"click\", showFilter);\n filterHideButton.addEventListener(\"click\", hideFilter);\n filterAcceptButton.addEventListener(\"click\", hideFilter);\n filterClearButton.addEventListener(\"click\", () => {\n hideFilter();\n document.dispatchEvent(new CustomEvent(\"clear-filter\"));\n });\n\n window.addEventListener('resize', manageAnimation);\n manageAnimation();\n}\n","/* globals ymaps */\n\nexport class YMap {\n constructor(id, items, params = {}) {\n this.id = id;\n this.items = items;\n\n this.detailInfoUrl = new URL(params.detailInfoUrl, window.location.origin);\n this.popup = params.popup;\n\n this.initialZoom = params.initialZoom ?? 7;\n this.initialCoords = params.initialCoords ?? [55.7483068, 37.624025];\n this.detailZoom = params.detailZoom ?? 17;\n this.maxZoom = params.maxZoom ?? 19;\n\n this.placeMarkOptions = params.placeMarkOptions ?? {\n iconLayout: \"default#pieChart\",\n iconPieChartRadius: 16,\n iconPieChartCoreRadius: 12,\n iconPieChartCoreFillStyle: \"#ffffff\",\n iconPieChartStrokeWidth: 0,\n };\n\n this.clusterOptions = params.clusterOptions ?? {\n preset: \"islands#nightClusterIcons\",\n hasHint: false,\n maxZoom: 14,\n minClusterSize: 2,\n showInAlphabeticalOrder: false,\n hideIconOnBalloonOpen: false,\n openHintOnHover: false,\n clusterOpenBalloonOnClick: false,\n gridSize: 80,\n };\n\n this.afterInit = params.afterInit ?? (() => {});\n this.pointClickEvent = params.pointClickEvent ?? (() => {});\n\n this.mapElement = document.getElementById(this.id);\n this.map = null;\n this.cluster = null;\n this.prevPoint = null;\n this.points = [];\n\n ymaps.ready(() => {\n this.init();\n });\n }\n\n init() {\n this.map = new ymaps.Map(\n this.mapElement,\n {\n center: this.initialCoords,\n zoom: this.initialZoom,\n controls: [\"zoomControl\"],\n },\n {\n maxZoom: this.maxZoom,\n },\n );\n\n if (this.items.length) {\n this.showMarks();\n }\n\n this.afterInit(this);\n }\n\n setItems(items) {\n this.items = items;\n }\n\n showMarks() {\n this.createPoints();\n this.createCluster();\n this.setClusterToMap();\n }\n\n createPoints() {\n this.points = this.items.map((point) => this.createMarkByPoint(point));\n }\n\n createCluster() {\n this.cluster = new ymaps.Clusterer(this.clusterOptions);\n\n if (this.points.length) {\n this.cluster.add(this.points);\n }\n }\n\n setClusterToMap() {\n this.map.geoObjects.removeAll();\n\n if (this.points.length) {\n this.map.geoObjects.add(this.cluster);\n this.map.setBounds(this.cluster.getBounds());\n }\n }\n\n createMarkByPoint(point) {\n const mapPoint = new ymaps.Placemark(\n point.coords,\n {\n id: point.id,\n data: [{ weight: 1, color: \"#003057\" }],\n params: point.params,\n },\n this.placeMarkOptions,\n );\n\n mapPoint.events.add([\"click\"], (e) => {\n this.pointClickEvent(e, this);\n });\n\n return mapPoint;\n }\n\n getPointById(id) {\n return this.points.find((p) => p.properties._data.id === id);\n }\n\n zoomToPoint(point) {\n if (!point) return;\n\n this.map\n .panTo(point.geometry.getCoordinates(), {\n duration: 300,\n useMapMargin: false,\n timingFunction: \"ease-out\",\n checkZoomrange: true,\n })\n .then(() => {\n this.setZoom(this.detailZoom);\n point.events.fire(\"click\");\n });\n }\n\n setZoom(zoom) {\n this.map.setZoom(zoom);\n }\n}\n","export class DetailPopup {\n constructor() {\n this.popup = document.getElementById(\"shops-map-detail\");\n this.distance = document.getElementById(\"shop-distance\");\n this.name = document.getElementById(\"shop-name\");\n this.address = document.getElementById(\"shop-address\");\n this.workTime = document.getElementById(\"shop-work-time\");\n this.rating = document.getElementById(\"shop-rating\");\n this.delivery = document.getElementById(\"shop-delivery\");\n this.price = document.getElementById(\"shop-price\");\n this.button = document.getElementById(\"shop-basket-add\");\n this.link = document.getElementById(\"shop-url\");\n\n this.isOpen = false;\n this.setEvents();\n }\n\n setEvents() {\n document.addEventListener(\"click\", (e) => {\n if (\n !e.target.closest(`.b-shops-map__popup`) &&\n !e.target.closest(\".b-shops-map__map\")\n ) {\n this.hide();\n }\n });\n\n document.addEventListener(\"keyup\", (e) => {\n if (e.code === \"Escape\") {\n this.hide();\n }\n });\n\n this.popup\n .querySelector(\".b-shops-map__close\")\n .addEventListener(\"click\", () => {\n this.hide();\n });\n }\n\n setDataAndShow(data) {\n this.setData(data);\n this.show();\n }\n\n show() {\n this.popup.classList.add(\"show\");\n this.isOpen = true;\n }\n\n hide() {\n this.popup.classList.remove(\"show\");\n this.isOpen = false;\n }\n\n setData(data) {\n this.distance.innerHTML = data.distance || \"\";\n this.name.innerHTML = data.name || \"\";\n this.address.innerHTML = data.address || \"\";\n this.workTime.innerHTML = data.workTime || \"\";\n this.delivery.innerHTML = data.delivery || \"\";\n this.price.innerHTML = data.price || \"\";\n this.rating.innerHTML = data.rating || \"\";\n\n this.link.href = data.url || \"\";\n\n if (this.button) {\n this.button.dataset.offerId = data.offerId;\n this.button.dataset.price = data.price;\n this.button.dataset.packing = data.packing;\n }\n }\n}\n","const coof = Math.PI / 180;\n\nexport const degToRad = (deg) => {\n\treturn deg * coof;\n};","const coof = 180 / Math.PI;\n\nexport const radToDeg = (rad) => {\n\treturn rad * coof;\n};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// Blocks\nimport \"block/catalog/shops-page/shops-page.scss\";\nimport \"block/catalog/shops-page-tabs/shops-page-tabs\";\nimport \"block/catalog/shops-page-tabs/shops-page-tabs.scss\";\nimport \"block/catalog/shops-table/shops-table\";\nimport \"block/catalog/shops-table/shops-table.scss\";\nimport \"block/catalog/shops-map/shops-map\";\nimport \"block/catalog/shops-map/shops-map.scss\";\nimport \"block/basket/basket-add-modal/basket-add-modal.scss\";\n\n//Filter\nimport \"block/filters/shops-filters/shops-filters\";\nimport \"block/filters/shops-filters/shops-filters.scss\";\n\n// Shared\nimport \"block/shared/rating/rating.scss\";\n"],"names":["YMap","DetailPopup","window","addEventListener","mainMapId","mapElement","document","getElementById","tableBlock","querySelector","coords","JSON","parse","dataset","detailPopup","getPoints","pointIds","querySelectorAll","selector","map","block","offerId","storeMode","url","URL","location","origin","fetchParams","length","searchParams","URLSearchParams","set","join","console","log","method","body","toString","headers","latitude","longitude","fetch","then","r","json","response","filter","item","id","row","distance","name","address","workTime","delivery","price","rating","button","coordinates","lat","lng","params","originalItem","textContent","replace","href","innerHTML","initialCoords","initialZoom","zoom","afterInit","ctx","items","setItems","showMarks","pointClickEvent","e","setDataAndShow","originalEvent","target","properties","_data","detail","tabs","activeTabId","setZoom","Tabs","className","btnChildClass","contentChildClass","onSwitch","dispatchEvent","CustomEvent","initAddToBasketButtons","initAddToBasketModal","degToRad","radToDeg","setItemsCount","initProductModal","initDistance","rows","navigator","geolocation","getCurrentPosition","position","formatOutput","number","Intl","NumberFormat","maximumFractionDigits","format","calculateDistance","storeCoord","userCoord","unitRaw","statuteMileNauticalMileCof","minutesInDegree","kmMileCoof","feetMileCoof","yardsFeetCoof","mKmCoof","theta","long","miles","Math","acos","sin","cos","userLat","userLong","forEach","distanceElement","distanceLabel","distanceUnitRaw","distanceUnit","classList","contains","innerText","add","countBlock","header","AjaxFilter","initMobilePopup","initFilter","itemContainerClass","form","itemsContainer","updateTable","itemsHtml","updateCountBlock","data","selects","updateUrl","onAfterFilterFetch","tableItems","lockBody","unlockBody","BaseModal","constructor","modal","modalClass","modalContainerClass","modalOpenClass","closeBtnClass","contentClass","modalClassAdditional","modalCloseZIndex","modalOpenZIndex","title","openTimeout","closeTimeout","needCreate","onBeforeOpen","onBeforeClose","onBeforeCreate","onAfterOpen","onAfterClose","onAfterCreate","isOpen","created","currentEvent","close","bind","setModalElements","setEvents","closeBtn","content","setModalEvents","setOtherEvents","closest","stopPropagation","create","open","code","callEvents","prevent","style","zIndex","setTimeout","setAttribute","remove","createElement","append","setTitle","_title","container","nav","initialTabId","buttonClass","buttonClassActive","contentClassActive","Map","activeTab","getAttribute","switch","setContentsMap","size","getInitialTab","getTabFromUrl","search","get","getFirstTabId","Array","from","keys","changeUrlByTab","tabId","baseUrl","pathname","history","pushState","triggerEvent","tab","key","firstElementChild","buttons","text","event","createCartLink","anchor","offerID","parent","parentElement","replaceChild","modalFactory","BASKET_ITEM_ADD_EVENT","BASKET_ITEM_UPDATE_EVENT","BASKET_ITEM_DELETE_EVENT","BASKET_PROPERTY_CHANGE_EVENT","toBasketRequest","result","eventName","addToBasket","updateToBasket","deleteBasketItem","changeBasketProperties","initDeleteBasketItemModal","_params","formMessageBlock","Object","assign","messages","successAdd","description","submit","cancel","formSubmitHandler","FormData","success","errors","renderButtonsModal","preventDefault","cancelButton","value","initUpdateBasketItemModal","disableSubmit","renderItemForm","field","toggleAttribute","rawValue","ratio","actualQuantity","ceil","round","packing","quantity","editBasketItem","renderFormProductInfo","renderFormFields","image","skuId","unit","scrollPosition","scrollY","lock","left","top","paddingRight","parseInt","removeAttribute","scrollTo","behavior","getCookie","matches","cookie","match","RegExp","decodeURIComponent","setCookie","age","path","debounce","callback","time","timerID","args","clearTimeout","downloadFile","fileUrl","a","click","array_chunk","array","chunks","res","i","push","slice","scrollToTop","createImmediately","modalContainer","stage","getContent","toUpperCase","action","onBeforeFilterFetch","clear","makeUrl","getHtml","delete","makeUrlForGet","values","getSelectsValues","getInputValues","urlParams","input","select","el","filterWrapper","filterShowButton","filterHideButton","filterAcceptButton","filterClearButton","breakpoint","matchMedia","manageAnimation","showFilter","hideFilter","detailInfoUrl","popup","detailZoom","maxZoom","placeMarkOptions","iconLayout","iconPieChartRadius","iconPieChartCoreRadius","iconPieChartCoreFillStyle","iconPieChartStrokeWidth","clusterOptions","preset","hasHint","minClusterSize","showInAlphabeticalOrder","hideIconOnBalloonOpen","openHintOnHover","clusterOpenBalloonOnClick","gridSize","cluster","prevPoint","points","ymaps","ready","init","center","controls","createPoints","createCluster","setClusterToMap","point","createMarkByPoint","Clusterer","geoObjects","removeAll","setBounds","getBounds","mapPoint","Placemark","weight","color","events","getPointById","find","p","zoomToPoint","panTo","geometry","getCoordinates","duration","useMapMargin","timingFunction","checkZoomrange","fire","link","hide","setData","show","coof","PI","deg","rad"],"sourceRoot":""}