@explorer-1/vue 0.2.35 → 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/BasePill/BasePill.vue +5 -2
- package/src/components/BlockLinkCard/BlockLinkCard.vue +3 -4
- package/src/components/BlockLinkCardList/BlockLinkCardList.vue +1 -0
- package/src/components/DetailHeadline/DetailHeadline.vue +2 -3
- package/src/components/HeroLarge/HeroLarge.vue +2 -3
- package/src/components/HeroMedium/HeroMedium.vue +2 -3
- package/src/components/SearchFilterGroup/SearchFilterGroup.vue +4 -61
- package/src/components/SearchResultCard/SearchResultCard.vue +20 -8
- package/src/components/SearchResultGridItem/SearchResultGridItem.vue +2 -5
- package/src/components/SearchResultsList/SearchResultsList.vue +34 -4
- package/src/constants.ts +182 -11
- package/src/interfaces.ts +12 -9
- package/src/templates/edu/PageEduEventDetail/PageEduEventDetail.vue +2 -3
- package/src/utils/lookupContentType.ts +22 -0
package/package.json
CHANGED
|
@@ -18,6 +18,7 @@ const sizeMap: Attributes = {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
interface BasePillProps {
|
|
21
|
+
text?: string
|
|
21
22
|
variant?: string
|
|
22
23
|
size?: string
|
|
23
24
|
contentType?: string
|
|
@@ -44,14 +45,16 @@ const metadataAttrs = computed(() => {
|
|
|
44
45
|
}
|
|
45
46
|
return { variant: undefined, label: undefined }
|
|
46
47
|
})
|
|
48
|
+
const theText = computed(() => {
|
|
49
|
+
return props.text || metadataAttrs.value.label
|
|
50
|
+
})
|
|
47
51
|
</script>
|
|
48
52
|
<template>
|
|
49
53
|
<p
|
|
50
54
|
:class="`${variantMap[metadataAttrs.variant || props.variant]} ${sizeMap[props.size]}`"
|
|
51
55
|
class="ThemeVariantLight text-contrast-none inline-block text-white font-bold edu:font-extrabold rounded-full leading-tight m-0 uppercase print:border-none print:px-0"
|
|
52
56
|
>
|
|
53
|
-
|
|
54
|
-
<template v-else> <slot /></template>
|
|
57
|
+
{{ theText }}
|
|
55
58
|
<span class="sr-only">.</span>
|
|
56
59
|
</p>
|
|
57
60
|
</template>
|
|
@@ -47,9 +47,8 @@
|
|
|
47
47
|
:class="{ 'mb-2': !large, 'mb-4': large }"
|
|
48
48
|
size="sm"
|
|
49
49
|
:content-type="metadataType"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
</BasePill>
|
|
50
|
+
:text="(theItem as EventCardObject).eventType"
|
|
51
|
+
/>
|
|
53
52
|
</template>
|
|
54
53
|
<template
|
|
55
54
|
v-else-if="themeStore.isEdu && theItem.parent?.title && theItem.parent?.title !== 'EDU'"
|
|
@@ -117,7 +116,7 @@
|
|
|
117
116
|
<MetadataEvent
|
|
118
117
|
v-if="metadataType === 'EDUEventPage'"
|
|
119
118
|
:event="theItem"
|
|
120
|
-
:show-time="
|
|
119
|
+
:show-time="large"
|
|
121
120
|
:show-location="false"
|
|
122
121
|
compact
|
|
123
122
|
/>
|
|
@@ -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,
|
|
@@ -20,10 +18,13 @@
|
|
|
20
18
|
startDate,
|
|
21
19
|
endTime,
|
|
22
20
|
endDate,
|
|
21
|
+
customDate,
|
|
23
22
|
location,
|
|
24
|
-
eventType: eventType
|
|
23
|
+
eventType: eventType,
|
|
24
|
+
ongoing
|
|
25
25
|
}
|
|
26
26
|
}"
|
|
27
|
+
show-calendar-chip
|
|
27
28
|
/>
|
|
28
29
|
<EventCard
|
|
29
30
|
v-else-if="isEvents"
|
|
@@ -218,7 +219,7 @@ import BaseImage from './../BaseImage/BaseImage.vue'
|
|
|
218
219
|
import BaseImagePlaceholder from './../BaseImagePlaceholder/BaseImagePlaceholder.vue'
|
|
219
220
|
import EventCard from './../EventCard/EventCard.vue'
|
|
220
221
|
import BlockLinkCard from './../BlockLinkCard/BlockLinkCard.vue'
|
|
221
|
-
import {
|
|
222
|
+
import { lookupContentType } from '../../utils/lookupContentType'
|
|
222
223
|
import type { HeadingLevel } from './../BaseHeading/BaseHeading.vue'
|
|
223
224
|
|
|
224
225
|
export default defineComponent({
|
|
@@ -320,6 +321,11 @@ export default defineComponent({
|
|
|
320
321
|
required: false,
|
|
321
322
|
default: undefined
|
|
322
323
|
},
|
|
324
|
+
customDate: {
|
|
325
|
+
type: String,
|
|
326
|
+
required: false,
|
|
327
|
+
default: undefined
|
|
328
|
+
},
|
|
323
329
|
location: {
|
|
324
330
|
type: String,
|
|
325
331
|
required: false,
|
|
@@ -328,12 +334,18 @@ export default defineComponent({
|
|
|
328
334
|
pageContentType: {
|
|
329
335
|
type: String,
|
|
330
336
|
default: undefined
|
|
337
|
+
},
|
|
338
|
+
ongoing: {
|
|
339
|
+
type: Boolean,
|
|
340
|
+
default: false
|
|
331
341
|
}
|
|
332
342
|
},
|
|
333
343
|
computed: {
|
|
334
|
-
...mapStores(useThemeStore)
|
|
335
|
-
|
|
336
|
-
|
|
344
|
+
...mapStores(useThemeStore)
|
|
345
|
+
},
|
|
346
|
+
methods: {
|
|
347
|
+
getInterfaceFromEskey(key: string) {
|
|
348
|
+
return lookupContentType(key, 'eskey', 'interface')
|
|
337
349
|
}
|
|
338
350
|
}
|
|
339
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
|
}
|
|
@@ -23,10 +23,13 @@
|
|
|
23
23
|
:topic="page.topic"
|
|
24
24
|
:image="page.image"
|
|
25
25
|
:date="page.date"
|
|
26
|
+
:custom-date="page.customDate"
|
|
26
27
|
:start-date="page.startDate"
|
|
27
28
|
:end-date="page.endDate"
|
|
28
29
|
:start-time="page.startTime"
|
|
29
30
|
:end-time="page.endTime"
|
|
31
|
+
:event-type="page.eventType"
|
|
32
|
+
:ongoing="page.ongoing"
|
|
30
33
|
:location="page.location"
|
|
31
34
|
:title="page.title"
|
|
32
35
|
:summary="page.summary"
|
|
@@ -57,6 +60,7 @@
|
|
|
57
60
|
<script lang="ts">
|
|
58
61
|
import { defineComponent } from 'vue'
|
|
59
62
|
import type { ElasticSearchPage } from '../../interfaces'
|
|
63
|
+
|
|
60
64
|
// @ts-ignore
|
|
61
65
|
import dayjs from 'dayjs'
|
|
62
66
|
import SearchResultCard from './../SearchResultCard/SearchResultCard.vue'
|
|
@@ -131,6 +135,8 @@ export default defineComponent({
|
|
|
131
135
|
const pageType = page._source[handle + '__label']
|
|
132
136
|
if (handle === 'events_eventpage') {
|
|
133
137
|
date = 'Event date: ' + parseDate(page._source[handle + '__start_datetime'])
|
|
138
|
+
} else if (handle === 'edu_events_edueventpage') {
|
|
139
|
+
date = null
|
|
134
140
|
} else if (handle === 'missions_mission') {
|
|
135
141
|
date = page._source.display_date_filter
|
|
136
142
|
? 'Launch date: ' + page._source.display_date_filter
|
|
@@ -155,13 +161,37 @@ export default defineComponent({
|
|
|
155
161
|
page.topic = topic
|
|
156
162
|
// properties for event's page
|
|
157
163
|
page.location =
|
|
158
|
-
handle === 'events_eventpage'
|
|
164
|
+
handle === 'events_eventpage' || handle === 'edu_events_edueventpage'
|
|
165
|
+
? page._source[handle + '__location'] | page._source[handle + '__location_name']
|
|
166
|
+
: null
|
|
159
167
|
page.startDate =
|
|
160
|
-
handle === 'events_eventpage'
|
|
168
|
+
handle === 'events_eventpage' || handle === 'edu_events_edueventpage'
|
|
169
|
+
? page._source[handle + '__start_datetime']
|
|
170
|
+
: null
|
|
161
171
|
page.endDate =
|
|
162
|
-
handle === 'events_eventpage'
|
|
172
|
+
handle === 'events_eventpage' || handle === 'edu_events_edueventpage'
|
|
173
|
+
? page._source[handle + '__end_datetime']
|
|
174
|
+
: null
|
|
163
175
|
page.startTime =
|
|
164
|
-
handle === 'events_eventpage'
|
|
176
|
+
handle === 'events_eventpage' || handle === 'edu_events_edueventpage'
|
|
177
|
+
? page._source[handle + '__start_time_string']
|
|
178
|
+
: null
|
|
179
|
+
page.endTime =
|
|
180
|
+
handle === 'events_eventpage' || handle === 'edu_events_edueventpage'
|
|
181
|
+
? page._source[handle + '__end_time_string']
|
|
182
|
+
: null
|
|
183
|
+
page.eventType =
|
|
184
|
+
handle === 'edu_events_edueventpage'
|
|
185
|
+
? page._source.edu_events_edueventpage__event_type_label_filter
|
|
186
|
+
: undefined
|
|
187
|
+
page.customDate =
|
|
188
|
+
handle === 'edu_events_edueventpage'
|
|
189
|
+
? page._source.edu_events_edueventpage__custom_date
|
|
190
|
+
: undefined
|
|
191
|
+
page.ongoing =
|
|
192
|
+
handle === 'edu_events_edueventpage'
|
|
193
|
+
? page._source.edu_events_edueventpage__ongoing
|
|
194
|
+
: undefined
|
|
165
195
|
// properties that are different for profiles page
|
|
166
196
|
page.summary =
|
|
167
197
|
handle === 'profiles_profilepage'
|
package/src/constants.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PillDictionaryInterface } from './interfaces'
|
|
2
2
|
|
|
3
3
|
export const eduMetadataDictionary: PillDictionaryInterface = {
|
|
4
4
|
EDUEventPage: {
|
|
5
|
+
label: 'Event',
|
|
5
6
|
variant: 'primary',
|
|
6
7
|
icons: 'primary',
|
|
7
8
|
type: 'event'
|
|
@@ -68,14 +69,184 @@ export const eduMetadataDictionary: PillDictionaryInterface = {
|
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
71
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
events_eventpage: 'EventPage',
|
|
75
|
-
missions_mission: 'Mission',
|
|
76
|
-
eduevents_edueventpage: 'EDUEventPage',
|
|
77
|
-
eduresources_educollectionsdetailpage: 'EDUCollectionsDetailPage',
|
|
78
|
-
eduresources_eduexplainerarticlepage: 'EDUExplainerArticlePage',
|
|
79
|
-
eduresources_edulessonpage: 'EDULessonPage',
|
|
80
|
-
eduresources_eduteachablemomentpage: 'EDUTeachableMomentPage'
|
|
72
|
+
interface contentTypeObject {
|
|
73
|
+
model: string
|
|
74
|
+
label: string
|
|
81
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()
|
package/src/interfaces.ts
CHANGED
|
@@ -79,16 +79,19 @@ export interface ElasticSearchPage {
|
|
|
79
79
|
content_type: string
|
|
80
80
|
url: string
|
|
81
81
|
type: string
|
|
82
|
-
topic
|
|
83
|
-
image
|
|
84
|
-
date
|
|
85
|
-
startDate
|
|
86
|
-
endDate
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
82
|
+
topic?: string
|
|
83
|
+
image?: string | any
|
|
84
|
+
date?: string
|
|
85
|
+
startDate?: string
|
|
86
|
+
endDate?: string
|
|
87
|
+
customDate?: string
|
|
88
|
+
startTime?: string
|
|
89
|
+
endTime?: string
|
|
90
|
+
location?: string
|
|
90
91
|
title: string
|
|
91
|
-
summary
|
|
92
|
+
summary?: string
|
|
93
|
+
eventType?: string
|
|
94
|
+
ongoing?: boolean
|
|
92
95
|
}
|
|
93
96
|
|
|
94
97
|
export interface FormOption {
|
|
@@ -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
|
+
}
|