{"version":3,"file":"static/js/2853.224d442e.chunk.js","mappings":"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","sources":["shared/handling-accordion/handling-accordion-component.jsx","shared/handling-accordion/handling-accordion-container-component.jsx"],"sourcesContent":["import React, { Component } from \"react\"\nimport Svg from \"../_svgs/svg\"\nimport ReactHtmlParser from \"react-html-parser\"\nimport * as SelectionFactoryHelper from \"../helpers/SelectionFactoryHelper\"\nimport * as endpoints from \"../../api/endpoints\"\nimport { isMobile } from \"react-device-detect\"\n\nexport default class HandlingAccordion extends Component {\n constructor(props) {\n super(props)\n\n this.state = {\n airlines: [],\n airlinesExpanded: false,\n prevHeight: undefined,\n showMoreButton: false,\n }\n\n if (props.showAirlines) this.getAirlines(this.props.handlingCompany, this.props.language)\n\n this.accordionRef = React.createRef()\n }\n\n componentDidMount() {\n if (window.location.hash?.replace(\"#\", \"\") === this.props.handlingCompany) {\n // waits until paint is done\n requestAnimationFrame(() => {\n this.openAccordionFromAnchor()\n })\n }\n }\n\n openAccordionFromAnchor = () => {\n const accordion = document.getElementById(this.props.handlingCompany)\n const accordionTrigger = accordion.querySelector(\".accordion-trigger\")\n if (accordionTrigger) {\n this.showHideContent(accordionTrigger, \".contentWrapper\")\n }\n }\n\n handleAccordion = (event, classname) => {\n let elem = event.currentTarget\n this.showHideContent(elem, classname)\n }\n\n showHideContent = (elem, classname) => {\n elem.__toggle = !elem.__toggle\n let target = elem.parentElement.querySelector(classname)\n if (elem.__toggle) {\n target.style.height = target.scrollHeight + \"px\"\n elem.classList.add(\"is-active\")\n } else {\n target.style.height = 0 + \"px\"\n elem.classList.remove(\"is-active\")\n }\n }\n\n handleAirlineAccordion = (event) => {\n let elem = event.currentTarget\n let airlines = elem.parentElement.querySelector(\".airlines\")\n if (airlines) {\n let contentWrapper = elem.parentElement\n if (contentWrapper) {\n elem.__toggle = !elem.__toggle\n if (elem.__toggle) {\n const prevHeight = contentWrapper.clientHeight\n airlines.style.overflow = null\n contentWrapper.style.height = contentWrapper.scrollHeight + \"px\"\n let state = { airlinesExpanded: true }\n if (!this.state.prevHeight) {\n state[\"prevHeight\"] = prevHeight\n }\n this.setState(state)\n } else {\n airlines.style.overflow = \"hidden\"\n contentWrapper.style.height = this.state.prevHeight + \"px\"\n this.setState({ airlinesExpanded: false })\n }\n }\n }\n }\n\n getAirlines = async (handlingCompany, language) => {\n const data = { handlingCompany: handlingCompany ?? \"\", language: language }\n const response = await endpoints.getAirlinesFromHandlingCompany(data)\n let airlines = []\n if (response && response.data) {\n airlines = response.data\n }\n this.setState({ airlines: airlines }, () => {\n requestAnimationFrame(() => {\n this.showButton()\n })\n\n // adjust accordion height to airlines\n const accordion = this.accordionRef.current\n let elem = accordion.querySelector(\".accordion-trigger\")\n let target = accordion.querySelector(\".contentWrapper\")\n if (elem.__toggle && elem.classList.contains(\"is-active\")) {\n target.style.height = target.scrollHeight + \"px\"\n elem.classList.add(\"is-active\")\n }\n })\n }\n\n showButton = () => {\n // if company info scrollheight < headline + list scrollheight, show button\n const accordion = this.accordionRef.current\n const companyInfo = accordion.querySelector(\".company-info\")\n const airlines = accordion.querySelector(\".airlines\")\n const airlinesHeadline = airlines.querySelector(\".headline\")\n const airlinesList = airlines.querySelector(\".list\")\n\n const infoHeight = companyInfo.scrollHeight\n const airlinesHeight = airlinesHeadline.scrollHeight + airlinesList.scrollHeight\n if (window.innerWidth < 768) {\n if (airlinesHeight > 230) this.setState({ showMoreButton: true })\n } else {\n if (airlinesHeight > infoHeight) this.setState({ showMoreButton: true })\n }\n }\n\n render() {\n const airlinesIcon = SelectionFactoryHelper.getFromSelectionFactory(this.props.airlinesIcon)\n const style = this.state.showMoreButton ? { paddingBottom: \"60px\" } : {}\n\n return (\n <div ref={this.accordionRef} className=\"accordionitem\" id={this.props.handlingCompany}>\n <h4 className=\"accordion-trigger\" onClick={(e) => this.handleAccordion(e, \".contentWrapper\")}>\n {this.props.headline}\n </h4>\n <div className=\"contentWrapper show-hide\">\n <div className=\"top-border\"></div>\n <div className=\"content\">\n <div className=\"company-info\">\n {this.props.contentArea && this.props.contentArea.length > 0\n ? this.props.contentArea.map((item, index) => {\n const icon = SelectionFactoryHelper.getFromSelectionFactory(item.icon)\n return (\n <div className=\"info-item\" key={`infoItem${index}`}>\n {item.iconUpload ? (\n <div className=\"icon\">\n <img src={item.iconUpload} alt=\"icon\" />\n </div>\n ) : icon ? (\n <Svg iconName={icon} fillColor={\"#071143\"} />\n ) : (\n \"\"\n )}\n <span>{ReactHtmlParser(item.richText)}</span>\n </div>\n )\n })\n : \"\"}\n </div>\n {this.props.showAirlines ? (\n <div className=\"airlines\" style={{ overflow: \"hidden\" }}>\n <div className=\"headline\">\n {this.props.airlinesIconUpload ? (\n <div className=\"icon\">\n <img src={this.props.airlinesIconUpload} alt=\"icon\" />\n </div>\n ) : airlinesIcon ? (\n <Svg iconName={airlinesIcon} fillColor={\"#071143\"} />\n ) : (\n \"\"\n )}\n <h5>{this.props.airlinesHeadline}</h5>\n </div>\n <ul className=\"list\" style={style}>\n {this.state.airlines && this.state.airlines.length > 0\n ? this.state.airlines.map((airline) => {\n return (\n <li key={airline.AirlineName_s}>\n <a href={airline.PageUrl_s}>\n {isMobile && airline.AirlineMobileName_s ? airline.AirlineMobileName_s : airline.AirlineName_s}\n </a>\n </li>\n )\n })\n : \"\"}\n </ul>\n </div>\n ) : (\n <div className=\"airlines\">\n <span className=\"rich\">{ReactHtmlParser(this.props.airlinesRichText)}</span>\n </div>\n )}\n </div>\n {this.props.showAirlines && this.state.showMoreButton ? (\n <div className={`viewmore ${this.state.airlinesExpanded ? \"open\" : \"\"}`} onClick={(e) => this.handleAirlineAccordion(e)}>\n {this.state.airlinesExpanded ? (\n <Svg iconName=\"minus_sign\" renderContainer={false} />\n ) : (\n <Svg iconName=\"plus_sign\" renderContainer={false} />\n )}{\" \"}\n {this.state.airlinesExpanded ? this.props.airlinesViewLess || \"Vis færre\" : this.props.airlinesViewMore || \"Vis flere\"}\n </div>\n ) : (\n \"\"\n )}\n </div>\n </div>\n )\n }\n}\n","import React, { Component } from \"react\"\nimport HandlingAccordion from \"./handling-accordion-component\"\nimport * as SelectionFactoryHelper from \"../helpers/SelectionFactoryHelper\"\nimport ReactHtmlParser from \"react-html-parser\"\n\nexport default class HandlingAccordionContainer extends Component {\n render() {\n const topPadding = SelectionFactoryHelper.getFromSelectionFactory(this.props.topPadding)\n return (\n <div className={`handling-accordion ${topPadding ? topPadding : \"\"}`}>\n <div className=\"w--wider\">\n <div className=\"infotext\">\n <h4>{this.props.headline}</h4>\n <div className=\"maintext\">{ReactHtmlParser(this.props.text)}</div>\n </div>\n {this.props.contentArea && this.props.contentArea.length > 0\n ? this.props.contentArea.map((item, index) => {\n return <HandlingAccordion key={index} {...item} language={this.props.language} />\n })\n : \"\"}\n </div>\n </div>\n )\n }\n}\n"],"names":["HandlingAccordion","_Component","props","_this","_classCallCheck","_callSuper","openAccordionFromAnchor","accordionTrigger","document","getElementById","handlingCompany","querySelector","showHideContent","handleAccordion","event","classname","elem","currentTarget","__toggle","target","parentElement","style","height","scrollHeight","classList","add","remove","handleAirlineAccordion","airlines","contentWrapper","prevHeight","clientHeight","overflow","state","airlinesExpanded","setState","getAirlines","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","language","data","response","wrap","_context","prev","next","endpoints","sent","requestAnimationFrame","showButton","accordion","accordionRef","current","contains","stop","_x","_x2","apply","arguments","companyInfo","airlinesHeadline","airlinesList","infoHeight","airlinesHeight","window","innerWidth","showMoreButton","undefined","showAirlines","React","_inherits","_createClass","key","value","_window$location$hash","_this2","location","hash","replace","this","_this3","airlinesIcon","SelectionFactoryHelper","paddingBottom","_jsxs","ref","className","id","children","_jsx","onClick","e","headline","contentArea","length","map","item","index","icon","iconUpload","src","alt","Svg","iconName","fillColor","ReactHtmlParser","richText","concat","airlinesIconUpload","airline","href","PageUrl_s","isMobile","AirlineMobileName_s","AirlineName_s","airlinesRichText","renderContainer","airlinesViewLess","airlinesViewMore","Component","HandlingAccordionContainer","topPadding","text","_objectSpread"],"sourceRoot":""}