geonetwork-ui 2.4.0-dev.344a92f2 → 2.4.0-dev.3b6b95eb

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 (429) hide show
  1. package/esm2022/libs/api/metadata-converter/src/index.mjs +4 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/common/license.mjs +64 -0
  3. package/esm2022/libs/api/metadata-converter/src/lib/common/url.mjs +14 -0
  4. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.mjs +254 -0
  5. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/index.mjs +2 -0
  6. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/namespaces.mjs +17 -0
  7. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.mjs +196 -0
  8. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/utils/graph-utils.mjs +46 -0
  9. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/utils/serialize-to-xml.mjs +74 -0
  10. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/utils/uri.mjs +2 -0
  11. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/write-parts.mjs +27 -0
  12. package/esm2022/libs/api/metadata-converter/src/lib/find-converter.mjs +11 -1
  13. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.mjs +3 -3
  14. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +8 -23
  15. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +3 -3
  16. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +27 -37
  17. package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +35 -3
  18. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +78 -39
  19. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +34 -26
  20. package/esm2022/libs/common/domain/src/lib/model/record/contact.model.mjs +1 -1
  21. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  22. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  23. package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +7 -4
  24. package/esm2022/libs/feature/catalog/src/lib/organisations/organisations.component.mjs +6 -6
  25. package/esm2022/libs/feature/dataviz/src/lib/feature-dataviz.module.mjs +10 -7
  26. package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +40 -50
  27. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  28. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +5 -5
  29. package/esm2022/libs/feature/editor/src/lib/components/contact-card/contact-card.component.mjs +3 -3
  30. package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +95 -0
  31. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +72 -0
  32. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +109 -0
  33. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +9 -8
  34. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +38 -60
  35. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +10 -7
  36. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +191 -0
  37. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +5 -4
  38. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +2 -2
  39. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +10 -6
  40. package/esm2022/libs/feature/editor/src/lib/components/wizard/wizard.component.mjs +3 -3
  41. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +17 -3
  42. package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +5 -5
  43. package/esm2022/libs/feature/map/src/index.mjs +2 -9
  44. package/esm2022/libs/feature/map/src/lib/+state/map.actions.mjs +4 -7
  45. package/esm2022/libs/feature/map/src/lib/+state/map.facade.mjs +9 -15
  46. package/esm2022/libs/feature/map/src/lib/+state/map.reducer.mjs +13 -44
  47. package/esm2022/libs/feature/map/src/lib/+state/map.selectors.mjs +3 -2
  48. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +15 -15
  49. package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +16 -10
  50. package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +10 -8
  51. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +11 -7
  52. package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +10 -6
  53. package/esm2022/libs/feature/map/src/lib/constant/index.mjs +1 -2
  54. package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +4 -44
  55. package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +43 -29
  56. package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +17 -8
  57. package/esm2022/libs/feature/map/src/lib/map-state-container/map-state-container.component.mjs +27 -0
  58. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +4 -168
  59. package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +21 -17
  60. package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +14 -8
  61. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +40 -52
  62. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +1 -1
  63. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +11 -6
  64. package/esm2022/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.mjs +7 -7
  65. package/esm2022/libs/ui/catalog/src/lib/ui-catalog.module.mjs +1 -6
  66. package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
  67. package/esm2022/libs/ui/inputs/src/lib/badge/badge.component.mjs +3 -3
  68. package/esm2022/libs/ui/inputs/src/lib/date-picker/date-picker.component.mjs +3 -3
  69. package/esm2022/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.mjs +3 -3
  70. package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +3 -3
  71. package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +2 -2
  72. package/esm2022/libs/ui/inputs/src/lib/search-input/search-input.component.mjs +6 -4
  73. package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +5 -3
  74. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +2 -7
  75. package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +20 -4
  76. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +3 -3
  77. package/esm2022/libs/ui/layout/src/lib/sortable-list/sortable-list.component.mjs +3 -3
  78. package/esm2022/libs/ui/map/src/index.mjs +4 -3
  79. package/esm2022/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.mjs +8 -6
  80. package/esm2022/libs/ui/map/src/lib/components/map-container/map-container.component.mjs +137 -0
  81. package/esm2022/libs/ui/map/src/lib/components/map-container/map-settings.token.mjs +13 -0
  82. package/esm2022/libs/ui/map/src/lib/map-utils.mjs +37 -0
  83. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +3 -3
  84. package/esm2022/libs/util/app-config/src/index.mjs +2 -1
  85. package/esm2022/libs/util/app-config/src/lib/map-layers.mjs +27 -0
  86. package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
  87. package/esm2022/libs/util/shared/src/lib/utils/no-duplicate-file-name.mjs +19 -0
  88. package/esm2022/translations/de.json +19 -0
  89. package/esm2022/translations/en.json +51 -32
  90. package/esm2022/translations/es.json +19 -0
  91. package/esm2022/translations/fr.json +82 -63
  92. package/esm2022/translations/it.json +19 -0
  93. package/esm2022/translations/nl.json +19 -0
  94. package/esm2022/translations/pt.json +19 -0
  95. package/fesm2022/geonetwork-ui.mjs +6871 -6029
  96. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  97. package/libs/api/metadata-converter/src/index.d.ts +3 -0
  98. package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
  99. package/libs/api/metadata-converter/src/lib/common/license.d.ts +3 -0
  100. package/libs/api/metadata-converter/src/lib/common/license.d.ts.map +1 -0
  101. package/libs/api/metadata-converter/src/lib/common/url.d.ts +7 -0
  102. package/libs/api/metadata-converter/src/lib/common/url.d.ts.map +1 -0
  103. package/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.d.ts +13 -0
  104. package/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.d.ts.map +1 -0
  105. package/libs/api/metadata-converter/src/lib/dcat-ap/index.d.ts +2 -0
  106. package/libs/api/metadata-converter/src/lib/dcat-ap/index.d.ts.map +1 -0
  107. package/libs/api/metadata-converter/src/lib/dcat-ap/namespaces.d.ts +16 -0
  108. package/libs/api/metadata-converter/src/lib/dcat-ap/namespaces.d.ts.map +1 -0
  109. package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts +20 -0
  110. package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts.map +1 -0
  111. package/libs/api/metadata-converter/src/lib/dcat-ap/utils/graph-utils.d.ts +9 -0
  112. package/libs/api/metadata-converter/src/lib/dcat-ap/utils/graph-utils.d.ts.map +1 -0
  113. package/libs/api/metadata-converter/src/lib/dcat-ap/utils/serialize-to-xml.d.ts +8 -0
  114. package/libs/api/metadata-converter/src/lib/dcat-ap/utils/serialize-to-xml.d.ts.map +1 -0
  115. package/libs/api/metadata-converter/src/lib/dcat-ap/utils/uri.d.ts +2 -0
  116. package/libs/api/metadata-converter/src/lib/dcat-ap/utils/uri.d.ts.map +1 -0
  117. package/libs/api/metadata-converter/src/lib/dcat-ap/write-parts.d.ts +6 -0
  118. package/libs/api/metadata-converter/src/lib/dcat-ap/write-parts.d.ts.map +1 -0
  119. package/libs/api/metadata-converter/src/lib/find-converter.d.ts.map +1 -1
  120. package/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.d.ts.map +1 -1
  121. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts +0 -1
  122. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -1
  123. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
  124. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +4 -6
  125. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  126. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +58 -0
  127. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
  128. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +12 -7
  129. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  130. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +2 -15
  131. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  132. package/libs/common/domain/src/lib/model/record/contact.model.d.ts +1 -1
  133. package/libs/common/domain/src/lib/model/record/contact.model.d.ts.map +1 -1
  134. package/libs/common/domain/src/lib/platform.service.interface.d.ts +2 -3
  135. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  136. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +7 -0
  137. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  138. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts +2 -1
  139. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +1 -1
  140. package/libs/feature/dataviz/src/lib/feature-dataviz.module.d.ts +10 -9
  141. package/libs/feature/dataviz/src/lib/feature-dataviz.module.d.ts.map +1 -1
  142. package/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.d.ts +13 -20
  143. package/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.d.ts.map +1 -1
  144. package/libs/feature/editor/src/index.d.ts +1 -0
  145. package/libs/feature/editor/src/index.d.ts.map +1 -1
  146. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
  147. package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts +34 -0
  148. package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts.map +1 -0
  149. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +16 -0
  150. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -0
  151. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.d.ts +38 -0
  152. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.d.ts.map +1 -0
  153. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts +1 -1
  154. 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
  155. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts +6 -13
  156. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts.map +1 -1
  157. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts +1 -1
  158. 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 -1
  159. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts +44 -0
  160. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts.map +1 -0
  161. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +1 -1
  162. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -1
  163. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  164. package/libs/feature/editor/src/lib/fields.config.d.ts +2 -0
  165. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  166. package/libs/feature/editor/src/lib/services/editor.service.d.ts +2 -2
  167. package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
  168. package/libs/feature/map/src/index.d.ts +1 -8
  169. package/libs/feature/map/src/index.d.ts.map +1 -1
  170. package/libs/feature/map/src/lib/+state/map.actions.d.ts +13 -39
  171. package/libs/feature/map/src/lib/+state/map.actions.d.ts.map +1 -1
  172. package/libs/feature/map/src/lib/+state/map.facade.d.ts +9 -10
  173. package/libs/feature/map/src/lib/+state/map.facade.d.ts.map +1 -1
  174. package/libs/feature/map/src/lib/+state/map.reducer.d.ts +4 -2
  175. package/libs/feature/map/src/lib/+state/map.reducer.d.ts.map +1 -1
  176. package/libs/feature/map/src/lib/+state/map.selectors.d.ts +6 -1
  177. package/libs/feature/map/src/lib/+state/map.selectors.d.ts.map +1 -1
  178. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts +3 -5
  179. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts.map +1 -1
  180. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -1
  181. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +2 -2
  182. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -1
  183. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts +1 -1
  184. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -1
  185. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts +1 -1
  186. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts.map +1 -1
  187. package/libs/feature/map/src/lib/constant/index.d.ts +0 -1
  188. package/libs/feature/map/src/lib/constant/index.d.ts.map +1 -1
  189. package/libs/feature/map/src/lib/feature-map.module.d.ts +12 -18
  190. package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
  191. package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts +7 -7
  192. package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts.map +1 -1
  193. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts +4 -3
  194. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
  195. package/libs/feature/map/src/lib/map-state-container/map-state-container.component.d.ts +14 -0
  196. package/libs/feature/map/src/lib/map-state-container/map-state-container.component.d.ts.map +1 -0
  197. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +0 -30
  198. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  199. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts +8 -5
  200. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
  201. package/libs/feature/record/src/lib/feature-record.module.d.ts +13 -11
  202. package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
  203. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +13 -19
  204. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  205. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +4 -3
  206. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  207. package/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.d.ts +1 -1
  208. package/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.d.ts.map +1 -1
  209. package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts +9 -10
  210. package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts.map +1 -1
  211. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
  212. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
  213. package/libs/ui/inputs/src/index.d.ts +1 -0
  214. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  215. package/libs/ui/inputs/src/lib/search-input/search-input.component.d.ts +1 -1
  216. package/libs/ui/inputs/src/lib/search-input/search-input.component.d.ts.map +1 -1
  217. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts +1 -0
  218. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts.map +1 -1
  219. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +25 -26
  220. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  221. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +6 -3
  222. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -1
  223. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +1 -1
  224. package/libs/ui/map/src/index.d.ts +3 -2
  225. package/libs/ui/map/src/index.d.ts.map +1 -1
  226. package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts +3 -4
  227. package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts.map +1 -1
  228. package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts +37 -0
  229. package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts.map +1 -0
  230. package/libs/ui/map/src/lib/components/map-container/map-settings.token.d.ts +18 -0
  231. package/libs/ui/map/src/lib/components/map-container/map-settings.token.d.ts.map +1 -0
  232. package/libs/ui/map/src/lib/map-utils.d.ts +7 -0
  233. package/libs/ui/map/src/lib/map-utils.d.ts.map +1 -0
  234. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +1 -1
  235. package/libs/util/app-config/src/index.d.ts +1 -0
  236. package/libs/util/app-config/src/index.d.ts.map +1 -1
  237. package/libs/util/app-config/src/lib/map-layers.d.ts +4 -0
  238. package/libs/util/app-config/src/lib/map-layers.d.ts.map +1 -0
  239. package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
  240. package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
  241. package/libs/util/shared/src/lib/utils/no-duplicate-file-name.d.ts +2 -0
  242. package/libs/util/shared/src/lib/utils/no-duplicate-file-name.d.ts.map +1 -0
  243. package/package.json +5 -3
  244. package/src/libs/api/metadata-converter/src/index.ts +3 -0
  245. package/src/libs/api/metadata-converter/src/lib/common/license.ts +66 -0
  246. package/src/libs/api/metadata-converter/src/lib/common/url.ts +15 -0
  247. package/src/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.ts +378 -0
  248. package/src/libs/api/metadata-converter/src/lib/dcat-ap/index.ts +1 -0
  249. package/src/libs/api/metadata-converter/src/lib/dcat-ap/namespaces.ts +17 -0
  250. package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +370 -0
  251. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/graph-utils.ts +95 -0
  252. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/individual-name.ts +20 -0
  253. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/keyword.mapper.ts +16 -0
  254. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/role.mapper.ts +48 -0
  255. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/serialize-to-xml.ts +97 -0
  256. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/status.mapper.ts +19 -0
  257. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/update-frequency.mapper.ts +67 -0
  258. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/uri.ts +1 -0
  259. package/src/libs/api/metadata-converter/src/lib/dcat-ap/write-parts.ts +68 -0
  260. package/src/libs/api/metadata-converter/src/lib/find-converter.ts +13 -0
  261. package/src/libs/api/metadata-converter/src/lib/fixtures/eu.dcat-ap.records.ts +272 -0
  262. package/src/libs/api/metadata-converter/src/lib/fixtures/opendataswiss.records.ts +110 -0
  263. package/src/libs/api/metadata-converter/src/lib/fixtures/sextant.records.ts +85 -0
  264. package/src/libs/api/metadata-converter/src/lib/fixtures/vlaanderen.dcat-ap.records.ts +73 -0
  265. package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +1 -2
  266. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +7 -35
  267. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +1 -2
  268. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +85 -120
  269. package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +37 -2
  270. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +132 -68
  271. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +57 -30
  272. package/src/libs/common/domain/src/lib/model/record/contact.model.ts +1 -1
  273. package/src/libs/common/domain/src/lib/platform.service.interface.ts +2 -2
  274. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +10 -0
  275. package/src/libs/common/fixtures/src/index.ts +3 -0
  276. package/src/libs/common/fixtures/src/lib/individual.fixtures.ts +61 -0
  277. package/src/libs/common/fixtures/src/lib/map/index.ts +1 -0
  278. package/src/libs/common/fixtures/src/lib/map/map-context.fixtures.ts +53 -0
  279. package/src/libs/common/fixtures/src/lib/user.fixtures.ts +13 -0
  280. package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +5 -1
  281. package/src/libs/feature/dataviz/src/lib/feature-dataviz.module.ts +6 -2
  282. package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.html +5 -2
  283. package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.ts +38 -78
  284. package/src/libs/feature/editor/src/index.ts +1 -0
  285. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +11 -4
  286. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.html +1 -1
  287. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.html +47 -0
  288. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +132 -0
  289. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html +31 -0
  290. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +82 -0
  291. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.html +40 -0
  292. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.ts +170 -0
  293. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +1 -1
  294. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +6 -8
  295. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +1 -4
  296. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.ts +41 -83
  297. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.html +20 -11
  298. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.ts +9 -5
  299. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.css +0 -0
  300. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.html +71 -0
  301. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts +241 -0
  302. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +4 -3
  303. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +1 -1
  304. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +15 -0
  305. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +7 -3
  306. package/src/libs/feature/editor/src/lib/components/wizard/wizard.component.html +2 -6
  307. package/src/libs/feature/editor/src/lib/fields.config.ts +18 -2
  308. package/src/libs/feature/editor/src/lib/services/editor.service.ts +7 -3
  309. package/src/libs/feature/map/src/index.ts +1 -8
  310. package/src/libs/feature/map/src/lib/+state/map.actions.ts +10 -25
  311. package/src/libs/feature/map/src/lib/+state/map.facade.ts +11 -15
  312. package/src/libs/feature/map/src/lib/+state/map.reducer.ts +16 -53
  313. package/src/libs/feature/map/src/lib/+state/map.selectors.ts +7 -2
  314. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.ts +12 -15
  315. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +17 -11
  316. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +11 -12
  317. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +12 -10
  318. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.ts +11 -9
  319. package/src/libs/feature/map/src/lib/constant/index.ts +0 -1
  320. package/src/libs/feature/map/src/lib/feature-map.module.ts +0 -26
  321. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +38 -20
  322. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.html +2 -2
  323. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +15 -5
  324. package/src/libs/feature/map/src/lib/map-state-container/map-state-container.component.css +0 -0
  325. package/src/libs/feature/map/src/lib/map-state-container/map-state-container.component.html +4 -0
  326. package/src/libs/feature/map/src/lib/map-state-container/map-state-container.component.ts +29 -0
  327. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +1 -229
  328. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +27 -18
  329. package/src/libs/feature/record/src/lib/feature-record.module.ts +11 -3
  330. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +4 -4
  331. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +44 -71
  332. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +1 -1
  333. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +4 -1
  334. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +4 -2
  335. package/src/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.ts +8 -1
  336. package/src/libs/ui/catalog/src/lib/ui-catalog.module.ts +0 -3
  337. package/src/libs/ui/inputs/src/index.ts +1 -0
  338. package/src/libs/ui/inputs/src/lib/badge/badge.component.html +1 -2
  339. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.html +2 -1
  340. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.html +2 -1
  341. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.html +8 -8
  342. package/src/libs/ui/inputs/src/lib/search-input/search-input.component.ts +5 -1
  343. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.html +1 -1
  344. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +3 -1
  345. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -3
  346. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.html +5 -1
  347. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +25 -2
  348. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.css +1 -1
  349. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +2 -2
  350. package/src/libs/ui/layout/src/lib/sortable-list/sortable-list.component.html +1 -1
  351. package/src/libs/ui/map/src/index.ts +3 -2
  352. package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.html +1 -1
  353. package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.ts +8 -5
  354. package/src/libs/ui/map/src/lib/components/map-container/map-container.component.css +0 -0
  355. package/src/libs/ui/map/src/lib/components/map-container/map-container.component.ts +203 -0
  356. package/src/libs/ui/map/src/lib/components/map-container/map-settings.token.ts +23 -0
  357. package/src/libs/ui/map/src/lib/map-utils.ts +54 -0
  358. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +18 -14
  359. package/src/libs/util/app-config/src/index.ts +1 -0
  360. package/src/libs/util/app-config/src/lib/map-layers.ts +31 -0
  361. package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
  362. package/src/libs/util/shared/src/lib/utils/no-duplicate-file-name.ts +23 -0
  363. package/tailwind.base.css +3 -2
  364. package/translations/de.json +19 -0
  365. package/translations/en.json +51 -32
  366. package/translations/es.json +19 -0
  367. package/translations/fr.json +82 -63
  368. package/translations/it.json +19 -0
  369. package/translations/nl.json +19 -0
  370. package/translations/pt.json +19 -0
  371. package/translations/sk.json +19 -0
  372. package/esm2022/libs/feature/map/src/lib/+state/map.effects.mjs +0 -15
  373. package/esm2022/libs/feature/map/src/lib/+state/map.models.mjs +0 -2
  374. package/esm2022/libs/feature/map/src/lib/constant/map-options.mjs +0 -8
  375. package/esm2022/libs/feature/map/src/lib/constant/style.constant.mjs +0 -17
  376. package/esm2022/libs/feature/map/src/lib/feature-info/feature-info.service.mjs +0 -38
  377. package/esm2022/libs/feature/map/src/lib/manager/map-instance.directive.mjs +0 -19
  378. package/esm2022/libs/feature/map/src/lib/manager/map-manager.service.mjs +0 -19
  379. package/esm2022/libs/feature/map/src/lib/map-container/map-container.component.mjs +0 -27
  380. package/esm2022/libs/feature/map/src/lib/map-context/component/map-context.component.mjs +0 -46
  381. package/esm2022/libs/feature/map/src/lib/map-context/map-context.model.mjs +0 -10
  382. package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +0 -289
  383. package/esm2022/libs/ui/map/src/lib/components/map/map.component.mjs +0 -40
  384. package/esm2022/libs/ui/map/src/lib/ui-map.module.mjs +0 -33
  385. package/libs/feature/map/src/lib/+state/map.effects.d.ts +0 -9
  386. package/libs/feature/map/src/lib/+state/map.effects.d.ts.map +0 -1
  387. package/libs/feature/map/src/lib/+state/map.models.d.ts +0 -9
  388. package/libs/feature/map/src/lib/+state/map.models.d.ts.map +0 -1
  389. package/libs/feature/map/src/lib/constant/map-options.d.ts +0 -9
  390. package/libs/feature/map/src/lib/constant/map-options.d.ts.map +0 -1
  391. package/libs/feature/map/src/lib/constant/style.constant.d.ts +0 -4
  392. package/libs/feature/map/src/lib/constant/style.constant.d.ts.map +0 -1
  393. package/libs/feature/map/src/lib/feature-info/feature-info.service.d.ts +0 -16
  394. package/libs/feature/map/src/lib/feature-info/feature-info.service.d.ts.map +0 -1
  395. package/libs/feature/map/src/lib/manager/map-instance.directive.d.ts +0 -9
  396. package/libs/feature/map/src/lib/manager/map-instance.directive.d.ts.map +0 -1
  397. package/libs/feature/map/src/lib/manager/map-manager.service.d.ts +0 -11
  398. package/libs/feature/map/src/lib/manager/map-manager.service.d.ts.map +0 -1
  399. package/libs/feature/map/src/lib/map-container/map-container.component.d.ts +0 -12
  400. package/libs/feature/map/src/lib/map-container/map-container.component.d.ts.map +0 -1
  401. package/libs/feature/map/src/lib/map-context/component/map-context.component.d.ts +0 -26
  402. package/libs/feature/map/src/lib/map-context/component/map-context.component.d.ts.map +0 -1
  403. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts +0 -77
  404. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts.map +0 -1
  405. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts +0 -26
  406. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +0 -1
  407. package/libs/ui/map/src/lib/components/map/map.component.d.ts +0 -19
  408. package/libs/ui/map/src/lib/components/map/map.component.d.ts.map +0 -1
  409. package/libs/ui/map/src/lib/ui-map.module.d.ts +0 -13
  410. package/libs/ui/map/src/lib/ui-map.module.d.ts.map +0 -1
  411. package/src/libs/feature/map/src/lib/+state/map.effects.ts +0 -7
  412. package/src/libs/feature/map/src/lib/+state/map.models.ts +0 -9
  413. package/src/libs/feature/map/src/lib/constant/map-options.ts +0 -17
  414. package/src/libs/feature/map/src/lib/feature-info/feature-info.service.ts +0 -42
  415. package/src/libs/feature/map/src/lib/manager/map-instance.directive.ts +0 -10
  416. package/src/libs/feature/map/src/lib/manager/map-manager.service.ts +0 -13
  417. package/src/libs/feature/map/src/lib/map-container/map-container.component.html +0 -1
  418. package/src/libs/feature/map/src/lib/map-container/map-container.component.ts +0 -26
  419. package/src/libs/feature/map/src/lib/map-context/component/map-context.component.html +0 -1
  420. package/src/libs/feature/map/src/lib/map-context/component/map-context.component.ts +0 -57
  421. package/src/libs/feature/map/src/lib/map-context/map-context.fixtures.ts +0 -55
  422. package/src/libs/feature/map/src/lib/map-context/map-context.model.ts +0 -95
  423. package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +0 -318
  424. package/src/libs/ui/map/src/lib/components/map/map.component.ts +0 -57
  425. package/src/libs/ui/map/src/lib/ui-map.module.ts +0 -19
  426. /package/src/libs/feature/{map/src/lib/map-container/map-container.component.css → editor/src/lib/components/import-record/import-record.component.css} +0 -0
  427. /package/src/libs/feature/{map/src/lib/map-context/component/map-context.component.css → editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.css} +0 -0
  428. /package/src/libs/{ui/map/src/lib/components/map/map.component.css → feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.css} +0 -0
  429. /package/src/libs/ui/map/src/lib/components/{map/map.component.html → map-container/map-container.component.html} +0 -0
@@ -0,0 +1,378 @@
1
+ import {
2
+ CatalogRecord,
3
+ CatalogRecordKeys,
4
+ DatasetRecord,
5
+ ServiceRecord,
6
+ } from '../../../../../../libs/common/domain/src/lib/model/record'
7
+ import { BaseConverter, MetadataMapperContext } from '../base.converter'
8
+ import { isEqual } from '../convert-utils'
9
+ import {
10
+ readAbstract,
11
+ readContacts,
12
+ readContactsForResource,
13
+ readKeywords,
14
+ readLandingPage,
15
+ readLicenses,
16
+ readOnlineResources,
17
+ readOwnerOrganization,
18
+ readRecordCreated,
19
+ readRecordUpdated,
20
+ readResourceCreated,
21
+ readResourceUpdated,
22
+ readSpatialExtents,
23
+ readTitle,
24
+ readTopics,
25
+ readUniqueIdentifier,
26
+ } from './read-parts'
27
+ import { writeAbstract, writeTitle, writeUniqueIdentifier } from './write-parts'
28
+ import { graph, NamedNode, Statement, Store, sym } from 'rdflib'
29
+ import { DCAT, RDF } from './namespaces'
30
+ import { BASE_URI } from './utils/uri'
31
+ import type { ContentType } from 'rdflib/lib/types'
32
+ import { loadGraph } from './utils/graph-utils'
33
+ import { exportGraphToXml } from './utils/serialize-to-xml'
34
+
35
+ export class DcatApConverter extends BaseConverter<string> {
36
+ protected readers: Record<
37
+ CatalogRecordKeys,
38
+ (dataStore: Store, catalogRecord: NamedNode) => unknown
39
+ > = {
40
+ uniqueIdentifier: readUniqueIdentifier,
41
+ title: readTitle,
42
+ abstract: readAbstract,
43
+ contacts: readContacts,
44
+ contactsForResource: readContactsForResource,
45
+ landingPage: readLandingPage,
46
+ onlineResources: readOnlineResources,
47
+ spatialExtents: readSpatialExtents,
48
+ keywords: readKeywords,
49
+ topics: readTopics,
50
+ recordUpdated: readRecordUpdated,
51
+ recordCreated: readRecordCreated,
52
+ resourceUpdated: readResourceUpdated,
53
+ resourceCreated: readResourceCreated,
54
+ ownerOrganization: readOwnerOrganization,
55
+ licenses: readLicenses,
56
+ // TODO
57
+ kind: () => 'dataset',
58
+ recordPublished: () => undefined,
59
+ resourcePublished: () => undefined,
60
+ legalConstraints: () => [],
61
+ securityConstraints: () => [],
62
+ otherConstraints: () => [],
63
+ status: () => 'completed',
64
+ updateFrequency: () => 'unknown',
65
+ overviews: () => [],
66
+ lineage: () => '',
67
+ temporalExtents: () => [],
68
+ spatialRepresentation: () => undefined,
69
+ extras: () => undefined,
70
+ languages: () => [],
71
+ }
72
+
73
+ protected writers: Record<
74
+ CatalogRecordKeys,
75
+ (record: CatalogRecord, dataStore: Store, catalogRecord: NamedNode) => void
76
+ > = {
77
+ uniqueIdentifier: writeUniqueIdentifier,
78
+ title: writeTitle,
79
+ abstract: writeAbstract,
80
+ // TODO
81
+ kind: () => undefined,
82
+ ownerOrganization: () => undefined,
83
+ recordUpdated: () => undefined,
84
+ recordCreated: () => undefined,
85
+ recordPublished: () => undefined,
86
+ resourceUpdated: () => undefined,
87
+ resourceCreated: () => undefined,
88
+ resourcePublished: () => undefined,
89
+ contacts: () => undefined,
90
+ contactsForResource: () => undefined,
91
+ keywords: () => undefined,
92
+ topics: () => undefined,
93
+ licenses: () => undefined,
94
+ legalConstraints: () => undefined,
95
+ securityConstraints: () => undefined,
96
+ otherConstraints: () => undefined,
97
+ status: () => undefined,
98
+ updateFrequency: () => undefined,
99
+ spatialRepresentation: () => undefined,
100
+ overviews: () => undefined,
101
+ lineage: () => undefined,
102
+ onlineResources: () => undefined,
103
+ temporalExtents: () => undefined,
104
+ spatialExtents: () => undefined,
105
+ extras: () => undefined,
106
+ landingPage: () => undefined,
107
+ languages: () => undefined,
108
+ }
109
+
110
+ constructor(
111
+ private contentType: ContentType = 'application/rdf+xml',
112
+ ctx: MetadataMapperContext = new MetadataMapperContext()
113
+ ) {
114
+ super(ctx)
115
+ }
116
+
117
+ async readRecord(document: string): Promise<CatalogRecord> {
118
+ const dataStore = graph()
119
+ await loadGraph(dataStore, document, this.contentType)
120
+
121
+ const catalogRecord = dataStore.the(
122
+ null,
123
+ null,
124
+ DCAT('CatalogRecord')
125
+ ) as NamedNode
126
+
127
+ const uniqueIdentifier = this.readers['uniqueIdentifier'](
128
+ dataStore,
129
+ catalogRecord
130
+ )
131
+ const kind = this.readers['kind'](dataStore, catalogRecord)
132
+ const ownerOrganization = this.readers['ownerOrganization'](
133
+ dataStore,
134
+ catalogRecord
135
+ )
136
+ const title = this.readers['title'](dataStore, catalogRecord)
137
+ const abstract = this.readers['abstract'](dataStore, catalogRecord)
138
+ const contacts = this.readers['contacts'](dataStore, catalogRecord)
139
+ const contactsForResource = this.readers['contactsForResource'](
140
+ dataStore,
141
+ catalogRecord
142
+ )
143
+ const recordUpdated = this.readers['recordUpdated'](
144
+ dataStore,
145
+ catalogRecord
146
+ )
147
+ const recordCreated = this.readers['recordCreated'](
148
+ dataStore,
149
+ catalogRecord
150
+ )
151
+ const recordPublished = this.readers['recordPublished'](
152
+ dataStore,
153
+ catalogRecord
154
+ )
155
+ const resourceCreated = this.readers['resourceCreated'](
156
+ dataStore,
157
+ catalogRecord
158
+ )
159
+ const resourceUpdated = this.readers['resourceUpdated'](
160
+ dataStore,
161
+ catalogRecord
162
+ )
163
+ const resourcePublished = this.readers['resourcePublished'](
164
+ dataStore,
165
+ catalogRecord
166
+ )
167
+ const keywords = this.readers['keywords'](dataStore, catalogRecord)
168
+ const topics = this.readers['topics'](dataStore, catalogRecord)
169
+ const legalConstraints = this.readers['legalConstraints'](
170
+ dataStore,
171
+ catalogRecord
172
+ )
173
+ const otherConstraints = this.readers['otherConstraints'](
174
+ dataStore,
175
+ catalogRecord
176
+ )
177
+ const securityConstraints = this.readers['securityConstraints'](
178
+ dataStore,
179
+ catalogRecord
180
+ )
181
+ const licenses = this.readers['licenses'](dataStore, catalogRecord)
182
+ const overviews = this.readers['overviews'](dataStore, catalogRecord)
183
+ const landingPage = this.readers['landingPage'](dataStore, catalogRecord)
184
+
185
+ if (kind === 'dataset') {
186
+ const status = this.readers['status'](dataStore, catalogRecord)
187
+ const spatialRepresentation = this.readers['spatialRepresentation'](
188
+ dataStore,
189
+ catalogRecord
190
+ )
191
+ const spatialExtents = this.readers['spatialExtents'](
192
+ dataStore,
193
+ catalogRecord
194
+ )
195
+ const temporalExtents = this.readers['temporalExtents'](
196
+ dataStore,
197
+ catalogRecord
198
+ )
199
+ const lineage = this.readers['lineage'](dataStore, catalogRecord)
200
+ const onlineResources = this.readers['onlineResources'](
201
+ dataStore,
202
+ catalogRecord
203
+ )
204
+ const updateFrequency = this.readers['updateFrequency'](
205
+ dataStore,
206
+ catalogRecord
207
+ )
208
+
209
+ return {
210
+ uniqueIdentifier,
211
+ kind,
212
+ languages: [],
213
+ ...(recordCreated && { recordCreated }),
214
+ ...(recordPublished && { recordPublished }),
215
+ recordUpdated,
216
+ ...(resourceCreated && { resourceCreated }),
217
+ ...(resourceUpdated && { resourceUpdated }),
218
+ ...(resourcePublished && { resourcePublished }),
219
+ status,
220
+ title,
221
+ abstract,
222
+ ownerOrganization,
223
+ contacts,
224
+ contactsForResource,
225
+ keywords,
226
+ topics,
227
+ licenses,
228
+ legalConstraints,
229
+ securityConstraints,
230
+ otherConstraints,
231
+ lineage,
232
+ ...(spatialRepresentation && { spatialRepresentation }),
233
+ overviews,
234
+ spatialExtents,
235
+ temporalExtents,
236
+ onlineResources,
237
+ updateFrequency,
238
+ ...(landingPage && { landingPage }),
239
+ } as DatasetRecord
240
+ } else {
241
+ const onlineResources = this.readers['onlineResources'](
242
+ dataStore,
243
+ catalogRecord
244
+ )
245
+ return {
246
+ uniqueIdentifier,
247
+ kind,
248
+ languages: [],
249
+ ...(recordCreated && { recordCreated }),
250
+ ...(recordPublished && { recordPublished }),
251
+ recordUpdated,
252
+ ...(resourceCreated && { resourceCreated }),
253
+ ...(resourceUpdated && { resourceUpdated }),
254
+ ...(resourcePublished && { resourcePublished }),
255
+ title,
256
+ abstract,
257
+ ownerOrganization,
258
+ contacts,
259
+ contactsForResource,
260
+ keywords,
261
+ topics,
262
+ licenses,
263
+ legalConstraints,
264
+ securityConstraints,
265
+ otherConstraints,
266
+ overviews,
267
+ onlineResources,
268
+ ...(landingPage && { landingPage }),
269
+ } as ServiceRecord
270
+ }
271
+ }
272
+
273
+ async writeRecord(
274
+ record: CatalogRecord,
275
+ reference?: string
276
+ ): Promise<string> {
277
+ const dataStore = graph()
278
+ let fieldChanged: (name: string) => boolean
279
+ if (reference) {
280
+ const originalRecord = await this.readRecord(reference)
281
+ await loadGraph(
282
+ dataStore,
283
+ reference,
284
+ this.contentType,
285
+ DCAT('CatalogRecord').value
286
+ )
287
+
288
+ fieldChanged = (name: string) => {
289
+ return originalRecord !== null
290
+ ? !isEqual(record[name], originalRecord[name])
291
+ : true
292
+ }
293
+ } else {
294
+ fieldChanged = () => true
295
+ }
296
+
297
+ let recordNode = dataStore.the(
298
+ null,
299
+ RDF('type'),
300
+ DCAT('CatalogRecord')
301
+ ) as NamedNode
302
+ if (!recordNode) {
303
+ const statement = dataStore.add(
304
+ sym(`${BASE_URI}record/${record.uniqueIdentifier}`),
305
+ RDF('type'),
306
+ DCAT('CatalogRecord')
307
+ ) as Statement
308
+ recordNode = statement.subject as NamedNode
309
+ }
310
+
311
+ fieldChanged('uniqueIdentifier') &&
312
+ this.writers['uniqueIdentifier'](record, dataStore, recordNode)
313
+ fieldChanged('kind') && this.writers['kind'](record, dataStore, recordNode)
314
+
315
+ fieldChanged('contacts') &&
316
+ this.writers['contacts'](record, dataStore, recordNode)
317
+ fieldChanged('ownerOrganization') &&
318
+ this.writers['ownerOrganization'](record, dataStore, recordNode)
319
+
320
+ fieldChanged('recordUpdated') &&
321
+ this.writers['recordUpdated'](record, dataStore, recordNode)
322
+ fieldChanged('recordCreated') &&
323
+ this.writers['recordCreated'](record, dataStore, recordNode)
324
+ fieldChanged('recordPublished') &&
325
+ this.writers['recordPublished'](record, dataStore, recordNode)
326
+
327
+ fieldChanged('title') &&
328
+ this.writers['title'](record, dataStore, recordNode)
329
+ fieldChanged('abstract') &&
330
+ this.writers['abstract'](record, dataStore, recordNode)
331
+
332
+ fieldChanged('resourceCreated') &&
333
+ this.writers['resourceCreated'](record, dataStore, recordNode)
334
+ fieldChanged('resourcePublished') &&
335
+ this.writers['resourcePublished'](record, dataStore, recordNode)
336
+ fieldChanged('resourceUpdated') &&
337
+ this.writers['resourceUpdated'](record, dataStore, recordNode)
338
+
339
+ fieldChanged('contactsForResource') &&
340
+ this.writers['contactsForResource'](record, dataStore, recordNode)
341
+
342
+ fieldChanged('keywords') &&
343
+ this.writers['keywords'](record, dataStore, recordNode)
344
+ fieldChanged('topics') &&
345
+ this.writers['topics'](record, dataStore, recordNode)
346
+ fieldChanged('legalConstraints') &&
347
+ this.writers['legalConstraints'](record, dataStore, recordNode)
348
+ fieldChanged('securityConstraints') &&
349
+ this.writers['securityConstraints'](record, dataStore, recordNode)
350
+ fieldChanged('licenses') &&
351
+ this.writers['licenses'](record, dataStore, recordNode)
352
+ fieldChanged('otherConstraints') &&
353
+ this.writers['otherConstraints'](record, dataStore, recordNode)
354
+ fieldChanged('onlineResources') &&
355
+ this.writers['onlineResources'](record, dataStore, recordNode)
356
+
357
+ if (record.kind === 'dataset') {
358
+ fieldChanged('status') &&
359
+ this.writers['status'](record, dataStore, recordNode)
360
+ fieldChanged('updateFrequency') &&
361
+ this.writers['updateFrequency'](record, dataStore, recordNode)
362
+ fieldChanged('spatialRepresentation') &&
363
+ this.writers['spatialRepresentation'](record, dataStore, recordNode)
364
+ fieldChanged('overviews') &&
365
+ this.writers['overviews'](record, dataStore, recordNode)
366
+ fieldChanged('temporalExtents') &&
367
+ this.writers['temporalExtents'](record, dataStore, recordNode)
368
+ fieldChanged('lineage') &&
369
+ this.writers['lineage'](record, dataStore, recordNode)
370
+ }
371
+
372
+ if (this.contentType.includes('xml')) {
373
+ return exportGraphToXml(dataStore)
374
+ }
375
+
376
+ return dataStore.serialize(undefined, this.contentType, null, {})
377
+ }
378
+ }
@@ -0,0 +1 @@
1
+ export * from './dcat-ap.converter'
@@ -0,0 +1,17 @@
1
+ import { Namespace } from 'rdflib'
2
+
3
+ export const RDF = Namespace('http://www.w3.org/1999/02/22-rdf-syntax-ns#')
4
+ export const RDFS = Namespace('http://www.w3.org/2000/01/rdf-schema#')
5
+ export const FOAF = Namespace('http://xmlns.com/foaf/0.1/')
6
+ export const XSD = Namespace('http://www.w3.org/2001/XMLSchema#')
7
+ export const DCAT = Namespace('http://www.w3.org/ns/dcat#')
8
+ export const DCTERMS = Namespace('http://purl.org/dc/terms/')
9
+ export const SKOS = Namespace('http://www.w3.org/2004/02/skos/core#')
10
+ export const SCHEMA_ORG = Namespace('http://schema.org/')
11
+ export const SPDX = Namespace('https://spdx.org/rdf/terms/#')
12
+ export const ADMS = Namespace('http://www.w3.org/ns/adms#')
13
+ export const DQV = Namespace('http://www.w3.org/ns/dqv#')
14
+ export const OWL = Namespace('http://www.w3.org/2002/07/owl#')
15
+ export const VCARD = Namespace('http://www.w3.org/2006/vcard/ns#')
16
+ export const TIME = Namespace('http://www.w3.org/2006/time#')
17
+ export const LOCN = Namespace('http://www.w3.org/ns/locn#')