{"version":3,"file":"static/js/7967.6f47025d.chunk.js","mappings":"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","sources":["shared/_svgs/mini/Plus.js","shared/tag-list/tag-list.jsx","shared/tag-list/tag-list-module.js"],"sourcesContent":["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":["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","Emitter","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":""}