diff --git a/dist/public/js/bundle.js b/dist/public/js/bundle.js index b8c2ef5..6b6bd78 100644 --- a/dist/public/js/bundle.js +++ b/dist/public/js/bundle.js @@ -3886,18 +3886,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ }), -/***/ "./src/js/components/cart.component.js": -/*!*********************************************!*\ - !*** ./src/js/components/cart.component.js ***! - \*********************************************/ -/*! exports provided: CartComponent */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CartComponent\", function() { return CartComponent; });\n/* harmony import */ var _core_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/component */ \"./src/js/core/component.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\nvar CartComponent =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(CartComponent, _Component);\n\n function CartComponent(id) {\n _classCallCheck(this, CartComponent);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(CartComponent).call(this, id));\n }\n\n _createClass(CartComponent, [{\n key: \"init\",\n value: function init() {\n var btnOpen = document.querySelector('#cartOpen');\n var btnClose = this.$el.querySelector('#cartClose');\n btnOpen.addEventListener('click', openHandler.bind(this));\n btnClose.addEventListener('click', closeHandler.bind(this));\n }\n }]);\n\n return CartComponent;\n}(_core_component__WEBPACK_IMPORTED_MODULE_0__[\"Component\"]);\n\nfunction openHandler() {\n this.show();\n}\n\nfunction closeHandler() {\n this.hide();\n}\n\n//# sourceURL=webpack:///./src/js/components/cart.component.js?"); - -/***/ }), - /***/ "./src/js/components/category.component.js": /*!*************************************************!*\ !*** ./src/js/components/category.component.js ***! @@ -3906,7 +3894,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CategoryComponent\", function() { return CategoryComponent; });\n/* harmony import */ var _core_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/component */ \"./src/js/core/component.js\");\n/* harmony import */ var _services_api_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../services/api.service */ \"./src/js/services/api.service.js\");\n/* harmony import */ var _templates_itemsOne_template__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../templates/itemsOne.template */ \"./src/js/templates/itemsOne.template.js\");\n/* harmony import */ var _templates_items_template__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../templates/items.template */ \"./src/js/templates/items.template.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\nvar CategoryComponent =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(CategoryComponent, _Component);\n\n function CategoryComponent(id, _ref, _ref2) {\n var _this;\n\n var items = _ref.items;\n var filter = _ref2.filter;\n\n _classCallCheck(this, CategoryComponent);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(CategoryComponent).call(this, id));\n _this.items = items;\n _this.filter = filter;\n return _this;\n }\n\n _createClass(CategoryComponent, [{\n key: \"init\",\n value: function init() {\n if (this.$el) {\n this.$el.addEventListener('click', buttonHandler.bind(this));\n\n if (localStorage.getItem('category')) {\n localStorage.removeItem('sortByAll', 'true'); // установка значения для компонента Filter\n\n var category = localStorage.getItem('category'),\n bounded = breadcrumbActiveLink.bind(this);\n document.querySelector('#loader').classList.add('hide');\n bounded(category); // <- ф-я окраски li по нажатию на breadcrumb\n // отображем айтемсы если был нажат breadcrumb\n\n (function _callee() {\n var fData, html;\n return regeneratorRuntime.async(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return regeneratorRuntime.awrap(_services_api_service__WEBPACK_IMPORTED_MODULE_1__[\"apiService\"].getItemsOne(category));\n\n case 2:\n fData = _context.sent;\n html = Object(_templates_itemsOne_template__WEBPACK_IMPORTED_MODULE_2__[\"renderItemsOne\"])(category, fData);\n document.querySelector('#roster').insertAdjacentHTML('afterbegin', html);\n\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n });\n })(); // очищаем ключ category чтобы данные не показывались всегда\n\n\n localStorage.removeItem('category');\n }\n }\n }\n }]);\n\n return CategoryComponent;\n}(_core_component__WEBPACK_IMPORTED_MODULE_0__[\"Component\"]);\n\nfunction buttonHandler(e) {\n var category, fData, html, _fData, categories, _html;\n\n return regeneratorRuntime.async(function buttonHandler$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n e.preventDefault();\n\n if (!(e.target.dataset.category && e.target.dataset.category != 'all')) {\n _context2.next = 15;\n break;\n }\n\n localStorage.removeItem('sortByAll'); // установка значения для компонента Filter\n\n this.filter.clearChecked();\n this.items.onShow();\n btnActiveLink(e);\n category = e.target.dataset.category.toLowerCase();\n _context2.next = 9;\n return regeneratorRuntime.awrap(_services_api_service__WEBPACK_IMPORTED_MODULE_1__[\"apiService\"].getItemsOne(category));\n\n case 9:\n fData = _context2.sent;\n html = Object(_templates_itemsOne_template__WEBPACK_IMPORTED_MODULE_2__[\"renderItemsOne\"])(category, fData);\n this.items.onHide();\n document.querySelector('#roster').insertAdjacentHTML('afterbegin', html);\n _context2.next = 27;\n break;\n\n case 15:\n if (!(e.target.dataset.category === 'all')) {\n _context2.next = 27;\n break;\n }\n\n localStorage.setItem('sortByAll', 'true'); // установка значения для компонента Filter\n\n this.filter.clearChecked();\n this.items.onShow();\n btnActiveLink(e);\n _context2.next = 22;\n return regeneratorRuntime.awrap(_services_api_service__WEBPACK_IMPORTED_MODULE_1__[\"apiService\"].getItems());\n\n case 22:\n _fData = _context2.sent;\n categories = Object.keys(_fData);\n _html = Object(_templates_items_template__WEBPACK_IMPORTED_MODULE_3__[\"renderItems\"])(categories, _fData);\n this.items.onHide();\n document.querySelector('#roster').insertAdjacentHTML('afterbegin', _html);\n\n case 27:\n case \"end\":\n return _context2.stop();\n }\n }\n }, null, this);\n} // Окраска li по нажатию\n\n\nfunction btnActiveLink(e) {\n Array.from(e.target.parentNode.parentNode.querySelectorAll('#catLi')).forEach(function (li) {\n return li.classList.remove('active');\n });\n e.target.classList.add('active');\n localStorage.setItem('currentCategory', e.target.dataset.category.toLowerCase());\n} // Окраска li по нажатию на breadcrumb\n\n\nfunction breadcrumbActiveLink(category) {\n var links = this.$el.querySelectorAll('#catLi');\n Array.from(links).forEach(function (li) {\n return li.classList.remove('active');\n });\n Array.from(links).forEach(function (li) {\n return li.dataset.category.toLowerCase() === category ? li.classList.add('active') : false;\n });\n Array.from(links).forEach(function (li) {\n return li.dataset.category.toLowerCase() === category ? localStorage.setItem('currentCategory', li.dataset.category.toLowerCase()) : false;\n });\n}\n\n//# sourceURL=webpack:///./src/js/components/category.component.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CategoryComponent\", function() { return CategoryComponent; });\n/* harmony import */ var _core_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/component */ \"./src/js/core/component.js\");\n/* harmony import */ var _services_api_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../services/api.service */ \"./src/js/services/api.service.js\");\n/* harmony import */ var _templates_itemsOne_template__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../templates/itemsOne.template */ \"./src/js/templates/itemsOne.template.js\");\n/* harmony import */ var _templates_items_template__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../templates/items.template */ \"./src/js/templates/items.template.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\nvar CategoryComponent =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(CategoryComponent, _Component);\n\n function CategoryComponent(id, _ref, _ref2) {\n var _this;\n\n var items = _ref.items;\n var filter = _ref2.filter;\n\n _classCallCheck(this, CategoryComponent);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(CategoryComponent).call(this, id));\n _this.items = items;\n _this.filter = filter;\n return _this;\n }\n\n _createClass(CategoryComponent, [{\n key: \"init\",\n value: function init() {\n if (this.$el) {\n this.$el.addEventListener('click', buttonHandler.bind(this));\n\n if (localStorage.getItem('category')) {\n localStorage.removeItem('sortByAll', 'true'); // установка значения для компонента Filter\n\n var category = localStorage.getItem('category');\n breadcrumbActiveLink.call(this, category); // окрашиваем категорию по нажатию на breadcrumb\n\n showItems.call(this, category); // отображем айтемсы если был нажат breadcrumb\n\n localStorage.removeItem('category'); // очищаем ключ category чтобы данные не показывались всегда\n }\n }\n }\n }]);\n\n return CategoryComponent;\n}(_core_component__WEBPACK_IMPORTED_MODULE_0__[\"Component\"]);\n\nfunction showItems(category) {\n var fData, html;\n return regeneratorRuntime.async(function showItems$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return regeneratorRuntime.awrap(_services_api_service__WEBPACK_IMPORTED_MODULE_1__[\"apiService\"].getItemsOne(category));\n\n case 2:\n fData = _context.sent;\n html = Object(_templates_itemsOne_template__WEBPACK_IMPORTED_MODULE_2__[\"renderItemsOne\"])(category, fData);\n this.items.onHide();\n this.items.insertItems(html);\n\n case 6:\n case \"end\":\n return _context.stop();\n }\n }\n }, null, this);\n}\n\nfunction buttonHandler(e) {\n var category, fData, html, _fData, categories, _html;\n\n return regeneratorRuntime.async(function buttonHandler$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n e.preventDefault();\n\n if (!(e.target.dataset.category && e.target.dataset.category != 'all')) {\n _context2.next = 15;\n break;\n }\n\n // Выполняем логику если нажали на кнопки кроме \"Все товары\"\n localStorage.removeItem('sortByAll'); // установка значения для компонента Filter\n\n this.filter.clearChecked();\n this.items.onShow();\n btnActiveLink(e);\n category = e.target.dataset.category.toLowerCase();\n _context2.next = 9;\n return regeneratorRuntime.awrap(_services_api_service__WEBPACK_IMPORTED_MODULE_1__[\"apiService\"].getItemsOne(category));\n\n case 9:\n fData = _context2.sent;\n html = Object(_templates_itemsOne_template__WEBPACK_IMPORTED_MODULE_2__[\"renderItemsOne\"])(category, fData);\n this.items.onHide();\n this.items.insertItems(html);\n _context2.next = 27;\n break;\n\n case 15:\n if (!(e.target.dataset.category === 'all')) {\n _context2.next = 27;\n break;\n }\n\n // Выполняем логику если нажали на кнопку \"Все товары\"\n localStorage.setItem('sortByAll', 'true'); // установка значения для компонента Filter\n\n this.filter.clearChecked();\n this.items.onShow();\n btnActiveLink(e);\n _context2.next = 22;\n return regeneratorRuntime.awrap(_services_api_service__WEBPACK_IMPORTED_MODULE_1__[\"apiService\"].getItems());\n\n case 22:\n _fData = _context2.sent;\n categories = Object.keys(_fData);\n _html = Object(_templates_items_template__WEBPACK_IMPORTED_MODULE_3__[\"renderItems\"])(categories, _fData);\n this.items.onHide();\n this.items.insertItems(_html);\n\n case 27:\n case \"end\":\n return _context2.stop();\n }\n }\n }, null, this);\n} // Окраска li по нажатию\n\n\nfunction btnActiveLink(e) {\n Array.from(e.target.parentNode.parentNode.querySelectorAll('#catLi')).forEach(function (li) {\n return li.classList.remove('active');\n });\n e.target.classList.add('active');\n localStorage.setItem('currentCategory', e.target.dataset.category.toLowerCase());\n} // Окраска li по нажатию на breadcrumb\n\n\nfunction breadcrumbActiveLink(category) {\n var links = this.$el.querySelectorAll('#catLi');\n Array.from(links).forEach(function (li) {\n return li.classList.remove('active');\n });\n Array.from(links).forEach(function (li) {\n return li.dataset.category.toLowerCase() === category ? li.classList.add('active') : false;\n });\n Array.from(links).forEach(function (li) {\n return li.dataset.category.toLowerCase() === category ? localStorage.setItem('currentCategory', li.dataset.category.toLowerCase()) : false;\n });\n}\n\n//# sourceURL=webpack:///./src/js/components/category.component.js?"); /***/ }), @@ -3918,7 +3906,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FilterComponent\", function() { return FilterComponent; });\n/* harmony import */ var _core_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/component */ \"./src/js/core/component.js\");\n/* harmony import */ var _services_api_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../services/api.service */ \"./src/js/services/api.service.js\");\n/* harmony import */ var _templates_items_template__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../templates/items.template */ \"./src/js/templates/items.template.js\");\n/* harmony import */ var _templates_itemsOne_template__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../templates/itemsOne.template */ \"./src/js/templates/itemsOne.template.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\nvar FilterComponent =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(FilterComponent, _Component);\n\n function FilterComponent(id, _ref) {\n var _this;\n\n var items = _ref.items;\n\n _classCallCheck(this, FilterComponent);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(FilterComponent).call(this, id));\n _this.items = items;\n return _this;\n }\n\n _createClass(FilterComponent, [{\n key: \"init\",\n value: function init() {\n if (this.$el) {\n this.$el.addEventListener('click', sortByAllHandler.bind(this));\n this.$el.addEventListener('click', sortByOneHandler.bind(this));\n }\n }\n }, {\n key: \"clearChecked\",\n value: function clearChecked() {\n if (this.$el) {\n var options = this.$el.querySelectorAll('.filter-options form input');\n Array.from(options).forEach(function (option) {\n return option.checked = false;\n });\n }\n }\n }]);\n\n return FilterComponent;\n}(_core_component__WEBPACK_IMPORTED_MODULE_0__[\"Component\"]);\n\nfunction sortByAllHandler(e) {\n var sorting, fData, categories, html;\n return regeneratorRuntime.async(function sortByAllHandler$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!localStorage.getItem('sortByAll')) {\n _context.next = 11;\n break;\n }\n\n if (!e.target.id) {\n _context.next = 11;\n break;\n }\n\n sorting = e.target.id;\n this.items.onShow();\n _context.next = 6;\n return regeneratorRuntime.awrap(_services_api_service__WEBPACK_IMPORTED_MODULE_1__[\"apiService\"].getItems(sorting));\n\n case 6:\n fData = _context.sent;\n categories = Object.keys(fData);\n html = Object(_templates_items_template__WEBPACK_IMPORTED_MODULE_2__[\"renderItems\"])(categories, fData);\n this.items.onHide();\n document.querySelector('#roster').insertAdjacentHTML('afterbegin', html);\n\n case 11:\n case \"end\":\n return _context.stop();\n }\n }\n }, null, this);\n}\n\nfunction sortByOneHandler(e) {\n var sorting, category, fData, html;\n return regeneratorRuntime.async(function sortByOneHandler$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (localStorage.getItem('sortByAll')) {\n _context2.next = 11;\n break;\n }\n\n if (!e.target.id) {\n _context2.next = 11;\n break;\n }\n\n sorting = e.target.id;\n this.items.onShow();\n category = localStorage.getItem('currentCategory');\n _context2.next = 7;\n return regeneratorRuntime.awrap(_services_api_service__WEBPACK_IMPORTED_MODULE_1__[\"apiService\"].getItemsOne(category, sorting));\n\n case 7:\n fData = _context2.sent;\n html = Object(_templates_itemsOne_template__WEBPACK_IMPORTED_MODULE_3__[\"renderItemsOne\"])(category, fData);\n this.items.onHide();\n document.querySelector('#roster').insertAdjacentHTML('afterbegin', html);\n\n case 11:\n case \"end\":\n return _context2.stop();\n }\n }\n }, null, this);\n}\n\n//# sourceURL=webpack:///./src/js/components/filter.component.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FilterComponent\", function() { return FilterComponent; });\n/* harmony import */ var _core_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/component */ \"./src/js/core/component.js\");\n/* harmony import */ var _services_api_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../services/api.service */ \"./src/js/services/api.service.js\");\n/* harmony import */ var _templates_items_template__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../templates/items.template */ \"./src/js/templates/items.template.js\");\n/* harmony import */ var _templates_itemsOne_template__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../templates/itemsOne.template */ \"./src/js/templates/itemsOne.template.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\nvar FilterComponent =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(FilterComponent, _Component);\n\n function FilterComponent(id, _ref) {\n var _this;\n\n var items = _ref.items;\n\n _classCallCheck(this, FilterComponent);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(FilterComponent).call(this, id));\n _this.items = items;\n return _this;\n }\n\n _createClass(FilterComponent, [{\n key: \"init\",\n value: function init() {\n if (this.$el) {\n this.$el.addEventListener('click', sortByAllHandler.bind(this));\n this.$el.addEventListener('click', sortByOneHandler.bind(this));\n }\n }\n }, {\n key: \"clearChecked\",\n value: function clearChecked() {\n if (this.$el) {\n var options = this.$el.querySelectorAll('.filter-options form input');\n Array.from(options).forEach(function (option) {\n return option.checked = false;\n });\n }\n }\n }]);\n\n return FilterComponent;\n}(_core_component__WEBPACK_IMPORTED_MODULE_0__[\"Component\"]);\n\nfunction sortByAllHandler(e) {\n var sorting, fData, categories, html;\n return regeneratorRuntime.async(function sortByAllHandler$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!localStorage.getItem('sortByAll')) {\n _context.next = 11;\n break;\n }\n\n if (!e.target.id) {\n _context.next = 11;\n break;\n }\n\n sorting = e.target.id;\n this.items.onShow();\n _context.next = 6;\n return regeneratorRuntime.awrap(_services_api_service__WEBPACK_IMPORTED_MODULE_1__[\"apiService\"].getItems(sorting));\n\n case 6:\n fData = _context.sent;\n categories = Object.keys(fData);\n html = Object(_templates_items_template__WEBPACK_IMPORTED_MODULE_2__[\"renderItems\"])(categories, fData);\n this.items.onHide();\n this.items.insertItems(html);\n\n case 11:\n case \"end\":\n return _context.stop();\n }\n }\n }, null, this);\n}\n\nfunction sortByOneHandler(e) {\n var sorting, category, fData, html;\n return regeneratorRuntime.async(function sortByOneHandler$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (localStorage.getItem('sortByAll')) {\n _context2.next = 11;\n break;\n }\n\n if (!e.target.id) {\n _context2.next = 11;\n break;\n }\n\n sorting = e.target.id;\n this.items.onShow();\n category = localStorage.getItem('currentCategory');\n _context2.next = 7;\n return regeneratorRuntime.awrap(_services_api_service__WEBPACK_IMPORTED_MODULE_1__[\"apiService\"].getItemsOne(category, sorting));\n\n case 7:\n fData = _context2.sent;\n html = Object(_templates_itemsOne_template__WEBPACK_IMPORTED_MODULE_3__[\"renderItemsOne\"])(category, fData);\n this.items.onHide();\n this.items.insertItems(html);\n\n case 11:\n case \"end\":\n return _context2.stop();\n }\n }\n }, null, this);\n}\n\n//# sourceURL=webpack:///./src/js/components/filter.component.js?"); /***/ }), @@ -3954,7 +3942,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ItemsComponent\", function() { return ItemsComponent; });\n/* harmony import */ var _core_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/component */ \"./src/js/core/component.js\");\n/* harmony import */ var _services_api_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../services/api.service */ \"./src/js/services/api.service.js\");\n/* harmony import */ var _templates_items_template__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../templates/items.template */ \"./src/js/templates/items.template.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\nvar ItemsComponent =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ItemsComponent, _Component);\n\n function ItemsComponent(id, _ref) {\n var _this;\n\n var loader = _ref.loader;\n\n _classCallCheck(this, ItemsComponent);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ItemsComponent).call(this, id));\n _this.loader = loader;\n return _this;\n }\n\n _createClass(ItemsComponent, [{\n key: \"init\",\n value: function init() {\n var roster, fData, categories, html;\n return regeneratorRuntime.async(function init$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!this.$el) {\n _context.next = 10;\n break;\n }\n\n localStorage.setItem('sortByAll', 'true'); // установка значения для компонента Filter\n\n if (localStorage.getItem('category')) {\n _context.next = 10;\n break;\n }\n\n roster = this.$el.querySelector('#roster'); // Список с товарами\n // Получаем все товары и вывоим их если нету ключа category в ls\n\n _context.next = 6;\n return regeneratorRuntime.awrap(_services_api_service__WEBPACK_IMPORTED_MODULE_1__[\"apiService\"].getItems());\n\n case 6:\n fData = _context.sent;\n categories = Object.keys(fData);\n\n if (categories.length) {\n html = Object(_templates_items_template__WEBPACK_IMPORTED_MODULE_2__[\"renderItems\"])(categories, fData);\n roster.insertAdjacentHTML('afterbegin', html);\n } else {\n roster.innerHTML = 'Товаров на сайте пока что нету';\n } // Убираем крутящийся лоадер\n\n\n this.loader.hide();\n\n case 10:\n case \"end\":\n return _context.stop();\n }\n }\n }, null, this);\n }\n }, {\n key: \"onHide\",\n value: function onHide() {\n this.$el.querySelector('#roster').innerHTML = '';\n this.loader.hide();\n }\n }, {\n key: \"onShow\",\n value: function onShow() {\n this.$el.querySelector('#roster').innerHTML = '';\n this.loader.show();\n }\n }]);\n\n return ItemsComponent;\n}(_core_component__WEBPACK_IMPORTED_MODULE_0__[\"Component\"]);\n\n//# sourceURL=webpack:///./src/js/components/items.component.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ItemsComponent\", function() { return ItemsComponent; });\n/* harmony import */ var _core_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/component */ \"./src/js/core/component.js\");\n/* harmony import */ var _services_api_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../services/api.service */ \"./src/js/services/api.service.js\");\n/* harmony import */ var _templates_items_template__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../templates/items.template */ \"./src/js/templates/items.template.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\nvar ItemsComponent =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ItemsComponent, _Component);\n\n function ItemsComponent(id, _ref) {\n var _this;\n\n var loader = _ref.loader;\n\n _classCallCheck(this, ItemsComponent);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ItemsComponent).call(this, id));\n _this.loader = loader;\n _this.$el ? _this.roster = _this.$el.querySelector('#roster') : false;\n return _this;\n }\n\n _createClass(ItemsComponent, [{\n key: \"init\",\n value: function init() {\n var fData, categories, html;\n return regeneratorRuntime.async(function init$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!this.$el) {\n _context.next = 9;\n break;\n }\n\n localStorage.setItem('sortByAll', 'true'); // установка значения для компонента Filter\n\n if (localStorage.getItem('category')) {\n _context.next = 9;\n break;\n }\n\n _context.next = 5;\n return regeneratorRuntime.awrap(_services_api_service__WEBPACK_IMPORTED_MODULE_1__[\"apiService\"].getItems());\n\n case 5:\n fData = _context.sent;\n categories = Object.keys(fData);\n\n if (categories.length) {\n html = Object(_templates_items_template__WEBPACK_IMPORTED_MODULE_2__[\"renderItems\"])(categories, fData);\n this.insertItems(html);\n } else {\n this.roster.innerHTML = 'Товаров на сайте пока что нету';\n }\n\n this.loader.hide();\n\n case 9:\n case \"end\":\n return _context.stop();\n }\n }\n }, null, this);\n }\n }, {\n key: \"onHide\",\n value: function onHide() {\n this.$el.querySelector('#roster').innerHTML = '';\n this.loader.hide();\n }\n }, {\n key: \"onShow\",\n value: function onShow() {\n this.$el.querySelector('#roster').innerHTML = '';\n this.loader.show();\n }\n }, {\n key: \"insertItems\",\n value: function insertItems(html) {\n this.roster.insertAdjacentHTML('afterbegin', html);\n }\n }]);\n\n return ItemsComponent;\n}(_core_component__WEBPACK_IMPORTED_MODULE_0__[\"Component\"]);\n\n//# sourceURL=webpack:///./src/js/components/items.component.js?"); /***/ }), @@ -3982,6 +3970,18 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ }), +/***/ "./src/js/core/modal.js": +/*!******************************!*\ + !*** ./src/js/core/modal.js ***! + \******************************/ +/*! exports provided: Modal */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Modal\", function() { return Modal; });\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar Modal =\n/*#__PURE__*/\nfunction () {\n function Modal(id, open, close) {\n _classCallCheck(this, Modal);\n\n this.$el = document.getElementById(id);\n this.open = document.getElementById(open);\n this.close = document.getElementById(close);\n this.init();\n }\n\n _createClass(Modal, [{\n key: \"init\",\n value: function init() {\n this.open.addEventListener('click', openHandler.bind(this));\n this.close.addEventListener('click', closeHandler.bind(this));\n }\n }, {\n key: \"show\",\n value: function show() {\n this.$el.classList.remove('hide');\n document.body.style.overflowY = 'hidden';\n }\n }, {\n key: \"hide\",\n value: function hide() {\n this.$el.classList.add('hide');\n document.body.style.overflowY = '';\n }\n }]);\n\n return Modal;\n}();\n\nfunction openHandler() {\n this.show();\n}\n\nfunction closeHandler() {\n this.hide();\n}\n\n//# sourceURL=webpack:///./src/js/core/modal.js?"); + +/***/ }), + /***/ "./src/js/index.js": /*!*************************!*\ !*** ./src/js/index.js ***! @@ -3990,7 +3990,19 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _components_header_component_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components/header.component.js */ \"./src/js/components/header.component.js\");\n/* harmony import */ var _components_information_component_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/information.component.js */ \"./src/js/components/information.component.js\");\n/* harmony import */ var _components_cart_component_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/cart.component.js */ \"./src/js/components/cart.component.js\");\n/* harmony import */ var _components_loader_component_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/loader.component.js */ \"./src/js/components/loader.component.js\");\n/* harmony import */ var _components_items_component_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/items.component.js */ \"./src/js/components/items.component.js\");\n/* harmony import */ var _components_category_component_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/category.component.js */ \"./src/js/components/category.component.js\");\n/* harmony import */ var _components_breadcrumb_component_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/breadcrumb.component.js */ \"./src/js/components/breadcrumb.component.js\");\n/* harmony import */ var _components_filter_component_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/filter.component.js */ \"./src/js/components/filter.component.js\");\n\n\n\n\n\n\n\n\nvar header = new _components_header_component_js__WEBPACK_IMPORTED_MODULE_0__[\"HeaderComponent\"]('header');\nvar loader = new _components_loader_component_js__WEBPACK_IMPORTED_MODULE_3__[\"LoaderComponent\"]('loader');\nvar information = new _components_information_component_js__WEBPACK_IMPORTED_MODULE_1__[\"InformationComponent\"]('information');\nvar cart = new _components_cart_component_js__WEBPACK_IMPORTED_MODULE_2__[\"CartComponent\"]('cart');\nvar items = new _components_items_component_js__WEBPACK_IMPORTED_MODULE_4__[\"ItemsComponent\"]('items', {\n loader: loader\n});\nvar filter = new _components_filter_component_js__WEBPACK_IMPORTED_MODULE_7__[\"FilterComponent\"]('filter', {\n items: items\n});\nvar category = new _components_category_component_js__WEBPACK_IMPORTED_MODULE_5__[\"CategoryComponent\"]('category', {\n items: items\n}, {\n filter: filter\n});\nvar breadcumb = new _components_breadcrumb_component_js__WEBPACK_IMPORTED_MODULE_6__[\"BreadcrumbComponent\"]('breadcrumb');\n\n//# sourceURL=webpack:///./src/js/index.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _components_header_component_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components/header.component.js */ \"./src/js/components/header.component.js\");\n/* harmony import */ var _components_information_component_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/information.component.js */ \"./src/js/components/information.component.js\");\n/* harmony import */ var _components_loader_component_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/loader.component.js */ \"./src/js/components/loader.component.js\");\n/* harmony import */ var _components_items_component_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/items.component.js */ \"./src/js/components/items.component.js\");\n/* harmony import */ var _components_category_component_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/category.component.js */ \"./src/js/components/category.component.js\");\n/* harmony import */ var _components_breadcrumb_component_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/breadcrumb.component.js */ \"./src/js/components/breadcrumb.component.js\");\n/* harmony import */ var _components_filter_component_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/filter.component.js */ \"./src/js/components/filter.component.js\");\n/* harmony import */ var _modals_cart_modal_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modals/cart.modal.js */ \"./src/js/modals/cart.modal.js\");\n\n\n\n\n\n\n\n\nvar header = new _components_header_component_js__WEBPACK_IMPORTED_MODULE_0__[\"HeaderComponent\"]('header');\nvar loader = new _components_loader_component_js__WEBPACK_IMPORTED_MODULE_2__[\"LoaderComponent\"]('loader');\nvar information = new _components_information_component_js__WEBPACK_IMPORTED_MODULE_1__[\"InformationComponent\"]('information');\nvar items = new _components_items_component_js__WEBPACK_IMPORTED_MODULE_3__[\"ItemsComponent\"]('items', {\n loader: loader\n});\nvar filter = new _components_filter_component_js__WEBPACK_IMPORTED_MODULE_6__[\"FilterComponent\"]('filter', {\n items: items\n});\nvar category = new _components_category_component_js__WEBPACK_IMPORTED_MODULE_4__[\"CategoryComponent\"]('category', {\n items: items\n}, {\n filter: filter\n});\nvar breadcumb = new _components_breadcrumb_component_js__WEBPACK_IMPORTED_MODULE_5__[\"BreadcrumbComponent\"]('breadcrumb');\nvar cart = new _modals_cart_modal_js__WEBPACK_IMPORTED_MODULE_7__[\"CartModal\"]('cart', 'cartOpen', 'cartClose');\n\n//# sourceURL=webpack:///./src/js/index.js?"); + +/***/ }), + +/***/ "./src/js/modals/cart.modal.js": +/*!*************************************!*\ + !*** ./src/js/modals/cart.modal.js ***! + \*************************************/ +/*! exports provided: CartModal */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CartModal\", function() { return CartModal; });\n/* harmony import */ var _core_modal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/modal */ \"./src/js/core/modal.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\nvar CartModal =\n/*#__PURE__*/\nfunction (_Modal) {\n _inherits(CartModal, _Modal);\n\n function CartModal(id, open, close) {\n _classCallCheck(this, CartModal);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(CartModal).call(this, id, open, close));\n }\n\n return CartModal;\n}(_core_modal__WEBPACK_IMPORTED_MODULE_0__[\"Modal\"]);\n\n//# sourceURL=webpack:///./src/js/modals/cart.modal.js?"); /***/ }), diff --git a/src/js/components/cart.component.js b/src/js/components/cart.component.js deleted file mode 100644 index ca36c30..0000000 --- a/src/js/components/cart.component.js +++ /dev/null @@ -1,23 +0,0 @@ -import { Component } from "../core/component"; - -export class CartComponent extends Component { - constructor(id) { - super(id); - } - - init() { - const btnOpen = document.querySelector('#cartOpen'); - const btnClose = this.$el.querySelector('#cartClose'); - - btnOpen.addEventListener('click', openHandler.bind(this)); - btnClose.addEventListener('click', closeHandler.bind(this)); - } -} - -function openHandler() { - this.show(); -} - -function closeHandler() { - this.hide(); -} \ No newline at end of file diff --git a/src/js/components/category.component.js b/src/js/components/category.component.js index ca775f8..bf488a9 100644 --- a/src/js/components/category.component.js +++ b/src/js/components/category.component.js @@ -17,29 +17,26 @@ export class CategoryComponent extends Component { if (localStorage.getItem('category')) { localStorage.removeItem('sortByAll', 'true'); // установка значения для компонента Filter - const category = localStorage.getItem('category'), - bounded = breadcrumbActiveLink.bind(this); - - document.querySelector('#loader').classList.add('hide'); - bounded(category); // <- ф-я окраски li по нажатию на breadcrumb - - // отображем айтемсы если был нажат breadcrumb - (async function(){ - const fData = await apiService.getItemsOne(category), - html = renderItemsOne(category, fData); - document.querySelector('#roster').insertAdjacentHTML('afterbegin', html); - }()) - - // очищаем ключ category чтобы данные не показывались всегда - localStorage.removeItem('category'); + const category = localStorage.getItem('category'); + breadcrumbActiveLink.call(this, category); // окрашиваем категорию по нажатию на breadcrumb + showItems.call(this, category); // отображем айтемсы если был нажат breadcrumb + localStorage.removeItem('category'); // очищаем ключ category чтобы данные не показывались всегда } } } } +async function showItems(category) { + const fData = await apiService.getItemsOne(category), + html = renderItemsOne(category, fData); + + this.items.onHide(); + this.items.insertItems(html); +} + async function buttonHandler(e) { e.preventDefault(); - if (e.target.dataset.category && e.target.dataset.category != 'all') { + if (e.target.dataset.category && e.target.dataset.category != 'all') { // Выполняем логику если нажали на кнопки кроме "Все товары" localStorage.removeItem('sortByAll'); // установка значения для компонента Filter this.filter.clearChecked(); @@ -51,8 +48,8 @@ async function buttonHandler(e) { html = renderItemsOne(category, fData); this.items.onHide(); - document.querySelector('#roster').insertAdjacentHTML('afterbegin', html); - } else if (e.target.dataset.category === 'all') { + this.items.insertItems(html); + } else if (e.target.dataset.category === 'all') { // Выполняем логику если нажали на кнопку "Все товары" localStorage.setItem('sortByAll', 'true'); // установка значения для компонента Filter this.filter.clearChecked(); @@ -64,7 +61,7 @@ async function buttonHandler(e) { html = renderItems(categories, fData); this.items.onHide(); - document.querySelector('#roster').insertAdjacentHTML('afterbegin', html); + this.items.insertItems(html); } } diff --git a/src/js/components/filter.component.js b/src/js/components/filter.component.js index 69861e3..6799eae 100644 --- a/src/js/components/filter.component.js +++ b/src/js/components/filter.component.js @@ -30,13 +30,12 @@ async function sortByAllHandler(e) { const sorting = e.target.id; this.items.onShow(); - const fData = await apiService.getItems(sorting), categories = Object.keys(fData), html = renderItems(categories, fData); this.items.onHide(); - document.querySelector('#roster').insertAdjacentHTML('afterbegin', html); + this.items.insertItems(html); } } } @@ -47,13 +46,12 @@ async function sortByOneHandler(e) { const sorting = e.target.id; this.items.onShow(); - const category = localStorage.getItem('currentCategory'), fData = await apiService.getItemsOne(category, sorting), html = renderItemsOne(category, fData); this.items.onHide(); - document.querySelector('#roster').insertAdjacentHTML('afterbegin', html); + this.items.insertItems(html); } } } \ No newline at end of file diff --git a/src/js/components/items.component.js b/src/js/components/items.component.js index 1edcca9..282c494 100644 --- a/src/js/components/items.component.js +++ b/src/js/components/items.component.js @@ -6,26 +6,23 @@ export class ItemsComponent extends Component { constructor(id, {loader}) { super(id); this.loader = loader; + this.$el ? this.roster = this.$el.querySelector('#roster') : false; } async init() { if (this.$el) { localStorage.setItem('sortByAll', 'true'); // установка значения для компонента Filter - if (!localStorage.getItem('category')) { - const roster = this.$el.querySelector('#roster'); // Список с товарами - - // Получаем все товары и вывоим их если нету ключа category в ls + if (!localStorage.getItem('category')) { // Получаем все товары и выводим их если нету ключа category в ls const fData = await apiService.getItems(), categories = Object.keys(fData); if (categories.length) { const html = renderItems(categories, fData); - roster.insertAdjacentHTML('afterbegin', html); + this.insertItems(html); } else { - roster.innerHTML = 'Товаров на сайте пока что нету'; + this.roster.innerHTML = 'Товаров на сайте пока что нету'; } - - // Убираем крутящийся лоадер + this.loader.hide(); } } @@ -39,4 +36,8 @@ export class ItemsComponent extends Component { this.$el.querySelector('#roster').innerHTML = ''; this.loader.show(); } + + insertItems(html) { + this.roster.insertAdjacentHTML('afterbegin', html); + } } \ No newline at end of file diff --git a/src/js/core/modal.js b/src/js/core/modal.js new file mode 100644 index 0000000..17834e5 --- /dev/null +++ b/src/js/core/modal.js @@ -0,0 +1,31 @@ +export class Modal { + constructor(id, open, close) { + this.$el = document.getElementById(id); + this.open = document.getElementById(open); + this.close = document.getElementById(close); + this.init(); + } + + init() { + this.open.addEventListener('click', openHandler.bind(this)); + this.close.addEventListener('click', closeHandler.bind(this)); + } + + show() { + this.$el.classList.remove('hide'); + document.body.style.overflowY = 'hidden'; + } + + hide() { + this.$el.classList.add('hide'); + document.body.style.overflowY = ''; + } +} + +function openHandler() { + this.show(); +} + +function closeHandler() { + this.hide(); +} \ No newline at end of file diff --git a/src/js/index.js b/src/js/index.js index 7f9a0c0..6786441 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -1,17 +1,17 @@ import { HeaderComponent } from "./components/header.component.js"; import { InformationComponent } from "./components/information.component.js"; -import { CartComponent } from "./components/cart.component.js"; import { LoaderComponent } from "./components/loader.component.js"; import { ItemsComponent } from "./components/items.component.js"; import { CategoryComponent } from "./components/category.component.js"; import { BreadcrumbComponent } from "./components/breadcrumb.component.js"; import { FilterComponent } from "./components/filter.component.js"; +import { CartModal } from "./modals/cart.modal.js"; const header = new HeaderComponent('header'); const loader = new LoaderComponent('loader'); const information = new InformationComponent('information'); -const cart = new CartComponent('cart'); const items = new ItemsComponent('items', {loader}); const filter = new FilterComponent('filter', {items}); const category = new CategoryComponent('category', {items}, {filter}); -const breadcumb = new BreadcrumbComponent('breadcrumb'); \ No newline at end of file +const breadcumb = new BreadcrumbComponent('breadcrumb'); +const cart = new CartModal('cart', 'cartOpen', 'cartClose'); diff --git a/src/js/modals/cart.modal.js b/src/js/modals/cart.modal.js new file mode 100644 index 0000000..e475320 --- /dev/null +++ b/src/js/modals/cart.modal.js @@ -0,0 +1,7 @@ +import { Modal } from "../core/modal"; + +export class CartModal extends Modal { + constructor(id, open, close) { + super(id, open, close); + } +} \ No newline at end of file