geonetwork-ui 2.8.0-dev.0c9b29721 → 2.8.0-dev.2abe6a279
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/esm2022/index.mjs +2 -1
- package/esm2022/libs/api/metadata-converter/src/lib/common/distribution.mapper.mjs +5 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +3 -1
- package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +2 -2
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +10 -10
- package/esm2022/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.mjs +3 -2
- package/esm2022/libs/common/domain/src/index.mjs +3 -0
- package/esm2022/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +3 -1
- package/esm2022/libs/common/domain/src/lib/model/search/sort-by.model.mjs +6 -1
- package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
- package/esm2022/libs/feature/dataviz/src/index.mjs +2 -1
- package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +3 -1
- package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +18 -7
- package/esm2022/libs/feature/dataviz/src/lib/stac-view/stac-view.component.mjs +51 -0
- package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +13 -4
- package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +23 -8
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +2 -1
- package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +2 -1
- package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +5 -1
- package/esm2022/libs/feature/router/src/lib/default/state/router.effects.mjs +9 -7
- package/esm2022/libs/feature/search/src/lib/sort-by/sort-by.component.mjs +8 -12
- package/esm2022/libs/ui/elements/src/lib/external-link-card/external-link-card.component.mjs +11 -4
- package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +2 -3
- package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +5 -1
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +12 -1
- package/esm2022/libs/util/shared/src/lib/services/proxy.service.mjs +9 -11
- package/esm2022/libs/util/shared/src/lib/utils/sort-by.mjs +9 -6
- package/esm2022/translations/de.json +14 -3
- package/esm2022/translations/en.json +14 -4
- package/esm2022/translations/es.json +13 -2
- package/esm2022/translations/fr.json +14 -3
- package/esm2022/translations/it.json +15 -4
- package/esm2022/translations/nl.json +13 -2
- package/esm2022/translations/pt.json +13 -2
- package/esm2022/translations/sk.json +14 -3
- package/fesm2022/geonetwork-ui.mjs +285 -82
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.ts +1 -0
- package/libs/api/metadata-converter/src/lib/common/distribution.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/auth/auth.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +7 -7
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts.map +1 -1
- package/libs/common/domain/src/index.d.ts +3 -0
- package/libs/common/domain/src/index.d.ts.map +1 -0
- package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts +1 -1
- package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/sort-by.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
- package/libs/feature/dataviz/src/index.d.ts +1 -0
- package/libs/feature/dataviz/src/index.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/stac-view/stac-view.component.d.ts +16 -0
- package/libs/feature/dataviz/src/lib/stac-view/stac-view.component.d.ts.map +1 -0
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +3 -2
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +3 -2
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts +24 -24
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/router.service.d.ts +2 -0
- package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/state/router.effects.d.ts +3 -1
- package/libs/feature/router/src/lib/default/state/router.effects.d.ts.map +1 -1
- package/libs/feature/search/src/lib/sort-by/sort-by.component.d.ts +4 -3
- package/libs/feature/search/src/lib/sort-by/sort-by.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/external-link-card/external-link-card.component.d.ts +3 -2
- package/libs/ui/elements/src/lib/external-link-card/external-link-card.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.d.ts.map +1 -1
- package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts +6 -0
- package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
- package/libs/util/shared/src/lib/services/proxy.service.d.ts +5 -4
- package/libs/util/shared/src/lib/services/proxy.service.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/sort-by.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/libs/api/metadata-converter/src/lib/common/distribution.mapper.ts +2 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +2 -0
- package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +4 -1
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +37 -36
- package/src/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.ts +3 -2
- package/src/libs/common/domain/src/index.ts +2 -0
- package/src/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.ts +1 -1
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +4 -0
- package/src/libs/common/domain/src/lib/model/search/sort-by.model.ts +5 -0
- package/src/libs/common/domain/src/lib/platform.service.interface.ts +1 -1
- package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +5 -0
- package/src/libs/common/fixtures/src/lib/link.fixtures.ts +19 -0
- package/src/libs/feature/dataviz/src/index.ts +1 -0
- package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +1 -0
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +16 -5
- package/src/libs/feature/dataviz/src/lib/stac-view/stac-view.component.css +0 -0
- package/src/libs/feature/dataviz/src/lib/stac-view/stac-view.component.html +40 -0
- package/src/libs/feature/dataviz/src/lib/stac-view/stac-view.component.ts +62 -0
- package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +7 -1
- package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +23 -4
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +1 -0
- package/src/libs/feature/record/src/lib/state/mdview.facade.ts +11 -1
- package/src/libs/feature/router/src/lib/default/router.service.ts +8 -0
- package/src/libs/feature/router/src/lib/default/state/router.effects.ts +6 -7
- package/src/libs/feature/search/src/lib/sort-by/sort-by.component.ts +8 -12
- package/src/libs/ui/elements/src/lib/external-link-card/external-link-card.component.html +43 -22
- package/src/libs/ui/elements/src/lib/external-link-card/external-link-card.component.ts +12 -3
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +56 -14
- package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.ts +4 -2
- package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +4 -0
- package/src/libs/util/shared/src/lib/links/link-utils.ts +11 -0
- package/src/libs/util/shared/src/lib/services/proxy.service.ts +6 -2
- package/src/libs/util/shared/src/lib/utils/sort-by.ts +8 -5
- package/translations/de.json +14 -3
- package/translations/en.json +14 -4
- package/translations/es.json +13 -2
- package/translations/fr.json +14 -3
- package/translations/it.json +15 -4
- package/translations/nl.json +13 -2
- package/translations/pt.json +13 -2
- package/translations/sk.json +14 -3
- package/src/libs/common/domain/src/lib/index.ts +0 -2
|
@@ -9,10 +9,7 @@ import {
|
|
|
9
9
|
SetFilters,
|
|
10
10
|
SetSortBy,
|
|
11
11
|
} from '../../../../../../../libs/feature/search/src'
|
|
12
|
-
import {
|
|
13
|
-
FieldFilters,
|
|
14
|
-
SortByEnum,
|
|
15
|
-
} from '../../../../../../../libs/common/domain/src/lib/model/search'
|
|
12
|
+
import { FieldFilters } from '../../../../../../../libs/common/domain/src/lib/model/search'
|
|
16
13
|
import { Actions, createEffect, ofType } from '@ngrx/effects'
|
|
17
14
|
import { navigation } from '@ngrx/router-store/data-persistence'
|
|
18
15
|
import { of, pairwise, startWith } from 'rxjs'
|
|
@@ -22,6 +19,7 @@ import { RouterFacade } from './router.facade'
|
|
|
22
19
|
import { ROUTE_PARAMS } from '../constants'
|
|
23
20
|
import { sortByFromString } from '../../../../../../../libs/util/shared/src'
|
|
24
21
|
import { ROUTER_CONFIG, RouterConfigModel } from '../router.config'
|
|
22
|
+
import { RouterService } from '../router.service'
|
|
25
23
|
|
|
26
24
|
@Injectable()
|
|
27
25
|
export class RouterEffects {
|
|
@@ -31,7 +29,8 @@ export class RouterEffects {
|
|
|
31
29
|
private _location: Location,
|
|
32
30
|
private facade: RouterFacade,
|
|
33
31
|
@Inject(ROUTER_CONFIG) private routerConfig: RouterConfigModel,
|
|
34
|
-
private fieldsService: FieldsService
|
|
32
|
+
private fieldsService: FieldsService,
|
|
33
|
+
private routerService: RouterService
|
|
35
34
|
) {}
|
|
36
35
|
|
|
37
36
|
navigate$ = createEffect(
|
|
@@ -61,7 +60,7 @@ export class RouterEffects {
|
|
|
61
60
|
let sortBy =
|
|
62
61
|
ROUTE_PARAMS.SORT in newParams
|
|
63
62
|
? sortByFromString(newParams[ROUTE_PARAMS.SORT])
|
|
64
|
-
:
|
|
63
|
+
: this.routerService.getDefaultSort()
|
|
65
64
|
let pageNumber =
|
|
66
65
|
ROUTE_PARAMS.PAGE in newParams
|
|
67
66
|
? parseInt(newParams[ROUTE_PARAMS.PAGE])
|
|
@@ -70,7 +69,7 @@ export class RouterEffects {
|
|
|
70
69
|
const oldSort =
|
|
71
70
|
ROUTE_PARAMS.SORT in oldParams
|
|
72
71
|
? sortByFromString(oldParams[ROUTE_PARAMS.SORT])
|
|
73
|
-
:
|
|
72
|
+
: this.routerService.getDefaultSort()
|
|
74
73
|
if (JSON.stringify(sortBy) === JSON.stringify(oldSort)) {
|
|
75
74
|
sortBy = null
|
|
76
75
|
}
|
|
@@ -13,7 +13,7 @@ import { TranslatePipe } from '@ngx-translate/core'
|
|
|
13
13
|
|
|
14
14
|
interface SortChoice {
|
|
15
15
|
label: string
|
|
16
|
-
value:
|
|
16
|
+
value: SortByField
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
@Component({
|
|
@@ -27,24 +27,20 @@ export class SortByComponent implements OnInit {
|
|
|
27
27
|
choices: SortChoice[] = [
|
|
28
28
|
{
|
|
29
29
|
label: marker('results.sortBy.relevancy'),
|
|
30
|
-
value: SortByEnum.RELEVANCY
|
|
30
|
+
value: SortByEnum.RELEVANCY,
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
label: marker('results.sortBy.dateStamp'),
|
|
34
|
-
value: SortByEnum.
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
label: marker('results.sortBy.changeDate'),
|
|
38
|
-
value: SortByEnum.CHANGE_DATE.join(','),
|
|
34
|
+
value: SortByEnum.RESOURCE_DATES,
|
|
39
35
|
},
|
|
40
36
|
{
|
|
41
37
|
label: marker('results.sortBy.popularity'),
|
|
42
|
-
value: SortByEnum.POPULARITY
|
|
38
|
+
value: SortByEnum.POPULARITY,
|
|
43
39
|
},
|
|
44
40
|
]
|
|
45
41
|
currentSortBy$ = this.facade.sortBy$.pipe(
|
|
46
42
|
filter((sortBy) => !!sortBy),
|
|
47
|
-
map((sortBy) => sortBy
|
|
43
|
+
map((sortBy) => sortBy)
|
|
48
44
|
)
|
|
49
45
|
|
|
50
46
|
constructor(
|
|
@@ -56,12 +52,12 @@ export class SortByComponent implements OnInit {
|
|
|
56
52
|
if (this.isQualitySortable) {
|
|
57
53
|
this.choices.push({
|
|
58
54
|
label: marker('results.sortBy.qualityScore'),
|
|
59
|
-
value: SortByEnum.QUALITY_SCORE
|
|
55
|
+
value: SortByEnum.QUALITY_SCORE,
|
|
60
56
|
})
|
|
61
57
|
}
|
|
62
58
|
}
|
|
63
59
|
|
|
64
|
-
changeSortBy(
|
|
65
|
-
this.searchService.setSortBy(
|
|
60
|
+
changeSortBy(criteria: SortByField): void {
|
|
61
|
+
this.searchService.setSortBy(criteria)
|
|
66
62
|
}
|
|
67
63
|
}
|
|
@@ -1,15 +1,48 @@
|
|
|
1
|
-
<
|
|
2
|
-
[
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
>
|
|
1
|
+
<ng-container *ngIf="isDatabase; else clickableLink">
|
|
2
|
+
<div [ngClass]="cardClass" [title]="title">
|
|
3
|
+
<ng-container *ngTemplateOutlet="cardContent"></ng-container>
|
|
4
|
+
<div
|
|
5
|
+
class="flex min-w-[32px]"
|
|
6
|
+
[ngClass]="size === 'S' ? 'items-end' : 'items-center'"
|
|
7
|
+
>
|
|
8
|
+
<div
|
|
9
|
+
class="gn-ui-card-icon"
|
|
10
|
+
[title]="'record.metadata.link.postgis.tooltip' | translate"
|
|
11
|
+
>
|
|
12
|
+
<ng-icon
|
|
13
|
+
class="inline-block card-icon align-middle"
|
|
14
|
+
name="iconoirDatabase"
|
|
15
|
+
></ng-icon>
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
</ng-container>
|
|
20
|
+
|
|
21
|
+
<ng-template #clickableLink>
|
|
22
|
+
<a [href]="link.url" target="_blank" [ngClass]="cardClass" [title]="title">
|
|
23
|
+
<ng-container *ngTemplateOutlet="cardContent"></ng-container>
|
|
24
|
+
<div
|
|
25
|
+
class="flex min-w-[32px]"
|
|
26
|
+
[ngClass]="size === 'S' ? 'items-end' : 'items-center'"
|
|
27
|
+
>
|
|
28
|
+
<div class="gn-ui-card-icon">
|
|
29
|
+
<ng-icon
|
|
30
|
+
class="inline-block card-icon align-middle"
|
|
31
|
+
name="matOpenInNew"
|
|
32
|
+
></ng-icon>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</a>
|
|
36
|
+
</ng-template>
|
|
37
|
+
<ng-template #cardContent>
|
|
8
38
|
<div class="flex flex-col justify-between flex-1 min-w-0">
|
|
9
39
|
<div class="gn-ui-card-title">
|
|
10
40
|
{{ link.description || link.name }}
|
|
11
41
|
</div>
|
|
12
42
|
<div class="gn-ui-card-detail">
|
|
43
|
+
<ng-container *ngIf="isDatabase">
|
|
44
|
+
{{ 'record.metadata.link.postgis.table' | translate }}
|
|
45
|
+
</ng-container>
|
|
13
46
|
{{ link.name }}
|
|
14
47
|
</div>
|
|
15
48
|
<p *ngIf="!link.name && !link.description" class="gn-ui-card-title">
|
|
@@ -20,21 +53,9 @@
|
|
|
20
53
|
class="inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded transition-opacity opacity-70 group-hover:opacity-100"
|
|
21
54
|
[style.background-color]="getLinkColor(link)"
|
|
22
55
|
data-cy="download-format"
|
|
23
|
-
>{{
|
|
24
|
-
getLinkFormat(link) || ('downloads.format.unknown' | translate)
|
|
25
|
-
}}</span
|
|
26
56
|
>
|
|
57
|
+
{{ getLinkFormat(link) || ('downloads.format.unknown' | translate) }}
|
|
58
|
+
</span>
|
|
27
59
|
</div>
|
|
28
60
|
</div>
|
|
29
|
-
|
|
30
|
-
class="flex min-w-[32px]"
|
|
31
|
-
[ngClass]="size === 'S' ? 'items-end' : 'items-center'"
|
|
32
|
-
>
|
|
33
|
-
<div class="gn-ui-card-icon">
|
|
34
|
-
<ng-icon
|
|
35
|
-
class="inline-block card-icon align-middle"
|
|
36
|
-
name="matOpenInNew"
|
|
37
|
-
></ng-icon>
|
|
38
|
-
</div>
|
|
39
|
-
</div>
|
|
40
|
-
</a>
|
|
61
|
+
</ng-template>
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
provideNgIconsConfig,
|
|
8
8
|
} from '@ng-icons/core'
|
|
9
9
|
import { matOpenInNew } from '@ng-icons/material-icons/baseline'
|
|
10
|
+
import { iconoirDatabase } from '@ng-icons/iconoir'
|
|
10
11
|
import { getBadgeColor, getFileFormat } from '../../../../../../libs/util/shared/src'
|
|
11
12
|
import { TranslatePipe } from '@ngx-translate/core'
|
|
12
13
|
|
|
@@ -21,6 +22,7 @@ type CardSize = 'L' | 'M' | 'S' | 'XS'
|
|
|
21
22
|
providers: [
|
|
22
23
|
provideIcons({
|
|
23
24
|
matOpenInNew,
|
|
25
|
+
iconoirDatabase,
|
|
24
26
|
}),
|
|
25
27
|
provideNgIconsConfig({ size: '1.5em' }),
|
|
26
28
|
],
|
|
@@ -37,7 +39,7 @@ export class ExternalLinkCardComponent {
|
|
|
37
39
|
|
|
38
40
|
@Input() set size(value: CardSize) {
|
|
39
41
|
this._size = value
|
|
40
|
-
this.cardClass = this.sizeClassMap[value]
|
|
42
|
+
this.cardClass = `group flex flex-row justify-between card-shadow rounded overflow-hidden ${this.sizeClassMap[value]}`
|
|
41
43
|
}
|
|
42
44
|
get size(): CardSize {
|
|
43
45
|
return this._size
|
|
@@ -51,11 +53,18 @@ export class ExternalLinkCardComponent {
|
|
|
51
53
|
return this.link.name || this.link.description || ''
|
|
52
54
|
}
|
|
53
55
|
|
|
54
|
-
|
|
56
|
+
get isDatabase(): boolean {
|
|
57
|
+
return (
|
|
58
|
+
this.link.type === 'service' &&
|
|
59
|
+
this.link.accessServiceProtocol === 'postgis'
|
|
60
|
+
)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
getLinkFormat(link: DatasetOnlineResource): string {
|
|
55
64
|
return getFileFormat(link)
|
|
56
65
|
}
|
|
57
66
|
|
|
58
|
-
getLinkColor(link:
|
|
67
|
+
getLinkColor(link: DatasetOnlineResource): string {
|
|
59
68
|
return getBadgeColor(getFileFormat(link))
|
|
60
69
|
}
|
|
61
70
|
}
|
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
ghostClass="h-[178px]"
|
|
4
4
|
[showContent]="fieldReady('abstract')"
|
|
5
5
|
>
|
|
6
|
-
<gn-ui-max-lines
|
|
6
|
+
<gn-ui-max-lines
|
|
7
|
+
[maxLines]="6"
|
|
8
|
+
*ngIf="metadata.abstract"
|
|
9
|
+
data-test="metadata-info-abstract"
|
|
10
|
+
>
|
|
7
11
|
<div class="mb-6">
|
|
8
12
|
<gn-ui-markdown-parser
|
|
9
13
|
[textContent]="metadata.abstract"
|
|
@@ -101,19 +105,31 @@
|
|
|
101
105
|
<gn-ui-expandable-panel
|
|
102
106
|
*ngIf="
|
|
103
107
|
(metadata.kind === 'dataset' && metadata.lineage) ||
|
|
108
|
+
resourceContact ||
|
|
109
|
+
metadata.resourceCreated ||
|
|
110
|
+
metadata.resourcePublished ||
|
|
104
111
|
metadata.resourceUpdated ||
|
|
105
|
-
metadata.updateFrequency ||
|
|
106
|
-
|
|
112
|
+
(metadata.kind === 'dataset' && metadata.updateFrequency) ||
|
|
113
|
+
metadata.otherLanguages?.length ||
|
|
114
|
+
(metadata.kind === 'dataset' && temporalExtent)
|
|
107
115
|
"
|
|
108
116
|
[title]="'record.metadata.details' | translate"
|
|
109
117
|
data-test="details-panel"
|
|
110
118
|
>
|
|
111
|
-
<div
|
|
119
|
+
<div
|
|
120
|
+
*ngIf="metadata.kind === 'dataset' && metadata.lineage"
|
|
121
|
+
class="text-gray-900 flex flex-col mt-4 gap-2"
|
|
122
|
+
data-test="details-panel-lineage"
|
|
123
|
+
>
|
|
112
124
|
<p class="whitespace-pre-line break-words text-gray-900" gnUiLinkify>
|
|
113
125
|
{{ metadata.lineage }}
|
|
114
126
|
</p>
|
|
115
127
|
</div>
|
|
116
|
-
<div
|
|
128
|
+
<div
|
|
129
|
+
class="flex flex-row gap-6 mt-5 mb-8 resource-contact"
|
|
130
|
+
*ngIf="resourceContact"
|
|
131
|
+
data-test="details-panel-resource-contact"
|
|
132
|
+
>
|
|
117
133
|
<div
|
|
118
134
|
*ngIf="resourceContact.organization?.logoUrl?.href"
|
|
119
135
|
class="flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden"
|
|
@@ -165,19 +181,37 @@
|
|
|
165
181
|
<div
|
|
166
182
|
class="py-6 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-6 gap-x-[20px] text-gray-700"
|
|
167
183
|
>
|
|
168
|
-
<div
|
|
184
|
+
<div
|
|
185
|
+
*ngIf="metadata.resourceCreated"
|
|
186
|
+
data-test="details-panel-resource-created"
|
|
187
|
+
>
|
|
169
188
|
<p class="text-sm" translate>record.metadata.creation</p>
|
|
170
|
-
<p class="text-primary font-medium mt-1">
|
|
189
|
+
<p class="text-primary font-medium mt-1 resource-created">
|
|
171
190
|
{{ formatDate(metadata.resourceCreated) }}
|
|
172
191
|
</p>
|
|
173
192
|
</div>
|
|
174
|
-
<div
|
|
193
|
+
<div
|
|
194
|
+
*ngIf="metadata.resourcePublished"
|
|
195
|
+
data-test="details-panel-resource-published"
|
|
196
|
+
>
|
|
175
197
|
<p class="text-sm" translate>record.metadata.publication</p>
|
|
176
|
-
<p class="text-primary font-medium mt-1">
|
|
198
|
+
<p class="text-primary font-medium mt-1 resource-published">
|
|
177
199
|
{{ formatDate(metadata.resourcePublished) }}
|
|
178
200
|
</p>
|
|
179
201
|
</div>
|
|
180
|
-
<div
|
|
202
|
+
<div
|
|
203
|
+
*ngIf="metadata.resourceUpdated"
|
|
204
|
+
data-test="details-panel-resource-updated"
|
|
205
|
+
>
|
|
206
|
+
<p class="text-sm" translate>record.metadata.update</p>
|
|
207
|
+
<p class="text-primary font-medium mt-1 resource-updated">
|
|
208
|
+
{{ formatDate(metadata.resourceUpdated) }}
|
|
209
|
+
</p>
|
|
210
|
+
</div>
|
|
211
|
+
<div
|
|
212
|
+
*ngIf="metadata.kind === 'dataset' && metadata.updateFrequency"
|
|
213
|
+
data-test="details-panel-update-frequency"
|
|
214
|
+
>
|
|
181
215
|
<p class="text-sm" translate>record.metadata.updateFrequency</p>
|
|
182
216
|
<p
|
|
183
217
|
class="text-primary font-medium mt-1 updateFrequency"
|
|
@@ -187,11 +221,14 @@
|
|
|
187
221
|
{{ updateFrequency }}
|
|
188
222
|
</p>
|
|
189
223
|
</div>
|
|
190
|
-
<div
|
|
224
|
+
<div
|
|
225
|
+
*ngIf="metadata.otherLanguages?.length"
|
|
226
|
+
data-test="details-panel-other-languages"
|
|
227
|
+
>
|
|
191
228
|
<p class="text-sm mb-1" translate>record.metadata.languages</p>
|
|
192
229
|
<div class="flex flex-row gap-1 flex-wrap">
|
|
193
230
|
<p
|
|
194
|
-
class="text-primary font-medium"
|
|
231
|
+
class="text-primary font-medium other-languages"
|
|
195
232
|
translate
|
|
196
233
|
*ngFor="let language of metadata.otherLanguages"
|
|
197
234
|
>
|
|
@@ -199,9 +236,14 @@
|
|
|
199
236
|
</p>
|
|
200
237
|
</div>
|
|
201
238
|
</div>
|
|
202
|
-
<div
|
|
239
|
+
<div
|
|
240
|
+
*ngIf="metadata.kind === 'dataset' && temporalExtent"
|
|
241
|
+
data-test="details-panel-temporal-extent"
|
|
242
|
+
>
|
|
203
243
|
<p class="text-sm" translate>record.metadata.temporalExtent</p>
|
|
204
|
-
<div
|
|
244
|
+
<div
|
|
245
|
+
class="flex flex-row gap-1 mb-1 text-primary font-medium temporal-extent"
|
|
246
|
+
>
|
|
205
247
|
<p
|
|
206
248
|
*ngIf="temporalExtent.start && temporalExtent.end"
|
|
207
249
|
translate
|
|
@@ -90,8 +90,10 @@ export class DropdownSelectorComponent implements OnInit {
|
|
|
90
90
|
|
|
91
91
|
get selectedChoice(): DropdownChoice {
|
|
92
92
|
return (
|
|
93
|
-
this.choices.find(
|
|
94
|
-
|
|
93
|
+
this.choices.find(
|
|
94
|
+
(choice) =>
|
|
95
|
+
JSON.stringify(choice.value) === JSON.stringify(this.selected)
|
|
96
|
+
) ?? this.choices[0]
|
|
95
97
|
)
|
|
96
98
|
}
|
|
97
99
|
|
|
@@ -39,6 +39,10 @@ export class LinkClassifierService {
|
|
|
39
39
|
return [LinkUsage.API, LinkUsage.DOWNLOAD, LinkUsage.GEODATA]
|
|
40
40
|
case 'GPFDL':
|
|
41
41
|
return [LinkUsage.API]
|
|
42
|
+
case 'postgis':
|
|
43
|
+
return [LinkUsage.UNKNOWN]
|
|
44
|
+
case 'stac':
|
|
45
|
+
return [LinkUsage.API]
|
|
42
46
|
default:
|
|
43
47
|
return [LinkUsage.UNKNOWN]
|
|
44
48
|
}
|
|
@@ -150,6 +150,12 @@ export const FORMATS = {
|
|
|
150
150
|
color: '#5A9E6F',
|
|
151
151
|
mimeTypes: ['image/webp'],
|
|
152
152
|
},
|
|
153
|
+
postgis: {
|
|
154
|
+
extensions: ['postgis'],
|
|
155
|
+
priority: 18,
|
|
156
|
+
color: '#336791',
|
|
157
|
+
mimeTypes: [],
|
|
158
|
+
},
|
|
153
159
|
} as const
|
|
154
160
|
|
|
155
161
|
export type FileFormat = keyof typeof FORMATS
|
|
@@ -195,6 +201,11 @@ export function getFileFormatFromServiceOutput(
|
|
|
195
201
|
export function getFileFormat(
|
|
196
202
|
link: DatasetOnlineResource | ServiceOnlineResource
|
|
197
203
|
): FileFormat {
|
|
204
|
+
if ('accessServiceProtocol' in link) {
|
|
205
|
+
if (link.accessServiceProtocol in FORMATS) {
|
|
206
|
+
return link.accessServiceProtocol as FileFormat
|
|
207
|
+
}
|
|
208
|
+
}
|
|
198
209
|
if ('mimeType' in link) {
|
|
199
210
|
const mimeTypeFormat = mimeTypeToFormat(link.mimeType)
|
|
200
211
|
if (mimeTypeFormat !== null) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Injectable, InjectionToken, Injector } from '@angular/core'
|
|
2
2
|
import { Location } from '@angular/common'
|
|
3
3
|
|
|
4
4
|
export const PROXY_PATH = new InjectionToken<string>('proxyPath')
|
|
@@ -7,8 +7,12 @@ export const PROXY_PATH = new InjectionToken<string>('proxyPath')
|
|
|
7
7
|
providedIn: 'root',
|
|
8
8
|
})
|
|
9
9
|
export class ProxyService {
|
|
10
|
+
private get proxyPath(): string | null {
|
|
11
|
+
return this.injector.get(PROXY_PATH, null)
|
|
12
|
+
}
|
|
13
|
+
|
|
10
14
|
constructor(
|
|
11
|
-
|
|
15
|
+
private injector: Injector,
|
|
12
16
|
private location: Location
|
|
13
17
|
) {}
|
|
14
18
|
|
|
@@ -6,12 +6,15 @@ export function sortByToStrings(sortBy: SortByField): string[] {
|
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
export function sortByToString(sortBy: SortByField): string {
|
|
9
|
-
return sortByToStrings(sortBy)
|
|
9
|
+
return sortByToStrings(sortBy).join(',')
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
export function sortByFromString(sortByString: string): SortByField {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
const fields = sortByString
|
|
14
|
+
.split(',')
|
|
15
|
+
.map((field) => [
|
|
16
|
+
field.startsWith('-') ? 'desc' : 'asc',
|
|
17
|
+
field.startsWith('-') ? field.substring(1) : field,
|
|
18
|
+
]) as SortByField
|
|
19
|
+
return fields.length > 1 ? fields : (fields[0] as SortByField)
|
|
17
20
|
}
|
package/translations/de.json
CHANGED
|
@@ -418,6 +418,8 @@
|
|
|
418
418
|
"record.metadata.api.accessServiceProtocol.maplibre-style": "",
|
|
419
419
|
"record.metadata.api.accessServiceProtocol.ogcFeatures": "",
|
|
420
420
|
"record.metadata.api.accessServiceProtocol.other": "",
|
|
421
|
+
"record.metadata.api.accessServiceProtocol.postgis": "",
|
|
422
|
+
"record.metadata.api.accessServiceProtocol.stac": "",
|
|
421
423
|
"record.metadata.api.accessServiceProtocol.tms": "",
|
|
422
424
|
"record.metadata.api.accessServiceProtocol.wfs": "",
|
|
423
425
|
"record.metadata.api.accessServiceProtocol.wms": "",
|
|
@@ -465,7 +467,8 @@
|
|
|
465
467
|
"record.metadata.isGeographical": "Geographischer Datensatz",
|
|
466
468
|
"record.metadata.keywords": "Stichworte",
|
|
467
469
|
"record.metadata.languages": "Sprachen",
|
|
468
|
-
"record.metadata.
|
|
470
|
+
"record.metadata.link.postgis.table": "",
|
|
471
|
+
"record.metadata.link.postgis.tooltip": "",
|
|
469
472
|
"record.metadata.linked.datasets": "Verknüpfte Datensätze",
|
|
470
473
|
"record.metadata.linked.records": "Verknüpfte Inhalte",
|
|
471
474
|
"record.metadata.linked.reuses": "Verknüpfte Wiederverwendungen",
|
|
@@ -506,6 +509,9 @@
|
|
|
506
509
|
"record.metadata.quality.updateFrequency.failed": "Aktualisierungsfrequenz nicht angegeben",
|
|
507
510
|
"record.metadata.quality.updateFrequency.success": "Aktualisierungsfrequenz angegeben",
|
|
508
511
|
"record.metadata.related": "Entdecken Sie den Katalog",
|
|
512
|
+
"record.metadata.resourceCreated": "Erstellt am {date}",
|
|
513
|
+
"record.metadata.resourcePublished": "Veröffentlicht am {date}",
|
|
514
|
+
"record.metadata.resourceUpdated": "Zuletzt aktualisiert am {date}",
|
|
509
515
|
"record.metadata.ressources.and.links": "Ressourcen und Links",
|
|
510
516
|
"record.metadata.sheet": "Weitere Informationen verfügbar unter:",
|
|
511
517
|
"record.metadata.status": "Status",
|
|
@@ -518,8 +524,9 @@
|
|
|
518
524
|
"record.metadata.title": "Titel",
|
|
519
525
|
"record.metadata.topics": "Kategorien",
|
|
520
526
|
"record.metadata.uniqueId": "Eindeutige Kennung",
|
|
527
|
+
"record.metadata.update": "Aktualisierungsdatum",
|
|
521
528
|
"record.metadata.updateFrequency": "Aktualisierungsfrequenz der Daten",
|
|
522
|
-
"record.metadata.updatedOn": "
|
|
529
|
+
"record.metadata.updatedOn": "Informationen geändert am",
|
|
523
530
|
"record.metadata.usage": "Nutzung und Einschränkungen",
|
|
524
531
|
"record.metadata.userFeedbacks": "",
|
|
525
532
|
"record.metadata.userFeedbacks.anonymousUser": "",
|
|
@@ -534,6 +541,7 @@
|
|
|
534
541
|
"record.tab.chart": "Diagramm",
|
|
535
542
|
"record.tab.data": "Tabelle",
|
|
536
543
|
"record.tab.map": "Karte",
|
|
544
|
+
"record.tab.stac": "",
|
|
537
545
|
"record.was.created.time": "erstellte diesen Ressource {time}",
|
|
538
546
|
"records": "Datensätze",
|
|
539
547
|
"results.layout.selectOne": "Layout auswählen",
|
|
@@ -542,7 +550,6 @@
|
|
|
542
550
|
"results.records.hits.found": "{hits, plural, =0{Keine Ressource entsprechen der angegebenen Suche.} one{1 Ressource gefunden.} other{{hits} Ressourcen gefunden.}}",
|
|
543
551
|
"results.records.hits.selected": "{ amount } ausgewählt",
|
|
544
552
|
"results.showMore": "Mehr Ergebnisse anzeigen...",
|
|
545
|
-
"results.sortBy.changeDate": "",
|
|
546
553
|
"results.sortBy.dateStamp": "Neueste",
|
|
547
554
|
"results.sortBy.popularity": "Beliebtheit",
|
|
548
555
|
"results.sortBy.qualityScore": "Fertigstellungsanzeige",
|
|
@@ -626,6 +633,10 @@
|
|
|
626
633
|
"service.metadata.spatialExtent": "",
|
|
627
634
|
"share.tab.permalink": "Teilen",
|
|
628
635
|
"share.tab.webComponent": "Integrieren",
|
|
636
|
+
"stac.filter.from": "",
|
|
637
|
+
"stac.filter.period": "",
|
|
638
|
+
"stac.filter.reset": "",
|
|
639
|
+
"stac.filter.to": "",
|
|
629
640
|
"table.loading.data": "Daten werden geladen...",
|
|
630
641
|
"table.object.count": "Objekte in diesem Datensatz",
|
|
631
642
|
"table.paginator.firstPage": "Erste Seite",
|
package/translations/en.json
CHANGED
|
@@ -241,7 +241,6 @@
|
|
|
241
241
|
"editor.record.form.topics.inspire.intelligence": "Intelligence / Military",
|
|
242
242
|
"editor.record.form.topics.inspire.location": "Location",
|
|
243
243
|
"editor.record.form.topics.inspire.oceans": "Oceans",
|
|
244
|
-
"editor.record.form.topics.inspire.placeholder": "Select an INSPIRE theme",
|
|
245
244
|
"editor.record.form.topics.inspire.planning": "Planning / Cadastre",
|
|
246
245
|
"editor.record.form.topics.inspire.society": "Society",
|
|
247
246
|
"editor.record.form.topics.inspire.structure": "Structure",
|
|
@@ -419,6 +418,8 @@
|
|
|
419
418
|
"record.metadata.api.accessServiceProtocol.maplibre-style": "maplibre-style",
|
|
420
419
|
"record.metadata.api.accessServiceProtocol.ogcFeatures": "ogcFeatures",
|
|
421
420
|
"record.metadata.api.accessServiceProtocol.other": "other",
|
|
421
|
+
"record.metadata.api.accessServiceProtocol.postgis": "PostGIS",
|
|
422
|
+
"record.metadata.api.accessServiceProtocol.stac": "STAC",
|
|
422
423
|
"record.metadata.api.accessServiceProtocol.tms": "tms",
|
|
423
424
|
"record.metadata.api.accessServiceProtocol.wfs": "wfs",
|
|
424
425
|
"record.metadata.api.accessServiceProtocol.wms": "wms",
|
|
@@ -466,7 +467,8 @@
|
|
|
466
467
|
"record.metadata.isGeographical": "Geographical dataset",
|
|
467
468
|
"record.metadata.keywords": "Keywords",
|
|
468
469
|
"record.metadata.languages": "Languages",
|
|
469
|
-
"record.metadata.
|
|
470
|
+
"record.metadata.link.postgis.table": "table :",
|
|
471
|
+
"record.metadata.link.postgis.tooltip": "PostGIS resources do not have access links",
|
|
470
472
|
"record.metadata.linked.datasets": "Associated datasets",
|
|
471
473
|
"record.metadata.linked.records": "Associated content",
|
|
472
474
|
"record.metadata.linked.reuses": "Associated reuses",
|
|
@@ -507,6 +509,9 @@
|
|
|
507
509
|
"record.metadata.quality.updateFrequency.failed": "Update frequency is not specified",
|
|
508
510
|
"record.metadata.quality.updateFrequency.success": "Update frequency is specified",
|
|
509
511
|
"record.metadata.related": "Explore the catalog",
|
|
512
|
+
"record.metadata.resourceCreated": "Created on {date}",
|
|
513
|
+
"record.metadata.resourcePublished": "Published on {date}",
|
|
514
|
+
"record.metadata.resourceUpdated": "Last updated on {date}",
|
|
510
515
|
"record.metadata.ressources.and.links": "Resources and links",
|
|
511
516
|
"record.metadata.sheet": "Original metadata",
|
|
512
517
|
"record.metadata.status": "Status",
|
|
@@ -519,8 +524,9 @@
|
|
|
519
524
|
"record.metadata.title": "Title",
|
|
520
525
|
"record.metadata.topics": "Categories",
|
|
521
526
|
"record.metadata.uniqueId": "Unique Identifier",
|
|
527
|
+
"record.metadata.update": "Date of update",
|
|
522
528
|
"record.metadata.updateFrequency": "Data Update Frequency",
|
|
523
|
-
"record.metadata.updatedOn": "
|
|
529
|
+
"record.metadata.updatedOn": "Metadata modified on",
|
|
524
530
|
"record.metadata.usage": "License and Conditions",
|
|
525
531
|
"record.metadata.userFeedbacks": "Questions / Answers",
|
|
526
532
|
"record.metadata.userFeedbacks.anonymousUser": "In order to leave a comment, please log in.",
|
|
@@ -535,6 +541,7 @@
|
|
|
535
541
|
"record.tab.chart": "Chart",
|
|
536
542
|
"record.tab.data": "Table",
|
|
537
543
|
"record.tab.map": "Map",
|
|
544
|
+
"record.tab.stac": "STAC",
|
|
538
545
|
"record.was.created.time": "created this record {time}",
|
|
539
546
|
"records": "datasets",
|
|
540
547
|
"results.layout.selectOne": "Results layout",
|
|
@@ -543,7 +550,6 @@
|
|
|
543
550
|
"results.records.hits.found": "{hits, plural, =0{No record match the specified search.} one{1 record found.} other{{hits} records found.}}",
|
|
544
551
|
"results.records.hits.selected": "{ amount } selected",
|
|
545
552
|
"results.showMore": "Show more results...",
|
|
546
|
-
"results.sortBy.changeDate": "Last modification",
|
|
547
553
|
"results.sortBy.dateStamp": "Newest",
|
|
548
554
|
"results.sortBy.popularity": "Popularity",
|
|
549
555
|
"results.sortBy.qualityScore": "Completion score",
|
|
@@ -627,6 +633,10 @@
|
|
|
627
633
|
"service.metadata.spatialExtent": "Spatial extent",
|
|
628
634
|
"share.tab.permalink": "Share",
|
|
629
635
|
"share.tab.webComponent": "Integrate",
|
|
636
|
+
"stac.filter.from": "From",
|
|
637
|
+
"stac.filter.period": "Period",
|
|
638
|
+
"stac.filter.reset": "Reset filters",
|
|
639
|
+
"stac.filter.to": "To",
|
|
630
640
|
"table.loading.data": "Loading data...",
|
|
631
641
|
"table.object.count": "Objects in this dataset",
|
|
632
642
|
"table.paginator.firstPage": "First page",
|
package/translations/es.json
CHANGED
|
@@ -418,6 +418,8 @@
|
|
|
418
418
|
"record.metadata.api.accessServiceProtocol.maplibre-style": "",
|
|
419
419
|
"record.metadata.api.accessServiceProtocol.ogcFeatures": "",
|
|
420
420
|
"record.metadata.api.accessServiceProtocol.other": "",
|
|
421
|
+
"record.metadata.api.accessServiceProtocol.postgis": "",
|
|
422
|
+
"record.metadata.api.accessServiceProtocol.stac": "",
|
|
421
423
|
"record.metadata.api.accessServiceProtocol.tms": "",
|
|
422
424
|
"record.metadata.api.accessServiceProtocol.wfs": "",
|
|
423
425
|
"record.metadata.api.accessServiceProtocol.wms": "",
|
|
@@ -465,7 +467,8 @@
|
|
|
465
467
|
"record.metadata.isGeographical": "",
|
|
466
468
|
"record.metadata.keywords": "",
|
|
467
469
|
"record.metadata.languages": "",
|
|
468
|
-
"record.metadata.
|
|
470
|
+
"record.metadata.link.postgis.table": "",
|
|
471
|
+
"record.metadata.link.postgis.tooltip": "",
|
|
469
472
|
"record.metadata.linked.datasets": "",
|
|
470
473
|
"record.metadata.linked.records": "",
|
|
471
474
|
"record.metadata.linked.reuses": "",
|
|
@@ -506,6 +509,9 @@
|
|
|
506
509
|
"record.metadata.quality.updateFrequency.failed": "",
|
|
507
510
|
"record.metadata.quality.updateFrequency.success": "",
|
|
508
511
|
"record.metadata.related": "",
|
|
512
|
+
"record.metadata.resourceCreated": "",
|
|
513
|
+
"record.metadata.resourcePublished": "",
|
|
514
|
+
"record.metadata.resourceUpdated": "",
|
|
509
515
|
"record.metadata.ressources.and.links": "Recursos y enlaces",
|
|
510
516
|
"record.metadata.sheet": "",
|
|
511
517
|
"record.metadata.status": "",
|
|
@@ -518,6 +524,7 @@
|
|
|
518
524
|
"record.metadata.title": "",
|
|
519
525
|
"record.metadata.topics": "",
|
|
520
526
|
"record.metadata.uniqueId": "",
|
|
527
|
+
"record.metadata.update": "",
|
|
521
528
|
"record.metadata.updateFrequency": "",
|
|
522
529
|
"record.metadata.updatedOn": "",
|
|
523
530
|
"record.metadata.usage": "",
|
|
@@ -534,6 +541,7 @@
|
|
|
534
541
|
"record.tab.chart": "",
|
|
535
542
|
"record.tab.data": "",
|
|
536
543
|
"record.tab.map": "",
|
|
544
|
+
"record.tab.stac": "",
|
|
537
545
|
"record.was.created.time": "",
|
|
538
546
|
"records": "",
|
|
539
547
|
"results.layout.selectOne": "",
|
|
@@ -542,7 +550,6 @@
|
|
|
542
550
|
"results.records.hits.found": "",
|
|
543
551
|
"results.records.hits.selected": "",
|
|
544
552
|
"results.showMore": "",
|
|
545
|
-
"results.sortBy.changeDate": "",
|
|
546
553
|
"results.sortBy.dateStamp": "",
|
|
547
554
|
"results.sortBy.popularity": "",
|
|
548
555
|
"results.sortBy.qualityScore": "",
|
|
@@ -626,6 +633,10 @@
|
|
|
626
633
|
"service.metadata.spatialExtent": "",
|
|
627
634
|
"share.tab.permalink": "",
|
|
628
635
|
"share.tab.webComponent": "",
|
|
636
|
+
"stac.filter.from": "",
|
|
637
|
+
"stac.filter.period": "",
|
|
638
|
+
"stac.filter.reset": "",
|
|
639
|
+
"stac.filter.to": "",
|
|
629
640
|
"table.loading.data": "",
|
|
630
641
|
"table.object.count": "",
|
|
631
642
|
"table.paginator.firstPage": "Primera página",
|