geonetwork-ui 2.7.0-dev.30c4f9cfa → 2.7.0-dev.3d703fd88

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.
Files changed (64) hide show
  1. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +18 -4
  2. package/esm2022/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.mjs +1 -1
  3. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  4. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +10 -2
  5. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +31 -12
  6. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +73 -26
  7. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +4 -2
  8. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +4 -3
  9. package/esm2022/libs/ui/map/src/lib/components/map-legend/map-legend.component.mjs +2 -2
  10. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +3 -1
  11. package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
  12. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +9 -1
  13. package/esm2022/translations/de.json +2 -1
  14. package/esm2022/translations/en.json +2 -1
  15. package/esm2022/translations/es.json +2 -1
  16. package/esm2022/translations/fr.json +2 -1
  17. package/esm2022/translations/it.json +2 -1
  18. package/esm2022/translations/nl.json +2 -1
  19. package/esm2022/translations/pt.json +2 -1
  20. package/esm2022/translations/sk.json +2 -1
  21. package/fesm2022/geonetwork-ui.mjs +159 -50
  22. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  23. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +1 -0
  24. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  25. package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts +1 -0
  26. package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts.map +1 -1
  27. package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -0
  28. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  29. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +3 -2
  30. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  31. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +8 -4
  32. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  33. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +12 -5
  34. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  35. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  36. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -1
  37. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  38. package/libs/util/app-config/src/lib/model.d.ts +1 -0
  39. package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
  40. package/libs/util/shared/src/lib/links/link-utils.d.ts +1 -0
  41. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  42. package/package.json +1 -1
  43. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +25 -4
  44. package/src/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.ts +1 -0
  45. package/src/libs/common/domain/src/lib/platform.service.interface.ts +2 -0
  46. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +10 -1
  47. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +2 -0
  48. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +34 -15
  49. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +5 -2
  50. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +67 -22
  51. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +5 -1
  52. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +6 -1
  53. package/src/libs/ui/map/src/lib/components/map-legend/map-legend.component.ts +1 -1
  54. package/src/libs/util/app-config/src/lib/app-config.ts +2 -0
  55. package/src/libs/util/app-config/src/lib/model.ts +1 -0
  56. package/src/libs/util/shared/src/lib/links/link-utils.ts +9 -0
  57. package/translations/de.json +2 -1
  58. package/translations/en.json +2 -1
  59. package/translations/es.json +2 -1
  60. package/translations/fr.json +2 -1
  61. package/translations/it.json +2 -1
  62. package/translations/nl.json +2 -1
  63. package/translations/pt.json +2 -1
  64. package/translations/sk.json +2 -1
@@ -9,7 +9,7 @@ import {
9
9
  ViewChild,
10
10
  } from '@angular/core'
11
11
  import { MapUtilsService } from '../../../../../../libs/feature/map/src'
12
- import { getLinkLabel } from '../../../../../../libs/util/shared/src'
12
+ import { getLinkId, getLinkLabel } from '../../../../../../libs/util/shared/src'
13
13
  import {
14
14
  BehaviorSubject,
15
15
  combineLatest,
@@ -100,15 +100,28 @@ export class MapViewComponent implements AfterViewInit {
100
100
  @Input() set exceedsLimit(value: boolean) {
101
101
  this.excludeWfs$.next(value)
102
102
  }
103
+ linkFromConfig$ = new BehaviorSubject(null)
104
+ _selectedChoice = null
105
+ _styleFromConfig = null
106
+
107
+ linkMap: Map<string, DatasetOnlineResource> = new Map()
103
108
  @Input() set selectedView(value: string) {
104
- if (value === 'map') {
105
- this.selectedLink$.pipe(take(1)).subscribe((link) => {
106
- this.linkSelected.emit(link)
107
- })
109
+ this.selectedView$.next(value)
110
+ }
111
+ @Input() set datavizConfig(value: any) {
112
+ if (value.view === 'map') {
113
+ this.selectedView$.next(value.view)
114
+ if (value.styleTMSIndex) {
115
+ this._styleFromConfig = value.styleTMSIndex
116
+ }
117
+ if (value.source) {
118
+ this.linkFromConfig$.next(value.source)
119
+ }
108
120
  }
109
121
  }
110
122
  @Input() displaySource = true
111
123
  @Output() linkSelected = new EventEmitter<DatasetOnlineResource>()
124
+ @Output() styleSelected = new EventEmitter<number>()
112
125
  @ViewChild('mapContainer') mapContainer: MapContainerComponent
113
126
 
114
127
  excludeWfs$ = new BehaviorSubject(false)
@@ -119,12 +132,13 @@ export class MapViewComponent implements AfterViewInit {
119
132
  loading = false
120
133
  error = null
121
134
 
122
- selectLinkToDisplay(i: number) {
123
- this.selectedLinkIndex$.next(i)
135
+ selectLinkToDisplay(id: string) {
136
+ this.selectedLinkId$.next(id)
124
137
  }
125
138
 
126
139
  selectStyleToDisplay(i: number) {
127
- this.selectedStyleIndex$.next(i)
140
+ this.selectedStyleId$.next(i)
141
+ this.styleSelected.emit(i)
128
142
  }
129
143
 
130
144
  toggleLegend() {
@@ -146,29 +160,54 @@ export class MapViewComponent implements AfterViewInit {
146
160
  )
147
161
 
148
162
  dropdownChoices$ = this.compatibleMapLinks$.pipe(
149
- map((links) =>
150
- links.length
151
- ? links.map((link, index) => ({
163
+ map((links) => {
164
+ this.linkMap.clear()
165
+ links.forEach((link: DatasetOnlineResource) =>
166
+ this.linkMap.set(getLinkId(link), link)
167
+ )
168
+ return links.length
169
+ ? links.map((link) => ({
152
170
  label: getLinkLabel(link),
153
- value: index,
171
+ value: getLinkId(link),
154
172
  }))
155
- : [{ label: 'map.dropdown.placeholder', value: 0 }]
156
- )
173
+ : [{ label: 'map.dropdown.placeholder', value: '' }]
174
+ })
157
175
  )
158
176
 
159
- selectedLinkIndex$ = new BehaviorSubject(0)
160
- private selectedStyleIndex$ = new BehaviorSubject(0)
177
+ selectedView$ = new BehaviorSubject(null)
178
+ selectedLinkId$ = new BehaviorSubject(null)
179
+ selectedStyleId$ = new BehaviorSubject(null)
161
180
 
162
181
  selectedSourceLink$ = combineLatest([
163
182
  this.compatibleMapLinks$,
164
- this.selectedLinkIndex$.pipe(distinctUntilChanged()),
183
+ this.linkFromConfig$,
184
+ this.selectedLinkId$.pipe(distinctUntilChanged()),
185
+ this.selectedView$,
165
186
  ]).pipe(
166
187
  tap(() => {
167
188
  this.error = null
168
189
  }),
169
- map(([links, index]) => {
170
- this.linkSelected.emit(links[index])
171
- return links[index]
190
+ map(([compatibleLinks, configLink, id, view]) => {
191
+ if (view === 'map') {
192
+ if (
193
+ configLink &&
194
+ !id &&
195
+ compatibleLinks.some(
196
+ (link) => getLinkId(link) === getLinkId(configLink)
197
+ )
198
+ ) {
199
+ this._selectedChoice = getLinkId(configLink)
200
+ this.linkSelected.emit(configLink)
201
+ return configLink
202
+ } else if (id) {
203
+ this._selectedChoice = id
204
+ this.linkSelected.emit(this.linkMap.get(id))
205
+ return this.linkMap.get(id)
206
+ } else {
207
+ this.linkSelected.emit(compatibleLinks[0])
208
+ return compatibleLinks[0]
209
+ }
210
+ }
172
211
  })
173
212
  )
174
213
 
@@ -205,7 +244,13 @@ export class MapViewComponent implements AfterViewInit {
205
244
  }
206
245
  return of([])
207
246
  }),
208
- tap(() => this.selectedStyleIndex$.next(0)),
247
+ tap((styles) => {
248
+ if (this._styleFromConfig && this._styleFromConfig <= styles.length) {
249
+ this.selectedStyleId$.next(this._styleFromConfig)
250
+ } else {
251
+ this.selectedStyleId$.next(0)
252
+ }
253
+ }),
209
254
  shareReplay(1)
210
255
  )
211
256
 
@@ -228,7 +273,7 @@ export class MapViewComponent implements AfterViewInit {
228
273
  selectedLink$ = combineLatest([
229
274
  this.selectedSourceLink$,
230
275
  this.styleLinks$,
231
- this.selectedStyleIndex$.pipe(distinctUntilChanged()),
276
+ this.selectedStyleId$.pipe(distinctUntilChanged()),
232
277
  ]).pipe(
233
278
  map(([src, styles, styleIdx]) => (styles.length ? styles[styleIdx] : src)),
234
279
  shareReplay(1)
@@ -23,7 +23,11 @@ export class MdViewEffects {
23
23
  ofType(MdViewActions.loadFullMetadata),
24
24
  switchMap(({ uuid }) => this.recordsRepository.getRecord(uuid)),
25
25
  map((record) => {
26
- if (record === null || !this.router.url.includes(record.kind)) {
26
+ if (
27
+ record === null ||
28
+ (this.router.url !== '/' && // FIXME: special case for WC, find a better way
29
+ !this.router.url.includes(record.kind))
30
+ ) {
27
31
  return MdViewActions.loadFullMetadataFailure({ notFound: true })
28
32
  }
29
33
  return MdViewActions.loadFullMetadataSuccess({ full: record })
@@ -14,7 +14,11 @@ import {
14
14
  } from '@angular/core'
15
15
  import { MatSort, MatSortModule } from '@angular/material/sort'
16
16
  import { MatTableModule } from '@angular/material/table'
17
- import { TranslatePipe, TranslateService } from '@ngx-translate/core'
17
+ import {
18
+ TranslateDirective,
19
+ TranslatePipe,
20
+ TranslateService,
21
+ } from '@ngx-translate/core'
18
22
  import { DataTableDataSource } from './data-table.data.source'
19
23
  import { BaseReader, FetchError } from '../../../../../../libs/util/data-fetcher/src'
20
24
  import {
@@ -53,6 +57,7 @@ export interface TableItemModel {
53
57
  PopupAlertComponent,
54
58
  LetDirective,
55
59
  TranslatePipe,
60
+ TranslateDirective,
56
61
  ],
57
62
  providers: [{ provide: MatPaginatorIntl, useClass: CustomMatPaginatorIntl }],
58
63
  selector: 'gn-ui-data-table',
@@ -27,7 +27,7 @@ export class MapLegendComponent implements OnChanges {
27
27
  async ngOnChanges(changes: SimpleChanges) {
28
28
  if ('context' in changes) {
29
29
  const mapContext = changes['context'].currentValue
30
- if (mapContext.layers && mapContext.layers.length > 0) {
30
+ if (mapContext?.layers && mapContext.layers.length > 0) {
31
31
  const mapContextLayer = mapContext.layers[0]
32
32
  this.legendHTML = await createLegendFromLayer(mapContextLayer)
33
33
  if (this.legendHTML) {
@@ -102,6 +102,7 @@ export function loadAppConfig() {
102
102
  'web_component_embedder_url',
103
103
  'languages',
104
104
  'contact_email',
105
+ 'reuse_form_url',
105
106
  ],
106
107
  warnings,
107
108
  errors
@@ -131,6 +132,7 @@ export function loadAppConfig() {
131
132
  parsedGlobalSection.web_component_embedder_url,
132
133
  LANGUAGES: parsedGlobalSection.languages,
133
134
  CONTACT_EMAIL: parsedGlobalSection.contact_email,
135
+ REUSE_FORM_URL: parsedGlobalSection.reuse_form_url,
134
136
  } as GlobalConfig)
135
137
 
136
138
  const parsedLayersSections = parseMultiConfigSection(
@@ -11,6 +11,7 @@ export interface GlobalConfig {
11
11
  WEB_COMPONENT_EMBEDDER_URL?: string
12
12
  LANGUAGES?: string[]
13
13
  CONTACT_EMAIL?: string
14
+ REUSE_FORM_URL?: string
14
15
  }
15
16
 
16
17
  export interface LayerConfig {
@@ -230,6 +230,15 @@ export function getBadgeColor(linkFormat: FileFormat): string {
230
230
  return 'var(--color-gray-700)' // Default color ?
231
231
  }
232
232
 
233
+ export function getLinkId(link: DatasetOnlineResource): string {
234
+ const href = link.url.href ?? link.url
235
+ return `${getLinkLabel(link)
236
+ .replace(/é/g, 'e')
237
+ .replace(/è/g, 'e')
238
+ .normalize('NFD')
239
+ .replace(/[\u0300-\u036f]/g, '')}-${href}`
240
+ }
241
+
233
242
  export function getLinkLabel(
234
243
  link: DatasetOnlineResource | ServiceOnlineResource
235
244
  ): string {
@@ -340,6 +340,7 @@
340
340
  "map.layer.add": "Hinzufügen",
341
341
  "map.layers.available": "Verfügbare Layer",
342
342
  "map.layers.list": "Ebenen",
343
+ "map.legend.title": "Legende",
343
344
  "map.loading.data": "Kartendaten werden geladen...",
344
345
  "map.loading.service": "Dienst wird geladen...",
345
346
  "map.navigation.message": "Bitte verwenden Sie STRG + Maus (oder zwei Finger auf einem Mobilgerät), um die Karte zu navigieren",
@@ -373,7 +374,6 @@
373
374
  "record.action.rollback": "",
374
375
  "record.action.switchLang": "",
375
376
  "record.action.view": "Anzeigen",
376
- "record.card.metadata.contact": "",
377
377
  "record.externalViewer.open": "In externem Kartenviewer öffnen",
378
378
  "record.feature.catalog.number.total.attribute": "",
379
379
  "record.feature.catalog.number.total.object": "",
@@ -579,6 +579,7 @@
579
579
  "service.metadata.filter.noLayers": "",
580
580
  "service.metadata.other": "",
581
581
  "service.metadata.question": "",
582
+ "service.metadata.reuse": "",
582
583
  "service.metadata.search": "",
583
584
  "service.metadata.search.clear": "",
584
585
  "service.metadata.spatialExtent": "",
@@ -340,6 +340,7 @@
340
340
  "map.layer.add": "Add",
341
341
  "map.layers.available": "Available Layers",
342
342
  "map.layers.list": "Layers",
343
+ "map.legend.title": "Legend",
343
344
  "map.loading.data": "Loading map data...",
344
345
  "map.loading.service": "Loading service...",
345
346
  "map.navigation.message": "Please use CTRL + mouse (or two fingers on mobile) to navigate the map",
@@ -373,7 +374,6 @@
373
374
  "record.action.rollback": "Rollback",
374
375
  "record.action.switchLang": "Switch to default",
375
376
  "record.action.view": "View",
376
- "record.card.metadata.contact": "Metadata Contact",
377
377
  "record.externalViewer.open": "Open in the external map viewer",
378
378
  "record.feature.catalog.number.total.attribute": "Total amount of objects",
379
379
  "record.feature.catalog.number.total.object": "Total amount of attributes",
@@ -579,6 +579,7 @@
579
579
  "service.metadata.filter.noLayers": "No layer matches your search",
580
580
  "service.metadata.other": "Other information",
581
581
  "service.metadata.question": "Ask a question",
582
+ "service.metadata.reuse": "Declare a reuse",
582
583
  "service.metadata.search": "Search through the layer list",
583
584
  "service.metadata.search.clear": "Clear the layer search",
584
585
  "service.metadata.spatialExtent": "Spatial extent",
@@ -340,6 +340,7 @@
340
340
  "map.layer.add": "",
341
341
  "map.layers.available": "",
342
342
  "map.layers.list": "",
343
+ "map.legend.title": "",
343
344
  "map.loading.data": "",
344
345
  "map.loading.service": "",
345
346
  "map.navigation.message": "",
@@ -373,7 +374,6 @@
373
374
  "record.action.rollback": "",
374
375
  "record.action.switchLang": "",
375
376
  "record.action.view": "",
376
- "record.card.metadata.contact": "",
377
377
  "record.externalViewer.open": "",
378
378
  "record.feature.catalog.number.total.attribute": "",
379
379
  "record.feature.catalog.number.total.object": "",
@@ -579,6 +579,7 @@
579
579
  "service.metadata.filter.noLayers": "",
580
580
  "service.metadata.other": "",
581
581
  "service.metadata.question": "",
582
+ "service.metadata.reuse": "",
582
583
  "service.metadata.search": "",
583
584
  "service.metadata.search.clear": "",
584
585
  "service.metadata.spatialExtent": "",
@@ -340,6 +340,7 @@
340
340
  "map.layer.add": "Ajouter",
341
341
  "map.layers.available": "Couches disponibles",
342
342
  "map.layers.list": "Couches",
343
+ "map.legend.title": "Légende",
343
344
  "map.loading.data": "Chargement des données...",
344
345
  "map.loading.service": "Chargement du service...",
345
346
  "map.navigation.message": "Veuillez utiliser CTRL + souris (ou deux doigts sur mobile) pour naviguer sur la carte",
@@ -373,7 +374,6 @@
373
374
  "record.action.rollback": "Restaurer",
374
375
  "record.action.switchLang": "Marquer par défaut",
375
376
  "record.action.view": "Voir",
376
- "record.card.metadata.contact": "Contact de la métadonnée ",
377
377
  "record.externalViewer.open": "Ouvrir dans le visualiseur externe",
378
378
  "record.feature.catalog.number.total.attribute": "Nombre total d'attributs",
379
379
  "record.feature.catalog.number.total.object": "Nombre total d'objets",
@@ -579,6 +579,7 @@
579
579
  "service.metadata.filter.noLayers": "Aucune couche ne correspond à votre recherche",
580
580
  "service.metadata.other": "Autres informations",
581
581
  "service.metadata.question": "Poser une question",
582
+ "service.metadata.reuse": "Déclarer une réutilisation",
582
583
  "service.metadata.search": "Rechercher dans la liste des couches",
583
584
  "service.metadata.search.clear": "Effacer la recherche des couches",
584
585
  "service.metadata.spatialExtent": "Etendue spatiale",
@@ -340,6 +340,7 @@
340
340
  "map.layer.add": "Aggiungi",
341
341
  "map.layers.available": "Layer disponibili",
342
342
  "map.layers.list": "Layers",
343
+ "map.legend.title": "",
343
344
  "map.loading.data": "Caricamento dati...",
344
345
  "map.loading.service": "Caricamento del servizio...",
345
346
  "map.navigation.message": "Si prega di utilizzare CTRL + mouse (o due dita su mobile) per navigare sulla mappa",
@@ -373,7 +374,6 @@
373
374
  "record.action.rollback": "Annulla",
374
375
  "record.action.switchLang": "",
375
376
  "record.action.view": "Visualizza",
376
- "record.card.metadata.contact": "Contatto del metadata",
377
377
  "record.externalViewer.open": "Aprire nel visualizzatore esterno",
378
378
  "record.feature.catalog.number.total.attribute": "Quantità totale di oggetti",
379
379
  "record.feature.catalog.number.total.object": "Quantità totale di attributi",
@@ -579,6 +579,7 @@
579
579
  "service.metadata.filter.noLayers": "Nessun layer abbina la ricerca",
580
580
  "service.metadata.other": "Altri informazioni",
581
581
  "service.metadata.question": "Fare una domanda",
582
+ "service.metadata.reuse": "",
582
583
  "service.metadata.search": "Cerca nella lista del layers",
583
584
  "service.metadata.search.clear": "Cancella la ricerca del layers",
584
585
  "service.metadata.spatialExtent": "Estensione spaziale",
@@ -340,6 +340,7 @@
340
340
  "map.layer.add": "",
341
341
  "map.layers.available": "",
342
342
  "map.layers.list": "",
343
+ "map.legend.title": "",
343
344
  "map.loading.data": "",
344
345
  "map.loading.service": "",
345
346
  "map.navigation.message": "",
@@ -373,7 +374,6 @@
373
374
  "record.action.rollback": "",
374
375
  "record.action.switchLang": "",
375
376
  "record.action.view": "",
376
- "record.card.metadata.contact": "",
377
377
  "record.externalViewer.open": "",
378
378
  "record.feature.catalog.number.total.attribute": "",
379
379
  "record.feature.catalog.number.total.object": "",
@@ -579,6 +579,7 @@
579
579
  "service.metadata.filter.noLayers": "",
580
580
  "service.metadata.other": "",
581
581
  "service.metadata.question": "",
582
+ "service.metadata.reuse": "",
582
583
  "service.metadata.search": "",
583
584
  "service.metadata.search.clear": "",
584
585
  "service.metadata.spatialExtent": "",
@@ -340,6 +340,7 @@
340
340
  "map.layer.add": "",
341
341
  "map.layers.available": "",
342
342
  "map.layers.list": "",
343
+ "map.legend.title": "",
343
344
  "map.loading.data": "",
344
345
  "map.loading.service": "",
345
346
  "map.navigation.message": "",
@@ -373,7 +374,6 @@
373
374
  "record.action.rollback": "",
374
375
  "record.action.switchLang": "",
375
376
  "record.action.view": "",
376
- "record.card.metadata.contact": "",
377
377
  "record.externalViewer.open": "",
378
378
  "record.feature.catalog.number.total.attribute": "",
379
379
  "record.feature.catalog.number.total.object": "",
@@ -579,6 +579,7 @@
579
579
  "service.metadata.filter.noLayers": "",
580
580
  "service.metadata.other": "",
581
581
  "service.metadata.question": "",
582
+ "service.metadata.reuse": "",
582
583
  "service.metadata.search": "",
583
584
  "service.metadata.search.clear": "",
584
585
  "service.metadata.spatialExtent": "",
@@ -340,6 +340,7 @@
340
340
  "map.layer.add": "Pridať",
341
341
  "map.layers.available": "Dostupné vrsty",
342
342
  "map.layers.list": "Vrstvy",
343
+ "map.legend.title": "",
343
344
  "map.loading.data": "Načítavanie dát mapy...",
344
345
  "map.loading.service": "Načítavanie služieb...",
345
346
  "map.navigation.message": "Použite prosím CTRL + myš (alebo dva prsty na mobilnom zariadení) na navigáciu po mape",
@@ -373,7 +374,6 @@
373
374
  "record.action.rollback": "",
374
375
  "record.action.switchLang": "",
375
376
  "record.action.view": "Zobraziť",
376
- "record.card.metadata.contact": "",
377
377
  "record.externalViewer.open": "Otvoriť v externom mapovom prehliadači",
378
378
  "record.feature.catalog.number.total.attribute": "",
379
379
  "record.feature.catalog.number.total.object": "",
@@ -579,6 +579,7 @@
579
579
  "service.metadata.filter.noLayers": "",
580
580
  "service.metadata.other": "",
581
581
  "service.metadata.question": "",
582
+ "service.metadata.reuse": "",
582
583
  "service.metadata.search": "",
583
584
  "service.metadata.search.clear": "",
584
585
  "service.metadata.spatialExtent": "",