@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.
Files changed (156) 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/NavMobile/NavMobileEdu.stories.js +2 -1
  100. package/src/components/RoboticsDetailStats/RoboticsDetailStats.stories.js +1 -1
  101. package/src/components/TimelineDialog/TimelineDialog.stories.js +47 -0
  102. package/src/components/TimelineDialog/TimelineDialog.stories.mdx +26 -0
  103. package/src/components/TimelineDialog/TimelineDialog.vue +145 -0
  104. package/src/components/TopicDetailMissionSpotlight/TopicDetailMissionSpotlight.stories.js +1 -9
  105. package/src/components/TopicDetailStreamfield/TopicDetailStreamfield.stories.js +1 -8
  106. package/src/docs/utils/ComponentItem.jsx +0 -1
  107. package/src/store/curatedGallery.ts +23 -0
  108. package/src/store/search.ts +43 -0
  109. package/src/templates/PageAudioDetail/PageAudioDetail.stories.js +106 -0
  110. package/src/templates/PageAudioDetail/PageAudioDetail.vue +375 -0
  111. package/src/templates/PageContent/PageContent.stories.js +2 -1
  112. package/src/templates/PageEventDetail/PageEventDetail.stories.js +1 -1
  113. package/src/templates/PageImageDetail/PageImageDetail.stories.js +116 -0
  114. package/src/templates/PageImageDetail/PageImageDetail.vue +444 -0
  115. package/src/templates/PageNewsDetail/PageNewsDetail.stories.js +3 -2
  116. package/src/templates/PageNewsDetail/PageNewsDetail.vue +1 -1
  117. package/src/templates/PageVideoDetail/PageVideoDetail.stories.js +84 -0
  118. package/src/templates/PageVideoDetail/PageVideoDetail.vue +173 -0
  119. package/src/templates/edu/PageContentEdu.stories.js +1 -0
  120. package/src/templates/edu/{PageEduNewsDetail.stories.js → PageEduNewsDetail/PageEduNewsDetail.stories.js} +5 -3
  121. package/src/templates/edu/{PageEduNewsDetail.vue → PageEduNewsDetail/PageEduNewsDetail.vue} +3 -2
  122. package/src/templates/www/PageAsteroidWatchContent/PageAsteroidWatchContent.stories.js +54 -0
  123. package/src/templates/www/PageAsteroidWatchContent/PageAsteroidWatchContent.vue +79 -0
  124. package/src/templates/www/PageAsteroidWatchIndex/PageAsteroidWatchIndex.stories.js +34 -0
  125. package/src/templates/www/PageAsteroidWatchIndex/PageAsteroidWatchIndex.vue +56 -0
  126. package/src/templates/www/PageCuratedGallery/PageCuratedGallery.stories.js +110 -0
  127. package/src/templates/www/PageCuratedGallery/PageCuratedGallery.vue +345 -0
  128. package/src/templates/www/PageGoDirectory/PageGoDirectory.stories.js +61 -0
  129. package/src/templates/www/PageGoDirectory/PageGoDirectory.vue +76 -0
  130. package/src/templates/www/PageHomepage/PageHomepage.stories.js +101 -0
  131. package/src/templates/www/PageHomepage/PageHomepage.vue +136 -0
  132. package/src/templates/www/PageInfographicDetail/PageInfographicDetail.stories.js +46 -0
  133. package/src/templates/www/PageInfographicDetail/PageInfographicDetail.vue +125 -0
  134. package/src/templates/www/PageMaintenanceMode/PageMaintenanceMode.stories.js +14 -0
  135. package/src/templates/www/PageMaintenanceMode/PageMaintenanceMode.vue +94 -0
  136. package/src/templates/www/PageMissionDetail/PageMissionDetail.stories.js +246 -0
  137. package/src/templates/www/PageMissionDetail/PageMissionDetail.vue +136 -0
  138. package/src/templates/www/PagePodcast/PagePodcast.stories.js +86 -0
  139. package/src/templates/www/PagePodcast/PagePodcast.vue +219 -0
  140. package/src/templates/www/PagePodcastSeason/PagePodcastSeason.stories.js +96 -0
  141. package/src/templates/www/PagePodcastSeason/PagePodcastSeason.vue +191 -0
  142. package/src/templates/www/PagePressKitIndex/PagePressKitIndex.stories.js +72 -0
  143. package/src/templates/www/PagePressKitIndex/PagePressKitIndex.vue +76 -0
  144. package/src/templates/www/PageProfileDetail/PageProfileDetail.stories.js +76 -0
  145. package/src/templates/www/PageProfileDetail/PageProfileDetail.vue +178 -0
  146. package/src/templates/www/PageRoboticsDetail/PageRoboticsDetail.stories.js +43 -0
  147. package/src/templates/www/PageRoboticsDetail/PageRoboticsDetail.vue +101 -0
  148. package/src/templates/www/PageTimeline/BlockMilestone.vue +99 -0
  149. package/src/templates/www/PageTimeline/PageTimeline.stories.js +357 -0
  150. package/src/templates/www/PageTimeline/PageTimeline.vue +384 -0
  151. package/src/templates/www/PageTopicDetail/PageTopicDetail.stories.js +87 -0
  152. package/src/templates/www/PageTopicDetail/PageTopicDetail.vue +121 -0
  153. package/src/utils/mixins.ts +1 -1
  154. package/components.d.ts +0 -217
  155. package/src/templates/www/HomePage/HomePage.vue +0 -30
  156. /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>
@@ -4,6 +4,7 @@ import PageContent from './../PageContent/PageContent.vue'
4
4
  export default {
5
5
  title: 'Templates/EDU/PageContent',
6
6
  component: PageContent,
7
+ tags: ['!autodocs'],
7
8
  decorators: [
8
9
  () => ({
9
10
  template: `<div id="storyDecorator" class="ThemeEdu"><story/></div>`
@@ -1,16 +1,18 @@
1
- import { HeroMediaData } from './../../components/HeroMedia/HeroMedia.stories'
2
- import { BlockStreamfieldData } from './../../components/BlockStreamfield/BlockStreamfield.stories'
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
- ...BlockStreamfieldData
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 '../../components/BlockStreamfield/BlockStreamfield.vue'
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 './../../interfaces'
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
+ }