@explorer-1/vue 0.2.48 → 0.2.50

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@explorer-1/vue",
3
- "version": "0.2.48",
3
+ "version": "0.2.50",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -44,7 +44,7 @@
44
44
  <BaseButton
45
45
  v-if="theTeaserPage"
46
46
  variant="primary"
47
- :href="theTeaserPage.url"
47
+ :to="theTeaserPage.url"
48
48
  class="mt-8"
49
49
  :aria-label="`${theButtonText} - ${theHeading}`"
50
50
  >
@@ -4,7 +4,7 @@
4
4
  class="bg-star-pattern bg-black"
5
5
  >
6
6
  <section
7
- class="HomepageMissionsCarousel ThemeVariantDark max-w-screen-3xl mx-auto overflow-hidden text-white bg-black bg-stars"
7
+ class="HomepageMissionsCarousel ThemeVariantDark max-w-screen-3xl mx-auto overflow-hidden text-white bg-black bg-stars select-none"
8
8
  >
9
9
  <div class="lg:BaseGrid lg:py-24 pt-14 container flex flex-col pb-5 mx-auto">
10
10
  <div class="xl:px-0 lg:col-end-8 xl:col-end-7 order-1 col-start-2 px-4">
@@ -30,7 +30,7 @@
30
30
  </div>
31
31
  <div class="lg:order-2 xl:px-0 flex justify-end order-3 col-start-10 col-end-13 px-4">
32
32
  <BaseLink
33
- :to="{ name: 'missions' }"
33
+ to="/missions/"
34
34
  variant="primary"
35
35
  >
36
36
  {{ `All Missions` }}
@@ -1,9 +1,43 @@
1
+ <script lang="ts">
2
+ // HomepageMissionsCarouselItem.vue
3
+ /* Slide for the homepage missions carousel.
4
+ Links to the topic page if provided,
5
+ otherwise links to mission target as fallback.
6
+ */
7
+ import { defineComponent } from 'vue'
8
+ import BaseLink from './../BaseLink/BaseLink.vue'
9
+ import IconCaret from './../Icons/IconCaret.vue'
10
+
11
+ export default defineComponent({
12
+ name: 'HomepageMissionsCarouselItem',
13
+ components: {
14
+ BaseLink,
15
+ IconCaret
16
+ },
17
+ props: {
18
+ data: {
19
+ type: Object,
20
+ required: false,
21
+ default: undefined
22
+ }
23
+ },
24
+ computed: {
25
+ hasTopic(): boolean {
26
+ if (this.data && this.data.topic && this.data.topic.url) {
27
+ return true
28
+ }
29
+ return false
30
+ }
31
+ }
32
+ })
33
+ </script>
34
+
1
35
  <template>
2
36
  <BaseLink
3
37
  v-if="data"
4
38
  variant="none"
5
39
  :aria-label="hasTopic ? 'More about ' + data.topic.title : 'View ' + data.name + ' missions'"
6
- :to="hasTopic ? data.topic.url : { name: 'missions', query: { mission_target: data.name } }"
40
+ :to="hasTopic ? data.topic.url : '/missions/?mission_target=' + data.name"
7
41
  class="HomepageMissionsCarouselItem group flex h-full pb-1 text-white"
8
42
  link-class="flex flex-col w-full"
9
43
  >
@@ -50,37 +84,7 @@
50
84
  </div>
51
85
  </BaseLink>
52
86
  </template>
53
- <script lang="ts">
54
- /* Slide for the homepage missions carousel.
55
- Links to the topic page if provided,
56
- otherwise links to mission target as fallback.
57
- */
58
- import { defineComponent } from 'vue'
59
- import BaseLink from './../BaseLink/BaseLink.vue'
60
- import IconCaret from './../Icons/IconCaret.vue'
61
87
 
62
- export default defineComponent({
63
- name: 'HomepageMissionsCarouselItem',
64
- components: {
65
- BaseLink,
66
- IconCaret
67
- },
68
- props: {
69
- data: {
70
- type: Object,
71
- required: false
72
- }
73
- },
74
- computed: {
75
- hasTopic(): boolean {
76
- if (this.data && this.data.topic && this.data.topic.url) {
77
- return true
78
- }
79
- return false
80
- }
81
- }
82
- })
83
- </script>
84
88
  <style lang="scss">
85
89
  .HomepageMissionsCarouselItem {
86
90
  .text-wrapper {
@@ -159,10 +159,7 @@
159
159
  <BaseLink
160
160
  variant="none"
161
161
  link-class="font-primary text-jpl-red hover:text-jpl-red-light w-full py-3 text-lg"
162
- :to="{
163
- name: 'missions',
164
- query: { mission_target: item.target }
165
- }"
162
+ to="/missions/?mission_target={{ item.target }}"
166
163
  >
167
164
  {{ item.target }}
168
165
  </BaseLink>
@@ -76,8 +76,9 @@ const { data } = reactive(props)
76
76
  >
77
77
  <DetailHeadline
78
78
  :title="data.title"
79
- label="Slideshow"
79
+ label="Gallery"
80
80
  :publication-date="data.publicationDate"
81
+ pill-color="secondary"
81
82
  schema
82
83
  pill
83
84
  hide-date
@@ -265,6 +265,14 @@ export default defineComponent({
265
265
 
266
266
  <style lang="scss">
267
267
  .PageCuratedGallery {
268
+ // sharebuttons fix TODO: make better
269
+ @screen lg {
270
+ .ShareButtons {
271
+ transform: scale(0.75);
272
+ top: -1.8rem;
273
+ z-index: 999;
274
+ }
275
+ }
268
276
  .CuratedGallery-thumbnails,
269
277
  .CuratedGallery-carousel {
270
278
  @apply block;
@@ -1,3 +1,51 @@
1
+ <script lang="ts">
2
+ import { defineComponent } from 'vue'
3
+ import HomepageCarousel from './../../../components/HomepageCarousel/HomepageCarousel.vue'
4
+ import HomepageFeaturedRobot from './../../../components/HomepageFeaturedRobot/HomepageFeaturedRobot.vue'
5
+ import HomepageTeaserBlock from './../../../components/HomepageTeaserBlock/HomepageTeaserBlock.vue'
6
+ import BlockLinkCarousel from './../../../components/BlockLinkCarousel/BlockLinkCarousel.vue'
7
+ import BlockQuote from './../../../components/BlockQuote/BlockQuote.vue'
8
+ import LayoutHelper from './../../../components/LayoutHelper/LayoutHelper.vue'
9
+ import SwimlaneCTA from './../../../components/SwimlaneCTA/SwimlaneCTA.vue'
10
+ import HomepageMissionsCarousel from './../../../components/HomepageMissionsCarousel/HomepageMissionsCarousel.vue'
11
+ import HomepageStats from './../../../components/HomepageStats/HomepageStats.vue'
12
+ import HomepageEmbedBlock from './../../../components/HomepageEmbedBlock/HomepageEmbedBlock.vue'
13
+
14
+ export default defineComponent({
15
+ name: 'PageHomepage',
16
+ components: {
17
+ HomepageCarousel,
18
+ HomepageFeaturedRobot,
19
+ HomepageTeaserBlock,
20
+ BlockLinkCarousel,
21
+ BlockQuote,
22
+ LayoutHelper,
23
+ SwimlaneCTA,
24
+ HomepageMissionsCarousel,
25
+ HomepageStats,
26
+ HomepageEmbedBlock
27
+ },
28
+ props: {
29
+ data: {
30
+ type: Object,
31
+ required: false,
32
+ default: undefined
33
+ }
34
+ },
35
+ computed: {
36
+ theNews(): any[] | undefined {
37
+ // check first for featured news
38
+ if (this.data?.featuredNews?.length) {
39
+ return this.data.featuredNews
40
+ } else if (this.data?.latestNews?.length) {
41
+ return this.data.latestNews
42
+ }
43
+ return undefined
44
+ }
45
+ }
46
+ })
47
+ </script>
48
+
1
49
  <template>
2
50
  <div
3
51
  v-if="data"
@@ -59,18 +107,20 @@
59
107
  </template>
60
108
 
61
109
  <!-- mission carousel -->
62
- <HomepageMissionsCarousel
63
- v-if="data?.missionsCarousel?.targets?.length"
64
- :data="data.missionsCarousel"
65
- class="lg:my-18 my-10"
66
- />
110
+ <template v-if="data?.missionsCarousel && data?.missionsCarousel[0]?.targets?.length">
111
+ <HomepageMissionsCarousel
112
+ :data="data.missionsCarousel[0]"
113
+ class="lg:my-18 my-10"
114
+ />
115
+ </template>
67
116
 
68
117
  <!-- featured robot -->
69
- <HomepageFeaturedRobot
70
- v-if="data?.featuredRobots?.length"
71
- class="lg:my-24 my-12"
72
- :data="data.featuredRobots[0].page"
73
- />
118
+ <template v-if="data?.featuredRobots?.length">
119
+ <HomepageFeaturedRobot
120
+ class="lg:my-24 my-12"
121
+ :data="data.featuredRobots[0].page"
122
+ />
123
+ </template>
74
124
 
75
125
  <!-- engage -->
76
126
  <div
@@ -87,50 +137,3 @@
87
137
  <SwimlaneCTA />
88
138
  </div>
89
139
  </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>