geonetwork-ui 2.7.0-dev.dbe423d28 → 2.7.0-dev.ed54e0aff

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 (242) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.mjs +4 -7
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +20 -20
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.mjs +3 -3
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +3 -3
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +3 -3
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +4 -4
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.mjs +4 -1
  8. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +9 -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/constant.mjs +4 -6
  12. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +55 -12
  13. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +3 -3
  14. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +3 -3
  15. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +3 -3
  16. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +52 -24
  17. package/esm2022/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.mjs +3 -1
  18. package/esm2022/libs/api/repository/src/lib/metadata-language.token.mjs +3 -0
  19. package/esm2022/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.mjs +1 -1
  20. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +15 -1
  21. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  22. package/esm2022/libs/feature/catalog/src/lib/sources/sources.service.mjs +3 -3
  23. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +10 -2
  24. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +2 -2
  25. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  26. package/esm2022/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.mjs +80 -0
  27. package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +3 -3
  28. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.mjs +55 -0
  29. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +8 -3
  30. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -1
  31. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +77 -3
  32. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +3 -5
  33. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +31 -12
  34. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +76 -27
  35. package/esm2022/libs/feature/router/src/lib/default/state/query-params.utils.mjs +4 -3
  36. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +3 -2
  37. package/esm2022/libs/feature/search/src/lib/state/reducer.mjs +5 -2
  38. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +4 -3
  39. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
  40. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +5 -4
  41. package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +5 -4
  42. package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +4 -4
  43. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +21 -46
  44. package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +7 -7
  45. package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +1 -6
  46. package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +5 -4
  47. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +5 -1
  48. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -2
  49. package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
  50. package/esm2022/libs/util/app-config/src/lib/parse-utils.mjs +5 -4
  51. package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +50 -9
  52. package/esm2022/libs/util/shared/src/index.mjs +2 -2
  53. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +12 -2
  54. package/esm2022/libs/util/shared/src/lib/record/index.mjs +3 -0
  55. package/esm2022/libs/util/shared/src/lib/record/quality-score.util.mjs +46 -0
  56. package/esm2022/libs/util/shared/src/lib/record/record.util.mjs +56 -0
  57. package/esm2022/libs/util/shared/src/lib/utils/geojson.mjs +58 -1
  58. package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
  59. package/esm2022/libs/util/shared/src/lib/utils/mobile-screen.mjs +9 -0
  60. package/esm2022/translations/de.json +60 -21
  61. package/esm2022/translations/en.json +61 -22
  62. package/esm2022/translations/es.json +47 -8
  63. package/esm2022/translations/fr.json +66 -27
  64. package/esm2022/translations/it.json +60 -21
  65. package/esm2022/translations/nl.json +47 -8
  66. package/esm2022/translations/pt.json +47 -8
  67. package/esm2022/translations/sk.json +51 -12
  68. package/fesm2022/geonetwork-ui.mjs +3337 -2966
  69. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  70. package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts.map +1 -1
  71. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +1 -1
  72. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  73. package/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.d.ts.map +1 -1
  74. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +2 -2
  75. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  76. package/libs/api/repository/src/index.d.ts +1 -1
  77. package/libs/api/repository/src/index.d.ts.map +1 -1
  78. package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
  79. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -2
  80. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  81. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +9 -7
  82. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  83. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts +2 -0
  84. package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts.map +1 -1
  85. package/libs/api/repository/src/lib/metadata-language.token.d.ts +5 -0
  86. package/libs/api/repository/src/lib/metadata-language.token.d.ts.map +1 -0
  87. package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts +1 -0
  88. package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts.map +1 -1
  89. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +5 -1
  90. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  91. package/libs/common/domain/src/lib/platform.service.interface.d.ts +2 -0
  92. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  93. package/libs/feature/catalog/src/lib/sources/sources.service.d.ts.map +1 -1
  94. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +3 -2
  95. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  96. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  97. package/libs/feature/editor/src/index.d.ts +1 -0
  98. package/libs/feature/editor/src/index.d.ts.map +1 -1
  99. package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts +19 -0
  100. package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts.map +1 -0
  101. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.d.ts +20 -0
  102. 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
  103. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +1 -0
  104. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  105. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
  106. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  107. package/libs/feature/editor/src/lib/fields.config.d.ts +8 -1
  108. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  109. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +2 -2
  110. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  111. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +8 -4
  112. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  113. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +12 -5
  114. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  115. package/libs/feature/router/src/lib/default/state/query-params.utils.d.ts.map +1 -1
  116. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  117. package/libs/feature/search/src/lib/state/reducer.d.ts.map +1 -1
  118. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -1
  119. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -0
  120. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  121. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +1 -0
  122. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -1
  123. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -1
  124. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +7 -7
  125. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  126. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -1
  127. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts +1 -0
  128. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -1
  129. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  130. package/libs/util/app-config/src/lib/model.d.ts +2 -0
  131. package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
  132. package/libs/util/app-config/src/lib/parse-utils.d.ts.map +1 -1
  133. package/libs/util/i18n/src/lib/language-codes.d.ts +91 -31
  134. package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
  135. package/libs/util/shared/src/index.d.ts +1 -1
  136. package/libs/util/shared/src/index.d.ts.map +1 -1
  137. package/libs/util/shared/src/lib/links/link-utils.d.ts +2 -1
  138. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  139. package/libs/util/shared/src/lib/record/index.d.ts +3 -0
  140. package/libs/util/shared/src/lib/record/index.d.ts.map +1 -0
  141. package/libs/util/shared/src/lib/record/quality-score.util.d.ts +13 -0
  142. package/libs/util/shared/src/lib/record/quality-score.util.d.ts.map +1 -0
  143. package/libs/util/shared/src/lib/record/record.util.d.ts +3 -0
  144. package/libs/util/shared/src/lib/record/record.util.d.ts.map +1 -0
  145. package/libs/util/shared/src/lib/utils/geojson.d.ts +7 -2
  146. package/libs/util/shared/src/lib/utils/geojson.d.ts.map +1 -1
  147. package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
  148. package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
  149. package/libs/util/shared/src/lib/utils/mobile-screen.d.ts +2 -0
  150. package/libs/util/shared/src/lib/utils/mobile-screen.d.ts.map +1 -0
  151. package/package.json +11 -10
  152. package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +3 -6
  153. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/status.mapper.ts +3 -0
  154. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +47 -22
  155. package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +2 -2
  156. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +2 -2
  157. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +2 -2
  158. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +3 -3
  159. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.ts +3 -0
  160. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +10 -6
  161. package/src/libs/api/repository/src/index.ts +1 -1
  162. package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +4 -4
  163. package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +3 -5
  164. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +65 -14
  165. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
  166. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +2 -2
  167. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +2 -2
  168. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +60 -39
  169. package/src/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.ts +8 -0
  170. package/src/libs/api/repository/src/lib/metadata-language.token.ts +8 -0
  171. package/src/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.ts +1 -0
  172. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +21 -1
  173. package/src/libs/common/domain/src/lib/platform.service.interface.ts +3 -0
  174. package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +0 -3
  175. package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +2 -5
  176. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +10 -1
  177. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +3 -1
  178. package/src/libs/feature/editor/src/index.ts +1 -0
  179. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.css +0 -0
  180. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.html +37 -0
  181. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.ts +90 -0
  182. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +2 -1
  183. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.css +0 -0
  184. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.html +22 -0
  185. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.ts +57 -0
  186. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +6 -0
  187. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +5 -0
  188. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
  189. package/src/libs/feature/editor/src/lib/fields.config.ts +85 -3
  190. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +8 -8
  191. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +2 -0
  192. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +34 -15
  193. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +2 -0
  194. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +70 -23
  195. package/src/libs/feature/router/src/lib/default/state/query-params.utils.ts +5 -2
  196. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +2 -1
  197. package/src/libs/feature/search/src/lib/state/reducer.ts +4 -1
  198. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +6 -1
  199. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +4 -1
  200. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +12 -11
  201. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +7 -1
  202. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +4 -1
  203. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +7 -1
  204. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +1 -0
  205. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +5 -1
  206. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +1 -0
  207. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +21 -58
  208. package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.ts +6 -6
  209. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +0 -6
  210. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html +7 -1
  211. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +3 -1
  212. package/src/libs/util/app-config/src/lib/app-config.ts +4 -0
  213. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -1
  214. package/src/libs/util/app-config/src/lib/model.ts +2 -0
  215. package/src/libs/util/app-config/src/lib/parse-utils.ts +4 -7
  216. package/src/libs/util/i18n/src/lib/language-codes.ts +62 -11
  217. package/src/libs/util/shared/src/index.ts +1 -1
  218. package/src/libs/util/shared/src/lib/links/link-utils.ts +11 -1
  219. package/src/libs/util/shared/src/lib/record/index.ts +2 -0
  220. package/src/libs/util/shared/src/lib/record/quality-score.util.ts +72 -0
  221. package/src/libs/util/shared/src/lib/{record.util.ts → record/record.util.ts} +1 -1
  222. package/src/libs/util/shared/src/lib/utils/geojson.ts +72 -2
  223. package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
  224. package/src/libs/util/shared/src/lib/utils/mobile-screen.ts +14 -0
  225. package/translations/de.json +60 -21
  226. package/translations/en.json +61 -22
  227. package/translations/es.json +47 -8
  228. package/translations/fr.json +66 -27
  229. package/translations/it.json +60 -21
  230. package/translations/nl.json +47 -8
  231. package/translations/pt.json +47 -8
  232. package/translations/sk.json +51 -12
  233. package/esm2022/libs/api/repository/src/lib/metadata-language.mjs +0 -3
  234. package/esm2022/libs/util/app-config/src/lib/constants.mjs +0 -439
  235. package/esm2022/libs/util/shared/src/lib/record.util.mjs +0 -56
  236. package/libs/api/repository/src/lib/metadata-language.d.ts +0 -3
  237. package/libs/api/repository/src/lib/metadata-language.d.ts.map +0 -1
  238. package/libs/util/app-config/src/lib/constants.d.ts +0 -2
  239. package/libs/util/app-config/src/lib/constants.d.ts.map +0 -1
  240. package/libs/util/shared/src/lib/record.util.d.ts +0 -3
  241. package/libs/util/shared/src/lib/record.util.d.ts.map +0 -1
  242. package/src/libs/api/repository/src/lib/metadata-language.ts +0 -3
@@ -4,7 +4,10 @@ import {
4
4
  EditorField,
5
5
  EditorSection,
6
6
  } from './models/editor-config.model'
7
- import { Keyword } from '../../../../../libs/common/domain/src/lib/model/record'
7
+ import {
8
+ INSPIRE_theme,
9
+ Keyword,
10
+ } from '../../../../../libs/common/domain/src/lib/model/record'
8
11
 
9
12
  /**
10
13
  * This file contains the configuration of the fields that will be displayed in the editor.
@@ -63,8 +66,11 @@ export const RECORD_KEYWORDS_FIELD: EditorField = {
63
66
  model: 'keywords',
64
67
  formFieldConfig: {},
65
68
  }
66
- // keeping track of the label to not lose existing translation
67
- marker('editor.record.form.field.keywords')
69
+
70
+ export const RECORD_TOPICS_FIELD: EditorField = {
71
+ model: 'topics',
72
+ formFieldConfig: {},
73
+ }
68
74
 
69
75
  export const RECORD_RESOURCE_CREATED_FIELD: EditorField = {
70
76
  model: 'resourceCreated',
@@ -237,6 +243,13 @@ export const CLASSIFICATION_SECTION: EditorSection = {
237
243
  fields: [RECORD_KEYWORDS_FIELD],
238
244
  }
239
245
 
246
+ export const INSPIRE_SECTION: EditorSection = {
247
+ labelKey: marker('editor.record.form.section.inspire.label'),
248
+ descriptionKey: marker('editor.record.form.section.inspire.description'),
249
+ hidden: false,
250
+ fields: [RECORD_TOPICS_FIELD],
251
+ }
252
+
240
253
  export const USE_AND_ACCESS_CONDITIONS_SECTION: EditorSection = {
241
254
  labelKey: marker('editor.record.form.section.useAndAccessConditions.label'),
242
255
  hidden: false,
@@ -276,6 +289,7 @@ export const DEFAULT_CONFIGURATION: EditorConfig = {
276
289
  sections: [
277
290
  TITLE_SECTION,
278
291
  CLASSIFICATION_SECTION,
292
+ INSPIRE_SECTION,
279
293
  ABOUT_SECTION,
280
294
  GEOGRAPHICAL_COVERAGE_SECTION,
281
295
  ],
@@ -343,3 +357,71 @@ export const SPATIAL_SCOPES: Keyword[] = [
343
357
  type: 'theme',
344
358
  },
345
359
  ]
360
+
361
+ /************************************************************
362
+ *************** INSPIRE THEMES **************
363
+ ************************************************************
364
+ */
365
+
366
+ export const INSPIRE_THEMES: INSPIRE_theme[] = [
367
+ { value: 'biota', label: 'editor.record.form.inspire.biota' },
368
+ { value: 'boundaries', label: 'editor.record.form.inspire.boundaries' },
369
+ {
370
+ value: 'climatologyMeteorologyAtmosphere',
371
+ label: 'editor.record.form.inspire.climatology',
372
+ },
373
+ { value: 'economy', label: 'editor.record.form.inspire.economy' },
374
+ { value: 'elevation', label: 'editor.record.form.inspire.elevation' },
375
+ { value: 'environment', label: 'editor.record.form.inspire.environnement' },
376
+ { value: 'farming', label: 'editor.record.form.inspire.farming' },
377
+ {
378
+ value: 'geoscientific information',
379
+ label: 'editor.record.form.inspire.geoscientific',
380
+ },
381
+ { value: 'health', label: 'editor.record.form.inspire.health' },
382
+ {
383
+ value: 'imageryBaseMapsEarthCover',
384
+ label: 'editor.record.form.inspire.imagery',
385
+ },
386
+ { value: 'inlandWaters', label: 'editor.record.form.inspire.waters' },
387
+ {
388
+ value: 'intelligenceMilitary',
389
+ label: 'editor.record.form.inspire.intelligence',
390
+ },
391
+ { value: 'Location', label: 'editor.record.form.inspire.location' },
392
+ { value: 'Oceans', label: 'editor.record.form.inspire.oceans' },
393
+ {
394
+ value: 'planningCadastre',
395
+ label: 'editor.record.form.inspire.planning',
396
+ },
397
+ { value: 'Society', label: 'editor.record.form.inspire.society' },
398
+ { value: 'Structure', label: 'editor.record.form.inspire.structure' },
399
+ {
400
+ value: 'Transportation',
401
+ label: 'editor.record.form.inspire.transportation',
402
+ },
403
+ {
404
+ value: 'utilitiesCommunication',
405
+ label: 'editor.record.form.inspire.utilities',
406
+ },
407
+ ]
408
+
409
+ marker('editor.record.form.inspire.biota')
410
+ marker('editor.record.form.inspire.boundaries')
411
+ marker('editor.record.form.inspire.climatology')
412
+ marker('editor.record.form.inspire.economy')
413
+ marker('editor.record.form.inspire.elevation')
414
+ marker('editor.record.form.inspire.environnement')
415
+ marker('editor.record.form.inspire.farming')
416
+ marker('editor.record.form.inspire.geoscientific')
417
+ marker('editor.record.form.inspire.health')
418
+ marker('editor.record.form.inspire.imagery')
419
+ marker('editor.record.form.inspire.intelligence')
420
+ marker('editor.record.form.inspire.location')
421
+ marker('editor.record.form.inspire.oceans')
422
+ marker('editor.record.form.inspire.planning')
423
+ marker('editor.record.form.inspire.society')
424
+ marker('editor.record.form.inspire.structure')
425
+ marker('editor.record.form.inspire.transportation')
426
+ marker('editor.record.form.inspire.utilities')
427
+ marker('editor.record.form.inspire.waters')
@@ -1,25 +1,25 @@
1
1
  import { Injectable } from '@angular/core'
2
- import { extend, Extent } from 'ol/extent'
3
- import GeoJSON from 'ol/format/GeoJSON'
2
+ import { extend } from 'ol/extent'
4
3
  import { CatalogRecord } from '../../../../../../libs/common/domain/src/lib/model/record'
5
-
6
- const GEOJSON = new GeoJSON()
4
+ import { BoundingBox, getGeometryBoundingBox } from '../../../../../../libs/util/shared/src'
7
5
 
8
6
  @Injectable({
9
7
  providedIn: 'root',
10
8
  })
11
9
  export class MapUtilsService {
12
- getRecordExtent(record: Partial<CatalogRecord>): Extent {
10
+ getRecordExtent(record: Partial<CatalogRecord>): BoundingBox {
13
11
  if (!('spatialExtents' in record) || record.spatialExtents.length === 0) {
14
12
  return null
15
13
  }
16
14
  // extend all the spatial extents into an including bbox
17
15
  return record.spatialExtents.reduce(
18
16
  (prev, curr) => {
19
- if ('bbox' in curr) return extend(prev, curr.bbox)
17
+ if ('bbox' in curr) return extend(prev, curr.bbox) as BoundingBox
20
18
  else if ('geometry' in curr) {
21
- const geom = GEOJSON.readGeometry(curr.geometry)
22
- return extend(prev, geom.getExtent())
19
+ return extend(
20
+ prev,
21
+ getGeometryBoundingBox(curr.geometry)
22
+ ) as BoundingBox
23
23
  }
24
24
  return prev
25
25
  },
@@ -9,6 +9,7 @@
9
9
  class="h-[44px] w-full"
10
10
  extraBtnClass="font-sans font-bold"
11
11
  [choices]="choices"
12
+ [selected]="_selectedChoice"
12
13
  (selectValue)="selectLink($event)"
13
14
  ></gn-ui-dropdown-selector>
14
15
  </div>
@@ -35,6 +36,7 @@
35
36
  [cacheActive]="cacheActive$ | async"
36
37
  [link]="selectedLink$ | async"
37
38
  [featureCatalog]="mdViewFacade.featureCatalog$ | async"
39
+ [userChartConfig]="_chartConfig"
38
40
  ></gn-ui-chart-view>
39
41
  </div>
40
42
  </ng-template>
@@ -5,15 +5,16 @@ import {
5
5
  Input,
6
6
  Output,
7
7
  } from '@angular/core'
8
- import { getLinkLabel, getLinkPriority } from '../../../../../../libs/util/shared/src'
8
+ import {
9
+ getLinkId,
10
+ getLinkLabel,
11
+ getLinkPriority,
12
+ } from '../../../../../../libs/util/shared/src'
9
13
  import { BehaviorSubject, combineLatest } from 'rxjs'
10
14
  import { map, tap } from 'rxjs/operators'
11
15
  import { MdViewFacade } from '../state'
12
16
  import { DatavizChartConfigModel } from '../../../../../../libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model'
13
- import {
14
- DatasetOnlineResource,
15
- DatasetServiceDistribution,
16
- } from '../../../../../../libs/common/domain/src/lib/model/record'
17
+ import { DatasetOnlineResource } from '../../../../../../libs/common/domain/src/lib/model/record'
17
18
  import { DropdownSelectorComponent } from '../../../../../../libs/ui/inputs/src'
18
19
  import {
19
20
  ChartViewComponent,
@@ -45,13 +46,28 @@ export class DataViewComponent {
45
46
  @Input() set exceedsLimit(value: boolean) {
46
47
  this.excludeWfs$.next(value)
47
48
  }
49
+ linkMap: Map<string, DatasetOnlineResource> = new Map()
48
50
  _selectedView = ''
51
+ _chartConfig = null
52
+ _selectedChoice = null
49
53
  @Input() set selectedView(value: string) {
50
54
  this._selectedView = value
51
- if (value !== 'map') {
55
+ if (this.mode === value) {
52
56
  this.linkSelected.emit(this.selectedLink$.value)
53
57
  }
54
58
  }
59
+ @Input() set datavizConfig(value: any) {
60
+ this._selectedView = value.view
61
+ if (this.mode === value.view) {
62
+ if (!value.source) {
63
+ this.linkSelected.emit(this.selectedLink$.value)
64
+ } else {
65
+ this._chartConfig = value.chartConfig
66
+ this._selectedChoice = getLinkId(value.source)
67
+ this.selectedLink$.next(value.source)
68
+ }
69
+ }
70
+ }
55
71
  @Output() chartConfig$ = new BehaviorSubject<DatavizChartConfigModel>(null)
56
72
  @Output() linkSelected = new EventEmitter<DatasetOnlineResource>()
57
73
  cacheActive$ = this.mdViewFacade.isHighUpdateFrequency$.pipe(
@@ -69,15 +85,19 @@ export class DataViewComponent {
69
85
  })
70
86
  )
71
87
  dropdownChoices$ = this.compatibleDataLinks$.pipe(
72
- tap((links) => {
73
- if (links.indexOf(this.selectedLink$.value) === -1) {
74
- this.selectLink(JSON.stringify(links[0]))
88
+ tap((links: DatasetOnlineResource[]) => {
89
+ this.linkMap.clear()
90
+ links.forEach((link: DatasetOnlineResource) =>
91
+ this.linkMap.set(getLinkId(link), link)
92
+ )
93
+ if (!links.some((l) => l.url === this.selectedLink$.value?.url)) {
94
+ this.selectLink(getLinkId(links[0]))
75
95
  }
76
96
  }),
77
97
  map((links) =>
78
- links.map((link) => ({
98
+ links.map((link: DatasetOnlineResource) => ({
79
99
  label: getLinkLabel(link),
80
- value: JSON.stringify(link),
100
+ value: getLinkId(link),
81
101
  }))
82
102
  )
83
103
  )
@@ -93,12 +113,11 @@ export class DataViewComponent {
93
113
  this.mdViewFacade.setChartConfig(event)
94
114
  }
95
115
 
96
- selectLink(linkAsString: string) {
97
- const link: DatasetOnlineResource = JSON.parse(linkAsString)
98
- if (this._selectedView && this._selectedView !== 'map') {
116
+ selectLink(linkId: string) {
117
+ const link = this.linkMap.get(linkId)
118
+ if (this._selectedView && this._selectedView === this.mode) {
99
119
  this.linkSelected.emit(link)
100
120
  }
101
- link.url = new URL(link.url)
102
121
  this.selectedLink$.next(link)
103
122
  }
104
123
  }
@@ -8,6 +8,7 @@
8
8
  extraBtnClass="font-sans font-bold"
9
9
  [title]="'map.select.layer' | translate"
10
10
  [choices]="dropdownChoices$ | async"
11
+ [selected]="_selectedChoice"
11
12
  (selectValue)="selectLinkToDisplay($event)"
12
13
  ></gn-ui-dropdown-selector>
13
14
 
@@ -17,6 +18,7 @@
17
18
  extraBtnClass="font-sans font-bold"
18
19
  [title]="'map.select.style' | translate"
19
20
  [choices]="styleDropdownChoices$ | async"
21
+ [selected]="_styleFromConfig"
20
22
  (selectValue)="selectStyleToDisplay($event)"
21
23
  ></gn-ui-dropdown-selector>
22
24
  </ng-container>
@@ -9,7 +9,7 @@ import {
9
9
  ViewChild,
10
10
  } from '@angular/core'
11
11
  import { MapUtilsService } from '../../../../../../libs/feature/map/src'
12
- import { getLinkLabel } from '../../../../../../libs/util/shared/src'
12
+ import { getLinkId, getLinkLabel } from '../../../../../../libs/util/shared/src'
13
13
  import {
14
14
  BehaviorSubject,
15
15
  combineLatest,
@@ -100,15 +100,28 @@ export class MapViewComponent implements AfterViewInit {
100
100
  @Input() set exceedsLimit(value: boolean) {
101
101
  this.excludeWfs$.next(value)
102
102
  }
103
+ linkFromConfig$ = new BehaviorSubject(null)
104
+ _selectedChoice = null
105
+ _styleFromConfig = null
106
+
107
+ linkMap: Map<string, DatasetOnlineResource> = new Map()
103
108
  @Input() set selectedView(value: string) {
104
- if (value === 'map') {
105
- this.selectedLink$.pipe(take(1)).subscribe((link) => {
106
- this.linkSelected.emit(link)
107
- })
109
+ this.selectedView$.next(value)
110
+ }
111
+ @Input() set datavizConfig(value: any) {
112
+ if (value.view === 'map') {
113
+ this.selectedView$.next(value.view)
114
+ if (value.styleTMSIndex) {
115
+ this._styleFromConfig = value.styleTMSIndex
116
+ }
117
+ if (value.source) {
118
+ this.linkFromConfig$.next(value.source)
119
+ }
108
120
  }
109
121
  }
110
122
  @Input() displaySource = true
111
123
  @Output() linkSelected = new EventEmitter<DatasetOnlineResource>()
124
+ @Output() styleSelected = new EventEmitter<number>()
112
125
  @ViewChild('mapContainer') mapContainer: MapContainerComponent
113
126
 
114
127
  excludeWfs$ = new BehaviorSubject(false)
@@ -119,12 +132,13 @@ export class MapViewComponent implements AfterViewInit {
119
132
  loading = false
120
133
  error = null
121
134
 
122
- selectLinkToDisplay(i: number) {
123
- this.selectedLinkIndex$.next(i)
135
+ selectLinkToDisplay(id: string) {
136
+ this.selectedLinkId$.next(id)
124
137
  }
125
138
 
126
139
  selectStyleToDisplay(i: number) {
127
- this.selectedStyleIndex$.next(i)
140
+ this.selectedStyleId$.next(i)
141
+ this.styleSelected.emit(i)
128
142
  }
129
143
 
130
144
  toggleLegend() {
@@ -146,29 +160,54 @@ export class MapViewComponent implements AfterViewInit {
146
160
  )
147
161
 
148
162
  dropdownChoices$ = this.compatibleMapLinks$.pipe(
149
- map((links) =>
150
- links.length
151
- ? links.map((link, index) => ({
163
+ map((links) => {
164
+ this.linkMap.clear()
165
+ links.forEach((link: DatasetOnlineResource) =>
166
+ this.linkMap.set(getLinkId(link), link)
167
+ )
168
+ return links.length
169
+ ? links.map((link) => ({
152
170
  label: getLinkLabel(link),
153
- value: index,
171
+ value: getLinkId(link),
154
172
  }))
155
- : [{ label: 'map.dropdown.placeholder', value: 0 }]
156
- )
173
+ : [{ label: 'map.dropdown.placeholder', value: '' }]
174
+ })
157
175
  )
158
176
 
159
- selectedLinkIndex$ = new BehaviorSubject(0)
160
- private selectedStyleIndex$ = new BehaviorSubject(0)
177
+ selectedView$ = new BehaviorSubject(null)
178
+ selectedLinkId$ = new BehaviorSubject(null)
179
+ selectedStyleId$ = new BehaviorSubject(null)
161
180
 
162
181
  selectedSourceLink$ = combineLatest([
163
182
  this.compatibleMapLinks$,
164
- this.selectedLinkIndex$.pipe(distinctUntilChanged()),
183
+ this.linkFromConfig$,
184
+ this.selectedLinkId$.pipe(distinctUntilChanged()),
185
+ this.selectedView$,
165
186
  ]).pipe(
166
187
  tap(() => {
167
188
  this.error = null
168
189
  }),
169
- map(([links, index]) => {
170
- this.linkSelected.emit(links[index])
171
- return links[index]
190
+ map(([compatibleLinks, configLink, id, view]) => {
191
+ if (view === 'map') {
192
+ if (
193
+ configLink &&
194
+ !id &&
195
+ compatibleLinks.some(
196
+ (link) => getLinkId(link) === getLinkId(configLink)
197
+ )
198
+ ) {
199
+ this._selectedChoice = getLinkId(configLink)
200
+ this.linkSelected.emit(configLink)
201
+ return configLink
202
+ } else if (id) {
203
+ this._selectedChoice = id
204
+ this.linkSelected.emit(this.linkMap.get(id))
205
+ return this.linkMap.get(id)
206
+ } else {
207
+ this.linkSelected.emit(compatibleLinks[0])
208
+ return compatibleLinks[0]
209
+ }
210
+ }
172
211
  })
173
212
  )
174
213
 
@@ -205,7 +244,13 @@ export class MapViewComponent implements AfterViewInit {
205
244
  }
206
245
  return of([])
207
246
  }),
208
- tap(() => this.selectedStyleIndex$.next(0)),
247
+ tap((styles) => {
248
+ if (this._styleFromConfig && this._styleFromConfig <= styles.length) {
249
+ this.selectedStyleId$.next(this._styleFromConfig)
250
+ } else {
251
+ this.selectedStyleId$.next(0)
252
+ }
253
+ }),
209
254
  shareReplay(1)
210
255
  )
211
256
 
@@ -228,7 +273,7 @@ export class MapViewComponent implements AfterViewInit {
228
273
  selectedLink$ = combineLatest([
229
274
  this.selectedSourceLink$,
230
275
  this.styleLinks$,
231
- this.selectedStyleIndex$.pipe(distinctUntilChanged()),
276
+ this.selectedStyleId$.pipe(distinctUntilChanged()),
232
277
  ]).pipe(
233
278
  map(([src, styles, styleIdx]) => (styles.length ? styles[styleIdx] : src)),
234
279
  shareReplay(1)
@@ -344,7 +389,9 @@ export class MapViewComponent implements AfterViewInit {
344
389
  ) {
345
390
  // FIXME: here we're assuming that the TMS serves vector tiles only; should be checked with ogc-client first
346
391
  return of({
347
- url: link.url.toString().replace(/\/?$/, '/{z}/{x}/{y}.pbf'),
392
+ url: link.url
393
+ .toString()
394
+ .replace(/\/?$/, `/${link.name}/{z}/{x}/{y}.pbf`),
348
395
  type: 'xyz',
349
396
  tileFormat: 'application/vnd.mapbox-vector-tile',
350
397
  name: link.name,
@@ -14,7 +14,10 @@ export function flattenQueryParams(
14
14
  Array.isArray(flattened[key]) &&
15
15
  (flattened[key] as string[]).length > 0
16
16
  ) {
17
- flattened[key] = [(flattened[key] as string[]).join(',')]
17
+ const encoded = (flattened[key] as string[]).map((value) =>
18
+ typeof value === 'string' ? value.replace(/,/g, '%2C') : value
19
+ )
20
+ flattened[key] = [encoded.join(',')]
18
21
  } else if (isDateRange(flattened[key] as DateRange)) {
19
22
  const start = (flattened[key] as DateRange).start
20
23
  const end = (flattened[key] as DateRange).end
@@ -48,7 +51,7 @@ export function expandQueryParams(
48
51
  ...(end && { end: new Date(`${end}T00:00:00`) }),
49
52
  }
50
53
  } else {
51
- expanded[key] = value.split(',')
54
+ expanded[key] = value.split(',').map((v) => v.replace(/%2C/g, ','))
52
55
  }
53
56
  }
54
57
  }
@@ -63,7 +63,8 @@ export class RouterFacade {
63
63
  }
64
64
 
65
65
  goToOrganization(organizationName: string) {
66
- const path = `${this.routerService.getOrganizationPageRoute()}/${organizationName}`
66
+ const safeOrgName = organizationName.replace(/\//g, '')
67
+ const path = `${this.routerService.getOrganizationPageRoute()}/${safeOrgName}`
67
68
  this.go({
68
69
  path,
69
70
  queryParamsHandling: '',
@@ -8,6 +8,7 @@ import {
8
8
  SortByField,
9
9
  } from '../../../../../../libs/common/domain/src/lib/model/search'
10
10
  import { DEFAULT_PAGE_SIZE, FIELDS_SUMMARY } from '../constants'
11
+ import { getOptionalSearchConfig } from '../../../../../../libs/util/app-config/src'
11
12
  import { CatalogRecord } from '../../../../../../libs/common/domain/src/lib/model/record'
12
13
 
13
14
  export const SEARCH_FEATURE_KEY = 'searchState'
@@ -55,7 +56,9 @@ export const initSearch = (): SearchStateSearch => {
55
56
  },
56
57
  params: {
57
58
  filters: {},
58
- pageSize: DEFAULT_PAGE_SIZE,
59
+ pageSize: getOptionalSearchConfig()?.LIMIT
60
+ ? getOptionalSearchConfig().LIMIT
61
+ : DEFAULT_PAGE_SIZE,
59
62
  currentPage: 0,
60
63
  favoritesOnly: false,
61
64
  useSpatialFilter: true,
@@ -14,7 +14,11 @@ import {
14
14
  } from '@angular/core'
15
15
  import { MatSort, MatSortModule } from '@angular/material/sort'
16
16
  import { MatTableModule } from '@angular/material/table'
17
- import { TranslatePipe, TranslateService } from '@ngx-translate/core'
17
+ import {
18
+ TranslateDirective,
19
+ TranslatePipe,
20
+ TranslateService,
21
+ } from '@ngx-translate/core'
18
22
  import { DataTableDataSource } from './data-table.data.source'
19
23
  import { BaseReader, FetchError } from '../../../../../../libs/util/data-fetcher/src'
20
24
  import {
@@ -53,6 +57,7 @@ export interface TableItemModel {
53
57
  PopupAlertComponent,
54
58
  LetDirective,
55
59
  TranslatePipe,
60
+ TranslateDirective,
56
61
  ],
57
62
  providers: [{ provide: MatPaginatorIntl, useClass: CustomMatPaginatorIntl }],
58
63
  selector: 'gn-ui-data-table',
@@ -67,7 +67,10 @@
67
67
  [ngClass]="{
68
68
  '!bg-primary': currentlyActive,
69
69
  }"
70
- >{{ link.accessServiceProtocol }}</span
70
+ translate
71
+ >record.metadata.api.accessServiceProtocol.{{
72
+ link.accessServiceProtocol
73
+ }}</span
71
74
  >
72
75
  <span
73
76
  *ngIf="link.accessServiceProtocol === 'GPFDL'"
@@ -13,8 +13,7 @@
13
13
  <span class="px-3">({{ linksCount }})</span>
14
14
  </div>
15
15
  <gn-ui-previous-next-buttons
16
- class="md:block hidden"
17
- *ngIf="_list?.pagesCount > 1"
16
+ *ngIf="(isMobile$ | async) === false && _list?.pagesCount > 1"
18
17
  [listComponent]="_list"
19
18
  ></gn-ui-previous-next-buttons>
20
19
  </div>
@@ -40,7 +39,7 @@
40
39
 
41
40
  <ng-container>
42
41
  <gn-ui-block-list
43
- class="md:block hidden"
42
+ *ngIf="(isMobile$ | async) === false"
44
43
  #blockList
45
44
  (listChanges)="updateList($event)"
46
45
  containerClass="gap-4 pt-5 pb-7"
@@ -57,12 +56,14 @@
57
56
  </gn-ui-block-list>
58
57
  </ng-container>
59
58
 
60
- <div class="mb-5 md:hidden block" *ngFor="let link of filteredLinks">
61
- <gn-ui-download-item
62
- size="M"
63
- [link]="link"
64
- [color]="getLinkColor(link)"
65
- [format]="getLinkFormat(link)"
66
- [isFromApi]="isFromApi(link)"
67
- ></gn-ui-download-item>
59
+ <div class="mb-5" *ngFor="let link of filteredLinks">
60
+ <ng-container *ngIf="(isMobile$ | async) === true">
61
+ <gn-ui-download-item
62
+ size="M"
63
+ [link]="link"
64
+ [color]="getLinkColor(link)"
65
+ [format]="getLinkFormat(link)"
66
+ [isFromApi]="isFromApi(link)"
67
+ ></gn-ui-download-item>
68
+ </ng-container>
68
69
  </div>
@@ -6,7 +6,11 @@ import {
6
6
  } from '@angular/core'
7
7
  import { TranslateDirective, TranslateService } from '@ngx-translate/core'
8
8
  import { marker } from '@biesbjerg/ngx-translate-extract-marker'
9
- import { getBadgeColor, getFileFormat } from '../../../../../../libs/util/shared/src'
9
+ import {
10
+ getBadgeColor,
11
+ getFileFormat,
12
+ getIsMobile,
13
+ } from '../../../../../../libs/util/shared/src'
10
14
  import { DatasetDownloadDistribution } from '../../../../../../libs/common/domain/src/lib/model/record'
11
15
  import { CommonModule } from '@angular/common'
12
16
  import { ButtonComponent } from '../../../../../../libs/ui/inputs/src'
@@ -50,6 +54,8 @@ export class DownloadsListComponent {
50
54
  return this.filteredLinks?.length || 0
51
55
  }
52
56
 
57
+ isMobile$ = getIsMobile()
58
+
53
59
  activeFilterFormats: FilterFormat[] = ['all']
54
60
 
55
61
  updateList($event: BlockListComponent) {
@@ -7,7 +7,10 @@
7
7
  class="shrink-0 text-[0.75em]"
8
8
  name="matLocationSearchingOutline"
9
9
  ></ng-icon>
10
- <span class="ml-1 hidden sm:inline-block shrink-0" *ngIf="showLabel" translate
10
+ <span
11
+ class="ml-1 inline-block shrink-0"
12
+ *ngIf="(isMobile$ | async) === false && showLabel"
13
+ translate
11
14
  >record.metadata.isGeographical</span
12
15
  >
13
16
  </div>
@@ -4,7 +4,11 @@ import { CatalogRecord } from '../../../../../../libs/common/domain/src/lib/mode
4
4
  import { CommonModule } from '@angular/common'
5
5
  import { TranslateDirective, TranslatePipe } from '@ngx-translate/core'
6
6
  import { NgIcon, provideIcons } from '@ng-icons/core'
7
- import { LinkClassifierService, LinkUsage } from '../../../../../../libs/util/shared/src'
7
+ import {
8
+ getIsMobile,
9
+ LinkClassifierService,
10
+ LinkUsage,
11
+ } from '../../../../../../libs/util/shared/src'
8
12
 
9
13
  @Component({
10
14
  selector: 'gn-ui-geo-data-badge',
@@ -24,6 +28,8 @@ export class GeoDataBadgeComponent {
24
28
  @Input() styling = 'default'
25
29
  @Input() record: CatalogRecord
26
30
 
31
+ isMobile$ = getIsMobile()
32
+
27
33
  isGeodata() {
28
34
  const links =
29
35
  'onlineResources' in this.record ? this.record.onlineResources : []
@@ -68,6 +68,7 @@
68
68
  [smaller]="true"
69
69
  [metadata]="record"
70
70
  [metadataQualityDisplay]="metadataQualityDisplay"
71
+ [popoverDisplay]="true"
71
72
  ></gn-ui-metadata-quality>
72
73
  </div>
73
74
  <div
@@ -21,7 +21,11 @@ import { KindBadgeComponent } from '../kind-badge/kind-badge.component'
21
21
  import { MarkdownParserComponent } from '../markdown-parser/markdown-parser.component'
22
22
  import { MetadataQualityComponent } from '../metadata-quality/metadata-quality.component'
23
23
  import { ThumbnailComponent } from '../thumbnail/thumbnail.component'
24
- import { removeWhitespace, stripHtml } from '../../../../../../libs/util/shared/src'
24
+ import {
25
+ removeWhitespace,
26
+ stripHtml,
27
+ type ValidatorMapperKeys,
28
+ } from '../../../../../../libs/util/shared/src'
25
29
 
26
30
  type CardSize = 'L' | 'M' | 'S' | 'XS'
27
31
 
@@ -10,6 +10,7 @@
10
10
  class="flex-grow"
11
11
  ></gn-ui-progress-bar>
12
12
  <gn-ui-popover
13
+ *ngIf="popoverDisplay"
13
14
  [content]="popoverItems"
14
15
  theme="light-border"
15
16
  [class]="smaller ? 'ml-2' : 'ml-2 mt-1'"