{"version":3,"sources":["webpack:///./infrastructure/presentation/views/shop/Shop.vue?013f","webpack:///./infrastructure/presentation/components/application/shop/Card.vue?8d41","webpack:///./infrastructure/presentation/components/application/shop/Card.vue?5ce5","webpack:///./infrastructure/presentation/components/application/shop/Card.vue","webpack:///./infrastructure/presentation/components/application/shop/Filter.vue?3884","webpack:///./infrastructure/presentation/components/application/shop/Filter.vue?6fd2","webpack:///./infrastructure/presentation/components/application/shop/Filter.vue","webpack:///./infrastructure/presentation/views/shop/Shop.vue?2a5f","webpack:///./infrastructure/presentation/views/shop/Shop.vue","webpack:///./infrastructure/presentation/assets/static/arrow_right_24px.png","webpack:///./infrastructure/presentation/views/shop/Shop.vue?98f4","webpack:///./infrastructure/presentation/components/application/shop/Filter.vue?efab","webpack:///./infrastructure/presentation/components/application/shop/HoverGallery.vue?3b30","webpack:///./infrastructure/presentation/components/application/shop/HoverGallery.vue?86bc","webpack:///./infrastructure/presentation/components/application/shop/HoverGallery.vue","webpack:///./infrastructure/presentation/assets/static/nothing-found.svg","webpack:///./infrastructure/presentation/components/application/shop/Card.vue?4daf","webpack:///./infrastructure/presentation/components/application/shop/HoverGallery.vue?8901"],"names":["n","_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","key","_hoisted_6","_hoisted_7","_hoisted_8","render","_ctx","_cache","$props","$setup","$data","$options","_component_router_link","_component_filter_shop","_component_card","_component_content_fallback","_component_PaginationDefault","type","placeholder","onInput","$event","searchProduct","target","value","to","name","default","bagProducts","length","_","filter","products","product","index","user","pages","currentPage","onChangePage","width","height","viewBox","fill","xmlns","d","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_component_HoverGallery","inBag","bagIncludes","onClick","gotToProductDetail","isProductOutOfStock","gallery","imagesUrl","formatDecoins","decoins","isFavorite","removeFromFavoriteList","addToFavorites","removeFromBag","hasEnoughDecoins","checkEnough","addToBag","setButtonText","components","HoverGallery","props","Object","required","setup","store","route","autoPlayTimer","Number","query","page","getters","favoriteProducts","balance","quantity","stock","dcoins","dispatch","message","console","error","id","limit","find","item","push","params","productID","remain","Intl","NumberFormat","format","__exports__","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","open","select","src","alt","style","filters","shops","shop","checked","$route","includes","String","onChange","selectShops","for","quantityProducts","arrayPrices","price","label","selectPrice","getQuantityByPrice","onSubmit","submit","min","minPrice","selectMinInputPrice","maxPrice","selectMaxInputPrice","categories","category","selectCategories","router","productsPage","currentFilter","priceID","values","firstValue","secondValue","thirtyValue","fourthValue","input","updateRouteQuery","priceEntity","inputID","filtered","e","prices","loadFilters","newFilter","Array","it","splice","currentShops","currentCategories","currentPrices","minValue","maxValue","max","Card","FilterShop","Filter","PaginationDefault","ContentFallback","timerId","currentPageFavoriteProducts","search","inputFilter","searchQuery","clearTimeout","setTimeout","queryShop","queryPrice","queryCategory","map","queryCategories","module","exports","onMouseover","isHover","onMouseout","renderImage","__default__","colorBorder","renderIndex","nextImage","url","intervalId","setInterval","clearInterval","immediate","__setup__","ctx"],"mappings":"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","file":"js/chunk-548b781a.bc64e0f8.js","sourcesContent":["import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-65615bea\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"view\",\n \"data-view\": \"\"\n}\nconst _hoisted_2 = { class: \"shop__header\" }\nconst _hoisted_3 = { class: \"shop__icons\" }\nconst _hoisted_4 = { class: \"shop__container\" }\nconst _hoisted_5 = {\n key: 0,\n class: \"shop__cards\"\n}\nconst _hoisted_6 = {\n key: 1,\n class: \"shop-empty fallback\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", { class: \"shop-empty__label\" }, \"Nenhum produto foi encontrado.\", -1))\nconst _hoisted_8 = {\n key: 0,\n class: \"shop__pagination\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_filter_shop = _resolveComponent(\"filter-shop\")!\n const _component_card = _resolveComponent(\"card\")!\n const _component_content_fallback = _resolveComponent(\"content-fallback\")!\n const _component_PaginationDefault = _resolveComponent(\"PaginationDefault\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"header\", _hoisted_2, [\n _createElementVNode(\"input\", {\n type: \"search\",\n placeholder: \"Buscar produto\",\n \"data-search\": \"\",\n onInput: _cache[0] || (_cache[0] = ($event: any) => (_ctx.searchProduct($event.target.value))),\n class: \"shop__search-input\"\n }, null, 32),\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_router_link, {\n to: { name: 'favorite' },\n class: \"shop__favorite\"\n }),\n _createVNode(_component_router_link, {\n class: \"bag\",\n to: { name: 'bag' }\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.bagProducts.length), 1)\n ]),\n _: 1\n })\n ])\n ]),\n _createElementVNode(\"section\", _hoisted_4, [\n _createVNode(_component_filter_shop, { filter: _ctx.filter }, null, 8, [\"filter\"]),\n (_ctx.products.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.products, (product, index) => {\n return (_openBlock(), _createBlock(_component_card, {\n key: index,\n product: product,\n user: _ctx.user\n }, null, 8, [\"product\", \"user\"]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createVNode(_component_content_fallback, null, {\n default: _withCtx(() => [\n _hoisted_7\n ]),\n _: 1\n })\n ]))\n ]),\n (_ctx.products.length)\n ? (_openBlock(), _createElementBlock(\"section\", _hoisted_8, [\n _createVNode(_component_PaginationDefault, {\n \"qt-pages\": _ctx.pages,\n currentPage: _ctx.currentPage,\n onChangePage: _cache[1] || (_cache[1] = ($event: any) => (_ctx.currentPage = $event))\n }, null, 8, [\"qt-pages\", \"currentPage\"])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, withModifiers as _withModifiers, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3912d23c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"card__titles\" }\nconst _hoisted_2 = { class: \"card__name\" }\nconst _hoisted_3 = { class: \"card__stock\" }\nconst _hoisted_4 = { class: \"card__decoins\" }\nconst _hoisted_5 = { class: \"card__validation\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n d: \"M16.2246 4.98517C15.989 4.43961 15.6493 3.94523 15.2244 3.5297C14.7993 3.11293 14.298 2.78173 13.7479 2.55411C13.1774 2.31715 12.5656 2.19586 11.9479 2.19728C11.0813 2.19728 10.2357 2.43458 9.50098 2.88282C9.3252 2.99005 9.1582 3.10782 9 3.23615C8.8418 3.10782 8.67481 2.99005 8.49902 2.88282C7.76426 2.43458 6.91875 2.19728 6.05215 2.19728C5.42813 2.19728 4.82344 2.31681 4.25215 2.55411C3.7002 2.78263 3.20273 3.11134 2.77559 3.5297C2.35019 3.94476 2.01037 4.43926 1.77539 4.98517C1.53105 5.55294 1.40625 6.15587 1.40625 6.77638C1.40625 7.36173 1.52578 7.97169 1.76309 8.5922C1.96172 9.11075 2.24648 9.64864 2.61035 10.1918C3.18691 11.0514 3.97969 11.9479 4.96406 12.8567C6.59531 14.3631 8.21074 15.4037 8.2793 15.4459L8.6959 15.7131C8.88047 15.8309 9.11777 15.8309 9.30234 15.7131L9.71895 15.4459C9.7875 15.402 11.4012 14.3631 13.0342 12.8567C14.0186 11.9479 14.8113 11.0514 15.3879 10.1918C15.7518 9.64864 16.0383 9.11075 16.2352 8.5922C16.4725 7.97169 16.592 7.36173 16.592 6.77638C16.5938 6.15587 16.4689 5.55294 16.2246 4.98517V4.98517ZM9 14.3227C9 14.3227 2.74219 10.3131 2.74219 6.77638C2.74219 4.98517 4.22402 3.53322 6.05215 3.53322C7.33711 3.53322 8.45156 4.2504 9 5.29806C9.54844 4.2504 10.6629 3.53322 11.9479 3.53322C13.776 3.53322 15.2578 4.98517 15.2578 6.77638C15.2578 10.3131 9 14.3227 9 14.3227Z\",\n fill: \"#ff5f71 \"\n })\n], -1))\nconst _hoisted_7 = [\n _hoisted_6\n]\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n d: \"M21.6328 6.64686C21.3187 5.91945 20.8657 5.26027 20.2992 4.70624C19.7323 4.15055 19.064 3.70895 18.3305 3.40545C17.5699 3.0895 16.7541 2.92778 15.9305 2.92967C14.775 2.92967 13.6477 3.24608 12.668 3.84374C12.4336 3.9867 12.2109 4.14374 12 4.31483C11.7891 4.14374 11.5664 3.9867 11.332 3.84374C10.3523 3.24608 9.225 2.92967 8.06953 2.92967C7.2375 2.92967 6.43125 3.08905 5.66953 3.40545C4.93359 3.71014 4.27031 4.14842 3.70078 4.70624C3.13359 5.25965 2.6805 5.91898 2.36719 6.64686C2.04141 7.40389 1.875 8.2078 1.875 9.03514C1.875 9.81561 2.03438 10.6289 2.35078 11.4562C2.61563 12.1476 2.99531 12.8648 3.48047 13.589C4.24922 14.7351 5.30625 15.9305 6.61875 17.1422C8.79375 19.1508 10.9477 20.5383 11.0391 20.5945L11.5945 20.9508C11.8406 21.1078 12.157 21.1078 12.4031 20.9508L12.9586 20.5945C13.05 20.5359 15.2016 19.1508 17.3789 17.1422C18.6914 15.9305 19.7484 14.7351 20.5172 13.589C21.0023 12.8648 21.3844 12.1476 21.6469 11.4562C21.9633 10.6289 22.1227 9.81561 22.1227 9.03514C22.125 8.2078 21.9586 7.40389 21.6328 6.64686V6.64686Z\",\n fill: \"#ff5f71\"\n })\n], -1))\nconst _hoisted_9 = [\n _hoisted_8\n]\nconst _hoisted_10 = { class: \"card__buttons\" }\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n d: \"M7 18.0007C5.9 18.0007 5.01 18.9007 5.01 20.0007C5.01 21.1007 5.9 22.0007 7 22.0007C8.1 22.0007 9 21.1007 9 20.0007C9 18.9007 8.1 18.0007 7 18.0007ZM17 18.0007C15.9 18.0007 15.01 18.9007 15.01 20.0007C15.01 21.1007 15.9 22.0007 17 22.0007C18.1 22.0007 19 21.1007 19 20.0007C19 18.9007 18.1 18.0007 17 18.0007ZM15.55 13.0007C16.3 13.0007 16.96 12.5907 17.3 11.9707L20.88 5.48073C20.9643 5.32916 21.0075 5.1582 21.0054 4.98479C21.0034 4.81137 20.956 4.6415 20.8681 4.49199C20.7803 4.34248 20.6549 4.21851 20.5043 4.13235C20.3538 4.04619 20.1834 4.00082 20.01 4.00073H5.21L4.27 2.00073H1V4.00073H3L6.6 11.5907L5.25 14.0307C4.52 15.3707 5.48 17.0007 7 17.0007H19V15.0007H7L8.1 13.0007H15.55ZM6.16 6.00073H18.31L15.55 11.0007H8.53L6.16 6.00073Z\",\n fill: \"white\"\n })\n], -1))\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n d: \"M7 18.0007C5.9 18.0007 5.01 18.9007 5.01 20.0007C5.01 21.1007 5.9 22.0007 7 22.0007C8.1 22.0007 9 21.1007 9 20.0007C9 18.9007 8.1 18.0007 7 18.0007ZM17 18.0007C15.9 18.0007 15.01 18.9007 15.01 20.0007C15.01 21.1007 15.9 22.0007 17 22.0007C18.1 22.0007 19 21.1007 19 20.0007C19 18.9007 18.1 18.0007 17 18.0007ZM15.55 13.0007C16.3 13.0007 16.96 12.5907 17.3 11.9707L20.88 5.48073C20.9643 5.32916 21.0075 5.1582 21.0054 4.98479C21.0034 4.81137 20.956 4.6415 20.8681 4.49199C20.7803 4.34248 20.6549 4.21851 20.5043 4.13235C20.3538 4.04619 20.1834 4.00082 20.01 4.00073H5.21L4.27 2.00073H1V4.00073H3L6.6 11.5907L5.25 14.0307C4.52 15.3707 5.48 17.0007 7 17.0007H19V15.0007H7L8.1 13.0007H15.55ZM6.16 6.00073H18.31L15.55 11.0007H8.53L6.16 6.00073Z\",\n fill: \"white\"\n })\n], -1))\nconst _hoisted_13 = /*#__PURE__*/_createTextVNode(\" Remover \")\nconst _hoisted_14 = [\n _hoisted_12,\n _hoisted_13\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_HoverGallery = _resolveComponent(\"HoverGallery\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass(['card', { inBag: _ctx.bagIncludes(_ctx.product) }])\n }, [\n _createElementVNode(\"div\", {\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.gotToProductDetail(_ctx.product))),\n class: \"card__information\"\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass(['card__image', _ctx.isProductOutOfStock(_ctx.product) ? 'disabled' : ''])\n }, [\n _createVNode(_component_HoverGallery, {\n gallery: _ctx.product.imagesUrl,\n \"color-border\": \"transparent\"\n }, null, 8, [\"gallery\"])\n ], 2),\n _createElementVNode(\"div\", {\n class: \"card__content\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.gotToProductDetail(_ctx.product)))\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"h2\", _hoisted_2, _toDisplayString(_ctx.product.name), 1),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"h3\", _hoisted_4, _toDisplayString(_ctx.formatDecoins(_ctx.product.decoins)), 1),\n _createElementVNode(\"div\", _hoisted_5, [\n (!_ctx.isFavorite(_ctx.product))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"card__favorite--unchecked\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.addToFavorites(_ctx.product)), [\"stop\"]))\n }, _hoisted_7))\n : (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n class: \"card__button-remove-favorite--checked\",\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.removeFromFavoriteList(_ctx.product)), [\"stop\"]))\n }, _hoisted_9))\n ])\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n (!_ctx.bagIncludes(_ctx.product))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: _normalizeClass([\r\n 'card__button-add',\r\n _ctx.hasEnoughDecoins(_ctx.product) ||\r\n _ctx.isProductOutOfStock(_ctx.product) ||\r\n !_ctx.checkEnough(_ctx.product)\r\n ? 'disabled'\r\n : ''\r\n ]),\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.addToBag(_ctx.product)))\n }, [\n _hoisted_11,\n _createTextVNode(\" \" + _toDisplayString(_ctx.setButtonText(_ctx.product)), 1)\n ], 2))\n : (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n class: \"card__button-remove\",\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.removeFromBag(_ctx.product)))\n }, _hoisted_14))\n ])\n ], 2))\n}","\r\nimport {\r\n ComputedRef,\r\n defineComponent,\r\n onBeforeMount,\r\n PropType,\r\n ref,\r\n Ref\r\n} from \"vue\";\r\nimport { useStore } from \"vuex\";\r\nimport { computed } from \"@vue/reactivity\";\r\nimport { dispatchErrorBox, dispatchSuccessBox } from \"../../mixins\";\r\nimport { useRoute } from \"vue-router\";\r\nimport router from \"../../../../../src/routes\";\r\nimport { Product } from \"../../../../../domain/entities/shop/product/product\";\r\nimport { User } from \"../../../../../domain/entities/entities\";\r\nimport { RepositoryException } from \"../../../../../domain/exceptions/exceptions\";\r\nimport HoverGallery from \"./HoverGallery.vue\";\r\n\r\nexport default defineComponent({\r\n name: \"card\",\r\n components: {\r\n HoverGallery\r\n },\r\n props: {\r\n product: {\r\n type: Object as PropType,\r\n required: true\r\n },\r\n user: {\r\n type: Object as PropType,\r\n required: true\r\n }\r\n },\r\n\r\n setup(props) {\r\n const store = useStore();\r\n const route = useRoute();\r\n const autoPlayTimer = ref(0);\r\n\r\n /** Computed which contains the current page of the favorite list. */\r\n const currentPage: Ref = ref(Number(route.query.page));\r\n\r\n /** Computed that contains the products added to the bag. */\r\n const bagProducts: ComputedRef> = computed(() => {\r\n return store.getters[\"shop_module/productsInBag\"];\r\n });\r\n\r\n /** Computed that contains the products added to favorites.*/\r\n const favoriteProducts: ComputedRef> = computed(() => {\r\n return store.getters[\"shop_module/productsInFavoriteList\"];\r\n });\r\n\r\n /** Getter of the decoins with the subtraction of the values of the products added in the bag. */\r\n const balance: ComputedRef = computed(() => {\r\n return store.getters[\"shop_module/balance\"];\r\n });\r\n\r\n /** Function responsible for adding the product to the bag.\r\n * @param product parameter that receives an object of type Product as a variable. */\r\n async function addToBag(product: Product): Promise {\r\n try {\r\n product.quantity = 1;\r\n\r\n if (product.stock <= 0) {\r\n return;\r\n } else if (product.decoins > props.user.dcoins) {\r\n return;\r\n } else if (balance.value < product.decoins) {\r\n return;\r\n } else {\r\n await store.dispatch(\"shop_module/addToBag\", product);\r\n await dispatchSuccessBox(\"Produto adicionado no seu carrinho!\");\r\n }\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n /** Function responsible for removing the product from the bag.\r\n * @param product parameter that receives an object of type Product as a variable. */\r\n async function removeFromBag(product: Product): Promise {\r\n try {\r\n await store.dispatch(\"shop_module/removeFromBag\", product);\r\n await dispatchSuccessBox(\"Produto removido do seu carrinho!\");\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n /** Function responsible for adding the product to favorites.\r\n * @param product parameter that receives an object of type Product as a variable. */\r\n async function addToFavorites(product: Product): Promise {\r\n try {\r\n await store.dispatch(\"shop_module/addToFavorite\", product.id);\r\n await store.dispatch(\"shop_module/loadFavoriteProducts\", {\r\n page: currentPage.value,\r\n limit: 6\r\n });\r\n isFavorite(product);\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n /** Function responsible for removing the product from favorites.\r\n * @param product parameter that receives an object of type Product as a variable. */\r\n async function removeFromFavoriteList(product: Product): Promise {\r\n try {\r\n await store.dispatch(\r\n \"shop_module/removeProductFromFavorites\",\r\n product.id\r\n );\r\n await store.dispatch(\"shop_module/loadFavoriteProducts\", {\r\n page: currentPage.value,\r\n limit: 6\r\n });\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n /** Function responsible for checking if the product is in the bag.\r\n * @param product parameter that receives an object of type Product as a variable. */\r\n function bagIncludes(product: Product) {\r\n return bagProducts.value.find(item => item.id === product.id);\r\n }\r\n\r\n /** Function responsible for checking if the product is in the favorites.\r\n * @param product parameter that receives an object of type Product as a variable. */\r\n function isFavorite(product: Product) {\r\n return favoriteProducts.value.find(item => item.id === product.id);\r\n }\r\n\r\n /** Function responsible for setting the product id value in the URL.\r\n * @param product parameter that receives an object of type Product as a variable. */\r\n function gotToProductDetail(product: Product): void {\r\n router.push({\r\n name: \"product_detail\",\r\n params: { productID: product.id }\r\n });\r\n }\r\n\r\n /** Function responsible for validating the user's decoins. If the user does not have enough decoins to buy\r\n * the product, the add button in the bag is blocked.\r\n * @param product parameter that receives an object of type Product as a variable. */\r\n function hasEnoughDecoins(product: Product): boolean {\r\n return product.decoins > props.user.dcoins;\r\n }\r\n\r\n /** Function responsible for checking if the product is still in stock.\r\n * @param product parameter that receives an object of type Product as a variable. */\r\n const isProductOutOfStock = (product: Product): boolean => {\r\n return product.stock < 1;\r\n };\r\n\r\n /** Function used to control whether for each product added to the bag it is still possible for the user to add\r\n * the other products that are available\r\n * @param product product to do validation. */\r\n function checkEnough(product: Product) {\r\n const remain = balance.value - product.decoins;\r\n const inBag = bagIncludes(product);\r\n\r\n if (product.stock <= 0) {\r\n return true;\r\n }\r\n\r\n if (inBag) {\r\n return true;\r\n }\r\n\r\n if (remain >= 0) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /** Function responsible for displaying a label informing the product status. */\r\n function setButtonText(product: Product): string {\r\n if (!checkEnough(product)) {\r\n return \"decoins insuficientes\";\r\n } else if (isProductOutOfStock(product)) {\r\n return \"sem estoque\";\r\n } else {\r\n return \"adicionar\";\r\n }\r\n }\r\n\r\n /** Function responsible for formatting the decoins to Brazilian currency. */\r\n function formatDecoins(decoins: number) {\r\n return Intl.NumberFormat(\"pt-br\").format(decoins);\r\n }\r\n\r\n return {\r\n bagProducts,\r\n favoriteProducts,\r\n balance,\r\n autoPlayTimer,\r\n addToBag,\r\n removeFromBag,\r\n bagIncludes,\r\n addToFavorites,\r\n isFavorite,\r\n removeFromFavoriteList,\r\n gotToProductDetail,\r\n hasEnoughDecoins,\r\n isProductOutOfStock,\r\n checkEnough,\r\n setButtonText,\r\n formatDecoins\r\n };\r\n }\r\n});\r\n","import { render } from \"./Card.vue?vue&type=template&id=3912d23c&scoped=true&ts=true\"\nimport script from \"./Card.vue?vue&type=script&lang=ts\"\nexport * from \"./Card.vue?vue&type=script&lang=ts\"\n\nimport \"./Card.vue?vue&type=style&index=0&id=3912d23c&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3912d23c\"]])\n\nexport default __exports__","import { normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, withModifiers as _withModifiers, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '../../../assets/static/arrow_right_24px.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-ac9bbe42\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"filter\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \"Filtros\", -1))\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", null, \"Lojas\", -1))\nconst _hoisted_4 = { class: \"filter__shops\" }\nconst _hoisted_5 = [\"id\", \"name\", \"value\", \"checked\"]\nconst _hoisted_6 = { class: \"filter__detail\" }\nconst _hoisted_7 = [\"for\"]\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"filter__line\" }, null, -1))\nconst _hoisted_9 = { class: \"filter__shops\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", null, \"Valores\", -1))\nconst _hoisted_11 = [\"id\", \"name\", \"value\", \"checked\", \"onChange\"]\nconst _hoisted_12 = { class: \"filter__detail\" }\nconst _hoisted_13 = [\"for\"]\nconst _hoisted_14 = { class: \"filter__inputs\" }\nconst _hoisted_15 = [\"value\"]\nconst _hoisted_16 = [\"value\"]\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"button\", { class: \"submit\" }, null, -1))\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"filters__line\" }, null, -1))\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", null, \"Categorias\", -1))\nconst _hoisted_20 = { class: \"filter__shops\" }\nconst _hoisted_21 = [\"id\", \"name\", \"value\", \"checked\"]\nconst _hoisted_22 = { class: \"filter__detail\" }\nconst _hoisted_23 = [\"for\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass(['filter__content', { open: _ctx.open }]),\n id: \"filters\"\n }, [\n _createElementVNode(\"div\", {\n class: \"filter__select\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.select()))\n }, [\n _createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"Ícone de seta\",\n style: _normalizeStyle(_ctx.open ? `transform: rotate(90deg);` : '')\n }, null, 4),\n _hoisted_2\n ]),\n _hoisted_3,\n _createElementVNode(\"div\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.filters.shops, (shop, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"filter__checkbox\",\n key: index\n }, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n id: shop.id + 'shop',\n name: shop.name,\n value: shop.id,\n checked: _ctx.$route.query.shop?.includes(String(shop.id)),\n onChange: _cache[1] || (_cache[1] = ($event: any) => (_ctx.selectShops($event.target)))\n }, null, 40, _hoisted_5),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"label\", {\n for: shop.id + 'shop'\n }, _toDisplayString(shop.name), 9, _hoisted_7),\n _createElementVNode(\"span\", null, \"(\" + _toDisplayString(shop.quantityProducts) + \")\", 1)\n ])\n ]))\n }), 128))\n ]),\n _hoisted_8,\n _createElementVNode(\"div\", _hoisted_9, [\n _hoisted_10,\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.arrayPrices, (price, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"filter__checkbox\",\n key: index\n }, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n id: price.id + 'price',\n name: price.label,\n value: price.id,\n checked: _ctx.$route.query.price?.includes(String(price.id)),\n onChange: ($event: any) => (_ctx.selectPrice(price, $event.target))\n }, null, 40, _hoisted_11),\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"label\", {\n for: price.id + 'price'\n }, _toDisplayString(price.label), 9, _hoisted_13),\n _createElementVNode(\"span\", null, \"(\" + _toDisplayString(_ctx.getQuantityByPrice(price.id)) + \")\", 1)\n ])\n ]))\n }), 128)),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"form\", {\n id: \"prices\",\n onSubmit: _cache[4] || (_cache[4] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.submit && _ctx.submit(...args)), [\"prevent\"]))\n }, [\n _createElementVNode(\"input\", {\n type: \"number\",\n placeholder: \"Mínimo\",\n class: \"filter__input-price\",\n name: \"min\",\n min: \"0\",\n value: _ctx.minPrice,\n onChange: _cache[2] || (_cache[2] = ($event: any) => (_ctx.selectMinInputPrice($event.target)))\n }, null, 40, _hoisted_15),\n _createElementVNode(\"input\", {\n type: \"number\",\n placeholder: \"Máximo\",\n class: \"filter__input-price\",\n name: \"max\",\n min: \"0\",\n value: _ctx.maxPrice,\n onChange: _cache[3] || (_cache[3] = ($event: any) => (_ctx.selectMaxInputPrice($event.target)))\n }, null, 40, _hoisted_16),\n _hoisted_17\n ], 32)\n ])\n ]),\n _hoisted_18,\n _hoisted_19,\n _createElementVNode(\"div\", _hoisted_20, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.filters.categories, (category, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"filter__checkbox\",\n key: index\n }, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n id: category.id + 'category',\n name: category.name,\n value: category.id,\n checked: _ctx.$route.query.category?.includes(String(category.id)),\n onChange: _cache[5] || (_cache[5] = ($event: any) => (_ctx.selectCategories($event.target)))\n }, null, 40, _hoisted_21),\n _createElementVNode(\"div\", _hoisted_22, [\n _createElementVNode(\"label\", {\n for: category.id + 'category'\n }, _toDisplayString(category.name), 9, _hoisted_23),\n _createElementVNode(\"span\", null, \"(\" + _toDisplayString(category.quantityProducts) + \")\", 1)\n ])\n ]))\n }), 128))\n ])\n ], 2)\n ]))\n}","\r\nimport {ComputedRef, defineComponent, PropType, ref, Ref} from \"vue\";\r\nimport {computed} from \"@vue/reactivity\";\r\nimport {useRoute, useRouter} from \"vue-router\";\r\nimport {useStore} from \"vuex\";\r\nimport {Filter} from \"../../../../../domain/entities/shop/filter/filter\";\r\nimport {Prices} from \"../../../../../domain/entities/shop/filter/prices\";\r\nimport {Category} from \"../../../../../domain/entities/shop/filter/category\";\r\nimport {Shop} from \"../../../../../domain/entities/shop/filter/shop\";\r\nimport {dispatchErrorBox} from \"../../mixins\";\r\nimport {RepositoryException} from \"../../../../../domain/exceptions/exceptions\";\r\n\r\nexport default defineComponent({\r\n name: \"filterShop\",\r\n props: {\r\n filter: {\r\n type: Object as PropType,\r\n required: true\r\n }\r\n },\r\n\r\n setup: function(props) {\r\n const store = useStore();\r\n const route = useRoute();\r\n const router = useRouter();\r\n\r\n /** Array used for listing prices with in the filter and to send the entity in the request. */\r\n const arrayPrices: Array = [\r\n new Prices(1, \"Até 10\", 0, 10),\r\n new Prices(2, \"10-100\", 10, 100),\r\n new Prices(3, \"100-1000\", 100, 1000),\r\n new Prices(4, \"Acima de 1000\", 1000, 0)\r\n ];\r\n\r\n /** Variable that gets the current page through the route. */\r\n const currentPage: Ref = ref(Number(route.params.productsPage));\r\n\r\n /** Variable responsible for opening and closing the filter in mobile format. */\r\n const open: Ref = ref(false);\r\n\r\n /** Computed which controls the current state of the filter.\r\n * In this variable, all filters are grouped.\r\n * To load the products that are in this variable it is necessary to call the variable through the store. */\r\n const currentFilter: ComputedRef = computed(() => {\r\n return store.getters[\"shop_module/currentFilter\"];\r\n });\r\n\r\n /** List of selectable filter entities. */\r\n const filters: ComputedRef = computed(() => {\r\n return props.filter;\r\n });\r\n\r\n /** Variable that receives the lowest value of the filter input. */\r\n const minPrice: ComputedRef = computed(() => {\r\n return store.getters[\"shop_module/minPrice\"];\r\n });\r\n\r\n /** Variable that receives the lowest value of the filter input. */\r\n const maxPrice: ComputedRef = computed(() => {\r\n return store.getters[\"shop_module/maxPrice\"];\r\n });\r\n\r\n /** Function responsible for setting the amount of products available per entity. */\r\n function getQuantityByPrice(priceID: number): number {\r\n switch (priceID) {\r\n case 1:\r\n return filters.value.values.firstValue;\r\n\r\n case 2:\r\n return filters.value.values.secondValue;\r\n\r\n case 3:\r\n return filters.value.values.thirtyValue;\r\n\r\n case 4:\r\n return filters.value.values.fourthValue;\r\n }\r\n return 0;\r\n }\r\n\r\n /** Function responsible for opening and closing the filter in mobile format. */\r\n function select(): void {\r\n open.value = !open.value;\r\n }\r\n\r\n /** Function that receives as a parameter the minimum value typed in the input.\r\n * Then this value is set in the store. */\r\n async function selectMinInputPrice(input: HTMLInputElement): Promise {\r\n try {\r\n await store.dispatch(\"shop_module/setMinPrice\", Number(input.value));\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n /** Function that receives as a parameter the maximum value typed in the input.\r\n * Then this value is set in the store. */\r\n async function selectMaxInputPrice(input: HTMLInputElement): Promise {\r\n try {\r\n await store.dispatch(\"shop_module/setMaxPrice\", Number(input.value));\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n /** Function responsible for updating the URL with the values set in the inputs. */\r\n async function submit(): Promise {\r\n await updateRouteQuery();\r\n }\r\n\r\n /** Function responsible for getting the selected price inputs and checking if they are checked or unchecked.\r\n * If the input is checked, the URL is updated with the entity's id.\r\n * If the input is unchecked the entity id is removed from the URL. */\r\n async function selectPrice(\r\n priceEntity: Prices,\r\n input: HTMLInputElement\r\n ): Promise {\r\n const inputID: string = input.value;\r\n\r\n if (input.checked) {\r\n const filtered = arrayPrices.filter(e => String(e.id) === inputID);\r\n\r\n if (filtered.length > 0) {\r\n const price = filtered[0];\r\n currentFilter.value.prices.push(price);\r\n\r\n await loadFilters(currentFilter.value);\r\n await store.dispatch(\r\n \"shop_module/currentFilter\",\r\n currentFilter.value\r\n );\r\n await updateRouteQuery();\r\n }\r\n } else {\r\n const newFilter = new Array();\r\n\r\n for (const it of currentFilter.value.prices) {\r\n if (String(it.id) !== inputID) {\r\n newFilter.push(it);\r\n }\r\n }\r\n\r\n currentFilter.value.prices.splice(0, currentFilter.value.prices.length);\r\n currentFilter.value.prices.push(...newFilter);\r\n\r\n await loadFilters(currentFilter.value);\r\n\r\n await updateRouteQuery();\r\n }\r\n }\r\n\r\n async function loadFilters(filter: Filter): Promise {\r\n try {\r\n await store.dispatch(\"shop_module/loadFilters\", filter);\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n /** Function responsible for taking the inputs of the selected categories and checking if they are checked or unchecked.\r\n * If the input is checked, the URL is updated with the entity's id.\r\n * If the input is unchecked the entity id is removed from the URL. */\r\n async function selectCategories(input: HTMLInputElement): Promise {\r\n const inputID: string = input.value;\r\n\r\n if (input.checked) {\r\n const filtered = props.filter.categories.filter(\r\n e => String(e.id) === inputID\r\n );\r\n\r\n if (filtered.length > 0) {\r\n const category = filtered[0];\r\n currentFilter.value.categories.push(category);\r\n\r\n await loadFilters(currentFilter.value);\r\n await store.dispatch(\r\n \"shop_module/currentFilter\",\r\n currentFilter.value\r\n );\r\n\r\n await updateRouteQuery();\r\n }\r\n } else {\r\n const newFilter = new Array();\r\n\r\n for (const it of currentFilter.value.categories) {\r\n if (String(it.id) !== inputID) {\r\n newFilter.push(it);\r\n }\r\n }\r\n\r\n currentFilter.value.categories.splice(\r\n 0,\r\n currentFilter.value.categories.length\r\n );\r\n currentFilter.value.categories.push(...newFilter);\r\n\r\n await loadFilters(currentFilter.value);\r\n\r\n await updateRouteQuery();\r\n }\r\n }\r\n\r\n /** Function responsible for getting the inputs from the selected stores and checking if they are checked or unchecked.\r\n * If the input is checked, the URL is updated with the entity's id.\r\n * If the input is unchecked the entity id is removed from the URL. */\r\n async function selectShops(input: HTMLInputElement): Promise {\r\n const inputID: string = input.value;\r\n\r\n if (input.checked) {\r\n const filtered = props.filter.shops.filter(\r\n e => String(e.id) == inputID\r\n );\r\n if (filtered.length > 0) {\r\n const shop = filtered[0];\r\n currentFilter.value.shops.push(shop);\r\n\r\n await loadFilters(currentFilter.value);\r\n await store.dispatch(\r\n \"shop_module/currentFilter\",\r\n currentFilter.value\r\n );\r\n\r\n await updateRouteQuery();\r\n }\r\n } else {\r\n const newFilter = new Array();\r\n\r\n for (const it of currentFilter.value.shops) {\r\n if (String(it.id) !== inputID) {\r\n newFilter.push(it);\r\n }\r\n }\r\n\r\n currentFilter.value.shops.splice(0, currentFilter.value.shops.length);\r\n currentFilter.value.shops.push(...newFilter);\r\n\r\n await loadFilters(currentFilter.value);\r\n\r\n await updateRouteQuery();\r\n }\r\n }\r\n\r\n /** Updates the route queries merging the queries selected with the current queries if there's any. */\r\n async function updateRouteQuery(): Promise {\r\n const currentShops = new Array();\r\n const currentCategories = new Array();\r\n const currentPrices = new Array();\r\n const minValue = new Array();\r\n const maxValue = new Array();\r\n\r\n for (const it of currentFilter.value.shops) {\r\n currentShops.push(String(it.id));\r\n }\r\n\r\n for (const it of currentFilter.value.categories) {\r\n currentCategories.push(String(it.id));\r\n }\r\n\r\n for (const it of currentFilter.value.prices) {\r\n currentPrices.push(String(it.id));\r\n }\r\n\r\n if (minPrice.value > 0) {\r\n minValue.push(minPrice.value);\r\n }\r\n\r\n if (maxPrice.value > 0) {\r\n maxValue.push(maxPrice.value);\r\n }\r\n\r\n await router.push({\r\n name: \"shop\",\r\n params: { productsPage: 1 },\r\n query: {\r\n shop: [...currentShops],\r\n category: [...currentCategories],\r\n price: [...currentPrices],\r\n min: minValue,\r\n max: maxValue\r\n }\r\n });\r\n }\r\n\r\n return {\r\n arrayPrices,\r\n filters,\r\n minPrice,\r\n maxPrice,\r\n open,\r\n currentPage,\r\n selectShops,\r\n selectCategories,\r\n selectPrice,\r\n selectMinInputPrice,\r\n selectMaxInputPrice,\r\n select,\r\n submit,\r\n getQuantityByPrice\r\n };\r\n }\r\n});\r\n","import { render } from \"./Filter.vue?vue&type=template&id=ac9bbe42&scoped=true&ts=true\"\nimport script from \"./Filter.vue?vue&type=script&lang=ts\"\nexport * from \"./Filter.vue?vue&type=script&lang=ts\"\n\nimport \"./Filter.vue?vue&type=style&index=0&id=ac9bbe42&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-ac9bbe42\"]])\n\nexport default __exports__","\r\nimport router from \"../../../../src/routes\";\r\nimport {\r\n computed,\r\n ComputedRef,\r\n defineComponent,\r\n onBeforeMount,\r\n Ref,\r\n ref,\r\n watch\r\n} from \"vue\";\r\nimport { useRoute } from \"vue-router\";\r\nimport { useStore } from \"vuex\";\r\nimport Card from \"../../components/application/shop/Card.vue\";\r\nimport FilterShop from \"../../components/application/shop/Filter.vue\";\r\nimport PaginationDefault from \"../../components/application/shop/PaginationDefault.vue\";\r\nimport ContentFallback from \"../../components/application/moldure/ContentFallback.vue\";\r\nimport { Prices } from \"../../../../domain/entities/shop/filter/prices\";\r\nimport { Filter } from \"../../../../domain/entities/shop/filter/filter\";\r\nimport { Product } from \"../../../../domain/entities/shop/product/product\";\r\nimport { User } from \"../../../../domain/entities/entities\";\r\nimport { dispatchErrorBox, formatSearchQuery } from \"../../components/mixins\";\r\nimport { RepositoryException } from \"../../../../domain/exceptions/exceptions\";\r\n\r\nexport default defineComponent({\r\n components: {\r\n Card,\r\n FilterShop,\r\n PaginationDefault,\r\n ContentFallback\r\n },\r\n\r\n setup() {\r\n const store = useStore();\r\n const route = useRoute();\r\n\r\n /** Array used for listing prices with in the filter and to send the entity in the request. */\r\n const arrayPrices: Prices[] = [\r\n new Prices(1, \"10\", 0, 10),\r\n new Prices(2, \"10-100\", 10, 100),\r\n new Prices(3, \"100-1000\", 100, 1000),\r\n new Prices(4, \"Acima de 1000\", 1000, 0)\r\n ];\r\n\r\n /** Variable that gets the current page of the list of products by route.*/\r\n const currentPage: Ref = ref(Number(route.params.productsPage));\r\n\r\n /** Variable that gets the current page of the list of products in the favorites by route. */\r\n const currentPageFavoriteProducts: Ref = ref(\r\n Number(route.query.page)\r\n );\r\n\r\n /** Value entered by the user in the search bar. */\r\n const search: Ref = ref(\"\");\r\n\r\n /** Computed which takes the values of the minPrice and maxPrice inputs set in the store. */\r\n const inputFilter: ComputedRef = computed(() => {\r\n return store.getters[\"shop_module/inputFilter\"];\r\n });\r\n\r\n /** Computed which controls the current state of the filter.\r\n * In this variable, all filters are grouped.\r\n * To load the products that are in this variable it is necessary to call the variable through the store. */\r\n const currentFilter: ComputedRef = computed(() => {\r\n return store.getters[\"shop_module/currentFilter\"];\r\n });\r\n\r\n /** Computed which returns the number of pages coming from the request.\r\n * Computed passed as prop to the Pagination component. */\r\n const pages: ComputedRef = computed(() => {\r\n return store.getters[\"shop_module/productsPages\"];\r\n });\r\n\r\n /** List of registered products coming from the request. */\r\n const products: ComputedRef> = computed(() => {\r\n return store.getters[\"shop_module/products\"];\r\n });\r\n\r\n /** List of filter selectable entities.\r\n * Computed passed as a prop to the Filter component. */\r\n const filter: ComputedRef = computed(() => {\r\n return store.getters[\"shop_module/filter\"];\r\n });\r\n\r\n /** Computed that returns the products in the bag. */\r\n const bagProducts: ComputedRef> = computed(() => {\r\n return store.getters[\"shop_module/productsInBag\"];\r\n });\r\n\r\n /** Variable that receives the lowest value of the filter input. */\r\n const minPrice: ComputedRef = computed(() => {\r\n return store.getters[\"shop_module/minPrice\"];\r\n });\r\n\r\n /** Variable that receives the lowest value of the filter input. */\r\n const maxPrice: ComputedRef = computed(() => {\r\n return store.getters[\"shop_module/maxPrice\"];\r\n });\r\n\r\n /** Getter of the decoins with the subtraction of the values of the products added in the bag. */\r\n const balance: ComputedRef = computed(() => {\r\n return store.getters[\"shop_module/balance\"];\r\n });\r\n\r\n /** Variable to get the user data. */\r\n const user: ComputedRef = computed(() => {\r\n return store.getters[\"userProfile_module/user\"];\r\n });\r\n\r\n /** Key that references the timer in progress. Used to cancel the timeout. */\r\n let timerId;\r\n\r\n onBeforeMount(async () => {\r\n try {\r\n await store.dispatch(\"userProfile_module/loadUser\");\r\n await store.dispatch(\"shop_module/loadFilters\", currentFilter.value);\r\n await store.dispatch(\r\n \"shop_module/setDecoinsInWallet\",\r\n user.value.dcoins\r\n );\r\n await store.dispatch(\"shop_module/loadFavoriteProducts\", {\r\n page: currentPageFavoriteProducts.value,\r\n limit: 6\r\n });\r\n\r\n await store.dispatch(\"shop_module/loadBagProducts\");\r\n\r\n /** Checks if there are shops in the URL. If so, the entity referring to that id is assigned to the shops array.*/\r\n if (route.query.shop) {\r\n const queryShop = route.query.shop as Array;\r\n currentFilter.value.shops = filter.value.shops.filter(e =>\r\n queryShop.includes(String(e.id))\r\n );\r\n }\r\n\r\n /** Checks if there are prices in the URL. If so, the entity referring to that id is assigned to the prices array.*/\r\n if (route.query.price) {\r\n const queryPrice = route.query.price as Array;\r\n\r\n currentFilter.value.prices = arrayPrices.filter(e =>\r\n queryPrice.includes(String(e.id))\r\n );\r\n }\r\n\r\n /** Checks if there are categories in the URL. If so, the entity referring to that id is assigned to the shops array.*/\r\n if (route.query.category) {\r\n const queryCategory = route.query.category as Array;\r\n\r\n currentFilter.value.categories = filter.value.categories.filter(e =>\r\n queryCategory.includes(String(e.id))\r\n );\r\n }\r\n\r\n if (route.query.min) {\r\n const minValue = Number(route.query.min);\r\n await store.dispatch(\"shop_module/setMinPrice\", minValue);\r\n }\r\n\r\n if (route.query.max) {\r\n const maxValue = Number(route.query.max);\r\n await store.dispatch(\"shop_module/setMaxPrice\", maxValue);\r\n }\r\n\r\n await store.dispatch(\"shop_module/loadProducts\", {\r\n filter: currentFilter.value,\r\n page: currentPage.value,\r\n min: minPrice.value,\r\n max: maxPrice.value\r\n });\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n });\r\n\r\n /** Updates the page to the current page. */\r\n watch(\r\n () => route.params.productsPage,\r\n () => {\r\n if (route.params.productsPage) {\r\n currentPage.value = Number(route.params.productsPage);\r\n }\r\n return;\r\n }\r\n );\r\n\r\n /** Updates the current page with the filters in the URL. */\r\n watch(\r\n () => currentPage.value,\r\n async () => {\r\n await router.push({\r\n name: \"shop\",\r\n params: { productsPage: currentPage.value },\r\n query: {\r\n shop: [...currentFilter.value.shops.map(e => e.id)],\r\n category: [...currentFilter.value.categories.map(e => e.id)],\r\n price: [...currentFilter.value.prices.map(e => e.id)]\r\n }\r\n });\r\n }\r\n );\r\n\r\n /** Watch responsible for loading the products according to the filters passed by the URL.*/\r\n watch(\r\n () => route.query,\r\n async () => {\r\n if (route.query.shop) {\r\n const queryShop = route.query.shop as Array;\r\n\r\n currentFilter.value.shops = filter.value.shops.filter(e =>\r\n queryShop.includes(String(e.id))\r\n );\r\n }\r\n\r\n if (route.query.category) {\r\n const queryCategories = route.query.category as Array;\r\n\r\n currentFilter.value.categories = filter.value.categories.filter(e =>\r\n queryCategories.includes(String(e.id))\r\n );\r\n }\r\n currentFilter.value.searchQuery = search.value;\r\n\r\n try {\r\n await store.dispatch(\"shop_module/loadProducts\", {\r\n filter: currentFilter.value,\r\n page: currentPage.value,\r\n min: minPrice.value,\r\n max: maxPrice.value\r\n });\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n );\r\n\r\n /** Function used to search for products by name. */\r\n async function searchProduct(searchQuery: string): Promise {\r\n try {\r\n clearTimeout(timerId);\r\n timerId = setTimeout(async () => {\r\n search.value = formatSearchQuery(searchQuery);\r\n currentFilter.value.searchQuery = search.value;\r\n await store.dispatch(\"shop_module/setInputFilter\", {\r\n page: currentPage.value,\r\n filter: currentFilter.value\r\n });\r\n await store.dispatch(\"shop_module/loadFilters\", currentFilter.value);\r\n }, 500);\r\n } catch (e) {\r\n if (e instanceof RepositoryException) {\r\n await dispatchErrorBox(e.message);\r\n } else {\r\n console.error(e);\r\n await dispatchErrorBox(\"Ocorreu um erro inesperado.\");\r\n }\r\n }\r\n }\r\n\r\n return {\r\n balance,\r\n products,\r\n filter,\r\n pages,\r\n inputFilter,\r\n currentPage,\r\n bagProducts,\r\n user,\r\n search,\r\n searchProduct\r\n };\r\n }\r\n});\r\n","import { render } from \"./Shop.vue?vue&type=template&id=65615bea&scoped=true&ts=true\"\nimport script from \"./Shop.vue?vue&type=script&lang=ts\"\nexport * from \"./Shop.vue?vue&type=script&lang=ts\"\n\nimport \"./Shop.vue?vue&type=style&index=0&id=65615bea&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-65615bea\"]])\n\nexport default __exports__","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABGSURBVHgB7dOxCQAwCETRI7s5dZZLkwG8Dyki98FOfJVSSqMqgZaxWwKIAyDEBWyEABZCgXYU2HeeAO3jBLCOu6FHS+mDDuPEByWRFV55AAAAAElFTkSuQmCC\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Shop.vue?vue&type=style&index=0&id=65615bea&scoped=true&lang=css\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Filter.vue?vue&type=style&index=0&id=ac9bbe42&scoped=true&lang=css\"","import { openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-da81f2f4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"src\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"img\", {\n alt: \"Foto do produto\",\n class: \"image\",\n onMouseover: _cache[0] || (_cache[0] = ($event: any) => (_ctx.isHover = true)),\n onMouseout: _cache[1] || (_cache[1] = ($event: any) => (_ctx.isHover = false)),\n src: _ctx.renderImage\n }, null, 40, _hoisted_1))\n}","\r\nimport {\r\n computed,\r\n defineComponent,\r\n onMounted,\r\n PropType,\r\n ref,\r\n watch\r\n} from \"vue\";\r\nimport { imagesUrl } from \"../../../../../domain/entities/shop/product/product\";\r\n\r\nconst __default__ = defineComponent({\r\n name: \"HoverGallery\",\r\n props: {\r\n gallery: {\r\n type: Array as PropType,\r\n required: true\r\n },\r\n colorBorder: {\r\n type: String,\r\n default: \"#c4c4c4\"\r\n }\r\n },\r\n setup(props) {\r\n const isHover = ref(false);\r\n const gallery = computed(() => props.gallery);\r\n const renderImage = ref(\"\");\r\n const renderIndex = ref(0);\r\n\r\n onMounted(() => {\r\n if (!gallery.value || !gallery.value[0])\r\n return (renderImage.value = require(\"../../../assets/static/nothing-found.svg\"));\r\n\r\n renderImage.value = gallery.value[0].url;\r\n });\r\n\r\n function nextImage() {\r\n renderIndex.value = renderIndex.value + 1;\r\n\r\n if (gallery?.value[renderIndex.value]?.url)\r\n return (renderImage.value = gallery.value[renderIndex.value].url);\r\n\r\n renderIndex.value = -1;\r\n }\r\n\r\n const intervalId = ref();\r\n watch(\r\n () => isHover.value,\r\n isHover => {\r\n if (isHover) return (intervalId.value = setInterval(nextImage, 950));\r\n\r\n clearInterval(intervalId.value);\r\n },\r\n { immediate: true }\r\n );\r\n\r\n watch(\r\n () => gallery.value,\r\n async () => {\r\n renderImage.value = gallery.value[0].url;\r\n }\r\n );\r\n\r\n return {\r\n renderImage,\r\n isHover\r\n };\r\n }\r\n});\r\n\nimport { useCssVars as _useCssVars } from 'vue'\nconst __injectCSSVars__ = () => {\n_useCssVars(_ctx => ({\n \"1fb69869\": (_ctx.colorBorder)\n}))}\nconst __setup__ = __default__.setup\n__default__.setup = __setup__\n ? (props, ctx) => { __injectCSSVars__();return __setup__(props, ctx) }\n : __injectCSSVars__\n\nexport default __default__","import { render } from \"./HoverGallery.vue?vue&type=template&id=da81f2f4&scoped=true&ts=true\"\nimport script from \"./HoverGallery.vue?vue&type=script&lang=ts\"\nexport * from \"./HoverGallery.vue?vue&type=script&lang=ts\"\n\nimport \"./HoverGallery.vue?vue&type=style&index=0&id=da81f2f4&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\dev\\\\purple__bee\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-da81f2f4\"]])\n\nexport default __exports__","module.exports = __webpack_public_path__ + \"img/nothing-found.8d0d0b35.svg\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Card.vue?vue&type=style&index=0&id=3912d23c&scoped=true&lang=css\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./HoverGallery.vue?vue&type=style&index=0&id=da81f2f4&scoped=true&lang=css\""],"sourceRoot":""}