{"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":""}