geonetwork-ui 2.2.0-dev.55bb5e18 → 2.2.0-dev.6695ae4d

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 (313) 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/selection/selection.service.mjs +13 -26
  9. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  10. package/esm2022/libs/common/domain/src/lib/model/search/aggregation.model.mjs +1 -1
  11. package/esm2022/libs/common/domain/src/lib/model/search/field.model.mjs +2 -0
  12. package/esm2022/libs/common/domain/src/lib/model/search/filter.model.mjs +1 -1
  13. package/esm2022/libs/common/domain/src/lib/model/search/index.mjs +2 -1
  14. package/esm2022/libs/common/domain/src/lib/model/search/search.model.mjs +1 -1
  15. package/esm2022/libs/feature/catalog/src/lib/my-org/my-org.service.mjs +4 -10
  16. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +5 -4
  17. package/esm2022/libs/feature/editor/src/lib/record-form/record-form.component.mjs +5 -3
  18. package/esm2022/libs/feature/map/src/index.mjs +2 -1
  19. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +1 -1
  20. package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +106 -0
  21. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +64 -0
  22. package/esm2022/libs/feature/map/src/lib/constant/index.mjs +2 -1
  23. package/esm2022/libs/feature/map/src/lib/constant/projections.mjs +2 -0
  24. package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +23 -3
  25. package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +93 -0
  26. package/esm2022/libs/feature/map/src/lib/geocoding.service.mjs +40 -0
  27. package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +5 -3
  28. package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +3 -1
  29. package/esm2022/libs/feature/map/src/lib/utils/index.mjs +1 -3
  30. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +60 -29
  31. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +29 -20
  32. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +2 -2
  33. package/esm2022/libs/feature/search/src/index.mjs +4 -1
  34. package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +1 -1
  35. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +2 -6
  36. package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +1 -1
  37. package/esm2022/libs/feature/search/src/lib/filter-geometry.token.mjs +4 -0
  38. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +7 -3
  39. package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -0
  40. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +2 -2
  41. package/esm2022/libs/feature/search/src/lib/results-table/results-table.component.mjs +128 -0
  42. package/esm2022/libs/feature/search/src/lib/state/effects.mjs +6 -4
  43. package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +3 -2
  44. package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +1 -1
  45. package/esm2022/libs/ui/elements/src/index.mjs +3 -1
  46. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +3 -3
  47. package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +27 -0
  48. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +2 -2
  49. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
  50. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +38 -17
  51. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +9 -6
  52. package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +3 -3
  53. package/esm2022/libs/ui/elements/src/lib/thumbnail/thumbnail.component.mjs +7 -3
  54. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +10 -3
  55. package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
  56. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +3 -3
  57. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +2 -2
  58. package/esm2022/libs/ui/inputs/src/lib/checkbox/checkbox.component.mjs +3 -3
  59. package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +3 -3
  60. package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +46 -0
  61. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +8 -3
  62. package/esm2022/libs/ui/layout/src/index.mjs +3 -1
  63. package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +2 -2
  64. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.mjs +36 -0
  65. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +37 -0
  66. package/esm2022/libs/ui/search/src/index.mjs +1 -2
  67. package/esm2022/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.mjs +1 -1
  68. package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +1 -1
  69. package/esm2022/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.mjs +1 -1
  70. package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +1 -1
  71. package/esm2022/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.mjs +1 -1
  72. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +9 -10
  73. package/esm2022/libs/util/i18n/src/index.mjs +1 -2
  74. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +29 -13
  75. package/esm2022/translations/de.json +105 -96
  76. package/esm2022/translations/en.json +33 -24
  77. package/esm2022/translations/es.json +13 -4
  78. package/esm2022/translations/fr.json +17 -8
  79. package/esm2022/translations/it.json +16 -7
  80. package/esm2022/translations/nl.json +13 -4
  81. package/esm2022/translations/pt.json +13 -4
  82. package/fesm2022/geonetwork-ui.mjs +1127 -731
  83. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  84. package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts +1 -0
  85. package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
  86. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +0 -1
  87. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  88. package/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.d.ts.map +1 -1
  89. package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts.map +1 -1
  90. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +5 -4
  91. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  92. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +3 -2
  93. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  94. package/libs/api/repository/src/lib/gn4/index.d.ts +2 -0
  95. package/libs/api/repository/src/lib/gn4/index.d.ts.map +1 -1
  96. package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts +4 -5
  97. package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts.map +1 -1
  98. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +15 -15
  99. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  100. package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts +1 -1
  101. package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts.map +1 -1
  102. package/libs/common/domain/src/lib/model/search/field.model.d.ts +2 -0
  103. package/libs/common/domain/src/lib/model/search/field.model.d.ts.map +1 -0
  104. package/libs/common/domain/src/lib/model/search/filter.model.d.ts +1 -1
  105. package/libs/common/domain/src/lib/model/search/filter.model.d.ts.map +1 -1
  106. package/libs/common/domain/src/lib/model/search/index.d.ts +1 -0
  107. package/libs/common/domain/src/lib/model/search/index.d.ts.map +1 -1
  108. package/libs/common/domain/src/lib/model/search/search.model.d.ts +2 -3
  109. package/libs/common/domain/src/lib/model/search/search.model.d.ts.map +1 -1
  110. package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts +0 -1
  111. package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts.map +1 -1
  112. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +15 -2
  113. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  114. package/libs/feature/editor/src/lib/record-form/record-form.component.d.ts.map +1 -1
  115. package/libs/feature/map/src/index.d.ts +1 -0
  116. package/libs/feature/map/src/index.d.ts.map +1 -1
  117. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts +22 -0
  118. package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -0
  119. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts +22 -0
  120. package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -0
  121. package/libs/feature/map/src/lib/constant/index.d.ts +1 -0
  122. package/libs/feature/map/src/lib/constant/index.d.ts.map +1 -1
  123. package/libs/feature/map/src/lib/constant/projections.d.ts.map +1 -0
  124. package/libs/feature/map/src/lib/feature-map.module.d.ts +15 -12
  125. package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
  126. package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts +25 -0
  127. package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts.map +1 -0
  128. package/libs/feature/map/src/lib/geocoding.service.d.ts +18 -0
  129. package/libs/feature/map/src/lib/geocoding.service.d.ts.map +1 -0
  130. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts +1 -0
  131. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +1 -1
  132. package/libs/feature/map/src/lib/utils/index.d.ts +0 -2
  133. package/libs/feature/map/src/lib/utils/index.d.ts.map +1 -1
  134. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +13 -11
  135. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  136. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +1 -3
  137. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  138. package/libs/feature/search/src/index.d.ts +3 -0
  139. package/libs/feature/search/src/index.d.ts.map +1 -1
  140. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts +3 -3
  141. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
  142. package/libs/feature/search/src/lib/feature-search.module.d.ts +0 -4
  143. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  144. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts +3 -2
  145. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts.map +1 -1
  146. package/libs/feature/search/src/lib/filter-geometry.token.d.ts +4 -0
  147. package/libs/feature/search/src/lib/filter-geometry.token.d.ts.map +1 -0
  148. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +1 -1
  149. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  150. package/libs/feature/search/src/lib/record-url.token.d.ts +3 -0
  151. package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -0
  152. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts +33 -0
  153. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts.map +1 -0
  154. package/libs/feature/search/src/lib/state/effects.d.ts.map +1 -1
  155. package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -1
  156. package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
  157. package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts +1 -1
  158. package/libs/ui/elements/src/index.d.ts +2 -0
  159. package/libs/ui/elements/src/index.d.ts.map +1 -1
  160. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
  161. package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts +10 -0
  162. package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts.map +1 -0
  163. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +8 -2
  164. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  165. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +3 -1
  166. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  167. package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts +3 -2
  168. package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts.map +1 -1
  169. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +12 -11
  170. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  171. package/libs/ui/inputs/src/index.d.ts +1 -0
  172. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  173. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts +13 -0
  174. package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -0
  175. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +2 -1
  176. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  177. package/libs/ui/layout/src/index.d.ts +2 -0
  178. package/libs/ui/layout/src/index.d.ts.map +1 -1
  179. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +14 -0
  180. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts.map +1 -0
  181. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +15 -0
  182. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -0
  183. package/libs/ui/search/src/index.d.ts +0 -1
  184. package/libs/ui/search/src/index.d.ts.map +1 -1
  185. package/libs/ui/search/src/lib/ui-search.module.d.ts +15 -15
  186. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
  187. package/libs/util/i18n/src/index.d.ts +0 -1
  188. package/libs/util/i18n/src/index.d.ts.map +1 -1
  189. package/libs/util/shared/src/lib/links/link-utils.d.ts +19 -7
  190. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  191. package/package.json +4 -1
  192. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +6 -6
  193. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +5 -3
  194. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +22 -4
  195. package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +3 -0
  196. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +112 -65
  197. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.ts +4 -2
  198. package/src/libs/api/metadata-converter/src/lib/iso19139/converter.ts +19 -12
  199. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +62 -43
  200. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +91 -59
  201. package/src/libs/api/repository/src/lib/gn4/index.ts +2 -0
  202. package/src/libs/api/repository/src/lib/gn4/selection/selection.service.ts +14 -38
  203. package/src/libs/common/domain/src/lib/index.ts +2 -0
  204. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +17 -18
  205. package/src/libs/common/domain/src/lib/model/search/aggregation.model.ts +1 -1
  206. package/src/libs/common/domain/src/lib/model/search/field.model.ts +1 -0
  207. package/src/libs/common/domain/src/lib/model/search/filter.model.ts +1 -1
  208. package/src/libs/common/domain/src/lib/model/search/index.ts +1 -0
  209. package/src/libs/common/domain/src/lib/model/search/search.model.ts +2 -2
  210. package/src/libs/common/domain/src/lib/model/user/index.ts +1 -0
  211. package/src/libs/feature/catalog/src/lib/my-org/my-org.service.ts +4 -16
  212. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +8 -5
  213. package/src/libs/feature/editor/src/lib/record-form/record-form.component.ts +2 -1
  214. package/src/libs/feature/map/src/index.ts +1 -0
  215. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.css +0 -0
  216. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.html +21 -0
  217. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +107 -0
  218. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.css +0 -0
  219. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.html +37 -0
  220. package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +64 -0
  221. package/src/libs/feature/map/src/lib/constant/index.ts +1 -0
  222. package/src/libs/feature/map/src/lib/feature-map.module.ts +12 -0
  223. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.css +0 -0
  224. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.html +39 -0
  225. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +99 -0
  226. package/src/libs/feature/map/src/lib/geocoding.service.ts +59 -0
  227. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.html +6 -2
  228. package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +6 -0
  229. package/src/libs/feature/map/src/lib/utils/index.ts +0 -2
  230. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +85 -50
  231. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +18 -3
  232. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +1 -1
  233. package/src/libs/feature/search/src/index.ts +3 -0
  234. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +1 -1
  235. package/src/libs/feature/search/src/lib/feature-search.module.ts +1 -10
  236. package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +4 -4
  237. package/src/libs/feature/search/src/lib/filter-geometry.token.ts +7 -0
  238. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +9 -3
  239. package/src/libs/feature/search/src/lib/record-url.token.ts +4 -0
  240. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +1 -1
  241. package/src/libs/feature/search/src/lib/results-table/results-table.component.css +0 -0
  242. package/src/libs/feature/search/src/lib/results-table/results-table.component.html +112 -0
  243. package/src/libs/feature/search/src/lib/results-table/results-table.component.ts +164 -0
  244. package/src/libs/feature/search/src/lib/state/effects.ts +5 -4
  245. package/src/libs/feature/search/src/lib/state/search.facade.ts +2 -1
  246. package/src/libs/ui/elements/src/index.ts +2 -0
  247. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +4 -1
  248. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.css +0 -0
  249. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +30 -0
  250. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.ts +15 -0
  251. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +54 -54
  252. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +2 -2
  253. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +4 -0
  254. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +101 -25
  255. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +35 -7
  256. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +5 -5
  257. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +12 -4
  258. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +1 -1
  259. package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.ts +4 -0
  260. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +4 -0
  261. package/src/libs/ui/inputs/src/index.ts +1 -0
  262. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +1 -1
  263. package/src/libs/ui/inputs/src/lib/button/button.component.css +1 -1
  264. package/src/libs/ui/inputs/src/lib/checkbox/checkbox.component.html +0 -1
  265. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +1 -1
  266. package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +48 -0
  267. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +3 -0
  268. package/src/libs/ui/layout/src/index.ts +2 -0
  269. package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +1 -1
  270. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.css +0 -0
  271. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.html +1 -0
  272. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.ts +33 -0
  273. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.css +15 -0
  274. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +54 -0
  275. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +42 -0
  276. package/src/libs/ui/search/src/index.ts +0 -1
  277. package/src/libs/ui/search/src/lib/ui-search.module.ts +2 -3
  278. package/src/libs/util/i18n/src/index.ts +0 -1
  279. package/src/libs/util/shared/src/lib/links/link-utils.ts +34 -11
  280. package/translations/de.json +105 -96
  281. package/translations/en.json +33 -24
  282. package/translations/es.json +13 -4
  283. package/translations/fr.json +17 -8
  284. package/translations/it.json +16 -7
  285. package/translations/nl.json +13 -4
  286. package/translations/pt.json +13 -4
  287. package/translations/sk.json +13 -4
  288. package/esm2022/libs/feature/map/src/lib/utils/map-utils-wms.service.mjs +0 -55
  289. package/esm2022/libs/feature/map/src/lib/utils/projections.mjs +0 -2
  290. package/esm2022/libs/ui/search/src/lib/record-table/record-table.component.mjs +0 -145
  291. package/esm2022/libs/util/i18n/src/lib/testing/test.translate.loader.mjs +0 -24
  292. package/esm2022/libs/util/i18n/src/lib/testing/test.translate.module.mjs +0 -109
  293. package/esm2022/libs/util/i18n/src/lib/testing/translations.model.mjs +0 -6
  294. package/libs/feature/map/src/lib/utils/map-utils-wms.service.d.ts +0 -17
  295. package/libs/feature/map/src/lib/utils/map-utils-wms.service.d.ts.map +0 -1
  296. package/libs/feature/map/src/lib/utils/projections.d.ts.map +0 -1
  297. package/libs/ui/search/src/lib/record-table/record-table.component.d.ts +0 -31
  298. package/libs/ui/search/src/lib/record-table/record-table.component.d.ts.map +0 -1
  299. package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts +0 -17
  300. package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts.map +0 -1
  301. package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts +0 -131
  302. package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts.map +0 -1
  303. package/libs/util/i18n/src/lib/testing/translations.model.d.ts +0 -21
  304. package/libs/util/i18n/src/lib/testing/translations.model.d.ts.map +0 -1
  305. package/src/libs/feature/map/src/lib/utils/map-utils-wms.service.ts +0 -58
  306. package/src/libs/ui/search/src/lib/record-table/record-table.component.css +0 -7
  307. package/src/libs/ui/search/src/lib/record-table/record-table.component.html +0 -215
  308. package/src/libs/ui/search/src/lib/record-table/record-table.component.ts +0 -149
  309. package/src/libs/util/i18n/src/lib/testing/test.translate.loader.ts +0 -26
  310. package/src/libs/util/i18n/src/lib/testing/test.translate.module.ts +0 -235
  311. package/src/libs/util/i18n/src/lib/testing/translations.model.ts +0 -28
  312. /package/libs/feature/map/src/lib/{utils → constant}/projections.d.ts +0 -0
  313. /package/src/libs/feature/map/src/lib/{utils → constant}/projections.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/libs/ui/layout/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,yCAAyC,CAAA;AACvD,cAAc,mCAAmC,CAAA;AACjD,cAAc,mDAAmD,CAAA;AACjE,cAAc,6CAA6C,CAAA;AAC3D,cAAc,iEAAiE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/libs/ui/layout/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,yCAAyC,CAAA;AACvD,cAAc,mCAAmC,CAAA;AACjD,cAAc,mDAAmD,CAAA;AACjE,cAAc,6CAA6C,CAAA;AAC3D,cAAc,iEAAiE,CAAA;AAC/E,cAAc,qDAAqD,CAAA;AACnE,cAAc,qFAAqF,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { EventEmitter, TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class InteractiveTableColumnComponent {
4
+ header: TemplateRef<unknown>;
5
+ cell: TemplateRef<unknown>;
6
+ grow: boolean;
7
+ sortable: boolean;
8
+ activeSort: 'asc' | 'desc' | null;
9
+ sortChange: EventEmitter<"desc" | "asc">;
10
+ handleSortChange(): void;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<InteractiveTableColumnComponent, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<InteractiveTableColumnComponent, "gn-ui-interactive-table-column", never, { "grow": { "alias": "grow"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "activeSort": { "alias": "activeSort"; "required": false; }; }, { "sortChange": "sortChange"; }, ["header", "cell"], never, true, never>;
13
+ }
14
+ //# sourceMappingURL=interactive-table-column.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive-table-column.component.d.ts","sourceRoot":"","sources":["../../../../../../../src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,YAAY,EAGZ,WAAW,EACZ,MAAM,eAAe,CAAA;;AAGtB,qBAQa,+BAA+B;IAClB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC9B,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAEvC,IAAI,UAAQ;IACZ,QAAQ,UAAQ;IAChB,UAAU,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAAO;IACvC,UAAU,+BAAqC;IAEzD,gBAAgB;yCATL,+BAA+B;2CAA/B,+BAA+B;CAa3C"}
@@ -0,0 +1,15 @@
1
+ import { EventEmitter, QueryList } from '@angular/core';
2
+ import { InteractiveTableColumnComponent } from './interactive-table-column/interactive-table-column.component';
3
+ import * as i0 from "@angular/core";
4
+ export declare class InteractiveTableComponent {
5
+ columns: QueryList<InteractiveTableColumnComponent>;
6
+ items: unknown[];
7
+ itemClick: EventEmitter<unknown>;
8
+ get gridStyle(): {
9
+ 'grid-template-columns': string;
10
+ };
11
+ handleRowClick(item: unknown): void;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<InteractiveTableComponent, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<InteractiveTableComponent, "gn-ui-interactive-table", never, { "items": { "alias": "items"; "required": false; }; }, { "itemClick": "itemClick"; }, ["columns"], never, true, never>;
14
+ }
15
+ //# sourceMappingURL=interactive-table.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive-table.component.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,YAAY,EAGZ,SAAS,EACV,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,+BAA+B,EAAE,MAAM,+DAA+D,CAAA;;AAI/G,qBAQa,yBAAyB;IAEpC,OAAO,EAAE,SAAS,CAAC,+BAA+B,CAAC,CAAA;IAE1C,KAAK,EAAE,OAAO,EAAE,CAAK;IACpB,SAAS,wBAA8B;IAEjD,IAAI,SAAS;;MAQZ;IAED,cAAc,CAAC,IAAI,EAAE,OAAO;yCAjBjB,yBAAyB;2CAAzB,yBAAyB;CAoBrC"}
@@ -14,7 +14,6 @@ export * from './lib/record-preview-card/record-preview-card.component';
14
14
  export * from './lib/record-preview-list/record-preview-list.component';
15
15
  export * from './lib/record-preview-text/record-preview-text.component';
16
16
  export * from './lib/record-preview-title/record-preview-title.component';
17
- export * from './lib/record-table/record-table.component';
18
17
  export * from './lib/record-metric/record-metric.component';
19
18
  export * from './lib/results-list-item/results-list-item.component';
20
19
  export * from './lib/results-hits-number/results-hits-number.component';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/libs/ui/search/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3E,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gDAAgD,CAAA;AAC9D,cAAc,8CAA8C,CAAA;AAC5D,cAAc,8CAA8C,CAAA;AAC5D,cAAc,wBAAwB,CAAA;AACtC,cAAc,0CAA0C,CAAA;AACxD,cAAc,2CAA2C,CAAA;AACzD,cAAc,+CAA+C,CAAA;AAC7D,cAAc,yDAAyD,CAAA;AACvE,cAAc,uDAAuD,CAAA;AACrE,cAAc,yDAAyD,CAAA;AACvE,cAAc,yDAAyD,CAAA;AACvE,cAAc,yDAAyD,CAAA;AACvE,cAAc,2DAA2D,CAAA;AACzE,cAAc,2CAA2C,CAAA;AACzD,cAAc,6CAA6C,CAAA;AAC3D,cAAc,qDAAqD,CAAA;AACnE,cAAc,yDAAyD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/libs/ui/search/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3E,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gDAAgD,CAAA;AAC9D,cAAc,8CAA8C,CAAA;AAC5D,cAAc,8CAA8C,CAAA;AAC5D,cAAc,wBAAwB,CAAA;AACtC,cAAc,0CAA0C,CAAA;AACxD,cAAc,2CAA2C,CAAA;AACzD,cAAc,+CAA+C,CAAA;AAC7D,cAAc,yDAAyD,CAAA;AACvE,cAAc,uDAAuD,CAAA;AACrE,cAAc,yDAAyD,CAAA;AACvE,cAAc,yDAAyD,CAAA;AACvE,cAAc,yDAAyD,CAAA;AACvE,cAAc,2DAA2D,CAAA;AACzE,cAAc,6CAA6C,CAAA;AAC3D,cAAc,qDAAqD,CAAA;AACnE,cAAc,yDAAyD,CAAA"}
@@ -10,23 +10,23 @@ import * as i8 from "./results-hits-number/results-hits-number.component";
10
10
  import * as i9 from "./results-list-item/results-list-item.component";
11
11
  import * as i10 from "./record-preview-feed/record-preview-feed.component";
12
12
  import * as i11 from "./record-preview-row/record-preview-row.component";
13
- import * as i12 from "./record-table/record-table.component";
14
- import * as i13 from "@angular/common";
15
- import * as i14 from "@ngx-translate/core";
16
- import * as i15 from "ngx-dropzone";
17
- import * as i16 from "./facets/facets.module";
18
- import * as i17 from "@angular/forms";
19
- import * as i18 from "ngx-chips";
20
- import * as i19 from "../../../../util/shared/src/lib/util-shared.module";
21
- import * as i20 from "../../../widgets/src/lib/ui-widgets.module";
22
- import * as i21 from "../../../inputs/src/lib/ui-inputs.module";
23
- import * as i22 from "../../../elements/src/lib/ui-elements.module";
24
- import * as i23 from "@angular/material/icon";
25
- import * as i24 from "@angular/material/checkbox";
26
- import * as i25 from "@angular/router";
13
+ import * as i12 from "@angular/common";
14
+ import * as i13 from "@ngx-translate/core";
15
+ import * as i14 from "ngx-dropzone";
16
+ import * as i15 from "./facets/facets.module";
17
+ import * as i16 from "@angular/forms";
18
+ import * as i17 from "ngx-chips";
19
+ import * as i18 from "../../../../util/shared/src/lib/util-shared.module";
20
+ import * as i19 from "../../../widgets/src/lib/ui-widgets.module";
21
+ import * as i20 from "../../../inputs/src/lib/ui-inputs.module";
22
+ import * as i21 from "../../../elements/src/lib/ui-elements.module";
23
+ import * as i22 from "@angular/material/icon";
24
+ import * as i23 from "@angular/material/checkbox";
25
+ import * as i24 from "@angular/router";
26
+ import * as i25 from "../../../layout/src/lib/interactive-table/interactive-table.component";
27
27
  export declare class UiSearchModule {
28
28
  static ɵfac: i0.ɵɵFactoryDeclaration<UiSearchModule, never>;
29
- static ɵmod: i0.ɵɵNgModuleDeclaration<UiSearchModule, [typeof i1.RecordPreviewComponent, typeof i2.RecordPreviewListComponent, typeof i3.RecordPreviewCardComponent, typeof i4.RecordPreviewTextComponent, typeof i5.RecordPreviewTitleComponent, typeof i6.RecordMetricComponent, typeof i7.ResultsListComponent, typeof i8.ResultsHitsNumberComponent, typeof i9.ResultsListItemComponent, typeof i10.RecordPreviewFeedComponent, typeof i11.RecordPreviewRowComponent, typeof i12.RecordTableComponent], [typeof i13.CommonModule, typeof i14.TranslateModule, typeof i15.NgxDropzoneModule, typeof i16.FacetsModule, typeof i17.FormsModule, typeof i17.ReactiveFormsModule, typeof i18.TagInputModule, typeof i19.UtilSharedModule, typeof i20.UiWidgetsModule, typeof i21.UiInputsModule, typeof i22.UiElementsModule, typeof i23.MatIconModule, typeof i24.MatCheckboxModule, typeof i25.RouterLink], [typeof i2.RecordPreviewListComponent, typeof i3.RecordPreviewCardComponent, typeof i4.RecordPreviewTextComponent, typeof i5.RecordPreviewTitleComponent, typeof i6.RecordMetricComponent, typeof i7.ResultsListComponent, typeof i16.FacetsModule, typeof i1.RecordPreviewComponent, typeof i8.ResultsHitsNumberComponent, typeof i10.RecordPreviewFeedComponent, typeof i11.RecordPreviewRowComponent, typeof i12.RecordTableComponent]>;
29
+ static ɵmod: i0.ɵɵNgModuleDeclaration<UiSearchModule, [typeof i1.RecordPreviewComponent, typeof i2.RecordPreviewListComponent, typeof i3.RecordPreviewCardComponent, typeof i4.RecordPreviewTextComponent, typeof i5.RecordPreviewTitleComponent, typeof i6.RecordMetricComponent, typeof i7.ResultsListComponent, typeof i8.ResultsHitsNumberComponent, typeof i9.ResultsListItemComponent, typeof i10.RecordPreviewFeedComponent, typeof i11.RecordPreviewRowComponent], [typeof i12.CommonModule, typeof i13.TranslateModule, typeof i14.NgxDropzoneModule, typeof i15.FacetsModule, typeof i16.FormsModule, typeof i16.ReactiveFormsModule, typeof i17.TagInputModule, typeof i18.UtilSharedModule, typeof i19.UiWidgetsModule, typeof i20.UiInputsModule, typeof i21.UiElementsModule, typeof i22.MatIconModule, typeof i23.MatCheckboxModule, typeof i24.RouterLink, typeof i25.InteractiveTableComponent], [typeof i2.RecordPreviewListComponent, typeof i3.RecordPreviewCardComponent, typeof i4.RecordPreviewTextComponent, typeof i5.RecordPreviewTitleComponent, typeof i6.RecordMetricComponent, typeof i7.ResultsListComponent, typeof i15.FacetsModule, typeof i1.RecordPreviewComponent, typeof i8.ResultsHitsNumberComponent, typeof i10.RecordPreviewFeedComponent, typeof i11.RecordPreviewRowComponent]>;
30
30
  static ɵinj: i0.ɵɵInjectorDeclaration<UiSearchModule>;
31
31
  }
32
32
  //# sourceMappingURL=ui-search.module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui-search.module.d.ts","sourceRoot":"","sources":["../../../../../src/libs/ui/search/src/lib/ui-search.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,qBAiDa,cAAc;yCAAd,cAAc;0CAAd,cAAc;0CAAd,cAAc;CAAG"}
1
+ {"version":3,"file":"ui-search.module.d.ts","sourceRoot":"","sources":["../../../../../src/libs/ui/search/src/lib/ui-search.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,qBAgDa,cAAc;yCAAd,cAAc;0CAAd,cAAc;0CAAd,cAAc;CAAG"}
@@ -3,7 +3,6 @@ export * from './lib/i18n.constants';
3
3
  export * from './lib/i18n.interceptor';
4
4
  export * from './lib/lang.service';
5
5
  export * from './lib/file.translate.loader';
6
- export * from './lib/testing/test.translate.module';
7
6
  export * from './lib/embedded.translate.loader';
8
7
  export * from './lib/translate.loader.utils';
9
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/libs/util/i18n/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qCAAqC,CAAA;AACnD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,8BAA8B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/libs/util/i18n/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,8BAA8B,CAAA"}
@@ -30,47 +30,59 @@ export declare const FORMATS: {
30
30
  readonly color: "#328556";
31
31
  readonly mimeTypes: readonly ["x-gis/x-shapefile"];
32
32
  };
33
+ readonly gml: {
34
+ readonly extensions: readonly ["gml"];
35
+ readonly priority: 5;
36
+ readonly color: "#c92bce";
37
+ readonly mimeTypes: readonly ["application/gml+xml", "text/xml; subtype=gml"];
38
+ };
33
39
  readonly kml: {
34
40
  readonly extensions: readonly ["kml", "kmz"];
35
- readonly priority: 5;
41
+ readonly priority: 6;
36
42
  readonly color: "#348009";
37
43
  readonly mimeTypes: readonly ["application/vnd.google-earth.kml+xml", "application/vnd.google-earth.kmz"];
38
44
  };
39
45
  readonly gpkg: {
40
46
  readonly extensions: readonly ["gpkg", "geopackage"];
41
- readonly priority: 6;
47
+ readonly priority: 7;
42
48
  readonly color: "#ea79ba";
43
49
  readonly mimeTypes: readonly ["application/geopackage+sqlite3"];
44
50
  };
45
51
  readonly zip: {
46
52
  readonly extensions: readonly ["zip", "tar.gz"];
47
- readonly priority: 7;
53
+ readonly priority: 8;
48
54
  readonly color: "#f2bb3a";
49
55
  readonly mimeTypes: readonly ["application/zip", "application/x-zip"];
50
56
  };
51
57
  readonly pdf: {
52
58
  readonly extensions: readonly ["pdf"];
53
- readonly priority: 8;
59
+ readonly priority: 9;
54
60
  readonly color: "#db544a";
55
61
  readonly mimeTypes: readonly ["application/pdf"];
56
62
  };
57
63
  readonly jpg: {
58
64
  readonly extensions: readonly ["jpg", "jpeg", "jfif", "pjpeg", "pjp"];
59
- readonly priority: 8;
65
+ readonly priority: 9;
60
66
  readonly color: "#673ab7";
61
67
  readonly mimeTypes: readonly ["image/jpg"];
62
68
  };
63
69
  readonly svg: {
64
70
  readonly extensions: readonly ["svg"];
65
- readonly priority: 9;
71
+ readonly priority: 10;
66
72
  readonly color: "#d98294";
67
73
  readonly mimeTypes: readonly ["image/svg+xml"];
68
74
  };
75
+ readonly dxf: {
76
+ readonly extensions: readonly ["dxf"];
77
+ readonly priority: 11;
78
+ readonly color: "#de630b";
79
+ readonly mimeTypes: readonly ["application/x-dxf", "image/x-dxf"];
80
+ };
69
81
  };
70
82
  export type FileFormat = keyof typeof FORMATS;
71
83
  export declare function getFormatPriority(linkFormat: FileFormat): number;
72
84
  export declare function getLinkPriority(link: DatasetDistribution): number;
73
- export declare function extensionToFormat(extension: string): FileFormat;
85
+ export declare function getFileFormatFromServiceOutput(serviceOutput: string): FileFormat | null;
74
86
  export declare function getFileFormat(link: DatasetDistribution): FileFormat;
75
87
  export declare function isFormatInQueryParam(link: DatasetDistribution, alias: string): boolean;
76
88
  export declare function mimeTypeToFormat(mimeType: string): FileFormat;
@@ -1 +1 @@
1
- {"version":3,"file":"link-utils.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/util/shared/src/lib/links/link-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAA;AAI/F,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+EV,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,OAAO,CAAA;AAE7C,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAUhE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAEjE;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAO/D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,mBAAmB,GAAG,UAAU,CAcnE;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,mBAAmB,EACzB,KAAK,EAAE,MAAM,GACZ,OAAO,CAQT;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAO7D;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,mBAAmB,EACzB,MAAM,EAAE,UAAU,GACjB,OAAO,CAMT;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAQ5D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CA0B9D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAEtE"}
1
+ {"version":3,"file":"link-utils.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/util/shared/src/lib/links/link-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAA;AAI/F,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2FV,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,OAAO,CAAA;AAE7C,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAUhE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAEjE;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,MAAM,GACpB,UAAU,GAAG,IAAI,CAgBnB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,mBAAmB,GAAG,UAAU,CAcnE;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,mBAAmB,EACzB,KAAK,EAAE,MAAM,GACZ,OAAO,CAQT;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAO7D;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,mBAAmB,EACzB,MAAM,EAAE,UAAU,GACjB,OAAO,CAMT;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAQ5D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CA0B9D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAEtE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "geonetwork-ui",
3
- "version": "2.2.0-dev.55bb5e18",
3
+ "version": "2.2.0-dev.6695ae4d",
4
4
  "engines": {
5
5
  "node": ">=14.17.0"
6
6
  },
@@ -48,12 +48,14 @@
48
48
  "dependencies": {
49
49
  "@biesbjerg/ngx-translate-extract-marker": "^1.0.0",
50
50
  "@camptocamp/ogc-client": "^0.4.0",
51
+ "@geospatial-sdk/geocoding": "^0.0.5-alpha.2",
51
52
  "@ltd/j-toml": "~1.35.2",
52
53
  "@messageformat/core": "^3.0.1",
53
54
  "@nx/angular": "16.6.0",
54
55
  "@rgrove/parse-xml": "~4.0.1",
55
56
  "alasql": "^3.1.0",
56
57
  "axios": "^1.6.0",
58
+ "basiclightbox": "^5.0.4",
57
59
  "chart.js": "^4.2.0",
58
60
  "chroma-js": "^2.1.2",
59
61
  "date-fns": "^2.29.3",
@@ -62,6 +64,7 @@
62
64
  "embla-carousel": "^8.0.0-rc14",
63
65
  "express": "^4.17.1",
64
66
  "geojson-validation": "^1.0.2",
67
+ "marked": "^11.1.1",
65
68
  "moment": "^2.29.4",
66
69
  "ng-table-virtual-scroll": "^1.4.1",
67
70
  "ngx-chips": "3.0.0",
@@ -93,9 +93,9 @@ Cette section contient des *caractères internationaux* (ainsi que des "caractè
93
93
  lineage: `This record was edited manually to test the conversion processes
94
94
 
95
95
  As such, **it is not very interesting at all.**`,
96
- useLimitations: [
97
- 'Should only be used as a testing tool',
98
- 'Might cause minor annoyance in people',
96
+ otherConstraints: [
97
+ { text: 'Should only be used as a testing tool' },
98
+ { text: 'Might cause minor annoyance in people' },
99
99
  ],
100
100
  licenses: [
101
101
  {
@@ -103,14 +103,14 @@ As such, **it is not very interesting at all.**`,
103
103
  url: new URL('https://data.rennesmetropole.fr/pages/licence/'),
104
104
  },
105
105
  ],
106
- accessConstraints: [
106
+ legalConstraints: [
107
107
  {
108
108
  text: "Dataset access isn't possible since it does not really exist",
109
- type: 'other',
110
109
  },
110
+ ],
111
+ securityConstraints: [
111
112
  {
112
113
  text: 'Contains sensitive information related to national defense',
113
- type: 'security',
114
114
  },
115
115
  ],
116
116
  spatialExtents: [],
@@ -59,14 +59,16 @@ Malgré l'attention portée à la création de ces données, il est rappelé que
59
59
  ],
60
60
  lineage: `Document d’urbanisme numérisé conformément aux prescriptions nationales du CNIG par le Service d'Information Géographique de l'Agglomération de la Région de Compiègne.
61
61
  Ce lot de données produit en 2019, a été numérisé à partir du PCI Vecteur de 2019 et contrôlé par le Service d'Information Géographique de l'Agglomération de la Région de Compiègne.`,
62
- accessConstraints: [],
63
- useLimitations: ["Aucune condition ne s'applique", 'Licence Ouverte 2.0'],
64
62
  licenses: [
65
- // this does not make sense but there's no way to infer anything else from the metadata
66
63
  {
67
64
  text: "En dépit des efforts et diligences mis en œuvre pour en vérifier la fiabilité, le fournisseur n’est pas en mesure de garantir l’exactitude, la mise à jour, l’intégrité, l’exhaustivité des données et en particulier que les données sont exemptes d'erreurs, notamment de localisation, d’identification ou d’actualisation ou d’imprécisions. Les données ne sont pas fournies en vue d'une utilisation particulière et aucune garantie quant à leur aptitude à un usage particulier n'est apportée par le fournisseur. En conséquence, les utilisateurs utilisent les données sous leur responsabilité pleine et entière, à leurs risques et périls, sans recours possible contre le fournisseur dont la responsabilité ne saurait être engagée du fait d’un dommage résultant directement ou indirectement de l’utilisation de ces données. En particulier, il appartient aux utilisateurs d’apprécier, sous leur seule responsabilité : – l'opportunité d'utiliser les données ; – la compatibilité des fichiers avec leurs systèmes informatiques ; – l’adéquation des données à leurs besoins ; – qu’ils disposent de la compétence suffisante pour utiliser les données ; – l’opportunité d’utiliser la documentation ou les outils d’analyse fournis ou préconisés, en relation avec l’utilisation des données, le cas échéant. Le fournisseur n’est en aucune façon responsable des éléments extérieurs aux données et notamment des outils d’analyse, matériels, logiciels, réseaux..., utilisés pour consulter et/ou traiter les données, même s’il a préconisé ces éléments. L’utilisateur veille à vérifier que l’actualité des informations mises à disposition est compatible avec l’usage qu’il en fait.",
68
65
  },
66
+ { text: "Aucune condition ne s'applique" },
67
+ { text: 'Licence Ouverte 2.0' },
69
68
  ],
69
+ legalConstraints: [],
70
+ securityConstraints: [],
71
+ otherConstraints: [],
70
72
  // data quality?
71
73
  spatialExtents: [],
72
74
  temporalExtents: [],
@@ -138,13 +138,30 @@ export const GEOCAT_CH_DATASET_RECORD: DatasetRecord = {
138
138
  ],
139
139
  lineage:
140
140
  'Digitalisiert nach den administrativen Einheiten der Schweiz, die im Anhang des Übereinkommens erscheinen.',
141
- accessConstraints: [],
142
- useLimitations: [],
143
141
  licenses: [
144
142
  {
145
143
  text: "Licence passée entre l'Office fédéral de l'environnement (OFEV), et le canton de Fribourg, représenté par la Coordination SIT (SITel)",
146
144
  },
147
145
  ],
146
+ legalConstraints: [
147
+ {
148
+ text: `1. Nutzungsbestimmung
149
+
150
+ Diese Geodaten unterliegen folgenden Nutzungsbeschränkungen:
151
+
152
+ - Sie dürfen nicht vervielfältigt, verbreitet und/oder weiter zugänglich gemacht werden.
153
+
154
+ - Sie dürfen nicht kommerziell genutzt werden.
155
+
156
+ - Sie dürfen ausschliesslich zu vorgegebenen Zwecken genutzt werden.
157
+
158
+ - Sie dürfen ausschliesslich zu dem unter 4. beschriebenen Zweck genutzt werden.
159
+
160
+ Die Quelle ist zu bezeichnen: „Quelle: Stadt Zürich“.`,
161
+ },
162
+ ],
163
+ securityConstraints: [],
164
+ otherConstraints: [],
148
165
  // data quality?
149
166
  spatialExtents: [],
150
167
  temporalExtents: [],
@@ -216,7 +233,8 @@ export const GEOCAT_CH_SERVICE_RECORD: ServiceRecord = {
216
233
  'https://services.geo.sg.ch/wss/service/SG00170_WMS/guest?request=GetCapabilities&service=WMS',
217
234
  },
218
235
  ],
219
- accessConstraints: [],
220
- useLimitations: [],
221
236
  licenses: [],
237
+ legalConstraints: [],
238
+ securityConstraints: [],
239
+ otherConstraints: [],
222
240
  }
@@ -41,6 +41,9 @@ export const toDate = (field) => new Date(field)
41
41
  export const getFirstValue = (field) =>
42
42
  Array.isArray(field) ? field[0] : field
43
43
 
44
+ export const getArrayItem = (field, index) =>
45
+ Array.isArray(field) && field[index] !== undefined ? field[index] : null
46
+
44
47
  export const getAsArray = (field) =>
45
48
  Array.isArray(field) ? field : field !== null ? [field] : []
46
49
 
@@ -1,4 +1,5 @@
1
1
  import {
2
+ getArrayItem,
2
3
  getAsArray,
3
4
  getAsUrl,
4
5
  getFirstValue,
@@ -16,12 +17,13 @@ import { Injectable } from '@angular/core'
16
17
  import { getStatusFromStatusCode } from '../iso19139/codelists/status.mapper'
17
18
  import { getUpdateFrequencyFromFrequencyCode } from '../iso19139/codelists/update-frequency.mapper'
18
19
  import {
19
- AccessConstraintType,
20
20
  CatalogRecord,
21
+ Constraint,
21
22
  DatasetDistribution,
22
23
  DatasetDistributionType,
23
24
  DatasetDownloadDistribution,
24
25
  DatasetServiceDistribution,
26
+ DatasetSpatialExtent,
25
27
  OnlineLinkResource,
26
28
  } from '../../../../../../libs/common/domain/src/lib/model/record'
27
29
  import { matchProtocol } from '../common/distribution.mapper'
@@ -183,37 +185,41 @@ export class Gn4FieldMapper {
183
185
  ],
184
186
  }),
185
187
  MD_ConstraintsUseLimitationObject: (output, source) =>
186
- this.constraintField('MD_ConstraintsUseLimitationObject', output, source),
188
+ this.constraintField(
189
+ 'other',
190
+ output,
191
+ getAsArray(selectField(source, 'MD_ConstraintsUseLimitationObject'))
192
+ ),
187
193
  MD_LegalConstraintsUseLimitationObject: (output, source) =>
188
194
  this.constraintField(
189
- 'MD_LegalConstraintsUseLimitationObject',
195
+ 'legal',
190
196
  output,
191
- source
197
+ getAsArray(
198
+ selectField(source, 'MD_LegalConstraintsUseLimitationObject')
199
+ )
192
200
  ),
193
201
  MD_LegalConstraintsOtherConstraintsObject: (output, source) =>
194
202
  this.constraintField(
195
- 'MD_LegalConstraintsOtherConstraintsObject',
203
+ 'legal',
196
204
  output,
197
- source
205
+ getAsArray(
206
+ selectField(source, 'MD_LegalConstraintsOtherConstraintsObject')
207
+ )
198
208
  ),
199
209
  MD_SecurityConstraintsUseLimitationObject: (output, source) =>
200
210
  this.constraintField(
201
- 'MD_SecurityConstraintsUseLimitationObject',
211
+ 'security',
202
212
  output,
203
- source
213
+ getAsArray(
214
+ selectField(source, 'MD_SecurityConstraintsUseLimitationObject')
215
+ )
216
+ ),
217
+ licenseObject: (output, source) =>
218
+ this.constraintField(
219
+ 'license',
220
+ output,
221
+ getAsArray(selectField(source, 'licenseObject'))
204
222
  ),
205
- licenseObject: (output, source) => ({
206
- ...output,
207
- licenses: getAsArray(
208
- selectField<SourceWithUnknownProps[]>(source, 'licenseObject')
209
- ).map((license) => {
210
- const link = getAsUrl(selectField(license, 'link'))
211
- return {
212
- text: selectTranslatedValue<string>(license, this.lang3),
213
- ...(link ? { link } : {}),
214
- }
215
- }),
216
- }),
217
223
  lineageObject: (output, source) => ({
218
224
  ...output,
219
225
  lineage: selectTranslatedField(source, 'lineageObject', this.lang3),
@@ -258,57 +264,98 @@ export class Gn4FieldMapper {
258
264
  kind,
259
265
  }
260
266
  },
267
+ geom: (output, source) => {
268
+ const geoms = getAsArray(selectField(source, 'geom'))
269
+ const shapes = getAsArray(selectField(source, 'shape'))
270
+ const extentDescriptions = getAsArray(
271
+ selectField(source, 'extentDescriptionObject')
272
+ )
273
+ const spatialExtents = getAsArray(selectField(source, 'spatialExtents'))
274
+ return {
275
+ ...output,
276
+ spatialExtents: [
277
+ ...spatialExtents,
278
+ ...geoms.map((geom, index) => {
279
+ const description = selectTranslatedValue(
280
+ getArrayItem(extentDescriptions, index),
281
+ this.lang3
282
+ )
283
+ const geometry = shapes[index] ?? geom
284
+ return {
285
+ ...(description !== null ? { description } : null),
286
+ geometry,
287
+ } as DatasetSpatialExtent
288
+ }),
289
+ ],
290
+ }
291
+ },
292
+ resourceTemporalDateRange: (output, source) => {
293
+ const ranges = getAsArray(
294
+ selectField(source, 'resourceTemporalDateRange')
295
+ )
296
+ return {
297
+ ...output,
298
+ temporalExtents: ranges.map((range) => {
299
+ const start = selectField(range, 'gte')
300
+ const end = selectField(range, 'lte')
301
+ return {
302
+ ...(start !== null ? { start: toDate(start) } : null),
303
+ ...(end !== null ? { end: toDate(end) } : null),
304
+ }
305
+ }),
306
+ }
307
+ },
261
308
  }
262
309
 
263
310
  private genericField = (output) => output
264
311
 
265
- private constraintField = (fieldName: string, output, source) => ({
266
- ...output,
267
- ...(fieldName.endsWith('UseLimitationObject')
268
- ? {
269
- legalConstraints:
270
- fieldName === 'MD_LegalConstraintsUseLimitationObject'
271
- ? [
272
- ...(output.legalConstraints || []),
273
- ...selectField<SourceWithUnknownProps[]>(
274
- source,
275
- fieldName
276
- ).map((source: SourceWithUnknownProps) =>
277
- selectTranslatedValue(source, this.lang3)
278
- ),
279
- ]
280
- : output.legalConstraints || [],
281
- useLimitations: [
282
- ...(output.useLimitations || []),
283
- ...selectField<SourceWithUnknownProps[]>(source, fieldName).map(
284
- (source: SourceWithUnknownProps) =>
285
- selectTranslatedValue(source, this.lang3)
286
- ),
287
- ],
312
+ private constraintField = (
313
+ type: 'license' | 'legal' | 'security' | 'other',
314
+ output: Partial<CatalogRecord>,
315
+ constraintArray: SourceWithUnknownProps[]
316
+ ) => {
317
+ let outputField: string
318
+ switch (type) {
319
+ case 'license':
320
+ outputField = 'licenses'
321
+ break
322
+ case 'legal':
323
+ outputField = 'legalConstraints'
324
+ break
325
+ case 'security':
326
+ outputField = 'securityConstraints'
327
+ break
328
+ case 'other':
329
+ outputField = 'otherConstraints'
330
+ break
331
+ }
332
+ const outputArray: Constraint[] =
333
+ outputField in output ? output[outputField] : []
334
+ outputArray.push(
335
+ ...constraintArray.map((item) => {
336
+ const text = selectTranslatedValue(item, this.lang3) as string
337
+ const url = getAsUrl(selectField(item, 'link'))
338
+ return {
339
+ text,
340
+ ...(url ? { url } : {}),
288
341
  }
289
- : {
290
- accessConstraints: [
291
- ...(output.accessConstraints || []),
292
- ...selectField<SourceWithUnknownProps[]>(source, fieldName).map(
293
- (field) => ({
294
- text: selectTranslatedValue(field, this.lang3),
295
- type: this.getConstraintsType(fieldName),
296
- })
297
- ),
298
- ],
299
- }),
300
- })
301
-
302
- private getConstraintsType(indexField: string): AccessConstraintType {
303
- switch (indexField) {
304
- case 'MD_LegalConstraintsUseLimitationObject':
305
- return 'legal'
306
- case 'MD_SecurityConstraintsUseLimitationObject':
307
- return 'security'
308
- case 'MD_ConstraintsUseLimitationObject':
309
- default:
310
- return 'other'
342
+ })
343
+ )
344
+ const result = {
345
+ ...output,
346
+ [outputField]: outputArray,
347
+ }
348
+ // avoid legal constraints being duplicates of licenses
349
+ if (
350
+ 'legalConstraints' in result &&
351
+ (type === 'legal' || type === 'license')
352
+ ) {
353
+ result.legalConstraints = result.legalConstraints.filter(
354
+ (constraint) =>
355
+ !output.licenses?.some((license) => license.text === constraint.text)
356
+ )
311
357
  }
358
+ return result
312
359
  }
313
360
 
314
361
  getMappingFn(fieldName: string) {
@@ -26,14 +26,16 @@ export class Gn4MetadataMapper extends MetadataBaseMapper<Gn4Record> {
26
26
  recordUpdated: null,
27
27
  ownerOrganization: null,
28
28
  licenses: [],
29
+ legalConstraints: [],
30
+ securityConstraints: [],
31
+ otherConstraints: [],
29
32
  contacts: [],
30
33
  contactsForResource: [],
31
- accessConstraints: [],
32
34
  keywords: [],
33
35
  themes: [],
34
- useLimitations: [],
35
36
  spatialExtents: [],
36
37
  temporalExtents: [],
38
+ overviews: [],
37
39
  }
38
40
  const record: CatalogRecord = Object.keys(_source).reduce(
39
41
  (prev, fieldName) =>