{"version":3,"file":"./resources/paarisa/js/app.js","sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./src/components/accordion/accordion.js","webpack:///./src/components/app/app.js","webpack:///./src/components/bestilling/basket.js","webpack:///./src/components/bestilling/bestilling.js","webpack:///./src/components/contact/fixedcontact.js","webpack:///./src/components/cookie/cookiedisclaimer.js","webpack:///./src/components/example-component/example-component.js","webpack:///./src/components/header/header.js","webpack:///./src/components/lazyload/lazyload.js","webpack:///./src/components/magic/magic.js","webpack:///./src/components/search-component/search-component.js","webpack:///./src/components/test-module/test-module.js","webpack:///./src/components/toggle-module/togglemodule.js","webpack:///./src/components/user-item/user-item.js","webpack:///./src/components/vimeo/vimeocomponent.js","webpack:///./src/consts/const-event-types.js","webpack:///./src/index.css","webpack:///./src/index.js","webpack:///./src/services/service-cookies.js","webpack:///./src/services/service-some-api.js"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","export default class Accordion {\n constructor(element) {\n this.el = element\n this.headers = this.el.querySelectorAll(\".accordion-header\")\n \n this.openClose = this.openClose.bind(this);\n this.init()\n }\n\n init() {\n this.headers.forEach(element => {\n element.addEventListener(\"click\", e => {\n this.openClose(element)\n })\n });\n }\n\n openClose(element){\n let container = element.nextElementSibling;\n let containerText = container.querySelector(\".accordion-text\")\n let containerHeight = containerText.offsetHeight + \"px\"\n //console.log('containerHeight: ', containerHeight);\n \n if (element.classList.contains(\"open\")){\n container.style.height = null; \n element.classList.remove(\"open\")\n }\n else{\n container.style.height = containerHeight;\n element.classList.add(\"open\")\n }\n\n }\n}\n","import 'regenerator-runtime'\nimport users from '../../json/mockdata-users.json'\nimport {EventBus, EventTypes} from '../../consts/const-event-types'\nimport UserItem from \"../user-item/user-item\"\nimport {fetchSomeData} from '../../services/service-some-api'\n\n/*\nUse App.js for global functionality\n*/\n\nexport default class App {\n constructor(element) {\n // save a reference of your component-element so you can access it from your methods:\n this.el = element\n\n // bind your methods to 'this' when calling them from event-listeners:\n this.onAppReady = this.onAppReady.bind(this)\n\n this.init()\n }\n\n init() {\n // Use init-method to store DOM-references and setup initial event-listeners:\n if(this.el) this.someElement = this.el.querySelector('[data-example-js-selector]')\n\n // You could listen for all components to be instantiated to make sure events between components are captured:\n EventBus.addEventListener(EventTypes.ALL_COMPONENTS_READY, this.onAppReady);\n }\n\n onAppReady(event) {\n console.log(event.type)\n\n // create your own event-types for component-to-component communication (fx. this event will be picked up by Header.js component):\n const eventData = {detail: new Date().toJSON()}\n const ev = new CustomEvent(EventTypes.MY_CUSTOM_EVENT, eventData)\n EventBus.dispatchEvent(ev)\n\n this.exampleES6Features()\n // this.exampleRenderSomeContent()\n }\n\n async exampleES6Features() {\n console.log(\"----------------------------\")\n console.log(\"Here are some random ES6+ features...\")\n\n // use async/await to load data:\n const data = await fetchSomeData()\n console.log('data', data)\n\n const someString = 'something is rotten in Denmark'\n const hasDenmark = someString.includes('Denmark')\n console.log('hasDenmark', hasDenmark)\n\n const someNodeList = document.querySelectorAll('p')\n console.log('someNodeList', someNodeList)\n\n // using ES6 syntax to convert the NodeList to an Array (gives access to useful array-methods):\n const convertedToArray = [...someNodeList]\n console.log('nodeList converted to array', convertedToArray)\n\n // import json-data:\n console.log('imported JSON-data', users)\n\n // using forEach for looping over array-items:\n users.forEach((user, index) => {\n // using Spread operators to extract properties:\n const {name, gender} = user\n console.log('forEach', index, name, gender)\n })\n\n // using a for..of loop:\n for(const user of users) {\n console.log('for of loop', user.stars);\n }\n\n // using map to loop and return a new array:\n const userNames = users.map(user => user.name)\n console.log('userNames', userNames)\n\n\n // chain .filter and .map to create new array:\n const femaleUserNamesArray = users\n .filter(user => user.gender === 'female')\n .map(user => user.name)\n console.log('femaleUserNamesArray', femaleUserNamesArray)\n\n // using reduce to fx. sum up values in array:\n const sumUserStars = this.sumUserStars(users)\n console.log('sumUserStars', sumUserStars)\n console.log(\"----------------------------\")\n }\n\n sumUserStars(users) {\n return users.reduce((sum, current) => {\n return sum + current.stars\n }, 0)\n }\n\n exampleRenderSomeContent() {\n if(this.someElement) {\n\n // compose some HTML:\n const templateUsers = `\n \n `\n\n // insert template into DOM:\n this.someElement.innerHTML = templateUsers\n\n // If JS-components are needed runtime, instantiate them manually:\n const nodes = [...this.someElement.querySelectorAll('[data-component=\"user-item\"]')]\n nodes.forEach((node, idx) => new UserItem(node, users[idx]))\n }\n }\n}\n","export default class Basket {\n constructor(element) {\n this.el = element\n this.outerbasket = document.querySelector(\".outer-basket\")\n this.innerbasket = this.el.querySelector(\".basket-inner\")\n \n this.init()\n }\n \n init() {\n \t\n\tvar controller = new ScrollMagic.Controller()\n\n\t// build a scene\n\tvar slidein = new ScrollMagic.Scene({\n triggerElement: '.the-basket',\n offset: '1200',\n reverse: true\n\t})\n .setClassToggle('.basket-inner', 'stickybasket') // add class to project01\n \n\n .addTo(controller)\n \n \n \n \n this.outerbasket.style.height = this.innerbasket.offsetHeight + \"px\";\n \n\n \n}\n \n}\n \n ","export default class Bestilling {\n constructor(element) {\n this.el = element\n this.subtract = this.el.querySelector(\".subtract\")\n this.add = this.el.querySelector(\".add\")\n\t this.addButtons = this.el.querySelectorAll(\".material-item\")\n this.amount = this.el.querySelector(\".amount\")\n this.products = this.el.querySelectorAll('[data]')\n this.increaseValue = this.increaseValue.bind(this)\n this.decreaseValue = this.decreaseValue.bind(this)\n\t this.searchorder = this.el.querySelector(\"#search-order\")\n this.materialitems = this.el.querySelectorAll(\".material-item\")\n this.init()\n }\n \n init() {\n \t\n \n\t\t\t//console.log(this.addButtons)\n\t\t\tthis.addButtons.forEach((element, index) => {\n\t\t\t\n\t\t\tvar addelement = element.querySelector(\".add\");\n\t\t\tvar subtractelement = element.querySelector(\".subtract\");\n\t\t\t\n\t\t\tvar amount = element.querySelector(\".amount\");\n\t\t\t\n\t\t\taddelement.addEventListener(\"click\" , event => {\n\t\t\t\t\tthis.increaseValue(amount);\n\t\t\t})\n\t\t\t\n\t\t\tsubtractelement.addEventListener(\"click\" , event => {\n\t\t\t\t\tthis.decreaseValue(amount);\n\t\t\t})\n\t\t});\n\t\t\n \n \n \n if (this.subtract) {\n \n this.subtract.addEventListener(\"click\", event => {\n this.decreaseValue()\n })\n \n }\n\t\t\n\t\tif(this.searchorder) {\n\t\t\tthis.searchorder.addEventListener(\"keypress\" , event => {\n\t\t\t\t\t\n\t\t\t\t\tvar inputFromText = this.searchorder.value.toLowerCase().split(\" \");\n\t\t\t\t\t\n\t\t\t\t\tthis.materialitems.forEach((element, index) => {\n\t\t\t\t\t\tvar datadef = element.getAttribute('data-attributes').toLowerCase();\t\n\t\t\t\t\t\tvar match = datadef.includes(this.searchorder.value.toLowerCase());\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(match) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tthis.materialitems[index].classList.remove(\"hide\")\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if(!match) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tthis.materialitems[index].classList.add(\"hide\")\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(this.searchorder.value.length < 2) {\n\t\t\t\t\t\t\tthis.materialitems[index].classList.remove(\"hide\");\n\t\t\t\t\t\t\t//console.log(\"this.searchorder.value.length < 2: \" + this.searchorder.value.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t});\n\t\t\tthis.searchorder.addEventListener(\"keyup\" , event => {\n\t\t\t\tif(!this.searchorder.value){\n\t\t\t\t\tthis.materialitems.forEach((element, index) => {\n\t\t\t\t\tthis.materialitems[index].classList.remove(\"hide\")\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\t\n\t\t//events on addbasket button\n\t\tthis.materialitems.forEach((element, index) => {\n\t\t\tvar addbasket = element.querySelector(\".addbasket\");\n\t\t\taddbasket.addEventListener(\"click\" , event => {\n\t\t\t\t\n\t\t\t\tvar id = element.getAttribute('data-itmi');\n\t\t\t\t\n\t\t\t\t\n\t\t\t})\n\t\t\t\n\t\t});\n\t\t\n\t\t\n\t\t//this.searchorder.addEventListener(\"keypress\" , event => {)};\n\t\t\n\t\t//addbasket\n\t\t\n\t\t\n //console.log('Example-component initiated with this element', this.el)\n\t \n\t \n\t \n }\n increaseValue(amountInput) {\n let value = parseInt(amountInput.value, 10);\n value = isNaN(value) ? 0 : value;\n value++;\n amountInput.value = value;\n //console.log(value);\n }\n decreaseValue(amountInput) {\n let value = parseInt(amountInput.value, 10);\n value = isNaN(value) ? 0 : value;\n value < 1 ? value = 1 : '';\n value--;\n amountInput.value = value;\n //console.log(value)\n }\n }","export default class Fixedcontact {\n constructor(element) {\n this.el = element\n this.title = this.el.querySelector('[data-title]')\n this.content = this.el.querySelector('[data-content]')\n this.linkTop = this.el.querySelector('[data-toplink]')\n this.linkBottom = this.el.querySelector('[data-bottomlink]')\n this.extraLink = this.el.querySelector('[data-extralink]')\n this.facebookLink = this.el.querySelector('[data-facebooklink]')\n this.extractcontent = this.extractcontent.bind(this)\n this.init()\n \n }\n \n init() {\n \n this.extractcontent(); \n \n \t// Init ScrollMagic\n\tvar controller = new ScrollMagic.Controller()\n\n\t// build a scene\n\tvar slidein = new ScrollMagic.Scene({\n triggerElement: '.contact-static',\n offset: '1050',\n reverse: true,\n \n\t})\n .setClassToggle('.contact-fixed', 'fade-in') // add class to project01 \n\n .addTo(controller)\n \n // build a scene\n\tvar slideout = new ScrollMagic.Scene({\n triggerElement: 'footer',\n offset: '-450',\n reverse: true\n\t})\n .setClassToggle('.contact-fixed', 'fade-out') // add class to project01\n \n\n\t.addTo(controller)\n\n}\n\nextractcontent() {\n const insertLinkTop = this.linkTop.innerHTML\n const insertLinkBottom = this.linkBottom.innerHTML\n const insertTitle = this.title.innerHTML\n // const insertExtraLink = this.extraLink.innerHTML\n const fixedContact = `\n
\n
\n
\n
\n ${insertTitle}\n
\n
\n
\n
\n ${insertLinkTop}\n
\n
\n
\n
\n ${insertLinkBottom}\n \n
\n \n
\n
\n `\n console.log(fixedContact);\n document.body.insertAdjacentHTML('beforeend', fixedContact);\n }\n\n}","import { getCookieAcceptance } from \"../../services/service-cookies\"\nimport { setCookie } from \"../../services/service-cookies\"\n\nexport default class CookiedisclaimerComponent {\n constructor(element) {\n this.el = element\n\tthis.acceptbutton = this.el.querySelector(\".cookie-accept-trigger\")\n this.init()\n }\n \n\tinit() {\n\t\t\n\t\tif(getCookieAcceptance('cookieconsent')) {\n\t\t\tthis.el.classList.add('cookie-disclaimer-hide');\n\t\t}\n\t\telse {\n\t\t\tthis.el.classList.remove('cookie-disclaimer-hide');\n\t\t}\n\t\t\n\t\tif (this.acceptbutton) {\n\t\t\tthis.acceptbutton.addEventListener(\"click\", event => {\n\t\t\t\tsetCookie('cookieconsent', 'true', 30);\n\t\t\t\tthis.el.classList.add('cookie-disclaimer-hide');\t\n\t\t\t\tthis.el.style.display = \"none\";\n\t\t\t})\n\t\t}\n\t}\n}","export default class ExampleComponent {\n constructor(element) {\n this.el = element\n this.init()\n }\n\n init() {\n console.log(\"hello\")\n // console.log('Example-component initiated with this element', this.el)\n }\n}\n","import {EventBus, EventTypes} from '../../consts/const-event-types'\n\nexport default class Header {\n constructor(element) {\n this.el = element\n this.myHtml = document.querySelector(\"html\")\n this.myBody = document.querySelector(\"body\")\n this.toggle = this.el.querySelector(\".menuToggle\")\n this.slidemenu = this.el.querySelector(\".navigationbox\")\n this.menutext = this.el.querySelector(\".menu\")\n this.closeText = this.el.querySelector(\".closeText\")\n this.closeIcon = this.el.querySelector(\".closeIcon\")\n this.closeoverlay = this.el.querySelector(\".click-close\")\n this.navlink = document.querySelectorAll(\".navlink\")\n this.searchToggle = this.el.querySelector(\".search-icon\")\n this.searchOverlay = this.el.querySelector(\".search-overlay\")\n this.languageselect = this.el.querySelector(\".language\")\n this.searchclose = this.el.querySelector(\".search-close-wrap\")\n this.searchexplainer = this.el.querySelector(\".explainer\")\n this.searchInput = this.el.querySelector(\".searchbar\")\n this.searchList = this.el.querySelector(\".search-suggestion-list\")\n this.submitbutton = this.el.querySelector(\".search-submit\")\n this.searchlabel = this.el.querySelector(\".searchLabel\")\n this.searchanimate = this.searchanimate.bind(this)\n this.menuanimate = this.menuanimate.bind(this)\n this.removeMenu = this.removeMenu.bind(this)\n this.openMenu = this.openMenu.bind(this)\n this.removeSearch = this.removeSearch.bind(this)\n this.openSearch = this.openSearch.bind(this)\n this.searchFocus = this.searchFocus.bind(this)\n this.updateValue = this.updateValue.bind(this)\n this.createList = this.createList.bind(this)\n this.interactiveEvents = this.interactiveEvents.bind(this)\n \n \n this.init()\n }\n init() {\n\n \n EventBus.addEventListener(EventTypes.MY_CUSTOM_EVENT, event => {\n \n }); \n if (this.toggle) {\n \n this.toggle.addEventListener(\"click\", event => {\n this.menuanimate()\n })\n\n }\n if (this.menutext) {\n \n this.menutext.addEventListener(\"click\", event => {\n this.menuanimate()\n })\n\n }\n if (this.searchToggle) {\n \n this.searchToggle.addEventListener(\"click\", event => {\n this.searchanimate()\n }) \n }\n \n this.closeoverlay.addEventListener(\"click\", event => {\n \n \n this.menuanimate()\n \n })\n this.closeIcon.addEventListener(\"click\", event => {\n \n \n this.menuanimate()\n \n })\n \n\n this.searchclose.addEventListener(\"click\", event => {\n this.searchanimate()\n })\n \n}\n \n menuanimate() {\n const links = document.querySelectorAll(\".navlink\");\n \n\n for (let i = 0; i < links.length; i++) {\n links[i].classList.remove(\"link-fadein\"); \n }\n \n if (this.slidemenu.classList.contains(\"navigationslide\")) {\n this.slidemenu.classList.remove(\"navigationslide\")\n this.myBody.classList.remove(\"overflow\")\n this.searchToggle.classList.remove(\"nodisplay\")\n this.languageselect.classList.remove(\"nodisplay\")\n this.closeoverlay.classList.remove(\"show-overlay\")\n this.toggle.classList.remove(\"hide-menuopen\")\n this.closeIcon.classList.remove(\"menuicon-slide\")\n setTimeout(() => this.removeMenu(), 300);\n \n \n \n } else {\n this.slidemenu.style.display = \"block\"\n setTimeout(() => this.openMenu(), 200)\n \n this.myBody.classList.add(\"overflow\")\n this.searchToggle.classList.add(\"nodisplay\")\n this.languageselect.classList.add(\"nodisplay\")\n this.closeoverlay.classList.add(\"show-overlay\")\n this.toggle.classList.add(\"hide-menuopen\")\n \n \n \n \n let i = 0;\n (function droplinks(i) {\n setTimeout(function(){\n \n if(i < links.length - 1) droplinks(i+1)\n links[i].classList.add(\"link-fadein\")\n }, 120);\n })(i)\n }\n \n }\n openMenu() {\n this.slidemenu.classList.add(\"navigationslide\")\n this.closeIcon.classList.add(\"menuicon-slide\")\n }\n removeMenu() {\n this.slidemenu.style.display = \"none\"\n }\n\n searchanimate() {\n if (this.searchOverlay.classList.contains(\"search-slidedown\")) {\n this.searchOverlay.classList.remove(\"search-slidedown\")\n this.myBody.classList.remove(\"overflow\")\n this.myHtml.classList.remove(\"overflow\")\n this.searchToggle.classList.remove(\"nodisplay\")\n this.searchclose.classList.remove(\"search-close-slide\")\n this.searchexplainer.classList.remove(\"explainer-slide\")\n setTimeout(() => this.removeSearch(), 300)\n } else {\n this.searchOverlay.style.display = \"block\"\n setTimeout(() => this.openSearch(), 200)\n this.myBody.classList.add(\"overflow\")\n this.myHtml.classList.add(\"overflow\")\n this.searchToggle.classList.add(\"nodisplay\")\n \n \n \n }\n }\n removeSearch() {\n this.searchOverlay.style.display = \"none\"\n }\n openSearch() {\n \n this.searchOverlay.classList.add(\"search-slidedown\")\n this.searchclose.classList.add(\"search-close-slide\")\n this.searchexplainer.classList.add(\"explainer-slide\")\n setTimeout(() => this.searchFocus(), 500)\n \n }\n searchFocus () {\n this.searchInput.focus();\n this.searchInput.addEventListener('input', this.updateValue)\n }\n updateValue(e) {\n let searchParameter = e.target.value;\n\tlet searchUrl = e.target.getAttribute(\"data-autocomplete-url\");\n fetch(searchUrl + searchParameter)\n .then(res => res.json())\n .then(data => this.createList(data))\n\n \n }\n createList(data) {\n const suggestionList = `
`\n this.searchList.innerHTML = suggestionList\n\n if(this.searchInput.value.length < 1) {\n this.searchList.style.display = \"none\"\n this.searchlabel.style.opacity = 1;\n } else if(this.searchInput.value.length > 1){\n this.searchList.style.display = \"block\"\n this.searchlabel.style.opacity = 0;\n }\n this.interactiveEvents()\n }\n createListElements(data) {\n const getlistItems = data.suggestions.map(item => {\n return`\n
  • ${item}
  • `\n }).join(\"\")\n return getlistItems;\n }\n interactiveEvents() {\n const Items = this.searchList.querySelectorAll(\"li\")\n const itemsArr = Array.from(Items);\n itemsArr.forEach( item => {\n item.addEventListener(\"click\", event => {\n const itemValue = item.textContent;\n this.searchInput.value = itemValue;\n this.submitbutton.click();\n })\n })\n }\n}","export default class LazyLoad {\n constructor(element) {\n this.el = element\n this.init()\n }\n \n init() {\n \n var pageLazyLoad = new LazyLoad({\n elements_selector: \"[loading=lazy]\",\n use_native: true // ← enables hybrid lazy loading\n });\n console.log(pageLazyLoad)\n }\n }\n ","export default class Magic {\n constructor(element) {\n this.el = element\n this.title = this.el.querySelector('[data-title]')\n this.content = this.el.querySelector('[data-content]')\n this.linkTop = this.el.querySelector('[data-toplink]')\n this.linkBottom = this.el.querySelector('[data-bottomlink]')\n this.extraLink = this.el.querySelector('[data-extralink]')\n this.extractcontent = this.extractcontent.bind(this)\n this.init()\n }\n \n init() {\n \n this.extractcontent(); \n console.log(\"active\")\n \n \t// Init ScrollMagic\n\tvar controller = new ScrollMagic.Controller()\n\n\t// build a scene\n\tvar slidein = new ScrollMagic.Scene({\n triggerElement: '.contact-static',\n offset: '790',\n reverse: true\n\t})\n .setClassToggle('.contact-fixed', 'fade-in') // add class to project01\n \n\t.addIndicators({\n\t\tname: 'slide fixed-bar in',\n\t\tcolorTrigger: 'white',\n\t\tindent: 200,\n\t\tcolorStart: '#75C695'\n\t}) \n .addTo(controller)\n \n // build a scene\n\tvar slideout = new ScrollMagic.Scene({\n triggerElement: 'footer',\n offset: '-450',\n reverse: true\n\t})\n .setClassToggle('.contact-fixed', 'fade-out') // add class to project01\n \n\t.addIndicators({\n\t\tname: 'slide fixed-bar out',\n\t\tcolorTrigger: 'white',\n\t\tindent: 200,\n\t\tcolorStart: '#75C695'\n\t}) \n\t.addTo(controller)\n\n}\n\nextractcontent() {\n console.log(\"extracting\")\n\n const insertLinkTop = this.linkTop.innerHTML\n const insertLinkBottom = this.linkBottom.innerHTML\n const insertTitle = this.title.innerHTML\n const insertExtraLink = this.extraLink.innerHTML\n console.log(insertLinkTop)\n \n const fixedContact = `
    \n
    \n
    \n
    \n ${insertTitle}\n
    \n
    \n
    \n
    \n ${insertLinkTop}\n
    \n
    \n
    \n
    \n ${insertLinkBottom}\n
    \n
    \n
    \n
    \n `\ndocument.querySelector(\".contact-fixed\").innerHTML = `${fixedContact}`\n console.log(fixedContact)\n}\n\n}","export default class GlobalSearchComponent {\n constructor(element) {\n this.el = element\n\tthis.searchbutton = this.el.querySelector(\".search-submit\")\n\tthis.searchtext = this.el.querySelector(\"#search\")\n this.init()\n }\n\n init() {\n \n\tif(this.searchbutton) {\n\t\t\n\t\tthis.searchbutton.addEventListener(\"click\", event => {\n\t\t\t\n\t\t\tif(this.searchtext) {\n\t\t\t\tif(this.searchtext.value) {\n\t\t\t\t\t\n\t\t\t\t\t//get sc_lang query string if exists\n\t\t\t\t\tvar lang = getParameterByName('sc_lang');\n\t\t\t\t\tvar buildQuery = \"\";\n\t\t\t\t\t\n\t\t\t\t\tif(lang) {\n\t\t\t\t\t\tbuildQuery = \"?query=\" + this.searchtext.value + \"&sc_lang=\" + lang;\n\t\t\t\t\t} \n\t\t\t\t\telse {\n\t\t\t\t\t\t\n\t\t\t\t\t\tbuildQuery = \"?query=\" + this.searchtext.value;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\twindow.location.href = \"/soeg\" + buildQuery;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\t\n\t\t});\n\t\t\n\t\t//return press event\n\t\tthis.searchtext.addEventListener(\"keyup\", event => {\n\t\t\tif (event.keyCode === 13) {\n\t\t\t// Cancel the default action, if needed\n\t\t\t\tevent.preventDefault();\n\t\t\t// Trigger the button element with a click\n\t\t\t\tthis.searchbutton.click();\n\t\t\t}\t\n\t\t});\n\t}\n\t\n }\n}\n\nfunction getParameterByName(name, url) {\n if (!url) url = window.location.href;\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\n var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),\n results = regex.exec(url);\n if (!results) return null;\n if (!results[2]) return '';\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n}\n\n","export default class TestModule {\n constructor(element) {\n this.el = element\n this.buildpages = this.buildpages.bind(this)\n this.fetchdata = this.fetchdata.bind(this)\n this.previous = this.el.querySelectorAll(\".previous\")\n this.next = this.el.querySelectorAll(\".next\")\n this.retry = this.el.querySelector(\".retry\")\n this.testcontainer = this.el.querySelector(\".test-container\")\n this.previousslide = this.previousslide.bind(this)\n this.nextslide = this.nextslide.bind(this)\n this.calculateResult = this.calculateResult.bind(this)\n this.init()\n }\n \n init() {\n\t\t\n this.fetchdata()\n \n }\n\n fetchdata() {\n\t\t\n\t\t\n\t\tvar url =\"/api/quizapi/getquizbyidlang\";\n\t\t\n\t\t\t\t\n\tvar formData = {\n\t\t\"id\" : this.el.querySelector(\"#pageiden\").value,\n\t\t\"lang\" : this.el.querySelector(\"#pagelang\").value\n\t};\n\t\t\n\t\t\n fetch(url, {\n method: \"Post\",\n cache: \"no-cache\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n\t\t\tbody: JSON.stringify(formData)\t\t\t\n\t\t\t\n })\n .then(response => {\n return response.json();\n })\n .then(json => {\n \n this.buildpages(json)\n \n })\n .catch(e => { });\n }\n buildpages(json) {\n \n\t var nextlbl = this.el.querySelector(\"#lblnext\").value;\n\t\tvar backlbl = this.el.querySelector(\"#lblback\").value;\n\t\tvar aflbl = this.el.querySelector(\"#lblaf\").value;\n\t\tvar questionlbl = this.el.querySelector(\"#lblquestion\").value;\n\t var tryagainLbl = this.el.querySelector(\"#lbltryagain\").value;\n\t \n const htmltemplate = json.quizasjson.Questions\n .map((item, index) => {\n let indexnumber = index\n\t\t\t\n return `\n
    \n\t\t

    ${questionlbl} ${index+1} ${aflbl} ${json.quizasjson.Questions.length}

    \n

    ${item.QuestionText}\n

    \n \n \n \n \n\t\t\n
    \n \n `;\n })\n .join(\"\");\n\t\t\n\t\t\n\t\tconst startslide = `\n
    \n

    ${json.quizasjson.Intro.Title}

    \n

    ${json.quizasjson.Intro.Description}

    \n \n
    \n\t\t\t\n `\n\n\n this.testcontainer.innerHTML = startslide + htmltemplate;\n \n let radiobuttons = this.el.querySelectorAll(\".radiobutton\");\n\n radiobuttons.forEach(radio =>{\n radio.addEventListener(\"change\", event =>{\n let thisBox = radio.closest(\".question\");\n let thisNextButton = thisBox.querySelector(\".next\")\n thisNextButton.disabled = false;\n \n })\n })\n \n let next = this.el.querySelectorAll(\".next\") \n let previous = this.el.querySelectorAll(\".previous\")\n let current = this.el.querySelector(\"[data-counter='0']\")\n \n\t\tvar count = 0;\n\t\t\n current.style.display = \"block\"\n next.forEach(button => {\n button.addEventListener(\"click\", event =>{\n count = count +1;\n\t\t\t\t\n\t\t\t\t//console.log(\"json.quizasjson.Questions.length \" + json.quizasjson.Questions.length)\n\t\t\t\t//console.log(\"button.dataset.present \" + button.dataset.present)\n\t\t\t\t//console.log(\"current score: \" + this.calculateResult(radiobuttons))\n\t\t\t\t//console.log(tryagainLbl)\n\t\t\t\t//console.log(\"count: \" + count)\n if (json.quizasjson.Questions.length == button.dataset.present) {\n\t\t\t\t\n\t\t\t\t\tvar numOf = json.quizasjson.Questions.length +1;\n\t\t\t\t\n let score = this.calculateResult(radiobuttons)\n //console.log(\"before showresults\")\n const showresults = json.quizasjson.Results\n .filter(item => score >= item.RangeFrom && score <= item.RangeTo).map(item => {\n return`\n
    \n

    ${item.Title}

    \n

    ${item.Infomation}

    \n \n
    \n `;\n })\n .join(\"\");\n \n\t\t\t\t\t//console.log(\"json.quizasjson.Results \" + json.quizasjson.Results.length)\n\t\t\t\t\t//console.log(\"showresults \" + showresults.length)\n\t\t\t\t\t\n this.testcontainer.innerHTML = this.testcontainer.innerHTML + showresults\n \n setTimeout(() => this.nextslide(button.dataset.next, button.dataset.present), 300)\n\n let retry = this.el.querySelector(\".retry\")\n\n\t\t\t\t\t//console.log(\"retry: \" + retry)\n\n\t\t\t\t\tvar datacounterstring = \"[data-counter='\" + numOf+ \"']\"\n\n retry.addEventListener(\"click\", event => {\n\t\t\t\t\t\t\n radiobuttons.forEach(radbutton => {\n radbutton.checked = false;\n \n let centerSlide = document.querySelector(\"[data-counter='0']\");\n let alignRightSlide = document.querySelector(datacounterstring);\n\n setTimeout(function(){\n centerSlide.classList.remove(\"left\");\n centerSlide.classList.add(\"center\");\n\n alignRightSlide.classList.remove(\"center\");\n alignRightSlide.classList.add(\"right\");\n }, 400)\n \n \n //console.log('radbutton.checked: ', radbutton.checked);\n })\n setTimeout(() => this.init(), 300)\n \n })\n \n \n }else{\n this.nextslide(button.dataset.next, button.dataset.present)\n }\n\n \n })\n })\n\n previous.forEach(button => {\n button.addEventListener(\"click\", event => {\n this.previousslide(button.dataset.previous, button.dataset.present)\n })\n })\n \n }\n nextslide(nextId, presentId) {\n\n let thisSlide = document.querySelector(\"[data-counter='\"+presentId+\"']\");\n let nextSlide = document.querySelector(\"[data-counter='\"+ nextId +\"']\");\n \n\t\t//console.log(\"presentId: \" + presentId)\n\t\t//console.log(\"nextid: \" + nextId)\n\t\t\n nextSlide.style.display = \"block\"\n setTimeout(function(){\n thisSlide.style.display = \"none\"\n }, 400)\n setTimeout(function(){ thisSlide.classList.add(\"left\");\n thisSlide.classList.remove(\"center\");\n nextSlide.classList.add(\"center\");\n nextSlide.classList.remove(\"right\"); }, 50);\n \n \n }\n \n previousslide(previousId, presentId) {\n let thisSlide = document.querySelector(\"[data-counter='\"+presentId+\"']\");\n let previousSlide = document.querySelector(\"[data-counter='\"+ previousId +\"']\");\n \n previousSlide.style.display = \"block\"\n setTimeout(function(){\n thisSlide.style.display = \"none\"\n }, 400)\n setTimeout(function(){ thisSlide.classList.add(\"right\");\n thisSlide.classList.remove(\"center\");\n previousSlide.classList.add(\"center\");\n previousSlide.classList.remove(\"left\"); }, 50);\n\n \n }\n calculateResult(radiobuttons) {\n let score = 0;\n radiobuttons.forEach(button => {\n if(button.checked) {\n score = score + Number.parseInt(button.value)\n }\n })\n return score;\n }\n }","export default class ToggleModule {\n constructor(element) {\n this.el = element\n this.themebuttons = this.el.querySelectorAll('[data-themebutton]')\n this.themes = this.el.querySelectorAll('[data-theme]')\n this.globallink = this.el.querySelector(\".globallink\")\n this.themetoggler = this.themetoggler.bind(this)\n this.init()\n }\n \n init() {\n if (this.themebuttons.length > 0) {\n this.themebuttons.forEach(button => { \n button.addEventListener(\"click\", event => {\n let themenumber = button.dataset.themebutton\n this.themetoggler(themenumber)\n })\n })\n \n \n \n }\n \n\n}\nthemetoggler(themenumber) {\n this.themebuttons.forEach(button =>{\n \n\n if (button.dataset.themebutton == themenumber){\n button.classList.add(\"active-button\")\n this.globallink.classList.add(\"active-global\")\n }\n else{\n button.classList.remove(\"active-button\")\n \n }\n })\n\n this.themes.forEach(theme => {\n \n\n if(theme.dataset.theme == themenumber) {\n \n theme.style.display = \"block\"\n setTimeout(function(){\n theme.classList.add(\"active-theme\")\n this.globallink.classList.add(\"active-global\")\n }, 200)\n }\n else {\n \n theme.classList.remove(\"active-theme\")\n setTimeout(function(){\n\n theme.style.display = \"none\"\n }, 300)\n \n \n }\n })\n}\n\n}","export default class UserItem {\n constructor(element, data) {\n this.el = element\n this.data = data\n\n this.onClick = this.onClick.bind(this)\n\n this.init()\n }\n\n init() {\n this.el.addEventListener('click', this.onClick)\n }\n\n onClick() {\n console.log('UserItem clicked', this.el.textContent, this.data)\n }\n\n static template(data) {\n const {name} = data\n return `\n
  • ${name}
  • \n `\n }\n}\n","export default class VimeoComponent {\n constructor(element) {\n this.el = element;\n this.playButton = this.el.querySelector(\".video-play\");\n this.playVideo = this.playVideo.bind(this);\n this.pauseVideo = this.pauseVideo.bind(this);\n this.loadVideo = this.loadVideo.bind(this);\n this.videoContainer = this.el.querySelector(\".video-player\");\n\n this.videoID = this.videoContainer.dataset.vimeoId;\n this.videoCover = this.el.querySelector(\".video-cover\");\n this.videoEmbed = this.el.querySelector(\".embed-container\");\n this.observeOnScroll = this.observeOnScroll.bind(this);\n this.vimeoLoadingThumb = this.vimeoLoadingThumb.bind(this);\n\n this.getJson = this.getJson.bind(this);\n this.myShowThumb = this.myShowThumb.bind(this);\n window.showThumb = this.myShowThumb;\n this.getThumb = this.getThumb.bind(this);\n \n this.init();\n }\n\n init() {\n if (this.videoID) {\n this.vimeoLoadingThumb(this.videoID);\n this.loadVideo(this.videoID);\n this.observeOnScroll(this.el, this.videoID);\n this.getJson(this.videoID);\n }\n }\n\n getJson(id) {\n fetch(\"https://vimeo.com/api/v2/video/\" + id + \".json\", {\n method: \"get\"\n })\n .then(function(response) {\n return response.json();\n })\n .then(function(json) {\n this.getThumb(json);\n }.bind(this))\n .catch(function(err) {\n console.log('err: ', err);\n // Error :(\n });\n }\n\n getThumb(json){\n //console.log('thumb json: ', json[0].thumbnail_large);\n this.videoCover.style.backgroundImage =\n \"url('\" + json[0].thumbnail_large + \"')\";\n }\n\n vimeoLoadingThumb(id) {\n //console.log('id: ', id);\n\n var url =\n \"https://vimeo.com/api/v2/video/\" + id + \".json?callback=showThumb\";\n var script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.src = url;\n \n \n this.el.insertBefore(script, this.videoCover);\n }\n\n myShowThumb(data) {\n // this.videoCover.style.backgroundImage =\n // \"url('\" + data[0].thumbnail_large + \"')\";\n }\n\n loadVideo(videoID) {\n var isLoaded = false;\n var options = {\n id: videoID,\n loop: false\n };\n var videoContainer = \"video-\" + videoID;\n var VimeoPlayer = new Vimeo.Player(videoContainer, options);\n\n VimeoPlayer.on(\"loaded\", function() {\n isLoaded = true;\n });\n\n if (this.playButton) {\n this.playButton.addEventListener(\"click\", event => {\n this.videoCover.classList.add(\"active\");\n this.videoEmbed.classList.add(\"active\");\n VimeoPlayer.play();\n });\n } else {\n this.videoEmbed.classList.add(\"active\");\n }\n }\n\n playVideo(videoID) {\n if (this.videoCover) {\n this.videoCover.classList.add(\"active\");\n }\n this.videoEmbed.classList.add(\"active\");\n var options = {\n id: videoID,\n loop: false\n };\n var videoContainer = \"video-\" + videoID;\n\n var player = new Vimeo.Player(videoContainer, options);\n\n player.play();\n }\n\n observeOnScroll(element, videoID) {\n const observer = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (entry.intersectionRatio * 100 < 50) {\n this.pauseVideo(videoID);\n }\n });\n },\n {\n threshold: [0, 0.25, 0.5, 0.75, 1]\n }\n );\n\n observer.observe(element);\n }\n\n pauseVideo(videoID) {\n var videoContainer = \"video-\" + videoID;\n var PausePlayer = new Vimeo.Player(videoContainer);\n\n PausePlayer.getPaused()\n .then(function(paused) {\n if (!paused) {\n PausePlayer.pause();\n }\n })\n .catch(function(error) {\n // an error occurred\n });\n }\n}\n","export const EventBus = document.body;\n\nexport const EventTypes = Object.freeze({\n ALL_COMPONENTS_READY: 'ALL_COMPONENTS_READY',\n MY_CUSTOM_EVENT: 'MY_CUSTOM_EVENT'\n})\n","// extracted by mini-css-extract-plugin","/*\n * For ES6+ features:\n * Either import '@babel/polyfill' here, or\n * use https://cdn.polyfill.io/v2/polyfill.min.js (default for this project)\n */\n\nimport \"./index.css\";\nimport { EventBus, EventTypes } from \"./consts/const-event-types\";\n\n/*\nTo add new components, import them here and add them to the 'components'-array below.\nAdd an appropriate selectorName for use in DOM (fx:
    ):\n*/\nimport App from \"./components/app/app\";\nimport Header from \"./components/header/header\";\nimport ExampleComponent from \"./components/example-component/example-component\";\nimport UserItem from \"./components/user-item/user-item\";\nimport Magic from \"./components/magic/magic\";\nimport ToggleModule from \"./components/toggle-module/togglemodule\";\nimport TestModule from \"./components/test-module/test-module\";\nimport LazyLoad from \"./components/lazyload/lazyload\";\nimport VimeoComponent from \"./components/vimeo/vimeocomponent\";\nimport Bestilling from \"./components/bestilling/bestilling\";\nimport Fixedcontact from \"./components/contact/fixedcontact\";\nimport CookiedisclaimerComponent from \"./components/cookie/cookiedisclaimer\";\nimport GlobalSearchComponent from \"./components/search-component/search-component\";\nimport Accordion from \"./components/accordion/accordion\";\nimport Basket from \"./components/bestilling/basket\";\n\nconst components = [\n { Class: App, selectorName: \"app\" },\n { Class: Header, selectorName: \"header\" },\n { Class: ExampleComponent, selectorName: \"example-component\" },\n { Class: UserItem, selectorName: \"user-item\" },\n { Class: Magic, selectorName: \"magic\" },\n { Class: ToggleModule, selectorName: \"togglemodule\" },\n { Class: TestModule, selectorName: \"test-module\" },\n { Class: LazyLoad, selectorName: \"lazyload\" },\n { Class: VimeoComponent, selectorName: \"vimeocomponent\" },\n { Class: Bestilling, selectorName: \"bestilling\" },\n { Class: Fixedcontact, selectorName: \"fixedcontact\" },\n { Class: CookiedisclaimerComponent, selectorName: \"cookie-disclaimer\" },\n { Class: GlobalSearchComponent, selectorName: \"global-search\" },\n { Class: Accordion, selectorName: \"accordion\"},\n { Class: Basket, selectorName: \"basket\"}\n \n \n];\n\n/*\n * ComponentInstantiator traverses the DOM-tree and looks for [data-component='] attributes.\n */\nclass ComponentInstantiator {\n constructor() {\n this.createComponents();\n this.dispatchReady();\n return this;\n }\n\n createComponents() {\n this.componentsInstantiated = {};\n\n components.map(component => {\n const nodes = [];\n // select all DOM-nodes with the data-component attribute:\n const nodeItems = [\n ...document.querySelectorAll(\n \"[data-component='\" + component.selectorName + \"']\"\n )\n ];\n\n nodeItems.map(nodeItem => {\n // instantiate component with nodeItem as param:\n nodes.push(new component.Class(nodeItem));\n });\n\n // add to componentsList object:\n if (nodes.length)\n this.componentsInstantiated[component.selectorName] = nodes;\n });\n }\n\n dispatchReady() {\n const event = new CustomEvent(EventTypes.ALL_COMPONENTS_READY);\n EventBus.dispatchEvent(event);\n }\n\n getComponents(selectorName) {\n return selectorName\n ? this.componentsInstantiated[selectorName]\n : this.componentsInstantiated;\n }\n}\n\n/* Make your App accessible via window.App */\nwindow.App = new ComponentInstantiator();\n\n/* Access components list */\n//console.log(\"components on this page\", window.App.getComponents());\n","export const getCookieAcceptance = cname => {\n const name = `${cname}=`\n const cookieArray = document.cookie.split(';')\n\n const cValues = cookieArray.map(cookie => {\n while (cookie.charAt(0) === ' ') {\n cookie = cookie.substring(1)\n }\n\n if (cookie.indexOf(name) === 0) {\n return cookie.substring(name.length, cookie.length)\n }\n return null\n })\n\n const trueValues = cValues.filter(v => v === 'true')\n const v = trueValues[0]\n return Boolean(v === 'true')\n}\n\nexport const setCookie = (cname, cvalue, exdays) => {\n const d = new Date()\n d.setTime(d.getTime() + (exdays*24*60*60*1000))\n const expires = \"expires=\"+ d.toUTCString()\n document.cookie = `${cname}=${cvalue};${expires};path=/`\n}","export const fetchSomeData = () => {\n return fetch('https://api.github.com/repos/javascript-tutorial/en.javascript.info/commits')\n .then(res => res)\n .then(res => res.json())\n .catch(error => console.log(error))\n}\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACrtBA;;;AACA;AAAA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AAEA;;;;AAIA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AAEA;AAEA;AACA;AACA;;;AACA;AACA;AACA;AACA;AAEA;AACA;;;AAEA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AAEA;AAEA;;;;;;;;;;AAGA;AACA;AACA;;AAEA;AACA;;AADA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AADA;AAAA;AAGA;AACA;AACA;;;;;;AAEA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AAAA;AAAA;AACA;AACA;AAGA;AACA;AAAA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AAEA;AACA;AAEA;AAAA;AACA;AAIA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACnHA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;;;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAHA;AAAA;AAaA;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;AC/BA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AAAA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAIA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAGA;AAEA;AAKA;AAGA;AAIA;;;AACA;AACA;AACA;AACA;AACA;AAEA;;;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;ACrHA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAHA;AAAA;AACA;AAUA;AACA;AACA;AACA;AAHA;AAAA;AAUA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AAsBA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1EA;AACA;AACA;AACA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;;;AACA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;;;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTA;AACA;AACA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;;;AAAA;AAAA;AACA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AAGA;AAEA;AACA;AAGA;AAEA;AAGA;AACA;AACA;AAEA;;;AAEA;AAAA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAIA;AACA;AACA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAKA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;;;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAIA;AACA;;;AACA;AACA;AACA;;;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAEA;;;AACA;AACA;AACA;AACA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAGA;;;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;;;AACA;AACA;AACA;AAEA;AACA;AACA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACpNA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;;;AACA;AAEA;AACA;AACA;AACA;AAHA;AAIA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACbA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAHA;AAAA;AAQA;AACA;AACA;AACA;AAJA;AACA;AAQA;AACA;AACA;AACA;AAHA;AAAA;AAQA;AACA;AACA;AACA;AAJA;AAQA;;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAoBA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACrFA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;;AACA;AAAA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;AA9CA;AACA;AAgDA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACzDA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AAEA;AAEA;;;AAEA;AAAA;AACA;AAEA;AAGA;AACA;AACA;AAFA;AAMA;AACA;AACA;AACA;AACA;AADA;AAGA;AANA;AAUA;AACA;AAGA;AAEA;AAEA;;;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAMA;AAAA;AAaA;AAIA;AAUA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAOA;AAIA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAIA;AACA;AAAA;AAAA;AAEA;AAGA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;;;AACA;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AAGA;;;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AAGA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AC/OA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAIA;AAGA;;;AACA;AAAA;AACA;AAAA;AAGA;AACA;AACA;AAAA;AACA;AAEA;AAEA;AACA;AAEA;AAGA;AAEA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;AAGA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AC7DA;;;AACA;AAAA;AACA;AAAA;AACA;AAEA;AAEA;AACA;AACA;;;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AAAA;AAEA;AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AADA;AAIA;AACA;AAEA;AACA;AAEA;AAEA;AACA;;;AAEA;AACA;AACA;AAEA;;;AAEA;AACA;AAEA;AAEA;AACA;AACA;AAGA;AACA;;;AAEA;AAEA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAFA;AAIA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAFA;AAIA;AAEA;AAEA;AACA;;;AAEA;AAAA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AADA;AAKA;AACA;;;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAGA;AACA;;;;;;;;;;;;;;;;;;AC9IA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AAFA;;;;;;;;;;;ACFA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;AAMA;AACA;AAEA;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAKA;;;;AAGA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;;;AACA;AAAA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AAGA;;;;;AAGA;AACA;AACA;AADA;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;AClGA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzBA;AAAA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;;;;;;;;;;;;;;;;A","sourceRoot":""}