{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./js/vendor/polyfills/polyfill-nodelist-foreach.js","webpack:///./js/vendor/polyfills/polyfill-form-data.js","webpack:///./js/vendor/polyfills/polyfill-remove.js","webpack:///./js/utilities/throttle/u-throttle.js","webpack:///./components/scrollable-element/c-scrollable-element.js","webpack:///./js/utilities/is-iterable/u-is-iterable.js","webpack:///./js/utilities/extend/u-extend.js","webpack:///./js/utilities/serialize/u-serialize.js","webpack:///./js/utilities/ajax/u-ajax.js","webpack:///./components/form-elements/thumb-slider/c-thumb-slider.js","webpack:///./components/responsive-table/c-responsive-table.js","webpack:///./components/form-elements/file-upload/c-file-upload.js","webpack:///./components/navigation/navigation-mobile/c-navigation-mobile.js","webpack:///./components/reminder/c-reminder.js","webpack:///./main.js","webpack:///./components/navigation/side-navigation/c-side-navigation.js","webpack:///./components/form-elements/copy-to-clipboard/c-copy-to-clipboard.js","webpack:///./components/truncate/c-truncate.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","window","NodeList","forEach","callback","thisArg","this","length","FormData","keys","global","self","_FormData","_send","XMLHttpRequest","send","_fetch","Request","fetch","stringTag","map","WeakMap","wm","arrayFrom","Array","from","obj","slice","Blob","File","a","b","blob","lastModified","Date","defineProperties","lastModifiedDate","toString","normalizeValue","filename","type","stringify","arguments","TypeError","normalizeArgs","undefined","FormDataPolyfill","form","set","elements","elm","disabled","files","file","append","options","opt","selected","checked","push","fd","boundary","Math","random","chunks","iterator","entries","arr","orig","apply","data","setRequestHeader","input","init","body","Element","CharacterData","DocumentType","item","configurable","writable","parentNode","removeChild","throttle","fn","th","scope","last","deferTimer","threshhold","context","now","args","clearTimeout","setTimeout","scrollableElements","checkWidths","updateShadows","scrollingElement","element","shadowElement","scrollLeft","clientWidth","classList","add","remove","contains","outerWrapper","document","createElement","className","innerWrapper","appendChild","insertBefore","addEventListener","e","target","replaceChild","scrollableElement","indexOf","extend","extended","deep","merge","prop","serialize","prefix","str","formData","pair","k","v","encodeURIComponent","join","Ajax","settings","defaults","method","url","dataType","headers","onSuccess","onError","onComplete","Promise","resolve","reject","_request","Error","request","addHeader","open","_setHeaders","onreadystatechange","readyState","status","_onLoad","_onError","header","error","statusText","response","_formatResponse","_formatJSON","responseText","JSON","parse","ThumbSlider","inputFieldContainerSelector","inputField","inputLabel","inputSelector","sliderContainerClass","labelContainerClass","labelContainerLabelPrefix","railClass","railRangeClass","thumbClass","valueTextPrefix","valueTextSuffix","thumbWidth","intervalData","container","querySelector","outputField","outputValue","outputUnit","textContent","dataset","unit","generatedOutput","interpretValue","sliderContainer","setAttribute","labelContainer","labelContainerContent","labelContainerContentText","createTextNode","min","max","rail","thumb","id","railRange","railMin","parseInt","railMax","handleKeyDown","handleMouseDown","handleFocus","handleBlur","positionThumbs","changeOutput","getIntervalData","ajax","getAttribute","incomes","interval","replace","moveThumbTo","valueStep","valueMax","valueMin","round","pos","style","left","right","keyCodes","some","keyCode","preventDefault","stopPropagation","valueNow","down","up","pageDown","pageUp","home","end","event","hasAttribute","slider","handleMouseMove","handleMouseUp","focus","clientX","touches","diffX","getBoundingClientRect","removeEventListener","filesToUpload","files1Uploader","collapseBtn","htmlElement","accordionMenu","iconExpandLink","selectedSubMenu2","reminder","reminderTrigger","reminderInput","reminderFocus","reminderData","_responsiveTables","ResponsiveTable","classNamePrefix","table","breakWidth","nodeName","toLowerCase","mq","_updateTable","querySelectorAll","removeAttribute","rows","tr","index","cell","rowspan","nextRow","newCell","cloneNode","firstChild","columnHeaders","cells","columnOffset","fakeHeader","innerHTML","matchMedia","matches","parkingLoader","_addRoles","_cloneHeaderCells","_insertFakeHeaders","_removeRoles","_restoreHeaderCells","_removeFakeHeaders","dispatchEvent","CustomEvent","sAgent","Idx","sideNav","bsSideNav","sideNavChild","children","navigator","userAgent","substring","match","display","top","$","fileUploader","sectionIdentifier","fileIdCounter","closest","change","evt","output","fileId","removeLink","modal","on","parent","splice","clear","empty","click","hide","siblings","find","val","console","log","len","attr","processData","contentType","success","location","href","Url","show","alert","overflow","valueToCopy","btn","j","nextElementSibling","copyArea","position","getSelection","selectAllChildren","execCommand","onmouseout","copyTextOriginal","copyToClipboard","truncate","instance","truncateVisibleRows","buttonText","truncateButton","buttonTextTruncated","truncatedButton","content","computedInstance","getComputedStyle","contentHeight","clientHeight","parseFloat","paddingBottom","numberOfRows","lineHeight","floor","contentContainer","contentContainerId","showMoreButton","setProperty"],"mappings":"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","file":"main.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 240);\n","/* from:https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach#Polyfill */\r\nif (window.NodeList && !NodeList.prototype.forEach) {\r\n\tNodeList.prototype.forEach = function (callback, thisArg) {\r\n\t\tthisArg = thisArg || window;\r\n\t\tfor (var i = 0; i < this.length; i++) {\r\n\t\t\tcallback.call(thisArg, this[i], i, this);\r\n\t\t}\r\n\t};\r\n}","/* from:https://github.com/jimmywarting/FormData */\r\nif (typeof FormData === 'undefined' || !FormData.prototype.keys) {\r\n const global = typeof window === 'object'\r\n ? window : typeof self === 'object'\r\n ? self : this\r\n\r\n // keep a reference to native implementation\r\n const _FormData = global.FormData\r\n\r\n // To be monkey patched\r\n const _send = global.XMLHttpRequest && global.XMLHttpRequest.prototype.send\r\n const _fetch = global.Request && global.fetch\r\n\r\n // Unable to patch Request constructor correctly\r\n // const _Request = global.Request\r\n // only way is to use ES6 class extend\r\n // https://github.com/babel/babel/issues/1966\r\n\r\n const stringTag = global.Symbol && Symbol.toStringTag\r\n const map = new WeakMap\r\n const wm = o => map.get(o)\r\n const arrayFrom = Array.from || (obj => [].slice.call(obj))\r\n\r\n // Add missing stringTags to blob and files\r\n if (stringTag) {\r\n if (!Blob.prototype[stringTag]) {\r\n Blob.prototype[stringTag] = 'Blob'\r\n }\r\n\r\n if ('File' in global && !File.prototype[stringTag]) {\r\n File.prototype[stringTag] = 'File'\r\n }\r\n }\r\n\r\n // Fix so you can construct your own File\r\n try {\r\n new File([], '')\r\n } catch (a) {\r\n global.File = function(b, d, c) {\r\n const blob = new Blob(b, c)\r\n const t = c && void 0 !== c.lastModified ? new Date(c.lastModified) : new Date\r\n\r\n Object.defineProperties(blob, {\r\n name: {\r\n value: d\r\n },\r\n lastModifiedDate: {\r\n value: t\r\n },\r\n lastModified: {\r\n value: +t\r\n },\r\n toString: {\r\n value() {\r\n return '[object File]'\r\n }\r\n }\r\n })\r\n\r\n if (stringTag) {\r\n Object.defineProperty(blob, stringTag, {\r\n value: 'File'\r\n })\r\n }\r\n\r\n return blob\r\n }\r\n }\r\n\r\n function normalizeValue([value, filename]) {\r\n if (value instanceof Blob)\r\n // Should always returns a new File instance\r\n // console.assert(fd.get(x) !== fd.get(x))\r\n value = new File([value], filename, {\r\n type: value.type,\r\n lastModified: value.lastModified\r\n })\r\n\r\n return value\r\n }\r\n\r\n function stringify(name) {\r\n if (!arguments.length)\r\n throw new TypeError('1 argument required, but only 0 present.')\r\n\r\n return [name + '']\r\n }\r\n\r\n function normalizeArgs(name, value, filename) {\r\n if (arguments.length < 2)\r\n throw new TypeError(\r\n `2 arguments required, but only ${arguments.length} present.`\r\n )\r\n\r\n return value instanceof Blob\r\n // normalize name and filename if adding an attachment\r\n ? [name + '', value, filename !== undefined\r\n ? filename + '' // Cast filename to string if 3th arg isn't undefined\r\n : typeof value.name === 'string' // if name prop exist\r\n ? value.name // Use File.name\r\n : 'blob'] // otherwise fallback to Blob\r\n\r\n // If no attachment, just cast the args to strings\r\n : [name + '', value + '']\r\n }\r\n\r\n /**\r\n * @implements {Iterable}\r\n */\r\n class FormDataPolyfill {\r\n\r\n /**\r\n * FormData class\r\n *\r\n * @param {HTMLElement=} form\r\n */\r\n constructor(form) {\r\n map.set(this, Object.create(null))\r\n\r\n if (!form)\r\n return this\r\n\r\n for (let elm of arrayFrom(form.elements)) {\r\n if (!elm.name || elm.disabled) continue\r\n\r\n if (elm.type === 'file')\r\n for (let file of elm.files)\r\n this.append(elm.name, file)\r\n else if (elm.type === 'select-multiple' || elm.type === 'select-one')\r\n for (let opt of arrayFrom(elm.options))\r\n !opt.disabled && opt.selected && this.append(elm.name, opt.value)\r\n else if (elm.type === 'checkbox' || elm.type === 'radio') {\r\n if (elm.checked) this.append(elm.name, elm.value)\r\n } else\r\n this.append(elm.name, elm.value)\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Append a field\r\n *\r\n * @param {String} name field name\r\n * @param {String|Blob|File} value string / blob / file\r\n * @param {String=} filename filename to use with blob\r\n * @return {Undefined}\r\n */\r\n append(name, value, filename) {\r\n const map = wm(this)\r\n\r\n if (!map[name])\r\n map[name] = []\r\n\r\n map[name].push([value, filename])\r\n }\r\n\r\n\r\n /**\r\n * Delete all fields values given name\r\n *\r\n * @param {String} name Field name\r\n * @return {Undefined}\r\n */\r\n delete(name) {\r\n delete wm(this)[name]\r\n }\r\n\r\n\r\n /**\r\n * Iterate over all fields as [name, value]\r\n *\r\n * @return {Iterator}\r\n */\r\n *entries() {\r\n const map = wm(this)\r\n\r\n for (let name in map)\r\n for (let value of map[name])\r\n yield [name, normalizeValue(value)]\r\n }\r\n\r\n /**\r\n * Iterate over all fields\r\n *\r\n * @param {Function} callback Executed for each item with parameters (value, name, thisArg)\r\n * @param {Object=} thisArg `this` context for callback function\r\n * @return {Undefined}\r\n */\r\n forEach(callback, thisArg) {\r\n for (let [name, value] of this)\r\n callback.call(thisArg, value, name, this)\r\n }\r\n\r\n\r\n /**\r\n * Return first field value given name\r\n * or null if non existen\r\n *\r\n * @param {String} name Field name\r\n * @return {String|File|null} value Fields value\r\n */\r\n get(name) {\r\n const map = wm(this)\r\n return map[name] ? normalizeValue(map[name][0]) : null\r\n }\r\n\r\n\r\n /**\r\n * Return all fields values given name\r\n *\r\n * @param {String} name Fields name\r\n * @return {Array} [{String|File}]\r\n */\r\n getAll(name) {\r\n return (wm(this)[name] || []).map(normalizeValue)\r\n }\r\n\r\n\r\n /**\r\n * Check for field name existence\r\n *\r\n * @param {String} name Field name\r\n * @return {boolean}\r\n */\r\n has(name) {\r\n return name in wm(this)\r\n }\r\n\r\n\r\n /**\r\n * Iterate over all fields name\r\n *\r\n * @return {Iterator}\r\n */\r\n *keys() {\r\n for (let [name] of this)\r\n yield name\r\n }\r\n\r\n\r\n /**\r\n * Overwrite all values given name\r\n *\r\n * @param {String} name Filed name\r\n * @param {String} value Field value\r\n * @param {String=} filename Filename (optional)\r\n * @return {Undefined}\r\n */\r\n set(name, value, filename) {\r\n wm(this)[name] = [[value, filename]]\r\n }\r\n\r\n\r\n /**\r\n * Iterate over all fields\r\n *\r\n * @return {Iterator}\r\n */\r\n *values() {\r\n for (let [name, value] of this)\r\n yield value\r\n }\r\n\r\n\r\n /**\r\n * Return a native (perhaps degraded) FormData with only a `append` method\r\n * Can throw if it's not supported\r\n *\r\n * @return {FormData}\r\n */\r\n ['_asNative']() {\r\n const fd = new _FormData\r\n\r\n for (let [name, value] of this)\r\n fd.append(name, value)\r\n\r\n return fd\r\n }\r\n\r\n\r\n /**\r\n * [_blob description]\r\n *\r\n * @return {Blob} [description]\r\n */\r\n ['_blob']() {\r\n const boundary = '----formdata-polyfill-' + Math.random()\r\n const chunks = []\r\n\r\n for (let [name, value] of this) {\r\n chunks.push(`--${boundary}\\r\\n`)\r\n\r\n if (value instanceof Blob) {\r\n chunks.push(\r\n `Content-Disposition: form-data; name=\"${name}\"; filename=\"${value.name}\"\\r\\n`,\r\n `Content-Type: ${value.type || 'application/octet-stream'}\\r\\n\\r\\n`,\r\n value,\r\n '\\r\\n'\r\n )\r\n } else {\r\n chunks.push(\r\n `Content-Disposition: form-data; name=\"${name}\"\\r\\n\\r\\n${value}\\r\\n`\r\n )\r\n }\r\n }\r\n\r\n chunks.push(`--${boundary}--`)\r\n\r\n return new Blob(chunks, {type: 'multipart/form-data; boundary=' + boundary})\r\n }\r\n\r\n\r\n /**\r\n * The class itself is iterable\r\n * alias for formdata.entries()\r\n *\r\n * @return {Iterator}\r\n */\r\n [Symbol.iterator]() {\r\n return this.entries()\r\n }\r\n\r\n\r\n /**\r\n * Create the default string description.\r\n *\r\n * @return {String} [object FormData]\r\n */\r\n toString() {\r\n return '[object FormData]'\r\n }\r\n }\r\n\r\n\r\n if (stringTag) {\r\n /**\r\n * Create the default string description.\r\n * It is accessed internally by the Object.prototype.toString().\r\n *\r\n * @return {String} FormData\r\n */\r\n FormDataPolyfill.prototype[stringTag] = 'FormData'\r\n }\r\n\r\n const decorations = [\r\n ['append', normalizeArgs],\r\n ['delete', stringify],\r\n ['get', stringify],\r\n ['getAll', stringify],\r\n ['has', stringify],\r\n ['set', normalizeArgs]\r\n ]\r\n\r\n decorations.forEach(arr => {\r\n const orig = FormDataPolyfill.prototype[arr[0]]\r\n FormDataPolyfill.prototype[arr[0]] = function() {\r\n return orig.apply(this, arr[1].apply(this, arrayFrom(arguments)))\r\n }\r\n })\r\n\r\n // Patch xhr's send method to call _blob transparently\r\n if (_send) {\r\n XMLHttpRequest.prototype.send = function(data) {\r\n // I would check if Content-Type isn't already set\r\n // But xhr lacks getRequestHeaders functionallity\r\n // https://github.com/jimmywarting/FormData/issues/44\r\n if (data instanceof FormDataPolyfill) {\r\n const blob = data['_blob']()\r\n this.setRequestHeader('Content-Type', blob.type)\r\n _send.call(this, blob)\r\n } else {\r\n _send.call(this, data)\r\n }\r\n }\r\n }\r\n\r\n // Patch fetch's function to call _blob transparently\r\n if (_fetch) {\r\n const _fetch = global.fetch\r\n\r\n global.fetch = function(input, init) {\r\n if (init && init.body && init.body instanceof FormDataPolyfill) {\r\n init.body = init.body['_blob']()\r\n }\r\n\r\n return _fetch(input, init)\r\n }\r\n }\r\n\r\n global['FormData'] = FormDataPolyfill\r\n}\r\n","/* from:https://developer.mozilla.org/en-US/docs/Web/API/ChildNode/remove#Polyfill */\r\n(function (arr) {\r\n\tarr.forEach(function (item) {\r\n\t\tif (item.hasOwnProperty('remove')) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tObject.defineProperty(item, 'remove', {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tvalue: function remove() {\r\n\t\t\t\tif (this.parentNode !== null)\r\n\t\t\t\t\tthis.parentNode.removeChild(this);\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n})([Element.prototype, CharacterData.prototype, DocumentType.prototype]);","const throttle = function (fn, th, scope) {\n\tconst threshhold = th || 250;\n\tlet last;\n\tlet deferTimer;\n\n\treturn function () {\n\t\tconst context = scope || this;\n\t\tconst now = +new Date();\n\t\tconst args = arguments;\n\n\t\tif (last && now < last + threshhold) {\n\t\t\t// hold on to it\n\t\t\tclearTimeout(deferTimer);\n\t\t\tdeferTimer = setTimeout(function () {\n\t\t\t\tlast = now;\n\t\t\t\tfn.apply(context, args);\n\t\t\t}, threshhold);\n\t\t}\n\t\telse {\n\t\t\tlast = now;\n\t\t\tfn.apply(context, args);\n\t\t}\n\t};\n};\n\nexport default throttle;\n","// Import a polyfill for nodeList.forEach, eg. document.querySelectorAll('.foo').forEach()\nimport '../../js/vendor/polyfills/polyfill-nodelist-foreach.js';\n\nimport isIterable from '../../js/utilities/is-iterable/u-is-iterable.js';\nimport throttle from '../../js/utilities/throttle/u-throttle.js';\n\n// An array to store all scrollable elements\nconst scrollableElements = [];\n\n// Add scrollable elements\nfunction scrollableElement (elements) {\n\tif (!isIterable(elements)) {\n\t\telements = [elements];\n\t}\n\tfor (const element of elements) {\n\t\tif (scrollableElements.indexOf(element) === -1) {\n\t\t\tscrollableElements.push(element);\n\t\t}\n\t}\n}\n\n// Check widths and add or remove scrolling\nfunction checkWidths () {\n\n\tfunction updateShadows (scrollingElement, element) {\n\t\tconst shadowElement = scrollingElement.parentNode;\n\n\t\tif (scrollingElement.scrollLeft + 1 >= element.clientWidth - scrollingElement.clientWidth) {\n\t\t\tshadowElement.classList.add('c-scrollable-element--scrolled-right');\n\t\t}\n\t\telse {\n\t\t\tshadowElement.classList.remove('c-scrollable-element--scrolled-right');\n\t\t}\n\n\t\tif (scrollingElement.scrollLeft === 0) {\n\t\t\tshadowElement.classList.add('c-scrollable-element--scrolled-left');\n\t\t}\n\t\telse {\n\t\t\tshadowElement.classList.remove('c-scrollable-element--scrolled-left');\n\t\t}\n\t}\n\n\t// For each element, check if it is wider than its parent.\n\t// If it is, wrap it in containers to allow for horizontal scrolling.\n\tscrollableElements.forEach(element => {\n\n\t\tif (element.clientWidth > element.parentNode.clientWidth) {\n\t\t\tif (!element.classList.contains('is-scrollable')) {\n\t\t\t\tconst outerWrapper = document.createElement('div');\n\t\t\t\touterWrapper.className = 'c-scrollable-element';\n\t\t\t\tconst innerWrapper = document.createElement('div');\n\t\t\t\tinnerWrapper.className = 'c-scrollable-element__inner';\n\t\t\t\touterWrapper.appendChild(innerWrapper);\n\t\t\t\telement.parentNode.insertBefore(outerWrapper, element);\n\t\t\t\tinnerWrapper.appendChild(element);\n\t\t\t\telement.classList.add('is-scrollable');\n\t\t\t\telement.outerWrapper = outerWrapper;\n\t\t\t\telement.innerWrapper = innerWrapper;\n\n\t\t\t\t// Update shadows when the container element scrolls\n\t\t\t\telement.parentNode.addEventListener('scroll', e => {\n\t\t\t\t\tupdateShadows(e.target, element);\n\t\t\t\t});\n\n\t\t\t\t// Also update shadows immediately to reflect the initial scroll state\n\t\t\t\tupdateShadows(innerWrapper, element);\n\t\t\t}\n\t\t}\n\t\telse if (element.classList.contains('is-scrollable')) {\n\t\t\telement.classList.remove('is-scrollable');\n\t\t\telement.outerWrapper.parentNode.replaceChild(element, element.outerWrapper);\n\t\t}\n\t});\n\n}\n\n// Update scrollability on various events\n['newcontent', 'load', 'resize', 'orientationchange'].forEach(e => {\n\twindow.addEventListener(e, throttle(checkWidths, 400));\n});\n\nexport default scrollableElement;","/**\n * Check if an object is iterable\n * @param {object} obj The object to check\n * @return {bool}\n */\nexport default function (obj) {\n\tif (obj === null) {\n\t\treturn false;\n\t}\n\treturn typeof obj[Symbol.iterator] === 'function';\n}","/**\n * ES6 JS-module translation of https://gomakethings.com/vanilla-javascript-version-of-jquery-extend/\n *\n * Merge objects together\n * @param {mixed} args\n * @return {Object} merged object\n */\nconst extend = function (...args) {\n\n\t// Variables\n\tlet extended = {};\n\tlet deep \t = false;\n\tlet i \t\t = 0;\n\tconst length = args.length;\n\n\t// Check if a deep merge\n\tif (Object.prototype.toString.call(args[0]) === '[object Boolean]') {\n\t\tdeep = args[0];\n\t\ti++;\n\t}\n\n\t/**\n\t * Merge the object into the extended object\n\t * @param {Object} obj\n\t */\n\tconst merge = function (obj) {\n\t\tfor (let prop in obj) {\n\t\t\tif (Object.prototype.hasOwnProperty.call(obj, prop)) {\n\t\t\t\t// If deep merge and property is an object, merge properties\n\t\t\t\tif (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') {\n\t\t\t\t\textended[prop] = extend(true, extended[prop], obj[prop]);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\textended[prop] = obj[prop];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\t// Loop through each object and conduct a merge\n\tfor (; i < length; i++) {\n\t\tlet obj = args[i];\n\t\tmerge(obj);\n\t}\n\n\treturn extended;\n\n};\n\nexport default extend;","/* Serialize label/value-object or FormData-object to querystring */\n\nimport '../../vendor/polyfills/polyfill-form-data.js';\n\n/**\n * Serialize label/value-object or FormData-object to querystring\n * @param {Object} obj label/value-object or FormData-object\n * @param {String} prefix Prefix\n * @return {String} Serialized querystring\n */\nconst serialize = (obj, prefix) => {\n\tlet str = [];\n\tlet p;\n\n\t// If the object is a FormData instance, then convert it into a label/value object\n\tif (obj instanceof FormData) {\n\t\tlet formData = obj;\n\t\tobj = {};\n\t\tfor (var pair of formData.entries()) {\n\t\t\tobj[pair[0]] = pair[1];\n\t\t}\n\t}\n\n\tfor (p in obj) {\n\t\tif (Object.prototype.hasOwnProperty.call(obj, p)) {\n\t\t\tlet k = prefix ? prefix + '[' + p + ']' : p;\n\t\t\tlet v = obj[p];\n\t\t\tstr.push((v !== null && typeof v === 'object') ?\n\t\t\t\tserialize(v, k) :\n\t\t\t\tencodeURIComponent(k) + '=' + encodeURIComponent(v));\n\t\t}\n\t}\n\treturn str.join('&');\n};\n\nexport default serialize;\n","import extend from '../extend/u-extend.js';\nimport serialize from '../serialize/u-serialize.js';\n\nclass Ajax {\n\t/**\n\t * [constructor description]\n\t * @param {Object} settings Usersettings\n\t */\n\tconstructor (settings = {}) {\n\t\t// Default settings\n\t\tlet defaults = {\n\t\t\tmethod: 'GET',\n\t\t\turl: false,\n\t\t\tdataType: 'raw',\n\t\t\theaders: {\n\t\t\t\t'X-Requested-With': 'XMLHttpRequest'\n\t\t\t},\n\t\t\tdata: null,\n\t\t\tonSuccess: () => {},\n\t\t\tonError: () => {},\n\t\t\tonComplete: () => {}\n\t\t};\n\n\t\t// Merge user settings onto default settings\n\t\tthis.settings = extend(true, defaults, settings);\n\t}\n\n\t/**\n\t * Add header to XHR-request\n\t * @param {String} key Header key\n\t * @param {String} value Header value\n\t */\n\taddHeader (key, value = false) {\n\t\tthis.settings.headers[key] = value;\n\t}\n\n\t/**\n\t * Remove header from XHR-request\n\t * @param {[type]} key Header key to remove\n\t */\n\tremoveHeader (key) {\n\t\tdelete this.settings.headers[key];\n\t}\n\n\t/**\n\t * Start request and return Promise\n\t * @return {Promise}\n\t */\n\tsend () {\n\t\t// Return error if no URL is set\n\t\tif (!this.settings.url) {\n\t\t\treturn new Error('No URL is specified');\n\t\t}\n\n\t\t// Start XHR request\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis._request(resolve, reject);\n\t\t});\n\t}\n\n\t/**\n\t * Make the XHR-reqyest\n\t * @param {Object} resolve Promise resolve\n\t * @param {Object} reject Promise reject\n\t */\n\t_request (resolve, reject) {\n\t\t// Create XHR instance\n\t\tthis.request = new XMLHttpRequest();\n\n\t\tlet url = this.settings.url;\n\t\tlet data = null;\n\n\t\t// Parse data and setting headers\n\t\tif (this.settings.data) {\n\t\t\tswitch (this.settings.method) {\n\t\t\t\tcase 'POST':\n\t\t\t\t\tthis.addHeader('Content-Type', 'application/x-www-form-urlencoded');\n\t\t\t\t\tdata = serialize(this.settings.data);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\turl = url + '?' + serialize(this.settings.data);\n\t\t\t}\n\t\t}\n\n\t\t// Open XHR request\n\t\tthis.request.open(this.settings.method, url, true);\n\n\t\t// Set request headers\n\t\tthis._setHeaders();\n\n\t\tthis.request.onreadystatechange = () => {\n\t\t\tif (this.request.readyState === 4) {\n\t\t\t\tif (this.request.status === 200) {\n\t\t\t\t\tthis._onLoad(resolve, reject);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis._onError(reject);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// Send XHR request\n\t\tthis.request.send(data);\n\t}\n\n\t/**\n\t * Set added request headers to XHR instance\n\t */\n\t_setHeaders () {\n\t\tfor (let header in this.settings.headers) {\n\t\t\tif (header && this.settings.headers[header]) {\n\t\t\t\tthis.request.setRequestHeader(header, this.settings.headers[header]);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Handle XHR-response\n\t * @param {Object} resolve Promise resolve\n\t * @param {Object} reject Promise reject\n\t */\n\t_onLoad (resolve, reject) {\n\t\t// Reject Promise with error if statuscode isn't 200\n\t\tif (this.request.status !== 200) {\n\t\t\t// Create a error\n\t\t\tthis.error = new Error(`${this.request.status} ${this.request.statusText}`);\n\n\t\t\t// Call on error callback\n\t\t\tif (typeof this.settings.onComplete === 'function') {\n\t\t\t\tthis.settings.onError(this.error, this);\n\t\t\t}\n\n\t\t\t// Call on complete callback\n\t\t\tif (typeof this.settings.onComplete === 'function') {\n\t\t\t\tthis.settings.onComplete(this.error, this);\n\t\t\t}\n\n\t\t\t// Reject Promise\n\t\t\treject(this.error);\n\t\t}\n\n\t\t// Format response\n\t\tlet response = this._formatResponse();\n\n\t\t// Call on success callback\n\t\tif (typeof this.settings.onSuccess === 'function') {\n\t\t\tthis.settings.onSuccess(response, this);\n\t\t}\n\n\t\t// Call on complete callback\n\t\tif (typeof this.settings.onComplete === 'function') {\n\t\t\tthis.settings.onComplete(response, this);\n\t\t}\n\n\t\t// Resolve Promies with formated response\n\t\tresolve(response);\n\t}\n\n\t/**\n\t * Handle XHR-error\n\t * @param {Object} reject Promise reject\n\t */\n\t_onError (reject) {\n\t\t// Create a error\n\t\tthis.error = new Error(`${this.request.status} ${this.request.statusText}`);\n\n\t\t// Call on error callback\n\t\tif (typeof this.settings.onError === 'function') {\n\t\t\tthis.settings.onError(this.error, this);\n\t\t}\n\n\t\t// Call on complete callback\n\t\tif (typeof this.settings.onComplete === 'function') {\n\t\t\tthis.settings.onComplete(this.error, this);\n\t\t}\n\n\t\t// Reject Promise on XHR error\n\t\treject(this.error);\n\t}\n\n\t/**\n\t * Format the XHR response\n\t * @return {Mixed} Formated response\n\t */\n\t_formatResponse () {\n\t\t// Return format depending on dataType\n\t\tswitch (this.settings.dataType) {\n\t\t\tcase 'json':\n\t\t\t\treturn this._formatJSON(this.request.responseText);\n\t\t}\n\t\treturn this.request.responseText;\n\t}\n\n\t/**\n\t * [_formatJSON description]\n\t * @param {String} data JSON string\n\t * @return {Mixed}\n\t */\n\t_formatJSON (data) {\n\t\ttry {\n\t\t\treturn JSON.parse(data);\n\t\t}\n\t\tcatch (e) {\n\t\t\treturn new Error('JSON parse error');\n\t\t}\n\t}\n}\n\nexport default function (settings = {}) {\n\tlet request = new Ajax(settings);\n\n\treturn request.send();\n}","/**\n * Component: Multi Thumb Slider\n *\n * @license\n * This software or document includes material copied from or derived from multithumb-slider.js (https://w3c.github.io/aria-practices/examples/slider/js/multithumb-slider.js). Copyright © 2018 W3C® (MIT, ERCIM, Keio, Beihang).\n * The original code is licensed according to the W3C Software License at https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n */\n\n// Import extend function\nimport extend from '../../../js/utilities/extend/u-extend.js';\nimport ajax from '../../../js/utilities/ajax/u-ajax.js';\n\nclass ThumbSlider {\n\n\t/**\n\t * Constructor, merge settings and creates markup\n\t * @param {Object} settings User settings\n\t */\n\tconstructor (element, settings = {}) {\n\n\t\t// Default settings\n\t\tthis.defaults = {\n\t\t\tinputFieldContainerSelector: '.c-thumb-slider__input-fields',\n\t\t\tinputField: '.c-thumb-slider__input-field',\n\t\t\tinputLabel: '.c-thumb-slider__input-field label',\n\t\t\tinputSelector: '.c-thumb-slider__input-field input',\n\t\t\tsliderContainerClass: 'c-thumb-slider__slider',\n\t\t\tlabelContainerClass: 'c-thumb-slider__rail-label',\n\t\t\tlabelContainerLabelPrefix: 'Possible range: ',\n\t\t\trailClass: 'c-thumb-slider__rail',\n\t\t\trailRangeClass: 'c-thumb-slider__rail-range',\n\t\t\tthumbClass: 'c-thumb-slider__thumb',\n\t\t\tvalueTextPrefix: '',\n\t\t\tvalueTextSuffix: '',\n\t\t\tthumbWidth: 24,\n\t\t\tintervalData: '',\n\t\t};\n\n\t\tthis.container = element;\n\n\t\t// Merge user settings with defaults\n\t\tthis.settings = extend(this.defaults, settings);\n\n\t\t// Create markup\n\t\tthis.init();\n\t}\n\n\t/**\n\t * Create DOM elements and set up event listeners\n\t */\n\tinit () {\n\n\t\t// Store references to the input elements\n\t\tthis.input = this.container.querySelector(this.settings.inputSelector);\n\n\t\t// Create output mask\n\t\tthis.outputField = document.createElement('output');\n\t\tthis.outputField.classList.add('c-thumb-slider__output');\n\t\tthis.outputValue = document.createElement('span');\n\t\tthis.outputValue.classList.add('c-thumb-slider__output-value');\n\t\tthis.outputUnit = document.createElement('span');\n\t\tthis.outputUnit.classList.add('c-thumb-slider__output-unit');\n\n\t\t// Populate Output mask\n\t\t// this.outputValue.textContent = this.input.value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\n\t\t// Value above is generated when collecting intervalData\n\t\tthis.inputLabel = this.container.querySelector(this.settings.inputLabel);\n\t\tthis.outputUnit.textContent = ' ' + this.inputLabel.dataset.unit;\n\t\tthis.inputField = this.container.querySelector(this.settings.inputField);\n\t\tthis.inputField.appendChild(this.outputField);\n\t\tthis.generatedOutput = this.inputField.querySelector('.c-thumb-slider__output');\n\t\tthis.generatedOutput.appendChild(this.outputValue);\n\t\tthis.generatedOutput.appendChild(this.outputUnit);\n\t\tthis.input.classList.add('is-masked');\n\n\t\t// Interpret value for hidden input field\n\t\tthis.interpretValue = this.container.querySelector('.c-thumb-slider__interpret-value');\n\n\t\t// The slider container\n\t\tthis.sliderContainer = document.createElement('div');\n\t\tthis.sliderContainer.setAttribute('class', this.settings.sliderContainerClass);\n\n\t\t// The label container\n\t\tthis.labelContainer = document.createElement('div');\n\t\tthis.labelContainer.setAttribute('class', this.settings.labelContainerClass);\n\t\t// this.labelContainer.setAttribute('aria-label', this.settings.labelContainerLabelPrefix + this.input.min + ' - ' + this.input.max);\n\t\t// Adding an aria-label ends up in validation issues, adding a visually hidden element instead resolves the issues\n\t\tthis.labelContainerContent = document.createElement('span');\n\t\tthis.labelContainerContentText = document.createTextNode(this.settings.labelContainerLabelPrefix + this.input.min + ' - ' + this.input.max);\n\t\tthis.labelContainerContent.setAttribute('class', 't-visually-hidden');\n\t\tthis.labelContainerContent.appendChild(this.labelContainerContentText);\n\t\tthis.labelContainer.appendChild(this.labelContainerContent);\n\n\t\tthis.sliderContainer.appendChild(this.labelContainer);\n\n\t\t// The rail\n\t\tthis.rail = document.createElement('div');\n\t\tthis.rail.setAttribute('class', this.settings.railClass);\n\t\tthis.sliderContainer.appendChild(this.rail);\n\n\t\tthis.thumb = document.createElement('span');\n\t\tthis.thumb.input = this.input;\n\t\tthis.thumb.setAttribute('id', this.input.id + '-thumb');\n\t\tthis.thumb.setAttribute('role', 'slider');\n\t\tthis.thumb.setAttribute('tabindex', '0');\n\t\tthis.thumb.setAttribute('class', this.settings.thumbClass);\n\t\tthis.thumb.setAttribute('aria-valuemin', this.input.min);\n\t\tthis.thumb.setAttribute('aria-valuemax', this.input.max);\n\t\tthis.thumb.setAttribute('aria-valuenow', this.input);\n\t\tthis.thumb.setAttribute('aria-valuetext', this.settings.valueTextPrefix + this.input.value + this.settings.valueTextSuffix);\n\t\tthis.thumb.setAttribute('aria-label', this.container.querySelector('label[for=\"' + this.input.id + '\"]').textContent);\n\t\tthis.rail.appendChild(this.thumb);\n\n\t\tthis.railRange = document.createElement('span');\n\t\tthis.railRange.setAttribute('class', this.settings.railRangeClass);\n\t\tthis.railRange.setAttribute('aria-hidden', 'true');\n\t\tthis.rail.appendChild(this.railRange);\n\n\t\t// Store the original min and max values of the rail and the input fields\n\t\tthis.railMin = parseInt(this.input.min, 10);\n\t\tthis.railMax = parseInt(this.input.max, 10);\n\n\t\t// Add event listeners to the thumb container\n\t\tthis.sliderContainer.addEventListener('keydown', this.handleKeyDown.bind(this));\n\t\tthis.sliderContainer.addEventListener('touchstart', this.handleMouseDown.bind(this));\n\t\tthis.sliderContainer.addEventListener('mousedown', this.handleMouseDown.bind(this));\n\t\tthis.sliderContainer.addEventListener('focus', this.handleFocus.bind(this));\n\t\tthis.sliderContainer.addEventListener('blur', this.handleBlur.bind(this));\n\n\t\t// Insert the created elements\n\t\t// this.container.insertBefore(this.sliderContainer, this.container.querySelector(this.settings.inputFieldContainerSelector));\n\t\tthis.container.appendChild(this.sliderContainer);\n\n\t\t// Set the thumbs to their initial positions\n\t\tthis.positionThumbs();\n\n\t\t// Reposition the thumbs if the user changes the value of the input fields directly\n\t\tthis.input.addEventListener('change', this.positionThumbs.bind(this));\n\t\tthis.input.addEventListener('change', this.changeOutput.bind(this));\n\n\t\t// Reposition the thumbs when the viewport (and thus the rail) is resized\n\t\twindow.addEventListener('resize', this.positionThumbs.bind(this));\n\t\twindow.addEventListener('orientationchange', this.positionThumbs.bind(this));\n\n\t\t// Gets JSON intervalData\n\t\tif(this.container) {\n\t\t\twindow.addEventListener('load', this.getIntervalData.bind(this));\t\n\t\t}\n\n\t\t// // Append button icon\n\t\t// this.thumb.appendChild(icon({\n\t\t// \ticon: this.settings.icon,\n\t\t// \tsize: 'm',\n\t\t// \twrapperClass: 'c-icon',\n\t\t// \textra_class: [\n\t\t// \t\tthis.settings.iconClass\n\t\t// \t]\n\t\t// }));\n\t}\n\n\tgetIntervalData () {\n\t\tlet interpretValueUrl = this.interpretValue.getAttribute('data-url');\n\t\tajax({\n\t\t\turl: interpretValueUrl,\n\t\t\tdataType: 'json',\n\t\t\tonSuccess: (response) => {\n\t\t\t\tif(response.incomes) {\n\t\t\t\t\tthis.settings.intervalData = response.incomes;\n\t\t\t\t}\n\n\t\t\t\t// Init changeOutput when ajax call is done to get data and display in the hidden input field and the visible output field\n\t\t\t\tthis.changeOutput();\n\t\t\t}\n\t\t});\n\t}\n\n\tchangeOutput () {\n\t\tif(this.settings.intervalData.length > 0) {\n\n\t\t\t// Loop through the intervalData where every object has min,max,value.\n\t\t\tfor (var i = 0; i < this.settings.intervalData.length; i++) {\n\t\t\t\tvar interval = this.settings.intervalData[i];\n\n\t\t\t\t// Check which thumb slider value that is matching which interval\n\t\t\t\tif(this.input.value >= interval.min && this.input.value <= interval.max) {\n\n\t\t\t\t\tthis.interpretValue.value = interval.value;\n\n\t\t\t\t\tif(interval.value === 0) {\n\t\t\t\t\t\tthis.outputValue.textContent = 0;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// Check if the data is the last one in the array, if so the output text is different\n\t\t\t\t\t\tif(this.settings.intervalData.length - 1 == i) {\n\t\t\t\t\t\t\tthis.outputValue.textContent = interval.value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ') + '+';\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis.outputValue.textContent = interval.min.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ') + ' - ' + interval.max.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpositionThumbs () {\n\t\tthis.moveThumbTo(this.thumb, this.input.value, this.railRange);\n\t}\n\n\tmoveThumbTo (thumb, value) {\n\n\t\tconst railRange = thumb.parentNode.querySelector('.c-thumb-slider__rail-range');\n\t\tconst valueMax = parseInt(thumb.input.max);\n\t\tconst valueMin = parseInt(thumb.input.min);\n\n\t\tif (value >= valueMax) {\n\t\t\tvalue = valueMax;\n\t\t}\n\n\t\tif (value <= valueMin) {\n\t\t\tvalue = valueMin;\n\t\t}\n\n\t\tlet valueStep;\n\t\tif (this.input.getAttribute('step') != null) {\n\t\t\tvalueStep = parseInt(this.input.getAttribute('step'));\n\t\t}\n\t\telse {\n\t\t\tvalueStep = 1;\n\t\t}\n\t\tvalue = valueStep * Math.round(value / valueStep);\n\n\t\tconst pos = Math.round(((value - this.railMin) * (this.rail.clientWidth - 0.55 * this.settings.thumbWidth)) / (this.railMax - this.railMin));\n\t\tthumb.setAttribute('aria-valuenow', value);\n\t\tthumb.setAttribute('aria-valuetext', this.settings.valueTextPrefix + value + this.settings.valueTextSuffix);\n\t\tthumb.input.value = value;\n\t\tthis.changeOutput();\n\n\t\tthumb.style.left = pos + 'px';\n\t\trailRange.style.right = 'calc(100% - ' + (pos + this.settings.thumbWidth) + 'px)';\n\n\t}\n\n\thandleKeyDown (e) {\n\n\t\tconst keyCodes = {\n\t\t\t'left': 37,\n\t\t\t'up': 38,\n\t\t\t'right': 39,\n\t\t\t'down': 40,\n\t\t\t'pageUp': 33,\n\t\t\t'pageDown': 34,\n\t\t\t'end': 35,\n\t\t\t'home': 36\n\t\t};\n\n\t\t// Consume the keyDown event if one of the keys we use was pressed\n\t\tif (Object.keys(keyCodes).some(function(key) {\n\t\t\treturn keyCodes[key] === e.keyCode;\n\t\t})) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\tconst thumb = e.target;\n\t\tconst valueNow = parseInt(thumb.getAttribute('aria-valuenow'), 10);\n\n\t\tlet valueStep;\n\t\tif (this.input.getAttribute('step') != null) {\n\t\t\tvalueStep = parseInt(this.input.getAttribute('step'));\n\t\t}\n\t\telse {\n\t\t\tvalueStep = 1;\n\t\t}\n\n\t\tswitch (e.keyCode) {\n\t\t\tcase keyCodes.left:\n\t\t\tcase keyCodes.down:\n\t\t\t\tthis.moveThumbTo(thumb, valueNow - valueStep);\n\t\t\t\tbreak;\n\n\t\t\tcase keyCodes.right:\n\t\t\tcase keyCodes.up:\n\t\t\t\tthis.moveThumbTo(thumb, valueNow + valueStep);\n\t\t\t\tbreak;\n\n\t\t\tcase keyCodes.pageDown:\n\t\t\t\tthis.moveThumbTo(thumb, valueNow - valueStep);\n\t\t\t\tbreak;\n\n\t\t\tcase keyCodes.pageUp:\n\t\t\t\tthis.moveThumbTo(thumb, valueNow + valueStep);\n\t\t\t\tbreak;\n\n\t\t\tcase keyCodes.home:\n\t\t\t\tthis.moveThumbTo(thumb, this.railMin);\n\t\t\t\tbreak;\n\n\t\t\tcase keyCodes.end:\n\t\t\t\tthis.moveThumbTo(thumb, this.railMax);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\thandleFocus () {\n\t\tthis.rail.classList.add('focus');\n\t}\n\n\thandleBlur () {\n\t\tthis.rail.classList.remove('focus');\n\t}\n\n\thandleMouseDown (event) {\n\t\t// Return if the click was not on a handle\n\t\tif (!event.target.hasAttribute('role') || event.target.getAttribute('role') !== 'slider') {\n\t\t\treturn;\n\t\t}\n\t\tconst thumb = event.target;\n\t\tconst slider = this;\n\n\t\tfunction handleMouseMove (event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar clientX = null;\n\t\t\tif (event.clientX != null) {\n\t\t\t\tclientX = event.clientX;\n\t\t\t}\n\t\t\telse if (event.touches[0].clientX != null) {\n\t\t\t\tclientX = event.touches[0].clientX;\n\t\t\t}\n\t\t\tconst diffX = clientX - Math.round(slider.rail.getBoundingClientRect().left);\n\t\t\tslider.moveThumbTo(thumb, slider.railMin + parseInt(((slider.railMax - slider.railMin) * diffX) / slider.rail.clientWidth, 10));\n\t\t}\n\n\t\tfunction handleMouseUp () {\n\t\t\tdocument.removeEventListener('mousemove', handleMouseMove);\n\t\t\tdocument.removeEventListener('touchmove', handleMouseMove);\n\t\t\tdocument.removeEventListener('mouseup', handleMouseUp);\n\t\t\tdocument.removeEventListener('touchend', handleMouseUp);\n\t\t}\n\n\t\t// Track mouse movements and move the thumb\n\t\tdocument.addEventListener('touchmove', handleMouseMove);\n\t\tdocument.addEventListener('mousemove', handleMouseMove);\n\n\t\t// Stop tracking mouse movements on mouseup\n\t\tdocument.addEventListener('touchend', handleMouseUp);\n\t\tdocument.addEventListener('mouseup', handleMouseUp);\n\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\n\t\t// Move focus to the clicked handle\n\t\tthumb.focus();\n\t}\n}\n\nexport default ThumbSlider;\n","// Import polyfills (remove if all JS-supported browsers have native support)\nimport '../../js/vendor/polyfills/polyfill-nodelist-foreach.js';\nimport '../../js/vendor/polyfills/polyfill-remove.js';\n\n// Import dependencies\nimport extend from '../../js/utilities/extend/u-extend.js';\nimport throttle from '../../js/utilities/throttle/u-throttle.js';\n\n// An array to store all responsive tables so we can check if they have been\n// initialised already. Once browser support is there this should be a static\n// property of the class.\nconst _responsiveTables = [];\n\n/**\n * Class that makes a table responsive by transforming it when necessary.\n * @requires throttle\n */\nclass ResponsiveTable {\n\n\t/**\n\t * Constructor, merges settings and sets up event handlers.\n\t * @param {object} [settings] Configuration object.\n\t * @param {Node} element - A DOM node representing the table element that will be made responsive.\n\t * @param {string} [settings.classNamePrefix=c-responsive-table] - A prefix used for inserted class names.\n\t */\n\tconstructor(settings = {}) {\n\t\t// Default settings\n\t\tthis.defaults = {\n\t\t\telement: null,\n\t\t\tclassNamePrefix: 'c-responsive-table'\n\t\t};\n\n\t\t// Merge settings\n\t\tthis.settings = extend(this.defaults, settings);\n\n\t\t// Create a shortcut to the table element\n\t\tthis.table = this.settings.element;\n\n\t\t// A property to save the table’s width before it was transformed in\n\t\tthis.breakWidth = null;\n\n\t\t// If this.table exists, is a table element, and hasn’t already been\n\t\t// initialised, add the table element to the storage array, save the\n\t\t// value of its `data-breakpoint` attribute, if any, and add event\n\t\t// handlers to trigger transformation. Note the arrow function in the\n\t\t// call to `throttle()` to scope `this`.\n\t\tif (this.table && this.table.nodeName.toLowerCase() === 'table' && _responsiveTables.indexOf(this.table) === -1) {\n\t\t\t_responsiveTables.push(this.table);\n\t\t\tthis.mq = this.table.getAttribute('data-breakpoint');\n\t\t\t['newcontent', 'load', 'resize', 'orientationchange'].forEach(e => {\n\t\t\t\twindow.addEventListener(e, throttle(() => this._updateTable(), 300));\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Add roles to the table element to preserve semantics removed by changing\n\t * display properties via CSS.\n\t * @private\n\t */\n\t_addRoles() {\n\t\tthis.table.setAttribute('role', 'table');\n\t\tthis.table.querySelectorAll('thead, tbody, tfoot').forEach(element => element.setAttribute('role', 'rowgroup'));\n\t\tthis.table.querySelectorAll('tr').forEach(element => element.setAttribute('role', 'row'));\n\t\tthis.table.querySelectorAll('td').forEach(element => element.setAttribute('role', 'cell'));\n\t\tthis.table.querySelectorAll('th').forEach(element => element.setAttribute('role', 'columnheader'));\n\t\tthis.table.querySelectorAll('th[scope=\"row\"]').forEach(element => element.setAttribute('role', 'rowheader'));\n\t}\n\n\t/**\n\t * Remove roles added by _addRoles.\n\t * @private\n\t */\n\t_removeRoles() {\n\t\tthis.table.removeAttribute('role');\n\t\tthis.table.querySelectorAll('thead, tbody, tfoot, tr, th, td').forEach(element => element.removeAttribute('role'));\n\t}\n\n\t/**\n\t * Clone header cells that span multiple rows to give each row a header.\n\t * For simplicity this only looks at the first header cell in each row.\n\t * The value of the `rowspan` attribute of the original header cell is\n\t * temporarily stored in a `data-rowspan` attribute so we can restore it.\n\t * @private\n\t */\n\t_cloneHeaderCells() {\n\t\tconst rows = this.table.querySelectorAll('tbody tr');\n\t\trows.forEach((tr, index) => {\n\t\t\tconst rowspans = tr.querySelectorAll('th[rowspan]:first-child');\n\t\t\trowspans.forEach(cell => {\n\t\t\t\tconst rowspan = parseInt(cell.getAttribute('rowspan'), 10);\n\t\t\t\tif (rowspan > 1) {\n\t\t\t\t\tfor (let i = 1; i < rowspan; i++) {\n\t\t\t\t\t\tconst nextRow = rows[index + i];\n\t\t\t\t\t\tif (nextRow) {\n\t\t\t\t\t\t\tconst newCell = cell.cloneNode(true);\n\t\t\t\t\t\t\tnewCell.removeAttribute('rowspan');\n\t\t\t\t\t\t\tnewCell.classList.add(`${this.settings.classNamePrefix}__cloned-cell`);\n\t\t\t\t\t\t\tnextRow.insertBefore(newCell, nextRow.firstChild);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcell.setAttribute('data-rowspan', cell.getAttribute('rowspan'));\n\t\t\t\t\tcell.removeAttribute('rowspan');\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Remove cloned header cells and restore rowspan attributes on the\n\t * original header cells.\n\t * @private\n\t */\n\t_restoreHeaderCells() {\n\t\tthis.table.querySelectorAll(`.${this.settings.classNamePrefix}__cloned-cell`).forEach(cell => cell.remove());\n\t\tthis.table.querySelectorAll('[data-rowspan]').forEach(cell => {\n\t\t\tcell.setAttribute('rowspan', cell.getAttribute('data-rowspan'));\n\t\t\tcell.removeAttribute('data-rowspan');\n\t\t});\n\t}\n\n\t/**\n\t * Insert elements that clone the contents of the column headers.\n\t * The default behaviour is to use `innerHTML` to copy the entire contents\n\t * of each column header cell. If this causes problems, you can use a\n\t * `data-header` attribute on the column headers to specify a string to use\n\t * instead.\n\t * This function takes `colspan` attributes on data cells into account,\n\t * i.e. data cells can span multiple columns.\n\t * @private\n\t */\n\t_insertFakeHeaders() {\n\t\tconst columnHeaders = this.table.querySelectorAll('thead tr:first-child th');\n\t\tthis.table.querySelectorAll('tbody tr').forEach(tr => {\n\t\t\tconst cells = tr.querySelectorAll('th, td');\n\t\t\tlet columnOffset = 0;\n\t\t\tcells.forEach(cell => {\n\t\t\t\tconst header = columnHeaders[Array.prototype.indexOf.call(cells, cell) + columnOffset];\n\t\t\t\tconst fakeHeader = document.createElement('span');\n\t\t\t\tfakeHeader.classList.add(`${this.settings.classNamePrefix}__fake-header`);\n\t\t\t\tfakeHeader.innerHTML = header.getAttribute('data-header') ? header.getAttribute('data-header') : header.innerHTML;\n\t\t\t\tcell.insertBefore(fakeHeader, cell.firstChild);\n\t\t\t\tcolumnOffset += cell.getAttribute('colspan') ? parseInt(cell.getAttribute('colspan'), 10) - 1 : 0;\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Remove elements inserted by _insertFakeHeaders.\n\t * @private\n\t */\n\t_removeFakeHeaders() {\n\t\tthis.table.querySelectorAll(`.${this.settings.classNamePrefix}__fake-header`).forEach(element => element.remove());\n\t}\n\n\t/**\n\t * Check widths and transform or restore the table.\n\t * The default is to check if the table is wider than its parent. The\n\t * clientWidth of the table at the time it becomes wider than its parent\n\t * is saved so we can compare it to the parent’s width. If we don’t, the\n\t * transformed table’s width will be used instead, which we don’t want.\n\t *\n\t * Other breakpoints can be specified via a `data-breakpoint` attribute on\n\t * the table element. The value of this, if present, is passed to\n\t * window.matchMedia(query). If the media query matches, the table is\n\t * transformed. If it doesn’t, the table is restored.\n\t * @private\n\t */\n\n\t_updateTable() {\n\t\tconst breakWidth = this.breakWidth ? this.breakWidth : this.table.clientWidth;\n\t\tif (this.mq && window.matchMedia(this.mq).matches || !this.mq && breakWidth > this.table.parentNode.clientWidth) {\n\n\t\t\tif (!this.table.classList.contains(`${this.settings.classNamePrefix}--transformed`)) {\n\n\t\t\t\tlet parkingLoader = document.querySelector('.parking-loader');\n\t\t\t\tthis.breakWidth = this.table.clientWidth; // Save the table’s width when the breakpoint was met\n\t\t\t\tthis._addRoles();\n\t\t\t\tthis._cloneHeaderCells();\n\t\t\t\tthis._insertFakeHeaders();\n\t\t\t\tthis.table.classList.add(`${this.settings.classNamePrefix}--transformed`);\n\t\t\t\tthis.table.classList.remove('c-responsive-table--hidden');\n\t\t\t\tparkingLoader.classList.remove('parking-loader--visible');\n\t\t\t}\n\n\t\t}\n\t\telse if (this.table.classList.contains(`${this.settings.classNamePrefix}--transformed`)) {\n\t\t\tthis.breakWidth = null;\n\t\t\tthis._removeRoles();\n\t\t\tthis._restoreHeaderCells();\n\t\t\tthis._removeFakeHeaders();\n\t\t\tthis.table.classList.remove(`${this.settings.classNamePrefix}--transformed`);\n\t\t}\n\n\t}\n\n}\n\nexport default ResponsiveTable;\n","/* eslint-disable */\r\nexport default function uploadFile () {\r\n\t$.fn.fileUploader = function (filesToUpload, sectionIdentifier) {\r\n\t\tvar fileIdCounter = 0;\r\n\t\tthis.closest('.c-file-upload').change(function (evt) {\r\n\t\t\tvar output = [];\r\n\t\t\tif (evt.target.files.length < 9 ) {\r\n\t\t\t\tfor (var i = 0; i < evt.target.files.length; i++) {\r\n\t\t\t\t\tfileIdCounter++;\r\n\t\t\t\t\tvar file = evt.target.files[i];\r\n\t\t\t\t\tvar fileId = sectionIdentifier + fileIdCounter;\r\n\t\t\t\t\tfilesToUpload.push({\r\n\t\t\t\t\t\tid: fileId,\r\n\t\t\t\t\t\tfile: file\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tvar removeLink = 'Remove';\r\n\r\n\t\t\t\t\toutput.push('
  • ', file.name, ' kommer att bifogas. ',removeLink, '
  • ');\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$(this).children('.c-file-upload__file-list')\r\n\t\t\t\t\t.append(output.join(''));\r\n\r\n\t\t\t\t// reset the input to null - nice little chrome bug!\r\n\t\t\t\tevt.target.value = null;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t$('#alert-message-files').modal('show');\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t\t$(this).on('click', '.c-file-upload__remove-file', function (e) {\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tvar fileId = $(this).parent().children('a').data('fileid');\r\n\r\n\t\t\t// loop through the files array and check if the name of that file matches FileName\r\n\t\t\t// and get the index of the match\r\n\t\t\tfor (var i = 0; i < filesToUpload.length; ++i) {\r\n\t\t\t\tif (filesToUpload[i].id === fileId)\r\n\t\t\t\t\tfilesToUpload.splice(i, 1);\r\n\t\t\t}\r\n\r\n\t\t\t$(this).parent().remove();\r\n\t\t});\r\n\r\n\t\tthis.clear = function () {\r\n\t\t\tfor (var i = 0; i < filesToUpload.length; ++i) {\r\n\t\t\t\tif (filesToUpload[i].id.indexOf(sectionIdentifier) >= 0)\r\n\t\t\t\t\tfilesToUpload.splice(i, 1);\r\n\t\t\t}\r\n\r\n\t\t\t$(this).children('.c-file-upload__file-list').empty();\r\n\t\t};\r\n\r\n\t\treturn this;\r\n\t};\r\n\r\n\t(function () {\r\n\r\n\t\tvar inputField;\r\n\t\tvar filesToUpload = [];\r\n\t\tvar files1Uploader = $('.c-file-upload').fileUploader(filesToUpload, 'files1');\r\n\r\n\t\t$('.close-modal').click(function() {\r\n\t\t\t$('#ConfirmSendFiles').hide();\r\n\t\t\t$('.confirm-message').hide();\r\n\t\t\t$('.modal-backdrop').hide();\r\n\t\t});\r\n\t\t$('.upload-form__button').click(function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tinputField = $(this).siblings('.c-file-upload').find('input[type=hidden]').val();\r\n\t\t\tif(filesToUpload.length === 0 ) {\r\n\t\t\t\t$('#uploadFilesModal-no-files').modal('show');\r\n\t\t\t}\r\n\t\t\telse if ( filesToUpload.length <= 8){\r\n\t\t\t\t$('#uploadFilesModal').modal('show');\r\n\t\t\t}\r\n\t\t\telse if ( filesToUpload.length > 8 ) {\r\n\t\t\t\t$('#alert-message-files').modal('show');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tconsole.log('');\r\n\t\t\t}\r\n\t\t});\r\n\t\t$('.cancel-response').on('click', function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\t$('#alert-message-files').modal('hide');\r\n\t\t\t$('#uploadFilesModal').modal('hide');\r\n\t\t\t$('#uploadFilesModal-no-files').modal('hide');\r\n\t\t});\r\n\t\t$('.send-response').on(\"click\", function (e) {\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\t$('#uploadFilesModal').modal('hide');\r\n\t\t\t$('#uploadFilesModal-no-files').modal('hide');\r\n\r\n\t\t\tvar formData = new FormData();\r\n\t\t\tfor (var i = 0, len = filesToUpload.length; i < len; i++) {\r\n\t\t\t\tformData.append('files', filesToUpload[i].file);\r\n\t\t\t}\r\n\t\t\tformData.append('code', inputField);\r\n\t\t\t$('button').attr('disabled', true);\r\n\t\t\t$.ajax({\r\n\t\t\t\turl: document.querySelector('.upload-form').getAttribute('action'),\r\n\t\t\t\tdata: formData,\r\n\t\t\t\tprocessData: false,\r\n\t\t\t\tcontentType: false,\r\n\t\t\t\ttype: 'POST',\r\n\t\t\t\tsuccess: function (data) {\r\n\t\t\t\t\tfiles1Uploader.clear();\r\n\t\t\t\t\twindow.location.href = data.Url;\r\n\t\t\t\t\t$('.upload-files-decline').hide();\r\n\t\t\t\t\t$('.conf-response').show();\r\n\t\t\t\t},\r\n\t\t\t\terror: function (data) {\r\n\t\t\t\t\talert('ERROR - ' + data.responseText);\r\n\t\t\t\t\t$('button').attr('disabled', false);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\t$('.additional-files').on(\"click\", function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tinputField = $(this).siblings('.c-file-upload').find('input[type=hidden]').val();\r\n\t\t\tif( filesToUpload.length > 0 ) {\r\n\r\n\t\t\tvar formData = new FormData();\r\n\t\t\tfor (var i = 0, len = filesToUpload.length; i < len; i++) {\r\n\t\t\t\tformData.append('files', filesToUpload[i].file);\r\n\t\t\t}\r\n\t\t\tformData.append('code', inputField);\r\n\r\n\t\t\t$('button').attr('disabled', true);\r\n\t\t\t$.ajax({\r\n\t\t\t\turl: document.querySelector('.upload-form-additonal-files').getAttribute('action'),\r\n\t\t\t\tdata: formData,\r\n\t\t\t\tprocessData: false,\r\n\t\t\t\tcontentType: false,\r\n\t\t\t\ttype: 'POST',\r\n\t\t\t\tsuccess: function (data) {\r\n\t\t\t\t\tfiles1Uploader.clear();\r\n\t\t\t\t\twindow.location.href = data.Url;\r\n\t\t\t\t\t$('.upload-files-decline').hide();\r\n\t\t\t\t\t$('.conf-response').show();\r\n\t\t\t\t},\r\n\t\t\t\terror: function (data) {\r\n\t\t\t\t\talert('ERROR - ' + data.responseText);\r\n\t\t\t\t\t$('button').attr('disabled', false);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t} else {\r\n\t\t\t$('#alertNoDocuments').modal('show');\r\n\t\t}\r\n\t\t});\r\n\t})();\r\n}\r\n","export default function preventScroll () {\n\tconst collapseBtn = document.querySelector('.collapse-button');\n\tconst htmlElement = document.querySelector('html');\n\tconst accordionMenu = document.querySelector('#accordion-menu');\n\tconst iconExpandLink = document.querySelector('.nr0');\n\tconst selectedSubMenu2 = document.querySelector('#my_pages-selected');\n\n\tif(collapseBtn) {\n\t\t// if the menu is open, prevent html element from scrolling.\n\t\tcollapseBtn.addEventListener('click', function () {\n\t\t\tif(accordionMenu.classList.value === 'collapse') {\n\t\t\t\thtmlElement.style.overflow = 'hidden';\n\t\t\t}\n\t\t\telse {\n\t\t\t\thtmlElement.style.overflow = 'scroll';\n\t\t\t}\n\t\t});\n\t}\n\t\n\tif(selectedSubMenu2) {\n\t\t// if the menu is open, prevent html element from scrolling.\n\t\ticonExpandLink.addEventListener('click', function() {\n\t\t\tif(selectedSubMenu2.style.display !== 'block') {\n\t\t\t\thtmlElement.style.overflow = 'hidden';\n\t\t\t}\n\t\t\telse {\n\t\t\t\thtmlElement.style.overflow = 'scroll';\n\t\t\t}\n\t\t});\n\t}\n}","export default () => {\n\tconst reminder = document.querySelector('.c-reminder');\n\tconst reminderTrigger = document.querySelector('[data-reminder=\"trigger\"]');\n\tconst reminderInput = document.querySelector('[data-reminder=\"input\"]');\n\tconst reminderFocus = document.querySelector('[data-reminder=\"focus\"]');\n\tconst reminderData = document.querySelector('[data-reminder=\"data\"]');\n\n\tif(!reminder && !reminderTrigger && !reminderFocus) return;\n\n\treminderTrigger.setAttribute('aria-expanded', 'false');\n\treminderTrigger.setAttribute('aria-controls', reminder.getAttribute('id'));\n \n\treminderTrigger.addEventListener('click', function() {\n\t\tif (!reminder.classList.contains('c-reminder--show')) {\n\t\t\treminder.classList.add('c-reminder--show');\n\t\t\tthis.setAttribute('aria-expanded', 'true');\n\t\t}\n\t\telse {\n\t\t\treminder.classList.remove('c-reminder--show');\n\t\t\tthis.setAttribute('aria-expanded', 'false');\n\t\t}\n\t});\n\n\treminderFocus.addEventListener('click', () => { \n\t\treminderInput.focus();\n\t});\n\n\treminderInput.addEventListener('keyup', (e) => { \n\t\treminderData.innerHTML = e.target.value;\n\t});\n};","/**\n * @file This is the main project file where all other scripts should be initiated.\n *\n * Note that since this file will be appended to the `body` element there is no need\n * to wait for the DOMContentLoaded event before initiating your scripts. In fact, it\n * will not work since the DOMContentLoaded event will have been triggered before this\n * file is loaded. Instead use an iife (1) or, as in the example below, a function\n * that is called when a custom event is triggered.\n *\n * 1. https://en.wikipedia.org/wiki/Immediately-invoked_function_expression\n *\n * Examples\n *\n * Load a self-initiating script that does not expect a DOMContentLoaded event:\n * import './path/to/script.js'\n *\n * Load a script that you need to send parameters to or initiate at a specific time:\n * First import the script:\n * import functionName from './path/to/script.js'\n * Note that the path needs to start with './' and be relative to your code root, which\n * is 'project' by default.\n * Then initiate it:\n * functionName(param);\n *\n * See the included examples for more.\n */\n\nimport scrollableElement from './components/scrollable-element/c-scrollable-element.js';\nimport ThumbSlider from './components/form-elements/thumb-slider/c-thumb-slider.js';\n\n// import './js/vendor/polyfills/polyfill-custom-event.js';\nimport uploadFile from './components/form-elements/file-upload/c-file-upload.js';\nimport stickySidebar from './components/navigation/side-navigation/c-side-navigation.js';\nimport preventScroll from './components/navigation/navigation-mobile/c-navigation-mobile.js';\nimport copyToClipboard from './components/form-elements/copy-to-clipboard/c-copy-to-clipboard.js';\nimport ResponsiveTable from './components/responsive-table/c-responsive-table.js';\nimport reminder from './components/reminder/c-reminder.js';\nimport truncate from './components/truncate/c-truncate.js';\n\ndocument.addEventListener('newcontent', (e) => {\n\tlet context = e.target;\n\n\t// \t// Make tables scrollable if needed\n\tscrollableElement(context.querySelectorAll('table:not(.not-scrollable)'));\n});\n\n// Target all tables with a specific class name\ndocument.querySelectorAll('.c-responsive-table').forEach(table => new ResponsiveTable({\n\telement: table\n}));\n\ndocument.dispatchEvent(new CustomEvent('newcontent'));\n\n// Init thumb slider\n(function () {\n\tlet slider = document.querySelectorAll('.c-thumb-slider');\n\tfor (let i = 0; i < slider.length; i++) {\n\t\tnew ThumbSlider(slider[i]);\n\t}\n})();\n\n// init stickysidebar\nstickySidebar();\n\n// Init upload file\nuploadFile();\n\n// Init preventScroll function\npreventScroll();\n\n// Init copyToClipboard\ncopyToClipboard();\n\n// Init reminder\nreminder();\n\n// Init truncate\ntruncate();","export default function stickySidebar () {\n\t(function () {\n\t\tconst sideNav = document.querySelector('#side-navigation');\n\t\tconst bsSideNav = document.querySelector('.bs-sidenav');\n\n\t\t// check if it's IE11\n\t\tfunction getIEVersion() {\n\t\t\tlet sAgent = window.navigator.userAgent;\n\t\t\tlet Idx = sAgent.indexOf('MSIE');\n\t\t\t// If IE, return version number.\n\t\t\tif (Idx > 0)\n\t\t\t\treturn parseInt(sAgent.substring(Idx+ 5, sAgent.indexOf('.', Idx)));\n\t\t\t// If IE 11 then look for Updated user agent string.\n\t\t\telse if (navigator.userAgent.match(/Trident\\/7\\./))\n\t\t\t\treturn 11;\n\t\t\telse\n\t\t\t\treturn 0; // It is not IE\n\t\t}\n\t\tif(bsSideNav) {\n\t\t\tif (sideNav) {\n\t\t\t\tconst sideNavChild = sideNav.children[0];\n\t\t\t\tif (getIEVersion() > 0) {\n\t\t\t\t\tsideNavChild.classList.add('bs-sidebar');\n\t\t\t\t\tsideNav.style.display = 'block';\n\t\t\t\t\tsideNav.style.top = '0';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// hide sideNav if it is empty\n\t\t\tif(bsSideNav.children.length === 0) {\n\t\t\t\tsideNav.classList.add('side-navigation--hidden');\n\t\t\t}\n\t\t}\n\t})();\n}\n","/*\n\tTo do: Refactor this function due to deprication of execCommand.\n\t* Source: https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand\n*/\nexport default function copyToClipboard() {\n\tconst btn = document.querySelectorAll('.c-copy-to-clipboard__button');\n\tlet valueToCopy;\n\n\tif(btn) {\n\t\tfor(let i = 0; i < btn.length; i++) {\n\t\t\tbtn[i].addEventListener('click', function() {\n\t\t\t\t// get the closest element with .copy-this class\n\t\t\t\tvalueToCopy = btn[i].closest('td').children;\n\t\t\t\tfor (let j = 0; j < valueToCopy.length; j++) {\n\t\t\t\t\tif(valueToCopy[j].className === 'contract-number') {\n\n\t\t\t\t\t\tvar tooltip = btn[i].nextElementSibling;\n\t\t\t\t\t\ttooltip.innerHTML = 'Kopierat: ' + valueToCopy[j].innerHTML + '';\n\t\t\t\t\t\tvar copyArea = document.createElement('div');\n\t\t\t\t\t\tcopyArea.setAttribute('contentEditable', true);\n\n\t\t\t\t\t\t// set to fixed to prevent jump to bottom in Edge\n\t\t\t\t\t\tcopyArea.style.position = 'fixed';\n\t\t\t\t\t\tcopyArea.style.top = 0;\n\t\t\t\t\t\tcopyArea.style.left = 0;\n\n\t\t\t\t\t\tcopyArea.innerHTML = valueToCopy[j].innerHTML;\n\t\t\t\t\t\tdocument.body.appendChild(copyArea);\n\t\t\t\t\t\twindow.getSelection().selectAllChildren(copyArea);\n\t\t\t\t\t\tdocument.execCommand('copy');\n\t\t\t\t\t\tdocument.body.removeChild(copyArea);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbtn[i].onmouseout = function() {\n\t\t\t\t\tvar copyTextOriginal = btn[i].querySelector('.t-visually-hidden').textContent;\n\t\t\t\t\tvar tooltip = btn[i].nextElementSibling;\n\t\t\t\t\ttooltip.innerHTML = copyTextOriginal;\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\t}\n}\n","/**\n * Truncate\n */\n\nexport default function () {\n\n\tif (!document.querySelector('[data-module=\"truncate\"]')) {\n\t\treturn;\n\t}\n\n\tconst truncate = document.querySelectorAll('[data-module=\"truncate\"]');\n\tlet i = 0;\n\n\ttruncate.forEach((instance) => {\n\t\ti++;\n\t\tconst rows = parseInt(instance.dataset.truncateVisibleRows);\n\t\tconst buttonText = instance.dataset.truncateButton;\n\t\tconst buttonTextTruncated = instance.dataset.truncatedButton;\n\t\tconst content = instance.innerHTML;\n\t\tconst computedInstance = getComputedStyle(instance);\n\t\tconst contentHeight = instance.clientHeight - parseFloat(computedInstance.paddingBottom);\n\t\tconst lineHeight = parseFloat(computedInstance.lineHeight);\n\t\tconst numberOfRows = contentHeight / lineHeight;\n\n\t\t/*\n\t\t\tCheck if total number of rows is less than truncate value + 10, if so don't truncate.\n\t\t\tBut if contentHeight is 0 (or less probably) that means the truncate content is hidden and we can't get the proper element height, so instead disable the check and always init truncate for those instances.\n\t\t*/\n\n\t\tif (contentHeight > 0) {\n\t\t\tif (Math.floor(numberOfRows) <= rows) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// Clear content and append later\n\t\tinstance.innerHTML = '';\n\n\t\t// Create a content container\n\t\tconst contentContainer = document.createElement('div');\n\t\tcontentContainer.classList.add('c-truncate__content');\n\t\tvar contentContainerId = 'c-truncate__content-' + i;\n\t\tcontentContainer.setAttribute('id', contentContainerId);\n\t\tcontentContainer.setAttribute('tabindex', '-1');\n\t\tcontentContainer.innerHTML = content;\n\t\tinstance.appendChild(contentContainer);\n\n\t\t// Create the button to show content\n\t\tconst showMoreButton = document.createElement('button');\n\t\tshowMoreButton.type = 'button';\n\t\tshowMoreButton.classList.add('c-truncate__show', 'c-button', 'c-button--link');\n\t\tshowMoreButton.setAttribute('aria-expanded', false);\n\t\tshowMoreButton.setAttribute('aria-controls', contentContainerId);\n\t\tshowMoreButton.innerHTML = buttonText;\n\n\t\t// Set truncate state\n\t\tinstance.classList.add('is-truncated');\n\n\t\t// Set rows to truncate content\n\t\tinstance.style.setProperty('--truncate-height', rows);\n\n\t\t// Append show button\n\t\tinstance.appendChild(showMoreButton);\n\n\t\t// Show more click\n\t\tshowMoreButton.addEventListener('click', (e) => {\n\t\t\te.preventDefault();\n\n\t\t\tif (showMoreButton.getAttribute('aria-expanded') === 'false') {\n\t\t\t\tinstance.classList.remove('is-truncated');\n\t\t\t\tshowMoreButton.setAttribute('aria-expanded', true);\n\t\t\t\tshowMoreButton.innerHTML = buttonTextTruncated;\n\t\t\t\tcontentContainer.focus();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tinstance.classList.add('is-truncated');\n\t\t\t\tshowMoreButton.setAttribute('aria-expanded', false);\n\t\t\t\tshowMoreButton.innerHTML = buttonText;\n\t\t\t}\n\t\t});\n\t});\n}\n"],"sourceRoot":""}