geonetwork-ui 2.8.3-dev.9ee2576ea → 2.9.0-dev.023c4f049

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 (50) hide show
  1. package/fesm2022/geonetwork-ui.mjs +646 -546
  2. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  3. package/index.d.ts +249 -158
  4. package/index.d.ts.map +1 -1
  5. package/package.json +7 -8
  6. package/src/libs/common/domain/src/index.ts +1 -0
  7. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.html +10 -12
  8. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +8 -3
  9. package/src/libs/feature/editor/src/index.ts +8 -7
  10. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +6 -1
  11. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +5 -1
  12. package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +4 -0
  13. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +2 -2
  14. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +2 -0
  15. package/src/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.html +4 -4
  16. package/src/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.ts +3 -4
  17. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +10 -18
  18. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +96 -9
  19. package/src/libs/feature/router/src/lib/default/router.module.ts +3 -3
  20. package/src/libs/feature/router/src/lib/default/router.service.ts +2 -2
  21. package/src/libs/feature/router/src/lib/default/services/router-search.service.ts +12 -3
  22. package/src/libs/feature/router/src/lib/default/state/router.effects.ts +34 -4
  23. package/src/libs/feature/search/src/lib/state/reducer.ts +3 -0
  24. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +2 -2
  25. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.ts +2 -3
  26. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +5 -3
  27. package/src/libs/ui/elements/src/lib/image-input/image-input.component.html +5 -2
  28. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +63 -56
  29. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.scss +5 -5
  30. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +10 -7
  31. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +1 -1
  32. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.html +1 -1
  33. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.ts +1 -1
  34. package/src/libs/ui/map/src/lib/map-utils.ts +1 -1
  35. package/src/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.html +19 -16
  36. package/src/libs/util/app-config/src/lib/app-config.ts +8 -2
  37. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -0
  38. package/src/libs/util/app-config/src/lib/model.ts +1 -0
  39. package/src/libs/util/shared/src/lib/gn-ui-version.ts +5 -4
  40. package/src/libs/util/shared/src/lib/links/link-utils.ts +8 -4
  41. package/src/libs/util/shared/src/lib/services/theme.service.ts +9 -23
  42. package/tailwind.base.config.js +3 -2
  43. package/translations/de.json +4 -3
  44. package/translations/en.json +6 -5
  45. package/translations/es.json +1 -0
  46. package/translations/fr.json +6 -5
  47. package/translations/it.json +6 -5
  48. package/translations/nl.json +1 -0
  49. package/translations/pt.json +1 -0
  50. package/translations/sk.json +2 -1
@@ -6,7 +6,7 @@
6
6
  }
7
7
 
8
8
  &.size-M {
9
- @apply max-w-[940px] md:h-[231px] gap-4;
9
+ @apply max-w-[940px] gap-4 flex-wrap;
10
10
  }
11
11
 
12
12
  &.size-S {
@@ -28,11 +28,11 @@
28
28
  @apply border rounded-lg overflow-hidden shrink-0;
29
29
 
30
30
  .size-L & {
31
- @apply w-full w-[190px] h-[184px];
31
+ @apply w-[184px] h-[184px];
32
32
  }
33
33
 
34
34
  .size-M & {
35
- @apply w-full w-[138px] h-[207px];
35
+ @apply w-[138px] h-[138px];
36
36
  }
37
37
  }
38
38
 
@@ -44,7 +44,7 @@
44
44
  }
45
45
 
46
46
  .size-M & {
47
- @apply line-clamp-2 ml-2;
47
+ @apply line-clamp-2;
48
48
  }
49
49
 
50
50
  .size-S & {
@@ -64,7 +64,7 @@
64
64
  }
65
65
 
66
66
  .size-M & {
67
- @apply line-clamp-3 ml-2;
67
+ @apply line-clamp-3;
68
68
  }
69
69
 
70
70
  .size-S & {
@@ -29,16 +29,19 @@
29
29
  </div>
30
30
  @if (shownOrganization?.website) {
31
31
  <div>
32
- <a
33
- [href]="shownOrganization.website"
34
- target="_blank"
35
- class="contact-website text-sm cursor-pointer hover:underline transition-all"
36
- >{{ shownOrganization.website }}
32
+ <div class="flex items-center mt-1">
37
33
  <ng-icon
38
- class="!w-[12px] !h-[12px] opacity-75 shrink-0"
34
+ class="!w-5 !h-5 !text-[20px] opacity-75 shrink-0"
39
35
  name="matOpenInNew"
40
36
  ></ng-icon>
41
- </a>
37
+ <a
38
+ [href]="shownOrganization.website"
39
+ target="_blank"
40
+ class="contact-website text-sm cursor-pointer hover:underline transition-all ml-2"
41
+ >
42
+ {{ shownOrganization.website }}
43
+ </a>
44
+ </div>
42
45
  </div>
43
46
  }
44
47
  </div>
@@ -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>
@@ -102,7 +102,7 @@ export class DropdownSelectorComponent implements OnInit {
102
102
  }
103
103
 
104
104
  getChoiceLabel(): string {
105
- return this.selectedChoice?.label
105
+ return this.selectedChoice?.label ?? '\u00A0'
106
106
  }
107
107
 
108
108
  ngOnInit(): void {
@@ -50,7 +50,7 @@ export function dragPanCondition(
50
50
 
51
51
  export function mouseWheelZoomCondition(
52
52
  this: MouseWheelZoom,
53
- event: MapBrowserEvent<UIEvent>
53
+ event: MapBrowserEvent<WheelEvent>
54
54
  ) {
55
55
  if (!platformModifierKeyOnly(event) && event.type === 'wheel') {
56
56
  this.getMap().dispatchEvent('mapmuted')
@@ -30,7 +30,7 @@
30
30
  ></gn-ui-thumbnail>
31
31
  }
32
32
  </div>
33
- <div class="flex flex-col overflow-hidden items-start">
33
+ <div class="flex flex-col overflow-hidden items-start grow">
34
34
  @if (hasOrganization) {
35
35
  <span
36
36
  class="font-bold transition duration-200 text-primary truncate max-w-full"
@@ -51,32 +51,35 @@
51
51
  >
52
52
  </p>
53
53
  </div>
54
- </div>
55
- <div class="pt-5 pb-5 px-10 relative">
56
- <div class="absolute top-[0.85em] right-[0.85em]">
54
+ <div class="ml-3 shrink-0">
57
55
  <ng-container
58
56
  [ngTemplateOutlet]="favoriteTemplate"
59
57
  [ngTemplateOutletContext]="{ $implicit: record }"
60
58
  ></ng-container>
61
59
  </div>
62
- <h1
63
- class="font-title text-black text-[21px] font-medium mb-3 pr-8"
64
- data-cy="recordTitle"
65
- >
66
- {{ record.title }}
67
- </h1>
60
+ </div>
61
+ <div class="pt-5 pb-5 px-10 relative">
62
+ <div class="flex flex-col sm:flex-row gap-4 mb-3">
63
+ @if (record.overviews?.[0]) {
64
+ <gn-ui-thumbnail
65
+ class="block shrink-0 w-[120px] h-[120px] border border-gray-100 rounded-lg overflow-hidden"
66
+ [thumbnailUrl]="record.overviews?.[0]?.url.toString()"
67
+ [fit]="'cover'"
68
+ ></gn-ui-thumbnail>
69
+ }
70
+ <h1
71
+ class="font-title text-black text-[21px] font-medium"
72
+ data-cy="recordTitle"
73
+ >
74
+ {{ record.title }}
75
+ </h1>
76
+ </div>
68
77
  <p class="line-clamp-3">
69
78
  <gn-ui-markdown-parser
70
79
  [textContent]="abstract"
71
80
  [whitoutStyles]="true"
72
81
  />
73
82
  </p>
74
- @if (record.overviews?.[0]) {
75
- <gn-ui-thumbnail
76
- class="block mt-3 w-full h-[136px] border border-gray-100 rounded-lg overflow-hidden"
77
- [thumbnailUrl]="record.overviews?.[0]?.url.toString()"
78
- ></gn-ui-thumbnail>
79
- }
80
83
  @if (isDownloadable || isViewable) {
81
84
  <div class="flex flex-row mt-3">
82
85
  @if (isDownloadable) {
@@ -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
- ? '2.8.x'
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}`
@@ -331,11 +331,15 @@ export async function getLayers(url: string, serviceProtocol: ServiceProtocol) {
331
331
  case 'wfs': {
332
332
  const endpointWfs = await new WfsEndpoint(url).isReady()
333
333
  const featureTypes = await endpointWfs.getFeatureTypes()
334
- const layers = await Promise.all(
335
- featureTypes.map(async (collection) => {
336
- return await endpointWfs.getFeatureTypeFull(collection.name)
337
- })
334
+ const layers = (
335
+ await Promise.allSettled(
336
+ featureTypes.map((collection) => {
337
+ return endpointWfs.getFeatureTypeFull(collection.name)
338
+ })
339
+ )
338
340
  )
341
+ .filter((settled) => settled.status === 'fulfilled')
342
+ .map((fulfilled) => fulfilled.value)
339
343
  return layers
340
344
  }
341
345
  case 'wms': {
@@ -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)',
@@ -382,6 +382,7 @@
382
382
  "map.ogc.urlInput.hint": "Die URL des OGC API-Dienstes eingeben",
383
383
  "map.select.layer": "Datenquelle",
384
384
  "map.select.style": "Style",
385
+ "map.style.default": "Standard",
385
386
  "map.wfs.urlInput.hint": "Die WFS URL eingeben",
386
387
  "map.wms.urlInput.hint": "Die WMS URL eingeben",
387
388
  "multiselect.filter.placeholder": "Suche",
@@ -473,7 +474,7 @@
473
474
  "record.metadata.download": "Herunterladen",
474
475
  "record.metadata.feature.catalog": "Attributkatalog",
475
476
  "record.metadata.formats": "Formate",
476
- "record.metadata.isGeographical": "Geographischer Datensatz",
477
+ "record.metadata.isGeographical": "geographischer Datensatz",
477
478
  "record.metadata.keywords": "Stichworte",
478
479
  "record.metadata.languages": "Sprachen",
479
480
  "record.metadata.link.postgis.table": "Tabelle:",
@@ -604,6 +605,7 @@
604
605
  "search.filters.producerOrg": "Herausgeber",
605
606
  "search.filters.publicationYear": "Veröffentlichungsjahr",
606
607
  "search.filters.publisherOrg": "Vertreiber",
608
+ "search.filters.recordKind": "",
607
609
  "search.filters.recordKind.all": "Alle",
608
610
  "search.filters.recordKind.dataset": "Datensätze",
609
611
  "search.filters.recordKind.reuse": "Wiederverwendungen",
@@ -642,7 +644,6 @@
642
644
  "service.metadata.spatialExtent": "Räumliche Ausdehnung",
643
645
  "share.tab.permalink": "Teilen",
644
646
  "share.tab.webComponent": "Integrieren",
645
- "stac.filter.reset": "Filter zurücksetzen",
646
647
  "stac.filter.enable": "",
647
648
  "stac.filter.reset": "",
648
649
  "stac.results.noResults": "Ihre Suchfilter lieferten keine Ergebnisse",
@@ -663,7 +664,7 @@
663
664
  "wfs.feature.limit": "Zu viele Features, um den WFS-Layer anzuzeigen!",
664
665
  "wfs.featuretype.notfound": "Kein passender Feature-Typ wurde im Dienst gefunden",
665
666
  "wfs.geojsongml.notsupported": "Dieser Dienst unterstützt das GeoJSON- oder GML-Format nicht",
666
- "wfs.unreachable.cors": "Der Dienst konnte aufgrund von CORS-Beschränkungen nicht erreicht werden",
667
+ "wfs.unreachable.cors": "Der Remote-Dienst ist nicht für den Datenempfang (CORS) konfiguriert",
667
668
  "wfs.unreachable.http": "Der Dienst hat einen HTTP-Fehler zurückgegeben",
668
669
  "wfs.unreachable.unknown": "Der Dienst konnte nicht erreicht werden"
669
670
  }
@@ -382,6 +382,7 @@
382
382
  "map.ogc.urlInput.hint": "Enter OGC API service URL",
383
383
  "map.select.layer": "Data source",
384
384
  "map.select.style": "Style",
385
+ "map.style.default": "Default",
385
386
  "map.wfs.urlInput.hint": "Enter WFS service URL",
386
387
  "map.wms.urlInput.hint": "Enter WMS service URL",
387
388
  "multiselect.filter.placeholder": "Search",
@@ -415,9 +416,9 @@
415
416
  "record.feature.catalog.number.total.attribute": "Total amount of objects",
416
417
  "record.feature.catalog.number.total.object": "Total amount of attributes",
417
418
  "record.feature.limit": "Preview disabled due to too many elements",
418
- "record.kind.dataset": "Dataset",
419
- "record.kind.reuse": "Reuse",
420
- "record.kind.service": "Service",
419
+ "record.kind.dataset": "dataset",
420
+ "record.kind.reuse": "reuse",
421
+ "record.kind.service": "service",
421
422
  "record.metadata.about": "Description",
422
423
  "record.metadata.api": "API",
423
424
  "record.metadata.api.accessServiceProtocol.GPFDL": "GPFDL",
@@ -473,7 +474,7 @@
473
474
  "record.metadata.download": "Downloads",
474
475
  "record.metadata.feature.catalog": "Feature catalog",
475
476
  "record.metadata.formats": "Formats",
476
- "record.metadata.isGeographical": "Geographical dataset",
477
+ "record.metadata.isGeographical": "geographic dataset",
477
478
  "record.metadata.keywords": "Keywords",
478
479
  "record.metadata.languages": "Languages",
479
480
  "record.metadata.link.postgis.table": "table :",
@@ -663,7 +664,7 @@
663
664
  "wfs.feature.limit": "Too many features to display the WFS layer!",
664
665
  "wfs.featuretype.notfound": "No matching feature type was found in the service",
665
666
  "wfs.geojsongml.notsupported": "This service does not support the GeoJSON or GML format",
666
- "wfs.unreachable.cors": "The service could not be reached due to CORS limitations",
667
+ "wfs.unreachable.cors": "The remote service is not configured to allow data retrieval (CORS)",
667
668
  "wfs.unreachable.http": "The service returned an HTTP error",
668
669
  "wfs.unreachable.unknown": "The service could not be reached"
669
670
  }
@@ -382,6 +382,7 @@
382
382
  "map.ogc.urlInput.hint": "",
383
383
  "map.select.layer": "",
384
384
  "map.select.style": "",
385
+ "map.style.default": "Por defecto",
385
386
  "map.wfs.urlInput.hint": "",
386
387
  "map.wms.urlInput.hint": "",
387
388
  "multiselect.filter.placeholder": "",
@@ -382,6 +382,7 @@
382
382
  "map.ogc.urlInput.hint": "Entrez l'URL du service OGC API",
383
383
  "map.select.layer": "Source de données",
384
384
  "map.select.style": "Style",
385
+ "map.style.default": "Par défaut",
385
386
  "map.wfs.urlInput.hint": "Entrez l'URL du service WFS",
386
387
  "map.wms.urlInput.hint": "Entrez l'URL du service WMS",
387
388
  "multiselect.filter.placeholder": "Rechercher",
@@ -415,9 +416,9 @@
415
416
  "record.feature.catalog.number.total.attribute": "Nombre total d'attributs",
416
417
  "record.feature.catalog.number.total.object": "Nombre total d'objets",
417
418
  "record.feature.limit": "L’aperçu a été désactivé en raison d’un trop grand nombre d'éléments",
418
- "record.kind.dataset": "Donnée",
419
- "record.kind.reuse": "Réutilisation",
420
- "record.kind.service": "Service",
419
+ "record.kind.dataset": "donnée",
420
+ "record.kind.reuse": "réutilisation",
421
+ "record.kind.service": "service",
421
422
  "record.metadata.about": "A propos",
422
423
  "record.metadata.api": "API",
423
424
  "record.metadata.api.accessServiceProtocol.GPFDL": "",
@@ -473,7 +474,7 @@
473
474
  "record.metadata.download": "Téléchargements",
474
475
  "record.metadata.feature.catalog": "Catalogue d'attributs",
475
476
  "record.metadata.formats": "Formats",
476
- "record.metadata.isGeographical": "Donnée géographique",
477
+ "record.metadata.isGeographical": "donnée géographique",
477
478
  "record.metadata.keywords": "Mots-clés",
478
479
  "record.metadata.languages": "Langues",
479
480
  "record.metadata.link.postgis.table": "table :",
@@ -663,7 +664,7 @@
663
664
  "wfs.feature.limit": "Trop d'objets pour afficher la couche WFS !",
664
665
  "wfs.featuretype.notfound": "La classe d'objets n'a pas été trouvée dans le service",
665
666
  "wfs.geojsongml.notsupported": "Le service ne supporte pas le format GeoJSON ou GML",
666
- "wfs.unreachable.cors": "Le service n'est pas accessible en raison de limitations CORS",
667
+ "wfs.unreachable.cors": "Le service distant n'est pas configuré pour autoriser la consommation des données (CORS)",
667
668
  "wfs.unreachable.http": "Le service a retourné une erreur HTTP",
668
669
  "wfs.unreachable.unknown": "Le service n'est pas accessible"
669
670
  }
@@ -382,6 +382,7 @@
382
382
  "map.ogc.urlInput.hint": "Inserisci URL del servizio OGC API",
383
383
  "map.select.layer": "Sorgente dati",
384
384
  "map.select.style": "Style",
385
+ "map.style.default": "Predefinito",
385
386
  "map.wfs.urlInput.hint": "Inserisci URL del servizio WFS",
386
387
  "map.wms.urlInput.hint": "Inserisci URL del servizio WMS",
387
388
  "multiselect.filter.placeholder": "Cerca",
@@ -415,9 +416,9 @@
415
416
  "record.feature.catalog.number.total.attribute": "Quantità totale di oggetti",
416
417
  "record.feature.catalog.number.total.object": "Quantità totale di attributi",
417
418
  "record.feature.limit": "La visualizzazione è stata disabilitata a causa di troppi elementi ",
418
- "record.kind.dataset": "Dataset",
419
- "record.kind.reuse": "Riutilizzato",
420
- "record.kind.service": "Servizio",
419
+ "record.kind.dataset": "dataset",
420
+ "record.kind.reuse": "riutilizzato",
421
+ "record.kind.service": "servizio",
421
422
  "record.metadata.about": "Descrizione",
422
423
  "record.metadata.api": "API",
423
424
  "record.metadata.api.accessServiceProtocol.GPFDL": "",
@@ -473,7 +474,7 @@
473
474
  "record.metadata.download": "Download",
474
475
  "record.metadata.feature.catalog": "Catalogo dei oggetti",
475
476
  "record.metadata.formats": "Formati",
476
- "record.metadata.isGeographical": "Dati geografici",
477
+ "record.metadata.isGeographical": "dati geografici",
477
478
  "record.metadata.keywords": "Parole chiave",
478
479
  "record.metadata.languages": "Lingue",
479
480
  "record.metadata.link.postgis.table": "",
@@ -663,7 +664,7 @@
663
664
  "wfs.feature.limit": "Troppi oggetti per visualizzare il WFS layer!",
664
665
  "wfs.featuretype.notfound": "La classe di oggetto non è stata trovata nel servizio",
665
666
  "wfs.geojsongml.notsupported": "Il servizio non supporta il formato GeoJSON o GML",
666
- "wfs.unreachable.cors": "Il servizio non è accessibile a causa di limitazioni CORS",
667
+ "wfs.unreachable.cors": "Il servizio remoto non è configurato per consentire il consumo di dati (CORS)",
667
668
  "wfs.unreachable.http": "Il servizio ha restituito un errore HTTP",
668
669
  "wfs.unreachable.unknown": "Il servizio non è accessibile"
669
670
  }
@@ -382,6 +382,7 @@
382
382
  "map.ogc.urlInput.hint": "",
383
383
  "map.select.layer": "",
384
384
  "map.select.style": "",
385
+ "map.style.default": "Standaard",
385
386
  "map.wfs.urlInput.hint": "",
386
387
  "map.wms.urlInput.hint": "",
387
388
  "multiselect.filter.placeholder": "",
@@ -382,6 +382,7 @@
382
382
  "map.ogc.urlInput.hint": "",
383
383
  "map.select.layer": "",
384
384
  "map.select.style": "",
385
+ "map.style.default": "Padrão",
385
386
  "map.wfs.urlInput.hint": "",
386
387
  "map.wms.urlInput.hint": "",
387
388
  "multiselect.filter.placeholder": "",
@@ -382,6 +382,7 @@
382
382
  "map.ogc.urlInput.hint": "",
383
383
  "map.select.layer": "Zdroj dát",
384
384
  "map.select.style": "",
385
+ "map.style.default": "Predvolené",
385
386
  "map.wfs.urlInput.hint": "Zadajte URL adresu služby WFS",
386
387
  "map.wms.urlInput.hint": "Zadajte URL adresu služby WMS",
387
388
  "multiselect.filter.placeholder": "Hľadať",
@@ -663,7 +664,7 @@
663
664
  "wfs.feature.limit": "",
664
665
  "wfs.featuretype.notfound": "V službe nebol nájdený žiadny zodpovedajúci typ funkcie",
665
666
  "wfs.geojsongml.notsupported": "Táto služba nepodporuje formát GeoJSON alebo GML",
666
- "wfs.unreachable.cors": "Službu nemožno dosiahnuť z dôvodu obmedzení CORS",
667
+ "wfs.unreachable.cors": "Vzdialená služba nie je nakonfigurovaná tak, aby povoľovala spotrebu dát (CORS)",
667
668
  "wfs.unreachable.http": "Služba vrátila chybu HTTP",
668
669
  "wfs.unreachable.unknown": "So službou sa nedalo spojiť"
669
670
  }