{"version":3,"sources":["webpack:///./node_modules/lodash/property.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/_stackSet.js","webpack:///./src/components/QuantityPicker/QuantityPicker.tsx","webpack:///./node_modules/lodash/stubArray.js","webpack:///./node_modules/lodash/_SetCache.js","webpack:///./node_modules/lodash/_setCacheHas.js","webpack:///./src/components/ProductCard/styles.module.scss","webpack:///./node_modules/lodash/_basePropertyDeep.js","webpack:///./node_modules/lodash/_hasPath.js","webpack:///./src/components/Subnav/components/styles.module.scss","webpack:///./src/components/Link/Link.tsx","webpack:///./src/assets/svg/climate_icon.svg","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/_baseProperty.js","webpack:///./node_modules/lodash/_stackClear.js","webpack:///./node_modules/lodash/keys.js","webpack:///./src/hooks/useLockBodyScroll.tsx","webpack:///./src/components/Modal/Modal.tsx","webpack:///./src/components/Badge/styles.module.scss","webpack:///./node_modules/lodash/_mapToArray.js","webpack:///./src/components/Select/styles.module.scss","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/_isFlattenable.js","webpack:///./node_modules/lodash/_arrayPush.js","webpack:///./node_modules/lodash/_isStrictComparable.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./src/screens/BudgetModal/styles.module.scss","webpack:///./src/components/Scale/Scale.tsx","webpack:///./src/components/ProductCard/ProductCard.tsx","webpack:///./src/components/Select/Select.tsx","webpack:///./src/hooks/useIntersection.tsx","webpack:///./src/components/StatsCard/StatsCard.tsx","webpack:///./src/components/ScaleCard/ScaleCard.tsx","webpack:///./src/components/PosCard/PosCard.tsx","webpack:///./src/views/ProductsView/ProductsView.tsx","webpack:///./src/components/Subnav/Subnav.helpers.ts","webpack:///./src/components/Subnav/components/CategoryItem.tsx","webpack:///./src/screens/BudgetModal/BudgetModal.tsx","webpack:///./src/components/Subnav/Subnav.tsx","webpack:///./src/views/ProductsView/ProductsView.helpers.ts","webpack:///./src/templates/shop.tsx","webpack:///./node_modules/lodash/_baseMatchesProperty.js","webpack:///./src/components/StatsCard/styles.module.scss","webpack:///./node_modules/lodash/_equalByTag.js","webpack:///./node_modules/lodash/_Promise.js","webpack:///./node_modules/lodash/_matchesStrictComparable.js","webpack:///./node_modules/lodash/_baseForOwn.js","webpack:///./node_modules/lodash/_baseAggregator.js","webpack:///./node_modules/lodash/_Uint8Array.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/_baseHasIn.js","webpack:///./src/views/ProductsView/styles.module.scss","webpack:///./src/assets/svg/minus.svg","webpack:///./node_modules/lodash/_stackDelete.js","webpack:///./node_modules/lodash/_arrayFilter.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./src/components/QuantityPicker/styles.module.scss","webpack:///./node_modules/lodash/_getSymbols.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_getMatchData.js","webpack:///./src/components/Icon/Icons/Close.tsx","webpack:///./node_modules/lodash/_WeakMap.js","webpack:///./node_modules/lodash/_arraySome.js","webpack:///./node_modules/lodash/_getTag.js","webpack:///./node_modules/lodash/_baseEach.js","webpack:///./src/assets/svg/plus.svg","webpack:///./node_modules/lodash/_createAggregator.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_stackHas.js","webpack:///./node_modules/lodash/_baseFlatten.js","webpack:///./src/components/Badge/Badge.tsx","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/lodash/_baseMatches.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./src/components/Modal/styles.module.scss","webpack:///./node_modules/lodash/groupBy.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./src/components/PosCard/styles.module.scss","webpack:///./node_modules/lodash/_baseFor.js","webpack:///./src/components/Subnav/styles.module.scss","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseIsEqualDeep.js","webpack:///./node_modules/lodash/_baseGetAllKeys.js","webpack:///./node_modules/lodash/_Stack.js","webpack:///./node_modules/lodash/_setCacheAdd.js","webpack:///./src/components/Scale/styles.module.scss","webpack:///./node_modules/lodash/_stackGet.js","webpack:///./node_modules/lodash/hasIn.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/_createBaseEach.js","webpack:///./node_modules/lodash/_baseIsMatch.js","webpack:///./node_modules/lodash/flattenDeep.js","webpack:///./node_modules/lodash/_createBaseFor.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_arrayAggregator.js","webpack:///./node_modules/lodash/_equalArrays.js","webpack:///./src/components/ScaleCard/styles.module.scss","webpack:///./node_modules/lodash/_getAllKeys.js","webpack:///./node_modules/lodash/_setToArray.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_equalObjects.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/_DataView.js","webpack:///./src/components/Link/styles.module.scss","webpack:///./node_modules/lodash/_baseIteratee.js","webpack:///./node_modules/lodash/_baseIsEqual.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_cacheHas.js","webpack:///./node_modules/lodash/_Set.js","webpack:///./node_modules/lodash/identity.js"],"names":["baseProperty","basePropertyDeep","isKey","toKey","module","exports","path","baseIsArguments","isObjectLike","objectProto","Object","prototype","hasOwnProperty","propertyIsEnumerable","isArguments","arguments","value","call","ListCache","Map","MapCache","key","data","this","__data__","pairs","length","LARGE_ARRAY_SIZE","push","size","set","QuantityPicker","ariaDescribedby","onChange","name","label","max","className","greyBg","decreaseDisabled","maxDisabled","id","replace","classNames","styles","quantityPicker","htmlFor","button","disabled","aria-disabled","onClick","src","minus","alt","e","restrictedValue","handleInputValue","parseInt","target","input","maxWidth","type","aria-labelledby","aria-describedby","plus","React","setCacheAdd","setCacheHas","SetCache","values","index","add","has","baseGet","object","castPath","isArray","isIndex","isLength","hasFunc","result","Link","children","href","icon","attributes","classes","link","ArrowLeft","child","memo","Ctor","constructor","undefined","arrayLikeKeys","baseKeys","isArrayLike","useLockBodyScroll","shouldLock","useEffect","document","originalStyle","window","getComputedStyle","body","overflow","style","root","getElementById","setAttribute","portal","Modal","open","onClose","backgroundImage","focusRef","current","focus","ReactDom","createPortal","aria-modal","role","wrapper","modal","onKeyDown","keyCode","ref","aria-label","close","Icon","Close","map","Array","forEach","isPrototype","nativeKeys","Symbol","spreadableSymbol","isConcatSpreadable","array","offset","isObject","stubFalse","freeExports","nodeType","freeModule","Buffer","isBuffer","Scale","pricePosition","ClimateScale","color","position","unit","displayUnit","ProductCard","title","image","brand","country","price","comparativePrice","category","onQuantityChange","shoppingCart","useContext","StoreContext","state","useState","quantity","setQuantity","cart","item","filter","getQuantity","isOpen","setIsOpen","i18n","useTranslation","handleChange","productCard","Badge","badge","impact","productDetails","dataLayer","event","pageData","location","tabIndex","keycode","loading","img","media_details","sizes","medium","source_url","description","t","climateBadge","modalBadge","climateScaleDescription","climate_impact","Select","options","onInputChange","select","onBlur","useIntersectionObserver","elementRef","threshold","rootMargin","entry","setEntry","updateEntry","node","IntersectionObserver","observer","observe","disconnect","StatsCard","footer","subtitle","animation","useRef","inViewport","useIntersection","bg","isIntersecting","large","statsCard","animationWrapper","Lottie","width","animationWidth","height","loopOpt","infoTextLarge","infoText","ClimateScaleCard","bg_image","scaleCard","autoplay","PosCard","pos_bg_image","link_to_examples","show_climate_impact","logo","fixedTitle","posCard","preventDefault","navigate","dangerouslySetInnerHTML","__html","impactList","ProductsView","products","cards","categoryFilter","sortOption","setsortOption","store","addCardToProductsArray","cardIndex","filteredCards","categories","some","slug","product","card","sortedProducts","list","parseFloat","acf","price_per_kilo","sortedGroups","sort","a","b","resultList","reverse","featuredList","featured","categoryFilteredProducts","prods","productsView","filterWrapper","productsList","emptyState","i","pricePerType","payload","dispatch","Types","ADD_PRODUCT","handleQuantityChange","cardWrapper","scale_card","statistics_card","pos","renderCard","replaceEntities","text","CategoryItem","childCategories","updateFilter","showChildren","setShowChildren","hasChildren","setFilter","listItem","ArrowDown","rotate","childCategory","BudgetModal","toggle","useStaticQuery","totalAmount","fields","allWordpressPage","nodes","budget_modal","cart_link","read_more","titel_over_budget","subtitel_over_budget","subtitel_info_over_budget","cart_link_over_budget","read_more_over_budget","goTo","currentTarget","pathname","budgetModal","amount","round","toString","i18next","totalAmountFormatted","Subnav","showCategories","setShowCategories","openModal","setOpenModal","showModal","toggleModal","toggleNav","categoriesMangled","parentCategories","parent_element","dataMangle","renderCategories","subnav","categoryToggle","cartAmount","saldo","categoriesList","splicer","element","splice","sortCards","filterSlug","scale","stats","outcome","array2","reduce","slice","order","IndexPage","meta","background","Helmet","property","content","allWordpressCategory","f","allWordpressWpCards","edges","baseIsEqual","get","hasIn","isStrictComparable","matchesStrictComparable","srcValue","objValue","COMPARE_PARTIAL_FLAG","Uint8Array","eq","equalArrays","mapToArray","setToArray","symbolProto","symbolValueOf","valueOf","other","tag","bitmask","customizer","equalFunc","stack","byteLength","byteOffset","buffer","message","convert","isPartial","stacked","Promise","getNative","baseFor","keys","iteratee","baseEach","collection","setter","accumulator","baseGetTag","predicate","resIndex","isFunction","arrayFilter","stubArray","nativeGetSymbols","getOwnPropertySymbols","getSymbols","symbol","defineProperty","func","SvgClose","props","xmlns","viewBox","data-name","d","fill","stroke","strokeLinecap","strokeWidth","WeakMap","DataView","Set","toSource","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ArrayBuffer","resolve","ctorString","baseForOwn","createBaseEach","arrayAggregator","baseAggregator","baseIteratee","initializer","n","overArg","arrayPush","isFlattenable","baseFlatten","depth","isStrict","badgeStyle","webpackPolyfill","deprecate","paths","enumerable","l","baseIsMatch","getMatchData","source","matchData","baseTimes","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","String","baseAssignValue","createAggregator","groupBy","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","createBaseFor","typedArrayTags","Stack","equalByTag","equalObjects","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","keysFunc","symbolsFunc","stackClear","stackDelete","stackGet","stackHas","stackSet","entries","clear","baseHasIn","hasPath","transform","arg","eachFunc","fromRight","iterable","noCustomizer","freeProcess","freeGlobal","process","types","require","binding","arraySome","cacheHas","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","baseGetAllKeys","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","baseMatches","baseMatchesProperty","identity","baseIsEqualDeep","reIsUint","test","cache"],"mappings":"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","file":"component---src-templates-shop-tsx-8a1ac4faace5d2504fc6.js","sourcesContent":["var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","import * as React from 'react'\nimport styles from './styles.module.scss'\nimport plus from '../../assets/svg/plus.svg'\nimport minus from '../../assets/svg/minus.svg'\nimport classNames from 'classnames'\n\nexport interface Props {\n value: number\n name: string\n label: string\n max: number\n ariaDescribedby?: string\n onChange: (value: number) => void\n className?: string\n greyBg?: boolean\n}\n\nexport const QuantityPicker: React.FC = ({ value, ariaDescribedby, onChange, name, label, max, className, greyBg = false }) => {\n const decreaseDisabled = value === 0\n const maxDisabled = value >= max\n const id = name.replace(' ', '-')\n\n // restrict input field value to be between 0 and props.max\n const handleInputValue = (value: number, max: number): number => {\n if (value >= max) {\n return max\n } else {\n return value\n }\n }\n const handleInputChange = (e: React.ChangeEvent): void => {\n const parsedValue = parseInt(e.target.value, 10) || 0\n const restrictedValue = handleInputValue(parsedValue, max)\n return onChange(restrictedValue)\n }\n\n return (\n
\n \n onChange(value - 1)}\n >\n \"decrease\n \n \n onChange(value + 1)}\n >\n \"increase\n \n
\n )\n}\n\nexport default React.memo(QuantityPicker)\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"a11yhidden\":\"styles-module--a11yhidden--2-uNq\",\"maxWidthWrapper\":\"styles-module--maxWidthWrapper--j5w1C\",\"focus\":\"styles-module--focus--2ppsd\",\"rythm\":\"styles-module--rythm--2RV-5\",\"productCard\":\"styles-module--productCard--2DhKY\",\"badge\":\"styles-module--badge--2QLus\",\"productDetails\":\"styles-module--productDetails--3_j2o _utils--focus--34PQG\",\"img\":\"styles-module--img--29sKD\",\"modalBadge\":\"styles-module--modalBadge--2KZ6i\",\"climateBadge\":\"styles-module--climateBadge--sl-Vi\",\"title\":\"styles-module--title--2F9f8\",\"description\":\"styles-module--description--2sNWv\",\"climateScaleDescription\":\"styles-module--climateScaleDescription--mt528\",\"climateScaleImage\":\"styles-module--climateScaleImage--1ieGW\",\"price\":\"styles-module--price--157g0\",\"climateScale\":\"styles-module--climateScale--1d960\"};","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"listItem\":\"styles-module--listItem--1inKQ\",\"category\":\"styles-module--category--NeQu3 _utils--focus--34PQG\",\"childCategory\":\"styles-module--childCategory--2Jhnv _utils--focus--34PQG\",\"menuButton\":\"styles-module--menuButton--3NTBf _utils--focus--34PQG\"};","import classNames from 'classnames'\nimport React, { HTMLAttributes } from 'react'\nimport { Icon } from '../Icon'\nimport ArrowLeft from '../Icon/Icons/ArrowLeft'\nimport styles from './styles.module.scss'\n\nexport interface LinkProps extends HTMLAttributes {\n onClick: (e: React.MouseEvent) => void\n href: string\n icon?: boolean\n button?: 'white' | 'green' | 'none'\n}\n\nconst Link: React.FC = ({ children, href, className, onClick, button = 'none', icon = false, ...attributes }) => {\n const classes = classNames(className, button !== 'none' ? styles.button : styles.link, { [styles[button]]: button !== 'none' })\n return (\n \n {icon && } {children}\n \n )\n}\n\nexport default React.memo(Link)\n","module.exports = __webpack_public_path__ + \"static/climate_icon-4bc6740c8fa29443b3b02f16a5640940.svg\";","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","import { useEffect } from 'react'\n/**\n * @summary Hook that sets the styling of the body to be overflow hidden\n */\nexport const useLockBodyScroll = (shouldLock: boolean) => {\n useEffect(() => {\n if (typeof document !== 'undefined' && shouldLock) {\n // Get original body overflow\n const originalStyle = window.getComputedStyle(document.body).overflow\n // Prevent scrolling on mount\n document.body.style.overflow = 'hidden'\n const root = document.getElementById('___gatsby')\n root?.setAttribute('aria-hidden', 'true')\n // Re-enable scrolling when component unmounts\n return () => {\n document.body.style.overflow = originalStyle\n root?.setAttribute('aria-hidden', 'false')\n }\n }\n }, [shouldLock])\n}\n\nexport default useLockBodyScroll\n","import * as React from 'react'\nimport ReactDom from 'react-dom'\nimport styles from './styles.module.scss'\nimport useLockBodyScroll from '../../hooks/useLockBodyScroll'\nimport classNames from 'classnames'\nimport { Icon } from '../Icon'\nimport { Close } from '../Icon/Icons'\nexport interface ModalProps {\n open: boolean\n onClose: (value: boolean) => void\n children?: React.ReactChild[] | React.ReactChild\n backgroundImage?: string\n className?: string\n}\n\nconst portal = typeof document !== `undefined` ? document.getElementById('portal') : null\n\nconst Modal: React.FC = ({ open, onClose, children, backgroundImage, className }) => {\n const focusRef = React.useRef(null)\n\n React.useEffect(() => {\n focusRef.current && focusRef.current.focus()\n }, [open])\n\n const handleClick = () => {\n return onClose(!open)\n }\n\n const handleKeyPress = (e: React.KeyboardEvent) => {\n if (e.key === 'Escape' || e.keyCode === 27) {\n onClose(!open)\n }\n }\n\n useLockBodyScroll(open)\n\n if (portal && open)\n return ReactDom.createPortal(\n
\n
\n \n\n {children}\n
\n
,\n portal\n )\n return null\n}\n\nexport default React.memo(Modal)\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"lowest\":\"styles-module--lowest--3G64m\",\"low\":\"styles-module--low--1aUFB\",\"medium\":\"styles-module--medium--1to4w\",\"high\":\"styles-module--high--3L9t4\",\"badge\":\"styles-module--badge--ZZ6PG\",\"smaller\":\"styles-module--smaller--3Cxxl\",\"bigger\":\"styles-module--bigger--hpX4S\"};","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"select\":\"styles-module--select--1W8Az _utils--focus--34PQG\",\"options\":\"styles-module--options--3uEvc\"};","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"budgetModal\":\"styles-module--budgetModal--2MGMy\",\"title\":\"styles-module--title--3hAJa\",\"amount\":\"styles-module--amount--jWzyr\",\"subtitle\":\"styles-module--subtitle--2QTQY\"};","import * as React from 'react'\nimport styles from './styles.module.scss'\nimport ClimateScale from './ClimateScale'\n\nexport interface ScaleProps {\n climate_impact?: string\n pricePosition?: string\n type: string\n}\n\nexport const Scale: React.FC = ({ pricePosition, type }) => {\n const displayUnit = (type: string) => {\n switch (type) {\n case 'portion':\n return 'per portion'\n case 'weight':\n return 'per kilo'\n case 'product':\n return 'per kilo'\n }\n }\n\n return (\n <>\n
\n \n
\n \n )\n}\n\nexport default Scale\n","import React, { useEffect, useState } from 'react'\nimport { Impact, Product } from '../../models/Products'\nimport QuantityPicker from '../QuantityPicker/QuantityPicker'\nimport styles from './styles.module.scss'\nimport { useTranslation } from 'react-i18next'\nimport Modal from '../../components/Modal/Modal'\nimport climateBadge from '../../assets/svg/climate_icon.svg'\nimport { useContext } from 'react'\nimport { Scale } from '../Scale/Scale'\nimport { Badge } from '../Badge/Badge'\nimport { StoreContext } from '../../store/context'\n\ntype ProductItems = Pick\nexport interface ProductCardProps extends ProductItems {\n category: Impact\n comparativePrice: string\n price: string\n onQuantityChange: (value: number) => void\n id: string\n type: string\n}\n\nconst ProductCard: React.FC = ({\n id,\n title,\n image,\n brand,\n country,\n price,\n comparativePrice,\n category,\n type,\n onQuantityChange\n}) => {\n const {\n state: { shoppingCart }\n } = useContext(StoreContext)\n const [quantity, setQuantity] = useState(0)\n\n const getQuantity = (id: string): number => {\n if (!shoppingCart.cart || shoppingCart.cart.length === 0) return 0\n const item = shoppingCart.cart.filter((item) => item.id === id)\n if (!item) return 0\n return item[0]?.quantity\n }\n\n useEffect(() => {\n setQuantity(getQuantity(id) || 0)\n }, [])\n\n const [isOpen, setIsOpen] = React.useState(false)\n const { i18n } = useTranslation()\n //check for enter to open\n const handleKeyPress = (e: React.KeyboardEvent): void => {\n const keycode = e.key || e.keyCode\n keycode === 'Enter' || keycode === 13 ? setIsOpen(true) : ''\n }\n\n const toggleModal = () => {\n // GTM virtual page views\n if (typeof window !== undefined) {\n window.dataLayer?.push({\n event: 'virtual_pageview',\n pageData: {\n location: `https://www.klimatbutiken.com/klimatbutiken/butiken/${title}`\n }\n })\n }\n return setIsOpen(!isOpen)\n }\n\n const handleChange = (value: number) => {\n setQuantity(value)\n onQuantityChange(value)\n }\n\n const modalContent = () => {\n return (\n <>\n {category == '1' ? \"Lågt : ''}\n \n {image && {title}}\n\n

{title}

\n

\n {brand && {brand} } {brand && country &&  / } {country && {country}}\n

\n\n {comparativePrice && type === 'portion' ? (\n

{i18n.t('products.jmf_portion', { comparativePrice: comparativePrice.replace('.', ',') })}

\n ) : (\n

{i18n.t('products.jmf', { comparativePrice: comparativePrice.replace('.', ',') })}

\n )}\n\n
\n

{i18n.t('products.scale')}

\n \n \n {i18n.t('products.read_more')}\n \n
\n\n {price && (\n

\n {i18n.t('products.units', { price: price.replace('.', ',') })}\n {i18n.t('products.st')}\n

\n )}\n\n \n \n )\n }\n\n return (\n <>\n
  • \n \n
    \n {image && {title}}\n

    {title}

    \n

    \n {brand && {brand}}\n {brand && country &&  / }\n {country && {country}}\n

    \n
    \n {comparativePrice && type === 'portion' ? (\n

    {i18n.t('products.jmf_portion', { comparativePrice: comparativePrice.replace('.', ',') })}

    \n ) : (\n

    {i18n.t('products.jmf', { comparativePrice: comparativePrice.replace('.', ',') })}

    \n )}\n {price && (\n

    \n {i18n.t('products.units', { price: price.replace('.', ',') || 0 })}\n {i18n.t('products.st')}\n

    \n )}\n \n
  • \n\n setIsOpen(false)}>\n {modalContent()}\n \n \n )\n}\n\nexport default React.memo(ProductCard)\n","import React, { HTMLAttributes } from 'react'\nimport styles from './styles.module.scss'\n\nexport interface SelectProps extends HTMLAttributes {\n label: string\n options: Array<{ value: string; label: string }>\n onInputChange: (value: string) => void\n}\nexport const Select: React.FC = ({ label, options, onInputChange, className }) => {\n const handleChange = (e: React.ChangeEvent) => {\n onInputChange(e.target.value)\n }\n return (\n \n )\n}\n\nexport default React.memo(Select)\n","import { useEffect, useState, RefObject } from 'react'\n\nfunction useIntersectionObserver(\n elementRef: RefObject,\n { threshold = 0, root = null, rootMargin = '0%' }: IntersectionObserverInit\n): IntersectionObserverEntry | undefined {\n const [entry, setEntry] = useState()\n\n const updateEntry = ([entry]: IntersectionObserverEntry[]): void => {\n setEntry(entry)\n }\n\n useEffect(() => {\n const node = elementRef?.current // DOM Ref\n const hasIOSupport = !!window.IntersectionObserver\n\n if (!hasIOSupport || !node) return\n\n const observerParams = { threshold, root, rootMargin }\n const observer = new IntersectionObserver(updateEntry, observerParams)\n\n observer.observe(node)\n\n return () => observer.disconnect()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [elementRef, threshold, root, rootMargin])\n\n return entry\n}\n\nexport default useIntersectionObserver\n","import React, { useRef } from 'react'\nimport styles from './styles.module.scss'\nimport { StatisticsCard } from '../../models/StatisticsCard'\nimport Lottie from '../Lottie/Lottie'\nimport useIntersection from '../../hooks/useIntersection'\n\nconst StatsCard: React.FC = ({ image, title, footer, subtitle, animation }) => {\n if (!title || !animation) return null\n\n const ref = useRef(null)\n const inViewport = useIntersection(ref, {})\n\n const animationWidth = () => {\n switch (animation) {\n case 'group_wave':\n return '260px'\n case 'man_with_heart':\n return '80px'\n case 'man_with_questionmarks':\n return '100px'\n case 'man_with_earth':\n return '50px'\n }\n }\n const bg = inViewport?.isIntersecting ? `, url(${image.media_details.sizes.large.source_url})` : ''\n\n return (\n \n
    \n \n
    \n\n

    {title}

    \n {subtitle &&

    {subtitle}

    }\n {footer && {footer}}\n \n )\n}\n\nexport default React.memo(StatsCard)\n","import React, { useRef } from 'react'\nimport styles from './styles.module.scss'\nimport Lottie from '../Lottie/Lottie'\nimport { ScaleCard } from '../../models/ScaleCard'\nimport useIntersection from '../../hooks/useIntersection'\n\nconst ClimateScaleCard: React.FC = ({ title, footer, bg_image }) => {\n if (!title || !bg_image) return null\n const ref = useRef(null)\n const inViewport = useIntersection(ref, {})\n const bg = inViewport?.isIntersecting ? `, url(${bg_image?.media_details.sizes.medium?.source_url})` : ''\n\n return (\n \n

    {title}

    \n\n {inViewport?.isIntersecting ? (\n \n ) : (\n \n )}\n\n {footer && inViewport?.isIntersecting && (\n \n {footer}\n \n )}\n \n )\n}\n\nexport default React.memo(ClimateScaleCard)\n","import { navigate } from 'gatsby-link'\nimport React, { useRef } from 'react'\nimport useIntersection from '../../hooks/useIntersection'\nimport { Pos } from '../../models/Pos'\nimport styles from './styles.module.scss'\nimport { Badge } from '../Badge/Badge'\nimport { Impact } from '../../models/Products'\n\nexport const PosCard = ({ title, pos_bg_image, link_to_examples, show_climate_impact, logo }: Pos) => {\n const handleClick = (e: React.MouseEvent) => {\n e.preventDefault()\n navigate('/veckobudgeten')\n }\n\n const ref = useRef(null)\n const inViewport = useIntersection(ref, {})\n\n const impact: Array<{ title: string; impact: Impact }> = [\n {\n impact: '1',\n title: 'Väldigt lågt klimatavtryck'\n },\n {\n impact: '2',\n title: 'Lågt klimatavtryck'\n },\n {\n impact: '3',\n title: 'Medel klimatavtryck'\n },\n {\n impact: '4',\n title: 'Högt klimatavtryck'\n }\n ]\n\n const bg = inViewport?.isIntersecting ? `, url(${pos_bg_image.media_details.sizes.large.source_url})` : ''\n\n const fixedTitle = title.replace('®', '®')\n\n return (\n \n {link_to_examples ? (\n \n {title}\n \n ) : (\n

    \n )}\n {logo && \"lågt}\n\n {show_climate_impact && (\n

      \n {impact.map(({ title, impact }) => (\n
    • \n \n {title}\n
    • \n ))}\n
    \n )}\n \n )\n}\n\nexport default React.memo(PosCard)\n","import * as React from 'react'\nimport ProductCard from '../../components/ProductCard/ProductCard'\nimport { Select } from '../../components/Select/Select'\nimport { ProductAcf, Impact, Product } from '../../models/Products'\nimport styles from './styles.module.scss'\nimport { useContext } from 'react'\nimport StatsCard from '../../components/StatsCard/StatsCard'\nimport ClimateScaleCard from '../../components/ScaleCard/ScaleCard'\nimport { pricePerType } from '../../store/Store.helpers'\nimport { Filter } from '../../models/Categories'\nimport { StoreContext } from '../../store/context'\nimport { Types } from '../../store/reducers/ShoppingCartReducer'\nimport { CardWithCategories } from '../../models/Cards'\nimport PosCard from '../../components/PosCard/PosCard'\nimport { groupBy, flattenDeep } from 'lodash'\nexport interface ProductsViewProps {\n products: Array\n cards: Array\n categoryFilter: Filter\n}\n\nconst ProductsView: React.FC = ({ products, cards, categoryFilter }) => {\n const [sortOption, setsortOption] = React.useState('')\n\n const store = useContext(StoreContext)\n\n const handleQuantityChange = (product: Product, quantity: number, id: string) => {\n const payload = { product: { ...product, quantity, id } }\n return store.dispatch({ type: Types.ADD_PRODUCT, payload })\n }\n\n const addCardToProductsArray = (products: Array): Array => {\n let cardIndex = 0\n const filteredCards = cards.filter(\n (item) => item.node.categories && item.node.categories?.some((item) => item.slug === categoryFilter.slug)\n )\n return products.map((product, index) => {\n const lessThan = cardIndex < cards.length\n const indexCheck = (index + 1) % 4\n\n if (lessThan && !indexCheck) {\n const item = { ...product, card: categoryFilter.slug !== '' ? filteredCards[cardIndex] : cards[cardIndex] }\n cardIndex++\n return item\n } else {\n return product\n }\n })\n }\n\n const sortedProducts = (): Array => {\n if (sortOption !== '') {\n const list = products.map((item, index) => {\n return { index: index, value: parseFloat(item.node.acf.price_per_kilo), impact: parseFloat(item.node.acf.climate_impact) }\n })\n const sortedGroups = Object.values(groupBy(list, 'impact')).map((item) => {\n return item.sort((a, b) => a.value - b.value)\n })\n\n const merged = flattenDeep(sortedGroups)\n\n const resultList = merged.map((product) => {\n return products[product.index]\n })\n return sortOption === '4' ? resultList : resultList.reverse()\n }\n\n const featuredList = products.map((item, index) => {\n if (item.node.acf?.featured !== null && item.node.acf?.featured.length > 0) {\n return { index: index, featured: 1 }\n }\n return { index: index, featured: 0 }\n })\n\n featuredList.sort((a, b) => {\n if (a.featured > b.featured) {\n return -1\n }\n return 0\n })\n\n const resultList = featuredList.map((product) => {\n return products[product.index]\n })\n\n //finished list w featured items firt\n return resultList\n }\n\n const categoryFilteredProducts = () => {\n if (categoryFilter.slug !== '') {\n const prods = sortedProducts().filter((item) => {\n const categoryMatch = item.node?.categories?.some((item) => item.slug === categoryFilter.slug)\n return categoryMatch && item\n })\n return addCardToProductsArray(prods)\n } else {\n return addCardToProductsArray(sortedProducts())\n }\n }\n\n const options = [\n { value: '4', label: 'Lågt–högt kg CO₂e' },\n { value: '1', label: 'Högt–lågt kg CO₂e' }\n ]\n\n const renderCard = (card: CardWithCategories) => {\n const { scale_card, statistics_card, pos } = card.node.acf\n\n switch (card.node.acf.type) {\n case 'climate_scale':\n return (\n \n )\n case 'stats_card':\n return (\n \n )\n\n case 'pos_card':\n return (\n \n )\n default:\n return null\n }\n }\n\n return (\n
    \n
    \n