geonetwork-ui 2.7.0-dev.76c515d5b → 2.7.0-dev.77bbd685d

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 (378) 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/write-parts.mjs +5 -5
  9. package/esm2022/libs/api/repository/src/index.mjs +2 -2
  10. package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +5 -5
  11. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +9 -10
  12. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +3 -3
  13. package/esm2022/libs/api/repository/src/lib/gn4/gn4.provider.mjs +20 -1
  14. package/esm2022/libs/api/repository/src/lib/gn4/organizations/index.mjs +3 -5
  15. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organization-strategy.token.mjs +5 -0
  16. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +3 -3
  17. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +3 -3
  18. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-service.factory.mjs +6 -0
  19. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +21 -21
  20. package/esm2022/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.mjs +3 -1
  21. package/esm2022/libs/api/repository/src/lib/metadata-language.token.mjs +3 -0
  22. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +11 -1
  23. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  24. package/esm2022/libs/feature/catalog/src/index.mjs +1 -2
  25. package/esm2022/libs/feature/catalog/src/lib/organization-url.token.mjs +3 -1
  26. package/esm2022/libs/feature/catalog/src/lib/site-title/site-title.component.mjs +5 -4
  27. package/esm2022/libs/feature/catalog/src/lib/source-label/source-label.component.mjs +4 -3
  28. package/esm2022/libs/feature/catalog/src/lib/sources/sources.service.mjs +3 -3
  29. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +4 -4
  30. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +8 -2
  31. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.mjs +55 -0
  32. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +8 -3
  33. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -1
  34. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +6 -36
  35. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +77 -1
  36. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +10 -5
  37. package/esm2022/libs/feature/notifications/src/index.mjs +1 -2
  38. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +4 -2
  39. package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +14 -4
  40. package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +5 -43
  41. package/esm2022/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.mjs +10 -5
  42. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +15 -5
  43. package/esm2022/libs/feature/record/src/lib/record-meta/record-meta.component.mjs +4 -2
  44. package/esm2022/libs/feature/router/src/lib/default/container/search-router.container.directive.mjs +3 -2
  45. package/esm2022/libs/feature/router/src/lib/default/router.module.mjs +2 -5
  46. package/esm2022/libs/feature/router/src/lib/default/state/query-params.utils.mjs +4 -3
  47. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +3 -2
  48. package/esm2022/libs/feature/search/src/index.mjs +1 -2
  49. package/esm2022/libs/feature/search/src/lib/facets/facets-container/facets-container.component.mjs +12 -5
  50. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +4 -100
  51. package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +9 -5
  52. package/esm2022/libs/feature/search/src/lib/records-metrics/records-metrics.component.mjs +6 -5
  53. package/esm2022/libs/feature/search/src/lib/results-hits/results-hits.container.component.mjs +9 -5
  54. package/esm2022/libs/feature/search/src/lib/results-layout/results-layout.component.mjs +7 -6
  55. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +19 -12
  56. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +2 -1
  57. package/esm2022/libs/feature/search/src/lib/sort-by/sort-by.component.mjs +7 -6
  58. package/esm2022/libs/feature/search/src/lib/state/container/search-state.container.directive.mjs +3 -2
  59. package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +8 -2
  60. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +10 -4
  61. package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +8 -2
  62. package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +8 -2
  63. package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +14 -4
  64. package/esm2022/libs/ui/elements/src/lib/kind-badge/kind-badge.component.mjs +8 -2
  65. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +1 -4
  66. package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +7 -7
  67. package/esm2022/libs/ui/elements/src/lib/notification/notification.component.mjs +8 -2
  68. package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +1 -6
  69. package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +14 -4
  70. package/esm2022/libs/ui/search/src/index.mjs +1 -3
  71. package/esm2022/libs/ui/search/src/lib/facets/facet-block/facet-block.component.mjs +14 -30
  72. package/esm2022/libs/ui/search/src/lib/facets/facet-item/facet-item.component.mjs +6 -27
  73. package/esm2022/libs/ui/search/src/lib/facets/facet-list/facet-list.component.mjs +7 -4
  74. package/esm2022/libs/ui/search/src/lib/record-metric/record-metric.component.mjs +5 -4
  75. package/esm2022/libs/ui/search/src/lib/record-preview/record-preview.component.mjs +5 -2
  76. package/esm2022/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.mjs +5 -4
  77. package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +36 -7
  78. package/esm2022/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.mjs +11 -5
  79. package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +5 -4
  80. package/esm2022/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.mjs +5 -4
  81. package/esm2022/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.mjs +5 -4
  82. package/esm2022/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.mjs +5 -4
  83. package/esm2022/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.mjs +12 -6
  84. package/esm2022/libs/ui/search/src/lib/results-list/results-layout.config.mjs +4 -2
  85. package/esm2022/libs/ui/search/src/lib/results-list/results-list.component.mjs +5 -4
  86. package/esm2022/libs/ui/search/src/lib/results-list-item/results-list-item.component.mjs +5 -3
  87. package/esm2022/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.mjs +14 -4
  88. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -2
  89. package/esm2022/libs/util/app-config/src/lib/parse-utils.mjs +5 -4
  90. package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +50 -9
  91. package/esm2022/libs/util/shared/src/lib/record/quality-score.util.mjs +9 -8
  92. package/esm2022/translations/de.json +52 -20
  93. package/esm2022/translations/en.json +53 -21
  94. package/esm2022/translations/es.json +39 -7
  95. package/esm2022/translations/fr.json +57 -25
  96. package/esm2022/translations/it.json +52 -20
  97. package/esm2022/translations/nl.json +39 -7
  98. package/esm2022/translations/pt.json +39 -7
  99. package/esm2022/translations/sk.json +43 -11
  100. package/fesm2022/geonetwork-ui.mjs +5546 -5788
  101. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  102. package/index.d.ts +0 -1
  103. package/index.d.ts.map +1 -1
  104. package/index.ts +0 -1
  105. package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts.map +1 -1
  106. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +1 -1
  107. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  108. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +2 -2
  109. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  110. package/libs/api/repository/src/index.d.ts +1 -1
  111. package/libs/api/repository/src/index.d.ts.map +1 -1
  112. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +0 -1
  113. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  114. package/libs/api/repository/src/lib/gn4/gn4.provider.d.ts.map +1 -1
  115. package/libs/api/repository/src/lib/gn4/organizations/index.d.ts +2 -3
  116. package/libs/api/repository/src/lib/gn4/organizations/index.d.ts.map +1 -1
  117. package/libs/api/repository/src/lib/gn4/organizations/organization-strategy.token.d.ts +4 -0
  118. package/libs/api/repository/src/lib/gn4/organizations/organization-strategy.token.d.ts.map +1 -0
  119. package/libs/api/repository/src/lib/gn4/organizations/organizations-service.factory.d.ts +9 -0
  120. package/libs/api/repository/src/lib/gn4/organizations/organizations-service.factory.d.ts.map +1 -0
  121. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +6 -7
  122. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  123. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts +2 -0
  124. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts.map +1 -1
  125. package/libs/api/repository/src/lib/metadata-language.token.d.ts +5 -0
  126. package/libs/api/repository/src/lib/metadata-language.token.d.ts.map +1 -0
  127. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +5 -1
  128. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  129. package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -0
  130. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  131. package/libs/feature/catalog/src/index.d.ts +0 -1
  132. package/libs/feature/catalog/src/index.d.ts.map +1 -1
  133. package/libs/feature/catalog/src/lib/organization-url.token.d.ts +1 -0
  134. package/libs/feature/catalog/src/lib/organization-url.token.d.ts.map +1 -1
  135. package/libs/feature/catalog/src/lib/site-title/site-title.component.d.ts +1 -1
  136. package/libs/feature/catalog/src/lib/site-title/site-title.component.d.ts.map +1 -1
  137. package/libs/feature/catalog/src/lib/source-label/source-label.component.d.ts +1 -1
  138. package/libs/feature/catalog/src/lib/source-label/source-label.component.d.ts.map +1 -1
  139. package/libs/feature/catalog/src/lib/sources/sources.service.d.ts.map +1 -1
  140. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +1 -1
  141. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
  142. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -1
  143. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.d.ts +20 -0
  144. 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
  145. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +1 -0
  146. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  147. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
  148. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  149. package/libs/feature/editor/src/lib/feature-editor.module.d.ts +3 -10
  150. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  151. package/libs/feature/editor/src/lib/fields.config.d.ts +8 -1
  152. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  153. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts.map +1 -1
  154. package/libs/feature/notifications/src/index.d.ts +0 -1
  155. package/libs/feature/notifications/src/index.d.ts.map +1 -1
  156. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  157. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
  158. package/libs/feature/record/src/lib/feature-record.module.d.ts +4 -11
  159. package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
  160. package/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.d.ts.map +1 -1
  161. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  162. package/libs/feature/record/src/lib/record-meta/record-meta.component.d.ts.map +1 -1
  163. package/libs/feature/router/src/lib/default/container/search-router.container.directive.d.ts +1 -1
  164. package/libs/feature/router/src/lib/default/container/search-router.container.directive.d.ts.map +1 -1
  165. package/libs/feature/router/src/lib/default/router.module.d.ts +4 -5
  166. package/libs/feature/router/src/lib/default/router.module.d.ts.map +1 -1
  167. package/libs/feature/router/src/lib/default/state/query-params.utils.d.ts.map +1 -1
  168. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  169. package/libs/feature/search/src/index.d.ts +0 -1
  170. package/libs/feature/search/src/index.d.ts.map +1 -1
  171. package/libs/feature/search/src/lib/facets/facets-container/facets-container.component.d.ts +1 -1
  172. package/libs/feature/search/src/lib/facets/facets-container/facets-container.component.d.ts.map +1 -1
  173. package/libs/feature/search/src/lib/feature-search.module.d.ts +3 -26
  174. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  175. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts +1 -1
  176. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts.map +1 -1
  177. package/libs/feature/search/src/lib/records-metrics/records-metrics.component.d.ts +1 -1
  178. package/libs/feature/search/src/lib/records-metrics/records-metrics.component.d.ts.map +1 -1
  179. package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts +1 -1
  180. package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts.map +1 -1
  181. package/libs/feature/search/src/lib/results-layout/results-layout.component.d.ts +1 -1
  182. package/libs/feature/search/src/lib/results-layout/results-layout.component.d.ts.map +1 -1
  183. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts +1 -1
  184. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts.map +1 -1
  185. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +1 -1
  186. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  187. package/libs/feature/search/src/lib/sort-by/sort-by.component.d.ts +1 -1
  188. package/libs/feature/search/src/lib/sort-by/sort-by.component.d.ts.map +1 -1
  189. package/libs/feature/search/src/lib/state/container/search-state.container.directive.d.ts +1 -1
  190. package/libs/feature/search/src/lib/state/container/search-state.container.directive.d.ts.map +1 -1
  191. package/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.d.ts.map +1 -1
  192. package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
  193. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
  194. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -1
  195. package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts.map +1 -1
  196. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts.map +1 -1
  197. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +0 -1
  198. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  199. package/libs/ui/elements/src/lib/notification/notification.component.d.ts.map +1 -1
  200. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -1
  201. package/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.d.ts.map +1 -1
  202. package/libs/ui/search/src/index.d.ts +0 -2
  203. package/libs/ui/search/src/index.d.ts.map +1 -1
  204. package/libs/ui/search/src/lib/facets/facet-block/facet-block.component.d.ts +1 -11
  205. package/libs/ui/search/src/lib/facets/facet-block/facet-block.component.d.ts.map +1 -1
  206. package/libs/ui/search/src/lib/facets/facet-item/facet-item.component.d.ts +1 -11
  207. package/libs/ui/search/src/lib/facets/facet-item/facet-item.component.d.ts.map +1 -1
  208. package/libs/ui/search/src/lib/facets/facet-list/facet-list.component.d.ts +1 -1
  209. package/libs/ui/search/src/lib/facets/facet-list/facet-list.component.d.ts.map +1 -1
  210. package/libs/ui/search/src/lib/record-metric/record-metric.component.d.ts +1 -1
  211. package/libs/ui/search/src/lib/record-metric/record-metric.component.d.ts.map +1 -1
  212. package/libs/ui/search/src/lib/record-preview/record-preview.component.d.ts +1 -1
  213. package/libs/ui/search/src/lib/record-preview/record-preview.component.d.ts.map +1 -1
  214. package/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.d.ts +1 -1
  215. package/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.d.ts.map +1 -1
  216. package/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.d.ts +1 -1
  217. package/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.d.ts.map +1 -1
  218. package/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.d.ts +1 -1
  219. package/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.d.ts.map +1 -1
  220. package/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.d.ts +1 -1
  221. package/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.d.ts.map +1 -1
  222. package/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.d.ts +1 -1
  223. package/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.d.ts.map +1 -1
  224. package/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.d.ts +1 -1
  225. package/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.d.ts.map +1 -1
  226. package/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.d.ts +1 -1
  227. package/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.d.ts.map +1 -1
  228. package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts +1 -1
  229. package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts.map +1 -1
  230. package/libs/ui/search/src/lib/results-list/results-layout.config.d.ts +1 -1
  231. package/libs/ui/search/src/lib/results-list/results-layout.config.d.ts.map +1 -1
  232. package/libs/ui/search/src/lib/results-list/results-list.component.d.ts +1 -1
  233. package/libs/ui/search/src/lib/results-list/results-list.component.d.ts.map +1 -1
  234. package/libs/ui/search/src/lib/results-list-item/results-list-item.component.d.ts +1 -1
  235. package/libs/ui/search/src/lib/results-list-item/results-list-item.component.d.ts.map +1 -1
  236. package/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.d.ts.map +1 -1
  237. package/libs/util/app-config/src/lib/parse-utils.d.ts.map +1 -1
  238. package/libs/util/i18n/src/lib/language-codes.d.ts +91 -31
  239. package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
  240. package/libs/util/shared/src/lib/record/quality-score.util.d.ts.map +1 -1
  241. package/package.json +11 -10
  242. package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +3 -6
  243. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +47 -22
  244. package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +2 -2
  245. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +2 -2
  246. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +2 -2
  247. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +3 -3
  248. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +6 -6
  249. package/src/libs/api/repository/src/index.ts +1 -1
  250. package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +4 -4
  251. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +15 -11
  252. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
  253. package/src/libs/api/repository/src/lib/gn4/gn4.provider.ts +25 -0
  254. package/src/libs/api/repository/src/lib/gn4/organizations/index.ts +2 -11
  255. package/src/libs/api/repository/src/lib/gn4/organizations/organization-strategy.token.ts +10 -0
  256. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +2 -2
  257. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +2 -2
  258. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-service.factory.ts +33 -0
  259. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +22 -35
  260. package/src/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.ts +8 -0
  261. package/src/libs/api/repository/src/lib/metadata-language.token.ts +8 -0
  262. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +17 -1
  263. package/src/libs/common/domain/src/lib/platform.service.interface.ts +1 -0
  264. package/src/libs/feature/catalog/src/index.ts +0 -1
  265. package/src/libs/feature/catalog/src/lib/organization-url.token.ts +5 -0
  266. package/src/libs/feature/catalog/src/lib/site-title/site-title.component.ts +4 -0
  267. package/src/libs/feature/catalog/src/lib/source-label/source-label.component.ts +3 -0
  268. package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +2 -5
  269. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +3 -3
  270. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +8 -1
  271. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.css +0 -0
  272. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.html +22 -0
  273. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.ts +57 -0
  274. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +6 -0
  275. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +5 -0
  276. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
  277. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +2 -18
  278. package/src/libs/feature/editor/src/lib/fields.config.ts +85 -1
  279. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.ts +8 -1
  280. package/src/libs/feature/notifications/src/index.ts +0 -1
  281. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +3 -1
  282. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +7 -2
  283. package/src/libs/feature/record/src/lib/feature-record.module.ts +1 -21
  284. package/src/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.ts +5 -2
  285. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +12 -3
  286. package/src/libs/feature/record/src/lib/record-meta/record-meta.component.ts +2 -0
  287. package/src/libs/feature/router/src/lib/default/container/search-router.container.directive.ts +1 -0
  288. package/src/libs/feature/router/src/lib/default/router.module.ts +0 -3
  289. package/src/libs/feature/router/src/lib/default/state/query-params.utils.ts +5 -2
  290. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +2 -1
  291. package/src/libs/feature/search/src/index.ts +0 -1
  292. package/src/libs/feature/search/src/lib/facets/facets-container/facets-container.component.ts +14 -1
  293. package/src/libs/feature/search/src/lib/feature-search.module.ts +0 -61
  294. package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +12 -1
  295. package/src/libs/feature/search/src/lib/records-metrics/records-metrics.component.ts +5 -0
  296. package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.ts +11 -0
  297. package/src/libs/feature/search/src/lib/results-layout/results-layout.component.ts +5 -0
  298. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +21 -1
  299. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +1 -1
  300. package/src/libs/feature/search/src/lib/sort-by/sort-by.component.ts +5 -0
  301. package/src/libs/feature/search/src/lib/state/container/search-state.container.directive.ts +1 -0
  302. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.ts +4 -1
  303. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +4 -1
  304. package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +4 -1
  305. package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +4 -1
  306. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +4 -1
  307. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.ts +7 -2
  308. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.ts +8 -1
  309. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +0 -4
  310. package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.ts +6 -6
  311. package/src/libs/ui/elements/src/lib/notification/notification.component.ts +8 -1
  312. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +0 -6
  313. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.ts +7 -2
  314. package/src/libs/ui/search/src/index.ts +0 -2
  315. package/src/libs/ui/search/src/lib/facets/facet-block/facet-block.component.ts +12 -11
  316. package/src/libs/ui/search/src/lib/facets/facet-item/facet-item.component.ts +5 -11
  317. package/src/libs/ui/search/src/lib/facets/facet-list/facet-list.component.ts +6 -0
  318. package/src/libs/ui/search/src/lib/record-metric/record-metric.component.ts +4 -0
  319. package/src/libs/ui/search/src/lib/record-preview/record-preview.component.ts +3 -0
  320. package/src/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.ts +4 -0
  321. package/src/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.ts +33 -1
  322. package/src/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.ts +10 -0
  323. package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.ts +4 -0
  324. package/src/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.ts +4 -0
  325. package/src/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.ts +4 -0
  326. package/src/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.ts +4 -0
  327. package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.ts +11 -1
  328. package/src/libs/ui/search/src/lib/results-list/results-layout.config.ts +5 -3
  329. package/src/libs/ui/search/src/lib/results-list/results-list.component.ts +4 -0
  330. package/src/libs/ui/search/src/lib/results-list-item/results-list-item.component.ts +3 -0
  331. package/src/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.ts +6 -1
  332. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -1
  333. package/src/libs/util/app-config/src/lib/parse-utils.ts +4 -7
  334. package/src/libs/util/i18n/src/lib/language-codes.ts +62 -11
  335. package/src/libs/util/shared/src/lib/record/quality-score.util.ts +13 -10
  336. package/translations/de.json +52 -20
  337. package/translations/en.json +53 -21
  338. package/translations/es.json +39 -7
  339. package/translations/fr.json +57 -25
  340. package/translations/it.json +52 -20
  341. package/translations/nl.json +39 -7
  342. package/translations/pt.json +39 -7
  343. package/translations/sk.json +43 -11
  344. package/esm2022/libs/api/repository/src/lib/metadata-language.mjs +0 -3
  345. package/esm2022/libs/feature/auth/src/index.mjs +0 -2
  346. package/esm2022/libs/feature/auth/src/lib/feature-auth.module.mjs +0 -17
  347. package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +0 -57
  348. package/esm2022/libs/feature/notifications/src/lib/feature-notifications.module.mjs +0 -18
  349. package/esm2022/libs/feature/search/src/lib/facets/facets.module.mjs +0 -21
  350. package/esm2022/libs/ui/search/src/lib/facets/facets.module.mjs +0 -23
  351. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +0 -168
  352. package/esm2022/libs/util/app-config/src/lib/constants.mjs +0 -439
  353. package/libs/api/repository/src/lib/metadata-language.d.ts +0 -3
  354. package/libs/api/repository/src/lib/metadata-language.d.ts.map +0 -1
  355. package/libs/feature/auth/src/index.d.ts +0 -2
  356. package/libs/feature/auth/src/index.d.ts.map +0 -1
  357. package/libs/feature/auth/src/lib/feature-auth.module.d.ts +0 -8
  358. package/libs/feature/auth/src/lib/feature-auth.module.d.ts.map +0 -1
  359. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts +0 -14
  360. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +0 -1
  361. package/libs/feature/notifications/src/lib/feature-notifications.module.d.ts +0 -7
  362. package/libs/feature/notifications/src/lib/feature-notifications.module.d.ts.map +0 -1
  363. package/libs/feature/search/src/lib/facets/facets.module.d.ts +0 -11
  364. package/libs/feature/search/src/lib/facets/facets.module.d.ts.map +0 -1
  365. package/libs/ui/search/src/lib/facets/facets.module.d.ts +0 -13
  366. package/libs/ui/search/src/lib/facets/facets.module.d.ts.map +0 -1
  367. package/libs/ui/search/src/lib/ui-search.module.d.ts +0 -36
  368. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +0 -1
  369. package/libs/util/app-config/src/lib/constants.d.ts +0 -2
  370. package/libs/util/app-config/src/lib/constants.d.ts.map +0 -1
  371. package/src/libs/api/repository/src/lib/metadata-language.ts +0 -3
  372. package/src/libs/feature/auth/src/index.ts +0 -1
  373. package/src/libs/feature/auth/src/lib/feature-auth.module.ts +0 -12
  374. package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +0 -71
  375. package/src/libs/feature/notifications/src/lib/feature-notifications.module.ts +0 -10
  376. package/src/libs/feature/search/src/lib/facets/facets.module.ts +0 -12
  377. package/src/libs/ui/search/src/lib/facets/facets.module.ts +0 -14
  378. package/src/libs/ui/search/src/lib/ui-search.module.ts +0 -108
@@ -1,7 +1,7 @@
1
1
  import { Inject, Injectable } from '@angular/core'
2
2
  import { Configuration } from '../../../../../../libs/data-access/gn4/src'
3
3
  import { TranslateService } from '@ngx-translate/core'
4
- import { getLang3FromLang2 } from '../../../../../../libs/util/i18n/src'
4
+ import { toLang3 } from '../../../../../../libs/util/i18n/src'
5
5
 
6
6
  @Injectable({
7
7
  providedIn: 'root',
@@ -14,7 +14,7 @@ export class MetadataUrlService {
14
14
 
15
15
  getUrl(uuid: string, apiPath: string = this.apiConfiguration.basePath) {
16
16
  const prefix = `${apiPath}/../`
17
- return `${prefix}${getLang3FromLang2(
17
+ return `${prefix}${toLang3(
18
18
  this.translate.currentLang
19
19
  )}/catalog.search#/metadata/${uuid}`
20
20
  }
@@ -41,7 +41,7 @@ import {
41
41
  } from '../../../../../../libs/common/domain/src/lib/model/record'
42
42
  import { matchMimeType } from '../common/distribution.mapper'
43
43
  import { fullNameToParts } from '../iso19139/utils/individual-name'
44
- import { getLang2FromLang3 } from '../../../../../../libs/util/i18n/src/lib/language-codes'
44
+ import { toLang2 } from '../../../../../../libs/util/i18n/src/lib/language-codes'
45
45
  import { getResourceType, getReuseType } from '../common/resource-types'
46
46
 
47
47
  export function readKind(rootEl: XmlElement): RecordKind {
@@ -370,7 +370,7 @@ export function readLocaleElement(): ChainableFunction<
370
370
  return pipe(
371
371
  findChildElement('lan:LanguageCode'),
372
372
  readAttribute('codeListValue'),
373
- map((lang) => getLang2FromLang3(lang?.toLowerCase()) ?? lang)
373
+ map((lang) => toLang2(lang?.toLowerCase()) ?? lang)
374
374
  )
375
375
  }
376
376
 
@@ -49,7 +49,7 @@ import {
49
49
  } from '../iso19139/write-parts'
50
50
  import { findIdentification } from '../iso19139/read-parts'
51
51
  import { namePartsToFull } from '../iso19139/utils/individual-name'
52
- import { getLang3FromLang2 } from '../../../../../../libs/util/i18n/src/lib/language-codes'
52
+ import { toLang3 } from '../../../../../../libs/util/i18n/src/lib/language-codes'
53
53
  import { kindToCodeListValue } from '../common/resource-types'
54
54
 
55
55
  export function writeUniqueIdentifier(
@@ -529,7 +529,7 @@ export function writeOnlineResources(
529
529
  }
530
530
 
531
531
  function writeLocaleElement(language: LanguageCode) {
532
- const lang3 = getLang3FromLang2(language.toLowerCase()) ?? language
532
+ const lang3 = toLang3(language.toLowerCase()) ?? language
533
533
  return pipe(
534
534
  findChildOrCreate('lan:PT_Locale'),
535
535
  writeAttribute('id', language.toUpperCase()),
@@ -55,7 +55,7 @@ import { getKeywordTypeFromKeywordTypeCode } from './utils/keyword.mapper'
55
55
  import { getRoleFromRoleCode } from './utils/role.mapper'
56
56
  import { getStatusFromStatusCode } from './utils/status.mapper'
57
57
  import { getUpdateFrequencyFromFrequencyCode } from './utils/update-frequency.mapper'
58
- import { getLang2FromLang3 } from '../../../../../../libs/util/i18n/src/lib/language-codes'
58
+ import { toLang2 } from '../../../../../../libs/util/i18n/src/lib/language-codes'
59
59
  import { getResourceType, getReuseType } from '../common/resource-types'
60
60
 
61
61
  export function extractCharacterString(): ChainableFunction<
@@ -1164,7 +1164,7 @@ export function readOtherLanguages(rootEl: XmlElement): LanguageCode[] {
1164
1164
  pipe(
1165
1165
  findChildElement('lan:LanguageCode'),
1166
1166
  readAttribute('codeListValue'),
1167
- map((lang) => getLang2FromLang3(lang?.toLowerCase()) ?? lang)
1167
+ map((lang) => toLang2(lang?.toLowerCase()) ?? lang)
1168
1168
  )
1169
1169
  ),
1170
1170
  map((languages) =>
@@ -1179,7 +1179,7 @@ export function readDefaultLanguage(rootEl: XmlElement): LanguageCode {
1179
1179
  findChildElement('gmd:language', false),
1180
1180
  findChildElement('lan:LanguageCode'),
1181
1181
  readAttribute('codeListValue'),
1182
- map((lang) => (lang ? getLang2FromLang3(lang.toLowerCase()) : null))
1182
+ map((lang) => (lang ? toLang2(lang.toLowerCase()) : null))
1183
1183
  )(rootEl)
1184
1184
  }
1185
1185
 
@@ -53,7 +53,7 @@ import {
53
53
  import { readKind } from './read-parts'
54
54
  import { writeGeometry } from './utils/geometry'
55
55
  import { namePartsToFull } from './utils/individual-name'
56
- import { getLang3FromLang2 } from '../../../../../../libs/util/i18n/src/lib/language-codes'
56
+ import { toLang3 } from '../../../../../../libs/util/i18n/src/lib/language-codes'
57
57
  import { kindToCodeListValue } from '../common/resource-types'
58
58
 
59
59
  function writeLocalizedElement(
@@ -1300,7 +1300,7 @@ export function createOnlineResource(onlineResource: ServiceOnlineResource) {
1300
1300
  }
1301
1301
 
1302
1302
  export function appendDatasetOnlineResources(
1303
- record: DatasetRecord,
1303
+ record: DatasetRecord | ReuseRecord,
1304
1304
  rootEl: XmlElement
1305
1305
  ) {
1306
1306
  appendChildren(
@@ -1319,7 +1319,7 @@ export function appendDatasetOnlineResources(
1319
1319
  }
1320
1320
 
1321
1321
  export function appendServiceOnlineResources(
1322
- record: ServiceRecord | ReuseRecord,
1322
+ record: ServiceRecord,
1323
1323
  rootEl: XmlElement
1324
1324
  ) {
1325
1325
  appendChildren(...record.onlineResources.map(createOnlineResource))(rootEl)
@@ -1331,7 +1331,7 @@ export function writeOnlineResources(
1331
1331
  ) {
1332
1332
  removeOnlineResources()(rootEl)
1333
1333
 
1334
- if (record.kind === 'dataset') {
1334
+ if (record.kind === 'dataset' || record.kind === 'reuse') {
1335
1335
  appendDatasetOnlineResources(record, rootEl)
1336
1336
  return
1337
1337
  }
@@ -1476,7 +1476,7 @@ export function writeLanguages(record: DatasetRecord, rootEl: XmlElement) {
1476
1476
  writeAttribute('id', lang.toUpperCase()),
1477
1477
  createNestedChild('gmd:languageCode', 'gmd:LanguageCode'),
1478
1478
  writeAttribute('codeList', 'http://www.loc.gov/standards/iso639-2/'),
1479
- writeAttribute('codeListValue', getLang3FromLang2(lang) ?? lang)
1479
+ writeAttribute('codeListValue', toLang3(lang) ?? lang)
1480
1480
  )
1481
1481
 
1482
1482
  // add new languages (only if other than default one)
@@ -1490,7 +1490,7 @@ export function writeDefaultLanguage(
1490
1490
  record: DatasetRecord,
1491
1491
  rootEl: XmlElement
1492
1492
  ) {
1493
- const lang3 = getLang3FromLang2(record.defaultLanguage.toLowerCase())
1493
+ const lang3 = toLang3(record.defaultLanguage.toLowerCase())
1494
1494
  return pipe(
1495
1495
  findNestedChildOrCreate('gmd:language', 'gmd:LanguageCode'),
1496
1496
  writeAttribute('codeList', 'http://www.loc.gov/standards/iso639-2/'),
@@ -1,3 +1,3 @@
1
- export * from './lib/metadata-language'
1
+ export * from './lib/metadata-language.token'
2
2
  export * from './lib/repository-url'
3
3
  export * from './lib/gn4'
@@ -1,5 +1,5 @@
1
1
  import { Inject, Injectable, InjectionToken, Optional } from '@angular/core'
2
- import { getLang3FromLang2 } from '../../../../../../../libs/util/i18n/src'
2
+ import { toLang2, toLang3 } from '../../../../../../../libs/util/i18n/src'
3
3
  import { TranslateService } from '@ngx-translate/core'
4
4
  import { Location } from '@angular/common'
5
5
 
@@ -35,8 +35,8 @@ export class AuthService {
35
35
  '${current_url}',
36
36
  new URL(this.location.path(), window.location.href).toString()
37
37
  )
38
- .replace('${lang2}', this.translateService.currentLang)
39
- .replace('${lang3}', getLang3FromLang2(this.translateService.currentLang))
38
+ .replace('${lang2}', toLang2(this.translateService.currentLang))
39
+ .replace('${lang3}', toLang3(this.translateService.currentLang))
40
40
  }
41
41
 
42
42
  get logoutUrl() {
@@ -46,7 +46,7 @@ export class AuthService {
46
46
  get settingsUrl() {
47
47
  return this.baseSettingsUrl.replace(
48
48
  '${lang3}',
49
- getLang3FromLang2(this.translateService.currentLang)
49
+ toLang3(this.translateService.currentLang)
50
50
  )
51
51
  }
52
52
 
@@ -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,9 +26,12 @@ 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'
33
36
  import { getGeometryBoundingBox } from '../../../../../../../libs/util/shared/src'
34
37
  import { getLength as getGeodesicLength } from 'ol/sphere'
@@ -45,11 +48,9 @@ export class ElasticsearchService {
45
48
  private runtimeFields: Record<string, string> = {}
46
49
 
47
50
  // we're using getters in case the defined languages change over time
48
- private get lang3() {
49
- return getLang3FromLang2(this.translateService.currentLang)
50
- }
51
- private get metadataLang() {
52
- 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
53
54
  }
54
55
 
55
56
  constructor(
@@ -233,9 +234,12 @@ export class ElasticsearchService {
233
234
 
234
235
  private getQueryLang(): string {
235
236
  if (this.metadataLang) {
236
- return this.isCurrentSearchLang()
237
- ? `lang${this.lang3}`
238
- : `lang${this.metadataLang}`
237
+ const lang3 = toLang3(
238
+ this.isCurrentSearchLang()
239
+ ? this.translateService.currentLang
240
+ : this.metadataLang
241
+ )
242
+ return `lang${lang3}`
239
243
  } else return '*'
240
244
  }
241
245
  private isCurrentSearchLang() {
@@ -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,7 +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'
47
+ import { toLang3 } from '../../../../../../../libs/util/i18n/src'
48
+ import { Gn4SettingsService } from '../settings/gn4-settings.service'
49
49
 
50
50
  const minApiVersion = '4.2.2'
51
51
 
@@ -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> {
@@ -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')
@@ -108,6 +108,11 @@ export interface Keyword {
108
108
  translations?: KeywordTranslations
109
109
  }
110
110
 
111
+ export interface INSPIRE_theme {
112
+ value: string
113
+ label: string
114
+ }
115
+
111
116
  export interface BaseRecord {
112
117
  uniqueIdentifier: Uuid
113
118
  ownerOrganization: Organization
@@ -160,6 +165,17 @@ export type ServiceProtocol =
160
165
  | 'maplibre-style'
161
166
  | 'other'
162
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
+
163
179
  export type OnlineResourceType = 'service' | 'download' | 'link' | 'endpoint'
164
180
 
165
181
  export interface DatasetServiceDistribution {
@@ -258,7 +274,7 @@ export interface ServiceRecord extends BaseRecord {
258
274
  export interface ReuseRecord extends BaseRecord {
259
275
  kind: 'reuse'
260
276
  lineage: string // Explanation of the origin of this record (e.g: how, why)"
261
- onlineResources: Array<OnlineLinkResource>
277
+ onlineResources: Array<DatasetOnlineResource>
262
278
  reuseType: ReuseType
263
279
  spatialExtents: Array<DatasetSpatialExtent>
264
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
  }
@@ -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
  }