{"version":3,"file":"static/js/5393.b5f19c4d.chunk.js","mappings":"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","sources":["helpers/mopinionHelpers.js","shared/allowed-items-list/allowed-items-list-component.jsx","shared/allowed-items-list/allowed-items-list-module.js","../node_modules/smoothscroll-polyfill/dist/smoothscroll.js"],"sourcesContent":["export function handleMopinion(id) {\n // Select all scripts with the given src attribute\n var existingScripts = document.querySelectorAll('script[src=\"//deploy.mopinion.com/js/pastease.js\"]')\n\n // Remove all selected scripts\n existingScripts.forEach((script) => {\n script.remove()\n })\n\n var js = document.createElement(\"script\")\n js.setAttribute(\"type\", \"text/javascript\")\n js.setAttribute(\"src\", \"//deploy.mopinion.com/js/pastease.js\")\n js.async = true\n\n js.addEventListener(\"load\", function () {\n var t = setInterval(function () {\n if (window.Pastease) {\n try {\n window.Pastease.load(id)\n clearInterval(t)\n } catch (e) {\n console.error(\"Error loading Mopinion\", e)\n }\n }\n }, 50)\n })\n\n document.getElementsByTagName(\"head\")[0].appendChild(js)\n}\n","import React, { Component, useCallback, useRef } from \"react\"\nimport Svg from \"../_svgs/svg\"\nimport { isMobile } from \"react-device-detect\"\nimport smoothscroll from \"smoothscroll-polyfill\"\nimport { htmlStringToReactElement } from \"../../helpers/html\"\nimport { handleMopinion } from \"../../helpers/mopinionHelpers\"\n\nexport default class AllowedItemsList extends Component {\n constructor(props) {\n super(props)\n\n const hash = decodeURIComponent(window.location.hash?.replace(\"#\", \"\"))\n const searchResult = this.searchForHash(hash, props)\n\n smoothscroll.polyfill()\n\n this.state = {\n allItems: props.items,\n popularItems: props.popularItems,\n remainingItems: props.remainingItems,\n items: props.remainingItems,\n query: \"\",\n itemsShown: searchResult.itemsShown,\n shownItems: searchResult.shownItems,\n initialAmount: searchResult.numberOfItems,\n hash: hash || \"\",\n activateAutoScroll: false,\n }\n }\n\n componentDidMount() {\n document.addEventListener(\"click\", (event) => {\n var target = event.target\n if (target.tagName.toLowerCase() === \"a\") {\n var href = target.getAttribute(\"href\")\n var link = new URL(href, window.location.href)\n if (link.hash && link.pathname === window.location.pathname && link.origin === window.location.origin) {\n event.preventDefault()\n const hash = decodeURIComponent(link.hash.replace(\"#\", \"\"))\n window.location.hash = hash\n const searchResult = this.searchForHash(hash, this.props, true)\n this.setState({\n hash: hash || \"\",\n itemsShown: searchResult.itemsShown,\n shownItems: searchResult.shownItems,\n initialAmount: searchResult.numberOfItems,\n })\n }\n }\n })\n handleMopinion(this.props.mopinionId)\n }\n\n componentDidUpdate() {\n handleMopinion(this.props.mopinionId)\n }\n\n searchForHash = (hash, props, update = false) => {\n const { textKeys } = props\n let numberOfItems = update ? this.state.itemsShown : isMobile ? textKeys.numberOfItemsMobile : textKeys.numberOfItems\n let shownItems = props.remainingItems?.slice(0, numberOfItems) || []\n if (hash) {\n const popularItemsIndex = this.findIndexWithProperty(props.popularItems, \"anchorId\", hash)\n if (popularItemsIndex < 0) {\n // look in remaining items if hash is not found in popular items\n const index = this.findIndexWithProperty(props.remainingItems, \"anchorId\", hash)\n if (index > -1 && index > numberOfItems) {\n numberOfItems = index + 5\n shownItems = props.remainingItems?.slice(0, numberOfItems) || []\n }\n }\n }\n return { hash: hash || \"\", itemsShown: numberOfItems, shownItems: shownItems, numberOfItems: numberOfItems }\n }\n\n findIndexWithProperty = (array, propName, propValue) => {\n for (var i = 0; i < array.length; i++) {\n if (array[i][propName] === propValue) {\n return i\n }\n }\n return -1\n }\n\n handleInput = (event) => {\n const name = event.target.name\n const value = event.target.value\n this.setState({ [name]: value })\n this.search(value)\n }\n\n search = async (query) => {\n const { textKeys } = this.props\n\n // reset to zero state\n if (query.length < 2) {\n const numberOfItems = isMobile ? textKeys.numberOfItemsMobile : textKeys.numberOfItems\n const shownItems = this.props.remainingItems.slice(0, numberOfItems)\n this.setState({ items: this.props.remainingItems, shownItems: shownItems, itemsShown: numberOfItems })\n return\n }\n\n let items = this.props.items.filter((item) => {\n let matches = []\n if (item.title) matches.push(this.isMatch(item.title, query))\n if (item.info) matches.push(this.isMatch(item.info, query))\n if (item.category) matches.push(this.isMatch(item.category, query))\n return matches.includes(true)\n })\n\n const numberOfItems = isMobile ? textKeys.numberOfItemsMobile : textKeys.numberOfItems\n const shownItems = items.slice(0, numberOfItems)\n this.setState({ items: items, shownItems: shownItems, itemsShown: numberOfItems })\n }\n\n isMatch = (text, query) => {\n const decodedText = this.decodeAndRemoveHtml(text)\n let isMatch = false\n const splitQuery = query.split(\" \").filter(Boolean)\n if (splitQuery.length > 1) {\n for (var i = 0; i < splitQuery.length; i++) {\n const part = splitQuery[i]\n if (part.length < 2) continue\n isMatch = this.matchString(decodedText, part)\n if (isMatch) return isMatch\n }\n } else {\n isMatch = this.matchString(decodedText, query)\n }\n return isMatch\n }\n\n matchString = (text, query) => {\n return text.toLowerCase().trim().indexOf(query.toLowerCase().trim()) > -1 ? true : false\n }\n\n decodeAndRemoveHtml(html) {\n var txt = document.createElement(\"textarea\")\n txt.innerHTML = html\n return txt.value.replace(/<\\/?[^>]+(>|$)/g, \"\")\n }\n\n handleMoreClick = (increase) => {\n const items = this.state.items ?? []\n const newAmount = this.state.itemsShown + increase\n const shownItems = items.slice(0, newAmount)\n this.setState({ itemsShown: newAmount, shownItems: shownItems, activateAutoScroll: true }, () => {\n var elements = document.getElementsByClassName(\"next-items-wrapper\")\n if (elements.length > 0) {\n const element = elements[0]\n element.classList.remove(\"open\")\n element.classList.add(\"opening\")\n setTimeout(function () {\n element.classList.remove(\"opening\")\n element.classList.add(\"open\")\n }, 500)\n }\n })\n }\n\n handleHideClick = () => {\n const { textKeys } = this.props\n const items = this.state.items ?? []\n const numberOfItems = isMobile ? textKeys.numberOfItemsMobile : textKeys.numberOfItems\n const shownItems = items.slice(0, numberOfItems)\n this.setState({ itemsShown: numberOfItems, shownItems: shownItems, activateAutoScroll: false }, () => {\n const searchField = document.getElementById(\"items-search-field\")\n if (searchField) {\n this.scrollIntoView(searchField)\n }\n })\n }\n\n scrollIntoView = (element) => {\n const siteHeader = document.getElementsByClassName(\"site-header\")[0]\n const headerOffset = siteHeader.clientHeight + 20\n const elementPosition = element.getBoundingClientRect().top\n const offsetPosition = elementPosition + window.pageYOffset - headerOffset\n\n window.scrollTo({\n top: offsetPosition,\n // behavior: \"smooth\"\n })\n }\n\n setToState = (data) => {\n this.setState(data)\n }\n\n render() {\n const { textKeys } = this.props\n\n const searchBarActive = this.state.query.length > 1\n return (\n <div className={`allowed-items-list ${this.props.descriptionIcons && this.props.descriptionIcons.length > 0 ? \"has-description-icons\" : \"\"}`}>\n <div className=\"items-list-inner\">\n {this.props.descriptionIcons && this.props.descriptionIcons.length > 0 ? (\n <div className={`icon-descriptions ${textKeys.disclaimerText ? \"no-bottom-padding\" : \"\"}`}>\n <div className=\"icon-descriptions-inner\">\n {this.props.descriptionIcons.map((item, index) => {\n return (\n <div className=\"item\" key={index}>\n <Svg iconName={item.icon} stroke={\"#FFF\"} fillColor={item.iconColor} />\n <span className=\"text\">{item.text}</span>\n </div>\n )\n })}\n </div>\n </div>\n ) : (\n \"\"\n )}\n {textKeys.disclaimerText ? <div className=\"disclaimer-box\" dangerouslySetInnerHTML={{ __html: textKeys.disclaimerText }}></div> : \"\"}\n </div>\n <div className=\"items-list-wrapper\">\n <div className=\"items-list-inner\">\n <div className=\"form\">\n <div className=\"form__section\">\n <div className=\"form__section__inner\">\n <div id=\"items-search-field\" className=\"search-field\">\n <input\n className=\"search-input\"\n name=\"query\"\n type=\"text\"\n placeholder={textKeys.searchFieldLabel || \"Søg på genstande\"}\n value={this.state.query}\n onChange={(e) => this.handleInput(e)}\n autoComplete=\"off\"\n />\n <button\n tabIndex={`${searchBarActive ? 0 : -1}`}\n className={`search-button ${searchBarActive ? \"active\" : \"\"}`}\n aria-hidden={`${searchBarActive ? \"false\" : \"true\"}`}\n onClick={searchBarActive ? () => this.setState({ query: \"\" }) : undefined}\n >\n <div className=\"search-icon\"></div>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n {this.state.query.length < 2 && this.state.popularItems && this.state.popularItems.length > 0 ? (\n <div className=\"most-popular-items\">\n <div className=\"items-list-inner\">\n <h2 className=\"items-headline\">{textKeys.mostPopularHeadline || \"Mest Populære\"}</h2>\n {this.state.popularItems.map((item, index) => {\n return (\n <Item\n key={item.info + index}\n item={item}\n checkinLabel={textKeys.checkinLabel || \"Indtjekket\"}\n handLuggageLabel={textKeys.handLuggageLabel || \"Håndbagage\"}\n scrollIntoView={this.scrollIntoView}\n setToState={this.setToState}\n hash={this.state.hash}\n mopinionScript={textKeys.mopinionScript || null}\n />\n )\n })}\n </div>\n </div>\n ) : (\n \"\"\n )}\n <div id=\"allowed-items\" className=\"items-list-inner padding-bottom\">\n {this.state.items && this.state.items.length > 0 ? (\n <React.Fragment>\n {searchBarActive ? null : <h2 className=\"items-headline\">{textKeys.alphabeticalHeadline || \"Fra A-Z\"}</h2>}\n <Items\n items={this.state.shownItems}\n allItems={this.state.items}\n increaseAmount={isMobile ? textKeys.numberOfItemsIncrementMobile : textKeys.numberOfItemsIncrement}\n initialAmount={this.state.initialAmount}\n amountShown={this.state.itemsShown}\n checkinLabel={textKeys.checkinLabel || \"Indtjekket\"}\n handLuggageLabel={textKeys.handLuggageLabel || \"Håndbagage\"}\n scrollIntoView={this.scrollIntoView}\n setToState={this.setToState}\n hash={this.state.hash}\n activateAutoScroll={this.state.activateAutoScroll}\n handleMoreClick={this.handleMoreClick}\n mopinionScript={this.props.mopinionScript || null}\n isMobile={isMobile}\n numberOfItemsIncrementMobile={textKeys.numberOfItemsIncrementMobile}\n numberOfItemsIncrement={textKeys.numberOfItemsIncrement}\n />\n <div className={`buttoncontainer ${this.state.items && this.state.items.length > textKeys.numberOfItems ? \"has-button\" : \"\"}`}>\n {this.state.items && this.state.items.length > textKeys.numberOfItems ? (\n <a\n className=\"button button--expander\"\n onClick={() =>\n this.state.itemsShown >= this.state.items.length\n ? this.handleHideClick()\n : this.handleMoreClick(isMobile ? textKeys.numberOfItemsIncrementMobile : textKeys.numberOfItemsIncrement)\n }\n >\n <span className=\"text\">\n {this.state.itemsShown >= this.state.items.length\n ? textKeys.showLessItemsText || \"Vis færre\"\n : textKeys.showMoreItemsText || \"Vis flere\"}\n </span>\n </a>\n ) : (\n \"\"\n )}\n </div>\n </React.Fragment>\n ) : (\n <div className=\"allowed-item-list__no-results\">\n <div className=\"section-header section-header--small\">\n <p>{textKeys.noResultsText.replace(\"{input}\", this.state.query)}</p>\n <div>\n <h2>{textKeys.noResultsHeader}</h2>\n <p>{textKeys.noResultsSubHeader}</p>\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n )\n }\n}\n\n//rewrote component to functional to make use of useCallback and useRef hooks.\nconst Items = ({\n allItems,\n hash,\n mopinionScript,\n handLuggageLabel,\n checkinLabel,\n scrollIntoView,\n setToState,\n amountShown,\n activateAutoScroll,\n increaseAmount,\n initialAmount,\n handleMoreClick,\n isMobile,\n numberOfItemsIncrementMobile,\n numberOfItemsIncrement,\n items,\n}) => {\n const observer = useRef()\n const lastItemElement = useCallback(\n (node) => {\n if (!node || allItems.length === 0) return\n if (observer.current) observer.current.disconnect()\n observer.current = new IntersectionObserver((entries) => {\n if (entries[0].isIntersecting && activateAutoScroll && items.length !== allItems.length) {\n handleMoreClick(isMobile ? numberOfItemsIncrementMobile : numberOfItemsIncrement)\n }\n })\n observer.current.observe(node)\n },\n [amountShown, items, activateAutoScroll],\n )\n\n if (allItems && allItems.length > 0) {\n const mappedItems = allItems.map((item, index) => {\n const isLastItem = items.length === index + 1\n return (\n <Item\n key={item.title + index}\n item={item}\n hash={hash}\n mopinionScript={mopinionScript}\n handLuggageLabel={handLuggageLabel}\n checkinLabel={checkinLabel}\n scrollIntoView={scrollIntoView}\n setToState={setToState}\n amountShown={amountShown}\n itemNumber={index + 1}\n refProp={isLastItem ? lastItemElement : null}\n />\n )\n })\n\n let oldItems = \"\"\n let newItems = \"\"\n\n let adjustedIncreaseAmount = increaseAmount\n const sizeDiff = allItems.length - amountShown\n if (sizeDiff < 0) {\n adjustedIncreaseAmount = increaseAmount - Math.abs(sizeDiff)\n }\n\n const index = mappedItems.length - adjustedIncreaseAmount\n oldItems = mappedItems.slice(0, index)\n newItems = mappedItems.slice(index)\n\n return (\n <React.Fragment>\n {oldItems}\n <div className={mappedItems.length <= initialAmount ? \"\" : \"next-items-wrapper\"}>{newItems}</div>\n </React.Fragment>\n )\n }\n return null\n}\n\nclass Item extends Component {\n handleAccordion = (event, classname, item) => {\n let elem = event.currentTarget\n this.showHideContent(elem, classname)\n }\n\n showHideContent = (elem, classname) => {\n elem.__toggle = !elem.__toggle\n let parent = elem.parentElement\n let target = parent.querySelector(classname)\n if (elem.__toggle) {\n target.style.height = target.scrollHeight + \"px\"\n parent.classList.add(\"is-active\")\n } else {\n target.style.height = 0 + \"px\"\n parent.classList.remove(\"is-active\")\n }\n }\n\n componentDidMount() {\n const hash = this.props.hash\n if (hash) {\n this.handleHash(hash)\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (prevProps.hash !== this.props.hash) {\n if (this.props.hash) {\n this.handleHash(this.props.hash)\n }\n }\n }\n\n handleHash(hash) {\n if (this.props.item.anchorId && hash === this.props.item.anchorId) {\n // waits until paint is done\n requestAnimationFrame(() => {\n this.openAccordionFromAnchor()\n })\n }\n if (this.props.setToState) {\n this.props.setToState({ hash: \"\" })\n }\n }\n\n openAccordionFromAnchor = () => {\n const accordion = document.getElementById(this.props.item.anchorId)\n const accordionTrigger = accordion.querySelector(\".itemtable\")\n if (accordionTrigger) {\n if (!accordionTrigger.classList.contains(\"is-active\")) this.showHideContent(accordionTrigger, \".contentWrapper\")\n\n if (this.props.scrollIntoView) this.props.scrollIntoView(accordion)\n }\n }\n\n handleTouchStart = (target) => {\n let parent = target.parentElement\n parent.classList.add(\"touched\")\n }\n\n handleTouchEnd = (target) => {\n let parent = target.parentElement\n parent.classList.remove(\"touched\")\n }\n\n render() {\n const { item } = this.props\n return (\n <div\n ref={this.props.refProp}\n id={item.anchorId}\n className={`item-list-item ${this.props.itemNumber > this.props.amountShown ? \"is-hidden\" : \"\"}${\" \" + this.props.itemNumber}`}\n >\n <div className={`button itemtable ${item.info ? \"\" : \"no-info\"}`}>\n <div\n className=\"iteminfo\"\n onClick={item.info ? (e) => this.handleAccordion(e, \".contentWrapper\", item) : undefined}\n onTouchStart={(e) => this.handleTouchStart(e.currentTarget)}\n onTouchEnd={(e) => this.handleTouchEnd(e.currentTarget)}\n >\n <div className=\"title\" dangerouslySetInnerHTML={{ __html: item.title }}></div>\n <div className=\"checkin\">\n <Svg iconName={item.checkinLogo} fillColor={item.checkinLogoColor} stroke={\"#FFF\"} />\n <span>{this.props.checkinLabel}</span>\n </div>\n <div className=\"handLuggage\">\n <Svg iconName={item.handLuggageLogo} fillColor={item.handLuggageLogoColor} stroke={\"#FFF\"} />\n <span>{this.props.handLuggageLabel}</span>\n </div>\n </div>\n {item.info ? (\n <div className=\"contentWrapper show-hide\">\n <span className=\"info-text\" dangerouslySetInnerHTML={{ __html: item.info }}></span>\n {this.props.mopinionScript ? htmlStringToReactElement(this.props.mopinionScript) : \"\"}\n </div>\n ) : (\n \"\"\n )}\n </div>\n </div>\n )\n }\n}\n","import React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport AllowedItemsList from \"./allowed-items-list-component\"\n\nexport default class AllowedItemsListModule {\n constructor(elem) {\n const self = this\n self.elem = elem\n self.mopinionId = elem.dataset.mopinionId && elem.dataset.mopinionId\n self.mopinionScript = elem.dataset.mopinionScript && elem.dataset.mopinionScript\n self.items = elem.dataset.items && JSON.parse(elem.dataset.items)\n self.popularItems = elem.dataset.popularItems && JSON.parse(elem.dataset.popularItems)\n self.remainingItems = elem.dataset.remainingItems && JSON.parse(elem.dataset.remainingItems)\n self.textKeys = elem.dataset.textKeys && JSON.parse(elem.dataset.textKeys)\n self.descriptionIcons = elem.dataset.descriptionIcons && JSON.parse(elem.dataset.descriptionIcons)\n this.init()\n return self\n }\n\n init() {\n const self = this\n ReactDOM.unmountComponentAtNode(self.elem)\n ReactDOM.render(\n <AllowedItemsList\n mopinionId={self.mopinionId}\n mopinionScript={self.mopinionScript}\n items={self.items}\n popularItems={self.popularItems}\n remainingItems={self.remainingItems}\n textKeys={self.textKeys}\n descriptionIcons={self.descriptionIcons}\n />,\n self.elem,\n )\n }\n}\n","/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n 'use strict';\n\n // polyfill\n function polyfill() {\n // aliases\n var w = window;\n var d = document;\n\n // return if scroll behavior is supported and polyfill is not forced\n if (\n 'scrollBehavior' in d.documentElement.style &&\n w.__forceSmoothScrollPolyfill__ !== true\n ) {\n return;\n }\n\n // globals\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468;\n\n // object gathering original scroll methods\n var original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView\n };\n\n // define timing method\n var now =\n w.performance && w.performance.now\n ? w.performance.now.bind(w.performance)\n : Date.now;\n\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n function shouldBailOut(firstArg) {\n if (\n firstArg === null ||\n typeof firstArg !== 'object' ||\n firstArg.behavior === undefined ||\n firstArg.behavior === 'auto' ||\n firstArg.behavior === 'instant'\n ) {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n }\n\n // throw error when behavior is not supported\n throw new TypeError(\n 'behavior member of ScrollOptions ' +\n firstArg.behavior +\n ' is not a valid value for enumeration ScrollBehavior.'\n );\n }\n\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n\n return isScrollableY || isScrollableX;\n }\n\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n\n return el;\n }\n\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n function step(context) {\n var time = now();\n var value;\n var currentX;\n var currentY;\n var elapsed = (time - context.startTime) / SCROLL_TIME;\n\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n\n // apply easing to elapsed time\n value = ease(elapsed);\n\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n\n context.method.call(context.scrollable, currentX, currentY);\n\n // scroll more if we have not reached our destination\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now();\n\n // define scroll context\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n\n // scroll looping over a frame\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y\n });\n }\n\n // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n w.scroll = w.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object'\n ? arguments[0]\n : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined\n ? arguments[1]\n : w.scrollY || w.pageYOffset\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : w.scrollX || w.pageXOffset,\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : w.scrollY || w.pageYOffset\n );\n };\n\n // w.scrollBy\n w.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object' ? arguments[0] : 0,\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined ? arguments[1] : 0\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n );\n };\n\n // Element.prototype.scroll and Element.prototype.scrollTo\n Element.prototype.scroll = Element.prototype.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop\n );\n\n return;\n }\n\n var left = arguments[0].left;\n var top = arguments[0].top;\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n this,\n this,\n typeof left === 'undefined' ? this.scrollLeft : ~~left,\n typeof top === 'undefined' ? this.scrollTop : ~~top\n );\n };\n\n // Element.prototype.scrollBy\n Element.prototype.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== undefined\n ? ~~arguments[0].left + this.scrollLeft\n : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== undefined\n ? ~~arguments[0].top + this.scrollTop\n : ~~arguments[1] + this.scrollTop\n );\n\n return;\n }\n\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n\n // Element.prototype.scrollIntoView\n Element.prototype.scrollIntoView = function() {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === undefined ? true : arguments[0]\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n var scrollableParent = findScrollableParent(this);\n var parentRects = scrollableParent.getBoundingClientRect();\n var clientRects = this.getBoundingClientRect();\n\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top\n );\n\n // reveal parent in viewport unless is fixed\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth'\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth'\n });\n }\n };\n }\n\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n // commonjs\n module.exports = { polyfill: polyfill };\n } else {\n // global\n polyfill();\n }\n\n}());\n"],"names":["handleMopinion","id","document","querySelectorAll","forEach","script","remove","js","createElement","setAttribute","async","addEventListener","t","setInterval","window","Pastease","load","clearInterval","e","console","error","getElementsByTagName","appendChild","AllowedItemsList","_Component","props","_window$location$hash","_this","_classCallCheck","_callSuper","searchForHash","hash","_props$remainingItems","update","arguments","length","undefined","textKeys","numberOfItems","state","itemsShown","isMobile","numberOfItemsMobile","shownItems","remainingItems","slice","findIndexWithProperty","popularItems","_props$remainingItems2","index","array","propName","propValue","i","handleInput","event","name","target","value","setState","_defineProperty","search","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","query","_numberOfItems","_shownItems","items","wrap","_context","prev","next","abrupt","filter","item","matches","title","push","isMatch","info","category","includes","stop","_x","apply","text","decodedText","decodeAndRemoveHtml","splitQuery","split","Boolean","part","matchString","toLowerCase","trim","indexOf","handleMoreClick","increase","_this$state$items","newAmount","activateAutoScroll","elements","getElementsByClassName","element","classList","add","setTimeout","handleHideClick","_this$state$items2","searchField","getElementById","scrollIntoView","headerOffset","clientHeight","offsetPosition","getBoundingClientRect","top","pageYOffset","scrollTo","setToState","data","decodeURIComponent","location","replace","searchResult","smoothscroll","allItems","initialAmount","_inherits","_createClass","key","_this2","tagName","href","getAttribute","link","URL","pathname","origin","preventDefault","this","mopinionId","html","txt","innerHTML","_this3","searchBarActive","_jsxs","className","concat","descriptionIcons","children","_jsx","disclaimerText","map","Svg","iconName","icon","stroke","fillColor","iconColor","dangerouslySetInnerHTML","__html","type","placeholder","searchFieldLabel","onChange","autoComplete","tabIndex","onClick","mostPopularHeadline","Item","checkinLabel","handLuggageLabel","mopinionScript","React","alphabeticalHeadline","Items","increaseAmount","numberOfItemsIncrementMobile","numberOfItemsIncrement","amountShown","showLessItemsText","showMoreItemsText","noResultsText","noResultsHeader","noResultsSubHeader","Component","_ref2","observer","useRef","lastItemElement","useCallback","node","current","disconnect","IntersectionObserver","entries","isIntersecting","observe","oldItems","newItems","mappedItems","isLastItem","itemNumber","refProp","adjustedIncreaseAmount","sizeDiff","Math","abs","_Component2","_this4","_len","args","Array","_key","handleAccordion","classname","elem","currentTarget","showHideContent","__toggle","parent","parentElement","querySelector","style","height","scrollHeight","openAccordionFromAnchor","accordion","anchorId","accordionTrigger","contains","handleTouchStart","handleTouchEnd","handleHash","prevProps","prevState","_this5","requestAnimationFrame","_this6","ref","onTouchStart","onTouchEnd","checkinLogo","checkinLogoColor","handLuggageLogo","handLuggageLogoColor","htmlStringToReactElement","AllowedItemsListModule","self","dataset","JSON","parse","init","ReactDOM","module","exports","polyfill","w","d","documentElement","__forceSmoothScrollPolyfill__","userAgent","Element","HTMLElement","SCROLL_TIME","original","scroll","scrollBy","elementScroll","prototype","scrollElement","now","performance","bind","Date","ROUNDING_TOLERANCE","navigator","RegExp","join","test","shouldBailOut","smoothScroll","call","body","left","scrollX","pageXOffset","scrollY","scrollLeft","scrollTop","SyntaxError","behavior","scrollableParent","el","isScrollable","parentNode","host","findScrollableParent","parentRects","clientRects","getComputedStyle","position","x","y","firstArg","TypeError","hasScrollableSpace","axis","clientWidth","scrollWidth","canOverflow","overflowValue","isScrollableY","isScrollableX","step","context","currentX","currentY","k","elapsed","startTime","cos","PI","startX","startY","method","scrollable"],"sourceRoot":""}