geonetwork-ui 2.6.0-dev.c4b99cdef → 2.6.0-dev.c5432f39f

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 (250) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/common/distribution.mapper.mjs +3 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +37 -4
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +8 -4
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +5 -2
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +4 -4
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +2 -2
  8. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +2 -1
  9. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +3 -3
  10. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +42 -9
  11. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  12. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  13. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +45 -9
  14. package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +2 -2
  15. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +32 -2
  16. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +25 -6
  17. package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +266 -11
  18. package/esm2022/libs/feature/record/src/index.mjs +2 -3
  19. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +3 -3
  20. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +33 -7
  21. package/esm2022/libs/feature/record/src/lib/state/mdview.actions.mjs +3 -1
  22. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +7 -1
  23. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +13 -13
  24. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +7 -1
  25. package/esm2022/libs/feature/record/src/lib/state/mdview.selectors.mjs +3 -1
  26. package/esm2022/libs/feature/search/src/lib/constants.mjs +2 -1
  27. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +6 -2
  28. package/esm2022/libs/ui/dataviz/src/lib/chart/chart.component.mjs +5 -3
  29. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +11 -6
  30. package/esm2022/libs/ui/elements/src/index.mjs +3 -1
  31. package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +55 -0
  32. package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +27 -53
  33. package/esm2022/libs/ui/elements/src/lib/kind-badge/kind-badge.component.mjs +22 -5
  34. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
  35. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +3 -3
  36. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +3 -3
  37. package/esm2022/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.mjs +51 -0
  38. package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +17 -7
  39. package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +12 -4
  40. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +10 -4
  41. package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
  42. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +3 -3
  43. package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +68 -0
  44. package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +3 -3
  45. package/esm2022/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.mjs +34 -13
  46. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +3 -3
  47. package/esm2022/libs/ui/layout/src/lib/truncated-text/truncated-text.component.mjs +65 -14
  48. package/esm2022/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.mjs +29 -4
  49. package/esm2022/libs/ui/search/src/index.mjs +2 -1
  50. package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +4 -8
  51. package/esm2022/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.mjs +3 -3
  52. package/esm2022/libs/ui/search/src/lib/results-list/results-layout.config.mjs +2 -2
  53. package/esm2022/libs/ui/search/src/lib/results-list/results-list.component.mjs +3 -3
  54. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +19 -12
  55. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +27 -14
  56. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +10 -4
  57. package/esm2022/libs/util/i18n/src/lib/i18n.constants.mjs +42 -1
  58. package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +24 -2
  59. package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +4 -1
  60. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +4 -1
  61. package/esm2022/translations/de.json +28 -2
  62. package/esm2022/translations/en.json +29 -5
  63. package/esm2022/translations/es.json +28 -2
  64. package/esm2022/translations/fr.json +28 -4
  65. package/esm2022/translations/it.json +60 -34
  66. package/esm2022/translations/nl.json +28 -2
  67. package/esm2022/translations/pt.json +28 -2
  68. package/fesm2022/geonetwork-ui.mjs +1657 -675
  69. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  70. package/libs/api/metadata-converter/src/lib/common/distribution.mapper.d.ts.map +1 -1
  71. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  72. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +0 -1
  73. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  74. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +1 -0
  75. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -1
  76. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -1
  77. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  78. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  79. package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
  80. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -1
  81. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  82. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +7 -2
  83. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  84. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +4 -1
  85. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  86. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +3 -0
  87. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  88. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +12 -8
  89. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  90. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +1 -0
  91. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  92. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +5 -2
  93. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  94. package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts +48 -3
  95. package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts.map +1 -1
  96. package/libs/feature/record/src/index.d.ts +1 -2
  97. package/libs/feature/record/src/index.d.ts.map +1 -1
  98. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  99. package/libs/feature/record/src/lib/state/mdview.actions.d.ts +10 -0
  100. package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
  101. package/libs/feature/record/src/lib/state/mdview.effects.d.ts +6 -0
  102. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  103. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +28 -21
  104. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  105. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +2 -0
  106. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
  107. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +2 -0
  108. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
  109. package/libs/feature/search/src/lib/constants.d.ts.map +1 -1
  110. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts +1 -1
  111. package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts.map +1 -1
  112. package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts +2 -1
  113. package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts.map +1 -1
  114. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts +6 -1
  115. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -1
  116. package/libs/ui/elements/src/index.d.ts +2 -0
  117. package/libs/ui/elements/src/index.d.ts.map +1 -1
  118. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +15 -0
  119. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -0
  120. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts +3 -7
  121. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -1
  122. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts +3 -1
  123. package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts.map +1 -1
  124. package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts +16 -0
  125. package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts.map +1 -0
  126. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +8 -1
  127. package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +1 -1
  128. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts +1 -0
  129. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -1
  130. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
  131. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  132. package/libs/ui/inputs/src/index.d.ts +1 -0
  133. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  134. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts +17 -0
  135. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -0
  136. package/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.d.ts +15 -8
  137. package/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.d.ts.map +1 -1
  138. package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts +15 -6
  139. package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts.map +1 -1
  140. package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts +6 -2
  141. package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts.map +1 -1
  142. package/libs/ui/search/src/index.d.ts +1 -0
  143. package/libs/ui/search/src/index.d.ts.map +1 -1
  144. package/libs/ui/search/src/lib/results-list/results-list.component.d.ts.map +1 -1
  145. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +3 -3
  146. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
  147. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +5 -1
  148. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  149. package/libs/ui/search/src/lib/ui-search.module.d.ts +2 -1
  150. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
  151. package/libs/util/i18n/src/lib/i18n.constants.d.ts +1 -0
  152. package/libs/util/i18n/src/lib/i18n.constants.d.ts.map +1 -1
  153. package/libs/util/i18n/src/lib/language-codes.d.ts +23 -1
  154. package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
  155. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
  156. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  157. package/package.json +2 -2
  158. package/src/libs/api/metadata-converter/src/lib/common/distribution.mapper.ts +1 -0
  159. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +1 -1
  160. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +55 -4
  161. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +0 -1
  162. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +13 -3
  163. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +5 -1
  164. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +8 -4
  165. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +4 -1
  166. package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +1 -0
  167. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +2 -2
  168. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +66 -7
  169. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +9 -2
  170. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +3 -0
  171. package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +10 -0
  172. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +14 -0
  173. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +1 -1
  174. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.html +12 -9
  175. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +54 -10
  176. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +37 -0
  177. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.html +1 -0
  178. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +27 -1
  179. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +117 -11
  180. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.ts +316 -6
  181. package/src/libs/feature/record/src/index.ts +1 -2
  182. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +2 -0
  183. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +4 -1
  184. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +35 -4
  185. package/src/libs/feature/record/src/lib/state/mdview.actions.ts +10 -0
  186. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +22 -0
  187. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +22 -15
  188. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +12 -0
  189. package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +9 -0
  190. package/src/libs/feature/search/src/lib/constants.ts +1 -0
  191. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +2 -0
  192. package/src/libs/ui/dataviz/src/lib/chart/chart.component.ts +2 -1
  193. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.html +6 -3
  194. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +5 -4
  195. package/src/libs/ui/elements/src/index.ts +2 -0
  196. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.css +4 -0
  197. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +13 -0
  198. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +54 -0
  199. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +133 -138
  200. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +19 -47
  201. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.html +7 -5
  202. package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.ts +21 -2
  203. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +6 -3
  204. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +4 -0
  205. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +1 -1
  206. package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.html +48 -0
  207. package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.ts +52 -0
  208. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +8 -29
  209. package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +14 -1
  210. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.html +15 -1
  211. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +9 -1
  212. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +3 -1
  213. package/src/libs/ui/inputs/src/index.ts +1 -0
  214. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +1 -1
  215. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.css +0 -0
  216. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html +43 -0
  217. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +77 -0
  218. package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.html +1 -2
  219. package/src/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.html +24 -8
  220. package/src/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.ts +36 -10
  221. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +1 -0
  222. package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.html +8 -10
  223. package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.ts +75 -7
  224. package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.html +3 -3
  225. package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.ts +27 -3
  226. package/src/libs/ui/search/src/index.ts +1 -0
  227. package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.html +9 -81
  228. package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.html +1 -0
  229. package/src/libs/ui/search/src/lib/results-list/results-layout.config.ts +2 -2
  230. package/src/libs/ui/search/src/lib/results-list/results-list.component.html +1 -0
  231. package/src/libs/ui/search/src/lib/results-list/results-list.component.ts +0 -1
  232. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +11 -3
  233. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +14 -11
  234. package/src/libs/ui/search/src/lib/results-table/results-table.component.css +4 -0
  235. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +27 -17
  236. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +20 -10
  237. package/src/libs/ui/search/src/lib/ui-search.module.ts +3 -0
  238. package/src/libs/util/i18n/src/lib/i18n.constants.ts +42 -0
  239. package/src/libs/util/i18n/src/lib/language-codes.ts +23 -1
  240. package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +3 -0
  241. package/src/libs/util/shared/src/lib/links/link-utils.ts +3 -0
  242. package/tailwind.base.css +1 -1
  243. package/translations/de.json +28 -2
  244. package/translations/en.json +29 -5
  245. package/translations/es.json +28 -2
  246. package/translations/fr.json +28 -4
  247. package/translations/it.json +60 -34
  248. package/translations/nl.json +28 -2
  249. package/translations/pt.json +28 -2
  250. package/translations/sk.json +28 -2
@@ -4,16 +4,22 @@ import {
4
4
  Component,
5
5
  ElementRef,
6
6
  Input,
7
+ OnDestroy,
7
8
  ViewChild,
9
+ NgZone,
8
10
  } from '@angular/core'
9
11
  import { CommonModule } from '@angular/common'
10
- import { provideIcons } from '@ng-icons/core'
12
+ import { provideIcons, NgIconComponent } from '@ng-icons/core'
11
13
  import { iconoirExpand, iconoirReduce } from '@ng-icons/iconoir'
12
14
  import { TranslateModule } from '@ngx-translate/core'
13
15
  import { MatButtonModule } from '@angular/material/button'
14
- import { OverlayModule } from '@angular/cdk/overlay'
16
+ import {
17
+ OverlayModule,
18
+ ViewportRuler,
19
+ ConnectedPosition,
20
+ } from '@angular/cdk/overlay'
15
21
  import { ButtonComponent } from '../../../../../../libs/ui/inputs/src'
16
- import { NgIconComponent } from '@ng-icons/core'
22
+ import { Subscription } from 'rxjs'
17
23
 
18
24
  @Component({
19
25
  selector: 'gn-ui-truncated-text',
@@ -30,24 +36,85 @@ import { NgIconComponent } from '@ng-icons/core'
30
36
  templateUrl: './truncated-text.component.html',
31
37
  styles: [],
32
38
  })
33
- export class TruncatedTextComponent implements AfterViewInit {
39
+ export class TruncatedTextComponent implements AfterViewInit, OnDestroy {
34
40
  @Input() text = ''
41
+ @Input() extraClass = ''
42
+
35
43
  @ViewChild('textElement') textElement: ElementRef<HTMLElement>
36
44
  isTextTruncated = false
37
45
  isOpen = false
46
+ overlayPosition: ConnectedPosition = {
47
+ originX: 'end',
48
+ originY: 'top',
49
+ overlayX: 'end',
50
+ overlayY: 'top',
51
+ }
52
+ private readonly resizeObserver: ResizeObserver
53
+ private readonly mutationObserver: MutationObserver
54
+ private readonly viewportSubscription: Subscription
55
+
56
+ constructor(
57
+ private readonly cd: ChangeDetectorRef,
58
+ private readonly ngZone: NgZone,
59
+ private readonly viewportRuler: ViewportRuler
60
+ ) {
61
+ this.resizeObserver = new ResizeObserver(() => {
62
+ this.ngZone.run(() => this.checkTextTruncation())
63
+ })
38
64
 
39
- constructor(private cd: ChangeDetectorRef) {}
65
+ this.mutationObserver = new MutationObserver(() => {
66
+ this.ngZone.run(() => {
67
+ this.checkTextTruncation()
68
+ this.close()
69
+ })
70
+ })
71
+
72
+ this.viewportSubscription = this.viewportRuler.change().subscribe(() => {
73
+ if (this.isOpen) {
74
+ this.updateOverlayPosition()
75
+ }
76
+ })
77
+ }
40
78
 
41
79
  ngAfterViewInit() {
80
+ const element = this.textElement.nativeElement
81
+ this.resizeObserver?.observe(element)
82
+ this.mutationObserver?.observe(element.parentElement, {
83
+ attributes: true,
84
+ childList: true,
85
+ subtree: true,
86
+ })
42
87
  this.checkTextTruncation()
43
88
  }
44
89
 
45
- ngOnChange() {
46
- this.checkTextTruncation()
90
+ ngOnDestroy() {
91
+ this.resizeObserver?.disconnect()
92
+ this.mutationObserver?.disconnect()
93
+ this.viewportSubscription?.unsubscribe()
94
+ this.close()
47
95
  }
48
96
 
49
97
  toggleOverlay() {
50
98
  this.isOpen = !this.isOpen
99
+ if (this.isOpen) {
100
+ this.updateOverlayPosition()
101
+ }
102
+ }
103
+
104
+ private updateOverlayPosition() {
105
+ const element = this.textElement.nativeElement
106
+ const rect = element.getBoundingClientRect()
107
+ const viewportWidth = this.viewportRuler.getViewportSize().width
108
+ const isMobile = viewportWidth < 640
109
+ const overlayWidth = isMobile ? 190 : 320
110
+ const isNearLeftEdge = rect.left < overlayWidth
111
+
112
+ this.overlayPosition = {
113
+ originX: isNearLeftEdge ? 'start' : 'end',
114
+ originY: 'top',
115
+ overlayX: isNearLeftEdge ? 'start' : 'end',
116
+ overlayY: 'top',
117
+ }
51
118
  }
52
119
 
53
120
  close() {
@@ -56,6 +123,7 @@ export class TruncatedTextComponent implements AfterViewInit {
56
123
 
57
124
  private checkTextTruncation() {
58
125
  const element = this.textElement.nativeElement
126
+
59
127
  this.isTextTruncated = element.scrollWidth > element.clientWidth
60
128
  this.cd.detectChanges()
61
129
  }
@@ -1,6 +1,6 @@
1
1
  <div *ngIf="feature" class="root">
2
- <div class="property" *ngFor="let propName of properties">
3
- <div>{{ propName }}</div>
4
- <div class="font-bold">{{ feature.properties[propName] }}</div>
2
+ <div class="property" *ngFor="let prop of properties | keyvalue">
3
+ <div>{{ prop.key }}</div>
4
+ <div class="font-bold">{{ prop.value }}</div>
5
5
  </div>
6
6
  </div>
@@ -1,6 +1,7 @@
1
1
  import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
2
2
  import { CommonModule } from '@angular/common'
3
3
  import type { Feature } from 'geojson'
4
+ import { DatasetFeatureCatalog } from '../../../../../../../libs/common/domain/src/lib/model/record'
4
5
 
5
6
  const geometryKeys = ['geometry', 'the_geom']
6
7
 
@@ -14,11 +15,34 @@ const geometryKeys = ['geometry', 'the_geom']
14
15
  })
15
16
  export class FeatureDetailComponent {
16
17
  @Input() feature: Feature
18
+ _featureAttributes = []
19
+ @Input() set featureCatalog(value: DatasetFeatureCatalog) {
20
+ if (value) this._featureAttributes = value.featureTypes[0].attributes
21
+ }
17
22
 
18
23
  get properties() {
19
24
  if (!this.feature) return []
20
- return Object.keys(this.feature.properties).filter(
21
- (prop) => !geometryKeys.includes(prop)
22
- )
25
+ return this.setProperties()
26
+ }
27
+
28
+ setProperties() {
29
+ const properties = Object.keys(this.feature.properties)
30
+ .filter((p) => !geometryKeys.includes(p))
31
+ .reduce((acc, p) => {
32
+ let key = p
33
+ if (this._featureAttributes.length) {
34
+ const matchingAttribute = this._featureAttributes.find(
35
+ (attr) => attr.name === p
36
+ )
37
+
38
+ if (matchingAttribute && matchingAttribute.code) {
39
+ key = matchingAttribute.code
40
+ }
41
+ }
42
+ acc[key] = this.feature.properties[p]
43
+ return acc
44
+ }, {})
45
+
46
+ return properties
23
47
  }
24
48
  }
@@ -19,3 +19,4 @@ export * from './lib/results-list-item/results-list-item.component'
19
19
  export * from './lib/results-hits-search-kind/results-hits-search-kind.component'
20
20
  export * from './lib/results-hits-number/results-hits-number.component'
21
21
  export * from './lib/results-table/results-table.component'
22
+ export * from './lib/results-table/action-menu/action-menu.component'
@@ -1,82 +1,10 @@
1
- <a
2
- class="group container-lg mx-auto flex cursor-pointer flex-wrap sm:flex-nowrap"
3
- [title]="record.title"
4
- [attr.href]="linkHref"
1
+ <gn-ui-internal-link-card
2
+ [linkHref]="linkHref"
3
+ [linkTarget]="linkTarget"
4
+ [record]="record"
5
+ [favoriteTemplate]="favoriteTemplate"
6
+ [metadataQualityDisplay]="metadataQualityDisplay"
7
+ (mdSelect)="mdSelect.emit($event)"
8
+ size="L"
5
9
  >
6
- <div class="shrink-0 w-full sm:w-52">
7
- <div
8
- class="overflow-hidden bg-gray-100 rounded-lg w-full border border-gray-300 h-36"
9
- >
10
- <gn-ui-thumbnail
11
- class="relative h-full w-full object-cover object-left-top"
12
- [thumbnailUrl]="[
13
- record.overviews?.[0]?.url?.toString(),
14
- organization?.logoUrl?.toString(),
15
- ]"
16
- [fit]="['cover', 'contain']"
17
- ></gn-ui-thumbnail>
18
- </div>
19
- </div>
20
- <div
21
- class="content grid grow relative sm:pl-6 sm:pr-12"
22
- style="grid-template-columns: auto 70px"
23
- >
24
- <div class="mb-3 mt-5 sm:mt-2">
25
- <div
26
- class="font-title text-21 text-title line-clamp-2 col-start-1 col-span-2 sm:line-clamp-1 group-hover:text-primary transition-colors"
27
- data-cy="recordTitle"
28
- >
29
- {{ record.title }}
30
- </div>
31
- </div>
32
- <div
33
- class="abstract mt-4 mb-5 h-36 line-clamp-6 col-start-1 col-span-2 row-start-3 sm:mb-2 sm:h-[4.5rem] sm:line-clamp-3 sm:row-start-2 sm:mt-0"
34
- data-cy="recordAbstract"
35
- >
36
- <gn-ui-markdown-parser
37
- [textContent]="abstract"
38
- whitoutStyles="true"
39
- ></gn-ui-markdown-parser>
40
- </div>
41
- <div
42
- class="text-primary opacity-45 uppercase col-start-1 col-span-2 row-start-2 sm:truncate sm:row-start-3 sm:col-span-1"
43
- data-cy="recordOrg"
44
- [class]="metadataQualityDisplay ? 'limit-organisation-with-quality' : ''"
45
- >
46
- {{ organization?.name }}
47
- </div>
48
- <div
49
- class="icons flex flex-row col-start-1 row-start-4 sm:col-start-2 sm:row-start-3 sm:absolute sm:right-[0.4em]"
50
- >
51
- <ng-icon
52
- *ngIf="isDownloadable"
53
- class="text-primary opacity-45 mx-1"
54
- name="matCloudDownloadOutline"
55
- ></ng-icon>
56
- <ng-icon
57
- *ngIf="isViewable"
58
- class="text-primary opacity-45 mx-1"
59
- name="matMapOutline"
60
- ></ng-icon>
61
- </div>
62
- <div
63
- *ngIf="metadataQualityDisplay"
64
- class="col-start-2 row-start-4 sm:row-start-3 absolute right-[4em] sm:right-[5em]"
65
- >
66
- <gn-ui-metadata-quality
67
- [smaller]="true"
68
- [metadata]="record"
69
- [metadataQualityDisplay]="metadataQualityDisplay"
70
- ></gn-ui-metadata-quality>
71
- </div>
72
- <div
73
- class="text-right col-start-3 row-start-4 sm:absolute sm:col-start-2 sm:row-start-1 sm:top-[-1.125em] sm:right-[0.4em]"
74
- data-cy="recordFav"
75
- >
76
- <ng-container
77
- [ngTemplateOutlet]="favoriteTemplate"
78
- [ngTemplateOutletContext]="{ $implicit: record }"
79
- ></ng-container>
80
- </div>
81
- </div>
82
- </a>
10
+ </gn-ui-internal-link-card>
@@ -5,6 +5,7 @@
5
5
  >
6
6
  <ng-template let-choice>
7
7
  <gn-ui-kind-badge
8
+ [styling]="'custom'"
8
9
  [kind]="choice.value"
9
10
  [contentTemplate]="customTemplate"
10
11
  class="gn-ui-btn-outline rounded-md py-2 px-2 border-gray-400 cursor-pointer focus-within:text-primary-darkest focus-within:bg-gray-50 transition-colors bg-transparent hover:text-primary-darker focus:text-primary-darker active:text-primary-black"
@@ -32,9 +32,9 @@ export const DEFAULT_RESULTS_LAYOUT_CONFIG: ResultsLayoutConfigModel = {
32
32
  ),
33
33
  ROW: new ResultsLayoutConfigItem(
34
34
  RecordPreviewRowComponent,
35
- 'pt-4 pb-5 sm:py-7',
35
+ 'py-2',
36
36
  '',
37
- 'grid grid-cols-1 divide-y divide-gray-300'
37
+ 'grid grid-cols-1 divide-y divide-gray-100'
38
38
  ),
39
39
  FEED: new ResultsLayoutConfigItem(
40
40
  RecordPreviewFeedComponent,
@@ -6,6 +6,7 @@
6
6
  *ngFor="let record of records"
7
7
  >
8
8
  <gn-ui-results-list-item
9
+ [attr.data-cy]="record.uniqueIdentifier"
9
10
  [record]="record"
10
11
  [layoutConfig]="layoutConfig"
11
12
  [metadataQualityDisplay]="metadataQualityDisplay"
@@ -3,7 +3,6 @@ import {
3
3
  Component,
4
4
  EventEmitter,
5
5
  Input,
6
- OnInit,
7
6
  Output,
8
7
  TemplateRef,
9
8
  } from '@angular/core'
@@ -6,7 +6,7 @@
6
6
  >
7
7
  <ul class="flex flex-col gap-2 w-full">
8
8
  <gn-ui-button
9
- *ngIf="!isDraftPage"
9
+ *ngIf="page === 'main'"
10
10
  type="light"
11
11
  extraClass="flex flex-row items-center gap-2 w-full justify-start"
12
12
  (buttonClick)="duplicate.emit()"
@@ -18,14 +18,22 @@
18
18
  >record.action.duplicating</span
19
19
  ></gn-ui-button
20
20
  >
21
+ <gn-ui-button
22
+ *ngIf="page === 'record'"
23
+ type="light"
24
+ extraClass="flex flex-row items-center gap-2 w-full justify-start"
25
+ (buttonClick)="switch.emit()"
26
+ data-test="record-menu-switch-button"
27
+ ><span translate>record.action.switchLang</span></gn-ui-button
28
+ >
21
29
  <gn-ui-button
22
30
  type="light"
23
31
  extraClass="flex flex-row items-center gap-2 w-full justify-start"
24
32
  (buttonClick)="displayDeleteMenu()"
25
33
  [disabled]="!canDelete"
26
34
  data-test="record-menu-delete-button"
27
- ><span *ngIf="!isDraftPage" translate>record.action.delete</span>
28
- <span *ngIf="isDraftPage" translate
35
+ ><span *ngIf="page !== 'draft'" translate>record.action.delete</span>
36
+ <span *ngIf="page === 'draft'" translate
29
37
  >record.action.rollback</span
30
38
  ></gn-ui-button
31
39
  >
@@ -30,13 +30,14 @@ type ActionMenuPage = 'mainMenu' | 'deleteMenu' | 'rollbackMenu'
30
30
  ],
31
31
  })
32
32
  export class ActionMenuComponent {
33
- @Input() canDuplicate: boolean
34
- @Input() canDelete: boolean
35
- @Input() isDraftPage: boolean
33
+ @Input() canDuplicate = true
34
+ @Input() canDelete = true
35
+ @Input() page: 'draft' | 'main' | 'record'
36
36
  @Output() duplicate = new EventEmitter<void>()
37
37
  @Output() delete = new EventEmitter<void>()
38
38
  @Output() closeActionMenu = new EventEmitter<void>()
39
39
  @Output() rollback = new EventEmitter<void>()
40
+ @Output() switch = new EventEmitter<void>()
40
41
 
41
42
  @ViewChild(MatMenuTrigger) trigger: MatMenuTrigger
42
43
 
@@ -47,20 +48,22 @@ export class ActionMenuComponent {
47
48
  private cdr: ChangeDetectorRef
48
49
  ) {}
49
50
 
50
- openMenu() {
51
- this.trigger.openMenu()
52
- }
53
-
54
51
  displayMainMenu() {
55
52
  this.sectionDisplayed = 'mainMenu'
56
53
  this.cdr.markForCheck()
57
54
  }
58
55
 
59
56
  displayDeleteMenu() {
60
- if (this.isDraftPage) {
61
- this.sectionDisplayed = 'rollbackMenu'
62
- } else {
63
- this.sectionDisplayed = 'deleteMenu'
57
+ switch (this.page) {
58
+ case 'draft':
59
+ this.sectionDisplayed = 'rollbackMenu'
60
+ break
61
+ case 'record':
62
+ this.delete.emit()
63
+ break
64
+ case 'main':
65
+ default:
66
+ this.sectionDisplayed = 'deleteMenu'
64
67
  }
65
68
  this.cdr.markForCheck()
66
69
  }
@@ -0,0 +1,4 @@
1
+ :host {
2
+ --gn-ui-button-height: 40px;
3
+ --gn-ui-button-width: 40px;
4
+ }
@@ -143,29 +143,39 @@
143
143
  <gn-ui-interactive-table-column>
144
144
  <ng-template #header> </ng-template>
145
145
  <ng-template #cell let-item>
146
- <gn-ui-button
147
- cdkOverlayOrigin
148
- #actionMenuButton
149
- (buttonClick)="openActionMenu(item, template)"
150
- type="light"
151
- data-test="record-menu-button"
152
- [disabled]="
153
- (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset'
154
- "
155
- >
146
+ <div class="flex justify-end items-center gap-4 w-full">
147
+ <!-- IS MULTILINGUAL -->
156
148
  <ng-icon
157
- [ngClass]="{
158
- 'text-purple-light':
159
- (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset',
160
- }"
161
- name="matMoreVert"
149
+ *ngIf="isMultilingual(item)"
150
+ data-cy="multilingual-indicator"
151
+ name="iconoirTranslate"
152
+ [attr.title]="getTxtHoverMultilingual(item)"
162
153
  ></ng-icon>
163
- </gn-ui-button>
154
+ <!-- MORE ACTIONS MENU BUTTON -->
155
+ <gn-ui-button
156
+ cdkOverlayOrigin
157
+ #actionMenuButton
158
+ (buttonClick)="openActionMenu(item, template)"
159
+ type="light"
160
+ data-test="record-menu-button"
161
+ [disabled]="
162
+ (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset'
163
+ "
164
+ >
165
+ <ng-icon
166
+ [ngClass]="{
167
+ 'text-purple-light':
168
+ (!item.extras?.edit && !isDraftPage) || item.kind !== 'dataset',
169
+ }"
170
+ name="matMoreVert"
171
+ ></ng-icon>
172
+ </gn-ui-button>
173
+ </div>
164
174
  <ng-template #template>
165
175
  <gn-ui-action-menu
166
176
  [canDuplicate]="canDuplicate(item) && !isDuplicating"
167
177
  [canDelete]="canDelete(item)"
168
- [isDraftPage]="isDraftPage"
178
+ [page]="isDraftPage ? 'draft' : 'main'"
169
179
  (duplicate)="handleDuplicate(item)"
170
180
  (delete)="handleDelete(item)"
171
181
  (closeActionMenu)="closeActionMenu()"
@@ -28,16 +28,11 @@ import {
28
28
  getFileFormat,
29
29
  getFormatPriority,
30
30
  } from '../../../../../../libs/util/shared/src'
31
- import { TranslateModule } from '@ngx-translate/core'
31
+ import { TranslateModule, TranslateService } from '@ngx-translate/core'
32
32
  import { ActionMenuComponent } from './action-menu/action-menu.component'
33
33
  import { NgIconComponent, provideIcons } from '@ng-icons/core'
34
- import { iconoirUser, iconoirLock } from '@ng-icons/iconoir'
35
- import {
36
- CdkConnectedOverlay,
37
- CdkOverlayOrigin,
38
- Overlay,
39
- OverlayRef,
40
- } from '@angular/cdk/overlay'
34
+ import { iconoirUser, iconoirLock, iconoirTranslate } from '@ng-icons/iconoir'
35
+ import { CdkOverlayOrigin, Overlay, OverlayRef } from '@angular/cdk/overlay'
41
36
  import { TemplatePortal } from '@angular/cdk/portal'
42
37
  import { matMoreVert } from '@ng-icons/material-icons/baseline'
43
38
 
@@ -57,7 +52,9 @@ import { matMoreVert } from '@ng-icons/material-icons/baseline'
57
52
  NgIconComponent,
58
53
  CdkOverlayOrigin,
59
54
  ],
60
- providers: [provideIcons({ iconoirUser, iconoirLock, matMoreVert })],
55
+ providers: [
56
+ provideIcons({ iconoirUser, iconoirLock, iconoirTranslate, matMoreVert }),
57
+ ],
61
58
  })
62
59
  export class ResultsTableComponent {
63
60
  @Input() records: CatalogRecord[] = []
@@ -89,7 +86,8 @@ export class ResultsTableComponent {
89
86
  private overlay: Overlay,
90
87
  private viewContainerRef: ViewContainerRef,
91
88
  private cdr: ChangeDetectorRef,
92
- private dateService: DateService
89
+ private dateService: DateService,
90
+ private translateService: TranslateService
93
91
  ) {}
94
92
 
95
93
  openActionMenu(item, template) {
@@ -219,4 +217,16 @@ export class ResultsTableComponent {
219
217
  handleRecordSelectedChange(selected: boolean, record: CatalogRecord) {
220
218
  this.recordsSelectedChange.emit([[record], selected])
221
219
  }
220
+
221
+ isMultilingual(record: CatalogRecord): boolean {
222
+ return record.otherLanguages.length > 0
223
+ }
224
+
225
+ getTxtHoverMultilingual(record: CatalogRecord) {
226
+ return this.translateService.instant('dashboard.records.isMultilingual', {
227
+ languages: [...[record.defaultLanguage], ...record.otherLanguages].join(
228
+ ', '
229
+ ),
230
+ })
231
+ }
222
232
  }
@@ -39,6 +39,7 @@ import {
39
39
  matMapOutline,
40
40
  } from '@ng-icons/material-icons/outline'
41
41
  import { matFace } from '@ng-icons/material-icons/baseline'
42
+ import { ActionMenuComponent } from './results-table/action-menu/action-menu.component'
42
43
 
43
44
  @NgModule({
44
45
  declarations: [
@@ -79,6 +80,7 @@ import { matFace } from '@ng-icons/material-icons/baseline'
79
80
  }),
80
81
  KindBadgeComponent,
81
82
  MetadataQualityComponent,
83
+ ActionMenuComponent,
82
84
  ],
83
85
  exports: [
84
86
  RecordPreviewListComponent,
@@ -93,6 +95,7 @@ import { matFace } from '@ng-icons/material-icons/baseline'
93
95
  ResultsHitsSearchKindComponent,
94
96
  RecordPreviewFeedComponent,
95
97
  RecordPreviewRowComponent,
98
+ ActionMenuComponent,
96
99
  ],
97
100
  providers: [
98
101
  provideNgIconsConfig({
@@ -19,12 +19,54 @@ marker('language.pt')
19
19
  marker('language.ru')
20
20
  marker('language.zh')
21
21
  marker('language.sk')
22
+ marker('language.rm')
23
+ marker('language.ar')
24
+ marker('language.da')
25
+ marker('language.no')
26
+ marker('language.pl')
27
+ marker('language.sv')
28
+ marker('language.tr')
29
+ marker('language.hy')
30
+ marker('language.az')
31
+ marker('language.ka')
32
+ marker('language.uk')
33
+ marker('language.cy')
22
34
 
23
35
  export const DEFAULT_LANG = 'en'
24
36
 
25
37
  // Caution: changing this can break language selection from third parties!
26
38
  export const LANGUAGE_STORAGE_KEY = 'geonetwork-ui-language'
27
39
 
40
+ export const SUPPORTED_LANGUAGES = [
41
+ 'en',
42
+ 'nl',
43
+ 'fr',
44
+ 'de',
45
+ 'ko',
46
+ 'es',
47
+ 'cs',
48
+ 'ca',
49
+ 'fi',
50
+ 'is',
51
+ 'it',
52
+ 'pt',
53
+ 'ru',
54
+ 'zh',
55
+ 'sk',
56
+ 'rm',
57
+ 'ar',
58
+ 'da',
59
+ 'no',
60
+ 'pl',
61
+ 'sv',
62
+ 'tr',
63
+ 'hy',
64
+ 'az',
65
+ 'ka',
66
+ 'uk',
67
+ 'cy',
68
+ ]
69
+
28
70
  export function HttpLoaderFactory(http: HttpClient) {
29
71
  return new FileTranslateLoader(http, './assets/i18n/')
30
72
  }
@@ -15,6 +15,17 @@ export const LANG_3_TO_2_MAPPER = {
15
15
  chi: 'zh',
16
16
  slo: 'sk',
17
17
  roh: 'rm',
18
+ ara: 'ar',
19
+ dan: 'da',
20
+ nor: 'no',
21
+ pol: 'pl',
22
+ swe: 'sv',
23
+ tur: 'tr',
24
+ arm: 'hy',
25
+ aze: 'az',
26
+ geo: 'ka',
27
+ ukr: 'uk',
28
+ wel: 'cy',
18
29
  }
19
30
 
20
31
  export const LANGUAGE_NAMES = {
@@ -33,7 +44,18 @@ export const LANGUAGE_NAMES = {
33
44
  ru: 'Русский',
34
45
  zh: '中文',
35
46
  sk: 'Slovenčina',
36
- roh: 'Rumantsch',
47
+ rm: 'Rumantsch',
48
+ ar: 'العربية',
49
+ da: 'Dansk',
50
+ no: 'Norsk',
51
+ pl: 'Polski',
52
+ sv: 'Swedish',
53
+ tr: 'Türkçe',
54
+ hy: 'հայերեն',
55
+ az: 'Azərbaycan dili',
56
+ ka: 'ქართული',
57
+ uk: 'українська',
58
+ wel: 'Cymraeg',
37
59
  }
38
60
 
39
61
  export const LANG_2_TO_3_MAPPER = Object.entries(LANG_3_TO_2_MAPPER).reduce(
@@ -31,7 +31,10 @@ export class LinkClassifierService {
31
31
  return [LinkUsage.API, LinkUsage.DOWNLOAD, LinkUsage.GEODATA]
32
32
  case 'wms':
33
33
  case 'wmts':
34
+ case 'tms':
34
35
  return [LinkUsage.API, LinkUsage.MAP_API]
36
+ case 'maplibre-style':
37
+ return [LinkUsage.GEODATA]
35
38
  case 'ogcFeatures':
36
39
  return [LinkUsage.API, LinkUsage.DOWNLOAD, LinkUsage.GEODATA]
37
40
  case 'GPFDL':
@@ -247,6 +247,9 @@ export function getLinkLabel(
247
247
  case 'wmts':
248
248
  format = 'WMTS'
249
249
  break
250
+ case 'tms':
251
+ format = 'TMS'
252
+ break
250
253
  case 'esriRest':
251
254
  format = 'REST'
252
255
  break
package/tailwind.base.css CHANGED
@@ -131,7 +131,7 @@
131
131
  .gn-ui-btn-light {
132
132
  @apply gn-ui-btn
133
133
  hover:bg-gray-50 focus:bg-gray-50 active:bg-gray-100
134
- border-white focus:ring-4 focus:ring-gray-300;
134
+ bg-white border-white focus:ring-4 focus:ring-gray-300;
135
135
  }
136
136
 
137
137
  .gn-ui-card-s {