{"version":3,"file":"partial.loadMore.js","mappings":"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","sources":["webpack:///./components/loadMore/loadMore.js","webpack:///./components/loader/loader.js","webpack:///./components/pubsub/pubsub.js"],"sourcesContent":["import { addQueryTimestamp, hasHistorySupport, remove } from '../utilities/utilities';\r\nimport { loadingStart, loadingEnd } from '../loader/loader';\r\nimport pubsub from '../pubsub/pubsub';\r\nimport axios from 'axios';\r\n\r\n/**\r\n * Load more\r\n * A plugin that implements a \"load more\" pagination, with url updates and back-button support.\r\n * @see {@link http://tumbledry.org/2011/05/12/screw_hashbangs_building}\r\n * @version 3.0.0\r\n * @exports LoadMore\r\n */\r\nexport default class LoadMore {\r\n /**\r\n * Constructor\r\n * @param {Object} el - A DOM node.\r\n * @public\r\n */\r\n constructor(el) {\r\n /** Placeholder for base DOM element. */\r\n this.el = null;\r\n\r\n /** Placeholder for template (used if this plugin is used with json). */\r\n this.template = null;\r\n\r\n /** Target DOM id (the list). */\r\n this.targetId = null;\r\n\r\n /** Placeholder for target DOM element (the list). */\r\n this.targetEl = null;\r\n\r\n /** Boolean to indicate if there are any ajax-request in progress. */\r\n this.requestInProgress = false;\r\n\r\n /** 1 = DOESN'T WORK CORRECTLY RIGHT NOW. back button navigates WITHIN the page. 0 = back button navigates to previous, referring page. */\r\n this.supportBackButton = 0;\r\n\r\n /** Placeholder to contain the starting page (so url can display page=1-3). */\r\n this.urlCarryPageBase = null;\r\n\r\n /** Array that will contain the loaded pages. */\r\n this.itemCount = [];\r\n\r\n /** Selector for items. */\r\n this.itemSelector = 'article';\r\n\r\n /** Enables infinity scroll instead of visible load-more button **/\r\n this.infinity = false;\r\n\r\n /** The loader container element when using infinity scroll **/\r\n this.loaderEl = null;\r\n\r\n this._init(el);\r\n }\r\n\r\n /**\r\n * The initialization function for this module.\r\n * @param {Object} el - A DOM node.\r\n * @public\r\n */\r\n _init(el) {\r\n this.el = !el ? document.querySelector('[data-type=\"loadMore\"]') : el;\r\n\r\n if (!(this.el && hasHistorySupport())) {\r\n return false;\r\n }\r\n\r\n this.targetId = this.el.getAttribute('aria-controls');\r\n this.targetEl = document.getElementById(this.targetId);\r\n\r\n if (!this.targetEl) {\r\n return false;\r\n }\r\n\r\n this.infinity = this.el.getAttribute('data-infinity') === 'true';\r\n\r\n const loaderId = this.el.getAttribute('data-loader');\r\n if (loaderId) {\r\n this.loaderEl = document.getElementById(loaderId);\r\n }\r\n\r\n const selector = this.el.getAttribute('data-itemselector');\r\n if (selector) {\r\n this.itemSelector = selector;\r\n }\r\n\r\n const templ = this.el.getAttribute('data-template');\r\n if (templ) {\r\n require([\r\n '../../templates/' + templ + '.hbs',\r\n ], tpl => {\r\n this.template = tpl;\r\n this._initEvents();\r\n });\r\n } else {\r\n this._initEvents();\r\n }\r\n }\r\n\r\n /**\r\n * Function that loads next page through ajax.\r\n * @private\r\n */\r\n _load() {\r\n let url = this.el.getAttribute('href');\r\n\r\n if (this.requestInProgress || !this._pathChange(url)) {\r\n return;\r\n }\r\n\r\n this.requestInProgress = true;\r\n\r\n const loadingMessage = this.el.getAttribute('data-loading-message') || 'Laddar';\r\n loadingStart(this.loaderEl || this.el, loadingMessage, '', true);\r\n\r\n //url = updateURLParameter(url, '_', getTimestamp());\r\n\r\n axios.get(addQueryTimestamp(url))\r\n .then(response => {\r\n const ct = (response.headers['content-type'] || '').match(/(html|json)/g)[0];\r\n\r\n switch (ct) {\r\n case 'html': this._renderHtml(response.data); break;\r\n case 'json': this._renderJson(response.data); break;\r\n }\r\n\r\n pubsub.publish('/ajaxForm/list/updated', { url, container: this.targetEl });\r\n pubsub.publish('/ajaxForm/sync/update/' + ct, doc);\r\n })\r\n .catch(() => { })\r\n .then(() => {\r\n this.requestInProgress = false;\r\n loadingEnd(this.loaderEl || this.el);\r\n });\r\n }\r\n\r\n /**\r\n * Function that renders new html-data.\r\n * @param {String} data - New data as a string of html.\r\n * @private\r\n */\r\n _renderHtml(data) {\r\n const doc = new DOMParser().parseFromString(data, 'text/html'),\r\n newPager = doc.querySelector('[data-type=\"loadMore\"]'),\r\n newItems = doc.querySelectorAll('#' + this.targetId + ' ' + this.itemSelector);\r\n\r\n if (newItems.length) {\r\n this.targetEl.append(...newItems);\r\n (newItems[0].querySelector('a') || newItems[0]).focus();\r\n }\r\n\r\n this.itemCount.push(newItems.length);\r\n\r\n if (newPager) {\r\n this.el.setAttribute('href', newPager.getAttribute('href'))\r\n } else {\r\n remove(this.el);\r\n }\r\n\r\n pubsub.publish('/ajaxForm/sync/update/html', doc);\r\n }\r\n\r\n /**\r\n * Function that renders new json-data.\r\n * @param {String} data - New data as a string of json.\r\n * @private\r\n */\r\n _renderJson(data) {\r\n let html;\r\n\r\n try {\r\n html = this.template(data);\r\n } catch (e) {\r\n html = '';\r\n }\r\n\r\n if (data.pager && data.pager.pagerUrl) {\r\n this.el.classList.remove('btn--hidden');\r\n this.el.setAttribute('href', data.pager.pagerUrl);\r\n } else {\r\n this.el.classList.add('btn--hidden');\r\n }\r\n\r\n const tmp = document.createElement('div');\r\n tmp.innerHTML = html;\r\n\r\n const first = tmp.querySelector(this.itemSelector);\r\n\r\n this.targetEl.append(...tmp.children);\r\n\r\n if (first) {\r\n (first.querySelector('a') || first).focus();\r\n }\r\n\r\n pubsub.publish('/ajaxForm/sync/update/json', data);\r\n }\r\n\r\n /**\r\n * Function that updates the url.\r\n * @private\r\n */\r\n _pathChange(path) {\r\n\r\n const queryRegex = /[?&]pages?\\=(?\\d+)(?:\\-(?\\d+))?(?:\\?|$)/;\r\n const pathRegex = /\\/pages?\\/(?\\d+)(?:\\-(?\\d+))?\\/?/;\r\n\r\n const pathParts = path.split('?');\r\n path = pathParts[0];\r\n const query = pathParts[1];\r\n\r\n // Try get pages from query\r\n let m = query && query.match(queryRegex);\r\n const useQuery = !!m;\r\n\r\n // Else try get pages from path\r\n if (!m) {\r\n m = path.match(pathRegex);\r\n }\r\n\r\n // No match\r\n if (!m) {\r\n return false;\r\n }\r\n\r\n if (!this.urlCarryPageBase) {\r\n const rx = useQuery ? queryRegex : pathRegex;\r\n const href = window.location.href.split('?')[0];\r\n let m;\r\n\r\n if ((m = href.match(rx))) {\r\n this.urlCarryPageBase = m.groups['p1'];\r\n } else if (m = (path.match(rx))) {\r\n this.urlCarryPageBase = m.groups['p1'] - 1;\r\n }\r\n }\r\n\r\n if (useQuery) {\r\n query = query.replace('page=', 'pages=' + this.urlCarryPageBase + '-');\r\n } else {\r\n path = path.replace('page/', 'pages/' + this.urlCarryPageBase + '-');\r\n }\r\n\r\n if (query) {\r\n path += \"?\" + query;\r\n }\r\n\r\n if (window.supportBackButton === 1) {\r\n window.history.pushState(null, null, path);\r\n } else {\r\n window.history.replaceState(null, null, path);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Gets the scroll XY coordinates.\r\n * @private\r\n * @see {@link http://jsfiddle.net/8LpFR/}\r\n * @returns {Array} - The scroll XY coordinates.\r\n */\r\n _getScrollCoordinates() {\r\n let scrollX = 0,\r\n scrollY = 0;\r\n\r\n if (typeof window.pageYOffset == 'number') {\r\n //Netscape compliant\r\n scrollY = window.pageYOffset;\r\n scrollX = window.pageXOffset;\r\n } else if (\r\n document.body &&\r\n (document.body.scrollLeft || document.body.scrollTop)\r\n ) {\r\n //DOM compliant\r\n scrollY = document.body.scrollTop;\r\n scrollX = document.body.scrollLeft;\r\n } else if (\r\n document.documentElement &&\r\n (document.documentElement.scrollLeft ||\r\n document.documentElement.scrollTop)\r\n ) {\r\n //IE6 standards compliant mode\r\n scrollY = document.documentElement.scrollTop;\r\n scrollX = document.documentElement.scrollLeft;\r\n }\r\n return [scrollX, scrollY];\r\n }\r\n\r\n /**\r\n * Gets the document's height.\r\n * @private\r\n * @see {@link http://jsfiddle.net/8LpFR/}\r\n * @returns {Number} - The document height.\r\n */\r\n _getDocHeight() {\r\n const d = document;\r\n return Math.max(\r\n d.body.scrollHeight,\r\n d.body.offsetHeight,\r\n d.body.clientHeight,\r\n d.documentElement.scrollHeight,\r\n d.documentElement.offsetHeight,\r\n d.documentElement.clientHeight\r\n );\r\n }\r\n\r\n /**\r\n * Initiates events.\r\n * @private\r\n */\r\n _initEvents() {\r\n const footerStartPosition = document.body.scrollHeight - document.querySelector('footer').scrollHeight;\r\n\r\n // For infinity scroll\r\n if (this.infinity) {\r\n window.addEventListener('scroll', () => {\r\n if (this.el.classList.contains('btn--hidden')) {\r\n return;\r\n }\r\n\r\n if ((this._getDocHeight() - (footerStartPosition / 5)) <= (this._getScrollCoordinates()[1] + window.innerHeight)) {\r\n const lastDiv = this.targetEl.querySelector(this.itemSelector + ':last-child');\r\n const lastDivOffset = lastDiv.offsetTop + lastDiv.clientHeight;\r\n const pageOffset = window.pageYOffset + window.innerHeight;\r\n\r\n if (pageOffset > lastDivOffset - 10) {\r\n this._load();\r\n }\r\n }\r\n });\r\n // For loadmore button\r\n } else {\r\n this.el.addEventListener('click', event => {\r\n event.preventDefault();\r\n this._load();\r\n });\r\n }\r\n\r\n if (this.supportBackButton === 1) {\r\n window.addEventListener('popstate', () => {\r\n if (this.supportBackButton === 1) {\r\n const items = this.targetEl.querySelectorAll(this.itemSelector);\r\n let lastTime = 0;\r\n\r\n if (this.itemCount.length > 0) {\r\n lastTime = this.itemCount.pop();\r\n }\r\n\r\n for (let i = 1; i <= lastTime; i++) {\r\n this.targetEl.removeChild(items[items.length - i]);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","/**\r\n * Loader\r\n * A plugin that displays a loader in a DOM node.\r\n * @version 3.0.0\r\n */\r\n\r\nconst loaderStr =\r\n\t'${screenreaderText}';\r\nconst loaderLargeStr =\r\n\t'${screenreaderText}';\r\nconst loaderSmallStr =\r\n\t'${screenreaderText}';\r\n\r\n/**\r\n * Start loading.\r\n * @param {Object} el - A DOM node.\r\n * @param {String} screenreaderText - A string containing a text for screenreaders.\r\n * @param {String} size - The size as a string ('large' for a large loader, 'small' för a small loader, anything else for a standard loader).\r\n * @public\r\n */\r\nexport const loadingStart = (el, screenreaderText, size, storeInnerHtml) => {\r\n\tlet loaderString = loaderStr;\r\n\r\n\tif (screenreaderText === undefined) {\r\n\t\tscreenreaderText = '';\r\n\t}\r\n\r\n\tif (size !== undefined && size === 'small') {\r\n\t\tloaderString = loaderSmallStr;\r\n\t} else if (size !== undefined && size === 'large') {\r\n\t\tloaderString = loaderLargeStr;\r\n\t}\r\n\r\n\tloaderString = loaderString.replace('${screenreaderText}', screenreaderText);\r\n\r\n\tif (storeInnerHtml !== undefined) {\r\n\t\tel.setAttribute('data-innerhtml', el.innerHTML);\r\n\t}\r\n\r\n\tel.innerHTML = loaderString;\r\n};\r\n\r\n/**\r\n * Stop loading.\r\n * @param {Object} el - A DOM node.\r\n * @public\r\n */\r\nexport const loadingEnd = el => {\r\n\tlet oldHtml = el.getAttribute('data-innerhtml');\r\n\r\n\tif (oldHtml !== null) {\r\n\t\tel.innerHTML = el.getAttribute('data-innerhtml');\r\n\t}\r\n};\r\n","define([], function () {\r\n /**\r\n * Publish / Subscribe\r\n * A event publish/subscribe widget.\r\n * @version 2.0.0\r\n * @see {@link https://davidwalsh.name/pubsub-javascript}\r\n * @exports pubsub\r\n */\r\n var pubsub = (function () {\r\n let topics = {};\r\n let hOP = topics.hasOwnProperty;\r\n\r\n return {\r\n subscribe: function (topic, listener) {\r\n // Create the topic's object if not yet created\r\n if (!hOP.call(topics, topic)) {\r\n topics[topic] = [];\r\n }\r\n\r\n // Add the listener to queue\r\n var index = topics[topic].push(listener) - 1;\r\n\r\n // Provide handle back for removal of topic\r\n return {\r\n remove: function () {\r\n delete topics[topic][index];\r\n },\r\n };\r\n },\r\n publish: function (topic, info) {\r\n // If the topic doesn't exist, or there's no listeners in queue, just leave\r\n if (!hOP.call(topics, topic)) {\r\n return;\r\n }\r\n\r\n // Cycle through topics queue, fire!\r\n topics[topic].forEach(function (item) {\r\n item(info !== undefined ? info : {});\r\n });\r\n },\r\n };\r\n })();\r\n\r\n return pubsub;\r\n});\r\n"],"names":["LoadMore","el","_classCallCheck","this","template","targetId","targetEl","requestInProgress","supportBackButton","urlCarryPageBase","itemCount","itemSelector","infinity","loaderEl","_init","key","value","_this","document","querySelector","hasHistorySupport","getAttribute","getElementById","loaderId","selector","templ","require","tpl","_initEvents","_this2","url","_pathChange","loadingMessage","loadingStart","axios","addQueryTimestamp","then","response","ct","headers","match","_renderHtml","data","_renderJson","pubsub","container","doc","catch","loadingEnd","_this$targetEl","DOMParser","parseFromString","newPager","newItems","querySelectorAll","length","append","apply","_toConsumableArray","focus","push","setAttribute","remove","_this$targetEl2","html","e","pager","pagerUrl","classList","add","tmp","createElement","innerHTML","first","children","path","queryRegex","_wrapRegExp","p1","p2","pathRegex","pathParts","split","query","m","useQuery","rx","window","location","href","groups","replace","_readOnlyError","history","pushState","replaceState","scrollX","scrollY","pageYOffset","pageXOffset","body","scrollLeft","scrollTop","documentElement","d","Math","max","scrollHeight","offsetHeight","clientHeight","_this3","footerStartPosition","addEventListener","contains","_getDocHeight","_getScrollCoordinates","innerHeight","lastDiv","lastDivOffset","offsetTop","_load","event","preventDefault","items","lastTime","pop","i","removeChild","screenreaderText","size","storeInnerHtml","loaderString","undefined","define","topics","hOP","hasOwnProperty","subscribe","topic","listener","call","index","publish","info","forEach","item"],"sourceRoot":""}