geonetwork-ui 2.4.0-dev.ac57b75b → 2.4.0-dev.c2a3cdd1

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 (527) hide show
  1. package/esm2022/libs/api/metadata-converter/src/index.mjs +2 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +10 -3
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.mjs +1 -1
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.mjs +5 -5
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +7 -4
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +10 -7
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +11 -16
  8. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +6 -6
  9. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +28 -33
  10. package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +22 -4
  11. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +78 -39
  12. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +11 -1
  13. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +51 -7
  14. package/esm2022/libs/common/domain/src/lib/model/record/contact.model.mjs +28 -1
  15. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  16. package/esm2022/libs/common/domain/src/lib/model/user/user.model.mjs +1 -1
  17. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  18. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  19. package/esm2022/libs/data-access/gn4/src/fixtures/site.fixtures.mjs +5 -5
  20. package/esm2022/libs/data-access/gn4/src/fixtures/ui.fixtures.mjs +3 -3
  21. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +1 -1
  22. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +1 -1
  23. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +1 -1
  24. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  25. package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +2 -1
  26. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +6 -1
  27. package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +4 -1
  28. package/esm2022/libs/feature/editor/src/lib/components/contact-card/contact-card.component.mjs +17 -0
  29. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +80 -0
  30. package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +93 -0
  31. package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +71 -0
  32. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +145 -0
  33. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.mjs +19 -0
  34. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +31 -40
  35. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +11 -9
  36. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +101 -0
  37. 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
  38. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.mjs +44 -0
  39. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +93 -11
  40. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +12 -16
  41. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.mjs +9 -8
  42. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +140 -5
  43. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.mjs +41 -69
  44. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +17 -15
  45. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +46 -55
  46. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -2
  47. package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +5 -4
  48. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +8 -8
  49. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +6 -4
  50. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +58 -7
  51. package/esm2022/libs/feature/editor/src/lib/models/editor-config.model.mjs +1 -1
  52. package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +5 -1
  53. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +6 -6
  54. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +7 -6
  55. package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +8 -5
  56. package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +6 -7
  57. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +8 -7
  58. package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +7 -6
  59. package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +7 -26
  60. package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +29 -13
  61. package/esm2022/libs/feature/map/src/lib/style/map-style.fixtures.mjs +3 -3
  62. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +1 -1
  63. package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +1 -1
  64. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +1 -1
  65. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +4 -2
  66. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +3 -3
  67. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +10 -4
  68. package/esm2022/libs/ui/dataviz/src/lib/table/table.fixtures.mjs +3 -3
  69. package/esm2022/libs/ui/elements/src/index.mjs +2 -2
  70. package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +2 -2
  71. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +1 -1
  72. package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +2 -2
  73. package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +6 -6
  74. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +2 -2
  75. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +5 -5
  76. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +7 -4
  77. package/esm2022/libs/ui/inputs/src/index.mjs +6 -1
  78. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +24 -7
  79. package/esm2022/libs/ui/inputs/src/lib/badge/badge.component.mjs +5 -3
  80. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +8 -1
  81. package/esm2022/libs/ui/inputs/src/lib/date-picker/date-picker.component.mjs +11 -4
  82. package/esm2022/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.mjs +9 -3
  83. package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +26 -24
  84. package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +87 -0
  85. package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +21 -23
  86. package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +32 -0
  87. package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +7 -21
  88. package/esm2022/libs/ui/inputs/src/lib/text-input/text-input.component.mjs +6 -17
  89. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +3 -7
  90. package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +43 -0
  91. package/esm2022/libs/ui/layout/src/index.mjs +3 -1
  92. package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +5 -3
  93. package/esm2022/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.mjs +29 -0
  94. package/esm2022/libs/ui/layout/src/lib/sortable-list/sortable-list.component.mjs +43 -0
  95. package/esm2022/libs/ui/map/src/lib/ui-map.module.mjs +3 -3
  96. package/esm2022/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.mjs +7 -7
  97. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +8 -8
  98. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +10 -10
  99. package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +1 -1
  100. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +1 -1
  101. package/esm2022/libs/util/shared/src/lib/services/theme.service.mjs +2 -1
  102. package/esm2022/libs/util/shared/src/lib/utils/bytes-convert.mjs +4 -1
  103. package/esm2022/translations/de.json +66 -2
  104. package/esm2022/translations/en.json +66 -2
  105. package/esm2022/translations/es.json +64 -0
  106. package/esm2022/translations/fr.json +69 -5
  107. package/esm2022/translations/it.json +66 -2
  108. package/esm2022/translations/nl.json +64 -0
  109. package/esm2022/translations/pt.json +64 -0
  110. package/fesm2022/geonetwork-ui.mjs +3093 -1619
  111. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  112. package/libs/api/metadata-converter/src/index.d.ts +1 -0
  113. package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
  114. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +3 -3
  115. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  116. package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts +2 -6
  117. package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts.map +1 -1
  118. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +2 -2
  119. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -1
  120. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts +1 -1
  121. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -1
  122. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
  123. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +4 -5
  124. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  125. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +7 -7
  126. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  127. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +6 -0
  128. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
  129. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +12 -7
  130. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  131. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
  132. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +22 -2
  133. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  134. package/libs/common/domain/src/lib/model/record/contact.model.d.ts +1 -0
  135. package/libs/common/domain/src/lib/model/record/contact.model.d.ts.map +1 -1
  136. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +7 -6
  137. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  138. package/libs/common/domain/src/lib/model/user/user.model.d.ts +1 -1
  139. package/libs/common/domain/src/lib/model/user/user.model.d.ts.map +1 -1
  140. package/libs/common/domain/src/lib/platform.service.interface.d.ts +16 -0
  141. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  142. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +7 -0
  143. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  144. package/libs/data-access/gn4/src/fixtures/site.fixtures.d.ts +2 -2
  145. package/libs/data-access/gn4/src/fixtures/site.fixtures.d.ts.map +1 -1
  146. package/libs/data-access/gn4/src/fixtures/ui.fixtures.d.ts +1 -1
  147. package/libs/data-access/gn4/src/fixtures/ui.fixtures.d.ts.map +1 -1
  148. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +2 -2
  149. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  150. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +6 -6
  151. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  152. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +3 -3
  153. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  154. package/libs/feature/editor/src/index.d.ts +1 -0
  155. package/libs/feature/editor/src/index.d.ts.map +1 -1
  156. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +1 -0
  157. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
  158. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +5 -0
  159. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
  160. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +1 -0
  161. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
  162. package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts +8 -0
  163. package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts.map +1 -0
  164. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts +33 -0
  165. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -0
  166. package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts +33 -0
  167. package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts.map +1 -0
  168. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts +15 -0
  169. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts.map +1 -0
  170. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts +41 -0
  171. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts.map +1 -0
  172. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.d.ts +9 -0
  173. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.d.ts.map +1 -0
  174. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts +11 -19
  175. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -1
  176. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts +6 -4
  177. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts.map +1 -1
  178. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts +22 -0
  179. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts.map +1 -0
  180. 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
  181. 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
  182. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts +15 -0
  183. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts.map +1 -0
  184. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +24 -4
  185. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -1
  186. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts +4 -6
  187. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -1
  188. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.d.ts +4 -3
  189. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.d.ts.map +1 -1
  190. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts +28 -0
  191. 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
  192. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts +10 -18
  193. 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
  194. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts +5 -5
  195. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts.map +1 -1
  196. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +18 -24
  197. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  198. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -1
  199. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  200. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts +5 -3
  201. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -1
  202. package/libs/feature/editor/src/lib/feature-editor.module.d.ts +2 -1
  203. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  204. package/libs/feature/editor/src/lib/fields.config.d.ts +15 -0
  205. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  206. package/libs/feature/editor/src/lib/models/editor-config.model.d.ts +6 -0
  207. package/libs/feature/editor/src/lib/models/editor-config.model.d.ts.map +1 -1
  208. package/libs/feature/editor/src/lib/services/editor.service.d.ts +1 -0
  209. package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
  210. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts +1 -1
  211. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts.map +1 -1
  212. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts +6 -6
  213. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts.map +1 -1
  214. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts +1 -1
  215. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -1
  216. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +1 -1
  217. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -1
  218. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts +1 -1
  219. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -1
  220. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts +1 -1
  221. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts.map +1 -1
  222. package/libs/feature/map/src/lib/feature-map.module.d.ts +16 -21
  223. package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
  224. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts +1 -1
  225. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
  226. package/libs/feature/map/src/lib/style/map-style.fixtures.d.ts +2 -2
  227. package/libs/feature/map/src/lib/style/map-style.fixtures.d.ts.map +1 -1
  228. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +3 -3
  229. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  230. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts +2 -2
  231. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
  232. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +2 -2
  233. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  234. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +7 -7
  235. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  236. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +1 -0
  237. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  238. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts +2 -2
  239. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts.map +1 -1
  240. package/libs/ui/elements/src/index.d.ts +1 -1
  241. package/libs/ui/elements/src/index.d.ts.map +1 -1
  242. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts +2 -2
  243. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
  244. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +7 -7
  245. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  246. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts +2 -2
  247. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +1 -1
  248. package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts +2 -2
  249. package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts.map +1 -1
  250. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
  251. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
  252. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  253. package/libs/ui/inputs/src/index.d.ts +5 -0
  254. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  255. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +9 -1
  256. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  257. package/libs/ui/inputs/src/lib/badge/badge.component.d.ts.map +1 -1
  258. package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
  259. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  260. package/libs/ui/inputs/src/lib/date-picker/date-picker.component.d.ts.map +1 -1
  261. package/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.d.ts.map +1 -1
  262. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts +5 -3
  263. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -1
  264. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts +24 -0
  265. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts.map +1 -0
  266. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +6 -9
  267. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -1
  268. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts +16 -0
  269. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts.map +1 -0
  270. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +0 -4
  271. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
  272. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts +2 -4
  273. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts.map +1 -1
  274. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +34 -35
  275. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  276. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +18 -0
  277. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -0
  278. package/libs/ui/layout/src/index.d.ts +2 -0
  279. package/libs/ui/layout/src/index.d.ts.map +1 -1
  280. package/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.d.ts +2 -2
  281. package/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.d.ts.map +1 -1
  282. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +1 -1
  283. package/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.d.ts +20 -0
  284. package/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.d.ts.map +1 -0
  285. package/libs/ui/layout/src/lib/sortable-list/sortable-list.component.d.ts +14 -0
  286. package/libs/ui/layout/src/lib/sortable-list/sortable-list.component.d.ts.map +1 -0
  287. package/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.d.ts +3 -3
  288. package/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.d.ts.map +1 -1
  289. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +3 -3
  290. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  291. package/libs/util/app-config/src/lib/fixtures.d.ts +8 -8
  292. package/libs/util/app-config/src/lib/fixtures.d.ts.map +1 -1
  293. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts +3 -3
  294. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
  295. package/libs/util/shared/src/lib/links/link-utils.d.ts +6 -6
  296. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  297. package/libs/util/shared/src/lib/services/theme.service.d.ts.map +1 -1
  298. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts +2 -1
  299. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts.map +1 -1
  300. package/package.json +1 -1
  301. package/src/libs/api/metadata-converter/src/index.ts +1 -0
  302. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +7 -2
  303. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +1 -1
  304. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +1 -1
  305. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +1 -1
  306. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +18 -16
  307. package/src/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.ts +2 -6
  308. package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +4 -4
  309. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +12 -4
  310. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +14 -8
  311. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +8 -15
  312. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +13 -15
  313. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +48 -63
  314. package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +25 -6
  315. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +132 -68
  316. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +12 -1
  317. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +90 -15
  318. package/src/libs/common/domain/src/lib/model/record/contact.model.ts +28 -0
  319. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +8 -7
  320. package/src/libs/common/domain/src/lib/model/user/user.model.ts +1 -1
  321. package/src/libs/common/domain/src/lib/platform.service.interface.ts +30 -0
  322. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +10 -0
  323. package/src/libs/common/fixtures/src/index.ts +1 -1
  324. package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +37 -37
  325. package/src/libs/common/fixtures/src/lib/elasticsearch/{aggregations-request.ts → aggregations-request.fixtures.ts} +1 -3
  326. package/src/libs/common/fixtures/src/lib/elasticsearch/{aggregations-response.ts → aggregations-response.fixtures.ts} +6 -8
  327. package/src/libs/common/fixtures/src/lib/elasticsearch/{full-response.ts → full-response.fixtures.ts} +1 -3
  328. package/src/libs/common/fixtures/src/lib/elasticsearch/index.ts +5 -5
  329. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +1 -3
  330. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata.fixtures.ts +1739 -1742
  331. package/src/libs/common/fixtures/src/lib/elasticsearch/{search-requests.ts → search-requests.fixtures.ts} +1 -3
  332. package/src/libs/common/fixtures/src/lib/elasticsearch/{search-responses.ts → search-responses.fixtures.ts} +4 -6
  333. package/src/libs/common/fixtures/src/lib/geojson.fixtures.ts +57178 -57195
  334. package/src/libs/common/fixtures/src/lib/gn4/groups.fixtures.ts +2 -4
  335. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +233 -164
  336. package/src/libs/common/fixtures/src/lib/ol-feature.fixtures.ts +10 -0
  337. package/src/libs/common/fixtures/src/lib/organisations.fixture.ts +37 -3
  338. package/src/libs/common/fixtures/src/lib/record-link.fixtures.ts +9 -7
  339. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +9 -9
  340. package/src/libs/common/fixtures/src/lib/repository.fixtures.ts +4 -4
  341. package/src/libs/common/fixtures/src/lib/search/aggregations.ts +2 -3
  342. package/src/libs/common/fixtures/src/lib/user-feedbacks.fixtures.ts +14 -15
  343. package/src/libs/common/fixtures/src/lib/user.fixtures.ts +32 -15
  344. package/src/libs/data-access/gn4/src/fixtures/site.fixtures.ts +4 -4
  345. package/src/libs/data-access/gn4/src/fixtures/ui.fixtures.ts +2 -2
  346. package/src/libs/feature/catalog/src/lib/sources/sources.fixture.ts +1 -1
  347. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +3 -3
  348. package/src/libs/feature/dataviz/src/lib/figure/figure.fixtures.ts +2 -2
  349. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +6 -6
  350. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +4 -4
  351. package/src/libs/feature/editor/src/index.ts +1 -0
  352. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +2 -0
  353. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +15 -0
  354. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +4 -0
  355. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.html +15 -0
  356. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.ts +18 -0
  357. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.html +26 -0
  358. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +90 -0
  359. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.html +43 -0
  360. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +129 -0
  361. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.html +35 -0
  362. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +79 -0
  363. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.css +4 -0
  364. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +66 -0
  365. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +211 -0
  366. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.css +0 -0
  367. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.html +4 -0
  368. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.ts +21 -0
  369. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.html +7 -16
  370. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +44 -45
  371. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.css +8 -0
  372. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.ts +13 -5
  373. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.css +0 -0
  374. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +4 -0
  375. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.ts +128 -0
  376. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.css +0 -0
  377. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.html +34 -0
  378. 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
  379. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.css +0 -0
  380. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.html +6 -0
  381. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.ts +48 -0
  382. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +11 -5
  383. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +107 -7
  384. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.html +15 -8
  385. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +11 -14
  386. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.html +5 -3
  387. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.ts +11 -4
  388. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +20 -1
  389. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +212 -1
  390. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.css +4 -0
  391. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.html +31 -4
  392. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.ts +43 -87
  393. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.css +4 -0
  394. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.html +16 -14
  395. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +17 -15
  396. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +110 -74
  397. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +50 -55
  398. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -1
  399. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +32 -29
  400. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +9 -4
  401. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +1 -1
  402. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +2 -1
  403. package/src/libs/feature/editor/src/lib/fields.config.ts +64 -6
  404. package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +12 -0
  405. package/src/libs/feature/editor/src/lib/services/editor.service.ts +7 -0
  406. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.ts +3 -0
  407. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.ts +12 -8
  408. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +5 -0
  409. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.html +1 -1
  410. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +10 -7
  411. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.html +1 -1
  412. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +5 -0
  413. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.html +1 -1
  414. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.ts +6 -1
  415. package/src/libs/feature/map/src/lib/feature-map.module.ts +2 -15
  416. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +24 -1
  417. package/src/libs/feature/map/src/lib/map-context/map-context.fixtures.ts +26 -22
  418. package/src/libs/feature/map/src/lib/style/map-style.fixtures.ts +29 -27
  419. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +3 -3
  420. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +2 -2
  421. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +2 -2
  422. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +5 -1
  423. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +2 -1
  424. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +1 -0
  425. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +22 -1
  426. package/src/libs/feature/search/src/lib/state/fixtures/search-state.fixtures.ts +2 -2
  427. package/src/libs/ui/dataviz/src/lib/chart/chart.fixtures.ts +2 -2
  428. package/src/libs/ui/dataviz/src/lib/table/table.fixtures.ts +2 -2
  429. package/src/libs/ui/elements/src/index.ts +1 -1
  430. package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +4 -4
  431. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +7 -7
  432. package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +3 -3
  433. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +13 -20
  434. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +1 -1
  435. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +5 -0
  436. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +2 -2
  437. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +6 -1
  438. package/src/libs/ui/inputs/src/index.ts +5 -0
  439. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.css +25 -18
  440. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +38 -24
  441. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +19 -4
  442. package/src/libs/ui/inputs/src/lib/badge/badge.component.html +12 -3
  443. package/src/libs/ui/inputs/src/lib/badge/badge.component.ts +2 -1
  444. package/src/libs/ui/inputs/src/lib/button/button.component.ts +15 -1
  445. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.css +7 -2
  446. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.html +14 -6
  447. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.ts +7 -1
  448. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.css +7 -2
  449. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.html +28 -23
  450. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.ts +7 -1
  451. package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +40 -26
  452. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.css +4 -0
  453. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.html +89 -0
  454. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.ts +92 -0
  455. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.css +4 -0
  456. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +76 -68
  457. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +19 -21
  458. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.css +4 -3
  459. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.html +0 -1
  460. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +1 -2
  461. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.html +3 -2
  462. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +3 -28
  463. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.html +4 -3
  464. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.ts +4 -16
  465. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -3
  466. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.css +9 -0
  467. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.html +37 -0
  468. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +33 -0
  469. package/src/libs/ui/layout/src/index.ts +2 -0
  470. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.html +8 -3
  471. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.ts +4 -3
  472. package/src/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.css +0 -0
  473. package/src/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.html +15 -0
  474. package/src/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.ts +44 -0
  475. package/src/libs/ui/layout/src/lib/sortable-list/sortable-list.component.html +37 -0
  476. package/src/libs/ui/{elements → layout}/src/lib/sortable-list/sortable-list.component.ts +11 -18
  477. package/src/libs/ui/map/src/lib/ui-map.module.ts +1 -1
  478. package/src/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.ts +7 -6
  479. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +9 -2
  480. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +5 -6
  481. package/src/libs/util/app-config/src/lib/fixtures.ts +9 -9
  482. package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +4 -3
  483. package/src/libs/util/shared/src/lib/links/link-utils.ts +6 -6
  484. package/src/libs/util/shared/src/lib/services/theme.service.ts +1 -0
  485. package/src/libs/util/shared/src/lib/utils/bytes-convert.ts +4 -1
  486. package/tailwind.base.config.js +1 -0
  487. package/tailwind.base.css +49 -6
  488. package/translations/de.json +66 -2
  489. package/translations/en.json +66 -2
  490. package/translations/es.json +64 -0
  491. package/translations/fr.json +69 -5
  492. package/translations/it.json +66 -2
  493. package/translations/nl.json +64 -0
  494. package/translations/pt.json +64 -0
  495. package/translations/sk.json +64 -0
  496. package/esm2022/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.mjs +0 -138
  497. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.mjs +0 -15
  498. 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
  499. 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
  500. package/esm2022/libs/ui/elements/src/lib/sortable-list/sortable-list.component.mjs +0 -46
  501. package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts +0 -27
  502. package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts.map +0 -1
  503. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts +0 -8
  504. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts.map +0 -1
  505. 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
  506. 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
  507. 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
  508. 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
  509. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts +0 -23
  510. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts.map +0 -1
  511. package/src/libs/common/fixtures/src/lib/ol-feature.fixture.ts +0 -7
  512. package/src/libs/common/fixtures/src/lib/utils/freeze.ts +0 -10
  513. package/src/libs/common/fixtures/src/lib/utils/index.ts +0 -1
  514. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +0 -10
  515. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +0 -166
  516. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.html +0 -4
  517. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.ts +0 -15
  518. 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
  519. 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
  520. 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
  521. 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
  522. package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.html +0 -38
  523. /package/src/libs/feature/editor/src/lib/components/{overview-upload/overview-upload.component.css → contact-card/contact-card.component.css} +0 -0
  524. /package/src/libs/feature/editor/src/lib/components/{record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.css → generic-keywords/generic-keywords.component.css} +0 -0
  525. /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 → import-record/import-record.component.css} +0 -0
  526. /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 → online-resource-card/online-resource-card.component.css} +0 -0
  527. /package/src/libs/ui/{elements → layout}/src/lib/sortable-list/sortable-list.component.css +0 -0
@@ -68,7 +68,7 @@ Toutes ces données sont reprises dans BDR.`,
68
68
  resourceCreated: new Date('2002-01-01'),
69
69
  resourceUpdated: new Date('2022-06-16'),
70
70
  resourcePublished: new Date('2022-06-16'),
71
- distributions: [
71
+ onlineResources: [
72
72
  {
73
73
  description:
74
74
  "Application de consultation des routes et autoroutes de Wallonie. Cette application est sécurisée et n'est accessible que pour les agents de la DGO1 du SPW.",
@@ -20,12 +20,9 @@ import { getUpdateFrequencyFromFrequencyCode } from '../iso19139/utils/update-fr
20
20
  import {
21
21
  CatalogRecord,
22
22
  Constraint,
23
- DatasetDistribution,
24
- DatasetDistributionType,
25
- DatasetDownloadDistribution,
26
- DatasetServiceDistribution,
27
23
  DatasetSpatialExtent,
28
- OnlineLinkResource,
24
+ OnlineResource,
25
+ OnlineResourceType,
29
26
  } from '../../../../../../libs/common/domain/src/lib/model/record'
30
27
  import { matchProtocol } from '../common/distribution.mapper'
31
28
  import { Thesaurus } from './types'
@@ -158,13 +155,13 @@ export class Gn4FieldMapper {
158
155
  const rawLinks = getAsArray(
159
156
  selectField<SourceWithUnknownProps[]>(source, 'link')
160
157
  )
161
- const distributions = rawLinks
158
+ const onlineResources = rawLinks
162
159
  .map((link) => this.mapLink(link))
163
160
  .filter((v) => v !== null)
164
161
  return {
165
162
  ...output,
166
- distributions,
167
- }
163
+ onlineResources,
164
+ } as CatalogRecord
168
165
  },
169
166
  contact: (output, source) => ({
170
167
  ...output,
@@ -287,7 +284,7 @@ export class Gn4FieldMapper {
287
284
  return {
288
285
  ...output,
289
286
  kind,
290
- }
287
+ } as CatalogRecord
291
288
  },
292
289
  geom: (output, source) => {
293
290
  const geoms = getAsArray(selectField(source, 'geom'))
@@ -387,7 +384,7 @@ export class Gn4FieldMapper {
387
384
  return fieldName in this.fields ? this.fields[fieldName] : this.genericField
388
385
  }
389
386
 
390
- getLinkType(url: string, protocol?: string): DatasetDistributionType {
387
+ getLinkType(url: string, protocol?: string): OnlineResourceType {
391
388
  if (!protocol) {
392
389
  return 'link'
393
390
  }
@@ -406,9 +403,7 @@ export class Gn4FieldMapper {
406
403
  return 'link'
407
404
  }
408
405
 
409
- mapLink = (
410
- sourceLink: SourceWithUnknownProps
411
- ): DatasetDistribution | null => {
406
+ mapLink = (sourceLink: SourceWithUnknownProps): OnlineResource | null => {
412
407
  const url = getAsUrl(
413
408
  selectFallback(
414
409
  selectTranslatedField<string>(sourceLink, 'urlObject', this.lang3),
@@ -452,20 +447,27 @@ export class Gn4FieldMapper {
452
447
  type,
453
448
  url: url,
454
449
  accessServiceProtocol,
455
- } as DatasetServiceDistribution
450
+ }
456
451
  case 'link':
457
452
  return {
458
453
  ...distribution,
459
454
  type,
460
455
  url: url,
461
- } as OnlineLinkResource
456
+ }
462
457
  case 'download':
463
458
  return {
464
459
  ...distribution,
465
460
  type,
466
461
  url: url,
467
462
  ...(mimeType && { mimeType }),
468
- } as DatasetDownloadDistribution
463
+ }
464
+ case 'endpoint':
465
+ return {
466
+ ...distribution,
467
+ type,
468
+ endpointUrl: url,
469
+ protocol: accessServiceProtocol,
470
+ }
469
471
  }
470
472
  }
471
473
 
@@ -1,10 +1,6 @@
1
1
  export interface KeywordApiResponse {
2
- values?: {
3
- eng: string
4
- }
5
- definitions?: {
6
- eng: string
7
- }
2
+ values?: Record<string, string>
3
+ definitions?: Record<string, string>
8
4
  coordEast?: string
9
5
  coordWest?: string
10
6
  coordSouth?: string
@@ -4,10 +4,10 @@ import { Iso19139Converter } from '../iso19139'
4
4
  import { renameElements } from '../xml-utils'
5
5
  import {
6
6
  readContacts,
7
- readDistributions,
8
7
  readKind,
9
8
  readLandingPage,
10
9
  readLineage,
10
+ readOnlineResources,
11
11
  readOwnerOrganization,
12
12
  readRecordCreated,
13
13
  readRecordPublished,
@@ -18,10 +18,10 @@ import {
18
18
  import {
19
19
  writeContacts,
20
20
  writeContactsForResource,
21
- writeDistributions,
22
21
  writeKind,
23
22
  writeLandingPage,
24
23
  writeLineage,
24
+ writeOnlineResources,
25
25
  writeOwnerOrganization,
26
26
  writeRecordCreated,
27
27
  writeRecordPublished,
@@ -48,7 +48,7 @@ export class Iso191153Converter extends Iso19139Converter {
48
48
  this.readers['ownerOrganization'] = readOwnerOrganization
49
49
  this.readers['landingPage'] = readLandingPage
50
50
  this.readers['lineage'] = readLineage
51
- this.readers['distributions'] = readDistributions
51
+ this.readers['onlineResources'] = readOnlineResources
52
52
 
53
53
  this.writers['uniqueIdentifier'] = writeUniqueIdentifier
54
54
  this.writers['kind'] = writeKind
@@ -63,7 +63,7 @@ export class Iso191153Converter extends Iso19139Converter {
63
63
  this.writers['ownerOrganization'] = writeOwnerOrganization
64
64
  this.writers['landingPage'] = writeLandingPage
65
65
  this.writers['lineage'] = writeLineage
66
- this.writers['distributions'] = writeDistributions
66
+ this.writers['onlineResources'] = writeOnlineResources
67
67
  this.writers['status'] = writeStatus
68
68
  this.writers['spatialRepresentation'] = writeSpatialRepresentation
69
69
  }
@@ -19,15 +19,16 @@ import {
19
19
  } from '../function-utils'
20
20
  import {
21
21
  extractCharacterString,
22
- extractDatasetDistributions,
22
+ extractDatasetOnlineResources,
23
23
  extractDateTime,
24
24
  extractRole,
25
+ extractServiceOnlineResources,
25
26
  extractUrl,
26
27
  findIdentification,
27
28
  } from '../iso19139/read-parts'
28
29
  import {
29
- DatasetDistribution,
30
30
  Individual,
31
+ OnlineResource,
31
32
  Organization,
32
33
  RecordKind,
33
34
  Role,
@@ -320,10 +321,17 @@ const getMimeType = pipe(
320
321
  map(matchMimeType)
321
322
  )
322
323
 
323
- export function readDistributions(rootEl: XmlElement): DatasetDistribution[] {
324
+ export function readOnlineResources(rootEl: XmlElement): OnlineResource[] {
325
+ if (readKind(rootEl) === 'dataset') {
326
+ return pipe(
327
+ findNestedElements('mrd:distributionInfo', 'mrd:MD_Distribution'),
328
+ mapArray(extractDatasetOnlineResources(getMimeType)),
329
+ flattenArray()
330
+ )(rootEl)
331
+ }
324
332
  return pipe(
325
333
  findNestedElements('mrd:distributionInfo', 'mrd:MD_Distribution'),
326
- mapArray(extractDatasetDistributions(getMimeType)),
334
+ mapArray(extractServiceOnlineResources()),
327
335
  flattenArray()
328
336
  )(rootEl)
329
337
  }
@@ -2,7 +2,6 @@ import {
2
2
  CatalogRecord,
3
3
  DatasetRecord,
4
4
  Individual,
5
- ServiceOnlineResource,
6
5
  } from '../../../../../../libs/common/domain/src/lib/model/record'
7
6
  import {
8
7
  addAttribute,
@@ -34,14 +33,14 @@ import {
34
33
  pipe,
35
34
  } from '../function-utils'
36
35
  import {
37
- appendDistribution,
38
36
  appendKeywords,
37
+ appendOnlineResource,
38
+ appendServiceOnlineResources,
39
39
  createDistributionInfo,
40
40
  findOrCreateDistribution,
41
41
  findOrCreateIdentification,
42
42
  getProgressCode,
43
43
  getRoleCode,
44
- getServiceEndpointProtocol,
45
44
  removeKeywords,
46
45
  writeCharacterString,
47
46
  writeDateTime,
@@ -481,7 +480,7 @@ function removeTransferOptions(rootEl: XmlElement) {
481
480
  )(rootEl)
482
481
  }
483
482
 
484
- function appendDistributionFormat(mimeType: string) {
483
+ function appendOnlineResourceFormat(mimeType: string) {
485
484
  return appendChildren(
486
485
  pipe(
487
486
  createElement('mrd:distributionFormat'),
@@ -494,11 +493,18 @@ function appendDistributionFormat(mimeType: string) {
494
493
  )
495
494
  }
496
495
 
497
- export function writeDistributions(record: DatasetRecord, rootEl: XmlElement) {
496
+ export function writeOnlineResources(
497
+ record: CatalogRecord,
498
+ rootEl: XmlElement
499
+ ) {
498
500
  removeTransferOptions(rootEl)
499
501
 
500
- // for each distribution, either find an existing distribution info or create a new one
501
- record.distributions.forEach((distribution, index) => {
502
+ if (record.kind === 'service') {
503
+ appendServiceOnlineResources(record, rootEl)
504
+ }
505
+
506
+ // for each online resource, either find an existing distribution info or create a new one
507
+ record.onlineResources.forEach((onlineResource, index) => {
502
508
  pipe(
503
509
  fallback(
504
510
  pipe(
@@ -507,7 +513,7 @@ export function writeDistributions(record: DatasetRecord, rootEl: XmlElement) {
507
513
  ),
508
514
  appendChildTree(createDistributionInfo())
509
515
  ),
510
- appendDistribution(distribution, appendDistributionFormat)
516
+ appendOnlineResource(onlineResource, appendOnlineResourceFormat)
511
517
  )(rootEl)
512
518
  })
513
519
  }
@@ -18,7 +18,6 @@ import {
18
18
  readAbstract,
19
19
  readContacts,
20
20
  readContactsForResource,
21
- readDistributions,
22
21
  readIsoTopics,
23
22
  readKeywords,
24
23
  readKind,
@@ -46,7 +45,6 @@ import {
46
45
  writeAbstract,
47
46
  writeContacts,
48
47
  writeContactsForResource,
49
- writeDistributions,
50
48
  writeGraphicOverviews,
51
49
  writeKeywords,
52
50
  writeKind,
@@ -55,7 +53,6 @@ import {
55
53
  writeLineage,
56
54
  writeOnlineResources,
57
55
  writeOtherConstraints,
58
- writeOwnerOrganization,
59
56
  writeRecordUpdated,
60
57
  writeResourceCreated,
61
58
  writeResourcePublished,
@@ -100,7 +97,6 @@ export class Iso19139Converter extends BaseConverter<string> {
100
97
  spatialRepresentation: readSpatialRepresentation,
101
98
  overviews: readOverviews,
102
99
  lineage: readLineage,
103
- distributions: readDistributions,
104
100
  onlineResources: readOnlineResources,
105
101
  temporalExtents: readTemporalExtents,
106
102
  spatialExtents: readSpatialExtents,
@@ -116,7 +112,7 @@ export class Iso19139Converter extends BaseConverter<string> {
116
112
  > = {
117
113
  uniqueIdentifier: writeUniqueIdentifier,
118
114
  kind: writeKind,
119
- ownerOrganization: writeOwnerOrganization,
115
+ ownerOrganization: () => undefined, // fixme: find a way to store this value properly
120
116
  recordUpdated: writeRecordUpdated,
121
117
  recordCreated: () => undefined, // not supported in ISO19139
122
118
  recordPublished: () => undefined, // not supported in ISO19139
@@ -138,10 +134,9 @@ export class Iso19139Converter extends BaseConverter<string> {
138
134
  spatialRepresentation: writeSpatialRepresentation,
139
135
  overviews: writeGraphicOverviews,
140
136
  lineage: writeLineage,
141
- distributions: writeDistributions,
142
137
  onlineResources: writeOnlineResources,
143
138
  temporalExtents: writeTemporalExtents,
144
- spatialExtents: () => writeSpatialExtents,
139
+ spatialExtents: writeSpatialExtents,
145
140
  // TODO
146
141
  extras: () => undefined,
147
142
  landingPage: () => undefined,
@@ -177,6 +172,7 @@ export class Iso19139Converter extends BaseConverter<string> {
177
172
  const licenses = this.readers['licenses'](rootEl)
178
173
  const overviews = this.readers['overviews'](rootEl)
179
174
  const landingPage = this.readers['landingPage'](rootEl)
175
+ const onlineResources = this.readers['onlineResources'](rootEl)
180
176
 
181
177
  if (kind === 'dataset') {
182
178
  const status = this.readers['status'](rootEl)
@@ -185,7 +181,6 @@ export class Iso19139Converter extends BaseConverter<string> {
185
181
  const spatialExtents = this.readers['spatialExtents'](rootEl)
186
182
  const temporalExtents = this.readers['temporalExtents'](rootEl)
187
183
  const lineage = this.readers['lineage'](rootEl)
188
- const distributions = this.readers['distributions'](rootEl)
189
184
  const updateFrequency = this.readers['updateFrequency'](rootEl)
190
185
 
191
186
  return {
@@ -215,12 +210,11 @@ export class Iso19139Converter extends BaseConverter<string> {
215
210
  overviews,
216
211
  spatialExtents,
217
212
  temporalExtents,
218
- distributions,
213
+ onlineResources,
219
214
  updateFrequency,
220
215
  ...(landingPage && { landingPage }),
221
216
  } as DatasetRecord
222
217
  } else {
223
- const onlineResources = this.readers['onlineResources'](rootEl)
224
218
  return {
225
219
  uniqueIdentifier,
226
220
  kind,
@@ -307,6 +301,8 @@ export class Iso19139Converter extends BaseConverter<string> {
307
301
  fieldChanged('licenses') && this.writers['licenses'](record, rootEl)
308
302
  fieldChanged('otherConstraints') &&
309
303
  this.writers['otherConstraints'](record, rootEl)
304
+ fieldChanged('onlineResources') &&
305
+ this.writers['onlineResources'](record, rootEl)
310
306
 
311
307
  if (record.kind === 'dataset') {
312
308
  fieldChanged('status') && this.writers['status'](record, rootEl)
@@ -317,12 +313,9 @@ export class Iso19139Converter extends BaseConverter<string> {
317
313
  fieldChanged('overviews') && this.writers['overviews'](record, rootEl)
318
314
  fieldChanged('temporalExtents') &&
319
315
  this.writers['temporalExtents'](record, rootEl)
320
- fieldChanged('distributions') &&
321
- this.writers['distributions'](record, rootEl)
316
+ fieldChanged('spatialExtents') &&
317
+ this.writers['spatialExtents'](record, rootEl)
322
318
  fieldChanged('lineage') && this.writers['lineage'](record, rootEl)
323
- } else {
324
- fieldChanged('onlineResources') &&
325
- this.writers['onlineResources'](record, rootEl)
326
319
  }
327
320
 
328
321
  this.beforeDocumentCreation(rootEl)
@@ -1,9 +1,10 @@
1
1
  import {
2
2
  Constraint,
3
- DatasetDistribution,
3
+ DatasetOnlineResource,
4
4
  GraphicOverview,
5
5
  Individual,
6
6
  Keyword,
7
+ OnlineResource,
7
8
  Organization,
8
9
  RecordKind,
9
10
  RecordStatus,
@@ -326,12 +327,12 @@ const getMimeType = pipe(
326
327
  )
327
328
 
328
329
  /**
329
- * Extract distributions from a MD_Distribution element
330
+ * Extract online resources from an MD_Distribution element
330
331
  * @param getMimeTypeFn This function starts from a gmd:transferOptions element
331
332
  */
332
- export function extractDatasetDistributions(
333
+ export function extractDatasetOnlineResources(
333
334
  getMimeTypeFn: ChainableFunction<XmlElement, string>
334
- ): ChainableFunction<XmlElement, DatasetDistribution[]> {
335
+ ): ChainableFunction<XmlElement, DatasetOnlineResource[]> {
335
336
  const getUrl = pipe(findChildElement('gmd:linkage'), extractMandatoryUrl())
336
337
  const getProtocolStr = pipe(
337
338
  findChildElement('gmd:protocol'),
@@ -774,14 +775,6 @@ export function readLineage(rootEl: XmlElement): string {
774
775
  )(rootEl)
775
776
  }
776
777
 
777
- export function readDistributions(rootEl: XmlElement): DatasetDistribution[] {
778
- return pipe(
779
- findNestedElements('gmd:distributionInfo', 'gmd:MD_Distribution'),
780
- mapArray(extractDatasetDistributions(getMimeType)),
781
- flattenArray()
782
- )(rootEl)
783
- }
784
-
785
778
  export function readUpdateFrequency(rootEl: XmlElement): UpdateFrequency {
786
779
  return pipe(
787
780
  findIdentification(),
@@ -845,9 +838,14 @@ export function extractServiceOnlineResources(): ChainableFunction<
845
838
  )
846
839
  }
847
840
 
848
- export function readOnlineResources(
849
- rootEl: XmlElement
850
- ): ServiceOnlineResource[] {
841
+ export function readOnlineResources(rootEl: XmlElement): OnlineResource[] {
842
+ if (readKind(rootEl) === 'dataset') {
843
+ return pipe(
844
+ findNestedElements('gmd:distributionInfo', 'gmd:MD_Distribution'),
845
+ mapArray(extractDatasetOnlineResources(getMimeType)),
846
+ flattenArray()
847
+ )(rootEl)
848
+ }
851
849
  return pipe(
852
850
  findNestedElements('gmd:distributionInfo', 'gmd:MD_Distribution'),
853
851
  mapArray(extractServiceOnlineResources()),
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  CatalogRecord,
3
3
  Constraint,
4
- DatasetDistribution,
4
+ DatasetOnlineResource,
5
5
  DatasetRecord,
6
6
  DatasetServiceDistribution,
7
7
  Individual,
@@ -29,7 +29,6 @@ import {
29
29
  tap,
30
30
  } from '../function-utils'
31
31
  import {
32
- XmlElement,
33
32
  addAttribute,
34
33
  appendChildren,
35
34
  createChild,
@@ -44,6 +43,7 @@ import {
44
43
  removeChildren,
45
44
  removeChildrenByName,
46
45
  setTextContent,
46
+ XmlElement,
47
47
  } from '../xml-utils'
48
48
  import { readKind } from './read-parts'
49
49
  import { writeGeometry } from './utils/geometry'
@@ -179,7 +179,7 @@ export function getRoleCode(role: Role): string {
179
179
  }
180
180
  }
181
181
 
182
- export function getDistributionProtocol(
182
+ export function getServiceDistributionProtocol(
183
183
  distribution: DatasetServiceDistribution
184
184
  ): string {
185
185
  switch (distribution.accessServiceProtocol.toLowerCase()) {
@@ -610,11 +610,11 @@ export function createLicense(license: Constraint) {
610
610
  )
611
611
  }
612
612
 
613
- export function removeDistributions() {
613
+ export function removeOnlineResources() {
614
614
  return pipe(removeChildrenByName('gmd:distributionInfo'))
615
615
  }
616
616
 
617
- function appendDistributionFormat(mimeType: string) {
617
+ function appendOnlineResourceFormat(mimeType: string) {
618
618
  return appendChildren(
619
619
  pipe(
620
620
  createElement('gmd:distributionFormat'),
@@ -638,8 +638,8 @@ export function createDistributionInfo() {
638
638
  }
639
639
 
640
640
  // apply to MD_Distribution
641
- export function appendDistribution(
642
- distribution: DatasetDistribution,
641
+ export function appendOnlineResource(
642
+ onlineResource: DatasetOnlineResource,
643
643
  appendFormatFn: (
644
644
  mimeType: string
645
645
  ) => ChainableFunction<XmlElement, XmlElement>
@@ -647,16 +647,16 @@ export function appendDistribution(
647
647
  let name: string
648
648
  let functionCode: string
649
649
  let protocol: string
650
- if (distribution.type === 'service') {
651
- name = distribution.identifierInService // this is for GeoNetwork to know the layer name
650
+ if (onlineResource.type === 'service') {
651
+ name = onlineResource.identifierInService // this is for GeoNetwork to know the layer name
652
652
  functionCode = 'download'
653
- protocol = getDistributionProtocol(distribution)
654
- } else if (distribution.type === 'download') {
655
- name = distribution.name
653
+ protocol = getServiceDistributionProtocol(onlineResource)
654
+ } else if (onlineResource.type === 'download') {
655
+ name = onlineResource.name
656
656
  functionCode = 'download'
657
657
  protocol = 'WWW:DOWNLOAD'
658
658
  } else {
659
- name = distribution.name
659
+ name = onlineResource.name
660
660
  functionCode = 'information'
661
661
  protocol = 'WWW:LINK'
662
662
  }
@@ -666,12 +666,12 @@ export function appendDistribution(
666
666
  createChild('gmd:MD_DigitalTransferOptions'),
667
667
  createChild('gmd:onLine'),
668
668
  createChild('gmd:CI_OnlineResource'),
669
- writeLinkage(distribution.url),
670
- 'description' in distribution
669
+ writeLinkage(onlineResource.url),
670
+ 'description' in onlineResource
671
671
  ? appendChildren(
672
672
  pipe(
673
673
  createElement('gmd:description'),
674
- writeCharacterString(distribution.description)
674
+ writeCharacterString(onlineResource.description)
675
675
  )
676
676
  )
677
677
  : noop,
@@ -695,7 +695,9 @@ export function appendDistribution(
695
695
  )
696
696
  )
697
697
  return pipe(
698
- 'mimeType' in distribution ? appendFormatFn(distribution.mimeType) : noop,
698
+ 'mimeType' in onlineResource
699
+ ? appendFormatFn(onlineResource.mimeType)
700
+ : noop,
699
701
  appendTransferOptions
700
702
  )
701
703
  }
@@ -743,33 +745,6 @@ export function writeKind(record: CatalogRecord, rootEl: XmlElement) {
743
745
  )(rootEl)
744
746
  }
745
747
 
746
- export function writeOwnerOrganization(
747
- record: CatalogRecord,
748
- rootEl: XmlElement
749
- ) {
750
- // if no contact matches the owner org, create an empty one
751
- const ownerContact: Individual = record.contacts.find(
752
- (contact) => contact.organization.name === record.ownerOrganization.name
753
- )
754
- pipe(
755
- findChildOrCreate('gmd:contact'),
756
- removeAllChildren(),
757
- appendResponsibleParty(
758
- ownerContact
759
- ? {
760
- ...ownerContact,
761
- // owner responsible party is always point of contact
762
- role: 'point_of_contact',
763
- }
764
- : {
765
- organization: record.ownerOrganization,
766
- email: '',
767
- role: 'point_of_contact',
768
- }
769
- )
770
- )(rootEl)
771
- }
772
-
773
748
  export function writeRecordUpdated(record: CatalogRecord, rootEl: XmlElement) {
774
749
  pipe(
775
750
  findChildOrCreate('gmd:dateStamp'),
@@ -1032,20 +1007,6 @@ export function writeGraphicOverviews(
1032
1007
  )(rootEl)
1033
1008
  }
1034
1009
 
1035
- export function writeDistributions(record: DatasetRecord, rootEl: XmlElement) {
1036
- pipe(
1037
- removeDistributions(),
1038
- appendChildren(
1039
- ...record.distributions.map((d) =>
1040
- pipe(
1041
- createDistributionInfo(),
1042
- appendDistribution(d, appendDistributionFormat)
1043
- )
1044
- )
1045
- )
1046
- )(rootEl)
1047
- }
1048
-
1049
1010
  export function writeLineage(record: DatasetRecord, rootEl: XmlElement) {
1050
1011
  pipe(
1051
1012
  findNestedChildOrCreate(
@@ -1127,16 +1088,40 @@ export function createOnlineResource(onlineResource: ServiceOnlineResource) {
1127
1088
  )
1128
1089
  }
1129
1090
 
1130
- export function writeOnlineResources(
1131
- record: ServiceRecord,
1091
+ export function appendDatasetOnlineResources(
1092
+ record: DatasetRecord,
1132
1093
  rootEl: XmlElement
1133
1094
  ) {
1134
- pipe(
1135
- removeDistributions(),
1136
- appendChildren(...record.onlineResources.map(createOnlineResource))
1095
+ appendChildren(
1096
+ ...record.onlineResources.map((d) =>
1097
+ pipe(
1098
+ createDistributionInfo(),
1099
+ appendOnlineResource(d, appendOnlineResourceFormat)
1100
+ )
1101
+ )
1137
1102
  )(rootEl)
1138
1103
  }
1139
1104
 
1105
+ export function appendServiceOnlineResources(
1106
+ record: ServiceRecord,
1107
+ rootEl: XmlElement
1108
+ ) {
1109
+ appendChildren(...record.onlineResources.map(createOnlineResource))(rootEl)
1110
+ }
1111
+
1112
+ export function writeOnlineResources(
1113
+ record: CatalogRecord,
1114
+ rootEl: XmlElement
1115
+ ) {
1116
+ removeOnlineResources()(rootEl)
1117
+
1118
+ if (record.kind === 'dataset') {
1119
+ appendDatasetOnlineResources(record, rootEl)
1120
+ return
1121
+ }
1122
+ appendServiceOnlineResources(record, rootEl)
1123
+ }
1124
+
1140
1125
  export function writeTemporalExtents(
1141
1126
  record: DatasetRecord,
1142
1127
  rootEl: XmlElement
@@ -36,7 +36,8 @@ export function createDocument(rootEl: XmlElement): XmlDocument {
36
36
  if (namespace === 'xmlns' || namespace === null) return
37
37
  if (rootEl.attributes[`xmlns:${namespace}`]) return
38
38
  if (!NAMESPACES[namespace]) {
39
- throw new Error(`No known URI for namespace ${namespace}`)
39
+ // the namespace is unknown but it might still be declared correctly: ignore it
40
+ return
40
41
  }
41
42
  rootEl.attributes[`xmlns:${namespace}`] = NAMESPACES[namespace]
42
43
  }
@@ -180,11 +181,11 @@ export function findParent(
180
181
 
181
182
  export function readText(): ChainableFunction<XmlElement, string> {
182
183
  return (el) => {
183
- const textNode =
184
- el && Array.isArray(el.children)
185
- ? (el.children.find((node) => node.type === 'text') as XmlText)
186
- : null
187
- return textNode ? textNode.text : null
184
+ if (!el) return null
185
+ const textNode = Array.isArray(el.children)
186
+ ? (el.children.find((node) => node.type === 'text') as XmlText)
187
+ : null
188
+ return textNode ? textNode.text : ''
188
189
  }
189
190
  }
190
191
 
@@ -456,3 +457,21 @@ export function renameElements(
456
457
  doReplace(rootElement)
457
458
  return rootElement
458
459
  }
460
+
461
+ /**
462
+ * This function use the DOMParser to check if the given xmlString is a valid XML file or throw an error
463
+ * (Generated by chatGPT)
464
+ * @param xmlString
465
+ */
466
+ export function assertValidXml(xmlString: string): Document {
467
+ const parser = new DOMParser()
468
+ const xmlDoc = parser.parseFromString(xmlString, 'application/xml')
469
+ const parserError = xmlDoc.querySelector('parsererror')
470
+
471
+ if (parserError) {
472
+ console.error(parserError)
473
+ throw new Error('File is not a valid XML.')
474
+ }
475
+
476
+ return xmlDoc
477
+ }