geonetwork-ui 2.4.0-dev.e77c0f8c → 2.4.0-dev.e7ff1d25

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 (313) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +5 -5
  2. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +30 -2
  3. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.mjs +31 -0
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +23 -1
  5. package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +10 -3
  6. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +31 -3
  7. package/esm2022/libs/common/domain/src/lib/model/record/contact.model.mjs +28 -1
  8. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  9. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  10. package/esm2022/libs/data-access/gn4/src/openapi/api/records.api.service.mjs +2 -6
  11. package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +2 -1
  12. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +3 -3
  13. package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +7 -2
  14. package/esm2022/libs/feature/editor/src/lib/+state/editor.models.mjs +1 -1
  15. package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +7 -3
  16. package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +16 -6
  17. package/esm2022/libs/feature/editor/src/lib/components/contact-card/contact-card.component.mjs +29 -0
  18. package/esm2022/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.mjs +131 -0
  19. 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
  20. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +3 -3
  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-temporal-extents/form-field-temporal-extents.component.mjs +7 -6
  24. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +33 -9
  25. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +1 -2
  26. package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +11 -7
  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/expressions.mjs +1 -1
  29. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +6 -4
  30. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +169 -59
  31. package/esm2022/libs/feature/editor/src/lib/models/editor-config.model.mjs +2 -0
  32. package/esm2022/libs/feature/editor/src/lib/models/index.mjs +2 -1
  33. package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +4 -3
  34. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +6 -6
  35. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +6 -5
  36. package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +8 -5
  37. package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +6 -7
  38. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +8 -7
  39. package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +7 -6
  40. package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +7 -26
  41. package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +29 -13
  42. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +10 -5
  43. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +3 -3
  44. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +46 -7
  45. package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +6 -2
  46. package/esm2022/libs/ui/elements/src/index.mjs +2 -1
  47. package/esm2022/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.mjs +27 -0
  48. package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +4 -3
  49. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +2 -2
  50. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +3 -3
  51. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +5 -11
  52. package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +3 -3
  53. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +5 -5
  54. package/esm2022/libs/ui/elements/src/lib/sortable-list/sortable-list.component.mjs +7 -3
  55. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +11 -5
  56. package/esm2022/libs/ui/elements/src/lib/user-preview/user-preview.component.mjs +3 -3
  57. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +19 -5
  58. package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +17 -14
  59. package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +6 -21
  60. package/esm2022/libs/ui/inputs/src/lib/text-input/text-input.component.mjs +6 -17
  61. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +3 -7
  62. package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +43 -0
  63. package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +3 -3
  64. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +3 -3
  65. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +67 -0
  66. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +28 -8
  67. package/esm2022/libs/ui/widgets/src/index.mjs +2 -1
  68. package/esm2022/libs/ui/widgets/src/lib/popover/popover.component.mjs +68 -0
  69. package/esm2022/translations/de.json +70 -10
  70. package/esm2022/translations/en.json +70 -10
  71. package/esm2022/translations/es.json +69 -9
  72. package/esm2022/translations/fr.json +81 -21
  73. package/esm2022/translations/it.json +70 -10
  74. package/esm2022/translations/nl.json +69 -9
  75. package/esm2022/translations/pt.json +69 -9
  76. package/fesm2022/geonetwork-ui.mjs +4678 -3349
  77. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  78. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
  79. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +8 -1
  80. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  81. package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts +5 -0
  82. package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts.map +1 -0
  83. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +3 -1
  84. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  85. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +1 -0
  86. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
  87. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +7 -1
  88. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  89. package/libs/common/domain/src/lib/model/record/contact.model.d.ts +1 -0
  90. package/libs/common/domain/src/lib/model/record/contact.model.d.ts.map +1 -1
  91. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +2 -1
  92. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  93. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +17 -0
  94. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  95. package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts.map +1 -1
  96. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +5 -0
  97. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
  98. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +4 -4
  99. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
  100. package/libs/feature/editor/src/lib/+state/editor.models.d.ts +8 -0
  101. package/libs/feature/editor/src/lib/+state/editor.models.d.ts.map +1 -1
  102. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts +4 -3
  103. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -1
  104. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +4 -8
  105. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -1
  106. package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts +12 -0
  107. package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts.map +1 -0
  108. package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts +27 -0
  109. package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts.map +1 -0
  110. 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
  111. 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
  112. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts +17 -0
  113. 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
  114. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +11 -0
  115. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -0
  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 +10 -2
  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/components/record-form/form-field/index.d.ts +0 -1
  121. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  122. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts +5 -7
  123. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -1
  124. package/libs/feature/editor/src/lib/expressions.d.ts +1 -1
  125. package/libs/feature/editor/src/lib/expressions.d.ts.map +1 -1
  126. package/libs/feature/editor/src/lib/feature-editor.module.d.ts +2 -1
  127. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  128. package/libs/feature/editor/src/lib/fields.config.d.ts +45 -2
  129. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  130. package/libs/feature/editor/src/lib/models/editor-config.model.d.ts +36 -0
  131. package/libs/feature/editor/src/lib/models/editor-config.model.d.ts.map +1 -0
  132. package/libs/feature/editor/src/lib/models/index.d.ts +1 -0
  133. package/libs/feature/editor/src/lib/models/index.d.ts.map +1 -1
  134. package/libs/feature/editor/src/lib/services/editor.service.d.ts +2 -2
  135. package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
  136. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts +1 -1
  137. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts.map +1 -1
  138. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts +1 -1
  139. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts.map +1 -1
  140. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts +1 -1
  141. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -1
  142. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +1 -1
  143. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -1
  144. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts +1 -1
  145. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -1
  146. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts +1 -1
  147. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts.map +1 -1
  148. package/libs/feature/map/src/lib/feature-map.module.d.ts +16 -21
  149. package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
  150. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts +1 -1
  151. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
  152. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  153. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +14 -4
  154. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  155. package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -0
  156. package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
  157. package/libs/ui/elements/src/index.d.ts +1 -0
  158. package/libs/ui/elements/src/index.d.ts.map +1 -1
  159. package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts +18 -0
  160. package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts.map +1 -0
  161. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
  162. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +0 -3
  163. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  164. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
  165. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts +4 -4
  166. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts.map +1 -1
  167. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +8 -6
  168. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  169. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +9 -1
  170. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  171. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +3 -4
  172. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -1
  173. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +0 -4
  174. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
  175. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts +2 -4
  176. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts.map +1 -1
  177. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +34 -35
  178. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  179. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +18 -0
  180. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -0
  181. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +20 -0
  182. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -0
  183. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +9 -3
  184. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  185. package/libs/ui/widgets/src/index.d.ts +1 -0
  186. package/libs/ui/widgets/src/index.d.ts.map +1 -1
  187. package/libs/ui/widgets/src/lib/popover/popover.component.d.ts +19 -0
  188. package/libs/ui/widgets/src/lib/popover/popover.component.d.ts.map +1 -0
  189. package/package.json +1 -1
  190. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +5 -1
  191. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +37 -12
  192. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +5 -1
  193. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +4 -2
  194. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +72 -2
  195. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.ts +39 -0
  196. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +70 -1
  197. package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +13 -5
  198. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +42 -2
  199. package/src/libs/common/domain/src/lib/model/record/contact.model.ts +28 -0
  200. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +2 -1
  201. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +22 -0
  202. package/src/libs/common/fixtures/src/index.ts +2 -0
  203. package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +156 -0
  204. package/src/libs/common/fixtures/src/lib/editor/index.ts +1 -0
  205. package/src/libs/data-access/gn4/src/openapi/api/records.api.service.ts +1 -5
  206. package/src/libs/data-access/gn4/src/spec.yaml +0 -8
  207. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +5 -0
  208. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +2 -2
  209. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +9 -1
  210. package/src/libs/feature/editor/src/lib/+state/editor.models.ts +11 -0
  211. package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +11 -5
  212. package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +22 -8
  213. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.css +0 -0
  214. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.html +25 -0
  215. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.ts +30 -0
  216. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +2 -1
  217. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +110 -19
  218. 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
  219. 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
  220. 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
  221. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.html +1 -1
  222. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.css +0 -0
  223. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.html +6 -0
  224. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.ts +59 -0
  225. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.css +0 -0
  226. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +5 -0
  227. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +22 -0
  228. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.ts +8 -7
  229. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +27 -10
  230. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +32 -2
  231. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +0 -1
  232. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +51 -11
  233. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +15 -8
  234. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +1 -1
  235. package/src/libs/feature/editor/src/lib/expressions.ts +1 -1
  236. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +2 -1
  237. package/src/libs/feature/editor/src/lib/fields.config.ts +204 -60
  238. package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +53 -0
  239. package/src/libs/feature/editor/src/lib/models/index.ts +1 -0
  240. package/src/libs/feature/editor/src/lib/services/editor.service.ts +8 -4
  241. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.ts +3 -0
  242. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.ts +5 -1
  243. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +5 -0
  244. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.html +1 -1
  245. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +10 -7
  246. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.html +1 -1
  247. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +5 -0
  248. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.html +1 -1
  249. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.ts +6 -1
  250. package/src/libs/feature/map/src/lib/feature-map.module.ts +2 -15
  251. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +24 -1
  252. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +8 -4
  253. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +1 -1
  254. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +3 -1
  255. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +57 -3
  256. package/src/libs/feature/search/src/lib/state/search.facade.ts +6 -0
  257. package/src/libs/ui/elements/src/index.ts +1 -0
  258. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.css +0 -0
  259. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.html +12 -0
  260. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.ts +37 -0
  261. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +4 -1
  262. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +2 -1
  263. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +12 -8
  264. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +14 -20
  265. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +0 -10
  266. package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.html +1 -1
  267. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +2 -2
  268. package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.html +3 -1
  269. package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.ts +8 -4
  270. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +8 -2
  271. package/src/libs/ui/elements/src/lib/user-preview/user-preview.component.html +1 -1
  272. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +15 -3
  273. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.css +0 -0
  274. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.html +85 -0
  275. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.ts +91 -0
  276. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +49 -49
  277. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +15 -13
  278. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.html +2 -1
  279. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +2 -27
  280. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.html +4 -3
  281. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.ts +4 -16
  282. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -3
  283. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.css +9 -0
  284. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.html +37 -0
  285. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +33 -0
  286. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.html +1 -1
  287. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +1 -0
  288. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.css +0 -0
  289. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +26 -0
  290. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +74 -0
  291. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +15 -1
  292. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +26 -12
  293. package/src/libs/ui/widgets/src/index.ts +1 -0
  294. package/src/libs/ui/widgets/src/lib/popover/popover.component.css +0 -0
  295. package/src/libs/ui/widgets/src/lib/popover/popover.component.html +3 -0
  296. package/src/libs/ui/widgets/src/lib/popover/popover.component.ts +85 -0
  297. package/tailwind.base.css +18 -5
  298. package/translations/de.json +70 -10
  299. package/translations/en.json +70 -10
  300. package/translations/es.json +69 -9
  301. package/translations/fr.json +81 -21
  302. package/translations/it.json +70 -10
  303. package/translations/nl.json +69 -9
  304. package/translations/pt.json +69 -9
  305. package/translations/sk.json +70 -10
  306. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.mjs +0 -2
  307. package/esm2022/libs/feature/editor/src/lib/models/fields.model.mjs +0 -2
  308. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts +0 -26
  309. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts.map +0 -1
  310. package/libs/feature/editor/src/lib/models/fields.model.d.ts +0 -15
  311. package/libs/feature/editor/src/lib/models/fields.model.d.ts.map +0 -1
  312. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.ts +0 -43
  313. package/src/libs/feature/editor/src/lib/models/fields.model.ts +0 -29
@@ -0,0 +1,26 @@
1
+ <gn-ui-button
2
+ type="light"
3
+ [matMenuTriggerFor]="menu"
4
+ (buttonClick)="openMenu()"
5
+ data-test="record-menu-button"
6
+ >
7
+ <mat-icon class="material-symbols-outlined">more_vert</mat-icon>
8
+ </gn-ui-button>
9
+ <mat-menu #menu="matMenu">
10
+ <button
11
+ mat-menu-item
12
+ [disabled]="!canDuplicate"
13
+ (click)="duplicate.emit()"
14
+ data-test="record-menu-duplicate-button"
15
+ >
16
+ <span translate>record.action.duplicate</span>
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>
26
+ </mat-menu>
@@ -0,0 +1,74 @@
1
+ import {
2
+ Component,
3
+ EventEmitter,
4
+ Input,
5
+ Output,
6
+ ViewChild,
7
+ } from '@angular/core'
8
+ import { MatDialog, MatDialogModule } from '@angular/material/dialog'
9
+ import { MatIconModule } from '@angular/material/icon'
10
+ import { MatMenuModule, MatMenuTrigger } from '@angular/material/menu'
11
+ import { ConfirmationDialogComponent } from '../../../../../../../libs/ui/elements/src'
12
+ import { ButtonComponent } from '../../../../../../../libs/ui/inputs/src'
13
+ import { TranslateModule, TranslateService } from '@ngx-translate/core'
14
+
15
+ @Component({
16
+ selector: 'gn-ui-action-menu',
17
+ templateUrl: './action-menu.component.html',
18
+ styleUrls: ['./action-menu.component.css'],
19
+ standalone: true,
20
+ imports: [
21
+ MatIconModule,
22
+ ButtonComponent,
23
+ MatMenuModule,
24
+ MatDialogModule,
25
+ ConfirmationDialogComponent,
26
+ TranslateModule,
27
+ ],
28
+ })
29
+ export class ActionMenuComponent {
30
+ @Input() canDuplicate: boolean
31
+ @Input() canDelete: boolean
32
+ @Output() duplicate = new EventEmitter<void>()
33
+ @Output() delete = new EventEmitter<void>()
34
+
35
+ @ViewChild(MatMenuTrigger) trigger: MatMenuTrigger
36
+
37
+ constructor(
38
+ public dialog: MatDialog,
39
+ private translateService: TranslateService
40
+ ) {}
41
+
42
+ openMenu() {
43
+ this.trigger.openMenu()
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
+ }
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'"
@@ -120,4 +120,18 @@
120
120
  {{ dateToString(item.recordUpdated) }}
121
121
  </ng-template>
122
122
  </gn-ui-interactive-table-column>
123
+
124
+ <!-- ACTION MENU COLUMN -->
125
+ <gn-ui-interactive-table-column>
126
+ <ng-template #header> </ng-template>
127
+ <ng-template #cell let-item>
128
+ <gn-ui-action-menu
129
+ [canDuplicate]="canDuplicate(item)"
130
+ [canDelete]="canDelete(item)"
131
+ (duplicate)="handleDuplicate(item)"
132
+ (delete)="handleDelete(item)"
133
+ >
134
+ </gn-ui-action-menu>
135
+ </ng-template>
136
+ </gn-ui-interactive-table-column>
123
137
  </gn-ui-interactive-table>
@@ -1,23 +1,24 @@
1
+ import { CommonModule } from '@angular/common'
1
2
  import { Component, EventEmitter, Input, Output } from '@angular/core'
3
+ import { MatIconModule } from '@angular/material/icon'
2
4
  import { CatalogRecord } from '../../../../../../libs/common/domain/src/lib/model/record'
3
5
  import {
4
- FileFormat,
5
- getBadgeColor,
6
- getFileFormat,
7
- getFormatPriority,
8
- } from '../../../../../../libs/util/shared/src'
6
+ FieldSort,
7
+ SortByField,
8
+ } from '../../../../../../libs/common/domain/src/lib/model/search'
9
9
  import { BadgeComponent, UiInputsModule } from '../../../../../../libs/ui/inputs/src'
10
10
  import {
11
11
  InteractiveTableColumnComponent,
12
12
  InteractiveTableComponent,
13
13
  } from '../../../../../../libs/ui/layout/src'
14
- import { MatIconModule } from '@angular/material/icon'
15
- import { TranslateModule } from '@ngx-translate/core'
16
- import { CommonModule } from '@angular/common'
17
14
  import {
18
- FieldSort,
19
- SortByField,
20
- } from '../../../../../../libs/common/domain/src/lib/model/search'
15
+ FileFormat,
16
+ getBadgeColor,
17
+ getFileFormat,
18
+ getFormatPriority,
19
+ } from '../../../../../../libs/util/shared/src'
20
+ import { TranslateModule } from '@ngx-translate/core'
21
+ import { ActionMenuComponent } from './action-menu/action-menu.component'
21
22
 
22
23
  @Component({
23
24
  selector: 'gn-ui-results-table',
@@ -32,17 +33,22 @@ import {
32
33
  MatIconModule,
33
34
  TranslateModule,
34
35
  BadgeComponent,
36
+ ActionMenuComponent,
35
37
  ],
36
38
  })
37
39
  export class ResultsTableComponent {
38
40
  @Input() records: CatalogRecord[] = []
39
41
  @Input() selectedRecordsIdentifiers: string[] = []
40
42
  @Input() sortOrder: SortByField = null
41
- @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
42
46
 
43
47
  // emits the column (field) as well as the order
44
48
  @Output() sortByChange = new EventEmitter<[string, 'asc' | 'desc']>()
45
49
  @Output() recordClick = new EventEmitter<CatalogRecord>()
50
+ @Output() duplicateRecord = new EventEmitter<CatalogRecord>()
51
+ @Output() deleteRecord = new EventEmitter<CatalogRecord>()
46
52
  @Output() recordsSelectedChange = new EventEmitter<
47
53
  [CatalogRecord[], boolean]
48
54
  >()
@@ -89,6 +95,14 @@ export class ResultsTableComponent {
89
95
  this.recordClick.emit(item as CatalogRecord)
90
96
  }
91
97
 
98
+ handleDuplicate(item: unknown) {
99
+ this.duplicateRecord.emit(item as CatalogRecord)
100
+ }
101
+
102
+ handleDelete(item: unknown) {
103
+ this.deleteRecord.emit(item as CatalogRecord)
104
+ }
105
+
92
106
  setSortBy(col: string, order: 'asc' | 'desc') {
93
107
  this.sortByChange.emit([col, order])
94
108
  }
@@ -1,5 +1,6 @@
1
1
  export * from './lib/ui-widgets.module'
2
2
  export * from './lib/progress-bar/progress-bar.component'
3
+ export * from './lib/popover/popover.component'
3
4
  export * from './lib/loading-mask/loading-mask.component'
4
5
  export * from './lib/color-scale/color-scale.component'
5
6
  export * from './lib/popup-alert/popup-alert.component'
@@ -0,0 +1,3 @@
1
+ <span #popoverContent>
2
+ <ng-content></ng-content>
3
+ </span>
@@ -0,0 +1,85 @@
1
+ import { CommonModule } from '@angular/common'
2
+ import {
3
+ Component,
4
+ AfterViewInit,
5
+ ElementRef,
6
+ Input,
7
+ ViewChild,
8
+ OnDestroy,
9
+ OnChanges,
10
+ SimpleChanges,
11
+ TemplateRef,
12
+ Renderer2,
13
+ ViewContainerRef,
14
+ EmbeddedViewRef,
15
+ } from '@angular/core'
16
+ import tippy, { Instance } from 'tippy.js'
17
+
18
+ @Component({
19
+ selector: 'gn-ui-popover',
20
+ templateUrl: './popover.component.html',
21
+ styleUrls: ['./popover.component.css'],
22
+ standalone: true,
23
+ imports: [CommonModule],
24
+ })
25
+ export class PopoverComponent implements AfterViewInit, OnChanges, OnDestroy {
26
+ @ViewChild('popoverContent', { static: false }) popoverContent: ElementRef
27
+ @Input() content: string | TemplateRef<any>
28
+ @Input() theme: 'light' | 'light-border' | 'translucent' | 'material' | ''
29
+
30
+ private tippyInstance: Instance
31
+ private view: EmbeddedViewRef<any>
32
+
33
+ constructor(
34
+ private viewContainerRef: ViewContainerRef,
35
+ private renderer: Renderer2
36
+ ) {}
37
+
38
+ private getContent(): string | HTMLElement {
39
+ if (this.content instanceof TemplateRef) {
40
+ if (this.view) {
41
+ this.view.destroy()
42
+ }
43
+ this.view = this.viewContainerRef.createEmbeddedView(this.content)
44
+ this.view.detectChanges()
45
+ const wrapper = this.renderer.createElement('div') // Create a wrapper div
46
+ this.view.rootNodes.forEach((node) => {
47
+ this.renderer.appendChild(wrapper, node) // Append each root node to the wrapper
48
+ })
49
+ return wrapper
50
+ }
51
+ return this.content
52
+ }
53
+
54
+ ngAfterViewInit(): void {
55
+ this.tippyInstance = tippy(this.popoverContent.nativeElement as Element, {
56
+ content: this.getContent(),
57
+ allowHTML: true,
58
+ theme: this.theme,
59
+ })
60
+ }
61
+
62
+ ngOnChanges(changes: SimpleChanges): void {
63
+ if (changes['theme']) {
64
+ this.theme = changes['theme'].currentValue
65
+ if (this.tippyInstance) {
66
+ this.tippyInstance.setProps({ theme: this.theme })
67
+ }
68
+ }
69
+ if (changes['content']) {
70
+ this.content = changes['content'].currentValue
71
+ if (this.tippyInstance) {
72
+ this.tippyInstance.setContent(this.getContent())
73
+ }
74
+ }
75
+ }
76
+
77
+ ngOnDestroy(): void {
78
+ if (this.tippyInstance) {
79
+ this.tippyInstance.destroy()
80
+ }
81
+ if (this.view) {
82
+ this.view.destroy()
83
+ }
84
+ }
85
+ }
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
@@ -115,7 +111,8 @@
115
111
  --padding: var(--gn-ui-badge-padding, 0.375em 0.75em);
116
112
  --text-color: var(--gn-ui-badge-text-color, var(--color-gray-50));
117
113
  --background-color: var(--gn-ui-badge-background-color, black);
118
- @apply inline-block opacity-70 p-[--padding] rounded-[--rounded]
114
+ --opacity: var(--gn-ui-badge-opacity, 0.7);
115
+ @apply inline-block opacity-[--opacity] p-[--padding] rounded-[--rounded]
119
116
  font-medium text-[length:0.875em] leading-none text-[color:--text-color] bg-[color:--background-color];
120
117
  }
121
118
  /* makes sure icons will not make the badges grow vertically; also make size proportional */
@@ -134,10 +131,26 @@
134
131
  @apply flex items-center justify-center px-4 py-1 text-white rounded backdrop-blur;
135
132
  }
136
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
+
137
144
  /* TODO: add prefix */
138
145
  .card-icon {
139
146
  @apply text-primary opacity-50 group-hover:text-secondary group-hover:opacity-100 transition-colors transition-opacity;
140
147
  }
148
+
149
+ /* makes spinners appear in the right color */
150
+ mat-spinner circle,
151
+ mat-progress-spinner circle {
152
+ stroke: currentColor !important;
153
+ }
141
154
  }
142
155
 
143
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,9 +186,30 @@
165
186
  "downloads.format.unknown": "unbekannt",
166
187
  "downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
167
188
  "dropFile": "Datei ablegen",
168
- "editor.record.form.abstract": "Kurzbeschreibung",
169
- "editor.record.form.keywords": "Schlüsselwörter",
170
- "editor.record.form.license": "Lizenz",
189
+ "editor.record.delete.confirmation.cancelText": "Stornieren",
190
+ "editor.record.delete.confirmation.confirmText": "Löschen",
191
+ "editor.record.delete.confirmation.message": "Sind Sie sicher, dass Sie diesen Datensatz löschen möchten?",
192
+ "editor.record.delete.confirmation.title": "Datensatz löschen?",
193
+ "editor.record.deleteError.body": "Der Datensatz konnte nicht gelöscht werden:",
194
+ "editor.record.deleteError.closeMessage": "Verstanden",
195
+ "editor.record.deleteError.title": "Fehler beim Löschen des Datensatzes",
196
+ "editor.record.deleteSuccess.body": "",
197
+ "editor.record.deleteSuccess.title": "",
198
+ "editor.record.form.bottomButtons.comeBackLater": "",
199
+ "editor.record.form.bottomButtons.next": "",
200
+ "editor.record.form.bottomButtons.previous": "",
201
+ "editor.record.form.classification.opendata": "",
202
+ "editor.record.form.field.abstract": "Kurzbeschreibung",
203
+ "editor.record.form.field.contactsForResource.noContact": "",
204
+ "editor.record.form.field.keywords": "Schlagwörter",
205
+ "editor.record.form.field.license": "Lizenz",
206
+ "editor.record.form.field.overviews": "",
207
+ "editor.record.form.field.recordUpdated": "Datensatz zuletzt aktualisiert",
208
+ "editor.record.form.field.resourceUpdated": "Letztes Aktualisierungsdatum",
209
+ "editor.record.form.field.temporalExtents": "Zeitlicher Umfang",
210
+ "editor.record.form.field.title": "Metadaten-Titel",
211
+ "editor.record.form.field.uniqueIdentifier": "Eindeutige Kennung (ID)",
212
+ "editor.record.form.field.updateFrequency": "Aktualisierungshäufigkeit",
171
213
  "editor.record.form.license.cc-by": "Creative Commons CC-BY",
172
214
  "editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
173
215
  "editor.record.form.license.cc-zero": "Creative Commons CC-0",
@@ -177,16 +219,26 @@
177
219
  "editor.record.form.license.odc-by": "Open Data Commons ODC-By",
178
220
  "editor.record.form.license.pddl": "Open Data Commons PDDL",
179
221
  "editor.record.form.license.unknown": "Unbekannt oder nicht vorhanden",
180
- "editor.record.form.metadata.title": "Metadaten-Titel",
181
- "editor.record.form.record.updated": "Datensatz zuletzt aktualisiert",
182
- "editor.record.form.resourceUpdated": "Letztes Aktualisierungsdatum",
183
- "editor.record.form.temporalExtents": "Zeitlicher Umfang",
222
+ "editor.record.form.page.accessAndContact": "",
223
+ "editor.record.form.page.description": "",
224
+ "editor.record.form.page.ressources": "",
225
+ "editor.record.form.section.about.description": "",
226
+ "editor.record.form.section.about.label": "",
227
+ "editor.record.form.section.annexes.label": "",
228
+ "editor.record.form.section.associatedResources.description": "",
229
+ "editor.record.form.section.associatedResources.label": "",
230
+ "editor.record.form.section.classification.description": "",
231
+ "editor.record.form.section.classification.label": "",
232
+ "editor.record.form.section.dataManagers.description": "",
233
+ "editor.record.form.section.dataManagers.label": "",
234
+ "editor.record.form.section.dataPointOfContact.description": "",
235
+ "editor.record.form.section.dataPointOfContact.label": "",
236
+ "editor.record.form.section.geographicalCoverage.label": "",
237
+ "editor.record.form.section.useAndAccessConditions.label": "",
184
238
  "editor.record.form.temporalExtents.addDate": "Zeitpunkt",
185
239
  "editor.record.form.temporalExtents.addRange": "Zeitraum",
186
240
  "editor.record.form.temporalExtents.date": "Datum",
187
241
  "editor.record.form.temporalExtents.range": "Datumsbereich",
188
- "editor.record.form.unique.identifier": "Eindeutige Kennung (ID)",
189
- "editor.record.form.updateFrequency": "Aktualisierungshäufigkeit",
190
242
  "editor.record.form.updateFrequency.planned": "Die Daten sollten regelmäßig aktualisiert werden.",
191
243
  "editor.record.loadError.body": "Der Datensatz konnte nicht geladen werden:",
192
244
  "editor.record.loadError.closeMessage": "Verstanden",
@@ -201,6 +253,7 @@
201
253
  "editor.record.saveStatus.draftWithChangesPending": "Als Entwurf gespeichert - Änderungen stehen aus",
202
254
  "editor.record.saveStatus.recordUpToDate": "Datensatz ist auf dem neuesten Stand",
203
255
  "editor.record.upToDate": "Dieser Datensatz ist auf dem neuesten Stand",
256
+ "editor.sidebar.menu.editor": "",
204
257
  "externalviewer.dataset.unnamed": "Datensatz aus dem Datahub",
205
258
  "facets.block.title.OrgForResource": "Organisation",
206
259
  "facets.block.title.availableInServices": "Verfügbar für",
@@ -214,6 +267,11 @@
214
267
  "facets.block.title.tag.default": "Stichwort",
215
268
  "facets.block.title.th_regions_tree.default": "Regionen",
216
269
  "favorite.not.authenticated.tooltip": "<div><a href=' {link} '>Anmelden</a>, um auf diese Funktion zuzugreifen</div>",
270
+ "input.file.dropFileLabel": "",
271
+ "input.file.orInputUrl": "",
272
+ "input.file.selectFileLabel": "",
273
+ "input.file.uploadProgressCancel": "",
274
+ "input.file.uploadProgressLabel": "",
217
275
  "input.image.altTextPlaceholder": "",
218
276
  "input.image.delete": "",
219
277
  "input.image.displayAltTextInput": "",
@@ -277,7 +335,9 @@
277
335
  "pagination.page": "Seite",
278
336
  "pagination.pageOf": "von",
279
337
  "previous": "zurück",
338
+ "record.action.delete": "Löschen",
280
339
  "record.action.download": "Herunterladen",
340
+ "record.action.duplicate": "",
281
341
  "record.action.view": "Anzeigen",
282
342
  "record.externalViewer.open": "In externem Kartenviewer öffnen",
283
343
  "record.metadata.about": "Beschreibung",
@@ -408,7 +468,7 @@
408
468
  "search.filters.resourceType": "Ressourcentyp",
409
469
  "search.filters.standard": "Standard",
410
470
  "search.filters.title": "Ergebnisse filtern",
411
- "search.filters.topic": "Thema",
471
+ "search.filters.topic": "Themen",
412
472
  "search.filters.useSpatialFilter": "Zuerst Datensätze im Interessenbereich anzeigen",
413
473
  "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.",
414
474
  "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,9 +186,30 @@
165
186
  "downloads.format.unknown": "unknown",
166
187
  "downloads.wfs.featuretype.not.found": "The layer was not found",
167
188
  "dropFile": "drop file",
168
- "editor.record.form.abstract": "Abstract",
169
- "editor.record.form.keywords": "Keywords",
170
- "editor.record.form.license": "License",
189
+ "editor.record.delete.confirmation.cancelText": "Cancel",
190
+ "editor.record.delete.confirmation.confirmText": "Delete",
191
+ "editor.record.delete.confirmation.message": "Are you sure you want to delete this record?",
192
+ "editor.record.delete.confirmation.title": "Delete record?",
193
+ "editor.record.deleteError.body": "The record could not be deleted:",
194
+ "editor.record.deleteError.closeMessage": "Understood",
195
+ "editor.record.deleteError.title": "Error deleting record",
196
+ "editor.record.deleteSuccess.body": "The record was successfully deleted !",
197
+ "editor.record.deleteSuccess.title": "Delete success",
198
+ "editor.record.form.bottomButtons.comeBackLater": "Come back later",
199
+ "editor.record.form.bottomButtons.next": "Next",
200
+ "editor.record.form.bottomButtons.previous": "Previous",
201
+ "editor.record.form.classification.opendata": "Open Data",
202
+ "editor.record.form.field.abstract": "Abstract",
203
+ "editor.record.form.field.contactsForResource.noContact": "Please provide at least one point of contact responsible for the data.",
204
+ "editor.record.form.field.keywords": "Keywords",
205
+ "editor.record.form.field.license": "License",
206
+ "editor.record.form.field.overviews": "Overviews",
207
+ "editor.record.form.field.recordUpdated": "Record Updated",
208
+ "editor.record.form.field.resourceUpdated": "Resource Updated",
209
+ "editor.record.form.field.temporalExtents": "Temporal extents",
210
+ "editor.record.form.field.title": "Metadata title",
211
+ "editor.record.form.field.uniqueIdentifier": "Unique identifier",
212
+ "editor.record.form.field.updateFrequency": "Update frequency",
171
213
  "editor.record.form.license.cc-by": "Creative Commons CC-BY",
172
214
  "editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
173
215
  "editor.record.form.license.cc-zero": "Creative Commons CC-0",
@@ -177,16 +219,26 @@
177
219
  "editor.record.form.license.odc-by": "Open Data Commons ODC-By",
178
220
  "editor.record.form.license.pddl": "Open Data Commons PDDL",
179
221
  "editor.record.form.license.unknown": "Unknown or absent",
180
- "editor.record.form.metadata.title": "Metadata title",
181
- "editor.record.form.record.updated": "Record updated",
182
- "editor.record.form.resourceUpdated": "Last update date",
183
- "editor.record.form.temporalExtents": "Temporal extent",
222
+ "editor.record.form.page.accessAndContact": "Access and contact",
223
+ "editor.record.form.page.description": "Resource description",
224
+ "editor.record.form.page.ressources": "Resources",
225
+ "editor.record.form.section.about.description": "This section describes the resource.",
226
+ "editor.record.form.section.about.label": "About the resource",
227
+ "editor.record.form.section.annexes.label": "Annexes",
228
+ "editor.record.form.section.associatedResources.description": "Drop files here to associate them with the resource.",
229
+ "editor.record.form.section.associatedResources.label": "Associated resources",
230
+ "editor.record.form.section.classification.description": "The classification has an impact on the access to the data.",
231
+ "editor.record.form.section.classification.label": "Classification",
232
+ "editor.record.form.section.dataManagers.description": "The data managers are responsible for the data.",
233
+ "editor.record.form.section.dataManagers.label": "Data managers",
234
+ "editor.record.form.section.dataPointOfContact.description": "This information concerns the metadata.",
235
+ "editor.record.form.section.dataPointOfContact.label": "Data point of contact",
236
+ "editor.record.form.section.geographicalCoverage.label": "Geographical coverage",
237
+ "editor.record.form.section.useAndAccessConditions.label": "Use and access conditions",
184
238
  "editor.record.form.temporalExtents.addDate": "Time instant",
185
239
  "editor.record.form.temporalExtents.addRange": "Time period",
186
240
  "editor.record.form.temporalExtents.date": "Date",
187
241
  "editor.record.form.temporalExtents.range": "Date range",
188
- "editor.record.form.unique.identifier": "Unique identifier",
189
- "editor.record.form.updateFrequency": "Update frequency",
190
242
  "editor.record.form.updateFrequency.planned": "The data should be updated regularly.",
191
243
  "editor.record.loadError.body": "The record could not be loaded:",
192
244
  "editor.record.loadError.closeMessage": "Understood",
@@ -201,6 +253,7 @@
201
253
  "editor.record.saveStatus.draftWithChangesPending": "Saved as draft - changes are pending",
202
254
  "editor.record.saveStatus.recordUpToDate": "Record is up to date",
203
255
  "editor.record.upToDate": "This record is up to date",
256
+ "editor.sidebar.menu.editor": "Editor",
204
257
  "externalviewer.dataset.unnamed": "Datahub layer",
205
258
  "facets.block.title.OrgForResource": "Organisation",
206
259
  "facets.block.title.availableInServices": "Available for",
@@ -214,6 +267,11 @@
214
267
  "facets.block.title.tag.default": "Tag",
215
268
  "facets.block.title.th_regions_tree.default": "Regions",
216
269
  "favorite.not.authenticated.tooltip": "<div><a href=' {link} '>Login</a> to access this feature</div>",
270
+ "input.file.dropFileLabel": "or drop it here",
271
+ "input.file.orInputUrl": "or",
272
+ "input.file.selectFileLabel": "Select a file ({sizeMB} MB max.)",
273
+ "input.file.uploadProgressCancel": "Cancel",
274
+ "input.file.uploadProgressLabel": "Uploading in progress...",
217
275
  "input.image.altTextPlaceholder": "Image alternate text",
218
276
  "input.image.delete": "Delete",
219
277
  "input.image.displayAltTextInput": "Alternate text",
@@ -277,7 +335,9 @@
277
335
  "pagination.page": "page",
278
336
  "pagination.pageOf": "of",
279
337
  "previous": "previous",
338
+ "record.action.delete": "Delete",
280
339
  "record.action.download": "Download",
340
+ "record.action.duplicate": "Duplicate",
281
341
  "record.action.view": "View",
282
342
  "record.externalViewer.open": "Open in the external map viewer",
283
343
  "record.metadata.about": "Description",
@@ -408,7 +468,7 @@
408
468
  "search.filters.resourceType": "Resource type",
409
469
  "search.filters.standard": "Standard",
410
470
  "search.filters.title": "Filter your results",
411
- "search.filters.topic": "Topic",
471
+ "search.filters.topic": "Topics",
412
472
  "search.filters.useSpatialFilter": "Show records in the area of interest first",
413
473
  "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.",
414
474
  "share.tab.permalink": "Share",