{"version":3,"file":"client.c84d741ec2ec9bd6fd00.js","mappings":"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","sources":["webpack://Fiskesprell-Web/webpack/runtime/chunk loaded","webpack://Fiskesprell-Web/./source/assets/inline-icons/clock-big.svg","webpack://Fiskesprell-Web/./source/app.components-exposed.js","webpack://Fiskesprell-Web/./source/assets/inline-icons/instagram.svg","webpack://Fiskesprell-Web/./source/assets/inline-icons/facebook.svg","webpack://Fiskesprell-Web/./source/assets/inline-icons/youtube.svg","webpack://Fiskesprell-Web/./source/assets/inline-icons/cook-big.svg","webpack://Fiskesprell-Web/./source/assets/inline-icons/play.svg","webpack://Fiskesprell-Web/./source/assets/inline-icons/clock.svg","webpack://Fiskesprell-Web/./source/assets/inline-icons/menu.svg","webpack://Fiskesprell-Web/./source/assets/inline-icons/icons.js","webpack://Fiskesprell-Web/./source/assets/inline-icons/cook.svg","webpack://Fiskesprell-Web/./source/js/polyfills/class-list.js","webpack://Fiskesprell-Web/./source/js/input-detection.js","webpack://Fiskesprell-Web/./source/js/input-detection-loader.js","webpack://Fiskesprell-Web/./source/assets/inline-icons/arrow.svg","webpack://Fiskesprell-Web/./source/assets/inline-icons/close.svg","webpack://Fiskesprell-Web/./source/assets/inline-icons/search.svg","webpack://Fiskesprell-Web/./source/assets/inline-icons/print.svg","webpack://Fiskesprell-Web/./source/assets/inline-icons/ sync \\.svg$","webpack://Fiskesprell-Web/./source/components/rich-text/rich-text.jsx","webpack://Fiskesprell-Web/./source/components/accordion-block/accordion-block.jsx","webpack://Fiskesprell-Web/./source/components/link/link.jsx","webpack://Fiskesprell-Web/./source/components/breadcrumbs/breadcrumbs.jsx","webpack://Fiskesprell-Web/./source/js/image-resizer.js","webpack://Fiskesprell-Web/./source/components/image/image.jsx","webpack://Fiskesprell-Web/./source/components/contact/contact.jsx","webpack://Fiskesprell-Web/./source/components/contact-information/contact-information.jsx","webpack://Fiskesprell-Web/./source/components/contact-us/contact-us.jsx","webpack://Fiskesprell-Web/./source/components/content-area/content-area.jsx","webpack://Fiskesprell-Web/./source/components/course-content/course-part-link.jsx","webpack://Fiskesprell-Web/./source/components/spinner/spinner.jsx","webpack://Fiskesprell-Web/./source/components/course-content/course-content.jsx","webpack://Fiskesprell-Web/./source/hooks/use-event.js","webpack://Fiskesprell-Web/./source/hooks/use-click-outside.js","webpack://Fiskesprell-Web/./source/components/drop-down/drop-down.jsx","webpack://Fiskesprell-Web/./source/components/embeddable-form-block/embeddable-form-block.jsx","webpack://Fiskesprell-Web/./source/components/icon/icon.jsx","webpack://Fiskesprell-Web/./source/components/quick-search-panel/quick-search-panel.jsx","webpack://Fiskesprell-Web/./source/components/link-button/link-button.jsx","webpack://Fiskesprell-Web/./source/components/error-block/error-block.jsx","webpack://Fiskesprell-Web/./source/components/factbox/factbox.jsx","webpack://Fiskesprell-Web/./source/components/factbox-with-text-block/factbox-with-text-block.jsx","webpack://Fiskesprell-Web/./source/components/social-link/social-link.jsx","webpack://Fiskesprell-Web/./source/components/footer/footer.jsx","webpack://Fiskesprell-Web/./source/js/id-helper.js","webpack://Fiskesprell-Web/./source/components/front-page-hero/getting-started-link.jsx","webpack://Fiskesprell-Web/./source/components/front-page-hero/front-page-hero.jsx","webpack://Fiskesprell-Web/./source/components/full-width-banner/full-width-banner.jsx","webpack://Fiskesprell-Web/./source/components/getting-started-teaser/getting-started-teaser.jsx","webpack://Fiskesprell-Web/./source/components/getting-started-list/getting-started-list.jsx","webpack://Fiskesprell-Web/./source/hooks/use-toggle.js","webpack://Fiskesprell-Web/./source/components/menu-link/menu-link.jsx","webpack://Fiskesprell-Web/./source/components/main-menu/main-menu.jsx","webpack://Fiskesprell-Web/./source/components/header/header-menu.jsx","webpack://Fiskesprell-Web/./source/components/header/header.jsx","webpack://Fiskesprell-Web/./source/components/image-with-caption/image-with-caption.jsx","webpack://Fiskesprell-Web/./source/components/image-gallery/image-gallery.jsx","webpack://Fiskesprell-Web/./source/components/image-with-text-block/image-with-text-block.jsx","webpack://Fiskesprell-Web/./source/components/ingredients/ingredient-base.jsx","webpack://Fiskesprell-Web/./source/components/ingredients/ingredients.jsx","webpack://Fiskesprell-Web/./source/js/messenger.js","webpack://Fiskesprell-Web/./source/components/message/message.jsx","webpack://Fiskesprell-Web/./source/components/modal/modal.jsx","webpack://Fiskesprell-Web/./source/components/pages-list/pages-list-item.jsx","webpack://Fiskesprell-Web/./source/components/select-option/select-option.jsx","webpack://Fiskesprell-Web/./source/components/tag-filter/tag-filter.jsx","webpack://Fiskesprell-Web/./source/js/analytics.js","webpack://Fiskesprell-Web/./source/js/api-helper.js","webpack://Fiskesprell-Web/./source/js/form-helper.js","webpack://Fiskesprell-Web/./source/components/pages-list/pages-list.jsx","webpack://Fiskesprell-Web/./source/components/print-button/print-button.jsx","webpack://Fiskesprell-Web/./source/components/questionnaire/answer.jsx","webpack://Fiskesprell-Web/./source/components/questionnaire/question.jsx","webpack://Fiskesprell-Web/./source/components/questionnaire/questionnaire.jsx","webpack://Fiskesprell-Web/./source/components/react-component/react-component.jsx","webpack://Fiskesprell-Web/./source/components/recipe-page-details/recipe-page-details.jsx","webpack://Fiskesprell-Web/./source/components/search/category-filter.jsx","webpack://Fiskesprell-Web/./source/hooks/use-is-mounted.js","webpack://Fiskesprell-Web/./source/components/search/search-query-input.jsx","webpack://Fiskesprell-Web/./source/components/search/search-form.jsx","webpack://Fiskesprell-Web/./source/components/teaser/teaser.jsx","webpack://Fiskesprell-Web/./source/components/search-result/search-result.jsx","webpack://Fiskesprell-Web/./source/js/string-helper.js","webpack://Fiskesprell-Web/./source/components/search/search.jsx","webpack://Fiskesprell-Web/./source/components/see-also-links/see-also-links.jsx","webpack://Fiskesprell-Web/./source/components/simple-list/simple-list-teaser.jsx","webpack://Fiskesprell-Web/./source/components/simple-list/simple-list.jsx","webpack://Fiskesprell-Web/./source/components/teasers-list/teasers-list.jsx","webpack://Fiskesprell-Web/./source/components/video/video.jsx","webpack://Fiskesprell-Web/webpack/bootstrap","webpack://Fiskesprell-Web/webpack/runtime/compat get default export","webpack://Fiskesprell-Web/webpack/runtime/define property getters","webpack://Fiskesprell-Web/webpack/runtime/global","webpack://Fiskesprell-Web/webpack/runtime/hasOwnProperty shorthand","webpack://Fiskesprell-Web/webpack/runtime/make namespace object","webpack://Fiskesprell-Web/webpack/runtime/node module decorator","webpack://Fiskesprell-Web/webpack/runtime/jsonp chunk loading","webpack://Fiskesprell-Web/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 React = require('react');\n\nfunction ClockBig (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"defs\",{\"key\":0},React.createElement(\"style\",null,\".b{fill:#00568a}\")),React.createElement(\"path\",{\"d\":\"M1003.052 207.883v15.341h15.241a15.534 15.534 0 0 0-15.241-15.341\",\"style\":{\"fill\":\"#00568a\",\"opacity\":\".2\"},\"transform\":\"translate(-986.967 -207.235)\",\"key\":1}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M17.724 15.989a1.736 1.736 0 1 1-1.736-1.736 1.736 1.736 0 0 1 1.736 1.736\",\"className\":\"b\",\"key\":2}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M15.988 15.203a.785.785 0 0 1-.785-.785v-3.916a.785.785 0 0 1 1.57 0v3.916a.785.785 0 0 1-.785.785M23.893 16.773h-7.12a.785.785 0 0 1 0-1.57h7.12a.785.785 0 1 1 0 1.57M16.085 5.657a.786.786 0 0 1-.785-.786V3.457a.785.785 0 1 1 1.57 0v1.414a.786.786 0 0 1-.785.786\",\"className\":\"b\",\"key\":3}),React.createElement(\"rect\",{\"width\":\"1.571\",\"height\":\"2.986\",\"fill\":\"currentColor\",\"className\":\"b\",\"rx\":\".785\",\"transform\":\"translate(15.3 26.318)\",\"key\":4}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M16.085 5.657a.786.786 0 0 1-.785-.786V3.457a.785.785 0 1 1 1.57 0v1.414a.786.786 0 0 1-.785.786\",\"className\":\"b\",\"key\":5}),React.createElement(\"rect\",{\"width\":\"1.571\",\"height\":\"2.986\",\"fill\":\"currentColor\",\"className\":\"b\",\"rx\":\".785\",\"transform\":\"translate(15.3 26.318)\",\"key\":6}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M10.922 7.044a.785.785 0 0 1-1.073-.288l-.707-1.225a.786.786 0 0 1 1.361-.785l.707 1.225a.785.785 0 0 1-.288 1.073\",\"className\":\"b\",\"key\":7}),React.createElement(\"rect\",{\"width\":\"1.571\",\"height\":\"2.986\",\"fill\":\"currentColor\",\"className\":\"b\",\"rx\":\".785\",\"transform\":\"rotate(-30 57.544 -25.721)\",\"key\":8}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M7.14 10.824a.785.785 0 0 1-1.073.288l-1.225-.707a.785.785 0 0 1 .785-1.36l1.226.707a.786.786 0 0 1 .287 1.072\",\"className\":\"b\",\"key\":9}),React.createElement(\"rect\",{\"width\":\"1.571\",\"height\":\"2.986\",\"fill\":\"currentColor\",\"className\":\"b\",\"rx\":\".785\",\"transform\":\"rotate(-60 31.227 -10.42)\",\"key\":10}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M5.756 15.99a.785.785 0 0 1-.785.785H3.557a.786.786 0 1 1 0-1.571h1.417a.786.786 0 0 1 .782.786\",\"className\":\"b\",\"key\":11}),React.createElement(\"rect\",{\"width\":\"2.986\",\"height\":\"1.571\",\"fill\":\"currentColor\",\"className\":\"b\",\"rx\":\".785\",\"transform\":\"translate(26.414 15.204)\",\"key\":12}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M7.14 21.154a.785.785 0 0 1-.287 1.073l-1.226.707a.786.786 0 0 1-.785-1.361l1.225-.707a.785.785 0 0 1 1.073.288\",\"className\":\"b\",\"key\":13}),React.createElement(\"rect\",{\"width\":\"2.986\",\"height\":\"1.571\",\"fill\":\"currentColor\",\"className\":\"b\",\"rx\":\".785\",\"transform\":\"rotate(-30 31.25 -40.903)\",\"key\":14}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M10.922 24.936a.785.785 0 0 1 .287 1.073l-.707 1.225a.786.786 0 0 1-1.361-.785l.707-1.226a.785.785 0 0 1 1.074-.287\",\"className\":\"b\",\"key\":15}),React.createElement(\"rect\",{\"width\":\"2.986\",\"height\":\"1.571\",\"fill\":\"currentColor\",\"className\":\"b\",\"rx\":\".785\",\"transform\":\"rotate(-60 16.046 -14.488)\",\"key\":16}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M15.988 31.977a15.988 15.988 0 1 1 15.989-15.988 16.007 16.007 0 0 1-15.989 15.988m0-30.406a14.418 14.418 0 1 0 14.418 14.418A14.433 14.433 0 0 0 15.988 1.571\",\"className\":\"b\",\"key\":17})]);\n}\n\nClockBig.defaultProps = {\"width\":\"40\",\"height\":\"40\",\"viewBox\":\"0 0 31.977 31.977\"};\n\nmodule.exports = ClockBig;\n\nClockBig.default = ClockBig;\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 Instagram (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"d\":\"M20 11.982a10.255 10.255 0 1 0 10.259 10.256A10.24 10.24 0 0 0 20 11.982m0 16.923a6.667 6.667 0 1 1 6.667-6.667A6.68 6.68 0 0 1 20 28.905m13.071-17.342a2.392 2.392 0 1 1-2.392-2.392 2.387 2.387 0 0 1 2.392 2.392m6.792 2.428c-.152-3.2-.884-6.043-3.231-8.381s-5.177-3.07-8.381-3.231c-3.3-.187-13.2-.187-16.5 0-3.2.152-6.034.884-8.381 3.222S.3 10.777.135 13.982c-.187 3.3-.187 13.2 0 16.5.152 3.2.884 6.043 3.231 8.381s5.177 3.07 8.381 3.231c3.3.187 13.2.187 16.5 0 3.2-.152 6.043-.884 8.381-3.231s3.07-5.177 3.231-8.381c.187-3.3.187-13.192 0-16.494ZM35.6 34.028a6.75 6.75 0 0 1-3.8 3.8c-2.633 1.044-8.881.8-11.791.8s-9.167.232-11.791-.8a6.75 6.75 0 0 1-3.8-3.8c-1.044-2.633-.8-8.881-.8-11.791s-.232-9.167.8-11.791a6.75 6.75 0 0 1 3.8-3.8c2.633-1.044 8.881-.8 11.791-.8s9.167-.232 11.791.8a6.75 6.75 0 0 1 3.8 3.8c1.044 2.633.8 8.881.8 11.791s.241 9.163-.8 11.791\",\"style\":{\"fill\":\"#fff\"},\"transform\":\"translate(.005 -2.238)\"}));\n}\n\nInstagram.defaultProps = {\"width\":\"40.009\",\"height\":\"40\",\"viewBox\":\"0 0 40.009 40\"};\n\nmodule.exports = Instagram;\n\nInstagram.default = Instagram;\n","var React = require('react');\n\nfunction Facebook (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"d\":\"M13.257 21.48v-7.639h6.161V10a10.05 10.05 0 0 1 2.7-7.08A8.59 8.59 0 0 1 28.657 0h6.12v7.64h-6.12a1.35 1.35 0 0 0-1.079.66 2.68 2.68 0 0 0-.48 1.62v3.92h7.679v7.639H27.1V40h-7.68V21.48Z\",\"style\":{\"fill\":\"#fff\"},\"transform\":\"translate(-13.257)\"}));\n}\n\nFacebook.defaultProps = {\"width\":\"21.52\",\"height\":\"40\",\"viewBox\":\"0 0 21.52 40\"};\n\nmodule.exports = Facebook;\n\nFacebook.default = Facebook;\n","var React = require('react');\n\nfunction Youtube (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"d\":\"M52.976 13.333c0-4.687-3.448-8.458-7.708-8.458C39.5 4.6 33.613 4.5 27.6 4.5h-1.872c-6 0-11.9.1-17.666.375-4.25 0-7.7 3.791-7.7 8.479A152 152 0 0 0 0 24.478q-.015 5.562.354 11.135C.354 40.3 3.8 44.1 8.052 44.1c6.062.281 12.281.406 18.6.4q9.5.031 18.6-.4c4.26 0 7.708-3.8 7.708-8.489.25-3.719.365-7.427.354-11.145q.037-5.561-.338-11.133M21.562 34.7V14.229l15.1 10.229Z\",\"style\":{\"fill\":\"#fff\"},\"transform\":\"translate(0 -4.5)\"}));\n}\n\nYoutube.defaultProps = {\"width\":\"53.323\",\"height\":\"40\",\"viewBox\":\"0 0 53.323 40\"};\n\nmodule.exports = Youtube;\n\nYoutube.default = Youtube;\n","var React = require('react');\n\nfunction CookBig (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"defs\",{\"key\":0},React.createElement(\"style\",null,\".b{fill:#00568a}\")),React.createElement(\"path\",{\"d\":\"M1178.051 234.325a4.8 4.8 0 0 0-6.381-4.54c0-.09.014-.178.014-.268 0-.075-.009-.147-.011-.22-6.929 6.088-17.222 7.637-17.222 7.637l.275 5.138s12.125-6.412 19.616 1V239a4.81 4.81 0 0 0 3.709-4.675\",\"style\":{\"fill\":\"#00568a\",\"opacity\":\".2\"},\"transform\":\"translate(-1151.045 -221.444)\",\"key\":1}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M23.295 21.536a.73.73 0 0 1-.415-.13 18.3 18.3 0 0 0-9.583-2.548A17.57 17.57 0 0 0 3.829 21.4a.732.732 0 0 1-.849-1.193 18.8 18.8 0 0 1 10.317-2.813 19.4 19.4 0 0 1 10.415 2.808.732.732 0 0 1-.417 1.333Z\",\"className\":\"b\",\"key\":2}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M13.67 38.901h-.746a10.26 10.26 0 0 1-10.073-8.382 3.406 3.406 0 0 1-.177-6.686v-7.922a5.63 5.63 0 0 1-2.673-4.674 5.56 5.56 0 0 1 5.585-5.541 8.072 8.072 0 0 1 15.759 1.713 5.4 5.4 0 0 1 .853-.067 5.539 5.539 0 0 1 1.831 10.767v5.726a3.34 3.34 0 0 1 2.566 3.325 3.41 3.41 0 0 1-2.851 3.359 10.256 10.256 0 0 1-10.074 8.382M3.484 29.093a.73.73 0 0 1 .726.642 8.79 8.79 0 0 0 8.713 7.7h.746a8.79 8.79 0 0 0 8.712-7.7.74.74 0 0 1 .752-.642c.019 0 .057 0 .087.008a1.944 1.944 0 0 0 1.909-1.94 1.85 1.85 0 0 0-1.833-1.942.73.73 0 0 1-.731-.732v-6.926a.73.73 0 0 1 .564-.712 4.074 4.074 0 1 0-2.265-7.815.733.733 0 0 1-.97-.719l.008-.132c0-.037.005-.073.005-.11A6.608 6.608 0 0 0 6.851 6.629a.73.73 0 0 1-.8.567 4 4 0 0 0-.506-.035 4.08 4.08 0 0 0-4.085 4.077 4.18 4.18 0 0 0 2.283 3.605.73.73 0 0 1 .39.647v9a.73.73 0 0 1-.732.732 1.941 1.941 0 0 0-.034 3.882c.03 0 .058-.006.087-.008Z\",\"className\":\"b\",\"key\":3}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M3.406 18.869a.488.488 0 0 1-.3-.876c.135-.1 3.363-2.478 10.24-2.478a.488.488 0 1 1 0 .976c-6.518 0-9.622 2.259-9.653 2.282a.5.5 0 0 1-.287.096M22.869 18.868a.5.5 0 0 1-.292-.1 11.4 11.4 0 0 0-3.3-1.45.488.488 0 1 1 .273-.937 12 12 0 0 1 3.617 1.607.488.488 0 0 1-.295.877ZM4.056 11.327a1 1 0 0 1-.08 0 .73.73 0 0 1-.649-.807 2.18 2.18 0 0 1 2.4-1.915.732.732 0 0 1-.092 1.46.73.73 0 0 0-.847.614.73.73 0 0 1-.732.648M10.197 5.896a.8.8 0 0 1-.225-.035.73.73 0 0 1-.472-.921 3.447 3.447 0 0 1 4.364-2.2.732.732 0 0 1-.388 1.411 2.045 2.045 0 0 0-2.582 1.238.73.73 0 0 1-.697.507M6.729 25.718a.488.488 0 0 1-.1-.966l3.737-.744a.488.488 0 1 1 .191.956l-3.738.745a.5.5 0 0 1-.09.009M9.806 27.124a1.208 1.208 0 1 1-1.208-1.208 1.21 1.21 0 0 1 1.208 1.208M19.411 25.718a.5.5 0 0 1-.1-.009l-3.738-.745a.488.488 0 1 1 .191-.956l3.737.744a.488.488 0 0 1-.095.966ZM16.179 27.082a1.208 1.208 0 1 0 1.208-1.209 1.21 1.21 0 0 0-1.208 1.209M13.352 34.684a4.07 4.07 0 0 1-3.787-2.065.488.488 0 0 1 .881-.419 3.13 3.13 0 0 0 2.906 1.508 2.79 2.79 0 0 0 2.744-1.474.488.488 0 1 1 .909.354 3.73 3.73 0 0 1-3.653 2.096M13.868 30.32h-1.484a.488.488 0 1 1 0-.976h1.484a.488.488 0 1 1 0 .976M3.404 25.218a.732.732 0 0 1-.16-1.446c2.647-.6 9.688-2.765 10.463-5.585a.732.732 0 0 1 1.412.388c-.505 1.837-2.637 3.515-6.337 4.989A39 39 0 0 1 3.566 25.2a.7.7 0 0 1-.162.018M23.296 25.217a.8.8 0 0 1-.173-.02 11.63 11.63 0 0 1-7.624-6.545.732.732 0 0 1 1.358-.546 10.33 10.33 0 0 0 6.611 5.668.732.732 0 0 1-.172 1.443\",\"className\":\"b\",\"key\":4})]);\n}\n\nCookBig.defaultProps = {\"width\":\"40\",\"height\":\"48\",\"viewBox\":\"0 0 27.737 38.901\"};\n\nmodule.exports = CookBig;\n\nCookBig.default = CookBig;\n","var React = require('react');\n\nfunction Play (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"defs\",{\"key\":0},React.createElement(\"style\",null,\".a{fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;stroke-width:5px}\")),React.createElement(\"path\",{\"d\":\"M142.5 72.5a70 70 0 1 1-70-70 70 70 0 0 1 70 70\",\"className\":\"a\",\"key\":1}),React.createElement(\"path\",{\"d\":\"M58.198 44.148 100.726 72.5l-42.528 28.348Z\",\"className\":\"a\",\"key\":2})]);\n}\n\nPlay.defaultProps = {\"width\":\"145\",\"height\":\"145\",\"style\":{\"fill\":\"none\",\"stroke\":\"#fff\",\"strokeWidth\":\"5px\"},\"viewBox\":\"0 0 145 145\"};\n\nmodule.exports = Play;\n\nPlay.default = Play;\n","var React = require('react');\n\nfunction Clock (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"defs\",{\"key\":0},React.createElement(\"style\",null,\".b{fill:#00568a}\")),React.createElement(\"path\",{\"d\":\"M1003.052 207.883v15.341h15.241a15.534 15.534 0 0 0-15.241-15.341\",\"style\":{\"fill\":\"#00568a\",\"opacity\":\".2\"},\"transform\":\"translate(-986.967 -207.235)\",\"key\":1}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M17.724 15.989a1.736 1.736 0 1 1-1.736-1.736 1.736 1.736 0 0 1 1.736 1.736\",\"className\":\"b\",\"key\":2}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M15.988 15.203a.785.785 0 0 1-.785-.785v-3.916a.785.785 0 0 1 1.57 0v3.916a.785.785 0 0 1-.785.785M23.893 16.773h-7.12a.785.785 0 0 1 0-1.57h7.12a.785.785 0 1 1 0 1.57M16.085 5.657a.786.786 0 0 1-.785-.786V3.457a.785.785 0 1 1 1.57 0v1.414a.786.786 0 0 1-.785.786\",\"className\":\"b\",\"key\":3}),React.createElement(\"rect\",{\"width\":\"1.571\",\"height\":\"2.986\",\"fill\":\"currentColor\",\"className\":\"b\",\"rx\":\".785\",\"transform\":\"translate(15.3 26.318)\",\"key\":4}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M16.085 5.657a.786.786 0 0 1-.785-.786V3.457a.785.785 0 1 1 1.57 0v1.414a.786.786 0 0 1-.785.786\",\"className\":\"b\",\"key\":5}),React.createElement(\"rect\",{\"width\":\"1.571\",\"height\":\"2.986\",\"fill\":\"currentColor\",\"className\":\"b\",\"rx\":\".785\",\"transform\":\"translate(15.3 26.318)\",\"key\":6}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M10.922 7.044a.785.785 0 0 1-1.073-.288l-.707-1.225a.786.786 0 0 1 1.361-.785l.707 1.225a.785.785 0 0 1-.288 1.073\",\"className\":\"b\",\"key\":7}),React.createElement(\"rect\",{\"width\":\"1.571\",\"height\":\"2.986\",\"fill\":\"currentColor\",\"className\":\"b\",\"rx\":\".785\",\"transform\":\"rotate(-30 57.544 -25.721)\",\"key\":8}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M7.14 10.824a.785.785 0 0 1-1.073.288l-1.225-.707a.785.785 0 0 1 .785-1.36l1.226.707a.786.786 0 0 1 .287 1.072\",\"className\":\"b\",\"key\":9}),React.createElement(\"rect\",{\"width\":\"1.571\",\"height\":\"2.986\",\"fill\":\"currentColor\",\"className\":\"b\",\"rx\":\".785\",\"transform\":\"rotate(-60 31.227 -10.42)\",\"key\":10}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M5.756 15.99a.785.785 0 0 1-.785.785H3.557a.786.786 0 1 1 0-1.571h1.417a.786.786 0 0 1 .782.786\",\"className\":\"b\",\"key\":11}),React.createElement(\"rect\",{\"width\":\"2.986\",\"height\":\"1.571\",\"fill\":\"currentColor\",\"className\":\"b\",\"rx\":\".785\",\"transform\":\"translate(26.414 15.204)\",\"key\":12}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M7.14 21.154a.785.785 0 0 1-.287 1.073l-1.226.707a.786.786 0 0 1-.785-1.361l1.225-.707a.785.785 0 0 1 1.073.288\",\"className\":\"b\",\"key\":13}),React.createElement(\"rect\",{\"width\":\"2.986\",\"height\":\"1.571\",\"fill\":\"currentColor\",\"className\":\"b\",\"rx\":\".785\",\"transform\":\"rotate(-30 31.25 -40.903)\",\"key\":14}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M10.922 24.936a.785.785 0 0 1 .287 1.073l-.707 1.225a.786.786 0 0 1-1.361-.785l.707-1.226a.785.785 0 0 1 1.074-.287\",\"className\":\"b\",\"key\":15}),React.createElement(\"rect\",{\"width\":\"2.986\",\"height\":\"1.571\",\"fill\":\"currentColor\",\"className\":\"b\",\"rx\":\".785\",\"transform\":\"rotate(-60 16.046 -14.488)\",\"key\":16}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M15.988 31.977a15.988 15.988 0 1 1 15.989-15.988 16.007 16.007 0 0 1-15.989 15.988m0-30.406a14.418 14.418 0 1 0 14.418 14.418A14.433 14.433 0 0 0 15.988 1.571\",\"className\":\"b\",\"key\":17})]);\n}\n\nClock.defaultProps = {\"width\":\"31.977\",\"height\":\"31.977\",\"viewBox\":\"0 0 31.977 31.977\"};\n\nmodule.exports = Clock;\n\nClock.default = Clock;\n","var React = require('react');\n\nfunction Menu (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",{\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"4\"},React.createElement(\"path\",{\"d\":\"M0 2h42M0 16h42M0 30h29\"})));\n}\n\nMenu.defaultProps = {\"width\":\"42\",\"height\":\"36\",\"className\":\"icon\",\"viewBox\":\"0 0 42 29\"};\n\nmodule.exports = Menu;\n\nMenu.default = Menu;\n","const req = require.context('./', true, /\\.svg$/);\r\n\r\nconst icons = req.keys().reduce((icons, filename) => {\r\n const id = filename.replace('./', '').replace('.svg', '');\r\n const component = req(filename);\r\n\r\n // After updating the React version we get this warning (Support for defaultProps will be removed from function components in a future major release.\r\n // Use JavaScript default parameters instead), because the module https://www.npmjs.com/package/svg-react-loader which was updated long time ago\r\n // generates React components where default svg params used as defaultProps. The solution is to avoid using defaultProps by passing a custom object instead\r\n if (component.defaultProps) {\r\n component.customDefaultProps = component.defaultProps;\r\n delete component.defaultProps;\r\n }\r\n\r\n return { ...icons, [id]: component };\r\n}, {});\r\n\r\nexport default icons;\r\n","var React = require('react');\n\nfunction Cook (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"defs\",{\"key\":0},React.createElement(\"style\",null,\".b{fill:#00568a}\")),React.createElement(\"path\",{\"d\":\"M1178.051 234.325a4.8 4.8 0 0 0-6.381-4.54c0-.09.014-.178.014-.268 0-.075-.009-.147-.011-.22-6.929 6.088-17.222 7.637-17.222 7.637l.275 5.138s12.125-6.412 19.616 1V239a4.81 4.81 0 0 0 3.709-4.675\",\"style\":{\"fill\":\"#00568a\",\"opacity\":\".2\"},\"transform\":\"translate(-1151.045 -221.444)\",\"key\":1}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M23.295 21.536a.73.73 0 0 1-.415-.13 18.3 18.3 0 0 0-9.583-2.548A17.57 17.57 0 0 0 3.829 21.4a.732.732 0 0 1-.849-1.193 18.8 18.8 0 0 1 10.317-2.813 19.4 19.4 0 0 1 10.415 2.808.732.732 0 0 1-.417 1.333Z\",\"className\":\"b\",\"key\":2}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M13.67 38.901h-.746a10.26 10.26 0 0 1-10.073-8.382 3.406 3.406 0 0 1-.177-6.686v-7.922a5.63 5.63 0 0 1-2.673-4.674 5.56 5.56 0 0 1 5.585-5.541 8.072 8.072 0 0 1 15.759 1.713 5.4 5.4 0 0 1 .853-.067 5.539 5.539 0 0 1 1.831 10.767v5.726a3.34 3.34 0 0 1 2.566 3.325 3.41 3.41 0 0 1-2.851 3.359 10.256 10.256 0 0 1-10.074 8.382M3.484 29.093a.73.73 0 0 1 .726.642 8.79 8.79 0 0 0 8.713 7.7h.746a8.79 8.79 0 0 0 8.712-7.7.74.74 0 0 1 .752-.642c.019 0 .057 0 .087.008a1.944 1.944 0 0 0 1.909-1.94 1.85 1.85 0 0 0-1.833-1.942.73.73 0 0 1-.731-.732v-6.926a.73.73 0 0 1 .564-.712 4.074 4.074 0 1 0-2.265-7.815.733.733 0 0 1-.97-.719l.008-.132c0-.037.005-.073.005-.11A6.608 6.608 0 0 0 6.851 6.629a.73.73 0 0 1-.8.567 4 4 0 0 0-.506-.035 4.08 4.08 0 0 0-4.085 4.077 4.18 4.18 0 0 0 2.283 3.605.73.73 0 0 1 .39.647v9a.73.73 0 0 1-.732.732 1.941 1.941 0 0 0-.034 3.882c.03 0 .058-.006.087-.008Z\",\"className\":\"b\",\"key\":3}),React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M3.406 18.869a.488.488 0 0 1-.3-.876c.135-.1 3.363-2.478 10.24-2.478a.488.488 0 1 1 0 .976c-6.518 0-9.622 2.259-9.653 2.282a.5.5 0 0 1-.287.096M22.869 18.868a.5.5 0 0 1-.292-.1 11.4 11.4 0 0 0-3.3-1.45.488.488 0 1 1 .273-.937 12 12 0 0 1 3.617 1.607.488.488 0 0 1-.295.877ZM4.056 11.327a1 1 0 0 1-.08 0 .73.73 0 0 1-.649-.807 2.18 2.18 0 0 1 2.4-1.915.732.732 0 0 1-.092 1.46.73.73 0 0 0-.847.614.73.73 0 0 1-.732.648M10.197 5.896a.8.8 0 0 1-.225-.035.73.73 0 0 1-.472-.921 3.447 3.447 0 0 1 4.364-2.2.732.732 0 0 1-.388 1.411 2.045 2.045 0 0 0-2.582 1.238.73.73 0 0 1-.697.507M6.729 25.718a.488.488 0 0 1-.1-.966l3.737-.744a.488.488 0 1 1 .191.956l-3.738.745a.5.5 0 0 1-.09.009M9.806 27.124a1.208 1.208 0 1 1-1.208-1.208 1.21 1.21 0 0 1 1.208 1.208M19.411 25.718a.5.5 0 0 1-.1-.009l-3.738-.745a.488.488 0 1 1 .191-.956l3.737.744a.488.488 0 0 1-.095.966ZM16.179 27.082a1.208 1.208 0 1 0 1.208-1.209 1.21 1.21 0 0 0-1.208 1.209M13.352 34.684a4.07 4.07 0 0 1-3.787-2.065.488.488 0 0 1 .881-.419 3.13 3.13 0 0 0 2.906 1.508 2.79 2.79 0 0 0 2.744-1.474.488.488 0 1 1 .909.354 3.73 3.73 0 0 1-3.653 2.096M13.868 30.32h-1.484a.488.488 0 1 1 0-.976h1.484a.488.488 0 1 1 0 .976M3.404 25.218a.732.732 0 0 1-.16-1.446c2.647-.6 9.688-2.765 10.463-5.585a.732.732 0 0 1 1.412.388c-.505 1.837-2.637 3.515-6.337 4.989A39 39 0 0 1 3.566 25.2a.7.7 0 0 1-.162.018M23.296 25.217a.8.8 0 0 1-.173-.02 11.63 11.63 0 0 1-7.624-6.545.732.732 0 0 1 1.358-.546 10.33 10.33 0 0 0 6.611 5.668.732.732 0 0 1-.172 1.443\",\"className\":\"b\",\"key\":4})]);\n}\n\nCook.defaultProps = {\"width\":\"27.737\",\"height\":\"38.901\",\"viewBox\":\"0 0 27.737 38.901\"};\n\nmodule.exports = Cook;\n\nCook.default = Cook;\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 React = require('react');\n\nfunction Arrow (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"stroke\":\"currentColor\",\"d\":\"m123.671 446.184 4.743 4.743 6.64 6.64-11.383 11.383\",\"style\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"4px\"},\"transform\":\"translate(-122.257 -444.769)\"}));\n}\n\nArrow.defaultProps = {\"width\":\"15.626\",\"height\":\"25.595\",\"viewBox\":\"0 0 15.626 25.595\"};\n\nmodule.exports = Arrow;\n\nArrow.default = Arrow;\n","var React = require('react');\n\nfunction Close (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",{\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"4\"},React.createElement(\"path\",{\"d\":\"m1.414 1.414 29.698 29.698M31.112 1.414 1.414 31.112\"})));\n}\n\nClose.defaultProps = {\"width\":\"32.527\",\"height\":\"32.527\",\"viewBox\":\"0 0 32.527 32.527\"};\n\nmodule.exports = Close;\n\nClose.default = Close;\n","var React = require('react');\n\nfunction Search (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",{\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"4\",\"transform\":\"translate(-31.212 -446.886)\"},[React.createElement(\"circle\",{\"cx\":\"12.105\",\"cy\":\"12.105\",\"r\":\"12.105\",\"transform\":\"translate(37.383 448.886)\",\"key\":0}),React.createElement(\"path\",{\"d\":\"m32.627 477.938 8.475-8.475\",\"key\":1})]));\n}\n\nSearch.defaultProps = {\"width\":\"32.381\",\"height\":\"32.467\",\"viewBox\":\"0 0 32.381 32.467\"};\n\nmodule.exports = Search;\n\nSearch.default = Search;\n","var React = require('react');\n\nfunction Print (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",{\"transform\":\"translate(-1856.308 -36.584)\"},[React.createElement(\"path\",{\"d\":\"M1891.42 50.58h-27.45l-.06-13h27.45zM1863.97 62.52h27.45v16.49h-27.45z\",\"className\":\"st0\",\"style\":{\"fill\":\"none\",\"stroke\":\"#114778\",\"strokeWidth\":\"1.6\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"key\":0}),React.createElement(\"path\",{\"d\":\"M1857.3 50.58v20.94h6.67v-9h27.45v9h6.67V50.58z\",\"className\":\"st1\",\"style\":{\"opacity\":\".2\",\"fill\":\"#114778\"},\"key\":1}),React.createElement(\"path\",{\"d\":\"M1857.3 50.58v20.94h6.67v-9h27.45v9h6.67V50.58z\",\"className\":\"st0\",\"style\":{\"fill\":\"none\",\"stroke\":\"#114778\",\"strokeWidth\":\"1.6\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"key\":2}),React.createElement(\"circle\",{\"cx\":\"1891.42\",\"cy\":\"56.39\",\"r\":\".53\",\"className\":\"st2\",\"style\":{\"fill\":\"none\",\"stroke\":\"#114778\",\"strokeWidth\":\"2.053\",\"strokeMiterlimit\":\"10\"},\"key\":3}),React.createElement(\"path\",{\"d\":\"M1868.13 68.5h19.08M1868.13 71.52h19.08M1868.13 74.54h14.37\",\"className\":\"st3\",\"style\":{\"fill\":\"none\",\"stroke\":\"#114778\",\"strokeWidth\":\"1.027\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"key\":4})]));\n}\n\nPrint.defaultProps = {\"xmlSpace\":\"preserve\",\"viewBox\":\"0 0 42.7 43.4\"};\n\nmodule.exports = Print;\n\nPrint.default = Print;\n","var map = {\n\t\"./arrow.svg\": 6701,\n\t\"./clock-big.svg\": 57,\n\t\"./clock.svg\": 4876,\n\t\"./close.svg\": 7066,\n\t\"./cook-big.svg\": 2631,\n\t\"./cook.svg\": 6426,\n\t\"./facebook.svg\": 1874,\n\t\"./instagram.svg\": 1446,\n\t\"./menu.svg\": 5775,\n\t\"./play.svg\": 3324,\n\t\"./print.svg\": 8527,\n\t\"./search.svg\": 7286,\n\t\"./youtube.svg\": 2229\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;","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport cn from 'classnames';\r\n\r\nconst RichText = ({ text, className, id }) => {\r\n return !text ? null : (\r\n \r\n );\r\n};\r\n\r\nRichText.propTypes = {\r\n id: PropTypes.string,\r\n text: PropTypes.string,\r\n className: PropTypes.string,\r\n};\r\n\r\nRichText.viewModelMeta = {\r\n id: 'ignore',\r\n className: 'ignore',\r\n};\r\n\r\nexport default RichText;\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Accordion as AccordionComponent,\r\n AccordionItem,\r\n AccordionItemHeading,\r\n AccordionItemButton,\r\n AccordionItemPanel,\r\n AccordionItemState,\r\n} from 'react-accessible-accordion';\r\nimport RichText from 'components/rich-text';\r\n\r\nconst AccordionBlock = ({ title, items }) => {\r\n return (\r\n
\r\n
\r\n {title &&

{title}

}\r\n \r\n {items.length > 0 &&\r\n items.map((item, index) => {\r\n return (\r\n \r\n \r\n {({ expanded }) => (\r\n \r\n \r\n \r\n
\r\n {item.name}\r\n
\r\n
\r\n
\r\n \r\n {expanded && item.textHtml && (\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\nAccordionBlock.propTypes = {\r\n title: PropTypes.string,\r\n items: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n textHtml: PropTypes.string.isRequired,\r\n })\r\n ).isRequired,\r\n};\r\n\r\nexport default AccordionBlock;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\n\r\nconst ariaCurrentTypes = {\r\n page: 'page',\r\n step: 'step',\r\n location: 'location',\r\n true: 'true',\r\n};\r\n\r\nconst Link = ({\r\n ariaCurrent,\r\n className,\r\n openInNewTab = false,\r\n url,\r\n text,\r\n tabindex = null,\r\n ariaLabelledBy,\r\n ariaDescribedBy,\r\n}) => (\r\n \r\n {text}\r\n \r\n);\r\n\r\nLink.propTypes = {\r\n className: PropTypes.string,\r\n openInNewTab: PropTypes.bool,\r\n url: PropTypes.string,\r\n text: PropTypes.string,\r\n tabindex: PropTypes.number,\r\n ariaCurrent: PropTypes.oneOf(Object.values(ariaCurrentTypes)),\r\n ariaLabelledBy: PropTypes.string,\r\n ariaDescribedBy: PropTypes.string,\r\n};\r\n\r\nLink.viewModelMeta = {\r\n className: 'ignore',\r\n tabindex: 'ignore',\r\n ariaCurrent: 'ignore',\r\n ariaLabelledBy: 'ignore',\r\n ariaDescribedBy: 'ignore',\r\n};\r\n\r\nLink.ariaCurrentTypes = ariaCurrentTypes;\r\n\r\nexport default Link;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Link from 'components/link';\r\nimport cn from 'classnames';\r\n\r\nconst Breadcrumbs = ({ links, ariaLabel = 'Brødsmulesti', className }) => {\r\n return links ? (\r\n \r\n
    \r\n {links.map((item, index) => {\r\n return (\r\n
  • \r\n \r\n {index !== links.length - 1 &&  / }\r\n
  • \r\n );\r\n })}\r\n
\r\n \r\n ) : null;\r\n};\r\n\r\nBreadcrumbs.propTypes = {\r\n links: PropTypes.arrayOf(PropTypes.exact(Link.propTypes)),\r\n className: PropTypes.string,\r\n ariaLabel: PropTypes.string,\r\n};\r\n\r\nexport default Breadcrumbs;\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","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\n\r\nconst DefaultWidth = 0;\r\nconst DefaultHeight = 0;\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 * - widthReasolution and heightResolution it is kind of steps for automatic width/height calculation, for example if withResolution is 100, image will have with 100,200,300...1200...\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 widthResolution: PropTypes.number,\r\n heightResolution: 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 widthResolution: 'ignore',\r\n heightResolution: 'ignore',\r\n };\r\n\r\n canBeResized = imageResizer.checkImageCanBeResized(this.props.src);\r\n state = {\r\n src: !this.canBeResized\r\n ? this.props.src\r\n : DefaultWidth > 0 || DefaultHeight > 0\r\n ? imageResizer.buildResizeUrl(\r\n this.props.src,\r\n DefaultWidth,\r\n DefaultHeight,\r\n this.resizeTransform\r\n )\r\n : undefined,\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 autoTransform = Image.transforms.fill;\r\n autoCalcWidthOnly = false;\r\n autoCalcHeightOnly = false;\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.container.offsetWidth === this.state.containerOffsetWidth ||\r\n (this.props.width > 0 && this.state.width === this.props.width);\r\n const skipByHeight =\r\n this.container.offsetHeight === this.state.containerOffsetHeight ||\r\n (this.props.height > 0 && this.state.height === this.props.height);\r\n\r\n if (skipByWidth && skipByHeight) {\r\n return;\r\n }\r\n\r\n const widthResolution =\r\n this.props.widthResolution > 0\r\n ? this.props.widthResolution\r\n : this.container.offsetWidth > 100\r\n ? 100\r\n : 10;\r\n\r\n const heightResolution =\r\n this.props.heightResolution > 0\r\n ? this.props.heightResolution\r\n : this.container.offsetHeight > 100\r\n ? 100\r\n : 10;\r\n\r\n const 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 const 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 const newRatio = newHeight > 0 ? Math.ceil(newWidth / newHeight) : 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 return {\r\n src: newSrc,\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 componentDidMount() {\r\n if (this.canBeResized) {\r\n this.debouncedHandleResize();\r\n window.addEventListener('resize', this.debouncedHandleResize);\r\n }\r\n this.setState({ componentDidMount: true });\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.canBeResized) {\r\n window.removeEventListener('resize', this.debouncedHandleResize);\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 if (!this.props.fluid) {\r\n return (\r\n (this.container = c)}\r\n >\r\n {this.state.src && (\r\n \r\n )}\r\n \r\n );\r\n } else {\r\n return (\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\nexport default Image;\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\n\r\nconst Contact = ({ image, name, title, phoneLink, mailLink }) => {\r\n return (\r\n
\r\n
\r\n {image && }\r\n
\r\n
\r\n {name &&

{name}

}\r\n {title &&
{title}
}\r\n {phoneLink && (\r\n
\r\n \r\n
\r\n )}\r\n {mailLink && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nContact.propTypes = {\r\n image: PropTypes.exact(Image.propTypes),\r\n name: PropTypes.string,\r\n title: PropTypes.string,\r\n phoneLink: PropTypes.exact(Link.propTypes),\r\n mailLink: PropTypes.exact(Link.propTypes),\r\n};\r\n\r\nexport default Contact;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport RichText from 'components/rich-text';\r\n\r\nconst ContactInformation = ({ heading, textHtml }) => {\r\n return (\r\n
\r\n {heading &&

{heading}

}\r\n {textHtml && (\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nContactInformation.propTypes = {\r\n heading: PropTypes.string,\r\n textHtml: PropTypes.string,\r\n};\r\n\r\nexport default ContactInformation;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Contact from 'components/contact';\r\n\r\nconst ContactUs = ({ heading, contacts }) => {\r\n return (\r\n
\r\n
\r\n
\r\n {heading &&

{heading}

}\r\n {contacts && contacts.length > 0 && (\r\n
\r\n {contacts.map((item, index) => (\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\nContactUs.propTypes = {\r\n heading: PropTypes.string,\r\n contacts: PropTypes.arrayOf(PropTypes.exact(Contact.propTypes)),\r\n};\r\n\r\nexport default ContactUs;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport * as Components from '../../app.components';\r\n\r\nconst ContentArea = ({ blocks }) => {\r\n return blocks ? (\r\n
\r\n {blocks.map((block, index) => {\r\n const Block = Components[block.componentName];\r\n if (!Block) {\r\n // eslint-disable-next-line no-console\r\n console.error(`Components.${block.componentName} is not defined`);\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};\r\n\r\nContentArea.propTypes = {\r\n blocks: PropTypes.array,\r\n};\r\n\r\nContentArea.viewModelMeta = 'ignore';\r\n\r\nexport default ContentArea;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\n\r\nconst CoursePartLink = ({\r\n text,\r\n partId,\r\n onClick = () => {},\r\n active = false,\r\n}) => {\r\n return (\r\n onClick({ partId })}\r\n className={cn('course-content__navigation-item-button', {\r\n 'course-content__navigation-item-button_active': active,\r\n })}\r\n disabled={active}\r\n aria-current={active ? 'true' : null}\r\n >\r\n \r\n {text}\r\n \r\n \r\n );\r\n};\r\n\r\nCoursePartLink.propTypes = {\r\n text: PropTypes.string.isRequired,\r\n partId: PropTypes.number.isRequired,\r\n onClick: PropTypes.func,\r\n active: PropTypes.bool,\r\n};\r\n\r\nCoursePartLink.viewModelMeta = {\r\n onClick: 'ignore',\r\n active: 'ignore',\r\n};\r\n\r\nexport default CoursePartLink;\r\n","/* eslint-disable react/no-unused-prop-types */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\n\r\nconst Spinner = ({ className, text }) => (\r\n
\r\n
\r\n
\r\n);\r\n\r\nSpinner.propTypes = {\r\n className: PropTypes.string,\r\n text: PropTypes.string,\r\n};\r\n\r\nSpinner.viewModelMeta = 'ignore';\r\n\r\nexport default Spinner;\r\n","import React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport CoursePartLink from './course-part-link';\r\nimport Spinner from 'components/spinner';\r\nimport scrollToElement from 'scroll-to-element';\r\n\r\nconst CourseContent = ({\r\n coursePartsLinks,\r\n loadCoursePartEndpoint,\r\n loadingText,\r\n errorText,\r\n prevButtonText,\r\n nextButtonText,\r\n navigationAriaLabel = 'Navigasjonsmeny for undervisning',\r\n}) => {\r\n const numberOfPartsLinks = coursePartsLinks ? coursePartsLinks.length : 0;\r\n const partsLinksAreExist = numberOfPartsLinks > 0;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [error, setError] = useState(null);\r\n const [pageContent, setPageContent] = useState(null);\r\n const [pageId, setPageId] = useState(\r\n partsLinksAreExist ? coursePartsLinks[0].partId : null\r\n );\r\n\r\n const scrollToTopOfContent = () => {\r\n scrollToElement('.course-content', {\r\n offset: 0,\r\n ease: 'linear',\r\n duration: 500,\r\n });\r\n };\r\n\r\n const firstPartsLinkIsActive = partsLinksAreExist\r\n ? pageId !== coursePartsLinks[0].partId\r\n : false;\r\n\r\n const lastPartsLinkIsActive = partsLinksAreExist\r\n ? pageId !== coursePartsLinks[numberOfPartsLinks - 1].partId\r\n : false;\r\n\r\n const currentPartsLinkIndex = partsLinksAreExist\r\n ? coursePartsLinks.findIndex(p => p.partId === pageId)\r\n : null;\r\n\r\n const loadPageContent = () => {\r\n setIsLoading(true);\r\n setError(null);\r\n\r\n let xhr = new XMLHttpRequest();\r\n let query = `${loadCoursePartEndpoint}?partId=${pageId}`;\r\n\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState === XMLHttpRequest.DONE) {\r\n if (xhr.status === 200) {\r\n setIsLoading(false);\r\n setPageContent(xhr.response);\r\n }\r\n }\r\n };\r\n\r\n xhr.onerror = function () {\r\n setError(errorText);\r\n setIsLoading(false);\r\n };\r\n\r\n xhr.open('GET', query, true);\r\n xhr.send();\r\n };\r\n\r\n const handleNavigate = activePartId => {\r\n setPageId(activePartId);\r\n };\r\n\r\n const handlePrevButtonClick = () => {\r\n firstPartsLinkIsActive &&\r\n setPageId(coursePartsLinks[currentPartsLinkIndex - 1].partId);\r\n scrollToTopOfContent();\r\n };\r\n\r\n const handleNextButtonClick = () => {\r\n lastPartsLinkIsActive &&\r\n setPageId(coursePartsLinks[currentPartsLinkIndex + 1].partId);\r\n scrollToTopOfContent();\r\n };\r\n\r\n useEffect(() => {\r\n pageId && loadPageContent(pageId);\r\n }, [pageId]);\r\n\r\n return (\r\n
\r\n {coursePartsLinks && (\r\n \r\n
    \r\n {coursePartsLinks.map((link, index) => (\r\n
  • \r\n handleNavigate(e.partId)}\r\n />\r\n
  • \r\n ))}\r\n
\r\n {isLoading && }\r\n \r\n )}\r\n\r\n {error && errorText && (\r\n
{error}
\r\n )}\r\n {pageContent &&
}\r\n\r\n {numberOfPartsLinks > 0 && (\r\n
\r\n {firstPartsLinkIsActive && (\r\n \r\n {prevButtonText}\r\n \r\n )}\r\n {lastPartsLinkIsActive && (\r\n \r\n {nextButtonText}\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nCourseContent.propTypes = {\r\n coursePartsLinks: PropTypes.arrayOf(\r\n PropTypes.exact(CoursePartLink.propTypes)\r\n ),\r\n loadCoursePartEndpoint: PropTypes.string.isRequired,\r\n loadingText: PropTypes.string.isRequired,\r\n errorText: PropTypes.string.isRequired,\r\n nextButtonText: PropTypes.string.isRequired,\r\n prevButtonText: PropTypes.string.isRequired,\r\n navigationAriaLabel: PropTypes.string,\r\n};\r\n\r\nexport default CourseContent;\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\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, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\nimport useClickOutside from '../../hooks/use-click-outside';\r\n\r\nconst DropDown = ({ items, label, onOptionClicked, selectedOptionIndex }) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const toggling = () => setIsOpen(!isOpen);\r\n const handleOptionClick = index => {\r\n setIsOpen(false);\r\n onOptionClicked(index);\r\n };\r\n const close = () => setIsOpen(false);\r\n const dropdownRef = React.useRef();\r\n useClickOutside(dropdownRef, close);\r\n\r\n return (\r\n
\r\n \r\n {items[selectedOptionIndex].heading}\r\n \r\n {label}\r\n\r\n \r\n {items.map((item, index) => (\r\n
  • \r\n handleOptionClick(index)}\r\n className=\"drop-down__option-button\"\r\n >\r\n {item.heading}\r\n \r\n
  • \r\n ))}\r\n \r\n
    \r\n );\r\n};\r\n\r\nDropDown.propTypes = {\r\n label: PropTypes.string,\r\n items: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n heading: PropTypes.string,\r\n text: PropTypes.string,\r\n })\r\n ),\r\n onOptionClicked: PropTypes.func,\r\n selectedOptionIndex: PropTypes.number,\r\n};\r\n\r\nDropDown.viewModelMeta = 'ignore';\r\n\r\nexport default DropDown;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst EmbeddableFormBlock = ({ html }) => {\r\n function createHtml() {\r\n return { __html: html };\r\n }\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nEmbeddableFormBlock.propTypes = {\r\n html: PropTypes.string,\r\n};\r\n\r\nexport default EmbeddableFormBlock;\r\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(\r\n process.env.NODE_ENV === 'test'\r\n ? '../../assets/inline-icons/icons-noop.js'\r\n : '../../assets/inline-icons/icons.js'\r\n).default;\r\n\r\nconst Icon = ({ className, name, style, useFill }) => {\r\n const defaultProps = icons[name].customDefaultProps;\r\n\r\n return icons[name]\r\n ? React.createElement(icons[name], {\r\n ...(defaultProps && defaultProps),\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\n\r\nIcon.propTypes = {\r\n className: PropTypes.string,\r\n name: PropTypes.oneOf(Object.keys(icons)).isRequired,\r\n style: PropTypes.object,\r\n useFill: PropTypes.bool,\r\n};\r\n\r\nIcon.viewModelMeta = 'ignore';\r\n\r\nexport default Icon;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport RichText from 'components/rich-text';\r\nimport Icon from 'components/icon';\r\nimport cn from 'classnames';\r\n\r\nconst themes = {\r\n blueWithIcon: '--blue-with-icon',\r\n};\r\n\r\nconst QuickSearchPanel = ({\r\n searchInputLabel,\r\n placeholder,\r\n searchPageUrl,\r\n searchInputName,\r\n helpTextHtml,\r\n submitButtonText,\r\n formAriaLabel = 'Søkefelt for globalsøk i hurtigsøkpanelet',\r\n autocompleteEndpoint, // TODO: BE side done, FE side is not implemented yet.\r\n theme,\r\n}) => {\r\n const inputRef = React.useRef();\r\n\r\n React.useEffect(() => {\r\n inputRef.current.focus();\r\n }, []);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n {theme === themes.blueWithIcon && (\r\n \r\n \r\n \r\n )}\r\n
    \r\n {helpTextHtml && (\r\n \r\n )}\r\n {theme !== themes.blueWithIcon && (\r\n \r\n )}\r\n \r\n
    \r\n );\r\n};\r\n\r\nQuickSearchPanel.propTypes = {\r\n searchInputLabel: PropTypes.string,\r\n placeholder: PropTypes.string.isRequired,\r\n searchPageUrl: PropTypes.string.isRequired,\r\n searchInputName: PropTypes.string.isRequired,\r\n helpTextHtml: PropTypes.string,\r\n submitButtonText: PropTypes.string.isRequired,\r\n autocompleteEndpoint: PropTypes.string,\r\n formAriaLabel: PropTypes.string,\r\n theme: PropTypes.oneOf(Object.values(themes)),\r\n};\r\n\r\nQuickSearchPanel.viewModelMeta = {\r\n theme: 'ignore',\r\n};\r\n\r\nQuickSearchPanel.themes = themes;\r\n\r\nexport default QuickSearchPanel;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\nimport Icon from 'components/icon/icon';\r\n\r\nconst themes = {\r\n subscribe: 'subscribe',\r\n};\r\n\r\nconst LinkButton = ({\r\n url,\r\n text,\r\n openInNewTab = false,\r\n className,\r\n iconName,\r\n theme,\r\n}) => {\r\n return (\r\n \r\n {text}\r\n {iconName && }\r\n \r\n );\r\n};\r\n\r\nLinkButton.propTypes = {\r\n className: PropTypes.string,\r\n iconName: PropTypes.string,\r\n url: PropTypes.string.isRequired,\r\n text: PropTypes.string.isRequired,\r\n openInNewTab: PropTypes.bool,\r\n theme: PropTypes.oneOf(Object.values(themes)),\r\n};\r\n\r\nLinkButton.viewModelMeta = {\r\n className: 'ignore',\r\n iconName: 'ignore',\r\n theme: 'ignore',\r\n};\r\n\r\nexport default LinkButton;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Image from 'components/image';\r\nimport QuickSearchPanel from 'components/quick-search-panel';\r\nimport LinkButton from 'components/link-button';\r\n\r\nconst ErrorBlock = ({ errorCode, bigText, smallText, image, search, link }) => {\r\n return (\r\n
    \r\n

    {errorCode}

    \r\n
    {bigText}
    \r\n
    {smallText}
    \r\n {image && (\r\n
    \r\n \r\n
    \r\n )}\r\n {search && (\r\n \r\n )}\r\n {link && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nErrorBlock.propTypes = {\r\n errorCode: PropTypes.string,\r\n bigText: PropTypes.string,\r\n smallText: PropTypes.string,\r\n image: PropTypes.exact(Image.propTypes),\r\n search: PropTypes.exact(QuickSearchPanel.propTypes),\r\n link: PropTypes.exact(LinkButton.propTypes),\r\n};\r\n\r\nexport default ErrorBlock;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport RichText from 'components/rich-text';\r\nimport Image from 'components/image';\r\nimport cn from 'classnames';\r\n\r\nconst Factbox = ({ className, backgroundColor, title, icon, textHtml }) => {\r\n return (\r\n \r\n {icon && (\r\n
    \r\n \r\n
    \r\n )}\r\n {title &&

    {title}

    }\r\n {textHtml && (\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nFactbox.propTypes = {\r\n className: PropTypes.string,\r\n backgroundColor: PropTypes.string.isRequired,\r\n icon: PropTypes.exact(Image.propTypes),\r\n title: PropTypes.string,\r\n textHtml: PropTypes.string,\r\n};\r\n\r\nFactbox.viewModelMeta = {\r\n className: 'ignore',\r\n};\r\n\r\nexport default Factbox;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport RichText from 'components/rich-text';\r\nimport Factbox from 'components/factbox';\r\nimport cn from 'classnames';\r\n\r\nconst FactboxWithTextBlock = ({\r\n factbox,\r\n className,\r\n factboxPosition,\r\n textHtml,\r\n}) => {\r\n const twoColumns = factbox && textHtml;\r\n\r\n return factbox || textHtml ? (\r\n \r\n \r\n {factbox && (\r\n
    \r\n \r\n
    \r\n )}\r\n {textHtml && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n \r\n ) : null;\r\n};\r\n\r\nFactboxWithTextBlock.propTypes = {\r\n className: PropTypes.string,\r\n factbox: PropTypes.exact(Factbox.propTypes),\r\n factboxPosition: PropTypes.oneOf(['left', 'right']).isRequired,\r\n textHtml: PropTypes.string,\r\n};\r\n\r\nFactboxWithTextBlock.viewModelMeta = {\r\n className: 'ignore',\r\n};\r\n\r\nexport default FactboxWithTextBlock;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Icon from 'components/icon';\r\nimport cn from 'classnames';\r\n\r\nconst icons = {\r\n instagram: 'instagram',\r\n facebook: 'facebook',\r\n youtube: 'youtube',\r\n};\r\n\r\nconst SocialLink = ({ url, icon, className, openInNewTab, ariaLabel }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nSocialLink.propTypes = {\r\n className: PropTypes.string,\r\n url: PropTypes.string.isRequired,\r\n icon: PropTypes.oneOf(Object.values(icons)).isRequired,\r\n openInNewTab: PropTypes.bool,\r\n ariaLabel: PropTypes.string,\r\n};\r\n\r\nSocialLink.viewModelMeta = {\r\n className: 'ignore',\r\n};\r\n\r\nexport default SocialLink;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SocialLink from 'components/social-link';\r\nimport RichText from 'components/rich-text';\r\nimport Link from 'components/link';\r\nimport LinkButton from 'components/link-button';\r\n\r\nconst Footer = ({\r\n content1Html,\r\n content2Html,\r\n subscribeButton,\r\n socialLinks,\r\n copyrightText,\r\n cookiesLink,\r\n}) => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {content1Html && (\r\n \r\n )}\r\n {content2Html && (\r\n \r\n )}\r\n
    \r\n {subscribeButton && (\r\n \r\n )}\r\n {socialLinks && (\r\n
      \r\n {socialLinks.map((socialLink, index) => (\r\n
    • \r\n \r\n
    • \r\n ))}\r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {copyrightText && (\r\n
    {copyrightText}
    \r\n )}\r\n {cookiesLink && (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nFooter.propTypes = {\r\n subscribeButton: PropTypes.exact(LinkButton.propTypes),\r\n content1Html: PropTypes.string,\r\n content2Html: PropTypes.string,\r\n socialLinks: PropTypes.arrayOf(PropTypes.exact(SocialLink.propTypes)),\r\n copyrightText: PropTypes.string,\r\n cookiesLink: PropTypes.exact(Link.propTypes),\r\n};\r\n\r\nexport default Footer;\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, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Link from 'components/link';\r\nimport RichText from 'components/rich-text';\r\nimport idHelper from 'js/id-helper';\r\n\r\nconst GettingStartedLink = ({ heading, introHtml, link }) => {\r\n const uniqueId = useMemo(\r\n () => idHelper.generateUniqueId('getting-started-link'),\r\n []\r\n );\r\n const headingId = `${uniqueId}-heading`;\r\n const descriptionId = `${uniqueId}-description`;\r\n\r\n return (\r\n
  • \r\n {heading && (\r\n \r\n {heading}\r\n \r\n )}\r\n {introHtml && (\r\n \r\n )}\r\n {link && (\r\n \r\n )}\r\n
  • \r\n );\r\n};\r\n\r\nGettingStartedLink.propTypes = {\r\n heading: PropTypes.string,\r\n introHtml: PropTypes.string,\r\n link: PropTypes.exact(Link.propTypes),\r\n};\r\n\r\nexport default GettingStartedLink;\r\n","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Image from 'components/image';\r\nimport GettingStartedLink from 'components/front-page-hero/getting-started-link';\r\nimport imageResizer from 'js/image-resizer';\r\nimport Link from 'components/link';\r\nimport debounce from 'lodash/debounce';\r\n\r\nconst FrontPageHero = ({\r\n backgroundImage,\r\n backgroundImageMobile,\r\n mainHeading,\r\n secondaryHeadingLeft,\r\n secondaryHeadingRight,\r\n gettingStartedLinks,\r\n gettingStartedReadMoreLink,\r\n}) => {\r\n const isDesktopView = () => {\r\n return document.body.clientWidth >= 768;\r\n };\r\n\r\n const [imageWidth, setImageWidth] = useState(0);\r\n const [imageSource, setImageSource] = useState(\r\n backgroundImageMobile ? null : backgroundImage\r\n );\r\n\r\n useEffect(() => {\r\n if (backgroundImageMobile) {\r\n setImageSource(isDesktopView() ? backgroundImage : backgroundImageMobile);\r\n let isDesktop = isDesktopView();\r\n const handleResize = () => {\r\n if (isDesktopView() !== isDesktop) {\r\n setImageSource(\r\n isDesktopView() ? backgroundImage : backgroundImageMobile\r\n );\r\n setImageWidth(imageResizer.calcImageWidth(window.screen.width, 100));\r\n }\r\n isDesktop = isDesktopView();\r\n };\r\n\r\n window.addEventListener('resize', debounce(handleResize, 200));\r\n return () => {\r\n window.removeEventListener('resize', handleResize);\r\n };\r\n }\r\n setImageWidth(imageResizer.calcImageWidth(window.screen.width, 100));\r\n }, []);\r\n\r\n return (\r\n
    \r\n
    \r\n {imageSource && (\r\n \r\n )}\r\n {mainHeading && (\r\n
    \r\n

    {mainHeading}

    \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {secondaryHeadingLeft && (\r\n

    \r\n {secondaryHeadingLeft}\r\n

    \r\n )}\r\n\r\n {secondaryHeadingRight && (\r\n

    \r\n {secondaryHeadingRight}\r\n

    \r\n )}\r\n
    \r\n {gettingStartedReadMoreLink && (\r\n \r\n )}\r\n {gettingStartedLinks && (\r\n
      \r\n {gettingStartedLinks.map((gettingStartedLink, index) => (\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 backgroundImage: PropTypes.exact(Image.propTypes),\r\n backgroundImageMobile: PropTypes.exact(Image.propTypes),\r\n mainHeading: PropTypes.string,\r\n secondaryHeadingLeft: PropTypes.string,\r\n secondaryHeadingRight: PropTypes.string,\r\n gettingStartedLinks: PropTypes.arrayOf(\r\n PropTypes.exact(GettingStartedLink.propTypes)\r\n ),\r\n gettingStartedReadMoreLink: PropTypes.exact(Link.propTypes),\r\n};\r\n\r\nexport default FrontPageHero;\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 LinkButton from 'components/link-button';\r\nimport cn from 'classnames';\r\n\r\nconst styles = {\r\n default: 'default',\r\n overlay: 'overlay',\r\n};\r\n\r\nconst FullWidthBanner = ({\r\n backgroundImage,\r\n heading,\r\n textHtml,\r\n style,\r\n readMoreButton,\r\n}) => {\r\n return (\r\n \r\n {backgroundImage && (\r\n \r\n )}\r\n
    \r\n {heading &&

    {heading}

    }\r\n {textHtml && (\r\n \r\n )}\r\n {readMoreButton && (\r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nFullWidthBanner.propTypes = {\r\n backgroundImage: PropTypes.exact(Image.propTypes),\r\n heading: PropTypes.string,\r\n textHtml: PropTypes.string,\r\n style: PropTypes.oneOf(Object.values(styles)).isRequired,\r\n readMoreButton: PropTypes.exact(LinkButton.propTypes),\r\n};\r\n\r\nexport default FullWidthBanner;\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 Link from 'components/link';\r\n\r\nconst GettingStartedTeaser = ({ image, heading, introHtml, link }) => {\r\n return (\r\n \r\n {image && }\r\n {heading && (\r\n

    {heading}

    \r\n )}\r\n {introHtml && (\r\n \r\n )}\r\n {link && link.text && (\r\n {link.text}\r\n )}\r\n \r\n );\r\n};\r\n\r\nGettingStartedTeaser.propTypes = {\r\n image: PropTypes.exact(Image.propTypes),\r\n heading: PropTypes.string,\r\n introHtml: PropTypes.string,\r\n link: PropTypes.exact(Link.propTypes),\r\n};\r\n\r\nexport default GettingStartedTeaser;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport GettingStartedTeaser from 'components/getting-started-teaser';\r\n\r\nconst GettingStartedList = ({ teasers }) => {\r\n return (\r\n
    \r\n
      \r\n {teasers.map((teaser, index) => (\r\n
    • \r\n \r\n
    • \r\n ))}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nGettingStartedList.propTypes = {\r\n teasers: PropTypes.arrayOf(PropTypes.exact(GettingStartedTeaser.propTypes))\r\n .isRequired,\r\n};\r\n\r\nexport default GettingStartedList;\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","/* eslint-disable react/prop-types */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\nimport Link from 'components/link';\r\n\r\nconst MenuLink = ({\r\n className,\r\n openInNewTab,\r\n url,\r\n text,\r\n tabindex,\r\n isActive,\r\n isCurrent = false,\r\n}) => (\r\n \r\n);\r\n\r\nMenuLink.propTypes = Object.assign({}, Link.propTypes, {\r\n isActive: PropTypes.bool,\r\n isCurrent: PropTypes.bool,\r\n});\r\n\r\nexport default MenuLink;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport MenuLink from 'components/menu-link';\r\nimport LinkButton from 'components/link-button/link-button';\r\nimport SocialLink from 'components/social-link';\r\nimport useToggle from 'hooks/use-toggle';\r\nimport cn from 'classnames';\r\nimport Icon from 'components/icon/icon';\r\n\r\nconst MainMenu = ({\r\n firstColumnLinks,\r\n secondColumnLinks,\r\n thirdColumnHeading,\r\n thirdColumnLinks,\r\n subscribeLink,\r\n socialLinks,\r\n}) => {\r\n const [menuIsOpened, toggleMenu] = useToggle(false);\r\n\r\n const onMenuButtonClick = React.useCallback(() => {\r\n toggleMenu();\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nMainMenu.propTypes = {\r\n firstColumnLinks: PropTypes.arrayOf(PropTypes.exact(MenuLink.propTypes)),\r\n secondColumnLinks: PropTypes.arrayOf(PropTypes.exact(MenuLink.propTypes)),\r\n thirdColumnHeading: PropTypes.string,\r\n thirdColumnLinks: PropTypes.arrayOf(PropTypes.exact(MenuLink.propTypes)),\r\n socialLinks: PropTypes.arrayOf(PropTypes.exact(SocialLink.propTypes)),\r\n subscribeLink: PropTypes.exact(LinkButton.propTypes),\r\n};\r\n\r\nexport default MainMenu;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport MenuLink from 'components/menu-link';\r\n\r\nconst HeaderMenu = ({ headerMenuLinks }) => {\r\n return (\r\n
    \r\n {headerMenuLinks && (\r\n
      \r\n {headerMenuLinks.map((link, index) => (\r\n
    • \r\n \r\n
    • \r\n ))}\r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nHeaderMenu.propTypes = {\r\n headerMenuLinks: PropTypes.arrayOf(PropTypes.exact(MenuLink.propTypes)),\r\n};\r\n\r\nexport default HeaderMenu;\r\n","import React, { useCallback, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport useToggle from 'hooks/use-toggle';\r\nimport useClickOutside from 'hooks/use-click-outside';\r\nimport MainMenu from 'components/main-menu';\r\nimport HeaderMenu from 'components/header/header-menu';\r\nimport QuickSearchPanel from 'components/quick-search-panel';\r\nimport cn from 'classnames';\r\nimport Icon from 'components/icon';\r\nimport Image from 'components/image';\r\nimport useEvent from 'hooks/use-event';\r\nimport FocusTrap from 'focus-trap-react';\r\n\r\nconst Header = ({\r\n logo,\r\n mainMenu,\r\n quickSearchPanel,\r\n headerMenu,\r\n buttonSearchAriaLabel = 'Søkevindu',\r\n buttonMenuAriaLabel = 'Meny',\r\n buttonCloseAriaLabel,\r\n quickSearchPanelTitleAriaLabel = 'Modalvindu for globalsøk',\r\n mainMenuTitleAriaLabel = 'Modalvindu for hovedmeny',\r\n}) => {\r\n const [popupIsOpened, togglePopup, hidePopup] = useToggle(false);\r\n const [searchMode, setSearchModIsActive] = useState(false);\r\n\r\n const onMenuButtonClick = useCallback(() => {\r\n setSearchModIsActive(false);\r\n togglePopup();\r\n }, []);\r\n\r\n const onSearchButtonClick = React.useCallback(() => {\r\n setSearchModIsActive(true);\r\n togglePopup();\r\n }, []);\r\n\r\n const navigationRef = React.useRef();\r\n\r\n useClickOutside(navigationRef, () => {\r\n hidePopup();\r\n });\r\n\r\n useEvent('keydown', event => {\r\n event.key === 'Escape' && hidePopup();\r\n });\r\n\r\n return (\r\n
    \r\n \r\n {logo.image && }\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 {logo.expandedMenuImage && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
    \r\n {searchMode ? (\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.shape({\r\n url: PropTypes.string,\r\n image: PropTypes.exact(Image.propTypes),\r\n expandedMenuImage: PropTypes.exact(Image.propTypes),\r\n ariaLabel: PropTypes.string,\r\n }),\r\n mainMenu: PropTypes.exact(MainMenu.propTypes),\r\n headerMenu: PropTypes.exact(HeaderMenu.propTypes),\r\n quickSearchPanel: PropTypes.exact(QuickSearchPanel.propTypes),\r\n buttonSearchAriaLabel: PropTypes.string,\r\n buttonMenuAriaLabel: PropTypes.string,\r\n buttonCloseAriaLabel: PropTypes.string,\r\n quickSearchPanelTitleAriaLabel: PropTypes.string,\r\n mainMenuTitleAriaLabel: PropTypes.string,\r\n};\r\n\r\nexport default Header;\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 ImageWithCaption = ({\r\n image,\r\n caption,\r\n imageSizeClassName,\r\n className,\r\n}) => {\r\n return (\r\n
    \r\n {image && (\r\n \r\n )}\r\n {caption && (\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nImageWithCaption.propTypes = {\r\n image: PropTypes.exact(Image.propTypes).isRequired,\r\n caption: PropTypes.string,\r\n className: PropTypes.string,\r\n imageSizeClassName: PropTypes.string,\r\n};\r\n\r\nImageWithCaption.viewModelMeta = {\r\n className: 'ignore',\r\n imageSizeClassName: 'ignore',\r\n};\r\n\r\nexport default ImageWithCaption;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ImageWithCaption from 'components/image-with-caption';\r\nimport Slider from 'react-slick';\r\nimport debounce from 'lodash/debounce';\r\nimport cn from 'classnames';\r\n\r\nconst gallerySettings = {\r\n dots: true,\r\n centerMode: true,\r\n infinite: false,\r\n speed: 500,\r\n centerPadding: 0,\r\n slidesToScroll: 1,\r\n slidesToShow: 1,\r\n};\r\n\r\nconst galleryImageClassName = 'image-gallery__image';\r\n\r\nconst ImageGallery = ({ items, className }) => {\r\n const imageGalleryContainer = React.useRef(null);\r\n const [currentSlideIndex, setCurrentSlideIndex] = React.useState(0);\r\n\r\n const getSlideHeight = slideIndex => {\r\n let slideHeight = 0;\r\n if (imageGalleryContainer && imageGalleryContainer.current) {\r\n const currentSlide = imageGalleryContainer.current.querySelectorAll(\r\n '.' + galleryImageClassName\r\n )[slideIndex];\r\n const currentSlideImage = currentSlide.querySelector('.image');\r\n if (currentSlideImage) {\r\n slideHeight = currentSlideImage.offsetHeight;\r\n }\r\n }\r\n return slideHeight;\r\n };\r\n\r\n const updateNavigationControlsPosition = currentSlideIndex => {\r\n if (imageGalleryContainer && imageGalleryContainer.current) {\r\n const slideHeight = getSlideHeight(currentSlideIndex);\r\n const sliderDots =\r\n imageGalleryContainer.current.querySelector('.slick-dots');\r\n const sliderArrows =\r\n imageGalleryContainer.current.querySelectorAll('.slick-arrow');\r\n if (sliderArrows && sliderArrows.length > 0) {\r\n for (let i = 0; i < sliderArrows.length; i++) {\r\n sliderArrows[i].style.top = slideHeight / 2 + 'px';\r\n sliderArrows[i].style.display = 'block';\r\n }\r\n }\r\n if (sliderDots) {\r\n sliderDots.style.top = slideHeight - 65 + 'px';\r\n sliderDots.style.display = 'block';\r\n }\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n function recalculateElementsPosition() {\r\n updateNavigationControlsPosition(currentSlideIndex);\r\n }\r\n const debouncedRecalculateElementsPosition = debounce(\r\n recalculateElementsPosition,\r\n 100\r\n );\r\n window.addEventListener('resize', debouncedRecalculateElementsPosition);\r\n return () => {\r\n window.removeEventListener(\r\n 'resize',\r\n debouncedRecalculateElementsPosition\r\n );\r\n };\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n updateNavigationControlsPosition(currentSlideIndex);\r\n }, [currentSlideIndex]);\r\n\r\n const onSlideChange = currentSlideIndex => {\r\n setCurrentSlideIndex(currentSlideIndex);\r\n };\r\n\r\n return items && items.length > 0 ? (\r\n \r\n
    \r\n \r\n {items.map((image, index) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n
    \r\n \r\n ) : null;\r\n};\r\n\r\nImageGallery.propTypes = {\r\n className: PropTypes.string,\r\n items: PropTypes.arrayOf(PropTypes.exact(ImageWithCaption.propTypes))\r\n .isRequired,\r\n};\r\n\r\nImageGallery.viewModelMeta = {\r\n className: 'ignore',\r\n};\r\n\r\nexport default ImageGallery;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport RichText from 'components/rich-text';\r\nimport ImageWithCaption from 'components/image-with-caption';\r\nimport cn from 'classnames';\r\n\r\nconst ImageWithTextBlock = ({ image, className, imagePosition, textHtml }) => {\r\n const twoColumns = image && textHtml;\r\n\r\n return image || textHtml ? (\r\n \r\n \r\n {image && (\r\n
    \r\n \r\n
    \r\n )}\r\n {textHtml && (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n \r\n ) : null;\r\n};\r\n\r\nImageWithTextBlock.propTypes = {\r\n className: PropTypes.string,\r\n image: PropTypes.exact(ImageWithCaption.propTypes),\r\n imagePosition: PropTypes.oneOf(['left', 'right']).isRequired,\r\n textHtml: PropTypes.string,\r\n};\r\n\r\nImageWithTextBlock.viewModelMeta = {\r\n className: 'ignore',\r\n};\r\n\r\nexport default ImageWithTextBlock;\r\n","import PropTypes from 'prop-types';\r\nconst IngredientBase = {};\r\n\r\nIngredientBase.propTypes = {\r\n heading: PropTypes.string,\r\n text: PropTypes.string,\r\n};\r\n\r\nexport default IngredientBase;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport RichText from 'components/rich-text';\r\nimport DropDown from 'components/drop-down/drop-down';\r\nimport IngredientBase from './ingredient-base';\r\n\r\nconst Ingredients = ({\r\n heading,\r\n forAdults,\r\n forChildren,\r\n forKindergarten,\r\n label,\r\n}) => {\r\n const [selectedOptionIndex, setSelectedOptionIndex] = useState(0);\r\n const items = [forAdults, forChildren, forKindergarten].filter(Boolean);\r\n const selectedItem = items[selectedOptionIndex] || null;\r\n return (\r\n
    \r\n {heading &&

    {heading}

    }\r\n \r\n {selectedItem && (\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nIngredients.propTypes = {\r\n heading: PropTypes.string,\r\n label: PropTypes.string,\r\n forAdults: PropTypes.exact(IngredientBase.propTypes),\r\n forChildren: PropTypes.exact(IngredientBase.propTypes),\r\n forKindergarten: PropTypes.exact(IngredientBase.propTypes),\r\n};\r\n\r\nexport default Ingredients;\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 React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport cn from 'classnames';\r\n\r\nimport messenger from 'js/messenger';\r\n\r\nclass Message extends React.Component {\r\n static propTypes = {\r\n isErrorMessage: PropTypes.bool,\r\n text: PropTypes.string,\r\n };\r\n\r\n state = {\r\n isErrorMessage: this.props.isErrorMessage,\r\n isVisible: false,\r\n text: this.props.text,\r\n };\r\n\r\n show = ({ message, isErrorMessage }) => {\r\n this.setState(\r\n { isVisible: !!message, isErrorMessage, text: message },\r\n () => {\r\n if (!this.state.isErrorMessage) {\r\n setTimeout(() => {\r\n this.hide();\r\n }, 3000);\r\n }\r\n }\r\n );\r\n };\r\n\r\n hide = () => {\r\n this.setState({ isVisible: false });\r\n };\r\n\r\n componentDidMount() {\r\n if (this.props.text) {\r\n this.setState({ isVisible: true });\r\n }\r\n\r\n messenger.onErrorMessage(({ message }) => {\r\n this.show({ message, isErrorMessage: true });\r\n });\r\n\r\n messenger.onMessage(({ message }) => {\r\n this.show({ message, isErrorMessage: false });\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n this.state.isVisible && (\r\n \r\n

    {this.state.text}

    \r\n {this.state.isErrorMessage && (\r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nModal.propTypes = {\r\n children: PropTypes.node,\r\n logo: PropTypes.exact(Image.propTypes),\r\n isOpened: PropTypes.bool,\r\n closeLabel: PropTypes.string,\r\n onClose: PropTypes.func,\r\n titleAriaLabel: PropTypes.string,\r\n};\r\n\r\nModal.viewModelMeta = 'ignore';\r\n\r\nexport default Modal;\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 Link from 'components/link';\r\n\r\nconst PagesListItem = ({ image, heading, introHtml, link }) =>\r\n (() => {\r\n const linkUrlExists = link && link.url;\r\n const ItemContent = () => (\r\n \r\n
    \r\n {image && }\r\n
    \r\n
    \r\n {heading &&

    {heading}

    }\r\n {introHtml && (\r\n \r\n )}\r\n {linkUrlExists && link.text && (\r\n \r\n {link.text}\r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n return linkUrlExists ? (\r\n \r\n \r\n \r\n ) : (\r\n
    \r\n \r\n
    \r\n );\r\n })();\r\n\r\nPagesListItem.propTypes = {\r\n image: PropTypes.exact(Image.propTypes),\r\n heading: PropTypes.string,\r\n introHtml: PropTypes.string,\r\n link: PropTypes.exact(Link.propTypes),\r\n id: PropTypes.number.isRequired,\r\n};\r\n\r\nexport default PagesListItem;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\n\r\nconst SelectOption = ({ id, value, label, isSelected, onChange }) => {\r\n const handleChange = () => {\r\n onChange({ value: value });\r\n };\r\n\r\n return (\r\n
    \r\n \r\n {label}\r\n \r\n
    \r\n );\r\n};\r\n\r\nSelectOption.propTypes = {\r\n id: PropTypes.string,\r\n value: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n isSelected: PropTypes.bool,\r\n onChange: PropTypes.func,\r\n};\r\n\r\nSelectOption.viewModelMeta = {\r\n id: 'ignore',\r\n};\r\n\r\nexport default SelectOption;\r\n","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SelectOption from 'components/select-option';\r\n\r\nconst TagFilter = ({\r\n options = [],\r\n name,\r\n clearLabel,\r\n multiselect = false,\r\n onChange = () => {},\r\n}) => {\r\n const [clearOption, setClearOption] = useState(\r\n clearLabel ? { label: clearLabel, value: '' } : null\r\n );\r\n const [optionsMap, setOptions] = useState(\r\n new Map(options.map(o => [o.value, o]))\r\n );\r\n\r\n useEffect(() => {\r\n if (clearOption) {\r\n clearOption.isSelected = ![...optionsMap.values()].find(\r\n o => o.isSelected\r\n );\r\n setClearOption(Object.assign({}, clearOption));\r\n }\r\n }, [optionsMap]);\r\n\r\n const refreshOptions = () => {\r\n setOptions(new Map(optionsMap));\r\n };\r\n\r\n const handleClearOptionChange = () => {\r\n for (var option of optionsMap.values()) {\r\n option.isSelected = false;\r\n }\r\n refreshOptions();\r\n onChange({\r\n options: [],\r\n selectedValues: [],\r\n value: null,\r\n });\r\n };\r\n\r\n const handleOptionChange = e => {\r\n var targetOption = optionsMap.get(e.value);\r\n if (!multiselect && targetOption.isSelected) return;\r\n\r\n targetOption.isSelected = !targetOption.isSelected;\r\n if (!multiselect && targetOption.isSelected) {\r\n for (var option of optionsMap.values()) {\r\n option.isSelected = option === targetOption;\r\n }\r\n }\r\n refreshOptions();\r\n const options = [...optionsMap.values()];\r\n const selectedValues = options.filter(o => o.isSelected).map(o => o.value);\r\n const value = (options.find(o => o.isSelected) || {}).value || null;\r\n onChange({\r\n options: options,\r\n selectedValues: selectedValues,\r\n value: value,\r\n });\r\n };\r\n\r\n return (\r\n
    \r\n
      \r\n {clearOption && (\r\n
    • \r\n \r\n
    • \r\n )}\r\n {[...optionsMap.values()].map((option, index) => (\r\n
    • \r\n \r\n
    • \r\n ))}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nTagFilter.propTypes = {\r\n name: PropTypes.string.isRequired,\r\n multiselect: PropTypes.bool,\r\n options: PropTypes.arrayOf(PropTypes.exact(SelectOption.propTypes)),\r\n clearLabel: PropTypes.string,\r\n onChange: PropTypes.func,\r\n};\r\nexport default TagFilter;\r\n","import isRunningOnClient from '@creuna/utils/is-running-on-client';\r\n\r\n/* NOTE: Implement Google Tag Manager for this module to work correctly\r\n\r\n Step 1\r\n Copy the following JavaScript and paste it as close to the opening tag as possible on every page of your website\r\n \r\n\r\n Step 2\r\n Copy the following snippet and paste it immediately after the opening tag on every page of your website\r\n \r\n*/\r\n\r\nfunction Timeout(fn, delay) {\r\n const id = setTimeout(() => {\r\n this.clear();\r\n fn();\r\n }, delay);\r\n\r\n this.cleared = false;\r\n this.clear = () => {\r\n this.cleared = true;\r\n clearTimeout(id);\r\n };\r\n}\r\n\r\nfunction getCallbackEnhancedData(data, callback) {\r\n if (typeof callback !== 'function') {\r\n return data;\r\n }\r\n\r\n // NOTE: The timeout will call the callback after the delay unless eventCallback is called first, clearing the timeout.\r\n // This ensures that the callback will be called even if GTM is unavailable or can't handle the event fast enough.\r\n const callbackTimeout = new Timeout(callback, 300);\r\n\r\n return Object.assign({}, data, {\r\n eventCallback: () => {\r\n if (!callbackTimeout.cleared) {\r\n callbackTimeout.clear();\r\n callback();\r\n }\r\n },\r\n });\r\n}\r\n\r\nfunction send(data, callback) {\r\n if (!data || !isRunningOnClient) {\r\n return;\r\n }\r\n\r\n window.dataLayer = window.dataLayer || [];\r\n\r\n if (data.length) {\r\n data.forEach(dataObject => {\r\n window.dataLayer.push(getCallbackEnhancedData(dataObject, callback));\r\n });\r\n } else {\r\n window.dataLayer.push(getCallbackEnhancedData(data, callback));\r\n }\r\n}\r\n\r\nexport default {\r\n send,\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\nfunction 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 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\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 replaceQueryParameters from '@creuna/utils/replace-query-parameters';\r\n\r\nconst _getUndefinedIfEmpty = value => {\r\n return !value || value === '' || value.length === 0 ? undefined : value;\r\n};\r\n\r\nconst getFilterSelectedValues = options => {\r\n return options.filter(o => o.isSelected).map(o => o.value);\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 setToQueryFilterOptions = (query, filter, currentOptions = null) => {\r\n if (!filter) {\r\n return;\r\n }\r\n setQueryValue(\r\n query,\r\n filter.name,\r\n getFilterSelectedValues(currentOptions || filter.options)\r\n );\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 updatePageQueryString = query => {\r\n var newUrl = replaceQueryParameters(window.location.toString(), query);\r\n window.history.replaceState({}, document.title, newUrl);\r\n};\r\n\r\nexport default {\r\n createQuery,\r\n setQueryValue,\r\n getFilterSelectedValues,\r\n setToQueryFilterOptions,\r\n setToQueryTextInputValue,\r\n updatePageQueryString,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport PagesListItem from './pages-list-item';\r\nimport TagFilter from 'components/tag-filter';\r\nimport api from '../../js/api-helper';\r\nimport formHelper from 'js/form-helper';\r\nimport replaceQueryParameters from '@creuna/utils/replace-query-parameters';\r\nimport Spinner from 'components/spinner';\r\n\r\nconst PagesList = ({ tagFilter, loadItemsEndpoint, errorText }) => {\r\n const buildDefaultQuery = () => {\r\n const query = formHelper.createQuery();\r\n if (tagFilter) {\r\n formHelper.setToQueryFilterOptions(query, tagFilter);\r\n }\r\n return query;\r\n };\r\n\r\n const [isLoading, setIsLoading] = React.useState(false);\r\n const [pages, setPages] = React.useState(null);\r\n const [error, setError] = React.useState(false);\r\n const [query, setQuery] = React.useState(buildDefaultQuery());\r\n\r\n const loadPages = () => {\r\n setIsLoading(true);\r\n var loadUrl = replaceQueryParameters(loadItemsEndpoint, query);\r\n api\r\n .get(loadUrl)\r\n .then(response => {\r\n setIsLoading(false);\r\n if (response.listItems.length !== 0) {\r\n setPages(response.listItems);\r\n }\r\n })\r\n .catch(() => {\r\n setError(true);\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const handleTagFilterChange = e => {\r\n formHelper.setToQueryFilterOptions(query, tagFilter, e.options);\r\n setQuery(Object.assign({}, query));\r\n };\r\n\r\n React.useEffect(() => {\r\n formHelper.updatePageQueryString(query);\r\n loadPages();\r\n }, [query]);\r\n return (\r\n
    \r\n {tagFilter && (\r\n
    \r\n \r\n {isLoading && }\r\n
    \r\n )}\r\n {error ? (\r\n
    {errorText}
    \r\n ) : (\r\n pages && (\r\n
      \r\n {pages.map(listItem => (\r\n
    • \r\n \r\n
    • \r\n ))}\r\n
    \r\n )\r\n )}\r\n
    \r\n );\r\n};\r\n\r\nPagesList.propTypes = {\r\n tagFilter: PropTypes.exact(TagFilter.propTypes),\r\n listItems: PropTypes.arrayOf(PropTypes.exact(PagesListItem.propTypes)),\r\n errorText: PropTypes.string.isRequired,\r\n loadItemsEndpoint: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default PagesList;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Icon from 'components/icon';\r\nimport cn from 'classnames';\r\nimport isRunningOnClient from '@creuna/utils/is-running-on-client';\r\n\r\nconst PrintButton = ({ label, className }) => {\r\n const printPage = () => {\r\n isRunningOnClient && window.print();\r\n };\r\n\r\n return (\r\n \r\n \r\n {label && {label}}\r\n \r\n );\r\n};\r\n\r\nPrintButton.propTypes = {\r\n className: PropTypes.string,\r\n label: PropTypes.string,\r\n};\r\n\r\nexport default PrintButton;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cn from 'classnames';\r\n\r\nconst Answer = ({\r\n text,\r\n isCorrect,\r\n onChange,\r\n checked,\r\n showResults,\r\n name,\r\n isMultipleChoice,\r\n}) => {\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nAnswer.propTypes = {\r\n text: PropTypes.string.isRequired,\r\n name: PropTypes.string,\r\n isCorrect: PropTypes.bool,\r\n showResults: PropTypes.bool,\r\n onChange: PropTypes.func,\r\n checked: PropTypes.bool,\r\n isMultipleChoice: PropTypes.bool,\r\n};\r\n\r\nAnswer.viewModelMeta = {\r\n showResults: 'ignore',\r\n checked: 'ignore',\r\n name: 'ignore',\r\n isMultipleChoice: 'ignore',\r\n};\r\n\r\nexport default Answer;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Answer from './answer';\r\nimport RichText from 'components/rich-text';\r\n\r\nconst Question = ({\r\n textHtml,\r\n answers,\r\n showResults,\r\n questionNumber,\r\n selectNoteText,\r\n onChange = () => {},\r\n isSelected,\r\n showValidation,\r\n}) => {\r\n const [checkedValue, setIsChecked] = React.useState(null);\r\n const [checkedItems, setCheckedItems] = React.useState({});\r\n const handleChange = event => {\r\n setCheckedItems({\r\n ...checkedItems,\r\n [event.target.name]: event.target.checked,\r\n });\r\n setIsChecked(null);\r\n };\r\n\r\n const isMultipleChoice = answers.filter(a => a.isCorrect).length > 1;\r\n\r\n React.useEffect(() => {\r\n const allMultipleChoicesFalse = arr => arr.every(v => v === false);\r\n\r\n let checkIfMultySelected =\r\n Object.keys(checkedItems).length > 0\r\n ? !allMultipleChoicesFalse(Object.values(checkedItems))\r\n : false;\r\n let checkIfSingleSelected = isMultipleChoice\r\n ? false\r\n : checkedValue !== null;\r\n\r\n onChange(questionNumber, checkIfMultySelected || checkIfSingleSelected);\r\n }, [checkedValue, checkedItems]);\r\n\r\n return (\r\n
    \r\n \r\n {showValidation && !isSelected && (\r\n
    \r\n {selectNoteText}\r\n
    \r\n )}\r\n
      \r\n {answers.map((answer, index) => (\r\n
    • \r\n \r\n setIsChecked(`question-${questionNumber}answer-${index}`)\r\n }\r\n {...answer}\r\n />\r\n
    • \r\n ))}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nQuestion.propTypes = {\r\n textHtml: PropTypes.string.isRequired,\r\n showResults: PropTypes.bool,\r\n questionNumber: PropTypes.number,\r\n selectNoteText: PropTypes.string,\r\n answers: PropTypes.arrayOf(PropTypes.exact(Answer.propTypes)).isRequired,\r\n onChange: PropTypes.func,\r\n isSelected: PropTypes.bool,\r\n showValidation: PropTypes.bool,\r\n};\r\n\r\nQuestion.viewModelMeta = {\r\n questionNumber: 'ignore',\r\n showResults: 'ignore',\r\n selectNoteText: 'ignore',\r\n onChange: 'ignore',\r\n isSelected: 'ignore',\r\n showValidation: 'ignore',\r\n};\r\n\r\nexport default Question;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Question from './question';\r\n\r\nconst Questionnaire = ({\r\n getResultButtonText,\r\n restartButtonText,\r\n questions,\r\n selectNoteText,\r\n}) => {\r\n const [showResults, setShowResults] = React.useState(false);\r\n const [qIndex, setQIndex] = React.useState(1);\r\n const [questionsList, setQuestionsList] = React.useState([]);\r\n const [showValidation, setShowValidation] = React.useState(false);\r\n\r\n const setAllQuestionsUnselected = () => {\r\n const tmpArr = questions && questions.map(q => q);\r\n for (var i in tmpArr) {\r\n tmpArr[i].isSelected = false;\r\n }\r\n setQuestionsList(tmpArr);\r\n };\r\n\r\n const onGetResultClick = () => {\r\n const selectedAnswers = questionsList.filter(q => q.isSelected === true);\r\n const allAnswersSelected = questions.length === selectedAnswers.length;\r\n\r\n if (allAnswersSelected) {\r\n setShowResults(true);\r\n setShowValidation(false);\r\n } else {\r\n setShowValidation(true);\r\n setShowResults(false);\r\n }\r\n };\r\n\r\n const onRestartClick = () => {\r\n setShowResults(false);\r\n setQIndex(qIndex + 1);\r\n setShowValidation(false);\r\n setAllQuestionsUnselected();\r\n };\r\n\r\n const onQuestionChange = (index, isSelected) => {\r\n let tmpArr = questionsList.map(q => ({ ...q }));\r\n tmpArr[index] = {\r\n ...tmpArr[index],\r\n isSelected: isSelected,\r\n };\r\n\r\n setQuestionsList(tmpArr);\r\n };\r\n\r\n React.useEffect(() => {\r\n setAllQuestionsUnselected();\r\n }, []);\r\n\r\n return (\r\n
    \r\n {questionsList && (\r\n
      \r\n {questionsList.map((question, index) => (\r\n
    • \r\n \r\n
    • \r\n ))}\r\n
    \r\n )}\r\n\r\n {showResults ? (\r\n \r\n ) : (\r\n {\r\n e.preventDefault;\r\n onGetResultClick();\r\n }}\r\n >\r\n {getResultButtonText}\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nQuestionnaire.propTypes = {\r\n getResultButtonText: PropTypes.string.isRequired,\r\n restartButtonText: PropTypes.string.isRequired,\r\n questions: PropTypes.arrayOf(PropTypes.exact(Question.propTypes)),\r\n selectNoteText: PropTypes.string,\r\n};\r\n\r\nexport default Questionnaire;\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","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Icon from 'components/icon/icon';\r\n\r\nconst RecipePageDetails = ({ cookTime, difficulty }) => {\r\n return (\r\n
    \r\n {cookTime && (\r\n
    \r\n \r\n {cookTime}\r\n
    \r\n )}\r\n {difficulty && (\r\n
    \r\n \r\n {difficulty}\r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nRecipePageDetails.propTypes = {\r\n cookTime: PropTypes.string,\r\n difficulty: PropTypes.string,\r\n};\r\n\r\nexport default RecipePageDetails;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SelectOption from 'components/select-option';\r\nimport Icon from 'components/icon';\r\nimport useToggle from '../../hooks/use-toggle';\r\nimport useEvent from '../../hooks/use-event';\r\nimport useClickOutside from '../../hooks/use-click-outside';\r\nimport useIsMounted from '../../hooks/use-is-mounted';\r\nimport cn from 'classnames';\r\n\r\nconst CategoryFilter = ({\r\n label,\r\n placeholder,\r\n options = [],\r\n name,\r\n onChange = () => {},\r\n}) => {\r\n const [isOpen, toggle, close] = useToggle(false);\r\n const [hasTouch, setHasTouch] = React.useState(false);\r\n useEvent('touchstart', () => setHasTouch(true));\r\n\r\n const fakeSelectRef = React.useRef();\r\n useClickOutside(fakeSelectRef, close);\r\n\r\n const [selectedOption, setSelectedOption] = React.useState(\r\n options.find(o => o.isSelected) || {}\r\n );\r\n\r\n const isMounted = useIsMounted();\r\n\r\n const handleChange = value => {\r\n setSelectedOption(options.find(x => x.value === value) || {});\r\n const currentOptions = options.map(option => {\r\n const currentOption = Object.assign({}, option);\r\n currentOption.isSelected = currentOption.value === value;\r\n return currentOption;\r\n });\r\n onChange({ options: currentOptions });\r\n close();\r\n };\r\n\r\n return (\r\n \r\n {options && (\r\n
    \r\n handleChange(e.target.value)}\r\n value={selectedOption.value}\r\n aria-label={label}\r\n >\r\n {placeholder && }\r\n {options.map(option => (\r\n \r\n ))}\r\n \r\n
    \r\n \r\n {selectedOption.label || placeholder}\r\n \r\n
    \r\n {isOpen && (\r\n
      \r\n {placeholder && (\r\n handleChange('')}\r\n >\r\n {placeholder}\r\n \r\n )}\r\n {options\r\n .filter(option => option !== selectedOption)\r\n .map(option => (\r\n handleChange(option.value)}\r\n >\r\n {option.label}\r\n \r\n ))}\r\n
    \r\n )}\r\n
    \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nCategoryFilter.propTypes = {\r\n label: PropTypes.string,\r\n placeholder: PropTypes.string.isRequired,\r\n options: PropTypes.arrayOf(PropTypes.exact(SelectOption.propTypes)),\r\n name: PropTypes.string.isRequired,\r\n onChange: PropTypes.func,\r\n};\r\n\r\nexport default CategoryFilter;\r\n","import React from 'react';\r\n\r\nexport default function useIsMounted() {\r\n const [isMounted, setIsMounted] = React.useState(false);\r\n\r\n React.useEffect(() => setIsMounted(true), []);\r\n\r\n return isMounted;\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Icon from 'components/icon';\r\n\r\nconst SearchQueryInput = ({\r\n label,\r\n name,\r\n value,\r\n placeholder,\r\n autocompleteEndpoint, // TODO: BE side done, FE side is not implemented yet.\r\n submitButtonAriaLabel = 'Sende inn',\r\n onChange = () => {},\r\n}) => {\r\n const [currentValue, setCurrentValue] = React.useState(value);\r\n\r\n const handleInput = e => {\r\n setCurrentValue(e.target.value);\r\n };\r\n\r\n const handleClick = e => {\r\n e.preventDefault();\r\n onChange({ value: currentValue });\r\n return false;\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nSearchQueryInput.propTypes = {\r\n label: PropTypes.string,\r\n name: PropTypes.string.isRequired,\r\n value: PropTypes.string,\r\n autocompleteEndpoint: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n onChange: PropTypes.func,\r\n submitButtonAriaLabel: PropTypes.string,\r\n};\r\n\r\nexport default SearchQueryInput;\r\n","import React, { useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport CategoryFilter from './category-filter';\r\nimport SearchQueryInput from './search-query-input';\r\nimport TagFilter from 'components/tag-filter';\r\nimport formHelper from 'js/form-helper';\r\n\r\nconst SearchForm = ({\r\n categoryFilter1,\r\n categoryFilter2,\r\n searchQueryInput,\r\n tagFilter,\r\n formAriaLabel = 'Søkefelt for globalsøk',\r\n onChange = () => {},\r\n onInit = () => {},\r\n}) => {\r\n const [query, setQuery] = React.useState(null);\r\n\r\n const buildInitQuery = () => {\r\n var query = formHelper.createQuery();\r\n formHelper.setToQueryFilterOptions(query, categoryFilter1);\r\n formHelper.setToQueryFilterOptions(query, categoryFilter2);\r\n formHelper.setToQueryFilterOptions(query, tagFilter);\r\n formHelper.setToQueryTextInputValue(query, searchQueryInput);\r\n return query;\r\n };\r\n\r\n useEffect(() => {\r\n var initQuery = buildInitQuery();\r\n setQuery(initQuery);\r\n onInit({ query: initQuery, searchText: initQuery[searchQueryInput.name] });\r\n }, []);\r\n\r\n const queryUpdated = () => {\r\n setQuery(Object.assign({}, query));\r\n onChange({ query: query, searchText: query[searchQueryInput.name] });\r\n };\r\n\r\n const handleFilterChange = (filter, e) => {\r\n formHelper.setToQueryFilterOptions(query, filter, e.options);\r\n queryUpdated();\r\n };\r\n\r\n const handleTextInputChnage = (input, e) => {\r\n formHelper.setToQueryTextInputValue(query, input, e.value);\r\n queryUpdated();\r\n };\r\n\r\n return (\r\n \r\n
    \r\n {categoryFilter1 && (\r\n
    \r\n handleFilterChange(categoryFilter1, e)}\r\n {...categoryFilter1}\r\n />\r\n
    \r\n )}\r\n {categoryFilter2 && (\r\n
    \r\n handleFilterChange(categoryFilter2, e)}\r\n {...categoryFilter2}\r\n />\r\n
    \r\n )}\r\n
    \r\n handleTextInputChnage(searchQueryInput, e)}\r\n {...searchQueryInput}\r\n />\r\n
    \r\n
    \r\n {tagFilter && (\r\n handleFilterChange(tagFilter, e)}\r\n {...tagFilter}\r\n />\r\n )}\r\n \r\n );\r\n};\r\n\r\nSearchForm.propTypes = {\r\n categoryFilter1: PropTypes.exact(CategoryFilter.propTypes),\r\n categoryFilter2: PropTypes.exact(CategoryFilter.propTypes),\r\n searchQueryInput: PropTypes.exact(SearchQueryInput.propTypes).isRequired,\r\n tagFilter: PropTypes.exact(TagFilter.propTypes),\r\n formAriaLabel: PropTypes.string,\r\n onChange: PropTypes.func,\r\n onInit: PropTypes.func,\r\n};\r\n\r\nexport default SearchForm;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Image from 'components/image';\r\nimport Icon from 'components/icon/icon';\r\n\r\nconst Teaser = ({\r\n heading,\r\n image,\r\n tags,\r\n url,\r\n trackUrl,\r\n cookTime,\r\n difficulty,\r\n}) => {\r\n let TeaserTag = url ? 'a' : 'div';\r\n let attributes = url ? { href: url } : {};\r\n\r\n const handleLinkClick = e => {\r\n if (trackUrl) {\r\n var defaultBehaviour = e.ctrlKey;\r\n if (!defaultBehaviour) {\r\n e.preventDefault();\r\n }\r\n fetch(trackUrl, {\r\n credentials: 'same-origin',\r\n }).then(_response => {\r\n if (!defaultBehaviour && url) {\r\n window.location.href = url;\r\n }\r\n });\r\n }\r\n };\r\n\r\n return (\r\n \r\n {image && }\r\n {tags && (\r\n
    {tags.join(', ')}
    \r\n )}\r\n {heading &&

    {heading}

    }\r\n {(cookTime || difficulty) && (\r\n
    \r\n {cookTime && (\r\n
    \r\n \r\n \r\n {cookTime}\r\n \r\n
    \r\n )}\r\n {difficulty && (\r\n
    \r\n \r\n \r\n {difficulty}\r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nTeaser.propTypes = {\r\n heading: PropTypes.string,\r\n image: PropTypes.exact(Image.propTypes),\r\n tags: PropTypes.arrayOf(PropTypes.string),\r\n url: PropTypes.string,\r\n trackUrl: PropTypes.string,\r\n cookTime: PropTypes.string,\r\n difficulty: PropTypes.string,\r\n};\r\nexport default Teaser;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Teaser from 'components/teaser/teaser';\r\n\r\nconst SearchResult = ({ teasers }) => {\r\n return (\r\n
    \r\n {teasers && (\r\n
      \r\n {teasers.map((teaser, index) => (\r\n
    • \r\n \r\n
    • \r\n ))}\r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nSearchResult.propTypes = {\r\n teasers: PropTypes.arrayOf(PropTypes.exact(Teaser.propTypes)),\r\n totalCount: PropTypes.number,\r\n};\r\n\r\nSearchResult.empty = () => {\r\n return {\r\n teasers: [],\r\n totalCount: 0,\r\n };\r\n};\r\n\r\nexport default SearchResult;\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, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SearchForm from './search-form';\r\nimport SearchResult from 'components/search-result';\r\nimport api from '../../js/api-helper';\r\nimport replaceQueryParameters from '@creuna/utils/replace-query-parameters';\r\n\r\nimport stringHelper from 'js/string-helper';\r\nimport Spinner from 'components/spinner';\r\nimport formHelper from 'js/form-helper';\r\n\r\nconst Search = ({\r\n headingTemplate,\r\n heading,\r\n searchForm,\r\n searchEndpoint,\r\n pageSize,\r\n errorText,\r\n noResultsText,\r\n loadMoreText,\r\n loadingText,\r\n}) => {\r\n const [result, setResult] = useState(SearchResult.empty());\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [showError, setShowError] = useState(false);\r\n const [searchQuery, setSearchQuery] = useState(null);\r\n const [currentHeading, setCurrentHeading] = useState(null);\r\n const [page, setPage] = useState(1);\r\n\r\n const updateHeading = searchText => {\r\n if (searchText) {\r\n if (headingTemplate) {\r\n var newHeading = stringHelper.format(headingTemplate, searchText);\r\n setCurrentHeading(newHeading);\r\n }\r\n } else {\r\n setCurrentHeading(heading);\r\n }\r\n };\r\n\r\n const search = () => {\r\n const currentResult = result;\r\n setIsLoading(true);\r\n setShowError(false);\r\n let query = Object.assign({}, searchQuery);\r\n formHelper.updatePageQueryString(query);\r\n query = Object.assign(query, { page: page, pageSize: pageSize });\r\n var searchUrl = replaceQueryParameters(searchEndpoint, query);\r\n api\r\n .execute(searchUrl)\r\n .then(response => {\r\n setIsLoading(false);\r\n const loadedResult = response;\r\n loadedResult.teasers = [\r\n ...currentResult.teasers,\r\n ...loadedResult.teasers,\r\n ];\r\n setResult(loadedResult);\r\n })\r\n .catch(() => {\r\n setShowError(true);\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (searchQuery) {\r\n search();\r\n }\r\n }, [searchQuery, page]);\r\n\r\n const handleFormChange = e => {\r\n setSearchQuery(Object.assign({}, e.query));\r\n updateHeading(e.searchText);\r\n setPage(1);\r\n setResult(SearchResult.empty());\r\n };\r\n\r\n const handleLoadMore = () => {\r\n setPage(page + 1);\r\n };\r\n\r\n return (\r\n
    \r\n {currentHeading &&

    {currentHeading}

    }\r\n
    \r\n \r\n\r\n {isLoading && }\r\n
    \r\n {showError && errorText &&
    {errorText}
    }\r\n {result.teasers.length > 0 ? (\r\n \r\n ) : (\r\n !isLoading && noResultsText &&
    {noResultsText}
    \r\n )}\r\n {result.teasers.length < result.totalCount && (\r\n
    \r\n \r\n {isLoading && }\r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nSearch.propTypes = {\r\n headingTemplate: PropTypes.string,\r\n heading: PropTypes.string,\r\n searchForm: PropTypes.exact(SearchForm.propTypes).isRequired,\r\n noResultsText: PropTypes.string.isRequired,\r\n errorText: PropTypes.string.isRequired,\r\n searchEndpoint: PropTypes.string.isRequired,\r\n pageSize: PropTypes.number,\r\n loadMoreText: PropTypes.string.isRequired,\r\n loadingText: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default Search;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport LinkButton from 'components/link-button';\r\n\r\nconst SeeAlsoLinks = ({ heading, links }) => {\r\n return (\r\n
    \r\n {heading &&

    {heading}

    }\r\n {links && (\r\n
      \r\n {links.map((link, index) => (\r\n
    • \r\n \r\n
    • \r\n ))}\r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nSeeAlsoLinks.propTypes = {\r\n heading: PropTypes.string,\r\n links: PropTypes.arrayOf(PropTypes.exact(LinkButton.propTypes)),\r\n};\r\n\r\nexport default SeeAlsoLinks;\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 LinkButton from 'components/link-button';\r\nimport cn from 'classnames';\r\n\r\nconst sizes = {\r\n default: 'default',\r\n small: 'small',\r\n};\r\n\r\nconst SimpleListTeaser = ({ image, heading, introHtml, link, size }) => {\r\n const _size = size || sizes.default;\r\n return (\r\n \r\n {image && (\r\n \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 {link && link.text && (\r\n {link.text}\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nSimpleListTeaser.propTypes = {\r\n image: PropTypes.exact(Image.propTypes),\r\n heading: PropTypes.string,\r\n introHtml: PropTypes.string,\r\n link: PropTypes.exact(LinkButton.propTypes),\r\n size: PropTypes.oneOf(Object.values(sizes)),\r\n};\r\n\r\nSimpleListTeaser.viewModelMeta = {\r\n size: 'ignore',\r\n};\r\n\r\nexport default SimpleListTeaser;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SimpleListTeaser from './simple-list-teaser';\r\n\r\nconst SimpleList = ({ topTeaser, teasers }) => {\r\n return (\r\n
    \r\n {topTeaser && }\r\n
      \r\n {teasers.map((teaser, index) => (\r\n
    • \r\n \r\n
    • \r\n ))}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nSimpleList.propTypes = {\r\n topTeaser: PropTypes.exact(SimpleListTeaser.propTypes),\r\n teasers: PropTypes.arrayOf(PropTypes.exact(SimpleListTeaser.propTypes)),\r\n};\r\n\r\nexport default SimpleList;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Teaser from 'components/teaser/teaser';\r\nimport LinkButton from 'components/link-button/link-button';\r\n\r\nconst TeasersList = ({ heading, teasers, seeMoreLink }) => {\r\n return (\r\n
    \r\n {heading &&

    {heading}

    }\r\n
      \r\n {teasers.map((teaser, index) => (\r\n
    • \r\n \r\n
    • \r\n ))}\r\n
    \r\n {seeMoreLink && (\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nTeasersList.propTypes = {\r\n heading: PropTypes.string,\r\n teasers: PropTypes.arrayOf(PropTypes.exact(Teaser.propTypes)).isRequired,\r\n seeMoreLink: PropTypes.exact(LinkButton.propTypes),\r\n};\r\nexport default TeasersList;\r\n","import React, { useState, useCallback, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Icon from 'components/icon';\r\nimport useToggle from 'hooks/use-toggle';\r\nimport Image from 'components/image';\r\nimport Modal from 'components/modal';\r\nimport Spinner from 'components/spinner';\r\nimport YouTube from 'react-youtube';\r\nimport cn from 'classnames';\r\nimport useEvent from 'hooks/use-event';\r\n\r\nconst Video = ({\r\n logo,\r\n thumbnailImage,\r\n closeLabel,\r\n videoId,\r\n sources,\r\n autoplay,\r\n showRelated,\r\n modalTitleAriaLabel = 'Modalvindu for videoavspiller',\r\n}) => {\r\n const [popupIsOpened, togglePopup, hidePopup] = useToggle(false);\r\n const [youtubePlayerReady, setYoutubePlayerReady] = useState(false);\r\n const videoBlock = useRef();\r\n\r\n useEvent('keydown', event => {\r\n if (event.key === 'Escape') {\r\n hidePopup();\r\n }\r\n });\r\n\r\n const youtubeVideoOptions = {\r\n height: '390',\r\n width: '640',\r\n playerVars: {\r\n autoplay: autoplay ? 1 : 0,\r\n rel: showRelated ? 1 : 0,\r\n },\r\n };\r\n\r\n const localVideoOptions = {\r\n ...(autoplay ? { autoPlay: 'autoplay' } : {}),\r\n };\r\n\r\n const onReady = useCallback(() => {\r\n setYoutubePlayerReady(true);\r\n if (videoBlock && videoBlock.current) {\r\n const youtubeIframe = videoBlock.current.querySelector('iframe');\r\n\r\n if (youtubeIframe) {\r\n youtubeIframe.setAttribute('tabindex', '0');\r\n }\r\n }\r\n }, [videoBlock]);\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n {thumbnailImage && thumbnailImage.src && (\r\n \r\n )}\r\n \r\n {sources && sources.length > 0 ? (\r\n
    \r\n \r\n {sources.map((source, index) => (\r\n \r\n ))}\r\n \r\n
    \r\n ) : (\r\n videoId && (\r\n
    \r\n {!youtubePlayerReady && }\r\n \r\n
    \r\n )\r\n )}\r\n \r\n
    \r\n );\r\n};\r\n\r\nVideo.propTypes = {\r\n logo: PropTypes.exact(Image.propTypes),\r\n closeLabel: PropTypes.string,\r\n thumbnailImage: PropTypes.exact(Image.propTypes),\r\n videoId: PropTypes.string,\r\n sources: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n url: PropTypes.string.isRequired,\r\n mimeType: PropTypes.string.isRequired,\r\n })\r\n ),\r\n autoplay: PropTypes.bool,\r\n showRelated: PropTypes.bool,\r\n modalTitleAriaLabel: PropTypes.string,\r\n};\r\n\r\nexport default Video;\r\n","// 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__.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};","// 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// no chunk on demand loading\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[\"webpackChunkFiskesprell_Web\"] = globalThis[\"webpackChunkFiskesprell_Web\"] || [];\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__(1038)))\nvar __webpack_exports__ = __webpack_require__.O(undefined, [121], () => (__webpack_require__(273)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","React","ClockBig","props","createElement","defaultProps","module","exports","default","___EXPOSE_LOADER_IMPORT___","___EXPOSE_LOADER_GLOBAL_THIS___","Instagram","Facebook","Youtube","CookBig","Play","Clock","Menu","req","require","keys","reduce","icons","filename","id","replace","component","customDefaultProps","_objectSpread","Cook","document","documentElement","Object","defineProperty","HTMLElement","prototype","get","self","this","update","fn","value","classes","className","split","index","indexOf","join","ret","add","push","remove","splice","toggle","contains","item","i","length","touchEndHappened","classListPolyfill","addEventListener","onTouchStart","classList","onTouchEnd","setTimeout","onMouseDown","keyCodeWhiteList","e","which","inputDetection","Arrow","Close","Search","Print","map","webpackContext","webpackContextResolve","__webpack_require__","o","Error","code","resolve","RichText","_ref","text","cn","dangerouslySetInnerHTML","__html","propTypes","PropTypes","AccordionBlock","title","items","AccordionComponent","allowMultipleExpanded","allowZeroExpanded","AccordionItem","key","AccordionItemState","_ref2","expanded","Fragment","AccordionItemHeading","AccordionItemButton","name","AccordionItemPanel","textHtml","isRequired","ariaCurrentTypes","page","step","location","true","Link","ariaCurrent","openInNewTab","url","tabindex","ariaLabelledBy","ariaDescribedBy","href","target","tabIndex","rel","values","Breadcrumbs","links","ariaLabel","_extends","transforms","downFit","downFill","skipForResizeExtensions","queryParameters","width","undefined","height","transform","center","checkImageCanBeResized","extension","pop","trim","toLowerCase","some","serializeCenter","x","y","concat","buildResizeUrl","centerX","centerY","resizeUrl","replaceQueryParameters","assign","resizeQuery","queryHash","CryptoJs","hash","calcImageWidth","containerWidth","resolution","Math","ceil","window","devicePixelRatio","calcImageHeight","containerHeight","Transforms","Image","constructor","arguments","_defineProperty","imageResizer","src","canBeResized","ratio","containerOffsetWidth","containerOffsetHeight","fill","container","offsetWidth","offsetHeight","autoTransform","fit","autoCalcWidthOnly","autoCalcHeightOnly","skipByWidth","state","skipByHeight","widthResolution","heightResolution","newWidth","newHeight","newRatio","setState","previousState","focusPoint","debounce","handleResize","componentDidMount","debouncedHandleResize","componentWillUnmount","removeEventListener","componentDidUpdate","render","fluid","style","backgroundImage","backgroundPosition","ref","c","alt","_Image","Contact","image","phoneLink","mailLink","ContactInformation","heading","ContactUs","contacts","ContentArea","blocks","block","Block","Components","componentName","console","error","CoursePartLink","partId","onClick","active","disabled","Spinner","CourseContent","coursePartsLinks","loadCoursePartEndpoint","loadingText","errorText","prevButtonText","nextButtonText","navigationAriaLabel","numberOfPartsLinks","partsLinksAreExist","isLoading","setIsLoading","useState","setError","pageContent","setPageContent","pageId","setPageId","scrollToTopOfContent","scrollToElement","offset","ease","duration","firstPartsLinkIsActive","lastPartsLinkIsActive","currentPartsLinkIndex","findIndex","p","useEffect","loadPageContent","xhr","XMLHttpRequest","query","onreadystatechange","readyState","DONE","status","response","onerror","open","send","link","handleNavigate","activePartId","handlePrevButtonClick","handleNextButtonClick","useEvent","eventName","eventHandler","dependencies","callback","current","DropDown","label","onOptionClicked","selectedOptionIndex","isOpen","setIsOpen","dropdownRef","useClickOutside","close","toggling","handleOptionClick","EmbeddableFormBlock","html","Icon","useFill","focusable","themes","blueWithIcon","QuickSearchPanel","searchInputLabel","placeholder","searchPageUrl","searchInputName","helpTextHtml","submitButtonText","formAriaLabel","autocompleteEndpoint","theme","inputRef","focus","action","method","role","type","LinkButton","iconName","subscribe","ErrorBlock","errorCode","bigText","smallText","search","Factbox","backgroundColor","icon","FactboxWithTextBlock","factbox","factboxPosition","twoColumns","SocialLink","instagram","facebook","youtube","Footer","content1Html","content2Html","subscribeButton","socialLinks","copyrightText","cookiesLink","socialLink","prefixesDictionary","GettingStartedLink","introHtml","uniqueId","useMemo","idHelper","prefix","headingId","descriptionId","FrontPageHero","backgroundImageMobile","mainHeading","secondaryHeadingLeft","secondaryHeadingRight","gettingStartedLinks","gettingStartedReadMoreLink","isDesktopView","body","clientWidth","imageWidth","setImageWidth","imageSource","setImageSource","isDesktop","screen","gettingStartedLink","FullWidthBanner","readMoreButton","overlay","GettingStartedTeaser","GettingStartedList","teasers","teaser","useToggle","initiallyActive","isActive","setIsActive","useCallback","activate","MenuLink","isCurrent","MainMenu","firstColumnLinks","secondColumnLinks","thirdColumnHeading","thirdColumnLinks","subscribeLink","menuIsOpened","toggleMenu","onMenuButtonClick","HeaderMenu","headerMenuLinks","Header","logo","mainMenu","quickSearchPanel","headerMenu","buttonSearchAriaLabel","buttonMenuAriaLabel","buttonCloseAriaLabel","quickSearchPanelTitleAriaLabel","mainMenuTitleAriaLabel","popupIsOpened","togglePopup","hidePopup","searchMode","setSearchModIsActive","onSearchButtonClick","navigationRef","event","FocusTrap","header__popup_opened","expandedMenuImage","ImageWithCaption","caption","imageSizeClassName","gallerySettings","dots","centerMode","infinite","speed","centerPadding","slidesToScroll","slidesToShow","galleryImageClassName","ImageGallery","imageGalleryContainer","currentSlideIndex","setCurrentSlideIndex","updateNavigationControlsPosition","slideHeight","slideIndex","currentSlideImage","querySelectorAll","querySelector","getSlideHeight","sliderDots","sliderArrows","top","display","debouncedRecalculateElementsPosition","Slider","afterChange","ImageWithTextBlock","imagePosition","IngredientBase","Ingredients","forAdults","forChildren","forKindergarten","setSelectedOptionIndex","filter","Boolean","selectedItem","errorMessageTopic","messageTopic","onTopic","topic","func","PubSub","message","_ref3","Message","isErrorMessage","isVisible","hide","show","messenger","Modal","isOpened","closeLabel","onClose","children","titleAriaLabel","PagesListItem","linkUrlExists","ItemContent","SelectOption","isSelected","onChange","handleChange","TagFilter","options","clearLabel","multiselect","clearOption","setClearOption","optionsMap","setOptions","Map","find","refreshOptions","handleOptionChange","targetOption","option","selectedValues","handleClearOptionChange","Timeout","delay","clear","cleared","clearTimeout","getCallbackEnhancedData","data","callbackTimeout","eventCallback","isRunningOnClient","dataLayer","forEach","dataObject","defaultFetchOptions","headers","Accept","credentials","parseResponse","json","then","handleUserMessages","messageToUser","success","_ref4","handleAnalytics","analytics","handleNotOk","ok","statusText","handleResponse","payload","handleFetchError","getData","Promise","reject","request","fetch","catch","endpoint","post","JSON","stringify","setQueryValue","_getUndefinedIfEmpty","createQuery","currentOptions","textInput","currentValue","newUrl","toString","history","replaceState","PagesList","tagFilter","loadItemsEndpoint","pages","setPages","setQuery","buildDefaultQuery","formHelper","loadPages","loadUrl","api","listItems","listItem","PrintButton","printPage","print","Answer","isCorrect","checked","showResults","isMultipleChoice","Question","answers","questionNumber","selectNoteText","showValidation","checkedValue","setIsChecked","checkedItems","setCheckedItems","a","checkIfMultySelected","every","v","answer","Questionnaire","getResultButtonText","restartButtonText","questions","setShowResults","qIndex","setQIndex","questionsList","setQuestionsList","setShowValidation","setAllQuestionsUnselected","tmpArr","q","onQuestionChange","question","onRestartClick","preventDefault","onGetResultClick","selectedAnswers","ReactComponent","RecipePageDetails","cookTime","difficulty","CategoryFilter","hasTouch","setHasTouch","fakeSelectRef","selectedOption","setSelectedOption","isMounted","setIsMounted","useIsMounted","currentOption","SearchQueryInput","submitButtonAriaLabel","setCurrentValue","SearchForm","categoryFilter1","categoryFilter2","searchQueryInput","onInit","initQuery","buildInitQuery","searchText","queryUpdated","handleFilterChange","handleTextInputChnage","input","Teaser","tags","trackUrl","TeaserTag","attributes","defaultBehaviour","ctrlKey","_response","SearchResult","totalCount","empty","string","_len","args","Array","_key","match","number","headingTemplate","searchForm","searchEndpoint","pageSize","noResultsText","loadMoreText","result","setResult","showError","setShowError","searchQuery","setSearchQuery","currentHeading","setCurrentHeading","setPage","currentResult","searchUrl","loadedResult","handleFormChange","newHeading","stringHelper","updateHeading","handleLoadMore","SeeAlsoLinks","sizes","small","SimpleListTeaser","size","_size","SimpleList","topTeaser","TeasersList","seeMoreLink","Video","thumbnailImage","videoId","sources","autoplay","showRelated","modalTitleAriaLabel","youtubePlayerReady","setYoutubePlayerReady","videoBlock","useRef","youtubeVideoOptions","playerVars","localVideoOptions","autoPlay","onReady","youtubeIframe","setAttribute","poster","controls","loop","muted","source","mimeType","YouTube","opts","containerClassName","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","call","m","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","r","n","getter","__esModule","d","definition","enumerable","g","globalThis","Function","obj","prop","hasOwnProperty","Symbol","toStringTag","nmd","paths","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","bind","__webpack_exports__"],"sourceRoot":""}