geonetwork-ui 2.7.0-dev.0d8b7bca9 → 2.7.0-dev.11d7e81c0

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 (472) hide show
  1. package/esm2022/index.mjs +1 -2
  2. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.mjs +4 -7
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +20 -20
  4. package/esm2022/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.mjs +3 -3
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +3 -3
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +3 -3
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +4 -4
  8. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.mjs +4 -1
  9. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +9 -5
  10. package/esm2022/libs/api/repository/src/index.mjs +2 -2
  11. package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +5 -5
  12. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +4 -6
  13. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +55 -12
  14. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +3 -3
  15. package/esm2022/libs/api/repository/src/lib/gn4/gn4.provider.mjs +20 -1
  16. package/esm2022/libs/api/repository/src/lib/gn4/organizations/index.mjs +3 -5
  17. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organization-strategy.token.mjs +5 -0
  18. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +3 -3
  19. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +3 -3
  20. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-service.factory.mjs +6 -0
  21. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +38 -24
  22. package/esm2022/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.mjs +3 -1
  23. package/esm2022/libs/api/repository/src/lib/metadata-language.token.mjs +3 -0
  24. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +15 -1
  25. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  26. package/esm2022/libs/feature/catalog/src/index.mjs +1 -2
  27. package/esm2022/libs/feature/catalog/src/lib/organization-url.token.mjs +3 -1
  28. package/esm2022/libs/feature/catalog/src/lib/site-title/site-title.component.mjs +5 -4
  29. package/esm2022/libs/feature/catalog/src/lib/source-label/source-label.component.mjs +4 -3
  30. package/esm2022/libs/feature/catalog/src/lib/sources/sources.service.mjs +3 -3
  31. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +5 -5
  32. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  33. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +4 -4
  34. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +8 -2
  35. package/esm2022/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.mjs +80 -0
  36. package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +3 -3
  37. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.mjs +55 -0
  38. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +8 -3
  39. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -1
  40. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +6 -36
  41. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +77 -3
  42. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +10 -5
  43. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +3 -5
  44. package/esm2022/libs/feature/notifications/src/index.mjs +1 -2
  45. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +4 -2
  46. package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +14 -4
  47. package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +5 -43
  48. package/esm2022/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.mjs +10 -5
  49. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +18 -6
  50. package/esm2022/libs/feature/record/src/lib/record-meta/record-meta.component.mjs +4 -2
  51. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +4 -2
  52. package/esm2022/libs/feature/router/src/lib/default/container/search-router.container.directive.mjs +3 -2
  53. package/esm2022/libs/feature/router/src/lib/default/router.module.mjs +2 -5
  54. package/esm2022/libs/feature/router/src/lib/default/state/query-params.utils.mjs +4 -3
  55. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +3 -2
  56. package/esm2022/libs/feature/search/src/index.mjs +1 -2
  57. package/esm2022/libs/feature/search/src/lib/facets/facets-container/facets-container.component.mjs +12 -5
  58. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +4 -100
  59. package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +9 -5
  60. package/esm2022/libs/feature/search/src/lib/records-metrics/records-metrics.component.mjs +6 -5
  61. package/esm2022/libs/feature/search/src/lib/results-hits/results-hits.container.component.mjs +9 -5
  62. package/esm2022/libs/feature/search/src/lib/results-layout/results-layout.component.mjs +7 -6
  63. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +19 -12
  64. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +2 -1
  65. package/esm2022/libs/feature/search/src/lib/sort-by/sort-by.component.mjs +7 -6
  66. package/esm2022/libs/feature/search/src/lib/state/container/search-state.container.directive.mjs +3 -2
  67. package/esm2022/libs/feature/search/src/lib/state/reducer.mjs +5 -2
  68. package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +8 -2
  69. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +10 -4
  70. package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +8 -2
  71. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +5 -4
  72. package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +12 -5
  73. package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +14 -4
  74. package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +4 -4
  75. package/esm2022/libs/ui/elements/src/lib/kind-badge/kind-badge.component.mjs +8 -2
  76. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +21 -46
  77. package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +7 -7
  78. package/esm2022/libs/ui/elements/src/lib/notification/notification.component.mjs +8 -2
  79. package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +1 -6
  80. package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +5 -4
  81. package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +14 -4
  82. package/esm2022/libs/ui/search/src/index.mjs +1 -3
  83. package/esm2022/libs/ui/search/src/lib/facets/facet-block/facet-block.component.mjs +14 -30
  84. package/esm2022/libs/ui/search/src/lib/facets/facet-item/facet-item.component.mjs +6 -27
  85. package/esm2022/libs/ui/search/src/lib/facets/facet-list/facet-list.component.mjs +7 -4
  86. package/esm2022/libs/ui/search/src/lib/record-metric/record-metric.component.mjs +5 -4
  87. package/esm2022/libs/ui/search/src/lib/record-preview/record-preview.component.mjs +5 -2
  88. package/esm2022/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.mjs +5 -4
  89. package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +36 -7
  90. package/esm2022/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.mjs +11 -5
  91. package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +5 -4
  92. package/esm2022/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.mjs +5 -4
  93. package/esm2022/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.mjs +5 -4
  94. package/esm2022/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.mjs +5 -4
  95. package/esm2022/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.mjs +12 -6
  96. package/esm2022/libs/ui/search/src/lib/results-list/results-layout.config.mjs +4 -2
  97. package/esm2022/libs/ui/search/src/lib/results-list/results-list.component.mjs +5 -4
  98. package/esm2022/libs/ui/search/src/lib/results-list-item/results-list-item.component.mjs +5 -3
  99. package/esm2022/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.mjs +14 -4
  100. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +3 -1
  101. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -2
  102. package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
  103. package/esm2022/libs/util/app-config/src/lib/parse-utils.mjs +5 -4
  104. package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +50 -9
  105. package/esm2022/libs/util/shared/src/index.mjs +2 -2
  106. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +4 -2
  107. package/esm2022/libs/util/shared/src/lib/record/index.mjs +3 -0
  108. package/esm2022/libs/util/shared/src/lib/record/quality-score.util.mjs +46 -0
  109. package/esm2022/libs/util/shared/src/lib/record/record.util.mjs +56 -0
  110. package/esm2022/libs/util/shared/src/lib/utils/geojson.mjs +58 -1
  111. package/esm2022/libs/util/shared/src/lib/utils/index.mjs +3 -1
  112. package/esm2022/libs/util/shared/src/lib/utils/mobile-screen.mjs +9 -0
  113. package/esm2022/libs/util/shared/src/lib/utils/scroll.mjs +40 -0
  114. package/esm2022/translations/de.json +59 -20
  115. package/esm2022/translations/en.json +60 -21
  116. package/esm2022/translations/es.json +46 -7
  117. package/esm2022/translations/fr.json +66 -27
  118. package/esm2022/translations/it.json +59 -20
  119. package/esm2022/translations/nl.json +46 -7
  120. package/esm2022/translations/pt.json +46 -7
  121. package/esm2022/translations/sk.json +50 -11
  122. package/fesm2022/geonetwork-ui.mjs +10769 -10686
  123. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  124. package/index.d.ts +0 -1
  125. package/index.d.ts.map +1 -1
  126. package/index.ts +0 -1
  127. package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts.map +1 -1
  128. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +1 -1
  129. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  130. package/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.d.ts.map +1 -1
  131. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +2 -2
  132. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  133. package/libs/api/repository/src/index.d.ts +1 -1
  134. package/libs/api/repository/src/index.d.ts.map +1 -1
  135. package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
  136. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -2
  137. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  138. package/libs/api/repository/src/lib/gn4/gn4.provider.d.ts.map +1 -1
  139. package/libs/api/repository/src/lib/gn4/organizations/index.d.ts +2 -3
  140. package/libs/api/repository/src/lib/gn4/organizations/index.d.ts.map +1 -1
  141. package/libs/api/repository/src/lib/gn4/organizations/organization-strategy.token.d.ts +4 -0
  142. package/libs/api/repository/src/lib/gn4/organizations/organization-strategy.token.d.ts.map +1 -0
  143. package/libs/api/repository/src/lib/gn4/organizations/organizations-service.factory.d.ts +9 -0
  144. package/libs/api/repository/src/lib/gn4/organizations/organizations-service.factory.d.ts.map +1 -0
  145. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +8 -7
  146. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  147. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts +2 -0
  148. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts.map +1 -1
  149. package/libs/api/repository/src/lib/metadata-language.token.d.ts +5 -0
  150. package/libs/api/repository/src/lib/metadata-language.token.d.ts.map +1 -0
  151. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +5 -1
  152. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  153. package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -0
  154. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  155. package/libs/feature/catalog/src/index.d.ts +0 -1
  156. package/libs/feature/catalog/src/index.d.ts.map +1 -1
  157. package/libs/feature/catalog/src/lib/organization-url.token.d.ts +1 -0
  158. package/libs/feature/catalog/src/lib/organization-url.token.d.ts.map +1 -1
  159. package/libs/feature/catalog/src/lib/site-title/site-title.component.d.ts +1 -1
  160. package/libs/feature/catalog/src/lib/site-title/site-title.component.d.ts.map +1 -1
  161. package/libs/feature/catalog/src/lib/source-label/source-label.component.d.ts +1 -1
  162. package/libs/feature/catalog/src/lib/source-label/source-label.component.d.ts.map +1 -1
  163. package/libs/feature/catalog/src/lib/sources/sources.service.d.ts.map +1 -1
  164. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +1 -1
  165. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  166. package/libs/feature/editor/src/index.d.ts +1 -0
  167. package/libs/feature/editor/src/index.d.ts.map +1 -1
  168. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +1 -1
  169. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
  170. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -1
  171. package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts +19 -0
  172. package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts.map +1 -0
  173. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.d.ts +20 -0
  174. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.d.ts.map +1 -0
  175. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +1 -0
  176. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  177. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
  178. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  179. package/libs/feature/editor/src/lib/feature-editor.module.d.ts +3 -10
  180. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  181. package/libs/feature/editor/src/lib/fields.config.d.ts +8 -1
  182. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  183. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts.map +1 -1
  184. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +2 -2
  185. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  186. package/libs/feature/notifications/src/index.d.ts +0 -1
  187. package/libs/feature/notifications/src/index.d.ts.map +1 -1
  188. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  189. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
  190. package/libs/feature/record/src/lib/feature-record.module.d.ts +4 -11
  191. package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
  192. package/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.d.ts.map +1 -1
  193. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  194. package/libs/feature/record/src/lib/record-meta/record-meta.component.d.ts.map +1 -1
  195. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  196. package/libs/feature/router/src/lib/default/container/search-router.container.directive.d.ts +1 -1
  197. package/libs/feature/router/src/lib/default/container/search-router.container.directive.d.ts.map +1 -1
  198. package/libs/feature/router/src/lib/default/router.module.d.ts +4 -5
  199. package/libs/feature/router/src/lib/default/router.module.d.ts.map +1 -1
  200. package/libs/feature/router/src/lib/default/state/query-params.utils.d.ts.map +1 -1
  201. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  202. package/libs/feature/search/src/index.d.ts +0 -1
  203. package/libs/feature/search/src/index.d.ts.map +1 -1
  204. package/libs/feature/search/src/lib/facets/facets-container/facets-container.component.d.ts +1 -1
  205. package/libs/feature/search/src/lib/facets/facets-container/facets-container.component.d.ts.map +1 -1
  206. package/libs/feature/search/src/lib/feature-search.module.d.ts +3 -26
  207. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  208. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts +1 -1
  209. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts.map +1 -1
  210. package/libs/feature/search/src/lib/records-metrics/records-metrics.component.d.ts +1 -1
  211. package/libs/feature/search/src/lib/records-metrics/records-metrics.component.d.ts.map +1 -1
  212. package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts +1 -1
  213. package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts.map +1 -1
  214. package/libs/feature/search/src/lib/results-layout/results-layout.component.d.ts +1 -1
  215. package/libs/feature/search/src/lib/results-layout/results-layout.component.d.ts.map +1 -1
  216. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts +1 -1
  217. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts.map +1 -1
  218. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +1 -1
  219. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  220. package/libs/feature/search/src/lib/sort-by/sort-by.component.d.ts +1 -1
  221. package/libs/feature/search/src/lib/sort-by/sort-by.component.d.ts.map +1 -1
  222. package/libs/feature/search/src/lib/state/container/search-state.container.directive.d.ts +1 -1
  223. package/libs/feature/search/src/lib/state/container/search-state.container.directive.d.ts.map +1 -1
  224. package/libs/feature/search/src/lib/state/reducer.d.ts.map +1 -1
  225. package/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.d.ts.map +1 -1
  226. package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
  227. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
  228. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -0
  229. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  230. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +1 -0
  231. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -1
  232. package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts.map +1 -1
  233. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -1
  234. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts.map +1 -1
  235. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +7 -7
  236. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  237. package/libs/ui/elements/src/lib/notification/notification.component.d.ts.map +1 -1
  238. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -1
  239. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts +1 -0
  240. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -1
  241. package/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.d.ts.map +1 -1
  242. package/libs/ui/search/src/index.d.ts +0 -2
  243. package/libs/ui/search/src/index.d.ts.map +1 -1
  244. package/libs/ui/search/src/lib/facets/facet-block/facet-block.component.d.ts +1 -11
  245. package/libs/ui/search/src/lib/facets/facet-block/facet-block.component.d.ts.map +1 -1
  246. package/libs/ui/search/src/lib/facets/facet-item/facet-item.component.d.ts +1 -11
  247. package/libs/ui/search/src/lib/facets/facet-item/facet-item.component.d.ts.map +1 -1
  248. package/libs/ui/search/src/lib/facets/facet-list/facet-list.component.d.ts +1 -1
  249. package/libs/ui/search/src/lib/facets/facet-list/facet-list.component.d.ts.map +1 -1
  250. package/libs/ui/search/src/lib/record-metric/record-metric.component.d.ts +1 -1
  251. package/libs/ui/search/src/lib/record-metric/record-metric.component.d.ts.map +1 -1
  252. package/libs/ui/search/src/lib/record-preview/record-preview.component.d.ts +1 -1
  253. package/libs/ui/search/src/lib/record-preview/record-preview.component.d.ts.map +1 -1
  254. package/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.d.ts +1 -1
  255. package/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.d.ts.map +1 -1
  256. package/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.d.ts +1 -1
  257. package/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.d.ts.map +1 -1
  258. package/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.d.ts +1 -1
  259. package/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.d.ts.map +1 -1
  260. package/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.d.ts +1 -1
  261. package/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.d.ts.map +1 -1
  262. package/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.d.ts +1 -1
  263. package/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.d.ts.map +1 -1
  264. package/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.d.ts +1 -1
  265. package/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.d.ts.map +1 -1
  266. package/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.d.ts +1 -1
  267. package/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.d.ts.map +1 -1
  268. package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts +1 -1
  269. package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts.map +1 -1
  270. package/libs/ui/search/src/lib/results-list/results-layout.config.d.ts +1 -1
  271. package/libs/ui/search/src/lib/results-list/results-layout.config.d.ts.map +1 -1
  272. package/libs/ui/search/src/lib/results-list/results-list.component.d.ts +1 -1
  273. package/libs/ui/search/src/lib/results-list/results-list.component.d.ts.map +1 -1
  274. package/libs/ui/search/src/lib/results-list-item/results-list-item.component.d.ts +1 -1
  275. package/libs/ui/search/src/lib/results-list-item/results-list-item.component.d.ts.map +1 -1
  276. package/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.d.ts.map +1 -1
  277. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  278. package/libs/util/app-config/src/lib/model.d.ts +1 -0
  279. package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
  280. package/libs/util/app-config/src/lib/parse-utils.d.ts.map +1 -1
  281. package/libs/util/i18n/src/lib/language-codes.d.ts +91 -31
  282. package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
  283. package/libs/util/shared/src/index.d.ts +1 -1
  284. package/libs/util/shared/src/index.d.ts.map +1 -1
  285. package/libs/util/shared/src/lib/links/link-utils.d.ts +2 -1
  286. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  287. package/libs/util/shared/src/lib/record/index.d.ts +3 -0
  288. package/libs/util/shared/src/lib/record/index.d.ts.map +1 -0
  289. package/libs/util/shared/src/lib/record/quality-score.util.d.ts +13 -0
  290. package/libs/util/shared/src/lib/record/quality-score.util.d.ts.map +1 -0
  291. package/libs/util/shared/src/lib/record/record.util.d.ts +3 -0
  292. package/libs/util/shared/src/lib/record/record.util.d.ts.map +1 -0
  293. package/libs/util/shared/src/lib/utils/geojson.d.ts +7 -2
  294. package/libs/util/shared/src/lib/utils/geojson.d.ts.map +1 -1
  295. package/libs/util/shared/src/lib/utils/index.d.ts +2 -0
  296. package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
  297. package/libs/util/shared/src/lib/utils/mobile-screen.d.ts +2 -0
  298. package/libs/util/shared/src/lib/utils/mobile-screen.d.ts.map +1 -0
  299. package/libs/util/shared/src/lib/utils/scroll.d.ts +12 -0
  300. package/libs/util/shared/src/lib/utils/scroll.d.ts.map +1 -0
  301. package/package.json +11 -10
  302. package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +3 -6
  303. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/status.mapper.ts +3 -0
  304. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +47 -22
  305. package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +2 -2
  306. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +2 -2
  307. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +2 -2
  308. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +3 -3
  309. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.ts +3 -0
  310. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +10 -6
  311. package/src/libs/api/repository/src/index.ts +1 -1
  312. package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +4 -4
  313. package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +3 -5
  314. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +65 -14
  315. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
  316. package/src/libs/api/repository/src/lib/gn4/gn4.provider.ts +25 -0
  317. package/src/libs/api/repository/src/lib/gn4/organizations/index.ts +2 -11
  318. package/src/libs/api/repository/src/lib/gn4/organizations/organization-strategy.token.ts +10 -0
  319. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +2 -2
  320. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +2 -2
  321. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-service.factory.ts +33 -0
  322. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +41 -41
  323. package/src/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.ts +8 -0
  324. package/src/libs/api/repository/src/lib/metadata-language.token.ts +8 -0
  325. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +21 -1
  326. package/src/libs/common/domain/src/lib/platform.service.interface.ts +1 -0
  327. package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +0 -3
  328. package/src/libs/feature/catalog/src/index.ts +0 -1
  329. package/src/libs/feature/catalog/src/lib/organization-url.token.ts +5 -0
  330. package/src/libs/feature/catalog/src/lib/site-title/site-title.component.ts +4 -0
  331. package/src/libs/feature/catalog/src/lib/source-label/source-label.component.ts +3 -0
  332. package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +2 -5
  333. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +7 -5
  334. package/src/libs/feature/editor/src/index.ts +1 -0
  335. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +3 -3
  336. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +8 -1
  337. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.css +0 -0
  338. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.html +37 -0
  339. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.ts +90 -0
  340. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +2 -1
  341. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.css +0 -0
  342. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.html +22 -0
  343. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.ts +57 -0
  344. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +6 -0
  345. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +5 -0
  346. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
  347. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +2 -18
  348. package/src/libs/feature/editor/src/lib/fields.config.ts +85 -3
  349. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.ts +8 -1
  350. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +8 -8
  351. package/src/libs/feature/notifications/src/index.ts +0 -1
  352. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +3 -1
  353. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +7 -2
  354. package/src/libs/feature/record/src/lib/feature-record.module.ts +1 -21
  355. package/src/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.ts +5 -2
  356. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +15 -4
  357. package/src/libs/feature/record/src/lib/record-meta/record-meta.component.ts +2 -0
  358. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +4 -2
  359. package/src/libs/feature/router/src/lib/default/container/search-router.container.directive.ts +1 -0
  360. package/src/libs/feature/router/src/lib/default/router.module.ts +0 -3
  361. package/src/libs/feature/router/src/lib/default/state/query-params.utils.ts +5 -2
  362. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +2 -1
  363. package/src/libs/feature/search/src/index.ts +0 -1
  364. package/src/libs/feature/search/src/lib/facets/facets-container/facets-container.component.ts +14 -1
  365. package/src/libs/feature/search/src/lib/feature-search.module.ts +0 -61
  366. package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +12 -1
  367. package/src/libs/feature/search/src/lib/records-metrics/records-metrics.component.ts +5 -0
  368. package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.ts +11 -0
  369. package/src/libs/feature/search/src/lib/results-layout/results-layout.component.ts +5 -0
  370. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +21 -1
  371. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +1 -1
  372. package/src/libs/feature/search/src/lib/sort-by/sort-by.component.ts +5 -0
  373. package/src/libs/feature/search/src/lib/state/container/search-state.container.directive.ts +1 -0
  374. package/src/libs/feature/search/src/lib/state/reducer.ts +4 -1
  375. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.ts +4 -1
  376. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +4 -1
  377. package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +4 -1
  378. package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +4 -1
  379. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +12 -11
  380. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +7 -1
  381. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +4 -1
  382. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +11 -2
  383. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.ts +7 -2
  384. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +1 -0
  385. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +5 -1
  386. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.ts +8 -1
  387. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +1 -0
  388. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +21 -58
  389. package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.ts +6 -6
  390. package/src/libs/ui/elements/src/lib/notification/notification.component.ts +8 -1
  391. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +0 -6
  392. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html +7 -1
  393. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +3 -1
  394. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.ts +7 -2
  395. package/src/libs/ui/search/src/index.ts +0 -2
  396. package/src/libs/ui/search/src/lib/facets/facet-block/facet-block.component.ts +12 -11
  397. package/src/libs/ui/search/src/lib/facets/facet-item/facet-item.component.ts +5 -11
  398. package/src/libs/ui/search/src/lib/facets/facet-list/facet-list.component.ts +6 -0
  399. package/src/libs/ui/search/src/lib/record-metric/record-metric.component.ts +4 -0
  400. package/src/libs/ui/search/src/lib/record-preview/record-preview.component.ts +3 -0
  401. package/src/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.ts +4 -0
  402. package/src/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.ts +33 -1
  403. package/src/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.ts +10 -0
  404. package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.ts +4 -0
  405. package/src/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.ts +4 -0
  406. package/src/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.ts +4 -0
  407. package/src/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.ts +4 -0
  408. package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.ts +11 -1
  409. package/src/libs/ui/search/src/lib/results-list/results-layout.config.ts +5 -3
  410. package/src/libs/ui/search/src/lib/results-list/results-list.component.ts +4 -0
  411. package/src/libs/ui/search/src/lib/results-list-item/results-list-item.component.ts +3 -0
  412. package/src/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.ts +6 -1
  413. package/src/libs/util/app-config/src/lib/app-config.ts +2 -0
  414. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -1
  415. package/src/libs/util/app-config/src/lib/model.ts +1 -0
  416. package/src/libs/util/app-config/src/lib/parse-utils.ts +4 -7
  417. package/src/libs/util/i18n/src/lib/language-codes.ts +62 -11
  418. package/src/libs/util/shared/src/index.ts +1 -1
  419. package/src/libs/util/shared/src/lib/links/link-utils.ts +2 -1
  420. package/src/libs/util/shared/src/lib/record/index.ts +2 -0
  421. package/src/libs/util/shared/src/lib/record/quality-score.util.ts +72 -0
  422. package/src/libs/util/shared/src/lib/{record.util.ts → record/record.util.ts} +1 -1
  423. package/src/libs/util/shared/src/lib/utils/geojson.ts +72 -2
  424. package/src/libs/util/shared/src/lib/utils/index.ts +2 -0
  425. package/src/libs/util/shared/src/lib/utils/mobile-screen.ts +14 -0
  426. package/src/libs/util/shared/src/lib/utils/scroll.ts +48 -0
  427. package/translations/de.json +59 -20
  428. package/translations/en.json +60 -21
  429. package/translations/es.json +46 -7
  430. package/translations/fr.json +66 -27
  431. package/translations/it.json +59 -20
  432. package/translations/nl.json +46 -7
  433. package/translations/pt.json +46 -7
  434. package/translations/sk.json +50 -11
  435. package/esm2022/libs/api/repository/src/lib/metadata-language.mjs +0 -3
  436. package/esm2022/libs/feature/auth/src/index.mjs +0 -2
  437. package/esm2022/libs/feature/auth/src/lib/feature-auth.module.mjs +0 -17
  438. package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +0 -57
  439. package/esm2022/libs/feature/notifications/src/lib/feature-notifications.module.mjs +0 -18
  440. package/esm2022/libs/feature/search/src/lib/facets/facets.module.mjs +0 -21
  441. package/esm2022/libs/ui/search/src/lib/facets/facets.module.mjs +0 -23
  442. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +0 -168
  443. package/esm2022/libs/util/app-config/src/lib/constants.mjs +0 -439
  444. package/esm2022/libs/util/shared/src/lib/record.util.mjs +0 -56
  445. package/libs/api/repository/src/lib/metadata-language.d.ts +0 -3
  446. package/libs/api/repository/src/lib/metadata-language.d.ts.map +0 -1
  447. package/libs/feature/auth/src/index.d.ts +0 -2
  448. package/libs/feature/auth/src/index.d.ts.map +0 -1
  449. package/libs/feature/auth/src/lib/feature-auth.module.d.ts +0 -8
  450. package/libs/feature/auth/src/lib/feature-auth.module.d.ts.map +0 -1
  451. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts +0 -14
  452. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +0 -1
  453. package/libs/feature/notifications/src/lib/feature-notifications.module.d.ts +0 -7
  454. package/libs/feature/notifications/src/lib/feature-notifications.module.d.ts.map +0 -1
  455. package/libs/feature/search/src/lib/facets/facets.module.d.ts +0 -11
  456. package/libs/feature/search/src/lib/facets/facets.module.d.ts.map +0 -1
  457. package/libs/ui/search/src/lib/facets/facets.module.d.ts +0 -13
  458. package/libs/ui/search/src/lib/facets/facets.module.d.ts.map +0 -1
  459. package/libs/ui/search/src/lib/ui-search.module.d.ts +0 -36
  460. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +0 -1
  461. package/libs/util/app-config/src/lib/constants.d.ts +0 -2
  462. package/libs/util/app-config/src/lib/constants.d.ts.map +0 -1
  463. package/libs/util/shared/src/lib/record.util.d.ts +0 -3
  464. package/libs/util/shared/src/lib/record.util.d.ts.map +0 -1
  465. package/src/libs/api/repository/src/lib/metadata-language.ts +0 -3
  466. package/src/libs/feature/auth/src/index.ts +0 -1
  467. package/src/libs/feature/auth/src/lib/feature-auth.module.ts +0 -12
  468. package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +0 -71
  469. package/src/libs/feature/notifications/src/lib/feature-notifications.module.ts +0 -10
  470. package/src/libs/feature/search/src/lib/facets/facets.module.ts +0 -12
  471. package/src/libs/ui/search/src/lib/facets/facets.module.ts +0 -14
  472. package/src/libs/ui/search/src/lib/ui-search.module.ts +0 -108
@@ -1,5 +1,5 @@
1
1
  import { Injectable, Injector } from '@angular/core'
2
- import { Geometry } from 'geojson'
2
+ import type { Geometry } from 'geojson'
3
3
  import {
4
4
  ES_QUERY_FIELDS_PRIORITY,
5
5
  ES_SOURCE_SUMMARY,
@@ -15,7 +15,7 @@ import {
15
15
  FiltersAggregationParams,
16
16
  SortByField,
17
17
  } from '../../../../../../../libs/common/domain/src/lib/model/search'
18
- import { METADATA_LANGUAGE } from '../../metadata-language'
18
+ import { METADATA_LANGUAGE } from '../../metadata-language.token'
19
19
  import {
20
20
  AggregationResult,
21
21
  EsSearchParams,
@@ -26,10 +26,16 @@ import {
26
26
  SortParams,
27
27
  TermsAggregationResult,
28
28
  } from '../../../../../../../libs/api/metadata-converter/src'
29
- import { getLang3FromLang2 } from '../../../../../../../libs/util/i18n/src'
29
+ import { toLang3 } from '../../../../../../../libs/util/i18n/src'
30
30
  import { formatDate, isDateRange } from './date-range.utils'
31
- import { CatalogRecord } from '../../../../../../../libs/common/domain/src/lib/model/record'
31
+ import {
32
+ CatalogRecord,
33
+ LanguageCode,
34
+ } from '../../../../../../../libs/common/domain/src/lib/model/record'
32
35
  import { TranslateService } from '@ngx-translate/core'
36
+ import { getGeometryBoundingBox } from '../../../../../../../libs/util/shared/src'
37
+ import { getLength as getGeodesicLength } from 'ol/sphere'
38
+ import { LineString } from 'ol/geom'
33
39
 
34
40
  export type DateRange = { start?: Date; end?: Date }
35
41
 
@@ -42,11 +48,9 @@ export class ElasticsearchService {
42
48
  private runtimeFields: Record<string, string> = {}
43
49
 
44
50
  // we're using getters in case the defined languages change over time
45
- private get lang3() {
46
- return getLang3FromLang2(this.translateService.currentLang)
47
- }
48
- private get metadataLang() {
49
- return this.injector.get(METADATA_LANGUAGE, null)
51
+ private get metadataLang(): LanguageCode {
52
+ const mdLangValue = this.injector.get(METADATA_LANGUAGE, null)
53
+ return typeof mdLangValue === 'function' ? mdLangValue() : mdLangValue
50
54
  }
51
55
 
52
56
  constructor(
@@ -230,9 +234,12 @@ export class ElasticsearchService {
230
234
 
231
235
  private getQueryLang(): string {
232
236
  if (this.metadataLang) {
233
- return this.isCurrentSearchLang()
234
- ? `lang${this.lang3}`
235
- : `lang${this.metadataLang}`
237
+ const lang3 = toLang3(
238
+ this.isCurrentSearchLang()
239
+ ? this.translateService.currentLang
240
+ : this.metadataLang
241
+ )
242
+ return `lang${lang3}`
236
243
  } else return '*'
237
244
  }
238
245
  private isCurrentSearchLang() {
@@ -351,6 +358,11 @@ export class ElasticsearchService {
351
358
  })
352
359
  }
353
360
  if (geometry) {
361
+ // boosts applied using the filter geometry:
362
+ // * records completely within the geometry receive a boost of 5
363
+ // * records intersecting the geometry receive a boost of 2
364
+ // * records close to the geometry center receive a boost of 5 (based on the `location` field)
365
+ // * records on the outskirt of the geometry receive a boost of 2.5
354
366
  should.push(
355
367
  {
356
368
  geo_shape: {
@@ -358,7 +370,7 @@ export class ElasticsearchService {
358
370
  shape: geometry,
359
371
  relation: 'within',
360
372
  },
361
- boost: 10.0,
373
+ boost: 5.0,
362
374
  },
363
375
  },
364
376
  {
@@ -367,10 +379,49 @@ export class ElasticsearchService {
367
379
  shape: geometry,
368
380
  relation: 'intersects',
369
381
  },
370
- boost: 7.0,
382
+ boost: 2.0,
371
383
  },
372
384
  }
373
385
  )
386
+
387
+ // this will boost the results variably depending on their distance from the given geometry
388
+ // note: this takes into account the `location` field of a record; this is generally the center of all spatial extents
389
+ // combined, and thus the actual size/coverage of the record spatial extent isn't relevant here
390
+ const bbox = getGeometryBoundingBox(geometry)
391
+ const center = [(bbox[0] + bbox[2]) / 2, (bbox[1] + bbox[3]) / 2]
392
+ const northToCenter = new LineString([
393
+ [center[0], bbox[3]],
394
+ center,
395
+ ]).transform('EPSG:4326', 'EPSG:3857')
396
+ const southToCenter = new LineString([
397
+ [center[0], bbox[1]],
398
+ center,
399
+ ]).transform('EPSG:4326', 'EPSG:3857')
400
+ const westToCenter = new LineString([
401
+ [bbox[0], center[1]],
402
+ center,
403
+ ]).transform('EPSG:4326', 'EPSG:3857')
404
+ const eastToCenter = new LineString([
405
+ [bbox[2], center[1]],
406
+ center,
407
+ ]).transform('EPSG:4326', 'EPSG:3857')
408
+ // cutoff distance is the distance from where the boost will only be half of the max value
409
+ // it is an average of the "size" of the bounding box in every direction, in meters
410
+ const cutoffDistance =
411
+ (getGeodesicLength(northToCenter) +
412
+ getGeodesicLength(southToCenter) +
413
+ getGeodesicLength(westToCenter) +
414
+ getGeodesicLength(eastToCenter)) /
415
+ 4
416
+
417
+ should.push({
418
+ distance_feature: {
419
+ field: 'location',
420
+ pivot: `${Math.round(cutoffDistance).toFixed(0)}m`,
421
+ origin: center,
422
+ boost: 5.0,
423
+ },
424
+ })
374
425
  }
375
426
 
376
427
  return {
@@ -48,7 +48,7 @@ import {
48
48
  import { catchError, map, tap } from 'rxjs/operators'
49
49
  import { lt } from 'semver'
50
50
  import { ElasticsearchService } from './elasticsearch'
51
- import { getLang2FromLang3 } from '../../../../../../libs/util/i18n/src'
51
+ import { toLang2 } from '../../../../../../libs/util/i18n/src'
52
52
  import { Gn4SettingsService } from './settings/gn4-settings.service'
53
53
 
54
54
  const minPublicationApiVersion = '4.2.5'
@@ -562,7 +562,7 @@ export class Gn4Repository implements RecordsRepositoryInterface {
562
562
  .pipe(
563
563
  map((languages) =>
564
564
  languages
565
- .map((lang) => getLang2FromLang3(lang.id))
565
+ .map((lang) => toLang2(lang.id))
566
566
  .filter((code): code is string => !!code)
567
567
  )
568
568
  )
@@ -4,6 +4,18 @@ import { Gn4PlatformService } from './platform/gn4-platform.service'
4
4
  import { Gn4PlatformMapper } from './platform/gn4-platform.mapper'
5
5
  import { RecordsRepositoryInterface } from '../../../../../../libs/common/domain/src/lib/repository/records-repository.interface'
6
6
  import { Gn4Repository } from './gn4-repository'
7
+ import { AvatarServiceInterface, GravatarService } from './auth'
8
+ import { OrganizationsServiceInterface } from '../../../../../../libs/common/domain/src/lib/organizations.service.interface'
9
+ import {
10
+ ORGANIZATIONS_STRATEGY,
11
+ organizationsServiceFactory,
12
+ } from './organizations'
13
+ import { ElasticsearchService } from './elasticsearch'
14
+ import {
15
+ GroupsApiService,
16
+ SearchApiService,
17
+ } from '../../../../../../libs/data-access/gn4/src'
18
+ import { TranslateService } from '@ngx-translate/core'
7
19
 
8
20
  export function provideGn4(): Provider[] {
9
21
  return [
@@ -16,5 +28,18 @@ export function provideGn4(): Provider[] {
16
28
  useClass: Gn4Repository,
17
29
  },
18
30
  Gn4PlatformMapper,
31
+ { provide: AvatarServiceInterface, useClass: GravatarService },
32
+ {
33
+ provide: OrganizationsServiceInterface,
34
+ useFactory: organizationsServiceFactory,
35
+ deps: [
36
+ ORGANIZATIONS_STRATEGY,
37
+ ElasticsearchService,
38
+ SearchApiService,
39
+ GroupsApiService,
40
+ TranslateService,
41
+ PlatformServiceInterface,
42
+ ],
43
+ },
19
44
  ]
20
45
  }
@@ -1,13 +1,4 @@
1
1
  export * from './organizations-from-metadata.service'
2
2
  export * from './organizations-from-groups.service'
3
-
4
- import { InjectionToken } from '@angular/core'
5
-
6
- export type OrganizationsStrategy = 'metadata' | 'groups'
7
-
8
- export const ORGANIZATIONS_STRATEGY = new InjectionToken<OrganizationsStrategy>(
9
- 'organizations-strategy',
10
- {
11
- factory: () => 'metadata',
12
- }
13
- )
3
+ export * from './organization-strategy.token'
4
+ export * from './organizations-service.factory'
@@ -0,0 +1,10 @@
1
+ import { InjectionToken } from '@angular/core'
2
+
3
+ export type OrganizationsStrategy = 'metadata' | 'groups'
4
+
5
+ export const ORGANIZATIONS_STRATEGY = new InjectionToken<OrganizationsStrategy>(
6
+ 'organizations-strategy',
7
+ {
8
+ factory: () => 'metadata',
9
+ }
10
+ )
@@ -7,7 +7,7 @@ import {
7
7
  import { forkJoin, Observable, of } from 'rxjs'
8
8
  import { map, shareReplay } from 'rxjs/operators'
9
9
  import { TranslateService } from '@ngx-translate/core'
10
- import { getLang3FromLang2 } from '../../../../../../../libs/util/i18n/src'
10
+ import { toLang3 } from '../../../../../../../libs/util/i18n/src'
11
11
  import { FieldFilters } from '../../../../../../../libs/common/domain/src/lib/model/search'
12
12
  import {
13
13
  CatalogRecord,
@@ -52,7 +52,7 @@ export class OrganizationsFromGroupsService
52
52
  organisationsCount$ = this.organisations$.pipe(map((orgs) => orgs.length))
53
53
 
54
54
  private get lang3() {
55
- return getLang3FromLang2(this.translateService.currentLang)
55
+ return toLang3(this.translateService.currentLang)
56
56
  }
57
57
 
58
58
  constructor(
@@ -33,7 +33,7 @@ import {
33
33
  tap,
34
34
  withLatestFrom,
35
35
  } from 'rxjs/operators'
36
- import { getLocalizedIndexKey } from '../../../../../../../libs/util/i18n/src'
36
+ import { toLang3 } from '../../../../../../../libs/util/i18n/src'
37
37
  import { PlatformServiceInterface } from '../../../../../../../libs/common/domain/src/lib/platform.service.interface'
38
38
  import { coerce, satisfies, valid } from 'semver'
39
39
  import { TranslateService } from '@ngx-translate/core'
@@ -126,7 +126,7 @@ export class OrganizationsFromMetadataService
126
126
  ) {}
127
127
 
128
128
  private get langIndex() {
129
- return getLocalizedIndexKey(this.translateService.currentLang)
129
+ return `lang${toLang3(this.translateService.currentLang)}`
130
130
  }
131
131
 
132
132
  equalsNormalizedStrings(
@@ -0,0 +1,33 @@
1
+ import {
2
+ GroupsApiService,
3
+ SearchApiService,
4
+ } from '../../../../../../../libs/data-access/gn4/src'
5
+ import { TranslateService } from '@ngx-translate/core'
6
+ import { PlatformServiceInterface } from '../../../../../../../libs/common/domain/src/lib/platform.service.interface'
7
+ import { ElasticsearchService } from '../elasticsearch'
8
+ import { OrganizationsStrategy } from './organization-strategy.token'
9
+ import { OrganizationsFromGroupsService } from './organizations-from-groups.service'
10
+ import { OrganizationsFromMetadataService } from './organizations-from-metadata.service'
11
+
12
+ export const organizationsServiceFactory = (
13
+ strategy: OrganizationsStrategy,
14
+ esService: ElasticsearchService,
15
+ searchApiService: SearchApiService,
16
+ groupsApiService: GroupsApiService,
17
+ translateService: TranslateService,
18
+ platformService: PlatformServiceInterface
19
+ ) =>
20
+ strategy === 'groups'
21
+ ? new OrganizationsFromGroupsService(
22
+ esService,
23
+ searchApiService,
24
+ groupsApiService,
25
+ translateService
26
+ )
27
+ : new OrganizationsFromMetadataService(
28
+ esService,
29
+ searchApiService,
30
+ groupsApiService,
31
+ platformService,
32
+ translateService
33
+ )
@@ -11,7 +11,6 @@ import {
11
11
  MeApiService,
12
12
  RecordsApiService,
13
13
  RegistriesApiService,
14
- SiteApiService,
15
14
  ToolsApiService,
16
15
  UserfeedbackApiService,
17
16
  UsersApiService,
@@ -45,8 +44,8 @@ import {
45
44
  throwError,
46
45
  } from 'rxjs'
47
46
  import { TranslateService } from '@ngx-translate/core'
48
- import { getLang3FromLang2 } from '../../../../../../../libs/util/i18n/src'
49
- import { DatavizConfigModel } from '../../../../../../../libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model'
47
+ import { toLang3 } from '../../../../../../../libs/util/i18n/src'
48
+ import { Gn4SettingsService } from '../settings/gn4-settings.service'
50
49
 
51
50
  const minApiVersion = '4.2.2'
52
51
 
@@ -56,6 +55,7 @@ export class Gn4PlatformService implements PlatformServiceInterface {
56
55
  private readonly me$: Observable<UserModel>
57
56
  private readonly users$: Observable<UserModel[]>
58
57
  private readonly isUserAnonymous$: Observable<boolean>
58
+ private readonly gnParseVersion = '4.2.5'
59
59
 
60
60
  private keyTranslations$ = this.toolsApiService
61
61
  .getTranslationsPackage1('gnui')
@@ -66,31 +66,6 @@ export class Gn4PlatformService implements PlatformServiceInterface {
66
66
  }),
67
67
  shareReplay(1)
68
68
  )
69
-
70
- private settings$ = of(true).pipe(
71
- switchMap(() => this.siteApiService.getSiteOrPortalDescription()),
72
- shareReplay(1)
73
- )
74
-
75
- private readonly apiVersion$ = this.settings$.pipe(
76
- map((info) => info['system/platform/version'] as string),
77
- tap((version) => {
78
- if (ltr(version, minApiVersion)) {
79
- throw new Error(
80
- `Gn4 API version is not compatible.\nMinimum: ${minApiVersion}\nYour version: ${version}`
81
- )
82
- }
83
- }),
84
- shareReplay(1)
85
- )
86
-
87
- private readonly allowEditHarvestedMd$ = this.settings$.pipe(
88
- map((info) => {
89
- return info['system/harvester/enableEditing'] as boolean
90
- }),
91
- shareReplay(1)
92
- )
93
-
94
69
  /**
95
70
  * A map of already loaded thesauri (groups of keywords); the key is a URI
96
71
  * @private
@@ -98,11 +73,10 @@ export class Gn4PlatformService implements PlatformServiceInterface {
98
73
  private keywordsByThesauri: Record<string, Observable<Keyword[]>> = {}
99
74
 
100
75
  private get lang3() {
101
- return getLang3FromLang2(this.translateService.currentLang)
76
+ return toLang3(this.translateService.currentLang)
102
77
  }
103
78
 
104
79
  constructor(
105
- private siteApiService: SiteApiService,
106
80
  private meApi: MeApiService,
107
81
  private usersApi: UsersApiService,
108
82
  private mapper: Gn4PlatformMapper,
@@ -111,7 +85,8 @@ export class Gn4PlatformService implements PlatformServiceInterface {
111
85
  private translateService: TranslateService,
112
86
  private userfeedbackApiService: UserfeedbackApiService,
113
87
  private httpClient: HttpClient,
114
- private recordsApiService: RecordsApiService
88
+ private recordsApiService: RecordsApiService,
89
+ private settingsService: Gn4SettingsService
115
90
  ) {
116
91
  this.me$ = this.meApi.getMe().pipe(
117
92
  switchMap((apiUser) => this.mapper.userFromMeApi(apiUser)),
@@ -128,16 +103,28 @@ export class Gn4PlatformService implements PlatformServiceInterface {
128
103
  )
129
104
  }
130
105
 
106
+ getFeedbacksAllowed(): Observable<boolean> {
107
+ return this.settingsService.allowFeedbacks$
108
+ }
109
+
110
+ getAllowEditHarvestedMd(): Observable<boolean> {
111
+ return this.settingsService.allowEditHarvested$
112
+ }
113
+
131
114
  getType(): string {
132
115
  return this.type
133
116
  }
134
117
 
135
118
  getApiVersion(): Observable<string> {
136
- return this.apiVersion$
137
- }
138
-
139
- getAllowEditHarvestedMd(): Observable<boolean> {
140
- return this.allowEditHarvestedMd$
119
+ return this.settingsService.apiVersion$.pipe(
120
+ tap((version) => {
121
+ if (ltr(version, minApiVersion)) {
122
+ throw new Error(
123
+ `Gn4 API version is not compatible.\nMinimum: ${minApiVersion}\nYour version: ${version}`
124
+ )
125
+ }
126
+ })
127
+ )
141
128
  }
142
129
 
143
130
  getMe(): Observable<UserModel> {
@@ -390,22 +377,35 @@ export class Gn4PlatformService implements PlatformServiceInterface {
390
377
  })
391
378
  )
392
379
  }
393
-
394
380
  getFileContent(url: URL | string): Observable<any> {
395
- return this.httpClient.get(url.toString(), { responseType: 'text' }).pipe(
396
- map((text) => {
381
+ return combineLatest([
382
+ this.httpClient.get(url.toString(), { responseType: 'text' }),
383
+ this.getApiVersion(),
384
+ ]).pipe(
385
+ map(([text, version]) => {
397
386
  const parsed = JSON.parse(text)
398
387
 
399
- if (typeof parsed === 'object') {
388
+ if (version > this.gnParseVersion) {
400
389
  return parsed
401
390
  }
402
391
 
403
- const decoded = atob(parsed)
392
+ const decoded = this.decodeBase64(parsed)
404
393
  return JSON.parse(decoded)
405
394
  })
406
395
  )
407
396
  }
408
397
 
398
+ decodeBase64(base64) {
399
+ const text = atob(base64)
400
+ const length = text.length
401
+ const bytes = new Uint8Array(length)
402
+ for (let i = 0; i < length; i++) {
403
+ bytes[i] = text.charCodeAt(i)
404
+ }
405
+ const decoder = new TextDecoder()
406
+ return decoder.decode(bytes)
407
+ }
408
+
409
409
  attachFileToRecord(
410
410
  recordUuid: string,
411
411
  file: File,
@@ -14,6 +14,14 @@ export class Gn4SettingsService {
14
14
  public allowEditHarvested$: Observable<boolean> =
15
15
  this.getSettingsSetValueByKey('system/harvester/enableEditing')
16
16
 
17
+ public allowFeedbacks$: Observable<boolean> = this.getSettingsSetValueByKey(
18
+ 'system/userFeedback/enable'
19
+ )
20
+
21
+ public apiVersion$: Observable<string> = this.getSettingsSetValueByKey(
22
+ 'system/platform/version'
23
+ )
24
+
17
25
  constructor(private siteApiService: SiteApiService) {}
18
26
 
19
27
  private getSettingsSetValueByKey(key: string) {
@@ -0,0 +1,8 @@
1
+ import { InjectionToken } from '@angular/core'
2
+ import { LanguageCode } from '../../../../../libs/common/domain/src/lib/model/record'
3
+
4
+ export type LanguageCodeFactory = () => LanguageCode
5
+
6
+ export const METADATA_LANGUAGE = new InjectionToken<
7
+ LanguageCode | LanguageCodeFactory
8
+ >('metadata-language')
@@ -69,6 +69,8 @@ marker('domain.record.status.ongoing')
69
69
  marker('domain.record.status.under_development')
70
70
  marker('domain.record.status.deprecated')
71
71
  marker('domain.record.status.removed')
72
+ marker('domain.record.status.planned')
73
+ marker('domain.record.status.required')
72
74
 
73
75
  export const RecordStatusValues = [
74
76
  'completed',
@@ -76,6 +78,8 @@ export const RecordStatusValues = [
76
78
  'under_development',
77
79
  'deprecated',
78
80
  'removed',
81
+ 'planned',
82
+ 'required',
79
83
  ]
80
84
  export type RecordStatus = (typeof RecordStatusValues)[number]
81
85
 
@@ -104,6 +108,11 @@ export interface Keyword {
104
108
  translations?: KeywordTranslations
105
109
  }
106
110
 
111
+ export interface INSPIRE_theme {
112
+ value: string
113
+ label: string
114
+ }
115
+
107
116
  export interface BaseRecord {
108
117
  uniqueIdentifier: Uuid
109
118
  ownerOrganization: Organization
@@ -156,6 +165,17 @@ export type ServiceProtocol =
156
165
  | 'maplibre-style'
157
166
  | 'other'
158
167
 
168
+ marker('record.metadata.api.accessServiceProtocol.wms')
169
+ marker('record.metadata.api.accessServiceProtocol.wfs')
170
+ marker('record.metadata.api.accessServiceProtocol.wps')
171
+ marker('record.metadata.api.accessServiceProtocol.wmts')
172
+ marker('record.metadata.api.accessServiceProtocol.esriRest')
173
+ marker('record.metadata.api.accessServiceProtocol.ogcFeatures')
174
+ marker('record.metadata.api.accessServiceProtocol.GPFDL')
175
+ marker('record.metadata.api.accessServiceProtocol.tms')
176
+ marker('record.metadata.api.accessServiceProtocol.maplibre-style')
177
+ marker('record.metadata.api.accessServiceProtocol.other')
178
+
159
179
  export type OnlineResourceType = 'service' | 'download' | 'link' | 'endpoint'
160
180
 
161
181
  export interface DatasetServiceDistribution {
@@ -254,7 +274,7 @@ export interface ServiceRecord extends BaseRecord {
254
274
  export interface ReuseRecord extends BaseRecord {
255
275
  kind: 'reuse'
256
276
  lineage: string // Explanation of the origin of this record (e.g: how, why)"
257
- onlineResources: Array<OnlineLinkResource>
277
+ onlineResources: Array<DatasetOnlineResource>
258
278
  reuseType: ReuseType
259
279
  spatialExtents: Array<DatasetSpatialExtent>
260
280
  temporalExtents: Array<DatasetTemporalExtent>
@@ -57,4 +57,5 @@ export abstract class PlatformServiceInterface {
57
57
  removeDuplicate?: boolean
58
58
  ): Observable<UploadEvent>
59
59
  abstract getFileContent(url: URL): Observable<any>
60
+ abstract getFeedbacksAllowed(): Observable<boolean>
60
61
  }
@@ -127,9 +127,6 @@ export const editorFieldSpatialExtentsFixture = () => ({
127
127
  export const editorFieldKeywordsFixture = () => ({
128
128
  model: 'keywords',
129
129
  hidden: false,
130
- formFieldConfig: {
131
- labelKey: 'editor.record.form.field.keywords',
132
- },
133
130
  })
134
131
 
135
132
  export const editorFieldUniqueIdentifierFixture = () => ({
@@ -1,4 +1,3 @@
1
- export * from './lib/feature-catalog.module'
2
1
  export * from './lib/organization-url.token'
3
2
  export * from './lib/sources/sources.service'
4
3
  export * from './lib/sources/sources.model'
@@ -4,3 +4,8 @@ import { InjectionToken } from '@angular/core'
4
4
  export const ORGANIZATION_PAGE_URL_TOKEN = new InjectionToken<string>(
5
5
  'organization-page-url-token'
6
6
  )
7
+
8
+ // expects the replacement key ${name}
9
+ export const ORGANIZATION_URL_TOKEN = new InjectionToken<string>(
10
+ 'organization-url-token'
11
+ )
@@ -1,8 +1,10 @@
1
+ import { CommonModule } from '@angular/common'
1
2
  import { ChangeDetectionStrategy, Component } from '@angular/core'
2
3
  import {
3
4
  SettingsListResponseApiModel,
4
5
  SiteApiService,
5
6
  } from '../../../../../../libs/data-access/gn4/src'
7
+ import { CatalogTitleComponent } from '../../../../../../libs/ui/catalog/src'
6
8
  import { Observable } from 'rxjs'
7
9
  import { shareReplay } from 'rxjs/operators'
8
10
 
@@ -11,6 +13,8 @@ import { shareReplay } from 'rxjs/operators'
11
13
  templateUrl: './site-title.component.html',
12
14
  styleUrls: ['./site-title.component.css'],
13
15
  changeDetection: ChangeDetectionStrategy.OnPush,
16
+ standalone: true,
17
+ imports: [CommonModule, CatalogTitleComponent],
14
18
  })
15
19
  export class SiteTitleComponent {
16
20
  info$: Observable<SettingsListResponseApiModel>
@@ -1,12 +1,15 @@
1
1
  import { Component, ChangeDetectionStrategy, Input } from '@angular/core'
2
2
  import { Observable } from 'rxjs'
3
3
  import { SourcesService } from '../sources/sources.service'
4
+ import { CommonModule } from '@angular/common'
4
5
 
5
6
  @Component({
6
7
  selector: 'gn-ui-source-label',
7
8
  templateUrl: './source-label.component.html',
8
9
  styleUrls: ['./source-label.component.css'],
9
10
  changeDetection: ChangeDetectionStrategy.OnPush,
11
+ standalone: true,
12
+ imports: [CommonModule],
10
13
  })
11
14
  export class SourceLabelComponent {
12
15
  sourceLabel$: Observable<string>
@@ -4,7 +4,7 @@ import { Observable } from 'rxjs'
4
4
  import { filter, map, shareReplay } from 'rxjs/operators'
5
5
  import { CatalogSource } from './sources.model'
6
6
  import { TranslateService } from '@ngx-translate/core'
7
- import { getLang3FromLang2 } from '../../../../../../libs/util/i18n/src'
7
+ import { toLang3 } from '../../../../../../libs/util/i18n/src'
8
8
 
9
9
  @Injectable({
10
10
  providedIn: 'root',
@@ -23,10 +23,7 @@ export class SourcesService {
23
23
  return this.sources$.pipe(
24
24
  map((sources) => sources.filter((source) => source.uuid === uuid)[0]),
25
25
  filter((source) => !!source),
26
- map(
27
- (source) =>
28
- source.label[getLang3FromLang2(this.translateService.currentLang)]
29
- )
26
+ map((source) => source.label[toLang3(this.translateService.currentLang)])
30
27
  )
31
28
  }
32
29
  }
@@ -211,21 +211,21 @@ export class DataService {
211
211
 
212
212
  async getDownloadUrlsFromOgcApi(url: string): Promise<OgcApiCollectionInfo> {
213
213
  const endpoint = new OgcApiEndpoint(url)
214
- return await endpoint.allCollections
214
+ return await endpoint.featureCollections
215
215
  .then((collections) => {
216
- return endpoint.getCollectionInfo(collections[0].name)
216
+ return endpoint.getCollectionInfo(collections[0])
217
217
  })
218
218
  .catch((error) => {
219
219
  throw new Error(`ogc.unreachable.unknown`)
220
220
  })
221
221
  }
222
222
 
223
- async getItemsFromOgcApi(url: string): Promise<OgcApiRecord> {
223
+ async getItemsFromOgcApi(url: string): Promise<OgcApiRecord[]> {
224
224
  const endpoint = new OgcApiEndpoint(url)
225
225
  return await endpoint.featureCollections
226
226
  .then((collections) => {
227
227
  return collections.length
228
- ? endpoint.getCollectionItem(collections[0], '1')
228
+ ? endpoint.getCollectionItems(collections[0])
229
229
  : null
230
230
  })
231
231
  .catch(() => {
@@ -237,7 +237,9 @@ export class DataService {
237
237
  tmsLink: DatasetServiceDistribution,
238
238
  keepOriginalLink = false
239
239
  ): Promise<DatasetServiceDistribution[]> {
240
- const endpoint = new TmsEndpoint(tmsLink.url.toString())
240
+ const endpoint = new TmsEndpoint(
241
+ tmsLink.url.toString().replace(/\/?$/, `/${tmsLink.name}`)
242
+ )
241
243
  const tileMaps = await endpoint.allTileMaps.catch(() => {
242
244
  throw new Error(`ogc.unreachable.unknown`)
243
245
  })
@@ -9,3 +9,4 @@ export * from './lib/components/import-record/import-record.component'
9
9
  export * from './lib/components/record-form/record-form.component'
10
10
  export * from './lib/components/record-form/form-field'
11
11
  export * from './lib/components/multilingual-panel/multilingual-panel.component'
12
+ export * from './lib/components/metadata-quality-panel/metadata-quality-panel.component'