geonetwork-ui 2.4.0-dev.a1bcfe22 → 2.4.0-dev.a6f221e3

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 (282) hide show
  1. package/esm2022/libs/api/metadata-converter/src/index.mjs +1 -2
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.mjs +1 -1
  3. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +7 -5
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +30 -2
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.mjs +31 -0
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +23 -1
  7. package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +10 -3
  8. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +21 -4
  9. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +11 -1
  10. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +11 -1
  11. package/esm2022/libs/common/domain/src/lib/model/record/contact.model.mjs +28 -1
  12. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  13. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  14. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  15. package/esm2022/libs/feature/editor/src/lib/components/contact-card/contact-card.component.mjs +29 -0
  16. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +78 -0
  17. package/esm2022/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.mjs +131 -0
  18. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +170 -0
  19. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +15 -39
  20. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +101 -0
  21. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.mjs +47 -0
  22. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +21 -0
  23. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +111 -5
  24. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.mjs +7 -6
  25. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +33 -9
  26. package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +3 -3
  27. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +8 -8
  28. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +6 -4
  29. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +37 -4
  30. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +6 -6
  31. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +6 -5
  32. package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +8 -5
  33. package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +6 -7
  34. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +8 -7
  35. package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +7 -6
  36. package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +7 -26
  37. package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +29 -13
  38. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +10 -5
  39. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +3 -3
  40. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +40 -7
  41. package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +6 -2
  42. package/esm2022/libs/ui/elements/src/index.mjs +2 -1
  43. package/esm2022/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.mjs +27 -0
  44. package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +4 -3
  45. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +2 -2
  46. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +3 -3
  47. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +5 -5
  48. package/esm2022/libs/ui/elements/src/lib/sortable-list/sortable-list.component.mjs +7 -3
  49. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +7 -4
  50. package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
  51. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +19 -5
  52. package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +17 -14
  53. package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +32 -0
  54. package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +6 -21
  55. package/esm2022/libs/ui/inputs/src/lib/text-input/text-input.component.mjs +6 -17
  56. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +3 -7
  57. package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +43 -0
  58. package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +3 -3
  59. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +3 -3
  60. package/esm2022/libs/ui/map/src/lib/ui-map.module.mjs +3 -3
  61. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +49 -11
  62. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +18 -6
  63. package/esm2022/translations/de.json +50 -17
  64. package/esm2022/translations/en.json +43 -10
  65. package/esm2022/translations/es.json +42 -9
  66. package/esm2022/translations/fr.json +54 -21
  67. package/esm2022/translations/it.json +43 -10
  68. package/esm2022/translations/nl.json +42 -9
  69. package/esm2022/translations/pt.json +42 -9
  70. package/fesm2022/geonetwork-ui.mjs +4607 -3394
  71. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  72. package/libs/api/metadata-converter/src/index.d.ts +0 -1
  73. package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
  74. package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts +2 -6
  75. package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts.map +1 -1
  76. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
  77. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +8 -1
  78. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  79. package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts +5 -0
  80. package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts.map +1 -0
  81. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +3 -1
  82. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  83. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +1 -0
  84. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
  85. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +6 -1
  86. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  87. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
  88. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +1 -0
  89. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  90. package/libs/common/domain/src/lib/model/record/contact.model.d.ts +1 -0
  91. package/libs/common/domain/src/lib/model/record/contact.model.d.ts.map +1 -1
  92. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +3 -1
  93. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  94. package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -0
  95. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  96. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +8 -0
  97. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  98. package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts +12 -0
  99. package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts.map +1 -0
  100. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts +32 -0
  101. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -0
  102. package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts +27 -0
  103. package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts.map +1 -0
  104. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts +47 -0
  105. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts.map +1 -0
  106. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts +4 -16
  107. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -1
  108. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts +22 -0
  109. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts.map +1 -0
  110. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts +17 -0
  111. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts.map +1 -0
  112. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +11 -0
  113. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -0
  114. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts +23 -0
  115. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts.map +1 -1
  116. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts +3 -1
  117. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts.map +1 -1
  118. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +9 -1
  119. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  120. package/libs/feature/editor/src/lib/feature-editor.module.d.ts +2 -1
  121. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  122. package/libs/feature/editor/src/lib/fields.config.d.ts +8 -0
  123. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  124. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts +1 -1
  125. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts.map +1 -1
  126. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts +1 -1
  127. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts.map +1 -1
  128. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts +1 -1
  129. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -1
  130. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +1 -1
  131. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -1
  132. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts +1 -1
  133. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -1
  134. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts +1 -1
  135. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts.map +1 -1
  136. package/libs/feature/map/src/lib/feature-map.module.d.ts +16 -21
  137. package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
  138. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts +1 -1
  139. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
  140. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  141. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +11 -3
  142. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  143. package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -0
  144. package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
  145. package/libs/ui/elements/src/index.d.ts +1 -0
  146. package/libs/ui/elements/src/index.d.ts.map +1 -1
  147. package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts +18 -0
  148. package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts.map +1 -0
  149. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
  150. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
  151. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts +4 -4
  152. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts.map +1 -1
  153. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
  154. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  155. package/libs/ui/inputs/src/index.d.ts +1 -0
  156. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  157. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +9 -1
  158. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  159. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +3 -4
  160. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -1
  161. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts +17 -0
  162. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts.map +1 -0
  163. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +0 -4
  164. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
  165. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts +2 -4
  166. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts.map +1 -1
  167. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +34 -35
  168. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  169. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +18 -0
  170. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -0
  171. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +10 -1
  172. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
  173. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +6 -2
  174. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  175. package/package.json +1 -1
  176. package/src/libs/api/metadata-converter/src/index.ts +0 -1
  177. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +6 -1
  178. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +5 -1
  179. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +37 -12
  180. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +5 -1
  181. package/src/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.ts +2 -6
  182. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +6 -2
  183. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +72 -2
  184. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.ts +39 -0
  185. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +70 -1
  186. package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +13 -5
  187. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +24 -4
  188. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +12 -1
  189. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +43 -12
  190. package/src/libs/common/domain/src/lib/model/record/contact.model.ts +28 -0
  191. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +3 -1
  192. package/src/libs/common/domain/src/lib/platform.service.interface.ts +4 -0
  193. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +10 -0
  194. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.css +0 -0
  195. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.html +25 -0
  196. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.ts +30 -0
  197. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.css +0 -0
  198. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.html +26 -0
  199. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +89 -0
  200. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +2 -1
  201. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +110 -19
  202. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.css +0 -0
  203. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +76 -0
  204. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +271 -0
  205. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.html +7 -17
  206. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +9 -48
  207. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.css +0 -0
  208. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +4 -0
  209. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.ts +128 -0
  210. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.css +0 -0
  211. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.html +6 -0
  212. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.ts +59 -0
  213. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.css +0 -0
  214. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +5 -0
  215. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +22 -0
  216. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +15 -1
  217. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +156 -1
  218. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.ts +8 -7
  219. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +20 -3
  220. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +30 -1
  221. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +1 -1
  222. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +1 -1
  223. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +2 -1
  224. package/src/libs/feature/editor/src/lib/fields.config.ts +40 -3
  225. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.ts +3 -0
  226. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.ts +5 -1
  227. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +5 -0
  228. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.html +1 -1
  229. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +10 -7
  230. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.html +1 -1
  231. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +5 -0
  232. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.html +1 -1
  233. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.ts +6 -1
  234. package/src/libs/feature/map/src/lib/feature-map.module.ts +2 -15
  235. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +24 -1
  236. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +8 -4
  237. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +1 -1
  238. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +2 -1
  239. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +52 -3
  240. package/src/libs/feature/search/src/lib/state/search.facade.ts +6 -0
  241. package/src/libs/ui/elements/src/index.ts +1 -0
  242. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.css +0 -0
  243. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.html +12 -0
  244. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.ts +37 -0
  245. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +4 -1
  246. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +2 -1
  247. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +12 -8
  248. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +2 -2
  249. package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.html +3 -1
  250. package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.ts +8 -4
  251. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +6 -1
  252. package/src/libs/ui/inputs/src/index.ts +1 -0
  253. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +15 -3
  254. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.css +0 -0
  255. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.html +85 -0
  256. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.ts +91 -0
  257. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +49 -49
  258. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +15 -13
  259. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.html +2 -1
  260. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +2 -27
  261. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.html +4 -3
  262. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.ts +4 -16
  263. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -3
  264. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.css +9 -0
  265. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.html +37 -0
  266. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +33 -0
  267. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.html +1 -1
  268. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +1 -0
  269. package/src/libs/ui/map/src/lib/ui-map.module.ts +1 -1
  270. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +10 -1
  271. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +55 -3
  272. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +7 -2
  273. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +9 -9
  274. package/tailwind.base.css +16 -4
  275. package/translations/de.json +50 -17
  276. package/translations/en.json +43 -10
  277. package/translations/es.json +42 -9
  278. package/translations/fr.json +54 -21
  279. package/translations/it.json +43 -10
  280. package/translations/nl.json +42 -9
  281. package/translations/pt.json +42 -9
  282. package/translations/sk.json +43 -10
@@ -7,37 +7,25 @@ import {
7
7
  } from '@angular/core'
8
8
  import { distinctUntilChanged } from 'rxjs/operators'
9
9
  import { Subject } from 'rxjs'
10
+ import { CommonModule } from '@angular/common'
10
11
 
11
12
  @Component({
12
13
  selector: 'gn-ui-text-input',
13
14
  templateUrl: './text-input.component.html',
14
15
  styleUrls: ['./text-input.component.css'],
16
+ standalone: true,
17
+ imports: [CommonModule],
15
18
  })
16
19
  export class TextInputComponent implements AfterViewInit {
17
- private readonly baseClass = [
18
- 'appearance-none',
19
- 'border border-gray-300',
20
- 'rounded w-full',
21
- 'p-2',
22
- 'text-gray-700',
23
- 'leading-tight',
24
- 'focus:outline-none',
25
- 'focus:border-primary',
26
- ].join(' ')
27
-
28
20
  @Input() value = ''
29
21
  @Input() extraClass = ''
30
- @Input() hint: string
22
+ @Input() placeholder: string
31
23
  @Input() required = false
32
24
  @Input() disabled: boolean
33
25
  rawChange = new Subject<string>()
34
26
  @Output() valueChange = this.rawChange.pipe(distinctUntilChanged())
35
27
  @ViewChild('input') input
36
28
 
37
- get classList() {
38
- return `${this.baseClass} ${this.extraClass}`
39
- }
40
-
41
29
  ngAfterViewInit() {
42
30
  this.checkRequired(this.input.nativeElement.value)
43
31
  }
@@ -10,7 +10,6 @@ import { ChipsInputComponent } from './chips-input/chips-input.component'
10
10
  import { DragAndDropFileInputComponent } from './drag-and-drop-file-input/drag-and-drop-file-input.component'
11
11
  import { DropdownSelectorComponent } from './dropdown-selector/dropdown-selector.component'
12
12
  import { TextAreaComponent } from './text-area/text-area.component'
13
- import { TextInputComponent } from './text-input/text-input.component'
14
13
  import { MatAutocompleteModule } from '@angular/material/autocomplete'
15
14
  import { MatIconModule } from '@angular/material/icon'
16
15
  import { NavigationButtonComponent } from './navigation-button/navigation-button.component'
@@ -36,7 +35,6 @@ import { ImageInputComponent } from './image-input/image-input.component'
36
35
 
37
36
  @NgModule({
38
37
  declarations: [
39
- TextInputComponent,
40
38
  DragAndDropFileInputComponent,
41
39
  ChipsInputComponent,
42
40
  NavigationButtonComponent,
@@ -77,7 +75,6 @@ import { ImageInputComponent } from './image-input/image-input.component'
77
75
  exports: [
78
76
  DropdownSelectorComponent,
79
77
  ButtonComponent,
80
- TextInputComponent,
81
78
  DragAndDropFileInputComponent,
82
79
  TextAreaComponent,
83
80
  ChipsInputComponent,
@@ -0,0 +1,9 @@
1
+ :host {
2
+ --gn-ui-button-rounded: 8px;
3
+ --gn-ui-button-width: 32px;
4
+ --gn-ui-button-padding: 0;
5
+
6
+ --side-padding: calc(var(--gn-ui-text-input-padding, 0.6em) - 6px);
7
+ --2x-side-padding: calc(var(--side-padding) * 2);
8
+ --text-padding: calc(var(--side-padding) + 40px);
9
+ }
@@ -0,0 +1,37 @@
1
+ <span class="w-full inline-block relative">
2
+ <input
3
+ #input
4
+ class="gn-ui-text-input px-[var(--text-padding)]"
5
+ [ngClass]="extraClass"
6
+ type="url"
7
+ [value]="value"
8
+ (input)="handleInput()"
9
+ (keydown.enter)="handleChange(input)"
10
+ [placeholder]="placeholder"
11
+ [attr.aria-label]="placeholder"
12
+ [disabled]="disabled"
13
+ />
14
+ <div
15
+ class="absolute inset-y-[var(--side-padding)] left-[var(--2x-side-padding)] grid justify-center items-center pointer-events-none"
16
+ [ngClass]='{
17
+ "text-primary": !disabled,
18
+ "text-primary-lightest": disabled,
19
+ }'
20
+ >
21
+ <mat-icon
22
+ class="material-symbols-outlined h-[24px] !w-[26px] text-[28px] leading-[24px]"
23
+ >
24
+ link
25
+ </mat-icon>
26
+ </div>
27
+ <gn-ui-button
28
+ extraClass="absolute inset-y-[var(--side-padding)] right-[var(--side-padding)]"
29
+ type="primary"
30
+ [disabled]="disabled || input.value === ''"
31
+ (buttonClick)="handleChange(input)"
32
+ >
33
+ <mat-icon class="material-symbols-outlined text-[20px] leading-[26px]">
34
+ arrow_upward
35
+ </mat-icon>
36
+ </gn-ui-button>
37
+ </span>
@@ -0,0 +1,33 @@
1
+ import { ChangeDetectorRef, Component, Input, Output } from '@angular/core'
2
+ import { CommonModule } from '@angular/common'
3
+ import { ButtonComponent } from '../button/button.component'
4
+ import { MatIconModule } from '@angular/material/icon'
5
+ import { filter } from 'rxjs/operators'
6
+ import { Subject } from 'rxjs'
7
+
8
+ @Component({
9
+ selector: 'gn-ui-url-input',
10
+ templateUrl: './url-input.component.html',
11
+ styleUrls: ['./url-input.component.css'],
12
+ standalone: true,
13
+ imports: [CommonModule, ButtonComponent, MatIconModule],
14
+ })
15
+ export class UrlInputComponent {
16
+ @Input() value = ''
17
+ @Input() extraClass = ''
18
+ @Input() placeholder = 'https://'
19
+ @Input() disabled: boolean
20
+ rawChange = new Subject<string>()
21
+ @Output() valueChange = this.rawChange.pipe(filter((v) => !!v))
22
+
23
+ constructor(private cd: ChangeDetectorRef) {}
24
+
25
+ handleInput() {
26
+ this.cd.markForCheck()
27
+ }
28
+
29
+ handleChange(element: HTMLInputElement) {
30
+ const value = element.value
31
+ this.rawChange.next(value)
32
+ }
33
+ }
@@ -12,7 +12,7 @@
12
12
  </span>
13
13
  </div>
14
14
  </div>
15
- <div class="flex-1">
15
+ <div class="flex-1 overflow-y-auto">
16
16
  <ng-content></ng-content>
17
17
  </div>
18
18
  </div>
@@ -30,6 +30,7 @@
30
30
  class="contents text-gray-900 cursor-pointer group"
31
31
  *ngFor="let item of items"
32
32
  (click)="handleRowClick(item)"
33
+ data-cy="table-row"
33
34
  >
34
35
  <div
35
36
  class="relative h-0"
@@ -12,7 +12,7 @@ import { MatIconModule } from '@angular/material/icon'
12
12
  CommonModule,
13
13
  HttpClientModule,
14
14
  MatIconModule,
15
- TranslateModule.forRoot(),
15
+ TranslateModule.forChild(),
16
16
  ],
17
17
  exports: [MapComponent, FeatureDetailComponent],
18
18
  })
@@ -1,5 +1,5 @@
1
1
  <gn-ui-button
2
- type="outline"
2
+ type="light"
3
3
  [matMenuTriggerFor]="menu"
4
4
  (buttonClick)="openMenu()"
5
5
  data-test="record-menu-button"
@@ -9,9 +9,18 @@
9
9
  <mat-menu #menu="matMenu">
10
10
  <button
11
11
  mat-menu-item
12
+ [disabled]="!canDuplicate"
12
13
  (click)="duplicate.emit()"
13
14
  data-test="record-menu-duplicate-button"
14
15
  >
15
16
  <span translate>record.action.duplicate</span>
16
17
  </button>
18
+ <button
19
+ mat-menu-item
20
+ [disabled]="!canDelete"
21
+ (click)="openDeleteConfirmationDialog()"
22
+ data-test="record-menu-delete-button"
23
+ >
24
+ <span translate>record.action.delete</span>
25
+ </button>
17
26
  </mat-menu>
@@ -1,22 +1,74 @@
1
- import { Component, EventEmitter, Output, ViewChild } from '@angular/core'
1
+ import {
2
+ Component,
3
+ EventEmitter,
4
+ Input,
5
+ Output,
6
+ ViewChild,
7
+ } from '@angular/core'
8
+ import { MatDialog, MatDialogModule } from '@angular/material/dialog'
2
9
  import { MatIconModule } from '@angular/material/icon'
3
10
  import { MatMenuModule, MatMenuTrigger } from '@angular/material/menu'
11
+ import { ConfirmationDialogComponent } from '../../../../../../../libs/ui/elements/src'
4
12
  import { ButtonComponent } from '../../../../../../../libs/ui/inputs/src'
5
- import { TranslateModule } from '@ngx-translate/core'
13
+ import { TranslateModule, TranslateService } from '@ngx-translate/core'
6
14
 
7
15
  @Component({
8
16
  selector: 'gn-ui-action-menu',
9
17
  templateUrl: './action-menu.component.html',
10
18
  styleUrls: ['./action-menu.component.css'],
11
19
  standalone: true,
12
- imports: [MatIconModule, ButtonComponent, MatMenuModule, TranslateModule],
20
+ imports: [
21
+ MatIconModule,
22
+ ButtonComponent,
23
+ MatMenuModule,
24
+ MatDialogModule,
25
+ ConfirmationDialogComponent,
26
+ TranslateModule,
27
+ ],
13
28
  })
14
29
  export class ActionMenuComponent {
30
+ @Input() canDuplicate: boolean
31
+ @Input() canDelete: boolean
15
32
  @Output() duplicate = new EventEmitter<void>()
33
+ @Output() delete = new EventEmitter<void>()
16
34
 
17
35
  @ViewChild(MatMenuTrigger) trigger: MatMenuTrigger
18
36
 
37
+ constructor(
38
+ public dialog: MatDialog,
39
+ private translateService: TranslateService
40
+ ) {}
41
+
19
42
  openMenu() {
20
43
  this.trigger.openMenu()
21
44
  }
45
+
46
+ openDeleteConfirmationDialog() {
47
+ const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
48
+ data: {
49
+ title: this.translateService.instant(
50
+ 'editor.record.delete.confirmation.title'
51
+ ),
52
+ message: this.translateService.instant(
53
+ 'editor.record.delete.confirmation.message'
54
+ ),
55
+ confirmText: this.translateService.instant(
56
+ 'editor.record.delete.confirmation.confirmText'
57
+ ),
58
+ cancelText: this.translateService.instant(
59
+ 'editor.record.delete.confirmation.cancelText'
60
+ ),
61
+ },
62
+ restoreFocus: false,
63
+ })
64
+
65
+ // Manually restore focus to the menu trigger since the element that
66
+ // opens the dialog won't be in the DOM any more when the dialog closes.
67
+ dialogRef.afterClosed().subscribe((confirmed) => {
68
+ this.trigger.focus()
69
+ if (confirmed) {
70
+ this.delete.emit()
71
+ }
72
+ })
73
+ }
22
74
  }
@@ -37,7 +37,7 @@
37
37
  <div class="flex flex-row items-center gap-2 max-w-full">
38
38
  <span class="overflow-hidden text-ellipsis">{{ item.title }}</span>
39
39
  <gn-ui-badge
40
- *ngIf="recordHasDraft(item)"
40
+ *ngIf="hasDraft(item)"
41
41
  [style.--gn-ui-badge-padding]="'0.4em 0.6em'"
42
42
  [style.--gn-ui-badge-text-color]="'#3d2006'"
43
43
  [style.--gn-ui-badge-background-color]="'#ffbc7b'"
@@ -125,7 +125,12 @@
125
125
  <gn-ui-interactive-table-column>
126
126
  <ng-template #header> </ng-template>
127
127
  <ng-template #cell let-item>
128
- <gn-ui-action-menu (duplicate)="handleDuplicate(item)">
128
+ <gn-ui-action-menu
129
+ [canDuplicate]="canDuplicate(item)"
130
+ [canDelete]="canDelete(item)"
131
+ (duplicate)="handleDuplicate(item)"
132
+ (delete)="handleDelete(item)"
133
+ >
129
134
  </gn-ui-action-menu>
130
135
  </ng-template>
131
136
  </gn-ui-interactive-table-column>
@@ -1,13 +1,6 @@
1
1
  import { CommonModule } from '@angular/common'
2
- import {
3
- Component,
4
- EventEmitter,
5
- Input,
6
- Output,
7
- ViewChild,
8
- } from '@angular/core'
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core'
9
3
  import { MatIconModule } from '@angular/material/icon'
10
- import { MatMenuModule, MatMenuTrigger } from '@angular/material/menu'
11
4
  import { CatalogRecord } from '../../../../../../libs/common/domain/src/lib/model/record'
12
5
  import {
13
6
  FieldSort,
@@ -47,12 +40,15 @@ export class ResultsTableComponent {
47
40
  @Input() records: CatalogRecord[] = []
48
41
  @Input() selectedRecordsIdentifiers: string[] = []
49
42
  @Input() sortOrder: SortByField = null
50
- @Input() recordHasDraft: (record: CatalogRecord) => boolean = () => false
43
+ @Input() hasDraft: (record: CatalogRecord) => boolean = () => false
44
+ @Input() canDuplicate: (record: CatalogRecord) => boolean = () => true
45
+ @Input() canDelete: (record: CatalogRecord) => boolean = () => true
51
46
 
52
47
  // emits the column (field) as well as the order
53
48
  @Output() sortByChange = new EventEmitter<[string, 'asc' | 'desc']>()
54
49
  @Output() recordClick = new EventEmitter<CatalogRecord>()
55
50
  @Output() duplicateRecord = new EventEmitter<CatalogRecord>()
51
+ @Output() deleteRecord = new EventEmitter<CatalogRecord>()
56
52
  @Output() recordsSelectedChange = new EventEmitter<
57
53
  [CatalogRecord[], boolean]
58
54
  >()
@@ -103,6 +99,10 @@ export class ResultsTableComponent {
103
99
  this.duplicateRecord.emit(item as CatalogRecord)
104
100
  }
105
101
 
102
+ handleDelete(item: unknown) {
103
+ this.deleteRecord.emit(item as CatalogRecord)
104
+ }
105
+
106
106
  setSortBy(col: string, order: 'asc' | 'desc') {
107
107
  this.sortByChange.emit([col, order])
108
108
  }
package/tailwind.base.css CHANGED
@@ -74,10 +74,6 @@
74
74
  margin-bottom: -0.325em;
75
75
  flex-shrink: 0;
76
76
  }
77
- /* makes spinners appear in the right color */
78
- .gn-ui-btn mat-spinner circle {
79
- stroke: currentColor !important;
80
- }
81
77
 
82
78
  .gn-ui-btn-default {
83
79
  @apply gn-ui-btn text-white
@@ -135,10 +131,26 @@
135
131
  @apply flex items-center justify-center px-4 py-1 text-white rounded backdrop-blur;
136
132
  }
137
133
 
134
+ /* GENERIC TEXT INPUT (textarea, text field, url input...) */
135
+ .gn-ui-text-input {
136
+ --rounded: var(--gn-ui-text-input-rounded, 0.25em);
137
+ --padding: var(--gn-ui-text-input-padding, 0.6em);
138
+ @apply appearance-none border-2 p-[--padding] rounded-[--rounded] w-full transition-colors duration-75
139
+ text-[14px] leading-none border-gray-300 text-main placeholder-gray-800
140
+ focus:outline-none focus:border-main hover:border-main
141
+ disabled:cursor-not-allowed disabled:border-gray-100 disabled:placeholder-gray-300 disabled:text-gray-700 disabled:bg-white;
142
+ }
143
+
138
144
  /* TODO: add prefix */
139
145
  .card-icon {
140
146
  @apply text-primary opacity-50 group-hover:text-secondary group-hover:opacity-100 transition-colors transition-opacity;
141
147
  }
148
+
149
+ /* makes spinners appear in the right color */
150
+ mat-spinner circle,
151
+ mat-progress-spinner circle {
152
+ stroke: currentColor !important;
153
+ }
142
154
  }
143
155
 
144
156
  html {
@@ -147,6 +147,27 @@
147
147
  "dataset.error.parse": "Die Daten wurden geladen, konnten aber nicht gelesen werden: \"{ info }\"",
148
148
  "dataset.error.unknown": "Die Daten können nicht angezeigt werden: \"{ info }\"",
149
149
  "dataset.error.unsupportedType": "Der folgende Inhaltstyp wird nicht unterstützt: \"{ info }\"",
150
+ "domain.contact.role.author": "",
151
+ "domain.contact.role.collaborator": "",
152
+ "domain.contact.role.contributor": "",
153
+ "domain.contact.role.custodian": "",
154
+ "domain.contact.role.distributor": "",
155
+ "domain.contact.role.editor": "",
156
+ "domain.contact.role.funder": "",
157
+ "domain.contact.role.mediator": "",
158
+ "domain.contact.role.originator": "",
159
+ "domain.contact.role.other": "",
160
+ "domain.contact.role.owner": "",
161
+ "domain.contact.role.point_of_contact": "",
162
+ "domain.contact.role.principal_investigator": "",
163
+ "domain.contact.role.processor": "",
164
+ "domain.contact.role.publisher": "",
165
+ "domain.contact.role.resource_provider": "",
166
+ "domain.contact.role.rights_holder": "",
167
+ "domain.contact.role.sponsor": "",
168
+ "domain.contact.role.stakeholder": "",
169
+ "domain.contact.role.unspecified": "",
170
+ "domain.contact.role.user": "",
150
171
  "domain.record.status.completed": "Abgeschlossen",
151
172
  "domain.record.status.deprecated": "Veraltet",
152
173
  "domain.record.status.ongoing": "Kontinuierliche Aktualisierung",
@@ -165,21 +186,32 @@
165
186
  "downloads.format.unknown": "unbekannt",
166
187
  "downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
167
188
  "dropFile": "Datei ablegen",
189
+ "editor.form.placeKeywordWithoutExtent": "",
190
+ "editor.record.delete.confirmation.cancelText": "Stornieren",
191
+ "editor.record.delete.confirmation.confirmText": "Löschen",
192
+ "editor.record.delete.confirmation.message": "Sind Sie sicher, dass Sie diesen Datensatz löschen möchten?",
193
+ "editor.record.delete.confirmation.title": "Datensatz löschen?",
194
+ "editor.record.deleteError.body": "Der Datensatz konnte nicht gelöscht werden:",
195
+ "editor.record.deleteError.closeMessage": "Verstanden",
196
+ "editor.record.deleteError.title": "Fehler beim Löschen des Datensatzes",
197
+ "editor.record.deleteSuccess.body": "",
198
+ "editor.record.deleteSuccess.title": "",
168
199
  "editor.record.form.bottomButtons.comeBackLater": "",
169
200
  "editor.record.form.bottomButtons.next": "",
170
201
  "editor.record.form.bottomButtons.previous": "",
171
- "editor.record.form.field.abstract": "",
202
+ "editor.record.form.classification.opendata": "",
203
+ "editor.record.form.field.abstract": "Kurzbeschreibung",
204
+ "editor.record.form.field.contactsForResource.noContact": "",
172
205
  "editor.record.form.field.keywords": "Schlagwörter",
173
206
  "editor.record.form.field.license": "Lizenz",
174
- "editor.record.form.field.recordUpdated": "",
175
- "editor.record.form.field.resourceUpdated": "",
176
- "editor.record.form.field.temporalExtents": "",
177
- "editor.record.form.field.title": "",
178
- "editor.record.form.field.uniqueIdentifier": "",
179
- "editor.record.form.field.updateFrequency": "",
180
- "editor.record.form.abstract": "Kurzbeschreibung",
181
- "editor.record.form.keywords": "Schlüsselwörter",
182
- "editor.record.form.license": "Lizenz",
207
+ "editor.record.form.field.overviews": "",
208
+ "editor.record.form.field.recordUpdated": "Datensatz zuletzt aktualisiert",
209
+ "editor.record.form.field.resourceUpdated": "Letztes Aktualisierungsdatum",
210
+ "editor.record.form.field.spatialExtents": "",
211
+ "editor.record.form.field.temporalExtents": "Zeitlicher Umfang",
212
+ "editor.record.form.field.title": "Metadaten-Titel",
213
+ "editor.record.form.field.uniqueIdentifier": "Eindeutige Kennung (ID)",
214
+ "editor.record.form.field.updateFrequency": "Aktualisierungshäufigkeit",
183
215
  "editor.record.form.license.cc-by": "Creative Commons CC-BY",
184
216
  "editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
185
217
  "editor.record.form.license.cc-zero": "Creative Commons CC-0",
@@ -205,20 +237,15 @@
205
237
  "editor.record.form.section.dataPointOfContact.label": "",
206
238
  "editor.record.form.section.geographicalCoverage.label": "",
207
239
  "editor.record.form.section.useAndAccessConditions.label": "",
208
- "editor.record.form.metadata.title": "Metadaten-Titel",
209
- "editor.record.form.record.updated": "Datensatz zuletzt aktualisiert",
210
- "editor.record.form.resourceUpdated": "Letztes Aktualisierungsdatum",
211
- "editor.record.form.temporalExtents": "Zeitlicher Umfang",
212
240
  "editor.record.form.temporalExtents.addDate": "Zeitpunkt",
213
241
  "editor.record.form.temporalExtents.addRange": "Zeitraum",
214
242
  "editor.record.form.temporalExtents.date": "Datum",
215
243
  "editor.record.form.temporalExtents.range": "Datumsbereich",
216
- "editor.record.form.unique.identifier": "Eindeutige Kennung (ID)",
217
- "editor.record.form.updateFrequency": "Aktualisierungshäufigkeit",
218
244
  "editor.record.form.updateFrequency.planned": "Die Daten sollten regelmäßig aktualisiert werden.",
219
245
  "editor.record.loadError.body": "Der Datensatz konnte nicht geladen werden:",
220
246
  "editor.record.loadError.closeMessage": "Verstanden",
221
247
  "editor.record.loadError.title": "Fehler beim Laden des Datensatzes",
248
+ "editor.record.placeKeywordWithoutLabel": "",
222
249
  "editor.record.publish": "Diesen Datensatz veröffentlichen",
223
250
  "editor.record.publishError.body": "Der Datensatz konnte nicht veröffentlicht werden:",
224
251
  "editor.record.publishError.closeMessage": "Verstanden",
@@ -243,6 +270,11 @@
243
270
  "facets.block.title.tag.default": "Stichwort",
244
271
  "facets.block.title.th_regions_tree.default": "Regionen",
245
272
  "favorite.not.authenticated.tooltip": "<div><a href=' {link} '>Anmelden</a>, um auf diese Funktion zuzugreifen</div>",
273
+ "input.file.dropFileLabel": "",
274
+ "input.file.orInputUrl": "",
275
+ "input.file.selectFileLabel": "",
276
+ "input.file.uploadProgressCancel": "",
277
+ "input.file.uploadProgressLabel": "",
246
278
  "input.image.altTextPlaceholder": "",
247
279
  "input.image.delete": "",
248
280
  "input.image.displayAltTextInput": "",
@@ -306,6 +338,7 @@
306
338
  "pagination.page": "Seite",
307
339
  "pagination.pageOf": "von",
308
340
  "previous": "zurück",
341
+ "record.action.delete": "Löschen",
309
342
  "record.action.download": "Herunterladen",
310
343
  "record.action.duplicate": "",
311
344
  "record.action.view": "Anzeigen",
@@ -438,7 +471,7 @@
438
471
  "search.filters.resourceType": "Ressourcentyp",
439
472
  "search.filters.standard": "Standard",
440
473
  "search.filters.title": "Ergebnisse filtern",
441
- "search.filters.topic": "Thema",
474
+ "search.filters.topic": "Themen",
442
475
  "search.filters.useSpatialFilter": "Zuerst Datensätze im Interessenbereich anzeigen",
443
476
  "search.filters.useSpatialFilterHelp": "Wenn diese Option aktiviert ist, werden Datensätze im Bereich des Katalogs zuerst angezeigt. Datensätze außerhalb dieses Bereichs werden nicht angezeigt.",
444
477
  "share.tab.permalink": "Teilen",
@@ -147,6 +147,27 @@
147
147
  "dataset.error.parse": "The data was loaded but could not be parsed: \"{ info }\"",
148
148
  "dataset.error.unknown": "The data cannot be displayed: \"{ info }\"",
149
149
  "dataset.error.unsupportedType": "The following content type is unsupported: \"{ info }\"",
150
+ "domain.contact.role.author": "Author",
151
+ "domain.contact.role.collaborator": "Collaborator",
152
+ "domain.contact.role.contributor": "Contributor",
153
+ "domain.contact.role.custodian": "Custodian",
154
+ "domain.contact.role.distributor": "Distributor",
155
+ "domain.contact.role.editor": "Editor",
156
+ "domain.contact.role.funder": "Funder",
157
+ "domain.contact.role.mediator": "Mediator",
158
+ "domain.contact.role.originator": "Originator",
159
+ "domain.contact.role.other": "Other",
160
+ "domain.contact.role.owner": "Owner",
161
+ "domain.contact.role.point_of_contact": "Point of contact",
162
+ "domain.contact.role.principal_investigator": "Principal investigator",
163
+ "domain.contact.role.processor": "Processor",
164
+ "domain.contact.role.publisher": "Publisher",
165
+ "domain.contact.role.resource_provider": "Resource provider",
166
+ "domain.contact.role.rights_holder": "Rights holder",
167
+ "domain.contact.role.sponsor": "Sponsor",
168
+ "domain.contact.role.stakeholder": "Stakeholder",
169
+ "domain.contact.role.unspecified": "Unspecified",
170
+ "domain.contact.role.user": "User",
150
171
  "domain.record.status.completed": "Completed",
151
172
  "domain.record.status.deprecated": "Deprecated",
152
173
  "domain.record.status.ongoing": "On going",
@@ -165,21 +186,32 @@
165
186
  "downloads.format.unknown": "unknown",
166
187
  "downloads.wfs.featuretype.not.found": "The layer was not found",
167
188
  "dropFile": "drop file",
189
+ "editor.form.placeKeywordWithoutExtent": "This keyword is not associated with a geographical extent",
190
+ "editor.record.delete.confirmation.cancelText": "Cancel",
191
+ "editor.record.delete.confirmation.confirmText": "Delete",
192
+ "editor.record.delete.confirmation.message": "Are you sure you want to delete this record?",
193
+ "editor.record.delete.confirmation.title": "Delete record?",
194
+ "editor.record.deleteError.body": "The record could not be deleted:",
195
+ "editor.record.deleteError.closeMessage": "Understood",
196
+ "editor.record.deleteError.title": "Error deleting record",
197
+ "editor.record.deleteSuccess.body": "The record was successfully deleted !",
198
+ "editor.record.deleteSuccess.title": "Delete success",
168
199
  "editor.record.form.bottomButtons.comeBackLater": "Come back later",
169
200
  "editor.record.form.bottomButtons.next": "Next",
170
201
  "editor.record.form.bottomButtons.previous": "Previous",
202
+ "editor.record.form.classification.opendata": "Open Data",
171
203
  "editor.record.form.field.abstract": "Abstract",
204
+ "editor.record.form.field.contactsForResource.noContact": "Please provide at least one point of contact responsible for the data.",
172
205
  "editor.record.form.field.keywords": "Keywords",
173
206
  "editor.record.form.field.license": "License",
207
+ "editor.record.form.field.overviews": "Overviews",
174
208
  "editor.record.form.field.recordUpdated": "Record Updated",
175
209
  "editor.record.form.field.resourceUpdated": "Resource Updated",
210
+ "editor.record.form.field.spatialExtents": "Spatial extents",
176
211
  "editor.record.form.field.temporalExtents": "Temporal extents",
177
212
  "editor.record.form.field.title": "Metadata title",
178
213
  "editor.record.form.field.uniqueIdentifier": "Unique identifier",
179
214
  "editor.record.form.field.updateFrequency": "Update frequency",
180
- "editor.record.form.abstract": "Abstract",
181
- "editor.record.form.keywords": "Keywords",
182
- "editor.record.form.license": "License",
183
215
  "editor.record.form.license.cc-by": "Creative Commons CC-BY",
184
216
  "editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
185
217
  "editor.record.form.license.cc-zero": "Creative Commons CC-0",
@@ -205,20 +237,15 @@
205
237
  "editor.record.form.section.dataPointOfContact.label": "Data point of contact",
206
238
  "editor.record.form.section.geographicalCoverage.label": "Geographical coverage",
207
239
  "editor.record.form.section.useAndAccessConditions.label": "Use and access conditions",
208
- "editor.record.form.metadata.title": "Metadata title",
209
- "editor.record.form.record.updated": "Record updated",
210
- "editor.record.form.resourceUpdated": "Last update date",
211
- "editor.record.form.temporalExtents": "Temporal extent",
212
240
  "editor.record.form.temporalExtents.addDate": "Time instant",
213
241
  "editor.record.form.temporalExtents.addRange": "Time period",
214
242
  "editor.record.form.temporalExtents.date": "Date",
215
243
  "editor.record.form.temporalExtents.range": "Date range",
216
- "editor.record.form.unique.identifier": "Unique identifier",
217
- "editor.record.form.updateFrequency": "Update frequency",
218
244
  "editor.record.form.updateFrequency.planned": "The data should be updated regularly.",
219
245
  "editor.record.loadError.body": "The record could not be loaded:",
220
246
  "editor.record.loadError.closeMessage": "Understood",
221
247
  "editor.record.loadError.title": "Error loading record",
248
+ "editor.record.placeKeywordWithoutLabel": "Unnamed location",
222
249
  "editor.record.publish": "Publish this record",
223
250
  "editor.record.publishError.body": "The record could not be published:",
224
251
  "editor.record.publishError.closeMessage": "Understood",
@@ -243,6 +270,11 @@
243
270
  "facets.block.title.tag.default": "Tag",
244
271
  "facets.block.title.th_regions_tree.default": "Regions",
245
272
  "favorite.not.authenticated.tooltip": "<div><a href=' {link} '>Login</a> to access this feature</div>",
273
+ "input.file.dropFileLabel": "or drop it here",
274
+ "input.file.orInputUrl": "or",
275
+ "input.file.selectFileLabel": "Select a file ({sizeMB} MB max.)",
276
+ "input.file.uploadProgressCancel": "Cancel",
277
+ "input.file.uploadProgressLabel": "Uploading in progress...",
246
278
  "input.image.altTextPlaceholder": "Image alternate text",
247
279
  "input.image.delete": "Delete",
248
280
  "input.image.displayAltTextInput": "Alternate text",
@@ -306,6 +338,7 @@
306
338
  "pagination.page": "page",
307
339
  "pagination.pageOf": "of",
308
340
  "previous": "previous",
341
+ "record.action.delete": "Delete",
309
342
  "record.action.download": "Download",
310
343
  "record.action.duplicate": "Duplicate",
311
344
  "record.action.view": "View",
@@ -438,7 +471,7 @@
438
471
  "search.filters.resourceType": "Resource type",
439
472
  "search.filters.standard": "Standard",
440
473
  "search.filters.title": "Filter your results",
441
- "search.filters.topic": "Topic",
474
+ "search.filters.topic": "Topics",
442
475
  "search.filters.useSpatialFilter": "Show records in the area of interest first",
443
476
  "search.filters.useSpatialFilterHelp": "When this is enabled, records situated in the catalog's area of interest are shown first; records outside of this area will not show up.",
444
477
  "share.tab.permalink": "Share",