geonetwork-ui 2.11.0-dev.a2881de31 → 2.11.0-dev.a63e6e32a

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 (108) hide show
  1. package/fesm2022/geonetwork-ui.mjs +1667 -991
  2. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  3. package/index.d.ts +300 -129
  4. package/index.d.ts.map +1 -1
  5. package/package.json +12 -11
  6. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +5 -5
  7. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +5 -5
  8. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +43 -13
  9. package/src/libs/api/metadata-converter/src/lib/gn4/types/elasticsearch.model.ts +13 -1
  10. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +2 -2
  11. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +9 -5
  12. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/association-type.mapper.ts +12 -0
  13. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +2 -2
  14. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +130 -37
  15. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +40 -16
  16. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +40 -2
  17. package/src/libs/common/domain/src/lib/model/search/filter.model.ts +20 -1
  18. package/src/libs/common/domain/src/lib/model/search/sort-by.model.ts +1 -5
  19. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +2 -2
  20. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +3 -2
  21. package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.ts +2 -1
  22. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +22 -22
  23. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-associated-records/form-field-associated-records.component.html +33 -0
  24. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-associated-records/form-field-associated-records.component.ts +94 -0
  25. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.html +16 -12
  26. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +6 -0
  27. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +6 -0
  28. package/src/libs/feature/editor/src/lib/fields.config.ts +5 -0
  29. package/src/libs/feature/map/src/index.ts +0 -1
  30. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.html +1 -0
  31. package/src/libs/feature/map/src/lib/feature-map.module.ts +1 -8
  32. package/src/libs/feature/notifications/src/lib/notifications.service.ts +6 -4
  33. package/src/libs/feature/record/src/lib/state/mdview.actions.ts +4 -8
  34. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +7 -16
  35. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +1 -3
  36. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +4 -9
  37. package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +2 -7
  38. package/src/libs/feature/router/src/lib/default/router.service.ts +1 -1
  39. package/src/libs/feature/router/src/lib/default/state/query-params.utils.ts +1 -1
  40. package/src/libs/feature/search/src/index.ts +2 -0
  41. package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.html +12 -4
  42. package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +58 -19
  43. package/src/libs/feature/{map/src/lib → search/src/lib/geocoding}/geocoding.service.ts +5 -1
  44. package/src/libs/feature/search/src/lib/location-search/location-search.component.html +8 -0
  45. package/src/libs/feature/search/src/lib/location-search/location-search.component.ts +40 -0
  46. package/src/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.ts +18 -8
  47. package/src/libs/feature/search/src/lib/sort-by/sort-by.component.ts +1 -1
  48. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +9 -1
  49. package/src/libs/feature/search/src/lib/utils/service/fields.ts +61 -2
  50. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.html +6 -7
  51. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +31 -19
  52. package/src/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.ts +2 -2
  53. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +2 -1
  54. package/src/libs/ui/inputs/src/index.ts +2 -0
  55. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +10 -1
  56. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +8 -0
  57. package/src/libs/ui/inputs/src/lib/date-adapter.providers.ts +30 -0
  58. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.ts +3 -24
  59. package/src/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.css +37 -3
  60. package/src/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.html +135 -16
  61. package/src/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.ts +166 -29
  62. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.ts +3 -7
  63. package/src/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.css +1 -0
  64. package/src/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.html +20 -7
  65. package/src/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.ts +46 -5
  66. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +7 -4
  67. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.ts +12 -9
  68. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.model.ts +2 -2
  69. package/src/libs/ui/inputs/src/lib/spatial-extent-dropdown/spatial-extent-dropdown.component.css +0 -0
  70. package/src/libs/ui/inputs/src/lib/spatial-extent-dropdown/spatial-extent-dropdown.component.html +111 -0
  71. package/src/libs/ui/inputs/src/lib/spatial-extent-dropdown/spatial-extent-dropdown.component.ts +215 -0
  72. package/src/libs/ui/map/src/lib/components/map-container/map-container.component.ts +6 -5
  73. package/src/libs/util/app-config/src/lib/app-config.ts +3 -0
  74. package/src/libs/util/app-config/src/lib/model.ts +1 -0
  75. package/src/libs/util/data-fetcher/src/lib/data-fetcher.ts +19 -22
  76. package/src/libs/util/data-fetcher/src/lib/engine/duckdb.ts +185 -0
  77. package/src/libs/util/data-fetcher/src/lib/engine/results.ts +63 -0
  78. package/src/libs/util/data-fetcher/src/lib/{sql-utils.ts → engine/sql-utils.ts} +28 -13
  79. package/src/libs/util/data-fetcher/src/lib/model.ts +2 -1
  80. package/src/libs/util/data-fetcher/src/lib/readers/base-file.ts +53 -38
  81. package/src/libs/util/data-fetcher/src/lib/readers/base.ts +11 -0
  82. package/src/libs/util/data-fetcher/src/lib/readers/csv.ts +9 -47
  83. package/src/libs/util/data-fetcher/src/lib/readers/excel.ts +27 -27
  84. package/src/libs/util/data-fetcher/src/lib/readers/geojson.ts +5 -24
  85. package/src/libs/util/data-fetcher/src/lib/readers/gml.ts +5 -49
  86. package/src/libs/util/data-fetcher/src/lib/readers/json.ts +5 -23
  87. package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +184 -128
  88. package/src/libs/util/data-fetcher/src/lib/utils.ts +0 -143
  89. package/src/libs/util/shared/src/index.ts +1 -0
  90. package/src/libs/util/shared/src/lib/autofocus.directive.ts +26 -0
  91. package/src/libs/util/shared/src/lib/links/link-utils.ts +19 -10
  92. package/src/libs/util/shared/src/lib/services/date.service.ts +3 -3
  93. package/src/libs/util/shared/src/lib/utils/file.ts +15 -0
  94. package/src/libs/util/shared/src/lib/utils/geojson.ts +8 -0
  95. package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
  96. package/tailwind.base.css +5 -0
  97. package/translations/de.json +30 -4
  98. package/translations/en.json +29 -3
  99. package/translations/es.json +27 -1
  100. package/translations/fr.json +30 -4
  101. package/translations/it.json +28 -2
  102. package/translations/nl.json +27 -1
  103. package/translations/pt.json +27 -1
  104. package/translations/sk.json +28 -2
  105. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.html +0 -41
  106. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +0 -112
  107. package/src/libs/util/data-fetcher/src/lib/readers/base-cache.ts +0 -14
  108. /package/src/libs/feature/{map/src/lib/geocoding/geocoding.component.css → editor/src/lib/components/record-form/form-field/form-field-associated-records/form-field-associated-records.component.css} +0 -0
@@ -344,7 +344,11 @@ export function getLinkLabel(
344
344
  return format ? `${label} (${format})` : label
345
345
  }
346
346
 
347
- export async function getLayers(url: string, serviceProtocol: ServiceProtocol) {
347
+ export async function getLayers(
348
+ url: string,
349
+ serviceProtocol: ServiceProtocol,
350
+ deep = false
351
+ ) {
348
352
  switch (serviceProtocol) {
349
353
  case 'ogcFeatures': {
350
354
  const layers = await new OgcApiEndpoint(url).allCollections
@@ -352,7 +356,10 @@ export async function getLayers(url: string, serviceProtocol: ServiceProtocol) {
352
356
  }
353
357
  case 'wfs': {
354
358
  const endpointWfs = await new WfsEndpoint(url).isReady()
355
- const featureTypes = await endpointWfs.getFeatureTypes()
359
+ const featureTypes = endpointWfs.getFeatureTypes()
360
+ if (!deep) {
361
+ return featureTypes
362
+ }
356
363
  const layers = (
357
364
  await Promise.allSettled(
358
365
  featureTypes.map((collection) => {
@@ -366,14 +373,16 @@ export async function getLayers(url: string, serviceProtocol: ServiceProtocol) {
366
373
  }
367
374
  case 'wms': {
368
375
  const endpointWms = await new WmsEndpoint(url).isReady()
369
- const layers = (
370
- await endpointWms
371
- .getLayers()
372
- .flatMap(wmsLayerFlatten)
373
- .filter((l) => l.name)
374
- ).map((collection) => {
375
- return endpointWms.getLayerByName(collection.name)
376
- })
376
+ const layersSummary = endpointWms
377
+ .getLayers()
378
+ .flatMap(wmsLayerFlatten)
379
+ .filter((l) => l.name)
380
+ if (!deep) {
381
+ return layersSummary
382
+ }
383
+ const layers = layersSummary.map((collection) =>
384
+ endpointWms.getLayerByName(collection.name)
385
+ )
377
386
  return layers
378
387
  }
379
388
  case 'wmts': {
@@ -35,10 +35,10 @@ export class DateService {
35
35
  return { locale, dateObj }
36
36
  }
37
37
 
38
- private async getDateLocale(): Promise<Locale> {
38
+ async getDateFnsLocale(): Promise<Locale> {
39
39
  const lang = this.translateService.getCurrentLang() || DEFAULT_LANGUAGE
40
40
  const locales = await this.dateLocales
41
- return locales[lang]
41
+ return locales[lang] ?? locales[DEFAULT_LANGUAGE]
42
42
  }
43
43
 
44
44
  formatDate(
@@ -61,7 +61,7 @@ export class DateService {
61
61
  const dateObj = this.getDateObject(date)
62
62
 
63
63
  const now = new Date()
64
- const locale = await this.getDateLocale()
64
+ const locale = await this.getDateFnsLocale()
65
65
 
66
66
  return formatDistance(dateObj, now, {
67
67
  addSuffix: true,
@@ -0,0 +1,15 @@
1
+ export function isFileExtensionValid(
2
+ fileName: string,
3
+ acceptedExtensions: string[]
4
+ ): boolean {
5
+ return acceptedExtensions.some((ext) => fileName.toLowerCase().endsWith(ext))
6
+ }
7
+
8
+ export function readFileAsText(file: File): Promise<string> {
9
+ return new Promise((resolve, reject) => {
10
+ const reader = new FileReader()
11
+ reader.onload = () => resolve(reader.result as string)
12
+ reader.onerror = () => reject(reader.error)
13
+ reader.readAsText(file)
14
+ })
15
+ }
@@ -38,6 +38,14 @@ export function getGeometryFromGeoJSON(
38
38
  // FIXME: this type should be more generic across the project
39
39
  export type BoundingBox = [number, number, number, number]
40
40
 
41
+ export function isBoundingBox(value: unknown): value is BoundingBox {
42
+ return (
43
+ Array.isArray(value) &&
44
+ value.length === 4 &&
45
+ value.every((item) => typeof item === 'number')
46
+ )
47
+ }
48
+
41
49
  export function getGeometryBoundingBox(geometry: Geometry): BoundingBox {
42
50
  // use the bounding box if specified in the GeoJSON object
43
51
  if (geometry.bbox) {
@@ -1,5 +1,6 @@
1
1
  export * from './bytes-convert'
2
2
  export * from './event'
3
+ export * from './file'
3
4
  export * from './format-fields'
4
5
  export * from './fuzzy-filter'
5
6
  export * from './geojson'
package/tailwind.base.css CHANGED
@@ -224,6 +224,11 @@
224
224
  disabled:cursor-not-allowed disabled:border-gray-100 disabled:placeholder-gray-300 disabled:text-gray-700 disabled:bg-white;
225
225
  }
226
226
 
227
+ .gn-ui-gray-outline-input {
228
+ @apply bg-white rounded-lg
229
+ border border-gray-400 hover:border-neutral-300 hover:bg-black/10;
230
+ }
231
+
227
232
  /* GENERIC CARD */
228
233
  .gn-ui-card {
229
234
  @apply flex flex-row border border-gray-200 rounded-xl p-4 gap-2 w-full;
@@ -65,9 +65,10 @@
65
65
  "dataset.error.restrictedAccess": "",
66
66
  "dataset.error.unknown": "Die Daten können nicht angezeigt werden: \"{ info }\"",
67
67
  "dataset.error.unsupportedType": "Der folgende Inhaltstyp wird nicht unterstützt: \"{ info }\"",
68
- "daterange.filter.from": "Von",
68
+ "daterange.filter.datePlaceholder": "tt.mm.jjjj",
69
+ "daterange.filter.from": "Ab dem",
69
70
  "daterange.filter.period": "Zeitraum auswählen",
70
- "daterange.filter.to": "Bis",
71
+ "daterange.filter.to": "Bis zum",
71
72
  "domain.contact.role.author": "Autor",
72
73
  "domain.contact.role.collaborator": "Mitarbeiter",
73
74
  "domain.contact.role.contributor": "Beitragender",
@@ -89,6 +90,15 @@
89
90
  "domain.contact.role.stakeholder": "Beteiligter",
90
91
  "domain.contact.role.unspecified": "Nicht angegeben",
91
92
  "domain.contact.role.user": "Benutzer",
93
+ "domain.record.associationType.collectiveTitle": "",
94
+ "domain.record.associationType.crossReference": "",
95
+ "domain.record.associationType.dependency": "",
96
+ "domain.record.associationType.isComposedOf": "",
97
+ "domain.record.associationType.largerWorkCitation": "",
98
+ "domain.record.associationType.partOfSeamlessDatabase": "",
99
+ "domain.record.associationType.revisionOf": "",
100
+ "domain.record.associationType.series": "",
101
+ "domain.record.associationType.stereoMate": "",
92
102
  "domain.record.keywordType.other": "Stichworte",
93
103
  "domain.record.keywordType.place": "Ort",
94
104
  "domain.record.keywordType.temporal": "Zeitlich",
@@ -212,6 +222,9 @@
212
222
  "editor.record.form.field.organisation": "Ansprechpartner - Organisation",
213
223
  "editor.record.form.field.otherConstraints": "Allgemeine Einschränkung",
214
224
  "editor.record.form.field.overviews": "Übersicht",
225
+ "editor.record.form.field.parentIdentifier": "",
226
+ "editor.record.form.field.parentLink": "",
227
+ "editor.record.form.field.parentType": "",
215
228
  "editor.record.form.field.recordUpdated": "Datensatz zuletzt aktualisiert",
216
229
  "editor.record.form.field.resourceCreated": "Erstellungsdatum",
217
230
  "editor.record.form.field.resourceIdentifier": "Kennung",
@@ -412,7 +425,6 @@
412
425
  "map.add.layer.wms": "Aus WMS",
413
426
  "map.addFromFile.placeholder": "Klicke hier oder ziehe eine Datei herein",
414
427
  "map.dropdown.placeholder": "Kein Vorschaulayer verfügbar",
415
- "map.geocoding.placeholder": "Nach einem Ort suchen",
416
428
  "map.help.addFromFile": "Klicke oder ziehe eine Datei herein um eine Karte hinzuzufügen (momentan wird nur das GeoJSON-Format unterstützt).",
417
429
  "map.layer.add": "Hinzufügen",
418
430
  "map.layers.available": "Verfügbare Layer",
@@ -533,11 +545,12 @@
533
545
  "record.metadata.download": "Herunterladen",
534
546
  "record.metadata.feature.catalog": "Attributkatalog",
535
547
  "record.metadata.formats": "Formate",
536
- "record.metadata.isGeographical": "geographischer Datensatz",
548
+ "record.metadata.isGeographical": "geo",
537
549
  "record.metadata.keywords": "Stichworte",
538
550
  "record.metadata.languages": "Sprachen",
539
551
  "record.metadata.link.postgis.table": "Tabelle:",
540
552
  "record.metadata.link.postgis.tooltip": "PostGIS-Ressourcen haben keinen Zugriffslink.",
553
+ "record.metadata.linked.associatedRecords": "",
541
554
  "record.metadata.linked.datasets": "Verknüpfte Datensätze",
542
555
  "record.metadata.linked.records": "Verknüpfte Inhalte",
543
556
  "record.metadata.linked.reuses": "Verknüpfte Wiederverwendungen",
@@ -676,9 +689,22 @@
676
689
  "search.filters.recordKind.reuse": "Wiederverwendungen",
677
690
  "search.filters.recordKind.service": "Dienste",
678
691
  "search.filters.representationType": "Repräsentationstyp",
692
+ "search.filters.resourceCreationRevisionDate": "Ressourcendatum",
679
693
  "search.filters.resourceType": "Ressourcentyp",
694
+ "search.filters.spatialExtent": "",
695
+ "search.filters.spatialExtent.bboxFromFile": "",
696
+ "search.filters.spatialExtent.bboxFromFileDelete": "",
697
+ "search.filters.spatialExtent.bboxInitial": "",
698
+ "search.filters.spatialExtent.bboxInitialDelete": "",
699
+ "search.filters.spatialExtent.error.fileTooLarge": "",
700
+ "search.filters.spatialExtent.error.invalidFormat": "",
701
+ "search.filters.spatialExtent.error.noGeometry": "",
702
+ "search.filters.spatialExtent.error.title": "",
703
+ "search.filters.spatialExtent.helpText": "",
704
+ "search.filters.spatialExtent.import": "",
680
705
  "search.filters.standard": "Standard",
681
706
  "search.filters.summaryLabel.changeDate": "Geändert am: ",
707
+ "search.filters.summaryLabel.resourceCreationRevisionDate": "Ressourcendatum: ",
682
708
  "search.filters.summaryLabel.user": "Geändert von: ",
683
709
  "search.filters.title": "Ergebnisse filtern",
684
710
  "search.filters.topic": "Themen",
@@ -65,9 +65,10 @@
65
65
  "dataset.error.restrictedAccess": "Access to this resource is restricted",
66
66
  "dataset.error.unknown": "The data cannot be displayed: \"{ info }\"",
67
67
  "dataset.error.unsupportedType": "The following content type is unsupported: \"{ info }\"",
68
+ "daterange.filter.datePlaceholder": "mm/dd/yyyy",
68
69
  "daterange.filter.from": "From",
69
70
  "daterange.filter.period": "Period",
70
- "daterange.filter.to": "To",
71
+ "daterange.filter.to": "Until",
71
72
  "domain.contact.role.author": "Author",
72
73
  "domain.contact.role.collaborator": "Collaborator",
73
74
  "domain.contact.role.contributor": "Contributor",
@@ -89,6 +90,15 @@
89
90
  "domain.contact.role.stakeholder": "Stakeholder",
90
91
  "domain.contact.role.unspecified": "Unspecified",
91
92
  "domain.contact.role.user": "User",
93
+ "domain.record.associationType.collectiveTitle": "Collective Title",
94
+ "domain.record.associationType.crossReference": "Cross reference",
95
+ "domain.record.associationType.dependency": "Dependency",
96
+ "domain.record.associationType.isComposedOf": "Is composed of",
97
+ "domain.record.associationType.largerWorkCitation": "Larger work citation",
98
+ "domain.record.associationType.partOfSeamlessDatabase": "Part of seamless database",
99
+ "domain.record.associationType.revisionOf": "Revision Of",
100
+ "domain.record.associationType.series": "Series",
101
+ "domain.record.associationType.stereoMate": "Stereo mate",
92
102
  "domain.record.keywordType.other": "Keywords",
93
103
  "domain.record.keywordType.place": "Place",
94
104
  "domain.record.keywordType.temporal": "Temporal",
@@ -212,6 +222,9 @@
212
222
  "editor.record.form.field.organisation": "Point of contact - Organization",
213
223
  "editor.record.form.field.otherConstraints": "Other constraint",
214
224
  "editor.record.form.field.overviews": "Overview",
225
+ "editor.record.form.field.parentIdentifier": "Parent identifier",
226
+ "editor.record.form.field.parentLink": "This record has a parent link",
227
+ "editor.record.form.field.parentType": "Relationship type",
215
228
  "editor.record.form.field.recordUpdated": "Record updated",
216
229
  "editor.record.form.field.resourceCreated": "{recordKind, select, dataset{Dataset} service{Service} reuse{Reuse} other{Record}} created",
217
230
  "editor.record.form.field.resourceIdentifier": "Identifier",
@@ -412,7 +425,6 @@
412
425
  "map.add.layer.wms": "From WMS",
413
426
  "map.addFromFile.placeholder": "Click or drop a file here",
414
427
  "map.dropdown.placeholder": "No preview layer available",
415
- "map.geocoding.placeholder": "Search for a place",
416
428
  "map.help.addFromFile": "Click or drag and drop a file to add to the map (currently supports GeoJSON format only).",
417
429
  "map.layer.add": "Add",
418
430
  "map.layers.available": "Available Layers",
@@ -533,11 +545,12 @@
533
545
  "record.metadata.download": "Downloads",
534
546
  "record.metadata.feature.catalog": "Feature catalog",
535
547
  "record.metadata.formats": "Formats",
536
- "record.metadata.isGeographical": "geographic dataset",
548
+ "record.metadata.isGeographical": "geo",
537
549
  "record.metadata.keywords": "Keywords",
538
550
  "record.metadata.languages": "Languages",
539
551
  "record.metadata.link.postgis.table": "table :",
540
552
  "record.metadata.link.postgis.tooltip": "PostGIS resources do not have access links",
553
+ "record.metadata.linked.associatedRecords": "Records referencing the current one",
541
554
  "record.metadata.linked.datasets": "Associated datasets",
542
555
  "record.metadata.linked.records": "Associated content",
543
556
  "record.metadata.linked.reuses": "Associated reuses",
@@ -676,9 +689,22 @@
676
689
  "search.filters.recordKind.reuse": "Reuses",
677
690
  "search.filters.recordKind.service": "Services",
678
691
  "search.filters.representationType": "Representation type",
692
+ "search.filters.resourceCreationRevisionDate": "Resource date",
679
693
  "search.filters.resourceType": "Resource type",
694
+ "search.filters.spatialExtent": "Spatial extent",
695
+ "search.filters.spatialExtent.bboxFromFile": "extent from {fileName}",
696
+ "search.filters.spatialExtent.bboxFromFileDelete": "Delete {fileName}",
697
+ "search.filters.spatialExtent.bboxInitial": "Pre-selected extent",
698
+ "search.filters.spatialExtent.bboxInitialDelete": "Delete selection",
699
+ "search.filters.spatialExtent.error.fileTooLarge": "The file exceeds the maximum allowed size ({maxSize} MB)",
700
+ "search.filters.spatialExtent.error.invalidFormat": "The file could not be read as a valid GeoJSON",
701
+ "search.filters.spatialExtent.error.noGeometry": "No geometry could be found in the file",
702
+ "search.filters.spatialExtent.error.title": "GeoJSON import error",
703
+ "search.filters.spatialExtent.helpText": "The selected item for the spatial extent will be converted to a bbox",
704
+ "search.filters.spatialExtent.import": "Import a GeoJSON",
680
705
  "search.filters.standard": "Standard",
681
706
  "search.filters.summaryLabel.changeDate": "Updated: ",
707
+ "search.filters.summaryLabel.resourceCreationRevisionDate": "Resource date: ",
682
708
  "search.filters.summaryLabel.user": "Editor: ",
683
709
  "search.filters.title": "Filter your results",
684
710
  "search.filters.topic": "Topics",
@@ -65,6 +65,7 @@
65
65
  "dataset.error.restrictedAccess": "",
66
66
  "dataset.error.unknown": "",
67
67
  "dataset.error.unsupportedType": "",
68
+ "daterange.filter.datePlaceholder": "dd/mm/aaaa",
68
69
  "daterange.filter.from": "",
69
70
  "daterange.filter.period": "",
70
71
  "daterange.filter.to": "",
@@ -89,6 +90,15 @@
89
90
  "domain.contact.role.stakeholder": "",
90
91
  "domain.contact.role.unspecified": "",
91
92
  "domain.contact.role.user": "",
93
+ "domain.record.associationType.collectiveTitle": "",
94
+ "domain.record.associationType.crossReference": "",
95
+ "domain.record.associationType.dependency": "",
96
+ "domain.record.associationType.isComposedOf": "",
97
+ "domain.record.associationType.largerWorkCitation": "",
98
+ "domain.record.associationType.partOfSeamlessDatabase": "",
99
+ "domain.record.associationType.revisionOf": "",
100
+ "domain.record.associationType.series": "",
101
+ "domain.record.associationType.stereoMate": "",
92
102
  "domain.record.keywordType.other": "",
93
103
  "domain.record.keywordType.place": "",
94
104
  "domain.record.keywordType.temporal": "",
@@ -212,6 +222,9 @@
212
222
  "editor.record.form.field.organisation": "Punto de contacto - Organización",
213
223
  "editor.record.form.field.otherConstraints": "",
214
224
  "editor.record.form.field.overviews": "",
225
+ "editor.record.form.field.parentIdentifier": "",
226
+ "editor.record.form.field.parentLink": "",
227
+ "editor.record.form.field.parentType": "",
215
228
  "editor.record.form.field.recordUpdated": "",
216
229
  "editor.record.form.field.resourceCreated": "",
217
230
  "editor.record.form.field.resourceIdentifier": "",
@@ -412,7 +425,6 @@
412
425
  "map.add.layer.wms": "",
413
426
  "map.addFromFile.placeholder": "",
414
427
  "map.dropdown.placeholder": "",
415
- "map.geocoding.placeholder": "",
416
428
  "map.help.addFromFile": "",
417
429
  "map.layer.add": "",
418
430
  "map.layers.available": "",
@@ -538,6 +550,7 @@
538
550
  "record.metadata.languages": "",
539
551
  "record.metadata.link.postgis.table": "",
540
552
  "record.metadata.link.postgis.tooltip": "",
553
+ "record.metadata.linked.associatedRecords": "",
541
554
  "record.metadata.linked.datasets": "",
542
555
  "record.metadata.linked.records": "",
543
556
  "record.metadata.linked.reuses": "",
@@ -676,9 +689,22 @@
676
689
  "search.filters.recordKind.reuse": "",
677
690
  "search.filters.recordKind.service": "",
678
691
  "search.filters.representationType": "",
692
+ "search.filters.resourceCreationRevisionDate": "",
679
693
  "search.filters.resourceType": "",
694
+ "search.filters.spatialExtent": "",
695
+ "search.filters.spatialExtent.bboxFromFile": "",
696
+ "search.filters.spatialExtent.bboxFromFileDelete": "",
697
+ "search.filters.spatialExtent.bboxInitial": "",
698
+ "search.filters.spatialExtent.bboxInitialDelete": "",
699
+ "search.filters.spatialExtent.error.fileTooLarge": "",
700
+ "search.filters.spatialExtent.error.invalidFormat": "",
701
+ "search.filters.spatialExtent.error.noGeometry": "",
702
+ "search.filters.spatialExtent.error.title": "",
703
+ "search.filters.spatialExtent.helpText": "",
704
+ "search.filters.spatialExtent.import": "",
680
705
  "search.filters.standard": "",
681
706
  "search.filters.summaryLabel.changeDate": "",
707
+ "search.filters.summaryLabel.resourceCreationRevisionDate": "",
682
708
  "search.filters.summaryLabel.user": "",
683
709
  "search.filters.title": "",
684
710
  "search.filters.topic": "",
@@ -65,9 +65,10 @@
65
65
  "dataset.error.restrictedAccess": "L’accès à cette ressource est restreint",
66
66
  "dataset.error.unknown": "Les données ne peuvent être affichées: \"{ info }\"",
67
67
  "dataset.error.unsupportedType": "Le type de contenu suivant n'est pas pris en charge: \"{ info }\"",
68
- "daterange.filter.from": "Du",
68
+ "daterange.filter.datePlaceholder": "jj/mm/aaaa",
69
+ "daterange.filter.from": "A partir du",
69
70
  "daterange.filter.period": "Choix de la période",
70
- "daterange.filter.to": "Au",
71
+ "daterange.filter.to": "Jusqu'au",
71
72
  "domain.contact.role.author": "Auteur",
72
73
  "domain.contact.role.collaborator": "Collaborateur",
73
74
  "domain.contact.role.contributor": "Contributeur",
@@ -89,6 +90,15 @@
89
90
  "domain.contact.role.stakeholder": "Partie prenante",
90
91
  "domain.contact.role.unspecified": "Non spécifié",
91
92
  "domain.contact.role.user": "Utilisateur",
93
+ "domain.record.associationType.collectiveTitle": "Titre commun",
94
+ "domain.record.associationType.crossReference": "Référence croisée",
95
+ "domain.record.associationType.dependency": "Dépendance",
96
+ "domain.record.associationType.isComposedOf": "Est composé de",
97
+ "domain.record.associationType.largerWorkCitation": "Référence mère",
98
+ "domain.record.associationType.partOfSeamlessDatabase": "Partie d'une même base de données",
99
+ "domain.record.associationType.revisionOf": "Révision de",
100
+ "domain.record.associationType.series": "Séries",
101
+ "domain.record.associationType.stereoMate": "Stéréo restitution",
92
102
  "domain.record.keywordType.other": "Mots-clés",
93
103
  "domain.record.keywordType.place": "Localisation",
94
104
  "domain.record.keywordType.temporal": "Temps",
@@ -212,6 +222,9 @@
212
222
  "editor.record.form.field.organisation": "Point de contact - Organisation",
213
223
  "editor.record.form.field.otherConstraints": "Contrainte générale",
214
224
  "editor.record.form.field.overviews": "Aperçu",
225
+ "editor.record.form.field.parentIdentifier": "Identifiant du parent",
226
+ "editor.record.form.field.parentLink": "Cette donnée possède un lien de parenté",
227
+ "editor.record.form.field.parentType": "Type de parenté",
215
228
  "editor.record.form.field.recordUpdated": "Date de mise à jour",
216
229
  "editor.record.form.field.resourceCreated": "Date de création",
217
230
  "editor.record.form.field.resourceIdentifier": "Identifiant",
@@ -412,7 +425,6 @@
412
425
  "map.add.layer.wms": "Depuis un service WMS",
413
426
  "map.addFromFile.placeholder": "Cliquez ou déposez un fichier ici",
414
427
  "map.dropdown.placeholder": "Aucune couche d'aperçu disponible",
415
- "map.geocoding.placeholder": "Rechercher un lieu",
416
428
  "map.help.addFromFile": "Cliquez ou glissez-déposez un fichier pour l'ajouter à la carte (supporte actuellement uniquement le format GeoJSON).",
417
429
  "map.layer.add": "Ajouter",
418
430
  "map.layers.available": "Couches disponibles",
@@ -533,11 +545,12 @@
533
545
  "record.metadata.download": "Téléchargements",
534
546
  "record.metadata.feature.catalog": "Catalogue d'attributs",
535
547
  "record.metadata.formats": "Formats",
536
- "record.metadata.isGeographical": "donnée géographique",
548
+ "record.metadata.isGeographical": "géo",
537
549
  "record.metadata.keywords": "Mots-clés",
538
550
  "record.metadata.languages": "Langues",
539
551
  "record.metadata.link.postgis.table": "table :",
540
552
  "record.metadata.link.postgis.tooltip": "Les ressources de type PostGIS n'ont pas de lien d'accès",
553
+ "record.metadata.linked.associatedRecords": "Jeux de données faisant référence à celui-ci",
541
554
  "record.metadata.linked.datasets": "Jeux de données associés",
542
555
  "record.metadata.linked.records": "Contenus associés",
543
556
  "record.metadata.linked.reuses": "Réutilisations associées",
@@ -676,9 +689,22 @@
676
689
  "search.filters.recordKind.reuse": "Réutilisations",
677
690
  "search.filters.recordKind.service": "Services",
678
691
  "search.filters.representationType": "Type de représentation",
692
+ "search.filters.resourceCreationRevisionDate": "Date de la ressource",
679
693
  "search.filters.resourceType": "Type de ressource",
694
+ "search.filters.spatialExtent": "Étendue spatiale",
695
+ "search.filters.spatialExtent.bboxFromFile": "étendue de {fileName}",
696
+ "search.filters.spatialExtent.bboxFromFileDelete": "Supprimer {fileName}",
697
+ "search.filters.spatialExtent.bboxInitial": "étendue présélectionnée",
698
+ "search.filters.spatialExtent.bboxInitialDelete": "Supprimer la sélection",
699
+ "search.filters.spatialExtent.error.fileTooLarge": "Le fichier dépasse la taille maximale autorisée ({maxSize} Mo)",
700
+ "search.filters.spatialExtent.error.invalidFormat": "Le fichier n'a pas pu être lu comme un GeoJSON valide",
701
+ "search.filters.spatialExtent.error.noGeometry": "Aucune géométrie n'a pu être trouvée dans le fichier",
702
+ "search.filters.spatialExtent.error.title": "Erreur d'importation GeoJSON",
703
+ "search.filters.spatialExtent.helpText": "L’élément sélectionné pour l'étendue sera converti en bbox",
704
+ "search.filters.spatialExtent.import": "Importer un GeoJSON",
680
705
  "search.filters.standard": "Standard",
681
706
  "search.filters.summaryLabel.changeDate": "Mise à jour : ",
707
+ "search.filters.summaryLabel.resourceCreationRevisionDate": "Date de la ressource : ",
682
708
  "search.filters.summaryLabel.user": "Éditeur : ",
683
709
  "search.filters.title": "Affiner votre recherche",
684
710
  "search.filters.topic": "Thèmes",
@@ -65,6 +65,7 @@
65
65
  "dataset.error.restrictedAccess": "L'accesso a questa risorsa è limitato",
66
66
  "dataset.error.unknown": "Impossibile visualizzare i dati: \"{info}\"",
67
67
  "dataset.error.unsupportedType": "Il seguente tipo di contenuto non è supportato: \"{info}\"",
68
+ "daterange.filter.datePlaceholder": "gg/mm/aaaa",
68
69
  "daterange.filter.from": "",
69
70
  "daterange.filter.period": "",
70
71
  "daterange.filter.to": "",
@@ -89,6 +90,15 @@
89
90
  "domain.contact.role.stakeholder": "Parte interessata",
90
91
  "domain.contact.role.unspecified": "Non specificato",
91
92
  "domain.contact.role.user": "Utente",
93
+ "domain.record.associationType.collectiveTitle": "",
94
+ "domain.record.associationType.crossReference": "",
95
+ "domain.record.associationType.dependency": "",
96
+ "domain.record.associationType.isComposedOf": "",
97
+ "domain.record.associationType.largerWorkCitation": "",
98
+ "domain.record.associationType.partOfSeamlessDatabase": "",
99
+ "domain.record.associationType.revisionOf": "",
100
+ "domain.record.associationType.series": "",
101
+ "domain.record.associationType.stereoMate": "",
92
102
  "domain.record.keywordType.other": "Parole chiave",
93
103
  "domain.record.keywordType.place": "Luogo",
94
104
  "domain.record.keywordType.temporal": "Temporale",
@@ -212,6 +222,9 @@
212
222
  "editor.record.form.field.organisation": "",
213
223
  "editor.record.form.field.otherConstraints": "Vincolo generale",
214
224
  "editor.record.form.field.overviews": "Panoramica",
225
+ "editor.record.form.field.parentIdentifier": "",
226
+ "editor.record.form.field.parentLink": "",
227
+ "editor.record.form.field.parentType": "",
215
228
  "editor.record.form.field.recordUpdated": "Data di aggiornamento",
216
229
  "editor.record.form.field.resourceCreated": "Data di creazione",
217
230
  "editor.record.form.field.resourceIdentifier": "Identificatore",
@@ -412,7 +425,6 @@
412
425
  "map.add.layer.wms": "Da un WMS",
413
426
  "map.addFromFile.placeholder": "Clicca o trascina un file qui",
414
427
  "map.dropdown.placeholder": "Nessun livello di anteprima disponibile",
415
- "map.geocoding.placeholder": "Cerca un luogo",
416
428
  "map.help.addFromFile": "Clicca o trascina un file per aggiungerlo alla mappa (attualmente supporta solo il formato GeoJSON)",
417
429
  "map.layer.add": "Aggiungi",
418
430
  "map.layers.available": "Layer disponibili",
@@ -533,11 +545,12 @@
533
545
  "record.metadata.download": "Download",
534
546
  "record.metadata.feature.catalog": "Catalogo dei oggetti",
535
547
  "record.metadata.formats": "Formati",
536
- "record.metadata.isGeographical": "dati geografici",
548
+ "record.metadata.isGeographical": "geo",
537
549
  "record.metadata.keywords": "Parole chiave",
538
550
  "record.metadata.languages": "Lingue",
539
551
  "record.metadata.link.postgis.table": "",
540
552
  "record.metadata.link.postgis.tooltip": "",
553
+ "record.metadata.linked.associatedRecords": "",
541
554
  "record.metadata.linked.datasets": "",
542
555
  "record.metadata.linked.records": "",
543
556
  "record.metadata.linked.reuses": "",
@@ -676,9 +689,22 @@
676
689
  "search.filters.recordKind.reuse": "Riutilizzi",
677
690
  "search.filters.recordKind.service": "Servizi",
678
691
  "search.filters.representationType": "Tipo di rappresentazione",
692
+ "search.filters.resourceCreationRevisionDate": "Data della risorsa",
679
693
  "search.filters.resourceType": "Tipo di risorsa",
694
+ "search.filters.spatialExtent": "",
695
+ "search.filters.spatialExtent.bboxFromFile": "",
696
+ "search.filters.spatialExtent.bboxFromFileDelete": "",
697
+ "search.filters.spatialExtent.bboxInitial": "",
698
+ "search.filters.spatialExtent.bboxInitialDelete": "",
699
+ "search.filters.spatialExtent.error.fileTooLarge": "",
700
+ "search.filters.spatialExtent.error.invalidFormat": "",
701
+ "search.filters.spatialExtent.error.noGeometry": "",
702
+ "search.filters.spatialExtent.error.title": "",
703
+ "search.filters.spatialExtent.helpText": "",
704
+ "search.filters.spatialExtent.import": "",
680
705
  "search.filters.standard": "Standard",
681
706
  "search.filters.summaryLabel.changeDate": "Aggiornato: ",
707
+ "search.filters.summaryLabel.resourceCreationRevisionDate": "Data della risorsa: ",
682
708
  "search.filters.summaryLabel.user": "Editor: ",
683
709
  "search.filters.title": "Affina la sua ricerca",
684
710
  "search.filters.topic": "Argomenti",
@@ -65,6 +65,7 @@
65
65
  "dataset.error.restrictedAccess": "",
66
66
  "dataset.error.unknown": "",
67
67
  "dataset.error.unsupportedType": "",
68
+ "daterange.filter.datePlaceholder": "dd-mm-jjjj",
68
69
  "daterange.filter.from": "",
69
70
  "daterange.filter.period": "",
70
71
  "daterange.filter.to": "",
@@ -89,6 +90,15 @@
89
90
  "domain.contact.role.stakeholder": "",
90
91
  "domain.contact.role.unspecified": "",
91
92
  "domain.contact.role.user": "",
93
+ "domain.record.associationType.collectiveTitle": "",
94
+ "domain.record.associationType.crossReference": "",
95
+ "domain.record.associationType.dependency": "",
96
+ "domain.record.associationType.isComposedOf": "",
97
+ "domain.record.associationType.largerWorkCitation": "",
98
+ "domain.record.associationType.partOfSeamlessDatabase": "",
99
+ "domain.record.associationType.revisionOf": "",
100
+ "domain.record.associationType.series": "",
101
+ "domain.record.associationType.stereoMate": "",
92
102
  "domain.record.keywordType.other": "",
93
103
  "domain.record.keywordType.place": "",
94
104
  "domain.record.keywordType.temporal": "",
@@ -212,6 +222,9 @@
212
222
  "editor.record.form.field.organisation": "",
213
223
  "editor.record.form.field.otherConstraints": "",
214
224
  "editor.record.form.field.overviews": "",
225
+ "editor.record.form.field.parentIdentifier": "",
226
+ "editor.record.form.field.parentLink": "",
227
+ "editor.record.form.field.parentType": "",
215
228
  "editor.record.form.field.recordUpdated": "",
216
229
  "editor.record.form.field.resourceCreated": "",
217
230
  "editor.record.form.field.resourceIdentifier": "",
@@ -412,7 +425,6 @@
412
425
  "map.add.layer.wms": "",
413
426
  "map.addFromFile.placeholder": "",
414
427
  "map.dropdown.placeholder": "",
415
- "map.geocoding.placeholder": "",
416
428
  "map.help.addFromFile": "",
417
429
  "map.layer.add": "",
418
430
  "map.layers.available": "",
@@ -538,6 +550,7 @@
538
550
  "record.metadata.languages": "",
539
551
  "record.metadata.link.postgis.table": "",
540
552
  "record.metadata.link.postgis.tooltip": "",
553
+ "record.metadata.linked.associatedRecords": "",
541
554
  "record.metadata.linked.datasets": "",
542
555
  "record.metadata.linked.records": "",
543
556
  "record.metadata.linked.reuses": "",
@@ -676,9 +689,22 @@
676
689
  "search.filters.recordKind.reuse": "",
677
690
  "search.filters.recordKind.service": "",
678
691
  "search.filters.representationType": "",
692
+ "search.filters.resourceCreationRevisionDate": "",
679
693
  "search.filters.resourceType": "",
694
+ "search.filters.spatialExtent": "",
695
+ "search.filters.spatialExtent.bboxFromFile": "",
696
+ "search.filters.spatialExtent.bboxFromFileDelete": "",
697
+ "search.filters.spatialExtent.bboxInitial": "",
698
+ "search.filters.spatialExtent.bboxInitialDelete": "",
699
+ "search.filters.spatialExtent.error.fileTooLarge": "",
700
+ "search.filters.spatialExtent.error.invalidFormat": "",
701
+ "search.filters.spatialExtent.error.noGeometry": "",
702
+ "search.filters.spatialExtent.error.title": "",
703
+ "search.filters.spatialExtent.helpText": "",
704
+ "search.filters.spatialExtent.import": "",
680
705
  "search.filters.standard": "",
681
706
  "search.filters.summaryLabel.changeDate": "",
707
+ "search.filters.summaryLabel.resourceCreationRevisionDate": "",
682
708
  "search.filters.summaryLabel.user": "",
683
709
  "search.filters.title": "",
684
710
  "search.filters.topic": "",