geonetwork-ui 2.9.0-dev.079fe7365 → 2.9.0-dev.083d7682e

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 (37) hide show
  1. package/fesm2022/geonetwork-ui.mjs +523 -504
  2. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  3. package/index.d.ts +239 -159
  4. package/index.d.ts.map +1 -1
  5. package/package.json +1 -1
  6. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +5 -1
  7. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +13 -6
  8. package/src/libs/feature/editor/src/index.ts +8 -7
  9. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +6 -1
  10. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +5 -1
  11. package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +4 -0
  12. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +2 -2
  13. package/src/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.html +4 -4
  14. package/src/libs/feature/router/src/lib/default/router.module.ts +3 -3
  15. package/src/libs/feature/router/src/lib/default/router.service.ts +2 -2
  16. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +9 -3
  17. package/src/libs/feature/search/src/lib/utils/service/fields.ts +5 -5
  18. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +2 -2
  19. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.ts +2 -3
  20. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +1 -1
  21. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.ts +3 -3
  22. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +1 -1
  23. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.html +1 -1
  24. package/src/libs/util/app-config/src/lib/app-config.ts +8 -2
  25. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -0
  26. package/src/libs/util/app-config/src/lib/model.ts +1 -0
  27. package/src/libs/util/shared/src/lib/gn-ui-version.ts +5 -4
  28. package/src/libs/util/shared/src/lib/services/theme.service.ts +9 -23
  29. package/tailwind.base.config.js +3 -2
  30. package/translations/de.json +2 -1
  31. package/translations/en.json +2 -1
  32. package/translations/es.json +1 -0
  33. package/translations/fr.json +2 -1
  34. package/translations/it.json +2 -1
  35. package/translations/nl.json +1 -0
  36. package/translations/pt.json +1 -0
  37. package/translations/sk.json +2 -1
@@ -1,6 +1,5 @@
1
- import { ModuleWithProviders, NgModule, inject } from '@angular/core'
1
+ import { inject, ModuleWithProviders, NgModule } from '@angular/core'
2
2
  import { RouteReuseStrategy } from '@angular/router'
3
- import { EffectsModule } from '@ngrx/effects'
4
3
  import {
5
4
  FullRouterStateSerializer,
6
5
  routerReducer,
@@ -11,8 +10,9 @@ import { ROUTER_STATE_KEY } from './constants'
11
10
  import { RouterService } from './router.service'
12
11
  import { SearchRouteReuseStrategy } from './SearchRouteReuseStrategy'
13
12
  import { RouterFacade } from './state/router.facade'
14
- import { RouterEffects } from './state/router.effects'
15
13
  import { ROUTER_CONFIG, RouterConfigModel } from './router.config'
14
+ import { RouterEffects } from './state/router.effects'
15
+ import { EffectsModule } from '@ngrx/effects'
16
16
 
17
17
  @NgModule({
18
18
  imports: [
@@ -1,10 +1,10 @@
1
- import { Injectable, inject } from '@angular/core'
1
+ import { inject, Injectable } from '@angular/core'
2
2
  import {
3
3
  ROUTER_ROUTE_DATASET,
4
4
  ROUTER_ROUTE_ORGANIZATION,
5
+ ROUTER_ROUTE_REUSE,
5
6
  ROUTER_ROUTE_SEARCH,
6
7
  ROUTER_ROUTE_SERVICE,
7
- ROUTER_ROUTE_REUSE,
8
8
  } from '.'
9
9
  import { Router, Routes } from '@angular/router'
10
10
  import { ROUTER_CONFIG, RouterConfigModel } from './router.config'
@@ -138,9 +138,15 @@ export class FieldsService {
138
138
  )
139
139
  })
140
140
  return forkJoin(filtersByField$).pipe(
141
- map((filters) =>
142
- filters.reduce((prev, curr) => ({ ...prev, ...curr }), {})
143
- )
141
+ map((filters) => {
142
+ if (typeof filters === 'string') {
143
+ return filters
144
+ }
145
+ return (filters as FieldFilters[]).reduce(
146
+ (prev, curr) => ({ ...prev, ...curr }),
147
+ {}
148
+ )
149
+ })
144
150
  )
145
151
  }
146
152
 
@@ -36,7 +36,7 @@ export abstract class AbstractSearchField {
36
36
  abstract getAvailableValues(): Observable<FieldAvailableValue[] | DateRange[]>
37
37
  abstract getFiltersForValues(
38
38
  values: FieldValue[] | DateRange[]
39
- ): Observable<FieldFilters>
39
+ ): Observable<FieldFilters | string>
40
40
  abstract getValuesForFilter(
41
41
  filters: FieldFilters
42
42
  ): Observable<FieldValue[] | FieldValue | DateRange>
@@ -89,7 +89,7 @@ export class SimpleSearchField implements AbstractSearchField {
89
89
  }
90
90
  getFiltersForValues(
91
91
  values: FieldValue[] | DateRange[]
92
- ): Observable<FieldFilters> {
92
+ ): Observable<FieldFilters | string> {
93
93
  // FieldValue[]
94
94
  if (this.getType() === 'values') {
95
95
  return of({
@@ -538,7 +538,7 @@ export class RecordKindField extends SimpleSearchField {
538
538
  ])
539
539
  }
540
540
 
541
- getFiltersForValues(values: FieldValue[]): Observable<FieldFilters> {
541
+ getFiltersForValues(values: FieldValue[]): Observable<FieldFilters | string> {
542
542
  const filters: FieldFilters = {
543
543
  [this.esFieldName]: values.reduce((acc, value) => {
544
544
  if (value === '') return { ...acc, [value]: true }
@@ -552,8 +552,8 @@ export class RecordKindField extends SimpleSearchField {
552
552
 
553
553
  const presentationFormFilter = {}
554
554
  if (values.includes('reuse') && !values.includes('dataset')) {
555
- presentationFormFilter['mapDigital'] = true
556
- presentationFormFilter['mapHardcopy'] = true
555
+ filters['gn-ui-crossFieldFilter'] =
556
+ `(resourceType:("dataset" OR "document") AND cl_presentationForm.key:("mapDigital" OR "mapHardcopy")) OR resourceType:("application" OR "interactiveMap" OR "map" OR "map/static" OR "map/interactive" OR "map-interactive" OR "map-static" OR "mapDigital" OR "mapHardcopy" OR "staticMap")`
557
557
  } else if (values.includes('dataset') && !values.includes('reuse')) {
558
558
  presentationFormFilter['mapDigital'] = false
559
559
  presentationFormFilter['mapHardcopy'] = false
@@ -64,7 +64,7 @@
64
64
  <div class="flex flex-row gap-2.5 items-center pt-1">
65
65
  @if (link.accessServiceProtocol !== 'GPFDL') {
66
66
  <span
67
- class="bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors"
67
+ class="bg-primary/50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors"
68
68
  [ngClass]="{
69
69
  '!bg-primary': currentlyActive,
70
70
  }"
@@ -76,7 +76,7 @@
76
76
  }
77
77
  @if (link.accessServiceProtocol === 'GPFDL') {
78
78
  <span
79
- class="bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors"
79
+ class="bg-primary/50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors"
80
80
  [ngClass]="{
81
81
  '!bg-primary': currentlyActive,
82
82
  }"
@@ -45,13 +45,12 @@ export class ApplicationBannerComponent {
45
45
  this.icon = 'matWarning'
46
46
  break
47
47
  case 'light':
48
- this.msgClass =
49
- 'bg-primary-opacity-10 border-primary-lightest text-black'
48
+ this.msgClass = 'bg-primary/10 border-primary-lightest text-black'
50
49
  this.icon = 'matInfoOutline'
51
50
  break
52
51
  case 'secondary':
53
52
  default:
54
- this.msgClass = 'bg-primary-opacity-50 border-primary-darker text-black'
53
+ this.msgClass = 'bg-primary/50 border-primary-darker text-black'
55
54
  this.icon = 'matWarningAmberOutline'
56
55
  break
57
56
  }
@@ -85,7 +85,7 @@
85
85
  class="!w-5 !h-5 !text-[20px] opacity-75 shrink-0"
86
86
  name="matPersonOutline"
87
87
  ></ng-icon>
88
- <div class="flex flex-col ml-2">
88
+ <div class="flex flex-col ml-2" data-cy="contact-full-name">
89
89
  <p class="text-sm">
90
90
  {{ contacts[0]?.firstName || '' }}
91
91
  {{ contacts[0]?.lastName || '' }}
@@ -52,9 +52,9 @@ export class MetadataContactComponent {
52
52
 
53
53
  get contacts() {
54
54
  return (
55
- (this.metadata.kind === 'dataset'
56
- ? this.metadata.contactsForResource
57
- : this.metadata.contacts) || []
55
+ (this.metadata.kind === 'service'
56
+ ? this.metadata.contacts
57
+ : this.metadata.contactsForResource) || []
58
58
  )
59
59
  }
60
60
 
@@ -6,7 +6,7 @@
6
6
  </div>
7
7
  <button
8
8
  (click)="resetUrl()"
9
- class="bg-primary-opacity-50 inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded capitalize text-primary-lightest hover:bg-primary transition-colors"
9
+ class="bg-primary/50 inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded capitalize text-primary-lightest hover:bg-primary transition-colors"
10
10
  >
11
11
  <p class="text-[13px] uppercase" translate>
12
12
  record.metadata.api.form.reset
@@ -1,6 +1,6 @@
1
1
  @if (apiLinks.length > 0) {
2
2
  <div style="height: 652px" id="preview">
3
- <div class="bg-primary-opacity-10 overflow-visible" style="height: 420px">
3
+ <div class="bg-primary/10 overflow-visible" style="height: 420px">
4
4
  <div class="container-lg px-4 lg:mx-auto">
5
5
  <div>
6
6
  <div class="gn-ui-section-title mb-6" translate>
@@ -70,8 +70,11 @@ export function getCustomTranslations(langCode: string): CustomTranslations {
70
70
 
71
71
  let appConfigLoaded = false
72
72
 
73
- export function loadAppConfig() {
74
- return fetch('assets/configuration/default.toml')
73
+ export function loadAppConfig(configUrl = 'assets/configuration/default.toml') {
74
+ console.log(
75
+ `[geonetwork-ui] Loading application configuration from ${configUrl}`
76
+ )
77
+ return fetch(configUrl)
75
78
  .then((resp) => {
76
79
  if (!resp.ok) throw new Error('Configuration file could not be loaded')
77
80
  return resp.text()
@@ -229,6 +232,7 @@ export function loadAppConfig() {
229
232
  'record_kind_quick_filter',
230
233
  'filter_geometry_data',
231
234
  'filter_geometry_url',
235
+ 'do_not_use_default_search_preset',
232
236
  'search_preset',
233
237
  'advanced_filters',
234
238
  'limit',
@@ -252,6 +256,8 @@ export function loadAppConfig() {
252
256
  parsedSearchSection.record_kind_quick_filter,
253
257
  FILTER_GEOMETRY_DATA: parsedSearchSection.filter_geometry_data,
254
258
  FILTER_GEOMETRY_URL: parsedSearchSection.filter_geometry_url,
259
+ DO_NOT_USE_DEFAULT_SEARCH_PRESET:
260
+ !!parsedSearchSection.do_not_use_default_search_preset,
255
261
  SEARCH_PRESET: parsedSearchParams.map((param) => ({
256
262
  sort: param.sort,
257
263
  name: param.name,
@@ -40,6 +40,7 @@ fonts_stylesheet_url = "https://fonts.googleapis.com/css2?family=Open+Sans"
40
40
  [search]
41
41
  record_kind_quick_filter = false
42
42
  filter_geometry_url = 'https://my.domain.org/geom.json'
43
+ do_not_use_default_search_preset = false
43
44
  advanced_filters = ['publicationYear', 'documentStandard', 'inspireKeyword', 'topic', 'license']
44
45
 
45
46
  [[search_preset]]
@@ -58,6 +58,7 @@ export interface SearchConfig {
58
58
  RECORD_KIND_QUICK_FILTER?: boolean
59
59
  FILTER_GEOMETRY_URL?: string
60
60
  FILTER_GEOMETRY_DATA?: string
61
+ DO_NOT_USE_DEFAULT_SEARCH_PRESET?: boolean
61
62
  SEARCH_PRESET?: SearchPreset[]
62
63
  ADVANCED_FILTERS?: []
63
64
  LIMIT?: number
@@ -2,7 +2,8 @@ import packageJson from '../../../../../package.json'
2
2
 
3
3
  export const GEONETWORK_UI_VERSION = packageJson.version
4
4
 
5
- export const GEONETWORK_UI_TAG_NAME =
6
- GEONETWORK_UI_VERSION.split('-')[1] === 'dev'
7
- ? 'main'
8
- : `v${packageJson.version}`
5
+ export const GEONETWORK_UI_TAG_NAME = GEONETWORK_UI_VERSION.split(
6
+ '-'
7
+ )[1]?.startsWith('dev')
8
+ ? 'main'
9
+ : `v${packageJson.version}`
@@ -10,26 +10,6 @@ export class ThemeService {
10
10
  return document.documentElement.style.getPropertyValue(`--color-${name}`)
11
11
  }
12
12
 
13
- static generateBgOpacityClasses(
14
- colorName,
15
- colorValue,
16
- opacities = [0, 10, 25, 50, 75]
17
- ) {
18
- const color = chroma(colorValue)
19
- const styleElement = document.createElement('style')
20
- styleElement.innerHTML = opacities.reduce((cssRules, opacity) => {
21
- cssRules += `.bg-${colorName}-opacity-${opacity}{background-color:${color
22
- .alpha(opacity / 100)
23
- .css()};}`
24
-
25
- cssRules += `.hover-bg-${colorName}-opacity-${opacity}:hover {background-color:${color
26
- .alpha(opacity / 100)
27
- .css()};}`
28
- return cssRules
29
- }, '')
30
- document.getElementsByTagName('head')[0].appendChild(styleElement)
31
- }
32
-
33
13
  static applyCssVariables(
34
14
  primaryColor: string,
35
15
  secondaryColor: string,
@@ -39,13 +19,19 @@ export class ThemeService {
39
19
  titleFont?: string,
40
20
  fontsStylesheetUrl?: string
41
21
  ) {
42
- const applyColor = (name: string, color) => {
22
+ const applyColor = (name: string, color, includeRawValues?: boolean) => {
43
23
  document.documentElement.style.setProperty(`--color-${name}`, color.css())
24
+ if (includeRawValues) {
25
+ document.documentElement.style.setProperty(
26
+ `--color-raw-${name}`,
27
+ color.css().replace(/^rgba?\((.*)\)/, '$1')
28
+ )
29
+ }
44
30
  }
45
31
 
46
32
  const black = chroma('black')
47
33
  const white = chroma('white')
48
- applyColor('primary', chroma(primaryColor))
34
+ applyColor('primary', chroma(primaryColor), true)
49
35
  applyColor(
50
36
  'primary-lighter',
51
37
  chroma.scale([primaryColor, white]).mode('lab')(0.3)
@@ -70,7 +56,7 @@ export class ThemeService {
70
56
  'primary-black',
71
57
  chroma.scale([primaryColor, black]).mode('lab')(0.85)
72
58
  )
73
- applyColor('secondary', chroma(secondaryColor))
59
+ applyColor('secondary', chroma(secondaryColor), true)
74
60
  applyColor(
75
61
  'secondary-lighter',
76
62
  chroma.scale([secondaryColor, white]).mode('lab')(0.3)
@@ -1,3 +1,4 @@
1
+ /** @type {import('tailwindcss').Config} */
1
2
  module.exports = {
2
3
  theme: {
3
4
  extend: {
@@ -8,14 +9,14 @@ module.exports = {
8
9
  'primary-white': 'var(--color-primary-white)',
9
10
  'primary-lightest': 'var(--color-primary-lightest)',
10
11
  'primary-lighter': 'var(--color-primary-lighter)',
11
- primary: 'var(--color-primary)',
12
+ primary: 'rgb(var(--color-raw-primary) / <alpha-value>)', // supports opacity
12
13
  'primary-darker': 'var(--color-primary-darker)',
13
14
  'primary-darkest': 'var(--color-primary-darkest)',
14
15
  'primary-black': 'var(--color-primary-black)',
15
16
  'secondary-white': 'var(--color-secondary-white)',
16
17
  'secondary-lightest': 'var(--color-secondary-lightest)',
17
18
  'secondary-lighter': 'var(--color-secondary-lighter)',
18
- secondary: 'var(--color-secondary)',
19
+ secondary: 'rgb(var(--color-raw-secondary) / <alpha-value>)', // supports opacity
19
20
  'secondary-darker': 'var(--color-secondary-darker)',
20
21
  'secondary-darkest': 'var(--color-secondary-darkest)',
21
22
  'secondary-black': 'var(--color-secondary-black)',
@@ -387,6 +387,7 @@
387
387
  "multiselect.filter.placeholder": "Suche",
388
388
  "nav.back": "Zurück",
389
389
  "navbar.mobile.menuTitle": "Schnellzugriff",
390
+ "ogc.geojson.notsupported": "Dieser OGC API-Dienst unterstützt das GeoJSON-Format nicht.",
390
391
  "ogc.unreachable.unknown": "Der Dienst konnte nicht erreicht werden",
391
392
  "organisation.filter.placeholder": "Ergebnisse filtern",
392
393
  "organisation.sort.sortBy": "Sortieren nach:",
@@ -662,7 +663,7 @@
662
663
  "wfs.feature.limit": "Zu viele Features, um den WFS-Layer anzuzeigen!",
663
664
  "wfs.featuretype.notfound": "Kein passender Feature-Typ wurde im Dienst gefunden",
664
665
  "wfs.geojsongml.notsupported": "Dieser Dienst unterstützt das GeoJSON- oder GML-Format nicht",
665
- "wfs.unreachable.cors": "Der Dienst konnte aufgrund von CORS-Beschränkungen nicht erreicht werden",
666
+ "wfs.unreachable.cors": "Der Remote-Dienst ist nicht für den Datenempfang (CORS) konfiguriert",
666
667
  "wfs.unreachable.http": "Der Dienst hat einen HTTP-Fehler zurückgegeben",
667
668
  "wfs.unreachable.unknown": "Der Dienst konnte nicht erreicht werden"
668
669
  }
@@ -387,6 +387,7 @@
387
387
  "multiselect.filter.placeholder": "Search",
388
388
  "nav.back": "Back",
389
389
  "navbar.mobile.menuTitle": "Quick access",
390
+ "ogc.geojson.notsupported": "This OGC API does not support the GeoJSON format",
390
391
  "ogc.unreachable.unknown": "The service could not be reached",
391
392
  "organisation.filter.placeholder": "Filter results",
392
393
  "organisation.sort.sortBy": "Sort by:",
@@ -662,7 +663,7 @@
662
663
  "wfs.feature.limit": "Too many features to display the WFS layer!",
663
664
  "wfs.featuretype.notfound": "No matching feature type was found in the service",
664
665
  "wfs.geojsongml.notsupported": "This service does not support the GeoJSON or GML format",
665
- "wfs.unreachable.cors": "The service could not be reached due to CORS limitations",
666
+ "wfs.unreachable.cors": "The remote service is not configured to allow data retrieval (CORS)",
666
667
  "wfs.unreachable.http": "The service returned an HTTP error",
667
668
  "wfs.unreachable.unknown": "The service could not be reached"
668
669
  }
@@ -387,6 +387,7 @@
387
387
  "multiselect.filter.placeholder": "",
388
388
  "nav.back": "",
389
389
  "navbar.mobile.menuTitle": "Acceso rápido",
390
+ "ogc.geojson.notsupported": "",
390
391
  "ogc.unreachable.unknown": "",
391
392
  "organisation.filter.placeholder": "",
392
393
  "organisation.sort.sortBy": "",
@@ -387,6 +387,7 @@
387
387
  "multiselect.filter.placeholder": "Rechercher",
388
388
  "nav.back": "Retour",
389
389
  "navbar.mobile.menuTitle": "Navigation rapide",
390
+ "ogc.geojson.notsupported": "Le service OGC API ne supporte pas le format GeoJSON",
390
391
  "ogc.unreachable.unknown": "Le service n'est pas accessible",
391
392
  "organisation.filter.placeholder": "Filtrer les résultats",
392
393
  "organisation.sort.sortBy": "Trier par :",
@@ -662,7 +663,7 @@
662
663
  "wfs.feature.limit": "Trop d'objets pour afficher la couche WFS !",
663
664
  "wfs.featuretype.notfound": "La classe d'objets n'a pas été trouvée dans le service",
664
665
  "wfs.geojsongml.notsupported": "Le service ne supporte pas le format GeoJSON ou GML",
665
- "wfs.unreachable.cors": "Le service n'est pas accessible en raison de limitations CORS",
666
+ "wfs.unreachable.cors": "Le service distant n'est pas configuré pour autoriser la consommation des données (CORS)",
666
667
  "wfs.unreachable.http": "Le service a retourné une erreur HTTP",
667
668
  "wfs.unreachable.unknown": "Le service n'est pas accessible"
668
669
  }
@@ -387,6 +387,7 @@
387
387
  "multiselect.filter.placeholder": "Cerca",
388
388
  "nav.back": "Indietro",
389
389
  "navbar.mobile.menuTitle": "Accesso rapido",
390
+ "ogc.geojson.notsupported": "Il servizio OGC API non supporta il formato GeoJSON.",
390
391
  "ogc.unreachable.unknown": "Il servizio non è accessibile",
391
392
  "organisation.filter.placeholder": "Filtra i risultati",
392
393
  "organisation.sort.sortBy": "Ordina per:",
@@ -662,7 +663,7 @@
662
663
  "wfs.feature.limit": "Troppi oggetti per visualizzare il WFS layer!",
663
664
  "wfs.featuretype.notfound": "La classe di oggetto non è stata trovata nel servizio",
664
665
  "wfs.geojsongml.notsupported": "Il servizio non supporta il formato GeoJSON o GML",
665
- "wfs.unreachable.cors": "Il servizio non è accessibile a causa di limitazioni CORS",
666
+ "wfs.unreachable.cors": "Il servizio remoto non è configurato per consentire il consumo di dati (CORS)",
666
667
  "wfs.unreachable.http": "Il servizio ha restituito un errore HTTP",
667
668
  "wfs.unreachable.unknown": "Il servizio non è accessibile"
668
669
  }
@@ -387,6 +387,7 @@
387
387
  "multiselect.filter.placeholder": "",
388
388
  "nav.back": "",
389
389
  "navbar.mobile.menuTitle": "",
390
+ "ogc.geojson.notsupported": "",
390
391
  "ogc.unreachable.unknown": "",
391
392
  "organisation.filter.placeholder": "",
392
393
  "organisation.sort.sortBy": "",
@@ -387,6 +387,7 @@
387
387
  "multiselect.filter.placeholder": "",
388
388
  "nav.back": "",
389
389
  "navbar.mobile.menuTitle": "",
390
+ "ogc.geojson.notsupported": "",
390
391
  "ogc.unreachable.unknown": "",
391
392
  "organisation.filter.placeholder": "",
392
393
  "organisation.sort.sortBy": "",
@@ -387,6 +387,7 @@
387
387
  "multiselect.filter.placeholder": "Hľadať",
388
388
  "nav.back": "Späť",
389
389
  "navbar.mobile.menuTitle": "",
390
+ "ogc.geojson.notsupported": "",
390
391
  "ogc.unreachable.unknown": "So službou sa nedalo spojiť",
391
392
  "organisation.filter.placeholder": "Filtrovať výsledky",
392
393
  "organisation.sort.sortBy": "Zoradiť podľa:",
@@ -662,7 +663,7 @@
662
663
  "wfs.feature.limit": "",
663
664
  "wfs.featuretype.notfound": "V službe nebol nájdený žiadny zodpovedajúci typ funkcie",
664
665
  "wfs.geojsongml.notsupported": "Táto služba nepodporuje formát GeoJSON alebo GML",
665
- "wfs.unreachable.cors": "Službu nemožno dosiahnuť z dôvodu obmedzení CORS",
666
+ "wfs.unreachable.cors": "Vzdialená služba nie je nakonfigurovaná tak, aby povoľovala spotrebu dát (CORS)",
666
667
  "wfs.unreachable.http": "Služba vrátila chybu HTTP",
667
668
  "wfs.unreachable.unknown": "So službou sa nedalo spojiť"
668
669
  }