{"version":3,"file":"static/js/7967.23cf4481.chunk.js","mappings":"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","sources":["constants/emits.js","helpers/emitter.js","shared/_svgs/mini/Plus.js","shared/tag-list/tag-list.jsx","shared/tag-list/tag-list-module.js"],"sourcesContent":["export const CART_UPDATED = \"CART_UPDATED\"\nexport const REQUEST_ERROR_MODAL_OPEN = \"REQUEST_ERROR_MODAL_OPEN\"\nexport const REQUEST_MAP_MODAL_OPEN = \"REQUEST_MAP_MODAL_OPEN\"\nexport const REQUEST_CONTENT_MODAL_OPEN = \"REQUEST_CONTENT_MODAL_OPEN\"\nexport const REQUEST_DESTINATION_MODAL_OPEN = \"REQUEST_DESTINATION_MODAL_OPEN\"\nexport const REQUEST_QA_MODAL_OPEN = \"REQUEST_QA_MODAL_OPEN\"\nexport const SEARCH_FACETS_UPDATED = \"SEARCH_FACETS_UPDATED\"\nexport const SEARCH_FILTER_ACTIVATED = \"SEARCH_FILTER_ACTIVATED\"\nexport const SEARCH_FILTER_DEACTIVATED = \"SEARCH_FILTER_DEACTIVATED\"\nexport const SEARCH_ACTIVATED = \"SEARCH_ACTIVATED\"\nexport const DESTINATION_UPDATED = \"DESTINATION_UPDATED\"\nexport const COUPON_UPDATED = \"COUPON_UPDATED\"\nexport const REQUEST_MERCHANT_CONTACT_MODAL = \"REQUEST_MERCHANT_CONTACT_MODAL\"\nexport const REQUEST_ITINERARY_SIGNUP_MODAL = \"REQUEST_ITINERARY_SIGNUP_MODAL\"\nexport const REQUEST_FOLLOW_FLIGHT_COMPONENT = \"REQUEST_FOLLOW_FLIGHT_COMPONENT\"\nexport const REQUEST_FLIGHT_SIGNUP_MODAL = \"REQUEST_FLIGHT_SIGNUP_MODAL\"\n","import mitt from \"mitt\"\n\nexport let Emitter = mitt()\n\nexport default Emitter\n","import React from \"react\"\n\nconst SvgPlus = (props) => (\n <svg viewBox=\"0 0 10 10\" {...props}>\n <path d=\"M6 0v4h4v2H6v4H4V6H0V4h4V0h2z\" fillRule=\"evenodd\" />\n </svg>\n)\n\nexport default SvgPlus\n","import React, { Component } from \"react\"\n// import measureElement from \"../utils/js/measureElement\";\n\n// eslint-disable-line no-unused-vars\nimport SvgPlus from \"../_svgs/mini/Plus\"\nimport { isBrowser } from \"react-device-detect\"\nimport qs from \"query-string\"\n\nimport Emitter from \"../../helpers/emitter\"\nimport * as emits from \"../../constants/emits\"\nimport * as trackingHelper from \"../../helpers/tracking\"\n\nimport \"./_tag-list.scss\"\n\nclass TagList extends Component {\n static defaultProps = {\n modifier: \"\",\n tags: [\n { label: \"Dagcreme\", amount: 12, url: \"#\" },\n { label: \"Natcreme\", amount: 2, url: \"#\" },\n { label: \"Øjenpleje\", amount: 465, url: \"#\" },\n { label: \"Gaveæsker\", amount: 20, url: \"#\" },\n { label: \"Ansigtsmasker\", amount: 1, url: \"#\" },\n { label: \"Consectetur\", amount: 1, url: \"#\" },\n { label: \"Lorem\", amount: 1, url: \"#\" },\n { label: \"Ipsum\", amount: 1, url: \"#\" },\n { label: \"Dolor\", amount: 1, url: \"#\" },\n { label: \"Sit\", amount: 1, url: \"#\" },\n { label: \"Amet\", amount: 1, url: \"#\" },\n { label: \"Adipiscing\", amount: 1, url: \"#\" },\n { label: \"Elit\", amount: 1, url: \"#\" },\n { label: \"QUam\", amount: 1, url: \"#\" },\n ],\n headline: {},\n description: {},\n defaultHeadlineText: \"this is the headline\",\n defaultDescriptionText: \"this is the description\",\n expandLabelText: \"se flere\",\n }\n\n constructor(props) {\n super(props)\n\n this.tagListRef = React.createRef()\n\n let isTablet = window.innerWidth > 750 && window.innerWidth < 950\n\n let queryString = qs.parse(window.location.search)\n\n const selectedTaxonomies = Array.isArray(queryString[\"t\"]) ? queryString[\"t\"] : queryString[\"t\"] ? [queryString[\"t\"]] : []\n\n const selectedValues = this.props.tags.filter((tag) => selectedTaxonomies.find((tax) => tag.taxonomyFilter === tax))\n\n this.state = {\n tagMaxHeight: isTablet ? 80 : isBrowser ? 40 : 108,\n measuredHeight: 0,\n expanded: false,\n tags: this.props.tags || [],\n tagsShown: [],\n tagsHidden: [...this.props.tags],\n iterations: 0,\n ready: false,\n selectedValues,\n activeTaxonomies: [],\n }\n\n //Tablet: 80 | 2 x (30h+5m+5m)\n //Desktop: 40 | 1 x (30h+5m+5m)\n //Mobile: 108 | 3 x (30h+3m+3m)\n\n //console.log(\"tagMaxHeight:\"+this.state.tagMaxHeight)\n }\n\n expandAllHandler = () => {\n this.setState({ expanded: true, ready: true })\n this.setState({ tagsShown: this.state.tagsShown.concat(this.state.tagsHidden), tagsHidden: [] })\n }\n\n handleEvent(event) {\n const { type } = event\n switch (type) {\n case emits.SEARCH_FACETS_UPDATED:\n console.debug(emits.SEARCH_FACETS_UPDATED, event.facets)\n this.setTagsAndTaxonomyData(event.facets)\n break\n default:\n // ignore\n }\n }\n\n componentDidMount() {\n Emitter.on(\"*\", (event) => this.handleEvent(event))\n this.injectTagRecursive()\n }\n\n setTagsAndTaxonomyData(facets) {\n const taxonomyFacet = facets && facets.find((f) => f.id === \"AllTaxonomies_ss\")\n if (taxonomyFacet) {\n const { tags } = this.state\n const selectedTaxonomies = taxonomyFacet.data.filter((tax) => tax.checked)\n tags.map((tag) => {\n const tagFilter = tag.taxonomyFilter.split(\"*\")[0]\n const selectedTag = selectedTaxonomies.find((sTax) => sTax.filter.endsWith(tagFilter))\n tag.checked = !!selectedTag\n return tag\n })\n const selectedValues = tags.filter((tag) => tag.checked)\n this.setState({ tags, activeTaxonomies: taxonomyFacet.data, selectedValues })\n } else {\n this.setState({ activeTaxonomies: [] })\n }\n }\n\n injectTagRecursive = () => {\n // let measuredHeight = measureElement(this.refs['tag-list']).height,\n // let measuredHeight = document.querySelector('.tag-list').clientHeight,\n\n let measuredHeight = this.tagListRef.current.clientHeight,\n tagsShown = this.state.tagsShown,\n tagsHidden = this.state.tagsHidden,\n nextTag = tagsHidden[0]\n\n if (this.state.iterations > 100) {\n // INFINITE LOOP FAILSAFE\n return false\n }\n\n //console.log(measuredHeight + \" > \"+this.state.tagMaxHeight+\" ?\")\n if (!nextTag) {\n this.setState({ expanded: true, ready: true })\n // console.log(\"...all tags shown!\")\n } else if (measuredHeight <= this.state.tagMaxHeight) {\n tagsShown.push(nextTag)\n tagsHidden.shift()\n //console.log(\"...still room...\")\n // console.log(\"tagsShown\"+tagsShown);\n // console.log(\"tagsHidden\"+tagsHidden);\n\n this.setState({ tagsShown: tagsShown, tagsHidden: tagsHidden }, () => {\n this.injectTagRecursive()\n })\n // this.setState({tagsHidden:tagsHidden});\n\n //console.table(this.state.tagsShown.length);\n } else {\n tagsHidden.unshift(tagsShown.pop())\n this.setState({ tagsShown: tagsShown, tagsHidden: tagsHidden })\n this.setState({ ready: true })\n\n //console.log(\"...no more!\")\n }\n this.setState({ iterations: this.state.iterations + 1 })\n }\n\n onTagChange = (event) => {\n const checkbox = event.target\n let { selectedValues } = this.state\n const currentTag = this.state.tags.find((t) => t.label === checkbox.name)\n let queryString = qs.parse(window.location.search)\n let taxonomies = queryString[\"t\"] || []\n if (!Array.isArray(taxonomies)) taxonomies = [taxonomies]\n\n if (checkbox.checked) {\n selectedValues.push(currentTag)\n taxonomies.push(currentTag.taxonomyFilter)\n queryString[\"t\"] = taxonomies\n if (selectedValues.length === 1) {\n // single selection\n window.history.replaceState({}, currentTag.label, currentTag.url + \"?\" + qs.stringify(queryString))\n this.props.headline.innerText = currentTag.label\n this.props.description.innerText = currentTag.description || \"\"\n } else {\n // multiple selections\n // selectedValues.map(v => taxonomies.push(v.taxonomyFilter))\n // queryString[\"f\"] = taxonomies\n window.history.replaceState({}, this.props.defaultHeadlineText, this.props.defaultUrl + \"?\" + qs.stringify(queryString))\n this.props.headline.innerText = this.props.defaultHeadlineText\n this.props.description.innerText = this.props.defaultDescriptionText || \"\"\n }\n Emitter.emit(\"*\", {\n type: emits.SEARCH_FILTER_ACTIVATED,\n filter: currentTag,\n })\n } else {\n selectedValues = selectedValues.filter((s) => s.label !== currentTag.label)\n taxonomies = taxonomies.filter((f) => f !== currentTag.taxonomyFilter)\n queryString[\"t\"] = taxonomies\n if (selectedValues.length === 0) {\n // no selections\n window.history.replaceState({}, this.props.defaultHeadlineText, this.props.defaultUrl + \"?\" + qs.stringify(queryString))\n this.props.headline.innerText = this.props.defaultHeadlineText\n this.props.description.innerText = this.props.defaultDescriptionText || \"\"\n // TODO clear taxonomies\n } else if (selectedValues.length > 1) {\n window.history.replaceState({}, this.props.defaultHeadlineText, this.props.defaultUrl + \"?\" + qs.stringify(queryString))\n // still multiple\n // no history change\n // window.history.replaceState({},this.props.defaultHeadlineText,this.props.defaultUrl)\n } else {\n // down to exactly one find the selected one\n const singleTag = selectedValues[0]\n window.history.replaceState({}, singleTag.label, singleTag.url + \"?\" + qs.stringify(queryString))\n this.props.headline.innerText = singleTag.label\n this.props.description.innerText = singleTag.description || \"\"\n }\n Emitter.emit(\"*\", {\n type: emits.SEARCH_FILTER_DEACTIVATED,\n filter: currentTag,\n })\n console.debug(\"unselected:\", currentTag)\n }\n\n this.setState({ selectedValues })\n }\n\n async trackClick(filterTag) {\n await trackingHelper.trackFilterClick(filterTag, \"filter products - tag\")\n }\n\n render() {\n return (\n <div className={`tag-list ${this.state.ready ? \"is-ready\" : \"\"}`} ref={this.tagListRef} data-responsive>\n {this.state.tagsShown &&\n this.state.tagsShown.map((item, index) => {\n const { activeTaxonomies, selectedValues } = this.state\n const isSelected = selectedValues.find((t) => t.taxonomyFilter === item.taxonomyFilter)\n const activeTax = activeTaxonomies.find((at) => at.title + \"*\" === item.taxonomyFilter)\n const count = activeTax && activeTax.count\n return (\n <div className=\"tag\" key={index}>\n <input\n name={item.label}\n id={`tag-${index}`}\n type=\"checkbox\"\n onClick={() => this.trackClick(item.label)}\n key={index}\n onChange={this.onTagChange}\n defaultChecked={isSelected}\n value={isSelected}\n />\n <label className=\"tag__text\" htmlFor={`tag-${index}`}>\n {item.label} ({count || 0})\n </label>\n </div>\n )\n })}\n {!this.state.expanded && (\n <button className=\"tag\" onClick={this.expandAllHandler}>\n <span className=\"tag__text\">\n <span>{this.props.expandLabelText}</span> <SvgPlus />\n </span>\n </button>\n )}\n </div>\n )\n }\n}\n\nexport default TagList\n","import React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport TagList from \"./tag-list\"\n\nexport default class TagListModule {\n constructor(elem) {\n const self = this\n self.elem = elem\n const subcategories = elem.dataset.subcategories && JSON.parse(elem.dataset.subcategories)\n self.tags = []\n subcategories &&\n subcategories.forEach((subcategory) => {\n self.tags.push({\n label: subcategory.title,\n description: subcategory.description,\n amount: subcategory.productCount,\n url: subcategory.url,\n taxonomyFilter: subcategory.taxonomyFilter,\n checked: false,\n })\n })\n\n self.headline = elem.parentNode.querySelector(\"h1\")\n self.description = elem.parentNode.querySelector(\"p\")\n self.defaultHeadlineText = elem.dataset.mainCategoryTitle || self.headline.innerText\n self.defaultDescriptionText = elem.dataset.mainCategoryDescription || self.description.innerText\n self.defaultUrl = elem.dataset.mainCategoryUrl || window.location.pathname\n self.textKeys = elem.dataset.textKeys || {}\n self.init()\n return self\n }\n\n init() {\n const self = this\n ReactDOM.unmountComponentAtNode(self.elem)\n ReactDOM.render(\n <TagList\n modifier={self.elem.modifier}\n tags={self.tags}\n headline={self.headline}\n description={self.description}\n defaultHeadlineText={self.defaultHeadlineText}\n defaultDescriptionText={self.defaultDescriptionText}\n defaultUrl={self.defaultUrl}\n expandLabelText={self.textKeys.showAllTagsLabel || \"se flere\"}\n />,\n self.elem,\n )\n }\n}\n"],"names":["REQUEST_ERROR_MODAL_OPEN","REQUEST_MAP_MODAL_OPEN","REQUEST_CONTENT_MODAL_OPEN","REQUEST_QA_MODAL_OPEN","SEARCH_FACETS_UPDATED","SEARCH_FILTER_ACTIVATED","SEARCH_FILTER_DEACTIVATED","REQUEST_MERCHANT_CONTACT_MODAL","REQUEST_FOLLOW_FLIGHT_COMPONENT","Emitter","mitt","props","_jsx","_objectSpread","viewBox","children","d","fillRule","TagList","_Component","_this","_classCallCheck","_callSuper","expandAllHandler","setState","expanded","ready","tagsShown","state","concat","tagsHidden","injectTagRecursive","measuredHeight","tagListRef","current","clientHeight","nextTag","iterations","tagMaxHeight","push","shift","unshift","pop","onTagChange","event","checkbox","target","selectedValues","currentTag","tags","find","t","label","name","queryString","qs","parse","window","location","search","taxonomies","Array","isArray","checked","taxonomyFilter","length","history","replaceState","url","stringify","headline","innerText","description","defaultHeadlineText","defaultUrl","defaultDescriptionText","emit","type","emits","filter","s","f","singleTag","console","debug","React","isTablet","innerWidth","selectedTaxonomies","tag","tax","isBrowser","_toConsumableArray","activeTaxonomies","_inherits","_createClass","key","value","facets","this","setTagsAndTaxonomyData","_this2","on","handleEvent","taxonomyFacet","id","data","map","tagFilter","split","selectedTag","sTax","endsWith","_trackClick","_asyncToGenerator","_regeneratorRuntime","mark","_callee","filterTag","wrap","_context","prev","next","trackingHelper","stop","_x","apply","arguments","_this3","_jsxs","className","ref","item","index","_this3$state","isSelected","activeTax","at","title","count","onClick","trackClick","onChange","defaultChecked","htmlFor","expandLabelText","SvgPlus","Component","defaultProps","modifier","amount","TagListModule","elem","self","subcategories","dataset","JSON","forEach","subcategory","productCount","parentNode","querySelector","mainCategoryTitle","mainCategoryDescription","mainCategoryUrl","pathname","textKeys","init","ReactDOM","showAllTagsLabel"],"sourceRoot":""}