{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?4745","webpack:///./src/components/common/IconButton.vue?fe47","webpack:///./src/utils/query-parser.ts","webpack:///./src/composables/use-embedded-state.ts","webpack:///./src/components/common/Loader.vue?46bd","webpack:///./src/services/api.ts","webpack:///./src/composables/use-loader.ts","webpack:///./src/components/common/Link.vue?b23b","webpack:///./src/components/common/Link.vue","webpack:///./src/components/common/Link.vue?0fd2","webpack:///./src/services/errors.ts","webpack:///./src/utils/vue-lifecycle.ts","webpack:///./src/i18n/index.ts","webpack:///./src/i18n/locales/nl.ts","webpack:///./src/components/common/FullscreenLoader.vue?81ed","webpack:///./src/services/branding-service.ts","webpack:///./src/utils/branding.ts","webpack:///./src/composables/use-branding.ts","webpack:///./src/components/common/Icon.vue?9f47","webpack:///./src/components/common/Icon.vue","webpack:///./src/components/common/Icon.vue?2d3b","webpack:///./src/utils/logger.ts","webpack:///./src/views/Layouts/Layout.vue?6bb1","webpack:///./src/utils/page-transition.ts","webpack:///./src/views/Layouts/Layout.vue","webpack:///./src/views/Layouts/Layout.vue?efdb","webpack:///./src/views/NotFoundPage.vue?b45a","webpack:///./src/views/NotFoundPage.vue","webpack:///./src/views/NotFoundPage.vue?3324","webpack:///./src/router/index.ts","webpack:///./src/components/common/Link.vue?9756","webpack:///./src/components/common/Loader.vue?e791","webpack:///./src/components/common/Loader.vue","webpack:///./src/components/common/Loader.vue?657f","webpack:///./src/App.vue?69f5","webpack:///./src/utils/lazy-image-loader.ts","webpack:///./src/App.vue","webpack:///./src/App.vue?ae2f","webpack:///./src/utils/polyfills.ts","webpack:///./src/directives/click-outside.ts","webpack:///./src/utils/view-height-helper.ts","webpack:///./src/components/common/Columns.vue","webpack:///./src/components/common/Columns.vue?6c25","webpack:///./src/main.ts","webpack:///./src/components/common/Columns.vue?6a61","webpack:///./src/composables/use-route-history.ts","webpack:///./src/views/Layouts/Layout.vue?4364","webpack:///./src/components/common/IconButton.vue?2936","webpack:///./src/components/common/IconButton.vue","webpack:///./src/components/common/IconButton.vue?306f","webpack:///./src/components/common/FullscreenLoader.vue?deb7","webpack:///./src/components/common/FullscreenLoader.vue","webpack:///./src/components/common/FullscreenLoader.vue?76be"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","parseQueryBoolean","queryBoolean","isEmbedded","showHighlights","useEmbeddedState","setEmbeddedState","query","embed","highlights","BASE_URL","url","options","params","method","headers","isAxiosError","response","status","mapResponseToError","cmsRequest","path","prefix","locale","global","mapPreviewUrl","newUrl","URL","location","origin","searchParams","preview","currentRoute","set","toString","useLoader","initialLoading","loading","startLoading","stopLoading","_hoisted_1","render","_ctx","_cache","$props","$setup","$data","$options","_component_Icon","isExternal","class","to","link","targetIsBlank","noFollow","$attrs","default","icon","$slots","text","_","props","required","String","setup","includes","__exports__","AppError","HttpResponseError","statusCode","metadata","NotFoundError","watchWhileActive","source","cb","watcher","Locale","nl","app","infoPopup","openLabel","genericPopup","closeLabel","genericPanel","promptPopup","confirmLabel","audioFallback","noSupport","linkText","typeNotSupported","video","startVideoLabel","noMobile","buttonText","copyright","showLabel","image","openFullscreenLabel","closeFullscreenLabel","nextLabel","previousLabel","navigation","openMenu","closeMenu","map","challenges","expeditions","logbook","collection","mapLogbookLink","logbookOverviewLink","logbookEditorLink","popupTitle","objects","timeline","resetLocation","menu","panelTitle","search","placeholder","quickLinks","collectionSuggestions","occurrenceSuggestions","noSuggestionsFound","clearSearchLabel","openSearchLabel","intro","openMapButton","completedChallengesListLabel","expedition","startYourExpeditionButton","chapterExpanderOpenLabel","chapterExpanderCloseLabel","currentChapterLabel","chapterLabel","totalChapterLabel","openMap","backToMap","quizTitle","quizExplanation","quizCorrect","quizWrong","quizButtonLabel","openHotspotLabel","title","showButtonLabel","hideButtonLabel","objectDetail","detailPanelCloseLabel","loadingLabel","missingImage","imageAlt","highlightBlockTitlePrefix","enrichmentLinksTitle","errorMessageNotFound","errorMessageDefault","errorBackButton","wikidata","labelAnimalSound","buttonTextTaxonRangeMap","buttonTextSizeComparison","inaccurateLocation","collectButtonLabel","notFound","titleFirstPart","titleSecondPart","foregroundImageAlt","editorEmptyState","buttonLabel","objectControls","deleteLabel","bringToFrontLabel","sendToBackLabel","colorBlackLabel","colorWhiteLabel","colorRedLabel","shapeEditor","menuLabel","rectangleLabel","ellipseLabel","lineLabel","triangleLabel","textEditor","defaultText","collectionEditor","collectionMenuTitle","collectionMenuObjects","addButtonLabel","publish","modalTitle","publishButtonText","titleInputLabel","validationErrorText","errorText","previewImageLabel","page","onboardingGoToMap","showMoreLabelImages","showLessLabelImages","loadMoreItemsLabel","titlePartOne","deleteTitle","deleteText","cancelDelete","confirmDelete","share","nativePopup","expand","collapse","facebook","twitter","pinterest","view","copyrightIntro","copyrightDerivedExplanation","publishedLogbookCard","curatedText","DEFAULT_LOCALE","NL","i18n","fallbackLocale","legacy","messages","getBranding","loadFonts","customFonts","fontPromises","lightFont","newFont","fontFamily","regularFont","mediumFont","robotoObserver","weight","load","font","family","cssVariable","fontFace","FontFace","display","loadedFont","fonts","add","documentElement","style","setProperty","brandingInfo","useBranding","applyBranding","primaryColor","secondaryColor","Logger","optionalParams","warn","id","_hoisted_2","ref","_component_router_view","_component_Loader","_component_FullscreenLoader","Component","onEnter","enterTransition","onLeave","leaveTransition","css","appear","onRegisterTransitionDelay","registerTransitionDelay","$route","transitioning","pageLoadPromise","pageLoading","debounced","getCurtainPageTransitionOptions","leave","duration","opacity","easing","enter","components","Loader","FullscreenLoader","pageTransitionCurtainEl","route","stopInitialLoading","stopPageLoading","initialized","el","done","enterTransitionPromise","createEnterTransitionPromise","curtainAnimeOptions","targets","complete","leaveTransitionPromise","createLeaveTransitionPromise","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_component_IconButton","logoLarge","alt","mapRouteName","transparent","arrow","IconButton","getRouteName","Route","Map","routePaths","Expedition","NotSupported","NotFound","Content","LogbookOverview","LogbookEditor","Logbook","Collection","localePath","values","join","getRoute","currentLocale","routes","component","Layout","children","flatMap","NotFoundPage","router","history","scrollBehavior","from","savedPosition","top","setRouteHistory","beforeEach","next","xmlns","viewBox","appId","this","observer","images","imageCount","supportsNativeLazyLoading","HTMLImageElement","IntersectionObserver","onEntry","rootMargin","prepareLazyLoadForImages","querySelectorAll","observeDomChanges","forEach","img","LazyImageLoader","setImage","observeImages","observe","entries","entry","isIntersecting","HTMLSourceElement","unobserve","disconnect","callback","mutationsList","mutation","addedNodes","node","nodeType","Node","ELEMENT_NODE","mutationObserver","MutationObserver","siteEl","getElementById","attributes","childList","subtree","imageSrc","imageSrcset","setSrcValues","addEventListener","classList","parentElement","loadPolyfills","smoothscroll","polyfill","clickOutside","beforeMount","binding","clickOutsideEvent","contains","capture","unmounted","removeEventListener","setViewportCssVariable","vh","innerHeight","App","use","Icon","Columns","Link","directive","mount","routeHistory","useRouteHistory","small","onClick","$event","$emit","iconName","emits","Boolean","debouncedLoading","debouncedLoad"],"mappings":"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","file":"app.fdea3cbab04f9c285e69.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"collection-page~content-page~expedition-page~logbook-editor-page~logbook-overview-page~logbook-page~map-page\":\"collection-page~content-page~expedition-page~logbook-editor-page~logbook-overview-page~logbook-page~map-page\",\"collection-page~expedition-page~logbook-editor-page~logbook-page~map-page\":\"collection-page~expedition-page~logbook-editor-page~logbook-page~map-page\",\"collection-page~expedition-page~logbook-page~map-page\":\"collection-page~expedition-page~logbook-page~map-page\",\"collection-page~logbook-editor-page\":\"collection-page~logbook-editor-page\",\"collection-page\":\"collection-page\",\"expedition-page~map-page\":\"expedition-page~map-page\",\"expedition-page\":\"expedition-page\",\"map-page\":\"map-page\",\"logbook-page\":\"logbook-page\",\"logbook-editor-page\":\"logbook-editor-page\",\"content-page\":\"content-page\",\"logbook-overview-page\":\"logbook-overview-page\",\"smoothscroll-polyfill\":\"smoothscroll-polyfill\"}[chunkId]||chunkId) + \".\" + {\"collection-page~content-page~expedition-page~logbook-editor-page~logbook-overview-page~logbook-page~map-page\":\"b771f28349bbaf92e6ea\",\"collection-page~expedition-page~logbook-editor-page~logbook-page~map-page\":\"e5bb32fed09427ec6a8f\",\"collection-page~expedition-page~logbook-page~map-page\":\"166e9239de83c16eb163\",\"collection-page~logbook-editor-page\":\"848906c451d2225dbbca\",\"collection-page\":\"ff2b15ca1bef4e00c2c2\",\"expedition-page~map-page\":\"3057240968c738885a8b\",\"expedition-page\":\"641cf8782827af4b0d48\",\"map-page\":\"c2daabd928aa8afeb70c\",\"logbook-page\":\"3a5f16e2b55ce035aa4c\",\"logbook-editor-page\":\"42299f207dee382e08ee\",\"content-page\":\"2d29528e78a53dfce838\",\"logbook-overview-page\":\"8970c9d08a4243fbef96\",\"smoothscroll-polyfill\":\"d25300c011499100967b\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"collection-page~content-page~expedition-page~logbook-editor-page~logbook-overview-page~logbook-page~map-page\":1,\"collection-page~expedition-page~logbook-editor-page~logbook-page~map-page\":1,\"collection-page~expedition-page~logbook-page~map-page\":1,\"collection-page~logbook-editor-page\":1,\"collection-page\":1,\"expedition-page~map-page\":1,\"expedition-page\":1,\"map-page\":1,\"logbook-page\":1,\"logbook-editor-page\":1,\"content-page\":1,\"logbook-overview-page\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"\" + ({\"collection-page~content-page~expedition-page~logbook-editor-page~logbook-overview-page~logbook-page~map-page\":\"collection-page~content-page~expedition-page~logbook-editor-page~logbook-overview-page~logbook-page~map-page\",\"collection-page~expedition-page~logbook-editor-page~logbook-page~map-page\":\"collection-page~expedition-page~logbook-editor-page~logbook-page~map-page\",\"collection-page~expedition-page~logbook-page~map-page\":\"collection-page~expedition-page~logbook-page~map-page\",\"collection-page~logbook-editor-page\":\"collection-page~logbook-editor-page\",\"collection-page\":\"collection-page\",\"expedition-page~map-page\":\"expedition-page~map-page\",\"expedition-page\":\"expedition-page\",\"map-page\":\"map-page\",\"logbook-page\":\"logbook-page\",\"logbook-editor-page\":\"logbook-editor-page\",\"content-page\":\"content-page\",\"logbook-overview-page\":\"logbook-overview-page\",\"smoothscroll-polyfill\":\"smoothscroll-polyfill\"}[chunkId]||chunkId) + \".\" + {\"collection-page~content-page~expedition-page~logbook-editor-page~logbook-overview-page~logbook-page~map-page\":\"b8cd4aa5be9a051251a0\",\"collection-page~expedition-page~logbook-editor-page~logbook-page~map-page\":\"68cc9a2f0de87620b600\",\"collection-page~expedition-page~logbook-page~map-page\":\"aa70f5fc5b44dc357117\",\"collection-page~logbook-editor-page\":\"d6c27d89c5b6329f3aba\",\"collection-page\":\"17e69a9b2b7f16ec302d\",\"expedition-page~map-page\":\"91de1dee698aa6ca9255\",\"expedition-page\":\"6375500915a37321da36\",\"map-page\":\"6a529524f42bdde176eb\",\"logbook-page\":\"d9856043a7abfba98b43\",\"logbook-editor-page\":\"9be4f175e7f9ffb7db7a\",\"content-page\":\"64f05d699ed4de100849\",\"logbook-overview-page\":\"52a9a640a7725f244685\",\"smoothscroll-polyfill\":\"31d6cfe0d16ae931b73c\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./App.vue?vue&type=style&index=0&id=4a61fd7c&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./IconButton.vue?vue&type=style&index=0&id=54b0f3d0&lang=scss&scoped=true\"","import { LocationQueryValue } from 'vue-router';\n\nexport function parseQueryBoolean(queryBoolean: LocationQueryValue | LocationQueryValue[]) {\n  return queryBoolean === 'true';\n}\n","import { parseQueryBoolean } from '@/utils/query-parser';\nimport { ref } from 'vue';\nimport { LocationQuery } from 'vue-router';\n\nconst isEmbedded = ref<boolean>(false);\nconst showHighlights = ref<boolean>(true);\n\nexport function useEmbeddedState() {\n  function setEmbeddedState(query: LocationQuery) {\n    if (query.embed === undefined) return;\n\n    isEmbedded.value = parseQueryBoolean(query.embed);\n    // Only hide highlights when is set to false, otherwise always show\n    showHighlights.value =\n      !query.highlights || query.highlights !== 'false' ? true : parseQueryBoolean(query.highlights);\n  }\n\n  return { setEmbeddedState, isEmbedded, showHighlights };\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Loader.vue?vue&type=style&index=0&id=55d851e4&lang=scss&scoped=true\"","import axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\n\nimport { AppError, HttpResponseError, NotFoundError } from '@/services/errors';\nimport { i18n } from '@/i18n';\nimport { router } from '@/router';\nimport logger from '@/utils/logger';\n\nexport const BASE_URL = '/api';\n\nexport type CmsRequestOptions = AxiosRequestConfig & { prefix?: boolean };\n\nexport const request = async <T>(url: string, options: AxiosRequestConfig): Promise<AxiosResponse<T>> => {\n  const { params, data, method, headers } = options;\n  try {\n    return await axios({\n      method,\n      url,\n      params,\n      data,\n      headers,\n    });\n  } catch (e) {\n    if ((e as AxiosError).isAxiosError) {\n      const error = e as AxiosError;\n      const response = error.response;\n      if (response?.status) {\n        logger.error(`Http error status ${response.status}`, e);\n        throw mapResponseToError(response);\n      } else {\n        // No response returned, so there was a connection issue.\n        throw new AppError('ConnectionError');\n      }\n    } else {\n      throw e;\n    }\n  }\n};\n\n/**\n * Handles CMS fetch request with current locale and optional preview token\n * @param {string} path - relative url to specific api endpoint resource\n * @param {AxiosRequestConfig} options - axios request configuration options\n * @returns {Promise<AxiosResponse<T>>} - promise with axios response containing fetched data\n */\nexport const cmsRequest = async <T>(\n  path: string,\n  { prefix = true, ...options }: CmsRequestOptions,\n): Promise<AxiosResponse<T>> => {\n  const locale = i18n.global.locale.value;\n  const url = prefix ? `${BASE_URL}/${locale}${path}` : path;\n\n  return request<T>(mapPreviewUrl(url), options);\n};\n\n/**\n * Checks the current route for a preview token and if it exists returns the given url with this token as a query parameter\n * @param {string} url - relative url to specific api endpoint resource\n * @returns {string} - url with a possible preview token query parameter\n */\nconst mapPreviewUrl = (url: string) => {\n  const newUrl = new URL(url, window.location.origin);\n  const { searchParams } = newUrl;\n  const { preview } = router.currentRoute.value.query;\n\n  if (typeof preview === 'string') {\n    searchParams.set('preview', preview);\n  }\n\n  return newUrl.toString();\n};\n\nconst mapResponseToError = (response: AxiosResponse): HttpResponseError => {\n  switch (response.status) {\n    // Add specific errors for status codes as we go\n    case 404: {\n      return new NotFoundError(`Not found`);\n    }\n    default: {\n      return new HttpResponseError(\n        response.status,\n        'HttpResponseError',\n        `Unknown http error, code: ${response.status}`,\n      );\n    }\n  }\n};\n","import { ref } from 'vue';\n\nexport function useLoader(initialLoading = true) {\n  const loading = ref(initialLoading || false);\n\n  function startLoading() {\n    loading.value = true;\n  }\n\n  function stopLoading() {\n    loading.value = false;\n  }\n\n  return {\n    loading,\n    startLoading,\n    stopLoading,\n  };\n}\n","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderSlot as _renderSlot, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, resolveDynamicComponent as _resolveDynamicComponent, mergeProps as _mergeProps, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-a965aaca\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 2 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  const _component_Icon = _resolveComponent(\"Icon\")!\n\n  return (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.isExternal ? 'a' : 'router-link'), _mergeProps({\n    class: \"link\",\n    to: _ctx.link.url,\n    href: _ctx.link.url,\n    target: _ctx.link.targetIsBlank ? '_blank' : '',\n    rel: _ctx.link.noFollow ? 'nofollow' : ''\n  }, _ctx.$attrs), {\n    default: _withCtx(() => [\n      (_ctx.icon)\n        ? (_openBlock(), _createBlock(_component_Icon, {\n            key: 0,\n            name: _ctx.icon\n          }, null, 8, [\"name\"]))\n        : _createCommentVNode(\"\", true),\n      (_ctx.$slots.default)\n        ? _renderSlot(_ctx.$slots, \"default\", { key: 1 }, undefined, true)\n        : (_openBlock(), _createElementBlock(\"span\", _hoisted_1, _toDisplayString(_ctx.link.text), 1))\n    ]),\n    _: 3\n  }, 16, [\"to\", \"href\", \"target\", \"rel\"]))\n}","\nimport { defineComponent, PropType, computed } from 'vue';\n\nimport { Link } from '@/model/content';\n\nexport default defineComponent({\n  props: {\n    link: {\n      type: Object as PropType<Link>,\n      required: true,\n    },\n    icon: {\n      type: String,\n    },\n  },\n  setup(props) {\n    const isExternal = computed(() => props.link.url.includes('http'));\n\n    return {\n      isExternal,\n    };\n  },\n});\n","import { render } from \"./Link.vue?vue&type=template&id=a965aaca&scoped=true&ts=true\"\nimport script from \"./Link.vue?vue&type=script&lang=ts\"\nexport * from \"./Link.vue?vue&type=script&lang=ts\"\n\nimport \"./Link.vue?vue&type=style&index=0&id=a965aaca&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/vsts/work/1/s/src/NaturalisExpeditie.Q.Cms.Website/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a965aaca\"]])\n\nexport default __exports__","export class AppError extends Error {\n  constructor(public name: string, message: string = name) {\n    super(message);\n    this.name = name;\n  }\n\n  public metadata = {};\n}\n\nexport class HttpResponseError extends AppError {\n  metadata: { statusCode: number };\n\n  constructor(statusCode: number, name: string, message: string) {\n    super(name, message);\n    this.metadata = { statusCode };\n  }\n}\n\nexport class NotFoundError extends HttpResponseError {\n  constructor(message: string) {\n    super(404, 'NotFoundError', message);\n  }\n}\n","import { onActivated, onDeactivated, watch, WatchSource, WatchStopHandle } from 'vue';\nimport { WatchCallback, WatchOptions } from '@vue/runtime-core';\n\n// Within keep-alive watchers are still active, this is unwanted behavior.\nexport function watchWhileActive<T, Immediate extends Readonly<boolean> = false>(\n  source: WatchSource<T>,\n  cb: WatchCallback<T, Immediate extends true ? T | undefined : T>,\n  options?: WatchOptions<Immediate>,\n) {\n  let watcher: WatchStopHandle | null = watch(source, cb, options);\n\n  onActivated(() => {\n    if (!watcher) {\n      watcher = watch(source, cb, options);\n    }\n  });\n\n  onDeactivated(() => {\n    watcher?.();\n    watcher = null;\n  });\n}\n","import { createI18n } from 'vue-i18n';\n\n// Locales\nimport { nl } from '@/i18n/locales/nl';\n\n// For now we only support nl as our locale, but this setup is in place to already use a resource map\n// for our hardcoded strings throughout the app and make possible i18n easier to transition to.\nexport enum Locale {\n  NL = 'nl',\n}\n\nexport const DEFAULT_LOCALE = Locale.NL;\n\nexport const i18n = createI18n({\n  locale: DEFAULT_LOCALE,\n  fallbackLocale: DEFAULT_LOCALE,\n  legacy: false,\n  messages: {\n    nl,\n  },\n});\n","import { LocaleMessages } from '@/i18n/locale';\n\nexport const nl: LocaleMessages = {\n  app: {\n    infoPopup: {\n      openLabel: 'Open extra informatie popup',\n    },\n    genericPopup: {\n      openLabel: 'Open popup',\n      closeLabel: 'Sluit popup',\n    },\n    genericPanel: {\n      closeLabel: 'Sluit venster',\n    },\n    promptPopup: {\n      confirmLabel: 'Ik snap het!',\n    },\n    audioFallback: {\n      noSupport: 'Je browser ondersteunt geen HTML5 audio.',\n      linkText: 'Klik hier om het geluid te downloaden.',\n      typeNotSupported: 'Je browser ondersteunt dit type audio niet.',\n    },\n    video: {\n      startVideoLabel: 'Video afspelen',\n    },\n    noMobile: {\n      noSupport: 'Sorry! Deze ervaring is alleen beschikbaar op grotere apparaten.',\n      buttonText: 'Ik wil meer weten over dit project',\n    },\n    copyright: {\n      showLabel: 'Toon copyright melding',\n    },\n    image: {\n      openFullscreenLabel: 'Bekijk afbeelding op volledig scherm',\n      closeFullscreenLabel: 'Volledig scherm afsluiten',\n      nextLabel: 'Volgende afbeelding',\n      previousLabel: 'Vorige afbeelding',\n    },\n  },\n  navigation: {\n    openMenu: 'Open menu',\n    closeMenu: 'Sluit menu',\n    map: 'Kaart',\n    challenges: 'Challenges',\n    expeditions: 'Expedities',\n    logbook: 'Logboek',\n    collection: 'Mijn verzameling',\n    mapLogbookLink: 'Verder met je logboekpagina',\n    logbookOverviewLink: 'Het expeditie logboek',\n    logbookEditorLink: 'Logboekpagina maken',\n  },\n  map: {\n    popupTitle: 'Popup',\n    objects: 'object | objecten',\n    timeline: 'van 550 miljoen jaar geleden tot nu',\n    resetLocation: 'Reset zoomniveau',\n    menu: {\n      panelTitle: 'Start je onderzoek',\n      expeditions: 'Expedities',\n      challenges: 'Challenges',\n      search: {\n        placeholder: 'mammoet',\n        quickLinks: 'Quick Links',\n        collectionSuggestions: 'Collecties',\n        occurrenceSuggestions: 'Objecten',\n        noSuggestionsFound: 'Dat object hebben we nog niet gevonden, maar misschien vind je deze objecten interessant',\n        clearSearchLabel: 'Zoekterm leegmaken',\n        openSearchLabel: 'Open zoekmenu',\n      },\n    },\n  },\n  intro: {\n    openMapButton: 'Bekijk onze vondsten op de kaart',\n  },\n  challenges: {\n    completedChallengesListLabel: 'Behaalde challenge',\n  },\n  expedition: {\n    startYourExpeditionButton: 'Begin jouw expeditie',\n    chapterExpanderOpenLabel: 'Open expeditie navigatie',\n    chapterExpanderCloseLabel: 'Sluit expeditie navigatie',\n    currentChapterLabel: 'Huidig hoofdstuk',\n    chapterLabel: 'Hoofdstuk',\n    totalChapterLabel: 'van de',\n    openMap: 'Bekijk kaart',\n    backToMap: 'Terug naar de expeditie',\n    quizTitle: 'Quiz',\n    quizExplanation: 'Klik op een van de kaarten om te kijken of dat het juiste antwoord is',\n    quizCorrect: 'Goedzo!',\n    quizWrong: 'Jammer!',\n    quizButtonLabel: 'Kies voor antwoord',\n    openHotspotLabel: 'Open punt',\n    map: {\n      title: 'Tijd om zelf aan de slag te gaan! Vind op de kaart alle objecten van deze expeditie.',\n      showButtonLabel: 'Ga op onderzoek',\n      hideButtonLabel: 'Terug naar expeditie',\n    },\n  },\n  objectDetail: {\n    detailPanelCloseLabel: 'Sluit object detail paneel',\n    loadingLabel: 'Object detail paneel is aan het laden',\n    missingImage: 'Bevat geen foto of video',\n    imageAlt: 'Object afbeelding',\n    highlightBlockTitlePrefix: 'Onderdeel van',\n    enrichmentLinksTitle: 'Lees meer over ',\n    errorMessageNotFound: 'Jij zoekt het tot op het bot uit. Daar houden we van! Maar hier is (nog) niets gevonden.',\n    errorMessageDefault: 'Er ging iets mis. Probeer het later nog eens',\n    errorBackButton: 'Terug naar de kaart',\n    wikidata: {\n      labelAnimalSound: 'Hoe klinkt dit dier?',\n      buttonTextTaxonRangeMap: 'Natuurlijk leefgebied',\n      buttonTextSizeComparison: 'Grootte',\n    },\n    inaccurateLocation: 'Dit object is in de omgeving gevonden, maar we zijn niet zeker van de exacte locatie',\n    collectButtonLabel: 'Verzamelen',\n  },\n  notFound: {\n    titleFirstPart: 'Verdwaald in',\n    titleSecondPart: 'het wild',\n    text: 'Deze pagina bestaat niet. De pagina die je zocht hebben we niet kunnen vinden. Ga verder naar de kaart.',\n    linkText: 'Terug naar de kaart',\n    foregroundImageAlt: 'Walrus',\n  },\n  logbook: {\n    editorEmptyState: {\n      buttonLabel: 'Aan de slag',\n    },\n    objectControls: {\n      deleteLabel: 'Verwijder',\n      bringToFrontLabel: 'Breng naar voren',\n      sendToBackLabel: 'Stuur naar achteren',\n      colorBlackLabel: 'Verander kleur naar zwart',\n      colorWhiteLabel: 'Verander kleur naar wit',\n      colorRedLabel: 'Verander kleur naar rood',\n    },\n    shapeEditor: {\n      menuLabel: 'Open standaard vormen',\n      rectangleLabel: 'Voeg rechthoek toe',\n      ellipseLabel: 'Voeg cirkel toe',\n      lineLabel: 'Voeg lijn toe',\n      triangleLabel: 'Voeg driehoek toe',\n    },\n    textEditor: {\n      defaultText: 'Tekst',\n      buttonLabel: 'Voeg tekst toe',\n    },\n    collectionEditor: {\n      collectionMenuTitle: 'Mijn verzameling',\n      collectionMenuObjects: 'objecten',\n      menuLabel: 'Open jouw verzameling',\n      addButtonLabel: 'Voeg afbeelding toe aan logboek',\n    },\n    publish: {\n      modalTitle: 'Helemaal klaar?',\n      publishButtonText: 'Pagina publiceren',\n      titleInputLabel: 'Geef je pagina een titel',\n      validationErrorText: 'Vergeet niet de naam van je pagina.',\n      errorText: 'Er is iets misgegaan met het publiceren van je pagina. Probeer het later opnieuw.',\n      previewImageLabel: 'Logboek pagina voorbeeld afbeelding',\n    },\n    page: {\n      onboardingGoToMap: 'Start met het verzamelen van objecten en maak je eigen pagina in Het Logboek',\n      showMoreLabelImages: 'toon meer',\n      showLessLabelImages: 'toon minder',\n      loadMoreItemsLabel: 'Laad meer',\n      titlePartOne: 'Het Expeditie',\n      logbook: 'Logboek',\n      deleteTitle: 'Weet je het zeker?',\n      deleteText: 'Op deze manier verwijder je het object uit je verzameling.',\n      cancelDelete: 'Nee, object laten staan',\n      confirmDelete: 'Ja, object verwijderen',\n      share: {\n        nativePopup: 'Deel dit logboek',\n        expand: 'Open logboek delen menu',\n        collapse: 'Sluit logboek delen menu',\n        facebook: 'Deel logboek op Facebook',\n        twitter: 'Deel logboek op twitter',\n        pinterest: 'Deel logboek op Pinterest',\n      },\n    },\n    view: {\n      copyrightIntro: 'Dit werk is een remix van de onderstaande afbeeldingen',\n      copyrightDerivedExplanation: 'De afbeelding is een afgeleide van',\n    },\n    publishedLogbookCard: {\n      page: 'Pagina',\n      curatedText: 'Samengesteld door',\n    },\n  },\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./FullscreenLoader.vue?vue&type=style&index=0&id=6a89a9af&lang=scss&scoped=true\"","import { Branding } from '@/model/content';\nimport { cmsRequest } from '@/services/api';\n\n/**\n * Fetches branding\n * @returns {Promise<Branding>} - Branding api response\n */\n\nexport async function getBranding(): Promise<Branding> {\n  const response = await cmsRequest<Branding>(`/branding`, { method: 'get' });\n  return response.data;\n}\n","import FontFaceObserver from 'fontfaceobserver';\nimport { CustomFonts } from '@/model/content';\n\nexport async function loadFonts(customFonts: CustomFonts) {\n  const fontPromises = [];\n  if (customFonts.lightFont)\n    fontPromises.push(newFont(customFonts.lightFont.url, customFonts.lightFont.fontFamily, 'light'));\n  if (customFonts.regularFont)\n    fontPromises.push(newFont(customFonts.regularFont.url, customFonts.regularFont.fontFamily, 'regular'));\n  if (customFonts.mediumFont)\n    fontPromises.push(newFont(customFonts.mediumFont.url, customFonts.mediumFont.fontFamily, 'medium'));\n\n  const robotoObserver = new FontFaceObserver('Roboto', { weight: 400 });\n  fontPromises.push(robotoObserver.load as unknown as Promise<void>);\n\n  await Promise.all(fontPromises);\n}\n\nasync function newFont(font: string, family: string, cssVariable: string) {\n  const fontFace = new FontFace(family, `url(${font})`, {\n    display: 'swap',\n  });\n  const loadedFont = await fontFace.load();\n  document.fonts.add(loadedFont);\n  document.documentElement.style.setProperty(`--font-title-${cssVariable}`, `${family}, Helvetica, Arial, sans-serif`);\n}\n","import { ref } from 'vue';\n\nimport { Branding } from '@/model/content';\nimport { getBranding } from '@/services/branding-service';\nimport { loadFonts } from '@/utils/branding';\n\nconst brandingInfo = ref<Branding>();\nexport function useBranding() {\n  async function applyBranding() {\n    brandingInfo.value = await getBranding();\n    document.documentElement.style.setProperty('--primary-color', `#${brandingInfo.value.primaryColor}`);\n    if (brandingInfo.value.secondaryColor)\n      document.documentElement.style.setProperty('--secondary-color', `#${brandingInfo.value.secondaryColor}`);\n    if (brandingInfo.value.customFonts) await loadFonts(brandingInfo.value.customFonts);\n  }\n\n  return {\n    applyBranding,\n    brandingInfo,\n  };\n}\n","import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"xlink:href\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  return (_openBlock(), _createElementBlock(\"svg\", {\n    class: _normalizeClass('icon-' + _ctx.name)\n  }, [\n    _createElementVNode(\"use\", {\n      \"xlink:href\": '#icon-' + _ctx.name\n    }, null, 8, _hoisted_1)\n  ], 2))\n}","\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n  props: {\n    name: {\n      type: String,\n      required: true,\n    },\n  },\n});\n","import { render } from \"./Icon.vue?vue&type=template&id=cc055162&ts=true\"\nimport script from \"./Icon.vue?vue&type=script&lang=ts\"\nexport * from \"./Icon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/home/vsts/work/1/s/src/NaturalisExpeditie.Q.Cms.Website/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","/**\n * Log to the console\n */\nclass Logger {\n  /**\n   * Log whatever you want on the info level.\n   * This is only visible in the dev-mode of the app.\n   */\n  info(message: string, ...optionalParams: any[]) {\n    // Only log info level in debug mode.\n    process.env.NODE_ENV === 'development' && console.info(`[EXPEDITION] ${message}`, ...optionalParams);\n  }\n  /**\n   * Log a warning.\n   */\n  warn(message: string, error?: unknown) {\n    console.warn(message, error || '');\n  }\n  /**\n   * Log an error.\n   */\n  error(message: string, error: unknown) {\n    console.error(message, error);\n  }\n}\n\nexport default new Logger();\n","import { createElementVNode as _createElementVNode, resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, KeepAlive as _KeepAlive, Transition as _Transition, withCtx as _withCtx, createVNode as _createVNode, resolveComponent as _resolveComponent, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-12de616c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"modal-portal\" }, null, -1))\nconst _hoisted_2 = {\n  key: 1,\n  ref: \"pageTransitionCurtainEl\",\n  class: \"page-transition-curtain\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  const _component_router_view = _resolveComponent(\"router-view\")!\n  const _component_Loader = _resolveComponent(\"Loader\")!\n  const _component_FullscreenLoader = _resolveComponent(\"FullscreenLoader\")!\n\n  return (_openBlock(), _createElementBlock(\"main\", null, [\n    _hoisted_1,\n    (!_ctx.initialLoading)\n      ? (_openBlock(), _createBlock(_component_router_view, { key: 0 }, {\n          default: _withCtx(({ Component }) => [\n            _createVNode(_Transition, {\n              onEnter: _ctx.enterTransition,\n              onLeave: _ctx.leaveTransition,\n              css: false,\n              appear: \"\",\n              mode: \"out-in\"\n            }, {\n              default: _withCtx(() => [\n                (_openBlock(), _createBlock(_KeepAlive, null, [\n                  (_openBlock(), _createBlock(_resolveDynamicComponent(Component), {\n                    onRegisterTransitionDelay: _ctx.registerTransitionDelay,\n                    key: _ctx.$route.path\n                  }, null, 8, [\"onRegisterTransitionDelay\"]))\n                ], 1024))\n              ]),\n              _: 2\n            }, 1032, [\"onEnter\", \"onLeave\"])\n          ]),\n          _: 1\n        }))\n      : _createCommentVNode(\"\", true),\n    (_ctx.transitioning)\n      ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n          _createVNode(_Transition, { name: \"short-fade\" }, {\n            default: _withCtx(() => [\n              _createElementVNode(\"div\", null, [\n                (_ctx.pageLoadPromise)\n                  ? (_openBlock(), _createBlock(_component_Loader, { key: 0 }))\n                  : _createCommentVNode(\"\", true)\n              ])\n            ]),\n            _: 1\n          })\n        ], 512))\n      : _createCommentVNode(\"\", true),\n    _createVNode(_component_FullscreenLoader, {\n      loading: _ctx.pageLoading,\n      debounced: \"\"\n    }, null, 8, [\"loading\"])\n  ]))\n}","import { AnimeAnimParams } from 'animejs';\n\nexport interface PageTransitionAnimeOptions {\n  leave: AnimeAnimParams;\n  enter: AnimeAnimParams;\n}\n\nexport const DEFAULT_PAGE_TRANSITION_DURATION = 650;\nexport const DEFAULT_PAGE_TRANSITION_ANIME_OPTIONS = {\n  duration: DEFAULT_PAGE_TRANSITION_DURATION,\n  easing: 'easeInOutQuint',\n};\n\n/**\n * Get curtain page transition anime options for specific route from and to combinations\n * @returns {PageTransitionAnimeOptions|undefined} - The matching page transition anime options or undefined if no transition is necessary for the from and to routes\n */\nexport function getCurtainPageTransitionOptions(): PageTransitionAnimeOptions {\n  return {\n    leave: {\n      duration: 250,\n      opacity: [0, 1],\n      easing: 'easeInQuad',\n    },\n    enter: {\n      duration: 250,\n      opacity: [1, 0],\n      easing: 'easeOutQuad',\n    },\n  };\n}\n","\nimport { defineComponent, nextTick, onMounted, ref } from 'vue';\nimport { useRoute } from 'vue-router';\nimport anime from 'animejs';\n\nimport Loader from '@/components/common/Loader.vue';\nimport FullscreenLoader from '@/components/common/FullscreenLoader.vue';\nimport { getCurtainPageTransitionOptions } from '@/utils/page-transition';\nimport { useLoader } from '@/composables/use-loader';\nimport { useBranding } from '@/composables/use-branding';\nimport { leaveTransitionPromise } from '@/router';\n\nexport default defineComponent({\n  components: {\n    Loader,\n    FullscreenLoader,\n  },\n  setup() {\n    const pageTransitionCurtainEl = ref<HTMLDivElement>();\n    const pageLoadPromise = ref<Promise<void>>();\n    const transitioning = ref(false);\n\n    const route = useRoute();\n    const { applyBranding } = useBranding();\n    const { loading: initialLoading, stopLoading: stopInitialLoading } = useLoader();\n    const { loading: pageLoading, stopLoading: stopPageLoading } = useLoader();\n\n    let initialized = false;\n\n    onMounted(async () => {\n      // First load initial required data, like branding before mounting page.\n      await applyBranding();\n      stopInitialLoading();\n\n      // Wait for any rendered page to register possible delay promise, as page component\n      // mounts after initial loading has stopped.\n      await nextTick();\n\n      // Load any page related data before removing the loader overlay.\n      if (pageLoadPromise.value) {\n        await pageLoadPromise.value;\n        pageLoadPromise.value = undefined;\n      }\n\n      stopPageLoading();\n    });\n\n    /**\n     * Enter transition hook for the new incoming page (router to)\n     * @param {HTMLElement} el - Page container element\n     * @param {Function} done - Transition finish callback function\n     */\n    async function enterTransition(el: HTMLElement, done: () => void) {\n      // Prevent initial load transition\n      if (!initialized) {\n        initialized = true;\n        done();\n        return;\n      }\n\n      // If the new page requires some loading first, wait for it to be finished before transitioning out.\n      // Used in for example waiting for the mapbox instance to load or for some API calls to finish fetching page data.\n      if (pageLoadPromise.value) {\n        await pageLoadPromise.value;\n      }\n\n      const enterTransitionPromise = createEnterTransitionPromise();\n      await enterTransitionPromise;\n\n      transitioning.value = false;\n      pageLoadPromise.value = undefined;\n      done();\n    }\n\n    function createEnterTransitionPromise() {\n      const curtainAnimeOptions = getCurtainPageTransitionOptions();\n      return new Promise(resolve => {\n        anime({\n          ...curtainAnimeOptions.enter,\n          targets: pageTransitionCurtainEl.value,\n          complete: resolve,\n        });\n      });\n    }\n\n    /**\n     * Leave transition hook for the current active page (router from)\n     * @param {HTMLElement} el - Page container element\n     * @param {Function} done - Transition finish callback function\n     */\n    async function leaveTransition(el: HTMLElement, done: () => void) {\n      // Clear any registered delay promise as we only care for delay promises in the enter hook\n      pageLoadPromise.value = undefined;\n      transitioning.value = true;\n\n      // Set the leave page transition promise that will be used in the scroll behavior router hook\n      // to wait before setting the scroll position of the incoming page\n      leaveTransitionPromise.value = createLeaveTransitionPromise();\n      await leaveTransitionPromise.value;\n\n      // Call the done callback function to notify the transition component to start the enter transition\n      done();\n    }\n\n    async function createLeaveTransitionPromise(): Promise<void> {\n      await nextTick();\n\n      return await new Promise(resolve => {\n        const curtainAnimeOptions = getCurtainPageTransitionOptions();\n        anime({\n          ...curtainAnimeOptions.leave,\n          targets: pageTransitionCurtainEl.value,\n          complete: () => resolve(),\n        });\n      });\n    }\n\n    /**\n     * Register function for page components to notify our page transition system to first wait for\n     * the promise to resolve before starting the enter transition.\n     * @param {Promise<void>} promise - Delay promise\n     */\n    function registerTransitionDelay(promise: Promise<void>) {\n      pageLoadPromise.value = promise;\n    }\n\n    return {\n      route,\n      pageTransitionCurtainEl,\n      pageLoadPromise,\n      transitioning,\n      initialLoading,\n      pageLoading,\n      enterTransition,\n      leaveTransition,\n      registerTransitionDelay,\n    };\n  },\n});\n","import { render } from \"./Layout.vue?vue&type=template&id=12de616c&scoped=true&ts=true\"\nimport script from \"./Layout.vue?vue&type=script&lang=ts\"\nexport * from \"./Layout.vue?vue&type=script&lang=ts\"\n\nimport \"./Layout.vue?vue&type=style&index=0&id=12de616c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/vsts/work/1/s/src/NaturalisExpeditie.Q.Cms.Website/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-12de616c\"]])\n\nexport default __exports__","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"error-page\" }\nconst _hoisted_2 = { class: \"error-page-content\" }\nconst _hoisted_3 = { class: \"logo-wrapper\" }\nconst _hoisted_4 = [\"src\", \"alt\"]\nconst _hoisted_5 = { class: \"visually-hidden\" }\nconst _hoisted_6 = {\n  class: \"error-page-title first-part\",\n  \"aria-hidden\": \"true\"\n}\nconst _hoisted_7 = /*#__PURE__*/_createTextVNode(\" 404 °N \")\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_9 = [\"alt\"]\nconst _hoisted_10 = { class: \"error-page-description\" }\nconst _hoisted_11 = {\n  class: \"error-page-title second-part\",\n  \"aria-hidden\": \"true\"\n}\nconst _hoisted_12 = { class: \"error-page-text\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  const _component_IconButton = _resolveComponent(\"IconButton\")!\n\n  return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n    _createElementVNode(\"section\", _hoisted_2, [\n      _createElementVNode(\"div\", _hoisted_3, [\n        (_ctx.brandingInfo)\n          ? (_openBlock(), _createElementBlock(\"img\", {\n              key: 0,\n              class: \"logo\",\n              src: _ctx.brandingInfo.logoLarge.url,\n              alt: _ctx.brandingInfo.logoLarge.alt\n            }, null, 8, _hoisted_4))\n          : _createCommentVNode(\"\", true)\n      ]),\n      _createElementVNode(\"h1\", _hoisted_5, \"404 - \" + _toDisplayString(`${_ctx.t('notFound.titleFirstPart')} ${_ctx.t('notFound.titleSecondPart')}`), 1),\n      _createElementVNode(\"h2\", _hoisted_6, [\n        _hoisted_7,\n        _hoisted_8,\n        _createTextVNode(\" \" + _toDisplayString(_ctx.t('notFound.titleFirstPart')), 1)\n      ]),\n      _createElementVNode(\"img\", {\n        class: \"error-page-image\",\n        src: \"/statics/images/error-page-fg.png\",\n        alt: _ctx.t('notFound.foregroundImageAlt')\n      }, null, 8, _hoisted_9),\n      _createElementVNode(\"div\", _hoisted_10, [\n        _createElementVNode(\"h2\", _hoisted_11, _toDisplayString(_ctx.t('notFound.titleSecondPart')), 1),\n        _createElementVNode(\"p\", _hoisted_12, _toDisplayString(_ctx.t('notFound.text')), 1),\n        _createVNode(_component_IconButton, {\n          \"icon-name\": \"earth\",\n          to: { name: _ctx.mapRouteName },\n          transparent: \"\",\n          arrow: \"\"\n        }, {\n          default: _withCtx(() => [\n            _createTextVNode(_toDisplayString(_ctx.t('notFound.linkText')), 1)\n          ]),\n          _: 1\n        }, 8, [\"to\"])\n      ])\n    ])\n  ]))\n}","\nimport { defineComponent } from 'vue';\nimport { useI18n } from 'vue-i18n';\n\nimport IconButton from '@/components/common/IconButton.vue';\nimport { useBranding } from '@/composables/use-branding';\nimport { getRouteName, Route } from '@/router';\n\nexport default defineComponent({\n  components: {\n    IconButton,\n  },\n  setup() {\n    const { brandingInfo } = useBranding();\n    const { t } = useI18n();\n    const mapRouteName = getRouteName(Route.Map);\n\n    return {\n      brandingInfo,\n      t,\n      mapRouteName,\n    };\n  },\n});\n","import { render } from \"./NotFoundPage.vue?vue&type=template&id=2cd8702d&ts=true\"\nimport script from \"./NotFoundPage.vue?vue&type=script&lang=ts\"\nexport * from \"./NotFoundPage.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/home/vsts/work/1/s/src/NaturalisExpeditie.Q.Cms.Website/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { ref } from 'vue';\nimport { createRouter, createWebHistory, RouteLocationRaw, RouteRecordRaw } from 'vue-router';\n\nimport Layout from '@/views/Layouts/Layout.vue';\nimport NotFoundPage from '@/views/NotFoundPage.vue';\nimport { i18n, Locale } from '@/i18n';\nimport { useRouteHistory } from '@/composables/use-route-history';\nimport { useEmbeddedState } from '@/composables/use-embedded-state';\n\nexport enum Route {\n  Map = 'map',\n  Expedition = 'expedition',\n  Content = 'content',\n  NotSupported = 'notSupported',\n  NotFound = 'notFound',\n  LogbookOverview = 'logbookOverview',\n  LogbookEditor = 'logbookCanvas',\n  Logbook = 'logbook',\n  Collection = 'collection',\n}\n\nexport type RoutePaths = { [key in Locale]: { [key in Route]: string } };\n\n// We configure our route model for each locale in sync with the page tree in the CMS\nexport const routePaths: RoutePaths = {\n  nl: {\n    [Route.Map]: 'kaart',\n    [Route.Expedition]: 'expeditie/:slug',\n    [Route.NotSupported]: 'niet-ondersteund',\n    [Route.NotFound]: 'niet-gevonden',\n    [Route.Content]: ':slug',\n    [Route.LogbookOverview]: 'logboek',\n    [Route.LogbookEditor]: 'logboek/concept',\n    [Route.Logbook]: 'logboek/p/:slug',\n    [Route.Collection]: 'verzameling',\n  },\n};\n\nconst localePath = `/:locale(${Object.values(Locale).join('|')})?`;\n\nexport function getRoute(route: Route, params?: { [key: string]: string }): RouteLocationRaw {\n  const locale = i18n.global.locale.value as Locale;\n  return { name: getRouteName(route, locale), params: { locale, ...params } };\n}\n\nexport function getRoutePath(route: Route) {\n  return `${localePath}/${routePaths[i18n.global.locale.value as Locale][route]}`;\n}\n\nexport function getRouteName(route: Route, locale?: Locale) {\n  const currentLocale = locale || i18n.global.locale.value;\n  return `${currentLocale}${route}`;\n}\n\n// Setup multi-language route tree\nconst routes: Array<RouteRecordRaw> = [\n  {\n    path: localePath,\n    component: Layout,\n    children: [\n      ...Object.values(Locale).flatMap(locale => {\n        return [\n          {\n            path: routePaths[locale][Route.Map],\n            name: getRouteName(Route.Map, locale),\n            component: () => import(/* webpackChunkName: \"map-page\"*/ '@/views/MapPage.vue'),\n          },\n          {\n            path: routePaths[locale][Route.Expedition],\n            name: getRouteName(Route.Expedition, locale),\n            component: () => import(/* webpackChunkName: \"expedition-page\"*/ '@/views/ExpeditionPage.vue'),\n          },\n          {\n            path: routePaths[locale][Route.Content],\n            name: getRouteName(Route.Content, locale),\n            component: () => import(/* webpackChunkName: \"content-page\"*/ '@/views/ContentPage.vue'),\n          },\n          {\n            path: routePaths[locale][Route.LogbookOverview],\n            name: getRouteName(Route.LogbookOverview, locale),\n            component: () => import(/* webpackChunkName: \"logbook-overview-page\"*/ '@/views/LogbookOverviewPage.vue'),\n          },\n          {\n            path: routePaths[locale][Route.LogbookEditor],\n            name: getRouteName(Route.LogbookEditor, locale),\n            component: () => import(/* webpackChunkName: \"logbook-editor-page\"*/ '@/views/LogbookEditorPage.vue'),\n          },\n          {\n            path: routePaths[locale][Route.Logbook],\n            name: getRouteName(Route.Logbook, locale),\n            component: () => import(/* webpackChunkName: \"logbook-page\"*/ '@/views/LogbookPage.vue'),\n          },\n          {\n            path: routePaths[locale][Route.Collection],\n            name: getRouteName(Route.Collection, locale),\n            component: () => import(/* webpackChunkName: \"collection-page\"*/ '@/views/CollectionPage.vue'),\n          },\n          {\n            path: routePaths[locale][Route.NotFound],\n            name: getRouteName(Route.NotFound, locale),\n            component: NotFoundPage,\n          },\n        ];\n      }),\n      // Any unmatched route will show the 404 page\n      {\n        path: ':pathMatch(.*)*',\n        component: NotFoundPage,\n      },\n    ],\n  },\n];\n\nexport const leaveTransitionPromise = ref<Promise<void>>();\nconst router = createRouter({\n  history: createWebHistory(process.env.BASE_URL),\n  async scrollBehavior(to, from, savedPosition) {\n    // Make sure to wait for any ongoing leave page transition before setting the scroll position of the new page\n    // to avoid setting position to early.\n    if (leaveTransitionPromise.value) {\n      await leaveTransitionPromise.value;\n    }\n\n    // Return the saved position if present, which will be in case of browser back or previously visited pages.\n    // Otherwise always set the scroll position to the top of the page for new pages.\n    return savedPosition || { top: 0 };\n  },\n  routes,\n});\n\nconst { setRouteHistory } = useRouteHistory();\nconst { setEmbeddedState } = useEmbeddedState();\n\n// Runs before each route change\nrouter.beforeEach((to, from, next) => {\n  setRouteHistory(to, from);\n  setEmbeddedState(to.query);\n\n  // Check if the target route has a locale and if it differs from the current locale in i18n, update it.\n  if (to.params.locale && typeof to.params.locale === 'string') {\n    i18n.global.locale.value = to.params.locale;\n    next();\n  } else {\n    // In case the route does not contain a locale, prepend the current configured i18n locale.\n    next({ path: `/${i18n.global.locale.value}${to.path}` });\n  }\n});\n\nexport { router };\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Link.vue?vue&type=style&index=0&id=a965aaca&lang=scss&scoped=true\"","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createStaticVNode as _createStaticVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-55d851e4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n  class: \"loader\",\n  id: \"eboPsOztc9I1\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 400 300\",\n  \"shape-rendering\": \"geometricPrecision\",\n  \"text-rendering\": \"geometricPrecision\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createStaticVNode(\"<g id=\\\"eboPsOztc9I2_to\\\" transform=\\\"translate(198.115761,188.602575)\\\" data-v-55d851e4><g id=\\\"eboPsOztc9I2_ts\\\" transform=\\\"scale(0.529455,0.529455)\\\" data-v-55d851e4><g id=\\\"eboPsOztc9I2\\\" transform=\\\"translate(-198.229908,-145.783173)\\\" data-v-55d851e4><path id=\\\"eboPsOztc9I3\\\" d=\\\"M72.360900,79.336960C72.360900,79.061010,72.389550,78.791750,72.444040,78.531990L47.475360,78.531990C47.529850,78.791750,47.558500,79.061010,47.558500,79.336960C47.558500,81.491600,45.811820,83.238280,43.657180,83.238280C41.502540,83.238280,39.755860,81.491600,39.755860,79.336960C39.755860,78.321620,40.143730,77.396870,40.779390,76.702800C40.143730,76.008730,39.755860,75.083980,39.755860,74.068640C39.755860,71.914000,41.502540,70.167320,43.657180,70.167320C45.811820,70.167320,47.558500,71.914000,47.558500,74.068640C47.558500,74.272650,47.542840,74.473000,47.512660,74.668560L72.406740,74.668560C72.376560,74.473000,72.360900,74.272650,72.360900,74.068640C72.360900,71.914000,74.107580,70.167320,76.262220,70.167320C78.416860,70.167320,80.163540,71.914000,80.163540,74.068640C80.163540,75.083980,79.775670,76.008730,79.140010,76.702800C79.775670,77.396870,80.163540,78.321620,80.163540,79.336960C80.163540,81.491600,78.416860,83.238280,76.262220,83.238280C74.107580,83.238280,72.360900,81.491600,72.360900,79.336960Z\\\" transform=\\\"matrix(0.92718385456679 -0.37460659341591 0.37460659341591 0.92718385456679 179.91288362186975 65.48182219917467)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"0.800000\\\" data-v-55d851e4></path><path id=\\\"eboPsOztc9I4\\\" d=\\\"M124.941740,89.214070C125.541080,90.146950,134.830840,106.029450,123.842950,105.929560C112.855060,106.029450,122.144820,90.146950,122.744160,89.214070C123.143720,88.592150,123.509980,87.704430,123.842950,86.550910C124.175920,87.704430,124.542180,88.592150,124.941740,89.214070Z\\\" transform=\\\"matrix(0.96592582628907 -0.25881904510252 0.25881904510252 0.96592582628907 7.23071638772797 62.84436811786627)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"0.800000\\\" data-v-55d851e4></path><line id=\\\"eboPsOztc9I5\\\" x1=\\\"0\\\" y1=\\\"-11.437396\\\" x2=\\\"0\\\" y2=\\\"11.437396\\\" transform=\\\"matrix(0.80132859736787 -0.21471535053669 0.21471535053669 0.80132859736787 153.18923291499999 129.87955299999996)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"round\\\" data-v-55d851e4></line><path id=\\\"eboPsOztc9I6\\\" d=\\\"M62.703506,124.608974Q71.793904,119.146526,74.290737,108.326917Q77.886774,104.031650,80.284132,108.826366Q77.230718,123.809855,62.703506,124.608974Z\\\" transform=\\\"matrix(0.53370518893509 -1.39034955146515 1.39034955146515 0.53370518893509 -79.09759365476282 149.80399348193885)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"0.600000\\\" data-v-55d851e4></path><path id=\\\"eboPsOztc9I7\\\" d=\\\"M62.703506,96.240436C56.779621,99.363729,51.968153,102.869219,48.269102,106.756907C48.192520,106.614384,46.877458,109.770531,46.877458,112.926679C46.877458,113.014350,45.847606,109.437804,45.650067,109.682861C42.389746,114.055544,40.105466,119.369627,39.367643,124.608974C43.834922,124.608974,50.439298,118.829190,55.207381,112.829784C55.236507,112.770134,52.656349,112.763774,52.576703,112.684128C55.640091,111.485412,57.039243,110.241284,57.154340,110.220700C60.438238,105.294653,62.703506,100.066667,62.703506,96.240436\\\" transform=\\\"matrix(1 0 0 1 173.02079599999999 5.91001500000000)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"0.800000\\\" data-v-55d851e4></path><path id=\\\"eboPsOztc9I8\\\" d=\\\"M56.847021,103.597442Q45.253428,118.958953,35.398873,128.958428\\\" transform=\\\"matrix(1 0 0 1 173.02079599999996 5.91001500000000)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"0.800000\\\" stroke-linecap=\\\"round\\\" data-v-55d851e4></path><rect id=\\\"eboPsOztc9I9\\\" width=\\\"12.431999\\\" height=\\\"16.685050\\\" rx=\\\"4\\\" ry=\\\"4\\\" transform=\\\"matrix(1 0 0 1 174.65889463058764 107.12798995913910)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"1\\\" data-v-55d851e4></rect><path id=\\\"eboPsOztc9I10\\\" d=\\\"M108.284051,118.650984Q113.125499,118.113045,113.125499,113.809536\\\" transform=\\\"matrix(-1 0 0 -1 282.31660363058768 238.82312095913909)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"round\\\" data-v-55d851e4></path><path id=\\\"eboPsOztc9I11\\\" d=\\\"M108.284051,118.650984Q113.125499,118.113045,113.125499,113.809536\\\" transform=\\\"matrix(-1 0 0 1 282.31660363058768 -7.22871604086090)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"round\\\" data-v-55d851e4></path><path id=\\\"eboPsOztc9I12\\\" d=\\\"M108.284051,118.650984Q113.125499,118.113045,113.125499,113.809536\\\" transform=\\\"matrix(1 0 0 -1 79.29198163058766 238.82312095913909)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"round\\\" data-v-55d851e4></path><path id=\\\"eboPsOztc9I13\\\" d=\\\"M108.284051,118.650984Q113.125499,118.113045,113.125499,113.809536\\\" transform=\\\"matrix(1 0 0 1 79.29198163058766 -7.22871604086090)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"round\\\" data-v-55d851e4></path><line id=\\\"eboPsOztc9I14\\\" x1=\\\"-3.147419\\\" y1=\\\"0\\\" x2=\\\"3.147419\\\" y2=\\\"0\\\" transform=\\\"matrix(0.28997694650484 0.46406012011758 -0.80620618861314 0.50377353858398 178.49563413058766 105.47754195913909)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"round\\\" data-v-55d851e4></line><line id=\\\"eboPsOztc9I15\\\" x1=\\\"-3.147419\\\" y1=\\\"0\\\" x2=\\\"3.147419\\\" y2=\\\"0\\\" transform=\\\"matrix(0.28997694650484 -0.46406012011758 0.80620618861314 0.50377353858398 183.44370713058768 105.47754195913909)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"round\\\" data-v-55d851e4></line><line id=\\\"eboPsOztc9I16\\\" x1=\\\"-3.147419\\\" y1=\\\"0\\\" x2=\\\"3.147419\\\" y2=\\\"0\\\" transform=\\\"matrix(1 0 0 1 190.21809513058764 115.47728595913910)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"round\\\" data-v-55d851e4></line><line id=\\\"eboPsOztc9I17\\\" x1=\\\"-3.147419\\\" y1=\\\"0\\\" x2=\\\"3.147419\\\" y2=\\\"0\\\" transform=\\\"matrix(1 0 0 1 171.21809513058764 115.47728595913910)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"round\\\" data-v-55d851e4></line><line id=\\\"eboPsOztc9I18\\\" x1=\\\"-6.073683\\\" y1=\\\"0\\\" x2=\\\"6.073683\\\" y2=\\\"0\\\" transform=\\\"matrix(1 0 0 1 181.03790063058764 111.85857595913909)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"1\\\" data-v-55d851e4></line><ellipse id=\\\"eboPsOztc9I19\\\" rx=\\\"2.804615\\\" ry=\\\"2.804615\\\" transform=\\\"matrix(0.42941543148646 0 0 0.42941543148646 119.56564325000002 133.01922025000002)\\\" fill=\\\"rgb(255,255,255)\\\" stroke=\\\"rgb(5,5,5)\\\" stroke-width=\\\"0.800000\\\" data-v-55d851e4></ellipse><ellipse id=\\\"eboPsOztc9I20\\\" rx=\\\"2.804615\\\" ry=\\\"2.804615\\\" transform=\\\"matrix(0.42941543148646 0 0 0.42941543148646 132.84114525000001 96.95740824999999)\\\" fill=\\\"rgb(255,255,255)\\\" stroke=\\\"rgb(5,5,5)\\\" stroke-width=\\\"0.800000\\\" data-v-55d851e4></ellipse><ellipse id=\\\"eboPsOztc9I21\\\" rx=\\\"2.804615\\\" ry=\\\"2.804615\\\" transform=\\\"matrix(0.42941543148646 0 0 0.42941543148646 160.68007225000002 109.93569724999999)\\\" fill=\\\"rgb(255,255,255)\\\" stroke=\\\"rgb(5,5,5)\\\" stroke-width=\\\"0.800000\\\" data-v-55d851e4></ellipse><ellipse id=\\\"eboPsOztc9I22\\\" rx=\\\"2.804615\\\" ry=\\\"2.804615\\\" transform=\\\"matrix(0.42941543148646 0 0 0.42941543148646 169.49738325000001 133.81178724999998)\\\" fill=\\\"rgb(255,255,255)\\\" stroke=\\\"rgb(5,5,5)\\\" stroke-width=\\\"0.800000\\\" data-v-55d851e4></ellipse><ellipse id=\\\"eboPsOztc9I23\\\" rx=\\\"2.804615\\\" ry=\\\"2.804615\\\" transform=\\\"matrix(0.42941543148646 0 0 0.42941543148646 197.31376325000002 126.95703624999999)\\\" fill=\\\"rgb(255,255,255)\\\" stroke=\\\"rgb(5,5,5)\\\" stroke-width=\\\"0.800000\\\" data-v-55d851e4></ellipse><ellipse id=\\\"eboPsOztc9I24\\\" rx=\\\"2.804615\\\" ry=\\\"2.804615\\\" transform=\\\"matrix(0.42941543148646 0 0 0.42941543148646 222.05047225000001 144.34227424999997)\\\" fill=\\\"rgb(255,255,255)\\\" stroke=\\\"rgb(5,5,5)\\\" stroke-width=\\\"0.800000\\\" data-v-55d851e4></ellipse><ellipse id=\\\"eboPsOztc9I25\\\" rx=\\\"2.804615\\\" ry=\\\"2.804615\\\" transform=\\\"matrix(0.42941543148646 0 0 0.42941543148646 236.25669525000001 128.34785524999998)\\\" fill=\\\"rgb(255,255,255)\\\" stroke=\\\"rgb(5,5,5)\\\" stroke-width=\\\"0.800000\\\" data-v-55d851e4></ellipse><ellipse id=\\\"eboPsOztc9I26\\\" rx=\\\"2.804615\\\" ry=\\\"2.804615\\\" transform=\\\"matrix(0.42941543148646 0 0 0.42941543148646 205.37486325000000 117.43345425000001)\\\" fill=\\\"rgb(255,255,255)\\\" stroke=\\\"rgb(5,5,5)\\\" stroke-width=\\\"0.800000\\\" data-v-55d851e4></ellipse><ellipse id=\\\"eboPsOztc9I27\\\" rx=\\\"2.804615\\\" ry=\\\"2.804615\\\" transform=\\\"matrix(0.42941543148646 0 0 0.42941543148646 244.04060925000002 106.18062225000001)\\\" fill=\\\"rgb(255,255,255)\\\" stroke=\\\"rgb(5,5,5)\\\" stroke-width=\\\"0.800000\\\" data-v-55d851e4></ellipse><ellipse id=\\\"eboPsOztc9I28\\\" rx=\\\"2.804615\\\" ry=\\\"2.804615\\\" transform=\\\"matrix(0.42941543148646 0 0 0.42941543148646 274.66861825000001 121.83305725000001)\\\" fill=\\\"rgb(255,255,255)\\\" stroke=\\\"rgb(5,5,5)\\\" stroke-width=\\\"0.800000\\\" data-v-55d851e4></ellipse><ellipse id=\\\"eboPsOztc9I29\\\" rx=\\\"2.804615\\\" ry=\\\"2.804615\\\" transform=\\\"matrix(1 0 0 1 291.26894425000000 117.05517225000000)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"0.800000\\\" data-v-55d851e4></ellipse><ellipse id=\\\"eboPsOztc9I30\\\" rx=\\\"2.804615\\\" ry=\\\"2.804615\\\" transform=\\\"matrix(1 0 0 1 238.28982224999999 138.01647724999998)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"0.800000\\\" data-v-55d851e4></ellipse><ellipse id=\\\"eboPsOztc9I31\\\" rx=\\\"2.804615\\\" ry=\\\"2.804615\\\" transform=\\\"matrix(1 0 0 1 262.01525525000000 102.54350024999999)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"0.800000\\\" data-v-55d851e4></ellipse><ellipse id=\\\"eboPsOztc9I32\\\" rx=\\\"2.804615\\\" ry=\\\"2.804615\\\" transform=\\\"matrix(1 0 0 1 185.31070124999999 136.17372524999999)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"0.800000\\\" data-v-55d851e4></ellipse><ellipse id=\\\"eboPsOztc9I33\\\" rx=\\\"2.804615\\\" ry=\\\"2.804615\\\" transform=\\\"matrix(1 0 0 1 211.80026125000001 104.38625225000000)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"0.800000\\\" data-v-55d851e4></ellipse><ellipse id=\\\"eboPsOztc9I34\\\" rx=\\\"2.804615\\\" ry=\\\"2.804615\\\" transform=\\\"matrix(1 0 0 1 144.30946724999998 105.99866024999999)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"0.800000\\\" data-v-55d851e4></ellipse><ellipse id=\\\"eboPsOztc9I35\\\" rx=\\\"2.804615\\\" ry=\\\"2.804615\\\" transform=\\\"matrix(1 0 0 1 140.62396325000000 134.56131725000000)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"0.800000\\\" data-v-55d851e4></ellipse><ellipse id=\\\"eboPsOztc9I36\\\" rx=\\\"2.804615\\\" ry=\\\"2.804615\\\" transform=\\\"matrix(1 0 0 1 122.19644325000000 87.34079525000001)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"0.800000\\\" data-v-55d851e4></ellipse></g></g></g><g id=\\\"eboPsOztc9I37_to\\\" transform=\\\"translate(200,230.897704)\\\" data-v-55d851e4><g id=\\\"eboPsOztc9I37_ts\\\" transform=\\\"scale(0.951946,0.936908)\\\" data-v-55d851e4><rect id=\\\"eboPsOztc9I37\\\" width=\\\"101.774530\\\" height=\\\"80.897704\\\" rx=\\\"4\\\" ry=\\\"4\\\" transform=\\\"translate(-50.887265,-80.897704)\\\" fill=\\\"rgb(0,0,0)\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"1\\\" data-v-55d851e4></rect></g></g><g id=\\\"eboPsOztc9I38_to\\\" transform=\\\"translate(199.217119,179.834463)\\\" data-v-55d851e4><g id=\\\"eboPsOztc9I38_ts\\\" transform=\\\"scale(1,1)\\\" data-v-55d851e4><rect id=\\\"eboPsOztc9I38\\\" width=\\\"32.881002\\\" height=\\\"8.762872\\\" rx=\\\"2\\\" ry=\\\"2\\\" transform=\\\"translate(-16.440501,-4.381436)\\\" fill=\\\"none\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"1\\\" data-v-55d851e4></rect></g></g><g id=\\\"eboPsOztc9I39_to\\\" transform=\\\"translate(200,153.966597)\\\" data-v-55d851e4><g id=\\\"eboPsOztc9I39_tr\\\" transform=\\\"rotate(0)\\\" data-v-55d851e4><rect id=\\\"eboPsOztc9I39\\\" width=\\\"110.647182\\\" height=\\\"24.008350\\\" rx=\\\"4\\\" ry=\\\"4\\\" transform=\\\"scale(1.008130,1) translate(-55.323591,-12.004175)\\\" fill=\\\"rgb(0,0,0)\\\" stroke=\\\"rgb(255,255,255)\\\" stroke-width=\\\"1\\\" data-v-55d851e4></rect></g></g>\", 4)\nconst _hoisted_6 = [\n  _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_6))\n}","\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({});\n","import { render } from \"./Loader.vue?vue&type=template&id=55d851e4&scoped=true&ts=true\"\nimport script from \"./Loader.vue?vue&type=script&lang=ts\"\nexport * from \"./Loader.vue?vue&type=script&lang=ts\"\n\nimport \"./Loader.vue?vue&type=style&index=0&id=55d851e4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/vsts/work/1/s/src/NaturalisExpeditie.Q.Cms.Website/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-55d851e4\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-bg\" }, null, -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  const _component_router_view = _resolveComponent(\"router-view\")!\n\n  return (_openBlock(), _createElementBlock(_Fragment, null, [\n    _hoisted_1,\n    _createVNode(_component_router_view)\n  ], 64))\n}","export default class LazyImageLoader {\n  private readonly observer: IntersectionObserver | null;\n  private readonly images: string;\n  private readonly appId: string;\n  private readonly supportsNativeLazyLoading: boolean;\n  private imageCount: number;\n\n  constructor(appId: string) {\n    this.observer = null;\n    this.images = '[data-src],[data-srcset]';\n    this.imageCount = 0;\n    this.appId = appId;\n    this.supportsNativeLazyLoading = 'loading' in HTMLImageElement.prototype;\n\n    if (!this.supportsNativeLazyLoading) {\n      this.observer = new window.IntersectionObserver(this.onEntry.bind(this), {\n        rootMargin: '100px 0px',\n      });\n    }\n\n    this.prepareLazyLoadForImages(document.querySelectorAll(this.images));\n    this.observeDomChanges();\n  }\n\n  private prepareLazyLoadForImages(images: NodeListOf<Element>) {\n    if (this.supportsNativeLazyLoading) {\n      images.forEach(img => {\n        LazyImageLoader.setImage(img as HTMLImageElement);\n      });\n    } else {\n      this.observeImages(images);\n    }\n  }\n\n  private observeImages(images: NodeListOf<Element>) {\n    this.imageCount += images.length;\n\n    images.forEach(image => {\n      if (this.observer) {\n        this.observer.observe(image);\n      }\n    });\n  }\n\n  private static setSrcValues(image: HTMLImageElement | HTMLSourceElement) {\n    const imageSrc = image.getAttribute('data-src');\n    if (imageSrc) {\n      image.src = imageSrc; // eslint-disable-line no-param-reassign\n    }\n\n    const imageSrcset = image.getAttribute('data-srcset');\n    if (imageSrcset) {\n      image.setAttribute('srcset', imageSrcset); // image.srcset doesn't work for <source> in IE11\n    }\n  }\n\n  private static setImage(image: HTMLImageElement | HTMLSourceElement) {\n    LazyImageLoader.setSrcValues(image);\n\n    image.addEventListener('load', () => {\n      image.classList.add('loaded');\n\n      if (image.parentElement) {\n        image.parentElement.classList.add('image-lazyloaded');\n      }\n    });\n  }\n\n  private onEntry(entries: IntersectionObserverEntry[]) {\n    entries.forEach(entry => {\n      const image = entry.target;\n\n      if (entry.isIntersecting) {\n        this.imageCount -= 1;\n\n        if (image instanceof HTMLSourceElement || image instanceof HTMLImageElement) {\n          LazyImageLoader.setImage(image);\n        }\n\n        if (this.observer) {\n          this.observer.unobserve(image);\n        }\n      }\n    });\n\n    if (this.imageCount === 0) {\n      if (this.observer) {\n        this.observer.disconnect();\n      }\n    }\n  }\n\n  private observeDomChanges() {\n    const callback = (mutationsList: MutationRecord[]) => {\n      mutationsList.forEach(mutation => {\n        // only added nodes are wanted, not changes attributes or removed nodes\n        if (mutation.type !== 'childList' || !mutation.addedNodes.length) {\n          return;\n        }\n\n        mutation.addedNodes.forEach(node => {\n          // skip: non element nodes, like comments (also: v-if <!----->), text etc.\n          if (node.nodeType === Node.ELEMENT_NODE) {\n            const images = (node as HTMLElement).querySelectorAll(this.images);\n\n            // added nodes contains images which need to be lazy loaded\n            if (images.length) {\n              this.prepareLazyLoadForImages(images);\n            }\n          }\n        });\n      });\n    };\n\n    const mutationObserver = new MutationObserver(callback);\n    const siteEl = document.getElementById(this.appId);\n\n    if (siteEl) {\n      mutationObserver.observe(siteEl, {\n        attributes: false,\n        childList: true,\n        subtree: true,\n      });\n    }\n  }\n}\n","\nimport { defineComponent, onMounted } from 'vue';\n\nimport LazyImageLoader from '@/utils/lazy-image-loader';\n\nexport default defineComponent({\n  setup() {\n    onMounted(async () => {\n      new LazyImageLoader('app');\n    });\n  },\n});\n","import { render } from \"./App.vue?vue&type=template&id=4a61fd7c&ts=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=4a61fd7c&lang=scss\"\n\nimport exportComponent from \"/home/vsts/work/1/s/src/NaturalisExpeditie.Q.Cms.Website/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// Asynchronously import needed polyfills for the browser\nexport async function loadPolyfills() {\n  // Smoothscroll polyfill is needed for Safari to allow behavior: 'smooth' in window.scrollTo\n  if (!('scrollBehavior' in document.documentElement.style)) {\n    const smoothscroll = await import(/* webpackChunkName: \"smoothscroll-polyfill\" */ 'smoothscroll-polyfill');\n    smoothscroll.polyfill();\n  }\n}\n","import { Directive } from 'vue';\n\nexport const clickOutside: Directive = {\n  beforeMount(e, binding) {\n    e.clickOutsideEvent = (event: MouseEvent) => {\n      if (!(e == event.target || e.contains(event.target))) {\n        binding.value();\n      }\n    };\n    document.addEventListener('click', e.clickOutsideEvent, { capture: true });\n  },\n  unmounted(e) {\n    document.removeEventListener('click', e.clickOutsideEvent, { capture: true });\n  },\n};\n","import _debounce from 'lodash/debounce';\n\nclass ViewHeightHelper {\n  windowWidth = 0;\n\n  constructor() {\n    window.addEventListener(\n      'resize',\n      _debounce(() => this.setViewportCssVariable(), 300),\n    );\n\n    this.setViewportCssVariable();\n  }\n\n  destroy() {\n    window.removeEventListener(\n      'resize',\n      _debounce(() => this.setViewportCssVariable(), 300),\n    );\n  }\n\n  setViewportCssVariable() {\n    const vh = window.innerHeight / 100;\n    document.documentElement.style.setProperty('--vh', `${vh}px`);\n  }\n}\n\nexport default ViewHeightHelper;\n","<template>\n  <div class=\"columns\">\n    <slot></slot>\n  </div>\n</template>\n\n<style lang=\"scss\">\n.columns {\n  display: flex;\n  margin: 0 -15px;\n\n  & > * {\n    flex: 1;\n    margin: 0 15px;\n  }\n\n  @media #{$mobile} {\n    flex-direction: column;\n  }\n}\n</style>\n","import { render } from \"./Columns.vue?vue&type=template&id=cb52c194\"\nconst script = {}\n\nimport \"./Columns.vue?vue&type=style&index=0&id=cb52c194&lang=scss\"\n\nimport exportComponent from \"/home/vsts/work/1/s/src/NaturalisExpeditie.Q.Cms.Website/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue';\nimport { i18n } from '@/i18n';\nimport FloatingFocus from '@q42/floating-focus-a11y';\n\n__webpack_public_path__ = '/statics/generated/';\n\nimport '@/style/site.scss';\n\nimport App from '@/App.vue';\nimport { router } from '@/router';\nimport { loadPolyfills } from '@/utils/polyfills';\nimport { clickOutside } from '@/directives/click-outside';\nimport ViewHeightHelper from '@/utils/view-height-helper';\n\nconst app = createApp(App);\n\napp.use(router);\napp.use(i18n);\n\nnew FloatingFocus();\nnew ViewHeightHelper();\n\n// Global components\nimport Icon from '@/components/common/Icon.vue';\nimport Columns from '@/components/common/Columns.vue';\nimport Link from '@/components/common/Link.vue';\n\napp.component('Icon', Icon);\napp.component('Columns', Columns);\napp.component('Link', Link);\n\n// Directives\napp.directive('click-outside', clickOutside);\n\napp.mount('#app');\n\nloadPolyfills();\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Columns.vue?vue&type=style&index=0&id=cb52c194&lang=scss\"","import { ref } from 'vue';\nimport { RouteLocationNormalized } from 'vue-router';\n\nexport interface RouteHistory {\n  to: RouteLocationNormalized;\n  from: RouteLocationNormalized;\n}\n\nconst routeHistory = ref<RouteHistory>();\nexport function useRouteHistory() {\n  function setRouteHistory(to: RouteLocationNormalized, from: RouteLocationNormalized) {\n    routeHistory.value = {\n      to,\n      from,\n    };\n  }\n\n  return {\n    routeHistory,\n    setRouteHistory,\n  };\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Layout.vue?vue&type=style&index=0&id=12de616c&lang=scss&scoped=true\"","import { resolveComponent as _resolveComponent, createVNode as _createVNode, renderSlot as _renderSlot, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, resolveDynamicComponent as _resolveDynamicComponent, normalizeClass as _normalizeClass, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-54b0f3d0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"paragraph\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  const _component_Icon = _resolveComponent(\"Icon\")!\n\n  return (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.to ? 'router-link' : 'button'), {\n    to: _ctx.to,\n    class: _normalizeClass([\"icon-button\", { transparent: _ctx.transparent, small: _ctx.small }]),\n    onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('click')))\n  }, {\n    default: _withCtx(() => [\n      _createVNode(_component_Icon, {\n        class: \"icon-button-icon\",\n        name: _ctx.iconName\n      }, null, 8, [\"name\"]),\n      _createElementVNode(\"span\", _hoisted_1, [\n        _renderSlot(_ctx.$slots, \"default\", {}, undefined, true)\n      ]),\n      (_ctx.arrow)\n        ? (_openBlock(), _createBlock(_component_Icon, {\n            key: 0,\n            class: \"icon-button-arrow\",\n            name: \"arrow\"\n          }))\n        : _createCommentVNode(\"\", true)\n    ]),\n    _: 3\n  }, 8, [\"to\", \"class\"]))\n}","\nimport { defineComponent, PropType } from 'vue';\nimport { RouteRecordRaw } from 'vue-router';\n\nexport default defineComponent({\n  emits: ['click'],\n  props: {\n    iconName: {\n      type: String,\n      required: true,\n    },\n    to: {\n      type: Object as PropType<RouteRecordRaw>,\n    },\n    arrow: {\n      type: Boolean,\n    },\n    transparent: {\n      type: Boolean,\n    },\n    small: {\n      type: Boolean,\n    },\n  },\n});\n","import { render } from \"./IconButton.vue?vue&type=template&id=54b0f3d0&scoped=true&ts=true\"\nimport script from \"./IconButton.vue?vue&type=script&lang=ts\"\nexport * from \"./IconButton.vue?vue&type=script&lang=ts\"\n\nimport \"./IconButton.vue?vue&type=style&index=0&id=54b0f3d0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/vsts/work/1/s/src/NaturalisExpeditie.Q.Cms.Website/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-54b0f3d0\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, Transition as _Transition, withCtx as _withCtx, createVNode as _createVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6a89a9af\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n  key: 0,\n  class: \"fullscreen-loader\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  const _component_Loader = _resolveComponent(\"Loader\")!\n\n  return (_openBlock(), _createBlock(_Transition, { name: \"short-fade\" }, {\n    default: _withCtx(() => [\n      (_ctx.loading)\n        ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n            _createVNode(_Transition, { name: \"short-fade\" }, {\n              default: _withCtx(() => [\n                _createElementVNode(\"div\", null, [\n                  (_ctx.debouncedLoading)\n                    ? (_openBlock(), _createBlock(_component_Loader, { key: 0 }))\n                    : _createCommentVNode(\"\", true)\n                ])\n              ]),\n              _: 1\n            })\n          ]))\n        : _createCommentVNode(\"\", true)\n    ]),\n    _: 1\n  }))\n}","\nimport { defineComponent, onMounted, ref } from 'vue';\nimport _debounce from 'lodash/debounce';\n\nimport Loader from '@/components/common/Loader.vue';\nimport { watchWhileActive } from '@/utils/vue-lifecycle';\n\nexport default defineComponent({\n  components: {\n    Loader,\n  },\n  props: {\n    loading: {\n      type: Boolean,\n    },\n    debounced: {\n      type: Boolean,\n    },\n  },\n  setup(props) {\n    const debouncedLoading = ref(false);\n\n    onMounted(debouncedLoad);\n\n    function debouncedLoad() {\n      if (props.debounced) {\n        _debounce(() => (debouncedLoading.value = true), 500)();\n      } else {\n        debouncedLoading.value = true;\n      }\n    }\n\n    watchWhileActive(\n      () => props.loading,\n      loading => {\n        if (loading) {\n          debouncedLoad();\n        }\n      },\n    );\n\n    return {\n      debouncedLoading,\n    };\n  },\n});\n","import { render } from \"./FullscreenLoader.vue?vue&type=template&id=6a89a9af&scoped=true&ts=true\"\nimport script from \"./FullscreenLoader.vue?vue&type=script&lang=ts\"\nexport * from \"./FullscreenLoader.vue?vue&type=script&lang=ts\"\n\nimport \"./FullscreenLoader.vue?vue&type=style&index=0&id=6a89a9af&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/vsts/work/1/s/src/NaturalisExpeditie.Q.Cms.Website/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6a89a9af\"]])\n\nexport default __exports__"],"sourceRoot":""}