{"version":3,"sources":["webpack:///./src/components/Expedition/ExpeditionBackgroundImage.vue?f6a9","webpack:///./src/components/Expedition/Chapters.vue?b29f","webpack:///./src/components/Expedition/Modules/QuizCard.vue?56e9","webpack:///./src/components/Expedition/ExpeditionHeader.vue?241e","webpack:///./src/components/common/Markdown.vue?d898","webpack:///./src/components/Expedition/Modules/TextModule.vue?e4d7","webpack:///./src/components/Expedition/Slide.vue?de3f","webpack:///./src/components/Expedition/Modules/ImageRevealModule.vue?ade7","webpack:///./src/components/common/DragKnob.vue?e5ac","webpack:///./src/components/Expedition/PromptPopup.vue?9917","webpack:///./src/components/Expedition/ChapterNavigation.vue?7f22","webpack:///./src/components/Content/ContentBlock.vue?ebeb","webpack:///./src/components/Expedition/Modules/HotspotModule.vue?0fb1","webpack:///./src/components/Expedition/ExpeditionMap.vue?2105","webpack:///./src/components/Content/Paragraph.vue?82e1","webpack:///./src/components/Expedition/InfoPopup.vue?8c92","webpack:///./src/views/ExpeditionPage.vue?db7b","webpack:///./src/components/Expedition/ContentPopup.vue?a3d5","webpack:///./src/components/Expedition/ChapterNavigation.vue","webpack:///./src/components/Expedition/ChapterNavigation.vue?e091","webpack:///./src/utils/expedition.ts","webpack:///./src/utils/events.ts","webpack:///./node_modules/mitt/dist/mitt.mjs","webpack:///./src/components/Expedition/Chapters.vue","webpack:///./src/components/Expedition/Chapters.vue?e985","webpack:///./src/composables/use-scroll-controller.ts","webpack:///./src/components/Expedition/ExpeditionBackgroundImage.vue","webpack:///./src/components/Expedition/ExpeditionBackgroundImage.vue?4b30","webpack:///./src/components/Expedition/ExpeditionHeader.vue?8d1b","webpack:///./src/components/Expedition/ExpeditionHeader.vue","webpack:///./src/components/Expedition/ExpeditionHeader.vue?cf56","webpack:///./src/components/Expedition/ExpeditionMap.vue","webpack:///./src/components/Expedition/ExpeditionMap.vue?6d51","webpack:///./src/components/Content/Paragraph.vue?9b43","webpack:///./src/components/Content/Paragraph.vue","webpack:///./src/components/Content/Paragraph.vue?45b4","webpack:///./src/components/Expedition/ExpeditionFooter.vue","webpack:///./src/components/Expedition/ExpeditionFooter.vue?056a","webpack:///./src/model/expedition.ts","webpack:///./src/components/Expedition/Module.vue?6e9f","webpack:///./src/components/Expedition/Modules/HotspotModule.vue?b935","webpack:///./src/components/Expedition/Modules/HotspotPoint.vue?d1a8","webpack:///./src/components/Expedition/Modules/HotspotPoint.vue","webpack:///./src/components/Expedition/Modules/HotspotPoint.vue?1296","webpack:///./src/components/Expedition/ContentPopup.vue?56d0","webpack:///./src/components/Content/ContentBlock.vue?9b22","webpack:///./src/components/Content/ContentBlock.vue","webpack:///./src/components/Content/ContentBlock.vue?96e7","webpack:///./src/components/Expedition/ContentPopup.vue","webpack:///./src/components/Expedition/ContentPopup.vue?2998","webpack:///./src/composables/use-selected-object.ts","webpack:///./src/components/Expedition/Modules/HotspotModule.vue","webpack:///./src/components/Expedition/Modules/HotspotModule.vue?4301","webpack:///./src/components/Expedition/Modules/ImageModule.vue?f4f0","webpack:///./src/components/Expedition/Modules/ImageModule.vue","webpack:///./src/components/Expedition/Modules/ImageModule.vue?25c8","webpack:///./src/components/Expedition/Modules/TextModule.vue?91bd","webpack:///./src/components/Expedition/PromptPopup.vue?1d9f","webpack:///./src/utils/fancy-icon.ts","webpack:///./src/components/Expedition/PromptPopup.vue","webpack:///./src/components/Expedition/PromptPopup.vue?1c10","webpack:///./src/components/Expedition/Modules/TextModule.vue","webpack:///./src/components/Expedition/Modules/TextModule.vue?1281","webpack:///./src/components/common/DragKnob.vue?2474","webpack:///./src/components/common/DragKnob.vue","webpack:///./src/components/common/DragKnob.vue?9515","webpack:///./src/components/Expedition/Modules/ImageRevealModule.vue","webpack:///./src/components/Expedition/Modules/ImageRevealModule.vue?6fbf","webpack:///./src/components/Expedition/Modules/QuizModule.vue?6472","webpack:///./src/components/Expedition/Modules/QuizCard.vue?d88e","webpack:///./src/components/Expedition/Modules/QuizCard.vue","webpack:///./src/components/Expedition/Modules/QuizCard.vue?ea29","webpack:///./src/components/Expedition/Modules/QuizModule.vue","webpack:///./src/components/Expedition/Modules/QuizModule.vue?9c23","webpack:///./src/components/Expedition/Modules/YoutubeModule.vue?f321","webpack:///./src/components/Expedition/Modules/YoutubeModule.vue","webpack:///./src/components/Expedition/Modules/YoutubeModule.vue?9b49","webpack:///./src/components/Expedition/Modules/VimeoModule.vue?ec69","webpack:///./src/components/Expedition/Modules/VimeoModule.vue","webpack:///./src/components/Expedition/Modules/VimeoModule.vue?0ad9","webpack:///./src/components/Expedition/Module.vue","webpack:///./src/components/Expedition/Module.vue?81a0","webpack:///./node_modules/uuid/dist/esm-browser/rng.js","webpack:///./src/components/Expedition/InfoPopup.vue?ef04","webpack:///./node_modules/uuid/dist/esm-browser/regex.js","webpack:///./node_modules/uuid/dist/esm-browser/validate.js","webpack:///./node_modules/uuid/dist/esm-browser/stringify.js","webpack:///./node_modules/uuid/dist/esm-browser/v4.js","webpack:///./src/components/Expedition/InfoPopup.vue","webpack:///./src/components/Expedition/InfoPopup.vue?d024","webpack:///./src/components/Expedition/Slide.vue","webpack:///./src/components/Expedition/Slide.vue?7bdf","webpack:///./src/components/Animation/AnimationScrollObserver.vue?3902","webpack:///./src/components/Animation/AnimationScrollObserver.vue","webpack:///./src/components/Animation/AnimationScrollObserver.vue?1b9f","webpack:///./src/views/ExpeditionPage.vue","webpack:///./src/views/ExpeditionPage.vue?4d49","webpack:///./src/components/Expedition/Modules/QuizModule.vue?2e5c","webpack:///./src/components/Expedition/ExpeditionFooter.vue?fad3","webpack:///./src/components/common/Markdown.vue?8e27","webpack:///./src/components/common/Markdown.vue","webpack:///./src/components/common/Markdown.vue?2420","webpack:///./src/components/Expedition/Modules/HotspotPoint.vue?897d"],"names":["_hoisted_1","class","_hoisted_2","props","currentChapter","type","Number","required","chapters","Array","setup","__props","t","isEmbedded","navigateToChapter","chapter","event_name","category","interaction_type","value","number","embed","window","scrollTo","behavior","top","element","offsetTop","_ctx","_cache","key","active","hidden","length","onClick","$event","undefined","title","__exports__","formatChapter","slice","Event","all","n","Map","on","e","i","get","push","set","off","splice","indexOf","emit","map","emitter","mitt","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","slides","expanderOpened","isHeader","isFooter","hideExpanderTimeout","expanderOnboarded","visitedChapters","currentChapterProgressStyle","height","chaptersVisible","observer","IntersectionObserver","onIntersect","threshold","entries","entry","intersectionRatio","target","HTMLElement","id","split","chapterNumber","parseInt","IntersectExpeditionChapter","progress","prepareObservation","header","document","querySelector","footer","forEach","observe","openChapters","clearTimeout","closeChapters","click","reduce","slide","index","logger","warn","disconnect","curr","prev","setTimeout","_component_Icon","name","default","expanded","style","onMouseenter","_","onMouseleave","Panel","opened","onClose","initial","transparent","ChapterNavigation","controllerInjectionKey","Symbol","useScrollController","controller","image","Object","viewHeight","body","clientHeight","targets","easing","translateY","Image","mobile","large","width","fill","sqip","ref","viewBox","preserveAspectRatio","stroke","d","render","$props","$setup","$data","$options","_component_Image","_component_AppButton","minHeight","viewHeightPx","expeditionPage","coverImageWithProperties","flip","subtitle","toSecondChapter","label","components","Icon","AppButton","emits","titleRef","introRef","imageRef","imageOverlayRef","buttonContainerRef","arrowRef","lineDownRef","prefersReducedMotion","duration","timeline","autoplay","setupTimeline","add","$el","scale","opacity","getElementsByTagName","strokeDashoffset","setDashoffset","flex","setupBackgroundScroll","chapterEl","Promise","resolve","reject","addEventListener","play","error","initZoom","initCenter","points","aggregatedPoints","showOverlay","show","addEscapeListener","hide","removeEscapeListener","onKeyUp","removeEventListener","keyCode","Mapbox","MarkerLayer","AggregatedMarkerLayer","HighlightLayer","occurrences","expeditions","animate","_component_Markdown","paragraph","text","Markdown","relatedExpeditions","filter","expedition","url","onRelatedExpeditionClick","_component_Link","_component_Columns","_component_router_link","paragraphs","Paragraph","links","link","icon","to","backgroundImageWithProperties","ContentPageLinks","dark","ModuleType","TitleTextColor","_component_TextModule","_component_ImageModule","_component_HotspotModule","_component_ImageRevealModule","_component_QuizModule","_component_YoutubeModule","_component_VimeoModule","moduleData","moduleType","Text","Hotspot","ImageReveal","Quiz","Youtube","Vimeo","_component_HotspotPoint","_component_ContentPopup","$attrs","imageWithProperties","imageHasBorder","hotspotPoints","point","hotspotPointStaggerTime","visited","visitedHotspotPoints","includes","onPointClick","selectedHotspotPoint","data","pointStyle","openPointPanel","Boolean","relY","left","relX","_component_CloseButton","_component_ContentBlock","_directive_click_outside","popupTransition","color","close","characteristics","characteristic","contentBlocks","block","_component_Paragraph","CloseButton","ContentBlock","closeButtonRef","isMobile","focus","selectedObjectKey","useSelectedObject","selectedObject","TOTAL_POINTS_STAGGER_TIME","HotspotPoint","ContentPopup","trim","gbifReference","onIntersectExpeditionChapter","selected","_component_ZoomableImage","zoomableImage","ZoomableImage","original","_component_AudioPlayer","_component_PromptPopup","introText","audioData","promptPopup","_component_IconButton","iconName","onOpen","promptData","buttonText","onAfterEnter","afterOverlayEnter","overlayTransitioned","imageZoomed","center","dismissButton","onClickOutside","getIconName","Flag","LightBulb","LookingGlass","WowBalloon","Error","IconButton","containerRef","open","buttonIcon","PromptPopup","AudioPlayer","frontImageBounds","dragging","offsetPercentage","frontImageEl","backImageUrl","backImageWithProperties","frontImageStyle","clipPath","leftOffsetStyle","startDrag","getBoundingClientRect","drag","preventDefault","x","touches","pageX","clientX","offsetPx","stopDrag","backgroundImage","onMousemove","onTouchmove","onMouseup","onTouchend","black","titleTextColor","Black","ref_key","frontImageWithProperties","DragKnob","onMousedown","onTouchstart","_component_QuizCard","question","quizAnswers","answer","guessed","currentAnswer","highlight","completed","onGuess","src","alt","_hoisted_9","_hoisted_10","_hoisted_11","wrong","correct","disabled","checkAnswer","flipped","paragraphTitle","explanationParagraph","GUESS_WRONG_RESULT_TIME","GUESS_CORRECT_RESULT_TIME","QuizCard","_component_YoutubePlayer","videoId","videoTitle","thumbnailImage","YoutubePlayer","_component_VimeoPlayer","VimeoPlayer","HotspotModule","TextModule","ImageModule","ImageRevealModule","QuizModule","YoutubeModule","VimeoModule","getRandomValues","dialogTitleId","dialogDescId","tabindex","rnds8","Uint8Array","rng","crypto","bind","msCrypto","validate","uuid","test","byteToHex","toString","substr","stringify","arr","offset","arguments","toLowerCase","TypeError","v4","options","buf","rnds","random","slideTitle","String","openBtnEl","closeBtnEl","slideData","slideId","isFullscreen","modules","some","module","isSingleModule","hasGradientBg","fullscreen","Module","infoPopup","InfoPopup","$slots","animationParentEl","parentEl","querySelectorAll","node","classList","triggerElement","reverse","setClassToggle","addTo","loadPage","route","updateHead","logInitialPageEvent","onObjectDetailPanelClose","params","slug","page","metaTitle","AnimationScrollObserver","Header","right","NavigationBar","ExpeditionBackgroundImage","ExpeditionHeader","onLoad","Chapters","Slide","ExpeditionMap","initialMapLocation","zoomLevel","ExpeditionFooter","ObjectDetailPanel","gbifId","qid","innerHTML"],"mappings":"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","file":"expedition-page.641cf8782827af4b0d48.js","sourcesContent":["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!./ExpeditionBackgroundImage.vue?vue&type=style&index=0&id=56f2b1ea&lang=scss&scoped=true\"","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!./Chapters.vue?vue&type=style&index=0&id=441749ca&lang=scss&scoped=true\"","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!./QuizCard.vue?vue&type=style&index=0&id=092565ef&lang=scss&scoped=true\"","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!./ExpeditionHeader.vue?vue&type=style&index=0&id=4096690c&lang=scss&scoped=true\"","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!./Markdown.vue?vue&type=style&index=0&id=cc6e5daa&lang=scss&scoped=true\"","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!./TextModule.vue?vue&type=style&index=0&id=df744ffc&lang=scss&scoped=true\"","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!./Slide.vue?vue&type=style&index=0&id=c6617232&lang=scss&scoped=true\"","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!./ImageRevealModule.vue?vue&type=style&index=0&id=07d9d56e&lang=scss&scoped=true\"","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!./DragKnob.vue?vue&type=style&index=0&id=fd93bc7e&lang=scss&scoped=true\"","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!./PromptPopup.vue?vue&type=style&index=0&id=cfe802fa&lang=scss&scoped=true\"","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!./ChapterNavigation.vue?vue&type=style&index=0&id=212b1613&lang=scss&scoped=true\"","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!./ContentBlock.vue?vue&type=style&index=0&id=109b8f1e&lang=scss&scoped=true\"","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!./HotspotModule.vue?vue&type=style&index=0&id=6a203e01&lang=scss&scoped=true\"","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!./ExpeditionMap.vue?vue&type=style&index=0&id=0c2a2676&lang=scss&scoped=true\"","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!./Paragraph.vue?vue&type=style&index=0&id=e6265e6c&lang=scss&scoped=true\"","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!./InfoPopup.vue?vue&type=style&index=0&id=78e4e304&lang=scss&scoped=true\"","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!./ExpeditionPage.vue?vue&type=style&index=0&id=233fa880&lang=scss&scoped=true\"","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!./ContentPopup.vue?vue&type=style&index=0&id=30421c21&lang=scss&scoped=true\"","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-212b1613\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"chapter-navigation\" }\nconst _hoisted_2 = [\"onClick\", \"aria-label\"]\n\nimport { PropType } from 'vue';\nimport { useI18n } from 'vue-i18n';\nimport { Chapter } from '@/components/Expedition/Chapters.vue';\nimport { logInteractionEvent } from '@/utils/gtm';\nimport { useEmbeddedState } from '@/composables/use-embedded-state';\n\n\nexport default /*#__PURE__*/_defineComponent({\n  props: {\n  currentChapter: {\n    type: Number,\n    required: true,\n  },\n  chapters: {\n    type: Array as PropType<Chapter[]>,\n    required: true,\n  },\n},\n  setup(__props) {\n\n\n\nconst { t } = useI18n();\nconst { isEmbedded } = useEmbeddedState();\n\nfunction navigateToChapter(chapter: Chapter) {\n  logInteractionEvent({\n    event_name: 'navigate_to_chapter',\n    category: 'expedition',\n    interaction_type: 'click',\n    value: chapter.number,\n    embed: isEmbedded.value,\n  });\n  window.scrollTo({ behavior: 'smooth', top: chapter.element.offsetTop });\n}\n\nreturn (_ctx: any,_cache: any) => {\n  return (_openBlock(), _createElementBlock(\"nav\", _hoisted_1, [\n    _createElementVNode(\"ul\", null, [\n      (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.chapters, (chapter) => {\n        return (_openBlock(), _createElementBlock(\"li\", {\n          key: chapter.number,\n          class: _normalizeClass({\n          active: chapter.number === __props.currentChapter,\n          hidden: chapter.number <= 0 || chapter.number > __props.chapters.length,\n        })\n        }, [\n          _createElementVNode(\"button\", {\n            onClick: ($event: any) => (navigateToChapter(chapter)),\n            \"aria-label\": chapter.number === __props.currentChapter ? _unref(t)('expedition.currentChapterLabel') : undefined\n          }, _toDisplayString(chapter.title), 9, _hoisted_2)\n        ], 2))\n      }), 128))\n    ])\n  ]))\n}\n}\n\n})","import script from \"./ChapterNavigation.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ChapterNavigation.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ChapterNavigation.vue?vue&type=style&index=0&id=212b1613&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, [['__scopeId',\"data-v-212b1613\"]])\n\nexport default __exports__","export function formatChapter(chapter: number) {\n  return ('0' + chapter).slice(-2);\n}\n","import mitt from 'mitt';\n\nexport enum Event {\n  IntersectExpeditionChapter = 'intersectExpeditionChapter',\n}\n\ntype Events = {\n  [Event.IntersectExpeditionChapter]: number;\n};\n\nexport const emitter = mitt<Events>();\n","export default function(n){return{all:n=n||new Map,on:function(t,e){var i=n.get(t);i?i.push(e):n.set(t,[e])},off:function(t,e){var i=n.get(t);i&&(e?i.splice(i.indexOf(e)>>>0,1):n.set(t,[]))},emit:function(t,e){var i=n.get(t);i&&i.slice().map(function(n){n(e)}),(i=n.get(\"*\"))&&i.slice().map(function(n){n(t,e)})}}}\n//# sourceMappingURL=mitt.mjs.map\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeStyle as _normalizeStyle, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, Transition as _Transition, withCtx as _withCtx, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-441749ca\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = [\"aria-label\"]\nconst _hoisted_3 = {\n  class: \"chapters-current\",\n  \"aria-hidden\": \"true\"\n}\nconst _hoisted_4 = { class: \"chapter\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"hr\", null, null, -1))\nconst _hoisted_6 = { class: \"chapter\" }\nconst _hoisted_7 = {\n  class: \"chapters-progress\",\n  \"aria-hidden\": \"true\"\n}\nconst _hoisted_8 = [\"aria-label\"]\n\nimport { computed, onBeforeUnmount, onMounted, PropType, ref } from 'vue';\n\nimport ChapterNavigation from '@/components/Expedition/ChapterNavigation.vue';\nimport Panel from '@/components/common/Panel.vue';\nimport { formatChapter } from '@/utils/expedition';\nimport { useI18n } from 'vue-i18n';\nimport { SlideData } from '@/model/expedition';\nimport logger from '@/utils/logger';\nimport { AppError } from '@/services/errors';\nimport { emitter, Event } from '@/utils/events';\nimport { logInteractionEvent } from '@/utils/gtm';\nimport { useEmbeddedState } from '@/composables/use-embedded-state';\nimport { watchWhileActive } from '@/utils/vue-lifecycle';\n\nexport interface Chapter {\n  title: string;\n  number: number;\n  element: HTMLElement;\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n  props: {\n  slides: {\n    type: Array as PropType<SlideData[]>,\n    required: true,\n  },\n},\n  setup(__props) {\n\nconst props = __props\n\n\n\nconst currentChapter = ref(1);\nconst expanderOpened = ref(false);\nconst chapters = ref<Chapter[]>([]);\nconst isHeader = ref(true);\nconst isFooter = ref(false);\nconst hideExpanderTimeout = ref(0);\nconst expanderOnboarded = ref(false);\nconst { isEmbedded } = useEmbeddedState();\n\nlet visitedChapters: Record<number, boolean> = {};\n\nconst { t } = useI18n();\n\nconst currentChapterProgressStyle = computed(() => ({\n  height: `${(currentChapter.value / chapters.value.length) * 100}%`,\n}));\nconst chaptersVisible = computed(() => !isHeader.value && !isFooter.value);\n\nconst observer = new IntersectionObserver(onIntersect, { threshold: 0.6 });\n\nonMounted(() => {\n  chapters.value = props.slides.reduce((chapters: Chapter[], slide: SlideData, index: number) => {\n    const number = index + 1;\n    const element = document.querySelector(`#slide-${number}`);\n\n    if (element && element instanceof HTMLElement) {\n      chapters.push({\n        title: slide.title,\n        number,\n        element,\n      });\n    } else {\n      logger.warn(\n        `Required slide element for chapter ${slide.title} not found or not a valid HTML element. Skipping adding it to chapters, but this should not happen.`,\n      );\n    }\n\n    return chapters;\n  }, []);\n  prepareObservation();\n});\n\nonBeforeUnmount(() => {\n  observer.disconnect();\n});\n\nfunction onIntersect(entries: IntersectionObserverEntry[]) {\n  const [entry] = entries;\n  if (entry.intersectionRatio > 0 && entry.target instanceof HTMLElement) {\n    const [element, chapter] = entry.target.id.split('-');\n    if (chapter) {\n      const chapterNumber = parseInt(chapter);\n      currentChapter.value = chapterNumber;\n      emitter.emit(Event.IntersectExpeditionChapter, chapterNumber);\n\n      if (!visitedChapters[chapterNumber]) {\n        logInteractionEvent({\n          event_name: 'chapter_intersect',\n          category: 'expedition',\n          interaction_type: 'scroll',\n          value: `${chapterNumber} of ${chapters.value.length}`,\n          progress: chapterNumber / chapters.value.length,\n          embed: isEmbedded.value,\n        });\n        visitedChapters[chapterNumber] = true;\n      }\n    }\n\n    isHeader.value = element === 'header';\n    isFooter.value = element === 'footer';\n  }\n}\n\nfunction prepareObservation() {\n  const header = document.querySelector('#header');\n  const footer = document.querySelector('#footer');\n\n  if (!(header instanceof HTMLElement) || !(footer instanceof HTMLElement)) {\n    throw new AppError('Header or footer element not found in expedition. Make sure it exists.');\n  }\n\n  chapters.value?.forEach(chapter => {\n    observer.observe(chapter.element);\n  });\n  observer.observe(header);\n  observer.observe(footer);\n}\n\nfunction openChapters() {\n  expanderOpened.value = true;\n\n  if (!expanderOnboarded.value) {\n    clearTimeout(hideExpanderTimeout.value);\n    expanderOnboarded.value = true;\n  } else {\n    logInteractionEvent({\n      event_name: 'open_chapter_navigation',\n      category: 'expedition',\n      interaction_type: 'click',\n      embed: isEmbedded.value,\n    });\n  }\n}\n\nfunction closeChapters(click = false) {\n  expanderOpened.value = false;\n\n  if (!click) {\n    logInteractionEvent({\n      event_name: 'close_chapter_navigation',\n      category: 'expedition',\n      interaction_type: 'click',\n      embed: isEmbedded.value,\n    });\n  }\n}\n\nwatchWhileActive(chaptersVisible, (curr, prev) => {\n  if (curr && !prev && !expanderOnboarded.value) {\n    expanderOpened.value = true;\n\n    hideExpanderTimeout.value = window.setTimeout(() => {\n      expanderOpened.value = false;\n      expanderOnboarded.value = true;\n    }, 3500);\n  }\n});\n\nreturn (_ctx: any,_cache: any) => {\n  const _component_Icon = _resolveComponent(\"Icon\")!\n\n  return (_openBlock(), _createElementBlock(_Fragment, null, [\n    _createVNode(_Transition, { name: \"short-fade\" }, {\n      default: _withCtx(() => [\n        (_unref(chaptersVisible))\n          ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n              _createElementVNode(\"div\", {\n                class: _normalizeClass([\"chapters\", { expanded: expanderOpened.value }]),\n                \"aria-label\": `${_unref(t)('expedition.chapterLabel')} ${currentChapter.value} ${_unref(t)('expedition.totalChapterLabel')} ${\n          chapters.value.length\n        }`\n              }, [\n                _createElementVNode(\"div\", _hoisted_3, [\n                  _createElementVNode(\"div\", _hoisted_4, _toDisplayString(_unref(formatChapter)(currentChapter.value)), 1),\n                  _hoisted_5,\n                  _createElementVNode(\"div\", _hoisted_6, _toDisplayString(_unref(formatChapter)(chapters.value.length)), 1)\n                ]),\n                _createElementVNode(\"div\", _hoisted_7, [\n                  _createElementVNode(\"div\", {\n                    class: \"current-progress\",\n                    style: _normalizeStyle(_unref(currentChapterProgressStyle))\n                  }, null, 4)\n                ]),\n                _createElementVNode(\"button\", {\n                  onMouseenter: openChapters,\n                  onClick: openChapters,\n                  \"aria-label\": _unref(t)('expedition.chapterExpanderOpenLabel')\n                }, [\n                  _createVNode(_component_Icon, { name: \"eye\" })\n                ], 40, _hoisted_8)\n              ], 10, _hoisted_2)\n            ]))\n          : _createCommentVNode(\"\", true)\n      ]),\n      _: 1\n    }),\n    _createElementVNode(\"nav\", {\n      class: \"panel-container\",\n      onMouseleave: _cache[1] || (_cache[1] = ($event: any) => (closeChapters()))\n    }, [\n      _createVNode(Panel, {\n        opened: expanderOpened.value,\n        onClose: _cache[0] || (_cache[0] = ($event: any) => (closeChapters(true))),\n        initial: !expanderOnboarded.value,\n        transparent: \"\"\n      }, {\n        default: _withCtx(() => [\n          _createVNode(ChapterNavigation, {\n            \"current-chapter\": currentChapter.value,\n            chapters: chapters.value\n          }, null, 8, [\"current-chapter\", \"chapters\"])\n        ]),\n        _: 1\n      }, 8, [\"opened\", \"initial\"])\n    ], 32)\n  ], 64))\n}\n}\n\n})","import script from \"./Chapters.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Chapters.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Chapters.vue?vue&type=style&index=0&id=441749ca&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, [['__scopeId',\"data-v-441749ca\"]])\n\nexport default __exports__","import { inject, InjectionKey } from 'vue';\nimport { Controller } from 'scrollmagic';\nimport { AppError } from '@/services/errors';\n\nexport const controllerInjectionKey: InjectionKey<Controller> = Symbol();\nexport function useScrollController() {\n  const controller = inject(controllerInjectionKey);\n\n  if (!controller) {\n    throw new AppError('Missing required injected controller instance');\n  }\n\n  return controller;\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nimport { onMounted, PropType } from 'vue';\n\nimport Image from '@/components/Content/Image.vue';\nimport { Image as IImage } from '@/model/content';\nimport { createScrollAnimation } from '@/utils/animation';\nimport { useScrollController } from '@/composables/use-scroll-controller';\nimport { useDimensions } from '@/composables/use-dimensions';\n\n\nexport default /*#__PURE__*/_defineComponent({\n  props: {\n  image: {\n    type: Object as PropType<IImage>,\n    required: true,\n  },\n},\n  setup(__props) {\n\n\n\nconst controller = useScrollController();\nconst { viewHeight } = useDimensions();\n\nonMounted(() =>\n  createScrollAnimation(controller, document.body.clientHeight, [\n    {\n      targets: '.expedition-background img',\n      easing: 'linear',\n      translateY: [0, '-20%'],\n    },\n  ]),\n);\n\nreturn (_ctx: any,_cache: any) => {\n  return (_openBlock(), _createBlock(Image, {\n    class: \"expedition-background\",\n    \"image-set\": { mobile: 600, large: 1000, 'large-up': 1920 },\n    image: __props.image,\n    \"image-style\": { height: `${1.3 * _unref(viewHeight)}px` },\n    width: 1920,\n    \"object-fit\": \"cover\",\n    fill: \"\",\n    \"hide-copyright\": \"\",\n    sqip: \"\"\n  }, null, 8, [\"image\", \"image-style\"]))\n}\n}\n\n})","import script from \"./ExpeditionBackgroundImage.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./ExpeditionBackgroundImage.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./ExpeditionBackgroundImage.vue?vue&type=style&index=0&id=56f2b1ea&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, [['__scopeId',\"data-v-56f2b1ea\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, normalizeStyle as _normalizeStyle, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4096690c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n  class: \"expedition-header-image-overlay\",\n  ref: \"imageOverlayRef\"\n}\nconst _hoisted_2 = {\n  class: \"button-container\",\n  ref: \"buttonContainerRef\"\n}\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n  viewBox: \"0 0 200 50\",\n  preserveAspectRatio: \"none\"\n}, [\n  /*#__PURE__*/_createElementVNode(\"g\", {\n    fill: \"none\",\n    stroke: \"currentColor\",\n    \"stroke-width\": \"2\"\n  }, [\n    /*#__PURE__*/_createElementVNode(\"path\", { d: \"M 100 0 H 0 V 50 H 100\" }),\n    /*#__PURE__*/_createElementVNode(\"path\", { d: \"M 100 0 H 200 V 50 H 100\" })\n  ])\n], -1))\nconst _hoisted_4 = { ref: \"arrowRef\" }\nconst _hoisted_5 = {\n  class: \"line-down\",\n  ref: \"lineDownRef\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  const _component_Image = _resolveComponent(\"Image\")!\n  const _component_AppButton = _resolveComponent(\"AppButton\")!\n  const _component_Icon = _resolveComponent(\"Icon\")!\n\n  return (_openBlock(), _createElementBlock(\"div\", {\n    class: \"expedition-header\",\n    style: _normalizeStyle({ minHeight: _ctx.viewHeightPx }),\n    id: \"header\"\n  }, [\n    _createVNode(_component_Image, {\n      class: \"expedition-header-image\",\n      style: _normalizeStyle({ minHeight: _ctx.viewHeightPx }),\n      ref: \"imageRef\",\n      image: _ctx.expeditionPage.coverImageWithProperties,\n      \"image-set\": { mobile: 600, large: 1000, 'large-up': 1920 },\n      width: 1920,\n      \"object-fit\": \"cover\",\n      flip: \"\",\n      fill: \"\",\n      sqip: \"\"\n    }, null, 8, [\"style\", \"image\"]),\n    _createElementVNode(\"div\", _hoisted_1, null, 512),\n    _createElementVNode(\"h1\", {\n      class: \"super-title\",\n      ref: \"titleRef\"\n    }, _toDisplayString(_ctx.expeditionPage.title), 513),\n    (_ctx.expeditionPage.subtitle)\n      ? (_openBlock(), _createElementBlock(\"p\", {\n          key: 0,\n          class: \"intro\",\n          ref: \"introRef\"\n        }, _toDisplayString(_ctx.expeditionPage.subtitle), 513))\n      : _createCommentVNode(\"\", true),\n    _createElementVNode(\"div\", _hoisted_2, [\n      _createVNode(_component_AppButton, {\n        onClick: _ctx.toSecondChapter,\n        label: _ctx.t('expedition.startYourExpeditionButton')\n      }, null, 8, [\"onClick\", \"label\"]),\n      _hoisted_3\n    ], 512),\n    _createElementVNode(\"div\", _hoisted_4, [\n      _createVNode(_component_Icon, {\n        name: \"arrow\",\n        class: \"arrow\"\n      })\n    ], 512),\n    _createElementVNode(\"div\", _hoisted_5, null, 512)\n  ], 4))\n}","\nimport { defineComponent, nextTick, onMounted, PropType, ref } from 'vue';\nimport { useI18n } from 'vue-i18n';\nimport anime from 'animejs';\n\nimport Image from '@/components/Content/Image.vue';\nimport Icon from '@/components/common/Icon.vue';\nimport AppButton from '@/components/common/AppButton.vue';\nimport { ExpeditionPage } from '@/model/expedition';\nimport logger from '@/utils/logger';\nimport { createScrollAnimation } from '@/utils/animation';\nimport { useScrollController } from '@/composables/use-scroll-controller';\nimport { useDevice } from '@/composables/use-device';\nimport { logInteractionEvent } from '@/utils/gtm';\nimport { useEmbeddedState } from '@/composables/use-embedded-state';\nimport { useDimensions } from '@/composables/use-dimensions';\n\nexport default defineComponent({\n  components: {\n    Icon,\n    Image,\n    AppButton,\n  },\n  emits: ['load'],\n  props: {\n    expeditionPage: {\n      type: Object as PropType<ExpeditionPage>,\n      required: true,\n    },\n  },\n  setup(props, { emit }) {\n    const titleRef = ref<HTMLElement>();\n    const introRef = ref<HTMLElement>();\n    const imageRef = ref<InstanceType<typeof Image>>();\n    const imageOverlayRef = ref<HTMLDivElement>();\n    const buttonContainerRef = ref<HTMLElement>();\n    const arrowRef = ref<InstanceType<typeof Icon>>();\n    const lineDownRef = ref<HTMLElement>();\n    const { prefersReducedMotion } = useDevice();\n    const { t } = useI18n();\n    const controller = useScrollController();\n    const { isEmbedded } = useEmbeddedState();\n    const { viewHeightPx } = useDimensions();\n\n    const duration = 750;\n    const timeline = anime.timeline({\n      duration,\n      easing: 'easeInOutQuint',\n      autoplay: false,\n    });\n\n    onMounted(async () => {\n      try {\n        await nextTick();\n\n        if (!prefersReducedMotion()) {\n          setupTimeline();\n          setupBackgroundScroll();\n        }\n\n        // Wait for the background image to load before we can start the intro (timeline animation).\n        try {\n          await new Promise((resolve, reject) => {\n            const image = imageRef.value?.$el.querySelector('img');\n            if (!image) {\n              reject();\n            }\n\n            image.addEventListener('load', resolve);\n            image.addEventListener('error', reject);\n          });\n        } catch (e) {\n          logger.warn('Error while loading expedition background.', e);\n        }\n\n        if (!prefersReducedMotion()) {\n          timeline.play();\n        }\n      } catch (e) {\n        // TODO: Show error page\n        logger.error('Failed to mount expedition,', e);\n      }\n\n      emit('load');\n    });\n\n    function setupTimeline() {\n      timeline\n        // Background image\n        .add({\n          targets: imageRef.value?.$el,\n          easing: 'easeOutQuint',\n          scale: [0.95, 1.05],\n          opacity: [0, 1],\n        })\n        // Title\n        .add({\n          targets: titleRef.value,\n          easing: 'easeOutQuint',\n          translateY: ['-100%', 0],\n          opacity: [0, 1],\n        })\n        // Intro\n        .add({\n          targets: introRef.value,\n          opacity: [0, 1],\n        })\n        // Button outline\n        .add({\n          targets: buttonContainerRef.value?.getElementsByTagName('path'),\n          strokeDashoffset: [anime.setDashoffset, 0],\n        })\n        // Button content\n        // Has a background and we animate the outline separately.\n        // To minimize showing the background without a border we use a different easing function and start time and a shorter duration.\n        .add(\n          {\n            targets: buttonContainerRef.value?.getElementsByTagName('button'),\n            easing: 'easeInOutSine',\n            opacity: [0, 1],\n            duration: duration / 2,\n          },\n          `-=${duration / 2}`, // Start at 50% from the outline animation.\n        )\n        // Arrow\n        // The arrow and line are \"connected\" through a sense of motion.\n        // Therefore they use different easing functions and the line has a small delay to compensate for the gap.\n        .add({\n          targets: arrowRef.value,\n          easing: 'easeInQuad',\n          translateY: [-20, 0],\n          opacity: [0, 1],\n          duration: duration / 2,\n        })\n        // Line to bottom\n        .add(\n          {\n            easing: 'easeOutQuad',\n            targets: lineDownRef.value,\n            flex: [0, 1],\n          },\n          '+=100',\n        );\n    }\n\n    function setupBackgroundScroll() {\n      createScrollAnimation(controller, duration, [\n        {\n          targets: imageRef.value?.$el,\n          easing: 'easeInQuad',\n          scale: [1.05, 1],\n        },\n        {\n          targets: imageOverlayRef.value,\n          easing: 'easeInQuad',\n          opacity: [1, 0],\n        },\n      ]);\n    }\n\n    function toSecondChapter() {\n      logInteractionEvent({\n        event_name: 'start_expedition',\n        category: 'expedition',\n        interaction_type: 'click',\n        embed: isEmbedded.value,\n      });\n\n      const chapterEl = document.querySelector(`#slide-1`);\n      if (chapterEl && chapterEl instanceof HTMLElement) {\n        window.scrollTo({ behavior: 'smooth', top: chapterEl.offsetTop });\n      }\n    }\n\n    return {\n      titleRef,\n      introRef,\n      imageRef,\n      imageOverlayRef,\n      buttonContainerRef,\n      arrowRef,\n      lineDownRef,\n      viewHeightPx,\n      t,\n      toSecondChapter,\n    };\n  },\n});\n","import { render } from \"./ExpeditionHeader.vue?vue&type=template&id=4096690c&scoped=true&ts=true\"\nimport script from \"./ExpeditionHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./ExpeditionHeader.vue?vue&type=script&lang=ts\"\n\nimport \"./ExpeditionHeader.vue?vue&type=style&index=0&id=4096690c&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-4096690c\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, withCtx as _withCtx, resolveComponent as _resolveComponent, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, Transition as _Transition, createBlock as _createBlock, normalizeStyle as _normalizeStyle, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0c2a2676\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n  key: 0,\n  class: \"expedition-map-overlay\"\n}\nconst _hoisted_2 = { class: \"expedition-map-overlay-content\" }\nconst _hoisted_3 = { class: \"title\" }\n\nimport { onDeactivated, PropType, ref } from 'vue';\nimport { LngLat } from 'mapbox-gl';\n\nimport AppButton from '@/components/common/AppButton.vue';\nimport Mapbox from '@/components/Map/Mapbox.vue';\nimport MarkerLayer from '@/components/Map/Layers/MarkerLayer.vue';\nimport AggregatedMarkerLayer from '@/components/Map/Layers/AggregatedMarkerLayer.vue';\nimport HighlightLayer from '@/components/Map/Layers/HighlightLayer.vue';\nimport { Cluster, Point } from '@/model/map';\nimport { useDimensions } from '@/composables/use-dimensions';\nimport { useI18n } from 'vue-i18n';\n\n\nexport default /*#__PURE__*/_defineComponent({\n  props: {\n  initZoom: {\n    type: Number,\n  },\n  initCenter: {\n    type: Object as PropType<LngLat>,\n  },\n  points: {\n    type: Array as PropType<Point[]>,\n    default: () => [],\n  },\n  aggregatedPoints: {\n    type: Array as PropType<Cluster[]>,\n    default: () => [],\n  },\n},\n  setup(__props) {\n\n\n\nconst showOverlay = ref(true);\nconst { viewHeight } = useDimensions();\nconst { t } = useI18n();\n\nonDeactivated(removeEscapeListener);\n\nfunction show() {\n  showOverlay.value = false;\n\n  addEscapeListener();\n}\n\nfunction hide() {\n  showOverlay.value = true;\n\n  removeEscapeListener();\n}\n\nfunction addEscapeListener() {\n  document.addEventListener('keyup', onKeyUp);\n}\n\nfunction removeEscapeListener() {\n  document.removeEventListener('keyup', onKeyUp);\n}\n\nfunction onKeyUp(e: KeyboardEvent) {\n  if (e.key === 'Escape' || e.keyCode === 27) {\n    hide();\n  }\n}\n\nreturn (_ctx: any,_cache: any) => {\n  const _component_Icon = _resolveComponent(\"Icon\")!\n\n  return (_openBlock(), _createElementBlock(\"div\", {\n    class: \"expedition-map\",\n    style: _normalizeStyle({ height: `${0.7 * _unref(viewHeight)}px` })\n  }, [\n    _createVNode(Mapbox, {\n      \"init-zoom\": __props.initZoom,\n      \"init-center\": __props.initCenter,\n      \"zoom-on-select\": false,\n      \"force-init-location\": \"\"\n    }, {\n      default: _withCtx(() => [\n        _createVNode(MarkerLayer, { points: __props.points }, null, 8, [\"points\"]),\n        _createVNode(AggregatedMarkerLayer, { \"aggregated-points\": __props.aggregatedPoints }, null, 8, [\"aggregated-points\"]),\n        _createVNode(HighlightLayer, {\n          occurrences: __props.points,\n          expeditions: [],\n          animate: \"\"\n        }, null, 8, [\"occurrences\"])\n      ]),\n      _: 1\n    }, 8, [\"init-zoom\", \"init-center\"]),\n    _createVNode(_Transition, { name: \"short-fade\" }, {\n      default: _withCtx(() => [\n        (showOverlay.value)\n          ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n              _createElementVNode(\"div\", _hoisted_2, [\n                _createVNode(_component_Icon, { name: \"explore\" }),\n                _createElementVNode(\"p\", _hoisted_3, _toDisplayString(_unref(t)('expedition.map.title')), 1),\n                _createVNode(AppButton, {\n                  label: _unref(t)('expedition.map.showButtonLabel'),\n                  onClick: show\n                }, null, 8, [\"label\"])\n              ])\n            ]))\n          : _createCommentVNode(\"\", true)\n      ]),\n      _: 1\n    }),\n    _createVNode(_Transition, { name: \"short-slide-fade-left\" }, {\n      default: _withCtx(() => [\n        (!showOverlay.value)\n          ? (_openBlock(), _createBlock(AppButton, {\n              key: 0,\n              class: \"expedition-map-back-btn\",\n              label: _unref(t)('expedition.map.hideButtonLabel'),\n              onClick: hide\n            }, null, 8, [\"label\"]))\n          : _createCommentVNode(\"\", true)\n      ]),\n      _: 1\n    })\n  ], 4))\n}\n}\n\n})","import script from \"./ExpeditionMap.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./ExpeditionMap.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./ExpeditionMap.vue?vue&type=style&index=0&id=0c2a2676&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, [['__scopeId',\"data-v-0c2a2676\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e6265e6c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"paragraph-wrapper\" }\nconst _hoisted_2 = {\n  key: 0,\n  class: \"paragraph-title\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  const _component_Markdown = _resolveComponent(\"Markdown\")!\n\n  return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n    (_ctx.paragraph.title)\n      ? (_openBlock(), _createElementBlock(\"h4\", _hoisted_2, _toDisplayString(_ctx.paragraph.title), 1))\n      : _createCommentVNode(\"\", true),\n    _createVNode(_component_Markdown, {\n      text: _ctx.paragraph.text\n    }, null, 8, [\"text\"])\n  ]))\n}","\nimport { defineComponent, PropType } from 'vue';\n\nimport Markdown from '@/components/common/Markdown.vue';\nimport { Paragraph } from '@/model/content';\n\nexport default defineComponent({\n  components: {\n    Markdown,\n  },\n  props: {\n    paragraph: {\n      type: Object as PropType<Paragraph>,\n      required: true,\n    },\n  },\n});\n","import { render } from \"./Paragraph.vue?vue&type=template&id=e6265e6c&scoped=true&ts=true\"\nimport script from \"./Paragraph.vue?vue&type=script&lang=ts\"\nexport * from \"./Paragraph.vue?vue&type=script&lang=ts\"\n\nimport \"./Paragraph.vue?vue&type=style&index=0&id=e6265e6c&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-e6265e6c\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, unref as _unref, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1b9825cc\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n  class: \"expedition-footer\",\n  \"data-animation\": \"\"\n}\nconst _hoisted_2 = { class: \"expedition-footer-content\" }\nconst _hoisted_3 = {\n  class: \"title\",\n  \"data-animate\": \"slide\",\n  \"data-stagger\": \"\"\n}\nconst _hoisted_4 = {\n  \"data-animate\": \"slide\",\n  \"data-stagger\": \"\"\n}\nconst _hoisted_5 = {\n  key: 0,\n  class: \"expedition-footer-related\"\n}\nconst _hoisted_6 = { class: \"image-container\" }\nconst _hoisted_7 = { class: \"title\" }\nconst _hoisted_8 = { class: \"expedition-footer-links\" }\n\nimport { computed, PropType } from 'vue';\n\nimport Paragraph from '@/components/Content/Paragraph.vue';\nimport Image from '@/components/Content/Image.vue';\nimport ContentPageLinks from '@/components/Content/ContentPageLinks.vue';\nimport { ExpeditionFooter } from '@/model/expedition';\nimport { logInteractionEvent } from '@/utils/gtm';\nimport { useEmbeddedState } from '@/composables/use-embedded-state';\n\n\nexport default /*#__PURE__*/_defineComponent({\n  props: {\n  footer: {\n    type: Object as PropType<ExpeditionFooter>,\n    required: true,\n  },\n},\n  setup(__props) {\n\nconst props = __props\n\n\n\nconst { isEmbedded } = useEmbeddedState();\nconst relatedExpeditions = computed(() => props.footer.relatedExpeditions?.filter(expedition => expedition.url));\n\nfunction onRelatedExpeditionClick(title: string) {\n  logInteractionEvent({\n    event_name: 'related_expedition',\n    category: 'expedition',\n    interaction_type: 'click',\n    title,\n    embed: isEmbedded.value,\n  });\n}\n\nreturn (_ctx: any,_cache: any) => {\n  const _component_Link = _resolveComponent(\"Link\")!\n  const _component_Columns = _resolveComponent(\"Columns\")!\n  const _component_router_link = _resolveComponent(\"router-link\")!\n\n  return (_openBlock(), _createElementBlock(\"footer\", _hoisted_1, [\n    _createElementVNode(\"div\", _hoisted_2, [\n      _createElementVNode(\"h2\", _hoisted_3, _toDisplayString(__props.footer.title), 1),\n      _createVNode(_component_Columns, null, {\n        default: _withCtx(() => [\n          _createElementVNode(\"div\", _hoisted_4, [\n            (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.footer.paragraphs, (paragraph, index) => {\n              return (_openBlock(), _createBlock(Paragraph, {\n                key: index,\n                paragraph: paragraph\n              }, null, 8, [\"paragraph\"]))\n            }), 128))\n          ]),\n          _createElementVNode(\"ul\", null, [\n            (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.footer.links, (link, index) => {\n              return (_openBlock(), _createElementBlock(\"li\", {\n                \"data-animate\": \"slide\",\n                \"data-stagger\": \"0.1\",\n                key: index\n              }, [\n                _createVNode(_component_Link, {\n                  link: link,\n                  icon: \"link\"\n                }, null, 8, [\"link\"])\n              ]))\n            }), 128))\n          ])\n        ]),\n        _: 1\n      })\n    ]),\n    (_unref(relatedExpeditions))\n      ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n          (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(relatedExpeditions), (expedition) => {\n            return (_openBlock(), _createElementBlock(\"article\", {\n              \"data-animate\": \"clip\",\n              \"data-stagger\": \"0.2\",\n              key: expedition.id\n            }, [\n              _createVNode(_component_router_link, {\n                to: expedition.url,\n                onClick: ($event: any) => (onRelatedExpeditionClick(expedition.title))\n              }, {\n                default: _withCtx(() => [\n                  _createElementVNode(\"div\", _hoisted_6, [\n                    _createVNode(Image, {\n                      class: \"related-expedition-image\",\n                      image: expedition.backgroundImageWithProperties,\n                      \"object-fit\": \"cover\",\n                      width: 600,\n                      fill: \"\",\n                      sqip: \"\"\n                    }, null, 8, [\"image\"])\n                  ]),\n                  _createElementVNode(\"p\", _hoisted_7, _toDisplayString(expedition.title), 1)\n                ]),\n                _: 2\n              }, 1032, [\"to\", \"onClick\"])\n            ]))\n          }), 128))\n        ]))\n      : _createCommentVNode(\"\", true),\n    _createElementVNode(\"div\", _hoisted_8, [\n      _createVNode(ContentPageLinks, { dark: \"\" })\n    ])\n  ]))\n}\n}\n\n})","import script from \"./ExpeditionFooter.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ExpeditionFooter.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ExpeditionFooter.vue?vue&type=style&index=0&id=1b9825cc&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, [['__scopeId',\"data-v-1b9825cc\"]])\n\nexport default __exports__","import { ContentBlock, PromptPopup, Link, Paragraph, Header, Image } from '@/model/content';\nimport { Cluster, InitialMapLocation, InitialMapLocationResponse, Point, PointResponse } from '@/model/map';\n\nexport interface ExpeditionPageResponse {\n  metaTitle: string;\n  header: Header;\n  title: string;\n  subtitle?: string;\n  initialMapLocation: InitialMapLocationResponse;\n  coverImageWithProperties: Image;\n  backgroundImageWithProperties: Image;\n  slides: SlideData[];\n  footer: ExpeditionFooter;\n  occurrences: PointResponse[];\n}\n\nexport interface ExpeditionPage {\n  metaTitle: string;\n  title: string;\n  subtitle?: string;\n  initialMapLocation: InitialMapLocation;\n  coverImageWithProperties: Image;\n  backgroundImageWithProperties: Image;\n  slides: SlideData[];\n  footer: ExpeditionFooter;\n  points: Point[];\n  aggregatedPoints: Cluster[];\n}\n\nexport interface ExpeditionFooter {\n  title: string;\n  paragraphs: Paragraph[];\n  links: Link[];\n  relatedExpeditions?: ExpeditionLink[];\n}\n\nexport interface ExpeditionLink {\n  url?: string;\n  title: string;\n  backgroundImageWithProperties: Image;\n}\n\nexport interface SlideData {\n  id: string;\n  title: string;\n  infoPopup?: InfoPopup;\n  modules: Array<\n    TextModuleData | ImageModuleData | HotspotModuleData | ImageRevealModuleData | YoutubeModuleData | VimeoModuleData\n  >;\n  backgroundImageWithProperties?: Image;\n}\n\nexport interface GbifReference {\n  gbifId: string;\n}\n\nexport interface InfoPopup {\n  title: string;\n  text: string;\n}\n\nexport interface ModuleData {\n  id: string;\n  moduleType: ModuleType;\n}\n\nexport interface TextModuleData extends ModuleData {\n  moduleType: ModuleType.Text;\n  title?: string;\n  subtitle?: string;\n  introText?: string;\n  paragraphs?: Paragraph[];\n  promptPopup?: PromptPopup;\n  audioData?: AudioData;\n}\n\nexport interface ImageModuleData extends ModuleData {\n  moduleType: ModuleType.Image;\n  imageWithProperties: Image;\n  imageHasBorder: boolean;\n}\n\nexport interface HotspotModuleData extends ModuleData {\n  moduleType: ModuleType.Hotspot;\n  title: string;\n  imageWithProperties: Image;\n  imageHasBorder: boolean;\n  hotspotPoints: HotspotPoint[];\n}\n\nexport interface HotspotPoint {\n  id: string;\n  data: HotspotPointData | HotspotGbifData;\n  relX: number;\n  relY: number;\n}\n\nexport interface HotspotGbifData {\n  gbifReference: GbifReference;\n}\n\nexport interface HotspotPointData {\n  imageWithProperties?: Image;\n  title: string;\n  characteristics: {\n    imageWithProperties: Image;\n    label: string;\n  }[];\n  contentBlocks: ContentBlock[];\n}\n\nexport interface ImageRevealModuleData extends ModuleData {\n  moduleType: ModuleType.ImageReveal;\n  title: string;\n  backImageWithProperties: Image;\n  frontImageWithProperties: Image;\n  titleTextColor: TitleTextColor;\n}\n\nexport interface QuizModuleData extends ModuleData {\n  question: string;\n  quizAnswers: QuizAnswer[];\n}\n\nexport interface QuizAnswer {\n  correct: boolean;\n  title?: string;\n  paragraphTitle?: string;\n  paragraph?: string;\n  imageWithProperties?: Image;\n  explanationParagraph?: string;\n}\n\nexport interface BaseVideoModuleData extends ModuleData {\n  videoId: string;\n}\n\nexport interface VimeoModuleData extends BaseVideoModuleData {\n  thumbnailImage: Image;\n}\n\nexport interface YoutubeModuleData extends BaseVideoModuleData {\n  videoTitle: string;\n  thumbnailImage?: Image;\n}\n\nexport interface AudioData {\n  audioUrl: string;\n  imageWithProperties?: Image;\n}\n\nexport enum ModuleType {\n  Text = 0,\n  Hotspot = 1,\n  ImageReveal = 2,\n  Image = 3,\n  Quiz = 4,\n  Youtube = 5,\n  Vimeo = 6,\n}\n\nexport enum TitleTextColor {\n  White = 0,\n  Black = 1,\n}\n","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  const _component_TextModule = _resolveComponent(\"TextModule\")!\n  const _component_ImageModule = _resolveComponent(\"ImageModule\")!\n  const _component_HotspotModule = _resolveComponent(\"HotspotModule\")!\n  const _component_ImageRevealModule = _resolveComponent(\"ImageRevealModule\")!\n  const _component_QuizModule = _resolveComponent(\"QuizModule\")!\n  const _component_YoutubeModule = _resolveComponent(\"YoutubeModule\")!\n  const _component_VimeoModule = _resolveComponent(\"VimeoModule\")!\n\n  return (_ctx.moduleData.moduleType === _ctx.ModuleType.Text)\n    ? (_openBlock(), _createBlock(_component_TextModule, {\n        key: 0,\n        \"module-data\": _ctx.moduleData\n      }, null, 8, [\"module-data\"]))\n    : (_ctx.moduleData.moduleType === _ctx.ModuleType.Image)\n      ? (_openBlock(), _createBlock(_component_ImageModule, {\n          key: 1,\n          \"module-data\": _ctx.moduleData\n        }, null, 8, [\"module-data\"]))\n      : (_ctx.moduleData.moduleType === _ctx.ModuleType.Hotspot)\n        ? (_openBlock(), _createBlock(_component_HotspotModule, {\n            key: 2,\n            \"module-data\": _ctx.moduleData,\n            chapter: _ctx.chapter\n          }, null, 8, [\"module-data\", \"chapter\"]))\n        : (_ctx.moduleData.moduleType === _ctx.ModuleType.ImageReveal)\n          ? (_openBlock(), _createBlock(_component_ImageRevealModule, {\n              key: 3,\n              \"module-data\": _ctx.moduleData\n            }, null, 8, [\"module-data\"]))\n          : (_ctx.moduleData.moduleType === _ctx.ModuleType.Quiz)\n            ? (_openBlock(), _createBlock(_component_QuizModule, {\n                key: 4,\n                \"module-data\": _ctx.moduleData\n              }, null, 8, [\"module-data\"]))\n            : (_ctx.moduleData.moduleType === _ctx.ModuleType.Youtube)\n              ? (_openBlock(), _createBlock(_component_YoutubeModule, {\n                  key: 5,\n                  \"module-data\": _ctx.moduleData\n                }, null, 8, [\"module-data\"]))\n              : (_ctx.moduleData.moduleType === _ctx.ModuleType.Vimeo)\n                ? (_openBlock(), _createBlock(_component_VimeoModule, {\n                    key: 6,\n                    \"module-data\": _ctx.moduleData\n                  }, null, 8, [\"module-data\"]))\n                : _createCommentVNode(\"\", true)\n}","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, createBlock as _createBlock, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, mergeProps as _mergeProps, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6a203e01\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n  key: 0,\n  class: \"title\",\n  \"data-animate\": \"slide\",\n  \"data-stagger\": \"\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  const _component_Image = _resolveComponent(\"Image\")!\n  const _component_HotspotPoint = _resolveComponent(\"HotspotPoint\")!\n  const _component_ContentPopup = _resolveComponent(\"ContentPopup\")!\n\n  return (_openBlock(), _createElementBlock(_Fragment, null, [\n    _createElementVNode(\"div\", _mergeProps({ class: \"hotspot-module\" }, _ctx.$attrs), [\n      (_ctx.title)\n        ? (_openBlock(), _createElementBlock(\"h2\", _hoisted_1, _toDisplayString(_ctx.title), 1))\n        : _createCommentVNode(\"\", true),\n      _createElementVNode(\"div\", {\n        class: _normalizeClass([\"hotspot-module-container\", { 'with-title': !!_ctx.title }]),\n        \"data-animate\": \"clip\",\n        \"data-stagger\": \"\"\n      }, [\n        _createVNode(_component_Image, {\n          class: \"hotspot-module-image\",\n          image: _ctx.moduleData.imageWithProperties,\n          \"has-border\": _ctx.moduleData.imageHasBorder,\n          \"image-set\": { mobile: 600, large: 1000, 'large-up': 1920 },\n          \"use-aspect-ratio\": \"\",\n          \"object-fit\": \"contain\",\n          width: 1920,\n          fill: \"\"\n        }, null, 8, [\"image\", \"has-border\"]),\n        (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.moduleData.hotspotPoints, (point, index) => {\n          return (_openBlock(), _createBlock(_component_HotspotPoint, {\n            \"data-animate\": \"fade\",\n            \"data-stagger\": _ctx.hotspotPointStaggerTime,\n            key: index,\n            point: point,\n            visited: _ctx.visitedHotspotPoints.includes(point.id),\n            onClick: _ctx.onPointClick\n          }, null, 8, [\"data-stagger\", \"point\", \"visited\", \"onClick\"]))\n        }), 128))\n      ], 2)\n    ], 16),\n    _createVNode(_component_ContentPopup, {\n      opened: !!_ctx.selectedHotspotPoint,\n      \"onUpdate:opened\": _cache[0] || (_cache[0] = ($event: any) => (_ctx.selectedHotspotPoint = undefined)),\n      data: _ctx.selectedHotspotPoint?.data\n    }, null, 8, [\"opened\", \"data\"])\n  ], 64))\n}","import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createStaticVNode as _createStaticVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6a54dfcb\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"aria-label\"]\nconst _hoisted_2 = /*#__PURE__*/_createStaticVNode(\"<svg fill=\\\"none\\\" viewBox=\\\"0 0 53 50\\\" data-v-6a54dfcb><defs data-v-6a54dfcb></defs><path fill=\\\"url(#paint0_radial)\\\" fill-rule=\\\"evenodd\\\" d=\\\"M26.5 49.96c14.64 0 26.5-11.18 26.5-24.98S41.14 0 26.5 0 0 11.18 0 24.98s11.86 24.98 26.5 24.98zm0-14.8c5.96 0 10.8-4.56 10.8-10.18S32.46 14.8 26.5 14.8c-5.96 0-10.8 4.56-10.8 10.18s4.84 10.18 10.8 10.18z\\\" clip-rule=\\\"evenodd\\\" data-v-6a54dfcb></path><ellipse cx=\\\"26.5\\\" cy=\\\"24.98\\\" fill=\\\"#fff\\\" rx=\\\"3.93\\\" ry=\\\"3.7\\\" data-v-6a54dfcb></ellipse><defs data-v-6a54dfcb><radialGradient id=\\\"paint0_radial\\\" cx=\\\"0\\\" cy=\\\"0\\\" r=\\\"1\\\" gradientTransform=\\\"rotate(92.17 1.22 25.25) scale(24.1374 25.6005)\\\" gradientUnits=\\\"userSpaceOnUse\\\" data-v-6a54dfcb><stop stop-color=\\\"#fff\\\" data-v-6a54dfcb></stop><stop offset=\\\".52\\\" stop-color=\\\"#fff\\\" stop-opacity=\\\".84\\\" data-v-6a54dfcb></stop><stop offset=\\\"1\\\" stop-color=\\\"#fff\\\" stop-opacity=\\\"0\\\" data-v-6a54dfcb></stop></radialGradient></defs></svg>\", 1)\nconst _hoisted_3 = [\n  _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  return (_openBlock(), _createElementBlock(\"button\", {\n    class: _normalizeClass([\"hotspot-module-point\", { visited: _ctx.visited }]),\n    style: _normalizeStyle(_ctx.pointStyle),\n    onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.openPointPanel && _ctx.openPointPanel(...args))),\n    \"aria-label\": _ctx.t('expedition.openHotspotLabel')\n  }, _hoisted_3, 14, _hoisted_1))\n}","\nimport { defineComponent, PropType, computed } from 'vue';\n\nimport { HotspotPoint } from '@/model/expedition';\nimport { useI18n } from 'vue-i18n';\n\nexport default defineComponent({\n  props: {\n    point: {\n      type: Object as PropType<HotspotPoint>,\n      required: true,\n    },\n    visited: {\n      type: Boolean,\n      default: false,\n    },\n  },\n  emits: ['click'],\n  setup(props, { emit }) {\n    const { t } = useI18n();\n    const pointStyle = computed(() => ({\n      top: `${props.point.relY * 100}%`,\n      left: `${props.point.relX * 100}%`,\n    }));\n\n    function openPointPanel() {\n      emit('click', props.point);\n    }\n\n    return {\n      t,\n      pointStyle,\n      openPointPanel,\n    };\n  },\n});\n","import { render } from \"./HotspotPoint.vue?vue&type=template&id=6a54dfcb&scoped=true&ts=true\"\nimport script from \"./HotspotPoint.vue?vue&type=script&lang=ts\"\nexport * from \"./HotspotPoint.vue?vue&type=script&lang=ts\"\n\nimport \"./HotspotPoint.vue?vue&type=style&index=0&id=6a54dfcb&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-6a54dfcb\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, resolveDirective as _resolveDirective, withDirectives as _withDirectives, Transition as _Transition, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-30421c21\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n  key: 0,\n  class: \"content-popup\",\n  \"aria-live\": \"polite\"\n}\nconst _hoisted_2 = { class: \"content-popup-scroller\" }\nconst _hoisted_3 = { class: \"content-popup-body\" }\nconst _hoisted_4 = { class: \"title\" }\nconst _hoisted_5 = {\n  key: 0,\n  class: \"characteristics\"\n}\nconst _hoisted_6 = { class: \"paragraph\" }\nconst _hoisted_7 = { key: 1 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  const _component_CloseButton = _resolveComponent(\"CloseButton\")!\n  const _component_Image = _resolveComponent(\"Image\")!\n  const _component_ContentBlock = _resolveComponent(\"ContentBlock\")!\n  const _directive_click_outside = _resolveDirective(\"click-outside\")!\n\n  return (_openBlock(), _createBlock(_Transition, { name: _ctx.popupTransition }, {\n    default: _withCtx(() => [\n      (_ctx.opened && _ctx.data)\n        ? _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n            _createElementVNode(\"div\", _hoisted_2, [\n              _createVNode(_component_CloseButton, {\n                ref: \"closeButtonRef\",\n                color: \"black\",\n                onClick: _ctx.close\n              }, null, 8, [\"onClick\"]),\n              (_ctx.data.imageWithProperties)\n                ? (_openBlock(), _createBlock(_component_Image, {\n                    key: 0,\n                    class: \"popup-header-image\",\n                    image: _ctx.data.imageWithProperties,\n                    \"object-fit\": \"contain\",\n                    width: 600,\n                    \"use-aspect-ratio\": \"\",\n                    fill: \"\"\n                  }, null, 8, [\"image\"]))\n                : _createCommentVNode(\"\", true),\n              _createElementVNode(\"div\", _hoisted_3, [\n                _createElementVNode(\"h2\", _hoisted_4, _toDisplayString(_ctx.data.title), 1),\n                (_ctx.data.characteristics.length > 0)\n                  ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_5, [\n                      (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.data.characteristics, (characteristic) => {\n                        return (_openBlock(), _createElementBlock(\"li\", {\n                          class: \"characteristic\",\n                          key: characteristic.label\n                        }, [\n                          _createElementVNode(\"figure\", null, [\n                            _createVNode(_component_Image, {\n                              class: \"content-popup-body-image\",\n                              image: characteristic.imageWithProperties,\n                              \"object-fit\": \"contain\",\n                              width: 200,\n                              fill: \"\"\n                            }, null, 8, [\"image\"]),\n                            _createElementVNode(\"figcaption\", _hoisted_6, _toDisplayString(characteristic.label), 1)\n                          ])\n                        ]))\n                      }), 128))\n                    ]))\n                  : _createCommentVNode(\"\", true),\n                (_ctx.data.characteristics.length > 0)\n                  ? (_openBlock(), _createElementBlock(\"hr\", _hoisted_7))\n                  : _createCommentVNode(\"\", true),\n                (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.data.contentBlocks, (block, index) => {\n                  return (_openBlock(), _createBlock(_component_ContentBlock, {\n                    key: index,\n                    data: block\n                  }, null, 8, [\"data\"]))\n                }), 128))\n              ])\n            ])\n          ])), [\n            [_directive_click_outside, _ctx.close]\n          ])\n        : _createCommentVNode(\"\", true)\n    ]),\n    _: 1\n  }, 8, [\"name\"]))\n}","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, Fragment as _Fragment, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  const _component_Image = _resolveComponent(\"Image\")!\n  const _component_Paragraph = _resolveComponent(\"Paragraph\")!\n\n  return (_openBlock(), _createElementBlock(_Fragment, null, [\n    (_ctx.data.imageWithProperties)\n      ? (_openBlock(), _createBlock(_component_Image, {\n          key: 0,\n          class: \"content-block-image\",\n          image: _ctx.data.imageWithProperties,\n          width: 600,\n          fill: \"\"\n        }, null, 8, [\"image\"]))\n      : _createCommentVNode(\"\", true),\n    (_ctx.data.paragraph)\n      ? (_openBlock(), _createBlock(_component_Paragraph, {\n          key: 1,\n          paragraph: _ctx.data.paragraph\n        }, null, 8, [\"paragraph\"]))\n      : _createCommentVNode(\"\", true)\n  ], 64))\n}","\nimport { defineComponent, PropType } from 'vue';\n\nimport { ContentBlock } from '@/model/content';\nimport Paragraph from '@/components/Content/Paragraph.vue';\nimport Image from '@/components/Content/Image.vue';\n\nexport default defineComponent({\n  components: {\n    Paragraph,\n    Image,\n  },\n  props: {\n    data: {\n      type: Object as PropType<ContentBlock>,\n      required: true,\n    },\n  },\n});\n","import { render } from \"./ContentBlock.vue?vue&type=template&id=109b8f1e&scoped=true&ts=true\"\nimport script from \"./ContentBlock.vue?vue&type=script&lang=ts\"\nexport * from \"./ContentBlock.vue?vue&type=script&lang=ts\"\n\nimport \"./ContentBlock.vue?vue&type=style&index=0&id=109b8f1e&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-109b8f1e\"]])\n\nexport default __exports__","\nimport { computed, defineComponent, nextTick, PropType, ref } from 'vue';\n\nimport ContentBlock from '@/components/Content/ContentBlock.vue';\nimport Image from '@/components/Content/Image.vue';\nimport { HotspotPointData } from '@/model/expedition';\nimport CloseButton from '@/components/common/CloseButton.vue';\nimport { useDimensions } from '@/composables/use-dimensions';\nimport { watchWhileActive } from '@/utils/vue-lifecycle';\n\nexport default defineComponent({\n  components: {\n    CloseButton,\n    ContentBlock,\n    Image,\n  },\n  props: {\n    opened: {\n      type: Boolean,\n      required: true,\n    },\n    data: {\n      type: Object as PropType<HotspotPointData>,\n    },\n  },\n  emits: ['update:opened'],\n  setup(props, { emit }) {\n    const closeButtonRef = ref<InstanceType<typeof CloseButton>>();\n    const { isMobile } = useDimensions();\n    const popupTransition = computed(() => (isMobile.value ? 'slide-top' : 'slide-fade'));\n\n    function close() {\n      if (props.opened) {\n        emit('update:opened', false);\n      }\n    }\n\n    watchWhileActive(\n      () => props.opened,\n      async () => {\n        if (props.opened) {\n          await nextTick();\n          closeButtonRef.value?.focus();\n        }\n      },\n    );\n\n    return {\n      closeButtonRef,\n      popupTransition,\n      close,\n    };\n  },\n});\n","import { render } from \"./ContentPopup.vue?vue&type=template&id=30421c21&scoped=true&ts=true\"\nimport script from \"./ContentPopup.vue?vue&type=script&lang=ts\"\nexport * from \"./ContentPopup.vue?vue&type=script&lang=ts\"\n\nimport \"./ContentPopup.vue?vue&type=style&index=0&id=30421c21&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-30421c21\"]])\n\nexport default __exports__","import { inject, InjectionKey, Ref } from 'vue';\nimport { AppError } from '@/services/errors';\nimport { GbifReference } from '@/model/expedition';\n\nexport const selectedObjectKey: InjectionKey<Ref<GbifReference | undefined>> = Symbol();\n\n/**\n * Composition function to access the injected selected GBIF object.\n * @throws AppError if used in a component that does not have the mapbox instance provided\n */\nexport function useSelectedObject() {\n  const selectedObject = inject(selectedObjectKey);\n\n  if (!selectedObject) {\n    throw new AppError('Missing required injected map instance');\n  }\n\n  return selectedObject;\n}\n","\nimport { computed, defineComponent, PropType, ref } from 'vue';\n\nimport Image from '@/components/Content/Image.vue';\nimport HotspotPoint from '@/components/Expedition/Modules/HotspotPoint.vue';\nimport ContentPopup from '@/components/Expedition/ContentPopup.vue';\nimport { HotspotModuleData, HotspotPoint as IHotspotPoint } from '@/model/expedition';\nimport { useSelectedObject } from '@/composables/use-selected-object';\nimport { emitter, Event } from '@/utils/events';\nimport { logInteractionEvent } from '@/utils/gtm';\nimport { useEmbeddedState } from '@/composables/use-embedded-state';\nimport { watchWhileActive } from '@/utils/vue-lifecycle';\n\nconst TOTAL_POINTS_STAGGER_TIME = 1;\n\nexport default defineComponent({\n  components: {\n    HotspotPoint,\n    ContentPopup,\n    Image,\n  },\n  props: {\n    moduleData: {\n      type: Object as PropType<HotspotModuleData>,\n      required: true,\n    },\n    chapter: {\n      type: Number,\n      required: true,\n    },\n  },\n  setup(props) {\n    const selectedHotspotPoint = ref<IHotspotPoint>();\n    const visitedHotspotPoints = ref<string[]>([]);\n    const selectedObject = useSelectedObject();\n    const { isEmbedded } = useEmbeddedState();\n\n    const title = computed(() => props.moduleData.title?.trim());\n    const hotspotPointStaggerTime = computed(\n      () => TOTAL_POINTS_STAGGER_TIME / (props.moduleData.hotspotPoints.length || 1),\n    );\n\n    function onPointClick(point: IHotspotPoint) {\n      // The hotspot point data is a gbif reference, so we open the object detail panel\n      if ('gbifReference' in point.data) {\n        selectedObject.value = point.data.gbifReference;\n      } else {\n        // The hotspot point data is custom CMS content, so we set the data and show a content popup\n        selectedObject.value = undefined;\n        selectedHotspotPoint.value = point;\n      }\n\n      logInteractionEvent({\n        event_name: 'hotspot_module_point',\n        category: 'expedition_module',\n        interaction_type: 'click',\n        type: 'gbifReference' in point.data ? 'object' : 'content',\n        embed: isEmbedded.value,\n      });\n\n      visitedHotspotPoints.value.push(point.id);\n    }\n\n    function onIntersectExpeditionChapter(chapter: number) {\n      if (chapter !== props.chapter) {\n        selectedHotspotPoint.value = undefined;\n      }\n    }\n\n    watchWhileActive(selectedHotspotPoint, selected => {\n      selected\n        ? emitter.on(Event.IntersectExpeditionChapter, onIntersectExpeditionChapter)\n        : emitter.off(Event.IntersectExpeditionChapter, onIntersectExpeditionChapter);\n    });\n\n    return {\n      visitedHotspotPoints,\n      selectedHotspotPoint,\n      title,\n      hotspotPointStaggerTime,\n      onPointClick,\n    };\n  },\n});\n","import { render } from \"./HotspotModule.vue?vue&type=template&id=6a203e01&scoped=true&ts=true\"\nimport script from \"./HotspotModule.vue?vue&type=script&lang=ts\"\nexport * from \"./HotspotModule.vue?vue&type=script&lang=ts\"\n\nimport \"./HotspotModule.vue?vue&type=style&index=0&id=6a203e01&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-6a203e01\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  const _component_ZoomableImage = _resolveComponent(\"ZoomableImage\")!\n\n  return (_openBlock(), _createBlock(_component_ZoomableImage, {\n    class: \"image-module\",\n    \"data-animate\": \"clip\",\n    \"data-stagger\": \"\",\n    image: _ctx.zoomableImage,\n    \"has-border\": _ctx.moduleData.imageHasBorder,\n    width: 600,\n    \"object-fit\": \"contain\",\n    \"image-set\": { mobile: 400, large: 400, 'large-up': 600 },\n    \"zoomed-image-set\": { mobile: 600, large: 1000, 'large-up': 1920 },\n    \"use-aspect-ratio\": \"\",\n    fill: \"\"\n  }, null, 8, [\"image\", \"has-border\"]))\n}","\nimport { defineComponent, PropType, computed } from 'vue';\nimport ZoomableImage from '@/components/Content/ZoomableImage.vue';\nimport { ImageModuleData } from '@/model/expedition';\n\nexport default defineComponent({\n  components: {\n    ZoomableImage,\n  },\n  props: {\n    moduleData: {\n      type: Object as PropType<ImageModuleData>,\n      required: true,\n    },\n  },\n  setup(props) {\n    const zoomableImage = computed(() => ({ original: props.moduleData.imageWithProperties }));\n\n    return {\n      zoomableImage,\n    };\n  },\n});\n","import { render } from \"./ImageModule.vue?vue&type=template&id=3dd2963f&ts=true\"\nimport script from \"./ImageModule.vue?vue&type=script&lang=ts\"\nexport * from \"./ImageModule.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 { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createBlock as _createBlock, createElementVNode as _createElementVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-df744ffc\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n  class: \"text-module\",\n  id: \"test\"\n}\nconst _hoisted_2 = {\n  key: 0,\n  class: \"title\",\n  \"data-animate\": \"slide\",\n  \"data-stagger\": \"\"\n}\nconst _hoisted_3 = {\n  key: 1,\n  class: \"small-title margin-bottom\",\n  \"data-animate\": \"slide\",\n  \"data-stagger\": \"\"\n}\nconst _hoisted_4 = {\n  key: 2,\n  class: \"intro\",\n  \"data-animate\": \"slide\",\n  \"data-stagger\": \"\"\n}\nconst _hoisted_5 = {\n  class: \"paragraphs\",\n  \"data-animate\": \"slide\",\n  \"data-stagger\": \"\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  const _component_Paragraph = _resolveComponent(\"Paragraph\")!\n  const _component_AudioPlayer = _resolveComponent(\"AudioPlayer\")!\n  const _component_PromptPopup = _resolveComponent(\"PromptPopup\")!\n\n  return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n    (_ctx.moduleData.title)\n      ? (_openBlock(), _createElementBlock(\"h2\", _hoisted_2, _toDisplayString(_ctx.moduleData.title), 1))\n      : _createCommentVNode(\"\", true),\n    (_ctx.moduleData.subtitle)\n      ? (_openBlock(), _createElementBlock(\"h3\", _hoisted_3, _toDisplayString(_ctx.moduleData.subtitle), 1))\n      : _createCommentVNode(\"\", true),\n    (_ctx.moduleData.introText)\n      ? (_openBlock(), _createElementBlock(\"p\", _hoisted_4, _toDisplayString(_ctx.moduleData.introText), 1))\n      : _createCommentVNode(\"\", true),\n    _createElementVNode(\"div\", _hoisted_5, [\n      (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.moduleData.paragraphs, (paragraph, index) => {\n        return (_openBlock(), _createBlock(_component_Paragraph, {\n          key: index,\n          paragraph: paragraph\n        }, null, 8, [\"paragraph\"]))\n      }), 128))\n    ]),\n    (_ctx.moduleData.audioData)\n      ? (_openBlock(), _createBlock(_component_AudioPlayer, {\n          key: 3,\n          class: \"margin-top margin-bottom\",\n          \"data-animate\": \"slide\",\n          \"data-stagger\": \"\",\n          \"audio-data\": _ctx.moduleData.audioData\n        }, null, 8, [\"audio-data\"]))\n      : _createCommentVNode(\"\", true),\n    (_ctx.moduleData.promptPopup)\n      ? (_openBlock(), _createBlock(_component_PromptPopup, {\n          key: 4,\n          \"data-animate\": \"slide\",\n          \"data-stagger\": \"\",\n          \"prompt-data\": _ctx.moduleData.promptPopup\n        }, null, 8, [\"prompt-data\"]))\n      : _createCommentVNode(\"\", true)\n  ]))\n}","import { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, mergeProps as _mergeProps, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, resolveDirective as _resolveDirective, createElementBlock as _createElementBlock, withDirectives as _withDirectives, Transition as _Transition, vShow as _vShow, Teleport as _Teleport, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-cfe802fa\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n  class: \"prompt-popup-container\",\n  ref: \"containerRef\",\n  \"aria-hidden\": \"true\"\n}\nconst _hoisted_2 = {\n  key: 0,\n  class: \"prompt-popup\"\n}\nconst _hoisted_3 = { class: \"prompt-content\" }\nconst _hoisted_4 = { class: \"title\" }\nconst _hoisted_5 = { class: \"paragraph\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  const _component_IconButton = _resolveComponent(\"IconButton\")!\n  const _component_ZoomableImage = _resolveComponent(\"ZoomableImage\")!\n  const _component_Icon = _resolveComponent(\"Icon\")!\n  const _component_AppButton = _resolveComponent(\"AppButton\")!\n  const _component_CloseButton = _resolveComponent(\"CloseButton\")!\n  const _directive_click_outside = _resolveDirective(\"click-outside\")!\n\n  return (_openBlock(), _createElementBlock(_Fragment, null, [\n    _createVNode(_component_IconButton, _mergeProps({\n      \"icon-name\": _ctx.iconName,\n      onClick: _ctx.onOpen\n    }, _ctx.$attrs), {\n      default: _withCtx(() => [\n        _createTextVNode(_toDisplayString(_ctx.promptData.buttonText), 1)\n      ]),\n      _: 1\n    }, 16, [\"icon-name\", \"onClick\"]),\n    (_openBlock(), _createBlock(_Teleport, { to: \"#modal-portal\" }, [\n      _createVNode(_Transition, {\n        name: \"short-fade\",\n        onAfterEnter: _ctx.afterOverlayEnter\n      }, {\n        default: _withCtx(() => [\n          _withDirectives(_createElementVNode(\"div\", _hoisted_1, [\n            _createVNode(_Transition, { name: \"slide-fade-up\" }, {\n              default: _withCtx(() => [\n                (_ctx.overlayTransitioned)\n                  ? _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n                      _createElementVNode(\"div\", _hoisted_3, [\n                        (_ctx.zoomableImage)\n                          ? (_openBlock(), _createBlock(_component_ZoomableImage, {\n                              key: 0,\n                              class: \"prompt-left\",\n                              image: _ctx.zoomableImage,\n                              \"object-fit\": \"contain\",\n                              onOpen: _cache[0] || (_cache[0] = ($event: any) => (_ctx.imageZoomed = true)),\n                              onClose: _cache[1] || (_cache[1] = ($event: any) => (_ctx.imageZoomed = false)),\n                              width: 600,\n                              fill: \"\"\n                            }, null, 8, [\"image\"]))\n                          : _createCommentVNode(\"\", true),\n                        _createElementVNode(\"div\", {\n                          class: _normalizeClass([\"prompt-right\", { center: !_ctx.promptData.imageWithProperties }])\n                        }, [\n                          _createVNode(_component_Icon, {\n                            class: \"icon\",\n                            name: _ctx.iconName\n                          }, null, 8, [\"name\"]),\n                          _createElementVNode(\"h2\", _hoisted_4, _toDisplayString(_ctx.promptData.title), 1),\n                          _createElementVNode(\"p\", _hoisted_5, _toDisplayString(_ctx.promptData.paragraph), 1),\n                          (_ctx.promptData.dismissButton)\n                            ? (_openBlock(), _createBlock(_component_AppButton, {\n                                key: 0,\n                                onClick: _ctx.close,\n                                class: \"button\",\n                                label: _ctx.t('app.promptPopup.confirmLabel'),\n                                dark: \"\"\n                              }, null, 8, [\"onClick\", \"label\"]))\n                            : _createCommentVNode(\"\", true)\n                        ], 2)\n                      ]),\n                      _createVNode(_component_CloseButton, {\n                        onClose: _ctx.close,\n                        color: \"black\",\n                        class: \"top-right\",\n                        \"aria-label\": _ctx.t('app.genericPopup.closeLabel')\n                      }, null, 8, [\"onClose\", \"aria-label\"])\n                    ])), [\n                      [_directive_click_outside, _ctx.onClickOutside]\n                    ])\n                  : _createCommentVNode(\"\", true)\n              ]),\n              _: 1\n            })\n          ], 512), [\n            [_vShow, _ctx.opened]\n          ])\n        ]),\n        _: 1\n      }, 8, [\"onAfterEnter\"])\n    ]))\n  ], 64))\n}","import { PromptIcon } from '@/model/content';\n\nexport default function getIconName(icon: PromptIcon) {\n  switch (icon) {\n    case PromptIcon.Flag:\n      return 'flag';\n    case PromptIcon.LightBulb:\n      return 'lightbulb';\n    case PromptIcon.LookingGlass:\n      return 'looking-glass';\n    case PromptIcon.WowBalloon:\n      return 'wow-balloon';\n    default:\n      throw new Error('No icon with that name.');\n  }\n}\n","\nimport { computed, defineComponent, PropType, ref } from 'vue';\nimport { useI18n } from 'vue-i18n';\n\nimport ZoomableImage from '@/components/Content/ZoomableImage.vue';\nimport AppButton from '@/components/common/AppButton.vue';\nimport IconButton from '@/components/common/IconButton.vue';\nimport CloseButton from '@/components/common/CloseButton.vue';\nimport Icon from '@/components/common/Icon.vue';\nimport { PromptPopup } from '@/model/content';\nimport getIconName from '@/utils/fancy-icon';\nimport { useModal } from '@/composables/use-modal';\nimport { logInteractionEvent } from '@/utils/gtm';\nimport { useEmbeddedState } from '@/composables/use-embedded-state';\nimport { watchWhileActive } from '@/utils/vue-lifecycle';\n\nexport default defineComponent({\n  components: {\n    ZoomableImage,\n    AppButton,\n    IconButton,\n    CloseButton,\n    Icon,\n  },\n  emits: ['click'],\n  props: {\n    promptData: {\n      type: Object as PropType<PromptPopup>,\n      required: true,\n    },\n  },\n  setup(props, { emit }) {\n    const imageZoomed = ref(false);\n    const overlayTransitioned = ref(false);\n    const { containerRef, opened, open, close, focus } = useModal();\n    const { t } = useI18n();\n    const { isEmbedded } = useEmbeddedState();\n\n    const iconName = props.promptData.buttonIcon != undefined ? getIconName(props.promptData.buttonIcon) : 'flag';\n\n    const zoomableImage = computed(() =>\n      props.promptData.imageWithProperties ? { original: props.promptData.imageWithProperties } : null,\n    );\n\n    function afterOverlayEnter() {\n      overlayTransitioned.value = true;\n      focus();\n    }\n\n    function onClickOutside() {\n      if (!imageZoomed.value) {\n        close();\n      }\n    }\n\n    function onOpen(e: MouseEvent) {\n      emit('click', e);\n      open();\n\n      logInteractionEvent({\n        event_name: 'text_module_popup',\n        category: 'expedition_module',\n        interaction_type: 'click',\n        embed: isEmbedded.value,\n      });\n    }\n\n    watchWhileActive(\n      () => opened.value,\n      () => {\n        if (!opened.value && overlayTransitioned.value) {\n          overlayTransitioned.value = false;\n        }\n      },\n    );\n\n    return {\n      opened,\n      overlayTransitioned,\n      t,\n      containerRef,\n      onOpen,\n      close,\n      iconName,\n      afterOverlayEnter,\n      zoomableImage,\n      imageZoomed,\n      onClickOutside,\n    };\n  },\n});\n","import { render } from \"./PromptPopup.vue?vue&type=template&id=cfe802fa&scoped=true&ts=true\"\nimport script from \"./PromptPopup.vue?vue&type=script&lang=ts\"\nexport * from \"./PromptPopup.vue?vue&type=script&lang=ts\"\n\nimport \"./PromptPopup.vue?vue&type=style&index=0&id=cfe802fa&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-cfe802fa\"]])\n\nexport default __exports__","\nimport { defineComponent, PropType } from 'vue';\n\nimport { TextModuleData } from '@/model/expedition';\nimport PromptPopup from '@/components/Expedition/PromptPopup.vue';\nimport Paragraph from '@/components/Content/Paragraph.vue';\nimport AudioPlayer from '@/components/Content/AudioPlayer.vue';\nimport { useI18n } from 'vue-i18n';\n\nexport default defineComponent({\n  components: {\n    PromptPopup,\n    Paragraph,\n    AudioPlayer,\n  },\n  props: {\n    moduleData: {\n      type: Object as PropType<TextModuleData>,\n      required: true,\n    },\n  },\n  setup() {\n    const { t } = useI18n();\n    return { t };\n  },\n});\n","import { render } from \"./TextModule.vue?vue&type=template&id=df744ffc&scoped=true&ts=true\"\nimport script from \"./TextModule.vue?vue&type=script&lang=ts\"\nexport * from \"./TextModule.vue?vue&type=script&lang=ts\"\n\nimport \"./TextModule.vue?vue&type=style&index=0&id=df744ffc&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-df744ffc\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-fd93bc7e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"drag-knob\" }\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(), _createElementBlock(\"button\", _hoisted_1, [\n    _createVNode(_component_Icon, {\n      name: \"arrow\",\n      class: \"arrow left-arrow\"\n    }),\n    _createVNode(_component_Icon, {\n      name: \"arrow\",\n      class: \"arrow right-arrow\"\n    })\n  ]))\n}","\nimport { defineComponent } from 'vue';\nimport Icon from '@/components/common/Icon.vue';\n\nexport default defineComponent({\n  components: {\n    Icon,\n  },\n});\n","import { render } from \"./DragKnob.vue?vue&type=template&id=fd93bc7e&scoped=true&ts=true\"\nimport script from \"./DragKnob.vue?vue&type=script&lang=ts\"\nexport * from \"./DragKnob.vue?vue&type=script&lang=ts\"\n\nimport \"./DragKnob.vue?vue&type=style&index=0&id=fd93bc7e&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-fd93bc7e\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, normalizeStyle as _normalizeStyle, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nimport { computed, PropType, ref } from 'vue';\n\nimport Image from '@/components/Content/Image.vue';\nimport DragKnob from '@/components/common/DragKnob.vue';\nimport { ImageRevealModuleData } from '@/model/expedition';\nimport { getImageUrl } from '@/utils/image';\nimport { TitleTextColor } from '@/model/expedition';\nimport { logInteractionEvent } from '@/utils/gtm';\nimport { useEmbeddedState } from '@/composables/use-embedded-state';\nimport { useDimensions } from '@/composables/use-dimensions';\n\n\nexport default /*#__PURE__*/_defineComponent({\n  props: {\n  moduleData: {\n    type: Object as PropType<ImageRevealModuleData>,\n    required: true,\n  },\n},\n  setup(__props) {\n\nconst props = __props\n\n\n\nconst { isEmbedded } = useEmbeddedState();\nconst { viewHeight, isMobile } = useDimensions();\nconst dragging = ref(false);\nconst offsetPercentage = ref(0.3);\nconst frontImageEl = ref<InstanceType<typeof Image>>();\n\nconst backImageUrl = computed(() => getImageUrl(props.moduleData.backImageWithProperties.url, 1920));\n\nconst frontImageStyle = computed(() => ({\n  clipPath: `inset(0 0 0 ${offsetPercentage.value * 100}%)`,\n}));\n\nconst leftOffsetStyle = computed(() => ({\n  left: `${offsetPercentage.value * 100}%`,\n}));\n\nlet frontImageBounds: DOMRect | undefined;\n\nfunction startDrag() {\n  frontImageBounds = frontImageEl.value?.$el.getBoundingClientRect();\n  dragging.value = true;\n}\n\nfunction drag(e: MouseEvent | TouchEvent) {\n  if (dragging.value && frontImageBounds) {\n    // Prevent rubber-banding or scrolling when dragging the knob on mobile touch devices\n    e.preventDefault();\n\n    // Calculate left offset for new divider position using mouse\n    // position or touch position offsets\n    const x = 'touches' in e ? e.touches[0].pageX : e.clientX;\n    const offsetPx = x - frontImageBounds.left;\n    offsetPercentage.value = offsetPx / frontImageBounds.width;\n  }\n}\n\nfunction stopDrag() {\n  dragging.value = false;\n  logInteractionEvent({\n    event_name: 'image_reveal_knob',\n    category: 'expedition_module',\n    interaction_type: 'drag',\n    embed: isEmbedded.value,\n  });\n}\n\nreturn (_ctx: any,_cache: any) => {\n  return (_openBlock(), _createElementBlock(\"div\", {\n    class: \"image-reveal-module\",\n    style: _normalizeStyle({ backgroundImage: `url(${_unref(backImageUrl)})`, height: `${_unref(isMobile) ? 0.7 * _unref(viewHeight) : _unref(viewHeight)}px` }),\n    onMousemove: drag,\n    onTouchmove: drag,\n    onMouseup: stopDrag,\n    onTouchend: stopDrag\n  }, [\n    _createElementVNode(\"h2\", {\n      class: _normalizeClass([\"title\", { black: __props.moduleData.titleTextColor === _unref(TitleTextColor).Black }])\n    }, _toDisplayString(__props.moduleData.title), 3),\n    _createVNode(Image, {\n      class: \"front-image\",\n      ref_key: \"frontImageEl\",\n      ref: frontImageEl,\n      image: __props.moduleData.frontImageWithProperties,\n      \"image-set\": { mobile: 600, large: 1000, 'large-up': 1920 },\n      style: _normalizeStyle(_unref(frontImageStyle)),\n      \"object-fit\": \"cover\",\n      width: 1920,\n      \"hide-copyright\": \"\",\n      fill: \"\",\n      sqip: \"\"\n    }, null, 8, [\"image\", \"style\"]),\n    _createElementVNode(\"div\", {\n      class: \"divider\",\n      style: _normalizeStyle(_unref(leftOffsetStyle))\n    }, null, 4),\n    _createVNode(DragKnob, {\n      style: _normalizeStyle(_unref(leftOffsetStyle)),\n      onMousedown: startDrag,\n      onTouchstart: startDrag\n    }, null, 8, [\"style\"])\n  ], 36))\n}\n}\n\n})","import script from \"./ImageRevealModule.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./ImageRevealModule.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./ImageRevealModule.vue?vue&type=style&index=0&id=07d9d56e&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, [['__scopeId',\"data-v-07d9d56e\"]])\n\nexport default __exports__","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-d6c3877e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"quiz-module\" }\nconst _hoisted_2 = {\n  key: 0,\n  class: \"guess-overlay\"\n}\nconst _hoisted_3 = {\n  class: \"intro\",\n  \"data-animate\": \"slide\",\n  \"data-stagger\": \"\"\n}\nconst _hoisted_4 = {\n  key: 1,\n  class: \"title\",\n  \"data-animate\": \"slide\",\n  \"data-stagger\": \"\"\n}\nconst _hoisted_5 = { class: \"cards\" }\nconst _hoisted_6 = {\n  class: \"paragraph explainer\",\n  \"data-animate\": \"slide\",\n  \"data-stagger\": \"\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  const _component_QuizCard = _resolveComponent(\"QuizCard\")!\n\n  return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n    (_ctx.showOverlay)\n      ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2))\n      : _createCommentVNode(\"\", true),\n    _createElementVNode(\"p\", _hoisted_3, _toDisplayString(_ctx.t('expedition.quizTitle')), 1),\n    (_ctx.moduleData.question)\n      ? (_openBlock(), _createElementBlock(\"h2\", _hoisted_4, _toDisplayString(_ctx.moduleData.question), 1))\n      : _createCommentVNode(\"\", true),\n    _createElementVNode(\"div\", _hoisted_5, [\n      (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.moduleData.quizAnswers, (answer, index) => {\n        return (_openBlock(), _createBlock(_component_QuizCard, {\n          key: index,\n          answer: answer,\n          index: index,\n          guessed: _ctx.currentAnswer === answer,\n          highlight: _ctx.showOverlay,\n          completed: _ctx.completed,\n          onGuess: _ctx.onGuess\n        }, null, 8, [\"answer\", \"index\", \"guessed\", \"highlight\", \"completed\", \"onGuess\"]))\n      }), 128))\n    ]),\n    _createElementVNode(\"p\", _hoisted_6, _toDisplayString(_ctx.t('expedition.quizExplanation')), 1)\n  ]))\n}","import { createElementVNode as _createElementVNode, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-092565ef\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"disabled\", \"aria-label\"]\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n  class: \"quiz-correct-backdrop-img\",\n  src: \"/statics/images/quiz/correct-grey-bg.svg\",\n  alt: \"Background correct answer\"\n}, null, -1))\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n  class: \"quiz-correct-backdrop-img\",\n  src: \"/statics/images/quiz/correct-white-bg.svg\",\n  alt: \"Background correct answer\"\n}, null, -1))\nconst _hoisted_4 = { class: \"quiz-card\" }\nconst _hoisted_5 = { class: \"quiz-card-front\" }\nconst _hoisted_6 = {\n  key: 0,\n  class: \"title\"\n}\nconst _hoisted_7 = {\n  key: 1,\n  class: \"paragraph-title\"\n}\nconst _hoisted_8 = {\n  key: 2,\n  class: \"paragraph\"\n}\nconst _hoisted_9 = {\n  class: \"quiz-card-back\",\n  \"aria-live\": \"assertive\"\n}\nconst _hoisted_10 = { class: \"title\" }\nconst _hoisted_11 = {\n  key: 0,\n  class: \"paragraph\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  const _component_Image = _resolveComponent(\"Image\")!\n\n  return (_openBlock(), _createElementBlock(\"button\", {\n    class: _normalizeClass([\"quiz-card-scene\", {\n      guessed: _ctx.guessed,\n      wrong: !_ctx.answer.correct,\n      correct: _ctx.answer.correct,\n      highlight: _ctx.highlight,\n      completed: _ctx.completed,\n    }]),\n    \"data-animate\": \"slide\",\n    \"data-stagger\": \"0.1\",\n    disabled: _ctx.completed,\n    \"aria-label\": `${_ctx.t('expedition.quizButtonLabel')} ${_ctx.answer.title || _ctx.index + 1}`,\n    onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.checkAnswer && _ctx.checkAnswer(...args)))\n  }, [\n    (_ctx.answer.correct)\n      ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n          _hoisted_2,\n          _hoisted_3\n        ], 64))\n      : _createCommentVNode(\"\", true),\n    _createElementVNode(\"div\", _hoisted_4, [\n      _createElementVNode(\"div\", {\n        class: _normalizeClass([\"quiz-card-inner\", { flipped: _ctx.guessed || _ctx.completed }])\n      }, [\n        _createElementVNode(\"div\", _hoisted_5, [\n          (_ctx.answer.imageWithProperties)\n            ? (_openBlock(), _createBlock(_component_Image, {\n                key: 0,\n                class: \"quiz-card-front-image\",\n                image: _ctx.answer.imageWithProperties,\n                \"object-fit\": \"contain\",\n                width: 400,\n                sqip: \"\"\n              }, null, 8, [\"image\"]))\n            : _createCommentVNode(\"\", true),\n          _createElementVNode(\"div\", {\n            class: _normalizeClass([\"quiz-card-front-content\", { 'align-end': !_ctx.answer.paragraphTitle && !_ctx.answer.paragraph }])\n          }, [\n            (_ctx.answer.title)\n              ? (_openBlock(), _createElementBlock(\"p\", _hoisted_6, _toDisplayString(_ctx.answer.title), 1))\n              : _createCommentVNode(\"\", true),\n            (_ctx.answer.paragraphTitle)\n              ? (_openBlock(), _createElementBlock(\"p\", _hoisted_7, _toDisplayString(_ctx.answer.paragraphTitle), 1))\n              : _createCommentVNode(\"\", true),\n            (_ctx.answer.paragraph)\n              ? (_openBlock(), _createElementBlock(\"p\", _hoisted_8, _toDisplayString(_ctx.answer.paragraph), 1))\n              : _createCommentVNode(\"\", true)\n          ], 2)\n        ]),\n        _createElementVNode(\"div\", _hoisted_9, [\n          _createElementVNode(\"p\", _hoisted_10, _toDisplayString(_ctx.answer.correct ? _ctx.t('expedition.quizCorrect') : _ctx.t('expedition.quizWrong')), 1),\n          (_ctx.answer.explanationParagraph)\n            ? (_openBlock(), _createElementBlock(\"p\", _hoisted_11, _toDisplayString(_ctx.answer.explanationParagraph), 1))\n            : _createCommentVNode(\"\", true)\n        ])\n      ], 2)\n    ])\n  ], 10, _hoisted_1))\n}","\nimport { defineComponent, PropType } from 'vue';\nimport { useI18n } from 'vue-i18n';\n\nimport Image from '@/components/Content/Image.vue';\nimport { QuizAnswer } from '@/model/expedition';\nimport { logInteractionEvent } from '@/utils/gtm';\nimport { useEmbeddedState } from '@/composables/use-embedded-state';\n\nexport default defineComponent({\n  components: {\n    Image,\n  },\n  emits: ['guess'],\n  props: {\n    answer: {\n      type: Object as PropType<QuizAnswer>,\n      required: true,\n    },\n    index: {\n      type: Number,\n      required: true,\n    },\n    guessed: {\n      type: Boolean,\n      required: true,\n    },\n    highlight: {\n      type: Boolean,\n    },\n    completed: {\n      type: Boolean,\n    },\n  },\n  setup(props, { emit }) {\n    const { t } = useI18n();\n    const { isEmbedded } = useEmbeddedState();\n\n    function checkAnswer() {\n      // Do not allow checking answers after quiz is completed\n      if (props.completed) {\n        return;\n      }\n\n      logInteractionEvent({\n        event_name: 'quiz_module_card',\n        category: 'expedition_module',\n        interaction_type: 'click',\n        value: props.answer.correct,\n        embed: isEmbedded.value,\n      });\n\n      emit('guess', props.answer);\n    }\n\n    return {\n      checkAnswer,\n      t,\n    };\n  },\n});\n","import { render } from \"./QuizCard.vue?vue&type=template&id=092565ef&scoped=true&ts=true\"\nimport script from \"./QuizCard.vue?vue&type=script&lang=ts\"\nexport * from \"./QuizCard.vue?vue&type=script&lang=ts\"\n\nimport \"./QuizCard.vue?vue&type=style&index=0&id=092565ef&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-092565ef\"]])\n\nexport default __exports__","\nimport { defineComponent, PropType, ref } from 'vue';\nimport { QuizAnswer, QuizModuleData } from '@/model/expedition';\nimport QuizCard from '@/components/Expedition/Modules/QuizCard.vue';\nimport { useI18n } from 'vue-i18n';\n\nexport const GUESS_WRONG_RESULT_TIME = 3;\nexport const GUESS_CORRECT_RESULT_TIME = 4;\n\nexport default defineComponent({\n  components: { QuizCard },\n  props: {\n    moduleData: {\n      type: Object as PropType<QuizModuleData>,\n      required: true,\n    },\n  },\n  setup() {\n    const { t } = useI18n();\n    const currentAnswer = ref<QuizAnswer>();\n    const showOverlay = ref(false);\n    const completed = ref(false);\n\n    function onGuess(answer: QuizAnswer) {\n      currentAnswer.value = answer;\n      showOverlay.value = true;\n\n      setTimeout(() => {\n        showOverlay.value = false;\n        completed.value = answer.correct;\n      }, (answer.correct ? GUESS_CORRECT_RESULT_TIME : GUESS_WRONG_RESULT_TIME) * 1000);\n    }\n\n    return {\n      t,\n      currentAnswer,\n      showOverlay,\n      completed,\n      onGuess,\n    };\n  },\n});\n","import { render } from \"./QuizModule.vue?vue&type=template&id=d6c3877e&scoped=true&ts=true\"\nimport script from \"./QuizModule.vue?vue&type=script&lang=ts\"\nexport * from \"./QuizModule.vue?vue&type=script&lang=ts\"\n\nimport \"./QuizModule.vue?vue&type=style&index=0&id=d6c3877e&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-d6c3877e\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  const _component_YoutubePlayer = _resolveComponent(\"YoutubePlayer\")!\n\n  return (_openBlock(), _createBlock(_component_YoutubePlayer, {\n    id: _ctx.moduleData.videoId,\n    title: _ctx.moduleData.videoTitle,\n    \"thumbnail-url\": _ctx.moduleData.thumbnailImage?.url\n  }, null, 8, [\"id\", \"title\", \"thumbnail-url\"]))\n}","\nimport { defineComponent, PropType } from 'vue';\n\nimport { YoutubeModuleData } from '@/model/expedition';\nimport YoutubePlayer from '@/components/Content/Video/YoutubePlayer.vue';\n\nexport default defineComponent({\n  components: {\n    YoutubePlayer,\n  },\n  props: {\n    moduleData: {\n      type: Object as PropType<YoutubeModuleData>,\n      required: true,\n    },\n  },\n});\n","import { render } from \"./YoutubeModule.vue?vue&type=template&id=244977fb&ts=true\"\nimport script from \"./YoutubeModule.vue?vue&type=script&lang=ts\"\nexport * from \"./YoutubeModule.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 { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  const _component_VimeoPlayer = _resolveComponent(\"VimeoPlayer\")!\n\n  return (_openBlock(), _createBlock(_component_VimeoPlayer, {\n    id: _ctx.moduleData.videoId,\n    \"thumbnail-url\": _ctx.moduleData.thumbnailImage?.url\n  }, null, 8, [\"id\", \"thumbnail-url\"]))\n}","\nimport { defineComponent, PropType } from 'vue';\n\nimport VimeoPlayer from '@/components/Content/Video/VimeoPlayer.vue';\nimport { VimeoModuleData } from '@/model/expedition';\n\nexport default defineComponent({\n  components: { VimeoPlayer },\n  props: {\n    moduleData: {\n      type: Object as PropType<VimeoModuleData>,\n      required: true,\n    },\n  },\n});\n","import { render } from \"./VimeoModule.vue?vue&type=template&id=6856003c&ts=true\"\nimport script from \"./VimeoModule.vue?vue&type=script&lang=ts\"\nexport * from \"./VimeoModule.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__","\nimport { defineComponent, PropType } from 'vue';\nimport { ModuleData, ModuleType } from '@/model/expedition';\nimport HotspotModule from '@/components/Expedition/Modules/HotspotModule.vue';\nimport ImageModule from '@/components/Expedition/Modules/ImageModule.vue';\nimport TextModule from '@/components/Expedition/Modules/TextModule.vue';\nimport ImageRevealModule from '@/components/Expedition/Modules/ImageRevealModule.vue';\nimport QuizModule from '@/components/Expedition/Modules/QuizModule.vue';\nimport YoutubeModule from '@/components/Expedition/Modules/YoutubeModule.vue';\nimport VimeoModule from '@/components/Expedition/Modules/VimeoModule.vue';\n\nexport default defineComponent({\n  components: {\n    HotspotModule,\n    TextModule,\n    ImageModule,\n    ImageRevealModule,\n    QuizModule,\n    YoutubeModule,\n    VimeoModule,\n  },\n  props: {\n    moduleData: {\n      type: Object as PropType<ModuleData>,\n      required: true,\n    },\n    chapter: {\n      type: Number,\n      required: true,\n    },\n  },\n  setup() {\n    return {\n      ModuleType,\n    };\n  },\n});\n","import { render } from \"./Module.vue?vue&type=template&id=3f0f399a&ts=true\"\nimport script from \"./Module.vue?vue&type=script&lang=ts\"\nexport * from \"./Module.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__","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n  // lazy load so that environments that need to polyfill have a chance to do so\n  if (!getRandomValues) {\n    // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n    // find the complete implementation of crypto (msCrypto) on IE11.\n    getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n    if (!getRandomValues) {\n      throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n    }\n  }\n\n  return getRandomValues(rnds8);\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-78e4e304\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"aria-label\"]\nconst _hoisted_2 = [\"aria-labelledby\", \"aria-describedby\", \"aria-hidden\"]\nconst _hoisted_3 = [\"id\"]\nconst _hoisted_4 = [\"id\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  const _component_Icon = _resolveComponent(\"Icon\")!\n  const _component_CloseButton = _resolveComponent(\"CloseButton\")!\n\n  return (_openBlock(), _createElementBlock(\"div\", {\n    class: _normalizeClass([\"info-popup\", { opened: _ctx.opened }]),\n    \"data-animate\": \"slide\",\n    \"data-stagger\": \"\"\n  }, [\n    (!_ctx.opened)\n      ? (_openBlock(), _createElementBlock(\"button\", {\n          key: 0,\n          ref: \"openBtnEl\",\n          class: \"info-popup-open\",\n          onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.open && _ctx.open(...args))),\n          \"aria-label\": _ctx.t('app.infoPopup.openLabel')\n        }, [\n          _createVNode(_component_Icon, { name: \"menu\" })\n        ], 8, _hoisted_1))\n      : _createCommentVNode(\"\", true),\n    _createElementVNode(\"div\", {\n      \"aria-role\": \"dialog\",\n      \"aria-labelledby\": _ctx.dialogTitleId,\n      \"aria-describedby\": _ctx.dialogDescId,\n      class: \"info-popup-content\",\n      \"aria-hidden\": !_ctx.opened\n    }, [\n      _createVNode(_component_CloseButton, {\n        ref: \"closeBtnEl\",\n        class: \"info-popup-close\",\n        onClose: _ctx.close,\n        \"aria-label\": _ctx.t('app.genericPopup.closeLabel'),\n        \"aria-live\": _ctx.opened ? 'polite' : undefined,\n        color: \"white\",\n        tabindex: _ctx.opened ? 0 : -1\n      }, null, 8, [\"onClose\", \"aria-label\", \"aria-live\", \"tabindex\"]),\n      _createElementVNode(\"h4\", {\n        class: \"paragraph-title\",\n        id: _ctx.dialogTitleId\n      }, _toDisplayString(_ctx.data.title), 9, _hoisted_3),\n      _createElementVNode(\"p\", {\n        class: \"paragraph\",\n        id: _ctx.dialogDescId\n      }, _toDisplayString(_ctx.data.text), 9, _hoisted_4)\n    ], 8, _hoisted_2)\n  ], 2))\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n  return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n  byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  // Note: Be careful editing this code!  It's been tuned for performance\n  // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n  var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID.  If this throws, it's likely due to one\n  // of the following:\n  // - One or more input array values don't map to a hex octet (leading to\n  // \"undefined\" in the uuid)\n  // - Invalid input values for the RFC `version` or `variant` fields\n\n  if (!validate(uuid)) {\n    throw TypeError('Stringified UUID is invalid');\n  }\n\n  return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n  options = options || {};\n  var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n  rnds[6] = rnds[6] & 0x0f | 0x40;\n  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n  if (buf) {\n    offset = offset || 0;\n\n    for (var i = 0; i < 16; ++i) {\n      buf[offset + i] = rnds[i];\n    }\n\n    return buf;\n  }\n\n  return stringify(rnds);\n}\n\nexport default v4;","\nimport { defineComponent, PropType, ref, nextTick, computed } from 'vue';\nimport { v4 as uuid } from 'uuid';\n\nimport { InfoPopup } from '@/model/expedition';\nimport { useI18n } from 'vue-i18n';\nimport Icon from '@/components/common/Icon.vue';\nimport CloseButton from '@/components/common/CloseButton.vue';\nimport { logInteractionEvent } from '@/utils/gtm';\nimport { useEmbeddedState } from '@/composables/use-embedded-state';\n\nexport default defineComponent({\n  components: {\n    CloseButton,\n    Icon,\n  },\n  props: {\n    data: {\n      type: Object as PropType<InfoPopup>,\n      required: true,\n    },\n    slideTitle: {\n      type: String,\n      required: true,\n    },\n  },\n  setup(props) {\n    const opened = ref(false);\n    const openBtnEl = ref<HTMLButtonElement>();\n    const closeBtnEl = ref<InstanceType<typeof CloseButton>>();\n    const { t } = useI18n();\n    const { isEmbedded } = useEmbeddedState();\n\n    const id = uuid();\n    const dialogTitleId = computed(() => `dialog-title-${id}`);\n    const dialogDescId = computed(() => `dialog-desc-${id}`);\n\n    async function open() {\n      logInteractionEvent({\n        event_name: 'info_popup',\n        category: 'expedition_slide',\n        interaction_type: 'click',\n        title: props.slideTitle,\n        embed: isEmbedded.value,\n      });\n\n      opened.value = true;\n      await nextTick();\n      closeBtnEl.value?.focus();\n    }\n\n    async function close() {\n      opened.value = false;\n      await nextTick();\n      openBtnEl.value?.focus();\n    }\n\n    return {\n      id,\n      dialogTitleId,\n      dialogDescId,\n      opened,\n      openBtnEl,\n      closeBtnEl,\n      t,\n      open,\n      close,\n    };\n  },\n});\n","import { render } from \"./InfoPopup.vue?vue&type=template&id=78e4e304&scoped=true&ts=true\"\nimport script from \"./InfoPopup.vue?vue&type=script&lang=ts\"\nexport * from \"./InfoPopup.vue?vue&type=script&lang=ts\"\n\nimport \"./InfoPopup.vue?vue&type=style&index=0&id=78e4e304&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-78e4e304\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-c6617232\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n  key: 0,\n  class: \"row center\"\n}\n\nimport { computed } from 'vue';\nimport Image from '@/components/Content/Image.vue';\nimport Module from '@/components/Expedition/Module.vue';\nimport InfoPopup from '@/components/Expedition/InfoPopup.vue';\nimport { ModuleType, SlideData } from '@/model/expedition';\nimport { useDimensions } from '@/composables/use-dimensions';\n\n\nexport default /*#__PURE__*/_defineComponent({\n  props: {\n    slideData: null,\n    slideId: null,\n    chapter: null\n  },\n  setup(__props: any) {\n\nconst props = __props as {\n  slideData: SlideData;\n  slideId: string;\n  chapter: number;\n}\n\n\n\nconst { viewHeight, isMobile } = useDimensions();\n\n// We only add padding to the modules if it does not contain a fullscreen module\n// The only fullscreen module we have right now is the ImageReveal\nconst isFullscreen = computed(() =>\n  props.slideData.modules.some(module => module.moduleType === ModuleType.ImageReveal),\n);\nconst isSingleModule = computed(() => props.slideData.modules.length === 1);\n// We don't show a gradient background when the slide has no modules.\n// In that case we assume the slide's own background is the primary piece of content.\nconst hasGradientBg = computed(() => props.slideData.modules.length > 0);\n\nreturn (_ctx: any,_cache: any) => {\n  return (_openBlock(), _createElementBlock(\"section\", {\n    class: _normalizeClass([\"slide grid\", { fullscreen: _unref(isFullscreen), 'gradient-bg': _unref(hasGradientBg) }]),\n    \"data-animation\": \"\",\n    style: _normalizeStyle({ minHeight: `${_unref(isMobile) ? 0.7 * _unref(viewHeight) : _unref(viewHeight)}px` })\n  }, [\n    (__props.slideData)\n      ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n          (__props.slideData.backgroundImageWithProperties)\n            ? (_openBlock(), _createBlock(Image, {\n                key: 0,\n                class: \"slide-background\",\n                image: __props.slideData.backgroundImageWithProperties,\n                \"image-set\": { mobile: 600, large: 1000, 'large-up': 1920 },\n                \"object-fit\": \"cover\",\n                width: 1920,\n                fill: \"\",\n                flip: \"\",\n                sqip: \"\"\n              }, null, 8, [\"image\"]))\n            : _createCommentVNode(\"\", true),\n          (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.slideData.modules, (module) => {\n            return (_openBlock(), _createBlock(Module, {\n              class: _normalizeClass([\"column\", { 'half-size': __props.slideData.modules.length > 1, 'single-module': _unref(isSingleModule) }]),\n              key: module.id,\n              \"module-data\": module,\n              chapter: __props.chapter\n            }, null, 8, [\"class\", \"module-data\", \"chapter\"]))\n          }), 128))\n        ]))\n      : _createCommentVNode(\"\", true),\n    (__props.slideData.infoPopup)\n      ? (_openBlock(), _createBlock(InfoPopup, {\n          key: 1,\n          data: __props.slideData.infoPopup,\n          \"slide-title\": __props.slideData.title\n        }, null, 8, [\"data\", \"slide-title\"]))\n      : _createCommentVNode(\"\", true)\n  ], 6))\n}\n}\n\n})","import script from \"./Slide.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Slide.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Slide.vue?vue&type=style&index=0&id=c6617232&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, [['__scopeId',\"data-v-c6617232\"]])\n\nexport default __exports__","import { renderSlot as _renderSlot, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n  ref: \"animationParentEl\",\n  class: \"animation-container\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n    _renderSlot(_ctx.$slots, \"default\")\n  ], 512))\n}","\nimport { defineComponent, onMounted, provide, ref } from 'vue';\nimport { Controller, Scene } from 'scrollmagic';\n\nimport { AppError } from '@/services/errors';\nimport logger from '@/utils/logger';\nimport { setAnimationStaggerTargets } from '@/utils/animation';\nimport { controllerInjectionKey } from '@/composables/use-scroll-controller';\nimport { useDevice } from '@/composables/use-device';\n\nexport default defineComponent({\n  setup() {\n    const animationParentEl = ref<HTMLDivElement>();\n    const controller = new Controller();\n    const { prefersReducedMotion } = useDevice();\n\n    provide(controllerInjectionKey, controller);\n\n    onMounted(() => {\n      const parentEl = animationParentEl.value;\n\n      if (!parentEl) {\n        throw new AppError(\n          'Failed to mount animate on scroll component. Required animation parent element is missing.',\n        );\n      }\n\n      const targets = parentEl.querySelectorAll('[data-animation]');\n\n      if (targets.length === 0) {\n        logger.warn(\n          'Animation scroll observer present, but no animatable element targets found. Are you sure you still need this component?',\n        );\n      }\n\n      targets.forEach(node => {\n        if (node instanceof HTMLElement) {\n          if (prefersReducedMotion()) {\n            node.classList.add('triggered');\n            return;\n          }\n\n          new Scene({\n            triggerElement: node,\n            reverse: false,\n          })\n            .setClassToggle(node, 'triggered')\n            .addTo(controller);\n\n          setAnimationStaggerTargets(node);\n        }\n      });\n    });\n\n    return {\n      animationParentEl,\n    };\n  },\n});\n","import { render } from \"./AnimationScrollObserver.vue?vue&type=template&id=12ceb43f&ts=true\"\nimport script from \"./AnimationScrollObserver.vue?vue&type=script&lang=ts\"\nexport * from \"./AnimationScrollObserver.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 { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, withCtx as _withCtx, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-233fa880\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"expedition-wrapper\" }\nconst _hoisted_2 = {\n  key: 0,\n  class: \"expedition\"\n}\n\nimport { onMounted, provide, ref } from 'vue';\nimport { useRoute } from 'vue-router';\n\nimport Header from '@/components/common/Header.vue';\nimport Chapters from '@/components/Expedition/Chapters.vue';\nimport ExpeditionBackgroundImage from '@/components/Expedition/ExpeditionBackgroundImage.vue';\nimport ExpeditionHeader from '@/components/Expedition/ExpeditionHeader.vue';\nimport ExpeditionMap from '@/components/Expedition/ExpeditionMap.vue';\nimport ExpeditionFooter from '@/components/Expedition/ExpeditionFooter.vue';\nimport NavigationBar from '@/components/Navigation/NavigationBar.vue';\nimport Slide from '@/components/Expedition/Slide.vue';\nimport AnimationScrollObserver from '@/components/Animation/AnimationScrollObserver.vue';\nimport ObjectDetailPanel from '@/components/ObjectDetail/ObjectDetailPanel.vue';\nimport { ExpeditionPage, GbifReference } from '@/model/expedition';\nimport { getExpeditionPage } from '@/services/expedition-service';\nimport { selectedObjectKey } from '@/composables/use-selected-object';\nimport { usePageEvent } from '@/composables/use-page-event';\nimport { handlePageError } from '@/utils/error';\nimport { usePageLoader } from '@/composables/use-page-loader';\nimport { useHead } from '@/composables/use-head';\n\n\nexport default /*#__PURE__*/_defineComponent({\n  emits: ['register-transition-delay'],\n  setup(__props, { emit }) {\n\n\n\nconst expeditionPage = ref<ExpeditionPage>();\nconst selectedObject = ref<GbifReference>();\n\nconst { loadPage } = usePageLoader(emit);\nconst route = useRoute();\nconst { updateHead } = useHead();\nconst { logInitialPageEvent } = usePageEvent('expedition');\n\nprovide(selectedObjectKey, selectedObject);\n\nonMounted(async () => {\n  try {\n    if (route.params.slug && typeof route.params.slug === 'string') {\n      const page = await getExpeditionPage(route.params.slug);\n      updateHead({ title: page.metaTitle });\n      expeditionPage.value = page;\n\n      logInitialPageEvent();\n    }\n  } catch (e) {\n    handlePageError(e);\n    loadPage();\n  }\n});\n\nfunction onObjectDetailPanelClose() {\n  selectedObject.value = undefined;\n}\n\nreturn (_ctx: any,_cache: any) => {\n  return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n    (expeditionPage.value)\n      ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n          _createVNode(AnimationScrollObserver, null, {\n            default: _withCtx(() => [\n              _createVNode(Header, { class: \"nav-header\" }, {\n                right: _withCtx(() => [\n                  _createVNode(NavigationBar)\n                ]),\n                _: 1\n              }),\n              _createVNode(ExpeditionBackgroundImage, {\n                image: expeditionPage.value.backgroundImageWithProperties\n              }, null, 8, [\"image\"]),\n              _createVNode(ExpeditionHeader, {\n                onLoad: _unref(loadPage),\n                \"expedition-page\": expeditionPage.value\n              }, null, 8, [\"onLoad\", \"expedition-page\"]),\n              _createVNode(Chapters, {\n                slides: expeditionPage.value.slides\n              }, null, 8, [\"slides\"]),\n              (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(expeditionPage.value.slides, (slide, index) => {\n                return (_openBlock(), _createBlock(Slide, {\n                  key: slide.id,\n                  \"slide-data\": slide,\n                  chapter: index + 1,\n                  id: 'slide-' + (index + 1),\n                  \"slide-id\": 'slide-' + (index + 1)\n                }, null, 8, [\"slide-data\", \"chapter\", \"id\", \"slide-id\"]))\n              }), 128)),\n              _createVNode(ExpeditionMap, {\n                \"init-zoom\": expeditionPage.value.initialMapLocation.zoomLevel,\n                \"init-center\": expeditionPage.value.initialMapLocation.center,\n                points: expeditionPage.value.points,\n                \"aggregated-points\": expeditionPage.value.aggregatedPoints\n              }, null, 8, [\"init-zoom\", \"init-center\", \"points\", \"aggregated-points\"]),\n              _createVNode(ExpeditionFooter, {\n                id: \"footer\",\n                footer: expeditionPage.value.footer\n              }, null, 8, [\"footer\"])\n            ]),\n            _: 1\n          }),\n          _createVNode(ObjectDetailPanel, {\n            opened: !!selectedObject.value,\n            \"gbif-id\": parseInt(selectedObject.value?.gbifId),\n            \"q-id\": selectedObject.value?.qid,\n            onClose: onObjectDetailPanelClose\n          }, null, 8, [\"opened\", \"gbif-id\", \"q-id\"])\n        ]))\n      : _createCommentVNode(\"\", true)\n  ]))\n}\n}\n\n})","import script from \"./ExpeditionPage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ExpeditionPage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ExpeditionPage.vue?vue&type=style&index=0&id=233fa880&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, [['__scopeId',\"data-v-233fa880\"]])\n\nexport default __exports__","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!./QuizModule.vue?vue&type=style&index=0&id=d6c3877e&lang=scss&scoped=true\"","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!./ExpeditionFooter.vue?vue&type=style&index=0&id=1b9825cc&lang=scss&scoped=true\"","import { normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-cc6e5daa\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"innerHTML\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n  return (_openBlock(), _createElementBlock(\"div\", {\n    class: _normalizeClass([\"markdown\", { dark: _ctx.dark }]),\n    innerHTML: _ctx.text\n  }, null, 10, _hoisted_1))\n}","\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n  props: {\n    text: {\n      type: String,\n      required: true,\n    },\n    dark: {\n      type: Boolean,\n    },\n  },\n});\n","import { render } from \"./Markdown.vue?vue&type=template&id=cc6e5daa&scoped=true&ts=true\"\nimport script from \"./Markdown.vue?vue&type=script&lang=ts\"\nexport * from \"./Markdown.vue?vue&type=script&lang=ts\"\n\nimport \"./Markdown.vue?vue&type=style&index=0&id=cc6e5daa&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-cc6e5daa\"]])\n\nexport default __exports__","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!./HotspotPoint.vue?vue&type=style&index=0&id=6a54dfcb&lang=scss&scoped=true\""],"sourceRoot":""}