geonetwork-ui 2.4.0-dev.cec60ff1 → 2.4.0-dev.d5b28b1e

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 (237) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +2 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  3. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +5 -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 +6 -1
  8. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +31 -3
  9. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  10. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  11. package/esm2022/libs/data-access/gn4/src/openapi/api/records.api.service.mjs +2 -6
  12. package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +2 -1
  13. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +3 -3
  14. package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +7 -2
  15. package/esm2022/libs/feature/editor/src/lib/+state/editor.models.mjs +1 -1
  16. package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +7 -3
  17. package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +16 -6
  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-overviews/form-field-overviews.component.mjs +21 -0
  20. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.mjs +7 -6
  21. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +19 -9
  22. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +1 -2
  23. package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +11 -7
  24. package/esm2022/libs/feature/editor/src/lib/expressions.mjs +1 -1
  25. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +153 -60
  26. package/esm2022/libs/feature/editor/src/lib/models/editor-config.model.mjs +2 -0
  27. package/esm2022/libs/feature/editor/src/lib/models/index.mjs +2 -1
  28. package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +4 -3
  29. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +10 -5
  30. package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +42 -23
  31. package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +13 -5
  32. package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +49 -15
  33. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +46 -7
  34. package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +6 -2
  35. package/esm2022/libs/ui/elements/src/index.mjs +2 -1
  36. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
  37. package/esm2022/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.mjs +27 -0
  38. package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +4 -3
  39. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +2 -2
  40. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +3 -3
  41. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +5 -11
  42. package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +3 -3
  43. package/esm2022/libs/ui/elements/src/lib/sortable-list/sortable-list.component.mjs +6 -3
  44. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +5 -2
  45. package/esm2022/libs/ui/elements/src/lib/user-preview/user-preview.component.mjs +3 -3
  46. package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +3 -3
  47. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +3 -3
  48. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +67 -0
  49. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +28 -8
  50. package/esm2022/libs/ui/widgets/src/index.mjs +2 -1
  51. package/esm2022/libs/ui/widgets/src/lib/popover/popover.component.mjs +68 -0
  52. package/esm2022/translations/de.json +68 -32
  53. package/esm2022/translations/en.json +44 -8
  54. package/esm2022/translations/es.json +41 -5
  55. package/esm2022/translations/fr.json +53 -17
  56. package/esm2022/translations/it.json +42 -6
  57. package/esm2022/translations/nl.json +41 -5
  58. package/esm2022/translations/pt.json +41 -5
  59. package/fesm2022/geonetwork-ui.mjs +1257 -369
  60. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  61. package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
  62. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +1 -0
  63. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  64. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
  65. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +8 -1
  66. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  67. package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts +5 -0
  68. package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts.map +1 -0
  69. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +3 -1
  70. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  71. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +1 -0
  72. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
  73. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +7 -1
  74. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  75. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +2 -1
  76. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  77. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +17 -0
  78. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  79. package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts.map +1 -1
  80. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +5 -0
  81. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
  82. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +4 -4
  83. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
  84. package/libs/feature/editor/src/lib/+state/editor.models.d.ts +8 -0
  85. package/libs/feature/editor/src/lib/+state/editor.models.d.ts.map +1 -1
  86. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts +4 -3
  87. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -1
  88. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +4 -8
  89. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -1
  90. package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts +27 -0
  91. package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts.map +1 -0
  92. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +11 -0
  93. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -0
  94. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts +3 -1
  95. 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
  96. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +6 -2
  97. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  98. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +0 -1
  99. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  100. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts +5 -7
  101. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -1
  102. package/libs/feature/editor/src/lib/expressions.d.ts +1 -1
  103. package/libs/feature/editor/src/lib/expressions.d.ts.map +1 -1
  104. package/libs/feature/editor/src/lib/fields.config.d.ts +39 -2
  105. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  106. package/libs/feature/editor/src/lib/models/editor-config.model.d.ts +36 -0
  107. package/libs/feature/editor/src/lib/models/editor-config.model.d.ts.map +1 -0
  108. package/libs/feature/editor/src/lib/models/index.d.ts +1 -0
  109. package/libs/feature/editor/src/lib/models/index.d.ts.map +1 -1
  110. package/libs/feature/editor/src/lib/services/editor.service.d.ts +2 -2
  111. package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
  112. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  113. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +4 -1
  114. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
  115. package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts +4 -1
  116. package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts.map +1 -1
  117. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +4 -1
  118. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
  119. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +14 -4
  120. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  121. package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -0
  122. package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
  123. package/libs/ui/elements/src/index.d.ts +1 -0
  124. package/libs/ui/elements/src/index.d.ts.map +1 -1
  125. package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts +18 -0
  126. package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts.map +1 -0
  127. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
  128. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +0 -3
  129. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  130. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
  131. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts +3 -2
  132. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts.map +1 -1
  133. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +7 -6
  134. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  135. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +20 -0
  136. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -0
  137. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +9 -3
  138. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  139. package/libs/ui/widgets/src/index.d.ts +1 -0
  140. package/libs/ui/widgets/src/index.d.ts.map +1 -1
  141. package/libs/ui/widgets/src/lib/popover/popover.component.d.ts +19 -0
  142. package/libs/ui/widgets/src/lib/popover/popover.component.d.ts.map +1 -0
  143. package/package.json +1 -1
  144. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +5 -1
  145. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +37 -12
  146. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +5 -1
  147. package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +1 -0
  148. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +1 -0
  149. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +4 -2
  150. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +72 -2
  151. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.ts +39 -0
  152. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +70 -1
  153. package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +8 -0
  154. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +42 -2
  155. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +2 -1
  156. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +22 -0
  157. package/src/libs/common/fixtures/src/index.ts +2 -0
  158. package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +156 -0
  159. package/src/libs/common/fixtures/src/lib/editor/index.ts +1 -0
  160. package/src/libs/data-access/gn4/src/openapi/api/records.api.service.ts +1 -5
  161. package/src/libs/data-access/gn4/src/spec.yaml +0 -8
  162. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +5 -0
  163. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +2 -2
  164. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +9 -1
  165. package/src/libs/feature/editor/src/lib/+state/editor.models.ts +11 -0
  166. package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +11 -5
  167. package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +22 -8
  168. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +2 -1
  169. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +110 -19
  170. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.css +0 -0
  171. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +5 -0
  172. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +22 -0
  173. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.ts +8 -7
  174. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +15 -9
  175. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +15 -2
  176. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +0 -1
  177. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +51 -11
  178. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +15 -8
  179. package/src/libs/feature/editor/src/lib/expressions.ts +1 -1
  180. package/src/libs/feature/editor/src/lib/fields.config.ts +186 -61
  181. package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +53 -0
  182. package/src/libs/feature/editor/src/lib/models/index.ts +1 -0
  183. package/src/libs/feature/editor/src/lib/services/editor.service.ts +8 -4
  184. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +8 -4
  185. package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +36 -19
  186. package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.html +6 -2
  187. package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.ts +11 -0
  188. package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +59 -12
  189. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +3 -1
  190. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +57 -3
  191. package/src/libs/feature/search/src/lib/state/search.facade.ts +6 -0
  192. package/src/libs/ui/elements/src/index.ts +1 -0
  193. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +29 -29
  194. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.css +0 -0
  195. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.html +12 -0
  196. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.ts +37 -0
  197. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +4 -1
  198. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +2 -1
  199. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +12 -8
  200. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +14 -20
  201. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +0 -10
  202. package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.html +1 -1
  203. package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.html +3 -1
  204. package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.ts +6 -2
  205. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +2 -1
  206. package/src/libs/ui/elements/src/lib/user-preview/user-preview.component.html +1 -1
  207. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.css +31 -0
  208. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.html +15 -0
  209. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +38 -0
  210. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.html +1 -1
  211. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +1 -0
  212. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.css +0 -0
  213. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +26 -0
  214. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +74 -0
  215. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +15 -1
  216. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +26 -12
  217. package/src/libs/ui/widgets/src/index.ts +1 -0
  218. package/src/libs/ui/widgets/src/lib/popover/popover.component.css +0 -0
  219. package/src/libs/ui/widgets/src/lib/popover/popover.component.html +3 -0
  220. package/src/libs/ui/widgets/src/lib/popover/popover.component.ts +85 -0
  221. package/tailwind.base.css +2 -1
  222. package/translations/de.json +68 -32
  223. package/translations/en.json +44 -8
  224. package/translations/es.json +41 -5
  225. package/translations/fr.json +53 -17
  226. package/translations/it.json +42 -6
  227. package/translations/nl.json +41 -5
  228. package/translations/pt.json +41 -5
  229. package/translations/sk.json +42 -6
  230. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.mjs +0 -2
  231. package/esm2022/libs/feature/editor/src/lib/models/fields.model.mjs +0 -2
  232. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts +0 -26
  233. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts.map +0 -1
  234. package/libs/feature/editor/src/lib/models/fields.model.d.ts +0 -15
  235. package/libs/feature/editor/src/lib/models/fields.model.d.ts.map +0 -1
  236. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.ts +0 -43
  237. package/src/libs/feature/editor/src/lib/models/fields.model.ts +0 -29
@@ -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
@@ -115,7 +115,8 @@
115
115
  --padding: var(--gn-ui-badge-padding, 0.375em 0.75em);
116
116
  --text-color: var(--gn-ui-badge-text-color, var(--color-gray-50));
117
117
  --background-color: var(--gn-ui-badge-background-color, black);
118
- @apply inline-block opacity-70 p-[--padding] rounded-[--rounded]
118
+ --opacity: var(--gn-ui-badge-opacity, 0.7);
119
+ @apply inline-block opacity-[--opacity] p-[--padding] rounded-[--rounded]
119
120
  font-medium text-[length:0.875em] leading-none text-[color:--text-color] bg-[color:--background-color];
120
121
  }
121
122
  /* makes sure icons will not make the badges grow vertically; also make size proportional */
@@ -165,38 +165,72 @@
165
165
  "downloads.format.unknown": "unbekannt",
166
166
  "downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
167
167
  "dropFile": "Datei ablegen",
168
- "editor.record.form.keywords": "Schlagwörter",
169
- "editor.record.form.license": "Lizenz",
170
- "editor.record.form.license.cc-by": "",
171
- "editor.record.form.license.cc-by-sa": "",
172
- "editor.record.form.license.cc-zero": "",
173
- "editor.record.form.license.etalab": "",
174
- "editor.record.form.license.etalab-v2": "",
175
- "editor.record.form.license.odbl": "",
176
- "editor.record.form.license.odc-by": "",
177
- "editor.record.form.license.pddl": "",
168
+ "editor.record.delete.confirmation.cancelText": "Stornieren",
169
+ "editor.record.delete.confirmation.confirmText": "Löschen",
170
+ "editor.record.delete.confirmation.message": "Sind Sie sicher, dass Sie diesen Datensatz löschen möchten?",
171
+ "editor.record.delete.confirmation.title": "Datensatz löschen?",
172
+ "editor.record.deleteError.body": "Der Datensatz konnte nicht gelöscht werden:",
173
+ "editor.record.deleteError.closeMessage": "Verstanden",
174
+ "editor.record.deleteError.title": "Fehler beim Löschen des Datensatzes",
175
+ "editor.record.deleteSuccess.body": "",
176
+ "editor.record.deleteSuccess.title": "",
177
+ "editor.record.form.bottomButtons.comeBackLater": "",
178
+ "editor.record.form.bottomButtons.next": "",
179
+ "editor.record.form.bottomButtons.previous": "",
180
+ "editor.record.form.field.abstract": "Kurzbeschreibung",
181
+ "editor.record.form.field.keywords": "Schlagwörter",
182
+ "editor.record.form.field.license": "Lizenz",
183
+ "editor.record.form.field.overviews": "",
184
+ "editor.record.form.field.recordUpdated": "Datensatz zuletzt aktualisiert",
185
+ "editor.record.form.field.resourceUpdated": "Letztes Aktualisierungsdatum",
186
+ "editor.record.form.field.temporalExtents": "Zeitlicher Umfang",
187
+ "editor.record.form.field.title": "Metadaten-Titel",
188
+ "editor.record.form.field.uniqueIdentifier": "Eindeutige Kennung (ID)",
189
+ "editor.record.form.field.updateFrequency": "Aktualisierungshäufigkeit",
190
+ "editor.record.form.license.cc-by": "Creative Commons CC-BY",
191
+ "editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
192
+ "editor.record.form.license.cc-zero": "Creative Commons CC-0",
193
+ "editor.record.form.license.etalab": "Offene Lizenz (Etalab)",
194
+ "editor.record.form.license.etalab-v2": "Offene Lizenz v2.0 (Etalab)",
195
+ "editor.record.form.license.odbl": "Open Data Commons ODbL",
196
+ "editor.record.form.license.odc-by": "Open Data Commons ODC-By",
197
+ "editor.record.form.license.pddl": "Open Data Commons PDDL",
178
198
  "editor.record.form.license.unknown": "Unbekannt oder nicht vorhanden",
179
- "editor.record.form.resourceUpdated": "",
180
- "editor.record.form.temporalExtents": "",
181
- "editor.record.form.temporalExtents.addDate": "",
182
- "editor.record.form.temporalExtents.addRange": "",
183
- "editor.record.form.temporalExtents.date": "",
184
- "editor.record.form.temporalExtents.range": "",
185
- "editor.record.form.updateFrequency": "",
186
- "editor.record.form.updateFrequency.planned": "",
187
- "editor.record.loadError.body": "",
188
- "editor.record.loadError.closeMessage": "",
189
- "editor.record.loadError.title": "",
190
- "editor.record.publish": "",
191
- "editor.record.publishError.body": "",
192
- "editor.record.publishError.closeMessage": "",
193
- "editor.record.publishError.title": "",
194
- "editor.record.publishSuccess.body": "",
195
- "editor.record.publishSuccess.title": "",
196
- "editor.record.saveStatus.asDraftOnly": "",
197
- "editor.record.saveStatus.draftWithChangesPending": "",
198
- "editor.record.saveStatus.recordUpToDate": "",
199
- "editor.record.upToDate": "",
199
+ "editor.record.form.page.accessAndContact": "",
200
+ "editor.record.form.page.description": "",
201
+ "editor.record.form.page.ressources": "",
202
+ "editor.record.form.section.about.description": "",
203
+ "editor.record.form.section.about.label": "",
204
+ "editor.record.form.section.annexes.label": "",
205
+ "editor.record.form.section.associatedResources.description": "",
206
+ "editor.record.form.section.associatedResources.label": "",
207
+ "editor.record.form.section.classification.description": "",
208
+ "editor.record.form.section.classification.label": "",
209
+ "editor.record.form.section.dataManagers.description": "",
210
+ "editor.record.form.section.dataManagers.label": "",
211
+ "editor.record.form.section.dataPointOfContact.description": "",
212
+ "editor.record.form.section.dataPointOfContact.label": "",
213
+ "editor.record.form.section.geographicalCoverage.label": "",
214
+ "editor.record.form.section.useAndAccessConditions.label": "",
215
+ "editor.record.form.temporalExtents.addDate": "Zeitpunkt",
216
+ "editor.record.form.temporalExtents.addRange": "Zeitraum",
217
+ "editor.record.form.temporalExtents.date": "Datum",
218
+ "editor.record.form.temporalExtents.range": "Datumsbereich",
219
+ "editor.record.form.updateFrequency.planned": "Die Daten sollten regelmäßig aktualisiert werden.",
220
+ "editor.record.loadError.body": "Der Datensatz konnte nicht geladen werden:",
221
+ "editor.record.loadError.closeMessage": "Verstanden",
222
+ "editor.record.loadError.title": "Fehler beim Laden des Datensatzes",
223
+ "editor.record.publish": "Diesen Datensatz veröffentlichen",
224
+ "editor.record.publishError.body": "Der Datensatz konnte nicht veröffentlicht werden:",
225
+ "editor.record.publishError.closeMessage": "Verstanden",
226
+ "editor.record.publishError.title": "Fehler beim Veröffentlichen des Datensatzes",
227
+ "editor.record.publishSuccess.body": "Der Datensatz wurde erfolgreich veröffentlicht!",
228
+ "editor.record.publishSuccess.title": "Veröffentlichung erfolgreich",
229
+ "editor.record.saveStatus.asDraftOnly": "Nur als Entwurf gespeichert - noch nicht veröffentlicht",
230
+ "editor.record.saveStatus.draftWithChangesPending": "Als Entwurf gespeichert - Änderungen stehen aus",
231
+ "editor.record.saveStatus.recordUpToDate": "Datensatz ist auf dem neuesten Stand",
232
+ "editor.record.upToDate": "Dieser Datensatz ist auf dem neuesten Stand",
233
+ "editor.sidebar.menu.editor": "",
200
234
  "externalviewer.dataset.unnamed": "Datensatz aus dem Datahub",
201
235
  "facets.block.title.OrgForResource": "Organisation",
202
236
  "facets.block.title.availableInServices": "Verfügbar für",
@@ -273,7 +307,9 @@
273
307
  "pagination.page": "Seite",
274
308
  "pagination.pageOf": "von",
275
309
  "previous": "zurück",
310
+ "record.action.delete": "Löschen",
276
311
  "record.action.download": "Herunterladen",
312
+ "record.action.duplicate": "",
277
313
  "record.action.view": "Anzeigen",
278
314
  "record.externalViewer.open": "In externem Kartenviewer öffnen",
279
315
  "record.metadata.about": "Beschreibung",
@@ -404,7 +440,7 @@
404
440
  "search.filters.resourceType": "Ressourcentyp",
405
441
  "search.filters.standard": "Standard",
406
442
  "search.filters.title": "Ergebnisse filtern",
407
- "search.filters.topic": "Thema",
443
+ "search.filters.topic": "Themen",
408
444
  "search.filters.useSpatialFilter": "Zuerst Datensätze im Interessenbereich anzeigen",
409
445
  "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.",
410
446
  "share.tab.permalink": "Teilen",
@@ -165,8 +165,28 @@
165
165
  "downloads.format.unknown": "unknown",
166
166
  "downloads.wfs.featuretype.not.found": "The layer was not found",
167
167
  "dropFile": "drop file",
168
- "editor.record.form.keywords": "Keywords",
169
- "editor.record.form.license": "License",
168
+ "editor.record.delete.confirmation.cancelText": "Cancel",
169
+ "editor.record.delete.confirmation.confirmText": "Delete",
170
+ "editor.record.delete.confirmation.message": "Are you sure you want to delete this record?",
171
+ "editor.record.delete.confirmation.title": "Delete record?",
172
+ "editor.record.deleteError.body": "The record could not be deleted:",
173
+ "editor.record.deleteError.closeMessage": "Understood",
174
+ "editor.record.deleteError.title": "Error deleting record",
175
+ "editor.record.deleteSuccess.body": "The record was successfully deleted !",
176
+ "editor.record.deleteSuccess.title": "Delete success",
177
+ "editor.record.form.bottomButtons.comeBackLater": "Come back later",
178
+ "editor.record.form.bottomButtons.next": "Next",
179
+ "editor.record.form.bottomButtons.previous": "Previous",
180
+ "editor.record.form.field.abstract": "Abstract",
181
+ "editor.record.form.field.keywords": "Keywords",
182
+ "editor.record.form.field.license": "License",
183
+ "editor.record.form.field.overviews": "Overviews",
184
+ "editor.record.form.field.recordUpdated": "Record Updated",
185
+ "editor.record.form.field.resourceUpdated": "Resource Updated",
186
+ "editor.record.form.field.temporalExtents": "Temporal extents",
187
+ "editor.record.form.field.title": "Metadata title",
188
+ "editor.record.form.field.uniqueIdentifier": "Unique identifier",
189
+ "editor.record.form.field.updateFrequency": "Update frequency",
170
190
  "editor.record.form.license.cc-by": "Creative Commons CC-BY",
171
191
  "editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
172
192
  "editor.record.form.license.cc-zero": "Creative Commons CC-0",
@@ -176,13 +196,26 @@
176
196
  "editor.record.form.license.odc-by": "Open Data Commons ODC-By",
177
197
  "editor.record.form.license.pddl": "Open Data Commons PDDL",
178
198
  "editor.record.form.license.unknown": "Unknown or absent",
179
- "editor.record.form.resourceUpdated": "Last update date",
180
- "editor.record.form.temporalExtents": "Temporal extent",
199
+ "editor.record.form.page.accessAndContact": "Access and contact",
200
+ "editor.record.form.page.description": "Resource description",
201
+ "editor.record.form.page.ressources": "Resources",
202
+ "editor.record.form.section.about.description": "This section describes the resource.",
203
+ "editor.record.form.section.about.label": "About the resource",
204
+ "editor.record.form.section.annexes.label": "Annexes",
205
+ "editor.record.form.section.associatedResources.description": "Drop files here to associate them with the resource.",
206
+ "editor.record.form.section.associatedResources.label": "Associated resources",
207
+ "editor.record.form.section.classification.description": "The classification has an impact on the access to the data.",
208
+ "editor.record.form.section.classification.label": "Classification",
209
+ "editor.record.form.section.dataManagers.description": "The data managers are responsible for the data.",
210
+ "editor.record.form.section.dataManagers.label": "Data managers",
211
+ "editor.record.form.section.dataPointOfContact.description": "This information concerns the metadata.",
212
+ "editor.record.form.section.dataPointOfContact.label": "Data point of contact",
213
+ "editor.record.form.section.geographicalCoverage.label": "Geographical coverage",
214
+ "editor.record.form.section.useAndAccessConditions.label": "Use and access conditions",
181
215
  "editor.record.form.temporalExtents.addDate": "Time instant",
182
216
  "editor.record.form.temporalExtents.addRange": "Time period",
183
217
  "editor.record.form.temporalExtents.date": "Date",
184
218
  "editor.record.form.temporalExtents.range": "Date range",
185
- "editor.record.form.updateFrequency": "Update frequency",
186
219
  "editor.record.form.updateFrequency.planned": "The data should be updated regularly.",
187
220
  "editor.record.loadError.body": "The record could not be loaded:",
188
221
  "editor.record.loadError.closeMessage": "Understood",
@@ -197,6 +230,7 @@
197
230
  "editor.record.saveStatus.draftWithChangesPending": "Saved as draft - changes are pending",
198
231
  "editor.record.saveStatus.recordUpToDate": "Record is up to date",
199
232
  "editor.record.upToDate": "This record is up to date",
233
+ "editor.sidebar.menu.editor": "Editor",
200
234
  "externalviewer.dataset.unnamed": "Datahub layer",
201
235
  "facets.block.title.OrgForResource": "Organisation",
202
236
  "facets.block.title.availableInServices": "Available for",
@@ -265,15 +299,17 @@
265
299
  "organisations.sortBy.nameDesc": "Name Z → A",
266
300
  "organisations.sortBy.recordCountAsc": "Publications 0 → 9",
267
301
  "organisations.sortBy.recordCountDesc": "Publications 9 → 0",
268
- "organization.details.lastPublishedDatasets": "Last published datasets",
269
- "organization.details.lastPublishedDatasets.searchAllButton": "Search all",
302
+ "organization.details.lastPublishedDatasets": "",
303
+ "organization.details.lastPublishedDatasets.searchAllButton": "",
270
304
  "organization.details.mailContact": "Contact by email",
271
305
  "organization.header.recordCount": "{count, plural, =0{data} one{data} other{datas}}",
272
306
  "pagination.nextPage": "Next page",
273
307
  "pagination.page": "page",
274
308
  "pagination.pageOf": "of",
275
309
  "previous": "previous",
310
+ "record.action.delete": "Delete",
276
311
  "record.action.download": "Download",
312
+ "record.action.duplicate": "Duplicate",
277
313
  "record.action.view": "View",
278
314
  "record.externalViewer.open": "Open in the external map viewer",
279
315
  "record.metadata.about": "Description",
@@ -404,7 +440,7 @@
404
440
  "search.filters.resourceType": "Resource type",
405
441
  "search.filters.standard": "Standard",
406
442
  "search.filters.title": "Filter your results",
407
- "search.filters.topic": "Topic",
443
+ "search.filters.topic": "Topics",
408
444
  "search.filters.useSpatialFilter": "Show records in the area of interest first",
409
445
  "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.",
410
446
  "share.tab.permalink": "Share",
@@ -165,8 +165,28 @@
165
165
  "downloads.format.unknown": "",
166
166
  "downloads.wfs.featuretype.not.found": "",
167
167
  "dropFile": "",
168
- "editor.record.form.keywords": "",
169
- "editor.record.form.license": "",
168
+ "editor.record.delete.confirmation.cancelText": "",
169
+ "editor.record.delete.confirmation.confirmText": "",
170
+ "editor.record.delete.confirmation.message": "",
171
+ "editor.record.delete.confirmation.title": "",
172
+ "editor.record.deleteError.body": "",
173
+ "editor.record.deleteError.closeMessage": "",
174
+ "editor.record.deleteError.title": "",
175
+ "editor.record.deleteSuccess.body": "",
176
+ "editor.record.deleteSuccess.title": "",
177
+ "editor.record.form.bottomButtons.comeBackLater": "",
178
+ "editor.record.form.bottomButtons.next": "",
179
+ "editor.record.form.bottomButtons.previous": "",
180
+ "editor.record.form.field.abstract": "",
181
+ "editor.record.form.field.keywords": "",
182
+ "editor.record.form.field.license": "",
183
+ "editor.record.form.field.overviews": "",
184
+ "editor.record.form.field.recordUpdated": "",
185
+ "editor.record.form.field.resourceUpdated": "",
186
+ "editor.record.form.field.temporalExtents": "",
187
+ "editor.record.form.field.title": "",
188
+ "editor.record.form.field.uniqueIdentifier": "",
189
+ "editor.record.form.field.updateFrequency": "",
170
190
  "editor.record.form.license.cc-by": "",
171
191
  "editor.record.form.license.cc-by-sa": "",
172
192
  "editor.record.form.license.cc-zero": "",
@@ -176,13 +196,26 @@
176
196
  "editor.record.form.license.odc-by": "",
177
197
  "editor.record.form.license.pddl": "",
178
198
  "editor.record.form.license.unknown": "",
179
- "editor.record.form.resourceUpdated": "",
180
- "editor.record.form.temporalExtents": "",
199
+ "editor.record.form.page.accessAndContact": "",
200
+ "editor.record.form.page.description": "",
201
+ "editor.record.form.page.ressources": "",
202
+ "editor.record.form.section.about.description": "",
203
+ "editor.record.form.section.about.label": "",
204
+ "editor.record.form.section.annexes.label": "",
205
+ "editor.record.form.section.associatedResources.description": "",
206
+ "editor.record.form.section.associatedResources.label": "",
207
+ "editor.record.form.section.classification.description": "",
208
+ "editor.record.form.section.classification.label": "",
209
+ "editor.record.form.section.dataManagers.description": "",
210
+ "editor.record.form.section.dataManagers.label": "",
211
+ "editor.record.form.section.dataPointOfContact.description": "",
212
+ "editor.record.form.section.dataPointOfContact.label": "",
213
+ "editor.record.form.section.geographicalCoverage.label": "",
214
+ "editor.record.form.section.useAndAccessConditions.label": "",
181
215
  "editor.record.form.temporalExtents.addDate": "",
182
216
  "editor.record.form.temporalExtents.addRange": "",
183
217
  "editor.record.form.temporalExtents.date": "",
184
218
  "editor.record.form.temporalExtents.range": "",
185
- "editor.record.form.updateFrequency": "",
186
219
  "editor.record.form.updateFrequency.planned": "",
187
220
  "editor.record.loadError.body": "",
188
221
  "editor.record.loadError.closeMessage": "",
@@ -197,6 +230,7 @@
197
230
  "editor.record.saveStatus.draftWithChangesPending": "",
198
231
  "editor.record.saveStatus.recordUpToDate": "",
199
232
  "editor.record.upToDate": "",
233
+ "editor.sidebar.menu.editor": "",
200
234
  "externalviewer.dataset.unnamed": "",
201
235
  "facets.block.title.OrgForResource": "",
202
236
  "facets.block.title.availableInServices": "",
@@ -273,7 +307,9 @@
273
307
  "pagination.page": "",
274
308
  "pagination.pageOf": "",
275
309
  "previous": "",
310
+ "record.action.delete": "",
276
311
  "record.action.download": "",
312
+ "record.action.duplicate": "",
277
313
  "record.action.view": "",
278
314
  "record.externalViewer.open": "",
279
315
  "record.metadata.about": "",
@@ -165,8 +165,28 @@
165
165
  "downloads.format.unknown": "inconnu",
166
166
  "downloads.wfs.featuretype.not.found": "La couche n'a pas été retrouvée",
167
167
  "dropFile": "Faites glisser votre fichier",
168
- "editor.record.form.keywords": "Mots-clés",
169
- "editor.record.form.license": "Licence",
168
+ "editor.record.delete.confirmation.cancelText": "Annuler",
169
+ "editor.record.delete.confirmation.confirmText": "Supprimer",
170
+ "editor.record.delete.confirmation.message": "Etes-vous sûr de vouloir supprimer cette fiche ?",
171
+ "editor.record.delete.confirmation.title": "Supprimer la fiche",
172
+ "editor.record.deleteError.body": "La fiche n'a pas pu être supprimée :",
173
+ "editor.record.deleteError.closeMessage": "Compris",
174
+ "editor.record.deleteError.title": "Erreur lors de la suppression",
175
+ "editor.record.deleteSuccess.body": "La fiche a bien été supprimée !",
176
+ "editor.record.deleteSuccess.title": "Suppression réussie",
177
+ "editor.record.form.bottomButtons.comeBackLater": "Revenir plus tard",
178
+ "editor.record.form.bottomButtons.next": "Suivant",
179
+ "editor.record.form.bottomButtons.previous": "Précédent",
180
+ "editor.record.form.field.abstract": "Résumé",
181
+ "editor.record.form.field.keywords": "Mots-clés",
182
+ "editor.record.form.field.license": "Licence",
183
+ "editor.record.form.field.overviews": "Aperçus",
184
+ "editor.record.form.field.recordUpdated": "Date de dernière révision",
185
+ "editor.record.form.field.resourceUpdated": "Date de dernière révision",
186
+ "editor.record.form.field.temporalExtents": "Étendue temporelle",
187
+ "editor.record.form.field.title": "Titre",
188
+ "editor.record.form.field.uniqueIdentifier": "Identifiant unique",
189
+ "editor.record.form.field.updateFrequency": "Fréquence de mise à jour",
170
190
  "editor.record.form.license.cc-by": "",
171
191
  "editor.record.form.license.cc-by-sa": "",
172
192
  "editor.record.form.license.cc-zero": "",
@@ -176,27 +196,41 @@
176
196
  "editor.record.form.license.odc-by": "",
177
197
  "editor.record.form.license.pddl": "",
178
198
  "editor.record.form.license.unknown": "Non-reconnue ou absente",
179
- "editor.record.form.resourceUpdated": "Date de dernière révision",
180
- "editor.record.form.temporalExtents": "Étendue temporelle",
199
+ "editor.record.form.page.accessAndContact": "Acces et contact",
200
+ "editor.record.form.page.description": "Description de la ressource",
201
+ "editor.record.form.page.ressources": "Ressources",
202
+ "editor.record.form.section.about.description": "Ces informations concernent la donnée.",
203
+ "editor.record.form.section.about.label": "A propos de la ressource",
204
+ "editor.record.form.section.annexes.label": "Annexes",
205
+ "editor.record.form.section.associatedResources.description": "Déposez les jeux de données associées à cette fiche de métadonnée.",
206
+ "editor.record.form.section.associatedResources.label": "Ressources associees",
207
+ "editor.record.form.section.classification.description": "La classification a un impact sur la recherche du jeux de données.",
208
+ "editor.record.form.section.classification.label": "Classification",
209
+ "editor.record.form.section.dataManagers.description": "Cette information concerne la donnée.",
210
+ "editor.record.form.section.dataManagers.label": "Responsables de la donnee",
211
+ "editor.record.form.section.dataPointOfContact.description": "Cette information concerne la fiche de métadonnée.",
212
+ "editor.record.form.section.dataPointOfContact.label": "Point de contact de la metadonee",
213
+ "editor.record.form.section.geographicalCoverage.label": "Couverture geographique",
214
+ "editor.record.form.section.useAndAccessConditions.label": "Conditions d'acces et usage",
181
215
  "editor.record.form.temporalExtents.addDate": "Date déterminée",
182
216
  "editor.record.form.temporalExtents.addRange": "Période de temps",
183
217
  "editor.record.form.temporalExtents.date": "Date concernée",
184
218
  "editor.record.form.temporalExtents.range": "Période concernée",
185
- "editor.record.form.updateFrequency": "Fréquence de mise à jour",
186
219
  "editor.record.form.updateFrequency.planned": "Ces données doivent être mise à jour régulièrement.",
187
- "editor.record.loadError.body": "",
188
- "editor.record.loadError.closeMessage": "",
189
- "editor.record.loadError.title": "",
190
- "editor.record.publish": "",
191
- "editor.record.publishError.body": "",
192
- "editor.record.publishError.closeMessage": "",
193
- "editor.record.publishError.title": "",
194
- "editor.record.publishSuccess.body": "",
195
- "editor.record.publishSuccess.title": "",
220
+ "editor.record.loadError.body": "La fiche n'a pas pu être chargée :",
221
+ "editor.record.loadError.closeMessage": "Compris",
222
+ "editor.record.loadError.title": "Erreur lors du chargement",
223
+ "editor.record.publish": "Publier cette fiche",
224
+ "editor.record.publishError.body": "La fiche n'a pas pu être publiée :",
225
+ "editor.record.publishError.closeMessage": "Compris",
226
+ "editor.record.publishError.title": "Erreur lors de la publication",
227
+ "editor.record.publishSuccess.body": "La fiche a bien été publiée !",
228
+ "editor.record.publishSuccess.title": "Publication réussie",
196
229
  "editor.record.saveStatus.asDraftOnly": "Brouillon enregistré - fiche non publiée",
197
230
  "editor.record.saveStatus.draftWithChangesPending": "Brouillon enregistré - modifications en cours",
198
231
  "editor.record.saveStatus.recordUpToDate": "La fiche publiée est à jour",
199
232
  "editor.record.upToDate": "",
233
+ "editor.sidebar.menu.editor": "",
200
234
  "externalviewer.dataset.unnamed": "Couche du datahub",
201
235
  "facets.block.title.OrgForResource": "Organisation",
202
236
  "facets.block.title.availableInServices": "Disponible pour",
@@ -265,15 +299,17 @@
265
299
  "organisations.sortBy.nameDesc": "Nom Z → A",
266
300
  "organisations.sortBy.recordCountAsc": "Données 0 → 9",
267
301
  "organisations.sortBy.recordCountDesc": "Données 9 → 0",
268
- "organization.details.lastPublishedDatasets": "Dernières données publiées",
269
- "organization.details.lastPublishedDatasets.searchAllButton": "Rechercher tous",
302
+ "organization.details.lastPublishedDatasets": "",
303
+ "organization.details.lastPublishedDatasets.searchAllButton": "",
270
304
  "organization.details.mailContact": "Contacter par mail",
271
305
  "organization.header.recordCount": "{count, plural, =0{donnée} one{donnée} other{données}}",
272
306
  "pagination.nextPage": "Page suivante",
273
307
  "pagination.page": "page",
274
308
  "pagination.pageOf": "sur",
275
309
  "previous": "précédent",
310
+ "record.action.delete": "Supprimer",
276
311
  "record.action.download": "Télécharger",
312
+ "record.action.duplicate": "Dupliquer",
277
313
  "record.action.view": "Voir",
278
314
  "record.externalViewer.open": "Ouvrir dans le visualiseur externe",
279
315
  "record.metadata.about": "Description",
@@ -404,7 +440,7 @@
404
440
  "search.filters.resourceType": "Type de ressource",
405
441
  "search.filters.standard": "Standard",
406
442
  "search.filters.title": "Affiner votre recherche",
407
- "search.filters.topic": "Thème",
443
+ "search.filters.topic": "Thèmes",
408
444
  "search.filters.useSpatialFilter": "Mettre en avant les résultats sur la zone d'intérêt",
409
445
  "search.filters.useSpatialFilterHelp": "Si cette option est activée, les fiches portant sur la zone d'intérêt du catalogue seront montrées en premier; les fiches en dehors de cette zone n'apparaîtront pas dans les résultats.",
410
446
  "share.tab.permalink": "Partager",