{"version":3,"sources":["components/pager/_std/pager.js"],"names":["AppPager","Component","constructor","el","loadBtn","$find","staticPager","resultContainer","document","querySelector","addEventListeners","loadItems","fetch","$el","dataset","nextUrl","then","response","json","data","status","onSuccess","catch","error","console","appendItems","items","rect","getBoundingClientRect","topPosition","top","window","scrollY","height","innerHTML","scrollTo","initComponents","refreshStaticPager","pagerHTML","newPager","createElement","trim","newPagerStatic","replaceWith","history","pushState","itemsHTML","paginationHTML","nextPage","remove","addEventListener"],"mappings":"aAAA,KAAMA,CAAAA,QAAN,QAAuBC,CAAAA,SAAU,CAChCC,WAAW,CAACC,EAAD,CAAK,CACf,MAAMA,EAAN,EACA,KAAKC,OAAL,CAAe,KAAKC,KAAL,CAAW,kBAAX,CAAf,CACA,KAAKC,WAAL,CAAmB,KAAKD,KAAL,CAAW,qBAAX,CAAnB,CACA,KAAKE,eAAL,CAAuBC,QAAQ,CAACC,aAAT,CAAuB,qBAAvB,CAAvB,CACA,KAAKC,iBAAL,EACA,CAEDC,SAAS,EAAG,CACXC,KAAK,CAAC,KAAKC,GAAL,CAASC,OAAT,CAAiBC,OAAjB,CAAyB,WAA1B,CAAL,CACEC,IADF,CACOC,QAAQ,EAAIA,QAAQ,CAACC,IAAT,EADnB,EAEEF,IAFF,CAEOG,IAAI,EAAI,CACb,GAAIA,IAAI,CAACC,MAAL,GAAgB,IAApB,CAA0B,KAAKC,SAAL,CAAeF,IAAf,CAC1B,CAJF,EAKEG,KALF,CAKSC,KAAD,EAAW,CACjBC,OAAO,CAACD,KAAR,CAAc,QAAd,CAAwBA,KAAxB,CACA,CAPF,CAQA,CAEDE,WAAW,CAACC,KAAD,CAAQ,CAClB,GAAG,KAAKnB,eAAR,CAAyB,CACxB,KAAMoB,CAAAA,IAAI,CAAG,KAAKpB,eAAL,CAAqBqB,qBAArB,EAAb,CACA,KAAMC,CAAAA,WAAW,CAAIF,IAAI,CAACG,GAAL,CAAWC,MAAM,CAACC,OAAnB,CAA8BL,IAAI,CAACM,MAAvD,CACA,KAAK1B,eAAL,CAAqB2B,SAArB,EAAkCR,KAAlC,CACAK,MAAM,CAACI,QAAP,CAAgB,CAAhB,CAAmBN,WAAnB,EACA5B,SAAS,CAACmC,cAAV,EAEA,CACD,CAEDC,kBAAkB,CAACC,SAAD,CAAY,CAC7B,KAAMC,CAAAA,QAAQ,CAAG/B,QAAQ,CAACgC,aAAT,CAAuB,KAAvB,CAAjB,CACAD,QAAQ,CAACL,SAAT,CAAqBI,SAAS,CAACG,IAAV,EAArB,CACA,KAAMC,CAAAA,cAAc,CAAGH,QAAQ,CAAC9B,aAAT,CAAuB,qBAAvB,CAAvB,CAEA,KAAKH,WAAL,CAAiBqC,WAAjB,CAA6BD,cAA7B,EACA,KAAKpC,WAAL,CAAmBoC,cACnB,CAEDrB,SAAS,CAACF,IAAD,CAAO,CACfyB,OAAO,CAACC,SAAR,CAAkB,IAAlB,CAAwB,IAAxB,CAA8B,KAAKhC,GAAL,CAASC,OAAT,CAAiBC,OAA/C,EAEA,KAAKU,WAAL,CAAiBN,IAAI,CAAC2B,SAAtB,EACA,KAAKT,kBAAL,CAAwBlB,IAAI,CAAC4B,cAA7B,EAEA,GAAI5B,IAAI,CAAC6B,QAAT,CAAmB,CAClB,KAAKnC,GAAL,CAASC,OAAT,CAAiBC,OAAjB,CAA2BI,IAAI,CAAC6B,QAChC,CAFD,IAEO,CACN,KAAKnC,GAAL,CAASC,OAAT,CAAiBC,OAAjB,CAA2B,EAA3B,CACA,KAAKX,OAAL,CAAa6C,MAAb,EACA,CACD,CAEDvC,iBAAiB,EAAG,CACnB,KAAKN,OAAL,EAAgB,KAAKA,OAAL,CAAa8C,gBAAb,CAA8B,OAA9B,CAAuC,IAAM,KAAKvC,SAAL,EAA7C,CAChB,CAxD+B","sourcesContent":["class AppPager extends Component {\r\n\tconstructor(el) {\r\n\t\tsuper(el);\r\n\t\tthis.loadBtn = this.$find('[data-load-more]');\r\n\t\tthis.staticPager = this.$find('[data-pager-static]');\r\n\t\tthis.resultContainer = document.querySelector('[data-ajax-results]');\r\n\t\tthis.addEventListeners();\r\n\t}\r\n\r\n\tloadItems() {\r\n\t\tfetch(this.$el.dataset.nextUrl+'&ajax=yes')\r\n\t\t\t.then(response => response.json())\r\n\t\t\t.then(data => {\r\n\t\t\t\tif (data.status === 'OK') this.onSuccess(data);\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconsole.error('Error:', error);\r\n\t\t\t});\r\n\t}\r\n\r\n\tappendItems(items) {\r\n\t\tif(this.resultContainer) {\r\n\t\t\tconst rect = this.resultContainer.getBoundingClientRect();\r\n\t\t\tconst topPosition = (rect.top + window.scrollY) + rect.height;\r\n\t\t\tthis.resultContainer.innerHTML += items;\r\n\t\t\twindow.scrollTo(0, topPosition);\r\n\t\t\tComponent.initComponents();\r\n\r\n\t\t}\r\n\t}\r\n\r\n\trefreshStaticPager(pagerHTML) {\r\n\t\tconst newPager = document.createElement('div');\r\n\t\tnewPager.innerHTML = pagerHTML.trim();\r\n\t\tconst newPagerStatic = newPager.querySelector('[data-pager-static]');\r\n\r\n\t\tthis.staticPager.replaceWith(newPagerStatic);\r\n\t\tthis.staticPager = newPagerStatic;\r\n\t}\r\n\r\n\tonSuccess(data) {\r\n\t\thistory.pushState(null, null, this.$el.dataset.nextUrl);\r\n\r\n\t\tthis.appendItems(data.itemsHTML);\r\n\t\tthis.refreshStaticPager(data.paginationHTML);\r\n\r\n\t\tif (data.nextPage) {\r\n\t\t\tthis.$el.dataset.nextUrl = data.nextPage;\r\n\t\t} else {\r\n\t\t\tthis.$el.dataset.nextUrl = '';\r\n\t\t\tthis.loadBtn.remove();\r\n\t\t}\r\n\t}\r\n\r\n\taddEventListeners() {\r\n\t\tthis.loadBtn && this.loadBtn.addEventListener('click', () => this.loadItems());\r\n\t}\r\n}\r\n"],"file":"pager.min.js"}