geonetwork-ui 2.4.0-dev.7a893adc → 2.4.0-dev.80a79eca

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 (299) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +10 -3
  2. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.mjs +5 -5
  3. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +7 -4
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +10 -7
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +7 -14
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +6 -6
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +28 -18
  8. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +41 -7
  9. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  10. package/esm2022/libs/common/domain/src/lib/model/user/user.model.mjs +1 -1
  11. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  12. package/esm2022/libs/data-access/gn4/src/fixtures/site.fixtures.mjs +5 -5
  13. package/esm2022/libs/data-access/gn4/src/fixtures/ui.fixtures.mjs +3 -3
  14. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +1 -1
  15. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +1 -1
  16. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +1 -1
  17. package/esm2022/libs/feature/editor/src/lib/components/contact-card/contact-card.component.mjs +3 -3
  18. package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +71 -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 +8 -29
  20. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +148 -0
  21. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +86 -11
  22. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +29 -3
  23. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.mjs +32 -59
  24. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +10 -3
  25. package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +3 -3
  26. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +29 -3
  27. package/esm2022/libs/feature/editor/src/lib/models/editor-config.model.mjs +1 -1
  28. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +2 -2
  29. package/esm2022/libs/feature/map/src/lib/style/map-style.fixtures.mjs +3 -3
  30. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +1 -1
  31. package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +1 -1
  32. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +1 -1
  33. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +4 -2
  34. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +5 -4
  35. package/esm2022/libs/ui/dataviz/src/lib/table/table.fixtures.mjs +3 -3
  36. package/esm2022/libs/ui/elements/src/index.mjs +2 -2
  37. package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +2 -2
  38. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +1 -1
  39. package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +2 -2
  40. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +2 -2
  41. package/esm2022/libs/ui/inputs/src/index.mjs +4 -1
  42. package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +87 -0
  43. package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +5 -4
  44. package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +4 -4
  45. package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +4 -3
  46. package/esm2022/libs/ui/layout/src/index.mjs +3 -1
  47. package/esm2022/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.mjs +29 -0
  48. package/esm2022/libs/ui/layout/src/lib/sortable-list/sortable-list.component.mjs +43 -0
  49. package/esm2022/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.mjs +7 -7
  50. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +8 -8
  51. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +10 -10
  52. package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +1 -1
  53. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +1 -1
  54. package/esm2022/libs/util/shared/src/lib/utils/bytes-convert.mjs +4 -1
  55. package/esm2022/translations/de.json +15 -2
  56. package/esm2022/translations/en.json +15 -2
  57. package/esm2022/translations/es.json +13 -0
  58. package/esm2022/translations/fr.json +16 -3
  59. package/esm2022/translations/it.json +15 -2
  60. package/esm2022/translations/nl.json +13 -0
  61. package/esm2022/translations/pt.json +13 -0
  62. package/fesm2022/geonetwork-ui.mjs +2888 -2477
  63. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  64. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +3 -3
  65. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  66. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +2 -2
  67. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -1
  68. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts +1 -1
  69. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -1
  70. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
  71. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +4 -5
  72. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  73. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +7 -6
  74. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  75. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +21 -2
  76. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  77. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +6 -6
  78. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  79. package/libs/common/domain/src/lib/model/user/user.model.d.ts +1 -1
  80. package/libs/common/domain/src/lib/model/user/user.model.d.ts.map +1 -1
  81. package/libs/common/domain/src/lib/platform.service.interface.d.ts +15 -0
  82. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  83. package/libs/data-access/gn4/src/fixtures/site.fixtures.d.ts +2 -2
  84. package/libs/data-access/gn4/src/fixtures/site.fixtures.d.ts.map +1 -1
  85. package/libs/data-access/gn4/src/fixtures/ui.fixtures.d.ts +1 -1
  86. package/libs/data-access/gn4/src/fixtures/ui.fixtures.d.ts.map +1 -1
  87. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +2 -2
  88. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  89. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +6 -6
  90. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  91. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +3 -3
  92. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  93. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts +15 -0
  94. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts.map +1 -0
  95. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts +2 -5
  96. 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 -1
  97. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts +35 -0
  98. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts.map +1 -0
  99. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +20 -2
  100. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -1
  101. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts +7 -2
  102. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts.map +1 -1
  103. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts +9 -15
  104. 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
  105. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +5 -3
  106. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  107. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts +3 -2
  108. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -1
  109. package/libs/feature/editor/src/lib/fields.config.d.ts +9 -1
  110. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  111. package/libs/feature/editor/src/lib/models/editor-config.model.d.ts +5 -0
  112. package/libs/feature/editor/src/lib/models/editor-config.model.d.ts.map +1 -1
  113. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts +5 -5
  114. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts.map +1 -1
  115. package/libs/feature/map/src/lib/style/map-style.fixtures.d.ts +2 -2
  116. package/libs/feature/map/src/lib/style/map-style.fixtures.d.ts.map +1 -1
  117. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +3 -3
  118. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  119. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts +2 -2
  120. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
  121. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +2 -2
  122. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  123. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +7 -7
  124. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  125. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +1 -0
  126. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  127. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts +2 -2
  128. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts.map +1 -1
  129. package/libs/ui/elements/src/index.d.ts +1 -1
  130. package/libs/ui/elements/src/index.d.ts.map +1 -1
  131. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts +2 -2
  132. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
  133. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +7 -7
  134. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  135. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts +2 -2
  136. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +1 -1
  137. package/libs/ui/inputs/src/index.d.ts +3 -0
  138. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  139. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts +24 -0
  140. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts.map +1 -0
  141. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +1 -1
  142. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -1
  143. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts +0 -1
  144. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts.map +1 -1
  145. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
  146. package/libs/ui/layout/src/index.d.ts +2 -0
  147. package/libs/ui/layout/src/index.d.ts.map +1 -1
  148. package/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.d.ts +20 -0
  149. package/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.d.ts.map +1 -0
  150. package/libs/ui/layout/src/lib/sortable-list/sortable-list.component.d.ts +14 -0
  151. package/libs/ui/layout/src/lib/sortable-list/sortable-list.component.d.ts.map +1 -0
  152. package/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.d.ts +3 -3
  153. package/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.d.ts.map +1 -1
  154. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +2 -2
  155. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  156. package/libs/util/app-config/src/lib/fixtures.d.ts +8 -8
  157. package/libs/util/app-config/src/lib/fixtures.d.ts.map +1 -1
  158. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts +3 -3
  159. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
  160. package/libs/util/shared/src/lib/links/link-utils.d.ts +6 -6
  161. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  162. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts +2 -1
  163. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts.map +1 -1
  164. package/package.json +1 -1
  165. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +1 -1
  166. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +1 -1
  167. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +1 -1
  168. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +1 -1
  169. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +18 -16
  170. package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +4 -4
  171. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +12 -4
  172. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +14 -8
  173. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +4 -12
  174. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +13 -15
  175. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +48 -36
  176. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +47 -3
  177. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +7 -7
  178. package/src/libs/common/domain/src/lib/model/user/user.model.ts +1 -1
  179. package/src/libs/common/domain/src/lib/platform.service.interface.ts +26 -0
  180. package/src/libs/common/fixtures/src/index.ts +1 -1
  181. package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +37 -37
  182. package/src/libs/common/fixtures/src/lib/elasticsearch/{aggregations-request.ts → aggregations-request.fixtures.ts} +1 -3
  183. package/src/libs/common/fixtures/src/lib/elasticsearch/{aggregations-response.ts → aggregations-response.fixtures.ts} +6 -8
  184. package/src/libs/common/fixtures/src/lib/elasticsearch/{full-response.ts → full-response.fixtures.ts} +1 -3
  185. package/src/libs/common/fixtures/src/lib/elasticsearch/index.ts +5 -5
  186. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +1 -3
  187. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata.fixtures.ts +1739 -1742
  188. package/src/libs/common/fixtures/src/lib/elasticsearch/{search-requests.ts → search-requests.fixtures.ts} +1 -3
  189. package/src/libs/common/fixtures/src/lib/elasticsearch/{search-responses.ts → search-responses.fixtures.ts} +4 -6
  190. package/src/libs/common/fixtures/src/lib/geojson.fixtures.ts +57178 -57195
  191. package/src/libs/common/fixtures/src/lib/gn4/groups.fixtures.ts +2 -4
  192. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +233 -164
  193. package/src/libs/common/fixtures/src/lib/ol-feature.fixtures.ts +10 -0
  194. package/src/libs/common/fixtures/src/lib/organisations.fixture.ts +37 -3
  195. package/src/libs/common/fixtures/src/lib/record-link.fixtures.ts +9 -7
  196. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +9 -9
  197. package/src/libs/common/fixtures/src/lib/repository.fixtures.ts +4 -4
  198. package/src/libs/common/fixtures/src/lib/search/aggregations.ts +2 -3
  199. package/src/libs/common/fixtures/src/lib/user-feedbacks.fixtures.ts +14 -15
  200. package/src/libs/common/fixtures/src/lib/user.fixtures.ts +32 -15
  201. package/src/libs/data-access/gn4/src/fixtures/site.fixtures.ts +4 -4
  202. package/src/libs/data-access/gn4/src/fixtures/ui.fixtures.ts +2 -2
  203. package/src/libs/feature/catalog/src/lib/sources/sources.fixture.ts +1 -1
  204. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +3 -3
  205. package/src/libs/feature/dataviz/src/lib/figure/figure.fixtures.ts +2 -2
  206. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +6 -6
  207. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +4 -4
  208. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.html +9 -9
  209. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.html +35 -0
  210. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +79 -0
  211. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +14 -4
  212. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +5 -44
  213. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.html +33 -0
  214. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.ts +182 -0
  215. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +11 -5
  216. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +93 -4
  217. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +6 -1
  218. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +46 -1
  219. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.html +21 -2
  220. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.ts +35 -69
  221. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +8 -0
  222. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +8 -1
  223. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +1 -0
  224. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +2 -1
  225. package/src/libs/feature/editor/src/lib/fields.config.ts +32 -2
  226. package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +9 -0
  227. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.ts +7 -7
  228. package/src/libs/feature/map/src/lib/map-context/map-context.fixtures.ts +26 -22
  229. package/src/libs/feature/map/src/lib/style/map-style.fixtures.ts +29 -27
  230. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +3 -3
  231. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +2 -2
  232. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +2 -2
  233. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +5 -1
  234. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +1 -0
  235. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +10 -1
  236. package/src/libs/feature/search/src/lib/state/fixtures/search-state.fixtures.ts +2 -2
  237. package/src/libs/ui/dataviz/src/lib/chart/chart.fixtures.ts +2 -2
  238. package/src/libs/ui/dataviz/src/lib/table/table.fixtures.ts +2 -2
  239. package/src/libs/ui/elements/src/index.ts +1 -1
  240. package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +4 -4
  241. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +7 -7
  242. package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +3 -3
  243. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +5 -0
  244. package/src/libs/ui/inputs/src/index.ts +3 -0
  245. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.html +1 -1
  246. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.ts +2 -1
  247. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +1 -1
  248. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +2 -1
  249. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.html +0 -1
  250. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +1 -2
  251. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.html +1 -1
  252. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +1 -1
  253. package/src/libs/ui/layout/src/index.ts +2 -0
  254. package/src/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.html +15 -0
  255. package/src/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.ts +44 -0
  256. package/src/libs/ui/layout/src/lib/sortable-list/sortable-list.component.html +37 -0
  257. package/src/libs/ui/{elements → layout}/src/lib/sortable-list/sortable-list.component.ts +13 -16
  258. package/src/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.ts +7 -6
  259. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +9 -2
  260. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +5 -6
  261. package/src/libs/util/app-config/src/lib/fixtures.ts +9 -9
  262. package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +4 -3
  263. package/src/libs/util/shared/src/lib/links/link-utils.ts +6 -6
  264. package/src/libs/util/shared/src/lib/utils/bytes-convert.ts +4 -1
  265. package/tailwind.base.css +5 -0
  266. package/translations/de.json +15 -2
  267. package/translations/en.json +15 -2
  268. package/translations/es.json +13 -0
  269. package/translations/fr.json +16 -3
  270. package/translations/it.json +15 -2
  271. package/translations/nl.json +13 -0
  272. package/translations/pt.json +13 -0
  273. package/translations/sk.json +13 -0
  274. package/esm2022/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.mjs +0 -96
  275. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.mjs +0 -17
  276. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.mjs +0 -17
  277. package/esm2022/libs/ui/elements/src/lib/sortable-list/sortable-list.component.mjs +0 -39
  278. package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts +0 -27
  279. package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts.map +0 -1
  280. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.d.ts +0 -8
  281. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.d.ts.map +0 -1
  282. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.d.ts +0 -8
  283. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.d.ts.map +0 -1
  284. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts +0 -17
  285. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts.map +0 -1
  286. package/src/libs/common/fixtures/src/lib/ol-feature.fixture.ts +0 -7
  287. package/src/libs/common/fixtures/src/lib/utils/freeze.ts +0 -10
  288. package/src/libs/common/fixtures/src/lib/utils/index.ts +0 -1
  289. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +0 -9
  290. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +0 -113
  291. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.html +0 -7
  292. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.ts +0 -16
  293. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.html +0 -13
  294. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.ts +0 -16
  295. package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.html +0 -29
  296. /package/src/libs/feature/editor/src/lib/components/{overview-upload/overview-upload.component.css → online-resource-card/online-resource-card.component.css} +0 -0
  297. /package/src/libs/feature/editor/src/lib/components/record-form/form-field/{form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.css → form-field-online-link-resources/form-field-online-link-resources.component.css} +0 -0
  298. /package/src/libs/{feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.css → ui/layout/src/lib/modal-dialog/modal-dialog.component.css} +0 -0
  299. /package/src/libs/ui/{elements → layout}/src/lib/sortable-list/sortable-list.component.css +0 -0
@@ -4,6 +4,7 @@ import {
4
4
  EditorField,
5
5
  EditorSection,
6
6
  } from './models/editor-config.model'
7
+ import { Keyword } from '../../../../../libs/common/domain/src/lib/model/record'
7
8
 
8
9
  /**
9
10
  * This file contains the configuration of the fields that will be displayed in the editor.
@@ -104,6 +105,14 @@ export const RECORD_SPATIAL_EXTENTS_FIELD: EditorField = {
104
105
  },
105
106
  }
106
107
 
108
+ export const RECORD_ONLINE_LINK_RESOURCES: EditorField = {
109
+ model: 'onlineResources',
110
+ modelSpecifier: 'onlineResourceType:link',
111
+ formFieldConfig: {
112
+ labelKey: marker('editor.record.form.field.onlineLinkResources'),
113
+ },
114
+ }
115
+
107
116
  /************************************************************
108
117
  *************** SECTIONS *****************
109
118
  ************************************************************
@@ -149,7 +158,7 @@ export const ASSOCIATED_RESOURCES_SECTION: EditorSection = {
149
158
  export const ANNEXES_SECTION: EditorSection = {
150
159
  labelKey: marker('editor.record.form.section.annexes.label'),
151
160
  hidden: false,
152
- fields: [],
161
+ fields: [RECORD_ONLINE_LINK_RESOURCES],
153
162
  }
154
163
 
155
164
  export const CLASSIFICATION_SECTION: EditorSection = {
@@ -210,7 +219,7 @@ export const DEFAULT_CONFIGURATION: EditorConfig = {
210
219
  }
211
220
 
212
221
  /************************************************************
213
- *************** LICENSES *****************
222
+ *************** LICENSES **************
214
223
  ************************************************************
215
224
  */
216
225
  export const OPEN_DATA_LICENSES: string[] = [
@@ -220,3 +229,24 @@ export const OPEN_DATA_LICENSES: string[] = [
220
229
  'odc-by',
221
230
  'pddl',
222
231
  ]
232
+
233
+ export const MAX_UPLOAD_SIZE_MB = 10
234
+ /************************************************************
235
+ *************** SPATIAL SCOPE ************
236
+ ************************************************************
237
+ */
238
+
239
+ export const SPATIAL_SCOPES: Keyword[] = [
240
+ {
241
+ key: 'http://inspire.ec.europa.eu/metadata-codelist/SpatialScope/national',
242
+ label: 'National',
243
+ description: '',
244
+ type: 'theme',
245
+ },
246
+ {
247
+ key: 'http://inspire.ec.europa.eu/metadata-codelist/SpatialScope/regional',
248
+ label: 'Regional',
249
+ description: '',
250
+ type: 'theme',
251
+ },
252
+ ]
@@ -16,12 +16,21 @@ export interface FormFieldConfig {
16
16
  invalidHintKey?: string
17
17
  }
18
18
 
19
+ // Specifiers let us use specific components
20
+ // This is used for instance to target only certain online resources in a field
21
+ type OnlineLinkResourceSpecifier = `onlineResourceType:link`
22
+ type DatasetDistributionsSpecifier = `onlineResourceType:!link`
23
+ export type FieldModelSpecifier =
24
+ | OnlineLinkResourceSpecifier
25
+ | DatasetDistributionsSpecifier
26
+
19
27
  export interface EditorField {
20
28
  // configuration of the form field used as presentation
21
29
  formFieldConfig: FormFieldConfig
22
30
 
23
31
  // name of the target field in the record; will not change the record directly if not defined
24
32
  model?: CatalogRecordKeys
33
+ modelSpecifier?: FieldModelSpecifier
25
34
 
26
35
  // a hidden field won't show but can still be used to modify the record
27
36
  // FIXME: currently this is redundant with an absence of formFieldConfig but necessary for clarity
@@ -13,7 +13,7 @@ import {
13
13
  MapContextLayerTypeEnum,
14
14
  } from '../../map-context/map-context.model'
15
15
  import {
16
- DatasetDistribution,
16
+ DatasetOnlineResource,
17
17
  DatasetRecord,
18
18
  } from '../../../../../../../libs/common/domain/src/lib/model/record'
19
19
  import { ThumbnailComponent } from '../../../../../../../libs/ui/elements/src'
@@ -29,10 +29,10 @@ import { CommonModule } from '@angular/common'
29
29
  imports: [ThumbnailComponent, ButtonComponent, CommonModule],
30
30
  })
31
31
  export class AddLayerRecordPreviewComponent extends RecordPreviewComponent {
32
- get mapLinks(): DatasetDistribution[] {
33
- return (this.record as DatasetRecord).distributions.filter((link) =>
32
+ get mapLinks(): DatasetOnlineResource[] {
33
+ return (this.record as DatasetRecord).onlineResources.filter((link) =>
34
34
  this.linkClassifier.hasUsage(link, LinkUsage.MAP_API)
35
- ) as DatasetDistribution[]
35
+ ) as DatasetOnlineResource[]
36
36
  }
37
37
 
38
38
  constructor(
@@ -44,13 +44,13 @@ export class AddLayerRecordPreviewComponent extends RecordPreviewComponent {
44
44
  super(elementRef)
45
45
  }
46
46
 
47
- async handleLinkClick(link: DatasetDistribution) {
47
+ async handleLinkClick(link: DatasetOnlineResource) {
48
48
  const layer = await this.getLayerFromLink(link).toPromise()
49
49
  this.mapFacade.addLayer({ ...layer, title: this.record.title })
50
50
  }
51
51
 
52
52
  getLayerFromLink(
53
- link: DatasetDistribution
53
+ link: DatasetOnlineResource
54
54
  ): Observable<MapContextLayerModel> {
55
55
  if (link.type !== 'service')
56
56
  return throwError(
@@ -72,7 +72,7 @@ export class AddLayerRecordPreviewComponent extends RecordPreviewComponent {
72
72
  return throwError(() => 'protocol not supported')
73
73
  }
74
74
 
75
- getLinkLabel(link: DatasetDistribution) {
75
+ getLinkLabel(link: DatasetOnlineResource) {
76
76
  return getLinkLabel(link)
77
77
  }
78
78
  }
@@ -1,4 +1,4 @@
1
- import { FEATURE_COLLECTION_POLYGON_FIXTURE_4326 } from '../../../../../../libs/common/fixtures/src'
1
+ import { polygonFeatureCollectionFixture } from '../../../../../../libs/common/fixtures/src'
2
2
  import { Extent } from 'ol/extent'
3
3
  import {
4
4
  MapContextLayerGeojsonModel,
@@ -8,44 +8,48 @@ import {
8
8
  MapContextViewModel,
9
9
  } from '../map-context/map-context.model'
10
10
 
11
- export const MAP_CTX_LAYER_XYZ_FIXTURE: MapContextLayerModel = {
11
+ export const mapCtxLayerXyzFixture = (): MapContextLayerModel => ({
12
12
  type: MapContextLayerTypeEnum.XYZ,
13
13
  url: 'https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png',
14
- }
15
- export const MAP_CTX_LAYER_WMS_FIXTURE: MapContextLayerModel = {
14
+ })
15
+
16
+ export const mapCtxLayerWmsFixture = (): MapContextLayerModel => ({
16
17
  type: MapContextLayerTypeEnum.WMS,
17
18
  url: 'https://www.geograndest.fr/geoserver/region-grand-est/ows?REQUEST=GetCapabilities&SERVICE=WMS',
18
19
  name: 'commune_actuelle_3857',
19
- }
20
- export const MAP_CTX_LAYER_WFS_FIXTURE: MapContextLayerModel = {
20
+ })
21
+
22
+ export const mapCtxLayerWfsFixture = (): MapContextLayerModel => ({
21
23
  type: MapContextLayerTypeEnum.WFS,
22
24
  url: 'https://www.geograndest.fr/geoserver/region-grand-est/ows?REQUEST=GetCapabilities&SERVICE=WFS&VERSION=1.1.0',
23
25
  name: 'ms:commune_actuelle_3857',
24
- }
25
- export const MAP_CTX_LAYER_GEOJSON_FIXTURE: MapContextLayerGeojsonModel = {
26
+ })
27
+
28
+ export const mapCtxLayerGeojsonFixture = (): MapContextLayerGeojsonModel => ({
26
29
  type: MapContextLayerTypeEnum.GEOJSON,
27
- data: FEATURE_COLLECTION_POLYGON_FIXTURE_4326,
28
- }
29
- export const MAP_CTX_LAYER_GEOJSON_REMOTE_FIXTURE: MapContextLayerGeojsonModel =
30
- {
30
+ data: polygonFeatureCollectionFixture(),
31
+ })
32
+
33
+ export const mapCtxLayerGeojsonRemoteFixture =
34
+ (): MapContextLayerGeojsonModel => ({
31
35
  type: MapContextLayerTypeEnum.GEOJSON,
32
36
  url: 'https://my.host.com/data/regions.json',
33
- }
37
+ })
34
38
 
35
- export const MAP_CTX_VIEW_FIXTURE: MapContextViewModel = {
39
+ export const mapCtxViewFixture = (): MapContextViewModel => ({
36
40
  center: [7.75, 48.6],
37
41
  zoom: 9,
38
- }
42
+ })
39
43
 
40
- export const MAP_CTX_FIXTURE: MapContextModel = {
44
+ export const mapCtxFixture = (): MapContextModel => ({
41
45
  layers: [
42
- MAP_CTX_LAYER_XYZ_FIXTURE,
43
- MAP_CTX_LAYER_WMS_FIXTURE,
44
- MAP_CTX_LAYER_GEOJSON_FIXTURE,
46
+ mapCtxLayerXyzFixture(),
47
+ mapCtxLayerWmsFixture(),
48
+ mapCtxLayerGeojsonFixture(),
45
49
  ],
46
- view: MAP_CTX_VIEW_FIXTURE,
47
- }
50
+ view: mapCtxViewFixture(),
51
+ })
48
52
 
49
- export const MAP_CTX_EXTENT_FIXTURE: Extent = [
53
+ export const mapCtxExtentFixture = (): Extent => [
50
54
  171083.69713494915, 6246047.945419401, 476970.39956295764, 6631079.362882684,
51
55
  ]
@@ -4,42 +4,44 @@ const colorPrimary = 'blue'
4
4
  const colorSecondary = 'red'
5
5
  const colorStroke = 'white'
6
6
 
7
- export const DEFAULT_STYLE_FIXTURE = new Style({
8
- image: new Circle({
7
+ export const defaultMapStyleFixture = (): Style =>
8
+ new Style({
9
+ image: new Circle({
10
+ fill: new Fill({
11
+ color: colorPrimary,
12
+ }),
13
+ stroke: new Stroke({
14
+ color: colorStroke,
15
+ width: 2,
16
+ }),
17
+ radius: 5,
18
+ }),
9
19
  fill: new Fill({
10
- color: colorPrimary,
20
+ color: 'rgba(0,0,255,0.25)',
11
21
  }),
12
22
  stroke: new Stroke({
13
23
  color: colorStroke,
14
24
  width: 2,
15
25
  }),
16
- radius: 5,
17
- }),
18
- fill: new Fill({
19
- color: 'rgba(0,0,255,0.25)',
20
- }),
21
- stroke: new Stroke({
22
- color: colorStroke,
23
- width: 2,
24
- }),
25
- })
26
+ })
26
27
 
27
- export const DEFAULT_STYLE_HL_FIXTURE = new Style({
28
- image: new Circle({
28
+ export const defaultMapStyleHlFixture = (): Style =>
29
+ new Style({
30
+ image: new Circle({
31
+ fill: new Fill({
32
+ color: colorSecondary,
33
+ }),
34
+ stroke: new Stroke({
35
+ color: colorStroke,
36
+ width: 3,
37
+ }),
38
+ radius: 6,
39
+ }),
29
40
  fill: new Fill({
30
- color: colorSecondary,
41
+ color: 'rgba(255,0,0,0.25)',
31
42
  }),
32
43
  stroke: new Stroke({
33
- color: colorStroke,
44
+ color: colorSecondary,
34
45
  width: 3,
35
46
  }),
36
- radius: 6,
37
- }),
38
- fill: new Fill({
39
- color: 'rgba(255,0,0,0.25)',
40
- }),
41
- stroke: new Stroke({
42
- color: colorSecondary,
43
- width: 3,
44
- }),
45
- })
47
+ })
@@ -9,7 +9,7 @@ import { BehaviorSubject, combineLatest } from 'rxjs'
9
9
  import { map, tap } from 'rxjs/operators'
10
10
  import { MdViewFacade } from '../state'
11
11
  import { DatavizConfigurationModel } from '../../../../../../libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model'
12
- import { DatasetDistribution } from '../../../../../../libs/common/domain/src/lib/model/record'
12
+ import { DatasetOnlineResource } from '../../../../../../libs/common/domain/src/lib/model/record'
13
13
 
14
14
  @Component({
15
15
  selector: 'gn-ui-data-view',
@@ -43,7 +43,7 @@ export class DataViewComponent {
43
43
  }))
44
44
  )
45
45
  )
46
- selectedLink$ = new BehaviorSubject<DatasetDistribution>(null)
46
+ selectedLink$ = new BehaviorSubject<DatasetOnlineResource>(null)
47
47
 
48
48
  constructor(private mdViewFacade: MdViewFacade) {}
49
49
 
@@ -52,7 +52,7 @@ export class DataViewComponent {
52
52
  }
53
53
 
54
54
  selectLink(linkAsString: string) {
55
- const link: DatasetDistribution = JSON.parse(linkAsString)
55
+ const link: DatasetOnlineResource = JSON.parse(linkAsString)
56
56
  link.url = new URL(link.url)
57
57
  this.selectedLink$.next(link)
58
58
  }
@@ -1,6 +1,6 @@
1
1
  import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
2
2
  import { MapConfig } from '../../../../../../libs/util/app-config/src'
3
- import { DatasetDistribution } from '../../../../../../libs/common/domain/src/lib/model/record'
3
+ import { DatasetOnlineResource } from '../../../../../../libs/common/domain/src/lib/model/record'
4
4
  import { marker } from '@biesbjerg/ngx-translate-extract-marker'
5
5
  import { TranslateService } from '@ngx-translate/core'
6
6
  import { getFileFormat } from '../../../../../../libs/util/shared/src'
@@ -14,7 +14,7 @@ marker('externalviewer.dataset.unnamed')
14
14
  changeDetection: ChangeDetectionStrategy.OnPush,
15
15
  })
16
16
  export class ExternalViewerButtonComponent {
17
- @Input() link: DatasetDistribution
17
+ @Input() link: DatasetOnlineResource
18
18
  @Input() mapConfig: MapConfig
19
19
 
20
20
  get externalViewer() {
@@ -40,7 +40,7 @@ import {
40
40
  } from 'rxjs/operators'
41
41
  import { MdViewFacade } from '../state/mdview.facade'
42
42
  import { DataService } from '../../../../../../libs/feature/dataviz/src'
43
- import { DatasetDistribution } from '../../../../../../libs/common/domain/src/lib/model/record'
43
+ import { DatasetOnlineResource } from '../../../../../../libs/common/domain/src/lib/model/record'
44
44
 
45
45
  @Component({
46
46
  selector: 'gn-ui-map-view',
@@ -183,7 +183,7 @@ export class MapViewComponent implements OnInit, OnDestroy {
183
183
  }
184
184
 
185
185
  getLayerFromLink(
186
- link: DatasetDistribution
186
+ link: DatasetOnlineResource
187
187
  ): Observable<MapContextLayerModel> {
188
188
  if (link.type === 'service' && link.accessServiceProtocol === 'wms') {
189
189
  return of({
@@ -63,7 +63,11 @@ export class MdViewFacade {
63
63
  chartConfig$ = this.store.pipe(select(MdViewSelectors.getChartConfig))
64
64
 
65
65
  allLinks$ = this.metadata$.pipe(
66
- map((record) => ('distributions' in record ? record.distributions : []))
66
+ map((record) =>
67
+ record.kind === 'dataset' && 'onlineResources' in record
68
+ ? record.onlineResources
69
+ : []
70
+ )
67
71
  )
68
72
 
69
73
  apiLinks$ = this.allLinks$.pipe(
@@ -3,6 +3,7 @@
3
3
  [hasDraft]="hasDraft"
4
4
  [selectedRecordsIdentifiers]="selectedRecords$ | async"
5
5
  [sortOrder]="sortBy$ | async"
6
+ [isUnsavedDraft]="isUnsavedDraft"
6
7
  (recordClick)="handleRecordClick($event)"
7
8
  (duplicateRecord)="handleDuplicateRecord($event)"
8
9
  (deleteRecord)="handleDeleteRecord($event)"
@@ -1,4 +1,10 @@
1
- import { Component, EventEmitter, OnDestroy, Output } from '@angular/core'
1
+ import {
2
+ Component,
3
+ EventEmitter,
4
+ Input,
5
+ OnDestroy,
6
+ Output,
7
+ } from '@angular/core'
2
8
  import { CatalogRecord } from '../../../../../../libs/common/domain/src/lib/model/record'
3
9
  import { SearchFacade } from '../state/search.facade'
4
10
  import { SelectionService } from '../../../../../../libs/api/repository/src'
@@ -30,6 +36,9 @@ export class ResultsTableContainerComponent implements OnDestroy {
30
36
  hasDraft = (record: CatalogRecord): boolean =>
31
37
  this.recordsRepository.recordHasDraft(record.uniqueIdentifier)
32
38
 
39
+ isUnsavedDraft = (record: CatalogRecord): boolean =>
40
+ this.recordsRepository.isRecordNotYetSaved(record.uniqueIdentifier)
41
+
33
42
  constructor(
34
43
  private searchFacade: SearchFacade,
35
44
  private searchService: SearchService,
@@ -1,4 +1,4 @@
1
- export const SEARCH_STATE_FILTERS_FIXTURE = {
1
+ export const searchStateFiltersFixture = () => ({
2
2
  recursiveTerms: {
3
3
  resourceType: {
4
4
  service: {
@@ -26,4 +26,4 @@ export const SEARCH_STATE_FILTERS_FIXTURE = {
26
26
  availableInViewService: '+linkProtocol:/OGC:WMS.*/',
27
27
  },
28
28
  },
29
- }
29
+ })
@@ -1,4 +1,4 @@
1
- export const CHART_ITEM_FIXTURE = [
1
+ export const charItemFixture = () => [
2
2
  {
3
3
  name: 'name 1',
4
4
  id: 'id 1',
@@ -19,7 +19,7 @@ export const CHART_ITEM_FIXTURE = [
19
19
  },
20
20
  ]
21
21
 
22
- export const CHART_ITEM_FIXTURE_HAB = [
22
+ export const chartItemHabFixture = () => [
23
23
  {
24
24
  name: 'France',
25
25
  id: '1',
@@ -1,4 +1,4 @@
1
- export const TABLE_ITEM_FIXTURE = [
1
+ export const tableItemFixture = () => [
2
2
  {
3
3
  name: 'name 1',
4
4
  id: 'id 1',
@@ -16,7 +16,7 @@ export const TABLE_ITEM_FIXTURE = [
16
16
  },
17
17
  ]
18
18
 
19
- export const TABLE_ITEM_FIXTURE_HAB = [
19
+ export const someHabTableItemFixture = () => [
20
20
  {
21
21
  name: 'France',
22
22
  id: '1',
@@ -19,7 +19,7 @@ export * from './lib/pagination-buttons/pagination-buttons.component'
19
19
  export * from './lib/pagination/pagination.component'
20
20
  export * from './lib/record-api-form/record-api-form.component'
21
21
  export * from './lib/related-record-card/related-record-card.component'
22
- export * from './lib/sortable-list/sortable-list.component'
23
22
  export * from './lib/thumbnail/thumbnail.component'
24
23
  export * from './lib/ui-elements.module'
25
24
  export * from './lib/user-preview/user-preview.component'
25
+ export * from './lib/user-feedback-item/user-feedback-item.component'
@@ -1,11 +1,11 @@
1
1
  import {
2
- Component,
3
2
  ChangeDetectionStrategy,
3
+ Component,
4
+ EventEmitter,
4
5
  Input,
5
6
  Output,
6
- EventEmitter,
7
7
  } from '@angular/core'
8
- import { DatasetDistribution } from '../../../../../../libs/common/domain/src/lib/model/record'
8
+ import { DatasetOnlineResource } from '../../../../../../libs/common/domain/src/lib/model/record'
9
9
 
10
10
  @Component({
11
11
  selector: 'gn-ui-download-item',
@@ -14,7 +14,7 @@ import { DatasetDistribution } from '../../../../../../libs/common/domain/src/li
14
14
  changeDetection: ChangeDetectionStrategy.OnPush,
15
15
  })
16
16
  export class DownloadItemComponent {
17
- @Input() link: DatasetDistribution
17
+ @Input() link: DatasetOnlineResource
18
18
  @Input() color: string
19
19
  @Input() format: string
20
20
  @Input() isFromWfs: boolean
@@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
2
2
  import { TranslateService } from '@ngx-translate/core'
3
3
  import { marker } from '@biesbjerg/ngx-translate-extract-marker'
4
4
  import { getBadgeColor, getFileFormat } from '../../../../../../libs/util/shared/src'
5
- import { DatasetDistribution } from '../../../../../../libs/common/domain/src/lib/model/record'
5
+ import { DatasetOnlineResource } from '../../../../../../libs/common/domain/src/lib/model/record'
6
6
 
7
7
  marker('datahub.search.filter.all')
8
8
  marker('datahub.search.filter.others')
@@ -19,11 +19,11 @@ type FilterFormat = typeof FILTER_FORMATS[number]
19
19
  export class DownloadsListComponent {
20
20
  constructor(private translateService: TranslateService) {}
21
21
 
22
- @Input() links: DatasetDistribution[]
22
+ @Input() links: DatasetOnlineResource[]
23
23
 
24
24
  activeFilterFormats: FilterFormat[] = ['all']
25
25
 
26
- get filteredLinks(): DatasetDistribution[] {
26
+ get filteredLinks(): DatasetOnlineResource[] {
27
27
  return this.links.filter((link) =>
28
28
  this.activeFilterFormats.some((format) =>
29
29
  this.isLinkOfFormat(link, format)
@@ -68,7 +68,7 @@ export class DownloadsListComponent {
68
68
  return format
69
69
  }
70
70
 
71
- isLinkOfFormat(link: DatasetDistribution, format: FilterFormat): boolean {
71
+ isLinkOfFormat(link: DatasetOnlineResource, format: FilterFormat): boolean {
72
72
  if (format === 'all') {
73
73
  return true
74
74
  }
@@ -86,15 +86,15 @@ export class DownloadsListComponent {
86
86
  return getFileFormat(link).includes(format)
87
87
  }
88
88
 
89
- getLinkFormat(link: DatasetDistribution) {
89
+ getLinkFormat(link: DatasetOnlineResource) {
90
90
  return getFileFormat(link)
91
91
  }
92
92
 
93
- getLinkColor(link: DatasetDistribution) {
93
+ getLinkColor(link: DatasetOnlineResource) {
94
94
  return getBadgeColor(getFileFormat(link))
95
95
  }
96
96
 
97
- isFromWfs(link: DatasetDistribution) {
97
+ isFromWfs(link: DatasetOnlineResource) {
98
98
  return link.type === 'download' && link.accessServiceProtocol === 'wfs'
99
99
  }
100
100
  }
@@ -1,5 +1,5 @@
1
- import { Component, ChangeDetectionStrategy, Input } from '@angular/core'
2
- import { DatasetDistribution } from '../../../../../../libs/common/domain/src/lib/model/record'
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
2
+ import { DatasetOnlineResource } from '../../../../../../libs/common/domain/src/lib/model/record'
3
3
  import { MatIconModule } from '@angular/material/icon'
4
4
  import { CommonModule } from '@angular/common'
5
5
 
@@ -12,7 +12,7 @@ import { CommonModule } from '@angular/common'
12
12
  imports: [CommonModule, MatIconModule],
13
13
  })
14
14
  export class LinkCardComponent {
15
- @Input() link: DatasetDistribution
15
+ @Input() link: DatasetOnlineResource
16
16
  @Input() compact = false
17
17
 
18
18
  get title() {
@@ -29,6 +29,11 @@
29
29
  @apply text-title font-title font-bold;
30
30
  }
31
31
 
32
+ /** No margin for first child/heading, that cannot be detected by getBoundingClientRect() **/
33
+ :host ::ng-deep .markdown-body :first-child {
34
+ margin-top: 0;
35
+ }
36
+
32
37
  :host ::ng-deep .markdown-body h1 {
33
38
  margin: 0.67em 0;
34
39
  padding-bottom: 0.3em;
@@ -22,3 +22,6 @@ export * from './lib/ui-inputs.module'
22
22
  export * from './lib/viewport-intersector/viewport-intersector.component'
23
23
  export * from './lib/previous-next-buttons/previous-next-buttons.component'
24
24
  export * from './lib/switch-toggle/switch-toggle.component'
25
+ export * from './lib/file-input/file-input.component'
26
+ export * from './lib/image-input/image-input.component'
27
+ export * from './lib/url-input/url-input.component'
@@ -57,7 +57,7 @@
57
57
  ? 'font-bold text-primary cursor-pointer'
58
58
  : 'font-medium text-gray-500'
59
59
  "
60
- (click)="handleSecondaryTextClick()"
60
+ (click)="handleSecondaryTextClick($event)"
61
61
  >
62
62
  {{ getSecondaryText() | translate }}
63
63
  </p>
@@ -79,9 +79,10 @@ export class FileInputComponent {
79
79
  this.urlChange.emit(url)
80
80
  }
81
81
 
82
- handleSecondaryTextClick() {
82
+ handleSecondaryTextClick(event: Event) {
83
83
  if (this.uploadProgress) {
84
84
  this.handleCancel()
85
+ event.preventDefault()
85
86
  }
86
87
  }
87
88
 
@@ -112,7 +112,7 @@
112
112
  ? 'font-bold text-blue-500 cursor-pointer'
113
113
  : 'font-medium text-gray-500'
114
114
  "
115
- (click)="handleSecondaryTextClick()"
115
+ (click)="handleSecondaryTextClick($event)"
116
116
  >
117
117
  {{ getSecondaryText() | translate }}
118
118
  </p>
@@ -144,11 +144,12 @@ export class ImageInputComponent {
144
144
  }
145
145
  }
146
146
 
147
- handleSecondaryTextClick() {
147
+ handleSecondaryTextClick(event: Event) {
148
148
  if (this.uploadError) {
149
149
  this.handleRetry()
150
150
  } else if (this.uploadProgress) {
151
151
  this.handleCancel()
152
+ event.preventDefault()
152
153
  }
153
154
  }
154
155
 
@@ -6,7 +6,6 @@
6
6
  <mat-button-toggle
7
7
  *ngFor="let option of options"
8
8
  [aria-label]="option.label"
9
- [value]="option.value"
10
9
  [checked]="option.checked"
11
10
  (change)="onChange(option)"
12
11
  [class]="extraClasses"
@@ -10,7 +10,6 @@ import { MatButtonToggleModule } from '@angular/material/button-toggle'
10
10
 
11
11
  export type SwitchToggleOption = {
12
12
  label: string
13
- value: string
14
13
  checked: boolean
15
14
  }
16
15
 
@@ -30,7 +29,7 @@ export class SwitchToggleComponent {
30
29
 
31
30
  onChange(selectedOption: SwitchToggleOption) {
32
31
  this.options.find(
33
- (option) => option.value === selectedOption.value
32
+ (option) => option.label === selectedOption.label
34
33
  ).checked = true
35
34
 
36
35
  this.selectedValue.emit(selectedOption)
@@ -6,7 +6,7 @@
6
6
  [ngClass]="extraClass"
7
7
  [disabled]="disabled"
8
8
  [placeholder]="placeholder"
9
- [value]="value"
9
+ [value]="value ?? ''"
10
10
  (change)="handleChange($event)"
11
11
  (input)="handleChange($event)"
12
12
  [attr.required]="required || null"
@@ -20,7 +20,7 @@ export class TextAreaComponent implements AfterViewInit {
20
20
  @Input() value = ''
21
21
  @Input() disabled = false
22
22
  @Input() extraClass = ''
23
- @Input() placeholder: string
23
+ @Input() placeholder = ''
24
24
  @Input() required = false
25
25
 
26
26
  rawChange = new Subject<string>()