{"version":3,"file":"662.00030fe30f7a7ad936ab.js","mappings":"mJAKA,MAgFA,EAhF6BA,EACzBC,YAAWC,aAAYC,aAAYC,mBAAkBC,WAAUC,MAAKC,iBAEpE,MAAOC,EAAeC,IAAoBC,EAAAA,EAAAA,WAAS,IAC5CC,EAAaC,IAAkBF,EAAAA,EAAAA,UAASN,IACxCS,EAAaC,IAAkBJ,EAAAA,EAAAA,UAASJ,IACxCS,EAAcC,IAAmBN,EAAAA,EAAAA,UAASL,EAAWF,EAAaA,EAAaE,IAC/EY,EAAkBC,IAAuBR,EAAAA,EAAAA,UAASK,GAAgBZ,GACnEgB,GAAcC,EAAAA,EAAAA,QAAO,MAErBC,GAAcC,EAAAA,EAAAA,GAAU,qCAAqCC,QAAQ,iBAAkBR,GAAcQ,QAAQ,eAAgBpB,GAC7HqB,GAAaF,EAAAA,EAAAA,GAAU,oCA4D7B,OAjBAG,EAAAA,EAAAA,YAAU,KACN,IAAKjB,GAAgC,mBAAfD,EAAiC,CACnD,MAAMmB,EAAmBC,SAASC,cAAc,mBAChD,GAAIF,EAAkB,CAClB,IAAIG,EAAW,IAAIC,sBAAqB,SAAUC,IACZ,IAA9BA,EAAQ,GAAGC,gBAA2Bb,GACtCA,EAAYc,QAAQC,OAG5B,GAAG,CAAEC,UAAW,CAAC,KACjB1B,GAAiB,GAEjBoB,EAASO,QAAQV,EACrB,CACJ,IACD,IAGCW,EAAAA,cAAA,UAAQC,UAAU,wBACXrB,GAAkC,mBAAdV,IACnB8B,EAAAA,cAAA,UAAQE,IAAKpB,EAAamB,UAAU,oCAAoCE,QAASA,KA5DzFC,MAAM5B,GAAa6B,MAAK,SAAUC,GAC9B,OAAOA,EAASC,MACpB,IAAGF,MAAK,SAAUG,GACd,MACMC,GADS,IAAIC,WACAC,gBAAgBH,EAAM,aACzC,GAAIC,EAAK,CACL,MAAMG,EAAqBtB,SAASC,cAAc3B,GAC5CiD,EAAiBJ,EAAIlB,cAAc3B,GAEzC,GAAIgD,GAAsBC,EAAgB,CACtC,MAAMC,EAAWD,EAAeE,iBAAiB,MACjD,GAAID,GAAYA,EAASE,OAAS,EAAG,CACjCF,EAASG,SAASC,IAEd,MAAMC,EAAeD,EAAK3B,cAAc,cACpC4B,GACAC,OAAOC,KAAKC,iBAAiBH,GAEjCP,EAAmBW,YAAYL,EAAK,IAIxC,MAAM7B,EAAmBoB,EAAIe,eAAe,kBAC5C,GAAInC,EAAkB,CAClB,MAAMoC,EAASpC,EAAiBqC,QAAQzD,IACpCwD,GACAhD,EAAegD,EAEvB,CACA,MAAME,EAAkBjD,EAAeoC,EAASE,OAChDrC,EAAgBgD,GAChB9C,EAAoB8C,GAAmB7D,EAC3C,CACJ,CACJ,CACJ,IAAG8D,OAAM,SAAUC,GACfC,QAAQC,KAAK,yBAA0BF,EAC3C,GAuBkH,EAACG,SAAUpD,GAAmBO,GAE5Ia,EAAAA,cAAA,WAAMhB,GACD,C","sources":["webpack:///./Scripts/_Addons/PNInfiniteScroll/Components/InfiniteScrollButtonContainer.js"],"sourcesContent":["import React, { Fragment, useEffect, useState, useRef } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { translate } from '../../../Services/translation';\n//import FolderOpenIcon from '../Icons/folder_open_fill.svg?component';\n\nconst InfiniteScrollButton = ({\n elementQs, totalPages, totalCount, currentPageIndex, pageSize, url, scrollType\n}) => {\n const [componentInit, setComponentInit] = useState(false);\n const [currentPage, setCurrentPage] = useState(currentPageIndex);\n const [nextPageUrl, setNextPageUrl] = useState(url);\n const [currentTotal, setCurrentTotal] = useState(pageSize > totalCount ? totalCount : pageSize);\n const [isButtonDisabled, setIsButtonDisabled] = useState(currentTotal >= totalCount);\n const showMoreBtn = useRef(null);\n\n const showingText = translate('addons.infinitescroll.showingtext').replace('[currentTotal]', currentTotal).replace('[totalCount]', totalCount);\n const buttonText = translate('addons.infinitescroll.buttontext');\n\n const getNextPageItems = () => {\n fetch(nextPageUrl).then(function (response) {\n return response.text();\n }).then(function (html) {\n const parser = new DOMParser();\n const doc = parser.parseFromString(html, \"text/html\");\n if (doc) {\n const currentElementList = document.querySelector(elementQs);\n const newElementList = doc.querySelector(elementQs);\n\n if (currentElementList && newElementList) {\n const elements = newElementList.querySelectorAll(\"li\");\n if (elements && elements.length > 0) {\n elements.forEach((liEl) => {\n // Init eventual new buy button\n const newBuyButton = liEl.querySelector('buy-button');\n if (newBuyButton) {\n window.__pn.initNewBuyButton(newBuyButton);\n }\n currentElementList.appendChild(liEl);\n });\n\n // Update \"next page\" URL\n const InfiniteScrollEl = doc.getElementById(\"InfiniteScroll\");\n if (InfiniteScrollEl) {\n const newUrl = InfiniteScrollEl.dataset.url;\n if (newUrl) {\n setNextPageUrl(newUrl);\n }\n }\n const newCurrentTotal = currentTotal + elements.length;\n setCurrentTotal(newCurrentTotal);\n setIsButtonDisabled(newCurrentTotal >= totalCount);\n }\n }\n }\n }).catch(function (err) {\n console.warn('Error getting elements', err);\n });\n }\n\n useEffect(() => {\n if (!componentInit && scrollType === 'infinitescroll') {\n const InfiniteScrollEl = document.querySelector('#InfiniteScroll');\n if (InfiniteScrollEl) {\n var observer = new IntersectionObserver(function (entries) {\n if (entries[0].isIntersecting === true && showMoreBtn) {\n showMoreBtn.current.click();\n }\n\n }, { threshold: [1] });\n setComponentInit(true);\n\n observer.observe(InfiniteScrollEl);\n }\n }\n }, []);\n\n return (\n \n );\n};\nexport default InfiniteScrollButton;\n"],"names":["InfiniteScrollButton","elementQs","totalPages","totalCount","currentPageIndex","pageSize","url","scrollType","componentInit","setComponentInit","useState","currentPage","setCurrentPage","nextPageUrl","setNextPageUrl","currentTotal","setCurrentTotal","isButtonDisabled","setIsButtonDisabled","showMoreBtn","useRef","showingText","translate","replace","buttonText","useEffect","InfiniteScrollEl","document","querySelector","observer","IntersectionObserver","entries","isIntersecting","current","click","threshold","observe","React","className","ref","onClick","fetch","then","response","text","html","doc","DOMParser","parseFromString","currentElementList","newElementList","elements","querySelectorAll","length","forEach","liEl","newBuyButton","window","__pn","initNewBuyButton","appendChild","getElementById","newUrl","dataset","newCurrentTotal","catch","err","console","warn","disabled"],"sourceRoot":""}