@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.
Files changed (158) hide show
  1. package/dist/explorer-1-vue.js +8960 -10011
  2. package/dist/explorer-1-vue.umd.cjs +13 -16
  3. package/dist/src/components/BaseHeading/BaseHeading.stories.d.ts +6 -11
  4. package/dist/src/components/BaseHeading/BaseHeading.vue.d.ts +6 -10
  5. package/dist/src/components/BasePlaceholder/BasePlaceholder.stories.d.ts +0 -1
  6. package/dist/src/components/BlockDialog/BlockDialog.stories.d.ts +81 -0
  7. package/dist/src/components/BlockImage/BlockImage.stories.d.ts +0 -1
  8. package/dist/src/components/BlockLinkCarousel/BlockLinkCarousel.stories.d.ts +6 -0
  9. package/dist/src/components/BlockLinkCarousel/BlockLinkCarousel.vue.d.ts +6 -0
  10. package/dist/src/components/BlockQuote/BlockQuote.stories.d.ts +0 -1
  11. package/dist/src/components/BlockStreamfield/BlockStreamfield.stories.d.ts +58 -8
  12. package/dist/src/components/BlockVideoEmbed/BlockVideoEmbed.vue.d.ts +7 -3
  13. package/dist/src/components/HeroListingIndex/HeroListingIndex.stories.d.ts +1 -0
  14. package/dist/src/components/HeroMedium/HeroMedium.stories.d.ts +1 -0
  15. package/dist/src/components/HeroMedium/HeroSmall.stories.d.ts +1 -0
  16. package/dist/src/components/HomepageEmbedBlock/HomepageEmbedBlock.stories.d.ts +1 -6
  17. package/dist/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.stories.d.ts +31 -47
  18. package/dist/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.vue.d.ts +5 -1
  19. package/dist/src/components/HomepageStats/HomepageStats.stories.d.ts +19 -9
  20. package/dist/src/components/HomepageTeaserBlock/HomepageTeaserBlock.stories.d.ts +6 -50
  21. package/dist/src/components/HomepageTeaserBlock/HomepageTeaserBlock.vue.d.ts +7 -1
  22. package/dist/src/components/MissionDetailAbout/MissionDetailAbout.stories.d.ts +1 -6
  23. package/dist/src/components/MissionDetailHero/MissionDetailHero.stories.d.ts +11 -11
  24. package/dist/src/components/MissionDetailHighlights/MissionDetailHighlights.stories.d.ts +6 -6
  25. package/dist/src/components/NavDesktop/NavDesktop.stories.d.ts +3 -6
  26. package/dist/src/components/NavDesktopEdu/NavDesktopEdu.stories.d.ts +289 -0
  27. package/dist/src/components/NavLogoLinks/NavLogoLinks.stories.d.ts +0 -5
  28. package/dist/src/components/NavMobile/NavMobile.stories.d.ts +42 -9
  29. package/dist/src/components/NavMobile/NavMobile.vue.d.ts +13 -2
  30. package/dist/src/components/NavMobile/NavMobileEdu.stories.d.ts +392 -0
  31. package/dist/src/components/NavSocial/NavSocial.stories.d.ts +42 -1
  32. package/dist/src/components/NavSocial/NavSocial.vue.d.ts +42 -1
  33. package/dist/src/components/TheFooter/TheFooter.vue.d.ts +9 -1
  34. package/dist/src/components/TimelineDialog/TimelineDialog.stories.d.ts +75 -0
  35. package/dist/src/components/TopicDetailMissionSpotlight/TopicDetailMissionSpotlight.stories.d.ts +1 -7
  36. package/dist/src/components/TopicDetailStreamfield/TopicDetailStreamfield.stories.d.ts +1 -6
  37. package/dist/src/docs/foundation/typography.stories.d.ts +6 -10
  38. package/dist/src/store/curatedGallery.d.ts +6 -0
  39. package/dist/src/store/search.d.ts +10 -0
  40. package/dist/src/templates/PageAudioDetail/PageAudioDetail.stories.d.ts +102 -0
  41. package/dist/src/templates/PageContent/PageContent.stories.d.ts +2 -1
  42. package/dist/src/templates/PageContent/PageContent.vue.d.ts +8 -0
  43. package/dist/src/templates/PageEventDetail/PageEventDetail.stories.d.ts +1 -1
  44. package/dist/src/templates/PageImageDetail/PageImageDetail.stories.d.ts +141 -0
  45. package/dist/src/templates/PageNewsDetail/PageNewsDetail.stories.d.ts +1163 -228
  46. package/dist/src/templates/PageVideoDetail/PageVideoDetail.stories.d.ts +56 -0
  47. package/dist/src/templates/edu/PageContentEdu.stories.d.ts +27 -0
  48. package/dist/src/templates/edu/PageEduNewsDetail/PageEduNewsDetail.stories.d.ts +360 -0
  49. package/dist/src/templates/www/PageAsteroidWatchContent/PageAsteroidWatchContent.stories.d.ts +99 -0
  50. package/dist/src/templates/{edu/PageEduNewsDetail.stories.d.ts → www/PageAsteroidWatchIndex/PageAsteroidWatchIndex.stories.d.ts} +48 -67
  51. package/dist/src/templates/www/PageCuratedGallery/PageCuratedGallery.stories.d.ts +98 -0
  52. package/dist/src/templates/www/PageGoDirectory/PageGoDirectory.stories.d.ts +56 -0
  53. package/dist/src/templates/www/PageHomepage/PageHomepage.stories.d.ts +704 -0
  54. package/dist/src/templates/www/PageInfographicDetail/PageInfographicDetail.stories.d.ts +41 -0
  55. package/dist/src/templates/www/PageMaintenanceMode/PageMaintenanceMode.stories.d.ts +14 -0
  56. package/dist/src/templates/www/PageMissionDetail/PageMissionDetail.stories.d.ts +875 -0
  57. package/dist/src/templates/www/PagePodcast/PagePodcast.stories.d.ts +115 -0
  58. package/dist/src/templates/www/PagePodcastSeason/PagePodcastSeason.stories.d.ts +84 -0
  59. package/dist/src/templates/www/PagePressKitIndex/PagePressKitIndex.stories.d.ts +64 -0
  60. package/dist/src/templates/www/PageProfileDetail/PageProfileDetail.stories.d.ts +60 -0
  61. package/dist/src/templates/www/PageRoboticsDetail/PageRoboticsDetail.stories.d.ts +170 -0
  62. package/dist/src/templates/www/PageTimeline/PageTimeline.stories.d.ts +338 -0
  63. package/dist/src/templates/www/PageTopicDetail/PageTopicDetail.stories.d.ts +297 -0
  64. package/dist/style.css +1 -1
  65. package/lib/main.ts +4 -0
  66. package/package.json +2 -1
  67. package/src/components/BaseAudio/BaseAudio.vue +0 -1
  68. package/src/components/BaseHeading/BaseHeading.stories.js +0 -1
  69. package/src/components/BaseHeading/BaseHeading.vue +5 -7
  70. package/src/components/BasePlaceholder/BasePlaceholder.stories.js +0 -1
  71. package/src/components/BlockAudio/BlockAudio.stories.js +2 -3
  72. package/src/components/BlockDialog/BlockDialog.stories.js +56 -0
  73. package/src/components/BlockDialog/BlockDialog.stories.mdx +28 -0
  74. package/src/components/BlockDialog/BlockDialog.vue +132 -0
  75. package/src/components/BlockHeading/BlockHeading.stories.js +2 -2
  76. package/src/components/BlockImage/BlockImage.stories.js +0 -1
  77. package/src/components/BlockImageCarouselItem/BlockImageCarouselItem.vue +0 -1
  78. package/src/components/BlockImageGallery/BlockImageGallery.vue +0 -1
  79. package/src/components/BlockLinkCarousel/BlockLinkCarousel.vue +4 -2
  80. package/src/components/BlockQuote/BlockQuote.stories.js +0 -1
  81. package/src/components/BlockStreamfield/BlockStreamfield.stories.js +20 -9
  82. package/src/components/BlockVideoEmbed/BlockVideoEmbed.vue +3 -2
  83. package/src/components/DsnWidget/DsnWidget.vue +2 -2
  84. package/src/components/HomepageEmbedBlock/HomepageEmbedBlock.stories.js +1 -8
  85. package/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.stories.js +115 -118
  86. package/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.vue +3 -23
  87. package/src/components/HomepageMissionsCarousel/HomepageMissionsCarouselItem.vue +1 -2
  88. package/src/components/HomepageStats/HomepageStats.stories.js +10 -10
  89. package/src/components/HomepageStats/HomepageStats.vue +8 -8
  90. package/src/components/HomepageTeaserBlock/HomepageTeaserBlock.stories.js +11 -18
  91. package/src/components/HomepageTeaserBlock/HomepageTeaserBlock.vue +20 -14
  92. package/src/components/HomepageTeaserBlock/HomepageTeaserBlockCardImage.vue +1 -1
  93. package/src/components/MissionDetailAbout/MissionDetailAbout.stories.js +1 -8
  94. package/src/components/MissionDetailHero/MissionDetailHero.stories.js +11 -11
  95. package/src/components/MissionDetailHighlights/MissionDetailHighlights.stories.js +6 -6
  96. package/src/components/MixinCarousel/MixinCarousel.docs.mdx +1 -1
  97. package/src/components/NavDesktop/NavDesktop.stories.js +1 -4
  98. package/src/components/NavDesktopEdu/NavDesktopEdu.stories.js +2 -1
  99. package/src/components/NavDesktopEdu/NavDesktopEdu.vue +0 -26
  100. package/src/components/NavMobile/NavMobileEdu.stories.js +2 -1
  101. package/src/components/NavSecondary/NavSecondary.vue +1 -1
  102. package/src/components/RoboticsDetailStats/RoboticsDetailStats.stories.js +1 -1
  103. package/src/components/TimelineDialog/TimelineDialog.stories.js +47 -0
  104. package/src/components/TimelineDialog/TimelineDialog.stories.mdx +26 -0
  105. package/src/components/TimelineDialog/TimelineDialog.vue +145 -0
  106. package/src/components/TopicDetailMissionSpotlight/TopicDetailMissionSpotlight.stories.js +1 -9
  107. package/src/components/TopicDetailStreamfield/TopicDetailStreamfield.stories.js +1 -8
  108. package/src/docs/utils/ComponentItem.jsx +0 -1
  109. package/src/store/curatedGallery.ts +23 -0
  110. package/src/store/search.ts +43 -0
  111. package/src/templates/PageAudioDetail/PageAudioDetail.stories.js +106 -0
  112. package/src/templates/PageAudioDetail/PageAudioDetail.vue +375 -0
  113. package/src/templates/PageContent/PageContent.stories.js +2 -1
  114. package/src/templates/PageEventDetail/PageEventDetail.stories.js +1 -1
  115. package/src/templates/PageImageDetail/PageImageDetail.stories.js +116 -0
  116. package/src/templates/PageImageDetail/PageImageDetail.vue +444 -0
  117. package/src/templates/PageNewsDetail/PageNewsDetail.stories.js +3 -2
  118. package/src/templates/PageNewsDetail/PageNewsDetail.vue +1 -1
  119. package/src/templates/PageVideoDetail/PageVideoDetail.stories.js +84 -0
  120. package/src/templates/PageVideoDetail/PageVideoDetail.vue +173 -0
  121. package/src/templates/edu/PageContentEdu.stories.js +1 -0
  122. package/src/templates/edu/{PageEduNewsDetail.stories.js → PageEduNewsDetail/PageEduNewsDetail.stories.js} +5 -3
  123. package/src/templates/edu/{PageEduNewsDetail.vue → PageEduNewsDetail/PageEduNewsDetail.vue} +3 -2
  124. package/src/templates/www/PageAsteroidWatchContent/PageAsteroidWatchContent.stories.js +54 -0
  125. package/src/templates/www/PageAsteroidWatchContent/PageAsteroidWatchContent.vue +79 -0
  126. package/src/templates/www/PageAsteroidWatchIndex/PageAsteroidWatchIndex.stories.js +34 -0
  127. package/src/templates/www/PageAsteroidWatchIndex/PageAsteroidWatchIndex.vue +56 -0
  128. package/src/templates/www/PageCuratedGallery/PageCuratedGallery.stories.js +110 -0
  129. package/src/templates/www/PageCuratedGallery/PageCuratedGallery.vue +345 -0
  130. package/src/templates/www/PageGoDirectory/PageGoDirectory.stories.js +61 -0
  131. package/src/templates/www/PageGoDirectory/PageGoDirectory.vue +76 -0
  132. package/src/templates/www/PageHomepage/PageHomepage.stories.js +101 -0
  133. package/src/templates/www/PageHomepage/PageHomepage.vue +136 -0
  134. package/src/templates/www/PageInfographicDetail/PageInfographicDetail.stories.js +46 -0
  135. package/src/templates/www/PageInfographicDetail/PageInfographicDetail.vue +125 -0
  136. package/src/templates/www/PageMaintenanceMode/PageMaintenanceMode.stories.js +14 -0
  137. package/src/templates/www/PageMaintenanceMode/PageMaintenanceMode.vue +94 -0
  138. package/src/templates/www/PageMissionDetail/PageMissionDetail.stories.js +246 -0
  139. package/src/templates/www/PageMissionDetail/PageMissionDetail.vue +136 -0
  140. package/src/templates/www/PagePodcast/PagePodcast.stories.js +86 -0
  141. package/src/templates/www/PagePodcast/PagePodcast.vue +219 -0
  142. package/src/templates/www/PagePodcastSeason/PagePodcastSeason.stories.js +96 -0
  143. package/src/templates/www/PagePodcastSeason/PagePodcastSeason.vue +191 -0
  144. package/src/templates/www/PagePressKitIndex/PagePressKitIndex.stories.js +72 -0
  145. package/src/templates/www/PagePressKitIndex/PagePressKitIndex.vue +76 -0
  146. package/src/templates/www/PageProfileDetail/PageProfileDetail.stories.js +76 -0
  147. package/src/templates/www/PageProfileDetail/PageProfileDetail.vue +178 -0
  148. package/src/templates/www/PageRoboticsDetail/PageRoboticsDetail.stories.js +43 -0
  149. package/src/templates/www/PageRoboticsDetail/PageRoboticsDetail.vue +101 -0
  150. package/src/templates/www/PageTimeline/BlockMilestone.vue +99 -0
  151. package/src/templates/www/PageTimeline/PageTimeline.stories.js +357 -0
  152. package/src/templates/www/PageTimeline/PageTimeline.vue +384 -0
  153. package/src/templates/www/PageTopicDetail/PageTopicDetail.stories.js +87 -0
  154. package/src/templates/www/PageTopicDetail/PageTopicDetail.vue +121 -0
  155. package/src/utils/mixins.ts +1 -1
  156. package/components.d.ts +0 -217
  157. package/src/templates/www/HomePage/HomePage.vue +0 -30
  158. /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
- viewMode: 'canvas'
20
+ layout: 'fullscreen'
20
21
  },
21
22
  excludeStories: /.*(Data)$/
22
23
  }
@@ -10,7 +10,7 @@ export default {
10
10
  html: {
11
11
  root: '#storyDecorator'
12
12
  },
13
- viewMode: 'canvas'
13
+ layout: 'fullscreen'
14
14
  },
15
15
  excludeStories: /.*Data$/
16
16
  }
@@ -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
+ }