{"version":3,"sources":["webpack:///./components/loader/loader.js","webpack:///./templates lazy ^\\.\\/.*\\.hbs$ namespace object","webpack:///./components/ajaxForm/ajaxForm.js"],"names":["loadingStart","el","screenreaderText","size","storeInnerHtml","loaderString","undefined","replace","setAttribute","innerHTML","loadingEnd","getAttribute","map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","t","keys","Object","module","exports","AjaxForm","_classCallCheck","this","template","targetId","targetEl","syncEls","pager","requestInProgress","supportBackButton","itemSelector","useCache","cache","_init","key","value","document","getElementById","querySelector","split","_loadTemplates","_this","url","ajaxUrl","method","loadingMessage","indexOf","formToQuery","toLowerCase","_pathchange","getTimestamp","axios","headers","response","status","ct","_renderHtml","data","_renderJson","alert","doc","DOMParser","parseFromString","newPager","newItems","querySelectorAll","i","length","appendChild","firstLink","focus","classList","add","remove","_syncElementsHtml","pubsub","publish","newEl","html","pagerUrl","insertAdjacentHTML","_syncElementsJson","ToggleLink","syncWith","objectByString","_this2","templates","loadedTemplates","push","tpl","_initEvents","j","obj","_loadTemplate","callback","hasHistorySupport","window","history","pushState","replaceState","_this3","addEventListener","event","preventDefault","_load","subscribe","setTimeout"],"mappings":"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","file":"partial.ajaxForm.js","sourcesContent":["/**\n * Loader\n * A plugin that displays a loader in a DOM node.\n * @version 3.0.0\n */\n\nconst loaderStr =\n\t'${screenreaderText}';\nconst loaderLargeStr =\n\t'${screenreaderText}';\nconst loaderSmallStr =\n\t'${screenreaderText}';\n\n/**\n * Start loading.\n * @param {Object} el - A DOM node.\n * @param {String} screenreaderText - A string containing a text for screenreaders.\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).\n * @public\n */\nexport const loadingStart = (el, screenreaderText, size, storeInnerHtml) => {\n\tlet loaderString = loaderStr;\n\n\tif (screenreaderText === undefined) {\n\t\tscreenreaderText = '';\n\t}\n\n\tif (size !== undefined && size === 'small') {\n\t\tloaderString = loaderSmallStr;\n\t} else if (size !== undefined && size === 'large') {\n\t\tloaderString = loaderLargeStr;\n\t}\n\n\tloaderString = loaderString.replace('${screenreaderText}', screenreaderText);\n\n\tif (storeInnerHtml !== undefined) {\n\t\tel.setAttribute('data-innerhtml', el.innerHTML);\n\t}\n\n\tel.innerHTML = loaderString;\n};\n\n/**\n * Stop loading.\n * @param {Object} el - A DOM node.\n * @public\n */\nexport const loadingEnd = el => {\n\tlet oldHtml = el.getAttribute('data-innerhtml');\n\n\tif (oldHtml !== null) {\n\t\tel.innerHTML = el.getAttribute('data-innerhtml');\n\t}\n};\n","var map = {\n\t\"./article-list.hbs\": [\n\t\t65,\n\t\t3\n\t],\n\t\"./confirm-message-email.hbs\": [\n\t\t66,\n\t\t4\n\t],\n\t\"./confirm-message.hbs\": [\n\t\t67,\n\t\t13\n\t],\n\t\"./education-filters.hbs\": [\n\t\t68,\n\t\t14\n\t],\n\t\"./education-list.hbs\": [\n\t\t69,\n\t\t15\n\t],\n\t\"./education-thanks.hbs\": [\n\t\t70,\n\t\t16\n\t],\n\t\"./faq-filters.hbs\": [\n\t\t71,\n\t\t17\n\t],\n\t\"./faq-list.hbs\": [\n\t\t72,\n\t\t18\n\t],\n\t\"./faq-searchmessage.hbs\": [\n\t\t73,\n\t\t19\n\t],\n\t\"./job-list.hbs\": [\n\t\t74,\n\t\t20\n\t],\n\t\"./new-education-filters.hbs\": [\n\t\t75,\n\t\t5\n\t],\n\t\"./new-education-list.hbs\": [\n\t\t76,\n\t\t6\n\t],\n\t\"./news-list-big.hbs\": [\n\t\t77,\n\t\t7\n\t],\n\t\"./pager-list.hbs\": [\n\t\t78,\n\t\t8\n\t],\n\t\"./sales-list.hbs\": [\n\t\t79,\n\t\t9\n\t],\n\t\"./search-filters.hbs\": [\n\t\t80,\n\t\t10\n\t],\n\t\"./search-list-mobile.hbs\": [\n\t\t81,\n\t\t11\n\t],\n\t\"./search-list.hbs\": [\n\t\t82,\n\t\t12\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 83;\nmodule.exports = webpackAsyncContext;","import {\n\tformToQuery,\n\tobjectByString,\n\tgetTimestamp,\n\thasHistorySupport,\n} from '../utilities/utilities';\nimport { loadingStart } from '../loader/loader';\nimport pubsub from '../pubsub/pubsub';\nimport axios from 'axios';\nimport ToggleLink from '../toggleLink/toggleLink';\n\n/**\n * AjaxForm\n * A plugin that add ajax-request to forms.\n * @version 3.0.0\n * @exports AjaxForm\n */\nexport default class AjaxForm {\n\t/**\n\t * Constructor\n\t * @param {Object} el - A DOM node.\n\t * @public\n\t */\n\tconstructor(el) {\n\t\t/** Placeholder for base DOM element. */\n\t\tthis.el = el;\n\n\t\t/** Placeholder for template (used if this plugin is used with json). */\n\t\tthis.template = null;\n\n\t\t/** Target DOM id (the list). */\n\t\tthis.targetId = null;\n\n\t\t/** Placeholder for target DOM element (the list). */\n\t\tthis.targetEl = null;\n\n\t\t/** Placeholder for array of DOM elements that should be updated on render. */\n\t\tthis.syncEls = null;\n\n\t\t/** Placeholder for pager DOM element. */\n\t\tthis.pager = null;\n\n\t\t/** Boolean to indicate if there are any ajax-request in progress. */\n\t\tthis.requestInProgress = false;\n\n\t\t/** 1 =DOESN'T WORK CORRECTLY RIGHT NOW. back button navigates between searches. 0 = back button navigates to previous, referring page. */\n\t\tthis.supportBackButton = 0;\n\n\t\t/** Selector for items. */\n\t\tthis.itemSelector = 'article';\n\n\t\t/** Boolean indicating if to use cache (experimental). */\n\t\tthis.useCache = false;\n\n\t\t/** Array which will hold the cache. */\n\t\tthis.cache = [];\n\n\t\tthis._init();\n\t}\n\n\t/**\n\t * The initialization function for this module.\n\t * @public\n\t */\n\t_init() {\n\t\tthis.targetId = this.el.getAttribute('aria-controls');\n\t\tthis.targetEl = document.getElementById(this.targetId);\n\t\tthis.pager = document.querySelector('[data-type=\"loadMore\"]');\n\n\t\tif (this.el.getAttribute('data-cache') === 'true') {\n\t\t\tthis.useCache = true;\n\t\t}\n\n\t\tif (this.targetEl === null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.el.getAttribute('data-itemselector') !== null) {\n\t\t\tthis.itemSelector = this.el.getAttribute('data-itemselector');\n\t\t}\n\n\t\tif (this.el.getAttribute('data-sync') !== null) {\n\t\t\tthis.syncEls = this.el.getAttribute('data-sync').split('|');\n\t\t}\n\n\t\tthis._loadTemplates();\n\t}\n\n\t/**\n\t * Function that loads content through ajax.\n\t * @private\n\t */\n\t_load() {\n\t\tlet url = this.el.getAttribute('action'),\n\t\t\tajaxUrl = this.el.getAttribute('data-ajaxurl'),\n\t\t\tmethod = this.el.getAttribute('method') || 'GET',\n\t\t\tloadingMessage = this.el.getAttribute('data-loading-message') || 'Laddar';\n\n\t\tif (this.requestInProgress === false) {\n\t\t\turl =\n\t\t\t\turl +\n\t\t\t\t(url.indexOf('?') !== -1\n\t\t\t\t\t? '&' + formToQuery(this.el)\n\t\t\t\t\t: '?' + formToQuery(this.el));\n\n\t\t\tif (this.useCache === true && this.cache[url] !== undefined) {\n\t\t\t\tthis.targetEl.innerHTML = this.cache[url];\n\t\t\t\tif (method.toLowerCase() === 'get') {\n\t\t\t\t\tthis._pathchange(url);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (method.toLowerCase() === 'get') {\n\t\t\t\tthis._pathchange(url);\n\t\t\t}\n\t\t\tthis.requestInProgress = true;\n\t\t\tloadingStart(this.targetEl, loadingMessage, 'large');\n\n\t\t\t// Fixes a bug in Chrome\n\t\t\turl =\n\t\t\t\turl.indexOf('?') === -1\n\t\t\t\t\t? url + '?_=' + getTimestamp()\n\t\t\t\t\t: url + '&_=' + getTimestamp();\n\n\t\t\taxios({\n\t\t\t\turl: ajaxUrl || url,\n\t\t\t\tmethod: method,\n\t\t\t\theaders: {\n\t\t\t\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t\t\t},\n\t\t\t})\n\t\t\t\t.then(response => {\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tlet ct = response.headers['content-type'] || '';\n\n\t\t\t\t\t\tthis.targetEl.innerHTML = '';\n\n\t\t\t\t\t\tif (ct.indexOf('html') > -1) {\n\t\t\t\t\t\t\tthis._renderHtml(response.data, url);\n\t\t\t\t\t\t} else if (ct.indexOf('json') > -1) {\n\t\t\t\t\t\t\tthis._renderJson(response.data, url);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.requestInProgress = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\talert('An error occured, try again later.');\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch(() => {});\n\t\t}\n\t}\n\n\t/**\n\t * Function that renders new html-data.\n\t * @param {String} data - New data as a string of html.\n\t * @param {String} url - The requested url as a string.\n\t * @private\n\t */\n\t_renderHtml(data, url) {\n\t\tlet parser = new DOMParser(),\n\t\t\tdoc = parser.parseFromString(data, 'text/html'),\n\t\t\tnewPager = doc.querySelector('[data-type=\"loadMore\"]'),\n\t\t\tnewItems = doc.querySelectorAll(\n\t\t\t\t'#' + this.targetId + ' ' + this.itemSelector\n\t\t\t);\n\n\t\tfor (let i = 0; i < newItems.length; i++) {\n\t\t\tthis.targetEl.appendChild(newItems[i]);\n\n\t\t\tif (i === 0) {\n\t\t\t\tlet firstLink = newItems[i].querySelector('a');\n\n\t\t\t\tif (firstLink !== null) {\n\t\t\t\t\tfirstLink.focus();\n\t\t\t\t} else {\n\t\t\t\t\tnewItems[i].focus();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.pager !== null) {\n\t\t\tif (newPager === null) {\n\t\t\t\tthis.pager.classList.add('btn--hidden');\n\t\t\t} else {\n\t\t\t\tthis.pager.classList.remove('btn--hidden');\n\t\t\t\tthis.pager.setAttribute('href', newPager.getAttribute('href'));\n\t\t\t}\n\t\t}\n\n\t\tif (this.syncEls !== null) {\n\t\t\tthis._syncElementsHtml(doc);\n\t\t}\n\n\t\tif (this.useCache === true) {\n\t\t\tthis.cache[url] = this.targetEl.innerHTML;\n\t\t}\n\n\t\tpubsub.publish('/ajaxForm/list/updated');\n\t}\n\n\t/**\n\t * Function that sync other elements after update (with HTML-data).\n\t * @param {String} data - New data as a string of json.\n\t * @private\n\t */\n\t_syncElementsHtml(doc) {\n\t\tfor (let i = 0; i < this.syncEls.length; i++) {\n\t\t\tlet el = document.getElementById(this.syncEls[i]),\n\t\t\t\tnewEl = doc.querySelector('#' + this.syncEls[i]);\n\n\t\t\tif (newEl !== null) {\n\t\t\t\tel.innerHTML = newEl.innerHTML;\n\t\t\t}\n\t\t}\n\n\t\tpubsub.publish('/ajaxForm/sync/updated');\n\t}\n\n\t/**\n\t * Function that renders new json-data.\n\t * @param {String} data - New data as a string of json.\n\t * @param {String} url - The requested url as a string.\n\t * @private\n\t */\n\t_renderJson(data, url) {\n\t\tlet html = '';\n\n\t\ttry {\n\t\t\thtml = this.template(data);\n\t\t} catch (e) {}\n\n\t\tif (this.pager !== null) {\n\t\t\tif (\n\t\t\t\tdata.pager.pagerUrl === undefined ||\n\t\t\t\tdata.pager.pagerUrl === null ||\n\t\t\t\tdata.pager.pagerUrl === ''\n\t\t\t) {\n\t\t\t\tthis.pager.classList.add('btn--hidden');\n\t\t\t} else {\n\t\t\t\tthis.pager.classList.remove('btn--hidden');\n\t\t\t\tthis.pager.setAttribute('href', data.pager.pagerUrl);\n\t\t\t}\n\t\t}\n\n\t\tthis.targetEl.insertAdjacentHTML('BeforeEnd', html);\n\n\t\tif (this.syncEls !== null) {\n\t\t\tthis._syncElementsJson(data);\n\t\t}\n\n\t\tif (this.useCache === true) {\n\t\t\tthis.cache[url] = this.targetEl.innerHTML;\n\t\t}\n\n\t\tpubsub.publish('/ajaxForm/list/updated');\n\n\t\tnew ToggleLink();\n\t}\n\n\t/**\n\t * Function that sync other elements after update (with JSON-data).\n\t * @param {String} data - New data as a string of json.\n\t * @private\n\t */\n\t_syncElementsJson(data) {\n\t\tfor (let i = 0; i < this.syncEls.length; i++) {\n\t\t\tlet el = document.getElementById(this.syncEls[i]),\n\t\t\t\tsyncWith = el.getAttribute('data-sync-with'),\n\t\t\t\ttemplate = el.getAttribute('data-sync-template');\n\n\t\t\tif (template !== null) {\n\t\t\t\tif (syncWith !== null) {\n\t\t\t\t\tel.innerHTML = '';\n\t\t\t\t\tel.insertAdjacentHTML(\n\t\t\t\t\t\t'BeforeEnd',\n\t\t\t\t\t\tel.template(objectByString(data, syncWith))\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tel.innerHTML = '';\n\t\t\t\t\tel.insertAdjacentHTML('BeforeEnd', el.template(data));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (syncWith !== null) {\n\t\t\t\tel.innerHTML = '';\n\t\t\t\tel.insertAdjacentHTML('BeforeEnd', objectByString(data, syncWith));\n\t\t\t}\n\t\t}\n\t\tpubsub.publish('/ajaxForm/sync/updated');\n\t}\n\n\t/**\n\t * Function that loads all template-files needed by the ajaxForm.\n\t * @private\n\t */\n\t_loadTemplates() {\n\t\tlet templates = [],\n\t\t\tloadedTemplates = 0;\n\n\t\t// Get \"base\" template for the list\n\t\tif (this.el.getAttribute('data-template') !== null) {\n\t\t\ttemplates.push({ el: this, tpl: this.el.getAttribute('data-template') });\n\t\t}\n\n\t\t// See if we have any other elements that wants to be synced with a template.\n\t\tif (this.syncEls !== null) {\n\t\t\tfor (let i = 0; i < this.syncEls.length; i++) {\n\t\t\t\tlet el = document.getElementById(this.syncEls[i]),\n\t\t\t\t\ttemplate = el.getAttribute('data-sync-template');\n\n\t\t\t\tif (template !== null) {\n\t\t\t\t\ttemplates.push({ el: el, tpl: template });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Initiate if we have no templates, otherwise we initiate after all templates has been loaded.\n\t\tif (templates.length === 0) {\n\t\t\tthis._initEvents();\n\t\t} else {\n\t\t\tfor (let j = 0; j < templates.length; j++) {\n\t\t\t\tlet obj = templates[j];\n\n\t\t\t\tthis._loadTemplate(obj.el, obj.tpl, () => {\n\t\t\t\t\tloadedTemplates += 1;\n\n\t\t\t\t\tif (loadedTemplates === templates.length) {\n\t\t\t\t\t\tthis._initEvents();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Function that loads a single template-file for an element.\n\t * @param {Object} el - A DOM node which use the template.\n\t * @param {String} template - The template name.\n\t * @param {Object} callback - An callback function after the template has been loaded.\n\t * @private\n\t */\n\t_loadTemplate(el, template, callback) {\n\t\timport(\n\t\t\t/* webpackChunkName: \"template\" */ '../../templates/' + template + '.hbs'\n\t\t).then(tpl => {\n\t\t\tel.template = tpl.default;\n\t\t\tcallback();\n\t\t});\n\t}\n\n\t/**\n\t * Function that updates the url.\n\t * @private\n\t */\n\t_pathchange(url) {\n\t\tif (hasHistorySupport()) {\n\t\t\tif (this.supportBackButton === 1) {\n\t\t\t\twindow.history.pushState(null, null, url);\n\t\t\t} else {\n\t\t\t\twindow.history.replaceState(null, null, url);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Initiates events.\n\t * @private\n\t */\n\t_initEvents() {\n\t\tthis.el.addEventListener('submit', event => {\n\t\t\tevent.preventDefault();\n\t\t\tthis._load();\n\t\t});\n\n\t\tpubsub.subscribe('/ajaxForm/load', () => {\n\t\t\tthis._load();\n\t\t});\n\n\t\tpubsub.subscribe('/ajaxForm/sync/update/html', doc => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis._syncElementsHtml(doc);\n\t\t\t}, 500);\n\t\t});\n\n\t\tpubsub.subscribe('/ajaxForm/sync/update/json', data => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis._syncElementsJson(data);\n\t\t\t}, 500);\n\t\t});\n\t}\n}\n"],"sourceRoot":""}