geonetwork-ui 2.2.0-dev.886aae61 → 2.2.0-dev.8cce3b0e

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 (365) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +2 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +77 -52
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.mjs +5 -3
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/converter.mjs +16 -11
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +23 -16
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +21 -18
  7. package/esm2022/libs/api/repository/src/lib/gn4/index.mjs +3 -1
  8. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +10 -3
  9. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +14 -5
  10. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +33 -8
  11. package/esm2022/libs/api/repository/src/lib/gn4/selection/selection.service.mjs +13 -26
  12. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  13. package/esm2022/libs/common/domain/src/lib/model/search/aggregation.model.mjs +1 -1
  14. package/esm2022/libs/common/domain/src/lib/model/search/field.model.mjs +2 -0
  15. package/esm2022/libs/common/domain/src/lib/model/search/filter.model.mjs +1 -1
  16. package/esm2022/libs/common/domain/src/lib/model/search/index.mjs +2 -1
  17. package/esm2022/libs/common/domain/src/lib/model/search/search.model.mjs +1 -1
  18. package/esm2022/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.mjs +1 -1
  19. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  20. package/esm2022/libs/feature/catalog/src/lib/my-org/my-org.service.mjs +4 -10
  21. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +5 -4
  22. package/esm2022/libs/feature/editor/src/lib/record-form/record-form.component.mjs +5 -3
  23. package/esm2022/libs/feature/map/src/index.mjs +2 -1
  24. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +1 -1
  25. package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +106 -0
  26. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +64 -0
  27. package/esm2022/libs/feature/map/src/lib/constant/index.mjs +2 -1
  28. package/esm2022/libs/feature/map/src/lib/constant/projections.mjs +2 -0
  29. package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +23 -3
  30. package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +93 -0
  31. package/esm2022/libs/feature/map/src/lib/geocoding.service.mjs +40 -0
  32. package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +5 -3
  33. package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +11 -1
  34. package/esm2022/libs/feature/map/src/lib/utils/index.mjs +1 -3
  35. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +60 -29
  36. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +29 -20
  37. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +2 -2
  38. package/esm2022/libs/feature/search/src/index.mjs +4 -1
  39. package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +7 -4
  40. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +2 -6
  41. package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +1 -1
  42. package/esm2022/libs/feature/search/src/lib/filter-geometry.token.mjs +4 -0
  43. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +7 -3
  44. package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -0
  45. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +3 -3
  46. package/esm2022/libs/feature/search/src/lib/results-table/results-table.component.mjs +128 -0
  47. package/esm2022/libs/feature/search/src/lib/state/effects.mjs +6 -4
  48. package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +3 -2
  49. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +41 -26
  50. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +11 -9
  51. package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +4 -4
  52. package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +1 -1
  53. package/esm2022/libs/ui/elements/src/index.mjs +3 -1
  54. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +3 -3
  55. package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +27 -0
  56. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +3 -3
  57. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
  58. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +35 -17
  59. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +2 -3
  60. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +9 -6
  61. package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +3 -3
  62. package/esm2022/libs/ui/elements/src/lib/thumbnail/thumbnail.component.mjs +7 -3
  63. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +12 -5
  64. package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
  65. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +3 -3
  66. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +3 -3
  67. package/esm2022/libs/ui/inputs/src/lib/checkbox/checkbox.component.mjs +3 -3
  68. package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +3 -3
  69. package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +46 -0
  70. package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +3 -3
  71. package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +2 -2
  72. package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +3 -3
  73. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +12 -7
  74. package/esm2022/libs/ui/layout/src/index.mjs +3 -1
  75. package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +2 -2
  76. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.mjs +36 -0
  77. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +37 -0
  78. package/esm2022/libs/ui/search/src/index.mjs +1 -2
  79. package/esm2022/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.mjs +1 -1
  80. package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +1 -1
  81. package/esm2022/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.mjs +1 -1
  82. package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +1 -1
  83. package/esm2022/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.mjs +1 -1
  84. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +9 -10
  85. package/esm2022/libs/util/i18n/src/index.mjs +1 -2
  86. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +29 -13
  87. package/esm2022/translations/de.json +106 -93
  88. package/esm2022/translations/en.json +38 -25
  89. package/esm2022/translations/es.json +17 -4
  90. package/esm2022/translations/fr.json +22 -9
  91. package/esm2022/translations/it.json +29 -16
  92. package/esm2022/translations/nl.json +17 -4
  93. package/esm2022/translations/pt.json +17 -4
  94. package/fesm2022/geonetwork-ui.mjs +1295 -808
  95. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  96. package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts +1 -0
  97. package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
  98. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +0 -1
  99. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  100. package/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.d.ts.map +1 -1
  101. package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts.map +1 -1
  102. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +5 -4
  103. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  104. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +3 -2
  105. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  106. package/libs/api/repository/src/lib/gn4/index.d.ts +2 -0
  107. package/libs/api/repository/src/lib/gn4/index.d.ts.map +1 -1
  108. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
  109. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts +1 -1
  110. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
  111. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +9 -2
  112. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  113. package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts +4 -5
  114. package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts.map +1 -1
  115. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +15 -15
  116. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  117. package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts +1 -1
  118. package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts.map +1 -1
  119. package/libs/common/domain/src/lib/model/search/field.model.d.ts +2 -0
  120. package/libs/common/domain/src/lib/model/search/field.model.d.ts.map +1 -0
  121. package/libs/common/domain/src/lib/model/search/filter.model.d.ts +1 -1
  122. package/libs/common/domain/src/lib/model/search/filter.model.d.ts.map +1 -1
  123. package/libs/common/domain/src/lib/model/search/index.d.ts +1 -0
  124. package/libs/common/domain/src/lib/model/search/index.d.ts.map +1 -1
  125. package/libs/common/domain/src/lib/model/search/search.model.d.ts +2 -3
  126. package/libs/common/domain/src/lib/model/search/search.model.d.ts.map +1 -1
  127. package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts +1 -0
  128. package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts.map +1 -1
  129. package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -1
  130. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  131. package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts +0 -1
  132. package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts.map +1 -1
  133. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +15 -2
  134. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  135. package/libs/feature/editor/src/lib/record-form/record-form.component.d.ts.map +1 -1
  136. package/libs/feature/map/src/index.d.ts +1 -0
  137. package/libs/feature/map/src/index.d.ts.map +1 -1
  138. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts +22 -0
  139. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -0
  140. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts +22 -0
  141. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -0
  142. package/libs/feature/map/src/lib/constant/index.d.ts +1 -0
  143. package/libs/feature/map/src/lib/constant/index.d.ts.map +1 -1
  144. package/libs/feature/map/src/lib/constant/projections.d.ts.map +1 -0
  145. package/libs/feature/map/src/lib/feature-map.module.d.ts +15 -12
  146. package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
  147. package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts +25 -0
  148. package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts.map +1 -0
  149. package/libs/feature/map/src/lib/geocoding.service.d.ts +18 -0
  150. package/libs/feature/map/src/lib/geocoding.service.d.ts.map +1 -0
  151. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts +2 -0
  152. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +1 -1
  153. package/libs/feature/map/src/lib/utils/index.d.ts +0 -2
  154. package/libs/feature/map/src/lib/utils/index.d.ts.map +1 -1
  155. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +13 -11
  156. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  157. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +1 -3
  158. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  159. package/libs/feature/search/src/index.d.ts +3 -0
  160. package/libs/feature/search/src/index.d.ts.map +1 -1
  161. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts +5 -4
  162. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
  163. package/libs/feature/search/src/lib/feature-search.module.d.ts +0 -4
  164. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  165. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts +3 -2
  166. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts.map +1 -1
  167. package/libs/feature/search/src/lib/filter-geometry.token.d.ts +4 -0
  168. package/libs/feature/search/src/lib/filter-geometry.token.d.ts.map +1 -0
  169. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +1 -1
  170. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  171. package/libs/feature/search/src/lib/record-url.token.d.ts +3 -0
  172. package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -0
  173. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts +33 -0
  174. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts.map +1 -0
  175. package/libs/feature/search/src/lib/state/effects.d.ts.map +1 -1
  176. package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -1
  177. package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
  178. package/libs/feature/search/src/lib/utils/service/fields.d.ts +21 -8
  179. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  180. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  181. package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts +1 -1
  182. package/libs/ui/elements/src/index.d.ts +2 -0
  183. package/libs/ui/elements/src/index.d.ts.map +1 -1
  184. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
  185. package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts +10 -0
  186. package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts.map +1 -0
  187. package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts +1 -1
  188. package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts.map +1 -1
  189. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +7 -2
  190. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  191. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  192. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +3 -1
  193. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  194. package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts +3 -2
  195. package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts.map +1 -1
  196. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +3 -2
  197. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  198. package/libs/ui/inputs/src/index.d.ts +1 -0
  199. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  200. package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
  201. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  202. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts +13 -0
  203. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -0
  204. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +1 -1
  205. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
  206. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +40 -39
  207. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  208. package/libs/ui/layout/src/index.d.ts +2 -0
  209. package/libs/ui/layout/src/index.d.ts.map +1 -1
  210. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +14 -0
  211. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts.map +1 -0
  212. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +15 -0
  213. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -0
  214. package/libs/ui/search/src/index.d.ts +0 -1
  215. package/libs/ui/search/src/index.d.ts.map +1 -1
  216. package/libs/ui/search/src/lib/ui-search.module.d.ts +15 -15
  217. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
  218. package/libs/util/i18n/src/index.d.ts +0 -1
  219. package/libs/util/i18n/src/index.d.ts.map +1 -1
  220. package/libs/util/shared/src/lib/links/link-utils.d.ts +19 -7
  221. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  222. package/package.json +4 -1
  223. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +6 -6
  224. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +5 -3
  225. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +22 -4
  226. package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +3 -0
  227. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +112 -65
  228. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.ts +4 -2
  229. package/src/libs/api/metadata-converter/src/lib/iso19139/converter.ts +19 -12
  230. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +62 -43
  231. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +91 -59
  232. package/src/libs/api/repository/src/lib/gn4/index.ts +2 -0
  233. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +22 -2
  234. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +15 -4
  235. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +47 -8
  236. package/src/libs/api/repository/src/lib/gn4/selection/selection.service.ts +14 -38
  237. package/src/libs/common/domain/src/lib/index.ts +2 -0
  238. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +17 -18
  239. package/src/libs/common/domain/src/lib/model/search/aggregation.model.ts +1 -1
  240. package/src/libs/common/domain/src/lib/model/search/field.model.ts +1 -0
  241. package/src/libs/common/domain/src/lib/model/search/filter.model.ts +1 -1
  242. package/src/libs/common/domain/src/lib/model/search/index.ts +1 -0
  243. package/src/libs/common/domain/src/lib/model/search/search.model.ts +2 -2
  244. package/src/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.ts +1 -0
  245. package/src/libs/common/domain/src/lib/model/user/index.ts +1 -0
  246. package/src/libs/common/domain/src/lib/platform.service.interface.ts +1 -4
  247. package/src/libs/common/fixtures/src/lib/gn4/groups.fixtures.ts +1 -1
  248. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +6 -2
  249. package/src/libs/feature/catalog/src/lib/my-org/my-org.service.ts +4 -16
  250. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +8 -5
  251. package/src/libs/feature/editor/src/lib/record-form/record-form.component.ts +2 -1
  252. package/src/libs/feature/map/src/index.ts +1 -0
  253. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.css +0 -0
  254. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.html +21 -0
  255. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +107 -0
  256. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.css +0 -0
  257. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.html +37 -0
  258. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +64 -0
  259. package/src/libs/feature/map/src/lib/constant/index.ts +1 -0
  260. package/src/libs/feature/map/src/lib/feature-map.module.ts +12 -0
  261. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.css +0 -0
  262. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.html +39 -0
  263. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +99 -0
  264. package/src/libs/feature/map/src/lib/geocoding.service.ts +59 -0
  265. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.html +6 -2
  266. package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +16 -0
  267. package/src/libs/feature/map/src/lib/utils/index.ts +0 -2
  268. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +85 -50
  269. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +18 -3
  270. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +1 -1
  271. package/src/libs/feature/search/src/index.ts +3 -0
  272. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +12 -4
  273. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +2 -1
  274. package/src/libs/feature/search/src/lib/feature-search.module.ts +1 -10
  275. package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +4 -4
  276. package/src/libs/feature/search/src/lib/filter-geometry.token.ts +7 -0
  277. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +9 -3
  278. package/src/libs/feature/search/src/lib/record-url.token.ts +4 -0
  279. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +1 -1
  280. package/src/libs/feature/search/src/lib/results-table/results-table.component.css +0 -0
  281. package/src/libs/feature/search/src/lib/results-table/results-table.component.html +112 -0
  282. package/src/libs/feature/search/src/lib/results-table/results-table.component.ts +164 -0
  283. package/src/libs/feature/search/src/lib/state/effects.ts +5 -4
  284. package/src/libs/feature/search/src/lib/state/search.facade.ts +2 -1
  285. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +21 -16
  286. package/src/libs/feature/search/src/lib/utils/service/fields.ts +43 -34
  287. package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -0
  288. package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.ts +1 -1
  289. package/src/libs/ui/elements/src/index.ts +2 -0
  290. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +4 -1
  291. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.css +0 -0
  292. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +30 -0
  293. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.ts +15 -0
  294. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.css +5 -0
  295. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +39 -0
  296. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +58 -0
  297. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +54 -54
  298. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +1 -0
  299. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +2 -2
  300. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +4 -0
  301. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +101 -45
  302. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +31 -7
  303. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +1 -2
  304. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +5 -5
  305. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +12 -4
  306. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +1 -1
  307. package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.ts +4 -0
  308. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +5 -1
  309. package/src/libs/ui/inputs/src/index.ts +1 -0
  310. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +1 -1
  311. package/src/libs/ui/inputs/src/lib/button/button.component.css +1 -1
  312. package/src/libs/ui/inputs/src/lib/button/button.component.ts +1 -0
  313. package/src/libs/ui/inputs/src/lib/checkbox/checkbox.component.html +0 -1
  314. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +1 -1
  315. package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +48 -0
  316. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +8 -3
  317. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.css +1 -0
  318. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +1 -0
  319. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +5 -2
  320. package/src/libs/ui/layout/src/index.ts +2 -0
  321. package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +1 -1
  322. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.css +0 -0
  323. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.html +1 -0
  324. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.ts +33 -0
  325. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.css +15 -0
  326. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +54 -0
  327. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +42 -0
  328. package/src/libs/ui/search/src/index.ts +0 -1
  329. package/src/libs/ui/search/src/lib/ui-search.module.ts +2 -3
  330. package/src/libs/util/i18n/src/index.ts +0 -1
  331. package/src/libs/util/shared/src/lib/links/link-utils.ts +34 -11
  332. package/translations/de.json +106 -93
  333. package/translations/en.json +38 -25
  334. package/translations/es.json +17 -4
  335. package/translations/fr.json +22 -9
  336. package/translations/it.json +29 -16
  337. package/translations/nl.json +17 -4
  338. package/translations/pt.json +17 -4
  339. package/translations/sk.json +17 -4
  340. package/esm2022/libs/feature/map/src/lib/utils/map-utils-wms.service.mjs +0 -55
  341. package/esm2022/libs/feature/map/src/lib/utils/projections.mjs +0 -2
  342. package/esm2022/libs/ui/search/src/lib/record-table/record-table.component.mjs +0 -145
  343. package/esm2022/libs/util/i18n/src/lib/testing/test.translate.loader.mjs +0 -24
  344. package/esm2022/libs/util/i18n/src/lib/testing/test.translate.module.mjs +0 -109
  345. package/esm2022/libs/util/i18n/src/lib/testing/translations.model.mjs +0 -6
  346. package/libs/feature/map/src/lib/utils/map-utils-wms.service.d.ts +0 -17
  347. package/libs/feature/map/src/lib/utils/map-utils-wms.service.d.ts.map +0 -1
  348. package/libs/feature/map/src/lib/utils/projections.d.ts.map +0 -1
  349. package/libs/ui/search/src/lib/record-table/record-table.component.d.ts +0 -31
  350. package/libs/ui/search/src/lib/record-table/record-table.component.d.ts.map +0 -1
  351. package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts +0 -17
  352. package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts.map +0 -1
  353. package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts +0 -131
  354. package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts.map +0 -1
  355. package/libs/util/i18n/src/lib/testing/translations.model.d.ts +0 -21
  356. package/libs/util/i18n/src/lib/testing/translations.model.d.ts.map +0 -1
  357. package/src/libs/feature/map/src/lib/utils/map-utils-wms.service.ts +0 -58
  358. package/src/libs/ui/search/src/lib/record-table/record-table.component.css +0 -7
  359. package/src/libs/ui/search/src/lib/record-table/record-table.component.html +0 -215
  360. package/src/libs/ui/search/src/lib/record-table/record-table.component.ts +0 -149
  361. package/src/libs/util/i18n/src/lib/testing/test.translate.loader.ts +0 -26
  362. package/src/libs/util/i18n/src/lib/testing/test.translate.module.ts +0 -235
  363. package/src/libs/util/i18n/src/lib/testing/translations.model.ts +0 -28
  364. /package/libs/feature/map/src/lib/{utils → constant}/projections.d.ts +0 -0
  365. /package/src/libs/feature/map/src/lib/{utils → constant}/projections.ts +0 -0
@@ -1,5 +1,5 @@
1
1
  /** Body **/
2
- :host /deep/ .markdown-body {
2
+ :host ::ng-deep .markdown-body {
3
3
  -ms-text-size-adjust: 100%;
4
4
  -webkit-text-size-adjust: 100%;
5
5
  margin: 0px 0px 1.5rem 0px;
@@ -9,82 +9,82 @@
9
9
 
10
10
  /** Emphasis **/
11
11
 
12
- :host /deep/ .markdown-body strong {
12
+ :host ::ng-deep .markdown-body strong {
13
13
  @apply font-bold;
14
14
  color: var(--color-secondary-darker);
15
15
  }
16
16
 
17
17
  /** Headings **/
18
18
 
19
- :host /deep/ .markdown-body h1,
20
- :host /deep/ .markdown-body h2,
21
- :host /deep/ .markdown-body h3,
22
- :host /deep/ .markdown-body h4,
23
- :host /deep/ .markdown-body h5,
24
- :host /deep/ .markdown-body h6 {
19
+ :host ::ng-deep .markdown-body h1,
20
+ :host ::ng-deep .markdown-body h2,
21
+ :host ::ng-deep .markdown-body h3,
22
+ :host ::ng-deep .markdown-body h4,
23
+ :host ::ng-deep .markdown-body h5,
24
+ :host ::ng-deep .markdown-body h6 {
25
25
  margin-top: 24px;
26
26
  margin-bottom: 16px;
27
27
  line-height: 1.25;
28
28
  @apply text-title font-title font-bold;
29
29
  }
30
30
 
31
- :host /deep/ .markdown-body h1 {
31
+ :host ::ng-deep .markdown-body h1 {
32
32
  margin: 0.67em 0;
33
33
  padding-bottom: 0.3em;
34
34
  font-size: 2em;
35
35
  color: var(--color-primary);
36
36
  }
37
37
 
38
- :host /deep/ .markdown-body h2 {
38
+ :host ::ng-deep .markdown-body h2 {
39
39
  padding-bottom: 0.3em;
40
40
  font-size: 1.5em;
41
41
  color: var(--color-secondary);
42
42
  }
43
43
 
44
- :host /deep/ .markdown-body h3 {
44
+ :host ::ng-deep .markdown-body h3 {
45
45
  font-size: 1.25em;
46
46
  color: var(--color-secondary);
47
47
  }
48
48
 
49
- :host /deep/ .markdown-body h4 {
49
+ :host ::ng-deep .markdown-body h4 {
50
50
  font-size: 1em;
51
51
  color: var(--color-secondary);
52
52
  }
53
53
 
54
- :host /deep/ .markdown-body h5 {
54
+ :host ::ng-deep .markdown-body h5 {
55
55
  font-size: 0.875em;
56
56
  color: var(--color-secondary);
57
57
  }
58
58
 
59
- :host /deep/ .markdown-body h6 {
59
+ :host ::ng-deep .markdown-body h6 {
60
60
  font-size: 0.85em;
61
61
  color: var(--color-secondary-lighter);
62
62
  }
63
63
 
64
64
  /** Paragraphs **/
65
65
 
66
- :host /deep/ .markdown-body p {
66
+ :host ::ng-deep .markdown-body p {
67
67
  margin-top: 0;
68
68
  margin-bottom: 10px;
69
69
  }
70
70
 
71
71
  /** Links **/
72
72
 
73
- :host /deep/ .markdown-body p > a {
73
+ :host ::ng-deep .markdown-body p > a {
74
74
  margin-top: 0;
75
75
  margin-bottom: 10px;
76
76
  color: var(--color-primary) !important;
77
- text-decoration: none !important;
78
- @apply font-bold;
77
+ text-decoration: none;
79
78
  }
80
79
 
81
- :host /deep/ .markdown-body p > a:hover {
80
+ :host ::ng-deep .markdown-body p > a:hover {
82
81
  color: var(--color-primary-darker) !important;
82
+ @apply underline;
83
83
  }
84
84
 
85
85
  /** Blockquotes **/
86
86
 
87
- :host /deep/ .markdown-body blockquote {
87
+ :host ::ng-deep .markdown-body blockquote {
88
88
  margin: 0;
89
89
  padding: 0 1em;
90
90
  color: var(--color-secondary-lighter);
@@ -93,7 +93,7 @@
93
93
 
94
94
  /** Code **/
95
95
 
96
- :host /deep/ .markdown-body pre {
96
+ :host ::ng-deep .markdown-body pre {
97
97
  margin-top: 0;
98
98
  margin-bottom: 0;
99
99
  font-size: 12px;
@@ -101,7 +101,7 @@
101
101
  word-wrap: normal;
102
102
  }
103
103
 
104
- :host /deep/ .markdown-body pre {
104
+ :host ::ng-deep .markdown-body pre {
105
105
  padding: 16px;
106
106
  overflow: auto;
107
107
  font-size: 85%;
@@ -110,7 +110,7 @@
110
110
  border-radius: 6px;
111
111
  }
112
112
 
113
- :host /deep/ .markdown-body code {
113
+ :host ::ng-deep .markdown-body code {
114
114
  padding: 0.2em 0.4em;
115
115
  margin: 0;
116
116
  font-size: 85%;
@@ -118,7 +118,7 @@
118
118
  border-radius: 6px;
119
119
  }
120
120
 
121
- :host /deep/ .markdown-body pre code {
121
+ :host ::ng-deep .markdown-body pre code {
122
122
  display: inline;
123
123
  max-width: auto;
124
124
  padding: 0;
@@ -131,7 +131,7 @@
131
131
 
132
132
  /** Horizontal rules **/
133
133
 
134
- :host /deep/ .markdown-body hr {
134
+ :host ::ng-deep .markdown-body hr {
135
135
  box-sizing: content-box;
136
136
  overflow: hidden;
137
137
  background: transparent;
@@ -143,12 +143,12 @@
143
143
  border: 0;
144
144
  }
145
145
 
146
- :host /deep/ .markdown-body hr::before {
146
+ :host ::ng-deep .markdown-body hr::before {
147
147
  display: table;
148
148
  content: '';
149
149
  }
150
150
 
151
- :host /deep/ .markdown-body hr::after {
151
+ :host ::ng-deep .markdown-body hr::after {
152
152
  display: table;
153
153
  clear: both;
154
154
  content: '';
@@ -156,55 +156,55 @@
156
156
 
157
157
  /** Lists **/
158
158
 
159
- :host /deep/ .markdown-body ul,
160
- :host /deep/ .markdown-body ol {
159
+ :host ::ng-deep .markdown-body ul,
160
+ :host ::ng-deep .markdown-body ol {
161
161
  margin-top: 0;
162
162
  margin-bottom: 0;
163
163
  padding-left: 2em;
164
164
  list-style: revert;
165
165
  }
166
166
 
167
- :host /deep/ .markdown-body ol ol,
168
- :host /deep/ .markdown-body ul ol {
167
+ :host ::ng-deep .markdown-body ol ol,
168
+ :host ::ng-deep .markdown-body ul ol {
169
169
  list-style-type: lower-roman;
170
170
  }
171
171
 
172
- :host /deep/ .markdown-body ul ul ol,
173
- :host /deep/ .markdown-body ul ol ol,
174
- :host /deep/ .markdown-body ol ul ol,
175
- :host /deep/ .markdown-body ol ol ol {
172
+ :host ::ng-deep .markdown-body ul ul ol,
173
+ :host ::ng-deep .markdown-body ul ol ol,
174
+ :host ::ng-deep .markdown-body ol ul ol,
175
+ :host ::ng-deep .markdown-body ol ol ol {
176
176
  list-style-type: lower-alpha;
177
177
  }
178
178
 
179
- :host /deep/ .markdown-body ol[type='a s'] {
179
+ :host ::ng-deep .markdown-body ol[type='a s'] {
180
180
  list-style-type: lower-alpha;
181
181
  }
182
182
 
183
- :host /deep/ .markdown-body ol[type='A s'] {
183
+ :host ::ng-deep .markdown-body ol[type='A s'] {
184
184
  list-style-type: upper-alpha;
185
185
  }
186
186
 
187
- :host /deep/ .markdown-body ol[type='i s'] {
187
+ :host ::ng-deep .markdown-body ol[type='i s'] {
188
188
  list-style-type: lower-roman;
189
189
  }
190
190
 
191
- :host /deep/ .markdown-body ol[type='I s'] {
191
+ :host ::ng-deep .markdown-body ol[type='I s'] {
192
192
  list-style-type: upper-roman;
193
193
  }
194
194
 
195
- :host /deep/ .markdown-body ol[type='1'] {
195
+ :host ::ng-deep .markdown-body ol[type='1'] {
196
196
  list-style: unset;
197
197
  list-style-type: decimal;
198
198
  }
199
199
 
200
- :host /deep/ .markdown-body div > ol:not([type]) {
200
+ :host ::ng-deep .markdown-body div > ol:not([type]) {
201
201
  list-style: unset;
202
202
  list-style-type: decimal;
203
203
  }
204
204
 
205
205
  /** Table **/
206
206
 
207
- :host /deep/ .markdown-body table {
207
+ :host ::ng-deep .markdown-body table {
208
208
  border-spacing: 0;
209
209
  border-collapse: collapse;
210
210
  display: block;
@@ -214,51 +214,51 @@
214
214
  padding-bottom: 15px;
215
215
  }
216
216
 
217
- :host /deep/ .markdown-body td,
218
- :host /deep/ .markdown-body th {
217
+ :host ::ng-deep .markdown-body td,
218
+ :host ::ng-deep .markdown-body th {
219
219
  padding: 0;
220
220
  }
221
221
 
222
- :host /deep/ .markdown-body th {
222
+ :host ::ng-deep .markdown-body th {
223
223
  color: var(--color-secondary);
224
224
  }
225
225
 
226
- :host /deep/ .markdown-body table th,
227
- :host /deep/ .markdown-body table td {
226
+ :host ::ng-deep .markdown-body table th,
227
+ :host ::ng-deep .markdown-body table td {
228
228
  padding: 6px 13px;
229
229
  border: 1px solid var(--color-gray-500);
230
230
  }
231
231
 
232
- :host /deep/ .markdown-body table td > :last-child {
232
+ :host ::ng-deep .markdown-body table td > :last-child {
233
233
  margin-bottom: 0;
234
234
  }
235
235
 
236
- :host /deep/ .markdown-body table tr {
236
+ :host ::ng-deep .markdown-body table tr {
237
237
  background-color: #ffffff;
238
238
  border-top: 1px solid var(--color-secondary-lighter);
239
239
  }
240
240
 
241
- :host /deep/ .markdown-body table tr:nth-child(2n) {
241
+ :host ::ng-deep .markdown-body table tr:nth-child(2n) {
242
242
  background-color: var(--color-gray-100);
243
243
  }
244
244
 
245
- :host /deep/ .markdown-body table img {
245
+ :host ::ng-deep .markdown-body table img {
246
246
  background-color: transparent;
247
247
  }
248
248
 
249
249
  /** Images **/
250
250
 
251
- :host /deep/ .markdown-body img {
251
+ :host ::ng-deep .markdown-body img {
252
252
  border-style: none;
253
253
  max-width: 100%;
254
254
  box-sizing: content-box;
255
255
  background-color: transparent;
256
256
  }
257
257
 
258
- :host /deep/ .markdown-body img[align='right'] {
258
+ :host ::ng-deep .markdown-body img[align='right'] {
259
259
  padding-left: 20px;
260
260
  }
261
261
 
262
- :host /deep/ .markdown-body img[align='left'] {
262
+ :host ::ng-deep .markdown-body img[align='left'] {
263
263
  padding-right: 20px;
264
264
  }
@@ -6,6 +6,7 @@ import { marked } from 'marked'
6
6
  templateUrl: './markdown-parser.component.html',
7
7
  styleUrls: ['./markdown-parser.component.css'],
8
8
  changeDetection: ChangeDetectionStrategy.OnPush,
9
+ standalone: true,
9
10
  })
10
11
  export class MarkdownParserComponent {
11
12
  @Input() textContent: string
@@ -1,4 +1,4 @@
1
- <div class="py-5 px-5 rounded bg-gray-100 text-black mb-6 sm:mb-12">
1
+ <div class="py-5 px-5 rounded bg-gray-100 text-black mb-6">
2
2
  <div class="grid gap-3">
3
3
  <div>
4
4
  <p class="text-sm font-medium" translate>record.metadata.contact</p>
@@ -20,7 +20,7 @@
20
20
  (click)="onOrganizationClick()"
21
21
  data-cy="organization-name"
22
22
  >
23
- {{ shownOrganization.name }}
23
+ {{ shownOrganization?.name }}
24
24
  </div>
25
25
  </div>
26
26
  <div *ngIf="shownOrganization?.website">
@@ -7,3 +7,7 @@
7
7
  padding-bottom: 10px;
8
8
  @apply border-b border-gray-300;
9
9
  }
10
+
11
+ :host ::ng-deep gn-ui-copy-text-button button mat-icon {
12
+ transform: scale(0.8);
13
+ }
@@ -1,9 +1,3 @@
1
- <p
2
- class="text-[28px] text-title text-center mb-6 font-title sm:text-left"
3
- translate
4
- >
5
- record.metadata.about
6
- </p>
7
1
  <div class="mb-6 md-description sm:mb-4 sm:pr-16">
8
2
  <gn-ui-content-ghost ghostClass="h-32" [showContent]="fieldReady('abstract')">
9
3
  <gn-ui-max-lines [maxLines]="6" *ngIf="metadata.abstract">
@@ -11,25 +5,55 @@
11
5
  <gn-ui-markdown-parser
12
6
  [textContent]="metadata.abstract"
13
7
  ></gn-ui-markdown-parser>
14
- <ng-container *ngIf="metadata.keywords?.length">
15
- <p class="mb-3 font-medium text-primary text-sm" translate>
16
- record.metadata.keywords
17
- </p>
18
- <div class="sm:pb-4 sm:pr-16">
19
- <gn-ui-badge
20
- class="inline-block mr-2 mb-2 lowercase"
21
- (click)="onKeywordClick(keyword)"
22
- [clickable]="true"
23
- *ngFor="let keyword of metadata.keywords"
24
- >{{ keyword }}</gn-ui-badge
25
- >
26
- </div>
27
- </ng-container>
28
8
  </div>
29
9
  </gn-ui-max-lines>
30
10
  </gn-ui-content-ghost>
31
11
  </div>
32
12
 
13
+ <gn-ui-expandable-panel [title]="'record.metadata.usage' | translate">
14
+ <div class="flex flex-col gap-[10px] mr-4 py-[12px] rounded text-gray-900">
15
+ <ng-container *ngFor="let license of licenses">
16
+ <div *ngIf="license.url; else noUrl" class="text-primary">
17
+ <a
18
+ [href]="license.url"
19
+ target="_blank"
20
+ class="cursor-pointer hover:underline transition-all"
21
+ >
22
+ {{ license.text }}
23
+ <mat-icon
24
+ class="material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0"
25
+ >open_in_new</mat-icon
26
+ >
27
+ </a>
28
+ </div>
29
+ <ng-template #noUrl>
30
+ <div class="text-primary" gnUiLinkify>
31
+ {{ license.text }}
32
+ </div>
33
+ </ng-template>
34
+ </ng-container>
35
+ <ng-container *ngIf="legalConstraints.length">
36
+ <gn-ui-markdown-parser
37
+ *ngFor="let constraint of legalConstraints"
38
+ [textContent]="constraint"
39
+ >
40
+ </gn-ui-markdown-parser>
41
+ </ng-container>
42
+ <ng-container *ngIf="otherConstraints.length">
43
+ <div gnUiLinkify *ngFor="let constraint of otherConstraints">
44
+ <h5 translate class="font-medium text-black text-sm mb-[2px] mt-[16px]">
45
+ record.metadata.otherConstraints
46
+ </h5>
47
+ <gn-ui-markdown-parser [textContent]="constraint">
48
+ </gn-ui-markdown-parser>
49
+ </div>
50
+ </ng-container>
51
+
52
+ <span class="noUsage" *ngIf="!hasUsage">
53
+ {{ 'record.metadata.noUsage' | translate }}
54
+ </span>
55
+ </div>
56
+ </gn-ui-expandable-panel>
33
57
  <gn-ui-expandable-panel
34
58
  class="metadata-origin"
35
59
  *ngIf="
@@ -42,7 +66,7 @@
42
66
  >
43
67
  <p
44
68
  *ngIf="metadata.lineage"
45
- class="mb-5 pt-4 whitespace-pre-line break-words"
69
+ class="mb-5 pt-4 whitespace-pre-line break-words text-gray-900"
46
70
  gnUiLinkify
47
71
  >
48
72
  {{ metadata.lineage }}
@@ -74,33 +98,65 @@
74
98
  </div>
75
99
  </div>
76
100
  </gn-ui-expandable-panel>
77
- <gn-ui-expandable-panel [title]="'record.metadata.usage' | translate">
78
- <div class="py-4 px-6 rounded bg-gray-100 text-gray-700 flex flex-wrap gap-2">
79
- <gn-ui-badge *ngIf="metadata.extras?.isOpenData">
80
- <span translate>record.metadata.isOpenData</span>
81
- </gn-ui-badge>
82
- <span
83
- class="text-primary font-medium"
84
- *ngFor="let usage of usages"
85
- gnUiLinkify
86
- >
87
- {{ usage }}
88
- </span>
89
- <span class="text-primary font-medium noUsage" *ngIf="!hasUsage">
90
- {{ 'record.metadata.noUsage' | translate }}
91
- </span>
92
- </div>
93
- </gn-ui-expandable-panel>
94
101
  <gn-ui-expandable-panel
95
102
  *ngIf="metadata.landingPage"
96
103
  [title]="'record.metadata.details' | translate"
97
104
  >
98
- <div class="py-5 px-5 rounded bg-gray-100 text-gray-700">
99
- <p class="text-sm" translate>record.metadata.sheet</p>
100
- <p class="text-primary font-medium mt-1" translate>
101
- <a [href]="metadata.landingPage" target="_blank">
102
- <span class="break-all" gnUiLinkify>{{ metadata.landingPage }}</span>
103
- </a>
104
- </p>
105
+ <div class="flex flex-col gap-4 mr-4 py-5 rounded text-gray-700">
106
+ <div *ngIf="metadata.recordUpdated">
107
+ <p class="text-sm" translate>record.metadata.updatedOn</p>
108
+ <p class="text-primary font-medium">
109
+ {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}
110
+ </p>
111
+ </div>
112
+ <div *ngIf="metadata.landingPage">
113
+ <p class="text-sm" translate>record.metadata.sheet</p>
114
+ <p class="text-primary font-medium" translate>
115
+ <a [href]="metadata.landingPage" target="_blank">
116
+ <span class="break-all" gnUiLinkify>{{ metadata.landingPage }}</span>
117
+ </a>
118
+ </p>
119
+ </div>
120
+ <div *ngIf="metadata.ownerOrganization">
121
+ <p class="text-sm" translate>record.metadata.owner</p>
122
+ <p class="text-primary font-medium">
123
+ {{ metadata.ownerOrganization.name }}
124
+ </p>
125
+ </div>
126
+ <div *ngIf="metadata.uniqueIdentifier">
127
+ <p class="text-sm" translate>record.metadata.uniqueId</p>
128
+ <div class="flex flex-row content-align items-end gap-1">
129
+ <gn-ui-copy-text-button
130
+ [text]="metadata.uniqueIdentifier"
131
+ [tooltipText]="'tooltip.id.copy' | translate"
132
+ [displayText]="false"
133
+ ></gn-ui-copy-text-button>
134
+ <p class="text-primary font-medium">
135
+ {{ metadata.uniqueIdentifier }}
136
+ </p>
137
+ </div>
138
+ </div>
139
+ <div *ngIf="metadata.themes?.length">
140
+ <p class="text-sm mb-1" translate>record.metadata.themes</p>
141
+ <div class="sm:pb-4 sm:pr-16">
142
+ <gn-ui-badge
143
+ class="inline-block mr-2 lowercase"
144
+ *ngFor="let theme of metadata.themes"
145
+ >{{ theme }}</gn-ui-badge
146
+ >
147
+ </div>
148
+ </div>
149
+ <div *ngIf="metadata.keywords?.length">
150
+ <p class="text-sm mb-1" translate>record.metadata.keywords</p>
151
+ <div class="sm:pb-4 sm:pr-16">
152
+ <gn-ui-badge
153
+ class="inline-block mr-2 mb-2 lowercase"
154
+ (click)="onKeywordClick(keyword)"
155
+ [clickable]="true"
156
+ *ngFor="let keyword of metadata.keywords"
157
+ >{{ keyword }}</gn-ui-badge
158
+ >
159
+ </div>
160
+ </div>
105
161
  </div>
106
162
  </gn-ui-expandable-panel>
@@ -22,18 +22,42 @@ export class MetadataInfoComponent {
22
22
  get hasUsage() {
23
23
  return (
24
24
  this.metadata.extras?.isOpenData === true ||
25
- this.metadata.useLimitations?.length ||
26
- this.metadata.accessConstraints?.length
25
+ (this.metadata.legalConstraints?.length > 0 &&
26
+ this.legalConstraints.length > 0) ||
27
+ (this.metadata.otherConstraints?.length > 0 &&
28
+ this.otherConstraints.length > 0) ||
29
+ (this.metadata.licenses?.length > 0 && this.licenses.length > 0)
27
30
  )
28
31
  }
29
32
 
30
- get usages(): string[] {
33
+ get legalConstraints() {
31
34
  let array = []
32
- if (this.metadata.useLimitations?.length) {
33
- array = array.concat(this.metadata.useLimitations)
35
+ if (this.metadata.legalConstraints?.length) {
36
+ array = array.concat(
37
+ this.metadata.legalConstraints.filter((c) => c.text).map((c) => c.text)
38
+ )
34
39
  }
35
- if (this.metadata.accessConstraints?.length) {
36
- array = array.concat(this.metadata.accessConstraints.map((c) => c.text))
40
+ return array
41
+ }
42
+
43
+ get otherConstraints() {
44
+ let array = []
45
+ if (this.metadata.otherConstraints?.length) {
46
+ array = array.concat(
47
+ this.metadata.otherConstraints.filter((c) => c.text).map((c) => c.text)
48
+ )
49
+ }
50
+ return array
51
+ }
52
+
53
+ get licenses(): { text: string; url: string }[] {
54
+ let array = []
55
+ if (this.metadata.licenses?.length) {
56
+ array = array.concat(
57
+ this.metadata.licenses
58
+ .filter((c) => c.text)
59
+ .map((c) => ({ text: c.text, url: c.url }))
60
+ )
37
61
  }
38
62
  return array
39
63
  }
@@ -32,8 +32,7 @@ export class MetadataQualityComponent implements OnChanges {
32
32
 
33
33
  get calculatedQualityScore(): number {
34
34
  return Math.round(
35
- (this.items.filter(({ value }) => value === true).length * 100) /
36
- this.items.length
35
+ (this.items.filter(({ value }) => value).length * 100) / this.items.length
37
36
  )
38
37
  }
39
38
 
@@ -19,8 +19,8 @@
19
19
  <div class="flex flex-row items-center gap-2">
20
20
  <gn-ui-text-input
21
21
  class="mr-2 w-20"
22
- (input)="setLimit($event.target.value)"
23
- [value]="limit$ | async"
22
+ (valueChange)="setLimit($event)"
23
+ [value]="displayLimit$ | async"
24
24
  hint=""
25
25
  >
26
26
  </gn-ui-text-input>
@@ -28,8 +28,8 @@
28
28
  <input
29
29
  class="mr-2 cursor-pointer"
30
30
  type="checkbox"
31
- [checked]="(limit$ | async) === ''"
32
- (change)="setLimit('')"
31
+ [checked]="noLimitChecked$ | async"
32
+ (change)="setLimit('-1')"
33
33
  />
34
34
  <span class="text-sm" translate
35
35
  >record.metadata.api.form.limit.all</span
@@ -42,7 +42,7 @@
42
42
  <gn-ui-text-input
43
43
  class="w-20"
44
44
  [value]="offset$ | async"
45
- (input)="setOffset($event.target.value)"
45
+ (valueChange)="setOffset($event)"
46
46
  hint=""
47
47
  >
48
48
  </gn-ui-text-input>
@@ -4,7 +4,7 @@ import { BehaviorSubject, combineLatest, map } from 'rxjs'
4
4
 
5
5
  const DEFAULT_PARAMS = {
6
6
  OFFSET: '',
7
- LIMIT: '',
7
+ LIMIT: '-1',
8
8
  FORMAT: 'json',
9
9
  }
10
10
  @Component({
@@ -44,17 +44,25 @@ export class RecordApiFormComponent {
44
44
  return outputUrl
45
45
  })
46
46
  )
47
+ noLimitChecked$ = this.limit$.pipe(
48
+ map((limit) => limit === '-1' || limit === '')
49
+ )
50
+
51
+ displayLimit$ = this.limit$.pipe(
52
+ map((limit) => (limit !== '-1' ? limit : ''))
53
+ )
47
54
 
48
55
  setOffset(value: string) {
49
56
  this.offset$.next(value)
50
57
  }
51
58
 
52
59
  setLimit(value: string) {
53
- this.limit$.next(value)
60
+ const newLimit = value === '' ? '-1' : value
61
+ this.limit$.next(newLimit)
54
62
  }
55
63
 
56
- setFormat(value: string) {
57
- this.format$.next(value)
64
+ setFormat(value: string | unknown) {
65
+ this.format$.next(String(value))
58
66
  }
59
67
 
60
68
  resetUrl() {
@@ -6,7 +6,7 @@
6
6
  <div class="h-52 bg-gray-100">
7
7
  <gn-ui-thumbnail
8
8
  class="h-52 w-full object-cover"
9
- [thumbnailUrl]="record.overviews?.[0].url.toString()"
9
+ [thumbnailUrl]="record.overviews?.[0]?.url.toString()"
10
10
  ></gn-ui-thumbnail>
11
11
  </div>
12
12
  <div class="flex flex-col justify-between h-44 px-5 pt-4 pb-6">
@@ -10,6 +10,8 @@ import {
10
10
  Optional,
11
11
  SimpleChanges,
12
12
  ViewChild,
13
+ Output,
14
+ EventEmitter,
13
15
  } from '@angular/core'
14
16
 
15
17
  export const THUMBNAIL_PLACEHOLDER = new InjectionToken<string>(
@@ -36,6 +38,7 @@ export class ThumbnailComponent implements OnInit, OnChanges {
36
38
  @Input() fit: FitOptions | FitOptions[] = 'cover'
37
39
  @ViewChild('imageElement') imgElement: ElementRef<HTMLImageElement>
38
40
  @ViewChild('containerElement') containerElement: ElementRef<HTMLDivElement>
41
+ @Output() placeholderShown = new EventEmitter<boolean>()
39
42
  imgUrl: string
40
43
  imgFit: FitOptions
41
44
  placeholderUrl = this.optionalPlaceholderUrl || DEFAULT_PLACEHOLDER
@@ -85,6 +88,7 @@ export class ThumbnailComponent implements OnInit, OnChanges {
85
88
  private setNewSrcImage(image: ThumbnailImageObject) {
86
89
  this.imgFit = image.fit
87
90
  this.imgUrl = image.url
91
+ this.placeholderShown.emit(this.isPlaceholder)
88
92
  }
89
93
 
90
94
  private setPlaceholder(): void {