geonetwork-ui 2.7.0-dev.fa54bd3a5 → 2.7.0-dev.fd871c105

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 (479) 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 +52 -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/dataviz/dataviz-configuration.model.mjs +1 -1
  25. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +15 -1
  26. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  27. package/esm2022/libs/feature/catalog/src/index.mjs +1 -2
  28. package/esm2022/libs/feature/catalog/src/lib/organization-url.token.mjs +3 -1
  29. package/esm2022/libs/feature/catalog/src/lib/site-title/site-title.component.mjs +5 -4
  30. package/esm2022/libs/feature/catalog/src/lib/source-label/source-label.component.mjs +4 -3
  31. package/esm2022/libs/feature/catalog/src/lib/sources/sources.service.mjs +3 -3
  32. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +10 -2
  33. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +2 -2
  34. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  35. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +4 -4
  36. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +8 -2
  37. package/esm2022/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.mjs +80 -0
  38. package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +3 -3
  39. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.mjs +55 -0
  40. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +8 -3
  41. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -1
  42. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +6 -36
  43. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +77 -3
  44. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +10 -5
  45. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +3 -5
  46. package/esm2022/libs/feature/notifications/src/index.mjs +1 -2
  47. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +33 -12
  48. package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +14 -4
  49. package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +5 -43
  50. package/esm2022/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.mjs +10 -5
  51. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +87 -28
  52. package/esm2022/libs/feature/record/src/lib/record-meta/record-meta.component.mjs +4 -2
  53. package/esm2022/libs/feature/router/src/lib/default/container/search-router.container.directive.mjs +3 -2
  54. package/esm2022/libs/feature/router/src/lib/default/router.module.mjs +2 -5
  55. package/esm2022/libs/feature/router/src/lib/default/state/query-params.utils.mjs +4 -3
  56. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +3 -2
  57. package/esm2022/libs/feature/search/src/index.mjs +1 -2
  58. package/esm2022/libs/feature/search/src/lib/facets/facets-container/facets-container.component.mjs +12 -5
  59. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +4 -100
  60. package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +9 -5
  61. package/esm2022/libs/feature/search/src/lib/records-metrics/records-metrics.component.mjs +6 -5
  62. package/esm2022/libs/feature/search/src/lib/results-hits/results-hits.container.component.mjs +9 -5
  63. package/esm2022/libs/feature/search/src/lib/results-layout/results-layout.component.mjs +7 -6
  64. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +19 -12
  65. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +2 -1
  66. package/esm2022/libs/feature/search/src/lib/sort-by/sort-by.component.mjs +7 -6
  67. package/esm2022/libs/feature/search/src/lib/state/container/search-state.container.directive.mjs +3 -2
  68. package/esm2022/libs/feature/search/src/lib/state/reducer.mjs +5 -2
  69. package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +8 -2
  70. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +4 -3
  71. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +10 -4
  72. package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +8 -2
  73. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +5 -4
  74. package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +12 -5
  75. package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +14 -4
  76. package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +4 -4
  77. package/esm2022/libs/ui/elements/src/lib/kind-badge/kind-badge.component.mjs +8 -2
  78. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +21 -46
  79. package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +7 -7
  80. package/esm2022/libs/ui/elements/src/lib/notification/notification.component.mjs +8 -2
  81. package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +1 -6
  82. package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +5 -4
  83. package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +14 -4
  84. package/esm2022/libs/ui/search/src/index.mjs +1 -3
  85. package/esm2022/libs/ui/search/src/lib/facets/facet-block/facet-block.component.mjs +14 -30
  86. package/esm2022/libs/ui/search/src/lib/facets/facet-item/facet-item.component.mjs +6 -27
  87. package/esm2022/libs/ui/search/src/lib/facets/facet-list/facet-list.component.mjs +7 -4
  88. package/esm2022/libs/ui/search/src/lib/record-metric/record-metric.component.mjs +5 -4
  89. package/esm2022/libs/ui/search/src/lib/record-preview/record-preview.component.mjs +5 -2
  90. package/esm2022/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.mjs +5 -4
  91. package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +36 -7
  92. package/esm2022/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.mjs +11 -5
  93. package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +5 -4
  94. package/esm2022/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.mjs +5 -4
  95. package/esm2022/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.mjs +5 -4
  96. package/esm2022/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.mjs +5 -4
  97. package/esm2022/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.mjs +12 -6
  98. package/esm2022/libs/ui/search/src/lib/results-list/results-layout.config.mjs +4 -2
  99. package/esm2022/libs/ui/search/src/lib/results-list/results-list.component.mjs +5 -4
  100. package/esm2022/libs/ui/search/src/lib/results-list-item/results-list-item.component.mjs +5 -3
  101. package/esm2022/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.mjs +14 -4
  102. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +3 -1
  103. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -2
  104. package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
  105. package/esm2022/libs/util/app-config/src/lib/parse-utils.mjs +5 -4
  106. package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +50 -9
  107. package/esm2022/libs/util/shared/src/index.mjs +2 -2
  108. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +12 -2
  109. package/esm2022/libs/util/shared/src/lib/record/index.mjs +3 -0
  110. package/esm2022/libs/util/shared/src/lib/record/quality-score.util.mjs +46 -0
  111. package/esm2022/libs/util/shared/src/lib/record/record.util.mjs +56 -0
  112. package/esm2022/libs/util/shared/src/lib/utils/geojson.mjs +58 -1
  113. package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
  114. package/esm2022/libs/util/shared/src/lib/utils/mobile-screen.mjs +9 -0
  115. package/esm2022/translations/de.json +59 -20
  116. package/esm2022/translations/en.json +60 -21
  117. package/esm2022/translations/es.json +46 -7
  118. package/esm2022/translations/fr.json +66 -27
  119. package/esm2022/translations/it.json +59 -20
  120. package/esm2022/translations/nl.json +46 -7
  121. package/esm2022/translations/pt.json +46 -7
  122. package/esm2022/translations/sk.json +50 -11
  123. package/fesm2022/geonetwork-ui.mjs +10701 -10561
  124. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  125. package/index.d.ts +0 -1
  126. package/index.d.ts.map +1 -1
  127. package/index.ts +0 -1
  128. package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts.map +1 -1
  129. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +1 -1
  130. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  131. package/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.d.ts.map +1 -1
  132. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +2 -2
  133. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  134. package/libs/api/repository/src/index.d.ts +1 -1
  135. package/libs/api/repository/src/index.d.ts.map +1 -1
  136. package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
  137. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -2
  138. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  139. package/libs/api/repository/src/lib/gn4/gn4.provider.d.ts.map +1 -1
  140. package/libs/api/repository/src/lib/gn4/organizations/index.d.ts +2 -3
  141. package/libs/api/repository/src/lib/gn4/organizations/index.d.ts.map +1 -1
  142. package/libs/api/repository/src/lib/gn4/organizations/organization-strategy.token.d.ts +4 -0
  143. package/libs/api/repository/src/lib/gn4/organizations/organization-strategy.token.d.ts.map +1 -0
  144. package/libs/api/repository/src/lib/gn4/organizations/organizations-service.factory.d.ts +9 -0
  145. package/libs/api/repository/src/lib/gn4/organizations/organizations-service.factory.d.ts.map +1 -0
  146. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +9 -7
  147. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  148. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts +2 -0
  149. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts.map +1 -1
  150. package/libs/api/repository/src/lib/metadata-language.token.d.ts +5 -0
  151. package/libs/api/repository/src/lib/metadata-language.token.d.ts.map +1 -0
  152. package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts +1 -0
  153. package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts.map +1 -1
  154. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +5 -1
  155. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  156. package/libs/common/domain/src/lib/platform.service.interface.d.ts +2 -0
  157. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  158. package/libs/feature/catalog/src/index.d.ts +0 -1
  159. package/libs/feature/catalog/src/index.d.ts.map +1 -1
  160. package/libs/feature/catalog/src/lib/organization-url.token.d.ts +1 -0
  161. package/libs/feature/catalog/src/lib/organization-url.token.d.ts.map +1 -1
  162. package/libs/feature/catalog/src/lib/site-title/site-title.component.d.ts +1 -1
  163. package/libs/feature/catalog/src/lib/site-title/site-title.component.d.ts.map +1 -1
  164. package/libs/feature/catalog/src/lib/source-label/source-label.component.d.ts +1 -1
  165. package/libs/feature/catalog/src/lib/source-label/source-label.component.d.ts.map +1 -1
  166. package/libs/feature/catalog/src/lib/sources/sources.service.d.ts.map +1 -1
  167. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +3 -2
  168. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  169. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  170. package/libs/feature/editor/src/index.d.ts +1 -0
  171. package/libs/feature/editor/src/index.d.ts.map +1 -1
  172. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +1 -1
  173. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
  174. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -1
  175. package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts +19 -0
  176. package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts.map +1 -0
  177. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.d.ts +20 -0
  178. 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
  179. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +1 -0
  180. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  181. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
  182. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  183. package/libs/feature/editor/src/lib/feature-editor.module.d.ts +3 -10
  184. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  185. package/libs/feature/editor/src/lib/fields.config.d.ts +8 -1
  186. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  187. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts.map +1 -1
  188. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +2 -2
  189. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  190. package/libs/feature/notifications/src/index.d.ts +0 -1
  191. package/libs/feature/notifications/src/index.d.ts.map +1 -1
  192. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +8 -4
  193. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  194. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
  195. package/libs/feature/record/src/lib/feature-record.module.d.ts +4 -11
  196. package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
  197. package/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.d.ts.map +1 -1
  198. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +12 -5
  199. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  200. package/libs/feature/record/src/lib/record-meta/record-meta.component.d.ts.map +1 -1
  201. package/libs/feature/router/src/lib/default/container/search-router.container.directive.d.ts +1 -1
  202. package/libs/feature/router/src/lib/default/container/search-router.container.directive.d.ts.map +1 -1
  203. package/libs/feature/router/src/lib/default/router.module.d.ts +4 -5
  204. package/libs/feature/router/src/lib/default/router.module.d.ts.map +1 -1
  205. package/libs/feature/router/src/lib/default/state/query-params.utils.d.ts.map +1 -1
  206. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  207. package/libs/feature/search/src/index.d.ts +0 -1
  208. package/libs/feature/search/src/index.d.ts.map +1 -1
  209. package/libs/feature/search/src/lib/facets/facets-container/facets-container.component.d.ts +1 -1
  210. package/libs/feature/search/src/lib/facets/facets-container/facets-container.component.d.ts.map +1 -1
  211. package/libs/feature/search/src/lib/feature-search.module.d.ts +3 -26
  212. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  213. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts +1 -1
  214. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts.map +1 -1
  215. package/libs/feature/search/src/lib/records-metrics/records-metrics.component.d.ts +1 -1
  216. package/libs/feature/search/src/lib/records-metrics/records-metrics.component.d.ts.map +1 -1
  217. package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts +1 -1
  218. package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts.map +1 -1
  219. package/libs/feature/search/src/lib/results-layout/results-layout.component.d.ts +1 -1
  220. package/libs/feature/search/src/lib/results-layout/results-layout.component.d.ts.map +1 -1
  221. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts +1 -1
  222. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts.map +1 -1
  223. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +1 -1
  224. package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
  225. package/libs/feature/search/src/lib/sort-by/sort-by.component.d.ts +1 -1
  226. package/libs/feature/search/src/lib/sort-by/sort-by.component.d.ts.map +1 -1
  227. package/libs/feature/search/src/lib/state/container/search-state.container.directive.d.ts +1 -1
  228. package/libs/feature/search/src/lib/state/container/search-state.container.directive.d.ts.map +1 -1
  229. package/libs/feature/search/src/lib/state/reducer.d.ts.map +1 -1
  230. package/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.d.ts.map +1 -1
  231. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -1
  232. package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
  233. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
  234. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -0
  235. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  236. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +1 -0
  237. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -1
  238. package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts.map +1 -1
  239. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -1
  240. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts.map +1 -1
  241. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +7 -7
  242. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  243. package/libs/ui/elements/src/lib/notification/notification.component.d.ts.map +1 -1
  244. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -1
  245. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts +1 -0
  246. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -1
  247. package/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.d.ts.map +1 -1
  248. package/libs/ui/search/src/index.d.ts +0 -2
  249. package/libs/ui/search/src/index.d.ts.map +1 -1
  250. package/libs/ui/search/src/lib/facets/facet-block/facet-block.component.d.ts +1 -11
  251. package/libs/ui/search/src/lib/facets/facet-block/facet-block.component.d.ts.map +1 -1
  252. package/libs/ui/search/src/lib/facets/facet-item/facet-item.component.d.ts +1 -11
  253. package/libs/ui/search/src/lib/facets/facet-item/facet-item.component.d.ts.map +1 -1
  254. package/libs/ui/search/src/lib/facets/facet-list/facet-list.component.d.ts +1 -1
  255. package/libs/ui/search/src/lib/facets/facet-list/facet-list.component.d.ts.map +1 -1
  256. package/libs/ui/search/src/lib/record-metric/record-metric.component.d.ts +1 -1
  257. package/libs/ui/search/src/lib/record-metric/record-metric.component.d.ts.map +1 -1
  258. package/libs/ui/search/src/lib/record-preview/record-preview.component.d.ts +1 -1
  259. package/libs/ui/search/src/lib/record-preview/record-preview.component.d.ts.map +1 -1
  260. package/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.d.ts +1 -1
  261. package/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.d.ts.map +1 -1
  262. package/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.d.ts +1 -1
  263. package/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.d.ts.map +1 -1
  264. package/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.d.ts +1 -1
  265. package/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.d.ts.map +1 -1
  266. package/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.d.ts +1 -1
  267. package/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.d.ts.map +1 -1
  268. package/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.d.ts +1 -1
  269. package/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.d.ts.map +1 -1
  270. package/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.d.ts +1 -1
  271. package/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.d.ts.map +1 -1
  272. package/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.d.ts +1 -1
  273. package/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.d.ts.map +1 -1
  274. package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts +1 -1
  275. package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts.map +1 -1
  276. package/libs/ui/search/src/lib/results-list/results-layout.config.d.ts +1 -1
  277. package/libs/ui/search/src/lib/results-list/results-layout.config.d.ts.map +1 -1
  278. package/libs/ui/search/src/lib/results-list/results-list.component.d.ts +1 -1
  279. package/libs/ui/search/src/lib/results-list/results-list.component.d.ts.map +1 -1
  280. package/libs/ui/search/src/lib/results-list-item/results-list-item.component.d.ts +1 -1
  281. package/libs/ui/search/src/lib/results-list-item/results-list-item.component.d.ts.map +1 -1
  282. package/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.d.ts.map +1 -1
  283. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  284. package/libs/util/app-config/src/lib/model.d.ts +1 -0
  285. package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
  286. package/libs/util/app-config/src/lib/parse-utils.d.ts.map +1 -1
  287. package/libs/util/i18n/src/lib/language-codes.d.ts +91 -31
  288. package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
  289. package/libs/util/shared/src/index.d.ts +1 -1
  290. package/libs/util/shared/src/index.d.ts.map +1 -1
  291. package/libs/util/shared/src/lib/links/link-utils.d.ts +2 -1
  292. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  293. package/libs/util/shared/src/lib/record/index.d.ts +3 -0
  294. package/libs/util/shared/src/lib/record/index.d.ts.map +1 -0
  295. package/libs/util/shared/src/lib/record/quality-score.util.d.ts +13 -0
  296. package/libs/util/shared/src/lib/record/quality-score.util.d.ts.map +1 -0
  297. package/libs/util/shared/src/lib/record/record.util.d.ts +3 -0
  298. package/libs/util/shared/src/lib/record/record.util.d.ts.map +1 -0
  299. package/libs/util/shared/src/lib/utils/geojson.d.ts +7 -2
  300. package/libs/util/shared/src/lib/utils/geojson.d.ts.map +1 -1
  301. package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
  302. package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
  303. package/libs/util/shared/src/lib/utils/mobile-screen.d.ts +2 -0
  304. package/libs/util/shared/src/lib/utils/mobile-screen.d.ts.map +1 -0
  305. package/package.json +11 -10
  306. package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +3 -6
  307. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/status.mapper.ts +3 -0
  308. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +47 -22
  309. package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +2 -2
  310. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +2 -2
  311. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +2 -2
  312. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +3 -3
  313. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.ts +3 -0
  314. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +10 -6
  315. package/src/libs/api/repository/src/index.ts +1 -1
  316. package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +4 -4
  317. package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +3 -5
  318. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +65 -14
  319. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
  320. package/src/libs/api/repository/src/lib/gn4/gn4.provider.ts +25 -0
  321. package/src/libs/api/repository/src/lib/gn4/organizations/index.ts +2 -11
  322. package/src/libs/api/repository/src/lib/gn4/organizations/organization-strategy.token.ts +10 -0
  323. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +2 -2
  324. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +2 -2
  325. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-service.factory.ts +33 -0
  326. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +60 -39
  327. package/src/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.ts +8 -0
  328. package/src/libs/api/repository/src/lib/metadata-language.token.ts +8 -0
  329. package/src/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.ts +1 -0
  330. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +21 -1
  331. package/src/libs/common/domain/src/lib/platform.service.interface.ts +3 -0
  332. package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +0 -3
  333. package/src/libs/feature/catalog/src/index.ts +0 -1
  334. package/src/libs/feature/catalog/src/lib/organization-url.token.ts +5 -0
  335. package/src/libs/feature/catalog/src/lib/site-title/site-title.component.ts +4 -0
  336. package/src/libs/feature/catalog/src/lib/source-label/source-label.component.ts +3 -0
  337. package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +2 -5
  338. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +10 -1
  339. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +3 -1
  340. package/src/libs/feature/editor/src/index.ts +1 -0
  341. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +3 -3
  342. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +8 -1
  343. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.css +0 -0
  344. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.html +37 -0
  345. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.ts +90 -0
  346. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +2 -1
  347. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.css +0 -0
  348. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.html +22 -0
  349. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.ts +57 -0
  350. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +6 -0
  351. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +5 -0
  352. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
  353. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +2 -18
  354. package/src/libs/feature/editor/src/lib/fields.config.ts +85 -3
  355. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.ts +8 -1
  356. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +8 -8
  357. package/src/libs/feature/notifications/src/index.ts +0 -1
  358. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +2 -0
  359. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +36 -15
  360. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +7 -2
  361. package/src/libs/feature/record/src/lib/feature-record.module.ts +1 -21
  362. package/src/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.ts +5 -2
  363. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +2 -0
  364. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +81 -25
  365. package/src/libs/feature/record/src/lib/record-meta/record-meta.component.ts +2 -0
  366. package/src/libs/feature/router/src/lib/default/container/search-router.container.directive.ts +1 -0
  367. package/src/libs/feature/router/src/lib/default/router.module.ts +0 -3
  368. package/src/libs/feature/router/src/lib/default/state/query-params.utils.ts +5 -2
  369. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +2 -1
  370. package/src/libs/feature/search/src/index.ts +0 -1
  371. package/src/libs/feature/search/src/lib/facets/facets-container/facets-container.component.ts +14 -1
  372. package/src/libs/feature/search/src/lib/feature-search.module.ts +0 -61
  373. package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +12 -1
  374. package/src/libs/feature/search/src/lib/records-metrics/records-metrics.component.ts +5 -0
  375. package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.ts +11 -0
  376. package/src/libs/feature/search/src/lib/results-layout/results-layout.component.ts +5 -0
  377. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +21 -1
  378. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +1 -1
  379. package/src/libs/feature/search/src/lib/sort-by/sort-by.component.ts +5 -0
  380. package/src/libs/feature/search/src/lib/state/container/search-state.container.directive.ts +1 -0
  381. package/src/libs/feature/search/src/lib/state/reducer.ts +4 -1
  382. package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.ts +4 -1
  383. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +6 -1
  384. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +4 -1
  385. package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +4 -1
  386. package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +4 -1
  387. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +12 -11
  388. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +7 -1
  389. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +4 -1
  390. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +11 -2
  391. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.ts +7 -2
  392. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +1 -0
  393. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +5 -1
  394. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.ts +8 -1
  395. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +1 -0
  396. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +21 -58
  397. package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.ts +6 -6
  398. package/src/libs/ui/elements/src/lib/notification/notification.component.ts +8 -1
  399. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +0 -6
  400. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html +7 -1
  401. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +3 -1
  402. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.ts +7 -2
  403. package/src/libs/ui/search/src/index.ts +0 -2
  404. package/src/libs/ui/search/src/lib/facets/facet-block/facet-block.component.ts +12 -11
  405. package/src/libs/ui/search/src/lib/facets/facet-item/facet-item.component.ts +5 -11
  406. package/src/libs/ui/search/src/lib/facets/facet-list/facet-list.component.ts +6 -0
  407. package/src/libs/ui/search/src/lib/record-metric/record-metric.component.ts +4 -0
  408. package/src/libs/ui/search/src/lib/record-preview/record-preview.component.ts +3 -0
  409. package/src/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.ts +4 -0
  410. package/src/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.ts +33 -1
  411. package/src/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.ts +10 -0
  412. package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.ts +4 -0
  413. package/src/libs/ui/search/src/lib/record-preview-text/record-preview-text.component.ts +4 -0
  414. package/src/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.ts +4 -0
  415. package/src/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.ts +4 -0
  416. package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.ts +11 -1
  417. package/src/libs/ui/search/src/lib/results-list/results-layout.config.ts +5 -3
  418. package/src/libs/ui/search/src/lib/results-list/results-list.component.ts +4 -0
  419. package/src/libs/ui/search/src/lib/results-list-item/results-list-item.component.ts +3 -0
  420. package/src/libs/ui/widgets/src/lib/popup-alert/popup-alert.component.ts +6 -1
  421. package/src/libs/util/app-config/src/lib/app-config.ts +2 -0
  422. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -1
  423. package/src/libs/util/app-config/src/lib/model.ts +1 -0
  424. package/src/libs/util/app-config/src/lib/parse-utils.ts +4 -7
  425. package/src/libs/util/i18n/src/lib/language-codes.ts +62 -11
  426. package/src/libs/util/shared/src/index.ts +1 -1
  427. package/src/libs/util/shared/src/lib/links/link-utils.ts +11 -1
  428. package/src/libs/util/shared/src/lib/record/index.ts +2 -0
  429. package/src/libs/util/shared/src/lib/record/quality-score.util.ts +72 -0
  430. package/src/libs/util/shared/src/lib/{record.util.ts → record/record.util.ts} +1 -1
  431. package/src/libs/util/shared/src/lib/utils/geojson.ts +72 -2
  432. package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
  433. package/src/libs/util/shared/src/lib/utils/mobile-screen.ts +14 -0
  434. package/translations/de.json +59 -20
  435. package/translations/en.json +60 -21
  436. package/translations/es.json +46 -7
  437. package/translations/fr.json +66 -27
  438. package/translations/it.json +59 -20
  439. package/translations/nl.json +46 -7
  440. package/translations/pt.json +46 -7
  441. package/translations/sk.json +50 -11
  442. package/esm2022/libs/api/repository/src/lib/metadata-language.mjs +0 -3
  443. package/esm2022/libs/feature/auth/src/index.mjs +0 -2
  444. package/esm2022/libs/feature/auth/src/lib/feature-auth.module.mjs +0 -17
  445. package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +0 -57
  446. package/esm2022/libs/feature/notifications/src/lib/feature-notifications.module.mjs +0 -18
  447. package/esm2022/libs/feature/search/src/lib/facets/facets.module.mjs +0 -21
  448. package/esm2022/libs/ui/search/src/lib/facets/facets.module.mjs +0 -23
  449. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +0 -168
  450. package/esm2022/libs/util/app-config/src/lib/constants.mjs +0 -439
  451. package/esm2022/libs/util/shared/src/lib/record.util.mjs +0 -56
  452. package/libs/api/repository/src/lib/metadata-language.d.ts +0 -3
  453. package/libs/api/repository/src/lib/metadata-language.d.ts.map +0 -1
  454. package/libs/feature/auth/src/index.d.ts +0 -2
  455. package/libs/feature/auth/src/index.d.ts.map +0 -1
  456. package/libs/feature/auth/src/lib/feature-auth.module.d.ts +0 -8
  457. package/libs/feature/auth/src/lib/feature-auth.module.d.ts.map +0 -1
  458. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts +0 -14
  459. package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +0 -1
  460. package/libs/feature/notifications/src/lib/feature-notifications.module.d.ts +0 -7
  461. package/libs/feature/notifications/src/lib/feature-notifications.module.d.ts.map +0 -1
  462. package/libs/feature/search/src/lib/facets/facets.module.d.ts +0 -11
  463. package/libs/feature/search/src/lib/facets/facets.module.d.ts.map +0 -1
  464. package/libs/ui/search/src/lib/facets/facets.module.d.ts +0 -13
  465. package/libs/ui/search/src/lib/facets/facets.module.d.ts.map +0 -1
  466. package/libs/ui/search/src/lib/ui-search.module.d.ts +0 -36
  467. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +0 -1
  468. package/libs/util/app-config/src/lib/constants.d.ts +0 -2
  469. package/libs/util/app-config/src/lib/constants.d.ts.map +0 -1
  470. package/libs/util/shared/src/lib/record.util.d.ts +0 -3
  471. package/libs/util/shared/src/lib/record.util.d.ts.map +0 -1
  472. package/src/libs/api/repository/src/lib/metadata-language.ts +0 -3
  473. package/src/libs/feature/auth/src/index.ts +0 -1
  474. package/src/libs/feature/auth/src/lib/feature-auth.module.ts +0 -12
  475. package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +0 -71
  476. package/src/libs/feature/notifications/src/lib/feature-notifications.module.ts +0 -10
  477. package/src/libs/feature/search/src/lib/facets/facets.module.ts +0 -12
  478. package/src/libs/ui/search/src/lib/facets/facets.module.ts +0 -14
  479. package/src/libs/ui/search/src/lib/ui-search.module.ts +0 -108
@@ -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
 
@@ -11,8 +11,11 @@ export function getStatusFromStatusCode(statusCode: string): RecordStatus {
11
11
  case 'onGoing':
12
12
  return 'ongoing'
13
13
  case 'planned':
14
+ return 'planned'
14
15
  case 'required':
16
+ return 'required'
15
17
  case 'underDevelopment':
18
+ return 'under_development'
16
19
  default:
17
20
  return 'under_development'
18
21
  }
@@ -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(
@@ -183,6 +183,10 @@ export function getProgressCode(status: RecordStatus): string {
183
183
  return 'removed'
184
184
  case 'under_development':
185
185
  return 'underDevelopment'
186
+ case 'planned':
187
+ return 'planned'
188
+ case 'required':
189
+ return 'required'
186
190
  default:
187
191
  throw new Error(
188
192
  `Could not determine progress code from status: ${status}`
@@ -1296,7 +1300,7 @@ export function createOnlineResource(onlineResource: ServiceOnlineResource) {
1296
1300
  }
1297
1301
 
1298
1302
  export function appendDatasetOnlineResources(
1299
- record: DatasetRecord,
1303
+ record: DatasetRecord | ReuseRecord,
1300
1304
  rootEl: XmlElement
1301
1305
  ) {
1302
1306
  appendChildren(
@@ -1315,7 +1319,7 @@ export function appendDatasetOnlineResources(
1315
1319
  }
1316
1320
 
1317
1321
  export function appendServiceOnlineResources(
1318
- record: ServiceRecord | ReuseRecord,
1322
+ record: ServiceRecord,
1319
1323
  rootEl: XmlElement
1320
1324
  ) {
1321
1325
  appendChildren(...record.onlineResources.map(createOnlineResource))(rootEl)
@@ -1327,7 +1331,7 @@ export function writeOnlineResources(
1327
1331
  ) {
1328
1332
  removeOnlineResources()(rootEl)
1329
1333
 
1330
- if (record.kind === 'dataset') {
1334
+ if (record.kind === 'dataset' || record.kind === 'reuse') {
1331
1335
  appendDatasetOnlineResources(record, rootEl)
1332
1336
  return
1333
1337
  }
@@ -1472,7 +1476,7 @@ export function writeLanguages(record: DatasetRecord, rootEl: XmlElement) {
1472
1476
  writeAttribute('id', lang.toUpperCase()),
1473
1477
  createNestedChild('gmd:languageCode', 'gmd:LanguageCode'),
1474
1478
  writeAttribute('codeList', 'http://www.loc.gov/standards/iso639-2/'),
1475
- writeAttribute('codeListValue', getLang3FromLang2(lang) ?? lang)
1479
+ writeAttribute('codeListValue', toLang3(lang) ?? lang)
1476
1480
  )
1477
1481
 
1478
1482
  // add new languages (only if other than default one)
@@ -1486,7 +1490,7 @@ export function writeDefaultLanguage(
1486
1490
  record: DatasetRecord,
1487
1491
  rootEl: XmlElement
1488
1492
  ) {
1489
- const lang3 = getLang3FromLang2(record.defaultLanguage.toLowerCase())
1493
+ const lang3 = toLang3(record.defaultLanguage.toLowerCase())
1490
1494
  return pipe(
1491
1495
  findNestedChildOrCreate('gmd:language', 'gmd:LanguageCode'),
1492
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
 
@@ -10,14 +10,12 @@ export const ES_SOURCE_SUMMARY = [
10
10
  'codelist_status_text',
11
11
  'link',
12
12
  'linkProtocol',
13
- 'contactForResource.organisation',
14
- 'contact.organisation',
15
- 'contact.email',
13
+ 'contactForResource*.organisation*',
14
+ 'contact*.organisation*',
15
+ 'contact*.email',
16
16
  'userSavedCount',
17
- 'updateFrequency',
18
17
  'cl_topic',
19
18
  'cl_maintenanceAndUpdateFrequency',
20
- 'tag',
21
19
  'MD_LegalConstraints*Object',
22
20
  'qualityScore',
23
21
  'allKeywords',
@@ -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,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
 
@@ -55,6 +55,7 @@ export class Gn4PlatformService implements PlatformServiceInterface {
55
55
  private readonly me$: Observable<UserModel>
56
56
  private readonly users$: Observable<UserModel[]>
57
57
  private readonly isUserAnonymous$: Observable<boolean>
58
+ private readonly gnParseVersion = '4.2.5'
58
59
 
59
60
  private keyTranslations$ = this.toolsApiService
60
61
  .getTranslationsPackage1('gnui')
@@ -65,31 +66,6 @@ export class Gn4PlatformService implements PlatformServiceInterface {
65
66
  }),
66
67
  shareReplay(1)
67
68
  )
68
-
69
- private settings$ = of(true).pipe(
70
- switchMap(() => this.siteApiService.getSiteOrPortalDescription()),
71
- shareReplay(1)
72
- )
73
-
74
- private readonly apiVersion$ = this.settings$.pipe(
75
- map((info) => info['system/platform/version'] as string),
76
- tap((version) => {
77
- if (ltr(version, minApiVersion)) {
78
- throw new Error(
79
- `Gn4 API version is not compatible.\nMinimum: ${minApiVersion}\nYour version: ${version}`
80
- )
81
- }
82
- }),
83
- shareReplay(1)
84
- )
85
-
86
- private readonly allowEditHarvestedMd$ = this.settings$.pipe(
87
- map((info) => {
88
- return info['system/harvester/enableEditing'] as boolean
89
- }),
90
- shareReplay(1)
91
- )
92
-
93
69
  /**
94
70
  * A map of already loaded thesauri (groups of keywords); the key is a URI
95
71
  * @private
@@ -97,11 +73,10 @@ export class Gn4PlatformService implements PlatformServiceInterface {
97
73
  private keywordsByThesauri: Record<string, Observable<Keyword[]>> = {}
98
74
 
99
75
  private get lang3() {
100
- return getLang3FromLang2(this.translateService.currentLang)
76
+ return toLang3(this.translateService.currentLang)
101
77
  }
102
78
 
103
79
  constructor(
104
- private siteApiService: SiteApiService,
105
80
  private meApi: MeApiService,
106
81
  private usersApi: UsersApiService,
107
82
  private mapper: Gn4PlatformMapper,
@@ -110,7 +85,8 @@ export class Gn4PlatformService implements PlatformServiceInterface {
110
85
  private translateService: TranslateService,
111
86
  private userfeedbackApiService: UserfeedbackApiService,
112
87
  private httpClient: HttpClient,
113
- private recordsApiService: RecordsApiService
88
+ private recordsApiService: RecordsApiService,
89
+ private settingsService: Gn4SettingsService
114
90
  ) {
115
91
  this.me$ = this.meApi.getMe().pipe(
116
92
  switchMap((apiUser) => this.mapper.userFromMeApi(apiUser)),
@@ -127,16 +103,28 @@ export class Gn4PlatformService implements PlatformServiceInterface {
127
103
  )
128
104
  }
129
105
 
106
+ getFeedbacksAllowed(): Observable<boolean> {
107
+ return this.settingsService.allowFeedbacks$
108
+ }
109
+
110
+ getAllowEditHarvestedMd(): Observable<boolean> {
111
+ return this.settingsService.allowEditHarvested$
112
+ }
113
+
130
114
  getType(): string {
131
115
  return this.type
132
116
  }
133
117
 
134
118
  getApiVersion(): Observable<string> {
135
- return this.apiVersion$
136
- }
137
-
138
- getAllowEditHarvestedMd(): Observable<boolean> {
139
- 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
+ )
140
128
  }
141
129
 
142
130
  getMe(): Observable<UserModel> {
@@ -323,10 +311,15 @@ export class Gn4PlatformService implements PlatformServiceInterface {
323
311
  ...(Array.isArray(onlines) ? onlines : []),
324
312
  ...(Array.isArray(thumbnails) ? thumbnails : []),
325
313
  ].map((resource) => Object.values(resource.url)[0])
326
-
327
- const fileToDelete = attachments
328
- .filter((attachment) => !urlsToKeep.includes(attachment.url))
329
- .map((attachment) => attachment.filename)
314
+ const fileToDelete = attachments.reduce<string[]>((acc, attachment) => {
315
+ if (
316
+ !urlsToKeep.includes(attachment.url) &&
317
+ attachment.filename !== 'datavizConfig.json'
318
+ ) {
319
+ acc.push(attachment.filename)
320
+ }
321
+ return acc
322
+ }, [])
330
323
 
331
324
  return fileToDelete
332
325
  }),
@@ -384,6 +377,34 @@ export class Gn4PlatformService implements PlatformServiceInterface {
384
377
  })
385
378
  )
386
379
  }
380
+ getFileContent(url: URL | string): Observable<any> {
381
+ return combineLatest([
382
+ this.httpClient.get(url.toString(), { responseType: 'text' }),
383
+ this.getApiVersion(),
384
+ ]).pipe(
385
+ map(([text, version]) => {
386
+ const parsed = JSON.parse(text)
387
+
388
+ if (version > this.gnParseVersion) {
389
+ return parsed
390
+ }
391
+
392
+ const decoded = this.decodeBase64(parsed)
393
+ return JSON.parse(decoded)
394
+ })
395
+ )
396
+ }
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
+ }
387
408
 
388
409
  attachFileToRecord(
389
410
  recordUuid: string,
@@ -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')
@@ -24,4 +24,5 @@ export interface DatavizConfigModel {
24
24
  view: string
25
25
  source: DatasetOnlineResource
26
26
  chartConfig?: DatavizChartConfigModel
27
+ styleTMSIndex: number
27
28
  }