{"version":3,"sources":["node_modules/browser-pack/_prelude.js","assets/js/one-page/getPosts.js","assets/js/one-page/index.js","assets/js/one-page/scroll.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length","1","module","getPosts","config","pageNo","endpoint","postType","perPage","fetch","then","_","json","_getPosts","_scroll2","window","onePageConfig","nextButton","document","querySelector","prevButton","container","currentPageNo","currentPage","pagesShowing","parser","DOMParser","totalPages","style","display","Array","from","children","forEach","el","setAttribute","scroll","newItems","addPosts","newPageNo","disabled","postsSource","posts","map","html","parseFromString","item","body","firstChild","outerHTML","insertAdjacentHTML","join","push","indexOf","addEventListener","supportsPassive","opts","Object","defineProperty","get","items","currentUrl","location","pathname","getItems","bounds","getBoundingClientRect","getAttribute","inView","pageYOffset","top","height","check","_window","innerHeight","reduce","ret","_ref","url","urlWithoutPageNo","split","history","replaceState","passive"],"mappings":"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","file":"one-page-5e0f55a644.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o} - Returns an array of elements in HTML\n */\n\nexport const getPosts = (config, pageNo) => {\n const { endpoint, postType, perPage } = config;\n\n return fetch(`${endpoint}?post_type=${postType}&page=${pageNo}&per_page=${perPage}`)\n .then(_ => _.json());\n\n};","import { getPosts } from './getPosts';\nimport { scroll } from './scroll';\nconst { onePageConfig } = window;\n\n\nconst nextButton = document.querySelector(onePageConfig.nextButton);\nconst prevButton = document.querySelector(onePageConfig.prevButton);\nconst container = document.querySelector(onePageConfig.container);\n\nlet currentPageNo = onePageConfig.currentPage;\n\nconst pagesShowing = [currentPageNo];\nconst parser = new DOMParser();\n\n// Not last page\nif (onePageConfig.totalPages !== currentPageNo) {\n nextButton.style.display = '';\n}\n\n// Not first page\nif (currentPageNo !== 1) {\n prevButton.style.display = '';\n}\n\n// Add data-page-no attribute to any existing elements\nArray.from(container.children)\n .forEach((el) => {\n el.setAttribute('data-page-no', currentPageNo);\n });\n\n\nconst { newItems } = scroll(container);\n\n/**\n * Loads new page data in\n * \n * @param {number} newPageNo - Page number to load in.\n */\nconst addPosts = (newPageNo) => {\n nextButton.disabled = true;\n prevButton.disabled = true;\n\n getPosts(onePageConfig, newPageNo)\n .then((postsSource) => {\n const posts = postsSource.map((html) => {\n const document = parser.parseFromString(html, 'text/html');\n const item = document.body.firstChild;\n item.setAttribute('data-page-no', newPageNo);\n return item.outerHTML;\n });\n\n if (currentPageNo < newPageNo) { // append\n container.insertAdjacentHTML('beforeend', posts.join(''));\n } else { // prepend\n container.insertAdjacentHTML('afterbegin', posts.join(''));\n }\n currentPageNo = newPageNo;\n pagesShowing.push(currentPageNo);\n\n if (pagesShowing.indexOf(onePageConfig.totalPages) !== -1) {\n nextButton.style.display = 'none';\n } else {\n nextButton.style.display = '';\n }\n\n if (pagesShowing.indexOf(1) !== -1) {\n prevButton.style.display = 'none';\n } else {\n prevButton.style.display = '';\n }\n\n nextButton.disabled = false;\n prevButton.disabled = false;\n newItems();\n \n });\n}\n\n\nnextButton.addEventListener('click', () => {\n addPosts(currentPageNo + 1);\n});\n\nprevButton.addEventListener('click', () => {\n addPosts(currentPageNo - 1);\n});","var supportsPassive = false;\n\ntry {\n var opts = Object.defineProperty({}, 'passive', {\n get: function() {\n supportsPassive = true;\n }\n });\n window.addEventListener(\"test\", null, opts);\n} catch (e) {}\n\n\n\n/**\n * Changes the page number based on scroll position\n * \n * @param {object} container - Dom node\n * @return {object}\n */\nexport const scroll = (container) => {\n // console.log('scroll');\n\n let items = [];\n let currentUrl = location.pathname;\n\n const getItems = () => {\n items = Array.from(container.children)\n .map((el) => {\n const bounds = el.getBoundingClientRect();\n const pageNo = el.getAttribute('data-page-no');\n return {\n pageNo,\n inView: window.pageYOffset + bounds.top + bounds.height / 2,\n };\n });\n // console.log(items);\n };\n\n const check = () => {\n const { pageYOffset, innerHeight } = window;\n const pageNo = items.reduce((ret, { inView, pageNo }) => {\n if (pageYOffset + innerHeight > inView && pageNo > ret) return pageNo;\n return ret;\n }, 0);\n\n if (pageNo > 0) {\n let url;\n const urlWithoutPageNo = location.pathname.split('/page/')[0];\n\n if (pageNo == 1) url = urlWithoutPageNo;\n else {\n url = `${urlWithoutPageNo}/page/${pageNo}`;\n }\n\n if (url !== currentUrl) {\n currentUrl = url;\n history.replaceState({}, null, url);\n }\n\n }\n \n }\n\n window.addEventListener('scroll', check, supportsPassive ? { passive: true } : false);\n\n window.addEventListener('resize', () => {\n getItems();\n check();\n });\n\n\n return {\n newItems: () => {\n getItems();\n check();\n },\n };\n};"]}