@explorer-1/vue 0.2.36 → 0.2.37
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 +1 -1
- package/src/components/SearchFilterGroup/SearchFilterGroup.vue +4 -61
- package/src/components/SearchResultCard/SearchResultCard.vue +7 -7
- package/src/components/SearchResultGridItem/SearchResultGridItem.vue +2 -5
- package/src/constants.ts +181 -11
- package/src/utils/lookupContentType.ts +22 -0
package/package.json
CHANGED
|
@@ -63,6 +63,8 @@
|
|
|
63
63
|
<script lang="ts">
|
|
64
64
|
// @ts-nocheck
|
|
65
65
|
import isEqual from 'lodash/isEqual.js'
|
|
66
|
+
import { lookupContentType } from './../../utils/lookupContentType'
|
|
67
|
+
|
|
66
68
|
export default {
|
|
67
69
|
name: 'SearchFilterGroup',
|
|
68
70
|
props: {
|
|
@@ -154,67 +156,8 @@ export default {
|
|
|
154
156
|
}
|
|
155
157
|
},
|
|
156
158
|
prettyFilterNames(key) {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
}
|
|
160
|
-
if (key === 'home.HomePage') {
|
|
161
|
-
return 'Homepage'
|
|
162
|
-
}
|
|
163
|
-
if (key === 'missions.Mission') {
|
|
164
|
-
return 'Missions'
|
|
165
|
-
}
|
|
166
|
-
if (key === 'events.EventPage') {
|
|
167
|
-
return 'Events'
|
|
168
|
-
}
|
|
169
|
-
if (key === 'image_detail.ImageDetailPage') {
|
|
170
|
-
return 'Images'
|
|
171
|
-
}
|
|
172
|
-
if (key === 'audio_detail.AudioIndexPage') {
|
|
173
|
-
return 'Audio Index'
|
|
174
|
-
}
|
|
175
|
-
if (key === 'audio_detail.AudioDetailPage') {
|
|
176
|
-
return 'Audio'
|
|
177
|
-
}
|
|
178
|
-
if (key === 'infographics.InfographicsDetailPage') {
|
|
179
|
-
return 'Infographics'
|
|
180
|
-
}
|
|
181
|
-
if (key === 'image_detail.CuratedGalleryPage') {
|
|
182
|
-
return 'Curated Gallery'
|
|
183
|
-
}
|
|
184
|
-
if (key === 'topics.TopicPage') {
|
|
185
|
-
return 'Topics'
|
|
186
|
-
}
|
|
187
|
-
if (key === 'asteroid_watch.AsteroidWatchIndexPage') {
|
|
188
|
-
return 'Asteroid Watch Index'
|
|
189
|
-
}
|
|
190
|
-
if (key === 'asteroid_watch.AsteroidWatchContentPage') {
|
|
191
|
-
return 'Asteroid Watch'
|
|
192
|
-
}
|
|
193
|
-
if (key === 'missions.MissionsIndexPage') {
|
|
194
|
-
return 'Missions Index'
|
|
195
|
-
}
|
|
196
|
-
if (key === 'information_pages.ContentPage') {
|
|
197
|
-
return 'Information pages'
|
|
198
|
-
}
|
|
199
|
-
if (key === 'robotics.RobotPage') {
|
|
200
|
-
return 'Robots'
|
|
201
|
-
}
|
|
202
|
-
if (key === 'video_detail.VideoDetailPage') {
|
|
203
|
-
return 'Video'
|
|
204
|
-
}
|
|
205
|
-
if (key === 'podcasts.PodcastPage') {
|
|
206
|
-
return 'Podcasts'
|
|
207
|
-
}
|
|
208
|
-
if (key === 'go_pages.GoHomePage') {
|
|
209
|
-
return 'Go Sites'
|
|
210
|
-
}
|
|
211
|
-
if (key === 'press_kits.PressKitHomePage') {
|
|
212
|
-
return 'Press Kits'
|
|
213
|
-
}
|
|
214
|
-
if (key === 'profiles.ProfilePage') {
|
|
215
|
-
return 'People'
|
|
216
|
-
}
|
|
217
|
-
return key
|
|
159
|
+
const name = lookupContentType(key, 'model', 'label')
|
|
160
|
+
return name ? name : key
|
|
218
161
|
}
|
|
219
162
|
}
|
|
220
163
|
}
|
|
@@ -6,9 +6,7 @@
|
|
|
6
6
|
size="lg"
|
|
7
7
|
:data="{
|
|
8
8
|
page: {
|
|
9
|
-
__typename: pageContentType
|
|
10
|
-
? (searchContentTypeToPageType[pageContentType] as string)
|
|
11
|
-
: undefined,
|
|
9
|
+
__typename: pageContentType ? getInterfaceFromEskey(pageContentType) : undefined,
|
|
12
10
|
url,
|
|
13
11
|
type,
|
|
14
12
|
label: topic,
|
|
@@ -221,7 +219,7 @@ import BaseImage from './../BaseImage/BaseImage.vue'
|
|
|
221
219
|
import BaseImagePlaceholder from './../BaseImagePlaceholder/BaseImagePlaceholder.vue'
|
|
222
220
|
import EventCard from './../EventCard/EventCard.vue'
|
|
223
221
|
import BlockLinkCard from './../BlockLinkCard/BlockLinkCard.vue'
|
|
224
|
-
import {
|
|
222
|
+
import { lookupContentType } from '../../utils/lookupContentType'
|
|
225
223
|
import type { HeadingLevel } from './../BaseHeading/BaseHeading.vue'
|
|
226
224
|
|
|
227
225
|
export default defineComponent({
|
|
@@ -343,9 +341,11 @@ export default defineComponent({
|
|
|
343
341
|
}
|
|
344
342
|
},
|
|
345
343
|
computed: {
|
|
346
|
-
...mapStores(useThemeStore)
|
|
347
|
-
|
|
348
|
-
|
|
344
|
+
...mapStores(useThemeStore)
|
|
345
|
+
},
|
|
346
|
+
methods: {
|
|
347
|
+
getInterfaceFromEskey(key: string) {
|
|
348
|
+
return lookupContentType(key, 'eskey', 'interface')
|
|
349
349
|
}
|
|
350
350
|
}
|
|
351
351
|
})
|
|
@@ -98,7 +98,7 @@ import BaseImagePlaceholder from './../BaseImagePlaceholder/BaseImagePlaceholder
|
|
|
98
98
|
import BlockLinkCard from './../BlockLinkCard/BlockLinkCard.vue'
|
|
99
99
|
import BlockLinkTile from './../BlockLinkTile/BlockLinkTile.vue'
|
|
100
100
|
import CalendarChip from './../CalendarChip/CalendarChip.vue'
|
|
101
|
-
import {
|
|
101
|
+
import { lookupContentType } from '../../utils/lookupContentType'
|
|
102
102
|
import type { HeadingLevel } from './../BaseHeading/BaseHeading.vue'
|
|
103
103
|
|
|
104
104
|
export default defineComponent({
|
|
@@ -177,12 +177,9 @@ export default defineComponent({
|
|
|
177
177
|
},
|
|
178
178
|
computed: {
|
|
179
179
|
...mapStores(useThemeStore),
|
|
180
|
-
searchContentTypeToPageType() {
|
|
181
|
-
return searchContentTypeToPageType
|
|
182
|
-
},
|
|
183
180
|
typename() {
|
|
184
181
|
return this.pageContentType
|
|
185
|
-
? (this.
|
|
182
|
+
? lookupContentType(this.pageContentType, 'eskey', 'interface')
|
|
186
183
|
: undefined
|
|
187
184
|
}
|
|
188
185
|
}
|
package/src/constants.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PillDictionaryInterface } from './interfaces'
|
|
2
2
|
|
|
3
3
|
export const eduMetadataDictionary: PillDictionaryInterface = {
|
|
4
4
|
EDUEventPage: {
|
|
@@ -69,14 +69,184 @@ export const eduMetadataDictionary: PillDictionaryInterface = {
|
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
events_eventpage: 'EventPage',
|
|
76
|
-
missions_mission: 'Mission',
|
|
77
|
-
edu_events_edueventpage: 'EDUEventPage',
|
|
78
|
-
edu_resources_educollectionsdetailpage: 'EDUCollectionsDetailPage',
|
|
79
|
-
edu_resources_eduexplainerarticlepage: 'EDUExplainerArticlePage',
|
|
80
|
-
edu_resources_edulessonpage: 'EDULessonPage',
|
|
81
|
-
edu_resources_eduteachablemomentpage: 'EDUTeachableMomentPage'
|
|
72
|
+
interface contentTypeObject {
|
|
73
|
+
model: string
|
|
74
|
+
label: string
|
|
82
75
|
}
|
|
76
|
+
|
|
77
|
+
export const contentTypes: contentTypeObject[] = [
|
|
78
|
+
{
|
|
79
|
+
model: 'news.News',
|
|
80
|
+
label: 'News & Features'
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
model: 'home.HomePage',
|
|
84
|
+
label: 'Homepage'
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
model: 'missions.Mission',
|
|
88
|
+
label: 'Missions'
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
model: 'events.EventPage',
|
|
92
|
+
label: 'Events'
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
model: 'image_detail.ImageDetailPage',
|
|
96
|
+
label: 'Images'
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
model: 'audio_detail.AudioIndexPage',
|
|
100
|
+
label: 'Audio Index'
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
model: 'audio_detail.AudioDetailPage',
|
|
104
|
+
label: 'Audio'
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
model: 'infographics.InfographicsDetailPage',
|
|
108
|
+
label: 'Infographics'
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
model: 'image_detail.CuratedGalleryPage',
|
|
112
|
+
label: 'Curated Gallery'
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
model: 'topics.TopicPage',
|
|
116
|
+
label: 'Topics'
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
model: 'asteroid_watch.AsteroidWatchIndexPage',
|
|
120
|
+
label: 'Asteroid Watch Index'
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
model: 'asteroid_watch.AsteroidWatchContentPage',
|
|
124
|
+
label: 'Asteroid Watch'
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
model: 'missions.MissionsIndexPage',
|
|
128
|
+
label: 'Missions Index'
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
model: 'information_pages.ContentPage',
|
|
132
|
+
label: 'Information pages'
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
model: 'robotics.RobotPage',
|
|
136
|
+
label: 'Robots'
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
model: 'video_detail.VideoDetailPage',
|
|
140
|
+
label: 'Video'
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
model: 'podcasts.PodcastPage',
|
|
144
|
+
label: 'Podcasts'
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
model: 'go_pages.GoHomePage',
|
|
148
|
+
label: 'Go Sites'
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
model: 'press_kits.PressKitHomePage',
|
|
152
|
+
label: 'Press Kits'
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
model: 'profiles.ProfilePage',
|
|
156
|
+
label: 'People'
|
|
157
|
+
},
|
|
158
|
+
// EDU content types
|
|
159
|
+
{
|
|
160
|
+
model: 'edu_home.EDUHomePage',
|
|
161
|
+
label: 'Education Homepage'
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
model: 'edu_information_pages.EDUContentPage',
|
|
165
|
+
label: 'Information Pages'
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
model: 'edu_news.EDUNewsIndexPage',
|
|
169
|
+
label: 'News Index'
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
model: 'edu_events.EDUEventsIndexPage',
|
|
173
|
+
label: 'Events Index'
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
model: 'edu_events.EDUEventPage',
|
|
177
|
+
label: 'Events'
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
model: 'edu_news.EDUNewsPage',
|
|
181
|
+
label: 'News'
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
model: 'edu_resources.EDUExplainerArticlePage',
|
|
185
|
+
label: 'Explainer Articles'
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
model: 'edu_resources.EDUResourceLibraryIndexPage',
|
|
189
|
+
label: 'Resource Library Index'
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
model: 'edu_resources.EDULessonPage',
|
|
193
|
+
label: 'Lesson Plans'
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
model: 'edu_resources.EDUTeachableMomentPage',
|
|
197
|
+
label: 'Teachable Moments'
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
model: 'edu_resources.EDUCollectionsDetailPage',
|
|
201
|
+
label: 'Collections'
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
model: 'edu_resources.EDUGalleryDetailPage',
|
|
205
|
+
label: 'Galleries'
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
model: 'edu_resources.EDUImageDetailPage',
|
|
209
|
+
label: 'Images'
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
model: 'edu_resources.EDUInfographicDetailPage',
|
|
213
|
+
label: 'Infographics'
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
model: 'edu_resources.EDUDocumentDetailPage',
|
|
217
|
+
label: 'Documents'
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
model: 'edu_resources.EDUVideoDetailPage',
|
|
221
|
+
label: 'Videos'
|
|
222
|
+
}
|
|
223
|
+
]
|
|
224
|
+
|
|
225
|
+
interface contentAliasObject extends contentTypeObject {
|
|
226
|
+
interface?: string
|
|
227
|
+
eskey?: string
|
|
228
|
+
}
|
|
229
|
+
const getContentAliases = (): contentAliasObject[] => {
|
|
230
|
+
const getInterface = (contentType: contentTypeObject) => {
|
|
231
|
+
const model = contentType.model
|
|
232
|
+
return model ? model.split('.').pop() : undefined
|
|
233
|
+
}
|
|
234
|
+
const getEskey = (contentType: contentTypeObject) => {
|
|
235
|
+
const model = contentType.model
|
|
236
|
+
return model ? model.toLowerCase().replace('.', '_') : undefined
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
let entries: contentAliasObject[] = []
|
|
240
|
+
|
|
241
|
+
contentTypes.forEach((contentType) => {
|
|
242
|
+
const entry: contentAliasObject = {
|
|
243
|
+
...contentType,
|
|
244
|
+
interface: getInterface(contentType),
|
|
245
|
+
eskey: getEskey(contentType)
|
|
246
|
+
}
|
|
247
|
+
entries.push(entry)
|
|
248
|
+
})
|
|
249
|
+
return entries
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
export const contentAliases = getContentAliases()
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { contentAliases } from './../constants'
|
|
2
|
+
|
|
3
|
+
export const getInterfaceFromEskey = (eskey: string) => {
|
|
4
|
+
let match = undefined
|
|
5
|
+
contentAliases.forEach((alias) => (alias.eskey === eskey ? (match = alias.interface) : undefined))
|
|
6
|
+
return match
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const getEskeyFromInterface = (interfaceName: string) => {
|
|
10
|
+
let match = undefined
|
|
11
|
+
contentAliases.forEach((alias) =>
|
|
12
|
+
alias.interface === interfaceName ? (match = alias.eskey) : undefined
|
|
13
|
+
)
|
|
14
|
+
return match
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const lookupContentType = (key: string, source: string, target: string) => {
|
|
18
|
+
let match = undefined
|
|
19
|
+
// @ts-expect-error
|
|
20
|
+
contentAliases.forEach((entry) => (entry[source] === key ? (match = entry[target]) : undefined))
|
|
21
|
+
return match
|
|
22
|
+
}
|