{"version":3,"file":"sak-de1a4373140d8807cb73.esm.js","mappings":"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","sources":["webpack://dh-instuliv/webpack/runtime/import chunk loading","webpack://dh-instuliv/./node_modules/bezier-easing/src/index.js","webpack://dh-instuliv/webpack/bootstrap","webpack://dh-instuliv/webpack/runtime/compat get default export","webpack://dh-instuliv/webpack/runtime/define property getters","webpack://dh-instuliv/webpack/runtime/ensure chunk","webpack://dh-instuliv/webpack/runtime/get javascript chunk filename","webpack://dh-instuliv/webpack/runtime/get mini-css chunk filename","webpack://dh-instuliv/webpack/runtime/global","webpack://dh-instuliv/webpack/runtime/hasOwnProperty shorthand","webpack://dh-instuliv/webpack/runtime/make namespace object","webpack://dh-instuliv/webpack/runtime/publicPath","webpack://dh-instuliv/./node_modules/@u-elements/u-details/dist/u-details.js","webpack://dh-instuliv/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://dh-instuliv/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://dh-instuliv/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://dh-instuliv/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://dh-instuliv/./node_modules/@nrk/dh-basis-common/dist/index.esm.js","webpack://dh-instuliv/./node_modules/@nrk/dh-basis-levende-stillbilde/dist/index.esm.js","webpack://dh-instuliv/./node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js","webpack://dh-instuliv/./node_modules/@babel/runtime/helpers/esm/assertClassBrand.js","webpack://dh-instuliv/./node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js","webpack://dh-instuliv/./node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js","webpack://dh-instuliv/./node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js","webpack://dh-instuliv/./node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js","webpack://dh-instuliv/./node_modules/@nrk/dh-basis-mixins/dist/index.esm.js","webpack://dh-instuliv/./src/lib/safe-define.ts","webpack://dh-instuliv/./src/common/melding/melding.module.css?6566","webpack://dh-instuliv/./src/modules/sak/sak.component.ts","webpack://dh-instuliv/./src/modules/sak/avatarer/posisjoner-bunn.module.css?8062","webpack://dh-instuliv/./src/common/melding/melding.mixin.ts","webpack://dh-instuliv/./src/modules/sak/avatarer/easing/easing-functions.ts","webpack://dh-instuliv/./src/modules/sak/avatarer/avatarer.module.css?6dc5","webpack://dh-instuliv/./src/modules/sak/avatarer/animasjoner/intro-animasjon.ts","webpack://dh-instuliv/./src/modules/sak/avatarer/avatarer.ts","webpack://dh-instuliv/./src/modules/sak/intro/meldinger/meldinger.module.css?d60a","webpack://dh-instuliv/./src/modules/sak/intro/intro.ts","webpack://dh-instuliv/./src/modules/sak/innhold.component.ts","webpack://dh-instuliv/./src/modules/sak/valgbar-historie/valgbar-historie.ts","webpack://dh-instuliv/./src/modules/sak/lurer-du-paa/lurer-du-paa.ts","webpack://dh-instuliv/./src/modules/sak/grafer/common/graf-element.ts","webpack://dh-instuliv/./src/common/graf/interaktiv-graf.ts","webpack://dh-instuliv/./src/modules/sak/brodtekst/brodtekst.ts","webpack://dh-instuliv/./src/common/vis-mer/vis-mer.ts","webpack://dh-instuliv/./src/modules/sak/client.ts","webpack://dh-instuliv/./src/lib/get-element-tag.ts","webpack://dh-instuliv/./src/modules/sak/config.ts"],"sourcesContent":["// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t434: 0\n};\n\nvar installChunk = (data) => {\n\tvar {ids, modules, runtime} = data;\n\t// add \"modules\" to the modules object,\n\t// then flag all \"ids\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tfor(moduleId in modules) {\n\t\tif(__webpack_require__.o(modules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = modules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\tfor(;i < ids.length; i++) {\n\t\tchunkId = ids[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[ids[i]] = 0;\n\t}\n\n}\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// import() chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[1]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = import(\"./\" + __webpack_require__.u(chunkId)).then(installChunk, (e) => {\n\t\t\t\t\t\tif(installedChunks[chunkId] !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t});\n\t\t\t\t\tvar promise = Promise.race([promise, new Promise((resolve) => (installedChunkData = installedChunks[chunkId] = [resolve]))])\n\t\t\t\t\tpromises.push(installedChunkData[1] = promise);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no external install chunk\n\n// no on chunks loaded","/**\n * https://github.com/gre/bezier-easing\n * BezierEasing - use bezier curve for transition easing function\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\n */\n\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\nvar NEWTON_ITERATIONS = 4;\nvar NEWTON_MIN_SLOPE = 0.001;\nvar SUBDIVISION_PRECISION = 0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\n\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\nvar float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }\nfunction B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }\nfunction C (aA1) { return 3.0 * aA1; }\n\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nfunction calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; }\n\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\nfunction getSlope (aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); }\n\nfunction binarySubdivide (aX, aA, aB, mX1, mX2) {\n var currentX, currentT, i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n return currentT;\n}\n\nfunction newtonRaphsonIterate (aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\n\nfunction LinearEasing (x) {\n return x;\n}\n\nmodule.exports = function bezier (mX1, mY1, mX2, mY2) {\n if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n }\n\n if (mX1 === mY1 && mX2 === mY2) {\n return LinearEasing;\n }\n\n // Precompute samples table\n var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n\n function getTForX (aX) {\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n\n // Interpolate to provide an initial guess for t\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n\n var initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n\n return function BezierEasing (x) {\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + (chunkId === 579 ? \"article-player\" : chunkId) + \"-chunk-\" + {\"480\":\"efbf6cc1ca264769bf77\",\"579\":\"2f481d2aa0b70f1a6df6\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"https://static.nrk.no/dh/module/instuliv/static/\";","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\n\n// ../utils.ts\nvar IS_BROWSER = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.navigator !== \"undefined\";\nvar ARIA_CONTROLS = \"aria-controls\";\nvar ARIA_EXPANDED = \"aria-expanded\";\nvar DISPLAY_BLOCK = \":host(:not([hidden])) { display: block }\";\nvar UHTMLElement = typeof HTMLElement === \"undefined\" ? class {\n} : HTMLElement;\nvar bind = (element, rest, action) => rest[0].split(\",\").forEach((type) => {\n rest[0] = type;\n Element.prototype[`${action}EventListener`].apply(element, rest);\n});\nvar on = (element, ...rest) => bind(element, rest, \"add\");\nvar off = (element, ...rest) => bind(element, rest, \"remove\");\nfunction attr(element, name, value) {\n if (element instanceof Element) {\n if (typeof name === \"object\")\n Object.entries(name).map(([name2, value2]) => attr(element, name2, value2));\n else if (value === void 0)\n return element.getAttribute(name);\n else if (value === null)\n element.removeAttribute(name);\n else if (element.getAttribute(name) !== `${value}`)\n element.setAttribute(name, `${value}`);\n }\n}\nvar observers = /* @__PURE__ */ new WeakMap();\nvar mutationObserver = (element, options) => {\n if (options === void 0)\n return observers.get(element);\n try {\n observers.get(element).disconnect();\n observers.delete(element);\n } catch (err) {\n }\n if (options) {\n const observer = new MutationObserver(\n (detail) => element.handleEvent({ type: \"mutation\", detail })\n );\n observer.observe(element, options);\n observers.set(element, observer);\n }\n};\nvar asButton = (event) => {\n const isClick = \"key\" in event && (event.key === \" \" || event.key === \"Enter\");\n if (isClick)\n event.preventDefault();\n if (isClick && event.target instanceof HTMLElement)\n event.target.click();\n return isClick;\n};\nvar getRoot = (node) => node.getRootNode();\nvar id = 0;\nvar useId = (el) => el ? el.id || (el.id = `:${el.nodeName.toLowerCase()}${(++id).toString(32)}`) : void 0;\nvar createElement = (tagName, props) => Object.assign(document.createElement(tagName), props);\nvar customElements = {\n define: (name, instance) => !IS_BROWSER || window.customElements.get(name) || window.customElements.define(name, instance)\n};\n\n// u-details.ts\nvar OPEN = \"open\";\nvar USUMMARY_TAG = \"U-SUMMARY\";\nvar _shadowRoot;\nvar UHTMLDetailsElement = class extends UHTMLElement {\n constructor() {\n super();\n __privateAdd(this, _shadowRoot, void 0);\n __privateSet(this, _shadowRoot, this.attachShadow({\n mode: \"closed\",\n slotAssignment: \"manual\"\n // 'manual' slotAssignment so we also can move text nodes into slots\n }));\n __privateGet(this, _shadowRoot).append(\n createElement(\"slot\"),\n // Summary slot\n createElement(\"slot\"),\n // Content slot\n createElement(\"style\", {\n textContent: `\n ${DISPLAY_BLOCK}\n ::slotted(u-summary) { cursor: pointer; display: list-item; counter-increment: list-item 0; list-style: disclosure-closed inside }\n ::slotted(u-summary[${ARIA_EXPANDED}=\"true\"]) { list-style-type: disclosure-open }\n `\n })\n );\n }\n static get observedAttributes() {\n return [OPEN];\n }\n connectedCallback() {\n assignSlots(__privateGet(this, _shadowRoot), this);\n mutationObserver(this, { childList: true });\n on(getSlots(__privateGet(this, _shadowRoot)).content, \"beforematch\", this);\n this.attributeChangedCallback();\n }\n disconnectedCallback() {\n mutationObserver(this, false);\n off(getSlots(__privateGet(this, _shadowRoot)).content, \"beforematch\", this);\n }\n attributeChangedCallback(prop, prev, next) {\n const open = this[OPEN];\n const summary = [...this.children].find((el) => el.nodeName === USUMMARY_TAG);\n const supportsHiddenUntilFound = \"onbeforematch\" in this;\n const { content } = getSlots(__privateGet(this, _shadowRoot));\n attr(summary, {\n [ARIA_CONTROLS]: useId(content),\n [ARIA_EXPANDED]: open\n });\n attr(content, {\n \"aria-hidden\": `${!open}`,\n // Needed to prevent announcing \"group\" when closed in Chrome on Mac\n hidden: open ? null : \"until-found\"\n // Allows browsers to search inside content\n });\n if (supportsHiddenUntilFound)\n content.style.display = open ? \"\" : \"block\";\n if (open && this.name)\n getRoot(this).querySelectorAll(`${this.nodeName}[name=\"${this.name}\"]`).forEach((uDetails) => uDetails === this || (uDetails[OPEN] = false));\n if (prop === OPEN && prev !== next)\n this.dispatchEvent(new Event(\"toggle\"));\n }\n handleEvent({ type }) {\n if (type === \"beforematch\")\n this[OPEN] = true;\n if (type === \"mutation\")\n assignSlots(__privateGet(this, _shadowRoot), this);\n }\n get open() {\n return attr(this, OPEN) !== null;\n }\n set open(open) {\n attr(this, OPEN, open ? \"\" : null);\n }\n get name() {\n return attr(this, \"name\") || \"\";\n }\n set name(name) {\n attr(this, \"name\", `${name}`);\n }\n};\n_shadowRoot = new WeakMap();\nvar UHTMLSummaryElement = class extends UHTMLElement {\n connectedCallback() {\n attr(this, { role: \"button\", tabIndex: 0 });\n on(this, \"click,keydown\", this);\n }\n disconnectedCallback() {\n off(this, \"click,keydown\", this);\n }\n handleEvent(event) {\n const details = this.parentElement;\n if (event.type === \"keydown\")\n asButton(event);\n if (event.type === \"click\" && details instanceof UHTMLDetailsElement)\n details[OPEN] = !details[OPEN];\n }\n};\ncustomElements.define(\"u-details\", UHTMLDetailsElement);\ncustomElements.define(\"u-summary\", UHTMLSummaryElement);\nfunction getSlots(shadow) {\n const slots = [...shadow?.children || []];\n return { summary: slots[0], content: slots[1] };\n}\nfunction assignSlots(shadow, self) {\n const { summary, content } = getSlots(shadow);\n let contents = [];\n let summarys = [];\n self.childNodes.forEach((node) => {\n if (node.nodeName === USUMMARY_TAG)\n summarys.push(node);\n else if (node instanceof Element || node instanceof Text)\n contents.push(node);\n });\n summary.assign(...summarys);\n content.assign(...contents);\n}\n\nexport { UHTMLDetailsElement, UHTMLSummaryElement };\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import _defineProperty from '@babel/runtime/helpers/defineProperty';\n\n/* eslint-disable compat/compat */\nfunction getDefaultRoot() {\n /*\n Use document if supported\n IntersectionObserver will otherwise default to top level document,\n and IntersectionObserver will not work as expected in an iframe.\n https://github.com/w3c/IntersectionObserver/issues/372\n */\n\n /*\n Safari does not throw error on root: document, but does not trigger events as expected\n returning null for now until better feature detection is possible\n */\n return null;\n\n /*\n try {\n // eslint-disable-next-line no-new\n new IntersectionObserver(() => {}, { root: document })\n return document\n } catch (e) {\n return null\n }\n */\n}\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar defaultConfig = {\n rootMargin: '0px 0px 0px 0px',\n threshold: [0, 0.5, 1],\n root: getDefaultRoot()\n};\nclass ElementIntersectionObserver {\n constructor(elements, onChange, config) {\n _defineProperty(this, \"intersections\", void 0);\n _defineProperty(this, \"elements\", void 0);\n this.elements = elements.slice(0);\n this.intersections = elements.map(target => ({\n target,\n isIntersecting: false,\n ratio: null\n }));\n this.intersectionObserver = new IntersectionObserver(entries => {\n var intersections = this.intersections.slice(0);\n entries.forEach(entry => {\n var idx = elements.indexOf(entry.target);\n intersections.splice(idx, 1, {\n target: entry.target,\n isIntersecting: entry.isIntersecting,\n ratio: entry.intersectionRatio\n });\n });\n this.intersections = intersections;\n onChange(this.intersections);\n }, _objectSpread(_objectSpread({}, defaultConfig), config));\n elements.forEach(elm => this.intersectionObserver.observe(elm));\n }\n disconnect() {\n // Unregister trigger elements\n this.elements.forEach(elm => this.intersectionObserver.unobserve(elm));\n\n // Disconnect intersection observer\n this.intersectionObserver.disconnect();\n }\n}\n\nfunction toggleAttribute(el, name, boolValue) {\n if (!el) {\n return;\n }\n var nextValue;\n if (typeof boolValue !== 'undefined') {\n nextValue = !!boolValue;\n } else {\n nextValue = el.hasAttribute(name);\n }\n if (nextValue) {\n el.setAttribute(name, '');\n } else {\n el.removeAttribute(name);\n }\n}\nfunction setAttribute(el, name, nextValue) {\n if (!el) {\n return;\n }\n if (nextValue) {\n el.setAttribute(name, nextValue);\n } else {\n el.removeAttribute(name);\n }\n}\nvar closest = (() => {\n var proto = typeof window === 'undefined' ? {} : window.Element.prototype;\n var match = proto.matches || proto.msMatchesSelector || proto.webkitMatchesSelector;\n if (proto.closest) {\n return (el, css) => el.closest(css);\n } else {\n return (el, css) => {\n for (; el; el = el.parentElement) if (match.call(el, css)) return el;\n return null;\n };\n }\n})();\nfunction addStyle(nodeName, css) {\n var key = \"style-\".concat(nodeName.toLowerCase());\n var min = css.replace(/\\/\\*[^!][^*]*\\*\\//g, '').replace(/\\s*(^|[:;,{}]|$)\\s*/g, '$1');\n document.getElementById(key) || document.head.insertAdjacentHTML('afterbegin', \"\"));\n}\nfunction toArray(nodeList) {\n return [].slice.call(nodeList);\n}\nfunction dispatchEvent(element, name) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var ignore = \"prevent_recursive_dispatch_maximum_callstack\".concat(name);\n var event;\n if (element[ignore]) return true;\n // We are already processing this event, so skip sending a new one\n else element[ignore] = true; // Add name to dispatching ignore\n\n if (typeof window.CustomEvent === 'function') {\n event = new window.CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail\n });\n } else {\n event = document.createEvent('CustomEvent');\n event.initCustomEvent(name, true, true, detail);\n }\n // IE reports incorrect event.defaultPrevented\n // but correct return value on element.dispatchEvent\n var result = element.dispatchEvent(event);\n element[ignore] = null; // Remove name from dispatching ignore\n\n return result; // Follow W3C standard for return value\n}\n\nfunction easeOutQuint(t) {\n return 1 + --t * t * t * t * t;\n}\nclass VerticalScroll {\n constructor(container) {\n _defineProperty(this, \"container\", void 0);\n this.container = container;\n }\n cancel() {\n this._cancelled = true;\n }\n to(top) {\n var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;\n var callback = arguments.length > 2 ? arguments[2] : undefined;\n var from = this.container.scrollTop;\n var distance = top - from;\n var startTime = null;\n var loop = currentTime => {\n if (this._cancelled) {\n return;\n }\n if (!startTime) {\n startTime = currentTime - 1;\n }\n var timeElapsed = currentTime - startTime;\n if (timeElapsed < duration) {\n this.container.scrollTop = from + distance * easeOutQuint(timeElapsed / duration);\n window.requestAnimationFrame(loop);\n } else {\n this.container.scrollTop = top;\n callback && callback();\n }\n };\n\n // eslint-disable-next-line compat/compat\n window.requestAnimationFrame(loop);\n }\n}\nclass HorizontalScroll {\n constructor(container) {\n _defineProperty(this, \"container\", void 0);\n this.container = container;\n }\n cancel() {\n this._cancelled = true;\n }\n to(left) {\n var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;\n var callback = arguments.length > 2 ? arguments[2] : undefined;\n var from = this.container.scrollLeft;\n var distance = left - from;\n var startTime = null;\n var loop = currentTime => {\n if (this._cancelled) {\n return;\n }\n if (!startTime) {\n startTime = currentTime - 1;\n }\n var timeElapsed = currentTime - startTime;\n if (timeElapsed < duration) {\n this.container.scrollLeft = from + distance * easeOutQuint(timeElapsed / duration);\n window.requestAnimationFrame(loop);\n } else {\n this.container.scrollLeft = left;\n callback && callback();\n }\n };\n\n // eslint-disable-next-line compat/compat\n window.requestAnimationFrame(loop);\n }\n}\n\nfunction testReducedMotion() {\n if (typeof window !== 'undefined') {\n return !!window.matchMedia && window.matchMedia('(prefers-reduced-motion)').matches;\n }\n return false;\n}\n\nvar MAX_SAFE_INTEGER = 9007199254740991;\nfunction withinRange(current) {\n var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var stop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : MAX_SAFE_INTEGER;\n return current >= start && current <= stop;\n}\nfunction withinStops(currentTime, stops, targetStop) {\n var nrOfStops = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n var uniqueStops = stops.filter(unique);\n var targetTime = stops[targetStop];\n var prevTime = uniqueStops[uniqueStops.indexOf(targetTime) - nrOfStops];\n var nextTime = uniqueStops[uniqueStops.indexOf(targetTime) + nrOfStops];\n return withinRange(currentTime, prevTime, nextTime);\n}\nfunction unique(value, index, self) {\n return self.indexOf(value) === index;\n}\n\n/*\n * 'loading=\"lazy\"' is defined in terms of IntersectionObserver and the initial root.\n * As a result images with 'loading=\"lazy\"' inside a scroll container will not load\n * until they at least have one pixel visible in the viewport.\n *\n * This will hopefully fixed in a future version of the spec:\n * https://github.com/w3c/IntersectionObserver/issues/431\n *\n * scroll-container-lazy-load observes images and a scroll container.\n * Once images are close to intersecting it will change 'loading=\"lazy\"' to 'loading=\"eager\"'.\n * */\nfunction loadImage(image) {\n if (image.loading === 'lazy') {\n image.loading = 'eager';\n }\n}\nfunction connectScrollContainerLazyLoad(container, images) {\n var containerIntersecting = false;\n var deferredImages = [];\n\n // eslint-disable-next-line compat/compat\n var containerObserver = new IntersectionObserver(entries => {\n containerIntersecting = entries === null || entries === void 0 ? void 0 : entries[0].isIntersecting;\n if (containerIntersecting) {\n deferredImages.forEach(image => loadImage(image));\n deferredImages = [];\n }\n }, {\n root: getDefaultRoot(),\n threshold: [0.0]\n });\n containerObserver.observe(container);\n\n // eslint-disable-next-line compat/compat\n var imageObserver = new IntersectionObserver(entries => {\n for (var entry of entries) {\n if (entry.isIntersecting) {\n var image = entry.target;\n imageObserver.unobserve(image);\n if (containerIntersecting) {\n loadImage(image);\n } else {\n /* Defer loading of if the container is not intersecting the viewport */\n deferredImages.push(image);\n }\n }\n }\n }, {\n root: container,\n rootMargin: '300px',\n threshold: 0.0\n });\n for (var image of images) {\n imageObserver.observe(image);\n }\n return () => {\n containerObserver.disconnect();\n imageObserver.disconnect();\n };\n}\n\nfunction debounce(fn, delay) {\n var timeout;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n clearTimeout(timeout);\n timeout = setTimeout(() => fn(...args), delay);\n };\n}\n\nexport { ElementIntersectionObserver, HorizontalScroll, VerticalScroll, addStyle, closest, connectScrollContainerLazyLoad, debounce, dispatchEvent, setAttribute, testReducedMotion, toArray, toggleAttribute, withinRange, withinStops };\n//# sourceMappingURL=index.esm.js.map\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport { dispatchEvent, testReducedMotion, toArray, toggleAttribute } from '@nrk/dh-basis-common';\n\nvar STATE_ATTR = 'data-state';\nvar VIEWPORT_POSITION_ATTR = 'data-viewport-position';\nvar DISABLE_FORCED_ATTRIBUTES_ATTR = 'disable-forced-attributes';\nvar IS_PAUSED = 'is-paused';\nvar AUTOPLAY_BLOCKED = 'autoplay-blocked';\nvar READY_STATE = {\n HAVE_NOTHING: 0,\n HAVE_METADATA: 1,\n HAVE_CURRENT_DATA: 2,\n HAVE_FUTURE_DATA: 3,\n HAVE_ENOUGH_DATA: 4 // Can play through\n};\nvar isVisible = child => !!child.offsetParent;\nclass LevendeStillbilde extends HTMLElement {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"_disconnecting\", false);\n _defineProperty(this, \"_visibleVideoElement\", void 0);\n _defineProperty(this, \"_handlePlayChange\", e => {\n if (e.type === 'play') {\n dispatchEvent(this, 'dh-basis-autoplay-succeeded');\n }\n if (e.target === this._visibleVideoElement) {\n this.isPaused = this._visibleVideoElement.paused;\n }\n });\n _defineProperty(this, \"_updatePlayState\", () => {\n if (!this._visibleVideoElement) {\n return;\n }\n if (this._shouldPlay()) {\n this._playVideo();\n } else {\n this._pauseVideo();\n }\n });\n _defineProperty(this, \"_handleResize\", () => {\n this._updateVisibleVideoElement();\n });\n }\n static get observedAttributes() {\n return [STATE_ATTR, DISABLE_FORCED_ATTRIBUTES_ATTR, VIEWPORT_POSITION_ATTR];\n }\n connectedCallback() {\n this._setVideoAttributes();\n this._setEventListeners();\n this._updateVisibleVideoElement();\n }\n disconnectedCallback() {\n this._disconnecting = true;\n this._removeEventListeners();\n }\n attributeChangedCallback(name, prevValue, newValue) {\n var valueChanged = prevValue !== newValue;\n if (name === STATE_ATTR || name === VIEWPORT_POSITION_ATTR) {\n if (valueChanged) {\n this._updateVisibleVideoElement();\n this._updatePlayState();\n if (name === VIEWPORT_POSITION_ATTR && newValue === 'IN-VIEWPORT') {\n this._preload();\n }\n }\n }\n }\n _setEventListeners() {\n window.addEventListener('resize', this._handleResize);\n this.videoElements.forEach(el => {\n el.addEventListener('pause', this._handlePlayChange);\n el.addEventListener('play', this._handlePlayChange);\n el.addEventListener('canplaythrough', this._updatePlayState);\n });\n }\n _removeEventListeners() {\n window.removeEventListener('resize', this._handleResize);\n this.videoElements.forEach(el => {\n el.removeEventListener('pause', this._handlePlayChange);\n el.removeEventListener('play', this._handlePlayChange);\n el.removeEventListener('canplaythrough', this._updatePlayState);\n });\n }\n _updateVisibleVideoElement() {\n // eslint-disable-next-line compat/compat\n requestAnimationFrame(() => {\n var nextVisibleVideo = this.videoElements.find(isVisible);\n if (nextVisibleVideo !== this._visibleVideoElement) {\n // Pause previous video\n this._pauseVideo();\n this._visibleVideoElement = nextVisibleVideo;\n if (this._shouldPreload()) {\n this._preload();\n }\n this._updatePlayState();\n }\n });\n }\n _setVideoAttributes() {\n if (!this.disableForcedAttributes) {\n this.videoElements.forEach(el => {\n el.setAttribute('playsInline', '');\n el.setAttribute('loop', '');\n el.setAttribute('disableRemotePlayback', '');\n el.setAttribute('x-webkit-airplay', 'deny');\n });\n }\n }\n _shouldPlay() {\n var _this$_visibleVideoEl;\n /*\n * Safari 14-15.5 hides poster on play, leaving a transparent element until enough data is available to play through.\n * We have to wait for the canplaythrough event and readystate = READY_STATE.HAVE_ENOUGH_DATA before calling `.play()`\n * */\n return ((_this$_visibleVideoEl = this._visibleVideoElement) === null || _this$_visibleVideoEl === void 0 ? void 0 : _this$_visibleVideoEl.readyState) >= READY_STATE.HAVE_ENOUGH_DATA && this.state === 'ACTIVE' && this.viewportPosition === 'IN-VIEWPORT';\n }\n _shouldPreload() {\n return this.viewportPosition === 'IN-VIEWPORT';\n }\n _preload() {\n var _this$_visibleVideoEl2;\n if (((_this$_visibleVideoEl2 = this._visibleVideoElement) === null || _this$_visibleVideoEl2 === void 0 ? void 0 : _this$_visibleVideoEl2.readyState) < READY_STATE.HAVE_ENOUGH_DATA) {\n var _this$_visibleVideoEl3;\n (_this$_visibleVideoEl3 = this._visibleVideoElement) === null || _this$_visibleVideoEl3 === void 0 || _this$_visibleVideoEl3.load();\n }\n }\n _playVideo() {\n dispatchEvent(this, 'dh-basis-autoplay-attempted');\n var reducedMotion = testReducedMotion();\n var videoElement = this._visibleVideoElement;\n if (videoElement.paused && !reducedMotion && !this.autoplayBlocked) {\n var playPromise = videoElement.play() || Promise.resolve();\n playPromise.catch(e => {\n console.error(e);\n this.autoplayBlocked = true;\n });\n }\n }\n _pauseVideo() {\n var videoElement = this._visibleVideoElement;\n if (videoElement && !videoElement.paused) {\n videoElement.pause();\n }\n }\n get videoElements() {\n return toArray(this.querySelectorAll('video'));\n }\n get disableForcedAttributes() {\n return this.hasAttribute(DISABLE_FORCED_ATTRIBUTES_ATTR);\n }\n get state() {\n return this.getAttribute(STATE_ATTR);\n }\n set state(val) {\n this.setAttribute(STATE_ATTR, val);\n }\n get isPaused() {\n return this.getAttribute(IS_PAUSED);\n }\n set isPaused(val) {\n if (val) {\n this.setAttribute(IS_PAUSED, '');\n } else {\n this.removeAttribute(IS_PAUSED);\n }\n }\n get autoplayBlocked() {\n return this.hasAttribute(AUTOPLAY_BLOCKED) || false;\n }\n set autoplayBlocked(val) {\n toggleAttribute(this, AUTOPLAY_BLOCKED, val);\n }\n get viewportPosition() {\n return this.getAttribute(VIEWPORT_POSITION_ATTR);\n }\n set viewportPosition(val) {\n this.setAttribute(VIEWPORT_POSITION_ATTR, val);\n }\n}\n\nexport { LevendeStillbilde as default };\n//# sourceMappingURL=index.esm.js.map\n","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldGet2(s, a) {\n return s.get(assertClassBrand(s, a));\n}","export default function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}","import classApplyDescriptorGet from \"./classApplyDescriptorGet.js\";\nimport classPrivateFieldGet2 from \"./classPrivateFieldGet2.js\";\nexport default function _classPrivateFieldGet(receiver, privateMap) {\n var descriptor = classPrivateFieldGet2(privateMap, receiver);\n return classApplyDescriptorGet(receiver, descriptor);\n}","export default function _classApplyDescriptorGet(receiver, descriptor) {\n if (descriptor.get) {\n return descriptor.get.call(receiver);\n }\n return descriptor.value;\n}","import classApplyDescriptorSet from \"./classApplyDescriptorSet.js\";\nimport classPrivateFieldGet2 from \"./classPrivateFieldGet2.js\";\nexport default function _classPrivateFieldSet(receiver, privateMap, value) {\n var descriptor = classPrivateFieldGet2(privateMap, receiver);\n classApplyDescriptorSet(receiver, descriptor, value);\n return value;\n}","export default function _classApplyDescriptorSet(receiver, descriptor, value) {\n if (descriptor.set) {\n descriptor.set.call(receiver, value);\n } else {\n if (!descriptor.writable) {\n throw new TypeError(\"attempted to set read only private field\");\n }\n descriptor.value = value;\n }\n}","import _classPrivateFieldGet from '@babel/runtime/helpers/classPrivateFieldGet';\nimport _classPrivateFieldSet from '@babel/runtime/helpers/classPrivateFieldSet';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar dedupeId = 0;\n\n/**\n * @template {HTMLElement} BaseClass\n * @param {(base: BaseClass) => BaseClass} mixin\n */\nfunction dedupeMixin(mixin) {\n var mixinId = dedupeId++;\n return base => {\n var _base$_appliedMixins, _base$_appliedMixins2;\n if ((_base$_appliedMixins = base._appliedMixins) !== null && _base$_appliedMixins !== void 0 && _base$_appliedMixins[mixinId]) {\n return base;\n }\n var extended = mixin(base);\n extended._appliedMixins = _objectSpread({}, (_base$_appliedMixins2 = base._appliedMixins) !== null && _base$_appliedMixins2 !== void 0 ? _base$_appliedMixins2 : {});\n extended._appliedMixins[mixinId] = true;\n return extended;\n };\n}\n\nfunction _classPrivateMethodInitSpec$1(obj, privateSet) { _checkPrivateRedeclaration$1(obj, privateSet); privateSet.add(obj); }\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration$1(obj, privateMap); privateMap.set(obj, value); }\nfunction _checkPrivateRedeclaration$1(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\nfunction _classPrivateMethodGet$1(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError(\"attempted to get private field on non-instance\"); } return fn; }\nvar VIEWPORT_POSITION_ATTR = 'viewport-position';\nvar VIEWPORT_POSITIONS = {\n aboveViewport: 'ABOVE-VIEWPORT',\n inViewport: 'IN-VIEWPORT',\n belowViewport: 'BELOW-VIEWPORT'\n};\n\n/**\n * Check if element represents the browser viewport\n *\n * @param viewportContainer Element to check\n * @returns {boolean} True if element represents the browser viewport and not a scroll container\n */\nfunction isViewport(viewportContainer) {\n return (\n // eslint-disable-next-line compat/compat\n viewportContainer === document.scrollingElement || viewportContainer === document.documentElement\n );\n}\n\n/**\n * Custom Element mixin.\n *\n * Updates the `viewport-position` attribute according to whether the element is in the viewport or not.\n * Possible values for the attribute is `IN-VIEWPORT`, `ABOVE-VIEWPORT` and `BELOW-VIEWPORT`\n *\n * @template {HTMLElement} BaseClass\n * @param {BaseClass} Base\n */\nfunction _ViewportPositionMixin(Base) {\n var _observer, _createIntersectionObserver, _disconnectIntersectionObserver, _handleIntersectionChange;\n return _observer = /*#__PURE__*/new WeakMap(), _createIntersectionObserver = /*#__PURE__*/new WeakSet(), _disconnectIntersectionObserver = /*#__PURE__*/new WeakSet(), _handleIntersectionChange = /*#__PURE__*/new WeakMap(), class extends Base {\n constructor() {\n super(...arguments);\n _classPrivateMethodInitSpec$1(this, _disconnectIntersectionObserver);\n _classPrivateMethodInitSpec$1(this, _createIntersectionObserver);\n _classPrivateFieldInitSpec(this, _observer, {\n writable: true,\n value: void 0\n });\n _classPrivateFieldInitSpec(this, _handleIntersectionChange, {\n writable: true,\n value: _ref => {\n var [intersection] = _ref;\n if (intersection.isIntersecting) {\n if (this.viewportPosition !== VIEWPORT_POSITIONS.inViewport) {\n this.viewportPosition = VIEWPORT_POSITIONS.inViewport;\n }\n } else {\n if (!this.viewportPosition || this.viewportPosition === VIEWPORT_POSITIONS.inViewport) {\n var {\n top,\n bottom\n } = this.getBoundingClientRect();\n\n // The latest chrome reports bcr.bottom to be 0.5\n // Instead of checking that the bottom is outside the viewport\n // we check that the top of the element is above the viewport,\n // and that the bottom of the element is above the bottom of the viewport\n var isAbove = top <= 0 && bottom <= window.innerHeight;\n this.viewportPosition = isAbove ? VIEWPORT_POSITIONS.aboveViewport : VIEWPORT_POSITIONS.belowViewport;\n }\n }\n }\n });\n }\n static get observedAttributes() {\n var _super$observedAttrib;\n return [...((_super$observedAttrib = super.observedAttributes) !== null && _super$observedAttrib !== void 0 ? _super$observedAttrib : []), VIEWPORT_POSITION_ATTR];\n }\n connectedCallback() {\n var _super$connectedCallb;\n (_super$connectedCallb = super.connectedCallback) === null || _super$connectedCallb === void 0 ? void 0 : _super$connectedCallb.call(this);\n _classPrivateMethodGet$1(this, _createIntersectionObserver, _createIntersectionObserver2).call(this);\n }\n disconnectedCallback() {\n var _super$disconnectedCa;\n (_super$disconnectedCa = super.disconnectedCallback) === null || _super$disconnectedCa === void 0 ? void 0 : _super$disconnectedCa.call(this);\n _classPrivateMethodGet$1(this, _disconnectIntersectionObserver, _disconnectIntersectionObserver2).call(this);\n }\n /**\n * Get the viewport or the scroll container element that is used as a replacement for the viewport.\n *\n * @returns {Element|HTMLElement} viewportContainer\n */\n get viewportContainer() {\n var _document$scrollingEl;\n /*\n * Using root/document.scrollingElement to represent the viewport,\n * as this presents a unified API for scrolling for both the viewport and scrolling elements.\n * (scrollTop, scrollLeft, scrollTo)\n *\n * Some API's such as IntersectionObserver use different values for the viewport\n * (such as null and document), so take care.\n */\n\n // eslint-disable-next-line compat/compat\n return (_document$scrollingEl = document.scrollingElement) !== null && _document$scrollingEl !== void 0 ? _document$scrollingEl : document.documentElement;\n }\n\n /**\n * Get the intersection root\n * @returns {null|Element|HTMLElement|Document}\n */\n get viewportIntersectionRoot() {\n var viewportContainer = this.viewportContainer;\n if (isViewport(viewportContainer)) {\n var _navigator, _navigator$userAgent, _navigator$userAgent$;\n var isIFrame = window.location !== window.parent.location;\n var isChrome = (_navigator = navigator) === null || _navigator === void 0 ? void 0 : (_navigator$userAgent = _navigator.userAgent) === null || _navigator$userAgent === void 0 ? void 0 : (_navigator$userAgent$ = _navigator$userAgent.includes) === null || _navigator$userAgent$ === void 0 ? void 0 : _navigator$userAgent$.call(_navigator$userAgent, 'Chrome');\n // Chrome has a bug when using document in as IntersectionObserver root: https://bugs.chromium.org/p/chromium/issues/detail?id=1420155\n if (isIFrame && !isChrome) {\n /* Use document as intersection root in iframes */\n return document;\n } else {\n return null;\n }\n } else {\n return viewportContainer;\n }\n }\n\n /**\n * Position of this element relative to the viewport.\n *\n * @type {'ABOVE-VIEWPORT' | 'IN-VIEWPORT' | 'BELOW-VIEWPORT' }\n */\n set viewportPosition(value) {\n var currentValue = this.getAttribute(VIEWPORT_POSITION_ATTR);\n if (value !== currentValue) {\n this.setAttribute(VIEWPORT_POSITION_ATTR, value);\n }\n }\n\n /**\n * Position of this element relative to the viewport.\n *\n * @type {'ABOVE-VIEWPORT' | 'IN-VIEWPORT' | 'BELOW-VIEWPORT' }\n */\n get viewportPosition() {\n return this.getAttribute(VIEWPORT_POSITION_ATTR);\n }\n };\n function _createIntersectionObserver2() {\n // eslint-disable-next-line compat/compat\n _classPrivateFieldSet(this, _observer, new IntersectionObserver(_classPrivateFieldGet(this, _handleIntersectionChange), {\n threshold: [0],\n // Intersection observer uses null or document for regular viewport\n root: this.viewportIntersectionRoot,\n // Scroll snapping elements trigger intersection when they are perfectly aligned with the screen,\n // both above and below the viewport. Using -1px as root margin to prevent intersection.\n rootMargin: '-1px 0px -1px 0px'\n }));\n _classPrivateFieldGet(this, _observer).observe(this);\n }\n function _disconnectIntersectionObserver2() {\n var _classPrivateFieldGet2, _classPrivateFieldGet3;\n (_classPrivateFieldGet2 = _classPrivateFieldGet(this, _observer)) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.unobserve(this);\n (_classPrivateFieldGet3 = _classPrivateFieldGet(this, _observer)) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.disconnect();\n }\n}\n\n/**\n * @template {HTMLElement} BaseClass\n * @param {BaseClass} Base */\nvar ViewportPositionMixin = dedupeMixin(_ViewportPositionMixin);\n\nfunction _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\nfunction _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError(\"attempted to get private field on non-instance\"); } return fn; }\nfunction _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) { _classCheckPrivateStaticAccess(receiver, classConstructor); _classCheckPrivateStaticFieldDescriptor(descriptor, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\nfunction _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) { _classCheckPrivateStaticAccess(receiver, classConstructor); _classCheckPrivateStaticFieldDescriptor(descriptor, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\nfunction _classCheckPrivateStaticFieldDescriptor(descriptor, action) { if (descriptor === undefined) { throw new TypeError(\"attempted to \" + action + \" private static field before its declaration\"); } }\nfunction _classCheckPrivateStaticAccess(receiver, classConstructor) { if (receiver !== classConstructor) { throw new TypeError(\"Private static access of wrong provenance\"); } }\nfunction _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError(\"attempted to set read only private field\"); } descriptor.value = value; } }\n\n/**\n * @typedef BoundAttributeConfig\n * @property {string} attribute – name of attribute to bind, or name of source and target attributes separated with a semicolon\n * @property {string | function } targets – selector string or function that takes element as argument and returns list of target elements\n */\n\n/**\n * Custom element mixin that creates a one way binding between an attribute on\n * the custom element and a given attribute on it's children.\n *\n * @template {HTMLElement} BaseClass\n * @param {BaseClass} Base\n */\nfunction _AttributeBindingMixin(Base) {\n var _class, _getTargetElements, _boundAttributes;\n return _getTargetElements = /*#__PURE__*/new WeakSet(), (_class = class AttributeBindingMixinDef extends Base {\n constructor() {\n super(...arguments);\n _classPrivateMethodInitSpec(this, _getTargetElements);\n }\n /**\n * Configure the bound attributes.\n *\n * @returns {BoundAttributeConfig[]}\n */\n static get boundAttributes() {\n return [];\n }\n static get observedAttributes() {\n var _super$observedAttrib;\n var boundAttributes = {};\n\n // Parse and store configuration for faster lookup\n for (var {\n attribute,\n targets\n } of this.boundAttributes) {\n if (typeof attribute !== 'string') {\n throw Error('Bound attribute configuration must have `attribute` property of string type');\n }\n var [sourceAttribute, targetAttribute = sourceAttribute] = attribute.split(':');\n boundAttributes[sourceAttribute] = {\n sourceAttributeName: sourceAttribute,\n targetAttributeName: targetAttribute,\n targets\n };\n }\n _classStaticPrivateFieldSpecSet(AttributeBindingMixinDef, _class, _boundAttributes, boundAttributes);\n\n // Observe bound attributes\n return [...((_super$observedAttrib = super.observedAttributes) !== null && _super$observedAttrib !== void 0 ? _super$observedAttrib : []), ...Object.keys(boundAttributes)];\n }\n attributeChangedCallback(name, oldValue, newValue) {\n var _super$attributeChang;\n (_super$attributeChang = super.attributeChangedCallback) === null || _super$attributeChang === void 0 ? void 0 : _super$attributeChang.call(this, name, oldValue, newValue);\n if (newValue === oldValue) {\n return;\n }\n var boundAttributes = _classStaticPrivateFieldSpecGet(AttributeBindingMixinDef, _class, _boundAttributes);\n if (name in boundAttributes) {\n var configuration = boundAttributes[name];\n var targets = configuration.targets;\n var targetElements = _classPrivateMethodGet(this, _getTargetElements, _getTargetElements2).call(this, targets);\n for (var element of targetElements) {\n if (newValue !== null) {\n element.setAttribute(configuration.targetAttributeName, newValue);\n } else {\n element.removeAttribute(configuration.targetAttributeName);\n }\n }\n }\n }\n }, _boundAttributes = {\n writable: true,\n value: void 0\n }, _class);\n function _getTargetElements2(targets) {\n if (typeof targets === 'function') {\n return targets(this);\n } else if (typeof targets === 'string') {\n return Array.from(this.querySelectorAll(targets));\n } else {\n throw new Error(\"Unsupported targets type: \".concat(typeof targets));\n }\n }\n}\n\n/**\n * @template {HTMLElement} BaseClass\n * @param {BaseClass} Base\n */\nvar AttributeBindingMixin = dedupeMixin(_AttributeBindingMixin);\n\nexport { AttributeBindingMixin, VIEWPORT_POSITIONS, VIEWPORT_POSITION_ATTR, ViewportPositionMixin };\n//# sourceMappingURL=index.esm.js.map\n","export function safeDefine(t: string, customElement: CustomElementConstructor) {\n if (customElements.get(t) === undefined) {\n customElements.define(t, customElement)\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"melding\":\"dhsa-instuliv__meldingKMzDd\",\"navn\":\"dhsa-instuliv__navnumzPQ\",\"hoyre\":\"dhsa-instuliv__hoyrekOwLl\",\"venstre\":\"dhsa-instuliv__venstreyj7_Z\",\"avsender\":\"dhsa-instuliv__avsenderPOKyP\",\"avatarbilde\":\"dhsa-instuliv__avatarbildevoCwB\",\"meldingsavatar\":\"dhsa-instuliv__meldingsavatargCsN_\",\"tekst\":\"dhsa-instuliv__tekstXHuMw\",\"animert\":\"dhsa-instuliv__animertRrGD1\",\"melding-motta\":\"dhsa-instuliv__melding-mottaYK25r\",\"meldingMotta\":\"dhsa-instuliv__melding-mottaYK25r\",\"melding-motta-reduced-motion\":\"dhsa-instuliv__melding-motta-reduced-motionNToF6\",\"meldingMottaReducedMotion\":\"dhsa-instuliv__melding-motta-reduced-motionNToF6\"};","import { MeldingerMixin } from '../../common/melding/melding.mixin.ts'\nimport meldignerStyles from '../../common/melding/melding.module.css'\nimport posisjonerBunnStyles from './avatarer/posisjoner-bunn.module.css'\n\nconst s = { ...meldignerStyles, ...posisjonerBunnStyles }\n\nexport class SakComponent extends MeldingerMixin(HTMLElement) {\n #avatarBunnAnimasjon\n\n connectedCallback() {\n super.connectedCallback?.()\n this.#initialiserSkjulAvararerAnim()\n }\n\n disconnectedCallback() {\n super.disconnectedCallback?.()\n }\n\n #initialiserSkjulAvararerAnim() {\n const meldinger = this.querySelectorAll(`.${s.melding}.${s.venstre}`)\n const sisteMelding = meldinger[meldinger.length - 1]\n\n const bunnPosisjoner = this.querySelector(`.${s.posisjonerBunn}`)\n\n // @ts-ignore\n const timeline = new ViewTimeline({ axis: 'block', subject: sisteMelding })\n\n // eslint-disable-next-line compat/compat\n const effect = new KeyframeEffect(\n // Animerer et eget lag med klassen '.dekklag'\n // Scroll-driven animations i chrome støtter ikke å animere pseudo-element enda.\n bunnPosisjoner,\n { opacity: [1, 0], translate: ['0 0', '0 30px'] },\n { fill: 'both', easing: 'ease-out' },\n )\n\n // eslint-disable-next-line compat/compat\n const animasjon = new Animation(effect, timeline)\n\n // @ts-ignore\n animasjon.rangeStart = {\n rangeName: 'exit-crossing',\n // eslint-disable-next-line compat/compat\n offset: CSS.percent(100),\n }\n\n // @ts-ignore\n animasjon.rangeEnd = {\n rangeName: 'exit-crossing',\n // eslint-disable-next-line compat/compat\n offset: new CSSMathSum(CSS.percent(100), CSS.px(100)),\n }\n animasjon.play()\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"posisjoner-bunn\":\"dhsa-instuliv__posisjoner-bunnBprzz\",\"posisjonerBunn\":\"dhsa-instuliv__posisjoner-bunnBprzz\",\"posisjon-bunn\":\"dhsa-instuliv__posisjon-bunnWVj1P\",\"posisjonBunn\":\"dhsa-instuliv__posisjon-bunnWVj1P\"};","import s from './melding.module.css'\n\ntype GConstructor = new (...args: any[]) => T\n\nexport function MeldingerMixin>(Base: TBase) {\n return class MeldingerMixinDef extends Base {\n #playObserver\n #setupObserver\n #prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches\n\n connectedCallback() {\n // @ts-ignore\n super.connectedCallback?.()\n\n // Sets up animations\n this.#setupObserver = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n const meldingselement = entry.target as HTMLElement\n\n if (entry.isIntersecting) {\n this.#setupObserver.unobserve(meldingselement)\n\n // Setup animation\n this.#setupAnimation(meldingselement)\n // Wait for message to be visible on screen before playing\n this.#playObserver.observe(meldingselement)\n\n /* Trigger animation early if element is focused*/\n meldingselement.addEventListener('focusin', () => {\n this.#playObserver.unobserve(meldingselement)\n this.#visMelding(meldingselement as HTMLElement)\n })\n }\n }\n },\n { rootMargin: '1000px 0px 1000px 0px' },\n )\n\n // Plays animations\n this.#playObserver = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n const meldingselement = entry.target as HTMLElement\n\n if (entry.isIntersecting) {\n this.#playObserver.unobserve(meldingselement)\n this.#visMelding(meldingselement)\n }\n }\n },\n { rootMargin: '0% 0% -50% 0%' },\n )\n\n const meldinger = this.querySelectorAll(`.${s.melding}.${s.animert}`)\n for (const melding of Array.from(meldinger)) {\n this.#setupObserver.observe(melding)\n }\n }\n\n disconnectedCallback() {\n // @ts-ignore\n super.disconnectedCallback?.()\n this.#setupObserver?.disconnect()\n this.#playObserver?.disconnect()\n }\n\n #setupAnimation(meldingselement: HTMLElement) {\n // eslint-disable-next-line compat/compat\n const effect = new KeyframeEffect(\n meldingselement,\n this.#prefersReducedMotion\n ? { opacity: [0, 1] }\n : { opacity: [0, 1], translate: ['0 25px', '0 0'] },\n { fill: 'backwards', duration: 200, easing: 'ease-out' },\n )\n\n // eslint-disable-next-line compat/compat\n const animation = new Animation(effect)\n //animation.play()\n animation.pause()\n }\n\n async #visMelding(meldingselement: HTMLElement) {\n // Spill av animasjon av innkommende melding.\n const innkommendeAnimasjon = meldingselement.getAnimations()[0]\n if (innkommendeAnimasjon && innkommendeAnimasjon.playState === 'paused') {\n innkommendeAnimasjon.play()\n\n await innkommendeAnimasjon.finished\n meldingselement.dispatchEvent(new Event('melding-vist'))\n }\n }\n }\n}\n","import bezierEasing from 'bezier-easing'\ninterface Ease {\n type: 'ease'\n}\n\ninterface Linear {\n type: 'linear'\n}\n\ninterface EaseIn {\n type: 'ease-in'\n}\n\ninterface EaseOut {\n type: 'ease-out'\n}\n\ninterface EaseInOut {\n type: 'ease-in-out'\n}\n\nexport interface CubicBezier {\n type: 'cubic-bezier'\n x1: number\n y1: number\n x2: number\n y2: number\n}\n\nexport type JumpTerm = 'jump-start' | 'jump-end' | 'jump-none' | 'jump-both'\n\nexport interface Steps {\n type: 'steps'\n n: number\n jumpterm: JumpTerm\n}\n\nexport type Easing = Ease | Linear | EaseIn | EaseOut | EaseInOut | CubicBezier | Steps\nexport function getEasing(easing: Easing = { type: 'linear' }) {\n switch (easing.type) {\n case 'ease':\n return bezierEasing(0.25, 0.1, 0.25, 1.0)\n case 'ease-in':\n return bezierEasing(0.42, 0, 1.0, 1.0)\n case 'ease-out':\n return bezierEasing(0, 0, 0.58, 1.0)\n case 'ease-in-out':\n return bezierEasing(0.42, 0, 0.58, 1.0)\n case 'cubic-bezier':\n return bezierEasing(easing.x1, easing.y1, easing.x2, easing.y2)\n case 'steps':\n return stepEasing(easing.n, easing.jumpterm)\n case 'linear':\n default:\n return bezierEasing(0.0, 0.0, 1.0, 1.0)\n }\n}\n\nconst stepConfig = {\n 'jump-start': {\n extraRise: 0,\n roundingFunction: Math.ceil,\n },\n 'jump-end': {\n extraRise: 0,\n roundingFunction: Math.floor,\n },\n 'jump-none': {\n extraRise: -1,\n roundingFunction: Math.floor,\n },\n 'jump-both': {\n extraRise: 1,\n roundingFunction: Math.ceil,\n },\n}\n\nexport function stepEasing(steps: number, jumpterm: JumpTerm) {\n const config = stepConfig[jumpterm]\n\n const stepLength = 1 / steps\n const stepHeight = 1 / (steps + config.extraRise)\n\n return (t: number) => {\n if (t === 0 || t === 1) {\n return t\n }\n const numberOfSteps = config.roundingFunction(t / stepLength)\n return numberOfSteps * stepHeight\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"avatarer-wrapper\":\"dhsa-instuliv__avatarer-wrapperXwTeO\",\"avatarerWrapper\":\"dhsa-instuliv__avatarer-wrapperXwTeO\",\"avatarer\":\"dhsa-instuliv__avatarerNMAoH\",\"avatar\":\"dhsa-instuliv__avatarkbOGv\",\"avsender\":\"dhsa-instuliv__avsenderDTCUQ\",\"dekklag\":\"dhsa-instuliv__dekklagbGvtG\",\"fixed\":\"dhsa-instuliv__fixedxAK2d\",\"fixed-container\":\"dhsa-instuliv__fixed-containerHQ9dx\",\"fixedContainer\":\"dhsa-instuliv__fixed-containerHQ9dx\",\"scale-in\":\"dhsa-instuliv__scale-inMKhFf\",\"scaleIn\":\"dhsa-instuliv__scale-inMKhFf\"};","import s from '../avatarer.module.css'\n\nexport function introAnimasjon(avatar: HTMLElement) {\n // Finn dekklaget som animeres i introen\n const dekklag = avatar.querySelector(`.${s.dekklag}`)\n\n // Finn posisjonselementet for avataren.\n // Dette elementet brukes som utgangspunkt for en tidslinje som vi animerer langs.\n // Vi unngår å bruke avataren direkte, da dette kan skape ytelsesproblemer med scroll-timeline polyfillen.\n const posisjonselement = avatar.parentElement\n\n // Opprett en tidslinje vi animerer dekklaget langs.\n // @ts-ignore\n const timeline = new ViewTimeline({ axis: 'block', subject: posisjonselement })\n\n // eslint-disable-next-line compat/compat\n const effect = new KeyframeEffect(\n // Animerer et eget lag med klassen '.dekklag'\n // Scroll-driven animations i chrome støtter ikke å animere pseudo-element enda.\n dekklag,\n { opacity: [0.8, 0.1, 0.8] },\n { fill: 'both', duration: 100000, delay: Math.random() * 100000 },\n )\n\n // eslint-disable-next-line compat/compat\n const animasjon = new Animation(effect, timeline)\n\n // @ts-ignore\n animasjon.rangeStart = {\n rangeName: 'entry-crossing',\n // eslint-disable-next-line compat/compat\n offset: CSS.percent(100),\n }\n // @ts-ignore\n animasjon.rangeEnd = {\n rangeName: 'exit-crossing',\n // eslint-disable-next-line compat/compat\n offset: CSS.percent(100),\n }\n return animasjon\n}\n","import { getEasing } from './easing/easing-functions.ts'\nimport s from './avatarer.module.css'\nimport '../../../lib/scroll-timeline.js'\nimport { introAnimasjon } from './animasjoner/intro-animasjon.ts'\n\ntype State = 'animating' | 'positioned'\n\nfunction intersects(\n nextBcr: { top: number; left: number; bottom: number; right: number },\n bcr: DOMRect,\n) {\n return (\n nextBcr.right >= bcr.left &&\n nextBcr.left <= bcr.right &&\n nextBcr.bottom >= bcr.top &&\n nextBcr.top <= bcr.bottom\n )\n}\n\nfunction lerp(start: number, end: number, a: number) {\n return (1 - a) * start + a * end\n}\n\nexport class Avatarer extends HTMLElement {\n /** ELEMENTER **/\n\n // Avatar-elementene\n #avatarer: HTMLElement[] | undefined\n\n // Elementet som brukes som parent når animasjonene animeres mellom ulike posisjoner\n #fixedContainer: HTMLElement | undefined\n\n // Map av alle targets og plasseringer for hurtig oppslag\n #targets = new Map<\n string,\n { containingBlock: HTMLElement; plasseringer: Map }\n >()\n\n /** STATE **/\n\n // Om avatarene er posisjonert eller animeres til et nytt target\n #state: State = 'positioned'\n\n // Hvilken plassering avatarene skal være på / flyttes til\n #previousTargetId\n #currentTargetId = 'intro'\n\n // Elementet som representerer avsenderen av den \"aktive\" meldingen\n #avsender: HTMLElement | undefined\n\n // Animasjon\n #animationStartTime: number | undefined\n #animationValues: {\n startingRect: DOMRect\n startingOpacity: number\n target: HTMLElement\n targetOpacity: number\n targetRect: DOMRect\n }[] = []\n\n /* Observers */\n #autoTargetObserver\n\n connectedCallback() {\n this.#avatarer = Array.from(document.querySelectorAll(`.${s.avatar}`)) as HTMLElement[]\n this.#createFixedPositioningElement()\n this.#initializeIntro()\n this.#initializeTargets()\n this.#anchorToTarget()\n }\n\n disconnectedCallback() {\n this.#targets.clear()\n this.#autoTargetObserver?.disconnect()\n }\n\n /**\n * Opprett et element som kan brukes som parent for avatarene når de ska animeres med position fixed mellom\n * ulike posisjoner.\n */\n #createFixedPositioningElement() {\n this.#fixedContainer = document.createElement('div')\n this.#fixedContainer.style.position = 'fixed'\n this.#fixedContainer.style.contain = 'strict'\n this.#fixedContainer.style.top = '0'\n this.#fixedContainer.style.bottom = '0'\n this.#fixedContainer.style.left = '0'\n this.#fixedContainer.style.right = '0'\n this.#fixedContainer.style.pointerEvents = 'none'\n document.body.appendChild(this.#fixedContainer)\n }\n\n #initializeIntro() {\n for (const avatar of this.#avatarer) {\n introAnimasjon(avatar).play()\n }\n\n // Når h1 blir synlig:\n // - Avslutt intro\n const heading = document.querySelector('h1')\n const headingObserver = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting) {\n this.#avluttIntro()\n headingObserver.disconnect()\n }\n },\n {\n rootMargin: '50000px 0% -50% 0%',\n },\n )\n headingObserver.observe(heading)\n }\n\n #initializeTargets() {\n // Set up auto target observer\n this.#autoTargetObserver = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n const targetElement = entry.target as HTMLElement\n const targetId = targetElement.dataset.avatarTarget\n if (entry.isIntersecting) {\n // Dersom auto-target er på vei inn på skjermen,\n // flytt avatarene til target\n this.targetId = targetId\n } else if (this.targetId === targetId) {\n // Dersom auto-target er på vei ut av skjermen,\n // flytt avatarene til bunn\n this.targetId = 'bunn'\n }\n }\n },\n {\n rootMargin: '-10% 0% -25% 0%',\n },\n )\n\n const targets = Array.from(document.querySelectorAll('[data-avatar-target]')) as HTMLElement[]\n\n for (const target of targets) {\n const targetId = target.dataset.avatarTarget\n\n // Lagre target og plasseringer for rask uthenting\n const plasseringer = new Map(\n Array.from(target.querySelectorAll('[data-plass-id]')).map((plassering: HTMLElement) => [\n plassering.dataset.plassId,\n plassering,\n ]),\n )\n\n this.#targets.set(targetId, { containingBlock: target, plasseringer })\n\n // Observe auto-targets\n if (target.hasAttribute('data-avatar-auto-target')) {\n this.#autoTargetObserver.observe(target)\n }\n }\n }\n\n #anchorToTarget() {\n const avatarElements = this.#avatarer\n if (!avatarElements) {\n return\n }\n const currentTarget = this.#targets.get(this.#currentTargetId)\n const inaktiveTarget = this.#targets.get('inaktive')\n\n const avatarTargets = avatarElements.map((avatarElement) => {\n const avatarId = avatarElement.dataset.avatarId\n return currentTarget.plasseringer.get(avatarId) ?? inaktiveTarget.plasseringer.get(avatarId)\n })\n\n for (let i = 0; i < avatarElements.length; i++) {\n avatarElements[i].remove()\n // Update styles\n avatarElements[i].classList.toggle(s.fixed, false)\n avatarElements[i].style.removeProperty('transform')\n const dekklag = getDekklag(avatarElements[i])\n dekklag.style.removeProperty('opacity')\n\n // Append into new target\n avatarTargets[i].appendChild(avatarElements[i])\n }\n }\n\n #beforeAnimation() {\n if (this.#avsender) {\n this.skjulAvsendere()\n }\n\n // Disable transitions\n for (const avatarElement of this.#avatarer) {\n const dekklag = getDekklag(avatarElement)\n dekklag.style.visibility = 'visible'\n dekklag.style.transition = 'none'\n }\n }\n\n #afterAnimation() {\n for (const avatarElement of this.#avatarer) {\n const dekklag = getDekklag(avatarElement)\n dekklag.style.removeProperty('visibility')\n dekklag.style.removeProperty('transition')\n }\n }\n\n async #animate() {\n const currentTarget = this.#targets.get(this.#currentTargetId)\n const previousTarget = this.#targets.get(this.#previousTargetId)\n const fallbackTarget = this.#targets.get('inaktive')\n\n // For at avatarene skal kunne animere lokalt under meldingene må de ligge i riktig stacking context.\n // Vi lagrer en liste av containing-blocks som vi må sjekke avatarens posisjon mot.\n // Om avataren er innenfor containing blocken flytter må den reparentes slik at den havner riktig i stacking contexten.\n const animationContainingBlocks = [\n currentTarget.containingBlock,\n previousTarget.containingBlock,\n ].filter((cb) => cb.hasAttribute('data-avatar-animate-locally'))\n\n // Oppdater timing og animasjonsverdier ved oppstart\n this.#animationStartTime = undefined\n for (let i = 0; i < this.#avatarer.length; i++) {\n if (!this.#animationValues[i]) {\n // Initialiser animasjonsverdier\n this.#animationValues[i] = {\n startingOpacity: undefined,\n startingRect: undefined,\n target: undefined,\n targetOpacity: undefined,\n targetRect: undefined,\n }\n }\n\n const avatarId = this.#avatarer[i].dataset.avatarId\n const avatarTarget =\n currentTarget.plasseringer.get(avatarId) ?? fallbackTarget.plasseringer.get(avatarId)\n const dekklag = getDekklag(this.#avatarer[i])\n\n this.#animationValues[i].startingRect = this.#avatarer[i].getBoundingClientRect()\n\n this.#animationValues[i].startingOpacity = parseFloat(getComputedStyle(dekklag).opacity)\n this.#animationValues[i].target = avatarTarget\n this.#animationValues[i].targetOpacity = parseFloat(\n avatarTarget.dataset.dekklagOpacity ?? '0',\n )\n }\n\n if (this.#state === 'animating') {\n return\n }\n this.#state = 'animating'\n this.#beforeAnimation()\n\n const easeOut = getEasing({ type: 'ease-out' })\n const easeJump = getEasing({ type: 'steps', jumpterm: 'jump-none', n: 2 })\n const easeOpacity = getEasing({ type: 'ease-out' })\n const loop = (time: number) => {\n if (!this.#avatarer || this.#state !== 'animating') {\n return\n }\n if (typeof this.#animationStartTime === 'undefined') {\n this.#animationStartTime = time\n }\n const elapsed = time - this.#animationStartTime\n const duration = this.#duration\n const delay = this.#delay\n if (elapsed < duration + delay) {\n // Animasjonen er aktiv\n\n // Oppdaterer animasjonsverdier først (Les før skriv for å hindre layout thrashing)\n const innerHeight = window.innerHeight\n for (let i = 0; i < this.#avatarer.length; i++) {\n this.#animationValues[i].targetRect =\n this.#animationValues[i].target.getBoundingClientRect()\n }\n\n const containingBlockBoundaries = animationContainingBlocks.map((element) => {\n return {\n element,\n bcr: element.getBoundingClientRect(),\n }\n })\n\n for (let i = 0; i < this.#avatarer.length; i++) {\n const avatarElement = this.#avatarer[i]\n const startingBCR = this.#animationValues[i].startingRect\n const startingOpacity = this.#animationValues[i].startingOpacity\n const targetBCR = this.#animationValues[i].targetRect\n const targetOpacity = this.#animationValues[i].targetOpacity\n\n const startTime = i * (delay / this.#avatarer.length)\n const localTime = Math.min(duration, Math.max(0, elapsed - startTime))\n const localProgress = localTime / duration\n\n const easePosition =\n this.#previousTargetId !== 'intro' &&\n this.targetId === 'bunn' &&\n targetBCR.top - startingBCR.top > 0.75 * innerHeight\n ? easeJump\n : easeOut\n const left = lerp(startingBCR.left, targetBCR.left, easePosition(localProgress))\n const top = lerp(startingBCR.top, targetBCR.top, easePosition(localProgress))\n const opacity = lerp(startingOpacity, targetOpacity, easeOpacity(localProgress))\n\n const containingBlock = containingBlockBoundaries.find((cb) =>\n intersects(\n { left, right: left + startingBCR.width, top, bottom: top + startingBCR.height },\n cb.bcr,\n ),\n )\n\n if (top === startingBCR.top) {\n // Special case when not animated?\n } else if (containingBlock) {\n if (avatarElement.parentElement !== containingBlock.element) {\n // Attach to element\n avatarElement.remove()\n avatarElement.classList.toggle(s.fixed, false)\n insertSorted(containingBlock.element, this.#avatarer, avatarElement)\n }\n avatarElement.style.transform = `translate(${left - containingBlock.bcr.left}px, ${top - containingBlock.bcr.top}px)`\n } else {\n if (avatarElement.parentElement !== this.#fixedContainer) {\n // Detach and insert the avatar at the end of the body\n avatarElement.remove()\n avatarElement.classList.toggle(s.fixed, true)\n insertSorted(this.#fixedContainer, this.#avatarer, avatarElement)\n }\n avatarElement.style.transform = `translate(${left}px, ${top}px)`\n }\n const dekklag = getDekklag(avatarElement)\n if (dekklag) {\n dekklag.style.opacity = opacity.toFixed(3)\n }\n }\n\n requestAnimationFrame(loop)\n } else {\n // Animasjonen er ferdig\n\n this.#afterAnimation()\n this.#anchorToTarget()\n this.#state = 'positioned'\n }\n }\n if (window.matchMedia('(prefers-reduced-motion: no-preference)').matches) {\n requestAnimationFrame(loop)\n } else {\n this.#anchorToTarget()\n this.#state = 'positioned'\n }\n }\n\n #avluttIntro() {\n // - Endre avatar-target til \"bunn\"\n // - Deaktiver scroll-animasjoner\n this.targetId = 'bunn'\n const animasjoner = this.getAnimations({ subtree: true })\n for (const animasjon of animasjoner) {\n animasjon.cancel()\n }\n\n for (const avatar of this.#avatarer) {\n avatar.classList.remove(s.avsender)\n }\n }\n\n visAvsender(avatarId: number) {\n const arrayIndeks = avatarId - 1\n\n if (this.#currentTargetId === 'intro') {\n const avatar = this.#avatarer[arrayIndeks]\n if (!avatar) {\n return\n }\n const opacity = getComputedStyle(avatar).opacity\n const animation = avatar.getAnimations({ subtree: true })[0]\n if (animation) {\n animation.cancel()\n }\n avatar.animate({ opacity: [parseFloat(opacity), 1] }, { duration: 200 })\n avatar.classList.add(s.avsender)\n } else if (this.#currentTargetId === 'bunn') {\n const avatar = this.#avatarer[arrayIndeks]\n if (!avatar || this.#avsender === avatar) {\n return\n }\n\n if (this.#avsender) {\n this.skjulAvsendere()\n }\n avatar.dataset.avsender = ''\n this.#avsender = avatar\n } else {\n return\n }\n }\n\n skjulAvsendere() {\n if (this.#currentTargetId === 'bunn' || this.#previousTargetId === 'bunn') {\n for (const avatar of this.#avatarer) {\n if (typeof avatar.dataset.avsender !== 'undefined') {\n delete avatar.dataset.avsender\n }\n }\n this.#avsender = null\n } else {\n return\n }\n }\n\n get #duration() {\n if (this.#currentTargetId === 'bunn' && this.#previousTargetId === 'intro') {\n return 1250\n } else {\n return 750\n }\n }\n\n get #delay() {\n if (this.#currentTargetId === 'bunn' && this.#previousTargetId === 'intro') {\n return 500\n } else {\n return 250\n }\n }\n\n get targetId() {\n return this.#currentTargetId\n }\n\n set targetId(val: string) {\n if (this.#currentTargetId === val) {\n return\n }\n this.#previousTargetId = this.#currentTargetId\n this.#currentTargetId = val\n this.#animate()\n }\n}\n\nfunction insertSorted(parent, avatarElements, avatar) {\n const avatarIndex = parseInt(avatar.dataset.avatarId)\n const attachedAvatar = avatarElements\n .filter((el) => el.parentElement === parent)\n .find((el) => parseInt(el.dataset.avatarId) > avatarIndex)\n\n if (attachedAvatar) {\n parent.insertBefore(avatar, attachedAvatar)\n } else {\n parent.appendChild(avatar)\n }\n}\n\nfunction getDekklag(avatarElement: HTMLElement) {\n return avatarElement.children[0] as HTMLElement\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"intromeldinger\":\"dhsa-instuliv__intromeldingerBDCLQ\",\"intromelding\":\"dhsa-instuliv__intromeldingv025x\",\"venstre\":\"dhsa-instuliv__venstresv8Qu\",\"hoyre\":\"dhsa-instuliv__hoyreFwMgO\"};","import s from './meldinger/meldinger.module.css'\nimport { Avatarer } from '../avatarer/avatarer.ts'\n\nfunction visMelding(melding: HTMLElement) {\n // melding.getAnimations()[0]?.play()\n const avatarId = parseInt(melding.dataset?.avatarId)\n const avatarer = document.querySelector('instuliv-avatarer') as Avatarer\n avatarer.visAvsender(avatarId)\n}\n\nexport class IntroComponent extends HTMLElement {\n connectedCallback() {\n const observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n observer.unobserve(entry.target)\n const melding = entry.target as HTMLElement\n visMelding(melding)\n }\n }\n },\n { rootMargin: '0% 0% -50% 0%' },\n )\n for (const melding of Array.from(this.meldinger)) {\n observer.observe(melding)\n }\n\n const delay = new URLSearchParams(window.location.search).get('delay')\n if (delay) {\n setTimeout(() => {\n const melding = this.meldinger[0]\n visMelding(melding)\n }, parseInt(delay))\n }\n }\n\n get meldinger(): HTMLElement[] {\n return Array.from(this.querySelectorAll(`.${s.intromelding}.${s.venstre}`))\n }\n}\n","import { Avatarer } from './avatarer/avatarer.ts'\nimport s from '../../common/melding/melding.module.css'\n\nexport class InnholdComponent extends HTMLElement {\n #synligeMeldinger = new WeakSet()\n\n connectedCallback() {\n this.#animerAvsenderavatar()\n }\n\n disconnectedCallback() {}\n\n #animerAvsenderavatar() {\n const observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n this.#synligeMeldinger.add(entry.target)\n } else {\n this.#synligeMeldinger.delete(entry.target)\n }\n }\n\n const sorterteSynligeMeldinger = this.avatarmeldinger.filter((melding) =>\n this.#synligeMeldinger.has(melding),\n )\n const sisteMelding = sorterteSynligeMeldinger[sorterteSynligeMeldinger.length - 1]\n if (sisteMelding) {\n const avatarId = parseInt(sisteMelding.dataset?.avatarId)\n this.avatarer.visAvsender(avatarId)\n } else {\n this.avatarer.skjulAvsendere()\n }\n },\n { rootMargin: '0% 0% -50% 0%' },\n )\n for (const melding of Array.from(this.avatarmeldinger)) {\n observer.observe(melding)\n }\n }\n\n get avatarer(): Avatarer {\n return document.querySelector('instuliv-avatarer') as Avatarer\n }\n\n get avatarmeldinger(): HTMLElement[] {\n // Meldinger med tilhørende avatar-id\n return Array.from(this.querySelectorAll(`.${s.melding}[data-avatar-id]`))\n }\n}\n","import s from '../../../common/melding/melding.module.css'\n\nexport class ValgbarHistorie extends HTMLElement {\n #forsteMelding\n #prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches\n\n connectedCallback() {\n this.addEventListener('click', this.#handleClick)\n this.#forsteMelding = this.querySelector(`.${s.melding}`)\n this.#forsteMelding.addEventListener('melding-vist', this.#handleMeldingVist)\n }\n\n disconnectedCallback() {\n this.removeEventListener('click', this.#handleClick)\n this.#forsteMelding?.removeEventListener('melding-vist', this.#handleMeldingVist)\n this.#forsteMelding = null\n }\n\n #handleMeldingVist = () => {\n this.#showButton()\n }\n\n #handleClick = (e) => {\n const button = e.target.closest('button')\n if (!button) {\n return\n }\n\n button.setAttribute('hidden', '')\n button.nextSibling.removeAttribute('hidden')\n\n const nesteMelding = button.nextSibling.querySelector(`.${s.melding}`)\n nesteMelding.setAttribute('tabindex', '-1')\n nesteMelding.focus()\n\n this.#showMessages(button.nextSibling)\n }\n\n #showButton() {\n const animasjon = this.button.getAnimations()[0]\n if (animasjon && animasjon.playState === 'paused') {\n animasjon.play()\n }\n }\n\n #showMessages(container) {\n const meldinger = Array.from(container.querySelectorAll(`.${s.melding}`)) as HTMLElement[]\n for (let i = 0; i < meldinger.length; i++) {\n const meldingselement = meldinger[i]\n\n // eslint-disable-next-line compat/compat\n const effect = new KeyframeEffect(\n meldingselement,\n this.#prefersReducedMotion\n ? { opacity: [0, 1] }\n : { opacity: [0, 1], translate: ['0 25px', '0 0'] },\n { fill: 'backwards', duration: 200, delay: 125 * (i + 1), easing: 'ease-out' },\n )\n\n // eslint-disable-next-line compat/compat\n const animation = new Animation(effect)\n animation.play()\n }\n }\n\n get button() {\n return this.querySelector('button')\n }\n}\n","import s from '../../../common/melding/melding.module.css'\nexport class LurerDuPaa extends HTMLElement {\n #prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches\n async connectedCallback() {\n this.#setupInAnimation()\n for (const detailElement of this.detailElements) {\n detailElement.addEventListener('toggle', this.#handleToggle)\n }\n }\n\n disconnectedCallback() {\n for (const detailElement of this.detailElements) {\n detailElement.removeEventListener('toggle', this.#handleToggle)\n }\n }\n\n async #setupInAnimation() {\n if (window.matchMedia('(prefers-reduced-motion: no-preference)').matches) {\n const animasjon = new Animation(\n // @ts-ignore\n // eslint-disable-next-line compat/compat\n new KeyframeEffect(\n // Animerer et eget lag med klassen '.dekke'\n // Scroll-driven animations i chrome støtter ikke å animere pseudo-element enda.\n this,\n { opacity: [0, 1] },\n { fill: 'both', duration: 100000, easing: 'ease-out' },\n ),\n // @ts-ignore\n new ViewTimeline({\n axis: 'block',\n subject: this,\n inset: [CSS.percent(30), CSS.percent(40)],\n }),\n )\n // @ts-ignore\n animasjon.rangeStart = { rangeName: 'entry-crossing', offset: CSS.percent(0) }\n // @ts-ignore\n animasjon.rangeEnd = { rangeName: 'exit-crossing', offset: CSS.percent(0) }\n animasjon.play()\n // eslint-disable-next-line promise/catch-or-return\n await animasjon.finished\n animasjon.cancel()\n }\n }\n\n #handleToggle = (e) => {\n const details = e.target\n if (!details.hasAttribute('open')) {\n return\n }\n\n this.#showMessages(details)\n }\n\n #showMessages(details) {\n const meldinger = Array.from(details.querySelectorAll(`.${s.melding}`)) as HTMLElement[]\n for (let i = 0; i < meldinger.length; i++) {\n const meldingselement = meldinger[i]\n\n // eslint-disable-next-line compat/compat\n const effect = new KeyframeEffect(\n meldingselement,\n this.#prefersReducedMotion\n ? { opacity: [0, 1] }\n : { opacity: [0, 1], translate: ['0 25px', '0 0'] },\n { fill: 'backwards', duration: 200, delay: 125 * (i + 1), easing: 'ease-out' },\n )\n\n // eslint-disable-next-line compat/compat\n const animation = new Animation(effect)\n animation.play()\n }\n }\n\n get detailElements() {\n return Array.from(this.querySelectorAll('details,u-details'))\n }\n}\n","export class GrafElement extends HTMLElement {\n async connectedCallback() {\n if (window.matchMedia('(prefers-reduced-motion: no-preference)').matches) {\n const animasjon = new Animation(\n // @ts-ignore\n // eslint-disable-next-line compat/compat\n new KeyframeEffect(\n // Animerer et eget lag med klassen '.dekke'\n // Scroll-driven animations i chrome støtter ikke å animere pseudo-element enda.\n this.figcaptionElement,\n { opacity: [0, 1] },\n { fill: 'both', duration: 100000, easing: 'ease-out' },\n ),\n // @ts-ignore\n new ViewTimeline({\n axis: 'block',\n subject: this,\n inset: [CSS.percent(50), CSS.percent(0)],\n }),\n )\n // @ts-ignore\n animasjon.rangeStart = { rangeName: 'cover', offset: CSS.percent(25) }\n // @ts-ignore\n animasjon.rangeEnd = { rangeName: 'exit-crossing', offset: CSS.percent(0) }\n animasjon.play()\n // eslint-disable-next-line promise/catch-or-return\n await animasjon.finished\n animasjon.cancel()\n }\n }\n\n get figcaptionElement() {\n return this.querySelector('figcaption')\n }\n}\n","export class InteraktivGraf extends HTMLElement {\n connectedCallback() {\n this.addEventListener('click', this.#handleClick)\n this.addEventListener('focusin', this.#handleClick)\n }\n\n disconnectedCallback() {\n this.removeEventListener('click', this.#handleClick)\n this.removeEventListener('focusin', this.#handleClick)\n }\n\n #handleClick = (e) => {\n const selectedBar = e.target.closest(`g[aria-label]`)\n if (!selectedBar) {\n return\n }\n\n const bars = Array.from(this.querySelectorAll(`g[aria-label]`))\n for (const bar of bars) {\n const labelElement = bar.querySelector('[data-visible]')\n labelElement.setAttribute('data-visible', bar === selectedBar ? 'true' : 'false')\n }\n }\n}\n","export class BrodtekstComponent extends HTMLElement {\n async connectedCallback() {\n if (window.matchMedia('(prefers-reduced-motion: no-preference)').matches) {\n const animasjon = new Animation(\n // @ts-ignore\n // eslint-disable-next-line compat/compat\n new KeyframeEffect(\n // Animerer et eget lag med klassen '.dekke'\n // Scroll-driven animations i chrome støtter ikke å animere pseudo-element enda.\n this,\n { opacity: [0, 1] },\n { fill: 'both', duration: 100000, easing: 'ease-out' },\n ),\n // @ts-ignore\n new ViewTimeline({\n axis: 'block',\n subject: this,\n inset: [CSS.percent(30), CSS.percent(40)],\n }),\n )\n // @ts-ignore\n animasjon.rangeStart = { rangeName: 'entry-crossing', offset: CSS.percent(0) }\n // @ts-ignore\n animasjon.rangeEnd = { rangeName: 'exit-crossing', offset: CSS.percent(0) }\n animasjon.play()\n // eslint-disable-next-line promise/catch-or-return\n await animasjon.finished\n animasjon.cancel()\n }\n }\n}\n","export class VisMerElement extends HTMLElement {\n #button\n\n connectedCallback() {\n if (this.children.length > this.grense) {\n const sheet = new CSSStyleSheet()\n sheet.replaceSync(`\n button { \n display: block; \n padding: 0; \n border: none; \n background: none; \n font-family: inherit; \n color: inherit; \n font-size: inherit; \n line-height: inherit; \n }\n \n :host([data-expanded]) button {\n display: none; \n }\n \n :host(:not([data-expanded])) ::slotted(*:nth-child(n + 2)) {\n display: none;\n } \n `)\n\n const shadow = this.attachShadow({ mode: 'open' })\n shadow.adoptedStyleSheets = [sheet]\n const button = document.createElement('button')\n const antall = this.children.length - 1\n button.innerText = `+${antall} til`\n button.setAttribute('aria-label', `Se ${antall} bidragsytere til`)\n const slot = document.createElement('slot')\n shadow.appendChild(slot)\n shadow.appendChild(button)\n\n button.addEventListener('click', this.#handleClick)\n\n this.#button = button\n }\n }\n\n disconnectedCallback() {\n this.#button.removeEventListener('click', this.#handleClick)\n }\n\n #handleClick = () => {\n this.setAttribute('data-expanded', 'true')\n const nextElement = this.children[1] as HTMLElement\n nextElement.setAttribute('tabindex', '-1')\n nextElement.focus()\n }\n\n get grense() {\n return parseInt(this.dataset.grense ?? '3')\n }\n}\n","import { UHTMLDetailsElement, UHTMLSummaryElement } from '@u-elements/u-details'\nimport LevendeStillbilde from '@nrk/dh-basis-levende-stillbilde'\nimport { ViewportPositionMixin } from '@nrk/dh-basis-mixins'\nimport { getElementTag } from '../../lib/get-element-tag.ts'\nimport { config } from './config.ts'\nimport { safeDefine } from '../../lib/safe-define.ts'\nimport { SakComponent } from './sak.component.ts'\nimport { Avatarer } from './avatarer/avatarer.ts'\nimport { IntroComponent } from './intro/intro.ts'\nimport { InnholdComponent } from './innhold.component.ts'\nimport { ValgbarHistorie } from './valgbar-historie/valgbar-historie.ts'\nimport { LurerDuPaa } from './lurer-du-paa/lurer-du-paa.ts'\nimport { GrafElement } from './grafer/common/graf-element.ts'\nimport { InteraktivGraf } from '../../common/graf/interaktiv-graf.ts'\nimport { BrodtekstComponent } from './brodtekst/brodtekst.ts'\nimport { VisMerElement } from '../../common/vis-mer/vis-mer.ts'\nimport '../../common/avatarer.svg'\nimport '../../common/emojis/svgs/backhand-index-pointing-down.svg'\nimport '../../common/emojis/svgs/broken-heart.svg'\nimport '../../common/emojis/svgs/red-heart.svg'\nimport '../../common/emojis/svgs/smiling-face-with-smiling-eyes.svg'\nimport '../../common/emojis/svgs/heart-hands.svg'\nimport '@nrk/core-design-tokens/dist/color/nrk-color-tokens.css'\nimport '../../common/melding/melding.module.css'\nimport '../../common/tittel/tittel.module.css'\nimport './common/posisjoner.module.css'\nimport './common/intro-grid.module.css'\nimport './sak.module.css'\nimport './intro/intro.module.css'\nimport './intro/meldinger/meldinger.module.css'\nimport './avatarer/avatarer.module.css'\nimport './avatarer/posisjoner-intro.module.css'\nimport './avatarer/posisjoner-bunn.module.css'\nimport './avatarer/posisjoner-inaktive.module.css'\nimport './meldinger/meldinger.module.css'\nimport './lurer-du-paa/lurer-du-paa.module.css'\nimport './valgbar-historie/valgbar-historie.module.css'\nimport './brodtekst/brodtekst.module.css'\nimport './grafer/common/stolpe.module.css'\nimport './grafer/common/blob.module.css'\nimport './grafer/common/graf.module.css'\nimport './grafer/rusproblem-og-forverring/rusproblem-og-forverring.module.css'\nimport './grafer/sterkere-stoffer/sterkere-stoffer.module.css'\nimport './grafer/sterkere-stoffer/forste-gang-graf.module.css'\nimport './grafer/rusa-paa-institusjon/rusa-paa-institusjon.module.css'\nimport './grafer/rusa-foran-ansatte/rusa-foran-ansatte.module.css'\nimport './grafer/frekvens/frekvens.module.css'\nimport '@nrk/dh-article-player/index.css'\n\nconst tag = getElementTag(__APP_NAME__, config.moduleName, __APP_VERSION__)\n\nclass DHILLevendeStillbilde extends ViewportPositionMixin(LevendeStillbilde) {\n attributeChangedCallback(name, prevValue, newValue) {\n super.attributeChangedCallback?.(name, prevValue, newValue)\n if (name !== 'viewport-position') {\n return\n }\n const valueChanged = prevValue !== newValue\n if (!valueChanged) {\n return\n }\n\n // @ts-ignore\n this.setAttribute('data-viewport-position', newValue)\n }\n}\n\nclass AppElement extends HTMLElement {\n connectedCallback() {\n safeDefine('u-summary', UHTMLSummaryElement)\n safeDefine('u-details', UHTMLDetailsElement)\n safeDefine('instuliv-sak', SakComponent)\n safeDefine('instuliv-vis-mer', VisMerElement)\n safeDefine('instuliv-avatarer', Avatarer)\n safeDefine('instuliv-intro', IntroComponent)\n safeDefine('instuliv-innhold', InnholdComponent)\n safeDefine('valgbar-historie', ValgbarHistorie)\n safeDefine('instuliv-brodtekst', BrodtekstComponent)\n safeDefine('lurer-du-paa', LurerDuPaa)\n safeDefine('graf-element', GrafElement)\n safeDefine('dhil-interaktiv-graf', InteraktivGraf)\n // @ts-ignore\n safeDefine('dhil-levende-stillbilde', DHILLevendeStillbilde)\n\n // eslint-disable-next-line promise/catch-or-return\n import(/* webpackChunkName: \"article-player\" */ '@nrk/dh-article-player').then(\n // eslint-disable-next-line promise/always-return\n ({ DhArticlePlayerElement }) => {\n safeDefine('dhil-article-player', DhArticlePlayerElement)\n },\n )\n }\n}\n\nif (customElements.get(tag) === undefined) {\n customElements.define(tag, AppElement)\n}\n","export function getElementTag(name: string, entry: string, version: string): string {\n const formattedVersion = version ? `v${version.split('.')[0]}` : ''\n return `${name}-${entry}-${formattedVersion}`\n}\n","export const config = {\n moduleName: 'sak',\n}\n"],"names":["installedChunks","installChunk","kSampleStepSize","float32ArraySupported","Float32Array","A","aA1","aA2","B","C","calcBezier","aT","getSlope","LinearEasing","x","module","exports","mX1","mY1","mX2","mY2","Error","sampleValues","Array","i","getTForX","aX","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","Math","abs","binarySubdivide","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","m","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","f","e","chunkId","Promise","all","keys","reduce","promises","u","miniCssF","g","globalThis","this","Function","window","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","p","data","ids","modules","runtime","length","j","installedChunkData","push","promise","import","then","race","resolve","__accessCheck","member","msg","has","TypeError","__privateGet","IS_BROWSER","document","navigator","ARIA_CONTROLS","ARIA_EXPANDED","UHTMLElement","HTMLElement","bind","element","rest","action","split","forEach","type","Element","apply","on","off","attr","name","entries","map","name2","value2","getAttribute","removeAttribute","setAttribute","_shadowRoot","observers","WeakMap","mutationObserver","options","disconnect","delete","err","observer","MutationObserver","detail","handleEvent","observe","set","id","createElement","tagName","props","assign","instance","customElements","define","OPEN","USUMMARY_TAG","UHTMLDetailsElement","constructor","setter","super","WeakSet","add","__privateAdd","attachShadow","mode","slotAssignment","append","textContent","observedAttributes","connectedCallback","assignSlots","childList","getSlots","content","attributeChangedCallback","disconnectedCallback","prev","next","open","summary","children","find","el","nodeName","supportsHiddenUntilFound","node","toLowerCase","toString","hidden","style","display","getRootNode","querySelectorAll","uDetails","dispatchEvent","Event","UHTMLSummaryElement","role","tabIndex","event","details","parentElement","isClick","preventDefault","target","click","asButton","shadow","slots","self","contents","summarys","childNodes","Text","_typeof","iterator","toPropertyKey","t","toPrimitive","String","Number","configurable","writable","proto","match","matches","msMatchesSelector","webkitMatchesSelector","closest","arguments","ignore","concat","CustomEvent","bubbles","cancelable","createEvent","initCustomEvent","result","STATE_ATTR","VIEWPORT_POSITION_ATTR","DISABLE_FORCED_ATTRIBUTES_ATTR","IS_PAUSED","AUTOPLAY_BLOCKED","READY_STATE","isVisible","child","offsetParent","LevendeStillbilde","_visibleVideoElement","isPaused","paused","_shouldPlay","_playVideo","_pauseVideo","_updateVisibleVideoElement","_setVideoAttributes","_setEventListeners","_disconnecting","_removeEventListeners","prevValue","newValue","_updatePlayState","_preload","addEventListener","_handleResize","videoElements","_handlePlayChange","removeEventListener","requestAnimationFrame","nextVisibleVideo","_shouldPreload","disableForcedAttributes","_this$_visibleVideoEl","readyState","state","viewportPosition","_this$_visibleVideoEl2","_this$_visibleVideoEl3","load","reducedMotion","matchMedia","videoElement","autoplayBlocked","play","catch","console","error","pause","nodeList","slice","hasAttribute","val","boolValue","_classPrivateFieldGet2","s","_classPrivateFieldGet","receiver","privateMap","descriptor","_classPrivateFieldSet","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","dedupeId","dedupeMixin","mixin","mixinId","base","_base$_appliedMixins","_base$_appliedMixins2","_appliedMixins","extended","source","getOwnPropertyDescriptors","defineProperties","_classPrivateMethodInitSpec$1","privateSet","_checkPrivateRedeclaration$1","_classPrivateFieldInitSpec","privateCollection","_classPrivateMethodGet$1","fn","VIEWPORT_POSITIONS","ViewportPositionMixin","Base","_observer","_createIntersectionObserver","_disconnectIntersectionObserver","_handleIntersectionChange","_ref","intersection","isIntersecting","top","bottom","getBoundingClientRect","isAbove","innerHeight","_super$observedAttrib","_super$connectedCallb","_createIntersectionObserver2","_super$disconnectedCa","_disconnectIntersectionObserver2","viewportContainer","_document$scrollingEl","scrollingElement","documentElement","viewportIntersectionRoot","isViewport","_navigator","_navigator$userAgent","_navigator$userAgent$","isIFrame","location","parent","isChrome","userAgent","includes","IntersectionObserver","threshold","root","rootMargin","_classPrivateFieldGet3","unobserve","_classPrivateMethodInitSpec","_checkPrivateRedeclaration","_classStaticPrivateFieldSpecSet","classConstructor","_classCheckPrivateStaticAccess","_classCheckPrivateStaticFieldDescriptor","_class","_getTargetElements","_boundAttributes","AttributeBindingMixinDef","boundAttributes","attribute","targets","sourceAttribute","targetAttribute","sourceAttributeName","targetAttributeName","oldValue","_super$attributeChang","configuration","targetElements","_classPrivateMethodGet","_getTargetElements2","from","safeDefine","customElement","meldignerStyles","_avatarBunnAnimasjon","_classPrivateFieldLooseKey","_initialiserSkjulAvararerAnim","SakComponent","_playObserver","_setupObserver","_prefersReducedMotion","_setupAnimation","_visMelding","args","_visMelding2","_setupAnimation2","_classPrivateFieldLooseBase","entry","meldingselement","meldinger","melding","animert","_classPrivateFieldLoo","_classPrivateFieldLoo2","effect","KeyframeEffect","opacity","translate","fill","duration","easing","Animation","innkommendeAnimasjon","getAnimations","playState","finished","MeldingerMixin","_initialiserSkjulAvararerAnim2","venstre","sisteMelding","bunnPosisjoner","querySelector","posisjonerBunn","timeline","ViewTimeline","axis","subject","animasjon","rangeStart","rangeName","offset","CSS","percent","rangeEnd","CSSMathSum","px","getEasing","bezierEasing","x1","y1","x2","y2","steps","jumpterm","config","stepConfig","stepLength","stepHeight","extraRise","roundingFunction","stepEasing","ceil","floor","introAnimasjon","avatar","dekklag","posisjonselement","delay","random","lerp","start","end","_avatarer","_fixedContainer","_targets","_state","_previousTargetId","_currentTargetId","_avsender","_animationStartTime","_animationValues","_autoTargetObserver","_createFixedPositioningElement","_initializeIntro","_initializeTargets","_anchorToTarget","_beforeAnimation","_afterAnimation","_animate","_avluttIntro","_duration","_delay","Avatarer","_get_delay","_get_duration","_avluttIntro2","_animate2","_afterAnimation2","_beforeAnimation2","_anchorToTarget2","_initializeTargets2","_initializeIntro2","_createFixedPositioningElement2","Map","clear","visAvsender","avatarId","arrayIndeks","getComputedStyle","animation","subtree","cancel","animate","parseFloat","classList","avsender","skjulAvsendere","dataset","targetId","position","contain","left","right","pointerEvents","body","appendChild","heading","headingObserver","avatarTarget","plasseringer","plassering","plassId","containingBlock","avatarElements","currentTarget","inaktiveTarget","avatarTargets","avatarElement","_currentTarget$plasse","remove","toggle","fixed","removeProperty","getDekklag","visibility","transition","previousTarget","fallbackTarget","animationContainingBlocks","cb","_currentTarget$plasse2","_avatarTarget$dataset","startingOpacity","startingRect","targetOpacity","targetRect","dekklagOpacity","easeOut","easeJump","easeOpacity","loop","time","elapsed","containingBlockBoundaries","bcr","startingBCR","targetBCR","startTime","localProgress","min","max","easePosition","intersects","nextBcr","width","height","insertSorted","transform","toFixed","animasjoner","avatarIndex","parseInt","attachedAvatar","insertBefore","visMelding","_melding$dataset","IntroComponent","URLSearchParams","search","setTimeout","_synligeMeldinger","_animerAvsenderavatar","InnholdComponent","_animerAvsenderavatar2","avatarer","avatarmeldinger","sorterteSynligeMeldinger","_sisteMelding$dataset","_forsteMelding","_handleMeldingVist","_handleClick","_showButton","_showMessages","ValgbarHistorie","_showMessages2","_showButton2","button","nextSibling","nesteMelding","focus","container","_setupInAnimation","_handleToggle","LurerDuPaa","_setupInAnimation2","detailElement","detailElements","inset","GrafElement","figcaptionElement","InteraktivGraf","selectedBar","bars","bar","BrodtekstComponent","VisMerElement","_button","nextElement","grense","sheet","CSSStyleSheet","replaceSync","adoptedStyleSheets","antall","innerText","slot","_this$dataset$grense","tag","__APP_NAME__","version","__APP_VERSION__","DHILLevendeStillbilde","AppElement","DhArticlePlayerElement"],"sourceRoot":""}