@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,375 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
v-if="data"
|
|
4
|
+
class="PageAudioDetail ThemeVariantLight"
|
|
5
|
+
itemscope
|
|
6
|
+
itemtype="http://schema.org/VideoObject"
|
|
7
|
+
>
|
|
8
|
+
<!-- schema.org -->
|
|
9
|
+
<meta
|
|
10
|
+
v-if="data.uploadedMedia && data.uploadedMedia.file"
|
|
11
|
+
itemprop="contentUrl"
|
|
12
|
+
:content="data.uploadedMedia.file"
|
|
13
|
+
/>
|
|
14
|
+
<meta
|
|
15
|
+
v-if="data.uploadedMedia && data.uploadedMedia.duration"
|
|
16
|
+
itemprop="duration"
|
|
17
|
+
:content="data.uploadedMedia.duration"
|
|
18
|
+
/>
|
|
19
|
+
<meta
|
|
20
|
+
v-if="data.thumbnailImage && data.thumbnailImage.original"
|
|
21
|
+
itemprop="thumbnailUrl"
|
|
22
|
+
:content="data.thumbnailImage.original"
|
|
23
|
+
/>
|
|
24
|
+
<meta
|
|
25
|
+
v-if="data.summary"
|
|
26
|
+
itemprop="description"
|
|
27
|
+
:content="data.summary"
|
|
28
|
+
/>
|
|
29
|
+
|
|
30
|
+
<LayoutHelper
|
|
31
|
+
indent="col-1"
|
|
32
|
+
class="3xl:px-0 lg:mt-12 mx-auto lg:px-4 mt-5 mb-10 lg:mb-14"
|
|
33
|
+
>
|
|
34
|
+
<!-- TODO consolidate all media detail pages to use the same headline component -->
|
|
35
|
+
<template v-if="data.series && data.series.url">
|
|
36
|
+
<DetailHeadline
|
|
37
|
+
:title="data.title"
|
|
38
|
+
:publication-date="data.publicationDate"
|
|
39
|
+
:label="data.series.title + ' Podcast'"
|
|
40
|
+
:label-link="data.series.url"
|
|
41
|
+
schema
|
|
42
|
+
/>
|
|
43
|
+
</template>
|
|
44
|
+
<template v-else>
|
|
45
|
+
<DetailHeadline
|
|
46
|
+
:title="data.title"
|
|
47
|
+
:publication-date="data.publicationDate"
|
|
48
|
+
label="Audio"
|
|
49
|
+
schema
|
|
50
|
+
/>
|
|
51
|
+
</template>
|
|
52
|
+
</LayoutHelper>
|
|
53
|
+
<BlockAudio :data="data" />
|
|
54
|
+
<LayoutHelper
|
|
55
|
+
indent="col-2"
|
|
56
|
+
class="lg:pt-12 pt-4"
|
|
57
|
+
>
|
|
58
|
+
<div class="lg:grid flex flex-col grid-cols-10 mb-12">
|
|
59
|
+
<div
|
|
60
|
+
v-if="data.summary || data.transcript || (data.relatedLinks && data.relatedLinks.length)"
|
|
61
|
+
class="lg:order-1 order-2 col-span-7 mb-12"
|
|
62
|
+
>
|
|
63
|
+
<BlockText :text="data.summary" />
|
|
64
|
+
<hr
|
|
65
|
+
v-if="data.summary"
|
|
66
|
+
class="border-gray-light-mid lg:my-8 my-5"
|
|
67
|
+
/>
|
|
68
|
+
<div
|
|
69
|
+
v-if="data.transcript && data.transcript.length > 2"
|
|
70
|
+
ref="audioTranscript"
|
|
71
|
+
class="relative col-span-7 my-5"
|
|
72
|
+
:class="{
|
|
73
|
+
'max-h-xl lg:max-h-3xl overflow-hidden': collapseTranscript
|
|
74
|
+
}"
|
|
75
|
+
>
|
|
76
|
+
<div
|
|
77
|
+
v-if="collapseTranscript && showTranscriptControls"
|
|
78
|
+
class="transcript-overlay"
|
|
79
|
+
></div>
|
|
80
|
+
<BaseHeading
|
|
81
|
+
level="h2"
|
|
82
|
+
class="mb-5"
|
|
83
|
+
>Transcript</BaseHeading
|
|
84
|
+
>
|
|
85
|
+
<BlockText
|
|
86
|
+
:text="data.transcript"
|
|
87
|
+
variant="medium"
|
|
88
|
+
class="audio-transcript"
|
|
89
|
+
itemprop="transcript"
|
|
90
|
+
/>
|
|
91
|
+
</div>
|
|
92
|
+
<template v-if="data.transcript && data.transcript.length > 2 && showTranscriptControls">
|
|
93
|
+
<BaseButton
|
|
94
|
+
class="my-6"
|
|
95
|
+
variant="secondary"
|
|
96
|
+
compact
|
|
97
|
+
:aria-expanded="collapseTranscript ? 'false' : 'true'"
|
|
98
|
+
@click="toggleTranscript()"
|
|
99
|
+
>
|
|
100
|
+
<template v-if="collapseTranscript">
|
|
101
|
+
<span>Read more</span>
|
|
102
|
+
<IconDropdown class="text-sm ml-2" />
|
|
103
|
+
</template>
|
|
104
|
+
<template v-else>
|
|
105
|
+
<span>Collapse</span>
|
|
106
|
+
<IconDropdown class="transform rotate-180 text-sm ml-2" />
|
|
107
|
+
</template>
|
|
108
|
+
</BaseButton>
|
|
109
|
+
</template>
|
|
110
|
+
<!-- related links -->
|
|
111
|
+
<template v-if="data.relatedLinks && data.relatedLinks.length">
|
|
112
|
+
<BlockRelatedLinks
|
|
113
|
+
class="mt-12"
|
|
114
|
+
:data="data.relatedLinks[0]"
|
|
115
|
+
/>
|
|
116
|
+
</template>
|
|
117
|
+
</div>
|
|
118
|
+
<aside class="audio-aside lg:order-2 order-1 col-start-9 col-end-11 mb-12">
|
|
119
|
+
<div class="mt-5 lg:mt-0 lg:mb-12">
|
|
120
|
+
<div class="lg:w-auto w-full">
|
|
121
|
+
<BaseModal
|
|
122
|
+
v-if="data.subscribeLinks && data.subscribeLinks.length"
|
|
123
|
+
bg-close
|
|
124
|
+
>
|
|
125
|
+
<template #modalTrigger>
|
|
126
|
+
<BaseButton
|
|
127
|
+
class="w-full mb-5"
|
|
128
|
+
variant="primary"
|
|
129
|
+
compact
|
|
130
|
+
>
|
|
131
|
+
Subscribe
|
|
132
|
+
</BaseButton>
|
|
133
|
+
</template>
|
|
134
|
+
<template
|
|
135
|
+
v-if="data.subscribeLinks[0].heading"
|
|
136
|
+
#modalHeader
|
|
137
|
+
>
|
|
138
|
+
{{ data.subscribeLinks[0].heading }}
|
|
139
|
+
</template>
|
|
140
|
+
<div class="SubscribeModal mb-8">
|
|
141
|
+
<p
|
|
142
|
+
v-if="data.subscribeLinks[0].description"
|
|
143
|
+
class="text-body-md mb-5"
|
|
144
|
+
>
|
|
145
|
+
{{ data.subscribeLinks[0].description }}
|
|
146
|
+
</p>
|
|
147
|
+
<ul
|
|
148
|
+
v-if="data.subscribeLinks[0].links && data.subscribeLinks[0].links.length > 0"
|
|
149
|
+
class="text-body-md mb-5"
|
|
150
|
+
>
|
|
151
|
+
<li
|
|
152
|
+
v-for="(link, index) in data.subscribeLinks[0].links"
|
|
153
|
+
:key="index"
|
|
154
|
+
>
|
|
155
|
+
<BaseLink
|
|
156
|
+
variant="default"
|
|
157
|
+
:href="link.externalLink"
|
|
158
|
+
external-target-blank
|
|
159
|
+
>
|
|
160
|
+
{{ link.text }}
|
|
161
|
+
</BaseLink>
|
|
162
|
+
</li>
|
|
163
|
+
</ul>
|
|
164
|
+
</div>
|
|
165
|
+
</BaseModal>
|
|
166
|
+
</div>
|
|
167
|
+
<div class="lg:w-auto w-full">
|
|
168
|
+
<BaseButton
|
|
169
|
+
v-if="data.uploadedMedia && data.uploadedMedia.file"
|
|
170
|
+
:href="data.uploadedMedia.file"
|
|
171
|
+
class="inline-block lg:block mb-5"
|
|
172
|
+
:variant="
|
|
173
|
+
data.subscribeLinks && data.subscribeLinks.length ? 'secondary' : 'primary'
|
|
174
|
+
"
|
|
175
|
+
compact
|
|
176
|
+
>
|
|
177
|
+
<span class="pr-2">
|
|
178
|
+
Download
|
|
179
|
+
{{ data.uploadedMedia.fileExtension || 'Audio' }}
|
|
180
|
+
</span>
|
|
181
|
+
<slot name="icon">
|
|
182
|
+
<IconDownload />
|
|
183
|
+
</slot>
|
|
184
|
+
</BaseButton>
|
|
185
|
+
</div>
|
|
186
|
+
</div>
|
|
187
|
+
|
|
188
|
+
<div
|
|
189
|
+
v-if="data.series && data.series.url"
|
|
190
|
+
class="lg:pt-0 lg:mb-12 pt-8"
|
|
191
|
+
>
|
|
192
|
+
<p class="text-subtitle mb-5">Podcast Series</p>
|
|
193
|
+
<BaseLink
|
|
194
|
+
variant="none"
|
|
195
|
+
:to="data.series.url"
|
|
196
|
+
class="text-jpl-red hover:text-jpl-red-dark text-lg"
|
|
197
|
+
link-class="p-3 -mt-3 -ml-3"
|
|
198
|
+
>
|
|
199
|
+
{{ data.series.title }}
|
|
200
|
+
</BaseLink>
|
|
201
|
+
</div>
|
|
202
|
+
</aside>
|
|
203
|
+
</div>
|
|
204
|
+
</LayoutHelper>
|
|
205
|
+
|
|
206
|
+
<PodcastSeriesCarousel
|
|
207
|
+
:series="data.series"
|
|
208
|
+
:initial-season-id="data.parent ? data.parent.id : null"
|
|
209
|
+
class="mb-12 lg:mb-24"
|
|
210
|
+
/>
|
|
211
|
+
<div
|
|
212
|
+
v-if="data.relatedPages && data.relatedPages.length"
|
|
213
|
+
class="bg-gray-light lg:py-24 lg:mt-24 py-12 mt-12"
|
|
214
|
+
>
|
|
215
|
+
<BlockLinkCarousel
|
|
216
|
+
item-type="tiles"
|
|
217
|
+
heading="Related Pages"
|
|
218
|
+
:items="data.relatedPages"
|
|
219
|
+
/>
|
|
220
|
+
</div>
|
|
221
|
+
</div>
|
|
222
|
+
</template>
|
|
223
|
+
<script lang="ts">
|
|
224
|
+
import { defineComponent } from 'vue'
|
|
225
|
+
import LayoutHelper from './../../components/LayoutHelper/LayoutHelper.vue'
|
|
226
|
+
import DetailHeadline from './../../components/DetailHeadline/DetailHeadline.vue'
|
|
227
|
+
import BaseButton from './../../components/BaseButton/BaseButton.vue'
|
|
228
|
+
import BlockRelatedLinks from './../../components/BlockRelatedLinks/BlockRelatedLinks.vue'
|
|
229
|
+
import BlockText from './../../components/BlockText/BlockText.vue'
|
|
230
|
+
import BlockAudio from './../../components/BlockAudio/BlockAudio.vue'
|
|
231
|
+
import IconDownload from './../../components/Icons/IconDownload.vue'
|
|
232
|
+
import IconDropdown from './../../components/Icons/IconDropdown.vue'
|
|
233
|
+
import BlockLinkCarousel from './../../components/BlockLinkCarousel/BlockLinkCarousel.vue'
|
|
234
|
+
import BaseHeading from './../../components/BaseHeading/BaseHeading.vue'
|
|
235
|
+
import BaseLink from './../../components/BaseLink/BaseLink.vue'
|
|
236
|
+
import BaseModal from './../../components/BaseModal/BaseModal.vue'
|
|
237
|
+
import PodcastSeriesCarousel from './../../components/PodcastSeriesCarousel/PodcastSeriesCarousel.vue'
|
|
238
|
+
|
|
239
|
+
export default defineComponent({
|
|
240
|
+
name: 'PageAudioDetail',
|
|
241
|
+
components: {
|
|
242
|
+
LayoutHelper,
|
|
243
|
+
BlockRelatedLinks,
|
|
244
|
+
DetailHeadline,
|
|
245
|
+
BlockText,
|
|
246
|
+
BaseButton,
|
|
247
|
+
BlockAudio,
|
|
248
|
+
IconDownload,
|
|
249
|
+
IconDropdown,
|
|
250
|
+
BlockLinkCarousel,
|
|
251
|
+
BaseHeading,
|
|
252
|
+
BaseLink,
|
|
253
|
+
BaseModal,
|
|
254
|
+
PodcastSeriesCarousel
|
|
255
|
+
},
|
|
256
|
+
props: {
|
|
257
|
+
data: {
|
|
258
|
+
type: Object,
|
|
259
|
+
required: false,
|
|
260
|
+
default: undefined
|
|
261
|
+
}
|
|
262
|
+
},
|
|
263
|
+
data() {
|
|
264
|
+
return {
|
|
265
|
+
collapseTranscript: true, // must start as true to determine if there is overflow
|
|
266
|
+
showTranscriptControls: true
|
|
267
|
+
}
|
|
268
|
+
},
|
|
269
|
+
watch: {
|
|
270
|
+
'data.transcript': {
|
|
271
|
+
handler() {
|
|
272
|
+
this.$nextTick(() => {
|
|
273
|
+
this.checkTranscriptOverflow()
|
|
274
|
+
})
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
},
|
|
278
|
+
mounted() {
|
|
279
|
+
this.$nextTick(() => {
|
|
280
|
+
this.checkTranscriptOverflow()
|
|
281
|
+
})
|
|
282
|
+
},
|
|
283
|
+
methods: {
|
|
284
|
+
checkTranscriptOverflow() {
|
|
285
|
+
if (this.$refs.audioTranscript) {
|
|
286
|
+
const element = this.$refs.audioTranscript as HTMLElement
|
|
287
|
+
if (element.scrollHeight > element.clientHeight) {
|
|
288
|
+
this.showTranscriptControls = true
|
|
289
|
+
} else {
|
|
290
|
+
this.showTranscriptControls = false
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
},
|
|
294
|
+
toggleTranscript() {
|
|
295
|
+
if (!this.collapseTranscript && this.$refs.audioTranscript) {
|
|
296
|
+
// @ts-ignore
|
|
297
|
+
this.$refs.audioTranscript.scrollIntoView({ behavior: 'smooth' })
|
|
298
|
+
this.collapseTranscript = true
|
|
299
|
+
} else {
|
|
300
|
+
this.collapseTranscript = false
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
})
|
|
305
|
+
</script>
|
|
306
|
+
|
|
307
|
+
<style lang="scss">
|
|
308
|
+
.PageAudioDetail {
|
|
309
|
+
.transcript-overlay {
|
|
310
|
+
// necessary for safari to interpolate the gradient correctly
|
|
311
|
+
// see https://stackoverflow.com/a/56548711
|
|
312
|
+
background-image: linear-gradient(to top, white, rgba(255, 255, 255, 0));
|
|
313
|
+
@apply absolute bottom-0 inset-x-0 h-24 pointer-events-none;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
.audio-aside {
|
|
317
|
+
// .BaseButton {
|
|
318
|
+
// max-width: 200px;
|
|
319
|
+
// @screen md {
|
|
320
|
+
// max-width: none;
|
|
321
|
+
// }
|
|
322
|
+
// }
|
|
323
|
+
.BlockText {
|
|
324
|
+
@apply text-lg;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
.audio-transcript {
|
|
329
|
+
p {
|
|
330
|
+
@apply mb-4;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
.SubscribeModal {
|
|
335
|
+
ul {
|
|
336
|
+
@apply mb-5;
|
|
337
|
+
@screen lg {
|
|
338
|
+
@apply mb-8;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
&:last-child {
|
|
342
|
+
@apply mb-0;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
li {
|
|
346
|
+
@apply mb-2 pl-8 relative;
|
|
347
|
+
@screen lg {
|
|
348
|
+
@apply pl-12;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
&:last-child {
|
|
352
|
+
@apply mb-0;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
&::before {
|
|
356
|
+
content: '';
|
|
357
|
+
width: 24px;
|
|
358
|
+
height: 2px;
|
|
359
|
+
@apply bg-jpl-red block absolute top-0 left-0 mt-3;
|
|
360
|
+
@screen sm {
|
|
361
|
+
@apply mt-3;
|
|
362
|
+
}
|
|
363
|
+
@screen lg {
|
|
364
|
+
width: 30px;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
.ThemeVariantDark & {
|
|
368
|
+
@apply bg-jpl-red-light;
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
</style>
|
|
@@ -12,11 +12,12 @@ import PageContent from './PageContent.vue'
|
|
|
12
12
|
export default {
|
|
13
13
|
title: 'Templates/PageContent',
|
|
14
14
|
component: PageContent,
|
|
15
|
+
tags: ['!autodocs'],
|
|
15
16
|
parameters: {
|
|
16
17
|
html: {
|
|
17
18
|
root: '#storyDecorator'
|
|
18
19
|
},
|
|
19
|
-
|
|
20
|
+
layout: 'fullscreen'
|
|
20
21
|
},
|
|
21
22
|
excludeStories: /.*(Data)$/
|
|
22
23
|
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { BlockLinkTileCarouselData } from './../../components/BlockLinkCarousel/BlockLinkCarousel.stories'
|
|
2
|
+
import { BlockStreamfieldTruncatedData } from './../../components/BlockStreamfield/BlockStreamfield.stories'
|
|
3
|
+
import PageImageDetail from './PageImageDetail.vue'
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
title: 'Templates/PageImageDetail',
|
|
7
|
+
component: PageImageDetail,
|
|
8
|
+
excludeStories: /.*Data$/,
|
|
9
|
+
tags: ['!autodocs'],
|
|
10
|
+
parameters: {
|
|
11
|
+
layout: 'fullscreen'
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// data
|
|
16
|
+
export const ImageDetailPageData = {
|
|
17
|
+
data: {
|
|
18
|
+
body: [
|
|
19
|
+
{
|
|
20
|
+
blockType: 'RichTextBlock',
|
|
21
|
+
value:
|
|
22
|
+
'<p><a href="https://photojournal.jpl.nasa.gov/archive/PIA23356.mov" target="new"><b>Click here for animation</b></a></p><p>This time series shows carbon monoxide associated with fires from the Amazon region in Brazil from Aug. 8-22, 2019. The images show carbon monoxide at an hPA — a common unit of measurement for atmospheric pressure — of 500, or approximately 18,000 feet (5,500 meters) altitude, made with data collected from the Atmospheric Infrared Sounder (AIRS) on NASA\'s Aqua satellite. Each "day" in the series is made by averaging three day\'s-worth of measurements, a technique used to eliminate data gaps.</p><p>As the series progresses, the carbon monoxide plume blooms in the northwest Amazon region then drifts south and east in a more concentrated plume toward Sao Paulo. Green indicates concentrations of carbon monoxide at approximately 100 parts per billion by volume (ppbv), yellow at approximately 120 ppbv, and dark red at approximately 160 ppbv. It must be noted that local values can be significantly higher.</p><p>Carbon monoxide is a pollutant that can be transported large distances and persist in the atmosphere for about one month. It plays a role in both air pollution and climate change.</p><p>AIRS, in conjunction with the Advanced Microwave Sounding Unit (AMSU), senses emitted infrared and microwave radiation from Earth to provide a three-dimensional look at Earth\'s weather and climate. Working in tandem, the two instruments make simultaneous observations all the way down to Earth\'s surface. With more than 2,000 channels sensing different regions of the atmosphere, the system creates a global, three-dimensional map of atmospheric temperature and humidity, cloud amounts and heights, greenhouse gas concentrations and many other atmospheric phenomena.</p><p>The AIRS and AMSU instruments are managed by NASA\'s Jet Propulsion Laboratory in Pasadena, California, under contract to NASA. JPL is a division of the Caltech.</p><p>More information about AIRS can be found at <a href="https://airs.jpl.nasa.gov" target="new">https://airs.jpl.nasa.gov</a>.</p>\n'
|
|
23
|
+
},
|
|
24
|
+
...BlockStreamfieldTruncatedData.body
|
|
25
|
+
],
|
|
26
|
+
contentType: 'image_detail.ImageDetailPage',
|
|
27
|
+
contextImage: {
|
|
28
|
+
original: 'https://picsum.photos/1920/1080',
|
|
29
|
+
src: {
|
|
30
|
+
height: '1400',
|
|
31
|
+
url: 'https://picsum.photos/1400/787',
|
|
32
|
+
width: '787'
|
|
33
|
+
},
|
|
34
|
+
srcSet:
|
|
35
|
+
'https://picsum.photos/1400/787 320w, https://picsum.photos/1400/787 1024w, https://picsum.photos/1920/1080 1400w',
|
|
36
|
+
alt: 'Context image'
|
|
37
|
+
},
|
|
38
|
+
downloadUrl: 'https://photojournal.jpl.nasa.gov/tiff/PIA23356.tif',
|
|
39
|
+
image: {
|
|
40
|
+
alt: 'This time series shows carbon monoxide associated with fires from the Amazon region in Brazil from Aug. 8-22, 2019.',
|
|
41
|
+
credit: 'NASA/JPL',
|
|
42
|
+
original: 'https://picsum.photos/1920/1080',
|
|
43
|
+
src: {
|
|
44
|
+
url: 'https://picsum.photos/1400/787',
|
|
45
|
+
width: '1400',
|
|
46
|
+
height: '787'
|
|
47
|
+
},
|
|
48
|
+
srcSet:
|
|
49
|
+
'https://picsum.photos/1400/787 320w, https://picsum.photos/1400/787 1024w, https://picsum.photos/1920/1080 1400w',
|
|
50
|
+
caption:
|
|
51
|
+
'<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vel porttitor urna. Maecenas at est laoreet, sagittis risus a, rutrum ipsum. Quisque tincidunt lacus nunc, dapibus facilisis felis scelerisque sit amet. </p>',
|
|
52
|
+
detailUrl: ''
|
|
53
|
+
},
|
|
54
|
+
instruments: [
|
|
55
|
+
{
|
|
56
|
+
id: '522',
|
|
57
|
+
instrument: 'Atmospheric Infrared Sounder (AIRS)'
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
keepExploringInstrument: BlockLinkTileCarouselData,
|
|
61
|
+
keepExploringMission: BlockLinkTileCarouselData,
|
|
62
|
+
keepExploringTarget: BlockLinkTileCarouselData,
|
|
63
|
+
label: 'Image',
|
|
64
|
+
piaNumber: 'PIA23356',
|
|
65
|
+
publicationDate: '2019-08-23',
|
|
66
|
+
relatedMission: [
|
|
67
|
+
{
|
|
68
|
+
blockType: 'MissionLinkBlock',
|
|
69
|
+
externalLink: null,
|
|
70
|
+
page: {
|
|
71
|
+
url: '/missions/aquarius'
|
|
72
|
+
},
|
|
73
|
+
text: 'Aquarius'
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
relatedTopics: BlockLinkTileCarouselData,
|
|
77
|
+
seoTitle: "NASA's AIRS Maps Carbon Monoxide from Brazil Fires",
|
|
78
|
+
slug: 'nasas-airs-maps-carbon-monoxide-from-brazil-fires',
|
|
79
|
+
spacecraft: [
|
|
80
|
+
{
|
|
81
|
+
id: '619',
|
|
82
|
+
spacecraft: 'Aqua'
|
|
83
|
+
}
|
|
84
|
+
],
|
|
85
|
+
targets: [
|
|
86
|
+
{
|
|
87
|
+
id: '536',
|
|
88
|
+
target: 'Earth'
|
|
89
|
+
}
|
|
90
|
+
],
|
|
91
|
+
title: "NASA's AIRS Maps Carbon Monoxide from Brazil Fires",
|
|
92
|
+
topicLabel: 'Earth'
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// stories
|
|
96
|
+
export const BaseStory = { name: 'ImageDetail', args: { ...ImageDetailPageData } }
|
|
97
|
+
|
|
98
|
+
// stories
|
|
99
|
+
export const NoTabbedCarousels = {
|
|
100
|
+
args: {
|
|
101
|
+
data: {
|
|
102
|
+
...ImageDetailPageData.data,
|
|
103
|
+
keepExploringMission: null,
|
|
104
|
+
keepExploringInstrument: [],
|
|
105
|
+
keepExploringTarget: null,
|
|
106
|
+
relatedMission: [
|
|
107
|
+
{
|
|
108
|
+
blockType: 'MissionLinkBlock',
|
|
109
|
+
externalLink: 'https://nasa.gov',
|
|
110
|
+
page: null,
|
|
111
|
+
text: 'External Mission Link for Testing'
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|