{"version":3,"file":"infinity_scroll.js","mappings":"AAAAA,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,SAG1BM,eAAiBC,MAAMF,SAC7BG,QAAQC,IAAIH,UAEZ,MAAMI,WAAaJ,SAASK,OAK5B,OAFe,IAAIC,WACAC,gBAAgBH,KAAM,aAC9BI,iBAAiB,iBAC9B,EAEAC,YAAaX,iBACX,MAAMR,MAAQL,KACRyB,YAAcpB,MAAMZ,WAAWe,aAC/BkB,QAAUrB,MAAMV,gBAEjB+B,QAAQC,UAAUC,SAAS,eAG9BvB,MAAMV,gBAAgBgC,UAAUE,IAAI,aACpCxB,MAAMP,OAAO6B,UAAUE,IAAI,oBACDxB,MAAMO,gBACpBkB,SAAQC,UAAaL,QAAQM,YAAYD,QAAO,IAG5D1B,MAAMF,eAAesB,YAAc,GAGnCQ,iBAAiBC,SAGjB3C,OAAO4C,MAAMC,eAGbV,QAAQC,UAAUU,OAAO,aACzBhC,MAAMP,OAAO6B,UAAUU,OAAO,aAElC,EAEAC,KAAM,WACJ,MAAMjC,MAAQL,KACRF,OAASO,MAAMP,OAGUyC,aAApBlC,MAAMZ,YAED,MAAVK,QAEFA,OAAO0C,iBAAiB,SAAS,KAAQnC,MAAMmB,aAAY,GAGjE,GAGFjC,OAAOiD,iBAAiB,QAAQ,KAAQhD,eAAe8C,MAAK","sources":["webpack://build/../miudamobilia/assets/javascripts/infinity_scroll.js"],"sourcesContent":["window.infiniteScroll = {\r\n\r\n // variável criada no arquivo _infinity_scroll.liquid\r\n pagination: window._pagination,\r\n\r\n // wrapper que contém/recebe os produtos\r\n productsWrapper: document.querySelector('[data-products-wrapper]'),\r\n\r\n // elemento que ativa a busca por mais produtos\r\n loadEl: document.querySelector('[data-load-more]'),\r\n\r\n stopLoading: function() {\r\n const loadEl = this.loadEl;\r\n if (loadEl != null) loadEl.parentElement.removeChild(loadEl);\r\n },\r\n\r\n setCurrentPage: function (_number) {\r\n const _this = this;\r\n const totalPages = _this.pagination.total_pages;\r\n\r\n // Verifica se a página atual não é maior que o total de páginas\r\n if (_number <= totalPages) {\r\n\r\n // Atualiza a página atual\r\n _this.pagination.current_page = _number;\r\n\r\n // Desabilita prosseguimento caso tenha chegado na última página, removendo o elemento que dá trigger\r\n if (_this.pagination.current_page >= totalPages) _this.stopLoading();\r\n\r\n // Atualiza a URL da próxima página\r\n if (_number < totalPages)\r\n return _this.pagination.next_url = _this.pagination.pages[_number].url\r\n }\r\n },\r\n\r\n loadProducts: async function() {\r\n const nextUrl = this.pagination.next_url;\r\n\r\n // Busca próxima leva de produtos\r\n const response = await fetch(nextUrl);\r\n console.log(response)\r\n\r\n const data = await response.text();\r\n\r\n // Parse e retorno da resposta\r\n const parser = new DOMParser();\r\n const doc = parser.parseFromString(data, \"text/html\");\r\n return doc.querySelectorAll('.product-block');\r\n },\r\n\r\n getNextPage: async function() {\r\n const _this = this;\r\n const currentPage = _this.pagination.current_page;\r\n const wrapper = _this.productsWrapper;\r\n\r\n if (!wrapper.classList.contains('searching')) {\r\n\r\n // Busca e adiciona novos produtos\r\n _this.productsWrapper.classList.add('searching');\r\n _this.loadEl.classList.add('searching');\r\n const newProducts = await _this.loadProducts();\r\n newProducts.forEach(product => { wrapper.appendChild(product) });\r\n\r\n // Atualiza página atual carregada e próxima etapa se tiver\r\n _this.setCurrentPage(currentPage + 1);\r\n\r\n // Atualiza o lazy load\r\n lazyLoadInstance.update();\r\n\r\n // Busca preços por ajax\r\n window.store.getPriceProd();\r\n\r\n // libera o processo de busca de novas páginas\r\n wrapper.classList.remove('searching');\r\n _this.loadEl.classList.remove('searching');\r\n }\r\n },\r\n\r\n init: function() {\r\n const _this = this;\r\n const loadEl = _this.loadEl;\r\n\r\n // Verifica se há paginação definida antes de iniciar\r\n if (typeof _this.pagination != undefined) {\r\n\r\n if (loadEl != null) {\r\n // Inicia com clique no botão\r\n loadEl.addEventListener('click', () => { _this.getNextPage() })\r\n }\r\n }\r\n }\r\n}\r\n\r\nwindow.addEventListener('load', () => { infiniteScroll.init() })\r\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","response","fetch","console","log","data","text","DOMParser","parseFromString","querySelectorAll","getNextPage","currentPage","wrapper","classList","contains","add","forEach","product","appendChild","lazyLoadInstance","update","store","getPriceProd","remove","init","undefined","addEventListener"],"sourceRoot":""}