{"version":3,"file":"infinity_scroll.js","mappings":"uCAAAA,OAAOC,eAAiB,CAGtBC,WAAYF,OAAOG,YAGnBC,gBAAiBC,SAASC,cAAc,2BAGxCC,OAAQF,SAASC,cAAc,oBAE/BE,YAAa,WACX,MAAMD,OAASE,KAAKF,OACN,MAAVA,QAAgBA,OAAOG,cAAcC,YAAYJ,OACvD,EAEAK,eAAgB,SAAUC,SACxB,MAAMC,MAAQL,KACRM,WAAaD,MAAMZ,WAAWc,YAGpC,GAAIH,SAAWE,aAGbD,MAAMZ,WAAWe,aAAeJ,QAG5BC,MAAMZ,WAAWe,cAAgBF,YAAYD,MAAMN,cAGnDK,QAAUE,YACZ,OAAOD,MAAMZ,WAAWgB,SAAWJ,MAAMZ,WAAWiB,MAAMN,SAASO,GAEzE,EAEAC,aAAcC,iBACZ,MAAMC,QAAUd,KAAKP,WAAWgB,SAEhCM,QAAQC,IAAI,UAAWF,SAGvB,MAAMG,eAAiBC,MAAMJ,SACvBK,WAAaF,SAASG,OAGtBC,OAAS,IAAIC,UACbC,IAAMF,OAAOG,gBAAgBL,KAAM,aAGnCM,QAAUF,IAAIG,iBAAiB,0BAMrC,OAHAD,QAAQE,SAAQC,SAAYC,KAAKD,OAAOE,UAAS,IAG1CP,IAAIG,iBAAiB,iBAC9B,EAEAK,YAAalB,iBACX,MAAMR,MAAQL,KACRgC,YAAc3B,MAAMZ,WAAWe,aAC/ByB,QAAU5B,MAAMV,gBAEtB,IAAKsC,QAAQC,UAAUC,SAAS,aAAc,CAG5C9B,MAAMV,gBAAgBuC,UAAUE,IAAI,oBACV/B,MAAMO,gBACpBe,SAAQU,UAClBJ,QAAQK,YAAYD,QAAQ,IAG9BE,MAAMC,eACNjD,OAAOgD,MAAME,2BAGbpC,MAAMF,eAAe6B,YAAc,GAGnCU,iBAAiBC,SAGjBpD,OAAOgD,MAAMK,eAGbrD,OAAOsD,eAAeC,wBAGtBb,QAAQC,UAAUa,OAAO,YAC3B,CACF,EAEAC,KAAM,WACJ,MAAM3C,MAAQL,KACRF,OAASO,MAAMP,OAGUmD,aAApB5C,MAAMZ,aAEfF,OAAO2D,SAAS,CACdC,IAAK,EACLC,KAAM,EACNC,SAAU,WAGE,MAAVvD,QAEFA,OAAOwD,iBAAiB,SAAS,KAAQjD,MAAM0B,aAAY,IAGjE,GAGFxC,OAAO+D,iBAAiB,QAAQ,KAAQ9D,eAAewD,MAAK,G","sources":["webpack://build/../janiero/assets/javascripts/infinity_scroll.js"],"sourcesContent":["window.infiniteScroll = {\n\n // variável criada no arquivo _infinity_scroll.liquid\n pagination: window._pagination,\n\n // wrapper que contém/recebe os produtos\n productsWrapper: document.querySelector('[data-products-wrapper]'),\n\n // elemento que ativa a busca por mais produtos\n loadEl: document.querySelector('[data-load-more]'),\n\n stopLoading: function() {\n const loadEl = this.loadEl;\n if (loadEl != null) loadEl.parentElement.removeChild(loadEl);\n },\n\n setCurrentPage: function (_number) {\n const _this = this;\n const totalPages = _this.pagination.total_pages;\n\n // Verifica se a página atual não é maior que o total de páginas\n if (_number <= totalPages) {\n\n // Atualiza a página atual\n _this.pagination.current_page = _number;\n\n // Desabilita prosseguimento caso tenha chegado na última página, removendo o elemento que dá trigger\n if (_this.pagination.current_page >= totalPages) _this.stopLoading();\n\n // Atualiza a URL da próxima página\n if (_number < totalPages)\n return _this.pagination.next_url = _this.pagination.pages[_number].url\n }\n },\n\n loadProducts: async function() {\n const nextUrl = this.pagination.next_url;\n \n console.log('nextUrl', nextUrl);\n\n // Busca próxima leva de produtos\n const response = await fetch(nextUrl);\n const data = await response.text();\n\n // Parse\n const parser = new DOMParser();\n const doc = parser.parseFromString(data, \"text/html\");\n\n // Busca por script de adição no carrinho pela tag\n const scripts = doc.querySelectorAll('[data-product-scripts]');\n // console.log('scripts', scripts);\n\n scripts.forEach(script => { eval(script.innerText) })\n\n // Retorno dos produtos\n return doc.querySelectorAll('.product-block');\n },\n\n getNextPage: async function() {\n const _this = this;\n const currentPage = _this.pagination.current_page;\n const wrapper = _this.productsWrapper;\n\n if (!wrapper.classList.contains('searching')) {\n\n // Busca e adiciona novos produtos\n _this.productsWrapper.classList.add('searching');\n const newProducts = await _this.loadProducts();\n newProducts.forEach(product => {\n wrapper.appendChild(product);\n });\n\n store.setQuickView();\n window.store.setImagesBetweenProducts();\n\n // Atualiza página atual carregada e próxima etapa se tiver\n _this.setCurrentPage(currentPage + 1);\n\n // Atualiza o lazy load\n lazyLoadInstance.update();\n\n // Busca preços por ajax\n window.store.getPriceProd();\n\n // Atualiza imagens/cores dos produtos\n window.template_store.setProductBlockImages();\n\n // libera o processo de busca de novas páginas\n wrapper.classList.remove('searching');\n }\n },\n\n init: function() {\n const _this = this;\n const loadEl = _this.loadEl;\n\n // Verifica se há paginação definida antes de iniciar\n if (typeof _this.pagination != undefined) {\n\n window.scrollTo({\n top: 0,\n left: 0,\n behavior: 'smooth'\n })\n\n if (loadEl != null) {\n // Inicia com clique no botão\n loadEl.addEventListener('click', () => { _this.getNextPage() })\n }\n }\n }\n}\n\nwindow.addEventListener('load', () => { infiniteScroll.init() })\n"],"names":["window","infiniteScroll","pagination","_pagination","productsWrapper","document","querySelector","loadEl","stopLoading","this","parentElement","removeChild","setCurrentPage","_number","_this","totalPages","total_pages","current_page","next_url","pages","url","loadProducts","async","nextUrl","console","log","response","fetch","data","text","parser","DOMParser","doc","parseFromString","scripts","querySelectorAll","forEach","script","eval","innerText","getNextPage","currentPage","wrapper","classList","contains","add","product","appendChild","store","setQuickView","setImagesBetweenProducts","lazyLoadInstance","update","getPriceProd","template_store","setProductBlockImages","remove","init","undefined","scrollTo","top","left","behavior","addEventListener"],"sourceRoot":""}