@explorer-1/vue 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/explorer-1-vue.js +8960 -10011
- package/dist/explorer-1-vue.umd.cjs +13 -16
- package/dist/src/components/BaseHeading/BaseHeading.stories.d.ts +6 -11
- package/dist/src/components/BaseHeading/BaseHeading.vue.d.ts +6 -10
- package/dist/src/components/BasePlaceholder/BasePlaceholder.stories.d.ts +0 -1
- package/dist/src/components/BlockDialog/BlockDialog.stories.d.ts +81 -0
- package/dist/src/components/BlockImage/BlockImage.stories.d.ts +0 -1
- package/dist/src/components/BlockLinkCarousel/BlockLinkCarousel.stories.d.ts +6 -0
- package/dist/src/components/BlockLinkCarousel/BlockLinkCarousel.vue.d.ts +6 -0
- package/dist/src/components/BlockQuote/BlockQuote.stories.d.ts +0 -1
- package/dist/src/components/BlockStreamfield/BlockStreamfield.stories.d.ts +58 -8
- package/dist/src/components/BlockVideoEmbed/BlockVideoEmbed.vue.d.ts +7 -3
- package/dist/src/components/HeroListingIndex/HeroListingIndex.stories.d.ts +1 -0
- package/dist/src/components/HeroMedium/HeroMedium.stories.d.ts +1 -0
- package/dist/src/components/HeroMedium/HeroSmall.stories.d.ts +1 -0
- package/dist/src/components/HomepageEmbedBlock/HomepageEmbedBlock.stories.d.ts +1 -6
- package/dist/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.stories.d.ts +31 -47
- package/dist/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.vue.d.ts +5 -1
- package/dist/src/components/HomepageStats/HomepageStats.stories.d.ts +19 -9
- package/dist/src/components/HomepageTeaserBlock/HomepageTeaserBlock.stories.d.ts +6 -50
- package/dist/src/components/HomepageTeaserBlock/HomepageTeaserBlock.vue.d.ts +7 -1
- package/dist/src/components/MissionDetailAbout/MissionDetailAbout.stories.d.ts +1 -6
- package/dist/src/components/MissionDetailHero/MissionDetailHero.stories.d.ts +11 -11
- package/dist/src/components/MissionDetailHighlights/MissionDetailHighlights.stories.d.ts +6 -6
- package/dist/src/components/NavDesktop/NavDesktop.stories.d.ts +3 -6
- package/dist/src/components/NavDesktopEdu/NavDesktopEdu.stories.d.ts +289 -0
- package/dist/src/components/NavLogoLinks/NavLogoLinks.stories.d.ts +0 -5
- package/dist/src/components/NavMobile/NavMobile.stories.d.ts +42 -9
- package/dist/src/components/NavMobile/NavMobile.vue.d.ts +13 -2
- package/dist/src/components/NavMobile/NavMobileEdu.stories.d.ts +392 -0
- package/dist/src/components/NavSocial/NavSocial.stories.d.ts +42 -1
- package/dist/src/components/NavSocial/NavSocial.vue.d.ts +42 -1
- package/dist/src/components/TheFooter/TheFooter.vue.d.ts +9 -1
- package/dist/src/components/TimelineDialog/TimelineDialog.stories.d.ts +75 -0
- package/dist/src/components/TopicDetailMissionSpotlight/TopicDetailMissionSpotlight.stories.d.ts +1 -7
- package/dist/src/components/TopicDetailStreamfield/TopicDetailStreamfield.stories.d.ts +1 -6
- package/dist/src/docs/foundation/typography.stories.d.ts +6 -10
- package/dist/src/store/curatedGallery.d.ts +6 -0
- package/dist/src/store/search.d.ts +10 -0
- package/dist/src/templates/PageAudioDetail/PageAudioDetail.stories.d.ts +102 -0
- package/dist/src/templates/PageContent/PageContent.stories.d.ts +2 -1
- package/dist/src/templates/PageContent/PageContent.vue.d.ts +8 -0
- package/dist/src/templates/PageEventDetail/PageEventDetail.stories.d.ts +1 -1
- package/dist/src/templates/PageImageDetail/PageImageDetail.stories.d.ts +141 -0
- package/dist/src/templates/PageNewsDetail/PageNewsDetail.stories.d.ts +1163 -228
- package/dist/src/templates/PageVideoDetail/PageVideoDetail.stories.d.ts +56 -0
- package/dist/src/templates/edu/PageContentEdu.stories.d.ts +27 -0
- package/dist/src/templates/edu/PageEduNewsDetail/PageEduNewsDetail.stories.d.ts +360 -0
- package/dist/src/templates/www/PageAsteroidWatchContent/PageAsteroidWatchContent.stories.d.ts +99 -0
- package/dist/src/templates/{edu/PageEduNewsDetail.stories.d.ts → www/PageAsteroidWatchIndex/PageAsteroidWatchIndex.stories.d.ts} +48 -67
- package/dist/src/templates/www/PageCuratedGallery/PageCuratedGallery.stories.d.ts +98 -0
- package/dist/src/templates/www/PageGoDirectory/PageGoDirectory.stories.d.ts +56 -0
- package/dist/src/templates/www/PageHomepage/PageHomepage.stories.d.ts +704 -0
- package/dist/src/templates/www/PageInfographicDetail/PageInfographicDetail.stories.d.ts +41 -0
- package/dist/src/templates/www/PageMaintenanceMode/PageMaintenanceMode.stories.d.ts +14 -0
- package/dist/src/templates/www/PageMissionDetail/PageMissionDetail.stories.d.ts +875 -0
- package/dist/src/templates/www/PagePodcast/PagePodcast.stories.d.ts +115 -0
- package/dist/src/templates/www/PagePodcastSeason/PagePodcastSeason.stories.d.ts +84 -0
- package/dist/src/templates/www/PagePressKitIndex/PagePressKitIndex.stories.d.ts +64 -0
- package/dist/src/templates/www/PageProfileDetail/PageProfileDetail.stories.d.ts +60 -0
- package/dist/src/templates/www/PageRoboticsDetail/PageRoboticsDetail.stories.d.ts +170 -0
- package/dist/src/templates/www/PageTimeline/PageTimeline.stories.d.ts +338 -0
- package/dist/src/templates/www/PageTopicDetail/PageTopicDetail.stories.d.ts +297 -0
- package/dist/style.css +1 -1
- package/lib/main.ts +4 -0
- package/package.json +2 -1
- package/src/components/BaseAudio/BaseAudio.vue +0 -1
- package/src/components/BaseHeading/BaseHeading.stories.js +0 -1
- package/src/components/BaseHeading/BaseHeading.vue +5 -7
- package/src/components/BasePlaceholder/BasePlaceholder.stories.js +0 -1
- package/src/components/BlockAudio/BlockAudio.stories.js +2 -3
- package/src/components/BlockDialog/BlockDialog.stories.js +56 -0
- package/src/components/BlockDialog/BlockDialog.stories.mdx +28 -0
- package/src/components/BlockDialog/BlockDialog.vue +132 -0
- package/src/components/BlockHeading/BlockHeading.stories.js +2 -2
- package/src/components/BlockImage/BlockImage.stories.js +0 -1
- package/src/components/BlockImageCarouselItem/BlockImageCarouselItem.vue +0 -1
- package/src/components/BlockImageGallery/BlockImageGallery.vue +0 -1
- package/src/components/BlockLinkCarousel/BlockLinkCarousel.vue +4 -2
- package/src/components/BlockQuote/BlockQuote.stories.js +0 -1
- package/src/components/BlockStreamfield/BlockStreamfield.stories.js +20 -9
- package/src/components/BlockVideoEmbed/BlockVideoEmbed.vue +3 -2
- package/src/components/DsnWidget/DsnWidget.vue +2 -2
- package/src/components/HomepageEmbedBlock/HomepageEmbedBlock.stories.js +1 -8
- package/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.stories.js +115 -118
- package/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.vue +3 -23
- package/src/components/HomepageMissionsCarousel/HomepageMissionsCarouselItem.vue +1 -2
- package/src/components/HomepageStats/HomepageStats.stories.js +10 -10
- package/src/components/HomepageStats/HomepageStats.vue +8 -8
- package/src/components/HomepageTeaserBlock/HomepageTeaserBlock.stories.js +11 -18
- package/src/components/HomepageTeaserBlock/HomepageTeaserBlock.vue +20 -14
- package/src/components/HomepageTeaserBlock/HomepageTeaserBlockCardImage.vue +1 -1
- package/src/components/MissionDetailAbout/MissionDetailAbout.stories.js +1 -8
- package/src/components/MissionDetailHero/MissionDetailHero.stories.js +11 -11
- package/src/components/MissionDetailHighlights/MissionDetailHighlights.stories.js +6 -6
- package/src/components/MixinCarousel/MixinCarousel.docs.mdx +1 -1
- package/src/components/NavDesktop/NavDesktop.stories.js +1 -4
- package/src/components/NavDesktopEdu/NavDesktopEdu.stories.js +2 -1
- package/src/components/NavDesktopEdu/NavDesktopEdu.vue +0 -26
- package/src/components/NavMobile/NavMobileEdu.stories.js +2 -1
- package/src/components/NavSecondary/NavSecondary.vue +1 -1
- package/src/components/RoboticsDetailStats/RoboticsDetailStats.stories.js +1 -1
- package/src/components/TimelineDialog/TimelineDialog.stories.js +47 -0
- package/src/components/TimelineDialog/TimelineDialog.stories.mdx +26 -0
- package/src/components/TimelineDialog/TimelineDialog.vue +145 -0
- package/src/components/TopicDetailMissionSpotlight/TopicDetailMissionSpotlight.stories.js +1 -9
- package/src/components/TopicDetailStreamfield/TopicDetailStreamfield.stories.js +1 -8
- package/src/docs/utils/ComponentItem.jsx +0 -1
- package/src/store/curatedGallery.ts +23 -0
- package/src/store/search.ts +43 -0
- package/src/templates/PageAudioDetail/PageAudioDetail.stories.js +106 -0
- package/src/templates/PageAudioDetail/PageAudioDetail.vue +375 -0
- package/src/templates/PageContent/PageContent.stories.js +2 -1
- package/src/templates/PageEventDetail/PageEventDetail.stories.js +1 -1
- package/src/templates/PageImageDetail/PageImageDetail.stories.js +116 -0
- package/src/templates/PageImageDetail/PageImageDetail.vue +444 -0
- package/src/templates/PageNewsDetail/PageNewsDetail.stories.js +3 -2
- package/src/templates/PageNewsDetail/PageNewsDetail.vue +1 -1
- package/src/templates/PageVideoDetail/PageVideoDetail.stories.js +84 -0
- package/src/templates/PageVideoDetail/PageVideoDetail.vue +173 -0
- package/src/templates/edu/PageContentEdu.stories.js +1 -0
- package/src/templates/edu/{PageEduNewsDetail.stories.js → PageEduNewsDetail/PageEduNewsDetail.stories.js} +5 -3
- package/src/templates/edu/{PageEduNewsDetail.vue → PageEduNewsDetail/PageEduNewsDetail.vue} +3 -2
- package/src/templates/www/PageAsteroidWatchContent/PageAsteroidWatchContent.stories.js +54 -0
- package/src/templates/www/PageAsteroidWatchContent/PageAsteroidWatchContent.vue +79 -0
- package/src/templates/www/PageAsteroidWatchIndex/PageAsteroidWatchIndex.stories.js +34 -0
- package/src/templates/www/PageAsteroidWatchIndex/PageAsteroidWatchIndex.vue +56 -0
- package/src/templates/www/PageCuratedGallery/PageCuratedGallery.stories.js +110 -0
- package/src/templates/www/PageCuratedGallery/PageCuratedGallery.vue +345 -0
- package/src/templates/www/PageGoDirectory/PageGoDirectory.stories.js +61 -0
- package/src/templates/www/PageGoDirectory/PageGoDirectory.vue +76 -0
- package/src/templates/www/PageHomepage/PageHomepage.stories.js +101 -0
- package/src/templates/www/PageHomepage/PageHomepage.vue +136 -0
- package/src/templates/www/PageInfographicDetail/PageInfographicDetail.stories.js +46 -0
- package/src/templates/www/PageInfographicDetail/PageInfographicDetail.vue +125 -0
- package/src/templates/www/PageMaintenanceMode/PageMaintenanceMode.stories.js +14 -0
- package/src/templates/www/PageMaintenanceMode/PageMaintenanceMode.vue +94 -0
- package/src/templates/www/PageMissionDetail/PageMissionDetail.stories.js +246 -0
- package/src/templates/www/PageMissionDetail/PageMissionDetail.vue +136 -0
- package/src/templates/www/PagePodcast/PagePodcast.stories.js +86 -0
- package/src/templates/www/PagePodcast/PagePodcast.vue +219 -0
- package/src/templates/www/PagePodcastSeason/PagePodcastSeason.stories.js +96 -0
- package/src/templates/www/PagePodcastSeason/PagePodcastSeason.vue +191 -0
- package/src/templates/www/PagePressKitIndex/PagePressKitIndex.stories.js +72 -0
- package/src/templates/www/PagePressKitIndex/PagePressKitIndex.vue +76 -0
- package/src/templates/www/PageProfileDetail/PageProfileDetail.stories.js +76 -0
- package/src/templates/www/PageProfileDetail/PageProfileDetail.vue +178 -0
- package/src/templates/www/PageRoboticsDetail/PageRoboticsDetail.stories.js +43 -0
- package/src/templates/www/PageRoboticsDetail/PageRoboticsDetail.vue +101 -0
- package/src/templates/www/PageTimeline/BlockMilestone.vue +99 -0
- package/src/templates/www/PageTimeline/PageTimeline.stories.js +357 -0
- package/src/templates/www/PageTimeline/PageTimeline.vue +384 -0
- package/src/templates/www/PageTopicDetail/PageTopicDetail.stories.js +87 -0
- package/src/templates/www/PageTopicDetail/PageTopicDetail.vue +121 -0
- package/src/utils/mixins.ts +1 -1
- package/components.d.ts +0 -217
- package/src/templates/www/HomePage/HomePage.vue +0 -30
- /package/dist/src/components/{MixinDropdownToggle/MixinDropdownToggle.vue.d.ts → NavDropdownToggle/NavDropdownToggle.vue.d.ts} +0 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
v-if="data"
|
|
4
|
+
class="-nav-offset"
|
|
5
|
+
>
|
|
6
|
+
<!-- the visible rendition of this occurs further down the page, after other headings. The h1 needs to be the first heading -->
|
|
7
|
+
<h1 class="sr-only">Jet Propulsion Laboratory</h1>
|
|
8
|
+
|
|
9
|
+
<!-- main carousel -->
|
|
10
|
+
<HomepageCarousel
|
|
11
|
+
:duration="data.carouselSlideSpeed"
|
|
12
|
+
:items="data.heroCarousel"
|
|
13
|
+
/>
|
|
14
|
+
|
|
15
|
+
<!-- homepage stats -->
|
|
16
|
+
<HomepageStats
|
|
17
|
+
:statistics="data.statistics"
|
|
18
|
+
:mission-count="data.statisticsMissionCount"
|
|
19
|
+
:dsn="data.dsnWidget"
|
|
20
|
+
:asteroid-watch="data.asteroidWatchWidget"
|
|
21
|
+
:featured-embed="data.featuredEmbed"
|
|
22
|
+
/>
|
|
23
|
+
|
|
24
|
+
<!-- featured video -->
|
|
25
|
+
<HomepageEmbedBlock
|
|
26
|
+
:data="data.featuredEmbed"
|
|
27
|
+
class="lg:pt-8 lg:mt-12 pt-4 mt-16 -mb-5"
|
|
28
|
+
/>
|
|
29
|
+
|
|
30
|
+
<!-- latest news // TODO: changed to Related Stories for EDL, need to change back to Latest News -->
|
|
31
|
+
<BlockLinkCarousel
|
|
32
|
+
v-if="theNews"
|
|
33
|
+
item-type="cards"
|
|
34
|
+
:heading="data.featuredNewsHeading || 'Latest News'"
|
|
35
|
+
:items="theNews"
|
|
36
|
+
class="lg:-mb-8 mt-20 -mb-3"
|
|
37
|
+
/>
|
|
38
|
+
|
|
39
|
+
<!-- about JPL -->
|
|
40
|
+
<template v-for="(block, index) in data.body">
|
|
41
|
+
<template v-if="block.blockType == 'HomePageTeaserBlock'">
|
|
42
|
+
<!-- text with optional card and cover image -->
|
|
43
|
+
<HomepageTeaserBlock
|
|
44
|
+
:key="index"
|
|
45
|
+
class="lg:my-18 my-10"
|
|
46
|
+
:data="block"
|
|
47
|
+
/>
|
|
48
|
+
</template>
|
|
49
|
+
<template v-else-if="block.blockType == 'QuoteBlock'">
|
|
50
|
+
<LayoutHelper
|
|
51
|
+
:key="index"
|
|
52
|
+
indent="col-2"
|
|
53
|
+
class="lg:my-18 my-10"
|
|
54
|
+
>
|
|
55
|
+
<BlockQuote :data="block" />
|
|
56
|
+
</LayoutHelper>
|
|
57
|
+
</template>
|
|
58
|
+
<!-- blockquote -->
|
|
59
|
+
</template>
|
|
60
|
+
|
|
61
|
+
<!-- mission carousel -->
|
|
62
|
+
<HomepageMissionsCarousel
|
|
63
|
+
v-if="data?.missionsCarousel?.targets?.length"
|
|
64
|
+
:data="data.missionsCarousel"
|
|
65
|
+
class="lg:my-18 my-10"
|
|
66
|
+
/>
|
|
67
|
+
|
|
68
|
+
<!-- featured robot -->
|
|
69
|
+
<HomepageFeaturedRobot
|
|
70
|
+
v-if="data?.featuredRobots?.length"
|
|
71
|
+
class="lg:my-24 my-12"
|
|
72
|
+
:data="data.featuredRobots[0].page"
|
|
73
|
+
/>
|
|
74
|
+
|
|
75
|
+
<!-- engage -->
|
|
76
|
+
<div
|
|
77
|
+
v-if="data.relatedContent && data.relatedContent.length"
|
|
78
|
+
class="bg-gray-light lg:py-24 lg:mt-24 py-12 mt-12"
|
|
79
|
+
>
|
|
80
|
+
<BlockLinkCarousel
|
|
81
|
+
item-type="tiles"
|
|
82
|
+
:heading="data.relatedContentHeading"
|
|
83
|
+
:items="data.relatedContent"
|
|
84
|
+
/>
|
|
85
|
+
</div>
|
|
86
|
+
<!-- swimlane -->
|
|
87
|
+
<SwimlaneCTA />
|
|
88
|
+
</div>
|
|
89
|
+
</template>
|
|
90
|
+
<script lang="ts">
|
|
91
|
+
import { defineComponent } from 'vue'
|
|
92
|
+
import HomepageCarousel from './../../../components/HomepageCarousel/HomepageCarousel.vue'
|
|
93
|
+
import HomepageFeaturedRobot from './../../../components/HomepageFeaturedRobot/HomepageFeaturedRobot.vue'
|
|
94
|
+
import HomepageTeaserBlock from './../../../components/HomepageTeaserBlock/HomepageTeaserBlock.vue'
|
|
95
|
+
import BlockLinkCarousel from './../../../components/BlockLinkCarousel/BlockLinkCarousel.vue'
|
|
96
|
+
import BlockQuote from './../../../components/BlockQuote/BlockQuote.vue'
|
|
97
|
+
import LayoutHelper from './../../../components/LayoutHelper/LayoutHelper.vue'
|
|
98
|
+
import SwimlaneCTA from './../../../components/SwimlaneCTA/SwimlaneCTA.vue'
|
|
99
|
+
import HomepageMissionsCarousel from './../../../components/HomepageMissionsCarousel/HomepageMissionsCarousel.vue'
|
|
100
|
+
import HomepageStats from './../../../components/HomepageStats/HomepageStats.vue'
|
|
101
|
+
import HomepageEmbedBlock from './../../../components/HomepageEmbedBlock/HomepageEmbedBlock.vue'
|
|
102
|
+
|
|
103
|
+
export default defineComponent({
|
|
104
|
+
name: 'PageHomepage',
|
|
105
|
+
components: {
|
|
106
|
+
HomepageCarousel,
|
|
107
|
+
HomepageFeaturedRobot,
|
|
108
|
+
HomepageTeaserBlock,
|
|
109
|
+
BlockLinkCarousel,
|
|
110
|
+
BlockQuote,
|
|
111
|
+
LayoutHelper,
|
|
112
|
+
SwimlaneCTA,
|
|
113
|
+
HomepageMissionsCarousel,
|
|
114
|
+
HomepageStats,
|
|
115
|
+
HomepageEmbedBlock
|
|
116
|
+
},
|
|
117
|
+
props: {
|
|
118
|
+
data: {
|
|
119
|
+
type: Object,
|
|
120
|
+
required: false,
|
|
121
|
+
default: undefined
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
computed: {
|
|
125
|
+
theNews(): any[] | undefined {
|
|
126
|
+
// check first for featured news
|
|
127
|
+
if (this.data?.featuredNews?.length) {
|
|
128
|
+
return this.data.featuredNews
|
|
129
|
+
} else if (this.data?.latestNews?.length) {
|
|
130
|
+
return this.data.latestNews
|
|
131
|
+
}
|
|
132
|
+
return undefined
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
})
|
|
136
|
+
</script>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import PageInfographicDetail from './PageInfographicDetail.vue'
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
title: 'Templates/WWW/PageInfographicDetail',
|
|
5
|
+
component: PageInfographicDetail,
|
|
6
|
+
tags: ['!autodocs'],
|
|
7
|
+
excludeStories: /.*Data$/,
|
|
8
|
+
parameters: {
|
|
9
|
+
layout: 'fullscreen'
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// stories
|
|
14
|
+
export const BaseStory = {
|
|
15
|
+
name: 'PageInfographicDetail',
|
|
16
|
+
args: {
|
|
17
|
+
data: {
|
|
18
|
+
getTopicsForDisplay: [
|
|
19
|
+
{
|
|
20
|
+
title: 'Stars and Galaxies',
|
|
21
|
+
url: '/topics/stars-and-galaxies/'
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
image: {
|
|
25
|
+
alt: 'Milky Way',
|
|
26
|
+
caption: 'An infographic image.\n',
|
|
27
|
+
credit: '',
|
|
28
|
+
detailUrl: null,
|
|
29
|
+
original: 'https://picsum.photos/1920/1080',
|
|
30
|
+
src: {
|
|
31
|
+
height: '1080',
|
|
32
|
+
url: 'https://picsum.photos/1920/1080',
|
|
33
|
+
width: '1920'
|
|
34
|
+
},
|
|
35
|
+
srcSet:
|
|
36
|
+
'https://picsum.photos/1400/787 320w, https://picsum.photos/1400/787 1024w, https://picsum.photos/1920/1080 1400w'
|
|
37
|
+
},
|
|
38
|
+
label: 'Infographic',
|
|
39
|
+
publicationDate: '2012-07-05T20:04:21+00:00',
|
|
40
|
+
title: 'Milky Way',
|
|
41
|
+
topicLabel: 'Stars and Galaxies',
|
|
42
|
+
description:
|
|
43
|
+
'<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec lobortis lorem non purus consequat rutrum. Nulla vel convallis urna, eu porta purus. In hendrerit odio id diam volutpat auctor. Curabitur imperdiet dolor ipsum, quis luctus quam hendrerit eu. Quisque gravida lacus velit, a tempor dolor facilisis interdum. Sed pharetra mi eget feugiat bibendum. Donec vel nisi non nisi ultrices pellentesque eget non massa. Proin hendrerit sodales auctor. Phasellus egestas tortor eget ullamcorper tempor. Cras quis mauris erat. Curabitur tempor quam eget tellus aliquam semper. Morbi fringilla sodales dapibus. Proin pellentesque turpis eu neque pretium, in sodales sem auctor.</p>'
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
v-if="data"
|
|
4
|
+
class="PageInfographicDetail ThemeVariantLight"
|
|
5
|
+
>
|
|
6
|
+
<div class="lg:container 3xl:px-0 lg:mt-12 px-5 mx-auto mt-5">
|
|
7
|
+
<DetailHeadline
|
|
8
|
+
:title="data.title"
|
|
9
|
+
:publication-date="data.publicationDate"
|
|
10
|
+
:topics="data.getTopicsForDisplay"
|
|
11
|
+
/>
|
|
12
|
+
</div>
|
|
13
|
+
<div class="max-w-screen-3xl lg:mb-24 mx-auto mt-10 mb-8">
|
|
14
|
+
<MixinFancybox
|
|
15
|
+
v-if="data.image"
|
|
16
|
+
:src="data.image.original"
|
|
17
|
+
:caption="data.image.caption"
|
|
18
|
+
:credit="data.image.credit"
|
|
19
|
+
:detail-url="data.image.detailUrl"
|
|
20
|
+
>
|
|
21
|
+
<BaseImagePlaceholder
|
|
22
|
+
class="relative bg-black border border-black"
|
|
23
|
+
aspect-ratio="21:9"
|
|
24
|
+
>
|
|
25
|
+
<BaseImage
|
|
26
|
+
v-if="data.image.src"
|
|
27
|
+
:id="data.image.id"
|
|
28
|
+
:src="data.image.src.url"
|
|
29
|
+
:srcset="data.image.srcSet"
|
|
30
|
+
:alt="data.image.alt"
|
|
31
|
+
:width="data.image.src.width"
|
|
32
|
+
:height="data.image.src.height"
|
|
33
|
+
object-fit-class="scaleDown"
|
|
34
|
+
loading="eager"
|
|
35
|
+
/>
|
|
36
|
+
</BaseImagePlaceholder>
|
|
37
|
+
</MixinFancybox>
|
|
38
|
+
</div>
|
|
39
|
+
<LayoutHelper
|
|
40
|
+
indent="col-2"
|
|
41
|
+
class="lg:pb-24 pb-10"
|
|
42
|
+
>
|
|
43
|
+
<div class="lg:grid grid-cols-10">
|
|
44
|
+
<div
|
|
45
|
+
v-if="data.description"
|
|
46
|
+
class="col-span-7"
|
|
47
|
+
>
|
|
48
|
+
<BlockText :text="data.description" />
|
|
49
|
+
</div>
|
|
50
|
+
<aside class="col-start-9 col-end-11">
|
|
51
|
+
<div class="lg:pt-0 pt-8 mb-12">
|
|
52
|
+
<div class="lg:w-auto w-full">
|
|
53
|
+
<BaseButton
|
|
54
|
+
v-if="data.image && data.image.original"
|
|
55
|
+
:href="data.image.original"
|
|
56
|
+
class="w-full mb-5"
|
|
57
|
+
variant="primary"
|
|
58
|
+
compact
|
|
59
|
+
>
|
|
60
|
+
Download JPG
|
|
61
|
+
</BaseButton>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
<div
|
|
66
|
+
v-if="data.image.credit"
|
|
67
|
+
class="lg:mb-16 mb-8"
|
|
68
|
+
>
|
|
69
|
+
<span class="font-secondary w-full text-base tracking-wider uppercase"> Credit </span>
|
|
70
|
+
<BlockText :text="data.image.credit" />
|
|
71
|
+
</div>
|
|
72
|
+
</aside>
|
|
73
|
+
</div>
|
|
74
|
+
</LayoutHelper>
|
|
75
|
+
</div>
|
|
76
|
+
</template>
|
|
77
|
+
<script lang="ts">
|
|
78
|
+
import { defineComponent } from 'vue'
|
|
79
|
+
import BaseButton from './../../../components/BaseButton/BaseButton.vue'
|
|
80
|
+
import MixinFancybox from './../../../components/MixinFancybox/MixinFancybox.vue'
|
|
81
|
+
import BaseImage from './../../../components/BaseImage/BaseImage.vue'
|
|
82
|
+
import BaseImagePlaceholder from './../../../components/BaseImagePlaceholder/BaseImagePlaceholder.vue'
|
|
83
|
+
import BlockText from './../../../components/BlockText/BlockText.vue'
|
|
84
|
+
import DetailHeadline from './../../../components/DetailHeadline/DetailHeadline.vue'
|
|
85
|
+
import LayoutHelper from './../../../components/LayoutHelper/LayoutHelper.vue'
|
|
86
|
+
|
|
87
|
+
export default defineComponent({
|
|
88
|
+
name: 'PageInfographicDetail',
|
|
89
|
+
components: {
|
|
90
|
+
BaseButton,
|
|
91
|
+
MixinFancybox,
|
|
92
|
+
BaseImage,
|
|
93
|
+
BaseImagePlaceholder,
|
|
94
|
+
BlockText,
|
|
95
|
+
DetailHeadline,
|
|
96
|
+
LayoutHelper
|
|
97
|
+
},
|
|
98
|
+
props: {
|
|
99
|
+
data: {
|
|
100
|
+
type: Object,
|
|
101
|
+
required: false
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
})
|
|
105
|
+
</script>
|
|
106
|
+
|
|
107
|
+
<style lang="scss">
|
|
108
|
+
.PageInfographicDetail {
|
|
109
|
+
.BaseImagePlaceholder {
|
|
110
|
+
@apply select-none;
|
|
111
|
+
|
|
112
|
+
min-height: 400px;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
aside {
|
|
116
|
+
.BaseButton {
|
|
117
|
+
max-width: 200px;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.BlockText {
|
|
121
|
+
@apply text-lg;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
</style>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import PageMaintenanceMode from './PageMaintenanceMode.vue'
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
title: 'Templates/WWW/PageMaintenanceMode',
|
|
5
|
+
component: PageMaintenanceMode,
|
|
6
|
+
tags: ['!autodocs'],
|
|
7
|
+
excludeStories: /.*Data$/,
|
|
8
|
+
parameters: {
|
|
9
|
+
layout: 'fullscreen'
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// stories
|
|
14
|
+
export const BaseStory = { name: 'PageMaintenanceMode' }
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="PageMaintenanceMode bg-white border border-white">
|
|
3
|
+
<div class="max-w-screen-3xl min-h-100 mx-auto bg-white">
|
|
4
|
+
<div
|
|
5
|
+
class="BaseGrid text-gray-dark font-primary animate-fadeInSlow container mx-auto transition-all duration-150"
|
|
6
|
+
>
|
|
7
|
+
<div class="mb-12 lg:mb-24 lg:pl-0 lg:col-start-2 col-start-1 col-end-13 px-4 py-10">
|
|
8
|
+
<div class="w-full text-center">
|
|
9
|
+
<img
|
|
10
|
+
loading="lazy"
|
|
11
|
+
class="max-w-full mx-auto mt-10 lg:mt-20 px-10 lg:px-0"
|
|
12
|
+
:src="gearsImage"
|
|
13
|
+
width="283"
|
|
14
|
+
height="227"
|
|
15
|
+
alt=""
|
|
16
|
+
/>
|
|
17
|
+
<h1 class="lg:text-7xl mt-10 text-4xl font-bold leading-normal tracking-normal">
|
|
18
|
+
{{ heading || 'Houston, we have an update.' }}
|
|
19
|
+
</h1>
|
|
20
|
+
|
|
21
|
+
<p
|
|
22
|
+
class="lg:text-xl text-base py-5 max-w-2xl mx-auto lg:mb-10 mb-6 font-semibold leading-normal tracking-normal"
|
|
23
|
+
>
|
|
24
|
+
{{
|
|
25
|
+
description ||
|
|
26
|
+
'The JPL website is undergoing planned maintenance and will be back online when the update is complete in a few minutes.'
|
|
27
|
+
}}
|
|
28
|
+
</p>
|
|
29
|
+
<NavSocial class="justify-center" />
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</template>
|
|
36
|
+
|
|
37
|
+
<script lang="ts">
|
|
38
|
+
import { defineComponent } from 'vue'
|
|
39
|
+
import gearsImage from '@explorer-1/common/src/images/jpg/pages/maintenance/maintenance-gears.jpg'
|
|
40
|
+
import NavSocial from './../../../components/NavSocial/NavSocial.vue'
|
|
41
|
+
|
|
42
|
+
export default defineComponent({
|
|
43
|
+
name: 'PageMaintenanceMode',
|
|
44
|
+
components: {
|
|
45
|
+
NavSocial
|
|
46
|
+
},
|
|
47
|
+
props: {
|
|
48
|
+
heading: {
|
|
49
|
+
type: String,
|
|
50
|
+
required: false,
|
|
51
|
+
default: undefined
|
|
52
|
+
},
|
|
53
|
+
description: {
|
|
54
|
+
type: String,
|
|
55
|
+
required: false,
|
|
56
|
+
default: undefined
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
data() {
|
|
60
|
+
return {
|
|
61
|
+
gearsImage
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
})
|
|
65
|
+
</script>
|
|
66
|
+
<style lang="scss">
|
|
67
|
+
.PageMaintenanceMode {
|
|
68
|
+
.NavSocial {
|
|
69
|
+
@apply -ml-2; // visually centered due to narrow facebook icon
|
|
70
|
+
.BaseButton.-social {
|
|
71
|
+
@apply border-0 bg-none text-gray-dark;
|
|
72
|
+
&:hover {
|
|
73
|
+
@apply bg-none bg-transparent;
|
|
74
|
+
|
|
75
|
+
&.-facebook {
|
|
76
|
+
@apply text-facebook;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
&.-twitter {
|
|
80
|
+
@apply text-twitter;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
&.-instagram {
|
|
84
|
+
@apply text-instagram;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
&.-youtube {
|
|
88
|
+
@apply text-youtube;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
</style>
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { MissionDetailHighlightsData } from './../../../components/MissionDetailHighlights/MissionDetailHighlights.stories.js'
|
|
2
|
+
import { MissionDetailStatsData } from './../../../components/MissionDetailStats/MissionDetailStats.stories.js'
|
|
3
|
+
import { MissionDetailAboutData } from './../../../components/MissionDetailAbout/MissionDetailAbout.stories.js'
|
|
4
|
+
import { MissionDetailStreamfieldData } from './../../../components/MissionDetailStreamfield/MissionDetailStreamfield.stories.js'
|
|
5
|
+
import {
|
|
6
|
+
BlockLinkCardCarouselData,
|
|
7
|
+
BlockLinkTileCarouselData
|
|
8
|
+
} from './../../../components/BlockLinkCarousel/BlockLinkCarousel.stories.js'
|
|
9
|
+
import { BlockRelatedLinksData } from './../../../components/BlockRelatedLinks/BlockRelatedLinks.stories.js'
|
|
10
|
+
import PageMissionDetail from './PageMissionDetail.vue'
|
|
11
|
+
|
|
12
|
+
export default {
|
|
13
|
+
title: 'Templates/WWW/PageMissionDetail',
|
|
14
|
+
component: PageMissionDetail,
|
|
15
|
+
tags: ['!autodocs'],
|
|
16
|
+
decorators: [
|
|
17
|
+
() => ({
|
|
18
|
+
template: `<div id="storyDecorator" class="disable-nav-offset"><story/></div>`
|
|
19
|
+
})
|
|
20
|
+
],
|
|
21
|
+
parameters: {
|
|
22
|
+
layout: 'fullscreen',
|
|
23
|
+
html: {
|
|
24
|
+
root: '#storyDecorator'
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
excludeStories: /.*(Data)$/
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// stories
|
|
31
|
+
export const BaseStory = {
|
|
32
|
+
name: 'Dark Template',
|
|
33
|
+
args: {
|
|
34
|
+
data: {
|
|
35
|
+
...MissionDetailStatsData,
|
|
36
|
+
...MissionDetailHighlightsData,
|
|
37
|
+
...MissionDetailStreamfieldData,
|
|
38
|
+
...MissionDetailAboutData,
|
|
39
|
+
relatedLinks: [BlockRelatedLinksData.data],
|
|
40
|
+
relatedPages: BlockLinkCardCarouselData,
|
|
41
|
+
otherMissions: BlockLinkTileCarouselData,
|
|
42
|
+
slug: 'oco-2',
|
|
43
|
+
templateStyle: 'dark',
|
|
44
|
+
title: 'OCO-2',
|
|
45
|
+
subtitle: 'Orbiting Carbon Observatory 2',
|
|
46
|
+
summary:
|
|
47
|
+
'OCO-2 is an Earth satellite mission designed to study the sources and sinks of carbon dioxide globally and provide scientists with a better idea of how carbon is contributing to climate change. ',
|
|
48
|
+
thumbnailImage: 'https://picsum.photos/400/200',
|
|
49
|
+
missionWebsiteUrl: 'http://oco.jpl.nasa.gov/',
|
|
50
|
+
topicLabels: ['Stars and Galaxies', 'Exoplanets'],
|
|
51
|
+
heroImage: {
|
|
52
|
+
srcSet: 'https://https://picsum.photos/320/200 320w, https://picsum.photos/1920/1200 1440w',
|
|
53
|
+
src: {
|
|
54
|
+
url: 'https://picsum.photos/1920/1200',
|
|
55
|
+
width: 1920,
|
|
56
|
+
height: 1200
|
|
57
|
+
},
|
|
58
|
+
alt: 'OCO-2 hero image'
|
|
59
|
+
},
|
|
60
|
+
instrumentImage: {
|
|
61
|
+
webp: {
|
|
62
|
+
url: '/public/images/mission-oco2.webp'
|
|
63
|
+
},
|
|
64
|
+
src: {
|
|
65
|
+
url: '/public/images/mission-grace-fo-75.webp',
|
|
66
|
+
width: 1597,
|
|
67
|
+
height: 700
|
|
68
|
+
},
|
|
69
|
+
alt: 'The instrument'
|
|
70
|
+
},
|
|
71
|
+
instrumentBackground: {
|
|
72
|
+
image: {
|
|
73
|
+
srcSet: '/public/images/bg-earth-1440x810.jpg' + ' 1440w',
|
|
74
|
+
src: {
|
|
75
|
+
url: '/public/images/bg-earth-1440x810.jpg',
|
|
76
|
+
width: 1440,
|
|
77
|
+
height: 810
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export const LightTemplateWithHero = {
|
|
86
|
+
args: {
|
|
87
|
+
data: {
|
|
88
|
+
...MissionDetailStatsData,
|
|
89
|
+
...MissionDetailHighlightsData,
|
|
90
|
+
...MissionDetailStreamfieldData,
|
|
91
|
+
...MissionDetailAboutData,
|
|
92
|
+
relatedLinks: [BlockRelatedLinksData.data],
|
|
93
|
+
relatedPages: BlockLinkCardCarouselData,
|
|
94
|
+
otherMissions: BlockLinkTileCarouselData,
|
|
95
|
+
slug: 'oco-2',
|
|
96
|
+
templateStyle: 'light',
|
|
97
|
+
title: 'OCO-2',
|
|
98
|
+
subtitle: 'Orbiting Carbon Observatory 2',
|
|
99
|
+
summary:
|
|
100
|
+
'OCO-2 is an Earth satellite mission designed to study the sources and sinks of carbon dioxide globally and provide scientists with a better idea of how carbon is contributing to climate change. ',
|
|
101
|
+
missionWebsiteUrl: 'http://oco.jpl.nasa.gov/',
|
|
102
|
+
heroImage: {
|
|
103
|
+
srcSet: 'https://picsum.photos/320/320 320w, https://picsum.photos/1920/1200 1440w',
|
|
104
|
+
src: {
|
|
105
|
+
url: 'https://picsum.photos/1920/1200',
|
|
106
|
+
width: 1920,
|
|
107
|
+
height: 1200
|
|
108
|
+
},
|
|
109
|
+
alt: 'The hero image'
|
|
110
|
+
},
|
|
111
|
+
instrumentImage: null,
|
|
112
|
+
instrumentBackground: null
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export const LightTemplateNoBackground = {
|
|
118
|
+
args: {
|
|
119
|
+
data: {
|
|
120
|
+
...MissionDetailStatsData,
|
|
121
|
+
...MissionDetailHighlightsData,
|
|
122
|
+
...MissionDetailStreamfieldData,
|
|
123
|
+
...MissionDetailAboutData,
|
|
124
|
+
relatedLinks: [BlockRelatedLinksData.data],
|
|
125
|
+
relatedPages: BlockLinkCardCarouselData,
|
|
126
|
+
otherMissions: BlockLinkTileCarouselData,
|
|
127
|
+
slug: 'oco-2',
|
|
128
|
+
templateStyle: 'light',
|
|
129
|
+
title: 'OCO-2',
|
|
130
|
+
subtitle: 'Orbiting Carbon Observatory 2',
|
|
131
|
+
summary:
|
|
132
|
+
'OCO-2 is an Earth satellite mission designed to study the sources and sinks of carbon dioxide globally and provide scientists with a better idea of how carbon is contributing to climate change. ',
|
|
133
|
+
missionWebsiteUrl: 'http://oco.jpl.nasa.gov/',
|
|
134
|
+
heroImage: {
|
|
135
|
+
srcSet: 'https://picsum.photos/320/320 320w, https://picsum.photos/1920/1200 1440w',
|
|
136
|
+
src: {
|
|
137
|
+
url: 'https://picsum.photos/1920/1200',
|
|
138
|
+
width: 1920,
|
|
139
|
+
height: 1200
|
|
140
|
+
},
|
|
141
|
+
alt: 'The hero image'
|
|
142
|
+
},
|
|
143
|
+
instrumentImage: {
|
|
144
|
+
webp: {
|
|
145
|
+
url: '/public/images/mission-oco2.webp'
|
|
146
|
+
},
|
|
147
|
+
src: {
|
|
148
|
+
url: '/public/images/mission-grace-fo-75.webp',
|
|
149
|
+
width: 1597,
|
|
150
|
+
height: 700
|
|
151
|
+
},
|
|
152
|
+
alt: 'The instrument'
|
|
153
|
+
},
|
|
154
|
+
instrumentBackground: null
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// stories
|
|
160
|
+
export const GraceFO = {
|
|
161
|
+
args: {
|
|
162
|
+
data: {
|
|
163
|
+
showClock: true,
|
|
164
|
+
showDistance: false,
|
|
165
|
+
clockType: 'time_in_orbit',
|
|
166
|
+
startDateTime: '2018-10-22 10:04:21+01:00',
|
|
167
|
+
distanceType: 'earth',
|
|
168
|
+
distanceValue: 4986444,
|
|
169
|
+
distanceApiUrls: '',
|
|
170
|
+
displayDate: 'Oct. 22, 2018',
|
|
171
|
+
missionTypes: [{ missionType: 'Orbiters' }],
|
|
172
|
+
missionTargets: [{ target: 'Earth' }],
|
|
173
|
+
status: 'current',
|
|
174
|
+
...MissionDetailHighlightsData,
|
|
175
|
+
highlightsHeading: 'Mission Highlights',
|
|
176
|
+
highlights: [
|
|
177
|
+
{
|
|
178
|
+
date: '2018-11-01',
|
|
179
|
+
heading: 'GRACE-FO Resumes Data Collection',
|
|
180
|
+
summary:
|
|
181
|
+
'Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam sagittis orci purus, in luctus ex volutpat sit amet. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam sagittis orci purus, in luctus ex volutpat sit amet.'
|
|
182
|
+
}
|
|
183
|
+
],
|
|
184
|
+
feature: [
|
|
185
|
+
{
|
|
186
|
+
blockType: 'QuoteBlock',
|
|
187
|
+
quote:
|
|
188
|
+
"“A nice thing about it is it doesn't shatter. If impacted, it bends rather than breaks and still has good optical properties”",
|
|
189
|
+
attribution: 'Amy Ross, Spacesuit Designer'
|
|
190
|
+
}
|
|
191
|
+
],
|
|
192
|
+
relatedLinks: [
|
|
193
|
+
{
|
|
194
|
+
links: [
|
|
195
|
+
{
|
|
196
|
+
text: 'Mission Website',
|
|
197
|
+
document: '',
|
|
198
|
+
page: '',
|
|
199
|
+
externalLink: 'http://gracefo.jpl.nasa.gov/'
|
|
200
|
+
}
|
|
201
|
+
]
|
|
202
|
+
}
|
|
203
|
+
],
|
|
204
|
+
relatedPages: BlockLinkCardCarouselData,
|
|
205
|
+
otherMissions: BlockLinkTileCarouselData,
|
|
206
|
+
slug: 'grace-fo',
|
|
207
|
+
templateStyle: 'dark',
|
|
208
|
+
title: 'GRACE-FO',
|
|
209
|
+
subtitle: 'Gravity Recovery and Climate Experiment Follow-On',
|
|
210
|
+
summary:
|
|
211
|
+
'The Gravity Recovery and Climate Experiment Follow-on (GRACE-FO) mission is a partnership between NASA and the German Research Centre for Geosciences (GFZ).',
|
|
212
|
+
thumbnailImage: 'https://picsum.photos/400/200',
|
|
213
|
+
missionWebsiteUrl: 'http://gracefo.jpl.nasa.gov/',
|
|
214
|
+
heroImage: {
|
|
215
|
+
srcSet: 'https://picsum.photos/320/320 320w, https://picsum.photos/1920/1200 1440w',
|
|
216
|
+
src: {
|
|
217
|
+
url: 'https://picsum.photos/1920/1200',
|
|
218
|
+
width: 1920,
|
|
219
|
+
height: 1200
|
|
220
|
+
},
|
|
221
|
+
alt: 'GRACE-FO hero image'
|
|
222
|
+
},
|
|
223
|
+
instrumentImage: {
|
|
224
|
+
webp: {
|
|
225
|
+
url: '/public/images/mission-grace-fo-75.webp'
|
|
226
|
+
},
|
|
227
|
+
src: {
|
|
228
|
+
url: '/public/images/mission-grace-fo.png',
|
|
229
|
+
width: 1597,
|
|
230
|
+
height: 700
|
|
231
|
+
},
|
|
232
|
+
alt: 'The instrument'
|
|
233
|
+
},
|
|
234
|
+
instrumentBackground: {
|
|
235
|
+
image: {
|
|
236
|
+
srcSet: '/public/images/bg-earth-1440x810.jpg' + ' 1440w',
|
|
237
|
+
src: {
|
|
238
|
+
url: '/public/images/bg-earth-1440x810.jpg',
|
|
239
|
+
width: 1440,
|
|
240
|
+
height: 810
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|