PageSourceSearch

https://surahammar.se/download/18.6a3b6671168aebfe52975a03/1576839859054/main.bundle.js

js surahammar.se collected 2026-10-02 10:04:25 UTC 98,666 bytes, 49 lines download raw bytes

1!function(e){var n={};function t(r){if(n[r])return n[r].exports;var s=n[r]={i:r,l:!1,exports:{}};return e[r].call(s.exports,s,s.exports,t),s.l=!0,s.exports}t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var s in e)t.d(r,s,function(n){return e[n]}.bind(null,s));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s="./src/client/main.js")}({
vendor: 5,984 bytes, lines 1-5
1"../../../../usr/local/lib/node_modules/webpack/node_modules/process/browser.js":
2/*!*************************************************!*\
3  !*** (webpack)/node_modules/process/browser.js ***!
4  \*************************************************/
5/*! no static exports found */function(module,exports){eval("// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n//# sourceURL=webpack:///(webpack)/node_modules/process/browser.js?")},
vendor: 56,116 bytes, lines 5-9
5"./node_modules/css-vars-ponyfill/dist/css-vars-ponyfill.esm.js":
6/*!**********************************************************************!*\
7  !*** ./node_modules/css-vars-ponyfill/dist/css-vars-ponyfill.esm.js ***!
8  \**********************************************************************/
9/*! exports provided: default */function(module,__webpack_exports__,__webpack_require__){"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/*!\n * css-vars-ponyfill\n * v1.17.2\n * https://github.com/jhildenbiddle/css-vars-ponyfill\n * (c) 2018-2019 John Hildenbiddle <http://hildenbiddle.com>\n * MIT license\n */\nfunction _extends() {\n    _extends = Object.assign || function(target) {\n        for (var i = 1; i < arguments.length; i++) {\n            var source = arguments[i];\n            for (var key in source) {\n                if (Object.prototype.hasOwnProperty.call(source, key)) {\n                    target[key] = source[key];\n                }\n            }\n        }\n        return target;\n    };\n    return _extends.apply(this, arguments);\n}\n\nfunction _toConsumableArray(arr) {\n    return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n    if (Array.isArray(arr)) {\n        for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n        return arr2;\n    }\n}\n\nfunction _iterableToArray(iter) {\n    if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n    throw new TypeError("Invalid attempt to spread non-iterable instance");\n}\n\n/*!\n * get-css-data\n * v1.6.3\n * https://github.com/jhildenbiddle/get-css-data\n * (c) 2018-2019 John Hildenbiddle <http://hildenbiddle.com>\n * MIT license\n */ function getUrls(urls) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var settings = {\n        mimeType: options.mimeType || null,\n        onBeforeSend: options.onBeforeSend || Function.prototype,\n        onSuccess: options.onSuccess || Function.prototype,\n        onError: options.onError || Function.prototype,\n        onComplete: options.onComplete || Function.prototype\n    };\n    var urlArray = Array.isArray(urls) ? urls : [ urls ];\n    var urlQueue = Array.apply(null, Array(urlArray.length)).map(function(x) {\n        return null;\n    });\n    function isValidCss() {\n        var cssText = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";\n        var isHTML = cssText.trim().charAt(0) === "<";\n        return !isHTML;\n    }\n    function onError(xhr, urlIndex) {\n        settings.onError(xhr, urlArray[urlIndex], urlIndex);\n    }\n    function onSuccess(responseText, urlIndex) {\n        var returnVal = settings.onSuccess(responseText, urlArray[urlIndex], urlIndex);\n        responseText = returnVal === false ? "" : returnVal || responseText;\n        urlQueue[urlIndex] = responseText;\n        if (urlQueue.indexOf(null) === -1) {\n            settings.onComplete(urlQueue);\n        }\n    }\n    var parser = document.createElement("a");\n    urlArray.forEach(function(url, i) {\n        parser.setAttribute("href", url);\n        parser.href = String(parser.href);\n        var isIElte9 = Boolean(document.all && !window.atob);\n        var isIElte9CORS = isIElte9 && parser.host.split(":")[0] !== location.host.split(":")[0];\n        if (isIElte9CORS) {\n            var isSameProtocol = parser.protocol === location.protocol;\n            if (isSameProtocol) {\n                var xdr = new XDomainRequest();\n                xdr.open("GET", url);\n                xdr.timeout = 0;\n                xdr.onprogress = Function.prototype;\n                xdr.ontimeout = Function.prototype;\n                xdr.onload = function() {\n                    if (isValidCss(xdr.responseText)) {\n                        onSuccess(xdr.responseText, i);\n                    } else {\n                        onError(xdr, i);\n                    }\n                };\n                xdr.onerror = function(err) {\n                    onError(xdr, i);\n                };\n                setTimeout(function() {\n                    xdr.send();\n                }, 0);\n            } else {\n                console.warn("Internet Explorer 9 Cross-Origin (CORS) requests must use the same protocol (".concat(url, ")"));\n                onError(null, i);\n            }\n        } else {\n            var xhr = new XMLHttpRequest();\n            xhr.open("GET", url);\n            if (settings.mimeType && xhr.overrideMimeType) {\n                xhr.overrideMimeType(settings.mimeType);\n            }\n            settings.onBeforeSend(xhr, url, i);\n            xhr.onreadystatechange = function() {\n                if (xhr.readyState === 4) {\n                    if (xhr.status === 200 && isValidCss(xhr.responseText)) {\n                        onSuccess(xhr.responseText, i);\n                    } else {\n                        onError(xhr, i);\n                    }\n                }\n            };\n            xhr.send();\n        }\n    });\n}\n\n/**\n * Gets CSS data from <style> and <link> nodes (including @imports), then\n * returns data in order processed by DOM. Allows specifying nodes to\n * include/exclude and filtering CSS data using RegEx.\n *\n * @preserve\n * @param {object}   [options] The options object\n * @param {object}   [options.rootElement=document] Root element to traverse for\n *                   <link> and <style> nodes.\n * @param {string}   [options.include] CSS selector matching <link> and <style>\n *                   nodes to include\n * @param {string}   [options.exclude] CSS selector matching <link> and <style>\n *                   nodes to exclude\n * @param {object}   [options.filter] Regular expression used to filter node CSS\n *                   data. Each block of CSS data is tested against the filter,\n *                   and only matching data is included.\n * @param {object}   [options.useCSSOM=false] Determines if CSS data will be\n *                   collected from a stylesheet\'s runtime values instead of its\n *                   text content. This is required to get accurate CSS data\n *                   when a stylesheet has been modified using the deleteRule()\n *                   or insertRule() methods because these modifications will\n *                   not be reflected in the stylesheet\'s text content.\n * @param {function} [options.onBeforeSend] Callback before XHR is sent. Passes\n *                   1) the XHR object, 2) source node reference, and 3) the\n *                   source URL as arguments.\n * @param {function} [options.onSuccess] Callback on each CSS node read. Passes\n *                   1) CSS text, 2) source node reference, and 3) the source\n *                   URL as arguments.\n * @param {function} [options.onError] Callback on each error. Passes 1) the XHR\n *                   object for inspection, 2) soure node reference, and 3) the\n *                   source URL that failed (either a <link> href or an @import)\n *                   as arguments\n * @param {function} [options.onComplete] Callback after all nodes have been\n *                   processed. Passes 1) concatenated CSS text, 2) an array of\n *                   CSS text in DOM order, and 3) an array of nodes in DOM\n *                   order as arguments.\n *\n * @example\n *\n *   getCssData({\n *     rootElement: document,\n *     include    : \'style,link[rel="stylesheet"]\',\n *     exclude    : \'[href="skip.css"]\',\n *     filter     : /red/,\n *     useCSSOM   : false,\n *     onBeforeSend(xhr, node, url) {\n *       // ...\n *     }\n *     onSuccess(cssText, node, url) {\n *       // ...\n *     }\n *     onError(xhr, node, url) {\n *       // ...\n *     },\n *     onComplete(cssText, cssArray, nodeArray) {\n *       // ...\n *     }\n *   });\n */ function getCssData(options) {\n    var regex = {\n        cssComments: /\\/\\*[\\s\\S]+?\\*\\//g,\n        cssImports: /(?:@import\\s*)(?:url\\(\\s*)?(?:[\'"])([^\'"]*)(?:[\'"])(?:\\s*\\))?(?:[^;]*;)/g\n    };\n    var settings = {\n        rootElement: options.rootElement || document,\n        include: options.include || \'style,link[rel="stylesheet"]\',\n        exclude: options.exclude || null,\n        filter: options.filter || null,\n        useCSSOM: options.useCSSOM || false,\n        onBeforeSend: options.onBeforeSend || Function.prototype,\n        onSuccess: options.onSuccess || Function.prototype,\n        onError: options.onError || Function.prototype,\n        onComplete: options.onComplete || Function.prototype\n    };\n    var sourceNodes = Array.apply(null, settings.rootElement.querySelectorAll(settings.include)).filter(function(node) {\n        return !matchesSelector(node, settings.exclude);\n    });\n    var cssArray = Array.apply(null, Array(sourceNodes.length)).map(function(x) {\n        return null;\n    });\n    function handleComplete() {\n        var isComplete = cssArray.indexOf(null) === -1;\n        if (isComplete) {\n            var cssText = cssArray.join("");\n            settings.onComplete(cssText, cssArray, sourceNodes);\n        }\n    }\n    function handleSuccess(cssText, cssIndex, node, sourceUrl) {\n        var returnVal = settings.onSuccess(cssText, node, sourceUrl);\n        cssText = returnVal !== undefined && Boolean(returnVal) === false ? "" : returnVal || cssText;\n        resolveImports(cssText, node, sourceUrl, function(resolvedCssText, errorData) {\n            if (cssArray[cssIndex] === null) {\n                errorData.forEach(function(data) {\n                    return settings.onError(data.xhr, node, data.url);\n                });\n                if (!settings.filter || settings.filter.test(resolvedCssText)) {\n                    cssArray[cssIndex] = resolvedCssText;\n                } else {\n                    cssArray[cssIndex] = "";\n                }\n                handleComplete();\n            }\n        });\n    }\n    function parseImportData(cssText, baseUrl) {\n        var ignoreRules = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n        var importData = {};\n        importData.rules = (cssText.replace(regex.cssComments, "").match(regex.cssImports) || []).filter(function(rule) {\n            return ignoreRules.indexOf(rule) === -1;\n        });\n        importData.urls = importData.rules.map(function(rule) {\n            return rule.replace(regex.cssImports, "$1");\n        });\n        importData.absoluteUrls = importData.urls.map(function(url) {\n            return getFullUrl(url, baseUrl);\n        });\n        importData.absoluteRules = importData.rules.map(function(rule, i) {\n            var oldUrl = importData.urls[i];\n            var newUrl = getFullUrl(importData.absoluteUrls[i], baseUrl);\n            return rule.replace(oldUrl, newUrl);\n        });\n        return importData;\n    }\n    function resolveImports(cssText, node, baseUrl, callbackFn) {\n        var __errorData = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];\n        var __errorRules = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : [];\n        var importData = parseImportData(cssText, baseUrl, __errorRules);\n        if (importData.rules.length) {\n            getUrls(importData.absoluteUrls, {\n                onBeforeSend: function onBeforeSend(xhr, url, urlIndex) {\n                    settings.onBeforeSend(xhr, node, url);\n                },\n                onSuccess: function onSuccess(cssText, url, urlIndex) {\n                    var returnVal = settings.onSuccess(cssText, node, url);\n                    cssText = returnVal === false ? "" : returnVal || cssText;\n                    var responseImportData = parseImportData(cssText, url, __errorRules);\n                    responseImportData.rules.forEach(function(rule, i) {\n                        cssText = cssText.replace(rule, responseImportData.absoluteRules[i]);\n                    });\n                    return cssText;\n                },\n                onError: function onError(xhr, url, urlIndex) {\n                    __errorData.push({\n                        xhr: xhr,\n                        url: url\n                    });\n                    __errorRules.push(importData.rules[urlIndex]);\n                    resolveImports(cssText, node, baseUrl, callbackFn, __errorData, __errorRules);\n                },\n                onComplete: function onComplete(responseArray) {\n                    responseArray.forEach(function(importText, i) {\n                        cssText = cssText.replace(importData.rules[i], importText);\n                    });\n                    resolveImports(cssText, node, baseUrl, callbackFn, __errorData, __errorRules);\n                }\n            });\n        } else {\n            callbackFn(cssText, __errorData);\n        }\n    }\n    if (sourceNodes.length) {\n        sourceNodes.forEach(function(node, i) {\n            var linkHref = node.getAttribute("href");\n            var linkRel = node.getAttribute("rel");\n            var isLink = node.nodeName === "LINK" && linkHref && linkRel && linkRel.toLowerCase() === "stylesheet";\n            var isStyle = node.nodeName === "STYLE";\n            if (isLink) {\n                getUrls(linkHref, {\n                    mimeType: "text/css",\n                    onBeforeSend: function onBeforeSend(xhr, url, urlIndex) {\n                        settings.onBeforeSend(xhr, node, url);\n                    },\n                    onSuccess: function onSuccess(cssText, url, urlIndex) {\n                        var sourceUrl = getFullUrl(linkHref, location.href);\n                        handleSuccess(cssText, i, node, sourceUrl);\n                    },\n                    onError: function onError(xhr, url, urlIndex) {\n                        cssArray[i] = "";\n                        settings.onError(xhr, node, url);\n                        handleComplete();\n                    }\n                });\n            } else if (isStyle) {\n                var cssText = node.textContent;\n                if (settings.useCSSOM) {\n                    cssText = Array.apply(null, node.sheet.cssRules).map(function(rule) {\n                        return rule.cssText;\n                    }).join("");\n                }\n                handleSuccess(cssText, i, node, location.href);\n            } else {\n                cssArray[i] = "";\n                handleComplete();\n            }\n        });\n    } else {\n        settings.onComplete("", []);\n    }\n}\n\nfunction getFullUrl(url) {\n    var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : location.href;\n    var d = document.implementation.createHTMLDocument("");\n    var b = d.createElement("base");\n    var a = d.createElement("a");\n    d.head.appendChild(b);\n    d.body.appendChild(a);\n    b.href = base;\n    a.href = url;\n    return a.href;\n}\n\nfunction matchesSelector(elm, selector) {\n    var matches = elm.matches || elm.matchesSelector || elm.webkitMatchesSelector || elm.mozMatchesSelector || elm.msMatchesSelector || elm.oMatchesSelector;\n    return matches.call(elm, selector);\n}\n\nvar balancedMatch = balanced;\n\nfunction balanced(a, b, str) {\n    if (a instanceof RegExp) a = maybeMatch(a, str);\n    if (b instanceof RegExp) b = maybeMatch(b, str);\n    var r = range(a, b, str);\n    return r && {\n        start: r[0],\n        end: r[1],\n        pre: str.slice(0, r[0]),\n        body: str.slice(r[0] + a.length, r[1]),\n        post: str.slice(r[1] + b.length)\n    };\n}\n\nfunction maybeMatch(reg, str) {\n    var m = str.match(reg);\n    return m ? m[0] : null;\n}\n\nbalanced.range = range;\n\nfunction range(a, b, str) {\n    var begs, beg, left, right, result;\n    var ai = str.indexOf(a);\n    var bi = str.indexOf(b, ai + 1);\n    var i = ai;\n    if (ai >= 0 && bi > 0) {\n        begs = [];\n        left = str.length;\n        while (i >= 0 && !result) {\n            if (i == ai) {\n                begs.push(i);\n                ai = str.indexOf(a, i + 1);\n            } else if (begs.length == 1) {\n                result = [ begs.pop(), bi ];\n            } else {\n                beg = begs.pop();\n                if (beg < left) {\n                    left = beg;\n                    right = bi;\n                }\n                bi = str.indexOf(b, i + 1);\n            }\n            i = ai < bi && ai >= 0 ? ai : bi;\n        }\n        if (begs.length) {\n            result = [ left, right ];\n        }\n    }\n    return result;\n}\n\nfunction parseCss(css) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var defaults = {\n        onlyVars: false,\n        removeComments: false\n    };\n    var settings = _extends({}, defaults, options);\n    var errors = [];\n    function error(msg) {\n        throw new Error("CSS parse error: ".concat(msg));\n    }\n    function match(re) {\n        var m = re.exec(css);\n        if (m) {\n            css = css.slice(m[0].length);\n            return m;\n        }\n    }\n    function open() {\n        return match(/^{\\s*/);\n    }\n    function close() {\n        return match(/^}/);\n    }\n    function whitespace() {\n        match(/^\\s*/);\n    }\n    function comment() {\n        whitespace();\n        if (css[0] !== "/" || css[1] !== "*") {\n            return;\n        }\n        var i = 2;\n        while (css[i] && (css[i] !== "*" || css[i + 1] !== "/")) {\n            i++;\n        }\n        if (!css[i]) {\n            return error("end of comment is missing");\n        }\n        var str = css.slice(2, i);\n        css = css.slice(i + 2);\n        return {\n            type: "comment",\n            comment: str\n        };\n    }\n    function comments() {\n        var cmnts = [];\n        var c;\n        while (c = comment()) {\n            cmnts.push(c);\n        }\n        return settings.removeComments ? [] : cmnts;\n    }\n    function selector() {\n        whitespace();\n        while (css[0] === "}") {\n            error("extra closing bracket");\n        }\n        var m = match(/^(("(?:\\\\"|[^"])*"|\'(?:\\\\\'|[^\'])*\'|[^{])+)/);\n        if (m) {\n            return m[0].trim().replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*\\/]|[\\r\\n])))*\\*\\/+/g, "").replace(/"(?:\\\\"|[^"])*"|\'(?:\\\\\'|[^\'])*\'/g, function(m) {\n                return m.replace(/,/g, "‌");\n            }).split(/\\s*(?![^(]*\\)),\\s*/).map(function(s) {\n                return s.replace(/\\u200C/g, ",");\n            });\n        }\n    }\n    function declaration() {\n        match(/^([;\\s]*)+/);\n        var comment_regexp = /\\/\\*[^*]*\\*+([^\\/*][^*]*\\*+)*\\//g;\n        var prop = match(/^(\\*?[-#\\/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\n        if (!prop) {\n            return;\n        }\n        prop = prop[0].trim();\n        if (!match(/^:\\s*/)) {\n            return error("property missing \':\'");\n        }\n        var val = match(/^((?:\\/\\*.*?\\*\\/|\'(?:\\\\\'|.)*?\'|"(?:\\\\"|.)*?"|\\((\\s*\'(?:\\\\\'|.)*?\'|"(?:\\\\"|.)*?"|[^)]*?)\\s*\\)|[^};])+)/);\n        var ret = {\n            type: "declaration",\n            property: prop.replace(comment_regexp, ""),\n            value: val ? val[0].replace(comment_regexp, "").trim() : ""\n        };\n        match(/^[;\\s]*/);\n        return ret;\n    }\n    function declarations() {\n        if (!open()) {\n            return error("missing \'{\'");\n        }\n        var d;\n        var decls = comments();\n        while (d = declaration()) {\n            decls.push(d);\n            decls = decls.concat(comments());\n        }\n        if (!close()) {\n            return error("missing \'}\'");\n        }\n        return decls;\n    }\n    function keyframe() {\n        whitespace();\n        var vals = [];\n        var m;\n        while (m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/)) {\n            vals.push(m[1]);\n            match(/^,\\s*/);\n        }\n        if (vals.length) {\n            return {\n                type: "keyframe",\n                values: vals,\n                declarations: declarations()\n            };\n        }\n    }\n    function at_keyframes() {\n        var m = match(/^@([-\\w]+)?keyframes\\s*/);\n        if (!m) {\n            return;\n        }\n        var vendor = m[1];\n        m = match(/^([-\\w]+)\\s*/);\n        if (!m) {\n            return error("@keyframes missing name");\n        }\n        var name = m[1];\n        if (!open()) {\n            return error("@keyframes missing \'{\'");\n        }\n        var frame;\n        var frames = comments();\n        while (frame = keyframe()) {\n            frames.push(frame);\n            frames = frames.concat(comments());\n        }\n        if (!close()) {\n            return error("@keyframes missing \'}\'");\n        }\n        return {\n            type: "keyframes",\n            name: name,\n            vendor: vendor,\n            keyframes: frames\n        };\n    }\n    function at_page() {\n        var m = match(/^@page */);\n        if (m) {\n            var sel = selector() || [];\n            return {\n                type: "page",\n                selectors: sel,\n                declarations: declarations()\n            };\n        }\n    }\n    function at_fontface() {\n        var m = match(/^@font-face\\s*/);\n        if (m) {\n            return {\n                type: "font-face",\n                declarations: declarations()\n            };\n        }\n    }\n    function at_supports() {\n        var m = match(/^@supports *([^{]+)/);\n        if (m) {\n            return {\n                type: "supports",\n                supports: m[1].trim(),\n                rules: rules()\n            };\n        }\n    }\n    function at_host() {\n        var m = match(/^@host\\s*/);\n        if (m) {\n            return {\n                type: "host",\n                rules: rules()\n            };\n        }\n    }\n    function at_media() {\n        var m = match(/^@media *([^{]+)/);\n        if (m) {\n            return {\n                type: "media",\n                media: m[1].trim(),\n                rules: rules()\n            };\n        }\n    }\n    function at_custom_m() {\n        var m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\n        if (m) {\n            return {\n                type: "custom-media",\n                name: m[1].trim(),\n                media: m[2].trim()\n            };\n        }\n    }\n    function at_document() {\n        var m = match(/^@([-\\w]+)?document *([^{]+)/);\n        if (m) {\n            return {\n                type: "document",\n                document: m[2].trim(),\n                vendor: m[1] ? m[1].trim() : null,\n                rules: rules()\n            };\n        }\n    }\n    function at_x() {\n        var m = match(/^@(import|charset|namespace)\\s*([^;]+);/);\n        if (m) {\n            return {\n                type: m[1],\n                name: m[2].trim()\n            };\n        }\n    }\n    function at_rule() {\n        whitespace();\n        if (css[0] === "@") {\n            var ret = at_keyframes() || at_supports() || at_host() || at_media() || at_custom_m() || at_page() || at_document() || at_fontface() || at_x();\n            if (ret && settings.onlyVars) {\n                var hasVarFunc = false;\n                if (ret.declarations) {\n                    hasVarFunc = ret.declarations.some(function(decl) {\n                        return /var\\(/.test(decl.value);\n                    });\n                } else {\n                    var arr = ret.keyframes || ret.rules || [];\n                    hasVarFunc = arr.some(function(obj) {\n                        return (obj.declarations || []).some(function(decl) {\n                            return /var\\(/.test(decl.value);\n                        });\n                    });\n                }\n                return hasVarFunc ? ret : {};\n            }\n            return ret;\n        }\n    }\n    function rule() {\n        if (settings.onlyVars) {\n            var balancedMatch$$1 = balancedMatch("{", "}", css);\n            if (balancedMatch$$1) {\n                var hasVarDecl = balancedMatch$$1.pre.indexOf(":root") !== -1 && /--\\S*\\s*:/.test(balancedMatch$$1.body);\n                var hasVarFunc = /var\\(/.test(balancedMatch$$1.body);\n                if (!hasVarDecl && !hasVarFunc) {\n                    css = css.slice(balancedMatch$$1.end + 1);\n                    return {};\n                }\n            }\n        }\n        var sel = selector() || [];\n        var decls = !settings.onlyVars ? declarations() : declarations().filter(function(decl) {\n            var hasVarDecl = sel.some(function(s) {\n                return s.indexOf(":root") !== -1;\n            }) && /^--\\S/.test(decl.property);\n            var hasVarFunc = /var\\(/.test(decl.value);\n            return hasVarDecl || hasVarFunc;\n        });\n        if (!sel.length) {\n            error("selector missing");\n        }\n        return {\n            type: "rule",\n            selectors: sel,\n            declarations: decls\n        };\n    }\n    function rules(core) {\n        if (!core && !open()) {\n            return error("missing \'{\'");\n        }\n        var node;\n        var rules = comments();\n        while (css.length && (core || css[0] !== "}") && (node = at_rule() || rule())) {\n            if (node.type) {\n                rules.push(node);\n            }\n            rules = rules.concat(comments());\n        }\n        if (!core && !close()) {\n            return error("missing \'}\'");\n        }\n        return rules;\n    }\n    return {\n        type: "stylesheet",\n        stylesheet: {\n            rules: rules(true),\n            errors: errors\n        }\n    };\n}\n\nfunction stringifyCss(tree) {\n    var delim = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";\n    var cb = arguments.length > 2 ? arguments[2] : undefined;\n    var renderMethods = {\n        charset: function charset(node) {\n            return "@charset " + node.name + ";";\n        },\n        comment: function comment(node) {\n            return node.comment.indexOf("__CSSVARSPONYFILL") === 0 ? "/*" + node.comment + "*/" : "";\n        },\n        "custom-media": function customMedia(node) {\n            return "@custom-media " + node.name + " " + node.media + ";";\n        },\n        declaration: function declaration(node) {\n            return node.property + ":" + node.value + ";";\n        },\n        document: function document(node) {\n            return "@" + (node.vendor || "") + "document " + node.document + "{" + visit(node.rules) + "}";\n        },\n        "font-face": function fontFace(node) {\n            return "@font-face" + "{" + visit(node.declarations) + "}";\n        },\n        host: function host(node) {\n            return "@host" + "{" + visit(node.rules) + "}";\n        },\n        import: function _import(node) {\n            return "@import " + node.name + ";";\n        },\n        keyframe: function keyframe(node) {\n            return node.values.join(",") + "{" + visit(node.declarations) + "}";\n        },\n        keyframes: function keyframes(node) {\n            return "@" + (node.vendor || "") + "keyframes " + node.name + "{" + visit(node.keyframes) + "}";\n        },\n        media: function media(node) {\n            return "@media " + node.media + "{" + visit(node.rules) + "}";\n        },\n        namespace: function namespace(node) {\n            return "@namespace " + node.name + ";";\n        },\n        page: function page(node) {\n            return "@page " + (node.selectors.length ? node.selectors.join(", ") : "") + "{" + visit(node.declarations) + "}";\n        },\n        rule: function rule(node) {\n            var decls = node.declarations;\n            if (decls.length) {\n                return node.selectors.join(",") + "{" + visit(decls) + "}";\n            }\n        },\n        supports: function supports(node) {\n            return "@supports " + node.supports + "{" + visit(node.rules) + "}";\n        }\n    };\n    function visit(nodes) {\n        var buf = "";\n        for (var i = 0; i < nodes.length; i++) {\n            var n = nodes[i];\n            if (cb) {\n                cb(n);\n            }\n            var txt = renderMethods[n.type](n);\n            if (txt) {\n                buf += txt;\n                if (txt.length && n.selectors) {\n                    buf += delim;\n                }\n            }\n        }\n        return buf;\n    }\n    return visit(tree.stylesheet.rules);\n}\n\nfunction walkCss(node, fn) {\n    node.rules.forEach(function(rule) {\n        if (rule.rules) {\n            walkCss(rule, fn);\n            return;\n        }\n        if (rule.keyframes) {\n            rule.keyframes.forEach(function(keyframe) {\n                if (keyframe.type === "keyframe") {\n                    fn(keyframe.declarations, rule);\n                }\n            });\n            return;\n        }\n        if (!rule.declarations) {\n            return;\n        }\n        fn(rule.declarations, node);\n    });\n}\n\nvar VAR_PROP_IDENTIFIER = "--";\n\nvar VAR_FUNC_IDENTIFIER = "var";\n\nvar variableStore = {\n    dom: {},\n    temp: {},\n    user: {}\n};\n\nfunction transformVars(cssText) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var defaults = {\n        fixNestedCalc: true,\n        onlyVars: false,\n        persist: false,\n        preserve: false,\n        variables: {},\n        onWarning: function onWarning() {}\n    };\n    var settings = _extends({}, defaults, options);\n    var map = settings.persist ? variableStore.dom : variableStore.temp = JSON.parse(JSON.stringify(variableStore.dom));\n    var cssTree = parseCss(cssText, {\n        onlyVars: settings.onlyVars\n    });\n    cssTree.stylesheet.rules.forEach(function(rule) {\n        var varNameIndices = [];\n        if (rule.type !== "rule") {\n            return;\n        }\n        if (rule.selectors.length !== 1 || rule.selectors[0] !== ":root") {\n            return;\n        }\n        rule.declarations.forEach(function(decl, i) {\n            var prop = decl.property;\n            var value = decl.value;\n            if (prop && prop.indexOf(VAR_PROP_IDENTIFIER) === 0) {\n                map[prop] = value;\n                varNameIndices.push(i);\n            }\n        });\n        if (!settings.preserve) {\n            for (var i = varNameIndices.length - 1; i >= 0; i--) {\n                rule.declarations.splice(varNameIndices[i], 1);\n            }\n        }\n    });\n    Object.keys(variableStore.user).forEach(function(key) {\n        map[key] = variableStore.user[key];\n    });\n    if (Object.keys(settings.variables).length) {\n        var newRule = {\n            declarations: [],\n            selectors: [ ":root" ],\n            type: "rule"\n        };\n        Object.keys(settings.variables).forEach(function(key) {\n            var prop = "--".concat(key.replace(/^-+/, ""));\n            var value = settings.variables[key];\n            if (settings.persist) {\n                variableStore.user[prop] = value;\n            }\n            if (map[prop] !== value) {\n                map[prop] = value;\n                newRule.declarations.push({\n                    type: "declaration",\n                    property: prop,\n                    value: value\n                });\n            }\n        });\n        if (settings.preserve && newRule.declarations.length) {\n            cssTree.stylesheet.rules.push(newRule);\n        }\n    }\n    walkCss(cssTree.stylesheet, function(declarations, node) {\n        var decl;\n        var resolvedValue;\n        var value;\n        for (var i = 0; i < declarations.length; i++) {\n            decl = declarations[i];\n            value = decl.value;\n            if (decl.type !== "declaration") {\n                continue;\n            }\n            if (!value || value.indexOf(VAR_FUNC_IDENTIFIER + "(") === -1) {\n                continue;\n            }\n            resolvedValue = resolveValue(value, map, settings);\n            if (resolvedValue !== decl.value) {\n                if (!settings.preserve) {\n                    decl.value = resolvedValue;\n                } else {\n                    declarations.splice(i, 0, {\n                        type: decl.type,\n                        property: decl.property,\n                        value: resolvedValue\n                    });\n                    i++;\n                }\n            }\n        }\n    });\n    if (settings.fixNestedCalc) {\n        fixNestedCalc(cssTree.stylesheet.rules);\n    }\n    return stringifyCss(cssTree);\n}\n\nfunction fixNestedCalc(rules) {\n    var reCalcExp = /(-[a-z]+-)?calc\\(/;\n    rules.forEach(function(rule) {\n        if (rule.declarations) {\n            rule.declarations.forEach(function(decl) {\n                var oldValue = decl.value;\n                var newValue = "";\n                while (reCalcExp.test(oldValue)) {\n                    var rootCalc = balancedMatch("calc(", ")", oldValue || "");\n                    oldValue = oldValue.slice(rootCalc.end);\n                    while (reCalcExp.test(rootCalc.body)) {\n                        var nestedCalc = balancedMatch(reCalcExp, ")", rootCalc.body);\n                        rootCalc.body = "".concat(nestedCalc.pre, "(").concat(nestedCalc.body, ")").concat(nestedCalc.post);\n                    }\n                    newValue += "".concat(rootCalc.pre, "calc(").concat(rootCalc.body);\n                    newValue += !reCalcExp.test(oldValue) ? ")".concat(rootCalc.post) : "";\n                }\n                decl.value = newValue || decl.value;\n            });\n        }\n    });\n}\n\nfunction resolveValue(value, map) {\n    var settings = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    var __recursiveFallback = arguments.length > 3 ? arguments[3] : undefined;\n    if (value.indexOf("var(") === -1) {\n        return value;\n    }\n    var valueData = balancedMatch("(", ")", value);\n    function resolveFunc(value) {\n        var name = value.split(",")[0].replace(/[\\s\\n\\t]/g, "");\n        var fallback = (value.match(/(?:\\s*,\\s*){1}(.*)?/) || [])[1];\n        var match = map.hasOwnProperty(name) ? String(map[name]) : undefined;\n        var replacement = match || (fallback ? String(fallback) : undefined);\n        var unresolvedFallback = __recursiveFallback || value;\n        if (!match) {\n            settings.onWarning(\'variable "\'.concat(name, \'" is undefined\'));\n        }\n        if (replacement && replacement !== "undefined" && replacement.length > 0) {\n            return resolveValue(replacement, map, settings, unresolvedFallback);\n        } else {\n            return "var(".concat(unresolvedFallback, ")");\n        }\n    }\n    if (!valueData) {\n        if (value.indexOf("var(") !== -1) {\n            settings.onWarning(\'missing closing ")" in the value "\'.concat(value, \'"\'));\n        }\n        return value;\n    } else if (valueData.pre.slice(-3) === "var") {\n        var isEmptyVarFunc = valueData.body.trim().length === 0;\n        if (isEmptyVarFunc) {\n            settings.onWarning("var() must contain a non-whitespace string");\n            return value;\n        } else {\n            return valueData.pre.slice(0, -3) + resolveFunc(valueData.body) + resolveValue(valueData.post, map, settings);\n        }\n    } else {\n        return valueData.pre + "(".concat(resolveValue(valueData.body, map, settings), ")") + resolveValue(valueData.post, map, settings);\n    }\n}\n\nvar name = "css-vars-ponyfill";\n\nvar isBrowser = typeof window !== "undefined";\n\nvar isNativeSupport = isBrowser && window.CSS && window.CSS.supports && window.CSS.supports("(--a: 0)");\n\nvar consoleMsgPrefix = "cssVars(): ";\n\nvar defaults = {\n    rootElement: isBrowser ? document : null,\n    shadowDOM: false,\n    include: "style,link[rel=stylesheet]",\n    exclude: "",\n    variables: {},\n    fixNestedCalc: true,\n    onlyLegacy: true,\n    onlyVars: false,\n    preserve: false,\n    silent: false,\n    updateDOM: true,\n    updateURLs: true,\n    watch: null,\n    onBeforeSend: function onBeforeSend() {},\n    onSuccess: function onSuccess() {},\n    onWarning: function onWarning() {},\n    onError: function onError() {},\n    onComplete: function onComplete() {}\n};\n\nvar regex = {\n    cssComments: /\\/\\*[\\s\\S]+?\\*\\//g,\n    cssKeyframes: /@(?:-\\w*-)?keyframes/,\n    cssRootRules: /(?::root\\s*{\\s*[^}]*})/g,\n    cssUrls: /url\\((?![\'"]?(?:data|http|\\/\\/):)[\'"]?([^\'")]*)[\'"]?\\)/g,\n    cssVars: /(?:(?::root\\s*{\\s*[^;]*;*\\s*)|(?:var\\(\\s*))(--[^:)]+)(?:\\s*[:)])/\n};\n\nvar cssVarsObserver = null;\n\nvar debounceTimer = null;\n\nvar isShadowDOMReady = false;\n\n/**\n * Fetches, parses, and transforms CSS custom properties from specified\n * <style> and <link> elements into static values, then appends a new <style>\n * element with static values to the DOM to provide CSS custom property\n * compatibility for legacy browsers. Also provides a single interface for\n * live updates of runtime values in both modern and legacy browsers.\n *\n * @preserve\n * @param {object}   [options] Options object\n * @param {object}   [options.rootElement=document] Root element to traverse for\n *                   <link> and <style> nodes.\n * @param {boolean}  [options.shadowDOM=false] Determines if shadow DOM <link>\n *                   and <style> nodes will be processed.\n * @param {string}   [options.include="style,link[rel=stylesheet]"] CSS selector\n *                   matching <link re="stylesheet"> and <style> nodes to\n *                   process\n * @param {string}   [options.exclude] CSS selector matching <link\n *                   rel="stylehseet"> and <style> nodes to exclude from those\n *                   matches by options.include\n * @param {object}   [options.variables] A map of custom property name/value\n *                   pairs. Property names can omit or include the leading\n *                   double-hyphen (—), and values specified will override\n *                   previous values.\n * @param {boolean}  [options.fixNestedCalc=true] Removes nested \'calc\' keywords\n *                   for legacy browser compatibility.\n * @param {boolean}  [options.onlyLegacy=true] Determines if the ponyfill will\n *                   only generate legacy-compatible CSS in browsers that lack\n *                   native support (i.e., legacy browsers)\n * @param {boolean}  [options.onlyVars=false] Determines if CSS rulesets and\n *                   declarations without a custom property value should be\n *                   removed from the ponyfill-generated CSS\n * @param {boolean}  [options.preserve=false] Determines if the original CSS\n *                   custom property declaration will be retained in the\n *                   ponyfill-generated CSS.\n * @param {boolean}  [options.silent=false] Determines if warning and error\n *                   messages will be displayed on the console\n * @param {boolean}  [options.updateDOM=true] Determines if the ponyfill will\n *                   update the DOM after processing CSS custom properties\n * @param {boolean}  [options.updateURLs=true] Determines if the ponyfill will\n *                   convert relative url() paths to absolute urls.\n * @param {boolean}  [options.watch=false] Determines if a MutationObserver will\n *                   be created that will execute the ponyfill when a <link> or\n *                   <style> DOM mutation is observed.\n * @param {function} [options.onBeforeSend] Callback before XHR is sent. Passes\n *                   1) the XHR object, 2) source node reference, and 3) the\n *                   source URL as arguments.\n * @param {function} [options.onSuccess] Callback after CSS data has been\n *                   collected from each node and before CSS custom properties\n *                   have been transformed. Allows modifying the CSS data before\n *                   it is transformed by returning any string value (or false\n *                   to skip). Passes 1) CSS text, 2) source node reference, and\n *                   3) the source URL as arguments.\n * @param {function} [options.onWarning] Callback after each CSS parsing warning\n *                   has occurred. Passes 1) a warning message as an argument.\n * @param {function} [options.onError] Callback after a CSS parsing error has\n *                   occurred or an XHR request has failed. Passes 1) an error\n *                   message, and 2) source node reference, 3) xhr, and 4 url as\n *                   arguments.\n * @param {function} [options.onComplete] Callback after all CSS has been\n *                   processed, legacy-compatible CSS has been generated, and\n *                   (optionally) the DOM has been updated. Passes 1) a CSS\n *                   string with CSS variable values resolved, 2) a reference to\n *                   the appended <style> node, 3) an object containing all\n *                   custom properies names and values, and 4) the ponyfill\n *                   execution time in milliseconds.\n *\n * @example\n *\n *   cssVars({\n *     rootElement  : document,\n *     shadowDOM    : false,\n *     include      : \'style,link[rel="stylesheet"]\',\n *     exclude      : \'\',\n *     variables    : {},\n *     fixNestedCalc: true,\n *     onlyLegacy   : true,\n *     onlyVars     : false,\n *     preserve     : false,\n *     silent       : false,\n *     updateDOM    : true,\n *     updateURLs   : true,\n *     watch        : false,\n *     onBeforeSend(xhr, node, url) {},\n *     onSuccess(cssText, node, url) {},\n *     onWarning(message) {},\n *     onError(message, node, xhr, url) {},\n *     onComplete(cssText, styleNode, cssVariables, benchmark) {}\n *   });\n */ function cssVars() {\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var settings = _extends({}, defaults, options);\n    var styleNodeId = name;\n    settings.exclude = "#".concat(styleNodeId) + (settings.exclude ? ",".concat(settings.exclude) : "");\n    settings._benchmark = !settings._benchmark ? getTimeStamp() : settings._benchmark;\n    function handleError(message, sourceNode, xhr, url) {\n        if (!settings.silent) {\n            console.error("".concat(consoleMsgPrefix).concat(message, "\\n"), sourceNode);\n        }\n        settings.onError(message, sourceNode, xhr, url);\n    }\n    function handleWarning(message) {\n        if (!settings.silent) {\n            console.warn("".concat(consoleMsgPrefix).concat(message));\n        }\n        settings.onWarning(message);\n    }\n    if (!isBrowser) {\n        return;\n    }\n    if (settings.watch === false && cssVarsObserver) {\n        cssVarsObserver.disconnect();\n    }\n    if (settings.watch) {\n        addMutationObserver(settings, styleNodeId);\n        cssVarsDebounced(settings);\n    } else if (document.readyState !== "loading") {\n        var isShadowElm = settings.shadowDOM || settings.rootElement.shadowRoot || settings.rootElement.host;\n        if (isNativeSupport && settings.onlyLegacy) {\n            if (settings.updateDOM) {\n                var targetElm = settings.rootElement.host || (settings.rootElement === document ? document.documentElement : settings.rootElement);\n                Object.keys(settings.variables).forEach(function(key) {\n                    var prop = "--".concat(key.replace(/^-+/, ""));\n                    var value = settings.variables[key];\n                    targetElm.style.setProperty(prop, value);\n                });\n            }\n        } else if (isShadowElm && !isShadowDOMReady) {\n            getCssData({\n                rootElement: defaults.rootElement,\n                include: defaults.include,\n                exclude: settings.exclude,\n                onSuccess: function onSuccess(cssText, node, url) {\n                    var cssRootDecls = (cssText.match(regex.cssRootRules) || []).join("");\n                    return cssRootDecls || false;\n                },\n                onComplete: function onComplete(cssText, cssArray, nodeArray) {\n                    transformVars(cssText, {\n                        persist: true\n                    });\n                    isShadowDOMReady = true;\n                    cssVars(settings);\n                }\n            });\n        } else {\n            getCssData({\n                rootElement: settings.rootElement,\n                include: settings.include,\n                exclude: settings.exclude,\n                filter: settings.onlyVars ? regex.cssVars : null,\n                onBeforeSend: settings.onBeforeSend,\n                onSuccess: function onSuccess(cssText, node, url) {\n                    var returnVal = settings.onSuccess(cssText, node, url);\n                    cssText = returnVal !== undefined && Boolean(returnVal) === false ? "" : returnVal || cssText;\n                    node.setAttribute("data-cssvars", "");\n                    if (settings.updateURLs) {\n                        var cssUrls = cssText.replace(regex.cssComments, "").match(regex.cssUrls) || [];\n                        cssUrls.forEach(function(cssUrl) {\n                            var oldUrl = cssUrl.replace(regex.cssUrls, "$1");\n                            var newUrl = getFullUrl$1(oldUrl, url);\n                            cssText = cssText.replace(cssUrl, cssUrl.replace(oldUrl, newUrl));\n                        });\n                    }\n                    return cssText;\n                },\n                onError: function onError(xhr, node, url) {\n                    var responseUrl = xhr.responseURL || getFullUrl$1(url, location.href);\n                    var statusText = xhr.statusText ? "(".concat(xhr.statusText, ")") : "Unspecified Error" + (xhr.status === 0 ? " (possibly CORS related)" : "");\n                    var errorMsg = "CSS XHR Error: ".concat(responseUrl, " ").concat(xhr.status, " ").concat(statusText);\n                    handleError(errorMsg, node, xhr, responseUrl);\n                },\n                onComplete: function onComplete(cssText, cssArray, nodeArray) {\n                    var cssMarker = /\\/\\*__CSSVARSPONYFILL-(\\d+)__\\*\\//g;\n                    var cssSettings = JSON.stringify({\n                        include: settings.include,\n                        exclude: settings.exclude,\n                        variables: settings.variables,\n                        fixNestedCalc: settings.fixNestedCalc,\n                        onlyVars: settings.onlyVars,\n                        preserve: settings.preserve,\n                        silent: settings.silent,\n                        updateURLs: settings.updateURLs\n                    });\n                    var styleNode = settings.rootElement.querySelector("#".concat(styleNodeId)) || document.createElement("style");\n                    var prevData = styleNode.__cssVars || {};\n                    var isSameData = prevData.cssText === cssText && prevData.settings === cssSettings;\n                    var hasKeyframesWithVars;\n                    if (isSameData) {\n                        cssText = styleNode.textContent;\n                        if (!settings.silent) {\n                            console.info("".concat(consoleMsgPrefix, "No changes"), styleNode);\n                        }\n                    } else {\n                        styleNode.__cssVars = {\n                            cssText: cssText,\n                            settings: cssSettings\n                        };\n                        cssText = cssArray.map(function(css, i) {\n                            return regex.cssVars.test(css) ? css : "/*__CSSVARSPONYFILL-".concat(i, "__*/");\n                        }).join("");\n                        try {\n                            cssText = transformVars(cssText, {\n                                fixNestedCalc: settings.fixNestedCalc,\n                                onlyVars: settings.onlyVars,\n                                persist: settings.updateDOM,\n                                preserve: settings.preserve,\n                                variables: settings.variables,\n                                onWarning: handleWarning\n                            });\n                            hasKeyframesWithVars = regex.cssKeyframes.test(cssText);\n                            cssText = cssText.replace(cssMarker, function(match, group1) {\n                                return cssArray[group1];\n                            });\n                        } catch (err) {\n                            var errorThrown = false;\n                            cssArray.forEach(function(cssText, i) {\n                                try {\n                                    cssText = transformVars(cssText, settings);\n                                } catch (err) {\n                                    var errorNode = nodeArray[i - 0];\n                                    errorThrown = true;\n                                    handleError(err.message, errorNode);\n                                }\n                            });\n                            if (!errorThrown) {\n                                handleError(err.message || err);\n                            }\n                        }\n                    }\n                    if (settings.shadowDOM) {\n                        var elms = [ settings.rootElement ].concat(_toConsumableArray(settings.rootElement.querySelectorAll("*")));\n                        for (var i = 0, elm; elm = elms[i]; ++i) {\n                            if (elm.shadowRoot && elm.shadowRoot.querySelector("style")) {\n                                var shadowSettings = _extends({}, settings, {\n                                    rootElement: elm.shadowRoot,\n                                    variables: variableStore.dom\n                                });\n                                cssVars(shadowSettings);\n                            }\n                        }\n                    }\n                    if (!isSameData && nodeArray && nodeArray.length) {\n                        var cssNodes = settings.rootElement.querySelectorAll("link[data-cssvars],style[data-cssvars]") || settings.rootElement.querySelectorAll(\'link[rel+="stylesheet"],style\');\n                        var lastNode = cssNodes ? cssNodes[cssNodes.length - 1] : null;\n                        if (lastNode) {\n                            lastNode.parentNode.insertBefore(styleNode, lastNode.nextSibling);\n                        } else {\n                            var targetNode = settings.rootElement.head || settings.rootElement.body || settings.rootElement;\n                            targetNode.appendChild(styleNode);\n                        }\n                        if (settings.updateDOM) {\n                            styleNode.setAttribute("id", styleNodeId);\n                            styleNode.textContent = cssText;\n                            if (hasKeyframesWithVars) {\n                                fixKeyframes(settings.rootElement);\n                            }\n                        }\n                        settings.onComplete(cssText, styleNode, JSON.parse(JSON.stringify(settings.updateDOM ? variableStore.dom : variableStore.temp)), getTimeStamp() - settings._benchmark);\n                    }\n                }\n            });\n        }\n    } else {\n        document.addEventListener("DOMContentLoaded", function init(evt) {\n            cssVars(options);\n            document.removeEventListener("DOMContentLoaded", init);\n        });\n    }\n}\n\nfunction cssVarsDebounced(settings) {\n    clearTimeout(debounceTimer);\n    debounceTimer = setTimeout(function() {\n        settings._benchmark = null;\n        cssVars(settings);\n    }, 100);\n}\n\nfunction addMutationObserver(settings, ignoreId) {\n    if (!window.MutationObserver) {\n        return;\n    }\n    var isLink = function isLink(node) {\n        return node.tagName === "LINK" && (node.getAttribute("rel") || "").indexOf("stylesheet") !== -1;\n    };\n    var isStyle = function isStyle(node) {\n        return node.tagName === "STYLE" && (ignoreId ? node.id !== ignoreId : true);\n    };\n    if (cssVarsObserver) {\n        cssVarsObserver.disconnect();\n    }\n    settings.watch = defaults.watch;\n    cssVarsObserver = new MutationObserver(function(mutations) {\n        var hasCSSMutation = mutations.some(function(mutation) {\n            var isCSSMutation = false;\n            if (mutation.type === "attributes") {\n                isCSSMutation = isLink(mutation.target) || isStyle(mutation.target);\n            } else if (mutation.type === "childList") {\n                var addedNodes = Array.apply(null, mutation.addedNodes);\n                var removedNodes = Array.apply(null, mutation.removedNodes);\n                isCSSMutation = [].concat(addedNodes, removedNodes).some(function(node) {\n                    var isValidLink = isLink(node) && !node.disabled;\n                    var isValidStyle = isStyle(node) && regex.cssVars.test(node.textContent);\n                    return isValidLink || isValidStyle;\n                });\n            }\n            return isCSSMutation;\n        });\n        if (hasCSSMutation) {\n            cssVarsDebounced(settings);\n        }\n    });\n    cssVarsObserver.observe(document.documentElement, {\n        attributes: true,\n        attributeFilter: [ "disabled", "href" ],\n        childList: true,\n        subtree: true\n    });\n}\n\nfunction fixKeyframes(rootElement) {\n    var animationNameProp = [ "animation-name", "-moz-animation-name", "-webkit-animation-name" ].filter(function(prop) {\n        return getComputedStyle(document.body)[prop];\n    })[0];\n    if (animationNameProp) {\n        var allNodes = rootElement.getElementsByTagName("*");\n        var keyframeNodes = [];\n        var nameMarker = "__CSSVARSPONYFILL-KEYFRAMES__";\n        for (var i = 0, len = allNodes.length; i < len; i++) {\n            var node = allNodes[i];\n            var animationName = getComputedStyle(node)[animationNameProp];\n            if (animationName !== "none") {\n                node.style[animationNameProp] += nameMarker;\n                keyframeNodes.push(node);\n            }\n        }\n        void document.body.offsetHeight;\n        for (var _i = 0, _len = keyframeNodes.length; _i < _len; _i++) {\n            var nodeStyle = keyframeNodes[_i].style;\n            nodeStyle[animationNameProp] = nodeStyle[animationNameProp].replace(nameMarker, "");\n        }\n    }\n}\n\nfunction getFullUrl$1(url) {\n    var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : location.href;\n    var d = document.implementation.createHTMLDocument("");\n    var b = d.createElement("base");\n    var a = d.createElement("a");\n    d.head.appendChild(b);\n    d.body.appendChild(a);\n    b.href = base;\n    a.href = url;\n    return a.href;\n}\n\nfunction getTimeStamp() {\n    return isBrowser && (window.performance || {}).now ? window.performance.now() : new Date().getTime();\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (cssVars);\n//# sourceMappingURL=css-vars-ponyfill.esm.js.map\n\n\n//# sourceURL=webpack:///./node_modules/css-vars-ponyfill/dist/css-vars-ponyfill.esm.js?')},
vendor: 6,426 bytes, lines 9-13
9"./node_modules/detect-browser/index.js":
10/*!**********************************************!*\
11  !*** ./node_modules/detect-browser/index.js ***!
12  \**********************************************/
13/*! no static exports found */function(module,exports,__webpack_require__){"use strict";eval("/* WEBPACK VAR INJECTION */(function(process) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BrowserInfo = /** @class */ (function () {\n    function BrowserInfo(name, version, os) {\n        this.name = name;\n        this.version = version;\n        this.os = os;\n    }\n    return BrowserInfo;\n}());\nexports.BrowserInfo = BrowserInfo;\nvar NodeInfo = /** @class */ (function () {\n    function NodeInfo(version) {\n        this.version = version;\n        this.name = 'node';\n        this.os = process.platform;\n    }\n    return NodeInfo;\n}());\nexports.NodeInfo = NodeInfo;\nvar BotInfo = /** @class */ (function () {\n    function BotInfo() {\n        this.bot = true; // NOTE: deprecated test name instead\n        this.name = 'bot';\n        this.version = null;\n        this.os = null;\n    }\n    return BotInfo;\n}());\nexports.BotInfo = BotInfo;\n// tslint:disable-next-line:max-line-length\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\nvar SEARCHBOT_OS_REGEX = /(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves\\/Teoma)|(ia_archiver)/;\nvar REQUIRED_VERSION_PARTS = 3;\nvar userAgentRules = [\n    ['aol', /AOLShield\\/([0-9\\._]+)/],\n    ['edge', /Edge\\/([0-9\\._]+)/],\n    ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\n    ['vivaldi', /Vivaldi\\/([0-9\\.]+)/],\n    ['kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/],\n    ['samsung', /SamsungBrowser\\/([0-9\\.]+)/],\n    ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n    ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\n    ['phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/],\n    ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/],\n    ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\n    ['fxios', /FxiOS\\/([0-9\\.]+)/],\n    ['opera-mini', /Opera Mini.*Version\\/([0-9\\.]+)/],\n    ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\n    ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)$/],\n    ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n    ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n    ['ie', /MSIE\\s(7\\.0)/],\n    ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\n    ['android', /Android\\s([0-9\\.]+)/],\n    ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\n    ['safari', /Version\\/([0-9\\._]+).*Safari/],\n    ['facebook', /FBAV\\/([0-9\\.]+)/],\n    ['instagram', /Instagram\\s([0-9\\.]+)/],\n    ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/],\n    ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/],\n    ['searchbot', SEARCHBOX_UA_REGEX],\n];\nvar operatingSystemRules = [\n    ['iOS', /iP(hone|od|ad)/],\n    ['Android OS', /Android/],\n    ['BlackBerry OS', /BlackBerry|BB10/],\n    ['Windows Mobile', /IEMobile/],\n    ['Amazon OS', /Kindle/],\n    ['Windows 3.11', /Win16/],\n    ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\n    ['Windows 98', /(Windows 98)|(Win98)/],\n    ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\n    ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\n    ['Windows Server 2003', /(Windows NT 5.2)/],\n    ['Windows Vista', /(Windows NT 6.0)/],\n    ['Windows 7', /(Windows NT 6.1)/],\n    ['Windows 8', /(Windows NT 6.2)/],\n    ['Windows 8.1', /(Windows NT 6.3)/],\n    ['Windows 10', /(Windows NT 10.0)/],\n    ['Windows ME', /Windows ME/],\n    ['Open BSD', /OpenBSD/],\n    ['Sun OS', /SunOS/],\n    ['Chrome OS', /CrOS/],\n    ['Linux', /(Linux)|(X11)/],\n    ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\n    ['QNX', /QNX/],\n    ['BeOS', /BeOS/],\n    ['OS/2', /OS\\/2/],\n    ['Search Bot', SEARCHBOT_OS_REGEX],\n];\nfunction detect() {\n    if (typeof navigator !== 'undefined') {\n        return parseUserAgent(navigator.userAgent);\n    }\n    return getNodeVersion();\n}\nexports.detect = detect;\nfunction parseUserAgent(ua) {\n    // opted for using reduce here rather than Array#first with a regex.test call\n    // this is primarily because using the reduce we only perform the regex\n    // execution once rather than once for the test and for the exec again below\n    // probably something that needs to be benchmarked though\n    var matchedRule = ua !== '' &&\n        userAgentRules.reduce(function (matched, _a) {\n            var browser = _a[0], regex = _a[1];\n            if (matched) {\n                return matched;\n            }\n            var uaMatch = regex.exec(ua);\n            return !!uaMatch && [browser, uaMatch];\n        }, false);\n    if (!matchedRule) {\n        return null;\n    }\n    var name = matchedRule[0], match = matchedRule[1];\n    if (name === 'searchbot') {\n        return new BotInfo();\n    }\n    var versionParts = match[1] && match[1].split(/[._]/).slice(0, 3);\n    if (versionParts) {\n        if (versionParts.length < REQUIRED_VERSION_PARTS) {\n            versionParts = versionParts.concat(createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length));\n        }\n    }\n    else {\n        versionParts = [];\n    }\n    return new BrowserInfo(name, versionParts.join('.'), detectOS(ua));\n}\nexports.parseUserAgent = parseUserAgent;\nfunction detectOS(ua) {\n    for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\n        var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n        var match = regex.test(ua);\n        if (match) {\n            return os;\n        }\n    }\n    return null;\n}\nexports.detectOS = detectOS;\nfunction getNodeVersion() {\n    var isNode = typeof process !== 'undefined' && process.version;\n    return isNode ? new NodeInfo(process.version.slice(1)) : null;\n}\nexports.getNodeVersion = getNodeVersion;\nfunction createVersionParts(count) {\n    var output = [];\n    for (var ii = 0; ii < count; ii++) {\n        output.push('0');\n    }\n    return output;\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../usr/local/lib/node_modules/webpack/node_modules/process/browser.js */ \"../../../../usr/local/lib/node_modules/webpack/node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/detect-browser/index.js?")},
vendor: 5,258 bytes, lines 13-17
13"./node_modules/js-cookie/src/js.cookie.js":
14/*!*************************************************!*\
15  !*** ./node_modules/js-cookie/src/js.cookie.js ***!
16  \*************************************************/
17/*! no static exports found */function(module,exports,__webpack_require__){eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * JavaScript Cookie v2.2.0\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader = false;\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (true) {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api (key, value, attributes) {\n\t\t\tvar result;\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Write\n\n\t\t\tif (arguments.length > 1) {\n\t\t\t\tattributes = extend({\n\t\t\t\t\tpath: '/'\n\t\t\t\t}, api.defaults, attributes);\n\n\t\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\t\tvar expires = new Date();\n\t\t\t\t\texpires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);\n\t\t\t\t\tattributes.expires = expires;\n\t\t\t\t}\n\n\t\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\t\ttry {\n\t\t\t\t\tresult = JSON.stringify(value);\n\t\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\t\tvalue = result;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\n\t\t\t\tif (!converter.write) {\n\t\t\t\t\tvalue = encodeURIComponent(String(value))\n\t\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\t\t\t\t} else {\n\t\t\t\t\tvalue = converter.write(value, key);\n\t\t\t\t}\n\n\t\t\t\tkey = encodeURIComponent(String(key));\n\t\t\t\tkey = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);\n\t\t\t\tkey = key.replace(/[\\(\\)]/g, escape);\n\n\t\t\t\tvar stringifiedAttributes = '';\n\n\t\t\t\tfor (var attributeName in attributes) {\n\t\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName];\n\t\t\t\t}\n\t\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t\t}\n\n\t\t\t// Read\n\n\t\t\tif (!key) {\n\t\t\t\tresult = {};\n\t\t\t}\n\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all. Also prevents odd result when\n\t\t\t// calling \"get()\"\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar rdecode = /(%[0-9A-Z]{2})+/g;\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!this.json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = parts[0].replace(rdecode, decodeURIComponent);\n\t\t\t\t\tcookie = converter.read ?\n\t\t\t\t\t\tconverter.read(cookie, name) : converter(cookie, name) ||\n\t\t\t\t\t\tcookie.replace(rdecode, decodeURIComponent);\n\n\t\t\t\t\tif (this.json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tresult = cookie;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!key) {\n\t\t\t\t\t\tresult[name] = cookie;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\n\t\tapi.set = api;\n\t\tapi.get = function (key) {\n\t\t\treturn api.call(api, key);\n\t\t};\n\t\tapi.getJSON = function () {\n\t\t\treturn api.apply({\n\t\t\t\tjson: true\n\t\t\t}, [].slice.call(arguments));\n\t\t};\n\t\tapi.defaults = {};\n\n\t\tapi.remove = function (key, attributes) {\n\t\t\tapi(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n\n\n//# sourceURL=webpack:///./node_modules/js-cookie/src/js.cookie.js?")},
vendor: 14,932 bytes, lines 17-21
17"./node_modules/what-input/dist/what-input.js":
18/*!****************************************************!*\
19  !*** ./node_modules/what-input/dist/what-input.js ***!
20  \****************************************************/
21/*! no static exports found */function(module,exports,__webpack_require__){eval("/**\n * what-input - A global utility for tracking the current input method (mouse, keyboard or touch).\n * @version v5.2.1\n * @link https://github.com/ten1seven/what-input\n * @license MIT\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory();\n\telse {}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \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\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = function () {\n\t  /*\n\t   * bail out if there is no document or window\n\t   * (i.e. in a node/non-DOM environment)\n\t   *\n\t   * Return a stubbed API instead\n\t   */\n\t  if (typeof document === 'undefined' || typeof window === 'undefined') {\n\t    return {\n\t      // always return \"initial\" because no interaction will ever be detected\n\t      ask: function ask() {\n\t        return 'initial';\n\t      },\n\n\t      // always return null\n\t      element: function element() {\n\t        return null;\n\t      },\n\n\t      // no-op\n\t      ignoreKeys: function ignoreKeys() {},\n\n\t      // no-op\n\t      specificKeys: function specificKeys() {},\n\n\t      // no-op\n\t      registerOnChange: function registerOnChange() {},\n\n\t      // no-op\n\t      unRegisterOnChange: function unRegisterOnChange() {}\n\t    };\n\t  }\n\n\t  /*\n\t   * variables\n\t   */\n\n\t  // cache document.documentElement\n\t  var docElem = document.documentElement;\n\n\t  // currently focused dom element\n\t  var currentElement = null;\n\n\t  // last used input type\n\t  var currentInput = 'initial';\n\n\t  // last used input intent\n\t  var currentIntent = currentInput;\n\n\t  // UNIX timestamp of current event\n\t  var currentTimestamp = Date.now();\n\n\t  // check for sessionStorage support\n\t  // then check for session variables and use if available\n\t  try {\n\t    if (window.sessionStorage.getItem('what-input')) {\n\t      currentInput = window.sessionStorage.getItem('what-input');\n\t    }\n\n\t    if (window.sessionStorage.getItem('what-intent')) {\n\t      currentIntent = window.sessionStorage.getItem('what-intent');\n\t    }\n\t  } catch (e) {}\n\n\t  // form input types\n\t  var formInputs = ['button', 'input', 'select', 'textarea'];\n\n\t  // empty array for holding callback functions\n\t  var functionList = [];\n\n\t  // list of modifier keys commonly used with the mouse and\n\t  // can be safely ignored to prevent false keyboard detection\n\t  var ignoreMap = [16, // shift\n\t  17, // control\n\t  18, // alt\n\t  91, // Windows key / left Apple cmd\n\t  93 // Windows menu / right Apple cmd\n\t  ];\n\n\t  var specificMap = [];\n\n\t  // mapping of events to input types\n\t  var inputMap = {\n\t    keydown: 'keyboard',\n\t    keyup: 'keyboard',\n\t    mousedown: 'mouse',\n\t    mousemove: 'mouse',\n\t    MSPointerDown: 'pointer',\n\t    MSPointerMove: 'pointer',\n\t    pointerdown: 'pointer',\n\t    pointermove: 'pointer',\n\t    touchstart: 'touch',\n\t    touchend: 'touch'\n\n\t    // boolean: true if the page is being scrolled\n\t  };var isScrolling = false;\n\n\t  // store current mouse position\n\t  var mousePos = {\n\t    x: null,\n\t    y: null\n\n\t    // map of IE 10 pointer events\n\t  };var pointerMap = {\n\t    2: 'touch',\n\t    3: 'touch', // treat pen like touch\n\t    4: 'mouse'\n\n\t    // check support for passive event listeners\n\t  };var supportsPassive = false;\n\n\t  try {\n\t    var opts = Object.defineProperty({}, 'passive', {\n\t      get: function get() {\n\t        supportsPassive = true;\n\t      }\n\t    });\n\n\t    window.addEventListener('test', null, opts);\n\t  } catch (e) {}\n\n\t  /*\n\t   * set up\n\t   */\n\n\t  var setUp = function setUp() {\n\t    // add correct mouse wheel event mapping to `inputMap`\n\t    inputMap[detectWheel()] = 'mouse';\n\n\t    addListeners();\n\t    doUpdate('input');\n\t    doUpdate('intent');\n\t  };\n\n\t  /*\n\t   * events\n\t   */\n\n\t  var addListeners = function addListeners() {\n\t    // `pointermove`, `MSPointerMove`, `mousemove` and mouse wheel event binding\n\t    // can only demonstrate potential, but not actual, interaction\n\t    // and are treated separately\n\t    var options = supportsPassive ? { passive: true } : false;\n\n\t    // pointer events (mouse, pen, touch)\n\t    if (window.PointerEvent) {\n\t      window.addEventListener('pointerdown', setInput);\n\t      window.addEventListener('pointermove', setIntent);\n\t    } else if (window.MSPointerEvent) {\n\t      window.addEventListener('MSPointerDown', setInput);\n\t      window.addEventListener('MSPointerMove', setIntent);\n\t    } else {\n\t      // mouse events\n\t      window.addEventListener('mousedown', setInput);\n\t      window.addEventListener('mousemove', setIntent);\n\n\t      // touch events\n\t      if ('ontouchstart' in window) {\n\t        window.addEventListener('touchstart', setInput, options);\n\t        window.addEventListener('touchend', setInput);\n\t      }\n\t    }\n\n\t    // mouse wheel\n\t    window.addEventListener(detectWheel(), setIntent, options);\n\n\t    // keyboard events\n\t    window.addEventListener('keydown', setInput);\n\t    window.addEventListener('keyup', setInput);\n\n\t    // focus events\n\t    window.addEventListener('focusin', setElement);\n\t    window.addEventListener('focusout', clearElement);\n\t  };\n\n\t  // checks conditions before updating new input\n\t  var setInput = function setInput(event) {\n\t    var eventKey = event.which;\n\t    var value = inputMap[event.type];\n\n\t    if (value === 'pointer') {\n\t      value = pointerType(event);\n\t    }\n\n\t    var ignoreMatch = !specificMap.length && ignoreMap.indexOf(eventKey) === -1;\n\n\t    var specificMatch = specificMap.length && specificMap.indexOf(eventKey) !== -1;\n\n\t    var shouldUpdate = value === 'keyboard' && eventKey && (ignoreMatch || specificMatch) || value === 'mouse' || value === 'touch';\n\n\t    // prevent touch detection from being overridden by event execution order\n\t    if (validateTouch(value)) {\n\t      shouldUpdate = false;\n\t    }\n\n\t    if (shouldUpdate && currentInput !== value) {\n\t      currentInput = value;\n\n\t      try {\n\t        window.sessionStorage.setItem('what-input', currentInput);\n\t      } catch (e) {}\n\n\t      doUpdate('input');\n\t    }\n\n\t    if (shouldUpdate && currentIntent !== value) {\n\t      // preserve intent for keyboard interaction with form fields\n\t      var activeElem = document.activeElement;\n\t      var notFormInput = activeElem && activeElem.nodeName && formInputs.indexOf(activeElem.nodeName.toLowerCase()) === -1 || activeElem.nodeName.toLowerCase() === 'button' && !checkClosest(activeElem, 'form');\n\n\t      if (notFormInput) {\n\t        currentIntent = value;\n\n\t        try {\n\t          window.sessionStorage.setItem('what-intent', currentIntent);\n\t        } catch (e) {}\n\n\t        doUpdate('intent');\n\t      }\n\t    }\n\t  };\n\n\t  // updates the doc and `inputTypes` array with new input\n\t  var doUpdate = function doUpdate(which) {\n\t    docElem.setAttribute('data-what' + which, which === 'input' ? currentInput : currentIntent);\n\n\t    fireFunctions(which);\n\t  };\n\n\t  // updates input intent for `mousemove` and `pointermove`\n\t  var setIntent = function setIntent(event) {\n\t    var value = inputMap[event.type];\n\n\t    if (value === 'pointer') {\n\t      value = pointerType(event);\n\t    }\n\n\t    // test to see if `mousemove` happened relative to the screen to detect scrolling versus mousemove\n\t    detectScrolling(event);\n\n\t    // only execute if scrolling isn't happening\n\t    if (!isScrolling && !validateTouch(value) && currentIntent !== value) {\n\t      currentIntent = value;\n\n\t      try {\n\t        window.sessionStorage.setItem('what-intent', currentIntent);\n\t      } catch (e) {}\n\n\t      doUpdate('intent');\n\t    }\n\t  };\n\n\t  var setElement = function setElement(event) {\n\t    if (!event.target.nodeName) {\n\t      // If nodeName is undefined, clear the element\n\t      // This can happen if click inside an <svg> element.\n\t      clearElement();\n\t      return;\n\t    }\n\n\t    currentElement = event.target.nodeName.toLowerCase();\n\t    docElem.setAttribute('data-whatelement', currentElement);\n\n\t    if (event.target.classList && event.target.classList.length) {\n\t      docElem.setAttribute('data-whatclasses', event.target.classList.toString().replace(' ', ','));\n\t    }\n\t  };\n\n\t  var clearElement = function clearElement() {\n\t    currentElement = null;\n\n\t    docElem.removeAttribute('data-whatelement');\n\t    docElem.removeAttribute('data-whatclasses');\n\t  };\n\n\t  /*\n\t   * utilities\n\t   */\n\n\t  var pointerType = function pointerType(event) {\n\t    if (typeof event.pointerType === 'number') {\n\t      return pointerMap[event.pointerType];\n\t    } else {\n\t      // treat pen like touch\n\t      return event.pointerType === 'pen' ? 'touch' : event.pointerType;\n\t    }\n\t  };\n\n\t  // prevent touch detection from being overridden by event execution order\n\t  var validateTouch = function validateTouch(value) {\n\t    var timestamp = Date.now();\n\n\t    var touchIsValid = value === 'mouse' && currentInput === 'touch' && timestamp - currentTimestamp < 200;\n\n\t    currentTimestamp = timestamp;\n\n\t    return touchIsValid;\n\t  };\n\n\t  // detect version of mouse wheel event to use\n\t  // via https://developer.mozilla.org/en-US/docs/Web/Events/wheel\n\t  var detectWheel = function detectWheel() {\n\t    var wheelType = void 0;\n\n\t    // Modern browsers support \"wheel\"\n\t    if ('onwheel' in document.createElement('div')) {\n\t      wheelType = 'wheel';\n\t    } else {\n\t      // Webkit and IE support at least \"mousewheel\"\n\t      // or assume that remaining browsers are older Firefox\n\t      wheelType = document.onmousewheel !== undefined ? 'mousewheel' : 'DOMMouseScroll';\n\t    }\n\n\t    return wheelType;\n\t  };\n\n\t  // runs callback functions\n\t  var fireFunctions = function fireFunctions(type) {\n\t    for (var i = 0, len = functionList.length; i < len; i++) {\n\t      if (functionList[i].type === type) {\n\t        functionList[i].fn.call(undefined, type === 'input' ? currentInput : currentIntent);\n\t      }\n\t    }\n\t  };\n\n\t  // finds matching element in an object\n\t  var objPos = function objPos(match) {\n\t    for (var i = 0, len = functionList.length; i < len; i++) {\n\t      if (functionList[i].fn === match) {\n\t        return i;\n\t      }\n\t    }\n\t  };\n\n\t  var detectScrolling = function detectScrolling(event) {\n\t    if (mousePos['x'] !== event.screenX || mousePos['y'] !== event.screenY) {\n\t      isScrolling = false;\n\n\t      mousePos['x'] = event.screenX;\n\t      mousePos['y'] = event.screenY;\n\t    } else {\n\t      isScrolling = true;\n\t    }\n\t  };\n\n\t  // manual version of `closest()`\n\t  var checkClosest = function checkClosest(elem, tag) {\n\t    var ElementPrototype = window.Element.prototype;\n\n\t    if (!ElementPrototype.matches) {\n\t      ElementPrototype.matches = ElementPrototype.msMatchesSelector || ElementPrototype.webkitMatchesSelector;\n\t    }\n\n\t    if (!ElementPrototype.closest) {\n\t      do {\n\t        if (elem.matches(tag)) {\n\t          return elem;\n\t        }\n\n\t        elem = elem.parentElement || elem.parentNode;\n\t      } while (elem !== null && elem.nodeType === 1);\n\n\t      return null;\n\t    } else {\n\t      return elem.closest(tag);\n\t    }\n\t  };\n\n\t  /*\n\t   * init\n\t   */\n\n\t  // don't start script unless browser cuts the mustard\n\t  // (also passes if polyfills are used)\n\t  if ('addEventListener' in window && Array.prototype.indexOf) {\n\t    setUp();\n\t  }\n\n\t  /*\n\t   * api\n\t   */\n\n\t  return {\n\t    // returns string: the current input type\n\t    // opt: 'intent'|'input'\n\t    // 'input' (default): returns the same value as the `data-whatinput` attribute\n\t    // 'intent': includes `data-whatintent` value if it's different than `data-whatinput`\n\t    ask: function ask(opt) {\n\t      return opt === 'intent' ? currentIntent : currentInput;\n\t    },\n\n\t    // returns string: the currently focused element or null\n\t    element: function element() {\n\t      return currentElement;\n\t    },\n\n\t    // overwrites ignored keys with provided array\n\t    ignoreKeys: function ignoreKeys(arr) {\n\t      ignoreMap = arr;\n\t    },\n\n\t    // overwrites specific char keys to update on\n\t    specificKeys: function specificKeys(arr) {\n\t      specificMap = arr;\n\t    },\n\n\t    // attach functions to input and intent \"events\"\n\t    // funct: function to fire on change\n\t    // eventType: 'input'|'intent'\n\t    registerOnChange: function registerOnChange(fn, eventType) {\n\t      functionList.push({\n\t        fn: fn,\n\t        type: eventType || 'input'\n\t      });\n\t    },\n\n\t    unRegisterOnChange: function unRegisterOnChange(fn) {\n\t      var position = objPos(fn);\n\n\t      if (position || position === 0) {\n\t        functionList.splice(position, 1);\n\t      }\n\t    }\n\t  };\n\t}();\n\n/***/ })\n/******/ ])\n});\n;\n\n//# sourceURL=webpack:///./node_modules/what-input/dist/what-input.js?")},
21"./src/client/alert.js":
22/*!*****************************!*\
23  !*** ./src/client/alert.js ***!
24  \*****************************/
25/*! no static exports found */function(module,exports,__webpack_require__){"use strict";eval("\n\nvar _jsCookie = __webpack_require__(/*! js-cookie */ \"./node_modules/js-cookie/src/js.cookie.js\");\n\nvar _jsCookie2 = _interopRequireDefault(_jsCookie);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\ndocument.addEventListener('DOMContentLoaded', function () {\n\tvar alertButton = document.querySelector('[data-cookie]');\n\tif (alertButton) {\n\t\talertButton.addEventListener('click', function () {\n\t\t\tvar target = alertButton.getAttribute('data-for');\n\t\t\tdocument.getElementById(target).remove();\n\n\t\t\tvar cookieId = alertButton.getAttribute('data-cookie');\n\n\t\t\t_jsCookie2.default.set('alert', cookieId, {\n\t\t\t\texpires: 365\n\t\t\t});\n\t\t});\n\t}\n});\n\n//# sourceURL=webpack:///./src/client/alert.js?")},
25"./src/client/cookies.js":
26/*!*******************************!*\
27  !*** ./src/client/cookies.js ***!
28  \*******************************/
29/*! no static exports found */function(module,exports,__webpack_require__){"use strict";eval("\n\nvar _jsCookie = __webpack_require__(/*! js-cookie */ \"./node_modules/js-cookie/src/js.cookie.js\");\n\nvar _jsCookie2 = _interopRequireDefault(_jsCookie);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar setupCookieHandler = function setupCookieHandler() {\n\tvar button = document.querySelector('#JagaccepteracookiesBYTEJNAMN + .sv-text-portlet-content a');\n\tif (button) {\n\t\tvar bar = document.querySelector('.vmkf__cookies');\n\t\tbar.setAttribute('id', 'cookie-bar');\n\t\tif (bar) {\n\t\t\tbar.style.display = 'block';\n\n\t\t\tbutton.setAttribute('aria-controls', 'cookie-bar');\n\t\t\tbutton.setAttribute('aria-expanded', 'true');\n\t\t\tbutton.setAttribute('href', '#');\n\n\t\t\tbutton.addEventListener('click', function () {\n\t\t\t\tbar.style.display = 'none';\n\t\t\t\t_jsCookie2.default.set('vmkf-cookie', 'set', {\n\t\t\t\t\texpires: 36000 * 10\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n\tif (_jsCookie2.default.get('vmkf-cookie') !== 'set') {\n\t\tsetupCookieHandler();\n\t}\n});\n\n//# sourceURL=webpack:///./src/client/cookies.js?")},
29"./src/client/facets.js":
30/*!******************************!*\
31  !*** ./src/client/facets.js ***!
32  \******************************/
33/*! no static exports found */function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = function ($) {\n\t$(document).ready(function () {\n\n\t\t$(document).on('click', '#facet-button', function () {\n\t\t\tvar $button = $('#facet-button');\n\t\t\tvar $wrapper = $('#facets-wrapper');\n\t\t\tvar $text = $('#facet-button .facet-button__text');\n\t\t\tvar isOpen = $button.attr('aria-expanded') === 'true';\n\n\t\t\t$button.attr('aria-expanded', isOpen ? 'false' : 'true');\n\t\t\tif (isOpen) $text.text('Visa filter');else $text.text('Dölj filter');\n\n\t\t\t$button.toggleClass('open');\n\t\t\t$wrapper.toggleClass('open');\n\t\t});\n\t});\n}(jQuery);\n\n//# sourceURL=webpack:///./src/client/facets.js?")},
33"./src/client/fixed-menu.js":
34/*!**********************************!*\
35  !*** ./src/client/fixed-menu.js ***!
36  \**********************************/
37/*! no static exports found */function(module,exports,__webpack_require__){"use strict";eval("\n\n(function ($) {\n    $(document).ready(function () {\n        $(window).scroll(function (event) {\n            var scroll = $(document).scrollTop();\n            if (scroll > 0) {\n                $('.vmkf__header-menu-button-icon').addClass('scrolled');\n            } else {\n                $('.vmkf__header-menu-button-icon').removeClass('scrolled');\n            }\n        });\n    });\n})($svjq);\n\n//# sourceURL=webpack:///./src/client/fixed-menu.js?")},
37"./src/client/hero-arrow.js":
38/*!**********************************!*\
39  !*** ./src/client/hero-arrow.js ***!
40  \**********************************/
41/*! no static exports found */function(module,exports,__webpack_require__){"use strict";eval("\n\n(function ($) {\n    $(document).ready(function () {\n        var hero = $('.vmkf-hero');\n        if (hero.length > 0) {\n            hero.append('<div class=\"vmkf-arrow-wrapper\"><div class=\"vmkf-arrow-icon-wrapper\"><div class=\"vmkf-hero-arrow vmkf-i-arrow-down\"</div></div></div>');\n            var button = $('.vmkf-arrow-icon-wrapper');\n            button.click(function () {\n                event.preventDefault();\n                $(\"html, body\").animate({ scrollTop: $('#arrow-anchor').offset().top }, 500);\n            });\n        }\n    });\n})($svjq);\n\n//# sourceURL=webpack:///./src/client/hero-arrow.js?")},
41"./src/client/main.js":
42/*!****************************!*\
43  !*** ./src/client/main.js ***!
44  \****************************/
45/*! no static exports found */function(module,exports,__webpack_require__){"use strict";eval('\n\nvar _whatInput = __webpack_require__(/*! what-input */ "./node_modules/what-input/dist/what-input.js");\n\nvar _whatInput2 = _interopRequireDefault(_whatInput);\n\nvar _detectBrowser = __webpack_require__(/*! detect-browser */ "./node_modules/detect-browser/index.js");\n\nvar _cssVarsPonyfill = __webpack_require__(/*! css-vars-ponyfill */ "./node_modules/css-vars-ponyfill/dist/css-vars-ponyfill.esm.js");\n\nvar _cssVarsPonyfill2 = _interopRequireDefault(_cssVarsPonyfill);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\ndocument.querySelector(\'html\').dataset.browser = (0, _detectBrowser.detect)().name; // Placeholder\n\nif ((0, _detectBrowser.detect)().name === \'ie\') {\n\tdocument.addEventListener(\'DOMContentLoaded\', function () {\n\t\t(0, _cssVarsPonyfill2.default)();\n\t});\n}\n\n_whatInput2.default.specificKeys([9]);\n\n__webpack_require__(/*! ./facets */ "./src/client/facets.js");\n__webpack_require__(/*! ./hero-arrow */ "./src/client/hero-arrow.js");\n__webpack_require__(/*! ./menu */ "./src/client/menu.js");\n__webpack_require__(/*! ./fixed-menu */ "./src/client/fixed-menu.js");\n__webpack_require__(/*! ./cookies */ "./src/client/cookies.js");\n__webpack_require__(/*! ./alert */ "./src/client/alert.js");\n\n//# sourceURL=webpack:///./src/client/main.js?')},
45"./src/client/menu.js":
46/*!****************************!*\
47  !*** ./src/client/menu.js ***!
48  \****************************/
49/*! no static exports found */function(module,exports,__webpack_require__){"use strict";eval("\n\nvar setupToggle = function setupToggle(toggler) {\n\tif (!toggler) return;\n\tvar controls = toggler.getAttribute('data-for') || toggler.getAttribute('aria-controls');\n\tif (!controls) return;\n\tvar controlElement = document.getElementById(controls) || document.querySelector(controls);\n\tif (!controlElement) return;\n\n\tvar isExpanded = (toggler.getAttribute('aria-expanded') || 'false') === 'true';\n\ttoggler.setAttribute('aria-expanded', isExpanded ? 'true' : 'false');\n\ttoggler.addEventListener('click', function () {\n\t\tif (isExpanded) {\n\t\t\ttoggler.classList.remove('open');\n\t\t\ttoggler.setAttribute('aria-expanded', 'false');\n\t\t\tcontrolElement.classList.remove('open');\n\t\t\tisExpanded = false;\n\t\t} else {\n\t\t\ttoggler.classList.add('open');\n\t\t\ttoggler.setAttribute('aria-expanded', 'true');\n\t\t\tcontrolElement.classList.add('open');\n\t\t\tisExpanded = true;\n\n\t\t\tif (controls === 'mobile-search') {\n\t\t\t\tcontrolElement.querySelector('input').focus();\n\t\t\t}\n\t\t}\n\t});\n};\n\nvar makeToggleMenu = function makeToggleMenu() {\n\tvar menuWrapper = document.querySelector('.vmkf__menu-wrapper');\n\tvar menuButton = document.getElementById('menu-toggle');\n\tvar htmlElement = document.querySelector('html');\n\treturn function (e) {\n\t\tvar isMenuOpen = htmlElement.classList.contains('menu-open');\n\t\tswitch (e.type) {\n\t\t\tcase 'click':\n\t\t\t\tif (!menuWrapper.contains(e.target) && isMenuOpen) {\n\t\t\t\t\tmenuButton.click();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'keyup':\n\t\t\t\tvar key = e.which || e.keyCode;\n\t\t\t\tif (isMenuOpen && key === 27) {\n\t\t\t\t\tmenuButton.click();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t\treturn;\n\t};\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n\tvar toggles = Array.apply(null, document.querySelectorAll('[data-for]'));\n\tvar toggleMenu = makeToggleMenu();\n\tvar menuButton = document.getElementById('menu-toggle');\n\n\ttoggles.forEach(setupToggle);\n\n\tmenuButton.addEventListener('click', function () {\n\t\tvar htmlElement = document.querySelector('html');\n\t\thtmlElement.classList.toggle('menu-open');\n\t});\n\tdocument.addEventListener('click', toggleMenu);\n\tdocument.addEventListener('keyup', toggleMenu);\n});\n\n//# sourceURL=webpack:///./src/client/menu.js?")}
vendor: 3 bytes, line 49
49});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.