@explorer-1/vue 0.1.4 → 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/NavMobile/NavMobileEdu.stories.js +2 -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,173 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
v-if="data"
|
|
4
|
+
class="PageVideoDetail 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 || data.body"
|
|
26
|
+
itemprop="description"
|
|
27
|
+
:content="data.summary || data.body"
|
|
28
|
+
/>
|
|
29
|
+
<div class="lg:container 3xl:px-0 lg:mt-12 px-5 mx-auto mt-5">
|
|
30
|
+
<DetailHeadline
|
|
31
|
+
v-if="data.title"
|
|
32
|
+
:title="data.title"
|
|
33
|
+
:publication-date="data.publicationDate"
|
|
34
|
+
:label="data.topicLabel"
|
|
35
|
+
schema
|
|
36
|
+
/>
|
|
37
|
+
</div>
|
|
38
|
+
<div
|
|
39
|
+
v-if="data.block.length"
|
|
40
|
+
class="max-w-screen-2xl lg:mb-24 mx-auto mt-10 mb-8"
|
|
41
|
+
>
|
|
42
|
+
<div
|
|
43
|
+
v-for="(block, index) in data.block"
|
|
44
|
+
:key="index"
|
|
45
|
+
>
|
|
46
|
+
<BlockVideoEmbed :data="block" />
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
<div
|
|
50
|
+
v-else-if="data.uploadedMedia"
|
|
51
|
+
class="max-w-screen-2xl lg:mb-24 mx-auto mt-10 mb-8"
|
|
52
|
+
>
|
|
53
|
+
<BaseVideo
|
|
54
|
+
:data="data.uploadedMedia"
|
|
55
|
+
schema
|
|
56
|
+
/>
|
|
57
|
+
</div>
|
|
58
|
+
<LayoutHelper indent="col-2">
|
|
59
|
+
<div class="lg:grid grid-cols-10">
|
|
60
|
+
<div
|
|
61
|
+
v-if="data.body"
|
|
62
|
+
class="col-span-7"
|
|
63
|
+
>
|
|
64
|
+
<BlockText :text="data.body" />
|
|
65
|
+
<hr class="border-gray-light-mid lg:my-8 my-5" />
|
|
66
|
+
<div
|
|
67
|
+
v-if="data.transcript"
|
|
68
|
+
class="col-span-7 my-5"
|
|
69
|
+
>
|
|
70
|
+
<BaseHeading
|
|
71
|
+
level="h2"
|
|
72
|
+
class="mb-5"
|
|
73
|
+
>Transcript</BaseHeading
|
|
74
|
+
>
|
|
75
|
+
<BlockText
|
|
76
|
+
:text="data.transcript"
|
|
77
|
+
variant="medium"
|
|
78
|
+
class="video-transcript"
|
|
79
|
+
itemprop="transcript"
|
|
80
|
+
/>
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
|
|
84
|
+
<aside class="video-aside col-start-9 col-end-11">
|
|
85
|
+
<div class="lg:pt-0 lg:mb-12 pt-8">
|
|
86
|
+
<div class="lg:w-auto w-full">
|
|
87
|
+
<BaseButton
|
|
88
|
+
v-if="data.uploadedMedia && data.uploadedMedia.file"
|
|
89
|
+
:href="data.uploadedMedia.file"
|
|
90
|
+
class="w-full mb-5"
|
|
91
|
+
variant="primary"
|
|
92
|
+
compact
|
|
93
|
+
>Download {{ data.uploadedMedia.fileExtension || 'Video' }}</BaseButton
|
|
94
|
+
>
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
</aside>
|
|
98
|
+
</div>
|
|
99
|
+
</LayoutHelper>
|
|
100
|
+
<div
|
|
101
|
+
v-if="data.relatedPages && data.relatedPages.length"
|
|
102
|
+
class="bg-gray-light lg:py-24 lg:mt-24 py-12 mt-12"
|
|
103
|
+
>
|
|
104
|
+
<BlockLinkCarousel
|
|
105
|
+
item-type="tiles"
|
|
106
|
+
heading="Related Pages"
|
|
107
|
+
:items="data.relatedPages"
|
|
108
|
+
/>
|
|
109
|
+
</div>
|
|
110
|
+
</div>
|
|
111
|
+
</template>
|
|
112
|
+
<script lang="ts">
|
|
113
|
+
import { defineComponent } from 'vue'
|
|
114
|
+
import LayoutHelper from './../../components/LayoutHelper/LayoutHelper.vue'
|
|
115
|
+
import DetailHeadline from './../../components/DetailHeadline/DetailHeadline.vue'
|
|
116
|
+
import BaseButton from './../../components/BaseButton/BaseButton.vue'
|
|
117
|
+
import BlockText from './../../components/BlockText/BlockText.vue'
|
|
118
|
+
import BaseVideo from './../../components/BaseVideo/BaseVideo.vue'
|
|
119
|
+
import BlockVideoEmbed from './../../components/BlockVideoEmbed/BlockVideoEmbed.vue'
|
|
120
|
+
import BlockLinkCarousel from './../../components/BlockLinkCarousel/BlockLinkCarousel.vue'
|
|
121
|
+
import BaseHeading from './../../components/BaseHeading/BaseHeading.vue'
|
|
122
|
+
|
|
123
|
+
export default defineComponent({
|
|
124
|
+
name: 'PageVideoDetail',
|
|
125
|
+
components: {
|
|
126
|
+
LayoutHelper,
|
|
127
|
+
DetailHeadline,
|
|
128
|
+
BlockText,
|
|
129
|
+
BaseButton,
|
|
130
|
+
BaseVideo,
|
|
131
|
+
BlockVideoEmbed,
|
|
132
|
+
BlockLinkCarousel,
|
|
133
|
+
BaseHeading
|
|
134
|
+
},
|
|
135
|
+
props: {
|
|
136
|
+
data: {
|
|
137
|
+
type: Object,
|
|
138
|
+
required: false
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
data() {
|
|
142
|
+
return {
|
|
143
|
+
openTab: 1
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
})
|
|
147
|
+
</script>
|
|
148
|
+
|
|
149
|
+
<style lang="scss">
|
|
150
|
+
.PageVideoDetail {
|
|
151
|
+
.BaseImagePlaceholder {
|
|
152
|
+
@apply select-none;
|
|
153
|
+
|
|
154
|
+
min-height: 400px;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.video-aside {
|
|
158
|
+
.BaseButton {
|
|
159
|
+
max-width: 200px;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
.BlockText {
|
|
163
|
+
@apply text-lg;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.video-transcript {
|
|
168
|
+
p {
|
|
169
|
+
@apply mb-4;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
</style>
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import { HeroMediaData } from '
|
|
2
|
-
import {
|
|
1
|
+
import { HeroMediaData } from './../../../components/HeroMedia/HeroMedia.stories'
|
|
2
|
+
import { BlockStreamfieldTruncatedData } from './../../../components/BlockStreamfield/BlockStreamfield.stories'
|
|
3
3
|
import PageEduNewsDetail from './PageEduNewsDetail.vue'
|
|
4
4
|
|
|
5
5
|
export default {
|
|
6
6
|
title: 'Templates/EDU/PageEduNewsDetail',
|
|
7
7
|
component: PageEduNewsDetail,
|
|
8
|
+
tags: ['!autodocs'],
|
|
8
9
|
decorators: [
|
|
9
10
|
() => ({
|
|
10
11
|
template: `<div id="storyDecorator" class="disable-nav-offset"><story/></div>`
|
|
11
12
|
})
|
|
12
13
|
],
|
|
13
14
|
parameters: {
|
|
15
|
+
layout: 'fullscreen',
|
|
14
16
|
html: {
|
|
15
17
|
root: '#storyDecorator'
|
|
16
18
|
},
|
|
@@ -45,7 +47,7 @@ export const BaseStory = {
|
|
|
45
47
|
heroPosition: 'full_bleed',
|
|
46
48
|
heroImage: HeroMediaData.image,
|
|
47
49
|
heroImageInline: HeroMediaData.imageInline,
|
|
48
|
-
...
|
|
50
|
+
...BlockStreamfieldTruncatedData
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
53
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { computed } from 'vue'
|
|
3
3
|
import isEmpty from 'lodash/isEmpty.js'
|
|
4
|
-
import type { StreamfieldBlockData } from '
|
|
4
|
+
import type { StreamfieldBlockData } from './../../../components/BlockStreamfield/BlockStreamfield.vue'
|
|
5
5
|
import type {
|
|
6
6
|
ImageObject,
|
|
7
7
|
PageResponseObject,
|
|
8
8
|
RelatedLinkObject,
|
|
9
9
|
Topic,
|
|
10
10
|
ThumbnailObject
|
|
11
|
-
} from '
|
|
11
|
+
} from './../../../interfaces'
|
|
12
12
|
import HeroMedia from '@explorer-1/vue/src/components/HeroMedia/HeroMedia.vue'
|
|
13
13
|
import LayoutHelper from '@explorer-1/vue/src/components/LayoutHelper/LayoutHelper.vue'
|
|
14
14
|
import DetailHeadline from '@explorer-1/vue/src/components/DetailHeadline/DetailHeadline.vue'
|
|
@@ -18,6 +18,7 @@ import BlockText from '@explorer-1/vue/src/components/BlockText/BlockText.vue'
|
|
|
18
18
|
import BlockStreamfield from '@explorer-1/vue/src/components/BlockStreamfield/BlockStreamfield.vue'
|
|
19
19
|
|
|
20
20
|
interface PageEduNewsDetailObject extends PageResponseObject {
|
|
21
|
+
url: string
|
|
21
22
|
heroImage: ImageObject
|
|
22
23
|
thumbnailImage: ThumbnailObject
|
|
23
24
|
heroPosition: string
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { HeroMediaData } from './../../../components/HeroMedia/HeroMedia.stories'
|
|
2
|
+
import { AsteroidWatchWidgetData } from './../../../components/AsteroidWatchWidget/AsteroidWatchWidget.stories'
|
|
3
|
+
import PageAsteroidWatchContent from './PageAsteroidWatchContent.vue'
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
title: 'Templates/WWW/PageAsteroidWatchContent',
|
|
7
|
+
component: PageAsteroidWatchContent,
|
|
8
|
+
decorators: [
|
|
9
|
+
() => ({
|
|
10
|
+
template: `<div id="storyDecorator" class="disable-nav-offset"><story/></div>`
|
|
11
|
+
})
|
|
12
|
+
],
|
|
13
|
+
tags: ['!autodocs'],
|
|
14
|
+
parameters: {
|
|
15
|
+
layout: 'fullscreen',
|
|
16
|
+
html: {
|
|
17
|
+
root: '#storyDecorator'
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
excludeStories: /.*(Data)$/
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// data
|
|
24
|
+
export const PageAsteroidWatchContentData = {
|
|
25
|
+
url: '/asteroid-watch/next-five-approaches',
|
|
26
|
+
slug: 'next-five-approaches',
|
|
27
|
+
breadcrumb:
|
|
28
|
+
'[{"path": "/parent/", "title": "Overview"}, {"path": "/parent/placeholder-1/", "title": "Sibling Item 1"}, {"path": "/parent/placeholder-2/", "title": "Sibling Item 2"}, {"path": "/parent/placeholder-3/", "title": "Sibling Item 3"}]',
|
|
29
|
+
title: 'Next Five approaches',
|
|
30
|
+
label: 'Asteroid Watch',
|
|
31
|
+
heroImage: HeroMediaData.image,
|
|
32
|
+
nextCloseApproaches: AsteroidWatchWidgetData.nextCloseApproaches,
|
|
33
|
+
body: [
|
|
34
|
+
{
|
|
35
|
+
blockType: 'RichTextBlock',
|
|
36
|
+
value: `<p>The Asteroid Watch dashboard tracks asteroids and comets that will make relatively close approaches to Earth. The dashboard displays the date of closest approach, approximate object diameter, relative size and distance from Earth for each encounter. The object's name is displayed by hovering over its encounter date. Clicking on the encounter date will display a Web page with details about that object.</p>`
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// template
|
|
42
|
+
const PageAsteroidWatchContentTemplate = (args) => ({
|
|
43
|
+
props: Object.keys(args),
|
|
44
|
+
components: { PageAsteroidWatchContent },
|
|
45
|
+
template: `<PageAsteroidWatchContent :data="contentPage"/>`
|
|
46
|
+
})
|
|
47
|
+
|
|
48
|
+
// stories
|
|
49
|
+
export const BaseStory = {
|
|
50
|
+
name: 'PageAsteroidWatchContent',
|
|
51
|
+
args: {
|
|
52
|
+
data: PageAsteroidWatchContentData
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
v-if="data"
|
|
4
|
+
class="ThemeVariantLight"
|
|
5
|
+
:class="{ '-nav-offset': data.heroImage }"
|
|
6
|
+
>
|
|
7
|
+
<HeroMedia
|
|
8
|
+
v-if="data.heroImage"
|
|
9
|
+
class="md:mb-0 mb-10"
|
|
10
|
+
:image="data.heroImage"
|
|
11
|
+
:caption="data.heroImageCaption"
|
|
12
|
+
:display-caption="!data.heroImageCaption ? false : true"
|
|
13
|
+
/>
|
|
14
|
+
|
|
15
|
+
<!-- secondary nav -->
|
|
16
|
+
<NavSecondary
|
|
17
|
+
:breadcrumb="data.breadcrumb"
|
|
18
|
+
:has-intro="data.heroImage ? true : false"
|
|
19
|
+
/>
|
|
20
|
+
|
|
21
|
+
<!-- page headline -->
|
|
22
|
+
<LayoutHelper
|
|
23
|
+
indent="col-2"
|
|
24
|
+
class="md:my-12 lg:my-18 my-10"
|
|
25
|
+
>
|
|
26
|
+
<DetailHeadline
|
|
27
|
+
:title="data.title"
|
|
28
|
+
:label="data.displayLabel"
|
|
29
|
+
/>
|
|
30
|
+
</LayoutHelper>
|
|
31
|
+
|
|
32
|
+
<template v-if="data.slug === 'next-five-approaches'">
|
|
33
|
+
<AsteroidWatchWidget class="lg:mb-18 mb-10" />
|
|
34
|
+
</template>
|
|
35
|
+
|
|
36
|
+
<!-- share buttons -->
|
|
37
|
+
<LayoutHelper
|
|
38
|
+
indent="col-2"
|
|
39
|
+
class="lg:mb-0 relative mb-8"
|
|
40
|
+
>
|
|
41
|
+
<ShareButtons
|
|
42
|
+
:title="data.title"
|
|
43
|
+
:url="data.url"
|
|
44
|
+
/>
|
|
45
|
+
</LayoutHelper>
|
|
46
|
+
|
|
47
|
+
<!-- Body Streamfield -->
|
|
48
|
+
<BlockStreamfield :data="data.body" />
|
|
49
|
+
</div>
|
|
50
|
+
</template>
|
|
51
|
+
<script>
|
|
52
|
+
import { defineComponent } from 'vue'
|
|
53
|
+
import NavSecondary from './../../../components/NavSecondary/NavSecondary.vue'
|
|
54
|
+
import LayoutHelper from './../../../components/LayoutHelper/LayoutHelper.vue'
|
|
55
|
+
import DetailHeadline from './../../../components/DetailHeadline/DetailHeadline.vue'
|
|
56
|
+
import HeroMedia from './../../../components/HeroMedia/HeroMedia.vue'
|
|
57
|
+
import ShareButtons from './../../../components/ShareButtons/ShareButtons.vue'
|
|
58
|
+
import BlockStreamfield from './../../../components/BlockStreamfield/BlockStreamfield.vue'
|
|
59
|
+
import AsteroidWatchWidget from './../../../components/AsteroidWatchWidget/AsteroidWatchWidget.vue'
|
|
60
|
+
|
|
61
|
+
export default defineComponent({
|
|
62
|
+
name: 'PageAsteroidWatchContent',
|
|
63
|
+
components: {
|
|
64
|
+
NavSecondary,
|
|
65
|
+
LayoutHelper,
|
|
66
|
+
HeroMedia,
|
|
67
|
+
ShareButtons,
|
|
68
|
+
BlockStreamfield,
|
|
69
|
+
DetailHeadline,
|
|
70
|
+
AsteroidWatchWidget
|
|
71
|
+
},
|
|
72
|
+
props: {
|
|
73
|
+
data: {
|
|
74
|
+
type: Object,
|
|
75
|
+
required: false
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
})
|
|
79
|
+
</script>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { HeroLargeData } from './../../../components/HeroLarge/HeroLarge.stories.js'
|
|
2
|
+
import { BlockStreamfieldData } from './../../../components/BlockStreamfield/BlockStreamfield.stories'
|
|
3
|
+
import { BlockLinkCardCarouselData } from './../../../components/BlockLinkCarousel/BlockLinkCarousel.stories.js'
|
|
4
|
+
import PageAsteroidWatchIndex from './PageAsteroidWatchIndex.vue'
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
title: 'Templates/WWW/PageAsteroidWatchIndex',
|
|
8
|
+
component: PageAsteroidWatchIndex,
|
|
9
|
+
tags: ['!autodocs'],
|
|
10
|
+
decorators: [
|
|
11
|
+
() => ({
|
|
12
|
+
template: `<div id="storyDecorator" class="disable-nav-offset"><story/></div>`
|
|
13
|
+
})
|
|
14
|
+
],
|
|
15
|
+
parameters: {
|
|
16
|
+
layout: 'fullscreen',
|
|
17
|
+
html: {
|
|
18
|
+
root: '#storyDecorator'
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
excludeStories: /.*(Data)$/
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export const BaseStory = {
|
|
25
|
+
name: 'PageAsteroidWatchIndex',
|
|
26
|
+
args: {
|
|
27
|
+
data: {
|
|
28
|
+
...HeroLargeData,
|
|
29
|
+
title: 'Asteroid Watch',
|
|
30
|
+
body: BlockStreamfieldData.body,
|
|
31
|
+
latestAsteroidNews: BlockLinkCardCarouselData
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
v-if="data"
|
|
4
|
+
class="-nav-offset"
|
|
5
|
+
>
|
|
6
|
+
<HeroLarge
|
|
7
|
+
:title="data.title"
|
|
8
|
+
:image="data.heroImage"
|
|
9
|
+
has-overlay
|
|
10
|
+
/>
|
|
11
|
+
|
|
12
|
+
<!-- secondary nav -->
|
|
13
|
+
<NavSecondary
|
|
14
|
+
:breadcrumb="data.breadcrumb"
|
|
15
|
+
class="z-30"
|
|
16
|
+
has-intro
|
|
17
|
+
/>
|
|
18
|
+
|
|
19
|
+
<!-- Body Streamfield -->
|
|
20
|
+
<BlockStreamfield
|
|
21
|
+
class="lg:mt-24 mt-18"
|
|
22
|
+
:data="data.body"
|
|
23
|
+
/>
|
|
24
|
+
|
|
25
|
+
<!-- Related News -->
|
|
26
|
+
<BlockLinkCarousel
|
|
27
|
+
item-type="cards"
|
|
28
|
+
class="lg:my-24 my-12"
|
|
29
|
+
heading="Latest News"
|
|
30
|
+
:items="data.latestAsteroidNews"
|
|
31
|
+
/>
|
|
32
|
+
</div>
|
|
33
|
+
</template>
|
|
34
|
+
<script lang="ts">
|
|
35
|
+
import { defineComponent } from 'vue'
|
|
36
|
+
import NavSecondary from './../../../components/NavSecondary/NavSecondary.vue'
|
|
37
|
+
import HeroLarge from './../../../components/HeroLarge/HeroLarge.vue'
|
|
38
|
+
import BlockStreamfield from './../../../components/BlockStreamfield/BlockStreamfield.vue'
|
|
39
|
+
import BlockLinkCarousel from './../../../components/BlockLinkCarousel/BlockLinkCarousel.vue'
|
|
40
|
+
|
|
41
|
+
export default defineComponent({
|
|
42
|
+
name: 'PageAsteroidWatchIndex',
|
|
43
|
+
components: {
|
|
44
|
+
NavSecondary,
|
|
45
|
+
HeroLarge,
|
|
46
|
+
BlockStreamfield,
|
|
47
|
+
BlockLinkCarousel
|
|
48
|
+
},
|
|
49
|
+
props: {
|
|
50
|
+
data: {
|
|
51
|
+
type: Object,
|
|
52
|
+
required: false
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
})
|
|
56
|
+
</script>
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { BlockStreamfieldTruncatedData } from './../../../components/BlockStreamfield/BlockStreamfield.stories.js'
|
|
2
|
+
|
|
3
|
+
import PageCuratedGallery from './PageCuratedGallery.vue'
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
title: 'Templates/WWW/PageCuratedGallery',
|
|
7
|
+
component: PageCuratedGallery,
|
|
8
|
+
tags: ['!autodocs'],
|
|
9
|
+
excludeStories: /.*Data$/,
|
|
10
|
+
parameters: {
|
|
11
|
+
layout: 'fullscreen'
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// stories
|
|
16
|
+
export const BaseStory = {
|
|
17
|
+
name: 'PageCuratedGallery',
|
|
18
|
+
args: {
|
|
19
|
+
data: {
|
|
20
|
+
galleryItems: [
|
|
21
|
+
{
|
|
22
|
+
image: {
|
|
23
|
+
caption:
|
|
24
|
+
"NASA's Perseverance rover fires up its descent stage engines as it nears the Martian surface in this illustration.\n",
|
|
25
|
+
alt: 'alt text',
|
|
26
|
+
detailUrl: '/images/powered-descent-for-perseverance-illustration/',
|
|
27
|
+
src: {
|
|
28
|
+
url: 'https://d2pn8kiwq2w21t.cloudfront.net/images/grand_tour.width-1024.jpg',
|
|
29
|
+
width: '1024',
|
|
30
|
+
height: '1024'
|
|
31
|
+
},
|
|
32
|
+
width: '1024',
|
|
33
|
+
height: '1024'
|
|
34
|
+
},
|
|
35
|
+
title: 'Powered Descent for Perseverance (Illustration)'
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
image: {
|
|
39
|
+
caption:
|
|
40
|
+
"NASA's Perseverance rover deploys a supersonic parachute from its aeroshell as it slows down before landing, in this artist's illustration.\n",
|
|
41
|
+
alt: 'alt text',
|
|
42
|
+
detailUrl: '/images/perseverance-deploys-its-parachute-illustration/',
|
|
43
|
+
src: {
|
|
44
|
+
url: 'https://d2pn8kiwq2w21t.cloudfront.net/images/mars.width-1024.jpg',
|
|
45
|
+
width: '1024',
|
|
46
|
+
height: '1024'
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
title: 'Perseverance Deploys its Parachute (Illustration)'
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
image: {
|
|
53
|
+
caption:
|
|
54
|
+
"In this illustration of its descent to Mars, the spacecraft containing NASA's Perseverance rover slows down using the drag generated by its motion in the Martian atmosphere.\n",
|
|
55
|
+
alt: 'alt text',
|
|
56
|
+
detailUrl:
|
|
57
|
+
'/images/perseverance-rover-decelerates-in-the-martian-atmosphere-illustration/',
|
|
58
|
+
src: {
|
|
59
|
+
url: 'https://d2pn8kiwq2w21t.cloudfront.net/images/earth.width-1024.jpg',
|
|
60
|
+
width: '1024',
|
|
61
|
+
height: '1024'
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
title: 'Perseverance Rover Decelerates in the Martian Atmosphere (Illustration)'
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
image: {
|
|
68
|
+
caption:
|
|
69
|
+
"This illustration shows NASA's Mars 2020 spacecraft carrying the Perseverance rover as it approaches Mars. Hundreds of critical events must execute perfectly and exactly on time for the rover to land on Mars safely on Feb. 18, 2021.\n",
|
|
70
|
+
alt: 'alt text',
|
|
71
|
+
detailUrl: '/images/perseverance-rover-approaches-mars-illustration/',
|
|
72
|
+
src: {
|
|
73
|
+
url: 'https://d2pn8kiwq2w21t.cloudfront.net/images/venus.width-1024.jpg',
|
|
74
|
+
width: '1024',
|
|
75
|
+
height: '1024'
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
title: 'Perseverance Rover Approaches Mars (Illustration)'
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
image: {
|
|
82
|
+
caption:
|
|
83
|
+
"NASA's Terra spacecraft shows a strong eruptive episode began, starting December 13, 2020, at Mt. Etna's New SE summit crater.\n",
|
|
84
|
+
alt: 'alt text',
|
|
85
|
+
detailUrl: '/images/mt-etna-italy/',
|
|
86
|
+
src: {
|
|
87
|
+
url: 'https://d2pn8kiwq2w21t.cloudfront.net/images/ceres.width-1024.jpg',
|
|
88
|
+
width: '1024',
|
|
89
|
+
height: '1024'
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
title: 'Mt. Etna, Italy'
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
galleryType: 'poster',
|
|
96
|
+
id: '29',
|
|
97
|
+
label: 'Galleries',
|
|
98
|
+
firstPublishedAt: '',
|
|
99
|
+
relatedGalleries: [],
|
|
100
|
+
galleryAspectRatio: '2:3',
|
|
101
|
+
galleryObjectFit: 'cover',
|
|
102
|
+
galleryDownloadLink: '',
|
|
103
|
+
slug: 'visions-of-the-future',
|
|
104
|
+
title: 'Visions of the Future',
|
|
105
|
+
topicLabel: null,
|
|
106
|
+
url: '/visions-of-the-future/',
|
|
107
|
+
...BlockStreamfieldTruncatedData
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|