{"version":3,"file":"static/js/6602.bd17c005.chunk.js","mappings":"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","sources":["shared/header/notice-banner.jsx","shared/header/header-module.js","shared/_svgs/small/Close.js","shared/modal/modal.jsx"],"sourcesContent":["import React, { useEffect, useState, useRef } from \"react\"\nimport * as cookieHelper from \"../../helpers/cookie\"\n\nexport default function NoticeBanner({ noticeBannerText, languageNotAvailable }) {\n const [show, setShow] = useState(false)\n const siteHeaderWrapperRef = useRef(null)\n\n useEffect(() => {\n siteHeaderWrapperRef.current = document.querySelector(\".site-header-wrapper-main\")\n if (!cookieHelper.getCookie(\"MegaMenuSpecialNotice\") && languageNotAvailable) {\n if (siteHeaderWrapperRef.current) {\n siteHeaderWrapperRef.current.classList.add(\"notice-showing\")\n }\n setShow(true)\n }\n }, [languageNotAvailable])\n\n const handleClose = () => {\n cookieHelper.setCookie(\"MegaMenuSpecialNotice\", \"closed\")\n if (siteHeaderWrapperRef.current) {\n siteHeaderWrapperRef.current.classList.remove(\"notice-showing\")\n }\n setShow(false)\n }\n\n return (\n <div className=\"notice-banner\" style={{ display: show ? \"block\" : \"none\" }}>\n <button className=\"notice-banner-close\" onClick={handleClose}></button>\n <div className=\"w--wider\">\n <p>{noticeBannerText || \"*Denne side er kun tilgængelig på engelsk.\"}</p>\n </div>\n </div>\n )\n}\n","import React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport Header from \"./header-component\"\nimport NoticeBanner from \"./notice-banner\"\n\nexport default class HeaderModule {\n constructor(elem) {\n const self = this\n self.elem = elem\n self.modelJson = elem.dataset.modelJson && JSON.parse(elem.dataset.modelJson)\n self.locale = (document.body && document.body.dataset.language) || \"da\"\n self.loginState = (elem.dataset.loginState && JSON.parse(elem.dataset.loginState)) || {}\n self.searchConfig = (elem.dataset.inputSearch && JSON.parse(elem.dataset.inputSearch)) || {}\n self.languages = (elem.dataset.languages && JSON.parse(elem.dataset.languages)) || {}\n self.init()\n return self\n }\n\n init() {\n const self = this\n ReactDOM.unmountComponentAtNode(self.elem)\n\n const currentUniverse = self.modelJson?.universes.filter((u) => u && u.currentUniverse)[0]\n\n ReactDOM.render(\n <header>\n <Header\n key={\"site-header\"}\n accessibilityHeaderItems={currentUniverse?.accessibilityHeaderItems || self.modelJson.accessibilityHeaderItems}\n onlyTopLevel={self.modelJson.disableMegaMenu}\n headerLinks={currentUniverse?.headerLinks || self.modelJson.headerLinks}\n logo={self.modelJson.logo}\n logoOverride={self.modelJson.logoOverride}\n logoLink={self.modelJson.logoLink}\n searchResultsPageLink={self.modelJson.searchResultsPageLink}\n shopLogo={currentUniverse?.shopLogo || self.modelJson.shopLogo}\n shopLogoLink={currentUniverse?.shopLogoLink || self.modelJson.shopLogoLink}\n shopLogoLinkTarget={currentUniverse?.shopLogoLinkTarget || self.modelJson.shopLogoLinkTarget}\n universes={self.modelJson.universes}\n universeSelection={self.modelJson?.universes || undefined}\n universesSelectText={self.modelJson.universesSelectText || \"CPH Websites\"}\n sectionNotAvailableText={self.modelJson.sectionNotAvailableText}\n pageNotAvailableText={self.modelJson.pageNotAvailableText}\n languages={self.languages}\n locale={self.locale}\n loginState={self.loginState}\n searchConfig={self.searchConfig}\n showLogin={currentUniverse?.showLogin || self.modelJson.showLogin}\n />\n <NoticeBanner noticeBannerText={self.modelJson.noticeBannerText} languageNotAvailable={self.modelJson.languageNotAvailable} />\n </header>,\n self.elem,\n )\n }\n}\n","import React from \"react\"\n\nconst SvgClose = (props) => (\n <svg viewBox=\"0 0 18 18\" {...props}>\n <path\n d=\"M16.5.086L17.914 1.5l-7.5 7.5 7.5 7.5-1.414 1.414-7.5-7.5-7.5 7.5L.086 16.5l7.5-7.5-7.5-7.5L1.5.086l7.5 7.5 7.5-7.5z\"\n fillRule=\"evenodd\"\n />\n </svg>\n)\n\nexport default SvgClose\n","import React, { Component } from \"react\"\nimport ReactModal from \"react-modal\"\n// eslint-disable-line no-unused-vars\n\nimport SvgClose from \"../_svgs/small/Close\"\n\nimport \"./_modal.scss\"\n\nclass Modal extends Component {\n static defaultProps = {\n modifier: \"\",\n overlayModifier: \"\",\n bodyModifier: \"\",\n externalState: false,\n closeHandler: null,\n afterOpenHandler: null,\n noScrollToTop: false,\n hideClose: false,\n children: (\n <div className=\"modal__content\">\n <div className=\"rich-text\">\n <h2>Lorem ipsum dolor</h2>\n <p>\n Assets A/B testing <a href=\"/#\">non-disclosure agreement</a> marketing low hanging fruit influencer gamification iteration android\n termsheet accelerator paradigm shift market. Seed money hackathon leverage. Crowdfunding advisor infrastructure influencer freemium\n gamification holy <strong>grail first mover</strong> advantage launch party. Ecosystem MVP alpha partnership angel investor termsheet long\n tail launch party android disruptive. Beta growth hacking partner network MVP buzz product management hypotheses. User experience long\n tail graphical user interface disruptive vesting period infographic mass market virality validation pivot. Mass market direct mailing\n social proof incubator long tail startup interaction design iPad. Pitch MVP crowdsource agile development. Traction facebook mass market\n success innovator entrepreneur business-to-consumer. Mass market A/B testing infographic beta conversion.\n </p>\n <h3>Lorem ipsum dolor</h3>\n <p>\n Assets A/B testing <a href=\"/#\">non-disclosure agreement</a> marketing low hanging fruit influencer gamification iteration android\n termsheet accelerator paradigm shift market. Seed money hackathon leverage. Crowdfunding advisor infrastructure influencer freemium\n gamification holy <strong>grail first mover</strong> advantage launch party. Ecosystem MVP alpha partnership angel investor termsheet long\n tail launch party android disruptive. Beta growth hacking partner network MVP buzz product management hypotheses. User experience long\n tail graphical user interface disruptive vesting period infographic mass market virality validation pivot. Mass market direct mailing\n social proof incubator long tail startup interaction design iPad. Pitch MVP crowdsource agile development. Traction facebook mass market\n success innovator entrepreneur business-to-consumer. Mass market A/B testing infographic beta conversion.\n </p>\n <h4>Lorem ipsum dolor</h4>\n <p>\n Assets A/B testing <a href=\"/#\">non-disclosure agreement</a> marketing low hanging fruit influencer gamification iteration android\n termsheet accelerator paradigm shift market. Seed money hackathon leverage. Crowdfunding advisor infrastructure influencer freemium\n gamification holy <strong>grail first mover</strong> advantage launch party. Ecosystem MVP alpha partnership angel investor termsheet long\n tail launch party android disruptive. Beta growth hacking partner network MVP buzz product management hypotheses. User experience long\n tail graphical user interface disruptive vesting period infographic mass market virality validation pivot. Mass market direct mailing\n social proof incubator long tail startup interaction design iPad. Pitch MVP crowdsource agile development. Traction facebook mass market\n success innovator entrepreneur business-to-consumer. Mass market A/B testing infographic beta conversion.\n </p>\n <h5>Lorem ipsum dolor</h5>\n <p>\n Assets A/B testing <a href=\"/#\">non-disclosure agreement</a> marketing low hanging fruit influencer gamification iteration android\n termsheet accelerator paradigm shift market. Seed money hackathon leverage. Crowdfunding advisor infrastructure influencer freemium\n gamification holy <strong>grail first mover</strong> advantage launch party. Ecosystem MVP alpha partnership angel investor termsheet long\n tail launch party android disruptive. Beta growth hacking partner network MVP buzz product management hypotheses. User experience long\n tail graphical user interface disruptive vesting period infographic mass market virality validation pivot. Mass market direct mailing\n social proof incubator long tail startup interaction design iPad. Pitch MVP crowdsource agile development. Traction facebook mass market\n success innovator entrepreneur business-to-consumer. Mass market A/B testing infographic beta conversion.\n </p>\n </div>\n </div>\n ),\n }\n\n constructor() {\n super()\n this.state = {\n showModal: false,\n }\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n let returnObj = {}\n if (nextProps.externalState && typeof nextProps.isOpen !== \"undefined\" && nextProps.isOpen !== prevState.showModal)\n returnObj.showModal = nextProps.isOpen\n return returnObj\n }\n\n onAfterOpenHandler = (event) => {\n if (!this.props.noScrollToTop) window.scrollTo(0, 0)\n window.dispatchEvent(new CustomEvent(\"modal:render\", { detail: { modal: { el: event.contentEl } } }))\n if (this.props.afterOpenHandler) {\n this.props.afterOpenHandler(this)\n }\n }\n\n handleOpenModal = (event) => {\n this.setState({ showModal: true }, () => console.debug(this.state))\n }\n\n handleCloseModal = (event) => {\n if (this.props.closeHandler) {\n this.props.closeHandler(this)\n } else {\n this.setState({ showModal: false })\n }\n }\n\n componentDidMount() {\n ReactModal.setAppElement(\"body\")\n\n if (this.props.isOpen) this.setState({ showModal: true })\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.isOpen !== this.props.isOpen) this.setState({ showModal: this.props.isOpen })\n }\n\n render() {\n return (\n <div className=\"modal\">\n {!this.props.externalState && <button onClick={this.handleOpenModal}>Trigger Modal</button>}\n\n <ReactModal\n onRequestClose={this.handleCloseModal.bind(this)}\n onAfterOpen={this.onAfterOpenHandler.bind(this)}\n closeTimeoutMS={200}\n isOpen={this.state.showModal}\n contentLabel=\"Minimal Modal Example\"\n className={`modal__box ${this.props.modifier}`}\n overlayClassName={this.props.overlayModifier}\n bodyOpenClassName={this.props.bodyModifier}\n >\n {!this.props.hideClose ? (\n <button className=\"modal__close\" onClick={this.handleCloseModal.bind(this)}>\n <SvgClose />\n </button>\n ) : (\n \"\"\n )}\n {this.props.children}\n </ReactModal>\n </div>\n )\n }\n}\n\nexport default Modal\n"],"names":["NoticeBanner","_ref","noticeBannerText","languageNotAvailable","_useState","useState","_useState2","_slicedToArray","show","setShow","siteHeaderWrapperRef","useRef","useEffect","current","document","querySelector","cookieHelper","classList","add","_jsxs","className","style","display","children","_jsx","onClick","remove","HeaderModule","_createClass","elem","_classCallCheck","self","this","modelJson","dataset","JSON","parse","locale","body","language","loginState","searchConfig","inputSearch","languages","init","key","value","_self$modelJson","_self$modelJson2","ReactDOM","currentUniverse","universes","filter","u","Header","accessibilityHeaderItems","onlyTopLevel","disableMegaMenu","headerLinks","logo","logoOverride","logoLink","searchResultsPageLink","shopLogo","shopLogoLink","shopLogoLinkTarget","universeSelection","undefined","universesSelectText","sectionNotAvailableText","pageNotAvailableText","showLogin","props","_objectSpread","viewBox","d","fillRule","Modal","_Component","_this","_callSuper","onAfterOpenHandler","event","noScrollToTop","window","scrollTo","dispatchEvent","CustomEvent","detail","modal","el","contentEl","afterOpenHandler","handleOpenModal","setState","showModal","console","debug","state","handleCloseModal","closeHandler","_inherits","ReactModal","isOpen","prevProps","externalState","onRequestClose","bind","onAfterOpen","closeTimeoutMS","contentLabel","concat","modifier","overlayClassName","overlayModifier","bodyOpenClassName","bodyModifier","hideClose","SvgClose","nextProps","prevState","returnObj","Component","defaultProps","href"],"sourceRoot":""}