6
6
<b-icon-chevron-down v-if =" expanded" />
7
7
<b-icon-chevron-right v-else />
8
8
</span >
9
- <span class =" title" >{{ asset. title || id }}</span >
9
+ <span class =" title" >{{ title }}</span >
10
10
<div class =" badges ml-1" >
11
11
<b-badge v-if =" shown" variant =" success" class =" shown" :title =" $t('assets.currentlyShown')" >
12
12
<b-icon-check /> {{ $t('assets.shown') }}
23
23
<template v-if =" hasAlternatives " >
24
24
<b-tabs card >
25
25
<b-tab :title =" asset['alternate:name'] || $t('assets.alternate.main')" active >
26
- <AssetAlternative :asset =" asset" :context = " context " : shown =" shown" hasAlternatives @show =" show" />
26
+ <AssetAlternative :asset =" asset" :shown =" shown" hasAlternatives @show =" show" />
27
27
</b-tab >
28
28
<b-tab v-for =" (altAsset, key) in alternatives" :title =" altAsset['alternate:name'] || key" :key =" key" >
29
- <AssetAlternative :asset =" altAsset" :context = " context " : shown =" shown" hasAlternatives :key =" key" @show =" show" />
29
+ <AssetAlternative :asset =" altAsset" :shown =" shown" hasAlternatives :key =" key" @show =" show" />
30
30
</b-tab >
31
31
</b-tabs >
32
32
</template >
33
- <AssetAlternative v-else :asset =" asset" :context = " context " : shown =" shown" @show =" show" />
33
+ <AssetAlternative v-else :asset =" asset" :shown =" shown" @show =" show" />
34
34
</b-collapse >
35
35
</b-card >
36
36
</template >
@@ -42,6 +42,7 @@ import { mapState } from 'vuex';
42
42
import AssetAlternative from ' ./AssetAlternative.vue' ;
43
43
import StacFieldsMixin from ' ./StacFieldsMixin' ;
44
44
import Utils from ' ../utils' ;
45
+ import { Asset } from ' stac-js' ;
45
46
46
47
export default {
47
48
name: ' Asset' ,
@@ -62,14 +63,6 @@ export default {
62
63
type: Object ,
63
64
required: true
64
65
},
65
- id: {
66
- type: String ,
67
- required: true
68
- },
69
- context: {
70
- type: Object ,
71
- default: null
72
- },
73
66
definition: {
74
67
type: Boolean ,
75
68
default: false
@@ -94,7 +87,10 @@ export default {
94
87
return this .definition ? ' itemdef' : ' asset' ;
95
88
},
96
89
uid () {
97
- return ` ${ this .type } -${ this .id .toLowerCase ().replace (/ [^ \w ] / g , ' -' )} ` ;
90
+ return ` ${ this .type } -${ this .asset .getKey ().toLowerCase ().replace (/ [^ \w ] / g , ' -' )} ` ;
91
+ },
92
+ title () {
93
+ return this .asset .title || this .asset .getKey ();
98
94
},
99
95
fileFormat () {
100
96
if (typeof this .asset .type === " string" && this .asset .type .length > 0 ) {
@@ -113,15 +109,17 @@ export default {
113
109
return {};
114
110
}
115
111
116
- const asset = Object . assign ({}, this .asset );
117
- delete asset .alternate ;
112
+ const inherit = this .asset . toJSON ( );
113
+ delete inherit .alternate ;
118
114
119
- const merged = {};
115
+ const alternates = {};
120
116
for (const key in this .asset .alternate ) {
121
- merged[key] = Object .assign ({}, asset, this .asset .alternate [key]);
117
+ const alternate = this .asset .alternate [key];
118
+ const merged = Object .assign ({}, inherit, alternate .toJSON ());
119
+ alternates[key] = new Asset (merged, key, alternate .getContext ());
122
120
}
123
121
124
- return merged ;
122
+ return alternates ;
125
123
},
126
124
hasAlternatives () {
127
125
return Utils .size (this .alternatives ) > 0 ;
0 commit comments