geonetwork-ui 2.4.0-dev.e1bb65c4 → 2.4.0-dev.e550c0b3

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 (942) 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/gn4/atomic-operations.mjs +2 -1
  14. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +10 -3
  15. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.mjs +1 -1
  16. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  17. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.mjs +6 -6
  18. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +7 -4
  19. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +21 -29
  20. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +12 -17
  21. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +35 -7
  22. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.mjs +31 -0
  23. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +80 -54
  24. package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +52 -10
  25. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +110 -33
  26. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +2 -1
  27. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +3 -1
  28. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +12 -2
  29. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +68 -12
  30. package/esm2022/libs/common/domain/src/lib/model/record/contact.model.mjs +28 -1
  31. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  32. package/esm2022/libs/common/domain/src/lib/model/record/organization.model.mjs +1 -1
  33. package/esm2022/libs/common/domain/src/lib/model/user/user.model.mjs +1 -1
  34. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  35. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  36. package/esm2022/libs/data-access/gn4/src/fixtures/site.fixtures.mjs +5 -5
  37. package/esm2022/libs/data-access/gn4/src/fixtures/ui.fixtures.mjs +3 -3
  38. package/esm2022/libs/data-access/gn4/src/openapi/api/records.api.service.mjs +2 -6
  39. package/esm2022/libs/data-access/gn4/src/openapi/model/user.api.model.mjs +1 -1
  40. package/esm2022/libs/feature/catalog/src/index.mjs +2 -1
  41. package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +7 -4
  42. package/esm2022/libs/feature/catalog/src/lib/organisations/organisations.component.mjs +11 -11
  43. package/esm2022/libs/feature/catalog/src/lib/organization-url.token.mjs +4 -0
  44. package/esm2022/libs/feature/catalog/src/lib/records/records.service.mjs +4 -6
  45. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +1 -1
  46. package/esm2022/libs/feature/dataviz/src/lib/feature-dataviz.module.mjs +10 -7
  47. package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +40 -50
  48. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +1 -1
  49. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +1 -1
  50. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  51. package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +3 -1
  52. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +10 -5
  53. package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +10 -2
  54. package/esm2022/libs/feature/editor/src/lib/+state/editor.models.mjs +1 -1
  55. package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +7 -3
  56. package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +16 -6
  57. package/esm2022/libs/feature/editor/src/lib/components/contact-card/contact-card.component.mjs +17 -0
  58. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +80 -0
  59. package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +95 -0
  60. package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +71 -0
  61. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +72 -0
  62. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +109 -0
  63. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +147 -0
  64. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.mjs +19 -0
  65. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +31 -38
  66. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +11 -9
  67. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +79 -0
  68. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +151 -0
  69. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +191 -0
  70. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.mjs +44 -0
  71. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +104 -0
  72. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +12 -16
  73. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.mjs +9 -8
  74. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +140 -5
  75. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.mjs +41 -68
  76. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +17 -15
  77. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +49 -44
  78. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -3
  79. package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +13 -7
  80. package/esm2022/libs/feature/editor/src/lib/components/wizard/wizard.component.mjs +3 -3
  81. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +8 -8
  82. package/esm2022/libs/feature/editor/src/lib/expressions.mjs +1 -1
  83. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +6 -4
  84. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +215 -57
  85. package/esm2022/libs/feature/editor/src/lib/models/editor-config.model.mjs +2 -0
  86. package/esm2022/libs/feature/editor/src/lib/models/index.mjs +2 -1
  87. package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +12 -7
  88. package/esm2022/libs/feature/map/src/index.mjs +2 -9
  89. package/esm2022/libs/feature/map/src/lib/+state/map.actions.mjs +4 -7
  90. package/esm2022/libs/feature/map/src/lib/+state/map.facade.mjs +9 -15
  91. package/esm2022/libs/feature/map/src/lib/+state/map.reducer.mjs +13 -44
  92. package/esm2022/libs/feature/map/src/lib/+state/map.selectors.mjs +3 -2
  93. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +6 -6
  94. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +20 -19
  95. package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +23 -14
  96. package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +15 -14
  97. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +18 -13
  98. package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +16 -11
  99. package/esm2022/libs/feature/map/src/lib/constant/index.mjs +1 -2
  100. package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +9 -68
  101. package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +43 -29
  102. package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +43 -18
  103. package/esm2022/libs/feature/map/src/lib/map-state-container/map-state-container.component.mjs +27 -0
  104. package/esm2022/libs/feature/map/src/lib/style/map-style.fixtures.mjs +3 -3
  105. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +12 -171
  106. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +1 -1
  107. package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +42 -23
  108. package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +13 -5
  109. package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +49 -15
  110. package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +21 -17
  111. package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +14 -8
  112. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +40 -52
  113. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +9 -4
  114. package/esm2022/libs/feature/router/src/lib/default/constants.mjs +2 -1
  115. package/esm2022/libs/feature/router/src/lib/default/router.config.mjs +1 -1
  116. package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +9 -2
  117. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +8 -1
  118. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +3 -3
  119. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +54 -9
  120. package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +8 -3
  121. package/esm2022/libs/feature/search/src/lib/state/selectors.mjs +4 -1
  122. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +7 -3
  123. package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +5 -5
  124. package/esm2022/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.mjs +7 -7
  125. package/esm2022/libs/ui/catalog/src/lib/ui-catalog.module.mjs +5 -7
  126. package/esm2022/libs/ui/dataviz/src/lib/figure/figure.component.mjs +5 -8
  127. package/esm2022/libs/ui/dataviz/src/lib/table/table.fixtures.mjs +3 -3
  128. package/esm2022/libs/ui/elements/src/index.mjs +3 -3
  129. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
  130. package/esm2022/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.mjs +27 -0
  131. package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +2 -2
  132. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +1 -1
  133. package/esm2022/libs/ui/elements/src/lib/error/error.component.mjs +5 -3
  134. package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +2 -2
  135. package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +6 -5
  136. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +2 -2
  137. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +6 -6
  138. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +5 -11
  139. package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +3 -3
  140. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +5 -5
  141. package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +24 -5
  142. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +15 -11
  143. package/esm2022/libs/ui/elements/src/lib/user-preview/user-preview.component.mjs +3 -3
  144. package/esm2022/libs/ui/inputs/src/index.mjs +6 -1
  145. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +24 -7
  146. package/esm2022/libs/ui/inputs/src/lib/badge/badge.component.mjs +5 -3
  147. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +8 -1
  148. package/esm2022/libs/ui/inputs/src/lib/date-picker/date-picker.component.mjs +11 -4
  149. package/esm2022/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.mjs +9 -3
  150. package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +26 -24
  151. package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +87 -0
  152. package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +19 -15
  153. package/esm2022/libs/ui/inputs/src/lib/search-input/search-input.component.mjs +6 -4
  154. package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +34 -0
  155. package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +7 -21
  156. package/esm2022/libs/ui/inputs/src/lib/text-input/text-input.component.mjs +6 -17
  157. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +4 -13
  158. package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +59 -0
  159. package/esm2022/libs/ui/layout/src/index.mjs +4 -1
  160. package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +5 -3
  161. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +3 -3
  162. package/esm2022/libs/ui/layout/src/lib/max-lines/max-lines.component.mjs +71 -0
  163. package/esm2022/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.mjs +29 -0
  164. package/esm2022/libs/ui/layout/src/lib/sortable-list/sortable-list.component.mjs +43 -0
  165. package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +1 -1
  166. package/esm2022/libs/ui/map/src/index.mjs +4 -3
  167. package/esm2022/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.mjs +8 -6
  168. package/esm2022/libs/ui/map/src/lib/components/map-container/map-container.component.mjs +137 -0
  169. package/esm2022/libs/ui/map/src/lib/components/map-container/map-settings.token.mjs +13 -0
  170. package/esm2022/libs/ui/map/src/lib/map-utils.mjs +37 -0
  171. package/esm2022/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.mjs +7 -7
  172. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +67 -0
  173. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +33 -13
  174. package/esm2022/libs/ui/widgets/src/index.mjs +2 -1
  175. package/esm2022/libs/ui/widgets/src/lib/popover/popover.component.mjs +68 -0
  176. package/esm2022/libs/util/app-config/src/index.mjs +2 -1
  177. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +10 -10
  178. package/esm2022/libs/util/app-config/src/lib/map-layers.mjs +27 -0
  179. package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +1 -1
  180. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +1 -1
  181. package/esm2022/libs/util/shared/src/lib/services/theme.service.mjs +2 -1
  182. package/esm2022/libs/util/shared/src/lib/utils/bytes-convert.mjs +4 -1
  183. package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
  184. package/esm2022/libs/util/shared/src/lib/utils/no-duplicate-file-name.mjs +19 -0
  185. package/esm2022/translations/de.json +167 -37
  186. package/esm2022/translations/en.json +168 -38
  187. package/esm2022/translations/es.json +138 -8
  188. package/esm2022/translations/fr.json +200 -70
  189. package/esm2022/translations/it.json +141 -11
  190. package/esm2022/translations/nl.json +138 -8
  191. package/esm2022/translations/pt.json +138 -8
  192. package/fesm2022/geonetwork-ui.mjs +7668 -4418
  193. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  194. package/libs/api/metadata-converter/src/index.d.ts +3 -0
  195. package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
  196. package/libs/api/metadata-converter/src/lib/common/license.d.ts +3 -0
  197. package/libs/api/metadata-converter/src/lib/common/license.d.ts.map +1 -0
  198. package/libs/api/metadata-converter/src/lib/common/url.d.ts +7 -0
  199. package/libs/api/metadata-converter/src/lib/common/url.d.ts.map +1 -0
  200. package/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.d.ts +13 -0
  201. package/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.d.ts.map +1 -0
  202. package/libs/api/metadata-converter/src/lib/dcat-ap/index.d.ts +2 -0
  203. package/libs/api/metadata-converter/src/lib/dcat-ap/index.d.ts.map +1 -0
  204. package/libs/api/metadata-converter/src/lib/dcat-ap/namespaces.d.ts +16 -0
  205. package/libs/api/metadata-converter/src/lib/dcat-ap/namespaces.d.ts.map +1 -0
  206. package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts +20 -0
  207. package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts.map +1 -0
  208. package/libs/api/metadata-converter/src/lib/dcat-ap/utils/graph-utils.d.ts +9 -0
  209. package/libs/api/metadata-converter/src/lib/dcat-ap/utils/graph-utils.d.ts.map +1 -0
  210. package/libs/api/metadata-converter/src/lib/dcat-ap/utils/serialize-to-xml.d.ts +8 -0
  211. package/libs/api/metadata-converter/src/lib/dcat-ap/utils/serialize-to-xml.d.ts.map +1 -0
  212. package/libs/api/metadata-converter/src/lib/dcat-ap/utils/uri.d.ts +2 -0
  213. package/libs/api/metadata-converter/src/lib/dcat-ap/utils/uri.d.ts.map +1 -0
  214. package/libs/api/metadata-converter/src/lib/dcat-ap/write-parts.d.ts +6 -0
  215. package/libs/api/metadata-converter/src/lib/dcat-ap/write-parts.d.ts.map +1 -0
  216. package/libs/api/metadata-converter/src/lib/find-converter.d.ts.map +1 -1
  217. package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
  218. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +3 -3
  219. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  220. package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts +2 -6
  221. package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts.map +1 -1
  222. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +1 -0
  223. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  224. package/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.d.ts.map +1 -1
  225. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +2 -2
  226. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -1
  227. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts +1 -2
  228. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -1
  229. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
  230. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +12 -6
  231. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  232. package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts +5 -0
  233. package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts.map +1 -0
  234. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +13 -12
  235. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  236. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +59 -0
  237. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
  238. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +20 -8
  239. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  240. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.d.ts.map +1 -1
  241. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
  242. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
  243. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +12 -4
  244. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  245. package/libs/common/domain/src/lib/model/record/contact.model.d.ts +2 -1
  246. package/libs/common/domain/src/lib/model/record/contact.model.d.ts.map +1 -1
  247. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +9 -7
  248. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  249. package/libs/common/domain/src/lib/model/record/organization.model.d.ts +1 -0
  250. package/libs/common/domain/src/lib/model/record/organization.model.d.ts.map +1 -1
  251. package/libs/common/domain/src/lib/model/user/user.model.d.ts +1 -1
  252. package/libs/common/domain/src/lib/model/user/user.model.d.ts.map +1 -1
  253. package/libs/common/domain/src/lib/platform.service.interface.d.ts +17 -1
  254. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  255. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +25 -0
  256. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  257. package/libs/data-access/gn4/src/fixtures/site.fixtures.d.ts +2 -2
  258. package/libs/data-access/gn4/src/fixtures/site.fixtures.d.ts.map +1 -1
  259. package/libs/data-access/gn4/src/fixtures/ui.fixtures.d.ts +1 -1
  260. package/libs/data-access/gn4/src/fixtures/ui.fixtures.d.ts.map +1 -1
  261. package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts.map +1 -1
  262. package/libs/data-access/gn4/src/openapi/model/user.api.model.d.ts +1 -1
  263. package/libs/feature/catalog/src/index.d.ts +1 -0
  264. package/libs/feature/catalog/src/index.d.ts.map +1 -1
  265. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts +2 -1
  266. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +1 -1
  267. package/libs/feature/catalog/src/lib/organisations/organisations.component.d.ts.map +1 -1
  268. package/libs/feature/catalog/src/lib/organization-url.token.d.ts +3 -0
  269. package/libs/feature/catalog/src/lib/organization-url.token.d.ts.map +1 -0
  270. package/libs/feature/catalog/src/lib/records/records.service.d.ts.map +1 -1
  271. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +2 -2
  272. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  273. package/libs/feature/dataviz/src/lib/feature-dataviz.module.d.ts +10 -9
  274. package/libs/feature/dataviz/src/lib/feature-dataviz.module.d.ts.map +1 -1
  275. package/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.d.ts +13 -20
  276. package/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.d.ts.map +1 -1
  277. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +6 -6
  278. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  279. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +3 -3
  280. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  281. package/libs/feature/editor/src/index.d.ts +1 -0
  282. package/libs/feature/editor/src/index.d.ts.map +1 -1
  283. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +6 -0
  284. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
  285. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +5 -0
  286. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
  287. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +5 -4
  288. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
  289. package/libs/feature/editor/src/lib/+state/editor.models.d.ts +8 -0
  290. package/libs/feature/editor/src/lib/+state/editor.models.d.ts.map +1 -1
  291. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts +4 -3
  292. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -1
  293. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +4 -8
  294. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -1
  295. package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts +8 -0
  296. package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts.map +1 -0
  297. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts +33 -0
  298. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -0
  299. package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts +34 -0
  300. package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts.map +1 -0
  301. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts +15 -0
  302. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts.map +1 -0
  303. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +16 -0
  304. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -0
  305. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.d.ts +38 -0
  306. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.d.ts.map +1 -0
  307. 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
  308. 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
  309. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.d.ts +9 -0
  310. 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
  311. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts +11 -19
  312. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -1
  313. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts +6 -4
  314. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts.map +1 -1
  315. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts +15 -0
  316. 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
  317. 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
  318. 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
  319. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts +44 -0
  320. 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
  321. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts +15 -0
  322. 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
  323. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +31 -0
  324. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -0
  325. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts +4 -6
  326. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -1
  327. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.d.ts +4 -3
  328. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.d.ts.map +1 -1
  329. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts +28 -0
  330. 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
  331. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts +10 -16
  332. 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
  333. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts +5 -5
  334. 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
  335. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +18 -20
  336. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  337. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -2
  338. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  339. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts +7 -7
  340. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -1
  341. package/libs/feature/editor/src/lib/expressions.d.ts +1 -1
  342. package/libs/feature/editor/src/lib/expressions.d.ts.map +1 -1
  343. package/libs/feature/editor/src/lib/feature-editor.module.d.ts +2 -1
  344. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  345. package/libs/feature/editor/src/lib/fields.config.d.ts +56 -2
  346. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  347. package/libs/feature/editor/src/lib/models/editor-config.model.d.ts +42 -0
  348. package/libs/feature/editor/src/lib/models/editor-config.model.d.ts.map +1 -0
  349. package/libs/feature/editor/src/lib/models/index.d.ts +1 -0
  350. package/libs/feature/editor/src/lib/models/index.d.ts.map +1 -1
  351. package/libs/feature/editor/src/lib/services/editor.service.d.ts +4 -3
  352. package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
  353. package/libs/feature/map/src/index.d.ts +1 -8
  354. package/libs/feature/map/src/index.d.ts.map +1 -1
  355. package/libs/feature/map/src/lib/+state/map.actions.d.ts +13 -39
  356. package/libs/feature/map/src/lib/+state/map.actions.d.ts.map +1 -1
  357. package/libs/feature/map/src/lib/+state/map.facade.d.ts +9 -10
  358. package/libs/feature/map/src/lib/+state/map.facade.d.ts.map +1 -1
  359. package/libs/feature/map/src/lib/+state/map.reducer.d.ts +4 -2
  360. package/libs/feature/map/src/lib/+state/map.reducer.d.ts.map +1 -1
  361. package/libs/feature/map/src/lib/+state/map.selectors.d.ts +6 -1
  362. package/libs/feature/map/src/lib/+state/map.selectors.d.ts.map +1 -1
  363. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts +1 -1
  364. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts.map +1 -1
  365. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts +8 -10
  366. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts.map +1 -1
  367. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts +1 -1
  368. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -1
  369. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +3 -3
  370. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -1
  371. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts +2 -2
  372. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -1
  373. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts +2 -2
  374. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts.map +1 -1
  375. package/libs/feature/map/src/lib/constant/index.d.ts +0 -1
  376. package/libs/feature/map/src/lib/constant/index.d.ts.map +1 -1
  377. package/libs/feature/map/src/lib/feature-map.module.d.ts +12 -23
  378. package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
  379. package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts +7 -7
  380. package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts.map +1 -1
  381. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts +5 -4
  382. package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
  383. package/libs/feature/map/src/lib/map-state-container/map-state-container.component.d.ts +14 -0
  384. package/libs/feature/map/src/lib/map-state-container/map-state-container.component.d.ts.map +1 -0
  385. package/libs/feature/map/src/lib/style/map-style.fixtures.d.ts +2 -2
  386. package/libs/feature/map/src/lib/style/map-style.fixtures.d.ts.map +1 -1
  387. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +0 -30
  388. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  389. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +3 -3
  390. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  391. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +4 -1
  392. package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
  393. package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts +4 -1
  394. package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts.map +1 -1
  395. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +4 -1
  396. package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
  397. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts +10 -7
  398. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
  399. package/libs/feature/record/src/lib/feature-record.module.d.ts +13 -11
  400. package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
  401. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +14 -20
  402. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  403. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +7 -7
  404. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  405. package/libs/feature/router/src/lib/default/constants.d.ts +1 -0
  406. package/libs/feature/router/src/lib/default/constants.d.ts.map +1 -1
  407. package/libs/feature/router/src/lib/default/router.config.d.ts +1 -0
  408. package/libs/feature/router/src/lib/default/router.config.d.ts.map +1 -1
  409. package/libs/feature/router/src/lib/default/router.service.d.ts +1 -0
  410. package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
  411. package/libs/feature/router/src/lib/default/state/router.facade.d.ts +1 -0
  412. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  413. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +18 -6
  414. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  415. package/libs/feature/search/src/lib/state/search.facade.d.ts +2 -0
  416. package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
  417. package/libs/feature/search/src/lib/state/selectors.d.ts +1 -0
  418. package/libs/feature/search/src/lib/state/selectors.d.ts.map +1 -1
  419. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  420. package/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.d.ts +2 -2
  421. package/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.d.ts +1 -1
  422. package/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.d.ts.map +1 -1
  423. package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts +9 -9
  424. package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts.map +1 -1
  425. package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts +1 -2
  426. package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts.map +1 -1
  427. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts +2 -2
  428. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts.map +1 -1
  429. package/libs/ui/elements/src/index.d.ts +2 -2
  430. package/libs/ui/elements/src/index.d.ts.map +1 -1
  431. package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts +18 -0
  432. package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts.map +1 -0
  433. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts +2 -2
  434. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
  435. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +7 -7
  436. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  437. package/libs/ui/elements/src/lib/error/error.component.d.ts +3 -1
  438. package/libs/ui/elements/src/lib/error/error.component.d.ts.map +1 -1
  439. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts +2 -2
  440. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +1 -1
  441. package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts +2 -2
  442. package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts.map +1 -1
  443. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +0 -3
  444. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  445. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
  446. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +5 -1
  447. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +1 -1
  448. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +17 -15
  449. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  450. package/libs/ui/inputs/src/index.d.ts +5 -0
  451. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  452. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +9 -1
  453. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  454. package/libs/ui/inputs/src/lib/badge/badge.component.d.ts.map +1 -1
  455. package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
  456. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  457. package/libs/ui/inputs/src/lib/date-picker/date-picker.component.d.ts.map +1 -1
  458. package/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.d.ts.map +1 -1
  459. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts +5 -3
  460. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -1
  461. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts +24 -0
  462. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts.map +1 -0
  463. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +4 -5
  464. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -1
  465. package/libs/ui/inputs/src/lib/search-input/search-input.component.d.ts +1 -1
  466. package/libs/ui/inputs/src/lib/search-input/search-input.component.d.ts.map +1 -1
  467. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts +17 -0
  468. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts.map +1 -0
  469. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +0 -4
  470. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
  471. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts +2 -4
  472. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts.map +1 -1
  473. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +33 -35
  474. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  475. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +21 -0
  476. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -0
  477. package/libs/ui/layout/src/index.d.ts +3 -0
  478. package/libs/ui/layout/src/index.d.ts.map +1 -1
  479. package/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.d.ts +2 -2
  480. package/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.d.ts.map +1 -1
  481. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +1 -1
  482. package/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.d.ts +2 -2
  483. package/libs/ui/layout/src/lib/max-lines/max-lines.component.d.ts.map +1 -0
  484. package/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.d.ts +20 -0
  485. package/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.d.ts.map +1 -0
  486. package/libs/ui/layout/src/lib/sortable-list/sortable-list.component.d.ts +14 -0
  487. package/libs/ui/layout/src/lib/sortable-list/sortable-list.component.d.ts.map +1 -0
  488. package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +1 -1
  489. package/libs/ui/map/src/index.d.ts +3 -2
  490. package/libs/ui/map/src/index.d.ts.map +1 -1
  491. package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts +3 -4
  492. package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts.map +1 -1
  493. package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts +37 -0
  494. package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts.map +1 -0
  495. package/libs/ui/map/src/lib/components/map-container/map-settings.token.d.ts +18 -0
  496. package/libs/ui/map/src/lib/components/map-container/map-settings.token.d.ts.map +1 -0
  497. package/libs/ui/map/src/lib/map-utils.d.ts +7 -0
  498. package/libs/ui/map/src/lib/map-utils.d.ts.map +1 -0
  499. package/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.d.ts +3 -3
  500. package/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.d.ts.map +1 -1
  501. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +20 -0
  502. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -0
  503. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +11 -5
  504. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  505. package/libs/ui/widgets/src/index.d.ts +1 -0
  506. package/libs/ui/widgets/src/index.d.ts.map +1 -1
  507. package/libs/ui/widgets/src/lib/popover/popover.component.d.ts +19 -0
  508. package/libs/ui/widgets/src/lib/popover/popover.component.d.ts.map +1 -0
  509. package/libs/util/app-config/src/index.d.ts +1 -0
  510. package/libs/util/app-config/src/index.d.ts.map +1 -1
  511. package/libs/util/app-config/src/lib/fixtures.d.ts +8 -8
  512. package/libs/util/app-config/src/lib/fixtures.d.ts.map +1 -1
  513. package/libs/util/app-config/src/lib/map-layers.d.ts +4 -0
  514. package/libs/util/app-config/src/lib/map-layers.d.ts.map +1 -0
  515. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts +3 -3
  516. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
  517. package/libs/util/shared/src/lib/links/link-utils.d.ts +6 -6
  518. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  519. package/libs/util/shared/src/lib/services/theme.service.d.ts.map +1 -1
  520. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts +2 -1
  521. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts.map +1 -1
  522. package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
  523. package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
  524. package/libs/util/shared/src/lib/utils/no-duplicate-file-name.d.ts +2 -0
  525. package/libs/util/shared/src/lib/utils/no-duplicate-file-name.d.ts.map +1 -0
  526. package/package.json +5 -3
  527. package/src/libs/api/metadata-converter/src/index.ts +3 -0
  528. package/src/libs/api/metadata-converter/src/lib/common/license.ts +66 -0
  529. package/src/libs/api/metadata-converter/src/lib/common/url.ts +15 -0
  530. package/src/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.ts +378 -0
  531. package/src/libs/api/metadata-converter/src/lib/dcat-ap/index.ts +1 -0
  532. package/src/libs/api/metadata-converter/src/lib/dcat-ap/namespaces.ts +17 -0
  533. package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +370 -0
  534. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/graph-utils.ts +95 -0
  535. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/individual-name.ts +20 -0
  536. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/keyword.mapper.ts +16 -0
  537. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/role.mapper.ts +48 -0
  538. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/serialize-to-xml.ts +97 -0
  539. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/status.mapper.ts +19 -0
  540. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/update-frequency.mapper.ts +67 -0
  541. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/uri.ts +1 -0
  542. package/src/libs/api/metadata-converter/src/lib/dcat-ap/write-parts.ts +68 -0
  543. package/src/libs/api/metadata-converter/src/lib/find-converter.ts +13 -0
  544. package/src/libs/api/metadata-converter/src/lib/fixtures/eu.dcat-ap.records.ts +272 -0
  545. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +7 -2
  546. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +6 -2
  547. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +38 -13
  548. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +6 -2
  549. package/src/libs/api/metadata-converter/src/lib/fixtures/opendataswiss.records.ts +110 -0
  550. package/src/libs/api/metadata-converter/src/lib/fixtures/sextant.records.ts +85 -0
  551. package/src/libs/api/metadata-converter/src/lib/fixtures/vlaanderen.dcat-ap.records.ts +73 -0
  552. package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +1 -0
  553. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +18 -16
  554. package/src/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.ts +2 -6
  555. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +1 -0
  556. package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +5 -6
  557. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +12 -4
  558. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +28 -43
  559. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +11 -16
  560. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +85 -17
  561. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.ts +39 -0
  562. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +210 -157
  563. package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +58 -12
  564. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +175 -60
  565. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +1 -0
  566. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +3 -1
  567. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +13 -2
  568. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +144 -31
  569. package/src/libs/common/domain/src/lib/model/record/contact.model.ts +29 -1
  570. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +10 -8
  571. package/src/libs/common/domain/src/lib/model/record/organization.model.ts +1 -0
  572. package/src/libs/common/domain/src/lib/model/user/user.model.ts +1 -1
  573. package/src/libs/common/domain/src/lib/platform.service.interface.ts +35 -1
  574. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +33 -0
  575. package/src/libs/common/fixtures/src/index.ts +6 -1
  576. package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +156 -0
  577. package/src/libs/common/fixtures/src/lib/editor/index.ts +1 -0
  578. package/src/libs/common/fixtures/src/lib/elasticsearch/{aggregations-request.ts → aggregations-request.fixtures.ts} +1 -3
  579. package/src/libs/common/fixtures/src/lib/elasticsearch/{aggregations-response.ts → aggregations-response.fixtures.ts} +6 -8
  580. package/src/libs/common/fixtures/src/lib/elasticsearch/{full-response.ts → full-response.fixtures.ts} +1 -3
  581. package/src/libs/common/fixtures/src/lib/elasticsearch/index.ts +5 -5
  582. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +1 -3
  583. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata.fixtures.ts +1739 -1742
  584. package/src/libs/common/fixtures/src/lib/elasticsearch/{search-requests.ts → search-requests.fixtures.ts} +1 -3
  585. package/src/libs/common/fixtures/src/lib/elasticsearch/{search-responses.ts → search-responses.fixtures.ts} +4 -6
  586. package/src/libs/common/fixtures/src/lib/geojson.fixtures.ts +57178 -57195
  587. package/src/libs/common/fixtures/src/lib/gn4/groups.fixtures.ts +2 -4
  588. package/src/libs/common/fixtures/src/lib/individual.fixtures.ts +61 -0
  589. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +233 -164
  590. package/src/libs/common/fixtures/src/lib/map/index.ts +1 -0
  591. package/src/libs/common/fixtures/src/lib/map/map-context.fixtures.ts +53 -0
  592. package/src/libs/common/fixtures/src/lib/ol-feature.fixtures.ts +10 -0
  593. package/src/libs/common/fixtures/src/lib/organisations.fixture.ts +65 -3
  594. package/src/libs/common/fixtures/src/lib/record-link.fixtures.ts +9 -7
  595. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +9 -9
  596. package/src/libs/common/fixtures/src/lib/repository.fixtures.ts +4 -4
  597. package/src/libs/common/fixtures/src/lib/search/aggregations.ts +2 -3
  598. package/src/libs/common/fixtures/src/lib/user-feedbacks.fixtures.ts +14 -15
  599. package/src/libs/common/fixtures/src/lib/user.fixtures.ts +45 -15
  600. package/src/libs/data-access/datafeeder/src/openapi/model/datasetMetadata.api.model.ts +4 -0
  601. package/src/libs/data-access/datafeeder/src/openapi/model/datasetUploadStatus.api.model.ts +2 -0
  602. package/src/libs/data-access/gn4/src/fixtures/site.fixtures.ts +4 -4
  603. package/src/libs/data-access/gn4/src/fixtures/ui.fixtures.ts +2 -2
  604. package/src/libs/data-access/gn4/src/openapi/api/records.api.service.ts +1 -5
  605. package/src/libs/data-access/gn4/src/openapi/model/user.api.model.ts +1 -1
  606. package/src/libs/data-access/gn4/src/spec.yaml +0 -8
  607. package/src/libs/feature/catalog/src/index.ts +1 -0
  608. package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +5 -2
  609. package/src/libs/feature/catalog/src/lib/organisations/organisations.component.html +1 -1
  610. package/src/libs/feature/catalog/src/lib/organisations/organisations.component.ts +2 -2
  611. package/src/libs/feature/catalog/src/lib/organization-url.token.ts +6 -0
  612. package/src/libs/feature/catalog/src/lib/records/records.service.ts +6 -8
  613. package/src/libs/feature/catalog/src/lib/sources/sources.fixture.ts +1 -1
  614. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +3 -3
  615. package/src/libs/feature/dataviz/src/lib/feature-dataviz.module.ts +6 -2
  616. package/src/libs/feature/dataviz/src/lib/figure/figure.fixtures.ts +2 -2
  617. package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.html +5 -2
  618. package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.ts +38 -78
  619. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +6 -6
  620. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +4 -4
  621. package/src/libs/feature/editor/src/index.ts +1 -0
  622. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +7 -0
  623. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +28 -6
  624. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +13 -1
  625. package/src/libs/feature/editor/src/lib/+state/editor.models.ts +11 -0
  626. package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +11 -5
  627. package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +22 -8
  628. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.html +15 -0
  629. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.ts +18 -0
  630. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.html +26 -0
  631. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +90 -0
  632. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.html +47 -0
  633. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +132 -0
  634. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.html +35 -0
  635. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +79 -0
  636. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html +31 -0
  637. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +82 -0
  638. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.html +40 -0
  639. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.ts +170 -0
  640. 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
  641. 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
  642. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +210 -0
  643. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.html +4 -0
  644. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.ts +21 -0
  645. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.html +7 -16
  646. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +43 -42
  647. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.css +8 -0
  648. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.ts +13 -5
  649. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +1 -0
  650. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.ts +86 -0
  651. 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
  652. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.html +43 -0
  653. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.ts +186 -0
  654. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.css +0 -0
  655. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.html +71 -0
  656. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts +241 -0
  657. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.css +0 -0
  658. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.html +6 -0
  659. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.ts +48 -0
  660. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.css +0 -0
  661. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +11 -0
  662. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +123 -0
  663. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.html +15 -8
  664. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +11 -14
  665. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.html +5 -3
  666. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.ts +11 -4
  667. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +20 -1
  668. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +212 -1
  669. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.css +4 -0
  670. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.html +31 -4
  671. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.ts +43 -86
  672. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.css +4 -0
  673. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.html +16 -14
  674. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +17 -15
  675. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +127 -70
  676. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +56 -44
  677. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -2
  678. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +52 -9
  679. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +20 -7
  680. package/src/libs/feature/editor/src/lib/components/wizard/wizard.component.html +2 -6
  681. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +1 -1
  682. package/src/libs/feature/editor/src/lib/expressions.ts +1 -1
  683. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +2 -1
  684. package/src/libs/feature/editor/src/lib/fields.config.ts +256 -57
  685. package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +65 -0
  686. package/src/libs/feature/editor/src/lib/models/index.ts +1 -0
  687. package/src/libs/feature/editor/src/lib/services/editor.service.ts +22 -7
  688. package/src/libs/feature/map/src/index.ts +1 -8
  689. package/src/libs/feature/map/src/lib/+state/map.actions.ts +10 -25
  690. package/src/libs/feature/map/src/lib/+state/map.facade.ts +11 -15
  691. package/src/libs/feature/map/src/lib/+state/map.reducer.ts +16 -53
  692. package/src/libs/feature/map/src/lib/+state/map.selectors.ts +7 -2
  693. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.ts +3 -0
  694. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.ts +23 -22
  695. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +22 -11
  696. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.html +1 -1
  697. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +21 -19
  698. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.html +1 -1
  699. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +17 -10
  700. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.html +1 -1
  701. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.ts +17 -10
  702. package/src/libs/feature/map/src/lib/constant/index.ts +0 -1
  703. package/src/libs/feature/map/src/lib/feature-map.module.ts +2 -41
  704. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +38 -20
  705. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.html +2 -2
  706. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +39 -6
  707. package/src/libs/feature/map/src/lib/map-state-container/map-state-container.component.css +0 -0
  708. package/src/libs/feature/map/src/lib/map-state-container/map-state-container.component.html +4 -0
  709. package/src/libs/feature/map/src/lib/map-state-container/map-state-container.component.ts +29 -0
  710. package/src/libs/feature/map/src/lib/style/map-style.fixtures.ts +29 -27
  711. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +8 -232
  712. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +3 -3
  713. package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +36 -19
  714. package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.html +6 -2
  715. package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.ts +11 -0
  716. package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +59 -12
  717. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +29 -20
  718. package/src/libs/feature/record/src/lib/feature-record.module.ts +11 -3
  719. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +4 -4
  720. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +45 -72
  721. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +11 -3
  722. package/src/libs/feature/router/src/lib/default/constants.ts +1 -0
  723. package/src/libs/feature/router/src/lib/default/router.config.ts +1 -0
  724. package/src/libs/feature/router/src/lib/default/router.service.ts +13 -1
  725. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +8 -0
  726. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +2 -1
  727. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +8 -2
  728. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +70 -5
  729. package/src/libs/feature/search/src/lib/state/fixtures/search-state.fixtures.ts +2 -2
  730. package/src/libs/feature/search/src/lib/state/search.facade.ts +11 -0
  731. package/src/libs/feature/search/src/lib/state/selectors.ts +7 -0
  732. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +16 -2
  733. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.html +8 -6
  734. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.ts +2 -2
  735. package/src/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.ts +8 -1
  736. package/src/libs/ui/catalog/src/lib/ui-catalog.module.ts +2 -3
  737. package/src/libs/ui/dataviz/src/lib/chart/chart.fixtures.ts +2 -2
  738. package/src/libs/ui/dataviz/src/lib/figure/figure.component.html +11 -3
  739. package/src/libs/ui/dataviz/src/lib/figure/figure.component.ts +3 -7
  740. package/src/libs/ui/dataviz/src/lib/table/table.fixtures.ts +2 -2
  741. package/src/libs/ui/elements/src/index.ts +2 -2
  742. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +29 -29
  743. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.css +0 -0
  744. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.html +12 -0
  745. package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.ts +37 -0
  746. package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +4 -4
  747. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +7 -7
  748. package/src/libs/ui/elements/src/lib/error/error.component.html +30 -6
  749. package/src/libs/ui/elements/src/lib/error/error.component.ts +2 -0
  750. package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +3 -3
  751. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +13 -17
  752. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +1 -1
  753. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +7 -1
  754. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +12 -8
  755. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +14 -20
  756. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +0 -10
  757. package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.html +1 -1
  758. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +2 -2
  759. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +1 -1
  760. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +22 -1
  761. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +10 -6
  762. package/src/libs/ui/elements/src/lib/user-preview/user-preview.component.html +1 -1
  763. package/src/libs/ui/inputs/src/index.ts +5 -0
  764. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.css +25 -18
  765. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +38 -24
  766. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +19 -4
  767. package/src/libs/ui/inputs/src/lib/badge/badge.component.html +11 -3
  768. package/src/libs/ui/inputs/src/lib/badge/badge.component.ts +2 -1
  769. package/src/libs/ui/inputs/src/lib/button/button.component.ts +15 -1
  770. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.css +7 -2
  771. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.html +14 -6
  772. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.ts +7 -1
  773. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.css +7 -2
  774. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.html +28 -23
  775. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.ts +7 -1
  776. package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +40 -26
  777. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.css +4 -0
  778. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.html +89 -0
  779. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.ts +92 -0
  780. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.css +4 -0
  781. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +76 -68
  782. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +17 -14
  783. package/src/libs/ui/inputs/src/lib/search-input/search-input.component.ts +5 -1
  784. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.css +32 -0
  785. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.html +14 -0
  786. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +39 -0
  787. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.html +3 -2
  788. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +3 -28
  789. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.html +4 -3
  790. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.ts +4 -16
  791. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -6
  792. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.css +9 -0
  793. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.html +41 -0
  794. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +56 -0
  795. package/src/libs/ui/layout/src/index.ts +3 -0
  796. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.html +8 -3
  797. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.ts +4 -3
  798. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.css +1 -1
  799. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +3 -2
  800. package/src/libs/ui/layout/src/lib/max-lines/max-lines.component.css +0 -0
  801. package/src/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.html +1 -0
  802. package/src/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.ts +9 -5
  803. package/src/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.css +0 -0
  804. package/src/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.html +15 -0
  805. package/src/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.ts +44 -0
  806. package/src/libs/ui/layout/src/lib/sortable-list/sortable-list.component.html +37 -0
  807. package/src/libs/ui/{elements → layout}/src/lib/sortable-list/sortable-list.component.ts +15 -18
  808. package/src/libs/ui/layout/src/lib/ui-layout.module.ts +0 -1
  809. package/src/libs/ui/map/src/index.ts +3 -2
  810. package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.html +1 -1
  811. package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.ts +8 -5
  812. package/src/libs/ui/map/src/lib/components/map-container/map-container.component.css +0 -0
  813. package/src/libs/ui/map/src/lib/components/map-container/map-container.component.ts +203 -0
  814. package/src/libs/ui/map/src/lib/components/map-container/map-settings.token.ts +23 -0
  815. package/src/libs/ui/map/src/lib/map-utils.ts +54 -0
  816. package/src/libs/ui/search/src/lib/facets/fixtures/aggregations-model-response.ts +7 -6
  817. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.css +0 -0
  818. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +26 -0
  819. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +74 -0
  820. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +35 -10
  821. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +31 -18
  822. package/src/libs/ui/widgets/src/index.ts +1 -0
  823. package/src/libs/ui/widgets/src/lib/popover/popover.component.css +0 -0
  824. package/src/libs/ui/widgets/src/lib/popover/popover.component.html +3 -0
  825. package/src/libs/ui/widgets/src/lib/popover/popover.component.ts +85 -0
  826. package/src/libs/util/app-config/src/index.ts +1 -0
  827. package/src/libs/util/app-config/src/lib/fixtures.ts +9 -9
  828. package/src/libs/util/app-config/src/lib/map-layers.ts +31 -0
  829. package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +4 -3
  830. package/src/libs/util/shared/src/lib/links/link-utils.ts +6 -6
  831. package/src/libs/util/shared/src/lib/services/theme.service.ts +1 -0
  832. package/src/libs/util/shared/src/lib/utils/bytes-convert.ts +4 -1
  833. package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
  834. package/src/libs/util/shared/src/lib/utils/no-duplicate-file-name.ts +23 -0
  835. package/tailwind.base.config.js +1 -0
  836. package/tailwind.base.css +53 -8
  837. package/translations/de.json +167 -37
  838. package/translations/en.json +168 -38
  839. package/translations/es.json +138 -8
  840. package/translations/fr.json +200 -70
  841. package/translations/it.json +141 -11
  842. package/translations/nl.json +138 -8
  843. package/translations/pt.json +138 -8
  844. package/translations/sk.json +140 -10
  845. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.mjs +0 -15
  846. 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
  847. 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
  848. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.mjs +0 -2
  849. package/esm2022/libs/feature/editor/src/lib/models/fields.model.mjs +0 -2
  850. package/esm2022/libs/feature/map/src/lib/+state/map.effects.mjs +0 -15
  851. package/esm2022/libs/feature/map/src/lib/+state/map.models.mjs +0 -2
  852. package/esm2022/libs/feature/map/src/lib/constant/map-options.mjs +0 -8
  853. package/esm2022/libs/feature/map/src/lib/constant/style.constant.mjs +0 -17
  854. package/esm2022/libs/feature/map/src/lib/feature-info/feature-info.service.mjs +0 -38
  855. package/esm2022/libs/feature/map/src/lib/manager/map-instance.directive.mjs +0 -19
  856. package/esm2022/libs/feature/map/src/lib/manager/map-manager.service.mjs +0 -19
  857. package/esm2022/libs/feature/map/src/lib/map-container/map-container.component.mjs +0 -27
  858. package/esm2022/libs/feature/map/src/lib/map-context/component/map-context.component.mjs +0 -46
  859. package/esm2022/libs/feature/map/src/lib/map-context/map-context.model.mjs +0 -10
  860. package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +0 -289
  861. package/esm2022/libs/ui/elements/src/lib/max-lines/max-lines.component.mjs +0 -69
  862. package/esm2022/libs/ui/elements/src/lib/sortable-list/sortable-list.component.mjs +0 -43
  863. package/esm2022/libs/ui/map/src/lib/components/map/map.component.mjs +0 -40
  864. package/esm2022/libs/ui/map/src/lib/ui-map.module.mjs +0 -33
  865. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts +0 -8
  866. 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
  867. 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
  868. 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
  869. 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
  870. 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
  871. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts +0 -26
  872. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts.map +0 -1
  873. package/libs/feature/editor/src/lib/models/fields.model.d.ts +0 -15
  874. package/libs/feature/editor/src/lib/models/fields.model.d.ts.map +0 -1
  875. package/libs/feature/map/src/lib/+state/map.effects.d.ts +0 -9
  876. package/libs/feature/map/src/lib/+state/map.effects.d.ts.map +0 -1
  877. package/libs/feature/map/src/lib/+state/map.models.d.ts +0 -9
  878. package/libs/feature/map/src/lib/+state/map.models.d.ts.map +0 -1
  879. package/libs/feature/map/src/lib/constant/map-options.d.ts +0 -9
  880. package/libs/feature/map/src/lib/constant/map-options.d.ts.map +0 -1
  881. package/libs/feature/map/src/lib/constant/style.constant.d.ts +0 -4
  882. package/libs/feature/map/src/lib/constant/style.constant.d.ts.map +0 -1
  883. package/libs/feature/map/src/lib/feature-info/feature-info.service.d.ts +0 -16
  884. package/libs/feature/map/src/lib/feature-info/feature-info.service.d.ts.map +0 -1
  885. package/libs/feature/map/src/lib/manager/map-instance.directive.d.ts +0 -9
  886. package/libs/feature/map/src/lib/manager/map-instance.directive.d.ts.map +0 -1
  887. package/libs/feature/map/src/lib/manager/map-manager.service.d.ts +0 -11
  888. package/libs/feature/map/src/lib/manager/map-manager.service.d.ts.map +0 -1
  889. package/libs/feature/map/src/lib/map-container/map-container.component.d.ts +0 -12
  890. package/libs/feature/map/src/lib/map-container/map-container.component.d.ts.map +0 -1
  891. package/libs/feature/map/src/lib/map-context/component/map-context.component.d.ts +0 -26
  892. package/libs/feature/map/src/lib/map-context/component/map-context.component.d.ts.map +0 -1
  893. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts +0 -77
  894. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts.map +0 -1
  895. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts +0 -26
  896. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +0 -1
  897. package/libs/ui/elements/src/lib/max-lines/max-lines.component.d.ts.map +0 -1
  898. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts +0 -22
  899. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts.map +0 -1
  900. package/libs/ui/map/src/lib/components/map/map.component.d.ts +0 -19
  901. package/libs/ui/map/src/lib/components/map/map.component.d.ts.map +0 -1
  902. package/libs/ui/map/src/lib/ui-map.module.d.ts +0 -13
  903. package/libs/ui/map/src/lib/ui-map.module.d.ts.map +0 -1
  904. package/src/libs/common/fixtures/src/lib/ol-feature.fixture.ts +0 -7
  905. package/src/libs/common/fixtures/src/lib/utils/freeze.ts +0 -10
  906. package/src/libs/common/fixtures/src/lib/utils/index.ts +0 -1
  907. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +0 -8
  908. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +0 -70
  909. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.html +0 -4
  910. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.ts +0 -15
  911. 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
  912. 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
  913. 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
  914. 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
  915. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.ts +0 -43
  916. package/src/libs/feature/editor/src/lib/models/fields.model.ts +0 -29
  917. package/src/libs/feature/map/src/lib/+state/map.effects.ts +0 -7
  918. package/src/libs/feature/map/src/lib/+state/map.models.ts +0 -9
  919. package/src/libs/feature/map/src/lib/constant/map-options.ts +0 -17
  920. package/src/libs/feature/map/src/lib/feature-info/feature-info.service.ts +0 -42
  921. package/src/libs/feature/map/src/lib/manager/map-instance.directive.ts +0 -10
  922. package/src/libs/feature/map/src/lib/manager/map-manager.service.ts +0 -13
  923. package/src/libs/feature/map/src/lib/map-container/map-container.component.html +0 -1
  924. package/src/libs/feature/map/src/lib/map-container/map-container.component.ts +0 -26
  925. package/src/libs/feature/map/src/lib/map-context/component/map-context.component.html +0 -1
  926. package/src/libs/feature/map/src/lib/map-context/component/map-context.component.ts +0 -57
  927. package/src/libs/feature/map/src/lib/map-context/map-context.fixtures.ts +0 -51
  928. package/src/libs/feature/map/src/lib/map-context/map-context.model.ts +0 -95
  929. package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +0 -318
  930. package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.html +0 -36
  931. package/src/libs/ui/map/src/lib/components/map/map.component.ts +0 -57
  932. package/src/libs/ui/map/src/lib/ui-map.module.ts +0 -19
  933. /package/src/libs/feature/editor/src/lib/components/{overview-upload/overview-upload.component.css → contact-card/contact-card.component.css} +0 -0
  934. /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
  935. /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
  936. /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
  937. /package/src/libs/feature/{map/src/lib/map-container/map-container.component.css → editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.css} +0 -0
  938. /package/src/libs/feature/{map/src/lib/map-context/component/map-context.component.css → editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.css} +0 -0
  939. /package/src/libs/{ui/elements/src/lib/max-lines/max-lines.component.css → feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.css} +0 -0
  940. /package/src/libs/{ui/map/src/lib/components/map/map.component.css → feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.css} +0 -0
  941. /package/src/libs/ui/{elements → layout}/src/lib/sortable-list/sortable-list.component.css +0 -0
  942. /package/src/libs/ui/map/src/lib/components/{map/map.component.html → map-container/map-container.component.html} +0 -0
@@ -0,0 +1,196 @@
1
+ import { DCAT, DCTERMS, FOAF, LOCN, RDF, SKOS, VCARD } from './namespaces';
2
+ import { findNodeLocalized } from './utils/graph-utils';
3
+ import { getAsValidUrl } from '../common/url';
4
+ import { fullNameToParts } from '../iso19139/utils/individual-name';
5
+ import { readLicenseFromString } from '../common/license';
6
+ import { matchProtocol } from '../common/distribution.mapper';
7
+ function getDataset(dataStore, recordNode) {
8
+ return (dataStore.the(recordNode, FOAF('primaryTopic'), null) ||
9
+ dataStore.the(null, RDF('type'), DCAT('Dataset')));
10
+ }
11
+ export function readUniqueIdentifier(dataStore, recordNode) {
12
+ return dataStore.the(recordNode, DCTERMS('identifier'), null)?.value;
13
+ }
14
+ export function readTitle(dataStore, recordNode) {
15
+ const dataset = getDataset(dataStore, recordNode);
16
+ return findNodeLocalized(dataStore, dataset, DCTERMS('title'), null, 'en')
17
+ ?.value;
18
+ }
19
+ export function readAbstract(dataStore, recordNode) {
20
+ const dataset = getDataset(dataStore, recordNode);
21
+ return findNodeLocalized(dataStore, dataset, DCTERMS('description'), null, 'en')?.value;
22
+ }
23
+ function mapContactFromStatement(dataStore, statement) {
24
+ const contactNode = statement.object;
25
+ const fullName = dataStore.the(contactNode, VCARD('fn'), null) ??
26
+ dataStore.the(contactNode, VCARD('title'), null) ??
27
+ dataStore.the(contactNode, VCARD('organisation-name'), null);
28
+ let firstName, lastName;
29
+ if (fullName) {
30
+ const parts = fullNameToParts(fullName.value);
31
+ firstName = parts[0];
32
+ lastName = parts[1];
33
+ }
34
+ const role = dataStore.the(contactNode, VCARD('role'), null);
35
+ const email = dataStore.the(contactNode, VCARD('hasEmail'), null);
36
+ const emailValue = email
37
+ ? email.value.replace(/^mailto:/, '')
38
+ : 'missing@missing.com';
39
+ return {
40
+ role: role?.value ?? 'point_of_contact',
41
+ email: emailValue,
42
+ ...(firstName && { firstName }),
43
+ ...(lastName && { lastName }),
44
+ };
45
+ }
46
+ export function readContacts(dataStore, recordNode) {
47
+ const statements = dataStore.statementsMatching(recordNode, DCAT('contactPoint'), null);
48
+ return statements.map((s) => mapContactFromStatement(dataStore, s));
49
+ }
50
+ export function readContactsForResource(dataStore, recordNode) {
51
+ const dataset = getDataset(dataStore, recordNode);
52
+ const statements = dataStore.statementsMatching(dataset, DCAT('contactPoint'), null);
53
+ return statements.map((s) => mapContactFromStatement(dataStore, s));
54
+ }
55
+ export function readLandingPage(dataStore, recordNode) {
56
+ const dataset = getDataset(dataStore, recordNode);
57
+ const landingPage = dataStore.the(dataset, DCAT('landingPage'), null);
58
+ return landingPage !== null ? getAsValidUrl(landingPage.value) : undefined;
59
+ }
60
+ function readOnlineLinkResource(dataStore, distributionNode) {
61
+ const accessUrl = dataStore.the(distributionNode, DCAT('accessURL'), null);
62
+ const description = findNodeLocalized(dataStore, distributionNode, DCTERMS('description'), null, 'en');
63
+ const title = findNodeLocalized(dataStore, distributionNode, DCTERMS('title'), null, 'en');
64
+ return {
65
+ url: getAsValidUrl(accessUrl?.value),
66
+ type: 'link',
67
+ ...(title && { name: title?.value }),
68
+ ...(description && { description: description?.value }),
69
+ };
70
+ }
71
+ function readDownloadDistribution(dataStore, distributionNode) {
72
+ const downloadUrl = dataStore.the(distributionNode, DCAT('downloadURL'), null);
73
+ const description = findNodeLocalized(dataStore, distributionNode, DCTERMS('description'), null, 'en');
74
+ const title = findNodeLocalized(dataStore, distributionNode, DCTERMS('title'), null, 'en');
75
+ // todo mime type
76
+ return {
77
+ url: getAsValidUrl(downloadUrl?.value),
78
+ type: 'download',
79
+ ...(title && { name: title?.value }),
80
+ ...(description && { description: description?.value }),
81
+ };
82
+ }
83
+ function readServiceDistribution(dataStore, distributionNode) {
84
+ const service = dataStore.the(distributionNode, DCAT('accessService'), null);
85
+ const conformsTo = dataStore.the(service, DCTERMS('conformsTo'), null);
86
+ const accessUrl = dataStore.the(distributionNode, DCAT('accessURL'), null);
87
+ const description = findNodeLocalized(dataStore, distributionNode, DCTERMS('description'), null, 'en');
88
+ const title = findNodeLocalized(dataStore, distributionNode, DCTERMS('title'), null, 'en');
89
+ return {
90
+ url: getAsValidUrl(accessUrl?.value),
91
+ type: 'service',
92
+ accessServiceProtocol: matchProtocol(conformsTo?.value),
93
+ ...(title && { name: title?.value }),
94
+ ...(description && { description: description?.value }),
95
+ };
96
+ }
97
+ export function mapOnlineResource(dataStore, distributionNode) {
98
+ if (dataStore.holds(distributionNode, DCAT('accessService'), null)) {
99
+ const service = dataStore.the(distributionNode, DCAT('accessService'), null);
100
+ const conformsTo = dataStore.the(service, DCTERMS('conformsTo'), null);
101
+ if (conformsTo) {
102
+ return readServiceDistribution(dataStore, distributionNode);
103
+ }
104
+ }
105
+ if (dataStore.holds(distributionNode, DCAT('downloadURL'), null)) {
106
+ return readDownloadDistribution(dataStore, distributionNode);
107
+ }
108
+ return readOnlineLinkResource(dataStore, distributionNode);
109
+ }
110
+ export function readOnlineResources(dataStore, recordNode) {
111
+ const dataset = getDataset(dataStore, recordNode);
112
+ const statements = dataStore.statementsMatching(dataset, DCAT('distribution'), null);
113
+ return statements.map((statement) => mapOnlineResource(dataStore, statement.object));
114
+ }
115
+ export function readSpatialExtents(dataStore, recordNode) {
116
+ const dataset = getDataset(dataStore, recordNode);
117
+ const statements = dataStore.statementsMatching(dataset, DCTERMS('spatial'), null);
118
+ return statements
119
+ .map((statement) => {
120
+ const geom = dataStore.the(statement.object, LOCN('geometry'), null);
121
+ if (!geom)
122
+ return {
123
+ description: statement.object.value,
124
+ };
125
+ return {
126
+ geometry: JSON.parse(geom.value),
127
+ };
128
+ })
129
+ .filter((statement) => !!statement);
130
+ }
131
+ export function readKeywords(dataStore, recordNode) {
132
+ const dataset = getDataset(dataStore, recordNode);
133
+ const statements = dataStore.statementsMatching(dataset, DCAT('keyword'), null);
134
+ return statements.map((statement) => {
135
+ return {
136
+ label: statement.object.value,
137
+ type: 'theme',
138
+ };
139
+ });
140
+ }
141
+ export function readTopics(dataStore, recordNode) {
142
+ const dataset = getDataset(dataStore, recordNode);
143
+ const statements = dataStore.statementsMatching(dataset, DCAT('theme'), null);
144
+ return statements.map((statement) => {
145
+ const prefLabel = dataStore.the(statement.object, SKOS('prefLabel'), null);
146
+ return prefLabel?.value ?? statement.object.value;
147
+ });
148
+ }
149
+ export function readRecordCreated(dataStore, recordNode) {
150
+ const dateString = dataStore.the(recordNode, DCTERMS('issued'), null)?.value;
151
+ if (dateString)
152
+ return new Date(dateString);
153
+ return null;
154
+ }
155
+ export function readRecordUpdated(dataStore, recordNode) {
156
+ const dateString = dataStore.the(recordNode, DCTERMS('modified'), null)?.value;
157
+ if (dateString)
158
+ return new Date(dateString);
159
+ return new Date(); // record updated is a mandatory field
160
+ }
161
+ export function readResourceCreated(dataStore, recordNode) {
162
+ const dataset = getDataset(dataStore, recordNode);
163
+ const dateString = dataStore.the(dataset, DCTERMS('issued'), null)?.value;
164
+ if (dateString)
165
+ return new Date(dateString);
166
+ return null;
167
+ }
168
+ export function readResourceUpdated(dataStore, recordNode) {
169
+ const dataset = getDataset(dataStore, recordNode);
170
+ const dateString = dataStore.the(dataset, DCTERMS('modified'), null)?.value;
171
+ if (dateString)
172
+ return new Date(dateString);
173
+ return null;
174
+ }
175
+ export function readOwnerOrganization(dataStore) {
176
+ const publisherStatements = dataStore.statementsMatching(null, DCTERMS('publisher'), null);
177
+ if (!publisherStatements.length)
178
+ return null;
179
+ const publisher = publisherStatements[0].object;
180
+ const nameNode = dataStore.the(publisher, FOAF('name'), null);
181
+ const name = nameNode ? nameNode.value : publisher.value;
182
+ return {
183
+ name,
184
+ };
185
+ }
186
+ export function readLicenses(dataStore, recordNode) {
187
+ const dataset = getDataset(dataStore, recordNode);
188
+ const distributions = dataStore.statementsMatching(dataset, DCAT('distribution'), null);
189
+ return distributions
190
+ .map((statement) => dataStore.the(statement.object, DCTERMS('license'), null))
191
+ .filter((license) => !!license)
192
+ .map((s) => readLicenseFromString(s.value))
193
+ .filter((license, index, array) => array.findIndex((l) => l.url?.toString() === license.url?.toString() &&
194
+ l.text === license.text) === index);
195
+ }
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1wYXJ0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL21ldGFkYXRhLWNvbnZlcnRlci9zcmMvbGliL2RjYXQtYXAvcmVhZC1wYXJ0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBV3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUU3RCxTQUFTLFVBQVUsQ0FBQyxTQUFnQixFQUFFLFVBQXFCO0lBQ3pELE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsSUFBSSxDQUFDO1FBQzNELFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBYyxDQUFBO0FBQ25FLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLFNBQWdCLEVBQ2hCLFVBQXFCO0lBRXJCLE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQTtBQUN0RSxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxTQUFnQixFQUFFLFVB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LFVBQXFCO0lBQ2xFLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDakQsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLGtCQUFrQixDQUNoRCxPQUFPLEVBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUNwQixJQUFJLENBQ0wsQ0FBQTtJQUNELE9BQU8sYUFBYTtTQUNqQixHQUFHLENBQ0YsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUNaLFNBQVMsQ0FBQyxHQUFHLENBQ1gsU0FBUyxDQUFDLE1BQW1CLEVBQzdCLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFDbEIsSUFBSSxDQUNRLENBQ2pCO1NBQ0EsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1NBQzlCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFDLE1BQU0sQ0FDTCxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FDeEIsS0FBSyxDQUFDLFNBQVMsQ0FDYixDQUFDLENBQUMsRUFBRSxFQUFFLENBQ0osQ0FBQyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxPQUFPLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRTtRQUM3QyxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQzFCLEtBQUssS0FBSyxDQUNkLENBQUE7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmFtZWROb2RlLCBTdGF0ZW1lbnQsIFN0b3JlIH0gZnJvbSAncmRmbGliJ1xuaW1wb3J0IHsgRENBVCwgRENURVJNUywgRk9BRiwgTE9DTiwgUkRGLCBTS09TLCBWQ0FSRCB9IGZyb20gJy4vbmFtZXNwYWNlcydcbmltcG9ydCB7IGZpbmROb2RlTG9jYWxpemVkIH0gZnJvbSAnLi91dGlscy9ncmFwaC11dGlscydcbmltcG9ydCB7XG4gIERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbixcbiAgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24sXG4gIERhdGFzZXRTcGF0aWFsRXh0ZW50LFxuICBJbmRpdmlkdWFsLFxuICBLZXl3b3JkLFxuICBPbmxpbmVMaW5rUmVzb3VyY2UsXG4gIE9ubGluZVJlc291cmNlLFxuICBPcmdhbml6YXRpb24sXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IGdldEFzVmFsaWRVcmwgfSBmcm9tICcuLi9jb21tb24vdXJsJ1xuaW1wb3J0IHsgZnVsbE5hbWVUb1BhcnRzIH0gZnJvbSAnLi4vaXNvMTkxMzkvdXRpbHMvaW5kaXZpZHVhbC1uYW1lJ1xuaW1wb3J0IHsgcmVhZExpY2Vuc2VGcm9tU3RyaW5nIH0gZnJvbSAnLi4vY29tbW9uL2xpY2Vuc2UnXG5pbXBvcnQgeyBtYXRjaFByb3RvY29sIH0gZnJvbSAnLi4vY29tbW9uL2Rpc3RyaWJ1dGlvbi5tYXBwZXInXG5cbmZ1bmN0aW9uIGdldERhdGFzZXQoZGF0YVN0b3JlOiBTdG9yZSwgcmVjb3JkTm9kZTogTmFtZWROb2RlKTogTmFtZWROb2RlIHtcbiAgcmV0dXJuIChkYXRhU3RvcmUudGhlKHJlY29yZE5vZGUsIEZPQUYoJ3ByaW1hcnlUb3BpYycpLCBudWxsKSB8fFxuICAgIGRhdGFTdG9yZS50aGUobnVsbCwgUkRGKCd0eXBlJyksIERDQVQoJ0RhdGFzZXQnKSkpIGFzIE5hbWVkTm9kZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFVuaXF1ZUlkZW50aWZpZXIoXG4gIGRhdGFTdG9yZTogU3RvcmUsXG4gIHJlY29yZE5vZGU6IE5hbWVkTm9kZVxuKTogc3RyaW5nIHtcbiAgcmV0dXJuIGRhdGFTdG9yZS50aGUocmVjb3JkTm9kZSwgRENURVJNUygnaWRlbnRpZmllcicpLCBudWxsKT8udmFsdWVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRUaXRsZShkYXRhU3RvcmU6IFN0b3JlLCByZWNvcmROb2RlOiBOYW1lZE5vZGUpOiBzdHJpbmcge1xuICBjb25zdCBkYXRhc2V0ID0gZ2V0RGF0YXNldChkYXRhU3RvcmUsIHJlY29yZE5vZGUpXG4gIHJldHVybiBmaW5kTm9kZUxvY2FsaXplZChkYXRhU3RvcmUsIGRhdGFzZXQsIERDVEVSTVMoJ3RpdGxlJyksIG51bGwsICdlbicpXG4gICAgPy52YWx1ZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEFic3RyYWN0KGRhdGFTdG9yZTogU3RvcmUsIHJlY29yZE5vZGU6IE5hbWVkTm9kZSk6IHN0cmluZyB7XG4gIGNvbnN0IGRhdGFzZXQgPSBnZXREYXRhc2V0KGRhdGFTdG9yZSwgcmVjb3JkTm9kZSlcbiAgcmV0dXJuIGZpbmROb2RlTG9jYWxpemVkKFxuICAgIGRhdGFTdG9yZSxcbiAgICBkYXRhc2V0LFxuICAgIERDVEVSTVMoJ2Rlc2NyaXB0aW9uJyksXG4gICAgbnVsbCxcbiAgICAnZW4nXG4gICk/LnZhbHVlXG59XG5cbmZ1bmN0aW9uIG1hcENvbnRhY3RGcm9tU3RhdGVtZW50KFxuICBkYXRhU3RvcmU6IFN0b3JlLFxuICBzdGF0ZW1lbnQ6IFN0YXRlbWVudFxuKTogSW5kaXZpZHVhbCB7XG4gIGNvbnN0IGNvbnRhY3ROb2RlID0gc3RhdGVtZW50Lm9iamVjdCBhcyBOYW1lZE5vZGVcbiAgY29uc3QgZnVsbE5hbWUgPVxuICAgIGRhdGFTdG9yZS50aGUoY29udGFjdE5vZGUsIFZDQVJEKCdmbicpLCBudWxsKSA/P1xuICAgIGRhdGFTdG9yZS50aGUoY29udGFjdE5vZGUsIFZDQVJEKCd0aXRsZScpLCBudWxsKSA/P1xuICAgIGRhdGFTdG9yZS50aGUoY29udGFjdE5vZGUsIFZDQVJEKCdvcmdhbmlzYXRpb24tbmFtZScpLCBudWxsKVxuICBsZXQgZmlyc3ROYW1lLCBsYXN0TmFtZVxuICBpZiAoZnVsbE5hbWUpIHtcbiAgICBjb25zdCBwYXJ0cyA9IGZ1bGxOYW1lVG9QYXJ0cyhmdWxsTmFtZS52YWx1ZSlcbiAgICBmaXJzdE5hbWUgPSBwYXJ0c1swXVxuICAgIGxhc3ROYW1lID0gcGFydHNbMV1cbiAgfVxuICBjb25zdCByb2xlID0gZGF0YVN0b3JlLnRoZShjb250YWN0Tm9kZSwgVkNBUkQoJ3JvbGUnKSwgbnVsbClcbiAgY29uc3QgZW1haWwgPSBkYXRhU3RvcmUudGhlKGNvbnRhY3ROb2RlLCBWQ0FSRCgnaGFzRW1haWwnKSwgbnVsbClcbiAgY29uc3QgZW1haWxWYWx1ZSA9IGVtYWlsXG4gICAgPyBlbWFpbC52YWx1ZS5yZXBsYWNlKC9ebWFpbHRvOi8sICcnKVxuICAgIDogJ21pc3NpbmdAbWlzc2luZy5jb20nXG4gIHJldHVybiB7XG4gICAgcm9sZTogcm9sZT8udmFsdWUgPz8gJ3BvaW50X29mX2NvbnRhY3QnLFxuICAgIGVtYWlsOiBlbWFpbFZhbHVlLFxuICAgIC4uLihmaXJzdE5hbWUgJiYgeyBmaXJzdE5hbWUgfSksXG4gICAgLi4uKGxhc3ROYW1lICYmIHsgbGFzdE5hbWUgfSksXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRDb250YWN0cyhcbiAgZGF0YVN0b3JlOiBTdG9yZSxcbiAgcmVjb3JkTm9kZTogTmFtZWROb2RlXG4pOiBJbmRpdmlkdWFsW10ge1xuICBjb25zdCBzdGF0ZW1lbnRzID0gZGF0YVN0b3JlLnN0YXRlbWVudHNNYXRjaGluZyhcbiAgICByZWNvcmROb2RlLFxuICAgIERDQVQoJ2NvbnRhY3RQb2ludCcpLFxuICAgIG51bGxcbiAgKVxuICByZXR1cm4gc3RhdGVtZW50cy5tYXAoKHMpID0+IG1hcENvbnRhY3RGcm9tU3RhdGVtZW50KGRhdGFTdG9yZSwgcykpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkQ29udGFjdHNGb3JSZXNvdXJjZShcbiAgZGF0YVN0b3JlOiBTdG9yZSxcbiAgcmVjb3JkTm9kZTogTmFtZWROb2RlXG4pOiBJbmRpdmlkdWFsW10ge1xuICBjb25zdCBkYXRhc2V0ID0gZ2V0RGF0YXNldChkYXRhU3RvcmUsIHJlY29yZE5vZGUpXG4gIGNvbnN0IHN0YXRlbWVudHMgPSBkYXRhU3RvcmUuc3RhdGVtZW50c01hdGNoaW5nKFxuICAgIGRhdGFzZXQsXG4gICAgRENBVCgnY29udGFjdFBvaW50JyksXG4gICAgbnVsbFxuICApXG4gIHJldHVybiBzdGF0ZW1lbnRzLm1hcCgocykgPT4gbWFwQ29udGFjdEZyb21TdGF0ZW1lbnQoZGF0YVN0b3JlLCBzKSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRMYW5kaW5nUGFnZShkYXRhU3RvcmU6IFN0b3JlLCByZWNvcmROb2RlOiBOYW1lZE5vZGUpOiBVUkwge1xuICBjb25zdCBkYXRhc2V0ID0gZ2V0RGF0YXNldChkYXRhU3RvcmUsIHJlY29yZE5vZGUpXG4gIGNvbnN0IGxhbmRpbmdQYWdlID0gZGF0YVN0b3JlLnRoZShkYXRhc2V0LCBEQ0FUKCdsYW5kaW5nUGFnZScpLCBudWxsKVxuICByZXR1cm4gbGFuZGluZ1BhZ2UgIT09IG51bGwgPyBnZXRBc1ZhbGlkVXJsKGxhbmRpbmdQYWdlLnZhbHVlKSA6IHVuZGVmaW5lZFxufVxuXG5mdW5jdGlvbiByZWFkT25saW5lTGlua1Jlc291cmNlKFxuICBkYXRhU3RvcmU6IFN0b3JlLFxuICBkaXN0cmlidXRpb25Ob2RlOiBOYW1lZE5vZGVcbik6IE9ubGluZUxpbmtSZXNvdXJjZSB7XG4gIGNvbnN0IGFjY2Vzc1VybCA9IGRhdGFTdG9yZS50aGUoZGlzdHJpYnV0aW9uTm9kZSwgRENBVCgnYWNjZXNzVVJMJyksIG51bGwpXG4gIGNvbnN0IGRlc2NyaXB0aW9uID0gZmluZE5vZGVMb2NhbGl6ZWQoXG4gICAgZGF0YVN0b3JlLFxuICAgIGRpc3RyaWJ1dGlvbk5vZGUsXG4gICAgRENURVJNUygnZGVzY3JpcHRpb24nKSxcbiAgICBudWxsLFxuICAgICdlbidcbiAgKVxuICBjb25zdCB0aXRsZSA9IGZpbmROb2RlTG9jYWxpemVkKFxuICAgIGRhdGFTdG9yZSxcbiAgICBkaXN0cmlidXRpb25Ob2RlLFxuICAgIERDVEVSTVMoJ3RpdGxlJyksXG4gICAgbnVsbCxcbiAgICAnZW4nXG4gIClcbiAgcmV0dXJuIHtcbiAgICB1cmw6IGdldEFzVmFsaWRVcmwoYWNjZXNzVXJsPy52YWx1ZSksXG4gICAgdHlwZTogJ2xpbmsnLFxuICAgIC4uLih0aXRsZSAmJiB7IG5hbWU6IHRpdGxlPy52YWx1ZSB9KSxcbiAgICAuLi4oZGVzY3JpcHRpb24gJiYgeyBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24/LnZhbHVlIH0pLFxuICB9XG59XG5cbmZ1bmN0aW9uIHJlYWREb3dubG9hZERpc3RyaWJ1dGlvbihcbiAgZGF0YVN0b3JlOiBTdG9yZSxcbiAgZGlzdHJpYnV0aW9uTm9kZTogTmFtZWROb2RlXG4pOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24ge1xuICBjb25zdCBkb3dubG9hZFVybCA9IGRhdGFTdG9yZS50aGUoZGlzdHJpYnV0aW9uTm9kZSwgRENBVCgnZG93bmxvYWRVUkwnKSwgbnVsbClcbiAgY29uc3QgZGVzY3JpcHRpb24gPSBmaW5kTm9kZUxvY2FsaXplZChcbiAgICBkYXRhU3RvcmUsXG4gICAgZGlzdHJpYnV0aW9uTm9kZSxcbiAgICBEQ1RFUk1TKCdkZXNjcmlwdGlvbicpLFxuICAgIG51bGwsXG4gICAgJ2VuJ1xuICApXG4gIGNvbnN0IHRpdGxlID0gZmluZE5vZGVMb2NhbGl6ZWQoXG4gICAgZGF0YVN0b3JlLFxuICAgIGRpc3RyaWJ1dGlvbk5vZGUsXG4gICAgRENURVJNUygndGl0bGUnKSxcbiAgICBudWxsLFxuICAgICdlbidcbiAgKVxuICAvLyB0b2RvIG1pbWUgdHlwZVxuICByZXR1cm4ge1xuICAgIHVybDogZ2V0QXNWYWxpZFVybChkb3dubG9hZFVybD8udmFsdWUpLFxuICAgIHR5cGU6ICdkb3dubG9hZCcsXG4gICAgLi4uKHRpdGxlICYmIHsgbmFtZTogdGl0bGU/LnZhbHVlIH0pLFxuICAgIC4uLihkZXNjcmlwdGlvbiAmJiB7IGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbj8udmFsdWUgfSksXG4gIH1cbn1cblxuZnVuY3Rpb24gcmVhZFNlcnZpY2VEaXN0cmlidXRpb24oXG4gIGRhdGFTdG9yZTogU3RvcmUsXG4gIGRpc3RyaWJ1dGlvbk5vZGU6IE5hbWVkTm9kZVxuKTogRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24ge1xuICBjb25zdCBzZXJ2aWNlID0gZGF0YVN0b3JlLnRoZShcbiAgICBkaXN0cmlidXRpb25Ob2RlLFxuICAgIERDQVQoJ2FjY2Vzc1NlcnZpY2UnKSxcbiAgICBudWxsXG4gICkgYXMgTmFtZWROb2RlXG4gIGNvbnN0IGNvbmZvcm1zVG8gPSBkYXRhU3RvcmUudGhlKHNlcnZpY2UsIERDVEVSTVMoJ2NvbmZvcm1zVG8nKSwgbnVsbClcbiAgY29uc3QgYWNjZXNzVXJsID0gZGF0YVN0b3JlLnRoZShkaXN0cmlidXRpb25Ob2RlLCBEQ0FUKCdhY2Nlc3NVUkwnKSwgbnVsbClcbiAgY29uc3QgZGVzY3JpcHRpb24gPSBmaW5kTm9kZUxvY2FsaXplZChcbiAgICBkYXRhU3RvcmUsXG4gICAgZGlzdHJpYnV0aW9uTm9kZSxcbiAgICBEQ1RFUk1TKCdkZXNjcmlwdGlvbicpLFxuICAgIG51bGwsXG4gICAgJ2VuJ1xuICApXG4gIGNvbnN0IHRpdGxlID0gZmluZE5vZGVMb2NhbGl6ZWQoXG4gICAgZGF0YVN0b3JlLFxuICAgIGRpc3RyaWJ1dGlvbk5vZGUsXG4gICAgRENURVJNUygndGl0bGUnKSxcbiAgICBudWxsLFxuICAgICdlbidcbiAgKVxuICByZXR1cm4ge1xuICAgIHVybDogZ2V0QXNWYWxpZFVybChhY2Nlc3NVcmw/LnZhbHVlKSxcbiAgICB0eXBlOiAnc2VydmljZScsXG4gICAgYWNjZXNzU2VydmljZVByb3RvY29sOiBtYXRjaFByb3RvY29sKGNvbmZvcm1zVG8/LnZhbHVlKSxcbiAgICAuLi4odGl0bGUgJiYgeyBuYW1lOiB0aXRsZT8udmFsdWUgfSksXG4gICAgLi4uKGRlc2NyaXB0aW9uICYmIHsgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uPy52YWx1ZSB9KSxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFwT25saW5lUmVzb3VyY2UoXG4gIGRhdGFTdG9yZTogU3RvcmUsXG4gIGRpc3RyaWJ1dGlvbk5vZGU6IE5hbWVkTm9kZVxuKTogT25saW5lUmVzb3VyY2Uge1xuICBpZiAoZGF0YVN0b3JlLmhvbGRzKGRpc3RyaWJ1dGlvbk5vZGUsIERDQVQoJ2FjY2Vzc1NlcnZpY2UnKSwgbnVsbCkpIHtcbiAgICBjb25zdCBzZXJ2aWNlID0gZGF0YVN0b3JlLnRoZShcbiAgICAgIGRpc3RyaWJ1dGlvbk5vZGUsXG4gICAgICBEQ0FUKCdhY2Nlc3NTZXJ2aWNlJyksXG4gICAgICBudWxsXG4gICAgKSBhcyBOYW1lZE5vZGVcbiAgICBjb25zdCBjb25mb3Jtc1RvID0gZGF0YVN0b3JlLnRoZShzZXJ2aWNlLCBEQ1RFUk1TKCdjb25mb3Jtc1RvJyksIG51bGwpXG4gICAgaWYgKGNvbmZvcm1zVG8pIHtcbiAgICAgIHJldHVybiByZWFkU2VydmljZURpc3RyaWJ1dGlvbihkYXRhU3RvcmUsIGRpc3RyaWJ1dGlvbk5vZGUpXG4gICAgfVxuICB9XG4gIGlmIChkYXRhU3RvcmUuaG9sZHMoZGlzdHJpYnV0aW9uTm9kZSwgRENBVCgnZG93bmxvYWRVUkwnKSwgbnVsbCkpIHtcbiAgICByZXR1cm4gcmVhZERvd25sb2FkRGlzdHJpYnV0aW9uKGRhdGFTdG9yZSwgZGlzdHJpYnV0aW9uTm9kZSlcbiAgfVxuICByZXR1cm4gcmVhZE9ubGluZUxpbmtSZXNvdXJjZShkYXRhU3RvcmUsIGRpc3RyaWJ1dGlvbk5vZGUpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkT25saW5lUmVzb3VyY2VzKFxuICBkYXRhU3RvcmU6IFN0b3JlLFxuICByZWNvcmROb2RlOiBOYW1lZE5vZGVcbik6IE9ubGluZVJlc291cmNlW10ge1xuICBjb25zdCBkYXRhc2V0ID0gZ2V0RGF0YXNldChkYXRhU3RvcmUsIHJlY29yZE5vZGUpXG4gIGNvbnN0IHN0YXRlbWVudHMgPSBkYXRhU3RvcmUuc3RhdGVtZW50c01hdGNoaW5nKFxuICAgIGRhdGFzZXQsXG4gICAgRENBVCgnZGlzdHJpYnV0aW9uJyksXG4gICAgbnVsbFxuICApXG4gIHJldHVybiBzdGF0ZW1lbnRzLm1hcCgoc3RhdGVtZW50KSA9PlxuICAgIG1hcE9ubGluZVJlc291cmNlKGRhdGFTdG9yZSwgc3RhdGVtZW50Lm9iamVjdCBhcyBOYW1lZE5vZGUpXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRTcGF0aWFsRXh0ZW50cyhcbiAgZGF0YVN0b3JlOiBTdG9yZSxcbiAgcmVjb3JkTm9kZTogTmFtZWROb2RlXG4pOiBEYXRhc2V0U3BhdGlhbEV4dGVudFtdIHtcbiAgY29uc3QgZGF0YXNldCA9IGdldERhdGFzZXQoZGF0YVN0b3JlLCByZWNvcmROb2RlKVxuICBjb25zdCBzdGF0ZW1lbnRzID0gZGF0YVN0b3JlLnN0YXRlbWVudHNNYXRjaGluZyhcbiAgICBkYXRhc2V0LFxuICAgIERDVEVSTVMoJ3NwYXRpYWwnKSxcbiAgICBudWxsXG4gIClcbiAgcmV0dXJuIHN0YXRlbWVudHNcbiAgICAubWFwKChzdGF0ZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IGdlb20gPSBkYXRhU3RvcmUudGhlKFxuICAgICAgICBzdGF0ZW1lbnQub2JqZWN0IGFzIE5hbWVkTm9kZSxcbiAgICAgICAgTE9DTignZ2VvbWV0cnknKSxcbiAgICAgICAgbnVsbFxuICAgICAgKVxuICAgICAgaWYgKCFnZW9tKVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiBzdGF0ZW1lbnQub2JqZWN0LnZhbHVlLFxuICAgICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBnZW9tZXRyeTogSlNPTi5wYXJzZShnZW9tLnZhbHVlKSxcbiAgICAgIH1cbiAgICB9KVxuICAgIC5maWx0ZXIoKHN0YXRlbWVudCkgPT4gISFzdGF0ZW1lbnQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkS2V5d29yZHMoXG4gIGRhdGFTdG9yZTogU3RvcmUsXG4gIHJlY29yZE5vZGU6IE5hbWVkTm9kZVxuKTogS2V5d29yZFtdIHtcbiAgY29uc3QgZGF0YXNldCA9IGdldERhdGFzZXQoZGF0YVN0b3JlLCByZWNvcmROb2RlKVxuICBjb25zdCBzdGF0ZW1lbnRzID0gZGF0YVN0b3JlLnN0YXRlbWVudHNNYXRjaGluZyhcbiAgICBkYXRhc2V0LFxuICAgIERDQVQoJ2tleXdvcmQnKSxcbiAgICBudWxsXG4gIClcbiAgcmV0dXJuIHN0YXRlbWVudHMubWFwKChzdGF0ZW1lbnQpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbGFiZWw6IHN0YXRlbWVudC5vYmplY3QudmFsdWUsXG4gICAgICB0eXBlOiAndGhlbWUnLFxuICAgIH1cbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRUb3BpY3MoZGF0YVN0b3JlOiBTdG9yZSwgcmVjb3JkTm9kZTogTmFtZWROb2RlKTogc3RyaW5nW10ge1xuICBjb25zdCBkYXRhc2V0ID0gZ2V0RGF0YXNldChkYXRhU3RvcmUsIHJlY29yZE5vZGUpXG4gIGNvbnN0IHN0YXRlbWVudHMgPSBkYXRhU3RvcmUuc3RhdGVtZW50c01hdGNoaW5nKGRhdGFzZXQsIERDQVQoJ3RoZW1lJyksIG51bGwpXG4gIHJldHVybiBzdGF0ZW1lbnRzLm1hcCgoc3RhdGVtZW50KSA9PiB7XG4gICAgY29uc3QgcHJlZkxhYmVsID0gZGF0YVN0b3JlLnRoZShcbiAgICAgIHN0YXRlbWVudC5vYmplY3QgYXMgTmFtZWROb2RlLFxuICAgICAgU0tPUygncHJlZkxhYmVsJyksXG4gICAgICBudWxsXG4gICAgKVxuICAgIHJldHVybiBwcmVmTGFiZWw/LnZhbHVlID8/IHN0YXRlbWVudC5vYmplY3QudmFsdWVcbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRSZWNvcmRDcmVhdGVkKFxuICBkYXRhU3RvcmU6IFN0b3JlLFxuICByZWNvcmROb2RlOiBOYW1lZE5vZGVcbik6IERhdGUge1xuICBjb25zdCBkYXRlU3RyaW5nID0gZGF0YVN0b3JlLnRoZShyZWNvcmROb2RlLCBEQ1RFUk1TKCdpc3N1ZWQnKSwgbnVsbCk/LnZhbHVlXG4gIGlmIChkYXRlU3RyaW5nKSByZXR1cm4gbmV3IERhdGUoZGF0ZVN0cmluZylcbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRSZWNvcmRVcGRhdGVkKFxuICBkYXRhU3RvcmU6IFN0b3JlLFxuICByZWNvcmROb2RlOiBOYW1lZE5vZGVcbik6IERhdGUge1xuICBjb25zdCBkYXRlU3RyaW5nID0gZGF0YVN0b3JlLnRoZShyZWNvcmROb2RlLCBEQ1RFUk1TKCdtb2RpZmllZCcpLCBudWxsKT8udmFsdWVcbiAgaWYgKGRhdGVTdHJpbmcpIHJldHVybiBuZXcgRGF0ZShkYXRlU3RyaW5nKVxuICByZXR1cm4gbmV3IERhdGUoKSAvLyByZWNvcmQgdXBkYXRlZCBpcyBhIG1hbmRhdG9yeSBmaWVsZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFJlc291cmNlQ3JlYXRlZChcbiAgZGF0YVN0b3JlOiBTdG9yZSxcbiAgcmVjb3JkTm9kZTogTmFtZWROb2RlXG4pOiBEYXRlIHtcbiAgY29uc3QgZGF0YXNldCA9IGdldERhdGFzZXQoZGF0YVN0b3JlLCByZWNvcmROb2RlKVxuICBjb25zdCBkYXRlU3RyaW5nID0gZGF0YVN0b3JlLnRoZShkYXRhc2V0LCBEQ1RFUk1TKCdpc3N1ZWQnKSwgbnVsbCk/LnZhbHVlXG4gIGlmIChkYXRlU3RyaW5nKSByZXR1cm4gbmV3IERhdGUoZGF0ZVN0cmluZylcbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRSZXNvdXJjZVVwZGF0ZWQoXG4gIGRhdGFTdG9yZTogU3RvcmUsXG4gIHJlY29yZE5vZGU6IE5hbWVkTm9kZVxuKTogRGF0ZSB7XG4gIGNvbnN0IGRhdGFzZXQgPSBnZXREYXRhc2V0KGRhdGFTdG9yZSwgcmVjb3JkTm9kZSlcbiAgY29uc3QgZGF0ZVN0cmluZyA9IGRhdGFTdG9yZS50aGUoZGF0YXNldCwgRENURVJNUygnbW9kaWZpZWQnKSwgbnVsbCk/LnZhbHVlXG4gIGlmIChkYXRlU3RyaW5nKSByZXR1cm4gbmV3IERhdGUoZGF0ZVN0cmluZylcbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRPd25lck9yZ2FuaXphdGlvbihkYXRhU3RvcmU6IFN0b3JlKTogT3JnYW5pemF0aW9uIHtcbiAgY29uc3QgcHVibGlzaGVyU3RhdGVtZW50cyA9IGRhdGFTdG9yZS5zdGF0ZW1lbnRzTWF0Y2hpbmcoXG4gICAgbnVsbCxcbiAgICBEQ1RFUk1TKCdwdWJsaXNoZXInKSxcbiAgICBudWxsXG4gIClcbiAgaWYgKCFwdWJsaXNoZXJTdGF0ZW1lbnRzLmxlbmd0aCkgcmV0dXJuIG51bGxcbiAgY29uc3QgcHVibGlzaGVyID0gcHVibGlzaGVyU3RhdGVtZW50c1swXS5vYmplY3QgYXMgTmFtZWROb2RlXG4gIGNvbnN0IG5hbWVOb2RlID0gZGF0YVN0b3JlLnRoZShwdWJsaXNoZXIsIEZPQUYoJ25hbWUnKSwgbnVsbClcbiAgY29uc3QgbmFtZSA9IG5hbWVOb2RlID8gbmFtZU5vZGUudmFsdWUgOiBwdWJsaXNoZXIudmFsdWVcbiAgcmV0dXJuIHtcbiAgICBuYW1lLFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkTGljZW5zZXMoZGF0YVN0b3JlOiBTdG9yZSwgcmVjb3JkTm9kZTogTmFtZWROb2RlKSB7XG4gIGNvbnN0IGRhdGFzZXQgPSBnZXREYXRhc2V0KGRhdGFTdG9yZSwgcmVjb3JkTm9kZSlcbiAgY29uc3QgZGlzdHJpYnV0aW9ucyA9IGRhdGFTdG9yZS5zdGF0ZW1lbnRzTWF0Y2hpbmcoXG4gICAgZGF0YXNldCxcbiAgICBEQ0FUKCdkaXN0cmlidXRpb24nKSxcbiAgICBudWxsXG4gIClcbiAgcmV0dXJuIGRpc3RyaWJ1dGlvbnNcbiAgICAubWFwKFxuICAgICAgKHN0YXRlbWVudCkgPT5cbiAgICAgICAgZGF0YVN0b3JlLnRoZShcbiAgICAgICAgICBzdGF0ZW1lbnQub2JqZWN0IGFzIE5hbWVkTm9kZSxcbiAgICAgICAgICBEQ1RFUk1TKCdsaWNlbnNlJyksXG4gICAgICAgICAgbnVsbFxuICAgICAgICApIGFzIE5hbWVkTm9kZVxuICAgIClcbiAgICAuZmlsdGVyKChsaWNlbnNlKSA9PiAhIWxpY2Vuc2UpXG4gICAgLm1hcCgocykgPT4gcmVhZExpY2Vuc2VGcm9tU3RyaW5nKHMudmFsdWUpKVxuICAgIC5maWx0ZXIoXG4gICAgICAobGljZW5zZSwgaW5kZXgsIGFycmF5KSA9PlxuICAgICAgICBhcnJheS5maW5kSW5kZXgoXG4gICAgICAgICAgKGwpID0+XG4gICAgICAgICAgICBsLnVybD8udG9TdHJpbmcoKSA9PT0gbGljZW5zZS51cmw/LnRvU3RyaW5nKCkgJiZcbiAgICAgICAgICAgIGwudGV4dCA9PT0gbGljZW5zZS50ZXh0XG4gICAgICAgICkgPT09IGluZGV4XG4gICAgKVxufVxuIl19
@@ -0,0 +1,46 @@
1
+ import { lit, Literal, parse } from 'rdflib';
2
+ import { BASE_URI } from './uri';
3
+ export function findNodeLocalized(dataStore, subject, predicate, object, language) {
4
+ const literals = dataStore
5
+ .each(subject, predicate, object)
6
+ .filter((node) => node instanceof Literal);
7
+ const matchingLang = literals.find((node) => node.language.startsWith(language));
8
+ const noLang = literals.find((node) => !node.language);
9
+ const anyLang = literals[0];
10
+ return matchingLang ?? noLang ?? anyLang;
11
+ }
12
+ export function getOrAddStatement(dataStore, subject, predicate, object) {
13
+ let statement = dataStore.statementsMatching(subject, predicate, typeof object === 'string' ? null : object)[0];
14
+ if (!statement) {
15
+ statement = dataStore.add(subject, predicate, object);
16
+ }
17
+ return statement;
18
+ }
19
+ export function getOrAddLiteral(dataStore, subject, predicate, objectValue) {
20
+ let statement = dataStore.statementsMatching(subject, predicate, null)[0];
21
+ if (!statement) {
22
+ statement = dataStore.add(subject, predicate, lit(objectValue));
23
+ }
24
+ else {
25
+ statement.object = lit(objectValue);
26
+ }
27
+ return statement;
28
+ }
29
+ export function getOrAddLocalizedLiteral(dataStore, subject, predicate, objectValue, language) {
30
+ const statements = dataStore.statementsMatching(subject, predicate, null);
31
+ const withMatchingLanguage = statements.filter((statement) => statement.object instanceof Literal &&
32
+ statement.object.language.startsWith(language));
33
+ const withNoLanguage = statements.filter((statement) => statement.object instanceof Literal && !statement.object.language);
34
+ let statement = withMatchingLanguage[0] || withNoLanguage[0];
35
+ if (!statement) {
36
+ statement = dataStore.add(subject, predicate, lit(objectValue, language));
37
+ }
38
+ else {
39
+ statement.object = lit(objectValue, language);
40
+ }
41
+ return statement;
42
+ }
43
+ export function loadGraph(dataStore, document, contentType, base = BASE_URI) {
44
+ return new Promise((resolve) => parse(document, dataStore, base, contentType, resolve));
45
+ }
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGgtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9kY2F0LWFwL3V0aWxzL2dyYXBoLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFRLEtBQUssRUFBb0IsTUFBTSxRQUFRLENBQUE7QUFHcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUVoQyxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLFNBQWdCLEVBQ2hCLE9BQXFCLEVBQ3JCLFNBQXlCLEVBQ3pCLE1BQW1CLEVBQ25CLFFBQWdCO0lBRWhCLE1BQU0sUUFBUSxHQUFHLFNBQVM7U0FDdkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDO1NBQ2hDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBbUIsRUFBRSxDQUFDLElBQUksWUFBWSxPQUFPLENBQUMsQ0FBQTtJQUM3RCxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDMUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQ25DLENBQUE7SUFDRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUN0RCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDM0IsT0FBTyxZQUFZLElBQUksTUFBTSxJQUFJLE9BQU8sQ0FBQTtBQUMxQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixTQUFnQixFQUNoQixPQUFxQixFQUNyQixTQUF5QixFQUN6QixNQUE0QjtJQUU1QixJQUFJLFNBQVMsR0FBRyxTQUFTLENBQUMsa0JBQWtCLENBQzFDLE9BQU8sRUFDUCxTQUFTLEVBQ1QsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDM0MsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNKLElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDZCxTQUFTLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBYyxDQUFBO0tBQ25FO0lBQ0QsT0FBTyxTQUFTLENBQUE7QUFDbEIsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQzdCLFNBQWdCLEVBQ2hCLE9BQXFCLEVBQ3JCLFNBQXlCLEVBQ3pCLFdBQW1CO0lBRW5CLElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3pFLElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDZCxTQUFTLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBYyxDQUFBO0tBQzdFO1NBQU07UUFDTCxTQUFTLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQTtLQUNwQztJQUNELE9BQU8sU0FBUyxDQUFBO0FBQ2xCLENBQUM7QUFFRCxNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLFNBQWdCLEVBQ2hCLE9BQXFCLEVBQ3JCLFNBQXlCLEVBQ3pCLFdBQW1CLEVBQ25CLFFBQWdCO0lBRWhCLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ3pFLE1BQU0sb0JBQW9CLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FDNUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUNaLFNBQVMsQ0FBQyxNQUFNLFlBQVksT0FBTztRQUNuQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQ2pELENBQUE7SUFDRCxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUN0QyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQ1osU0FBUyxDQUFDLE1BQU0sWUFBWSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FDcEUsQ0FBQTtJQUNELElBQUksU0FBUyxHQUFHLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUM1RCxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQ2QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQ3ZCLE9BQU8sRUFDUCxTQUFTLEVBQ1QsR0FBRyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FDZCxDQUFBO0tBQ2Y7U0FBTTtRQUNMLFNBQVMsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQTtLQUM5QztJQUNELE9BQU8sU0FBUyxDQUFBO0FBQ2xCLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUN2QixTQUFnQixFQUNoQixRQUFnQixFQUNoQixXQUF3QixFQUN4QixJQUFJLEdBQUcsUUFBUTtJQUVmLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUM3QixLQUFLLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUN2RCxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxpdCwgTGl0ZXJhbCwgTm9kZSwgcGFyc2UsIFN0YXRlbWVudCwgU3RvcmUgfSBmcm9tICdyZGZsaWInXG5pbXBvcnQgeyBRdWFkX09iamVjdCwgUXVhZF9QcmVkaWNhdGUsIFF1YWRfU3ViamVjdCB9IGZyb20gJ3JkZmxpYi9saWIvdGYtdHlwZXMnXG5pbXBvcnQgeyBDb250ZW50VHlwZSB9IGZyb20gJ3JkZmxpYi9saWIvdHlwZXMnXG5pbXBvcnQgeyBCQVNFX1VSSSB9IGZyb20gJy4vdXJpJ1xuXG5leHBvcnQgZnVuY3Rpb24gZmluZE5vZGVMb2NhbGl6ZWQoXG4gIGRhdGFTdG9yZTogU3RvcmUsXG4gIHN1YmplY3Q6IFF1YWRfU3ViamVjdCxcbiAgcHJlZGljYXRlOiBRdWFkX1ByZWRpY2F0ZSxcbiAgb2JqZWN0OiBRdWFkX09iamVjdCxcbiAgbGFuZ3VhZ2U6IHN0cmluZ1xuKTogTm9kZSB8IG51bGwge1xuICBjb25zdCBsaXRlcmFscyA9IGRhdGFTdG9yZVxuICAgIC5lYWNoKHN1YmplY3QsIHByZWRpY2F0ZSwgb2JqZWN0KVxuICAgIC5maWx0ZXIoKG5vZGUpOiBub2RlIGlzIExpdGVyYWwgPT4gbm9kZSBpbnN0YW5jZW9mIExpdGVyYWwpXG4gIGNvbnN0IG1hdGNoaW5nTGFuZyA9IGxpdGVyYWxzLmZpbmQoKG5vZGUpID0+XG4gICAgbm9kZS5sYW5ndWFnZS5zdGFydHNXaXRoKGxhbmd1YWdlKVxuICApXG4gIGNvbnN0IG5vTGFuZyA9IGxpdGVyYWxzLmZpbmQoKG5vZGUpID0+ICFub2RlLmxhbmd1YWdlKVxuICBjb25zdCBhbnlMYW5nID0gbGl0ZXJhbHNbMF1cbiAgcmV0dXJuIG1hdGNoaW5nTGFuZyA/PyBub0xhbmcgPz8gYW55TGFuZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3JBZGRTdGF0ZW1lbnQoXG4gIGRhdGFTdG9yZTogU3RvcmUsXG4gIHN1YmplY3Q6IFF1YWRfU3ViamVjdCxcbiAgcHJlZGljYXRlOiBRdWFkX1ByZWRpY2F0ZSxcbiAgb2JqZWN0OiBRdWFkX09iamVjdCB8IHN0cmluZ1xuKTogU3RhdGVtZW50IHtcbiAgbGV0IHN0YXRlbWVudCA9IGRhdGFTdG9yZS5zdGF0ZW1lbnRzTWF0Y2hpbmcoXG4gICAgc3ViamVjdCxcbiAgICBwcmVkaWNhdGUsXG4gICAgdHlwZW9mIG9iamVjdCA9PT0gJ3N0cmluZycgPyBudWxsIDogb2JqZWN0XG4gIClbMF1cbiAgaWYgKCFzdGF0ZW1lbnQpIHtcbiAgICBzdGF0ZW1lbnQgPSBkYXRhU3RvcmUuYWRkKHN1YmplY3QsIHByZWRpY2F0ZSwgb2JqZWN0KSBhcyBTdGF0ZW1lbnRcbiAgfVxuICByZXR1cm4gc3RhdGVtZW50XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPckFkZExpdGVyYWwoXG4gIGRhdGFTdG9yZTogU3RvcmUsXG4gIHN1YmplY3Q6IFF1YWRfU3ViamVjdCxcbiAgcHJlZGljYXRlOiBRdWFkX1ByZWRpY2F0ZSxcbiAgb2JqZWN0VmFsdWU6IHN0cmluZ1xuKSB7XG4gIGxldCBzdGF0ZW1lbnQgPSBkYXRhU3RvcmUuc3RhdGVtZW50c01hdGNoaW5nKHN1YmplY3QsIHByZWRpY2F0ZSwgbnVsbClbMF1cbiAgaWYgKCFzdGF0ZW1lbnQpIHtcbiAgICBzdGF0ZW1lbnQgPSBkYXRhU3RvcmUuYWRkKHN1YmplY3QsIHByZWRpY2F0ZSwgbGl0KG9iamVjdFZhbHVlKSkgYXMgU3RhdGVtZW50XG4gIH0gZWxzZSB7XG4gICAgc3RhdGVtZW50Lm9iamVjdCA9IGxpdChvYmplY3RWYWx1ZSlcbiAgfVxuICByZXR1cm4gc3RhdGVtZW50XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPckFkZExvY2FsaXplZExpdGVyYWwoXG4gIGRhdGFTdG9yZTogU3RvcmUsXG4gIHN1YmplY3Q6IFF1YWRfU3ViamVjdCxcbiAgcHJlZGljYXRlOiBRdWFkX1ByZWRpY2F0ZSxcbiAgb2JqZWN0VmFsdWU6IHN0cmluZyxcbiAgbGFuZ3VhZ2U6IHN0cmluZ1xuKSB7XG4gIGNvbnN0IHN0YXRlbWVudHMgPSBkYXRhU3RvcmUuc3RhdGVtZW50c01hdGNoaW5nKHN1YmplY3QsIHByZWRpY2F0ZSwgbnVsbClcbiAgY29uc3Qgd2l0aE1hdGNoaW5nTGFuZ3VhZ2UgPSBzdGF0ZW1lbnRzLmZpbHRlcihcbiAgICAoc3RhdGVtZW50KSA9PlxuICAgICAgc3RhdGVtZW50Lm9iamVjdCBpbnN0YW5jZW9mIExpdGVyYWwgJiZcbiAgICAgIHN0YXRlbWVudC5vYmplY3QubGFuZ3VhZ2Uuc3RhcnRzV2l0aChsYW5ndWFnZSlcbiAgKVxuICBjb25zdCB3aXRoTm9MYW5ndWFnZSA9IHN0YXRlbWVudHMuZmlsdGVyKFxuICAgIChzdGF0ZW1lbnQpID0+XG4gICAgICBzdGF0ZW1lbnQub2JqZWN0IGluc3RhbmNlb2YgTGl0ZXJhbCAmJiAhc3RhdGVtZW50Lm9iamVjdC5sYW5ndWFnZVxuICApXG4gIGxldCBzdGF0ZW1lbnQgPSB3aXRoTWF0Y2hpbmdMYW5ndWFnZVswXSB8fCB3aXRoTm9MYW5ndWFnZVswXVxuICBpZiAoIXN0YXRlbWVudCkge1xuICAgIHN0YXRlbWVudCA9IGRhdGFTdG9yZS5hZGQoXG4gICAgICBzdWJqZWN0LFxuICAgICAgcHJlZGljYXRlLFxuICAgICAgbGl0KG9iamVjdFZhbHVlLCBsYW5ndWFnZSlcbiAgICApIGFzIFN0YXRlbWVudFxuICB9IGVsc2Uge1xuICAgIHN0YXRlbWVudC5vYmplY3QgPSBsaXQob2JqZWN0VmFsdWUsIGxhbmd1YWdlKVxuICB9XG4gIHJldHVybiBzdGF0ZW1lbnRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRHcmFwaChcbiAgZGF0YVN0b3JlOiBTdG9yZSxcbiAgZG9jdW1lbnQ6IHN0cmluZyxcbiAgY29udGVudFR5cGU6IENvbnRlbnRUeXBlLFxuICBiYXNlID0gQkFTRV9VUklcbikge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+XG4gICAgcGFyc2UoZG9jdW1lbnQsIGRhdGFTdG9yZSwgYmFzZSwgY29udGVudFR5cGUsIHJlc29sdmUpXG4gIClcbn1cbiJdfQ==
@@ -0,0 +1,74 @@
1
+ import { BlankNode, Literal, sym } from 'rdflib';
2
+ import { XmlElement, XmlText } from '@rgrove/parse-xml';
3
+ import { DCAT, FOAF, RDF } from '../namespaces';
4
+ import { createDocument, NAMESPACES, xmlToString } from '../../xml-utils';
5
+ import { BASE_URI } from './uri';
6
+ function fullNameToXml(fullName) {
7
+ for (const key in NAMESPACES) {
8
+ if (fullName.startsWith(NAMESPACES[key])) {
9
+ return [key, fullName.replace(NAMESPACES[key], '')];
10
+ }
11
+ }
12
+ return [null, fullName];
13
+ }
14
+ function createXmlElementFromNode(dataStore, node) {
15
+ if (node instanceof Literal) {
16
+ return new XmlText(node.value);
17
+ }
18
+ const type = dataStore.the(node, RDF('type'));
19
+ if (!type)
20
+ return null;
21
+ const statements = dataStore.statementsMatching(node, null, null);
22
+ const children = statements
23
+ // filtering out the rdf:type statements because they are already used above
24
+ .filter((statement) => statement.predicate.value !== RDF('type').value)
25
+ .map((statement) => {
26
+ if (statement.object.toString() === statement.subject.toString()) {
27
+ return null;
28
+ }
29
+ // special cases: foaf:primaryTopic in dcat:CatalogRecord
30
+ if (statement.predicate.value === FOAF('primaryTopic').value) {
31
+ return new XmlElement(`foaf:primaryTopic`, {
32
+ 'rdf:resource': statement.object.value,
33
+ });
34
+ }
35
+ const [namespace, name] = fullNameToXml(statement.predicate.value);
36
+ const objectNode = createXmlElementFromNode(dataStore, statement.object);
37
+ if (!objectNode) {
38
+ // no object node: simply use the object value
39
+ return new XmlElement(`${namespace}:${name}`, {
40
+ 'rdf:resource': statement.object.value,
41
+ }, []);
42
+ }
43
+ // wrap the object node in the predicate one
44
+ return new XmlElement(`${namespace}:${name}`, {}, [objectNode]);
45
+ })
46
+ .filter((child) => !!child);
47
+ const [namespace, name] = fullNameToXml(type.value);
48
+ const attributes = node instanceof BlankNode
49
+ ? {}
50
+ : {
51
+ 'rdf:about': node.value,
52
+ };
53
+ return new XmlElement(`${namespace}:${name}`, attributes, children);
54
+ }
55
+ /**
56
+ * This will output an XML document serialized as string, tailored in a way that it
57
+ * can be understood and indexed by GN4 dcat-ap plugin
58
+ * @param dataStore
59
+ */
60
+ export function exportGraphToXml(dataStore) {
61
+ // we start with the catalog node (which is created if missing)
62
+ let catalogNode = dataStore.statementsMatching(null, RDF('type'), DCAT('Catalog'))[0]?.subject;
63
+ if (!catalogNode) {
64
+ const recordNode = dataStore.the(null, RDF('type'), DCAT('CatalogRecord'));
65
+ const statement = dataStore.add(sym(`${BASE_URI}catalog`), RDF('type'), DCAT('Catalog'));
66
+ catalogNode = statement.subject;
67
+ dataStore.add(catalogNode, DCAT('record'), recordNode);
68
+ }
69
+ const rootEl = new XmlElement('rdf:RDF', {}, [
70
+ createXmlElementFromNode(dataStore, catalogNode),
71
+ ]);
72
+ return xmlToString(createDocument(rootEl));
73
+ }
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplLXRvLXhtbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL21ldGFkYXRhLWNvbnZlcnRlci9zcmMvbGliL2RjYXQtYXAvdXRpbHMvc2VyaWFsaXplLXRvLXhtbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBK0IsR0FBRyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzdFLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFFaEMsU0FBUyxhQUFhLENBQUMsUUFBZ0I7SUFDckMsS0FBSyxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUU7UUFDNUIsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ3hDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQTtTQUNwRDtLQUNGO0lBQ0QsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQTtBQUN6QixDQUFDO0FBRUQsU0FBUyx3QkFBd0IsQ0FDL0IsU0FBZ0IsRUFDaEIsSUFBeUI7SUFFekIsSUFBSSxJQUFJLFlBQVksT0FBTyxFQUFFO1FBQzNCLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0tBQy9CO0lBQ0QsTUFBTSxJQUFJLEdBQUcsU0FB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QUcsQ0FDN0IsR0FBRyxDQUFDLEdBQUcsUUFBUSxTQUFTLENBQUMsRUFDekIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDSCxDQUFBO1FBQ2QsV0FBVyxHQUFHLFNBQVMsQ0FBQyxPQUFvQixDQUFBO1FBQzVDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQTtLQUN2RDtJQUNELE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUU7UUFDM0Msd0JBQXdCLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQztLQUNqRCxDQUFDLENBQUE7SUFDRixPQUFPLFdBQVcsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtBQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmxhbmtOb2RlLCBMaXRlcmFsLCBOYW1lZE5vZGUsIFN0YXRlbWVudCwgU3RvcmUsIHN5bSB9IGZyb20gJ3JkZmxpYidcbmltcG9ydCB7IFhtbEVsZW1lbnQsIFhtbFRleHQgfSBmcm9tICdAcmdyb3ZlL3BhcnNlLXhtbCdcbmltcG9ydCB7IERDQVQsIEZPQUYsIFJERiB9IGZyb20gJy4uL25hbWVzcGFjZXMnXG5pbXBvcnQgeyBjcmVhdGVEb2N1bWVudCwgTkFNRVNQQUNFUywgeG1sVG9TdHJpbmcgfSBmcm9tICcuLi8uLi94bWwtdXRpbHMnXG5pbXBvcnQgeyBCQVNFX1VSSSB9IGZyb20gJy4vdXJpJ1xuXG5mdW5jdGlvbiBmdWxsTmFtZVRvWG1sKGZ1bGxOYW1lOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmddIHtcbiAgZm9yIChjb25zdCBrZXkgaW4gTkFNRVNQQUNFUykge1xuICAgIGlmIChmdWxsTmFtZS5zdGFydHNXaXRoKE5BTUVTUEFDRVNba2V5XSkpIHtcbiAgICAgIHJldHVybiBba2V5LCBmdWxsTmFtZS5yZXBsYWNlKE5BTUVTUEFDRVNba2V5XSwgJycpXVxuICAgIH1cbiAgfVxuICByZXR1cm4gW251bGwsIGZ1bGxOYW1lXVxufVxuXG5mdW5jdGlvbiBjcmVhdGVYbWxFbGVtZW50RnJvbU5vZGUoXG4gIGRhdGFTdG9yZTogU3RvcmUsXG4gIG5vZGU6IE5hbWVkTm9kZSB8IExpdGVyYWxcbik6IFhtbEVsZW1lbnQgfCBYbWxUZXh0IHtcbiAgaWYgKG5vZGUgaW5zdGFuY2VvZiBMaXRlcmFsKSB7XG4gICAgcmV0dXJuIG5ldyBYbWxUZXh0KG5vZGUudmFsdWUpXG4gIH1cbiAgY29uc3QgdHlwZSA9IGRhdGFTdG9yZS50aGUobm9kZSwgUkRGKCd0eXBlJykpIGFzIE5hbWVkTm9kZVxuICBpZiAoIXR5cGUpIHJldHVybiBudWxsXG5cbiAgY29uc3Qgc3RhdGVtZW50cyA9IGRhdGFTdG9yZS5zdGF0ZW1lbnRzTWF0Y2hpbmcobm9kZSwgbnVsbCwgbnVsbClcbiAgY29uc3QgY2hpbGRyZW4gPSBzdGF0ZW1lbnRzXG4gICAgLy8gZmlsdGVyaW5nIG91dCB0aGUgcmRmOnR5cGUgc3RhdGVtZW50cyBiZWNhdXNlIHRoZXkgYXJlIGFscmVhZHkgdXNlZCBhYm92ZVxuICAgIC5maWx0ZXIoKHN0YXRlbWVudCkgPT4gc3RhdGVtZW50LnByZWRpY2F0ZS52YWx1ZSAhPT0gUkRGKCd0eXBlJykudmFsdWUpXG4gICAgLm1hcCgoc3RhdGVtZW50KSA9PiB7XG4gICAgICBpZiAoc3RhdGVtZW50Lm9iamVjdC50b1N0cmluZygpID09PSBzdGF0ZW1lbnQuc3ViamVjdC50b1N0cmluZygpKSB7XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG5cbiAgICAgIC8vIHNwZWNpYWwgY2FzZXM6IGZvYWY6cHJpbWFyeVRvcGljIGluIGRjYXQ6Q2F0YWxvZ1JlY29yZFxuICAgICAgaWYgKHN0YXRlbWVudC5wcmVkaWNhdGUudmFsdWUgPT09IEZPQUYoJ3ByaW1hcnlUb3BpYycpLnZhbHVlKSB7XG4gICAgICAgIHJldHVybiBuZXcgWG1sRWxlbWVudChgZm9hZjpwcmltYXJ5VG9waWNgLCB7XG4gICAgICAgICAgJ3JkZjpyZXNvdXJjZSc6IHN0YXRlbWVudC5vYmplY3QudmFsdWUsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IFtuYW1lc3BhY2UsIG5hbWVdID0gZnVsbE5hbWVUb1htbChzdGF0ZW1lbnQucHJlZGljYXRlLnZhbHVlKVxuICAgICAgY29uc3Qgb2JqZWN0Tm9kZSA9IGNyZWF0ZVhtbEVsZW1lbnRGcm9tTm9kZShcbiAgICAgICAgZGF0YVN0b3JlLFxuICAgICAgICBzdGF0ZW1lbnQub2JqZWN0IGFzIE5hbWVkTm9kZVxuICAgICAgKVxuICAgICAgaWYgKCFvYmplY3ROb2RlKSB7XG4gICAgICAgIC8vIG5vIG9iamVjdCBub2RlOiBzaW1wbHkgdXNlIHRoZSBvYmplY3QgdmFsdWVcbiAgICAgICAgcmV0dXJuIG5ldyBYbWxFbGVtZW50KFxuICAgICAgICAgIGAke25hbWVzcGFjZX06JHtuYW1lfWAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgJ3JkZjpyZXNvdXJjZSc6IHN0YXRlbWVudC5vYmplY3QudmFsdWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBbXVxuICAgICAgICApXG4gICAgICB9XG4gICAgICAvLyB3cmFwIHRoZSBvYmplY3Qgbm9kZSBpbiB0aGUgcHJlZGljYXRlIG9uZVxuICAgICAgcmV0dXJuIG5ldyBYbWxFbGVtZW50KGAke25hbWVzcGFjZX06JHtuYW1lfWAsIHt9LCBbb2JqZWN0Tm9kZV0pXG4gICAgfSlcbiAgICAuZmlsdGVyKChjaGlsZCkgPT4gISFjaGlsZClcbiAgY29uc3QgW25hbWVzcGFjZSwgbmFtZV0gPSBmdWxsTmFtZVRvWG1sKHR5cGUudmFsdWUpXG4gIGNvbnN0IGF0dHJpYnV0ZXMgPVxuICAgIG5vZGUgaW5zdGFuY2VvZiBCbGFua05vZGVcbiAgICAgID8ge31cbiAgICAgIDoge1xuICAgICAgICAgICdyZGY6YWJvdXQnOiBub2RlLnZhbHVlLFxuICAgICAgICB9XG4gIHJldHVybiBuZXcgWG1sRWxlbWVudChgJHtuYW1lc3BhY2V9OiR7bmFtZX1gLCBhdHRyaWJ1dGVzLCBjaGlsZHJlbilcbn1cblxuLyoqXG4gKiBUaGlzIHdpbGwgb3V0cHV0IGFuIFhNTCBkb2N1bWVudCBzZXJpYWxpemVkIGFzIHN0cmluZywgdGFpbG9yZWQgaW4gYSB3YXkgdGhhdCBpdFxuICogY2FuIGJlIHVuZGVyc3Rvb2QgYW5kIGluZGV4ZWQgYnkgR040IGRjYXQtYXAgcGx1Z2luXG4gKiBAcGFyYW0gZGF0YVN0b3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHBvcnRHcmFwaFRvWG1sKGRhdGFTdG9yZTogU3RvcmUpOiBzdHJpbmcge1xuICAvLyB3ZSBzdGFydCB3aXRoIHRoZSBjYXRhbG9nIG5vZGUgKHdoaWNoIGlzIGNyZWF0ZWQgaWYgbWlzc2luZylcbiAgbGV0IGNhdGFsb2dOb2RlID0gZGF0YVN0b3JlLnN0YXRlbWVudHNNYXRjaGluZyhcbiAgICBudWxsLFxuICAgIFJERigndHlwZScpLFxuICAgIERDQVQoJ0NhdGFsb2cnKVxuICApWzBdPy5zdWJqZWN0IGFzIE5hbWVkTm9kZVxuICBpZiAoIWNhdGFsb2dOb2RlKSB7XG4gICAgY29uc3QgcmVjb3JkTm9kZSA9IGRhdGFTdG9yZS50aGUobnVsbCwgUkRGKCd0eXBlJyksIERDQVQoJ0NhdGFsb2dSZWNvcmQnKSlcbiAgICBjb25zdCBzdGF0ZW1lbnQgPSBkYXRhU3RvcmUuYWRkKFxuICAgICAgc3ltKGAke0JBU0VfVVJJfWNhdGFsb2dgKSxcbiAgICAgIFJERigndHlwZScpLFxuICAgICAgRENBVCgnQ2F0YWxvZycpXG4gICAgKSBhcyBTdGF0ZW1lbnRcbiAgICBjYXRhbG9nTm9kZSA9IHN0YXRlbWVudC5zdWJqZWN0IGFzIE5hbWVkTm9kZVxuICAgIGRhdGFTdG9yZS5hZGQoY2F0YWxvZ05vZGUsIERDQVQoJ3JlY29yZCcpLCByZWNvcmROb2RlKVxuICB9XG4gIGNvbnN0IHJvb3RFbCA9IG5ldyBYbWxFbGVtZW50KCdyZGY6UkRGJywge30sIFtcbiAgICBjcmVhdGVYbWxFbGVtZW50RnJvbU5vZGUoZGF0YVN0b3JlLCBjYXRhbG9nTm9kZSksXG4gIF0pXG4gIHJldHVybiB4bWxUb1N0cmluZyhjcmVhdGVEb2N1bWVudChyb290RWwpKVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export const BASE_URI = 'http://geonetwork-ui/';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvbWV0YWRhdGEtY29udmVydGVyL3NyYy9saWIvZGNhdC1hcC91dGlscy91cmkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLHVCQUF1QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEJBU0VfVVJJID0gJ2h0dHA6Ly9nZW9uZXR3b3JrLXVpLydcbiJdfQ==
@@ -0,0 +1,27 @@
1
+ import { sym } from 'rdflib';
2
+ import { DCAT, DCTERMS, FOAF, RDF } from './namespaces';
3
+ import { getOrAddLiteral, getOrAddLocalizedLiteral, getOrAddStatement, } from './utils/graph-utils';
4
+ import { BASE_URI } from './utils/uri';
5
+ function getOrAddDatasetNode(record, dataStore, recordNode) {
6
+ if (dataStore.holds(null, RDF('type'), DCAT('Dataset'))) {
7
+ return dataStore.the(null, RDF('type'), DCAT('Dataset'));
8
+ }
9
+ const datasetNode = sym(`${BASE_URI}dataset/${record.uniqueIdentifier}`);
10
+ dataStore.add(datasetNode, RDF('type'), DCAT('Dataset'));
11
+ dataStore.add(recordNode, FOAF('primaryTopic'), datasetNode);
12
+ return datasetNode;
13
+ }
14
+ export function writeUniqueIdentifier(record, dataStore, recordNode) {
15
+ getOrAddStatement(dataStore, recordNode, DCTERMS('identifier'), record.uniqueIdentifier);
16
+ }
17
+ export function writeTitle(record, dataStore, recordNode) {
18
+ const dataset = getOrAddDatasetNode(record, dataStore, recordNode);
19
+ getOrAddLocalizedLiteral(dataStore, dataset, DCTERMS('title'), record.title, 'en');
20
+ getOrAddLiteral(dataStore, dataset, DCTERMS('title'), record.title);
21
+ }
22
+ export function writeAbstract(record, dataStore, recordNode) {
23
+ const dataset = getOrAddDatasetNode(record, dataStore, recordNode);
24
+ getOrAddLocalizedLiteral(dataStore, dataset, DCTERMS('description'), record.abstract, 'en');
25
+ getOrAddLiteral(dataStore, dataset, DCTERMS('description'), record.abstract);
26
+ }
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtcGFydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9kY2F0LWFwL3dyaXRlLXBhcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBb0IsR0FBRyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDdkQsT0FBTyxFQUNMLGVBQWUsRUFDZix3QkFBd0IsRUFDeEIsaUJBQWlCLEdBQ2xCLE1BQU0scUJBQXFCLENBQUE7QUFDNUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUV0QyxTQUFTLG1CQUFtQixDQUMxQixNQUFxQixFQUNyQixTQUFnQixFQUNoQixVQUFxQjtJQUVyQixJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRTtRQUN2RCxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQWMsQ0FBQTtLQUN0RTtJQUNELE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxHQUFHLFFBQVEsV0FBVyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFBO0lBQ3hFLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtJQUN4RCxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFDNUQsT0FBTyxXQUFXLENBQUE7QUFDcEIsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsTUFBcUIsRUFDckIsU0FBZ0IsRUFDaEIsVUFBcUI7SUFFckIsaUJBQWlCLENBQ2YsU0FBUyxFQUNULFVBQVUsRUFDVixPQUFPLENBQUMsWUFBWSxDQUFDLEVBQ3JCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FDeEIsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUN4QixNQUFxQixFQUNyQixTQUFnQixFQUNoQixVQUFxQjtJQUVyQixNQUFNLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFBO0lBQ2xFLHdCQUF3QixDQUN0QixTQUFTLEVBQ1QsT0FBTyxFQUNQLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFDaEIsTUFBTSxDQUFDLEtBQUssRUFDWixJQUFJLENBQ0wsQ0FBQTtJQUNELGVBQWUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDckUsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQzNCLE1BQXFCLEVBQ3JCLFNBQWdCLEVBQ2hCLFVBQXFCO0lBRXJCLE1BQU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDbEUsd0JBQXdCLENBQ3RCLFNBQVMsRUFDVCxPQUFPLEVBQ1AsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUN0QixNQUFNLENBQUMsUUFBUSxFQUNmLElBQUksQ0FDTCxDQUFBO0lBQ0QsZUFBZSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtBQUM5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2F0YWxvZ1JlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IE5hbWVkTm9kZSwgU3RvcmUsIHN5bSB9IGZyb20gJ3JkZmxpYidcbmltcG9ydCB7IERDQVQsIERDVEVSTVMsIEZPQUYsIFJERiB9IGZyb20gJy4vbmFtZXNwYWNlcydcbmltcG9ydCB7XG4gIGdldE9yQWRkTGl0ZXJhbCxcbiAgZ2V0T3JBZGRMb2NhbGl6ZWRMaXRlcmFsLFxuICBnZXRPckFkZFN0YXRlbWVudCxcbn0gZnJvbSAnLi91dGlscy9ncmFwaC11dGlscydcbmltcG9ydCB7IEJBU0VfVVJJIH0gZnJvbSAnLi91dGlscy91cmknXG5cbmZ1bmN0aW9uIGdldE9yQWRkRGF0YXNldE5vZGUoXG4gIHJlY29yZDogQ2F0YWxvZ1JlY29yZCxcbiAgZGF0YVN0b3JlOiBTdG9yZSxcbiAgcmVjb3JkTm9kZTogTmFtZWROb2RlXG4pOiBOYW1lZE5vZGUge1xuICBpZiAoZGF0YVN0b3JlLmhvbGRzKG51bGwsIFJERigndHlwZScpLCBEQ0FUKCdEYXRhc2V0JykpKSB7XG4gICAgcmV0dXJuIGRhdGFTdG9yZS50aGUobnVsbCwgUkRGKCd0eXBlJyksIERDQVQoJ0RhdGFzZXQnKSkgYXMgTmFtZWROb2RlXG4gIH1cbiAgY29uc3QgZGF0YXNldE5vZGUgPSBzeW0oYCR7QkFTRV9VUkl9ZGF0YXNldC8ke3JlY29yZC51bmlxdWVJZGVudGlmaWVyfWApXG4gIGRhdGFTdG9yZS5hZGQoZGF0YXNldE5vZGUsIFJERigndHlwZScpLCBEQ0FUKCdEYXRhc2V0JykpXG4gIGRhdGFTdG9yZS5hZGQocmVjb3JkTm9kZSwgRk9BRigncHJpbWFyeVRvcGljJyksIGRhdGFzZXROb2RlKVxuICByZXR1cm4gZGF0YXNldE5vZGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlVW5pcXVlSWRlbnRpZmllcihcbiAgcmVjb3JkOiBDYXRhbG9nUmVjb3JkLFxuICBkYXRhU3RvcmU6IFN0b3JlLFxuICByZWNvcmROb2RlOiBOYW1lZE5vZGVcbikge1xuICBnZXRPckFkZFN0YXRlbWVudChcbiAgICBkYXRhU3RvcmUsXG4gICAgcmVjb3JkTm9kZSxcbiAgICBEQ1RFUk1TKCdpZGVudGlmaWVyJyksXG4gICAgcmVjb3JkLnVuaXF1ZUlkZW50aWZpZXJcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVUaXRsZShcbiAgcmVjb3JkOiBDYXRhbG9nUmVjb3JkLFxuICBkYXRhU3RvcmU6IFN0b3JlLFxuICByZWNvcmROb2RlOiBOYW1lZE5vZGVcbikge1xuICBjb25zdCBkYXRhc2V0ID0gZ2V0T3JBZGREYXRhc2V0Tm9kZShyZWNvcmQsIGRhdGFTdG9yZSwgcmVjb3JkTm9kZSlcbiAgZ2V0T3JBZGRMb2NhbGl6ZWRMaXRlcmFsKFxuICAgIGRhdGFTdG9yZSxcbiAgICBkYXRhc2V0LFxuICAgIERDVEVSTVMoJ3RpdGxlJyksXG4gICAgcmVjb3JkLnRpdGxlLFxuICAgICdlbidcbiAgKVxuICBnZXRPckFkZExpdGVyYWwoZGF0YVN0b3JlLCBkYXRhc2V0LCBEQ1RFUk1TKCd0aXRsZScpLCByZWNvcmQudGl0bGUpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZUFic3RyYWN0KFxuICByZWNvcmQ6IENhdGFsb2dSZWNvcmQsXG4gIGRhdGFTdG9yZTogU3RvcmUsXG4gIHJlY29yZE5vZGU6IE5hbWVkTm9kZVxuKSB7XG4gIGNvbnN0IGRhdGFzZXQgPSBnZXRPckFkZERhdGFzZXROb2RlKHJlY29yZCwgZGF0YVN0b3JlLCByZWNvcmROb2RlKVxuICBnZXRPckFkZExvY2FsaXplZExpdGVyYWwoXG4gICAgZGF0YVN0b3JlLFxuICAgIGRhdGFzZXQsXG4gICAgRENURVJNUygnZGVzY3JpcHRpb24nKSxcbiAgICByZWNvcmQuYWJzdHJhY3QsXG4gICAgJ2VuJ1xuICApXG4gIGdldE9yQWRkTGl0ZXJhbChkYXRhU3RvcmUsIGRhdGFzZXQsIERDVEVSTVMoJ2Rlc2NyaXB0aW9uJyksIHJlY29yZC5hYnN0cmFjdClcbn1cbiJdfQ==
@@ -1,5 +1,6 @@
1
1
  import { Iso19139Converter } from './iso19139';
2
2
  import { Iso191153Converter } from './iso19115-3';
3
+ import { DcatApConverter } from './dcat-ap';
3
4
  export function findConverterForDocument(document) {
4
5
  if (document.indexOf('mdb:MD_Metadata') > 0) {
5
6
  return new Iso191153Converter();
@@ -7,9 +8,18 @@ export function findConverterForDocument(document) {
7
8
  else if (document.indexOf('gmd:MD_Metadata') > 0) {
8
9
  return new Iso19139Converter();
9
10
  }
11
+ else if (/@prefix\s*[a-z]+\s*:\s*<http:\/\/www\.w3\.org\/ns\/dcat#>\s*\./.test(document)) {
12
+ return new DcatApConverter('text/turtle');
13
+ }
14
+ else if (/xmlns:[a-z]+="http:\/\/www\.w3\.org\/ns\/dcat#"/.test(document)) {
15
+ return new DcatApConverter('application/rdf+xml');
16
+ }
17
+ else if (/"[a-zA-Z]+"\s*:\s*"http:\/\/www\.w3\.org\/ns\/dcat#/.test(document)) {
18
+ return new DcatApConverter('application/ld+json');
19
+ }
10
20
  else {
11
21
  throw new Error(`No suitable converter found for the following document:
12
22
  ${document.substring(0, 400)}...`);
13
23
  }
14
24
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1jb252ZXJ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9maW5kLWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFOUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRWpELE1BQU0sVUFBVSx3QkFBd0IsQ0FDdEMsUUFBZ0I7SUFFaEIsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQzNDLE9BQU8sSUFBSSxrQkFBa0IsRUFBRSxDQUFBO0tBQ2hDO1NBQU0sSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2xELE9BQU8sSUFBSSxpQkFBaUIsRUFBRSxDQUFBO0tBQy9CO1NBQU07UUFDTCxNQUFNLElBQUksS0FBSyxDQUFDO0VBQ2xCLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtLQUMvQjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJc28xOTEzOUNvbnZlcnRlciB9IGZyb20gJy4vaXNvMTkxMzknXG5pbXBvcnQgeyBCYXNlQ29udmVydGVyIH0gZnJvbSAnLi9iYXNlLmNvbnZlcnRlcidcbmltcG9ydCB7IElzbzE5MTE1M0NvbnZlcnRlciB9IGZyb20gJy4vaXNvMTkxMTUtMydcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRDb252ZXJ0ZXJGb3JEb2N1bWVudChcbiAgZG9jdW1lbnQ6IHN0cmluZ1xuKTogQmFzZUNvbnZlcnRlcjxzdHJpbmc+IHtcbiAgaWYgKGRvY3VtZW50LmluZGV4T2YoJ21kYjpNRF9NZXRhZGF0YScpID4gMCkge1xuICAgIHJldHVybiBuZXcgSXNvMTkxMTUzQ29udmVydGVyKClcbiAgfSBlbHNlIGlmIChkb2N1bWVudC5pbmRleE9mKCdnbWQ6TURfTWV0YWRhdGEnKSA+IDApIHtcbiAgICByZXR1cm4gbmV3IElzbzE5MTM5Q29udmVydGVyKClcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1aXRhYmxlIGNvbnZlcnRlciBmb3VuZCBmb3IgdGhlIGZvbGxvd2luZyBkb2N1bWVudDpcbiR7ZG9jdW1lbnQuc3Vic3RyaW5nKDAsIDQwMCl9Li4uYClcbiAgfVxufVxuIl19
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1jb252ZXJ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9maW5kLWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFOUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFM0MsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxRQUFnQjtJQUVoQixJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDM0MsT0FBTyxJQUFJLGtCQUFrQixFQUFFLENBQUE7S0FDaEM7U0FBTSxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDbEQsT0FBTyxJQUFJLGlCQUFpQixFQUFFLENBQUE7S0FDL0I7U0FBTSxJQUNMLGdFQUFnRSxDQUFDLElBQUksQ0FDbkUsUUFBUSxDQUNULEVBQ0Q7UUFDQSxPQUFPLElBQUksZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0tBQzFDO1NBQU0sSUFBSSxpREFBaUQsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDM0UsT0FBTyxJQUFJLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0tBQ2xEO1NBQU0sSUFDTCxxREFBcUQsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3BFO1FBQ0EsT0FBTyxJQUFJLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0tBQ2xEO1NBQU07UUFDTCxNQUFNLElBQUksS0FBSyxDQUFDO0VBQ2xCLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtLQUMvQjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJc28xOTEzOUNvbnZlcnRlciB9IGZyb20gJy4vaXNvMTkxMzknXG5pbXBvcnQgeyBCYXNlQ29udmVydGVyIH0gZnJvbSAnLi9iYXNlLmNvbnZlcnRlcidcbmltcG9ydCB7IElzbzE5MTE1M0NvbnZlcnRlciB9IGZyb20gJy4vaXNvMTkxMTUtMydcbmltcG9ydCB7IERjYXRBcENvbnZlcnRlciB9IGZyb20gJy4vZGNhdC1hcCdcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRDb252ZXJ0ZXJGb3JEb2N1bWVudChcbiAgZG9jdW1lbnQ6IHN0cmluZ1xuKTogQmFzZUNvbnZlcnRlcjxzdHJpbmc+IHtcbiAgaWYgKGRvY3VtZW50LmluZGV4T2YoJ21kYjpNRF9NZXRhZGF0YScpID4gMCkge1xuICAgIHJldHVybiBuZXcgSXNvMTkxMTUzQ29udmVydGVyKClcbiAgfSBlbHNlIGlmIChkb2N1bWVudC5pbmRleE9mKCdnbWQ6TURfTWV0YWRhdGEnKSA+IDApIHtcbiAgICByZXR1cm4gbmV3IElzbzE5MTM5Q29udmVydGVyKClcbiAgfSBlbHNlIGlmIChcbiAgICAvQHByZWZpeFxccypbYS16XStcXHMqOlxccyo8aHR0cDpcXC9cXC93d3dcXC53M1xcLm9yZ1xcL25zXFwvZGNhdCM+XFxzKlxcLi8udGVzdChcbiAgICAgIGRvY3VtZW50XG4gICAgKVxuICApIHtcbiAgICByZXR1cm4gbmV3IERjYXRBcENvbnZlcnRlcigndGV4dC90dXJ0bGUnKVxuICB9IGVsc2UgaWYgKC94bWxuczpbYS16XSs9XCJodHRwOlxcL1xcL3d3d1xcLnczXFwub3JnXFwvbnNcXC9kY2F0I1wiLy50ZXN0KGRvY3VtZW50KSkge1xuICAgIHJldHVybiBuZXcgRGNhdEFwQ29udmVydGVyKCdhcHBsaWNhdGlvbi9yZGYreG1sJylcbiAgfSBlbHNlIGlmIChcbiAgICAvXCJbYS16QS1aXStcIlxccyo6XFxzKlwiaHR0cDpcXC9cXC93d3dcXC53M1xcLm9yZ1xcL25zXFwvZGNhdCMvLnRlc3QoZG9jdW1lbnQpXG4gICkge1xuICAgIHJldHVybiBuZXcgRGNhdEFwQ29udmVydGVyKCdhcHBsaWNhdGlvbi9sZCtqc29uJylcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1aXRhYmxlIGNvbnZlcnRlciBmb3VuZCBmb3IgdGhlIGZvbGxvd2luZyBkb2N1bWVudDpcbiR7ZG9jdW1lbnQuc3Vic3RyaW5nKDAsIDQwMCl9Li4uYClcbiAgfVxufVxuIl19
@@ -67,10 +67,11 @@ export const mapKeywords = (thesauri, language) => {
67
67
  keywords.push({
68
68
  label: selectTranslatedValue(keyword, language),
69
69
  type: getKeywordTypeFromKeywordTypeCode(rawThesaurus.theme),
70
+ ...(keyword.link && { key: keyword.link }),
70
71
  ...(thesaurus && { thesaurus }),
71
72
  });
72
73
  }
73
74
  }
74
75
  return keywords;
75
76
  };
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvbWljLW9wZXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9nbjQvYXRvbWljLW9wZXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFFbkUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFJcEYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQ3pCLE1BQThCLEVBQzlCLFNBQWlCLEVBQ1AsRUFBRSxDQUNaLE1BQU0sS0FBSyxJQUFJLElBQUksU0FBUyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7QUFFMUUsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FDbEMsTUFBOEIsRUFDOUIsR0FBRyxVQUFvQixFQUNiLEVBQUUsQ0FDWixVQUFVLENBQUMsTUFBTSxDQUNmLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFDbEUsSUFBSSxDQUNMLENBQUE7QUFFSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBTyxLQUFRLEVBQUUsUUFBVyxFQUFTLEVBQUUsQ0FDbkUsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFFbkMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FDbkMsTUFBOEIsRUFDOUIsS0FBYSxFQUNILEVBQUUsQ0FDWixjQUFjLENBQUMsV0FBVyxDQUFDLE1BQU0s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LFdBQVcsQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtZQUMxRCxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ2xELFNBQVMsR0FBRztnQkFDVixFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQUU7Z0JBQ25CLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDckIsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO2FBQ3BCLENBQUE7U0FDRjtRQUNELEtBQUssTUFBTSxPQUFPLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRTtZQUMzQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNaLEtBQUssRUFBRSxxQkFBcUIsQ0FBUyxPQUFPLEVBQUUsUUFBUSxDQUFDO2dCQUN2RCxJQUFJLEVBQUUsaUNBQWlDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztnQkFDM0QsR0FBRyxDQUFDLFNBQVMsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO2FBQ2hDLENBQUMsQ0FBQTtTQUNIO0tBQ0Y7SUFFRCxPQUFPLFFBQVEsQ0FBQTtBQUNqQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmRpdmlkdWFsLFxuICBPcmdhbml6YXRpb24sXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IGdldFJvbGVGcm9tUm9sZUNvZGUgfSBmcm9tICcuLi9pc28xOTEzOS91dGlscy9yb2xlLm1hcHBlcidcbmltcG9ydCB7IFRoZXNhdXJ1cyB9IGZyb20gJy4vdHlwZXMnXG5pbXBvcnQgeyBnZXRLZXl3b3JkVHlwZUZyb21LZXl3b3JkVHlwZUNvZGUgfSBmcm9tICcuLi9pc28xOTEzOS91dGlscy9rZXl3b3JkLm1hcHBlcidcblxuZXhwb3J0IHR5cGUgU291cmNlV2l0aFVua25vd25Qcm9wcyA9IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RGaWVsZCA9IDxUPihcbiAgc291cmNlOiBTb3VyY2VXaXRoVW5rbm93blByb3BzLFxuICBmaWVsZE5hbWU6IHN0cmluZ1xuKTogVCB8IG51bGwgPT5cbiAgc291cmNlICE9PSBudWxsICYmIGZpZWxkTmFtZSBpbiBzb3VyY2UgPyAoc291cmNlW2ZpZWxkTmFtZV0gYXMgVCkgOiBudWxsXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RGYWxsYmFja0ZpZWxkcyA9IDxUPihcbiAgc291cmNlOiBTb3VyY2VXaXRoVW5rbm93blByb3BzLFxuICAuLi5maWVsZE5hbWVzOiBzdHJpbmdbXVxuKTogVCB8IG51bGwgPT5cbiAgZmllbGROYW1lcy5yZWR1Y2U8VD4oXG4gICAgKHByZXYsIGN1cnIpID0+IChwcmV2ID09PSBudWxsID8gc2VsZWN0RmllbGQoc291cmNlLCBjdXJyKSA6IHByZXYpLFxuICAgIG51bGxcbiAgKVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0RmFsbGJhY2sgPSA8VCwgVT4oZmllbGQ6IFQsIGZhbGxiYWNrOiBVKTogVCB8IFUgPT5cbiAgZmllbGQgPT09IG51bGwgPyBmYWxsYmFjayA6IGZpZWxkXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RUcmFuc2xhdGVkVmFsdWUgPSA8VD4oXG4gIHNvdXJjZTogU291cmNlV2l0aFVua25vd25Qcm9wcyxcbiAgbGFuZzM6IHN0cmluZ1xuKTogVCB8IG51bGwgPT5cbiAgc2VsZWN0RmFsbGJhY2soc2VsZWN0RmllbGQoc291cmNlLCBsYW5nMyksIHNlbGVjdEZpZWxkKHNvdXJjZSwgJ2RlZmF1bHQnKSlcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFRyYW5zbGF0ZWRGaWVsZCA9IDxUPihcbiAgc291cmNlOiBTb3VyY2VXaXRoVW5rbm93blByb3BzLFxuICBmaWVsZE5hbWU6IHN0cmluZyxcbiAgbGFuZzM6IHN0cmluZ1xuKTogVCB8IG51bGwgPT4gc2VsZWN0VHJhbnNsYXRlZFZhbHVlKHNlbGVjdEZpZWxkKHNvdXJjZSwgZmllbGROYW1lKSwgbGFuZzMpXG5cbmV4cG9ydCBjb25zdCB0b0RhdGUgPSAoZmllbGQpID0+IG5ldyBEYXRlKGZpZWxkKVxuXG5leHBvcnQgY29uc3QgZ2V0Rmlyc3RWYWx1ZSA9IChmaWVsZCkgPT5cbiAgQXJyYXkuaXNBcnJheShmaWVsZCkgPyBmaWVsZFswXSA6IGZpZWxkXG5cbmV4cG9ydCBjb25zdCBnZXRBcnJheUl0ZW0gPSAoZmllbGQsIGluZGV4KSA9PlxuICBBcnJheS5pc0FycmF5KGZpZWxkKSAmJiBmaWVsZFtpbmRleF0gIT09IHVuZGVmaW5lZCA/IGZpZWxkW2luZGV4XSA6IG51bGxcblxuZXhwb3J0IGNvbnN0IGdldEFzQXJyYXkgPSAoZmllbGQpID0+XG4gIEFycmF5LmlzQXJyYXkoZmllbGQpID8gZmllbGQgOiBmaWVsZCAhPT0gbnVsbCA/IFtmaWVsZF0gOiBbXVxuXG5leHBvcnQgY29uc3QgZ2V0QXNVcmwgPSAoXG4gIGZpZWxkLFxuICBsb2NhdGlvbjogc3RyaW5nID0gd2luZG93LmxvY2F0aW9uLnRvU3RyaW5nKClcbikgPT4ge1xuICAvLyBhbiBlbXB0eSBzdHJpbmcgaXMgbm90IGEgdmFsaWQgdXJsLCBldmVuIHRob3VnaCBpdCBjb3VsZCBiZSBjb25zaWRlcmVkIGFuIGVtcHR5IHBhdGggdG8gdGhlIHJvb3RcbiAgaWYgKGZpZWxkID09PSAnJyB8fCBmaWVsZCA9PT0gbnVsbCkgcmV0dXJuIG51bGxcbiAgbGV0IHVybCA9IGZpZWxkXG4gIGlmIChmaWVsZC5tYXRjaCgvXnd3d1xcLi8pKSB1cmwgPSBgaHR0cHM6Ly8ke2ZpZWxkfWBcbiAgdHJ5IHtcbiAgICByZXR1cm4gbmV3IFVSTCh1cmwsIGxvY2F0aW9uKVxuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBtYXBMb2dvID0gKHNvdXJjZTogU291cmNlV2l0aFVua25vd25Qcm9wcykgPT4ge1xuICBjb25zdCBsb2dvID0gc2VsZWN0RmFsbGJhY2tGaWVsZHMoc291cmNlLCAnbG9nb1VybCcsICdsb2dvJylcbiAgcmV0dXJuIGxvZ28gPyBnZXRBc1VybChgL2dlb25ldHdvcmske2xvZ299YCkgOiBudWxsXG59XG5cbmV4cG9ydCBjb25zdCBtYXBPcmdhbml6YXRpb24gPSAoXG4gIHNvdXJjZUNvbnRhY3Q6IFNvdXJjZVdpdGhVbmtub3duUHJvcHMsXG4gIGxhbmczOiBzdHJpbmdcbik6IE9yZ2FuaXphdGlvbiA9PiB7XG4gIGNvbnN0IHdlYnNpdGUgPSBnZXRBc1VybChzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICd3ZWJzaXRlJykpXG4gIGNvbnN0IGxvZ29VcmwgPSBnZXRBc1VybChzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdsb2dvJykpXG4gIHJldHVybiB7XG4gICAgbmFtZTogc2VsZWN0RmFsbGJhY2soXG4gICAgICBzZWxlY3RUcmFuc2xhdGVkRmllbGQ8c3RyaW5nPihzb3VyY2VDb250YWN0LCAnb3JnYW5pc2F0aW9uT2JqZWN0JywgbGFuZzMpLFxuICAgICAgc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2VDb250YWN0LCAnb3JnYW5pc2F0aW9uJylcbiAgICApLFxuICAgIC4uLihsb2dvVXJsICYmIHsgbG9nb1VybCB9KSxcbiAgICAuLi4od2Vic2l0ZSAmJiB7IHdlYnNpdGUgfSksXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IG1hcENvbnRhY3QgPSAoXG4gIHNvdXJjZUNvbnRhY3Q6IFNvdXJjZVdpdGhVbmtub3duUHJvcHMsXG4gIGxhbmczOiBzdHJpbmdcbik6IEluZGl2aWR1YWwgPT4ge1xuICBjb25zdCBhZGRyZXNzID0gc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2VDb250YWN0LCAnYWRkcmVzcycpXG4gIGNvbnN0IHBob25lID0gc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2VDb250YWN0LCAncGhvbmUnKVxuICByZXR1cm4ge1xuICAgIGxhc3ROYW1lOiBzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdpbmRpdmlkdWFsJyksXG4gICAgb3JnYW5pemF0aW9uOiBtYXBPcmdhbml6YXRpb24oc291cmNlQ29udGFjdCwgbGFuZzMpLFxuICAgIGVtYWlsOiBzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdlbWFpbCcpLFxuICAgIHJvbGU6IGdldFJvbGVGcm9tUm9sZUNvZGUoc2VsZWN0RmllbGQ8c3RyaW5nPihzb3VyY2VDb250YWN0LCAncm9sZScpKSxcbiAgICAuLi4oYWRkcmVzcyAmJiB7IGFkZHJlc3MgfSksXG4gICAgLi4uKHBob25lICYmIHsgcGhvbmUgfSksXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IG1hcEtleXdvcmRzID0gKHRoZXNhdXJpOiBUaGVzYXVydXNbXSwgbGFuZ3VhZ2U6IHN0cmluZykgPT4ge1xuICBjb25zdCBrZXl3b3JkcyA9IFtdXG4gIGZvciAoY29uc3QgdGhlc2F1cnVzSWQgaW4gdGhlc2F1cmkpIHtcbiAgICBjb25zdCByYXdUaGVzYXVydXMgPSB0aGVzYXVyaVt0aGVzYXVydXNJZF1cbiAgICBsZXQgdGhlc2F1cnVzID0gbnVsbFxuICAgIGlmIChyYXdUaGVzYXVydXMuaWQpIHtcbiAgICAgIGNvbnN0IHRoZXNhdXJ1c1NvdXJjZTogU291cmNlV2l0aFVua25vd25Qcm9wcyA9IHsgLi4ucmF3VGhlc2F1cnVzIH1cbiAgICAgIGNvbnN0IHVybCA9IGdldEFzVXJsKHNlbGVjdEZpZWxkKHRoZXNhdXJ1c1NvdXJjZSwgJ2xpbmsnKSlcbiAgICAgIGNvbnN0IG5hbWUgPSBzZWxlY3RGaWVsZCh0aGVzYXVydXNTb3VyY2UsICd0aXRsZScpXG4gICAgICB0aGVzYXVydXMgPSB7XG4gICAgICAgIGlkOiByYXdUaGVzYXVydXMuaWQsXG4gICAgICAgIC4uLihuYW1lICYmIHsgbmFtZSB9KSxcbiAgICAgICAgLi4uKHVybCAmJiB7IHVybCB9KSxcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBrZXl3b3JkIG9mIHJhd1RoZXNhdXJ1cy5rZXl3b3Jkcykge1xuICAgICAga2V5d29yZHMucHVzaCh7XG4gICAgICAgIGxhYmVsOiBzZWxlY3RUcmFuc2xhdGVkVmFsdWU8c3RyaW5nPihrZXl3b3JkLCBsYW5ndWFnZSksXG4gICAgICAgIHR5cGU6IGdldEtleXdvcmRUeXBlRnJvbUtleXdvcmRUeXBlQ29kZShyYXdUaGVzYXVydXMudGhlbWUpLFxuICAgICAgICAuLi4odGhlc2F1cnVzICYmIHsgdGhlc2F1cnVzIH0pLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4ga2V5d29yZHNcbn1cbiJdfQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvbWljLW9wZXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9nbjQvYXRvbWljLW9wZXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFFbkUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFJcEYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQ3pCLE1BQThCLEVBQzlCLFNBQWlCLEVBQ1AsRUFBRSxDQUNaLE1BQU0sS0FBSyxJQUFJLElBQUksU0FBUyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7QUFFMUUsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FDbEMsTUFBOEIsRUFDOUIsR0FBRyxVQUFvQixFQUNiLEVBQUUsQ0FDWixVQUFVLENBQUMsTUFBTSxDQUNmLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFDbEUsSUFBSSxDQUNMLENBQUE7QUFFSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBTyxLQUFRLEVBQUUsUUFBVyxFQUFTLEVBQUUsQ0FDbkUsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFFbkMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FDbkMsTUFBOEIsRUFDOUIsS0FBYSxFQUNILEVBQUUsQ0FDWixjQUFjLENBQUMsV0FBVyxDQUFDLE1BQU0s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LFdBQVcsQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtZQUMxRCxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ2xELFNBQVMsR0FBRztnQkFDVixFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQUU7Z0JBQ25CLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDckIsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO2FBQ3BCLENBQUE7U0FDRjtRQUNELEtBQUssTUFBTSxPQUFPLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRTtZQUMzQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNaLEtBQUssRUFBRSxxQkFBcUIsQ0FBUyxPQUFPLEVBQUUsUUFBUSxDQUFDO2dCQUN2RCxJQUFJLEVBQUUsaUNBQWlDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztnQkFDM0QsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMxQyxHQUFHLENBQUMsU0FBUyxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7YUFDaEMsQ0FBQyxDQUFBO1NBQ0g7S0FDRjtJQUVELE9BQU8sUUFBUSxDQUFBO0FBQ2pCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluZGl2aWR1YWwsXG4gIE9yZ2FuaXphdGlvbixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgZ2V0Um9sZUZyb21Sb2xlQ29kZSB9IGZyb20gJy4uL2lzbzE5MTM5L3V0aWxzL3JvbGUubWFwcGVyJ1xuaW1wb3J0IHsgVGhlc2F1cnVzIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB7IGdldEtleXdvcmRUeXBlRnJvbUtleXdvcmRUeXBlQ29kZSB9IGZyb20gJy4uL2lzbzE5MTM5L3V0aWxzL2tleXdvcmQubWFwcGVyJ1xuXG5leHBvcnQgdHlwZSBTb3VyY2VXaXRoVW5rbm93blByb3BzID0geyBba2V5OiBzdHJpbmddOiB1bmtub3duIH1cblxuZXhwb3J0IGNvbnN0IHNlbGVjdEZpZWxkID0gPFQ+KFxuICBzb3VyY2U6IFNvdXJjZVdpdGhVbmtub3duUHJvcHMsXG4gIGZpZWxkTmFtZTogc3RyaW5nXG4pOiBUIHwgbnVsbCA9PlxuICBzb3VyY2UgIT09IG51bGwgJiYgZmllbGROYW1lIGluIHNvdXJjZSA/IChzb3VyY2VbZmllbGROYW1lXSBhcyBUKSA6IG51bGxcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEZhbGxiYWNrRmllbGRzID0gPFQ+KFxuICBzb3VyY2U6IFNvdXJjZVdpdGhVbmtub3duUHJvcHMsXG4gIC4uLmZpZWxkTmFtZXM6IHN0cmluZ1tdXG4pOiBUIHwgbnVsbCA9PlxuICBmaWVsZE5hbWVzLnJlZHVjZTxUPihcbiAgICAocHJldiwgY3VycikgPT4gKHByZXYgPT09IG51bGwgPyBzZWxlY3RGaWVsZChzb3VyY2UsIGN1cnIpIDogcHJldiksXG4gICAgbnVsbFxuICApXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RGYWxsYmFjayA9IDxULCBVPihmaWVsZDogVCwgZmFsbGJhY2s6IFUpOiBUIHwgVSA9PlxuICBmaWVsZCA9PT0gbnVsbCA/IGZhbGxiYWNrIDogZmllbGRcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFRyYW5zbGF0ZWRWYWx1ZSA9IDxUPihcbiAgc291cmNlOiBTb3VyY2VXaXRoVW5rbm93blByb3BzLFxuICBsYW5nMzogc3RyaW5nXG4pOiBUIHwgbnVsbCA9PlxuICBzZWxlY3RGYWxsYmFjayhzZWxlY3RGaWVsZChzb3VyY2UsIGxhbmczKSwgc2VsZWN0RmllbGQoc291cmNlLCAnZGVmYXVsdCcpKVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0VHJhbnNsYXRlZEZpZWxkID0gPFQ+KFxuICBzb3VyY2U6IFNvdXJjZVdpdGhVbmtub3duUHJvcHMsXG4gIGZpZWxkTmFtZTogc3RyaW5nLFxuICBsYW5nMzogc3RyaW5nXG4pOiBUIHwgbnVsbCA9PiBzZWxlY3RUcmFuc2xhdGVkVmFsdWUoc2VsZWN0RmllbGQoc291cmNlLCBmaWVsZE5hbWUpLCBsYW5nMylcblxuZXhwb3J0IGNvbnN0IHRvRGF0ZSA9IChmaWVsZCkgPT4gbmV3IERhdGUoZmllbGQpXG5cbmV4cG9ydCBjb25zdCBnZXRGaXJzdFZhbHVlID0gKGZpZWxkKSA9PlxuICBBcnJheS5pc0FycmF5KGZpZWxkKSA/IGZpZWxkWzBdIDogZmllbGRcblxuZXhwb3J0IGNvbnN0IGdldEFycmF5SXRlbSA9IChmaWVsZCwgaW5kZXgpID0+XG4gIEFycmF5LmlzQXJyYXkoZmllbGQpICYmIGZpZWxkW2luZGV4XSAhPT0gdW5kZWZpbmVkID8gZmllbGRbaW5kZXhdIDogbnVsbFxuXG5leHBvcnQgY29uc3QgZ2V0QXNBcnJheSA9IChmaWVsZCkgPT5cbiAgQXJyYXkuaXNBcnJheShmaWVsZCkgPyBmaWVsZCA6IGZpZWxkICE9PSBudWxsID8gW2ZpZWxkXSA6IFtdXG5cbmV4cG9ydCBjb25zdCBnZXRBc1VybCA9IChcbiAgZmllbGQsXG4gIGxvY2F0aW9uOiBzdHJpbmcgPSB3aW5kb3cubG9jYXRpb24udG9TdHJpbmcoKVxuKSA9PiB7XG4gIC8vIGFuIGVtcHR5IHN0cmluZyBpcyBub3QgYSB2YWxpZCB1cmwsIGV2ZW4gdGhvdWdoIGl0IGNvdWxkIGJlIGNvbnNpZGVyZWQgYW4gZW1wdHkgcGF0aCB0byB0aGUgcm9vdFxuICBpZiAoZmllbGQgPT09ICcnIHx8IGZpZWxkID09PSBudWxsKSByZXR1cm4gbnVsbFxuICBsZXQgdXJsID0gZmllbGRcbiAgaWYgKGZpZWxkLm1hdGNoKC9ed3d3XFwuLykpIHVybCA9IGBodHRwczovLyR7ZmllbGR9YFxuICB0cnkge1xuICAgIHJldHVybiBuZXcgVVJMKHVybCwgbG9jYXRpb24pXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IG1hcExvZ28gPSAoc291cmNlOiBTb3VyY2VXaXRoVW5rbm93blByb3BzKSA9PiB7XG4gIGNvbnN0IGxvZ28gPSBzZWxlY3RGYWxsYmFja0ZpZWxkcyhzb3VyY2UsICdsb2dvVXJsJywgJ2xvZ28nKVxuICByZXR1cm4gbG9nbyA/IGdldEFzVXJsKGAvZ2VvbmV0d29yayR7bG9nb31gKSA6IG51bGxcbn1cblxuZXhwb3J0IGNvbnN0IG1hcE9yZ2FuaXphdGlvbiA9IChcbiAgc291cmNlQ29udGFjdDogU291cmNlV2l0aFVua25vd25Qcm9wcyxcbiAgbGFuZzM6IHN0cmluZ1xuKTogT3JnYW5pemF0aW9uID0+IHtcbiAgY29uc3Qgd2Vic2l0ZSA9IGdldEFzVXJsKHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlQ29udGFjdCwgJ3dlYnNpdGUnKSlcbiAgY29uc3QgbG9nb1VybCA9IGdldEFzVXJsKHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlQ29udGFjdCwgJ2xvZ28nKSlcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBzZWxlY3RGYWxsYmFjayhcbiAgICAgIHNlbGVjdFRyYW5zbGF0ZWRGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdvcmdhbmlzYXRpb25PYmplY3QnLCBsYW5nMyksXG4gICAgICBzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdvcmdhbmlzYXRpb24nKVxuICAgICksXG4gICAgLi4uKGxvZ29VcmwgJiYgeyBsb2dvVXJsIH0pLFxuICAgIC4uLih3ZWJzaXRlICYmIHsgd2Vic2l0ZSB9KSxcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgbWFwQ29udGFjdCA9IChcbiAgc291cmNlQ29udGFjdDogU291cmNlV2l0aFVua25vd25Qcm9wcyxcbiAgbGFuZzM6IHN0cmluZ1xuKTogSW5kaXZpZHVhbCA9PiB7XG4gIGNvbnN0IGFkZHJlc3MgPSBzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdhZGRyZXNzJylcbiAgY29uc3QgcGhvbmUgPSBzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdwaG9uZScpXG4gIHJldHVybiB7XG4gICAgbGFzdE5hbWU6IHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlQ29udGFjdCwgJ2luZGl2aWR1YWwnKSxcbiAgICBvcmdhbml6YXRpb246IG1hcE9yZ2FuaXphdGlvbihzb3VyY2VDb250YWN0LCBsYW5nMyksXG4gICAgZW1haWw6IHNlbGVjdEZpZWxkPHN0cmluZz4oc291cmNlQ29udGFjdCwgJ2VtYWlsJyksXG4gICAgcm9sZTogZ2V0Um9sZUZyb21Sb2xlQ29kZShzZWxlY3RGaWVsZDxzdHJpbmc+KHNvdXJjZUNvbnRhY3QsICdyb2xlJykpLFxuICAgIC4uLihhZGRyZXNzICYmIHsgYWRkcmVzcyB9KSxcbiAgICAuLi4ocGhvbmUgJiYgeyBwaG9uZSB9KSxcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgbWFwS2V5d29yZHMgPSAodGhlc2F1cmk6IFRoZXNhdXJ1c1tdLCBsYW5ndWFnZTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGtleXdvcmRzID0gW11cbiAgZm9yIChjb25zdCB0aGVzYXVydXNJZCBpbiB0aGVzYXVyaSkge1xuICAgIGNvbnN0IHJhd1RoZXNhdXJ1cyA9IHRoZXNhdXJpW3RoZXNhdXJ1c0lkXVxuICAgIGxldCB0aGVzYXVydXMgPSBudWxsXG4gICAgaWYgKHJhd1RoZXNhdXJ1cy5pZCkge1xuICAgICAgY29uc3QgdGhlc2F1cnVzU291cmNlOiBTb3VyY2VXaXRoVW5rbm93blByb3BzID0geyAuLi5yYXdUaGVzYXVydXMgfVxuICAgICAgY29uc3QgdXJsID0gZ2V0QXNVcmwoc2VsZWN0RmllbGQodGhlc2F1cnVzU291cmNlLCAnbGluaycpKVxuICAgICAgY29uc3QgbmFtZSA9IHNlbGVjdEZpZWxkKHRoZXNhdXJ1c1NvdXJjZSwgJ3RpdGxlJylcbiAgICAgIHRoZXNhdXJ1cyA9IHtcbiAgICAgICAgaWQ6IHJhd1RoZXNhdXJ1cy5pZCxcbiAgICAgICAgLi4uKG5hbWUgJiYgeyBuYW1lIH0pLFxuICAgICAgICAuLi4odXJsICYmIHsgdXJsIH0pLFxuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IGtleXdvcmQgb2YgcmF3VGhlc2F1cnVzLmtleXdvcmRzKSB7XG4gICAgICBrZXl3b3Jkcy5wdXNoKHtcbiAgICAgICAgbGFiZWw6IHNlbGVjdFRyYW5zbGF0ZWRWYWx1ZTxzdHJpbmc+KGtleXdvcmQsIGxhbmd1YWdlKSxcbiAgICAgICAgdHlwZTogZ2V0S2V5d29yZFR5cGVGcm9tS2V5d29yZFR5cGVDb2RlKHJhd1RoZXNhdXJ1cy50aGVtZSksXG4gICAgICAgIC4uLihrZXl3b3JkLmxpbmsgJiYgeyBrZXk6IGtleXdvcmQubGluayB9KSxcbiAgICAgICAgLi4uKHRoZXNhdXJ1cyAmJiB7IHRoZXNhdXJ1cyB9KSxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGtleXdvcmRzXG59XG4iXX0=