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