/
webdev
/
newOzone
Обзор
Документация
Войти
/
webdev
/
newOzone
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
dist/main.js
196 строк
38 KB
EvgenyBAyandin
update project, deleted debounceh function, added cart function
14 авг 2023, 23:07
14 авг 2023, 23:07
0e60143
Код
Авторство
О чём код?
/* * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ /******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ({ /***/ "./node_modules/simple-notify/dist/simple-notify.es.js": /*!*************************************************************!*\ !*** ./node_modules/simple-notify/dist/simple-notify.es.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Notify)\n/* harmony expor … [Строка слишком длинная. Вы можете скачать файл] /***/ }), /***/ "./src/index.js": /*!**********************!*\ !*** ./src/index.js ***! \**********************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _modules_cart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modules/cart */ \"./src/modules/cart.js\");\n/* harmony import */ var _modules_load__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modules/load */ \"./src/modules/load.js\");\n/* harmony import */ var _modules_search__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/search */ \"./src/modules/search.js\");\n/* harmony import */ var _modules_catalog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/catalog */ \"./src/modules/catalog.js\");\n/* harmony import */ var _modules_filter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/filter */ \"./src/modules/filter.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n(0,_modules_cart__WEBPACK_IMPORTED_MODULE_0__[\"default\"])()\r\n;(0,_modules_load__WEBPACK_IMPORTED_MODULE_1__[\"default\"])()\r\n;(0,_modules_search__WEBPACK_IMPORTED_MODULE_2__[\"default\"])()\r\n;(0,_modules_catalog__WEBPACK_IMPORTED_MODULE_3__[\"default\"])()\r\n;(0,_modules_filter__WEBPACK_IMPORTED_MODULE_4__[\"default\"])()\n\n//# sourceURL=webpack://myozonjs/./src/index.js?"); /***/ }), /***/ "./src/modules/cart.js": /*!*****************************!*\ !*** ./src/modules/cart.js ***! \*****************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _renderCart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./renderCart */ \"./src/modules/renderCart.js\");\n/* harmony import */ var _postData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./postData */ \"./src/modules/postData.js\");\n\r\n\r\n\r\nconst cart = () => {\r\n\tconst cartBtn = document.getElementById('cart')\r\n\tconst cartModal = document.querySelector('.cart')\r\n\tconst cartCloseBtn = cartModal.querySelector('.cart-close')\r\n\tconst cartTotal = cartModal.querySelector('.cart-total > span')\r\n\tconst cartSendBtn = cartModal.querySelector('.cart-confirm')\r\n\tconst goodsWrapper = document.querySelector('.goods')\r\n\tconst cartWrapper = document.querySelector('.cart-wrapper')\r\n\t\r\n\tconst openCart = () => {\r\n\t\tconst cart = localStorage.getItem('cart') ? JSON.parse(localStorage.getItem('cart')) : []\r\n\r\n\t\tcartModal.style.display = 'flex'\r\n\r\n\t\t;(0,_renderCart__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(cart)\r\n\t\tcartTotal.textContent = cart.reduce((sum, goodItem) => {\r\n\t\t\treturn sum + goodItem.price\r\n\t\t}, 0)\r\n\t}\r\n\r\n\tconst closeCart = () => {\r\n\t\tcartModal.style.display = ''\r\n\t}\r\n\tcartBtn.addEventListener('click', openCart)\r\n\tcartCloseBtn.onclick = closeCart\r\n\r\n\tgoodsWrapper.addEventListener('click', (event) => {\r\n\t\tif (event.target.classList.contains('btn-primary')) {\r\n\t\t\tconst card = event.target.closest('.card')\r\n\t\t\tconst key = card.dataset.key\r\n\t\t\tconst goods = JSON.parse(localStorage.getItem('goods'))\r\n\t\t\tconst cart = localStorage.getItem('cart') ? JSON.parse(localStorage.getItem('cart')) : []\r\n\t\t\tconst goodItem = goods.find((item) => {\r\n\t\t\t\treturn item.id === +key\r\n\t\t\t})\r\n\r\n\t\t\tcart.push(goodItem)\r\n\r\n\t\t\tlocalStorage.setItem('cart', JSON.stringify(cart))\r\n\r\n\t\t}\r\n\t})\r\n\r\n\t\tcartWrapper.addEventListener('click', (event) => {\r\n\t\t\tif (event.target.classList.contains('btn-primary')) {\r\n\t\t\t\tconst cart = localStorage.getItem('cart') ? JSON.parse(localStorage.getItem('cart')) : []\r\n\r\n\t\t\t\tconst card = event.target.closest('.card')\r\n\t\t\t\tconst key = card.dataset.key\r\n\t\t\t\tconst index = cart.findIndex((item) => {\r\n\t\t\t\t\treturn item.id === +key\t\t\t\t\t\r\n\t\t\t\t})\r\n\t\t\t\t\r\n\t\t\t\tcart.splice(index, 1);\r\n\t\t\t\t\r\n\t\t\t\tlocalStorage.setItem('cart', JSON.stringify(cart))\r\n\r\n\t\t\t\t;(0,_renderCart__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(cart)\r\n\t\t\t\tcartTotal.textContent = cart.reduce((sum, goodItem) => {\r\n\t\t\t\t\treturn sum + goodItem.price\r\n\t\t\t\t}, 0)\r\n\t\t\t}\r\n\t\t})\r\n\t\tcartSendBtn.addEventListener('click', () => {\r\n\t\t\tconst cart = localStorage.getItem('cart') ? JSON.parse(localStorage.getItem('cart')) : []\r\n\r\n\t\t\t;(0,_postData__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(cart).then(() => {\r\n\t\t\t\tlocalStorage.removeItem('cart')\r\n\t\t\t\t\r\n\t\t\t\t;(0,_renderCart__WEBPACK_IMPORTED_MODULE_0__[\"default\"])([])\r\n\r\n\t\t\t\tcartTotal.textContent = 0\r\n\t\t\t})\r\n\t\t})\r\n}\r\n\r\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (cart);\n\n//# sourceURL=webpack://myozonjs/./src/modules/cart.js?"); /***/ }), /***/ "./src/modules/catalog.js": /*!********************************!*\ !*** ./src/modules/catalog.js ***! \********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _getData__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getData */ \"./src/modules/getData.js\");\n/* harmony import */ var _renderGoods__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./renderGoods */ \"./src/modules/renderGoods.js\");\n/* harmony import */ var _filters__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./filters */ \"./src/modules/filters.js\");\n\r\n\r\n\r\n\r\nconst catalog = () => {\r\n\r\n\tconst btnCatalog = document.querySelector('.catalog-button > button')\r\n\tconst catalogModal = document.querySelector('.catalog')\r\n\tconst catalogModalItems = document.querySelectorAll('.catalog li')\r\n\r\n\t// скрываем вкладку каталог после открытия по повторному клику\r\n\tlet isOpen = false\r\n\r\n\tbtnCatalog.addEventListener('click', () => {\r\n\t\tisOpen = !isOpen\r\n\r\n\t\tif (isOpen) {\r\n\t\t\tcatalogModal.style.display = 'block'\r\n\t\t} else {\r\n\t\t\tcatalogModal.style.display = ''\r\n\t\t}\r\n\t})\r\n\r\n\tcatalogModalItems.forEach(item => {\r\n\t\titem.addEventListener('click', () => {\r\n\t\t\tconst text = item.textContent\r\n\t\t\t;(0,_getData__WEBPACK_IMPORTED_MODULE_0__[\"default\"])().then((data) => {\r\n\t\t\t\t;(0,_renderGoods__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_filters__WEBPACK_IMPORTED_MODULE_2__.categoryFilter)(data, text));\r\n\t\t\t})\r\n\t\t})\r\n\t})\r\n}\r\n\r\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (catalog);\n\n//# sourceURL=webpack://myozonjs/./src/modules/catalog.js?"); /***/ }), /***/ "./src/modules/filter.js": /*!*******************************!*\ !*** ./src/modules/filter.js ***! \*******************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _getData__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getData */ \"./src/modules/getData.js\");\n/* harmony import */ var _renderGoods__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./renderGoods */ \"./src/modules/renderGoods.js\");\n/* harmony import */ var _filters__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./filters */ \"./src/modules/filters.js\");\n\r\n\r\n\r\n\r\nconst filter = () => {\r\n\tconst minImput = document.getElementById('min')\r\n\tconst maxImput = document.getElementById('max')\r\n\tconst checkboxInput = document.getElementById('discount-checkbox')\r\n\tconst checkboxSpan = document.querySelector('.filter-check-checkmark')\r\n\r\n\tminImput.addEventListener('input', () => {\r\n\t\t;(0,_getData__WEBPACK_IMPORTED_MODULE_0__[\"default\"])().then((data) => {\r\n\t\t\t;(0,_renderGoods__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_filters__WEBPACK_IMPORTED_MODULE_2__.priceFilter)((0,_filters__WEBPACK_IMPORTED_MODULE_2__.hotSaleFilter)(data, checkboxInput.checked), minImput.value, maxImput.value));\r\n\t\t})\r\n\t})\r\n\r\n\tmaxImput.addEventListener('input', () => {\r\n\t\t;(0,_getData__WEBPACK_IMPORTED_MODULE_0__[\"default\"])().then((data) => {\r\n\t\t\t;(0,_renderGoods__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_filters__WEBPACK_IMPORTED_MODULE_2__.priceFilter)((0,_filters__WEBPACK_IMPORTED_MODULE_2__.hotSaleFilter)(data, checkboxInput.checked), minImput.value, maxImput.value));\r\n\t\t})\r\n\t})\r\n\r\n\tcheckboxInput.addEventListener('change', () => {\r\n\t\tif (checkboxInput.checked) {\r\n\t\t\tcheckboxSpan.classList.add('checked')\r\n\t\t} else {\r\n\t\t\tcheckboxSpan.classList.remove('checked')\r\n\t\t}\r\n\r\n\t\t(0,_getData__WEBPACK_IMPORTED_MODULE_0__[\"default\"])().then((data) => {\r\n\t\t\t(0,_renderGoods__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_filters__WEBPACK_IMPORTED_MODULE_2__.priceFilter)((0,_filters__WEBPACK_IMPORTED_MODULE_2__.hotSaleFilter)(data, checkboxInput.checked), minImput.value, maxImput.value))\r\n\t\t})\r\n\t})\r\n}\r\n\r\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (filter);\n\n//# sourceURL=webpack://myozonjs/./src/modules/filter.js?"); /***/ }), /***/ "./src/modules/filters.js": /*!********************************!*\ !*** ./src/modules/filters.js ***! \********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ categoryFilter: () => (/* binding */ categoryFilter),\n/* harmony export */ hotSaleFilter: () => (/* binding */ hotSaleFilter),\n/* harmony export */ priceFilter: () => (/* binding */ priceFilter),\n/* harmony export */ searchFilter: () => (/* binding */ searchFilter)\n/* harmony export */ });\nconst searchFilter = (goods, value) => {\r\n\treturn goods.filter((goodsItem) => {\r\n\t\tgoodsItem.title.toLowerCase().includes(value.toLowerCase())\r\n\t});\r\n}\r\n\r\nconst categoryFilter = (goods, value) => {\r\n\treturn goods.filter((goodsItem) => {\r\n\t\treturn goodsItem.category === value\r\n\t})\r\n}\r\n\r\nconst priceFilter = (goods, min, max) => {\r\n\treturn goods.filter((goodsItem) => {\r\n\t\tif (min === '' && max === '') {\r\n\t\t\treturn goodsItem\r\n\t\t} else if (min !== '' && max !== '') {\r\n\t\t\treturn goodsItem.price > +min && goodsItem.price < +max\r\n\t\t} else if (min !== '' && max === '') {\r\n\t\t\treturn goodsItem.price > +min\r\n\t\t} else if (min === '' && max !== '') {\r\n\t\t\treturn goodsItem.price < +max\r\n\t\t}\r\n\t})\r\n}\r\n\r\nconst hotSaleFilter = (goods, value) => {\r\n\treturn goods.filter((goodsItem) => {\r\n\t\tif (value) {\r\n\t\t\treturn goodsItem.sale === true\r\n\t\t} else {\r\n\t\t\treturn goodsItem\r\n\t\t}\r\n\t})\r\n}\r\n\r\n\r\n\r\n// один из вариантов реализации фильтра и поиска\r\n// export const funcFilter = (goods, minValue, maxValue, checkValue, searchValue) => {\r\n// \treturn goods.filter((goodsItem) => {\r\n// \t\tconst isMin = minValue.trim() ? goodsItem.price >= parseInt(minValue.trim()) : true\r\n// \t\tconst isMax = maxValue.trim() ? goodsItem.price <= parseInt(maxValue.trim()) : true\r\n// \t\tconst isSale = checkValue ? goodsItem.sale : true\r\n\r\n// \t\treturn isMin &&\r\n// \t\t\tisMax &&\r\n// \t\t\tisSale &&\r\n// \t\t\tgoodsItem.title.toLowerCase().includes(searchValue.toLowerCase())\r\n// \t})\r\n// }\r\n\r\n// items change on goodsItem \r\n// export const searchFilter = (items, value) => {\r\n// \treturn items.filter((item) => item.title.toLowerCase().includes(value.toLowerCase()));\r\n// }\n\n//# sourceURL=webpack://myozonjs/./src/modules/filters.js?"); /***/ }), /***/ "./src/modules/getData.js": /*!********************************!*\ !*** ./src/modules/getData.js ***! \********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var simple_notify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! simple-notify */ \"./node_modules/simple-notify/dist/simple-notify.es.js\");\n\r\n\r\nconst getData = (str) => {\r\n\r\n\t//проверяем \"есть ли?\" параметр в запросе и добавляем его, иначе не добавляем \r\n\t//return fetch(`https://myozone-75ea9-default-rtdb.firebaseio.com/goods.json?${str ? `search${str}` : ''}`)\r\n\treturn fetch(`https://myozone-75ea9-default-rtdb.firebaseio.com/goods.json`)\r\n\t\t.then((response) => {\r\n\r\n\t\t\tif (response.ok) {\r\n\t\t\t\treturn response.json()\r\n\t\t\t} else {\r\n\t\t\t\tthrow new Error('Ошибка выполнения запроса к БД!')\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(error => {\r\n\t\t\tnew simple_notify__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({\r\n\t\t\t\tstatus: 'error',\r\n\t\t\t\ttitle: 'Ошибка!',\r\n\t\t\t\ttext: error.message,\r\n\t\t\t\teffect: 'slide',\r\n\t\t\t\ttype: 3,\r\n\t\t\t\tautoclose: true\r\n\t\t\t})\r\n\t\t})\r\n}\r\n\r\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getData);\n\n//# sourceURL=webpack://myozonjs/./src/modules/getData.js?"); /***/ }), /***/ "./src/modules/load.js": /*!*****************************!*\ !*** ./src/modules/load.js ***! \*****************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _getData__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getData */ \"./src/modules/getData.js\");\n/* harmony import */ var _renderGoods__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./renderGoods */ \"./src/modules/renderGoods.js\");\n\r\n\r\n\r\nconst load = () => {\r\n\t(0,_getData__WEBPACK_IMPORTED_MODULE_0__[\"default\"])().then((data) => {\r\n\t\t(0,_renderGoods__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(data);\r\n\t})\r\n}\r\n\r\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (load);\n\n//# sourceURL=webpack://myozonjs/./src/modules/load.js?"); /***/ }), /***/ "./src/modules/postData.js": /*!*********************************!*\ !*** ./src/modules/postData.js ***! \*********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst postData = (cart) => {\r\n\treturn fetch('https://jsonplaceholder.typicode.com/posts', {\r\n\t\tmethod: 'POST',\r\n\t\tbody: JSON.stringify(cart),\r\n\t\theaders: {\r\n\t\t\t'Content-type': 'application/json; charset=UTF-8',\r\n\t\t},\r\n\t})\r\n\t\t.then(res => res.json())\r\n}\r\n\r\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (postData);\n\n//# sourceURL=webpack://myozonjs/./src/modules/postData.js?"); /***/ }), /***/ "./src/modules/renderCart.js": /*!***********************************!*\ !*** ./src/modules/renderCart.js ***! \***********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst renderCart = (goods) => {\r\n\r\n\tconst cartWrapper = document.querySelector('.cart-wrapper');\r\n\r\n\tcartWrapper.innerHTML = ''\r\n\r\n\tif (goods.lenght === 0) {\r\n\t\tcartWrapper.insertAdjacentHTML('beforeend', `\r\n\t\t\t\t<div id=\"cart-empty\">\r\n\t\t\t\t\tВаша корзина пуста\r\n\t\t\t\t</div>\r\n\t\t`)\r\n\t} else {\r\n\t\tgoods.forEach((goodsItem) => {\r\n\t\t\tcartWrapper.insertAdjacentHTML(\"beforeend\",\r\n\t\t\t\t`\r\n\t\t\t\t\t<div class=\"card\" data-key=\"${goodsItem.id}\">\r\n\t\t\t\t\t\t${goodsItem.sale ? '<div class=\"card-sale\">🔥 Hot Sale 🔥</div>' : ''}\r\n\t\t\t\t\t\t<div class=\"card-img-wrapper\">\r\n\t\t\t\t\t\t\t<span class=\"card-img-top\"\r\n\t\t\t\t\t\t\t\tstyle=\"background-image: url('${goodsItem.img}')\"></span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"card-body justify-content-between\">\r\n\t\t\t\t\t\t\t<div class=\"card-price\">${goodsItem.price} руб.</div>\r\n\t\t\t\t\t\t\t<h5 class=\"card-title\">${goodsItem.title}</h5>\r\n\t\t\t\t\t\t\t<button class=\"btn btn-primary\">Удалить</button>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t`\r\n\t\t\t);\r\n\t\t})\r\n\t}\r\n}\r\n\r\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (renderCart);\n\n//# sourceURL=webpack://myozonjs/./src/modules/renderCart.js?"); /***/ }), /***/ "./src/modules/renderGoods.js": /*!************************************!*\ !*** ./src/modules/renderGoods.js ***! \************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst renderGoods = (goods) => {\r\n\r\n\tconst goodsWrapper = document.querySelector('.goods')\r\n\r\n\tlocalStorage.setItem('goods', JSON.stringify(goods))\r\n\r\n\tgoodsWrapper.innerHTML = ''\r\n\r\n\tgoods.forEach((goodsItem) => {\r\n\t\tgoodsWrapper.insertAdjacentHTML(\"beforeend\",\r\n `\r\n\t\t\t<div class=\"col-12 col-md-6 col-lg-4 col-xl-3\">\r\n\t\t\t\t<div class=\"card\" data-key=\"${goodsItem.id}\">\r\n\t\t \t\t${goodsItem.sale ? '<div class=\"card-sale\">🔥 Hot Sale 🔥</div>' : ''}\r\n\t\t\t\t\t<div class=\"card-img-wrapper\">\r\n\t\t\t\t\t\t<span class=\"card-img-top\"\r\n\t\t\t\t\t\t\tstyle=\"background-image: url('${goodsItem.img}')\"></span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"card-body justify-content-between\">\r\n\t\t\t\t\t\t<div class=\"card-price\">${goodsItem.price} руб.</div>\r\n\t\t\t\t\t\t<h5 class=\"card-title\">${goodsItem.title}</h5>\r\n\t\t\t\t\t\t<button class=\"btn btn-primary\">В корзину</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t`\r\n );\r\n\t})\r\n}\r\n\r\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (renderGoods);\n\n//# sourceURL=webpack://myozonjs/./src/modules/renderGoods.js?"); /***/ }), /***/ "./src/modules/search.js": /*!*******************************!*\ !*** ./src/modules/search.js ***! \*******************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _getData__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getData */ \"./src/modules/getData.js\");\n/* harmony import */ var _renderGoods__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./renderGoods */ \"./src/modules/renderGoods.js\");\n/* harmony import */ var _filters__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./filters */ \"./src/modules/filters.js\");\n\r\n\r\n\r\n\r\nfunction search() {\r\n\tconst searchInput = document.querySelector('.search-wrapper-input');\r\n\r\n\tsearchInput.addEventListener('input', () => {\r\n\t\t(0,_getData__WEBPACK_IMPORTED_MODULE_0__[\"default\"])().then((data) => {\r\n\t\t\t(0,_renderGoods__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_filters__WEBPACK_IMPORTED_MODULE_2__.searchFilter)(data, searchInput.value));\r\n\t\t\t\r\n\t\t});\r\n\t});\r\n}\r\n\r\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (search);\r\n\r\n//import { funcFilter } from \"./filters\";\r\n//import { debounce } from \"./helpers\";\r\n\r\n\r\n// const search = () => {\r\n// const searchInput = document.querySelector('.search-wrapper-input');\r\n// const minInp = document.getElementById('min')\r\n// const maxInp = document.getElementById('max')\r\n// const checkInp = document.getElementById('discount-checkbox')\r\n// const checkMark = document.querySelector('.filter-check-checkmark')\r\n\r\n// // оптимизируем запросы к серверу из поиска\r\n// // 1000-3000 milliseconds задерка после ввода воследнего символа в поиск перед отправкой запроса к серверу\r\n// const debounceSearch = debounce((event) => {\r\n// \tgetData().then((data => {\r\n// \t\trenderGoods(searchFilter(data, event.target.value))\r\n// \t}))\r\n// }, 1000)\r\n\r\n// const debounceFunc = debounce((min = '', max = '', checkValue = false, searchValue = '') => {\r\n// \tgetData().then((data => {\r\n// \t\trenderGoods(funcFilter(data, min, max, checkValue, searchValue))\r\n// \t}))\r\n// })\r\n\r\n// searchInput.addEventListener('input', () => {\r\n// \tdebounceFunc(minInp.value, maxInp.value, checkInp.value, searchInput.value)\r\n// })\r\n\r\n// minInp.addEventListener('input', () => {\r\n// \tdebounceFunc(minInp.value, maxInp.value, checkInp.value, searchInput.value)\r\n// })\r\n\r\n// maxInp.addEventListener('input', () => {\r\n// \tdebounceFunc(minInp.value, maxInp.value, checkInp.checked, searchInput.value)\r\n// })\r\n\r\n// checkInp.addEventListener('input', () => {\r\n// \tif (checkInp.checked) {\r\n// \t\tcheckMark.classList.add('checked')\r\n// \t} else {\r\n// \t\tcheckMark.classList.remove('checked')\r\n// \t}\r\n// \tdebounceFunc(minInp.value, maxInp.value, checkInp.checked, searchInput.value)\r\n// })\r\n// }\n\n//# sourceURL=webpack://myozonjs/./src/modules/search.js?"); /***/ }) /******/ }); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /************************************************************************/ /******/ /******/ // startup /******/ // Load entry module and return exports /******/ // This entry module can't be inlined because the eval devtool is used. /******/ var __webpack_exports__ = __webpack_require__("./src/index.js"); /******/ /******/ })() ;