{"version":3,"file":"client.86369f538418da3d0611.js","mappings":"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","sources":["webpack://B2C-Marketsites-redesign/webpack/runtime/chunk loaded","webpack://B2C-Marketsites-redesign/webpack/runtime/create fake namespace object","webpack://B2C-Marketsites-redesign/webpack/runtime/load script","webpack://B2C-Marketsites-redesign/./source/components/icon/icon.jsx","webpack://B2C-Marketsites-redesign/./source/components/models/button-base/button-base.jsx","webpack://B2C-Marketsites-redesign/./source/components/models/aria-attributes/aria-attributes.js","webpack://B2C-Marketsites-redesign/./source/components/action-button/action-button.jsx","webpack://B2C-Marketsites-redesign/./source/js/image-resizer.js","webpack://B2C-Marketsites-redesign/./source/js/dom-image-utils.js","webpack://B2C-Marketsites-redesign/./source/components/image/image.jsx","webpack://B2C-Marketsites-redesign/./source/components/article-teaser/article-teaser-sizes.js","webpack://B2C-Marketsites-redesign/./source/components/article-teaser/article-teaser.jsx","webpack://B2C-Marketsites-redesign/./source/components/poor-text/poor-text.jsx","webpack://B2C-Marketsites-redesign/./source/components/article-teasers-block/article-teasers-block.jsx","webpack://B2C-Marketsites-redesign/./source/components/button/button.jsx","webpack://B2C-Marketsites-redesign/./source/hooks/use-toggle.js","webpack://B2C-Marketsites-redesign/./source/components/loading-indicator/loading-indicator.jsx","webpack://B2C-Marketsites-redesign/./source/components/embedded-video-block/embedded-video-block.jsx","webpack://B2C-Marketsites-redesign/./source/components/error-message/error-message.jsx","webpack://B2C-Marketsites-redesign/./source/components/filter-heading/filter-heading.jsx","webpack://B2C-Marketsites-redesign/./source/components/logo/logo.jsx","webpack://B2C-Marketsites-redesign/./source/components/models/link-base/link-base.jsx","webpack://B2C-Marketsites-redesign/./source/components/link/link.jsx","webpack://B2C-Marketsites-redesign/./source/components/link-button/link-button.jsx","webpack://B2C-Marketsites-redesign/./source/components/origin-matters/origin-matters.jsx","webpack://B2C-Marketsites-redesign/./source/js/breakpoints.js","webpack://B2C-Marketsites-redesign/./source/hooks/use-breakpoints.js","webpack://B2C-Marketsites-redesign/./source/components/footer-banner/footer-banner.jsx","webpack://B2C-Marketsites-redesign/./source/components/icon-button/icon-button.jsx","webpack://B2C-Marketsites-redesign/./source/components/social-link/social-link.jsx","webpack://B2C-Marketsites-redesign/./source/components/rich-text/rich-text.jsx","webpack://B2C-Marketsites-redesign/./source/components/footer/footer.jsx","webpack://B2C-Marketsites-redesign/./source/components/page-heading/page-heading.jsx","webpack://B2C-Marketsites-redesign/./source/js/calc-utils.js","webpack://B2C-Marketsites-redesign/./source/components/parallax-hero-background/parallax-hero-background.jsx","webpack://B2C-Marketsites-redesign/./source/js/stylesheet-utils.js","webpack://B2C-Marketsites-redesign/./source/hooks/use-animation-step-switcher.js","webpack://B2C-Marketsites-redesign/./source/components/front-page-hero/front-page-hero.jsx","webpack://B2C-Marketsites-redesign/./source/components/models/menu-link/menu-link.jsx","webpack://B2C-Marketsites-redesign/./source/components/main-menu/main-menu.jsx","webpack://B2C-Marketsites-redesign/./source/components/secondary-menu/secondary-menu.jsx","webpack://B2C-Marketsites-redesign/./source/components/models/search-form-lang/search-form-lang.jsx","webpack://B2C-Marketsites-redesign/./source/js/id-helper.js","webpack://B2C-Marketsites-redesign/./source/components/search-form/search-form.jsx","webpack://B2C-Marketsites-redesign/./source/components/quick-search/quick-search.jsx","webpack://B2C-Marketsites-redesign/./source/hooks/use-event.js","webpack://B2C-Marketsites-redesign/./source/hooks/use-escape.js","webpack://B2C-Marketsites-redesign/./source/hooks/use-click-outside.js","webpack://B2C-Marketsites-redesign/./source/components/header/header.jsx","webpack://B2C-Marketsites-redesign/./source/js/string-helper.js","webpack://B2C-Marketsites-redesign/./source/components/how-to-buy-block/how-to-buy-block.jsx","webpack://B2C-Marketsites-redesign/./source/components/how-to-page-hero/how-to-page-hero.jsx","webpack://B2C-Marketsites-redesign/./source/components/how-to-step-block/how-to-step-block.jsx","webpack://B2C-Marketsites-redesign/./source/components/icon-label/icon-label.jsx","webpack://B2C-Marketsites-redesign/./source/components/image-block/image-block.jsx","webpack://B2C-Marketsites-redesign/./source/components/image-collage-block/image-collage-block.jsx","webpack://B2C-Marketsites-redesign/./source/components/image-with-text-and-bg-color-block/image-with-text-and-bg-color-block.jsx","webpack://B2C-Marketsites-redesign/./source/js/pluralOrSingularText.js","webpack://B2C-Marketsites-redesign/./source/components/ingredients/ingredient-name.jsx","webpack://B2C-Marketsites-redesign/./source/components/ingredients/ingredient-unit.jsx","webpack://B2C-Marketsites-redesign/./source/components/ingredients/ingredient-amount.jsx","webpack://B2C-Marketsites-redesign/./source/components/ingredients/print-orders.js","webpack://B2C-Marketsites-redesign/./source/components/ingredients/ingredient.jsx","webpack://B2C-Marketsites-redesign/./source/components/ingredients/ingredients.jsx","webpack://B2C-Marketsites-redesign/./source/js/fullCopy.js","webpack://B2C-Marketsites-redesign/./source/components/parallax-text/parallax-text.jsx","webpack://B2C-Marketsites-redesign/./source/components/long-article-page-hero/long-article-page-hero.jsx","webpack://B2C-Marketsites-redesign/./source/components/models/filter-item/filter-item.jsx","webpack://B2C-Marketsites-redesign/./source/components/models/filter/filter.jsx","webpack://B2C-Marketsites-redesign/./source/components/models/pager-lang/pager-lang.jsx","webpack://B2C-Marketsites-redesign/./source/components/models/rate-recipe-result/rate-recipe-result.jsx","webpack://B2C-Marketsites-redesign/./source/components/recipe-details/recipe-details.jsx","webpack://B2C-Marketsites-redesign/./source/components/recipe-teaser/recipe-teaser-orientations.js","webpack://B2C-Marketsites-redesign/./source/components/recipe-teaser/recipe-teaser.jsx","webpack://B2C-Marketsites-redesign/./source/components/models/recipe-overview-results/recipe-overview-results.jsx","webpack://B2C-Marketsites-redesign/./source/components/react-component/react-component.jsx","webpack://B2C-Marketsites-redesign/./source/components/toggle-button/toggle-button.jsx","webpack://B2C-Marketsites-redesign/./source/components/toggle-filter/toggle-filter.jsx","webpack://B2C-Marketsites-redesign/./source/components/models/search-results/search-results.jsx","webpack://B2C-Marketsites-redesign/./source/components/story-teaser/story-teaser-sizes.js","webpack://B2C-Marketsites-redesign/./source/components/story-teaser/story-teaser-orientations.js","webpack://B2C-Marketsites-redesign/./source/components/story-teaser/story-teaser.jsx","webpack://B2C-Marketsites-redesign/./source/components/models/stories-overview-results/stories-overview-results.jsx","webpack://B2C-Marketsites-redesign/./source/components/no-results/no-results.jsx","webpack://B2C-Marketsites-redesign/./source/components/not-found-page/not-found-page.jsx","webpack://B2C-Marketsites-redesign/./source/hooks/use-did-update-effect.js","webpack://B2C-Marketsites-redesign/./source/components/pager/pager.jsx","webpack://B2C-Marketsites-redesign/./source/components/parallax-bg-image/parallax-bg-image.jsx","webpack://B2C-Marketsites-redesign/./source/components/preparation-block/preparation-block.jsx","webpack://B2C-Marketsites-redesign/./source/components/quote-block/quote-block.jsx","webpack://B2C-Marketsites-redesign/./source/components/quote-with-background-block/quote-with-background-block.jsx","webpack://B2C-Marketsites-redesign/./source/js/messenger.js","webpack://B2C-Marketsites-redesign/./source/js/api-helper.js","webpack://B2C-Marketsites-redesign/./source/components/rate-recipe/rate-recipe-item.jsx","webpack://B2C-Marketsites-redesign/./source/js/recipe-message-bus.js","webpack://B2C-Marketsites-redesign/./source/components/rate-recipe/rate-recipe.jsx","webpack://B2C-Marketsites-redesign/./source/js/custom-dropdown-utils.js","webpack://B2C-Marketsites-redesign/./source/components/recipe-filter/recipe-filter.jsx","webpack://B2C-Marketsites-redesign/./source/components/recipe-filters/recipe-filters.jsx","webpack://B2C-Marketsites-redesign/./source/components/simple-page-hero/simple-page-hero.jsx","webpack://B2C-Marketsites-redesign/./source/js/form-helper.js","webpack://B2C-Marketsites-redesign/./source/components/recipe-list/recipe-list.jsx","webpack://B2C-Marketsites-redesign/./source/components/recipe-page-hero/recipe-page-hero.jsx","webpack://B2C-Marketsites-redesign/./source/components/recipe-teasers-block/recipe-teasers-block-slider-nav-button.jsx","webpack://B2C-Marketsites-redesign/./source/components/recipe-teasers-block/recipe-teasers-block.jsx","webpack://B2C-Marketsites-redesign/./source/components/rich-text-block/rich-text-block.jsx","webpack://B2C-Marketsites-redesign/./source/components/search-page/search-page.jsx","webpack://B2C-Marketsites-redesign/./source/components/search-teaser/search-teaser.jsx","webpack://B2C-Marketsites-redesign/./source/components/share-recipe/share-recipe.jsx","webpack://B2C-Marketsites-redesign/./source/components/share-and-rate-recipe-panel/share-and-rate-recipe-panel.jsx","webpack://B2C-Marketsites-redesign/./source/components/short-article-page-hero/short-article-page-hero.jsx","webpack://B2C-Marketsites-redesign/./source/components/skip-to-main/skip-to-main.jsx","webpack://B2C-Marketsites-redesign/./source/components/species-quick-overview-block/species-quick-overview-block-specie.jsx","webpack://B2C-Marketsites-redesign/./source/hooks/use-scroll-direction.js","webpack://B2C-Marketsites-redesign/./source/components/species-quick-overview-block/species-quick-overview-block.jsx","webpack://B2C-Marketsites-redesign/./source/components/specimen-page-hero/specimen-page-hero-fact.jsx","webpack://B2C-Marketsites-redesign/./source/components/specimen-page-hero/specimen-page-hero.jsx","webpack://B2C-Marketsites-redesign/./source/components/specimen-search-teaser/specimen-search-teaser.jsx","webpack://B2C-Marketsites-redesign/./source/components/specimen-teaser-block/specimen-teaser-block.jsx","webpack://B2C-Marketsites-redesign/./source/components/stories-overview-list/stories-overview-list.jsx","webpack://B2C-Marketsites-redesign/./source/components/story-teasers-block/story-teasers-block.jsx","webpack://B2C-Marketsites-redesign/./source/components/text-with-background-block/text-with-background-block.jsx","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/icons.js","webpack://B2C-Marketsites-redesign/./source/constants/parallax.js","webpack://B2C-Marketsites-redesign/./source/js/polyfills/class-list.js","webpack://B2C-Marketsites-redesign/./source/js/input-detection.js","webpack://B2C-Marketsites-redesign/./source/js/input-detection-loader.js","webpack://B2C-Marketsites-redesign/./source/app.components-exposed.js","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/arrow-down.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/arrow-left.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/arrow-right.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/arrow-up.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/check.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/chevron-down.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/chevron-up.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/cooking-time.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/copy.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/difficulty-level.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/facebook.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/instagram.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/linkedin.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/mail.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/menu-close.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/menu.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/minus-sign.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/phone.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/play-filled.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/play.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/plus-sign.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/rating.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/search.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/share.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/star-empty.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/star-full.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/twitter.svg","webpack://B2C-Marketsites-redesign/./source/assets/inline-icons/ sync \\.svg$","webpack://B2C-Marketsites-redesign/webpack/bootstrap","webpack://B2C-Marketsites-redesign/webpack/runtime/compat get default export","webpack://B2C-Marketsites-redesign/webpack/runtime/define property getters","webpack://B2C-Marketsites-redesign/webpack/runtime/ensure chunk","webpack://B2C-Marketsites-redesign/webpack/runtime/get javascript chunk filename","webpack://B2C-Marketsites-redesign/webpack/runtime/get mini-css chunk filename","webpack://B2C-Marketsites-redesign/webpack/runtime/global","webpack://B2C-Marketsites-redesign/webpack/runtime/hasOwnProperty shorthand","webpack://B2C-Marketsites-redesign/webpack/runtime/make namespace object","webpack://B2C-Marketsites-redesign/webpack/runtime/node module decorator","webpack://B2C-Marketsites-redesign/webpack/runtime/publicPath","webpack://B2C-Marketsites-redesign/webpack/runtime/jsonp chunk loading","webpack://B2C-Marketsites-redesign/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"B2C-Marketsites-redesign:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport cn from 'classnames';\r\n\r\n// NOTE: When running tests, importing SVGs directly will make the application crash, so all icons are exported as noops instead.\r\nconst icons = require(process.env.NODE_ENV === 'test'\r\n ? '../../assets/inline-icons/icons-noop.js'\r\n : '../../assets/inline-icons/icons.js').default;\r\n\r\nconst Icon = ({ className, name, style, useFill }) =>\r\n icons[name]\r\n ? React.createElement(icons[name], {\r\n className: cn('icon', className, { '-use-fill-color': useFill }),\r\n focusable: 'false',\r\n style,\r\n })\r\n : null;\r\n\r\nIcon.propTypes = {\r\n className: PropTypes.string,\r\n name: PropTypes.oneOf(Object.keys(icons)).isRequired,\r\n style: PropTypes.shape({}),\r\n useFill: PropTypes.bool,\r\n};\r\n\r\nIcon.viewModelMeta = 'ignore';\r\n\r\nexport default Icon;\r\n","import PropTypes from 'prop-types';\r\n\r\nconst ButtonBase = {};\r\n\r\nButtonBase.propTypes = {\r\n url: PropTypes.string,\r\n text: PropTypes.string,\r\n tabindex: PropTypes.number,\r\n openInNewTab: PropTypes.bool,\r\n onClick: PropTypes.func,\r\n};\r\n\r\nexport default ButtonBase;\r\n","import PropTypes from 'prop-types';\r\n\r\nexport default {\r\n 'aria-label': PropTypes.string,\r\n 'aria-haspopup': PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\r\n 'aria-controls': PropTypes.string,\r\n 'aria-expanded': PropTypes.bool,\r\n};\r\n","/* eslint-disable react/prop-types */\r\n// TODO: remove view-models/no-unused-meta and eslint-disable react/prop-types rule when this issue https://github.com/asbjornh/view-models/issues/18 is resolved\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Icon from 'components/icon';\r\nimport cn from 'classnames';\r\nimport ButtonBase from 'components/models/button-base';\r\nimport ariaAttributesModel from 'components/models/aria-attributes/aria-attributes';\r\n\r\nconst ActionButton = ({\r\n onClick = () => {},\r\n className,\r\n openInNewTab = false,\r\n url,\r\n iconName,\r\n tabindex,\r\n isActive,\r\n isDisabled = false,\r\n ariaAttributes = {},\r\n text,\r\n}) => {\r\n const RootTag = url ? 'a' : 'button';\r\n return (\r\n \r\n \r\n {text}\r\n \r\n );\r\n};\r\n\r\nActionButton.viewModelMeta = 'ignore';\r\n\r\nActionButton.propTypes = Object.assign({}, ButtonBase.propTypes, {\r\n text: PropTypes.string,\r\n icon: PropTypes.string,\r\n onClick: PropTypes.func,\r\n className: PropTypes.string,\r\n ariaAttributes: PropTypes.exact(ariaAttributesModel),\r\n});\r\n\r\nexport default ActionButton;\r\n","import replaceQueryParameters from '@creuna/utils/replace-query-parameters';\r\nimport CryptoJs from 'crypto-js';\r\n\r\nconst resizeQueryHashSalt = '{DB2BF126-5117-49B4-AB02-949E94E711BD}';\r\n\r\nconst transforms = {\r\n downFit: 'downFit',\r\n downFill: 'downFill',\r\n};\r\n\r\nconst skipForResizeExtensions = ['svg'];\r\n\r\nconst queryParameters = {\r\n width: undefined,\r\n height: undefined,\r\n transform: undefined,\r\n center: undefined,\r\n};\r\n\r\nfunction checkImageCanBeResized(url) {\r\n if (!url) return false;\r\n var extension = url.split(/#|\\?/)[0].split('.').pop().trim();\r\n extension = extension.toLowerCase();\r\n if (skipForResizeExtensions.some(item => item === extension)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nfunction buildResizeUrl(url, width, height, transform, centerX, centerY) {\r\n if (!checkImageCanBeResized(url)) {\r\n return url;\r\n }\r\n\r\n var resizeUrl = replaceQueryParameters(\r\n url,\r\n Object.assign({}, queryParameters, {\r\n width: width > 0 ? width : undefined,\r\n height: height > 0 ? height : undefined,\r\n transform: transform,\r\n center:\r\n transform !== transforms.downFit\r\n ? serializeCenter(centerX, centerY)\r\n : undefined,\r\n })\r\n );\r\n\r\n const resizeQuery = resizeUrl.split(/#|\\?/)[1];\r\n if (resizeQuery) {\r\n var queryHash = CryptoJs.MD5(\r\n resizeQuery.replace('%2C', '%2c') + resizeQueryHashSalt\r\n );\r\n resizeUrl = replaceQueryParameters(resizeUrl, { hash: queryHash });\r\n }\r\n\r\n return resizeUrl;\r\n}\r\n\r\nfunction calcImageWidth(containerWidth, resolution) {\r\n resolution = resolution > 0 ? resolution : 1;\r\n return (\r\n Math.ceil((containerWidth * (window.devicePixelRatio || 1)) / resolution) *\r\n resolution\r\n );\r\n}\r\n\r\nfunction calcImageHeight(containerHeight, resolution) {\r\n resolution = resolution > 0 ? resolution : 1;\r\n return (\r\n Math.ceil((containerHeight * (window.devicePixelRatio || 1)) / resolution) *\r\n resolution\r\n );\r\n}\r\n\r\nfunction serializeCenter(x, y) {\r\n if (x > 0 || y > 0) {\r\n return `${x / 100},${y / 100}`;\r\n }\r\n return undefined;\r\n}\r\n\r\nexport default {\r\n buildResizeUrl,\r\n checkImageCanBeResized,\r\n calcImageWidth,\r\n calcImageHeight,\r\n Transforms: transforms,\r\n};\r\n","export function createHtmlImage() {\r\n var image = typeof Image !== 'undefined' ? new Image() : {};\r\n return image;\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport debounce from 'lodash/debounce';\r\nimport imageResizer from 'js/image-resizer';\r\nimport cn from 'classnames';\r\nimport { createHtmlImage } from 'js/dom-image-utils';\r\n\r\nconst FirstLoadSizeMultiplier = 0.05; // First time we preload smaller image in order to reduce wait time.\r\n\r\n/**\r\n * Image\r\n *\r\n * Key notes:\r\n * - automatically responsive by default (size is automatically calculated from container size)\r\n * - default transform is 'fill'\r\n * - width or height can be fixed (useful for fluid images), in this case default transform is 'fit'\r\n * - when both width and height are defined it becomes unresponsive.\r\n * - can be rendered as fluid or ordinary image\r\n * - resolution it is kind of steps for automatic size calculation, for example if resolution is 100, horizontal image width could be 100,200,300...1200... and height is calculated according to aspect ratio and vise versa for vertical image\r\n * - default resolutions for images with size > 100 is 100 for < 100 is 10\r\n * - device pixel ratio is taken into account for calculating image size\r\n *\r\n * Transforms:\r\n * 'fill' - image is cropped according to container proportions to fill it completely.\r\n * 'fit' - image is resized with saving original proportions to fit container by width or height.\r\n */\r\nclass Image extends React.Component {\r\n static transforms = {\r\n fill: 'fill',\r\n fit: 'fit',\r\n };\r\n\r\n static propTypes = {\r\n className: PropTypes.string,\r\n src: PropTypes.string.isRequired,\r\n alt: PropTypes.string,\r\n transform: PropTypes.oneOf(Object.values(Image.transforms)),\r\n fluid: PropTypes.bool,\r\n focusPoint: PropTypes.shape({\r\n x: PropTypes.number.isRequired,\r\n y: PropTypes.number.isRequired,\r\n }),\r\n width: PropTypes.number,\r\n height: PropTypes.number,\r\n resolution: PropTypes.number,\r\n };\r\n\r\n static viewModelMeta = {\r\n className: 'ignore',\r\n transform: 'ignore',\r\n fluid: 'ignore',\r\n width: 'ignore',\r\n height: 'ignore',\r\n resolution: 'ignore',\r\n };\r\n\r\n canBeResized = imageResizer.checkImageCanBeResized(this.props.src);\r\n autoTransform = this.constructor.transforms.fill;\r\n autoCalcWidthOnly = false;\r\n autoCalcHeightOnly = false;\r\n\r\n defaultSrc = !this.canBeResized\r\n ? this.props.src\r\n : this.props.width > 0 && this.props.height > 0\r\n ? imageResizer.buildResizeUrl(\r\n this.props.src,\r\n this.props.width,\r\n this.props.height,\r\n this.props.transform ||\r\n this.autoTransform === this.constructor.transforms.fill\r\n ? imageResizer.Transforms.downFill\r\n : imageResizer.Transforms.downFit\r\n )\r\n : undefined;\r\n\r\n state = {\r\n src: this.defaultSrc,\r\n width: 0,\r\n height: 0,\r\n ratio: 0,\r\n containerOffsetWidth: 0,\r\n containerOffsetHeight: 0,\r\n };\r\n\r\n preloadImage = createHtmlImage();\r\n firstPreloadImage = createHtmlImage();\r\n\r\n handleResize = () => {\r\n if (\r\n !this.container ||\r\n (this.container.offsetWidth === 0 && this.container.offsetHeight === 0)\r\n ) {\r\n return;\r\n }\r\n\r\n if (this.container.offsetWidth === 0 || this.container.offsetHeight === 0) {\r\n this.autoTransform = Image.transforms.fit;\r\n this.autoCalcWidthOnly = this.container.offsetWidth > 0;\r\n this.autoCalcHeightOnly = this.container.offsetHeight > 0;\r\n }\r\n\r\n const skipByWidth =\r\n this.props.width > 0\r\n ? this.state.width === this.props.width\r\n : this.container.offsetWidth === this.state.containerOffsetWidth;\r\n\r\n const skipByHeight =\r\n this.props.height > 0\r\n ? this.state.height === this.props.height\r\n : this.container.offsetHeight === this.state.containerOffsetHeight;\r\n\r\n if (skipByWidth && skipByHeight) {\r\n return;\r\n }\r\n\r\n const resolutionByWidth =\r\n !(this.props.width > 0) &&\r\n this.container.offsetWidth > this.container.offsetHeight;\r\n\r\n let resolution = this.props.resolution;\r\n if (!(resolution > 0)) {\r\n var resolutionSize = resolutionByWidth\r\n ? this.container.offsetWidth\r\n : this.container.offsetHeight;\r\n\r\n resolution = resolutionSize > 100 ? 100 : 10;\r\n }\r\n\r\n const widthResolution = resolutionByWidth ? resolution : 1;\r\n const heightResolution = resolutionByWidth ? 1 : resolution;\r\n\r\n let newWidth =\r\n this.props.width > 0\r\n ? this.props.width\r\n : this.autoCalcHeightOnly\r\n ? 0\r\n : imageResizer.calcImageWidth(\r\n this.container.offsetWidth,\r\n widthResolution\r\n );\r\n\r\n let newHeight =\r\n this.props.height > 0\r\n ? this.props.height\r\n : this.autoCalcWidthOnly\r\n ? 0\r\n : imageResizer.calcImageHeight(\r\n this.container.offsetHeight,\r\n heightResolution\r\n );\r\n\r\n if (resolutionByWidth) {\r\n if (!this.autoCalcWidthOnly && !this.props.height > 0) {\r\n newHeight = Math.ceil(\r\n newWidth / (this.container.offsetWidth / this.container.offsetHeight)\r\n );\r\n }\r\n } else {\r\n if (!this.autoCalcHeightOnly && !this.props.width > 0) {\r\n newWidth = Math.ceil(\r\n newHeight / (this.container.offsetHeight / this.container.offsetWidth)\r\n );\r\n }\r\n }\r\n\r\n const newRatio =\r\n this.container.offsetHeight > 0\r\n ? Math.ceil(this.container.offsetWidth / this.container.offsetHeight)\r\n : 1;\r\n\r\n this.setState(previousState => {\r\n if (\r\n previousState.width >= newWidth &&\r\n previousState.height >= newHeight &&\r\n previousState.ratio === newRatio\r\n ) {\r\n return {\r\n containerOffsetWidth: this.container.offsetWidth,\r\n containerOffsetHeight: this.container.offsetHeight,\r\n };\r\n }\r\n\r\n const newSrc = imageResizer.buildResizeUrl(\r\n this.props.src,\r\n newWidth,\r\n newHeight,\r\n (this.props.transform || this.autoTransform) === Image.transforms.fill\r\n ? imageResizer.Transforms.downFill\r\n : imageResizer.Transforms.downFit,\r\n this.props.focusPoint ? this.props.focusPoint.x : null,\r\n this.props.focusPoint ? this.props.focusPoint.y : null\r\n );\r\n\r\n if (!this.firstPreloadImage.src && !this.state.src) {\r\n var firstLoadWidth = Math.ceil(newWidth * FirstLoadSizeMultiplier);\r\n var firstLoadHeight = Math.ceil(newHeight * FirstLoadSizeMultiplier);\r\n if (firstLoadWidth > 0 && firstLoadHeight > 0) {\r\n const firstLoadSrc = imageResizer.buildResizeUrl(\r\n this.props.src,\r\n firstLoadWidth,\r\n firstLoadHeight,\r\n (this.props.transform || this.autoTransform) ===\r\n Image.transforms.fill\r\n ? imageResizer.Transforms.downFill\r\n : imageResizer.Transforms.downFit,\r\n this.props.focusPoint ? this.props.focusPoint.x : null,\r\n this.props.focusPoint ? this.props.focusPoint.y : null\r\n );\r\n this.firstPreloadImage.src = firstLoadSrc;\r\n }\r\n }\r\n\r\n if (newSrc !== this.state.src) {\r\n this.preloadImage.src = newSrc;\r\n }\r\n\r\n return {\r\n width: newWidth,\r\n height: newHeight,\r\n ratio: newRatio,\r\n containerOffsetWidth: this.container.offsetWidth,\r\n containerOffsetHeight: this.container.offsetHeight,\r\n };\r\n });\r\n };\r\n\r\n debouncedHandleResize = debounce(this.handleResize, 300);\r\n\r\n onFirstSrcPreloaded() {\r\n if (!this.state.src) {\r\n this.setState({ src: this.firstPreloadImage.src });\r\n }\r\n }\r\n\r\n onSrcPreloaded() {\r\n this.setState({ src: this.preloadImage.src });\r\n }\r\n\r\n checkElementIsHidden(element) {\r\n return !element.offsetParent;\r\n }\r\n\r\n isHidden() {\r\n return this.checkElementIsHidden(this.container);\r\n }\r\n\r\n getHiddenRoot() {\r\n if (!this.checkElementIsHidden(this.container)) {\r\n return null;\r\n }\r\n\r\n var parent = this.container.parentElement;\r\n while (parent && this.checkElementIsHidden(parent.parentElement)) {\r\n parent = parent.parentElement;\r\n }\r\n\r\n return parent;\r\n }\r\n\r\n onObservedChange() {\r\n if (!this.isHidden()) {\r\n this.debouncedHandleResize();\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n const self = this;\r\n this.firstPreloadImage.onload = () => {\r\n self.onFirstSrcPreloaded();\r\n };\r\n this.preloadImage.onload = () => {\r\n self.onSrcPreloaded();\r\n };\r\n if (this.canBeResized) {\r\n this.handleResize();\r\n this.debouncedHandleResize();\r\n window.addEventListener('resize', this.debouncedHandleResize);\r\n }\r\n\r\n this.observer = this.canBeResized\r\n ? new MutationObserver(() => this.onObservedChange.call(this))\r\n : null;\r\n\r\n if (this.observer && this.isHidden()) {\r\n this.observer.observe(this.getHiddenRoot(), {\r\n attributes: true,\r\n });\r\n }\r\n this.setState({ componentDidMount: true });\r\n }\r\n\r\n getSnapshotBeforeUpdate(prevProps) {\r\n if (\r\n this.props.width !== prevProps.width ||\r\n this.props.height !== prevProps.height\r\n ) {\r\n this.handleResize();\r\n }\r\n return null;\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.canBeResized) {\r\n window.removeEventListener('resize', this.debouncedHandleResize);\r\n }\r\n if (this.observer) {\r\n this.observer.disconnect();\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.canBeResized) this.debouncedHandleResize();\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {!this.props.fluid ? (\r\n (this.container = c)}\r\n >\r\n {this.state.src && (\r\n \r\n )}\r\n \r\n ) : (\r\n (this.container = c)}\r\n >\r\n {this.state.src && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Image;\r\n","export default {\r\n small: 'small',\r\n medium: 'medium',\r\n large: 'large',\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Image from 'components/image';\r\nimport cn from 'classnames';\r\nimport Icon from 'components/icon';\r\nimport articleTeaserSizes from './article-teaser-sizes';\r\n\r\nconst ArticleTeaser = ({\r\n image,\r\n heading,\r\n url,\r\n size = articleTeaserSizes.small,\r\n headingTagLevel = 2,\r\n}) => {\r\n const HeadingTag = `h${headingTagLevel}`;\r\n return (\r\n \r\n {image && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n {heading && (\r\n \r\n {heading}\r\n \r\n )}\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nArticleTeaser.viewModelMeta = {\r\n size: 'ignore',\r\n headingTagLevel: 'ignore',\r\n};\r\n\r\nArticleTeaser.propTypes = {\r\n image: PropTypes.exact(Image.propTypes),\r\n heading: PropTypes.string,\r\n url: PropTypes.string,\r\n size: PropTypes.oneOf(Object.values(articleTeaserSizes)),\r\n headingTagLevel: PropTypes.oneOf([2, 3]),\r\n};\r\n\r\nexport default ArticleTeaser;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport cn from 'classnames';\r\n\r\nconst PoorText = ({ text, className }) => {\r\n return !text ? null : (\r\n \r\n );\r\n};\r\n\r\nPoorText.propTypes = {\r\n text: PropTypes.string,\r\n className: PropTypes.string,\r\n};\r\n\r\nPoorText.viewModelMeta = 'ignore';\r\n\r\nexport default PoorText;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ArticleTeaser from 'components/article-teaser';\r\nimport PoorText from 'components/poor-text';\r\nimport cn from 'classnames';\r\nimport ArticleTeaserSizes from 'components/article-teaser/article-teaser-sizes';\r\n\r\nconst ArticleTeasersBlock = ({ heading, introHtml, articles }) => {\r\n const calcItemSize = articleIndex => {\r\n const numberOfArticles = articles.length;\r\n\r\n if (numberOfArticles === 6 || numberOfArticles === 3) {\r\n return ArticleTeaserSizes.small;\r\n }\r\n if (numberOfArticles === 5) {\r\n if (articleIndex < 2) {\r\n return ArticleTeaserSizes.medium;\r\n }\r\n return ArticleTeaserSizes.small;\r\n }\r\n if (numberOfArticles === 2 || numberOfArticles === 4) {\r\n return ArticleTeaserSizes.medium;\r\n }\r\n if (numberOfArticles === 1) {\r\n return ArticleTeaserSizes.large;\r\n }\r\n //Number of articles restricted to max 6 items for now, return default size just in case we have more\r\n return ArticleTeaserSizes.small;\r\n };\r\n\r\n return (\r\n
\r\n {heading &&

{heading}

}\r\n {introHtml && (\r\n \r\n )}\r\n {articles && (\r\n
    \r\n {articles.map((article, index) => {\r\n const itemSIze = calcItemSize(index);\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nArticleTeasersBlock.propTypes = {\r\n heading: PropTypes.string,\r\n introHtml: PropTypes.string,\r\n articles: PropTypes.arrayOf(PropTypes.exact(ArticleTeaser.propTypes)),\r\n};\r\n\r\nexport default ArticleTeasersBlock;\r\n","/* eslint-disable react/jsx-no-target-blank */\r\n/* eslint-disable view-models/no-unused-meta */\r\n/* eslint-disable react/prop-types */\r\n// TODO: remove view-models/no-unused-meta and eslint-disable react/prop-types rule when this issue https://github.com/asbjornh/view-models/issues/18 is resolved\r\nimport React from 'react';\r\nimport ButtonBase from 'components/models/button-base';\r\nimport Icon from 'components/icon';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\nimport ariaAttributesModel from 'components/models/aria-attributes/aria-attributes';\r\n\r\nconst themes = {\r\n dark: 'dark',\r\n light: 'light',\r\n};\r\n\r\nconst Button = ({\r\n className,\r\n openInNewTab = false,\r\n url,\r\n text,\r\n iconName,\r\n tabindex,\r\n theme,\r\n onClick,\r\n ariaAttributes = {},\r\n}) => {\r\n const RootTag = url ? 'a' : 'button';\r\n return (\r\n \r\n \r\n {text}\r\n \r\n {iconName && }\r\n \r\n );\r\n};\r\n\r\nButton.viewModelMeta = 'ignore';\r\n\r\nButton.propTypes = Object.assign({}, ButtonBase.propTypes, {\r\n className: PropTypes.string,\r\n iconName: PropTypes.string,\r\n theme: PropTypes.oneOf(Object.values(themes)),\r\n ariaAttributes: PropTypes.exact(ariaAttributesModel),\r\n});\r\n\r\nexport default Button;\r\n","import React, { useCallback } from 'react';\r\n\r\nexport default function useToggle(initiallyActive) {\r\n const [isActive, setIsActive] = React.useState(initiallyActive);\r\n const toggle = useCallback(() => setIsActive(isActive => !isActive), []);\r\n const activate = useCallback(() => setIsActive(true), []);\r\n const deactivate = useCallback(() => setIsActive(false), []);\r\n\r\n return { isActive, toggle, deactivate, activate };\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\n\r\nexport const themes = {\r\n dark: 'dark',\r\n light: 'light',\r\n};\r\n\r\nconst LoadingIndicator = ({ className, theme = themes.dark }) => {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nLoadingIndicator.viewModelMeta = 'ignore';\r\n\r\nLoadingIndicator.propTypes = {\r\n className: PropTypes.string,\r\n theme: PropTypes.oneOf(Object.values(themes)),\r\n};\r\n\r\nexport default LoadingIndicator;\r\n","import React, { useState, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport useToggle from '../../hooks/use-toggle';\r\nimport Image from 'components/image';\r\nimport Icon from 'components/icon';\r\nimport LoadingIndicator, {\r\n themes as LoadingIndicatorThemes,\r\n} from 'components/loading-indicator/loading-indicator';\r\nimport ReactPlayer from 'react-player';\r\nimport cn from 'classnames';\r\n\r\nconst EmbeddedVideoBlock = ({ caption, previewImage, videoUrl, lang }) => {\r\n const [playing, setPlaying] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const { isActive, activate, deactivate } = useToggle(false);\r\n\r\n const onPlayBtnClick = () => {\r\n setIsLoading(true);\r\n activate();\r\n };\r\n\r\n const onPlayerStart = () => {\r\n setPlaying(true);\r\n setIsLoading(false);\r\n };\r\n\r\n const onPlayerError = () => {\r\n setPlaying(false);\r\n setIsLoading(false);\r\n deactivate();\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {previewImage && (\r\n \r\n )}\r\n {!playing && (\r\n
\r\n \r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n )}\r\n {isActive && (\r\n \r\n )}\r\n
\r\n {caption && (\r\n
\r\n {caption}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nEmbeddedVideoBlock.propTypes = {\r\n caption: PropTypes.string,\r\n previewImage: PropTypes.exact(Image.propTypes),\r\n videoUrl: PropTypes.string.isRequired,\r\n lang: PropTypes.shape({\r\n playVideoButtonAriaLabel: PropTypes.string.isRequired,\r\n }).isRequired,\r\n};\r\n\r\nexport default EmbeddedVideoBlock;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst ErrorMessage = ({ text }) => {\r\n return
{text}
;\r\n};\r\n\r\nErrorMessage.propTypes = {\r\n text: PropTypes.string,\r\n};\r\n\r\nErrorMessage.viewModelMeta = 'ignore';\r\n\r\nexport default ErrorMessage;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\n\r\nconst FilterHeading = ({ asLabelFor, text, className }) => {\r\n const TagName = asLabelFor ? 'label' : 'strong';\r\n\r\n return text ? (\r\n \r\n {text}\r\n \r\n ) : null;\r\n};\r\n\r\nFilterHeading.viewModelMeta = 'ignore';\r\n\r\nFilterHeading.propTypes = {\r\n className: PropTypes.string,\r\n text: PropTypes.string,\r\n asLabelFor: PropTypes.string,\r\n};\r\n\r\nexport default FilterHeading;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\nimport Image from 'components/image';\r\n\r\nconst Logo = ({ className, url, image, imageClass }) => {\r\n const RootTag = url ? 'a' : 'div';\r\n\r\n const rootTagProps = {\r\n ...(url && {\r\n href: url,\r\n }),\r\n className: cn('logo', className),\r\n };\r\n\r\n return (\r\n \r\n {image && }\r\n \r\n );\r\n};\r\n\r\nLogo.propTypes = {\r\n className: PropTypes.string,\r\n imageClass: PropTypes.string,\r\n url: PropTypes.string,\r\n image: PropTypes.exact(Image.propTypes),\r\n};\r\n\r\nLogo.viewModelMeta = {\r\n className: 'ignore',\r\n imageClass: 'ignore',\r\n};\r\n\r\nexport default Logo;\r\n","import PropTypes from 'prop-types';\r\n\r\nconst LinkBase = {};\r\n\r\nLinkBase.propTypes = {\r\n url: PropTypes.string,\r\n text: PropTypes.string,\r\n openInNewTab: PropTypes.bool,\r\n};\r\n\r\nexport default LinkBase;\r\n","/* eslint-disable react/jsx-no-target-blank */\r\n/* eslint-disable view-models/no-unused-meta */\r\n/* eslint-disable react/prop-types */\r\n// TODO: remove view-models/no-unused-meta and eslint-disable react/prop-types rule when this issue https://github.com/asbjornh/view-models/issues/18 is resolved\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport LinkBase from 'components/models/link-base';\r\nimport cn from 'classnames';\r\n\r\nconst Link = ({\r\n className,\r\n openInNewTab = false,\r\n url,\r\n text,\r\n tabindex,\r\n onFocus = () => {},\r\n onBlur = () => {},\r\n}) => (\r\n \r\n {text}\r\n \r\n);\r\n\r\nLink.viewModelMeta = {\r\n className: 'ignore',\r\n tabindex: 'ignore',\r\n onFocus: 'ignore',\r\n onBlur: 'ignore',\r\n};\r\n\r\nLink.propTypes = Object.assign({}, LinkBase.propTypes, {\r\n className: PropTypes.string,\r\n tabindex: PropTypes.number,\r\n onFocus: PropTypes.func,\r\n onBlur: PropTypes.func,\r\n});\r\n\r\nexport default Link;\r\n","/* eslint-disable react/prop-types */\r\n// TODO: remove view-models/no-unused-meta and eslint-disable react/prop-types rule when this issue https://github.com/asbjornh/view-models/issues/18 is resolved\r\nimport React, { forwardRef } from 'react';\r\nimport ButtonBase from 'components/models/button-base';\r\nimport Icon from 'components/icon';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\nimport ariaAttributesModel from 'components/models/aria-attributes/aria-attributes';\r\n\r\nexport const themes = {\r\n dark: 'dark',\r\n light: 'light',\r\n};\r\n\r\nexport const sizes = {\r\n normal: 'normal',\r\n small: 'small',\r\n};\r\n\r\nexport const arrowDirections = {\r\n right: 'right',\r\n left: 'left',\r\n};\r\n\r\nconst LinkButton = forwardRef(\r\n (\r\n {\r\n className,\r\n openInNewTab = false,\r\n url,\r\n text,\r\n tabindex,\r\n isActive,\r\n theme,\r\n onClick,\r\n size = sizes.normal,\r\n arrowDirection = arrowDirections.right,\r\n reverseIconDirectionOnHover,\r\n ariaAttributes = {},\r\n },\r\n ref\r\n ) => {\r\n const RootTag = url ? 'a' : 'button';\r\n const leftDirection = arrowDirection === arrowDirections.left;\r\n return (\r\n \r\n {((reverseIconDirectionOnHover && !leftDirection) || leftDirection) && (\r\n \r\n )}\r\n \r\n {text}\r\n \r\n {((reverseIconDirectionOnHover && leftDirection) || !leftDirection) && (\r\n \r\n )}\r\n \r\n );\r\n }\r\n);\r\n\r\nLinkButton.viewModelMeta = 'ignore';\r\n\r\nLinkButton.propTypes = Object.assign({}, ButtonBase.propTypes, {\r\n className: PropTypes.string,\r\n theme: PropTypes.oneOf(Object.values(themes)),\r\n size: PropTypes.oneOf(Object.values(sizes)),\r\n arrowDirection: PropTypes.oneOf(Object.values(arrowDirections)),\r\n isActive: PropTypes.bool,\r\n reverseIconDirectionOnHover: PropTypes.bool,\r\n ariaAttributes: PropTypes.exact(ariaAttributesModel),\r\n});\r\n\r\nexport default LinkButton;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\n\r\nexport const linePositions = {\r\n right: 'right',\r\n left: 'left',\r\n};\r\n\r\nconst OriginMatters = ({\r\n className,\r\n text,\r\n linePosition = 'left',\r\n calculatedLineOffset,\r\n}) => {\r\n return (\r\n \r\n \r\n {text}\r\n \r\n );\r\n};\r\n\r\nOriginMatters.viewModelMeta = 'ignore';\r\n\r\nOriginMatters.propTypes = {\r\n className: PropTypes.string,\r\n text: PropTypes.string,\r\n calculatedLineOffset: PropTypes.number,\r\n linePosition: PropTypes.oneOf(Object.values(linePositions)),\r\n};\r\n\r\nexport default OriginMatters;\r\n","import isRunningOnClient from '@creuna/utils/is-running-on-client';\r\n\r\nfunction minWidth(size) {\r\n return function () {\r\n return isRunningOnClient\r\n ? window.matchMedia(`(min-width: ${size}px)`).matches\r\n : null;\r\n };\r\n}\r\n\r\nconst breakpoints = {\r\n s: 0,\r\n m: 768,\r\n l: 1024,\r\n ipadPro: 1025,\r\n xl: 1800,\r\n};\r\n\r\nexport default {\r\n s: minWidth(breakpoints.s),\r\n m: minWidth(breakpoints.m),\r\n l: minWidth(breakpoints.l),\r\n ipadPro: minWidth(breakpoints.ipadPro),\r\n xl: minWidth(breakpoints.xl),\r\n};\r\n","import React, { useEffect } from 'react';\r\nimport breakpoints from 'js/breakpoints';\r\n\r\nexport default function useBreakpoints(\r\n initiallyDesktop,\r\n initiallyTablet,\r\n initiallyMobile,\r\n initiallyDesktopLargerThanIpad,\r\n initiallyDesktopExtraLarge\r\n) {\r\n const [state, setState] = React.useState({\r\n isDesktop: initiallyDesktop,\r\n isTablet: initiallyTablet,\r\n isMobile: initiallyMobile,\r\n isDesktopLargerThanIpad: initiallyDesktopLargerThanIpad,\r\n isDesktopExtraLarge: initiallyDesktopExtraLarge,\r\n brekpointsStarted: false,\r\n });\r\n\r\n const onResize = () => {\r\n setState({\r\n isDesktop: breakpoints.l(),\r\n isTablet: breakpoints.m() && !breakpoints.l(),\r\n isMobile: breakpoints.s() && !breakpoints.m(),\r\n isDesktopLargerThanIpad: breakpoints.ipadPro(),\r\n isDesktopExtraLarge: breakpoints.xl(),\r\n brekpointsStarted: true,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n onResize();\r\n window.addEventListener('resize', onResize);\r\n return () => window.removeEventListener('resize', onResize);\r\n }, []);\r\n\r\n return state;\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Image from 'components/image';\r\nimport Link from 'components/link';\r\nimport LinkButton, {\r\n sizes as linkButtonSizes,\r\n themes as LinkButtonThemes,\r\n} from 'components/link-button';\r\nimport PoorText from 'components/poor-text';\r\nimport OriginMatters, {\r\n linePositions as OriginMattersLinePositions,\r\n} from 'components/origin-matters';\r\nimport imageResizer from 'js/image-resizer';\r\nimport useBreakpoints from 'hooks/use-breakpoints';\r\n\r\nconst FooterBanner = ({ heading, introHtml, backgroundImage, lang, link }) => {\r\n const { isMobile } = useBreakpoints(true);\r\n const [imageWidth, setImageWidth] = useState(0);\r\n\r\n useEffect(() => {\r\n setImageWidth(\r\n isMobile ? imageResizer.calcImageWidth(window.innerWidth, 100) : 1320\r\n );\r\n }, [isMobile]);\r\n\r\n return (\r\n
\r\n {backgroundImage && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n {heading &&

{heading}

}\r\n {introHtml && (\r\n \r\n )}\r\n {link && (\r\n \r\n )}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nFooterBanner.propTypes = {\r\n heading: PropTypes.string,\r\n introHtml: PropTypes.string,\r\n backgroundImage: PropTypes.exact(Image.propTypes),\r\n lang: PropTypes.shape({\r\n originMattersLabel: PropTypes.string.isRequired,\r\n }).isRequired,\r\n link: PropTypes.exact(Link.propTypes),\r\n};\r\n\r\nexport default FooterBanner;\r\n","/* eslint-disable react/jsx-no-target-blank */\r\n/* eslint-disable view-models/no-unused-meta */\r\n/* eslint-disable react/prop-types */\r\n// TODO: remove view-models/no-unused-meta and eslint-disable react/prop-types rule when this issue https://github.com/asbjornh/view-models/issues/18 is resolved\r\nimport React from 'react';\r\nimport ButtonBase from 'components/models/button-base';\r\nimport Icon from 'components/icon';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\nimport ariaAttributesModel from 'components/models/aria-attributes/aria-attributes';\r\n\r\nconst IconButton = ({\r\n className,\r\n openInNewTab = false,\r\n url,\r\n iconName,\r\n tabindex,\r\n isActive,\r\n onClick,\r\n isDisabled = false,\r\n ariaAttributes = {},\r\n}) => {\r\n const RootTag = url ? 'a' : 'button';\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nIconButton.viewModelMeta = 'ignore';\r\n\r\nIconButton.propTypes = Object.assign({}, ButtonBase.propTypes, {\r\n iconName: PropTypes.string,\r\n className: PropTypes.string,\r\n isActive: PropTypes.bool,\r\n ariaAttributes: PropTypes.exact(ariaAttributesModel),\r\n});\r\n\r\nexport default IconButton;\r\n","/* eslint-disable react/prop-types */\r\n// TODO: remove eslint-disable react/prop-types rule when this issue https://github.com/asbjornh/view-models/issues/18 is resolved\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Link from 'components/link';\r\nimport IconButton from 'components/icon-button';\r\n\r\nconst icons = {\r\n facebook: 'facebook',\r\n twitter: 'twitter',\r\n instagram: 'instagram',\r\n linkedin: 'linkedin',\r\n};\r\n\r\nconst SocialLink = ({ icon, ...rest }) => {\r\n return ;\r\n};\r\n\r\nSocialLink.propTypes = Object.assign({}, Link.propTypes, {\r\n icon: PropTypes.oneOf(Object.values(icons)).isRequired,\r\n});\r\n\r\nexport default SocialLink;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport cn from 'classnames';\r\n\r\nconst RichText = ({ text, className }) => {\r\n return !text ? null : (\r\n \r\n );\r\n};\r\n\r\nRichText.propTypes = {\r\n text: PropTypes.string,\r\n className: PropTypes.string,\r\n};\r\n\r\nRichText.viewModelMeta = 'ignore';\r\n\r\nexport default RichText;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Logo from 'components/logo';\r\nimport FooterBanner from 'components/footer-banner';\r\nimport Link from 'components/link';\r\nimport SocialLink from 'components/social-link';\r\nimport RichText from 'components/rich-text';\r\n\r\nconst Footer = ({\r\n banner,\r\n heading,\r\n logo,\r\n column1,\r\n column2,\r\n socialLinks,\r\n privacy,\r\n}) => {\r\n return (\r\n
\r\n {banner && }\r\n
\r\n
\r\n {heading && {heading}}\r\n
\r\n {column1 && (\r\n
\r\n {column1.heading && (\r\n \r\n {column1.heading}\r\n \r\n )}\r\n {column1.textHtml && (\r\n \r\n )}\r\n
\r\n )}\r\n {column2 && (\r\n
\r\n {column2.heading && (\r\n \r\n {column2.heading}\r\n \r\n )}\r\n {column2.textHtml && (\r\n \r\n )}\r\n
\r\n )}\r\n {socialLinks && (\r\n
\r\n {socialLinks.heading && (\r\n \r\n {socialLinks.heading}\r\n \r\n )}\r\n
    \r\n {socialLinks.links &&\r\n socialLinks.links.map((item, i) => (\r\n
  • \r\n \r\n
  • \r\n ))}\r\n
\r\n
\r\n )}\r\n {privacy && (\r\n
\r\n {privacy.heading && (\r\n \r\n {privacy.heading}\r\n \r\n )}\r\n
    \r\n {privacy.links &&\r\n privacy.links.map((item, i) => (\r\n
  • \r\n \r\n
  • \r\n ))}\r\n
\r\n
\r\n )}\r\n
\r\n {logo && logo.url && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nFooter.propTypes = {\r\n heading: PropTypes.string,\r\n banner: PropTypes.exact(FooterBanner.propTypes),\r\n logo: PropTypes.exact(Logo.propTypes),\r\n column1: PropTypes.shape({\r\n heading: PropTypes.string,\r\n textHtml: PropTypes.string,\r\n }),\r\n column2: PropTypes.shape({\r\n heading: PropTypes.string,\r\n textHtml: PropTypes.string,\r\n }),\r\n socialLinks: PropTypes.shape({\r\n heading: PropTypes.string,\r\n links: PropTypes.arrayOf(PropTypes.shape(SocialLink.propTypes)),\r\n }),\r\n privacy: PropTypes.shape({\r\n heading: PropTypes.string,\r\n links: PropTypes.arrayOf(PropTypes.shape(Link.propTypes)),\r\n }),\r\n};\r\n\r\nexport default Footer;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\nconst sizes = {\r\n normal: 'normal',\r\n small: 'small',\r\n};\r\n// NOTE: Could be rendered on BE side as static html.\r\nconst PageHeading = ({ text, className, size }) => {\r\n return (\r\n \r\n {text}\r\n \r\n );\r\n};\r\n\r\nPageHeading.propTypes = {\r\n text: PropTypes.string,\r\n className: PropTypes.string,\r\n size: PropTypes.oneOf(Object.values(sizes)),\r\n};\r\n\r\nPageHeading.viewModelMeta = 'ignore';\r\n\r\nexport default PageHeading;\r\n","export const calculateInterpolatedValue = (\r\n abstractUnit,\r\n maxValue,\r\n maxAbstractUnit,\r\n minValue\r\n) => {\r\n const safeMinValue = minValue ?? 0;\r\n const minAbstractUnit = 1;\r\n\r\n const interpolatedValue =\r\n safeMinValue +\r\n ((abstractUnit - minAbstractUnit) * (maxValue - safeMinValue)) /\r\n (maxAbstractUnit - minAbstractUnit);\r\n return interpolatedValue;\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Parallax } from 'react-parallax';\r\nimport { calculateInterpolatedValue } from 'js/calc-utils';\r\nimport useBreakpoints from 'hooks/use-breakpoints';\r\nimport cn from 'classnames';\r\n\r\nconst ParallaxHeroBackground = ({\r\n backgroundColor,\r\n useParallaxOnMobile = true,\r\n className,\r\n}) => {\r\n const { isMobile } = useBreakpoints(true);\r\n\r\n return (\r\n {\r\n const maxPercentage = 1.3;\r\n const maxBorderWidth = isMobile ? 35 : 60;\r\n let boxShadowWidth = 0;\r\n\r\n if ((isMobile && useParallaxOnMobile) || !isMobile) {\r\n if (percentage > maxPercentage) {\r\n boxShadowWidth = maxBorderWidth;\r\n } else {\r\n boxShadowWidth = calculateInterpolatedValue(\r\n percentage,\r\n maxBorderWidth,\r\n maxPercentage\r\n );\r\n }\r\n }\r\n\r\n return (\r\n \r\n );\r\n }}\r\n >\r\n );\r\n};\r\n\r\nParallaxHeroBackground.propTypes = {\r\n backgroundColor: PropTypes.string.isRequired,\r\n useParallaxOnMobile: PropTypes.bool,\r\n className: PropTypes.string,\r\n};\r\n\r\nParallaxHeroBackground.viewModelMeta = 'ignore';\r\n\r\nexport default ParallaxHeroBackground;\r\n","import isRunningOnClient from '@creuna/utils/is-running-on-client';\r\n\r\nexport const getNumericCssPropertyValue = propName => {\r\n if (!isRunningOnClient) return 0;\r\n\r\n return parseInt(\r\n getComputedStyle(document.documentElement).getPropertyValue(propName)\r\n );\r\n};\r\n","import { useState, useEffect } from 'react';\r\nimport { getNumericCssPropertyValue } from 'js/stylesheet-utils';\r\n\r\nexport const ANIMATION_STEPS = {\r\n oneLayerHero: [\r\n '--page-hero-bg-fade-animation-duration',\r\n '--page-hero-content-fade-animation-duration',\r\n ],\r\n twoLayersHero: [\r\n '--page-hero-bg-fade-animation-duration',\r\n '--page-hero-content-fade-animation-duration',\r\n ],\r\n expandingLayerHero: [\r\n '--page-hero-bg-appearance-duration',\r\n '--page-hero-bg-expansion-duration',\r\n ],\r\n};\r\n\r\nconst useAnimationStepSwitcher = animationSteps => {\r\n const [animationCurrentStep, setAnimationCurrentStep] = useState(0);\r\n\r\n useEffect(() => {\r\n setAnimationCurrentStep(1);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const animationStepName = animationSteps[animationCurrentStep - 1];\r\n\r\n if (animationStepName) {\r\n // Avoid infinite render issue, check if step does exist\r\n setTimeout(() => {\r\n setAnimationCurrentStep(animationCurrentStep + 1);\r\n }, getNumericCssPropertyValue(animationStepName));\r\n }\r\n }, [animationCurrentStep]);\r\n\r\n return animationCurrentStep;\r\n};\r\n\r\nexport default useAnimationStepSwitcher;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Image from 'components/image';\r\nimport PoorText from 'components/poor-text';\r\nimport PageHeading from 'components/page-heading';\r\nimport ParallaxHeroBackground from 'components/parallax-hero-background';\r\nimport OriginMatters, {\r\n linePositions as OriginMattersLinePositions,\r\n} from 'components/origin-matters';\r\nimport useAnimationStepSwitcher, {\r\n ANIMATION_STEPS,\r\n} from 'hooks/use-animation-step-switcher';\r\nimport useBreakpoints from 'hooks/use-breakpoints';\r\nimport { calculateInterpolatedValue } from 'js/calc-utils';\r\nimport { Parallax } from 'react-parallax';\r\nimport cn from 'classnames';\r\n\r\nconst FrontPageHero = ({ heading, introHtml, image, lang }) => {\r\n const { isMobile } = useBreakpoints(true);\r\n const animationCurrentStep = useAnimationStepSwitcher(\r\n ANIMATION_STEPS.twoLayersHero\r\n );\r\n\r\n return (\r\n
\r\n 0,\r\n })}\r\n />\r\n 2,\r\n })}\r\n >\r\n 1,\r\n })}\r\n >\r\n {heading && (\r\n \r\n )}\r\n
\r\n {introHtml && (\r\n \r\n )}\r\n {\r\n const maxPercentage = 0.65;\r\n const maxLineOffset = 999;\r\n let calculatedLineOffset = 0;\r\n\r\n if (percentage > maxPercentage) {\r\n calculatedLineOffset = maxLineOffset;\r\n } else {\r\n calculatedLineOffset = calculateInterpolatedValue(\r\n percentage,\r\n maxLineOffset,\r\n maxPercentage\r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n {image && (\r\n {\r\n const maxPercentage = 1.3;\r\n const maxImageColPadding = 60;\r\n let imageColPadding = 0;\r\n\r\n if (percentage > maxPercentage) {\r\n imageColPadding = maxImageColPadding;\r\n } else {\r\n imageColPadding = calculateInterpolatedValue(\r\n percentage,\r\n maxImageColPadding,\r\n maxPercentage\r\n );\r\n }\r\n\r\n return (\r\n \r\n 0,\r\n 'front-page-hero__image-holder-overlay_tight':\r\n animationCurrentStep <= 2,\r\n })}\r\n >\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n }}\r\n />\r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nFrontPageHero.propTypes = {\r\n heading: PropTypes.string,\r\n introHtml: PropTypes.string,\r\n image: PropTypes.exact(Image.propTypes),\r\n lang: PropTypes.shape({\r\n originMattersLabel: PropTypes.string.isRequired,\r\n }).isRequired,\r\n};\r\n\r\nexport default FrontPageHero;\r\n","import PropTypes from 'prop-types';\r\nimport Link from 'components/link';\r\n\r\nconst MenuLink = {};\r\n\r\nMenuLink.propTypes = Object.assign({}, Link.propTypes, {\r\n isActive: PropTypes.bool,\r\n});\r\n\r\nexport default MenuLink;\r\n","import React from 'react';\r\nimport MenuLink from 'components/models/menu-link';\r\nimport LinkButton, { themes as LinkButtonThemes } from 'components/link-button';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\n\r\nconst MainMenu = ({ links, className }) => {\r\n return links && links.length > 0 ? (\r\n
    \r\n {links.map((link, index) => (\r\n
  • \r\n \r\n
  • \r\n ))}\r\n
\r\n ) : null;\r\n};\r\n\r\nMainMenu.viewModelMeta = {\r\n className: 'ignore',\r\n};\r\n\r\nMainMenu.propTypes = {\r\n className: PropTypes.string,\r\n links: PropTypes.arrayOf(PropTypes.exact(MenuLink.propTypes)).isRequired,\r\n};\r\n\r\nexport default MainMenu;\r\n","import React from 'react';\r\nimport Link from 'components/link';\r\nimport MenuLink from 'components/models/menu-link';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\n\r\nconst SecondaryMenu = ({ links, className }) => {\r\n return links && links.length > 0 ? (\r\n
    \r\n {links.map((link, index) => (\r\n
  • \r\n \r\n
  • \r\n ))}\r\n
\r\n ) : null;\r\n};\r\n\r\nSecondaryMenu.viewModelMeta = {\r\n className: 'ignore',\r\n};\r\n\r\nSecondaryMenu.propTypes = {\r\n className: PropTypes.string,\r\n links: PropTypes.arrayOf(PropTypes.exact(MenuLink.propTypes)).isRequired,\r\n};\r\n\r\nexport default SecondaryMenu;\r\n","import PropTypes from 'prop-types';\r\n\r\nconst SearchFormLang = {};\r\n\r\nSearchFormLang.propTypes = {\r\n searchLabel: PropTypes.string.isRequired,\r\n searchInputAriaLabel: PropTypes.string.isRequired,\r\n searchFormAriaLabel: PropTypes.string.isRequired,\r\n searchBtnAriaLabel: PropTypes.string.isRequired,\r\n searchHint: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default SearchFormLang;\r\n","const prefixesDictionary = {};\r\n\r\nconst generateUniqueId = prefix => {\r\n if (!prefixesDictionary[prefix]) {\r\n prefixesDictionary[prefix] = 1;\r\n } else {\r\n prefixesDictionary[prefix] += 1;\r\n }\r\n return `${prefix}-${prefixesDictionary[prefix]}`;\r\n};\r\n\r\nexport default {\r\n generateUniqueId,\r\n};\r\n","import React, {\r\n useEffect,\r\n useState,\r\n useMemo,\r\n useRef,\r\n forwardRef,\r\n useImperativeHandle,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport FilterHeading from 'components/filter-heading';\r\nimport Icon from 'components/icon/icon';\r\nimport cn from 'classnames';\r\nimport idHelper from 'js/id-helper';\r\nimport SearchFormLang from 'components/models/search-form-lang/search-form-lang';\r\n\r\nexport const themes = {\r\n dark: 'dark',\r\n light: 'light',\r\n};\r\n\r\nexport const sizes = {\r\n large: 'large',\r\n normal: 'normal',\r\n};\r\n\r\nconst SearchForm = forwardRef(\r\n (\r\n {\r\n size = sizes.normal,\r\n theme = themes.dark,\r\n query,\r\n className,\r\n lang,\r\n searchPageUrl,\r\n displayTopLabel = true,\r\n onSearch,\r\n },\r\n ref\r\n ) => {\r\n const [value, setValue] = useState(query || '');\r\n const [isFocused, setIsFocused] = useState(false);\r\n const uniqueSearchFormId = useMemo(\r\n () => idHelper.generateUniqueId('search-form'),\r\n []\r\n );\r\n const searchInput = useRef(null);\r\n\r\n useEffect(() => {\r\n setValue(query || '');\r\n }, [query]);\r\n\r\n const isFilled = value && value.trim().length;\r\n\r\n const onInputChange = e => {\r\n const val = e.target.value;\r\n setValue(val);\r\n };\r\n\r\n const onInputFocus = () => {\r\n setIsFocused(true);\r\n };\r\n\r\n const onInputBlur = () => {\r\n setIsFocused(false);\r\n };\r\n\r\n const onFormSubmit = e => {\r\n if (onSearch) {\r\n e.preventDefault();\r\n onSearch(value);\r\n }\r\n };\r\n\r\n useImperativeHandle(ref, () => ({\r\n clearInput() {\r\n setValue('');\r\n },\r\n focusInput() {\r\n if (searchInput && searchInput.current) {\r\n searchInput.current.focus();\r\n }\r\n },\r\n }));\r\n\r\n return (\r\n \r\n {displayTopLabel && (\r\n \r\n )}\r\n
\r\n \r\n {lang.searchLabel}:\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n }\r\n);\r\n\r\nSearchForm.viewModelMeta = 'ignore';\r\n\r\nSearchForm.propTypes = {\r\n className: PropTypes.string,\r\n query: PropTypes.string,\r\n searchPageUrl: PropTypes.string,\r\n size: PropTypes.oneOf(Object.values(sizes)),\r\n theme: PropTypes.oneOf(Object.values(themes)),\r\n lang: PropTypes.shape(SearchFormLang.propTypes).isRequired,\r\n displayTopLabel: PropTypes.bool,\r\n onSearch: PropTypes.func,\r\n};\r\n\r\nexport default SearchForm;\r\n","/* eslint-disable react/no-multi-comp */\r\nimport React, { useEffect, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SearchFormLang from 'components/models/search-form-lang/search-form-lang';\r\nimport SearchForm, {\r\n sizes as searchFormSizes,\r\n themes as searchFormThemes,\r\n} from 'components/search-form/search-form';\r\nimport Icon from 'components/icon';\r\nimport cn from 'classnames';\r\n\r\nconst quickSearchFormId = 'quick-search-form';\r\n\r\nconst QuickSearch = ({\r\n className,\r\n searchPageUrl,\r\n lang,\r\n isSearchExpanded,\r\n onSearchExpand,\r\n}) => {\r\n const searchFormRef = useRef(null);\r\n\r\n useEffect(() => {\r\n if (searchFormRef && searchFormRef.current) {\r\n !isSearchExpanded && searchFormRef.current.clearInput();\r\n }\r\n }, [isSearchExpanded, searchFormRef]);\r\n\r\n const expandSearch = () => {\r\n onSearchExpand();\r\n\r\n setTimeout(() => {\r\n if (searchFormRef && searchFormRef.current) {\r\n searchFormRef.current.focusInput();\r\n }\r\n }, 200);\r\n };\r\n\r\n return (\r\n
\r\n \r\n {lang.searchLabel}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nQuickSearch.viewModelMeta = {\r\n className: 'ignore',\r\n onSearchExpand: 'ignore',\r\n isSearchExpanded: 'ignore',\r\n};\r\n\r\nQuickSearch.propTypes = {\r\n className: PropTypes.string,\r\n searchPageUrl: PropTypes.string,\r\n isSearchExpanded: PropTypes.bool,\r\n lang: PropTypes.shape(SearchFormLang.propTypes).isRequired,\r\n onSearchExpand: PropTypes.func,\r\n};\r\n\r\nexport default QuickSearch;\r\n","import React from 'react';\r\n\r\n/** Attaches an event listener for `eventName` to `window`. */\r\nexport default function useEvent(\r\n eventName = '',\r\n eventHandler = () => {},\r\n dependencies = []\r\n) {\r\n React.useEffect(() => {\r\n window.addEventListener(eventName, eventHandler);\r\n return () => window.removeEventListener(eventName, eventHandler);\r\n }, dependencies);\r\n}\r\n","import useEvent from './use-event';\r\n\r\nconst isEscape = event =>\r\n event && (event.key === 'Escape' || event.which === 27);\r\n\r\n/** Fires `callback` when the escape key is pressed */\r\nexport default function useEscape(callback) {\r\n useEvent('keydown', e => {\r\n if (isEscape(e)) {\r\n callback();\r\n }\r\n });\r\n}\r\n","import useEvent from './use-event';\r\n\r\n/** Executes the provided callback when a click event occurs outside of the provided ref */\r\nconst useClickOutside = (ref, callback = () => {}) => {\r\n useEvent('click', e => {\r\n if (\r\n ref.current &&\r\n e.target !== ref.current &&\r\n !ref.current.contains(e.target)\r\n ) {\r\n callback();\r\n }\r\n });\r\n};\r\n\r\nexport default useClickOutside;\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Logo from 'components/logo';\r\nimport MainMenu from 'components/main-menu';\r\nimport Button from 'components/button';\r\nimport SecondaryMenu from 'components/secondary-menu';\r\nimport QuickSearch from 'components/quick-search';\r\nimport useToggle from 'hooks/use-toggle';\r\nimport useEscape from 'hooks/use-escape';\r\nimport useClickOutside from 'hooks/use-click-outside';\r\nimport { getNumericCssPropertyValue } from 'js/stylesheet-utils';\r\nimport cn from 'classnames';\r\nimport FocusTrap from 'focus-trap-react';\r\n\r\nconst headerMenuId = 'header-menu';\r\nconst bodyActiveClass = 'header-menu-is-opened';\r\n\r\nconst Header = ({ logo, mainMenu, quickSearch, secondaryMenu, lang }) => {\r\n const [isAnimated, setIsAnimated] = useState(false);\r\n\r\n useEffect(() => {\r\n const headerAnimationTimeout = getNumericCssPropertyValue(\r\n '--header-animation-timeout'\r\n );\r\n\r\n setTimeout(() => {\r\n setIsAnimated(true);\r\n }, headerAnimationTimeout);\r\n }, []);\r\n\r\n const {\r\n isActive: isMenuActive,\r\n toggle: toggleMenu,\r\n deactivate: deactivateMenu,\r\n } = useToggle(false);\r\n const {\r\n isActive: isSearchExpanded,\r\n activate: activateSearch,\r\n deactivate: deactivateSearch,\r\n } = useToggle(false);\r\n\r\n const headerRef = useRef(null);\r\n\r\n const closeHeader = () => {\r\n deactivateMenu();\r\n deactivateSearch();\r\n };\r\n\r\n useEscape(closeHeader);\r\n useClickOutside(headerRef, closeHeader);\r\n\r\n React.useEffect(() => {\r\n if (isMenuActive) {\r\n activateSearch();\r\n document.body.classList.add(bodyActiveClass);\r\n } else {\r\n deactivateSearch();\r\n document.body.classList.remove(bodyActiveClass);\r\n }\r\n }, [isMenuActive]);\r\n\r\n return (\r\n \r\n \r\n
\r\n {logo && logo.url && (\r\n \r\n )}\r\n {quickSearch && (\r\n \r\n )}\r\n {(mainMenu || secondaryMenu) && (\r\n \r\n )}\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nHeader.propTypes = {\r\n logo: PropTypes.exact(Logo.propTypes),\r\n quickSearch: PropTypes.exact(QuickSearch.propTypes),\r\n mainMenu: PropTypes.exact(MainMenu.propTypes),\r\n secondaryMenu: PropTypes.exact(SecondaryMenu.propTypes),\r\n lang: PropTypes.shape({\r\n menuLabel: PropTypes.string.isRequired,\r\n closeMenuLabel: PropTypes.string.isRequired,\r\n }).isRequired,\r\n};\r\n\r\nexport default Header;\r\n","function format(string, ...args) {\r\n return string.replace(/{(\\d+)}/g, function (match, number) {\r\n return typeof args[number] !== 'undefined' ? args[number] : '';\r\n });\r\n}\r\n\r\nexport default {\r\n format,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Logo from 'components/logo';\r\nimport Image from 'components/image';\r\nimport stringHelper from 'js/string-helper';\r\nimport cn from 'classnames';\r\n\r\nconst HowToBuyBlock = ({ specimenName, image, howToBuyLogo, lang }) => (\r\n
\r\n
\r\n
\r\n \r\n {image && (\r\n \r\n )}\r\n
\r\n {howToBuyLogo && (\r\n \r\n )}\r\n
\r\n
\r\n

{lang.howToBuyHeading}

\r\n

\r\n {stringHelper.format(lang.howToBuyText, specimenName)}\r\n

\r\n
\r\n
\r\n \r\n);\r\n\r\nHowToBuyBlock.propTypes = {\r\n specimenName: PropTypes.string,\r\n image: PropTypes.exact(Image.propTypes),\r\n howToBuyLogo: PropTypes.exact(Logo.propTypes),\r\n lang: PropTypes.shape({\r\n howToBuyText: PropTypes.string.isRequired,\r\n howToBuyHeading: PropTypes.string.isRequired,\r\n }).isRequired,\r\n};\r\n\r\nexport default HowToBuyBlock;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport PageHeading from 'components/page-heading';\r\nimport PoorText from 'components/poor-text';\r\nimport ParallaxHeroBackground from 'components/parallax-hero-background';\r\nimport Link from 'components/link';\r\nimport LinkButton, {\r\n sizes as linkButtonSizes,\r\n arrowDirections as linkButtonArrowDirections,\r\n} from 'components/link-button';\r\nimport useAnimationStepSwitcher, {\r\n ANIMATION_STEPS,\r\n} from 'hooks/use-animation-step-switcher';\r\nimport cn from 'classnames';\r\n\r\nconst HowToPageHero = ({ lang, heading, introHtml, allGuidesLink }) => {\r\n const animationCurrentStep = useAnimationStepSwitcher(\r\n ANIMATION_STEPS.oneLayerHero\r\n );\r\n\r\n return (\r\n
\r\n 0,\r\n })}\r\n />\r\n 1,\r\n 'how-to-page-hero__container_tall': animationCurrentStep > 2,\r\n })}\r\n >\r\n
\r\n {allGuidesLink && (\r\n \r\n )}\r\n {lang.label}\r\n {heading && (\r\n \r\n )}\r\n {introHtml && (\r\n \r\n )}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nHowToPageHero.propTypes = {\r\n lang: PropTypes.shape({\r\n label: PropTypes.string.isRequired,\r\n }).isRequired,\r\n heading: PropTypes.string,\r\n introHtml: PropTypes.string,\r\n allGuidesLink: PropTypes.exact(Link.propTypes),\r\n};\r\n\r\nexport default HowToPageHero;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport PoorText from 'components/poor-text';\r\nimport Image from 'components/image';\r\n\r\nconst HowToStepBlock = ({ stepLabel, heading, textHtml, image }) => (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{stepLabel}
\r\n {heading}\r\n \r\n
\r\n
\r\n);\r\n\r\nHowToStepBlock.propTypes = {\r\n stepLabel: PropTypes.string,\r\n heading: PropTypes.string,\r\n textHtml: PropTypes.string,\r\n image: PropTypes.exact(Image.propTypes),\r\n};\r\n\r\nexport default HowToStepBlock;\r\n","import React from 'react';\r\nimport Icon from 'components/icon';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\n\r\nexport const sizes = {\r\n normal: 'normal',\r\n small: 'small',\r\n};\r\n\r\nconst IconLabel = ({\r\n className,\r\n icon,\r\n size = sizes.normal,\r\n text,\r\n iconAriaLabel,\r\n tabIndex,\r\n}) => {\r\n return (\r\n \r\n \r\n {iconAriaLabel && (\r\n \r\n {iconAriaLabel}\r\n \r\n )}\r\n {text}\r\n \r\n );\r\n};\r\n\r\nIconLabel.viewModelMeta = 'ignore';\r\n\r\nIconLabel.propTypes = {\r\n className: PropTypes.string,\r\n iconAriaLabel: PropTypes.string,\r\n tabIndex: PropTypes.number,\r\n icon: PropTypes.string,\r\n size: PropTypes.oneOf(Object.values(sizes)),\r\n text: PropTypes.string,\r\n};\r\n\r\nexport default IconLabel;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Image from 'components/image';\r\nimport cn from 'classnames';\r\n\r\nconst positions = {\r\n right: 'right',\r\n left: 'left',\r\n center: 'center',\r\n};\r\n\r\nconst ImageBlock = ({ image, caption, position }) => {\r\n return image ? (\r\n \r\n
\r\n \r\n {caption && (\r\n
{caption}
\r\n )}\r\n
\r\n \r\n ) : null;\r\n};\r\n\r\nImageBlock.propTypes = {\r\n image: PropTypes.exact(Image.propTypes).isRequired,\r\n caption: PropTypes.string,\r\n position: PropTypes.oneOf(Object.values(positions)).isRequired,\r\n};\r\n\r\nexport default ImageBlock;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Image from 'components/image';\r\nimport cn from 'classnames';\r\n\r\nconst ImageCollageBlock = ({\r\n leftTopImage,\r\n leftBottomImage,\r\n rightTopImage,\r\n rightBottomImage,\r\n}) => {\r\n return (\r\n
\r\n
\r\n
\r\n {leftTopImage && (\r\n \r\n )}\r\n {leftBottomImage && (\r\n \r\n )}\r\n
\r\n \r\n {rightTopImage && (\r\n \r\n )}\r\n {rightBottomImage && (\r\n \r\n )}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nImageCollageBlock.propTypes = {\r\n leftTopImage: PropTypes.exact(Image.propTypes),\r\n leftBottomImage: PropTypes.exact(Image.propTypes),\r\n rightTopImage: PropTypes.exact(Image.propTypes),\r\n rightBottomImage: PropTypes.exact(Image.propTypes),\r\n};\r\n\r\nexport default ImageCollageBlock;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Image from 'components/image';\r\nimport RichText from 'components/rich-text';\r\nimport cn from 'classnames';\r\n\r\nconst imagePositions = {\r\n right: 'right',\r\n left: 'left',\r\n};\r\n\r\nconst ImageWithTextAndBgColorBlock = ({\r\n heading,\r\n textHtml,\r\n backgroundColor,\r\n image,\r\n imagePosition,\r\n imageCaption,\r\n}) => {\r\n return (\r\n \r\n
\r\n
\r\n {heading && (\r\n

\r\n {heading}\r\n

\r\n )}\r\n \r\n
\r\n {image && (\r\n
\r\n \r\n {imageCaption && (\r\n
\r\n {imageCaption}\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n \r\n );\r\n};\r\nImageWithTextAndBgColorBlock.propTypes = {\r\n heading: PropTypes.string,\r\n textHtml: PropTypes.string,\r\n backgroundColor: PropTypes.string,\r\n image: PropTypes.exact(Image.propTypes),\r\n imageCaption: PropTypes.string,\r\n imagePosition: PropTypes.oneOf(Object.values(imagePositions)).isRequired,\r\n};\r\n\r\nexport default ImageWithTextAndBgColorBlock;\r\n","function pluralOrSingularText(amount, plural, singular) {\r\n let text = null;\r\n\r\n if (amount || amount === 0) {\r\n if (amount <= 1 || amount === 0) {\r\n singular ? (text = singular) : null;\r\n } else {\r\n plural ? (text = plural) : null;\r\n }\r\n }\r\n\r\n return text;\r\n}\r\n\r\nexport default pluralOrSingularText;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport pluralOrSingularText from 'js/pluralOrSingularText.js';\r\n\r\nconst IngredientName = ({ amount, plural, singular }) => {\r\n let name = pluralOrSingularText(amount, plural, singular);\r\n\r\n return name && {name};\r\n};\r\n\r\nIngredientName.propTypes = {\r\n amount: PropTypes.number,\r\n plural: PropTypes.string,\r\n singular: PropTypes.string,\r\n};\r\n\r\nIngredientName.viewModelMeta = 'ignore';\r\n\r\nexport default IngredientName;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport pluralOrSingularText from 'js/pluralOrSingularText.js';\r\n\r\nconst IngredientUnit = ({ amount, plural, singular }) => {\r\n let unitText = pluralOrSingularText(amount, plural, singular);\r\n\r\n return (\r\n unitText && (\r\n {unitText}\r\n )\r\n );\r\n};\r\n\r\nIngredientUnit.propTypes = {\r\n amount: PropTypes.number,\r\n plural: PropTypes.string,\r\n singular: PropTypes.string,\r\n};\r\n\r\nIngredientUnit.viewModelMeta = 'ignore';\r\n\r\nexport default IngredientUnit;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst IngredientAmount = ({ number }) => {\r\n return number && number !== 0 ? (\r\n {number}\r\n ) : null;\r\n};\r\n\r\nIngredientAmount.propTypes = {\r\n number: PropTypes.number,\r\n};\r\n\r\nIngredientAmount.viewModelMeta = 'ignore';\r\n\r\nexport default IngredientAmount;\r\n","export default { aui: 'aui', iau: 'iau', iua: 'iua' };\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport IngredientName from './ingredient-name';\r\nimport IngredientUnit from './ingredient-unit';\r\nimport IngredientAmount from './ingredient-amount';\r\nimport printOrders from './print-orders';\r\n\r\nconst Ingredient = ({ amount, printOrder, unit, name }) => {\r\n return (\r\n \r\n {printOrder && (\r\n \r\n {printOrder === printOrders.aui && (\r\n \r\n \r\n {unit && }\r\n {name && }\r\n \r\n )}\r\n {printOrder === printOrders.iau && (\r\n \r\n {name && }\r\n \r\n {unit && }\r\n \r\n )}\r\n {printOrder === printOrders.iua && (\r\n \r\n {name && }\r\n {unit && }\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nIngredient.propTypes = {\r\n printOrder: PropTypes.oneOf(Object.values(printOrders)),\r\n amount: PropTypes.number,\r\n unit: PropTypes.shape({\r\n plural: PropTypes.string,\r\n singular: PropTypes.string,\r\n }),\r\n name: PropTypes.shape({\r\n plural: PropTypes.string,\r\n singular: PropTypes.string,\r\n }),\r\n};\r\n\r\nIngredient.viewModelMeta = 'ignore';\r\n\r\nexport default Ingredient;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Ingredient from './ingredient';\r\nimport fullCopy from 'js/fullCopy.js';\r\nimport IconButton from 'components/icon-button';\r\n\r\nconst Ingredients = ({\r\n lang = {\r\n increaseNumberOfServingsAriaLabel: 'Høyere antall porsjoner',\r\n decreaseNumberOfServingsAriaLabel: 'Lavere antall porsjoner',\r\n },\r\n sections,\r\n servingsDefaultNumber,\r\n}) => {\r\n const servingNumber = servingsDefaultNumber || 1;\r\n const [currentSections, setCurrentSections] = useState([]);\r\n\r\n const [currentServings, setCurrentServings] = useState(servingNumber);\r\n\r\n const handleKeyDown = e => {\r\n if (e.key === '-' || e.key === '.') {\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n const handlePaste = e => {\r\n e.preventDefault();\r\n const pastedText = (e.clipboardData || window.clipboardData).getData(\r\n 'text'\r\n );\r\n const sanitizedText = pastedText.replace(/[-.]/g, '');\r\n const updatedText =\r\n e.target.value.slice(0, e.target.selectionStart) +\r\n sanitizedText +\r\n e.target.value.slice(e.target.selectionEnd);\r\n setCurrentServings(parseInt(updatedText));\r\n };\r\n\r\n const handleServingsInputChange = v => {\r\n setCurrentServings(parseInt(v));\r\n };\r\n\r\n const increaseServings = () => {\r\n setCurrentServings(currentServings + 1);\r\n };\r\n\r\n const decreaseServings = () => {\r\n setCurrentServings(\r\n currentServings > 1 ? currentServings - 1 : currentServings\r\n );\r\n };\r\n\r\n const calcAmount = (amount, ratio) => {\r\n const str = (amount * ratio).toFixed(2);\r\n const endingZeroes = /(\\.0*$)/;\r\n const tmpSrt = str.replace(endingZeroes, '');\r\n return parseFloat(tmpSrt);\r\n };\r\n\r\n const updateSections = () => {\r\n const newSections = fullCopy(sections);\r\n const servings = currentServings > 1 ? currentServings : 1;\r\n const ratio = servings / servingNumber;\r\n\r\n newSections.forEach(section => {\r\n section.ingredients.forEach(ingredient => {\r\n ingredient.amount = calcAmount(ingredient.amount, ratio);\r\n });\r\n });\r\n\r\n setCurrentSections(newSections);\r\n };\r\n\r\n React.useEffect(() => {\r\n updateSections();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n updateSections();\r\n }, [currentServings]);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {lang.servingsLabel}\r\n \r\n handleServingsInputChange(e.target.value)}\r\n onKeyDown={handleKeyDown}\r\n onPaste={handlePaste}\r\n />\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n

{lang.ingredientsHeading}

\r\n {currentSections && (\r\n
\r\n {currentSections.map((section, sectionIndex) => (\r\n
\r\n {section.heading && (\r\n

\r\n {section.heading}\r\n

\r\n )}\r\n {section.ingredients &&\r\n section.ingredients.map((ingredient, ingredientIndex) => {\r\n const showIngredient =\r\n ingredient.amount !== null &&\r\n ingredient.amount !== undefined;\r\n return showIngredient ? (\r\n \r\n \r\n
\r\n ) : null;\r\n })}\r\n
\r\n ))}\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nIngredients.propTypes = {\r\n lang: PropTypes.shape({\r\n ingredientsHeading: PropTypes.string.isRequired,\r\n servingsLabel: PropTypes.string.isRequired,\r\n increaseNumberOfServingsAriaLabel: PropTypes.string.isRequired,\r\n decreaseNumberOfServingsAriaLabel: PropTypes.string.isRequired,\r\n }).isRequired,\r\n servingsDefaultNumber: PropTypes.number,\r\n sections: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n heading: PropTypes.string,\r\n ingredients: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n printOrder: PropTypes.oneOf(['aui', 'iau', 'iua']).isRequired, //Should be the same as print-orders.js object\r\n amount: PropTypes.number.isRequired,\r\n unit: PropTypes.shape({\r\n plural: PropTypes.string,\r\n singular: PropTypes.string,\r\n }),\r\n name: PropTypes.shape({\r\n plural: PropTypes.string,\r\n singular: PropTypes.string,\r\n }),\r\n })\r\n ),\r\n })\r\n ),\r\n};\r\n\r\nIngredients.viewModelMeta = {\r\n sections: [{ ingredients: [{ amount: 'double' }] }],\r\n};\r\n\r\nexport default Ingredients;\r\n","function fullcopy(data) {\r\n let copy = JSON.parse(JSON.stringify(data));\r\n\r\n return copy;\r\n}\r\n\r\nexport default fullcopy;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { ANIMATION_PERCENTAGE } from '../../constants/parallax';\r\nimport cn from 'classnames';\r\n\r\nconst ParallaxText = ({\r\n text,\r\n textBackgroundColor = '#00004F',\r\n textColor = '#FFFFFF',\r\n percentage,\r\n textAnimationPercentage = ANIMATION_PERCENTAGE.text,\r\n className,\r\n}) => {\r\n return text ? (\r\n textAnimationPercentage ? '0%' : '-100%',\r\n }}\r\n >\r\n textAnimationPercentage\r\n ? 'background-position 350ms ease-in 700ms'\r\n : 'background-position 350ms ease-out 0s',\r\n backgroundSize: '100% 200%',\r\n backgroundPosition:\r\n percentage > textAnimationPercentage && '100% 100%',\r\n backgroundImage: `linear-gradient(${textColor}, ${textColor} 50%, ${textBackgroundColor} 50%, ${textBackgroundColor})`,\r\n }}\r\n >\r\n {text}\r\n \r\n \r\n ) : null;\r\n};\r\n\r\nParallaxText.viewModelMeta = 'ignore';\r\n\r\nParallaxText.propTypes = {\r\n text: PropTypes.string,\r\n textBackgroundColor: PropTypes.string,\r\n textColor: PropTypes.string,\r\n percentage: PropTypes.number.isRequired,\r\n textAnimationPercentage: PropTypes.number,\r\n className: PropTypes.string,\r\n};\r\n\r\nexport default ParallaxText;\r\n","import React, { useEffect, useState, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Image from 'components/image';\r\nimport Link from 'components/link';\r\nimport LinkButton, {\r\n sizes as linkButtonSizes,\r\n arrowDirections as linkButtonArrowDirections,\r\n} from 'components/link-button';\r\nimport PageHeading from 'components/page-heading';\r\nimport PoorText from 'components/poor-text';\r\nimport ParallaxText from 'components/parallax-text';\r\nimport imageResizer from 'js/image-resizer';\r\nimport useBreakpoints from 'hooks/use-breakpoints';\r\nimport useAnimationStepSwitcher, {\r\n ANIMATION_STEPS,\r\n} from 'hooks/use-animation-step-switcher';\r\nimport { Parallax } from 'react-parallax';\r\nimport { getNumericCssPropertyValue } from 'js/stylesheet-utils';\r\nimport cn from 'classnames';\r\n\r\nconst SCROLL_ANIMATION_PERCENTAGE = 1.1;\r\n\r\nconst LongArticlePageHero = ({\r\n heading,\r\n introHtml,\r\n image,\r\n allStoriesLink,\r\n backgroundColor,\r\n}) => {\r\n const animationCurrentStep = useAnimationStepSwitcher(\r\n ANIMATION_STEPS.expandingLayerHero\r\n );\r\n const { isMobile, isTablet, isDesktopExtraLarge, isDesktopLargerThanIpad } =\r\n useBreakpoints(true);\r\n const [imageHeight, setImageHeight] = useState(0);\r\n const [imageWidth, setImageWidth] = useState(0);\r\n const heroRef = useRef();\r\n\r\n useEffect(() => {\r\n const pageHeroMaxHeight = getNumericCssPropertyValue(\r\n '--page-hero-expanding-layer-max-height'\r\n );\r\n\r\n setImageHeight(isDesktopLargerThanIpad ? pageHeroMaxHeight : 600);\r\n }, [isDesktopLargerThanIpad]);\r\n\r\n useEffect(() => {\r\n setImageWidth(\r\n isDesktopExtraLarge\r\n ? 1800\r\n : imageResizer.calcImageWidth(window.innerWidth, 100)\r\n );\r\n }, [isDesktopExtraLarge]);\r\n\r\n return (\r\n {\r\n return (\r\n 2 &&\r\n percentage > SCROLL_ANIMATION_PERCENTAGE,\r\n })}\r\n ref={heroRef}\r\n >\r\n {image && (\r\n 0,\r\n 'animated-content animated-content_delayed-appearance':\r\n animationCurrentStep > 0 && (isMobile || isTablet),\r\n })}\r\n >\r\n
\r\n \r\n
\r\n \r\n )}\r\n
\r\n
\r\n 0,\r\n 'long-article-page-hero__content_tall':\r\n animationCurrentStep > 2,\r\n\r\n 'long-article-page-hero__content_hidden-by-scroll':\r\n percentage > SCROLL_ANIMATION_PERCENTAGE,\r\n })}\r\n >\r\n 0,\r\n })}\r\n >
\r\n 1,\r\n }\r\n )}\r\n >\r\n {allStoriesLink && (\r\n \r\n )}\r\n {heading && (\r\n \r\n )}\r\n {introHtml && (\r\n \r\n )}\r\n
\r\n \r\n \r\n SCROLL_ANIMATION_PERCENTAGE,\r\n }\r\n )}\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n }}\r\n />\r\n );\r\n};\r\n\r\nLongArticlePageHero.propTypes = {\r\n heading: PropTypes.string,\r\n introHtml: PropTypes.string,\r\n image: PropTypes.exact(Image.propTypes),\r\n allStoriesLink: PropTypes.exact(Link.propTypes),\r\n backgroundColor: PropTypes.string,\r\n};\r\n\r\nexport default LongArticlePageHero;\r\n","import PropTypes from 'prop-types';\r\n\r\nconst FilterItem = {};\r\n\r\nFilterItem.propTypes = {\r\n text: PropTypes.string.isRequired,\r\n value: PropTypes.string.isRequired,\r\n selected: PropTypes.bool,\r\n};\r\n\r\nexport default FilterItem;\r\n","import PropTypes from 'prop-types';\r\nimport FilterItem from '../filter-item/filter-item';\r\n\r\nconst Filter = {};\r\n\r\nFilter.propTypes = {\r\n heading: PropTypes.string,\r\n allItemsLabel: PropTypes.string,\r\n items: PropTypes.arrayOf(PropTypes.exact(FilterItem.propTypes)),\r\n name: PropTypes.string,\r\n};\r\n\r\nexport default Filter;\r\n","import PropTypes from 'prop-types';\r\n\r\nconst PagerLang = {};\r\n\r\nPagerLang.propTypes = {\r\n nextLabel: PropTypes.string.isRequired,\r\n prevLabel: PropTypes.string.isRequired,\r\n pageLabel: PropTypes.string.isRequired,\r\n jumpBackwardAriaLabel: PropTypes.string.isRequired,\r\n jumpForwardAriaLabel: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default PagerLang;\r\n","import PropTypes from 'prop-types';\r\n\r\nconst RateRecipeResult = {};\r\n\r\nRateRecipeResult.propTypes = {\r\n rating: PropTypes.string,\r\n ratingValue: PropTypes.int,\r\n confirmation: PropTypes.string,\r\n};\r\n\r\nexport default RateRecipeResult;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\nimport IconLabel from 'components/icon-label';\r\n\r\nexport const sizes = {\r\n normal: 'normal',\r\n small: 'small',\r\n};\r\n\r\nconst RecipeDetails = ({\r\n className,\r\n rating,\r\n size,\r\n cookingTime,\r\n difficultyLevel,\r\n cookingTimeIconAriaLabel,\r\n difficultyLevelIconAriaLabel,\r\n ratingIconAriaLabel,\r\n useFocusableDetails = false,\r\n}) => {\r\n const commonIconLabelProps = {\r\n className: 'recipe-details__item',\r\n size: size,\r\n ...(useFocusableDetails && { tabIndex: 0 }),\r\n };\r\n\r\n return (\r\n \r\n {cookingTime && (\r\n \r\n )}\r\n {difficultyLevel && (\r\n \r\n )}\r\n {rating && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nRecipeDetails.viewModelMeta = 'ignore';\r\n\r\nRecipeDetails.propTypes = {\r\n className: PropTypes.string,\r\n size: PropTypes.oneOf(Object.values(sizes)),\r\n rating: PropTypes.string,\r\n cookingTime: PropTypes.string,\r\n difficultyLevel: PropTypes.string,\r\n cookingTimeIconAriaLabel: PropTypes.string,\r\n difficultyLevelIconAriaLabel: PropTypes.string,\r\n ratingIconAriaLabel: PropTypes.string,\r\n useFocusableDetails: PropTypes.bool,\r\n};\r\n\r\nexport default RecipeDetails;\r\n","export default {\r\n horizontal: 'horizontal',\r\n vertical: 'vertical',\r\n};\r\n","import React, { forwardRef, useRef, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\nimport Image from 'components/image';\r\nimport RecipeDetails, {\r\n sizes as recipeDetailsSizes,\r\n} from 'components/recipe-details';\r\nimport orientations from './recipe-teaser-orientations';\r\nimport idHelper from 'js/id-helper';\r\n\r\nconst RecipeTeaser = forwardRef(\r\n (\r\n {\r\n heading,\r\n url,\r\n image,\r\n className,\r\n rating,\r\n cookingTime,\r\n difficultyLevel,\r\n tabindex,\r\n ariaRoledescription,\r\n orientation = orientations.vertical,\r\n headingTagLevel = 3,\r\n cookingTimeIconAriaLabel,\r\n difficultyLevelIconAriaLabel,\r\n ratingIconAriaLabel,\r\n },\r\n ref\r\n ) => {\r\n const imageHolderRef = useRef(null);\r\n const isHorizontalOrientation = orientation === orientations.horizontal;\r\n const HeadingTag = `h${headingTagLevel}`;\r\n\r\n const uniqueRecipeTeaserHeadingId = useMemo(\r\n () => idHelper.generateUniqueId('recipe-teaser-heading'),\r\n []\r\n );\r\n\r\n return (\r\n \r\n \r\n {image && (\r\n \r\n )}\r\n \r\n\r\n
\r\n {heading && (\r\n \r\n {heading}\r\n \r\n )}\r\n \r\n
\r\n \r\n );\r\n }\r\n);\r\n\r\nRecipeTeaser.propTypes = {\r\n id: PropTypes.string,\r\n className: PropTypes.string,\r\n heading: PropTypes.string,\r\n image: PropTypes.exact(Image.propTypes),\r\n url: PropTypes.string,\r\n rating: PropTypes.string,\r\n cookingTime: PropTypes.string,\r\n difficultyLevel: PropTypes.string,\r\n tabindex: PropTypes.number,\r\n ariaRoledescription: PropTypes.string,\r\n orientation: PropTypes.oneOf(Object.values(orientations)),\r\n headingTagLevel: PropTypes.number,\r\n cookingTimeIconAriaLabel: PropTypes.string,\r\n difficultyLevelIconAriaLabel: PropTypes.string,\r\n ratingIconAriaLabel: PropTypes.string,\r\n};\r\n\r\nRecipeTeaser.viewModelMeta = {\r\n className: 'ignore',\r\n tabindex: 'ignore',\r\n ariaRoledescription: 'ignore',\r\n orientation: 'ignore',\r\n headingTagLevel: 'ignore',\r\n};\r\n\r\nexport default RecipeTeaser;\r\n","import PropTypes from 'prop-types';\r\nimport RecipeTeaser from 'components/recipe-teaser/recipe-teaser';\r\nimport Filter from 'components/models/filter/filter';\r\n\r\nconst RecipeOverviewResults = {};\r\n\r\nRecipeOverviewResults.propTypes = {\r\n items: PropTypes.arrayOf(RecipeTeaser.propTypes),\r\n filters: PropTypes.arrayOf(PropTypes.exact(Filter.propTypes)),\r\n totalCount: PropTypes.number.isRequired,\r\n pager: PropTypes.shape({\r\n page: PropTypes.number,\r\n totalPages: PropTypes.number,\r\n }),\r\n};\r\n\r\nexport default RecipeOverviewResults;\r\n","import PropTypes from 'prop-types';\r\n\r\nconst ReactComponent = {};\r\n\r\n// Empty propTypes needed in order for ReactComponent.cs to be generated.\r\nReactComponent.propTypes = {\r\n componentName: PropTypes.string.isRequired,\r\n};\r\n\r\nReactComponent.viewModelMeta = 'ignore'; // Not generated automatically, defained on BE instead.\r\n\r\n// 'ReactComponent' is used as the base class in all generated .cs-files (configurerd in CSharpWebpackPlugin options in webpack.config.js)\r\nexport default ReactComponent;\r\n","/* eslint-disable react/prop-types */\r\n// TODO: remove view-models/no-unused-meta and eslint-disable react/prop-types rule when this issue https://github.com/asbjornh/view-models/issues/18 is resolved\r\nimport React from 'react';\r\nimport ButtonBase from 'components/models/button-base';\r\nimport Icon from 'components/icon';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\nimport ariaAttributesModel from 'components/models/aria-attributes/aria-attributes';\r\n\r\nexport const themes = {\r\n dark: 'dark',\r\n light: 'light',\r\n};\r\n\r\nexport const iconPositions = {\r\n right: 'right',\r\n left: 'left',\r\n};\r\n\r\nconst ToggleButton = ({\r\n className,\r\n text,\r\n tabindex,\r\n isActive,\r\n theme,\r\n onClick,\r\n iconName,\r\n activeIconName,\r\n iconPosition = iconPositions.right,\r\n ariaAttributes = {},\r\n}) => {\r\n const leftIconPosition = iconPosition === iconPositions.left;\r\n return (\r\n \r\n {leftIconPosition && (\r\n \r\n )}\r\n \r\n {text}\r\n \r\n {!leftIconPosition && iconName && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nToggleButton.viewModelMeta = 'ignore';\r\n\r\nToggleButton.propTypes = Object.assign({}, ButtonBase.propTypes, {\r\n className: PropTypes.string,\r\n iconName: PropTypes.string,\r\n theme: PropTypes.oneOf(Object.values(themes)),\r\n iconPosition: PropTypes.oneOf(Object.values(iconPositions)),\r\n isActive: PropTypes.bool,\r\n ariaAttributes: PropTypes.exact(ariaAttributesModel),\r\n});\r\n\r\nexport default ToggleButton;\r\n","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport FilterItem from 'components/models/filter-item/filter-item';\r\nimport ToggleButton from 'components/toggle-button/toggle-button';\r\nimport cn from 'classnames';\r\n\r\nconst ToggleFilter = ({\r\n name,\r\n items,\r\n isDisabled,\r\n // eslint-disable-next-line no-unused-vars\r\n onChange = ({ name, items }) => {},\r\n}) => {\r\n const [filterItems, setFilterItems] = useState(items);\r\n\r\n useEffect(() => {\r\n setFilterItems(items);\r\n }, [items]);\r\n\r\n const onFilterClick = clickedItem => {\r\n const updatedItems = filterItems.map(item => ({\r\n ...item,\r\n selected:\r\n item.value === clickedItem.value ? !item.selected : item.selected,\r\n }));\r\n\r\n setFilterItems(updatedItems);\r\n onChange({ name: name, items: updatedItems });\r\n };\r\n\r\n return filterItems && filterItems.length > 0 ? (\r\n \r\n {filterItems.map(item => (\r\n \r\n onFilterClick(item)}\r\n />\r\n \r\n ))}\r\n \r\n ) : null;\r\n};\r\n\r\nToggleFilter.propTypes = {\r\n name: PropTypes.string,\r\n items: PropTypes.arrayOf(PropTypes.exact(FilterItem.propTypes)),\r\n onChange: PropTypes.func,\r\n isDisabled: PropTypes.bool,\r\n};\r\n\r\nToggleFilter.viewModelMeta = {\r\n onChange: 'ignore',\r\n isDisabled: 'ignore',\r\n};\r\n\r\nexport default ToggleFilter;\r\n","import PropTypes from 'prop-types';\r\nimport ReactComponent from 'components/react-component/react-component';\r\nimport ToggleFilter from 'components/toggle-filter/toggle-filter';\r\n\r\nconst SearchResults = {};\r\n\r\nSearchResults.propTypes = {\r\n pageTypeFilter: PropTypes.exact(ToggleFilter.propTypes),\r\n totalCount: PropTypes.number.isRequired,\r\n hits: PropTypes.arrayOf(PropTypes.shape(ReactComponent.propTypes)),\r\n pager: PropTypes.shape({\r\n page: PropTypes.number,\r\n totalPages: PropTypes.number,\r\n }),\r\n};\r\n\r\nexport default SearchResults;\r\n","export default {\r\n medium: 'medium',\r\n large: 'large',\r\n small: 'small',\r\n};\r\n","export default {\r\n horizontal: 'horizontal',\r\n vertical: 'vertical',\r\n};\r\n","import React from 'react';\r\nimport Image from 'components/image';\r\nimport Icon from 'components/icon';\r\nimport PropTypes from 'prop-types';\r\nimport storyTeaserSizes from './story-teaser-sizes';\r\nimport storyTeaserOrientations from './story-teaser-orientations';\r\nimport cn from 'classnames';\r\n\r\nconst StoryTeaser = ({\r\n url,\r\n heading,\r\n image,\r\n backgroundColor,\r\n categoryLabel,\r\n className,\r\n size = storyTeaserSizes.large,\r\n orientation = storyTeaserOrientations.vertical,\r\n headingTagLevel = 2,\r\n}) => {\r\n const isHorizontalOrientation =\r\n orientation === storyTeaserOrientations.horizontal;\r\n const HeadingTag = `h${headingTagLevel}`;\r\n return (\r\n \r\n
\r\n \r\n {image && (\r\n \r\n )}\r\n
\r\n \r\n
\r\n {categoryLabel && (\r\n {categoryLabel}\r\n )}\r\n {heading && (\r\n \r\n {heading}\r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nStoryTeaser.propTypes = {\r\n id: PropTypes.string,\r\n url: PropTypes.string,\r\n heading: PropTypes.string,\r\n image: PropTypes.exact(Image.propTypes),\r\n backgroundColor: PropTypes.string,\r\n categoryLabel: PropTypes.string,\r\n className: PropTypes.string,\r\n size: PropTypes.oneOf(Object.values(storyTeaserSizes)),\r\n orientation: PropTypes.oneOf(Object.values(storyTeaserOrientations)),\r\n headingTagLevel: PropTypes.oneOf([2, 3]),\r\n};\r\n\r\nStoryTeaser.viewModelMeta = {\r\n size: 'ignore',\r\n className: 'ignore',\r\n orientation: 'ignore',\r\n headingTagLevel: 'ignore',\r\n};\r\n\r\nexport default StoryTeaser;\r\n","import PropTypes from 'prop-types';\r\nimport StoryTeaser from 'components/story-teaser/story-teaser';\r\n\r\nconst StoriesOverviewResults = {};\r\n\r\nStoriesOverviewResults.propTypes = {\r\n items: PropTypes.arrayOf(StoryTeaser.propTypes),\r\n pager: PropTypes.shape({\r\n page: PropTypes.number,\r\n totalPages: PropTypes.number,\r\n }),\r\n};\r\n\r\nexport default StoriesOverviewResults;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst NoResults = ({ heading, text }) => {\r\n return (\r\n
\r\n {heading &&

{heading}

}\r\n {text &&

{text}

}\r\n
\r\n );\r\n};\r\n\r\nNoResults.propTypes = {\r\n heading: PropTypes.string,\r\n text: PropTypes.string,\r\n};\r\n\r\nNoResults.viewModelMeta = 'ignore';\r\n\r\nexport default NoResults;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Button from 'components/button';\r\nimport RichText from 'components/rich-text';\r\n\r\nconst NotFoundPage = ({\r\n heading,\r\n textHtml,\r\n homePageButtonText,\r\n homePageUrl,\r\n}) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {heading &&

{heading}

}\r\n {textHtml && (\r\n \r\n )}\r\n {homePageButtonText && homePageUrl && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nNotFoundPage.propTypes = {\r\n heading: PropTypes.string,\r\n textHtml: PropTypes.string,\r\n homePageButtonText: PropTypes.string,\r\n homePageUrl: PropTypes.string,\r\n};\r\n\r\nexport default NotFoundPage;\r\n","import { useRef, useEffect } from 'react';\r\n\r\nexport default function useDidUpdateEffect(fn, inputs) {\r\n const didMountRef = useRef(false);\r\n\r\n useEffect(() => {\r\n if (didMountRef.current) fn();\r\n else didMountRef.current = true;\r\n }, inputs);\r\n}\r\n","import React, { useRef, useState, useEffect, useMemo } from 'react';\r\nimport ReactPaginate from 'react-paginate';\r\nimport cn from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport useDidUpdateEffect from 'hooks/use-did-update-effect';\r\nimport stringHelper from 'js/string-helper';\r\nimport PagerLang from 'components/models/pager-lang/pager-lang';\r\n\r\nconst Pager = ({\r\n totalPages,\r\n page,\r\n pageRangeDisplayed = 2,\r\n className,\r\n lang = {\r\n prevLabel: 'Prev',\r\n pageLabel: '{0} of {1}',\r\n nextLabel: 'Next',\r\n jumpBackwardAriaLabel: 'Jump backward',\r\n jumpForwardAriaLabel: 'Jump forward',\r\n },\r\n onPageChange,\r\n}) => {\r\n const pagerSelectRef = useRef(null);\r\n const pagerWrapperRef = useRef(null);\r\n const pagerRef = useRef(null);\r\n const [currentPage, setCurrentPage] = useState(page);\r\n\r\n useDidUpdateEffect(() => {\r\n if (currentPage !== page) {\r\n onPageChange(currentPage);\r\n }\r\n }, [currentPage]);\r\n\r\n useDidUpdateEffect(() => {\r\n setCurrentPage(page);\r\n }, [page]);\r\n\r\n const pagerSelectOptions = useMemo(() => {\r\n return Array.from({ length: totalPages }, (_, i) => i + 1);\r\n }, [totalPages]);\r\n\r\n useEffect(() => {\r\n if (pagerWrapperRef?.current && pagerSelectRef?.current && totalPages) {\r\n const firstPagerItem = pagerWrapperRef.current.querySelector('ul > li');\r\n firstPagerItem.parentNode.insertBefore(\r\n pagerSelectRef.current,\r\n firstPagerItem.nextSibling\r\n );\r\n }\r\n }, [pagerSelectRef, pagerWrapperRef, totalPages]);\r\n\r\n const onMobileSelectorChange = e => {\r\n const newPage = +e.target.value;\r\n setCurrentPage(newPage);\r\n\r\n if (pagerRef && pagerRef.current) {\r\n pagerRef.current.handlePageChange(newPage - 1);\r\n }\r\n };\r\n\r\n const onPagerPageChange = ({ selected }) => {\r\n setCurrentPage(selected + 1);\r\n };\r\n\r\n return totalPages > 1 ? (\r\n \r\n {pagerSelectOptions && pagerSelectOptions.length > 0 && (\r\n
  • \r\n \r\n {pagerSelectOptions.map(option => (\r\n \r\n ))}\r\n \r\n
  • \r\n )}\r\n
    \r\n \r\n stringHelper.format(lang.pageLabel, pageIndex, totalPages)\r\n }\r\n breakAriaLabels={{\r\n forward: lang.jumpBackwardAriaLabel,\r\n backward: lang.jumpForwardAriaLabel,\r\n }}\r\n hrefAllControls={true}\r\n breakClassName=\"pager__break\"\r\n disableInitialCallback={true}\r\n pageRangeDisplayed={pageRangeDisplayed}\r\n marginPagesDisplayed={1}\r\n containerClassName=\"pager__list\"\r\n pageClassName=\"pager__item\"\r\n pageLinkClassName=\"pager__link\"\r\n previousClassName=\"pager__prev\"\r\n nextClassName=\"pager__next\"\r\n onPageChange={onPagerPageChange}\r\n />\r\n
    \r\n \r\n ) : null;\r\n};\r\n\r\nPager.viewModelMeta = 'ignore';\r\n\r\nPager.propTypes = {\r\n className: PropTypes.string,\r\n pageRangeDisplayed: PropTypes.number,\r\n page: PropTypes.number,\r\n totalPages: PropTypes.number,\r\n lang: PropTypes.shape(PagerLang.propTypes).isRequired,\r\n onPageChange: PropTypes.func,\r\n};\r\n\r\nexport default Pager;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Image from 'components/image';\r\nimport { Parallax } from 'react-parallax';\r\n\r\nconst ParallaxBgImage = ({ imageClassName, backgroundImage }) => {\r\n return (\r\n (\r\n <>\r\n 0\r\n ? percentage <= 1.5\r\n ? percentage * 26.66\r\n : 40\r\n : 0\r\n }%`,\r\n }}\r\n >\r\n {backgroundImage && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n >\r\n );\r\n};\r\n\r\nParallaxBgImage.viewModelMeta = 'ignore';\r\n\r\nParallaxBgImage.propTypes = {\r\n imageClassName: PropTypes.string,\r\n backgroundImage: PropTypes.exact(Image.propTypes),\r\n};\r\n\r\nexport default ParallaxBgImage;\r\n","import React from 'react';\r\nimport Image from 'components/image';\r\nimport Icon from 'components/icon';\r\nimport Link from 'components/link';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\n\r\nconst PreparationBlock = ({ link, heading, image }) => {\r\n const LinkHeadingTag = `h${heading ? 3 : 2}`;\r\n return (\r\n
    \r\n
    \r\n {heading &&

    {heading}

    }\r\n \r\n
    \r\n \r\n {image && (\r\n \r\n )}\r\n
    \r\n
    \r\n {link.text && (\r\n \r\n \r\n {link.text}\r\n \r\n \r\n )}\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nPreparationBlock.propTypes = {\r\n link: PropTypes.exact(Link.propTypes).isRequired,\r\n heading: PropTypes.string,\r\n image: PropTypes.exact(Image.propTypes),\r\n};\r\n\r\nexport default PreparationBlock;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst QuoteBlock = ({ text, author, authorTitle }) => {\r\n return text ? (\r\n
    \r\n
    \r\n \r\n {text}\r\n
    \r\n {(author || authorTitle) && (\r\n
    \r\n {author &&
    {author}
    }\r\n {authorTitle && (\r\n
    {authorTitle}
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n ) : null;\r\n};\r\n\r\nQuoteBlock.propTypes = {\r\n text: PropTypes.string,\r\n author: PropTypes.string,\r\n authorTitle: PropTypes.string,\r\n};\r\n\r\nexport default QuoteBlock;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Image from 'components/image';\r\nimport ParallaxBgImage from 'components/parallax-bg-image/parallax-bg-image';\r\nimport ParallaxText from 'components/parallax-text/parallax-text';\r\nimport { Parallax } from 'react-parallax';\r\nimport { ANIMATION_PERCENTAGE } from '../../constants/parallax';\r\n\r\nconst QuoteWithBackgroundBlock = ({\r\n text,\r\n author,\r\n authorTitle,\r\n quoteBackgroundColor,\r\n textColor,\r\n backgroundImage,\r\n}) => {\r\n const textAnimationPercentage = ANIMATION_PERCENTAGE.text;\r\n return (\r\n
    \r\n \r\n\r\n {text && (\r\n
    \r\n
    \r\n (\r\n <>\r\n
    \r\n \r\n {text && (\r\n \r\n )}\r\n \r\n\r\n {(author || authorTitle) && (\r\n textAnimationPercentage\r\n ? '0%'\r\n : '-100%',\r\n\r\n backgroundSize: '100% 200%',\r\n backgroundPosition:\r\n percentage > textAnimationPercentage && '100% 100%',\r\n backgroundImage: `linear-gradient(${textColor}, ${textColor} 50%, ${quoteBackgroundColor} 50%, ${quoteBackgroundColor})`,\r\n }}\r\n >\r\n {author && (\r\n
    \r\n {author}\r\n
    \r\n )}\r\n {authorTitle && (\r\n
    \r\n {authorTitle}\r\n
    \r\n )}\r\n \r\n )}\r\n
    \r\n \r\n )}\r\n >\r\n
    \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\nQuoteWithBackgroundBlock.propTypes = {\r\n text: PropTypes.string,\r\n author: PropTypes.string,\r\n authorTitle: PropTypes.string,\r\n quoteBackgroundColor: PropTypes.string,\r\n textColor: PropTypes.string,\r\n backgroundImage: PropTypes.exact(Image.propTypes),\r\n};\r\n\r\nexport default QuoteWithBackgroundBlock;\r\n","import PubSub from 'pubsub-js';\r\n\r\nconst errorMessageTopic = 'error-message';\r\nconst messageTopic = 'message';\r\n\r\nfunction onTopic(topic, func) {\r\n if (typeof func !== 'function') {\r\n return;\r\n }\r\n\r\n return PubSub.subscribe(topic, (topic, { message }) => {\r\n func({ message });\r\n });\r\n}\r\n\r\nfunction send(topic, { message }) {\r\n PubSub.publish(topic, { message });\r\n}\r\n\r\nconst onErrorMessage = func => onTopic(errorMessageTopic, func);\r\n\r\nconst onMessage = func => onTopic(messageTopic, func);\r\n\r\nconst sendErrorMessage = ({ message }) => send(errorMessageTopic, { message });\r\n\r\nconst sendMessage = ({ message }) => send(messageTopic, { message });\r\n\r\nexport default {\r\n onErrorMessage,\r\n onMessage,\r\n sendErrorMessage,\r\n sendMessage,\r\n};\r\n","//import analytics from './analytics';\r\nimport getData from '@creuna/utils/get-data';\r\nimport messenger from './messenger';\r\n\r\nconst defaultFetchOptions = {\r\n headers: {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n credentials: 'include',\r\n};\r\n\r\nfunction parseResponse(response) {\r\n return response.json().then(json => ({ json, response }));\r\n}\r\n\r\nfunction handleUserMessages({ json, response }) {\r\n if (json.messageToUser) {\r\n if (json.success) {\r\n messenger.sendMessage({ message: json.messageToUser });\r\n } else {\r\n messenger.sendErrorMessage({ message: json.messageToUser });\r\n }\r\n }\r\n\r\n return { json, response };\r\n}\r\n\r\n/*function handleAnalytics({ json, response }) {\r\n if (json.analytics) {\r\n analytics.send(json.analytics);\r\n }\r\n\r\n return { json, response };\r\n}*/\r\n\r\nfunction handleNotOk({ json, response }) {\r\n // NOTE: `response.ok` is true when the returned status is in the inclusive range 200-299.\r\n if (!response.ok && !json.messageToUser) {\r\n const error = new Error(response.statusText);\r\n\r\n error.name = `${response.status} on ${response.url}`;\r\n\r\n throw error;\r\n }\r\n\r\n return { json, response };\r\n}\r\n\r\nfunction handleResponse({ json }) {\r\n return json.payload || json;\r\n}\r\n\r\nfunction handleFetchError(error) {\r\n messenger.sendErrorMessage({\r\n message:\r\n getData('generic-error-message') ||\r\n 'Noe gikk galt. Vennligst prøv igjen senere.',\r\n });\r\n\r\n return Promise.reject(error);\r\n}\r\n\r\nfunction request(url, options) {\r\n return (\r\n fetch(url, options)\r\n .then(parseResponse)\r\n .then(handleUserMessages)\r\n //.then(handleAnalytics)\r\n .then(handleNotOk)\r\n .then(handleResponse)\r\n .catch(handleFetchError)\r\n );\r\n}\r\n\r\nfunction post(endpoint, data) {\r\n return request(\r\n endpoint,\r\n Object.assign({}, defaultFetchOptions, {\r\n body: data,\r\n method: 'post',\r\n })\r\n );\r\n}\r\n\r\nfunction get(endpoint) {\r\n return request(endpoint, defaultFetchOptions);\r\n}\r\n\r\nfunction execute(endpoint, data) {\r\n if (endpoint.indexOf('/static-site/api') !== -1) {\r\n return new Promise(resolve => {\r\n setTimeout(() => {\r\n resolve(request(endpoint, defaultFetchOptions));\r\n }, 1000);\r\n });\r\n }\r\n\r\n return post(endpoint, JSON.stringify(data));\r\n}\r\n\r\nexport default {\r\n execute,\r\n get,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\nimport Icon from 'components/icon';\r\n\r\nconst RateRecipeItem = ({\r\n className,\r\n isActive,\r\n value,\r\n hint,\r\n onMouseEnter = () => {},\r\n onMouseLeave = () => {},\r\n onClick = () => {},\r\n onFocus = () => {},\r\n onBlur = () => {},\r\n isDisabled = false,\r\n}) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nRateRecipeItem.viewModelMeta = {\r\n className: 'ignore',\r\n isActive: 'ignore',\r\n isDisabled: 'ignore',\r\n onFocus: 'ignore',\r\n onMouseLeave: 'ignore',\r\n onBlur: 'ignore',\r\n};\r\n\r\nRateRecipeItem.propTypes = {\r\n className: PropTypes.string,\r\n isActive: PropTypes.bool,\r\n value: PropTypes.number,\r\n hint: PropTypes.string.isRequired,\r\n onMouseEnter: PropTypes.func,\r\n onClick: PropTypes.func,\r\n onFocus: PropTypes.func,\r\n onMouseLeave: PropTypes.func,\r\n onBlur: PropTypes.func,\r\n isDisabled: PropTypes.bool,\r\n};\r\n\r\nexport default RateRecipeItem;\r\n","import PubSub from 'pubsub-js';\r\n\r\nconst ratingTopic = 'NEWRATING';\r\n\r\nconst recipeMessageBus = {\r\n subscribeToNewRating: callback => PubSub.subscribe(ratingTopic, callback),\r\n publishNewRating: newRating => PubSub.publish(ratingTopic, newRating),\r\n unsubscribeFromNewRating: token => PubSub.unsubscribe(token),\r\n};\r\n\r\nexport default recipeMessageBus;\r\n","import React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Cookies from 'js-cookie';\r\nimport apiHelper from 'js/api-helper';\r\nimport RateRecipeItem from './rate-recipe-item';\r\nimport recipeMessageBus from 'js/recipe-message-bus';\r\n\r\nconst COOKIE_DATA_NAME = 'marketSitesRecipesRating';\r\n\r\nconst RateRecipe = ({ recipeId, currentRating, submitUrl, items, lang }) => {\r\n const [isRatedByUser, setIsRatedByUser] = useState(false);\r\n const [showError, setShowError] = useState(false);\r\n const [cookiesData, setCookiesData] = useState({});\r\n const [selectedItem, setSelectedItem] = useState({});\r\n const [isHintShown, setIsHintShown] = useState(false);\r\n const [rateConfirmation, setRateConfirmation] = useState(null);\r\n const [isTemporaryDisabled, setIsTemporaryDisabled] = useState(false);\r\n\r\n const setSelectedItemByValue = value => {\r\n const newSelectedItem = items.find(i => i.value === value);\r\n setSelectedItem(\r\n value && value !== 0 && newSelectedItem ? newSelectedItem : {}\r\n );\r\n };\r\n\r\n const isItemActive = (itemRating, currentRating) => {\r\n return itemRating <= currentRating;\r\n };\r\n\r\n const onItemsMouseLeave = () => {\r\n if (!isRatedByUser) {\r\n setSelectedItemByValue(currentRating);\r\n setIsHintShown(false);\r\n }\r\n };\r\n\r\n const onItemClick = () => {\r\n setIsRatedByUser(true);\r\n setIsHintShown(false);\r\n apiHelper\r\n .execute(submitUrl, {\r\n rateValue: selectedItem.value,\r\n })\r\n .then(response => {\r\n if (response.rating && response.ratingValue) {\r\n setRateConfirmation(response.confirmation);\r\n\r\n const newRecipeId = recipeId;\r\n const currentCookieData = cookiesData;\r\n const addCookieData = { [newRecipeId]: selectedItem.value };\r\n const newCookieData = { ...currentCookieData, ...addCookieData };\r\n\r\n Cookies.set(COOKIE_DATA_NAME, JSON.stringify(newCookieData), {\r\n expires: 365,\r\n });\r\n\r\n setCookiesData(newCookieData);\r\n setShowError(false);\r\n recipeMessageBus.publishNewRating(response.rating);\r\n } else {\r\n setShowError(true);\r\n setIsRatedByUser(false);\r\n setIsTemporaryDisabled(true);\r\n }\r\n })\r\n .catch(() => {\r\n setIsRatedByUser(false);\r\n setShowError(true);\r\n setIsTemporaryDisabled(true);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n const recipeCookiesString = Cookies.get(COOKIE_DATA_NAME);\r\n if (recipeCookiesString) {\r\n const recipeCookies = JSON.parse(recipeCookiesString);\r\n setCookiesData(recipeCookies);\r\n if (recipeCookies[recipeId]) {\r\n setRateConfirmation(lang.youHaveAlreadyRatedMessage);\r\n }\r\n }\r\n setSelectedItemByValue(currentRating);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (cookiesData && cookiesData[recipeId]) {\r\n setIsRatedByUser(true);\r\n } else {\r\n setIsRatedByUser(false);\r\n }\r\n }, [cookiesData]);\r\n\r\n useEffect(() => {\r\n if (isTemporaryDisabled) {\r\n setTimeout(() => {\r\n setIsTemporaryDisabled(false);\r\n }, 5000);\r\n }\r\n }, [isTemporaryDisabled]);\r\n return (\r\n
    \r\n \r\n {lang.rateThisRecipeLabel}\r\n \r\n
    \r\n {items && (\r\n onItemsMouseLeave()}\r\n >\r\n {items.map((item, index) => {\r\n return (\r\n
  • \r\n {\r\n setSelectedItemByValue(item.value);\r\n setIsHintShown(true);\r\n setShowError(false);\r\n }}\r\n onFocus={() => {\r\n setSelectedItemByValue(item.value);\r\n setIsHintShown(true);\r\n setShowError(false);\r\n }}\r\n onBlur={() => setIsHintShown(false)}\r\n onMouseLeave={() => setIsHintShown(false)}\r\n onClick={onItemClick}\r\n isDisabled={isRatedByUser || isTemporaryDisabled}\r\n />\r\n
  • \r\n );\r\n })}\r\n \r\n )}\r\n\r\n
    \r\n {selectedItem && selectedItem.hint && isHintShown && !showError && (\r\n
    {selectedItem.hint}
    \r\n )}\r\n {rateConfirmation && !showError && (\r\n
    {rateConfirmation}
    \r\n )}\r\n {showError && (\r\n
    {lang.errorText}
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nRateRecipe.propTypes = {\r\n recipeId: PropTypes.string.isRequired,\r\n currentRating: PropTypes.number.isRequired,\r\n submitUrl: PropTypes.string.isRequired,\r\n items: PropTypes.arrayOf(PropTypes.exact(RateRecipeItem.propTypes)),\r\n lang: PropTypes.shape({\r\n rateThisRecipeLabel: PropTypes.string.isRequired,\r\n errorText: PropTypes.string.isRequired,\r\n youHaveAlreadyRatedMessage: PropTypes.string.isRequired,\r\n }).isRequired,\r\n};\r\n\r\nexport default RateRecipe;\r\n","export const adjustSelectWidthBasedOnSelectedOption = select => {\r\n if (!select) return;\r\n\r\n let style = window.getComputedStyle(select);\r\n let { fontWeight, fontSize, fontFamily, paddingRight } = style;\r\n\r\n let text = select.querySelector('option:checked').innerText;\r\n\r\n // Create hidden element to get the width of the selected option\r\n const span = document.createElement('span');\r\n span.innerHTML = text;\r\n span.style.fontSize = fontSize;\r\n span.style.fontWeight = fontWeight;\r\n span.style.fontFamily = fontFamily;\r\n span.style.paddingRight = paddingRight;\r\n span.style.visibility = 'hidden';\r\n\r\n const currentHiddenEl = select.parentNode.querySelector('span');\r\n\r\n if (currentHiddenEl) {\r\n currentHiddenEl.replaceWith(span);\r\n } else {\r\n select.parentNode.appendChild(span);\r\n }\r\n};\r\n\r\nexport const calculateDropdownPanelPosition = dropdownPanel => {\r\n dropdownPanel.style.left = '0';\r\n dropdownPanel.style.right = '';\r\n\r\n const windowWidth = window.innerWidth;\r\n const elementRect = dropdownPanel.getBoundingClientRect();\r\n const elementLeft = elementRect.left;\r\n const elementWidth = elementRect.width;\r\n\r\n if (elementLeft + elementWidth + 20 > windowWidth) {\r\n dropdownPanel.style.right = '0';\r\n dropdownPanel.style.left = '';\r\n } else {\r\n dropdownPanel.style.right = '';\r\n dropdownPanel.style.left = '0';\r\n }\r\n};\r\n","/* eslint-disable react/prop-types */\r\n// TODO: remove view-models/no-unused-meta and eslint-disable react/prop-types rule when this issue https://github.com/asbjornh/view-models/issues/18 is resolved\r\nimport React, { useEffect, useMemo, useState, useRef } from 'react';\r\nimport Filter from 'components/models/filter';\r\nimport ToggleButton from 'components/toggle-button/toggle-button';\r\nimport cn from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport debounce from 'lodash/debounce';\r\nimport idHelper from 'js/id-helper';\r\nimport useClickOutside from 'hooks/use-click-outside';\r\nimport useEscape from 'hooks/use-escape';\r\nimport {\r\n adjustSelectWidthBasedOnSelectedOption,\r\n calculateDropdownPanelPosition,\r\n} from 'js/custom-dropdown-utils';\r\n\r\nconst KEY_NAMES = {\r\n ARROW_UP: 'ArrowUp',\r\n ARROW_DOWN: 'ArrowDown',\r\n TAB: 'Tab',\r\n};\r\n\r\nconst RecipeFilter = ({\r\n heading,\r\n allItemsLabel,\r\n items,\r\n name,\r\n // eslint-disable-next-line no-unused-vars\r\n onChange = ({ name, items }) => {},\r\n}) => {\r\n const [currentItems, setCurrentItems] = useState(items);\r\n const [isActive, setIsActive] = useState(false);\r\n const [allItem, setAllItem] = useState(\r\n allItemsLabel ? { text: allItemsLabel, value: 'all', selected: true } : null\r\n );\r\n const [focusedButtonIndex, setFocusedButtonIndex] = useState(0);\r\n const recipePanelRef = useRef(null);\r\n const recipeFilterRef = useRef(null);\r\n const mobileSelectorRef = useRef(null);\r\n const focusedButtonIndexRef = useRef(focusedButtonIndex);\r\n\r\n const closeFilter = () => setIsActive(false);\r\n\r\n useEscape(closeFilter);\r\n useClickOutside(recipeFilterRef, closeFilter);\r\n\r\n const uniqueRecipeFilterPanelId = useMemo(\r\n () => idHelper.generateUniqueId('recipe-filter-panel'),\r\n []\r\n );\r\n\r\n const filterPanelColumnCount = useMemo(() => {\r\n let columnCount = 1;\r\n const itemCount = currentItems?.length;\r\n\r\n switch (true) {\r\n case itemCount > 23:\r\n columnCount = 4;\r\n break;\r\n case itemCount > 15:\r\n columnCount = 3;\r\n break;\r\n case itemCount > 7:\r\n columnCount = 2;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return columnCount;\r\n }, [currentItems?.length]);\r\n\r\n const handleKeyDown = e => {\r\n const focusedButtonIndexRefCurrent = focusedButtonIndexRef.current;\r\n\r\n if (e.key === KEY_NAMES.ARROW_UP || e.key === KEY_NAMES.ARROW_DOWN) {\r\n e.preventDefault();\r\n }\r\n if (isActive) {\r\n if (e.key === KEY_NAMES.ARROW_UP && focusedButtonIndexRefCurrent > 0) {\r\n setFocusedButtonIndex(focusedButtonIndexRefCurrent - 1);\r\n } else if (\r\n e.key === KEY_NAMES.ARROW_DOWN &&\r\n focusedButtonIndexRefCurrent < currentItems.length\r\n ) {\r\n setFocusedButtonIndex(focusedButtonIndexRefCurrent + 1);\r\n } else if (e.key === KEY_NAMES.TAB) {\r\n setIsActive(false);\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const filterItems = recipePanelRef.current.querySelectorAll(\r\n '.recipe-filter__option'\r\n );\r\n\r\n if (focusedButtonIndexRef && focusedButtonIndexRef.current !== undefined) {\r\n focusedButtonIndexRef.current = focusedButtonIndex;\r\n\r\n if (filterItems && filterItems.length > 0) {\r\n filterItems[focusedButtonIndex].focus();\r\n }\r\n }\r\n }, [focusedButtonIndex, focusedButtonIndexRef]);\r\n\r\n useEffect(() => {\r\n const filterItems = recipePanelRef.current.querySelectorAll(\r\n '.recipe-filter__option'\r\n );\r\n\r\n if (isActive) {\r\n document.addEventListener('keydown', handleKeyDown);\r\n\r\n if (filterItems && filterItems.length > 0) {\r\n filterItems[0].focus();\r\n }\r\n } else {\r\n document.removeEventListener('keydown', handleKeyDown);\r\n setFocusedButtonIndex(0);\r\n }\r\n\r\n return () => {\r\n // Clean up the event listener when the component unmounts\r\n document.removeEventListener('keydown', handleKeyDown);\r\n };\r\n }, [isActive]);\r\n\r\n useEffect(() => {\r\n if (isActive && filterPanelColumnCount < 4) {\r\n calculateDropdownPanelPosition(recipePanelRef?.current);\r\n }\r\n }, [isActive, filterPanelColumnCount]);\r\n\r\n const handleWindowResize = debounce(() => {\r\n if (filterPanelColumnCount < 4) {\r\n calculateDropdownPanelPosition(recipePanelRef?.current);\r\n }\r\n }, 200);\r\n\r\n useEffect(() => {\r\n window.addEventListener('resize', handleWindowResize);\r\n\r\n return () => {\r\n window.removeEventListener('resize', handleWindowResize);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n setCurrentItems(items);\r\n }, [items]);\r\n\r\n useEffect(() => {\r\n if (mobileSelectorRef?.current) {\r\n adjustSelectWidthBasedOnSelectedOption(mobileSelectorRef.current);\r\n }\r\n }, [mobileSelectorRef]);\r\n\r\n useEffect(() => {\r\n setAllItem(allItem =>\r\n allItem\r\n ? {\r\n ...allItem,\r\n selected: !currentItems.some(item => item.selected),\r\n }\r\n : null\r\n );\r\n if (currentItems !== items && currentItems.length > 0) {\r\n onChange({ name: name, items: currentItems });\r\n }\r\n }, [currentItems]);\r\n\r\n const updateItem = targetItem => {\r\n closeFilter();\r\n setCurrentItems(currentItems =>\r\n currentItems.map(item => ({\r\n ...item,\r\n selected: targetItem === item ? !item.selected : false,\r\n }))\r\n );\r\n };\r\n\r\n const updateAllItems = () => {\r\n closeFilter();\r\n setCurrentItems(currentItems =>\r\n currentItems.map(item => ({ ...item, selected: false }))\r\n );\r\n };\r\n\r\n const getToggleButtonText = () => {\r\n let buttonText = allItemsLabel;\r\n const matchedFilterItem = currentItems\r\n ? currentItems.find(item => item.selected)\r\n : null;\r\n\r\n if (currentItems && currentItems.length > 0 && matchedFilterItem) {\r\n buttonText = matchedFilterItem.text;\r\n }\r\n return buttonText;\r\n };\r\n\r\n const onMobileSelectorChange = e => {\r\n adjustSelectWidthBasedOnSelectedOption(mobileSelectorRef?.current);\r\n updateItem(currentItems.find(item => item.value === e.target.value));\r\n };\r\n\r\n return (\r\n 1\r\n ? `recipe-filter_${filterPanelColumnCount}-columns`\r\n : ''\r\n }`\r\n )}\r\n ref={recipeFilterRef}\r\n >\r\n {heading && {heading}}\r\n {currentItems && currentItems.length > 0 && (\r\n
    \r\n item.selected)?.value}\r\n onChange={onMobileSelectorChange}\r\n ref={mobileSelectorRef}\r\n >\r\n {currentItems.length > 0 && allItem && (\r\n \r\n )}\r\n {currentItems.map(option => (\r\n \r\n ))}\r\n \r\n
    \r\n )}\r\n setIsActive(!isActive)}\r\n isActive={isActive}\r\n iconName=\"chevron-down\"\r\n activeIconName=\"chevron-up\"\r\n className=\"recipe-filter__desktop-selector\"\r\n ariaAttributes={{\r\n 'aria-expanded': isActive,\r\n 'aria-controls': uniqueRecipeFilterPanelId,\r\n }}\r\n />\r\n \r\n {currentItems.length > 0 && allItem && (\r\n updateAllItems(allItem.selected)}\r\n >\r\n {allItem.text}\r\n \r\n )}\r\n {currentItems.map(item => {\r\n return (\r\n updateItem(item)}\r\n >\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n};\r\n\r\nRecipeFilter.propTypes = Object.assign({}, Filter.propTypes, {\r\n onChange: PropTypes.func,\r\n});\r\n\r\nRecipeFilter.viewModelMeta = 'ignore';\r\n\r\nexport default RecipeFilter;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport RecipeFilter from 'components/recipe-filter';\r\nimport FilterHeading from 'components/filter-heading';\r\n\r\nimport cn from 'classnames';\r\n\r\nconst RecipeFilters = ({\r\n heading,\r\n filters,\r\n className,\r\n id,\r\n onFilterChange = () => {},\r\n}) => {\r\n return filters && filters.length > 0 ? (\r\n \r\n {heading && (\r\n \r\n )}\r\n
    \r\n {filters.map((filter, index) => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n })}\r\n
    \r\n \r\n ) : null;\r\n};\r\n\r\nRecipeFilters.propTypes = {\r\n heading: PropTypes.string,\r\n className: PropTypes.string,\r\n id: PropTypes.string,\r\n filters: PropTypes.arrayOf(PropTypes.exact(RecipeFilter.propTypes)),\r\n onFilterChange: PropTypes.func,\r\n};\r\n\r\nRecipeFilters.viewModelMeta = 'ignore';\r\n\r\nexport default RecipeFilters;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport PageHeading from 'components/page-heading';\r\nimport PoorText from 'components/poor-text';\r\nimport ParallaxHeroBackground from 'components/parallax-hero-background';\r\nimport useAnimationStepSwitcher, {\r\n ANIMATION_STEPS,\r\n} from 'hooks/use-animation-step-switcher';\r\nimport cn from 'classnames';\r\n\r\nconst SimplePageHero = ({ heading, backgroundColor, introHtml, children }) => {\r\n const animationCurrentStep = useAnimationStepSwitcher(\r\n ANIMATION_STEPS.oneLayerHero\r\n );\r\n\r\n return (\r\n
    \r\n 0,\r\n })}\r\n />\r\n 1,\r\n 'simple-page-hero__container_tall': animationCurrentStep > 2,\r\n })}\r\n >\r\n {heading && (\r\n \r\n )}\r\n {introHtml && (\r\n \r\n )}\r\n {children && (\r\n
    {children}
    \r\n )}\r\n
    \r\n \r\n );\r\n};\r\n\r\nSimplePageHero.propTypes = {\r\n heading: PropTypes.string,\r\n introHtml: PropTypes.string,\r\n backgroundColor: PropTypes.string,\r\n children: PropTypes.oneOfType([\r\n PropTypes.node,\r\n PropTypes.arrayOf(PropTypes.node),\r\n ]),\r\n};\r\n\r\nSimplePageHero.viewModelMeta = { children: 'ignore' };\r\n\r\nexport default SimplePageHero;\r\n","import fromQueryString from '@creuna/utils/from-query-string';\r\nimport replaceQueryParameters from '@creuna/utils/replace-query-parameters';\r\n\r\nconst _inQueryStringArrayDelimiter = '~';\r\n\r\nconst _getUndefinedIfEmpty = value => {\r\n return !value || value === '' || value.length === 0 ? undefined : value;\r\n};\r\n\r\nconst _queryValueAsArray = value => {\r\n value = value || [];\r\n return Array.isArray(value) ? value : value.split(',');\r\n};\r\n\r\nconst createQuery = () => {\r\n return new Object();\r\n};\r\n\r\nconst setQueryValue = (query, name, value) => {\r\n query[name] = _getUndefinedIfEmpty(value);\r\n};\r\n\r\nconst setToQueryTextInputValue = (query, textInput, currentValue = null) => {\r\n if (!textInput) {\r\n return;\r\n }\r\n setQueryValue(query, textInput.name, currentValue ?? textInput.value);\r\n};\r\n\r\nconst updateFilterFromQuery = (query, fieldName, filterItems) => {\r\n var queryValues = _queryValueAsArray(query[fieldName]);\r\n filterItems.forEach(item => {\r\n item.selected = queryValues.includes(item.value);\r\n });\r\n};\r\n\r\nconst updateQueryFromFilter = (query, fieldName, filterItems) => {\r\n var filterValues = filterItems.map(x => x.value);\r\n var filterSelectedValues = filterItems\r\n .filter(x => x.selected)\r\n .map(x => x.value);\r\n var queryValues = _queryValueAsArray(query[fieldName]);\r\n var newValues = [\r\n ...new Set([...queryValues, ...filterSelectedValues]),\r\n ].filter(x => !filterValues.includes(x) || filterSelectedValues.includes(x));\r\n\r\n setQueryValue(query, fieldName, newValues);\r\n};\r\n\r\nconst updatePageQueryString = query => {\r\n query = { ...query };\r\n for (var key in query) {\r\n var value = query[key];\r\n if (Array.isArray(value))\r\n query[key] = value.join(_inQueryStringArrayDelimiter);\r\n }\r\n var newUrl = replaceQueryParameters(window.location.toString(), query);\r\n window.history.replaceState({}, document.title, newUrl);\r\n};\r\n\r\nconst fillQueryFromPageQueryString = query => {\r\n var parsedQuery = fromQueryString(window.location.search.replace(/\\+/g, ' '));\r\n for (var key in parsedQuery) {\r\n var value = parsedQuery[key];\r\n if (value.includes(_inQueryStringArrayDelimiter))\r\n parsedQuery[key] = value.split(_inQueryStringArrayDelimiter);\r\n }\r\n Object.assign(query, parsedQuery);\r\n};\r\n\r\nexport default {\r\n createQuery,\r\n setQueryValue,\r\n updateFilterFromQuery,\r\n updateQueryFromFilter,\r\n setToQueryTextInputValue,\r\n updatePageQueryString,\r\n fillQueryFromPageQueryString,\r\n};\r\n","import React, { useState, useEffect, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SimplePageHero from 'components/simple-page-hero/simple-page-hero';\r\nimport RecipeTeaser from 'components/recipe-teaser/recipe-teaser';\r\nimport RecipeFilters from 'components/recipe-filters/recipe-filters';\r\nimport ToggleButton from 'components/toggle-button/toggle-button';\r\nimport ErrorMessage from 'components/error-message/error-message';\r\nimport NoResults from 'components/no-results/no-results';\r\nimport Pager from 'components/pager/pager';\r\nimport SearchForm, {\r\n sizes as searchFormSizes,\r\n} from 'components/search-form/search-form';\r\nimport LoadingIndicator from 'components/loading-indicator/loading-indicator';\r\nimport apiHelper from 'js/api-helper';\r\nimport formHelper from 'js/form-helper';\r\nimport idHelper from 'js/id-helper';\r\nimport stringHelper from 'js/string-helper';\r\nimport useDidUpdateEffect from 'hooks/use-did-update-effect';\r\nimport useBreakpoints from 'hooks/use-breakpoints';\r\nimport recipeTeaserOrientations from 'components/recipe-teaser/recipe-teaser-orientations';\r\nimport PagerLang from 'components/models/pager-lang/pager-lang';\r\nimport SearchFormLang from 'components/models/search-form-lang/search-form-lang';\r\n\r\nconst searchQueryParamName = 'q';\r\nconst pageNumberQueryParamName = 'page';\r\nconst skipFiltersQueryParamName = 'skipFilters';\r\n\r\nconst RecipeList = ({ heading, loadItemsEndpoint, lang }) => {\r\n const [results, setResults] = useState(null);\r\n const [query, setQuery] = useState(formHelper.createQuery());\r\n const [showError, setShowError] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [filtersOpenedOnMobile, setFiltersOpenedOnMobile] = useState(false);\r\n\r\n const { isMobile } = useBreakpoints(true);\r\n\r\n const uniqueRecipeFiltersPanelId = useMemo(\r\n () => idHelper.generateUniqueId('recipe-filters-panel'),\r\n []\r\n );\r\n\r\n const initLoadedFilter = filter => {\r\n formHelper.updateFilterFromQuery(query, filter.name, filter.items);\r\n };\r\n\r\n const loadItems = () => {\r\n const requestQuery = { ...query };\r\n\r\n if (results?.filters && results?.pager && query.page !== 1) {\r\n requestQuery[skipFiltersQueryParamName] = true;\r\n }\r\n\r\n setShowError(false);\r\n setIsLoading(true);\r\n apiHelper\r\n .execute(loadItemsEndpoint, requestQuery)\r\n .then(results => {\r\n if (results) {\r\n if (results.filters) {\r\n results.filters.forEach(initLoadedFilter);\r\n }\r\n\r\n const { filters: responseFilters, ...restResponseResults } = results;\r\n\r\n setResults(prevResults => ({\r\n ...prevResults,\r\n ...restResponseResults,\r\n ...(responseFilters && {\r\n filters: responseFilters,\r\n }),\r\n }));\r\n }\r\n })\r\n .catch(() => {\r\n setShowError(true);\r\n setResults(null);\r\n })\r\n .finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n const updateQuery = (updateFunc = q => {}) => {\r\n setQuery(q => {\r\n q = Object.assign({}, q);\r\n updateFunc(q);\r\n return q;\r\n });\r\n };\r\n\r\n const init = () => {\r\n updateQuery(q => formHelper.fillQueryFromPageQueryString(q));\r\n };\r\n\r\n useDidUpdateEffect(() => {\r\n formHelper.updatePageQueryString(query);\r\n loadItems();\r\n }, [query]);\r\n\r\n useDidUpdateEffect(() => {\r\n window.scrollTo({ top: 0, behavior: 'smooth' });\r\n }, [results?.pager?.page]);\r\n\r\n useEffect(() => {\r\n init();\r\n }, []);\r\n\r\n const onFilterChange = e => {\r\n updateQuery(q => {\r\n q[pageNumberQueryParamName] = 1;\r\n\r\n return formHelper.updateQueryFromFilter(q, e.name, e.items);\r\n });\r\n };\r\n\r\n const onSearch = val => {\r\n updateQuery(q => {\r\n q[pageNumberQueryParamName] = 1;\r\n\r\n return formHelper.setToQueryTextInputValue(q, {\r\n name: searchQueryParamName,\r\n value: val,\r\n });\r\n });\r\n };\r\n\r\n const onPageChange = page => {\r\n updateQuery(q => (q[pageNumberQueryParamName] = page));\r\n };\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {results && !isLoading && (\r\n \r\n {query.q\r\n ? stringHelper.format(\r\n lang.searchHitsText,\r\n query.q,\r\n results.totalCount\r\n )\r\n : lang.emptySearchTermText}\r\n

    \r\n )}\r\n
    \r\n {results?.filters && (\r\n
    \r\n setFiltersOpenedOnMobile(!filtersOpenedOnMobile)}\r\n iconName={filtersOpenedOnMobile ? 'minus-sign' : 'plus-sign'}\r\n iconPosition=\"left\"\r\n ariaAttributes={{\r\n 'aria-expanded': filtersOpenedOnMobile,\r\n 'aria-controls': uniqueRecipeFiltersPanelId,\r\n }}\r\n />\r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n {results?.items && results.items.length > 0 ? (\r\n
      \r\n {results.items.map(recipe => (\r\n
    • \r\n \r\n
    • \r\n ))}\r\n
    \r\n ) : null}\r\n {results?.items && results.items.length === 0 && (\r\n \r\n )}\r\n {showError && }\r\n {results?.pager && (\r\n \r\n )}\r\n {isLoading && }\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nRecipeList.propTypes = {\r\n heading: PropTypes.string,\r\n loadItemsEndpoint: PropTypes.string.isRequired,\r\n lang: PropTypes.shape({\r\n errorMessage: PropTypes.string.isRequired,\r\n filterLabel: PropTypes.string.isRequired,\r\n showFilterOptionsLabel: PropTypes.string.isRequired,\r\n hideFilterOptionsLabel: PropTypes.string.isRequired,\r\n noListResultsHeading: PropTypes.string.isRequired,\r\n noListResultsText: PropTypes.string.isRequired,\r\n searchHitsText: PropTypes.string.isRequired,\r\n emptySearchTermText: PropTypes.string.isRequired,\r\n pager: PropTypes.shape(PagerLang.propTypes).isRequired,\r\n searchForm: PropTypes.shape(SearchFormLang.propTypes).isRequired,\r\n cookingTimeIconAriaLabel: PropTypes.string.isRequired,\r\n difficultyLevelIconAriaLabel: PropTypes.string.isRequired,\r\n ratingIconAriaLabel: PropTypes.string.isRequired,\r\n }),\r\n};\r\n\r\nexport default RecipeList;\r\n","import React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Image from 'components/image';\r\nimport PoorText from 'components/poor-text';\r\nimport Link from 'components/link';\r\nimport PageHeading from 'components/page-heading';\r\nimport LinkButton, {\r\n sizes as linkButtonSizes,\r\n arrowDirections as linkButtonArrowDirections,\r\n} from 'components/link-button/link-button';\r\nimport RecipeDetails from 'components/recipe-details';\r\nimport recipeMessageBus from 'js/recipe-message-bus';\r\nimport ParallaxHeroBackground from 'components/parallax-hero-background';\r\nimport useAnimationStepSwitcher, {\r\n ANIMATION_STEPS,\r\n} from 'hooks/use-animation-step-switcher';\r\nimport cn from 'classnames';\r\nimport { calculateInterpolatedValue } from 'js/calc-utils';\r\nimport { Parallax } from 'react-parallax';\r\nimport useBreakpoints from 'hooks/use-breakpoints';\r\n\r\nconst RecipePageHero = ({\r\n heading,\r\n introHtml,\r\n allRecipesLink,\r\n image,\r\n rating,\r\n cookingTime,\r\n difficultyLevel,\r\n lang = {\r\n cookingTimeIconAriaLabel: 'Cooking time',\r\n difficultyLevelIconAriaLabel: 'Difficulty level',\r\n ratingIconAriaLabel: 'Rating',\r\n },\r\n}) => {\r\n const { isMobile } = useBreakpoints(true);\r\n const animationCurrentStep = useAnimationStepSwitcher(\r\n ANIMATION_STEPS.twoLayersHero\r\n );\r\n\r\n const [currentRating, setCurrentRating] = useState(rating);\r\n useEffect(() => {\r\n const token = recipeMessageBus.subscribeToNewRating((msg, data) => {\r\n setCurrentRating(data);\r\n });\r\n\r\n return () => {\r\n recipeMessageBus.unsubscribeFromNewRating(token);\r\n };\r\n }, []);\r\n\r\n return (\r\n
    \r\n 0,\r\n })}\r\n />\r\n 2,\r\n })}\r\n >\r\n
    \r\n {\r\n const maxPercentage = 1.3;\r\n const maxImageColPadding = 60;\r\n let imageColPadding = 0;\r\n\r\n if (percentage > maxPercentage) {\r\n imageColPadding = maxImageColPadding;\r\n } else {\r\n imageColPadding = calculateInterpolatedValue(\r\n percentage,\r\n maxImageColPadding,\r\n maxPercentage\r\n );\r\n }\r\n\r\n return (\r\n \r\n 0,\r\n 'recipe-page-hero__image-holder-overlay_tight':\r\n animationCurrentStep <= 2,\r\n })}\r\n >\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n }}\r\n />\r\n \r\n 1,\r\n })}\r\n >\r\n {allRecipesLink && (\r\n \r\n )}\r\n {heading && }\r\n {introHtml && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nRecipePageHero.propTypes = {\r\n heading: PropTypes.string,\r\n introHtml: PropTypes.string,\r\n image: PropTypes.exact(Image.propTypes),\r\n allRecipesLink: PropTypes.exact(Link.propTypes),\r\n rating: PropTypes.string,\r\n cookingTime: PropTypes.string,\r\n difficultyLevel: PropTypes.string,\r\n lang: PropTypes.shape({\r\n cookingTimeIconAriaLabel: PropTypes.string.isRequired,\r\n difficultyLevelIconAriaLabel: PropTypes.string.isRequired,\r\n ratingIconAriaLabel: PropTypes.string.isRequired,\r\n }).isRequired,\r\n};\r\n\r\nexport default RecipePageHero;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport IconButton from 'components/icon-button';\r\nimport cn from 'classnames';\r\n\r\nexport const arrowDirections = {\r\n right: 'right',\r\n left: 'left',\r\n};\r\n\r\nconst RecipeTeasersBlockSliderNavButton = ({\r\n onClick,\r\n text,\r\n isDisabled,\r\n arrowDirection,\r\n}) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nRecipeTeasersBlockSliderNavButton.viewModelMeta = 'ignore';\r\n\r\nRecipeTeasersBlockSliderNavButton.propTypes = {\r\n onClick: PropTypes.func,\r\n text: PropTypes.string,\r\n isDisabled: PropTypes.bool,\r\n arrowDirection: PropTypes.oneOf(Object.values(arrowDirections)),\r\n};\r\n\r\nexport default RecipeTeasersBlockSliderNavButton;\r\n","import React, { useRef, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Link from 'components/link';\r\nimport LinkButton, {\r\n sizes as linkButtonSizes,\r\n arrowDirections as linkButtonArrowDirections,\r\n} from 'components/link-button';\r\nimport RecipeTeaser from 'components/recipe-teaser/recipe-teaser';\r\nimport useBreakpoints from 'hooks/use-breakpoints';\r\nimport Slider from 'react-slick';\r\nimport RecipeTeasersBlockSliderNavButton, {\r\n arrowDirections as sliderArrowDirections,\r\n} from './recipe-teasers-block-slider-nav-button';\r\nimport useDidUpdateEffect from 'hooks/use-did-update-effect';\r\nimport cn from 'classnames';\r\nimport { Parallax } from 'react-parallax';\r\n\r\nconst RecipeTeasersBlock = ({\r\n className,\r\n heading,\r\n showAllLink,\r\n recipes,\r\n lang,\r\n}) => {\r\n const { isDesktopLargerThanIpad } = useBreakpoints(true);\r\n const [currentSlideIndex, setCurrentSlideIndex] = React.useState(0);\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n\r\n const slidesLength = recipes.length - 1;\r\n\r\n const sliderRef = useRef(null);\r\n const sliderStepsRef = useRef([]);\r\n\r\n const onSlideChange = currentSlideIndex => {\r\n setCurrentSlideIndex(currentSlideIndex);\r\n };\r\n\r\n const sliderSettings = {\r\n customPaging: function (i) {\r\n return (\r\n \r\n );\r\n },\r\n dotsClass: 'recipe-teasers-block__slider-paging',\r\n dots: true,\r\n infinite: false,\r\n speed: 500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n nextArrow: (\r\n \r\n ),\r\n prevArrow: (\r\n \r\n ),\r\n afterChange: onSlideChange,\r\n };\r\n\r\n useEffect(() => {\r\n sliderStepsRef.current = sliderStepsRef.current.slice(0, recipes.length);\r\n }, [recipes]);\r\n\r\n useDidUpdateEffect(() => {\r\n if (sliderStepsRef?.current) {\r\n const currentSlideNode = sliderStepsRef?.current[currentSlideIndex];\r\n\r\n if (currentSlideNode) {\r\n currentSlideNode.focus();\r\n }\r\n }\r\n }, [currentSlideIndex, sliderStepsRef]);\r\n\r\n useEffect(() => {\r\n setIsMounted(true);\r\n }, []);\r\n\r\n return (\r\n \r\n {heading &&

    {heading}

    }\r\n {recipes && (\r\n <>\r\n {(!isMounted || isDesktopLargerThanIpad) && (\r\n
      \r\n {recipes.map((recipe, index) => {\r\n let translateY = 0;\r\n\r\n switch (index) {\r\n case 0:\r\n translateY = -40;\r\n break;\r\n case 1:\r\n translateY = 70;\r\n break;\r\n case 2:\r\n translateY = -60;\r\n break;\r\n case 3:\r\n translateY = 10;\r\n break;\r\n }\r\n return (\r\n
    • \r\n (\r\n = 0.3\r\n ? percentage <= 1\r\n ? percentage * translateY\r\n : translateY\r\n : 0\r\n }px)`,\r\n }}\r\n >\r\n \r\n \r\n )}\r\n >\r\n
    • \r\n );\r\n })}\r\n
    \r\n )}\r\n\r\n {(!isMounted || !isDesktopLargerThanIpad) && (\r\n \r\n {recipes.map((recipe, index) => {\r\n return (\r\n (sliderStepsRef.current[index] = el)}\r\n cookingTimeIconAriaLabel={lang.cookingTimeIconAriaLabel}\r\n difficultyLevelIconAriaLabel={\r\n lang.difficultyLevelIconAriaLabel\r\n }\r\n ratingIconAriaLabel={lang.ratingIconAriaLabel}\r\n />\r\n );\r\n })}\r\n \r\n )}\r\n \r\n )}\r\n {showAllLink && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nRecipeTeasersBlock.propTypes = {\r\n className: PropTypes.string,\r\n lang: PropTypes.shape({\r\n nextButtonText: PropTypes.string.isRequired,\r\n prevButtonText: PropTypes.string.isRequired,\r\n carouselAriaLabel: PropTypes.string.isRequired,\r\n carouselAriaRoleDescription: PropTypes.string.isRequired,\r\n teaserAriaRoleDescription: PropTypes.string.isRequired,\r\n cookingTimeIconAriaLabel: PropTypes.string.isRequired,\r\n difficultyLevelIconAriaLabel: PropTypes.string.isRequired,\r\n ratingIconAriaLabel: PropTypes.string.isRequired,\r\n }).isRequired,\r\n heading: PropTypes.string,\r\n showAllLink: PropTypes.exact(Link.propTypes),\r\n recipes: PropTypes.arrayOf(PropTypes.exact(RecipeTeaser.propTypes)),\r\n};\r\n\r\nRecipeTeasersBlock.viewModelMeta = {\r\n className: 'ignore',\r\n};\r\n\r\nexport default RecipeTeasersBlock;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport RichText from 'components/rich-text';\r\n\r\nconst RichTextBlock = ({ textHtml }) => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nRichTextBlock.propTypes = {\r\n textHtml: PropTypes.string,\r\n};\r\n\r\nexport default RichTextBlock;\r\n","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SimplePageHero from 'components/simple-page-hero/simple-page-hero';\r\nimport ToggleFilter from 'components/toggle-filter/toggle-filter';\r\nimport ErrorMessage from 'components/error-message/error-message';\r\nimport NoResults from 'components/no-results/no-results';\r\nimport Pager from 'components/pager/pager';\r\nimport SearchForm, {\r\n sizes as searchFormSizes,\r\n} from 'components/search-form/search-form';\r\nimport LoadingIndicator from 'components/loading-indicator/loading-indicator';\r\nimport apiHelper from 'js/api-helper';\r\nimport formHelper from 'js/form-helper';\r\nimport stringHelper from 'js/string-helper';\r\nimport useDidUpdateEffect from 'hooks/use-did-update-effect';\r\nimport useBreakpoints from 'hooks/use-breakpoints';\r\nimport recipeTeaserOrientations from 'components/recipe-teaser/recipe-teaser-orientations';\r\nimport PagerLang from 'components/models/pager-lang/pager-lang';\r\nimport SearchFormLang from 'components/models/search-form-lang/search-form-lang';\r\n\r\nimport * as Components from '../../app.components';\r\n\r\nconst searchQueryParamName = 'q';\r\nconst pageNumberQueryParamName = 'page';\r\n\r\nconst SearchPage = ({ heading, searchEndpoint, lang }) => {\r\n const [results, setResults] = useState(null);\r\n const [query, setQuery] = useState(formHelper.createQuery());\r\n const [showError, setShowError] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const { isMobile } = useBreakpoints(true);\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n const updateQuery = (updateFunc = q => {}) => {\r\n setQuery(q => {\r\n q = Object.assign({}, q);\r\n updateFunc(q);\r\n return q;\r\n });\r\n };\r\n\r\n const loadItems = () => {\r\n setShowError(false);\r\n setIsLoading(true);\r\n apiHelper\r\n .execute(searchEndpoint, query)\r\n .then(results => {\r\n formHelper.updateFilterFromQuery(\r\n query,\r\n results?.pageTypeFilter?.name,\r\n results?.pageTypeFilter?.items\r\n );\r\n setResults(results);\r\n })\r\n .catch(() => {\r\n setShowError(true);\r\n setResults(null);\r\n })\r\n .finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const init = () => {\r\n updateQuery(q => formHelper.fillQueryFromPageQueryString(q));\r\n };\r\n\r\n useDidUpdateEffect(() => {\r\n formHelper.updatePageQueryString(query);\r\n loadItems();\r\n }, [query]);\r\n\r\n useDidUpdateEffect(() => {\r\n window.scrollTo({ top: 0, behavior: 'smooth' });\r\n }, [results?.pager?.page]);\r\n\r\n useEffect(() => {\r\n init();\r\n }, []);\r\n\r\n const onSearch = val => {\r\n updateQuery(q => {\r\n q[pageNumberQueryParamName] = 1;\r\n\r\n return formHelper.setToQueryTextInputValue(q, {\r\n name: searchQueryParamName,\r\n value: val,\r\n });\r\n });\r\n };\r\n\r\n const onPageTypeFilterChange = e => {\r\n updateQuery(q => {\r\n q[pageNumberQueryParamName] = 1;\r\n\r\n return formHelper.updateQueryFromFilter(q, e.name, e.items);\r\n });\r\n };\r\n\r\n const onPageChange = page => {\r\n updateQuery(q => (q[pageNumberQueryParamName] = page));\r\n };\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {results && !isLoading && (\r\n \r\n {query.q\r\n ? stringHelper.format(\r\n lang.searchHitsText,\r\n query.q,\r\n results.totalCount\r\n )\r\n : lang.emptySearchTermText}\r\n

    \r\n )}\r\n
    \r\n\r\n {results?.pageTypeFilter && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n {results?.hits && results.hits.length > 0 ? (\r\n
      \r\n {results.hits.map(item => {\r\n const Block = Components[item.componentName];\r\n if (!Block) {\r\n // eslint-disable-next-line no-console\r\n console.error(\r\n `Components.${item.componentName} is not defined`\r\n );\r\n return null;\r\n }\r\n return (\r\n
    • \r\n \r\n
    • \r\n );\r\n })}\r\n
    \r\n ) : null}\r\n {results?.hits && results.hits.length === 0 && (\r\n \r\n )}\r\n {showError && }\r\n {results?.pager && (\r\n \r\n )}\r\n {isLoading && }\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nSearchPage.propTypes = {\r\n heading: PropTypes.string,\r\n searchEndpoint: PropTypes.string.isRequired,\r\n lang: PropTypes.shape({\r\n errorMessage: PropTypes.string.isRequired,\r\n noResultsHeading: PropTypes.string.isRequired,\r\n noResultsText: PropTypes.string.isRequired,\r\n searchHitsText: PropTypes.string.isRequired,\r\n emptySearchTermText: PropTypes.string.isRequired,\r\n pager: PropTypes.shape(PagerLang.propTypes).isRequired,\r\n searchForm: PropTypes.shape(SearchFormLang.propTypes).isRequired,\r\n }),\r\n};\r\n\r\nexport default SearchPage;\r\n","import React from 'react';\r\nimport Image from 'components/image';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\nimport useBreakpoints from 'hooks/use-breakpoints';\r\n\r\nconst SearchTeaser = ({\r\n url,\r\n heading,\r\n image,\r\n backgroundColor,\r\n categoryLabel,\r\n className,\r\n}) => {\r\n const { isMobile } = useBreakpoints(true);\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n \r\n {image && (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n {categoryLabel && (\r\n {categoryLabel}\r\n )}\r\n {heading && (\r\n

    \r\n {heading}\r\n

    \r\n )}\r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nSearchTeaser.propTypes = {\r\n id: PropTypes.string,\r\n url: PropTypes.string,\r\n heading: PropTypes.string,\r\n className: PropTypes.string,\r\n image: PropTypes.exact(Image.propTypes),\r\n backgroundColor: PropTypes.string,\r\n categoryLabel: PropTypes.string,\r\n};\r\n\r\nSearchTeaser.viewModelMeta = {\r\n className: 'ignore',\r\n};\r\n\r\nexport default SearchTeaser;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ActionButton from 'components/action-button';\r\nimport cn from 'classnames';\r\nimport Icon from 'components/icon';\r\n\r\nconst ShareRecipe = ({ heading, lang }) => {\r\n const [showUrlCopiedConfirmation, setShowUrlCopiedConfirmation] =\r\n useState(false);\r\n const [isNativeShareSupported, setIsNativeShareSupported] = useState(false);\r\n\r\n const onCopyUrlButtonClick = () => {\r\n const currentPageURL = window.location.href;\r\n\r\n try {\r\n navigator.clipboard.writeText(currentPageURL);\r\n setShowUrlCopiedConfirmation(true);\r\n setTimeout(() => {\r\n setShowUrlCopiedConfirmation(false);\r\n }, 10000);\r\n } catch (error) {\r\n // eslint-disable-next-line no-console\r\n console.error('Failed to copy URL:', error);\r\n }\r\n };\r\n\r\n const onShareButtonClick = () => {\r\n if (navigator.share) {\r\n try {\r\n navigator.share({\r\n title: document.title,\r\n url: window.location.href,\r\n });\r\n } catch (error) {\r\n // eslint-disable-next-line no-console\r\n console.error('Error sharing:', error);\r\n }\r\n }\r\n };\r\n React.useEffect(() => {\r\n if (navigator.share) {\r\n setIsNativeShareSupported(true);\r\n }\r\n }, []);\r\n\r\n return (\r\n
    \r\n {heading &&

    {heading}

    }\r\n
    \r\n {isNativeShareSupported && (\r\n \r\n )}\r\n
    \r\n \r\n \r\n
    \r\n {showUrlCopiedConfirmation && (\r\n <>\r\n \r\n \r\n \r\n {lang.copyUrlConfirmationHeading}\r\n \r\n \r\n
    \r\n {lang.copyUrlConfirmationText}\r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nShareRecipe.propTypes = {\r\n heading: PropTypes.string,\r\n lang: PropTypes.shape({\r\n copyUrlButtonText: PropTypes.string.isRequired,\r\n shareButtonText: PropTypes.string.isRequired,\r\n copyUrlConfirmationHeading: PropTypes.string.isRequired,\r\n copyUrlConfirmationText: PropTypes.string.isRequired,\r\n }).isRequired,\r\n};\r\n\r\nexport default ShareRecipe;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ShareRecipe from 'components/share-recipe';\r\nimport RateRecipe from 'components/rate-recipe';\r\nimport cn from 'classnames';\r\n\r\nconst ShareAndRateRecipePanel = ({ shareRecipe, rateRecipe, className }) => {\r\n return (\r\n
    \r\n {shareRecipe && }\r\n {rateRecipe && }\r\n
    \r\n );\r\n};\r\n\r\nShareAndRateRecipePanel.viewModelMeta = {\r\n className: 'ignore',\r\n};\r\n\r\nShareAndRateRecipePanel.propTypes = {\r\n shareRecipe: PropTypes.exact(ShareRecipe.propTypes),\r\n rateRecipe: PropTypes.exact(RateRecipe.propTypes),\r\n className: PropTypes.string,\r\n};\r\n\r\nexport default ShareAndRateRecipePanel;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Image from 'components/image';\r\nimport Link from 'components/link';\r\nimport LinkButton, {\r\n sizes as linkButtonSizes,\r\n arrowDirections as linkButtonArrowDirections,\r\n} from 'components/link-button';\r\nimport PageHeading from 'components/page-heading';\r\nimport ParallaxHeroBackground from 'components/parallax-hero-background';\r\nimport PoorText from 'components/poor-text';\r\nimport useAnimationStepSwitcher, {\r\n ANIMATION_STEPS,\r\n} from 'hooks/use-animation-step-switcher';\r\n\r\nimport cn from 'classnames';\r\n\r\nconst ShortArticlePageHero = ({\r\n heading,\r\n introHtml,\r\n image,\r\n imageCaption,\r\n allStoriesLink,\r\n backgroundColor,\r\n}) => {\r\n const animationCurrentStep = useAnimationStepSwitcher(\r\n ANIMATION_STEPS.oneLayerHero\r\n );\r\n\r\n return (\r\n
    \r\n 0,\r\n })}\r\n />\r\n 1,\r\n 'short-article-page-hero__container_tall': animationCurrentStep > 2,\r\n })}\r\n >\r\n
    \r\n {allStoriesLink && (\r\n \r\n )}\r\n {heading && (\r\n \r\n )}\r\n
    \r\n {introHtml && (\r\n \r\n )}\r\n
    \r\n
    \r\n {image && (\r\n
    \r\n \r\n {imageCaption && (\r\n
    \r\n {imageCaption}\r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n \r\n );\r\n};\r\n\r\nShortArticlePageHero.propTypes = {\r\n heading: PropTypes.string,\r\n introHtml: PropTypes.string,\r\n image: PropTypes.exact(Image.propTypes),\r\n imageCaption: PropTypes.string,\r\n allStoriesLink: PropTypes.exact(Link.propTypes),\r\n backgroundColor: PropTypes.string,\r\n};\r\n\r\nexport default ShortArticlePageHero;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst SkipToMain = ({ text }) => (\r\n \r\n {text}\r\n \r\n);\r\n\r\nSkipToMain.propTypes = {\r\n text: PropTypes.string,\r\n};\r\n\r\nexport default SkipToMain;\r\n","import React, { useEffect, useState, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Link from 'components/link';\r\nimport Image from 'components/image';\r\nimport cn from 'classnames';\r\nimport useBreakpoints from 'hooks/use-breakpoints';\r\nimport useScrollDirection, {\r\n SCROLL_DIRECTIONS,\r\n} from 'hooks/use-scroll-direction';\r\nimport LinkButton from 'components/link-button';\r\n\r\nconst SpeciesQuickOverviewBlockSpecie = ({\r\n link,\r\n image,\r\n bgColor,\r\n index,\r\n stayActiveOnScrollOrResize,\r\n setContainerBgColor,\r\n onSpecieActive,\r\n}) => {\r\n const { isDesktopLargerThanIpad } = useBreakpoints(true);\r\n const [isActive, setActive] = useState(false);\r\n const [randomMobileImageAlign, setRandomMobileImageAlign] = useState(false);\r\n const specieLinkRef = useRef();\r\n const specieRef = useRef();\r\n const isDesktopRef = useRef(true);\r\n const scrollDirection = useScrollDirection();\r\n const scrollDirectionRef = useRef(scrollDirection);\r\n const stayActiveOnScrollOrResizeRef = useRef(stayActiveOnScrollOrResize);\r\n\r\n const updateIsActive = isActive => {\r\n setActive(image && isActive);\r\n };\r\n\r\n const onSpecieLinkMouseEnter = () => {\r\n if (isDesktopRef?.current) {\r\n updateIsActive(true);\r\n }\r\n };\r\n\r\n const onSpecieLinkMouseLeave = () => {\r\n if (isDesktopRef?.current) {\r\n updateIsActive(false);\r\n }\r\n };\r\n\r\n const onSpecieLinkFocus = () => {\r\n if (isDesktopRef?.current) {\r\n updateIsActive(true);\r\n }\r\n };\r\n\r\n const onSpecieLinkBlur = () => {\r\n if (isDesktopRef?.current) {\r\n updateIsActive(false);\r\n }\r\n };\r\n\r\n const isItemInViewportCenter = item => {\r\n const { top, bottom } = item.getBoundingClientRect();\r\n const windowHeight = window.innerHeight;\r\n const viewportVerticalCenterPosition =\r\n windowHeight /\r\n (scrollDirectionRef?.current === SCROLL_DIRECTIONS.UP ? 3 : 1.4);\r\n\r\n return (\r\n top <= viewportVerticalCenterPosition &&\r\n bottom >= viewportVerticalCenterPosition\r\n );\r\n };\r\n\r\n const onWindowResizeOrScroll = () => {\r\n if (\r\n isDesktopRef?.current !== undefined &&\r\n !isDesktopRef?.current &&\r\n specieRef?.current\r\n ) {\r\n if (\r\n stayActiveOnScrollOrResizeRef?.current !== undefined &&\r\n stayActiveOnScrollOrResizeRef?.current\r\n ) {\r\n updateIsActive(true);\r\n } else {\r\n updateIsActive(isItemInViewportCenter(specieRef?.current));\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n updateIsActive(false);\r\n isDesktopRef.current = isDesktopLargerThanIpad;\r\n }, [isDesktopLargerThanIpad]);\r\n\r\n useEffect(() => {\r\n scrollDirectionRef.current = scrollDirection;\r\n }, [scrollDirection]);\r\n\r\n useEffect(() => {\r\n stayActiveOnScrollOrResizeRef.current = stayActiveOnScrollOrResize;\r\n }, [stayActiveOnScrollOrResize]);\r\n\r\n useEffect(() => {\r\n const specieLink = specieLinkRef.current;\r\n\r\n if (specieLink) {\r\n specieLink.addEventListener('mouseenter', onSpecieLinkMouseEnter);\r\n specieLink.addEventListener('mouseleave', onSpecieLinkMouseLeave);\r\n specieLink.addEventListener('focus', onSpecieLinkFocus);\r\n specieLink.addEventListener('blur', onSpecieLinkBlur);\r\n }\r\n\r\n window.addEventListener('scroll', onWindowResizeOrScroll);\r\n window.addEventListener('resize', onWindowResizeOrScroll);\r\n\r\n return () => {\r\n window.removeEventListener('scroll', onWindowResizeOrScroll);\r\n window.removeEventListener('resize', onWindowResizeOrScroll);\r\n\r\n if (specieLink) {\r\n specieLink.removeEventListener('mouseenter', onSpecieLinkMouseEnter);\r\n specieLink.removeEventListener('mouseleave', onSpecieLinkMouseLeave);\r\n specieLink.removeEventListener('focus', onSpecieLinkFocus);\r\n specieLink.removeEventListener('blur', onSpecieLinkBlur);\r\n }\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n const mobileImageAlign = [\r\n 'left',\r\n 'left-with-padding',\r\n 'right',\r\n 'right-with-padding',\r\n 'center',\r\n ];\r\n const randomIndex = Math.floor(Math.random() * mobileImageAlign.length);\r\n setRandomMobileImageAlign(mobileImageAlign[randomIndex]);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (image && isActive) {\r\n setTimeout(() => {\r\n setContainerBgColor(bgColor);\r\n }, 1);\r\n onSpecieActive(index);\r\n } else {\r\n setContainerBgColor(null);\r\n }\r\n }, [isActive]);\r\n\r\n return (\r\n
    \r\n {image && (\r\n \r\n \r\n \r\n
    \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nSpeciesQuickOverviewBlockSpecie.viewModelMeta = {\r\n setContainerBgColor: 'ignore',\r\n onSpecieActive: 'ignore',\r\n index: 'ignore',\r\n stayActiveOnScrollOrResize: 'ignore',\r\n};\r\n\r\nSpeciesQuickOverviewBlockSpecie.propTypes = {\r\n link: PropTypes.exact(Link.propTypes),\r\n image: PropTypes.exact(Image.propTypes),\r\n bgColor: PropTypes.string.isRequired,\r\n stayActiveOnScrollOrResize: PropTypes.bool,\r\n index: PropTypes.number,\r\n setContainerBgColor: PropTypes.func,\r\n onSpecieActive: PropTypes.func,\r\n};\r\n\r\nexport default SpeciesQuickOverviewBlockSpecie;\r\n","import { useState, useEffect } from 'react';\r\n\r\nexport const SCROLL_DIRECTIONS = {\r\n UP: 'up',\r\n DOWN: 'down',\r\n};\r\n\r\nconst useScrollDirection = () => {\r\n const [scrollDirection, setScrollDirection] = useState(null);\r\n\r\n useEffect(() => {\r\n let prevScrollY = window.scrollY;\r\n\r\n const handleScroll = () => {\r\n const currentScrollY = window.scrollY;\r\n\r\n if (currentScrollY > prevScrollY) {\r\n setScrollDirection(SCROLL_DIRECTIONS.DOWN);\r\n } else if (currentScrollY < prevScrollY) {\r\n setScrollDirection(SCROLL_DIRECTIONS.UP);\r\n }\r\n\r\n prevScrollY = currentScrollY;\r\n };\r\n\r\n window.addEventListener('scroll', handleScroll);\r\n\r\n return () => {\r\n window.removeEventListener('scroll', handleScroll);\r\n };\r\n }, []);\r\n\r\n return scrollDirection;\r\n};\r\n\r\nexport default useScrollDirection;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport PoorText from 'components/poor-text';\r\nimport SpeciesQuickOverviewBlockSpecie from './species-quick-overview-block-specie';\r\nimport Link from 'components/link';\r\nimport LinkButton from 'components/link-button';\r\n\r\nconst SpeciesQuickOverviewBlock = ({\r\n heading,\r\n introHtml,\r\n species,\r\n remainingLinks,\r\n exploreAllLink,\r\n}) => {\r\n const [containerBgColor, setContainerBgColor] = useState(null);\r\n const [lastActiveSpecieIndex, setLastActiveSpecieIndex] = useState(null);\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n {heading && (\r\n

    {heading}

    \r\n )}\r\n {introHtml && (\r\n \r\n )}\r\n
    \r\n
    \r\n {species && (\r\n
    \r\n
      \r\n {species.map((specie, index) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n
    \r\n {exploreAllLink && (\r\n \r\n )}\r\n
    \r\n )}\r\n {remainingLinks && (\r\n
      \r\n {remainingLinks.map((link, index) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nSpeciesQuickOverviewBlock.propTypes = {\r\n heading: PropTypes.string,\r\n introHtml: PropTypes.string,\r\n species: PropTypes.arrayOf(\r\n PropTypes.exact(SpeciesQuickOverviewBlockSpecie.propTypes)\r\n ),\r\n remainingLinks: PropTypes.arrayOf(PropTypes.exact(Link.propTypes)),\r\n exploreAllLink: PropTypes.exact(Link.propTypes),\r\n};\r\n\r\nexport default SpeciesQuickOverviewBlock;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport PoorText from 'components/poor-text';\r\n\r\nconst SpecimenPageHeroFact = ({ heading, textHtml }) => (\r\n
    \r\n {heading && (\r\n {heading}\r\n )}\r\n {textHtml && }\r\n
    \r\n);\r\n\r\nSpecimenPageHeroFact.viewModelMeta = 'ignore';\r\n\r\nSpecimenPageHeroFact.propTypes = {\r\n heading: PropTypes.string,\r\n textHtml: PropTypes.string,\r\n};\r\n\r\nexport default SpecimenPageHeroFact;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Image from 'components/image';\r\nimport Link from 'components/link';\r\nimport LinkButton, {\r\n sizes as linkButtonSizes,\r\n arrowDirections as linkButtonArrowDirections,\r\n} from 'components/link-button';\r\nimport PageHeading from 'components/page-heading';\r\nimport PoorText from 'components/poor-text';\r\nimport ParallaxHeroBackground from 'components/parallax-hero-background';\r\nimport useAnimationStepSwitcher, {\r\n ANIMATION_STEPS,\r\n} from 'hooks/use-animation-step-switcher';\r\nimport useBreakpoints from 'hooks/use-breakpoints';\r\nimport SpecimenPageHeroFact from './specimen-page-hero-fact';\r\nimport { calculateInterpolatedValue } from 'js/calc-utils';\r\nimport { Parallax } from 'react-parallax';\r\nimport cn from 'classnames';\r\n\r\nconst SpecimenPageHero = ({\r\n heading,\r\n introHtml,\r\n image,\r\n allSpeciesLink,\r\n backgroundColor,\r\n nutritionalInformationHtml,\r\n catchRangeHtml,\r\n seasonHtml,\r\n lang,\r\n}) => {\r\n const { isMobile } = useBreakpoints(true);\r\n const animationCurrentStep = useAnimationStepSwitcher(\r\n ANIMATION_STEPS.twoLayersHero\r\n );\r\n\r\n return (\r\n
    \r\n 0,\r\n })}\r\n />\r\n 2,\r\n })}\r\n >\r\n 1,\r\n })}\r\n >\r\n {allSpeciesLink && (\r\n \r\n )}\r\n {heading && (\r\n \r\n )}\r\n
    \r\n {introHtml && (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n {\r\n const maxPercentage = 1.3;\r\n const maxImageColPadding = 60;\r\n let imageColPadding = 0;\r\n\r\n if (percentage > maxPercentage) {\r\n imageColPadding = maxImageColPadding;\r\n } else {\r\n imageColPadding = calculateInterpolatedValue(\r\n percentage,\r\n maxImageColPadding,\r\n maxPercentage\r\n );\r\n }\r\n\r\n return (\r\n \r\n 0,\r\n 'specimen-page-hero__image-holder-overlay_tight':\r\n animationCurrentStep <= 2,\r\n })}\r\n >\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }}\r\n />\r\n \r\n 1,\r\n })}\r\n >\r\n {nutritionalInformationHtml && (\r\n \r\n )}\r\n {catchRangeHtml && (\r\n \r\n )}\r\n {seasonHtml && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nSpecimenPageHero.propTypes = {\r\n heading: PropTypes.string,\r\n introHtml: PropTypes.string,\r\n image: PropTypes.exact(Image.propTypes),\r\n allSpeciesLink: PropTypes.exact(Link.propTypes),\r\n backgroundColor: PropTypes.string,\r\n nutritionalInformationHtml: PropTypes.string,\r\n catchRangeHtml: PropTypes.string,\r\n seasonHtml: PropTypes.string,\r\n lang: PropTypes.shape({\r\n nutritionalInformationLabel: PropTypes.string.isRequired,\r\n catchRangeLabel: PropTypes.string.isRequired,\r\n seasonLabel: PropTypes.string.isRequired,\r\n }).isRequired,\r\n};\r\n\r\nexport default SpecimenPageHero;\r\n","import React from 'react';\r\nimport Image from 'components/image';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\nimport useBreakpoints from 'hooks/use-breakpoints';\r\n\r\nconst SpecimenSearchTeaser = ({\r\n url,\r\n heading,\r\n image,\r\n categoryLabel,\r\n className,\r\n}) => {\r\n const { isMobile } = useBreakpoints(true);\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n \r\n {image && (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n {categoryLabel && (\r\n \r\n {categoryLabel}\r\n \r\n )}\r\n {heading && (\r\n

    \r\n \r\n {heading}\r\n \r\n

    \r\n )}\r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nSpecimenSearchTeaser.propTypes = {\r\n id: PropTypes.string,\r\n url: PropTypes.string,\r\n heading: PropTypes.string,\r\n className: PropTypes.string,\r\n image: PropTypes.exact(Image.propTypes),\r\n categoryLabel: PropTypes.string,\r\n};\r\n\r\nSpecimenSearchTeaser.viewModelMeta = {\r\n className: 'ignore',\r\n};\r\n\r\nexport default SpecimenSearchTeaser;\r\n","import React from 'react';\r\nimport Image from 'components/image';\r\nimport Logo from 'components/logo';\r\nimport Link from 'components/link';\r\nimport Button from 'components/button';\r\nimport PoorText from 'components/poor-text';\r\nimport OriginMatters from 'components/origin-matters';\r\nimport stringHelper from 'js/string-helper';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\n\r\nconst SpecimenTeaserBlock = ({\r\n className,\r\n heading,\r\n image,\r\n nutritionalInformationHtml,\r\n seasonHtml,\r\n howToBuyLogo,\r\n lang,\r\n learnMoreLink,\r\n}) => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {image && (\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n \r\n {lang.seafoodUsedInRecipeLabel}\r\n \r\n {heading && (\r\n

    {heading}

    \r\n )}\r\n
    \r\n {nutritionalInformationHtml && (\r\n
    \r\n \r\n {lang.nutritionalInformationLabel}\r\n \r\n {nutritionalInformationHtml && (\r\n \r\n )}\r\n
    \r\n )}\r\n {seasonHtml && (\r\n
    \r\n \r\n {lang.seasonLabel}\r\n \r\n {seasonHtml && }\r\n
    \r\n )}\r\n
    \r\n \r\n {stringHelper.format(lang.howToBuyLabel, heading)}\r\n \r\n
    \r\n {howToBuyLogo && (\r\n \r\n )}\r\n

    {lang.howToBuyText}

    \r\n
    \r\n
    \r\n
    \r\n {learnMoreLink && (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nSpecimenTeaserBlock.propTypes = {\r\n className: PropTypes.string,\r\n heading: PropTypes.string,\r\n image: PropTypes.exact(Image.propTypes),\r\n nutritionalInformationHtml: PropTypes.string,\r\n seasonHtml: PropTypes.string,\r\n howToBuyLogo: PropTypes.exact(Logo.propTypes),\r\n lang: PropTypes.shape({\r\n nutritionalInformationLabel: PropTypes.string.isRequired,\r\n seasonLabel: PropTypes.string.isRequired,\r\n originMattersLabel: PropTypes.string.isRequired,\r\n seafoodUsedInRecipeLabel: PropTypes.string.isRequired,\r\n howToBuyText: PropTypes.string.isRequired,\r\n howToBuyLabel: PropTypes.string.isRequired,\r\n }).isRequired,\r\n learnMoreLink: PropTypes.exact(Link.propTypes),\r\n};\r\n\r\nSpecimenTeaserBlock.viewModelMeta = {\r\n className: 'ignore',\r\n};\r\n\r\nexport default SpecimenTeaserBlock;\r\n","import React, { useState, useEffect, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport apiHelper from 'js/api-helper';\r\nimport formHelper from 'js/form-helper';\r\nimport useDidUpdateEffect from 'hooks/use-did-update-effect';\r\nimport useBreakpoints from 'hooks/use-breakpoints';\r\nimport PagerLang from 'components/models/pager-lang/pager-lang';\r\nimport ErrorMessage from 'components/error-message/error-message';\r\nimport StoryTeaser from 'components/story-teaser/story-teaser';\r\nimport storyTeaserSizes from 'components/story-teaser/story-teaser-sizes';\r\nimport NoResults from 'components/no-results/no-results';\r\nimport LoadingIndicator from 'components/loading-indicator/loading-indicator';\r\nimport Pager from 'components/pager/pager';\r\nimport storyTeaserOrientations from 'components/story-teaser/story-teaser-orientations';\r\nimport cn from 'classnames';\r\n\r\nconst pageNumberQueryParamName = 'page';\r\n\r\nconst getTeaserSize = (colCount, teasersCount) => {\r\n if (colCount > 1 && teasersCount === 1) {\r\n return storyTeaserSizes.medium;\r\n } else if (colCount > 1 && teasersCount > 1) {\r\n return storyTeaserSizes.small;\r\n }\r\n\r\n return storyTeaserSizes.large;\r\n};\r\n\r\nconst StoriesOverviewList = ({ loadItemsEndpoint, lang }) => {\r\n const [results, setResults] = useState(null);\r\n const [query, setQuery] = useState(formHelper.createQuery());\r\n const [showError, setShowError] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const { isMobile } = useBreakpoints(true);\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n const updateQuery = (updateFunc = q => {}) => {\r\n setQuery(q => {\r\n q = Object.assign({}, q);\r\n updateFunc(q);\r\n return q;\r\n });\r\n };\r\n\r\n const loadItems = () => {\r\n setShowError(false);\r\n setIsLoading(true);\r\n apiHelper\r\n .execute(loadItemsEndpoint, query)\r\n .then(results => {\r\n setResults(results);\r\n })\r\n .catch(() => {\r\n setShowError(true);\r\n })\r\n .finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const init = () => {\r\n updateQuery(q => formHelper.fillQueryFromPageQueryString(q));\r\n };\r\n\r\n useDidUpdateEffect(() => {\r\n formHelper.updatePageQueryString(query);\r\n loadItems();\r\n }, [query]);\r\n\r\n useDidUpdateEffect(() => {\r\n window.scrollTo({ top: 0, behavior: 'smooth' });\r\n }, [results?.pager?.page]);\r\n\r\n useEffect(() => {\r\n init();\r\n }, []);\r\n\r\n const teaserRows = useMemo(() => {\r\n const output = [];\r\n let index = 0;\r\n const source = results?.items;\r\n\r\n if (source && source.length > 0) {\r\n output.push([[source[index]]]);\r\n index++;\r\n\r\n while (index < source.length) {\r\n let pattern = [];\r\n const remainingItemsCount = source.length - index;\r\n\r\n if (remainingItemsCount < 3) {\r\n source[index] && pattern.push([source[index]]);\r\n source[index + 1] && pattern.push([source[index + 1]]);\r\n } else {\r\n if (index % 2 !== 0) {\r\n source[index] && pattern.push([source[index]]);\r\n source[index + 1] && pattern.push([source[index + 1]]);\r\n source[index + 2] && pattern[1].push(source[index + 2]);\r\n } else {\r\n source[index] && pattern.push([source[index]]);\r\n source[index + 1] && pattern[0].push(source[index + 1]);\r\n source[index + 2] && pattern.push([source[index + 2]]);\r\n }\r\n }\r\n\r\n output.push(pattern);\r\n index += 3;\r\n }\r\n }\r\n\r\n return output;\r\n }, [results?.items]);\r\n\r\n const onPageChange = page => {\r\n updateQuery(q => (q[pageNumberQueryParamName] = page));\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n {teaserRows && teaserRows.length > 0 ? (\r\n
    \r\n {teaserRows.map((row, rowIndex) => (\r\n
    \r\n {row &&\r\n row.map((col, colIndex) => {\r\n return (\r\n \r\n {col &&\r\n col.map(teaser => {\r\n return (\r\n \r\n 1\r\n ? storyTeaserOrientations.horizontal\r\n : storyTeaserOrientations.vertical\r\n }\r\n className=\"stories-overview-list__teaser\"\r\n />\r\n
    \r\n );\r\n })}\r\n
    \r\n );\r\n })}\r\n
    \r\n ))}\r\n
    \r\n ) : null}\r\n {results?.items && results.items.length === 0 && (\r\n \r\n )}\r\n {showError && }\r\n {results?.pager && (\r\n \r\n )}\r\n {isLoading && }\r\n \r\n \r\n );\r\n};\r\n\r\nStoriesOverviewList.propTypes = {\r\n loadItemsEndpoint: PropTypes.string.isRequired,\r\n lang: PropTypes.shape({\r\n errorMessage: PropTypes.string.isRequired,\r\n noListResultsHeading: PropTypes.string.isRequired,\r\n noListResultsText: PropTypes.string.isRequired,\r\n pager: PropTypes.shape(PagerLang.propTypes).isRequired,\r\n }),\r\n};\r\n\r\nexport default StoriesOverviewList;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Link from 'components/link';\r\nimport StoryTeaser from 'components/story-teaser/story-teaser';\r\nimport LinkButton, {\r\n sizes as linkButtonSizes,\r\n arrowDirections as linkButtonArrowDirections,\r\n} from 'components/link-button';\r\nimport storyTeaserSizes from 'components/story-teaser/story-teaser-sizes';\r\nimport cn from 'classnames';\r\n\r\nconst StoryTeasersBlock = ({ heading, story1, story2, showMoreLink }) => {\r\n const storySize =\r\n story1 && story2 ? storyTeaserSizes.medium : storyTeaserSizes.large;\r\n\r\n const storyHeadingTagLevel = heading ? 3 : 2;\r\n\r\n return (\r\n
    \r\n \r\n {heading &&

    {heading}

    }\r\n
    \r\n {story1 && (\r\n \r\n )}\r\n {story2 && (\r\n \r\n )}\r\n
    \r\n {showMoreLink && (\r\n \r\n )}\r\n
    \r\n \r\n );\r\n};\r\n\r\nStoryTeasersBlock.propTypes = {\r\n heading: PropTypes.string,\r\n story1: PropTypes.exact(StoryTeaser.propTypes),\r\n story2: PropTypes.exact(StoryTeaser.propTypes),\r\n showMoreLink: PropTypes.exact(Link.propTypes),\r\n};\r\n\r\nexport default StoryTeasersBlock;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Image from 'components/image';\r\nimport { Parallax } from 'react-parallax';\r\nimport ParallaxBgImage from 'components/parallax-bg-image/parallax-bg-image';\r\nimport ParallaxText from 'components/parallax-text/parallax-text';\r\n\r\nconst TextWithBackgroundBlock = ({\r\n text,\r\n textBackgroundColor,\r\n textColor,\r\n backgroundImage,\r\n}) => {\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n (\r\n <>\r\n {text && (\r\n \r\n )}\r\n \r\n )}\r\n >\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\nTextWithBackgroundBlock.propTypes = {\r\n text: PropTypes.string,\r\n textBackgroundColor: PropTypes.string,\r\n textColor: PropTypes.string,\r\n backgroundImage: PropTypes.exact(Image.propTypes),\r\n};\r\n\r\nexport default TextWithBackgroundBlock;\r\n","const req = require.context('./', true, /\\.svg$/);\r\n\r\nexport default req.keys().reduce((icons, filename) => {\r\n const id = filename.replace('./', '').replace('.svg', '');\r\n return { ...icons, [id]: req(filename) };\r\n}, {});\r\n","const ANIMATION_PERCENTAGE = {\r\n text: 0.4,\r\n};\r\n\r\nmodule.exports.default = module.exports.ANIMATION_PERCENTAGE =\r\n ANIMATION_PERCENTAGE;\r\n","/*\r\n * Minimal classList shim for IE 9\r\n * By Devon Govett\r\n * MIT LICENSE\r\n */\r\n\r\n// NOTE: https://gist.github.com/devongovett/1381839\r\n\r\nfunction activate() {\r\n if (\r\n !('classList' in document.documentElement) &&\r\n Object.defineProperty &&\r\n typeof HTMLElement !== 'undefined'\r\n ) {\r\n Object.defineProperty(HTMLElement.prototype, 'classList', {\r\n get: function () {\r\n var self = this;\r\n function update(fn) {\r\n return function (value) {\r\n var classes = self.className.split(/\\s+/),\r\n index = classes.indexOf(value);\r\n\r\n fn(classes, index, value);\r\n self.className = classes.join(' ');\r\n };\r\n }\r\n\r\n var ret = {\r\n add: update(function (classes, index, value) {\r\n ~index || classes.push(value);\r\n }),\r\n\r\n remove: update(function (classes, index) {\r\n ~index && classes.splice(index, 1);\r\n }),\r\n\r\n toggle: update(function (classes, index, value) {\r\n ~index ? classes.splice(index, 1) : classes.push(value);\r\n }),\r\n\r\n contains: function (value) {\r\n return !!~self.className.split(/\\s+/).indexOf(value);\r\n },\r\n\r\n item: function (i) {\r\n return self.className.split(/\\s+/)[i] || null;\r\n },\r\n };\r\n\r\n Object.defineProperty(ret, 'length', {\r\n get: function () {\r\n return self.className.split(/\\s+/).length;\r\n },\r\n });\r\n\r\n return ret;\r\n },\r\n });\r\n }\r\n}\r\n\r\nexport default {\r\n activate,\r\n};\r\n","import classListPolyfill from './polyfills/class-list';\r\n\r\n/* NOTE: https://www.html5rocks.com/en/mobile/touchandmouse/\r\n First, you have to be careful when designing more advanced touch interactions:\r\n when the user uses a mouse it will respond via a click event, but when the user\r\n touches the screen both touch and click events will occur.\r\n\r\n For a single click the order of events is:\r\n\r\n 1. touchstart\r\n 2. touchmove\r\n 3. touchend\r\n 4. mouseover\r\n 5. mousemove\r\n 6. mousedown\r\n 7. mouseup\r\n 8. click\r\n*/\r\n\r\nfunction activate() {\r\n let touchEndHappened = false;\r\n\r\n classListPolyfill.activate();\r\n\r\n const onMouseDown = () => {\r\n if (touchEndHappened) {\r\n return;\r\n }\r\n\r\n document.documentElement.classList.add('mouse-user');\r\n document.documentElement.classList.add('no-touchevents');\r\n document.documentElement.classList.remove('touchevents');\r\n };\r\n\r\n const onTouchEnd = () => {\r\n touchEndHappened = true;\r\n setTimeout(() => {\r\n touchEndHappened = false;\r\n }, 100);\r\n };\r\n\r\n const onTouchStart = () => {\r\n document.documentElement.classList.add('mouse-user');\r\n document.documentElement.classList.add('touchevents');\r\n document.documentElement.classList.remove('no-touchevents');\r\n };\r\n\r\n document.addEventListener('touchstart', onTouchStart);\r\n document.addEventListener('touchend', onTouchEnd);\r\n document.addEventListener('mousedown', onMouseDown);\r\n\r\n const keyCodeWhiteList = [9, 33, 34, 35, 36, 37, 38, 39, 40];\r\n\r\n document.addEventListener('keydown', e => {\r\n if (keyCodeWhiteList.indexOf(e.which) !== -1) {\r\n document.documentElement.classList.remove('mouse-user');\r\n }\r\n });\r\n}\r\n\r\nexport default {\r\n activate,\r\n};\r\n","import inputDetection from './input-detection';\r\n\r\ninputDetection.activate();\r\n","var ___EXPOSE_LOADER_IMPORT___ = require(\"-!../node_modules/babel-loader/lib/index.js!./app.components.js\");\nvar ___EXPOSE_LOADER_GET_GLOBAL_THIS___ = require(\"../node_modules/expose-loader/dist/runtime/getGlobalThis.js\");\nvar ___EXPOSE_LOADER_GLOBAL_THIS___ = ___EXPOSE_LOADER_GET_GLOBAL_THIS___;\nif (typeof ___EXPOSE_LOADER_GLOBAL_THIS___[\"AppComponents\"] === 'undefined') ___EXPOSE_LOADER_GLOBAL_THIS___[\"AppComponents\"] = ___EXPOSE_LOADER_IMPORT___;\nmodule.exports = ___EXPOSE_LOADER_IMPORT___;\n","var React = require('react');\n\nfunction ArrowDown (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fill\":\"#fff\",\"d\":\"m0 8 1.5-1.5L7 12V0h2v12l5.5-5.5L16 8l-8 8z\"}));\n}\n\nArrowDown.defaultProps = {\"width\":\"16\",\"height\":\"16\",\"fill\":\"none\"};\n\nmodule.exports = ArrowDown;\n\nArrowDown.default = ArrowDown;\n","var React = require('react');\n\nfunction ArrowLeft (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M2.97 12.61h29v3.6h-29z\",\"key\":0}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M-.008 13.998 13.993-.003l2.546 2.545L2.538 16.543z\",\"key\":1}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"m1.218 15.172 2.546-2.546 12.799 12.799-2.546 2.545z\",\"key\":2})]);\n}\n\nArrowLeft.defaultProps = {\"viewBox\":\"0 0 31.97 27.97\"};\n\nmodule.exports = ArrowLeft;\n\nArrowLeft.default = ArrowLeft;\n","var React = require('react');\n\nfunction ArrowRight (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"m18.233 0-3.42 3.375L27.35 15.75H0v4.5h27.349L14.814 32.625 18.233 36l18.232-18z\"}));\n}\n\nArrowRight.defaultProps = {\"fill\":\"none\",\"viewBox\":\"0 0 37 36\"};\n\nmodule.exports = ArrowRight;\n\nArrowRight.default = ArrowRight;\n","var React = require('react');\n\nfunction ArrowUp (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fill\":\"#fff\",\"d\":\"m0 8 1.5 1.5L7 4v12h2V4l5.5 5.5L16 8 8 0z\"}));\n}\n\nArrowUp.defaultProps = {\"width\":\"16\",\"height\":\"16\",\"fill\":\"none\"};\n\nmodule.exports = ArrowUp;\n\nArrowUp.default = ArrowUp;\n","var React = require('react');\n\nfunction Check (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"stroke\":\"currentColor\",\"strokeWidth\":\"2.5\",\"d\":\"M19 1.5 7.045 14.545 1 8.5\"}));\n}\n\nCheck.defaultProps = {\"width\":\"20\",\"height\":\"17\",\"fill\":\"none\"};\n\nmodule.exports = Check;\n\nCheck.default = Check;\n","var React = require('react');\n\nfunction ChevronDown (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"stroke\":\"currentColor\",\"strokeWidth\":\"2.5\",\"d\":\"m1 1.5 7 7 7-7\"}));\n}\n\nChevronDown.defaultProps = {\"width\":\"16\",\"height\":\"11\",\"fill\":\"none\"};\n\nmodule.exports = ChevronDown;\n\nChevronDown.default = ChevronDown;\n","var React = require('react');\n\nfunction ChevronUp (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"stroke\":\"currentColor\",\"strokeWidth\":\"2.5\",\"d\":\"m15 9.5-7-7-7 7\"}));\n}\n\nChevronUp.defaultProps = {\"width\":\"16\",\"height\":\"11\",\"fill\":\"none\"};\n\nmodule.exports = ChevronUp;\n\nChevronUp.default = ChevronUp;\n","var React = require('react');\n\nfunction CookingTime (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M12 0C5.383 0 0 5.383 0 12s5.383 12 12 12 12-5.383 12-12S18.617 0 12 0m0 21.601c-5.294 0-9.601-4.307-9.601-9.601S6.706 2.399 12 2.399 21.601 6.706 21.601 12 17.294 21.601 12 21.601\",\"key\":0}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M13.2 4.238h-2.4v8.421l.85.542 6.068 3.87 1.29-2.024-5.809-3.703z\",\"key\":1})]);\n}\n\nCookingTime.defaultProps = {\"width\":\"24\",\"height\":\"24\",\"fill\":\"none\"};\n\nmodule.exports = CookingTime;\n\nCookingTime.default = CookingTime;\n","var React = require('react');\n\nfunction Copy (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"path\",{\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"d\":\"M5 5h14v18H5z\",\"key\":0}),React.createElement(\"path\",{\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"d\":\"M1 20V1h15\",\"key\":1})]);\n}\n\nCopy.defaultProps = {\"width\":\"20\",\"height\":\"24\",\"fill\":\"none\"};\n\nmodule.exports = Copy;\n\nCopy.default = Copy;\n","var React = require('react');\n\nfunction DifficultyLevel (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M18 3c-2.297 0-4.477.494-6.451 1.367A11.94 11.94 0 0 0 6 3C2.686 3 0 5.684 0 9c0 2.903 1.718 5.324 4 5.879v5.12C4 20.55 4.45 21 5 21h14c.55 0 1-.45 1-1v-5.81c2.39-1.038 4-2.972 4-5.191 0-3.316-2.685-6-6-6m-2 10H9v2h7c.691 0 1.359-.073 2-.197V19H6v-5.691l-1.528-.373C3.062 12.592 2 10.9 2 8.999c0-2.205 1.794-4 4-4 1.149 0 2.264.204 3.317.574a16 16 0 0 0-2.63 2.114L8.1 9.1A13.9 13.9 0 0 1 18 4.999c2.207 0 4 1.795 4 4 0 2.17-2.747 4-6 4\"}));\n}\n\nDifficultyLevel.defaultProps = {\"width\":\"24\",\"height\":\"24\",\"fill\":\"none\"};\n\nmodule.exports = DifficultyLevel;\n\nDifficultyLevel.default = DifficultyLevel;\n","var React = require('react');\n\nfunction Facebook (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"m12.766 15.64.679-4.749H9.192V7.805c0-1.299.596-2.567 2.5-2.567h1.933V1.194S11.865.875 10.19.875c-3.505 0-5.798 2.278-5.798 6.396v3.62H.5v4.749h3.892v11.485h4.793V15.64z\"}));\n}\n\nFacebook.defaultProps = {\"fill\":\"none\",\"viewBox\":\"0 0 14 28\"};\n\nmodule.exports = Facebook;\n\nFacebook.default = Facebook;\n","var React = require('react');\n\nfunction Instagram (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M21.954 6.563a1.534 1.534 0 1 0 0 3.071c.845 0 1.535-.69 1.535-1.536 0-.845-.69-1.535-1.535-1.535m-6.839 1.973a6.47 6.47 0 0 0-6.46 6.46c0 3.56 2.9 6.46 6.46 6.46s6.46-2.9 6.46-6.46-2.9-6.46-6.46-6.46m0 10.599a4.14 4.14 0 0 1-4.14-4.139 4.14 4.14 0 0 1 4.14-4.139 4.14 4.14 0 0 1 4.139 4.14 4.14 4.14 0 0 1-4.14 4.138\",\"key\":0}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M20.24 28.118H9.76c-4.347 0-7.885-3.538-7.885-7.885V9.753c.007-4.34 3.545-7.878 7.892-7.878h10.48c4.347 0 7.885 3.538 7.885 7.885v10.48c0 4.347-3.538 7.885-7.884 7.885zM9.767 4.345A5.42 5.42 0 0 0 4.352 9.76v10.48a5.42 5.42 0 0 0 5.415 5.415h10.48a5.42 5.42 0 0 0 5.415-5.415V9.76a5.42 5.42 0 0 0-5.414-5.415z\",\"key\":1})]);\n}\n\nInstagram.defaultProps = {\"fill\":\"none\",\"viewBox\":\"0 0 30 30\"};\n\nmodule.exports = Instagram;\n\nInstagram.default = Instagram;\n","var React = require('react');\n\nfunction Linkedin (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.06 2.06 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065m1.782 13.019H3.555V9h3.564zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0z\"}));\n}\n\nLinkedin.defaultProps = {\"fill\":\"none\",\"aria-labelledby\":\"simpleicons-linkedin-icon\",\"viewBox\":\"0 0 24 24\"};\n\nmodule.exports = Linkedin;\n\nLinkedin.default = Linkedin;\n","var React = require('react');\n\nfunction Mail (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"stroke\":\"#00004F\",\"strokeWidth\":\"2\",\"d\":\"M1.334 1h21.333M1.334 1v16h21.333V1M1.334 1 12 9.889 22.667 1\"}));\n}\n\nMail.defaultProps = {\"width\":\"24\",\"height\":\"18\",\"fill\":\"none\"};\n\nmodule.exports = Mail;\n\nMail.default = Mail;\n","var React = require('react');\n\nfunction MenuClose (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M16.057 2.136 1.915 16.278.501 14.864 14.643.722z\",\"key\":0}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M14.642 16.278.5 2.136 1.914.722l14.142 14.142z\",\"key\":1})]);\n}\n\nMenuClose.defaultProps = {\"width\":\"17\",\"height\":\"17\",\"fill\":\"none\"};\n\nmodule.exports = MenuClose;\n\nMenuClose.default = MenuClose;\n","var React = require('react');\n\nfunction Menu (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M20.5 14H.5v-2h20zm0-6H.5V6h20zm0-6H.5V0h20z\"}));\n}\n\nMenu.defaultProps = {\"width\":\"21\",\"height\":\"14\",\"fill\":\"none\"};\n\nmodule.exports = Menu;\n\nMenu.default = Menu;\n","var React = require('react');\n\nfunction MinusSign (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M20 2H0V0h20z\"}));\n}\n\nMinusSign.defaultProps = {\"width\":\"20\",\"height\":\"2\",\"fill\":\"none\"};\n\nmodule.exports = MinusSign;\n\nMinusSign.default = MinusSign;\n","var React = require('react');\n\nfunction Phone (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"path\",{\"stroke\":\"#00004F\",\"strokeWidth\":\"2\",\"d\":\"M1.333 1.333h14.222v21.333H1.333z\",\"key\":0}),React.createElement(\"rect\",{\"width\":\"3.556\",\"height\":\"3.556\",\"x\":\"6.667\",\"y\":\"15.556\",\"fill\":\"#00004F\",\"rx\":\"1.778\",\"key\":1})]);\n}\n\nPhone.defaultProps = {\"width\":\"17\",\"height\":\"24\",\"fill\":\"none\"};\n\nmodule.exports = Phone;\n\nPhone.default = Phone;\n","var React = require('react');\n\nfunction PlayFilled (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fill\":\"#fff\",\"fillRule\":\"evenodd\",\"d\":\"M1.066 23.662a2.26 2.26 0 0 0 2.196.1l19.49-9.746A2.24 2.24 0 0 0 24 12c0-.86-.478-1.63-1.248-2.016L3.258.237a2.25 2.25 0 0 0-2.192.102A2.24 2.24 0 0 0 0 2.255v19.491a2.24 2.24 0 0 0 1.066 1.916\",\"clipRule\":\"evenodd\"}));\n}\n\nPlayFilled.defaultProps = {\"width\":\"24\",\"height\":\"24\",\"fill\":\"none\"};\n\nmodule.exports = PlayFilled;\n\nPlayFilled.default = PlayFilled;\n","var React = require('react');\n\nfunction Play (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fill\":\"#fff\",\"fillRule\":\"evenodd\",\"d\":\"m3 3 18 9-18 9zM1.066 23.662a2.26 2.26 0 0 0 2.196.1l19.49-9.746A2.24 2.24 0 0 0 24 12c0-.86-.478-1.63-1.248-2.016L3.258.237a2.25 2.25 0 0 0-2.192.102A2.24 2.24 0 0 0 0 2.255v19.491a2.24 2.24 0 0 0 1.066 1.916\",\"clipRule\":\"evenodd\"}));\n}\n\nPlay.defaultProps = {\"width\":\"24\",\"height\":\"24\",\"fill\":\"none\"};\n\nmodule.exports = Play;\n\nPlay.default = Play;\n","var React = require('react');\n\nfunction PlusSign (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M11 0v20H9V0z\",\"key\":0}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M20 11H0V9h20z\",\"key\":1})]);\n}\n\nPlusSign.defaultProps = {\"width\":\"20\",\"height\":\"20\",\"fill\":\"none\"};\n\nmodule.exports = PlusSign;\n\nPlusSign.default = PlusSign;\n","var React = require('react');\n\nfunction Rating (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"m12 5.467 1.566 3.212.555 1.14 1.244.183 3.5.515-2.534 2.5-.899.888.213 1.254.598 3.53-3.131-1.667L12 16.43l-1.112.592-3.131 1.666.598-3.53.212-1.253-.9-.888-2.532-2.5 3.5-.515 1.243-.182.556-1.141zM12 0 8.292 7.608 0 8.828l6 5.922-1.416 8.361L12 19.163l7.416 3.948L18 14.751l6-5.923-8.291-1.22z\"}));\n}\n\nRating.defaultProps = {\"width\":\"24\",\"height\":\"24\",\"fill\":\"none\"};\n\nmodule.exports = Rating;\n\nRating.default = Rating;\n","var React = require('react');\n\nfunction Search (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M17.932 16.274a10.05 10.05 0 0 0 2.16-6.22C20.091 4.522 15.58 0 10.031 0S0 4.52 0 10.055C0 15.589 4.51 20.11 10.032 20.11c2.214 0 4.428-.768 6.205-2.165L22.277 24 24 22.274zm-7.9 1.452c-4.182 0-7.6-3.425-7.6-7.616 0-4.192 3.418-7.617 7.6-7.617s7.599 3.425 7.599 7.617c0 4.191-3.417 7.616-7.599 7.616\"}));\n}\n\nSearch.defaultProps = {\"width\":\"24\",\"height\":\"24\",\"fill\":\"none\"};\n\nmodule.exports = Search;\n\nSearch.default = Search;\n","var React = require('react');\n\nfunction Share (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"path\",{\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"d\":\"M1 12v11.5h20V12\",\"key\":0}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M11.7 1.988v14.52H9.885V1.987z\",\"key\":1}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M11.004.5 18 7.496 16.717 8.78 9.72 1.784z\",\"key\":2}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M11.7 2.363 5.283 8.78 4 7.497l6.417-6.417z\",\"key\":3})]);\n}\n\nShare.defaultProps = {\"width\":\"22\",\"height\":\"25\",\"fill\":\"none\"};\n\nmodule.exports = Share;\n\nShare.default = Share;\n","var React = require('react');\n\nfunction StarEmpty (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"stroke\":\"#fff\",\"strokeWidth\":\"2\",\"d\":\"m10.696 10.253.522-.077.231-.474L15 2.416l3.551 7.286.232.474.522.077 7.965 1.172-5.772 5.697-.37.365.086.514 1.36 8.027-7.104-3.781-.47-.25-.47.25-7.104 3.781 1.36-8.027.087-.514-.37-.365-5.773-5.697z\"}));\n}\n\nStarEmpty.defaultProps = {\"width\":\"30\",\"height\":\"28\",\"fill\":\"none\"};\n\nmodule.exports = StarEmpty;\n\nStarEmpty.default = StarEmpty;\n","var React = require('react');\n\nfunction StarFull (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fill\":\"#FFAE9C\",\"d\":\"m15 .133-4.45 9.13L.6 10.727l7.2 7.106-1.7 10.034 8.9-4.738 8.9 4.738-1.7-10.034 7.2-7.106-9.95-1.464z\"}));\n}\n\nStarFull.defaultProps = {\"width\":\"30\",\"height\":\"28\",\"fill\":\"none\"};\n\nmodule.exports = StarFull;\n\nStarFull.default = StarFull;\n","var React = require('react');\n\nfunction Twitter (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M27.009 3.434c-.83.405-1.753.648-2.656.811.427-.078 1.056-.903 1.306-1.243.385-.51.703-1.093.88-1.722.024-.045.042-.11 0-.15-.055-.026-.098-.013-.14.013a13 13 0 0 1-3.146 1.29c-.091.025-.158 0-.22-.06-.09-.11-.176-.216-.274-.3a5.6 5.6 0 0 0-1.527-1.002 5.05 5.05 0 0 0-2.338-.406 5.2 5.2 0 0 0-2.217.674 5.9 5.9 0 0 0-1.79 1.564 6 6 0 0 0-1.068 2.298c-.183.805-.17 1.603-.055 2.421.018.138 0 .15-.11.138-4.33-.687-7.908-2.343-10.82-5.897-.129-.157-.196-.157-.3.013-1.27 2.042-.653 5.327.935 6.944.213.216.427.432.665.628-.085.02-1.142-.104-2.088-.628-.128-.085-.19-.04-.202.118-.012.222 0 .425.037.66.244 2.076 1.582 3.993 3.42 4.74.22.098.458.183.696.228-.415.099-.85.17-2.046.066-.146-.033-.208.052-.146.203.897 2.63 2.845 3.416 4.298 3.861.196.04.391.04.587.085-.013.02-.025.02-.037.04-.482.791-2.156 1.374-2.937 1.668-1.417.53-2.962.773-4.458.616-.238-.04-.293-.033-.354 0-.067.046-.006.104.067.17.305.216.61.406.928.589.953.543 1.942.968 2.98 1.276 5.362 1.584 11.395.419 15.419-3.861 3.157-3.364 4.268-8.005 4.268-12.651 0-.184.202-.282.318-.38.824-.661 1.484-1.453 2.1-2.337.141-.196.141-.373.141-.445V3.44c0-.072 0-.052-.11 0z\"}));\n}\n\nTwitter.defaultProps = {\"fill\":\"none\",\"viewBox\":\"0 0 28 24\"};\n\nmodule.exports = Twitter;\n\nTwitter.default = Twitter;\n","var map = {\n\t\"./arrow-down.svg\": 3210,\n\t\"./arrow-left.svg\": 5409,\n\t\"./arrow-right.svg\": 2748,\n\t\"./arrow-up.svg\": 8345,\n\t\"./check.svg\": 2782,\n\t\"./chevron-down.svg\": 9404,\n\t\"./chevron-up.svg\": 1639,\n\t\"./cooking-time.svg\": 8908,\n\t\"./copy.svg\": 4317,\n\t\"./difficulty-level.svg\": 4028,\n\t\"./facebook.svg\": 1874,\n\t\"./instagram.svg\": 1446,\n\t\"./linkedin.svg\": 5272,\n\t\"./mail.svg\": 1515,\n\t\"./menu-close.svg\": 2924,\n\t\"./menu.svg\": 5775,\n\t\"./minus-sign.svg\": 232,\n\t\"./phone.svg\": 3790,\n\t\"./play-filled.svg\": 2977,\n\t\"./play.svg\": 3324,\n\t\"./plus-sign.svg\": 1616,\n\t\"./rating.svg\": 9417,\n\t\"./search.svg\": 7286,\n\t\"./share.svg\": 3907,\n\t\"./star-empty.svg\": 3818,\n\t\"./star-full.svg\": 3964,\n\t\"./twitter.svg\": 9887\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 9477;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + {\"42\":\"reactPlayerTwitch\",\"173\":\"reactPlayerVimeo\",\"328\":\"reactPlayerDailyMotion\",\"340\":\"reactPlayerWistia\",\"353\":\"reactPlayerPreview\",\"392\":\"reactPlayerVidyard\",\"446\":\"reactPlayerYouTube\",\"458\":\"reactPlayerFilePlayer\",\"463\":\"reactPlayerKaltura\",\"570\":\"reactPlayerMixcloud\",\"627\":\"reactPlayerStreamable\",\"723\":\"reactPlayerMux\",\"887\":\"reactPlayerFacebook\",\"979\":\"reactPlayerSoundCloud\"}[chunkId] + \".\" + {\"42\":\"80c0cdff0bbe01866b7a\",\"173\":\"6bf8ec2cf92219171717\",\"328\":\"fc7d29bf4d1783a9d73c\",\"340\":\"bf9e116fc7ae27303dc7\",\"353\":\"5ccca83c337917a22f10\",\"392\":\"5e831b63d463d9e03e10\",\"446\":\"b0f157c08744c7cc7e87\",\"458\":\"67d26071f60e181aca9c\",\"463\":\"3c698a17e5a477a213a2\",\"570\":\"061cd8abfa86451a5ee3\",\"627\":\"84b799c8d249438048aa\",\"723\":\"fdc642befcb5caa0363e\",\"887\":\"64f935d142d50fdd6d7a\",\"979\":\"9899c567abc6a5559c99\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/Marketsites/Frontend/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t818: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunkB2C_Marketsites_redesign\"] = globalThis[\"webpackChunkB2C_Marketsites_redesign\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\n__webpack_require__.O(undefined, [121], () => (__webpack_require__(8624)))\n__webpack_require__.O(undefined, [121], () => (__webpack_require__(6472)))\n__webpack_require__.O(undefined, [121], () => (__webpack_require__(5348)))\n__webpack_require__.O(undefined, [121], () => (__webpack_require__(4709)))\nvar __webpack_exports__ = __webpack_require__.O(undefined, [121], () => (__webpack_require__(273)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","icons","require","Icon","_ref","className","name","style","useFill","React","cn","focusable","propTypes","PropTypes","Object","keys","isRequired","ButtonBase","url","text","tabindex","openInNewTab","onClick","ActionButton","iconName","isActive","isDisabled","ariaAttributes","RootTag","_extends","href","target","rel","tabIndex","disabled","assign","icon","ariaAttributesModel","transforms","downFit","downFill","skipForResizeExtensions","queryParameters","width","undefined","height","transform","center","checkImageCanBeResized","extension","split","pop","trim","toLowerCase","some","item","serializeCenter","x","y","concat","buildResizeUrl","centerX","centerY","resizeUrl","replaceQueryParameters","resizeQuery","queryHash","CryptoJs","replace","hash","calcImageWidth","containerWidth","resolution","Math","ceil","window","devicePixelRatio","calcImageHeight","containerHeight","Transforms","createHtmlImage","Image","constructor","arguments","_defineProperty","imageResizer","this","props","src","fill","canBeResized","autoTransform","defaultSrc","ratio","containerOffsetWidth","containerOffsetHeight","container","offsetWidth","offsetHeight","fit","autoCalcWidthOnly","autoCalcHeightOnly","skipByWidth","state","skipByHeight","resolutionByWidth","widthResolution","heightResolution","newWidth","newHeight","newRatio","setState","previousState","newSrc","focusPoint","firstPreloadImage","firstLoadWidth","firstLoadHeight","firstLoadSrc","preloadImage","debounce","handleResize","onFirstSrcPreloaded","onSrcPreloaded","checkElementIsHidden","element","offsetParent","isHidden","getHiddenRoot","parent","parentElement","onObservedChange","debouncedHandleResize","componentDidMount","self","onload","addEventListener","observer","MutationObserver","call","observe","attributes","getSnapshotBeforeUpdate","prevProps","componentWillUnmount","removeEventListener","disconnect","componentDidUpdate","render","fluid","backgroundImage","backgroundPosition","ref","c","alt","_Image","values","small","medium","large","ArticleTeaser","image","heading","size","articleTeaserSizes","headingTagLevel","HeadingTag","PoorText","dangerouslySetInnerHTML","__html","ArticleTeasersBlock","introHtml","articles","map","article","index","itemSIze","articleIndex","numberOfArticles","length","ArticleTeaserSizes","calcItemSize","key","themes","dark","light","Button","theme","useToggle","initiallyActive","setIsActive","toggle","useCallback","activate","deactivate","LoadingIndicator","EmbeddedVideoBlock","caption","previewImage","videoUrl","lang","playing","setPlaying","useState","isLoading","setIsLoading","onPlayBtnClick","playVideoButtonAriaLabel","LoadingIndicatorThemes","Fragment","ReactPlayer","controls","onStart","onPlayerStart","onError","onPlayerError","ErrorMessage","FilterHeading","asLabelFor","TagName","htmlFor","Logo","imageClass","rootTagProps","_objectSpread","LinkBase","Link","onFocus","onBlur","sizes","normal","arrowDirections","right","left","LinkButton","forwardRef","arrowDirection","reverseIconDirectionOnHover","leftDirection","linePositions","OriginMatters","linePosition","calculatedLineOffset","minWidth","isRunningOnClient","matchMedia","matches","s","m","l","ipadPro","xl","useBreakpoints","initiallyDesktop","initiallyTablet","initiallyMobile","initiallyDesktopLargerThanIpad","initiallyDesktopExtraLarge","isDesktop","isTablet","isMobile","isDesktopLargerThanIpad","isDesktopExtraLarge","brekpointsStarted","onResize","breakpoints","useEffect","FooterBanner","link","imageWidth","setImageWidth","innerWidth","LinkButtonThemes","linkButtonSizes","originMattersLabel","OriginMattersLinePositions","IconButton","SocialLink","rest","_objectWithoutProperties","_excluded","facebook","twitter","instagram","linkedin","RichText","Footer","banner","logo","column1","column2","socialLinks","privacy","role","textHtml","links","i","PageHeading","calculateInterpolatedValue","abstractUnit","maxValue","maxAbstractUnit","minValue","safeMinValue","ParallaxHeroBackground","backgroundColor","useParallaxOnMobile","Parallax","position","overflow","strength","renderLayer","percentage","maxBorderWidth","boxShadowWidth","boxShadow","getNumericCssPropertyValue","propName","parseInt","getComputedStyle","document","documentElement","getPropertyValue","ANIMATION_STEPS","animationSteps","animationCurrentStep","setAnimationCurrentStep","animationStepName","setTimeout","FrontPageHero","useAnimationStepSwitcher","imageColPadding","paddingLeft","MenuLink","MainMenu","SecondaryMenu","SearchFormLang","searchLabel","searchInputAriaLabel","searchFormAriaLabel","searchBtnAriaLabel","searchHint","prefixesDictionary","prefix","SearchForm","query","searchPageUrl","displayTopLabel","onSearch","value","setValue","isFocused","setIsFocused","uniqueSearchFormId","useMemo","idHelper","searchInput","useRef","isFilled","useImperativeHandle","clearInput","focusInput","current","focus","action","method","onSubmit","e","preventDefault","id","placeholder","onChange","val","onInputFocus","onInputBlur","quickSearchFormId","QuickSearch","isSearchExpanded","onSearchExpand","searchFormRef","expandSearch","color","searchFormSizes","searchFormThemes","useEvent","eventName","eventHandler","dependencies","useEscape","callback","event","which","contains","headerMenuId","bodyActiveClass","Header","mainMenu","quickSearch","secondaryMenu","isAnimated","setIsAnimated","headerAnimationTimeout","isMenuActive","toggleMenu","deactivateMenu","activateSearch","deactivateSearch","headerRef","closeHeader","useClickOutside","body","classList","add","remove","FocusTrap","active","focusTrapOptions","clickOutsideDeactivates","header_animated","closeMenuLabel","menuLabel","header__menu_opened","string","_len","args","Array","_key","match","number","HowToBuyBlock","specimenName","howToBuyLogo","howToBuyHeading","stringHelper","howToBuyText","HowToPageHero","allGuidesLink","linkButtonArrowDirections","label","HowToStepBlock","stepLabel","IconLabel","iconAriaLabel","ImageBlock","ImageCollageBlock","leftTopImage","leftBottomImage","rightTopImage","rightBottomImage","ImageWithTextAndBgColorBlock","imagePosition","imageCaption","amount","plural","singular","IngredientName","pluralOrSingularText","IngredientUnit","unitText","IngredientAmount","aui","iau","iua","Ingredient","printOrder","unit","printOrders","Ingredients","increaseNumberOfServingsAriaLabel","decreaseNumberOfServingsAriaLabel","sections","servingsDefaultNumber","servingNumber","currentSections","setCurrentSections","currentServings","setCurrentServings","updateSections","newSections","data","JSON","parse","stringify","forEach","section","ingredients","ingredient","calcAmount","tmpSrt","toFixed","parseFloat","servingsLabel","type","min","isNaN","handleServingsInputChange","v","onKeyDown","onPaste","sanitizedText","clipboardData","getData","updatedText","slice","selectionStart","selectionEnd","increaseServings","decreaseServings","ingredientsHeading","sectionIndex","ingredientIndex","itemProp","ParallaxText","textBackgroundColor","textColor","textAnimationPercentage","ANIMATION_PERCENTAGE","transition","bottom","backgroundSize","LongArticlePageHero","allStoriesLink","imageHeight","setImageHeight","heroRef","pageHeroMaxHeight","FilterItem","selected","Filter","allItemsLabel","items","PagerLang","nextLabel","prevLabel","pageLabel","jumpBackwardAriaLabel","jumpForwardAriaLabel","RateRecipeResult","rating","ratingValue","confirmation","RecipeDetails","cookingTime","difficultyLevel","cookingTimeIconAriaLabel","difficultyLevelIconAriaLabel","ratingIconAriaLabel","useFocusableDetails","commonIconLabelProps","horizontal","vertical","RecipeTeaser","ariaRoledescription","orientation","orientations","imageHolderRef","isHorizontalOrientation","uniqueRecipeTeaserHeadingId","recipeDetailsSizes","RecipeOverviewResults","filters","totalCount","pager","page","totalPages","ReactComponent","componentName","iconPositions","ToggleButton","activeIconName","iconPosition","leftIconPosition","ToggleFilter","_ref2","filterItems","setFilterItems","clickedItem","updatedItems","onFilterClick","SearchResults","pageTypeFilter","hits","StoryTeaser","categoryLabel","storyTeaserSizes","storyTeaserOrientations","StoriesOverviewResults","NoResults","NotFoundPage","homePageButtonText","homePageUrl","useDidUpdateEffect","fn","inputs","didMountRef","Pager","pageRangeDisplayed","onPageChange","pagerSelectRef","pagerWrapperRef","pagerRef","currentPage","setCurrentPage","pagerSelectOptions","from","_","firstPagerItem","querySelector","parentNode","insertBefore","nextSibling","newPage","handlePageChange","option","ReactPaginate","pageCount","forcePage","previousLabel","ariaLabelBuilder","pageIndex","breakAriaLabels","forward","backward","hrefAllControls","breakClassName","disableInitialCallback","marginPagesDisplayed","containerClassName","pageClassName","pageLinkClassName","previousClassName","nextClassName","ParallaxBgImage","imageClassName","top","PreparationBlock","LinkHeadingTag","QuoteBlock","author","authorTitle","QuoteWithBackgroundBlock","quoteBackgroundColor","errorMessageTopic","messageTopic","onTopic","topic","func","PubSub","message","send","onErrorMessage","onMessage","sendErrorMessage","_ref3","sendMessage","_ref4","defaultFetchOptions","headers","Accept","credentials","parseResponse","response","json","then","handleUserMessages","messageToUser","success","messenger","handleNotOk","ok","error","Error","statusText","status","handleResponse","payload","handleFetchError","Promise","reject","request","options","fetch","catch","endpoint","indexOf","resolve","post","RateRecipeItem","hint","onMouseEnter","onMouseLeave","ratingTopic","newRating","token","COOKIE_DATA_NAME","RateRecipe","recipeId","currentRating","submitUrl","isRatedByUser","setIsRatedByUser","showError","setShowError","cookiesData","setCookiesData","selectedItem","setSelectedItem","isHintShown","setIsHintShown","rateConfirmation","setRateConfirmation","isTemporaryDisabled","setIsTemporaryDisabled","setSelectedItemByValue","newSelectedItem","find","isItemActive","itemRating","onItemClick","apiHelper","rateValue","newRecipeId","currentCookieData","addCookieData","newCookieData","Cookies","set","expires","recipeMessageBus","recipeCookiesString","get","recipeCookies","youHaveAlreadyRatedMessage","rateThisRecipeLabel","errorText","adjustSelectWidthBasedOnSelectedOption","select","fontWeight","fontSize","fontFamily","paddingRight","innerText","span","createElement","innerHTML","visibility","currentHiddenEl","replaceWith","appendChild","calculateDropdownPanelPosition","dropdownPanel","windowWidth","elementRect","getBoundingClientRect","KEY_NAMES","RecipeFilter","_currentItems$find","currentItems","setCurrentItems","allItem","setAllItem","focusedButtonIndex","setFocusedButtonIndex","recipePanelRef","recipeFilterRef","mobileSelectorRef","focusedButtonIndexRef","closeFilter","uniqueRecipeFilterPanelId","filterPanelColumnCount","columnCount","itemCount","handleKeyDown","focusedButtonIndexRefCurrent","querySelectorAll","handleWindowResize","updateItem","targetItem","getToggleButtonText","buttonText","matchedFilterItem","RecipeFilters","onFilterChange","tagName","filter","SimplePageHero","children","_queryValueAsArray","isArray","setQueryValue","_getUndefinedIfEmpty","createQuery","updateFilterFromQuery","fieldName","queryValues","includes","updateQueryFromFilter","filterValues","filterSelectedValues","newValues","Set","textInput","currentValue","join","newUrl","location","toString","history","replaceState","title","parsedQuery","fromQueryString","search","pageNumberQueryParamName","RecipeList","_results$pager","loadItemsEndpoint","results","setResults","setQuery","formHelper","filtersOpenedOnMobile","setFiltersOpenedOnMobile","uniqueRecipeFiltersPanelId","initLoadedFilter","updateQuery","updateFunc","q","loadItems","requestQuery","responseFilters","restResponseResults","prevResults","finally","scrollTo","behavior","searchForm","searchHitsText","emptySearchTermText","hideFilterOptionsLabel","showFilterOptionsLabel","filterLabel","recipe","recipeTeaserOrientations","noListResultsHeading","noListResultsText","errorMessage","RecipePageHero","allRecipesLink","setCurrentRating","msg","RecipeTeasersBlockSliderNavButton","RecipeTeasersBlock","showAllLink","recipes","currentSlideIndex","setCurrentSlideIndex","isMounted","setIsMounted","slidesLength","sliderRef","sliderStepsRef","sliderSettings","customPaging","dotsClass","dots","infinite","speed","slidesToShow","slidesToScroll","nextArrow","nextButtonText","sliderArrowDirections","prevArrow","prevButtonText","afterChange","currentSlideNode","carouselAriaRoleDescription","translateY","Slider","teaserAriaRoleDescription","el","carouselAriaLabel","RichTextBlock","SearchPage","searchEndpoint","_results$pageTypeFilt","_results$pageTypeFilt2","Block","Components","console","noResultsHeading","noResultsText","SearchTeaser","ShareRecipe","showUrlCopiedConfirmation","setShowUrlCopiedConfirmation","isNativeShareSupported","setIsNativeShareSupported","navigator","share","onShareButtonClick","shareButtonText","onCopyUrlButtonClick","currentPageURL","clipboard","writeText","copyUrlButtonText","copyUrlConfirmationHeading","copyUrlConfirmationText","ShareAndRateRecipePanel","shareRecipe","rateRecipe","ShortArticlePageHero","SkipToMain","SpeciesQuickOverviewBlockSpecie","bgColor","stayActiveOnScrollOrResize","setContainerBgColor","onSpecieActive","setActive","randomMobileImageAlign","setRandomMobileImageAlign","specieLinkRef","specieRef","isDesktopRef","scrollDirection","useScrollDirection","setScrollDirection","prevScrollY","scrollY","handleScroll","currentScrollY","scrollDirectionRef","stayActiveOnScrollOrResizeRef","updateIsActive","onSpecieLinkMouseEnter","onSpecieLinkMouseLeave","onSpecieLinkFocus","onSpecieLinkBlur","onWindowResizeOrScroll","viewportVerticalCenterPosition","innerHeight","isItemInViewportCenter","specieLink","mobileImageAlign","randomIndex","floor","random","SpeciesQuickOverviewBlock","species","remainingLinks","exploreAllLink","containerBgColor","lastActiveSpecieIndex","setLastActiveSpecieIndex","specie","SpecimenPageHeroFact","SpecimenPageHero","allSpeciesLink","nutritionalInformationHtml","catchRangeHtml","seasonHtml","nutritionalInformationLabel","catchRangeLabel","seasonLabel","SpecimenSearchTeaser","SpecimenTeaserBlock","learnMoreLink","seafoodUsedInRecipeLabel","howToBuyLabel","StoriesOverviewList","teaserRows","output","source","push","pattern","row","rowIndex","col","colIndex","teaser","colCount","teasersCount","getTeaserSize","StoryTeasersBlock","story1","story2","showMoreLink","storySize","storyHeadingTagLevel","TextWithBackgroundBlock","req","reduce","filename","module","exports","defineProperty","HTMLElement","prototype","update","classes","ret","splice","touchEndHappened","classListPolyfill","onTouchStart","onTouchEnd","onMouseDown","keyCodeWhiteList","inputDetection","___EXPOSE_LOADER_IMPORT___","___EXPOSE_LOADER_GLOBAL_THIS___","ArrowDown","defaultProps","default","ArrowLeft","ArrowRight","ArrowUp","Check","ChevronDown","ChevronUp","CookingTime","Copy","DifficultyLevel","Facebook","Instagram","Linkedin","Mail","MenuClose","Menu","MinusSign","Phone","PlayFilled","Play","PlusSign","Rating","Search","Share","StarEmpty","StarFull","Twitter","webpackContext","webpackContextResolve","__webpack_require__","o","code","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","O","result","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","every","r","n","getter","__esModule","d","a","getPrototypeOf","obj","t","mode","ns","create","def","getOwnPropertyNames","definition","enumerable","f","chunkId","all","promises","u","miniCssF","g","globalThis","Function","prop","hasOwnProperty","done","script","needAttach","scripts","getElementsByTagName","getAttribute","charset","timeout","nc","setAttribute","onScriptComplete","prev","onerror","clearTimeout","doneFns","removeChild","bind","head","Symbol","toStringTag","nmd","paths","p","installedChunks","installedChunkData","promise","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}