{"version":3,"file":"static/js/8247.2e0c65ea.chunk.js","mappings":"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","sources":["shared/full-width-typeahead-banner/typeahead-search-results.jsx","shared/full-width-typeahead-banner/full-width-typeahead-banner-module.js","typeahead/Services/httpService.js","typeahead/helpers/dataProvider.js"],"sourcesContent":["import React, { Component } from \"react\"\nimport { isMobile } from \"react-device-detect\"\nimport TruncateMarkup from \"react-truncate-markup\"\nimport reactStringReplace from \"react-string-replace\"\n\nexport default class TypeaheadSearchResults extends Component {\n stringReplace = (text, input) => {\n const words = input.split(\" \").filter(Boolean)\n const regex = new RegExp(\"(\" + words.join(\"*|\") + \")\", \"gi\")\n return reactStringReplace(text, regex, (match, i) => <strong key={match + i}>{match}</strong>)\n }\n\n render() {\n var noResults = (\n <div className=\"search-result-container__inner\">\n <div className=\"form__section__inner\">\n <div className=\"form__field no-results\">\n <p data-epi-edit=\"NoResults\">{this.props.noResults || \"Ingen resultater...\"}</p>\n </div>\n </div>\n </div>\n )\n\n if (this.props.data && this.props.data.count === 0) {\n return noResults\n } else if (!this.props.data) {\n return \"\"\n }\n const maxLines = isMobile ? 2 : 3\n return (\n <div className=\"search-result-container__inner\">\n {this.props.data?.docs?.map((article, index) => {\n const subheading = this.stringReplace(article.Subheading_s, this.props.query)\n return (\n <a href={article.PageUrl_s} key={index}>\n <div className=\"form__section__inner\">\n <div className=\"form__field\">\n <p className=\"section-title\">{article.Header_s}</p>\n <TruncateMarkup lines={maxLines} ellipsis={\"...\"}>\n <p className=\"section-subheading\">{subheading}</p>\n </TruncateMarkup>\n </div>\n </div>\n </a>\n )\n })}\n </div>\n )\n }\n}\n","import * as dataProvider from \"../../typeahead/helpers/dataProvider\"\nimport React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport * as endpoints from \"../../api/endpoints\"\nimport TypeaheadSearchResults from \"./typeahead-search-results\"\n\nexport default class FullWidthTypeaheadBannerModule {\n constructor(elem) {\n const self = this\n self.elem = elem\n self.elem.searchInput = elem.querySelector(\"[data-input-search]\")\n self.elem.searchResultContainer = elem.querySelector(\".js-search-result-container\")\n self.clearSearchFieldOnClose = true\n self.language = document.body && document.body.dataset.language\n self.init()\n return self\n }\n\n init() {\n const self = this\n if (self.elem.searchInput) {\n self.elem.searchInput.addEventListener(\"input\", (event) => self.handleSearch(event))\n self.elem.searchInput.addEventListener(\"blur\", (event) => self.handleRemoveSearch(event))\n }\n }\n\n getDataConfig() {\n const self = this\n const input = self.elem.searchInput\n if (input) {\n const config = input.dataset.inputSearch ? JSON.parse(input.dataset.inputSearch) : {}\n return config\n }\n }\n\n handleSearch = async (event) => {\n const self = this\n const { target } = event\n const fetchData = { query: target.value, language: self.language }\n const response = await this.getData(fetchData)\n if (response && response.data) {\n self.mountSearchResults(response.data, target.value)\n } else {\n self.mountSearchResults({}, target.value)\n }\n }\n\n getData = (data) => {\n return endpoints.getArticlesTypeahead(data)\n }\n\n mountSearchResults = (data, query) => {\n const self = this\n const searchResultContainer = self.elem.searchResultContainer\n const { filteredData, displayGroupNames } = dataProvider.createPageData(data, this.getDataConfig())\n if (searchResultContainer) {\n if (query.length > 0) {\n ReactDOM.unmountComponentAtNode(searchResultContainer)\n ReactDOM.render(\n <TypeaheadSearchResults\n dataConfig={this.getDataConfig()}\n data={filteredData}\n displayGroupNames={displayGroupNames}\n noResults={self.elem.searchInput.dataset.noResults}\n query={query}\n />,\n searchResultContainer,\n )\n } else {\n ReactDOM.unmountComponentAtNode(searchResultContainer)\n }\n }\n }\n\n handleRemoveSearch(event) {\n const { target } = event\n setTimeout(() => {\n if (this.clearSearchFieldOnClose) {\n target.value = \"\"\n }\n this.handleSearch(event)\n }, 100)\n }\n}\n","import axios from \"axios\"\n\naxios.defaults.headers.common[\"Content-Type\"] = \"application/json\"\n//axios.defaults.headers.common['Access-Control-Allow-Origin'] = '*';\n\nconst makeRequestCreator = () => {\n let call\n return (url) => {\n if (call) {\n call.cancel(\"Only one request allowed at a time.\")\n }\n call = axios.CancelToken.source()\n return axios.get(url, {\n cancelToken: call.token,\n })\n }\n}\n\nconst getRequest = makeRequestCreator()\n\nconst get = async (url) => {\n try {\n return await getRequest(url)\n } catch (err) {\n if (axios.isCancel(err)) {\n // console.error(`Cancelling previous request: ${err.message}`);\n }\n }\n}\n\nexport default {\n get: get,\n}\n","import http from \"../Services/httpService\"\nimport config from \"../config.json\"\nimport * as trackingHelper from \"../../helpers/tracking\"\n\nexport const getData = (query) => {\n return http.get(config.siteprefix + config.url + query)\n}\n\nexport const createPageData = (data, dataConfig, track = false, eventCategory = \"\", eventLabel = \"\") => {\n const displayGroupNames = {}\n var count = 0\n if (data) {\n for (var propName in data) {\n displayGroupNames[propName] = data[propName].displayGroupName\n if (data[propName].count === 0) {\n data[propName].docs = createZeroStateData(data[propName].docs, propName, dataConfig)\n //delete data[propName];\n } else {\n count += data[propName].count\n }\n }\n trackingHelper.handleSearchTrackingTimeout(track, eventCategory, \"typeahead - 0.5 sec\", eventLabel, count)\n return { filteredData: data, displayGroupNames: displayGroupNames, totalCount: count }\n }\n trackingHelper.handleSearchTrackingTimeout(track, eventCategory, \"typeahead - 0.5 sec\", eventLabel, count)\n return { filteredData: {}, displayGroupNames: displayGroupNames, totalCount: count }\n}\n\nexport const createZeroStateData = (docs, propName, dataConfig) => {\n let config = dataConfig\n if (!config) {\n const desktopSearchBox = document.querySelector(\"[data-input-search]\")\n let config = desktopSearchBox ? desktopSearchBox.dataset.inputSearch : \"\"\n if (config) {\n dataConfig = JSON.parse(config)\n }\n }\n\n if (docs && docs.length > 0) {\n return docs.map((element) => {\n element.name = config.zeroState.data[propName] ? config.zeroState.data[propName].name : \"\"\n element.url = config.zeroState.data[propName] ? config.zeroState.data[propName].url : \"\"\n element.displayGroupName = config.zeroState.data[propName] ? config.zeroState.data[propName].displayGroupName : \"\"\n return element\n })\n } else {\n // let typeahead = {}\n let zeroDataDocs = []\n if (config.zeroState && config.zeroState.data[propName]) {\n zeroDataDocs = config.zeroState.data[propName].map((element) => {\n element.isZeroData = true\n return element\n })\n }\n\n docs = zeroDataDocs\n // element.name = config.zeroState.data[propName] ? config.zeroState.data[propName].name : ''\n // element.url = config.zeroState.data[propName] ? config.zeroState.data[propName].url : ''\n // element.displayGroupName = config.zeroState.data[propName] ? config.zeroState.data[propName].displayGroupName : ''\n // docs.push(element)\n return docs\n }\n}\n"],"names":["TypeaheadSearchResults","_Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","stringReplace","text","input","words","split","filter","Boolean","regex","RegExp","join","reactStringReplace","match","i","_jsx","children","_inherits","_createClass","key","value","_this$props$data","_this$props$data$docs","_this2","noResults","className","this","props","data","count","maxLines","isMobile","docs","map","article","index","subheading","Subheading_s","query","href","PageUrl_s","_jsxs","Header_s","TruncateMarkup","lines","ellipsis","Component","FullWidthTypeaheadBannerModule","elem","handleSearch","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","event","self","target","fetchData","response","wrap","_context","prev","next","language","getData","sent","mountSearchResults","stop","_x","apply","endpoints","searchResultContainer","_dataProvider$createP","dataProvider","getDataConfig","filteredData","displayGroupNames","ReactDOM","dataConfig","searchInput","dataset","querySelector","clearSearchFieldOnClose","document","body","init","addEventListener","handleRemoveSearch","inputSearch","JSON","parse","setTimeout","axios","headers","common","getRequest","call","url","cancel","source","cancelToken","token","makeRequestCreator","get","abrupt","t0","http","config","createPageData","track","undefined","eventCategory","eventLabel","propName","displayGroupName","createZeroStateData","trackingHelper","totalCount","desktopSearchBox","element","name","zeroState","zeroDataDocs","isZeroData"],"sourceRoot":""}