\n we recommend you rotate your device to benefit the full experience.\n
\n\n \n\n \n\n If you have any questions about Summer Science, please email\n \n exhibition@royalsociety.org\n \n
\n\n\n\n\n\n\n\n","\n \n\n\n\n\n\n","\n","import { render } from \"./introduction.svg?vue&type=template&id=06625e1a\"\nconst script = {}\nscript.render = render\n\nexport default script","\n","import { render } from \"./upcoming-workshops.svg?vue&type=template&id=9d6176aa\"\nconst script = {}\nscript.render = render\n\nexport default script","\n \n\n\n\n\n\n","\nimport { defineComponent, PropType } from 'vue';\nimport { trackRouteUpdate } from '@/utils/ga';\n\nexport default defineComponent({\n name: 'Button',\n props: {\n onClick: Function as PropType<((payload: MouseEvent) => void) | undefined>,\n style: Object,\n tooltip: String,\n tooltipDirection: String as () => 'left' | 'right' | undefined,\n },\n methods: {\n click() {\n trackRouteUpdate(this.tooltip);\n this.$emit('click');\n },\n },\n});\n","import { render } from \"./Button.vue?vue&type=template&id=cf724a14&scoped=true\"\nimport script from \"./Button.vue?vue&type=script&lang=ts\"\nexport * from \"./Button.vue?vue&type=script&lang=ts\"\n\nimport \"./Button.vue?vue&type=style&index=0&id=cf724a14&scoped=true&lang=postcss\"\nscript.render = render\nscript.__scopeId = \"data-v-cf724a14\"\n\nexport default script","\nimport { defineComponent } from 'vue';\nimport SVGIntroduction from '@/svgs/introduction.svg';\nimport SVGEvent from '@/svgs/upcoming-workshops.svg';\n// import LiveIcon from '@/components/LiveIcon.vue';\nimport modalStore from '@/components/Modal/store';\nimport Button from './Button.vue';\n\nconst data = [\n {\n icon: 'SVGIntroduction',\n title: 'Introduction',\n tooltip: 'Introduction video',\n videoIframeId: 'QK82KXtHAjI',\n noHead: true,\n },\n // {\n // icon: 'LiveIcon',\n // title: 'Live',\n // tooltip: 'View live session',\n // noHead: true,\n // type: 'live',\n // },\n {\n icon: 'SVGEvent',\n title: 'Event',\n tooltip: 'Talks and activities',\n type: 'feed',\n },\n];\n\nexport default defineComponent({\n name: 'Menu',\n components: {\n SVGIntroduction,\n SVGEvent,\n // LiveIcon,\n Button,\n },\n props: {\n onClick: Function,\n },\n data() {\n return { data };\n },\n methods: {\n handleClick(index: number) {\n const item = this.data[index];\n if (!item) return;\n document.body.style.cursor = '';\n\n if (item.type === 'feed' && this.onClick) {\n this.onClick();\n return;\n }\n\n modalStore.show({\n width: item.type === 'live' ? 560 : window.innerWidth * 0.925,\n height: item.type === 'live' ? 540 : window.innerHeight * 0.925,\n ...item,\n });\n },\n }\n});\n","import { render } from \"./Menu.vue?vue&type=template&id=55bc068c&scoped=true\"\nimport script from \"./Menu.vue?vue&type=script&lang=ts\"\nexport * from \"./Menu.vue?vue&type=script&lang=ts\"\n\nimport \"./Menu.vue?vue&type=style&index=0&id=55bc068c&scoped=true&lang=postcss\"\nscript.render = render\nscript.__scopeId = \"data-v-55bc068c\"\n\nexport default script","\n \n\n\n\n\n\n\n\n","\n","import { render } from \"./compass.svg?vue&type=template&id=7cc9c0a6\"\nconst script = {}\nscript.render = render\n\nexport default script","\n \n\n\n\n\n\n","\nimport { defineComponent, ref } from 'vue';\nimport axios from 'axios';\nimport lottie, { AnimationItem } from 'lottie-web';\n\nexport default defineComponent({\n name: 'Icon',\n\n props: {\n src: { type: String, required: true },\n width: { type: Number, required: false },\n height: { type: Number, required: false },\n },\n\n setup() {\n const container = ref{{ state.value.subtitle }}
\n{{ state.value.description }}
\n\n No LIVE stream available now, please come back later.\n
\n\n {{ article.startDateFormat }} - {{ article.endTimeFormat }}\n
\n\n Zone\n \n {{ `${index + 1}/${scenes.length}` }}\n \n
\n\n \n\n\n