geonetwork-ui 2.2.0-dev.ca028047 → 2.2.0-dev.da2c1f8f

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 (353) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +27 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +64 -61
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.mjs +7 -4
  4. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.mjs +14 -0
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/converter.mjs +25 -17
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +55 -23
  8. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +52 -32
  9. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +2 -2
  10. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +10 -3
  11. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +14 -5
  12. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +33 -8
  13. package/esm2022/libs/api/repository/src/lib/gn4/selection/selection.service.mjs +13 -26
  14. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  15. package/esm2022/libs/common/domain/src/lib/model/search/aggregation.model.mjs +1 -1
  16. package/esm2022/libs/common/domain/src/lib/model/search/field.model.mjs +2 -0
  17. package/esm2022/libs/common/domain/src/lib/model/search/filter.model.mjs +1 -1
  18. package/esm2022/libs/common/domain/src/lib/model/search/index.mjs +2 -1
  19. package/esm2022/libs/common/domain/src/lib/model/search/search.model.mjs +1 -1
  20. package/esm2022/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.mjs +1 -1
  21. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  22. package/esm2022/libs/feature/catalog/src/lib/my-org/my-org.service.mjs +4 -10
  23. package/esm2022/libs/feature/editor/src/index.mjs +6 -1
  24. package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +8 -0
  25. package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +26 -0
  26. package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +30 -0
  27. package/esm2022/libs/feature/editor/src/lib/+state/editor.models.mjs +2 -0
  28. package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +42 -0
  29. package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +13 -0
  30. package/esm2022/libs/feature/editor/src/lib/expressions.mjs +13 -0
  31. package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +16 -4
  32. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +34 -0
  33. package/esm2022/libs/feature/editor/src/lib/models/fields.model.mjs +2 -0
  34. package/esm2022/libs/feature/editor/src/lib/record-form/record-form.component.mjs +15 -11
  35. package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +22 -44
  36. package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +9 -1
  37. package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +13 -13
  38. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +2 -2
  39. package/esm2022/libs/feature/search/src/index.mjs +4 -1
  40. package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +3 -3
  41. package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +2 -6
  42. package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +1 -1
  43. package/esm2022/libs/feature/search/src/lib/filter-geometry.token.mjs +4 -0
  44. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +7 -3
  45. package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -0
  46. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +2 -2
  47. package/esm2022/libs/feature/search/src/lib/results-table/results-table.component.mjs +128 -0
  48. package/esm2022/libs/feature/search/src/lib/state/effects.mjs +6 -4
  49. package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +3 -2
  50. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +41 -26
  51. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +11 -9
  52. package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +3 -3
  53. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +3 -3
  54. package/esm2022/libs/ui/elements/src/lib/max-lines/max-lines.component.mjs +5 -3
  55. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
  56. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +47 -22
  57. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +3 -4
  58. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +9 -6
  59. package/esm2022/libs/ui/elements/src/lib/thumbnail/thumbnail.component.mjs +3 -3
  60. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +4 -4
  61. package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
  62. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +3 -3
  63. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +9 -9
  64. package/esm2022/libs/ui/inputs/src/lib/checkbox/checkbox.component.mjs +3 -3
  65. package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +3 -3
  66. package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +3 -3
  67. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field.component.mjs +4 -2
  68. package/esm2022/libs/ui/inputs/src/lib/form-field/form-field.model.mjs +1 -1
  69. package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +3 -3
  70. package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +3 -3
  71. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +6 -6
  72. package/esm2022/libs/ui/layout/src/index.mjs +3 -1
  73. package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +3 -3
  74. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.mjs +36 -0
  75. package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +37 -0
  76. package/esm2022/libs/ui/search/src/index.mjs +1 -2
  77. package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +9 -10
  78. package/esm2022/libs/ui/widgets/src/lib/badge/badge.component.mjs +3 -3
  79. package/esm2022/libs/util/i18n/src/index.mjs +1 -2
  80. package/esm2022/libs/util/i18n/src/lib/i18n.constants.mjs +18 -1
  81. package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
  82. package/esm2022/libs/util/shared/src/lib/utils/temporal-extent-union.mjs +32 -0
  83. package/esm2022/translations/de.json +37 -26
  84. package/esm2022/translations/en.json +37 -26
  85. package/esm2022/translations/es.json +31 -20
  86. package/esm2022/translations/fr.json +51 -40
  87. package/esm2022/translations/it.json +44 -33
  88. package/esm2022/translations/nl.json +32 -21
  89. package/esm2022/translations/pt.json +31 -20
  90. package/fesm2022/geonetwork-ui.mjs +1214 -865
  91. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  92. package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts +2 -0
  93. package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
  94. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +0 -1
  95. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  96. package/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.d.ts.map +1 -1
  97. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +4 -5
  98. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  99. package/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.d.ts +3 -0
  100. package/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.d.ts.map +1 -0
  101. package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts.map +1 -1
  102. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +7 -6
  103. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  104. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +4 -3
  105. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  106. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  107. package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
  108. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts +1 -1
  109. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
  110. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +9 -2
  111. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  112. package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts +4 -5
  113. package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts.map +1 -1
  114. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +21 -12
  115. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  116. package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts +1 -1
  117. package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts.map +1 -1
  118. package/libs/common/domain/src/lib/model/search/field.model.d.ts +2 -0
  119. package/libs/common/domain/src/lib/model/search/field.model.d.ts.map +1 -0
  120. package/libs/common/domain/src/lib/model/search/filter.model.d.ts +1 -1
  121. package/libs/common/domain/src/lib/model/search/filter.model.d.ts.map +1 -1
  122. package/libs/common/domain/src/lib/model/search/index.d.ts +1 -0
  123. package/libs/common/domain/src/lib/model/search/index.d.ts.map +1 -1
  124. package/libs/common/domain/src/lib/model/search/search.model.d.ts +2 -3
  125. package/libs/common/domain/src/lib/model/search/search.model.d.ts.map +1 -1
  126. package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts +1 -0
  127. package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts.map +1 -1
  128. package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -1
  129. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  130. package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts +0 -1
  131. package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts.map +1 -1
  132. package/libs/feature/editor/src/index.d.ts +5 -0
  133. package/libs/feature/editor/src/index.d.ts.map +1 -1
  134. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +23 -0
  135. package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -0
  136. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +15 -0
  137. package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -0
  138. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +19 -0
  139. package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -0
  140. package/libs/feature/editor/src/lib/+state/editor.models.d.ts +2 -0
  141. package/libs/feature/editor/src/lib/+state/editor.models.d.ts.map +1 -0
  142. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts +18 -0
  143. package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -0
  144. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +15 -0
  145. package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -0
  146. package/libs/feature/editor/src/lib/expressions.d.ts +4 -0
  147. package/libs/feature/editor/src/lib/expressions.d.ts.map +1 -0
  148. package/libs/feature/editor/src/lib/feature-editor.module.d.ts +3 -1
  149. package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
  150. package/libs/feature/editor/src/lib/fields.config.d.ts +3 -0
  151. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -0
  152. package/libs/feature/editor/src/lib/models/fields.model.d.ts +15 -0
  153. package/libs/feature/editor/src/lib/models/fields.model.d.ts.map +1 -0
  154. package/libs/feature/editor/src/lib/record-form/record-form.component.d.ts +10 -5
  155. package/libs/feature/editor/src/lib/record-form/record-form.component.d.ts.map +1 -1
  156. package/libs/feature/editor/src/lib/services/editor.service.d.ts +3 -13
  157. package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
  158. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts +1 -0
  159. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +1 -1
  160. package/libs/feature/search/src/index.d.ts +3 -0
  161. package/libs/feature/search/src/index.d.ts.map +1 -1
  162. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts +3 -3
  163. package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
  164. package/libs/feature/search/src/lib/feature-search.module.d.ts +0 -4
  165. package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
  166. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts +3 -2
  167. package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts.map +1 -1
  168. package/libs/feature/search/src/lib/filter-geometry.token.d.ts +4 -0
  169. package/libs/feature/search/src/lib/filter-geometry.token.d.ts.map +1 -0
  170. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +1 -1
  171. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  172. package/libs/feature/search/src/lib/record-url.token.d.ts +3 -0
  173. package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -0
  174. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts +33 -0
  175. package/libs/feature/search/src/lib/results-table/results-table.component.d.ts.map +1 -0
  176. package/libs/feature/search/src/lib/state/effects.d.ts.map +1 -1
  177. package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -1
  178. package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
  179. package/libs/feature/search/src/lib/utils/service/fields.d.ts +21 -8
  180. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  181. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  182. package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts +1 -1
  183. package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts.map +1 -1
  184. package/libs/ui/elements/src/lib/max-lines/max-lines.component.d.ts.map +1 -1
  185. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +16 -6
  186. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  187. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  188. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +3 -1
  189. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  190. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +13 -13
  191. package/libs/ui/inputs/src/index.d.ts +1 -0
  192. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  193. package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
  194. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  195. package/libs/ui/inputs/src/lib/form-field/form-field.component.d.ts.map +1 -1
  196. package/libs/ui/inputs/src/lib/form-field/form-field.model.d.ts +0 -1
  197. package/libs/ui/inputs/src/lib/form-field/form-field.model.d.ts.map +1 -1
  198. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +1 -1
  199. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
  200. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +40 -40
  201. package/libs/ui/layout/src/index.d.ts +2 -0
  202. package/libs/ui/layout/src/index.d.ts.map +1 -1
  203. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +14 -0
  204. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts.map +1 -0
  205. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +15 -0
  206. package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -0
  207. package/libs/ui/search/src/index.d.ts +0 -1
  208. package/libs/ui/search/src/index.d.ts.map +1 -1
  209. package/libs/ui/search/src/lib/ui-search.module.d.ts +15 -15
  210. package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
  211. package/libs/util/i18n/src/index.d.ts +0 -1
  212. package/libs/util/i18n/src/index.d.ts.map +1 -1
  213. package/libs/util/i18n/src/lib/i18n.constants.d.ts +17 -0
  214. package/libs/util/i18n/src/lib/i18n.constants.d.ts.map +1 -1
  215. package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
  216. package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
  217. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts +5 -0
  218. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts.map +1 -0
  219. package/package.json +2 -2
  220. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +63 -8
  221. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +57 -9
  222. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +229 -24
  223. package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +29 -0
  224. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +99 -76
  225. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.ts +6 -3
  226. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +4 -5
  227. package/src/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.ts +16 -0
  228. package/src/libs/api/metadata-converter/src/lib/iso19139/converter.ts +30 -21
  229. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +120 -63
  230. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +177 -97
  231. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +1 -1
  232. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +22 -2
  233. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +15 -4
  234. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +47 -8
  235. package/src/libs/api/repository/src/lib/gn4/selection/selection.service.ts +14 -38
  236. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +25 -14
  237. package/src/libs/common/domain/src/lib/model/search/aggregation.model.ts +1 -1
  238. package/src/libs/common/domain/src/lib/model/search/field.model.ts +1 -0
  239. package/src/libs/common/domain/src/lib/model/search/filter.model.ts +1 -1
  240. package/src/libs/common/domain/src/lib/model/search/index.ts +1 -0
  241. package/src/libs/common/domain/src/lib/model/search/search.model.ts +2 -2
  242. package/src/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.ts +1 -0
  243. package/src/libs/common/domain/src/lib/model/user/index.ts +1 -0
  244. package/src/libs/common/domain/src/lib/platform.service.interface.ts +1 -4
  245. package/src/libs/common/fixtures/src/lib/elasticsearch/full-response.ts +1 -1
  246. package/src/libs/common/fixtures/src/lib/gn4/groups.fixtures.ts +1 -1
  247. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +52 -10
  248. package/src/libs/feature/catalog/src/lib/my-org/my-org.service.ts +4 -16
  249. package/src/libs/feature/editor/src/index.ts +5 -0
  250. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +24 -0
  251. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +49 -0
  252. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +30 -0
  253. package/src/libs/feature/editor/src/lib/+state/editor.models.ts +1 -0
  254. package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +68 -0
  255. package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +39 -0
  256. package/src/libs/feature/editor/src/lib/expressions.ts +16 -0
  257. package/src/libs/feature/editor/src/lib/feature-editor.module.ts +11 -0
  258. package/src/libs/feature/editor/src/lib/fields.config.ts +35 -0
  259. package/src/libs/feature/editor/src/lib/models/fields.model.ts +29 -0
  260. package/src/libs/feature/editor/src/lib/record-form/record-form.component.html +9 -7
  261. package/src/libs/feature/editor/src/lib/record-form/record-form.component.ts +11 -5
  262. package/src/libs/feature/editor/src/lib/services/editor.service.ts +34 -73
  263. package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +10 -0
  264. package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +12 -12
  265. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +1 -1
  266. package/src/libs/feature/search/src/index.ts +3 -0
  267. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +3 -4
  268. package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +1 -1
  269. package/src/libs/feature/search/src/lib/feature-search.module.ts +1 -10
  270. package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +4 -4
  271. package/src/libs/feature/search/src/lib/filter-geometry.token.ts +7 -0
  272. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +9 -3
  273. package/src/libs/feature/search/src/lib/record-url.token.ts +4 -0
  274. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +1 -1
  275. package/src/libs/feature/search/src/lib/results-table/results-table.component.css +0 -0
  276. package/src/libs/feature/search/src/lib/results-table/results-table.component.html +112 -0
  277. package/src/libs/feature/search/src/lib/results-table/results-table.component.ts +164 -0
  278. package/src/libs/feature/search/src/lib/state/effects.ts +5 -4
  279. package/src/libs/feature/search/src/lib/state/search.facade.ts +2 -1
  280. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +21 -16
  281. package/src/libs/feature/search/src/lib/utils/service/fields.ts +43 -34
  282. package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -1
  283. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.css +5 -0
  284. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +39 -0
  285. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +58 -0
  286. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +2 -2
  287. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +1 -0
  288. package/src/libs/ui/elements/src/lib/max-lines/max-lines.component.html +5 -1
  289. package/src/libs/ui/elements/src/lib/max-lines/max-lines.component.ts +1 -0
  290. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +1 -1
  291. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +169 -52
  292. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +51 -15
  293. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +2 -3
  294. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +5 -5
  295. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +12 -4
  296. package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.html +2 -2
  297. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +1 -1
  298. package/src/libs/ui/inputs/src/index.ts +1 -0
  299. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +1 -1
  300. package/src/libs/ui/inputs/src/lib/button/button.component.css +0 -5
  301. package/src/libs/ui/inputs/src/lib/button/button.component.html +0 -1
  302. package/src/libs/ui/inputs/src/lib/button/button.component.ts +7 -6
  303. package/src/libs/ui/inputs/src/lib/checkbox/checkbox.component.html +0 -1
  304. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +2 -2
  305. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.html +3 -1
  306. package/src/libs/ui/inputs/src/lib/form-field/form-field.component.ts +3 -1
  307. package/src/libs/ui/inputs/src/lib/form-field/form-field.model.ts +0 -1
  308. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.css +3 -0
  309. package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +1 -1
  310. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +1 -0
  311. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +2 -2
  312. package/src/libs/ui/layout/src/index.ts +2 -0
  313. package/src/libs/ui/layout/src/lib/carousel/carousel.component.html +1 -0
  314. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.css +0 -0
  315. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.html +1 -0
  316. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.ts +33 -0
  317. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.css +15 -0
  318. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +54 -0
  319. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +42 -0
  320. package/src/libs/ui/search/src/index.ts +0 -1
  321. package/src/libs/ui/search/src/lib/ui-search.module.ts +2 -3
  322. package/src/libs/ui/widgets/src/lib/badge/badge.component.html +3 -1
  323. package/src/libs/util/i18n/src/index.ts +0 -1
  324. package/src/libs/util/i18n/src/lib/i18n.constants.ts +18 -0
  325. package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
  326. package/src/libs/util/shared/src/lib/utils/temporal-extent-union.ts +32 -0
  327. package/tailwind.base.css +44 -15
  328. package/translations/de.json +37 -26
  329. package/translations/en.json +37 -26
  330. package/translations/es.json +31 -20
  331. package/translations/fr.json +51 -40
  332. package/translations/it.json +44 -33
  333. package/translations/nl.json +32 -21
  334. package/translations/pt.json +31 -20
  335. package/translations/sk.json +119 -108
  336. package/esm2022/libs/ui/search/src/lib/record-table/record-table.component.mjs +0 -145
  337. package/esm2022/libs/util/i18n/src/lib/testing/test.translate.loader.mjs +0 -24
  338. package/esm2022/libs/util/i18n/src/lib/testing/test.translate.module.mjs +0 -109
  339. package/esm2022/libs/util/i18n/src/lib/testing/translations.model.mjs +0 -6
  340. package/libs/ui/search/src/lib/record-table/record-table.component.d.ts +0 -31
  341. package/libs/ui/search/src/lib/record-table/record-table.component.d.ts.map +0 -1
  342. package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts +0 -17
  343. package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts.map +0 -1
  344. package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts +0 -131
  345. package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts.map +0 -1
  346. package/libs/util/i18n/src/lib/testing/translations.model.d.ts +0 -21
  347. package/libs/util/i18n/src/lib/testing/translations.model.d.ts.map +0 -1
  348. package/src/libs/ui/search/src/lib/record-table/record-table.component.css +0 -7
  349. package/src/libs/ui/search/src/lib/record-table/record-table.component.html +0 -215
  350. package/src/libs/ui/search/src/lib/record-table/record-table.component.ts +0 -149
  351. package/src/libs/util/i18n/src/lib/testing/test.translate.loader.ts +0 -26
  352. package/src/libs/util/i18n/src/lib/testing/test.translate.module.ts +0 -235
  353. package/src/libs/util/i18n/src/lib/testing/translations.model.ts +0 -28
@@ -13,7 +13,6 @@ type BaseFormFieldType =
13
13
  type AllFormFieldType = BaseFormFieldType | 'object' | 'array'
14
14
 
15
15
  interface FormFieldConfigBase {
16
- model?: string
17
16
  type: AllFormFieldType
18
17
  labelKey: string
19
18
  hintKey?: string
@@ -0,0 +1,3 @@
1
+ button {
2
+ color: var(--navigation-button-color, --color-background);
3
+ }
@@ -1,5 +1,5 @@
1
1
  <button
2
- class="group flex items-center justify-center gap-1 backdrop-blur p-1 bg-primary-opacity-30 text-white rounded content-center"
2
+ class="group flex items-center justify-center gap-1 backdrop-blur p-1 bg-primary-opacity-30 rounded content-center"
3
3
  >
4
4
  <mat-icon class="material-symbols-outlined align-middle w-[18px]">{{
5
5
  icon
@@ -12,6 +12,7 @@ import { distinctUntilChanged } from 'rxjs/operators'
12
12
  selector: 'gn-ui-text-area',
13
13
  templateUrl: './text-area.component.html',
14
14
  styleUrls: ['./text-area.component.css'],
15
+ standalone: true,
15
16
  })
16
17
  export class TextAreaComponent implements AfterViewInit {
17
18
  @Input() value = ''
@@ -47,10 +47,8 @@ import { EditableLabelDirective } from './editable-label/editable-label.directiv
47
47
  declarations: [
48
48
  DropdownSelectorComponent,
49
49
  AutocompleteComponent,
50
- ButtonComponent,
51
50
  TextInputComponent,
52
51
  DragAndDropFileInputComponent,
53
- TextAreaComponent,
54
52
  ChipsInputComponent,
55
53
  NavigationButtonComponent,
56
54
  StarToggleComponent,
@@ -89,6 +87,8 @@ import { EditableLabelDirective } from './editable-label/editable-label.directiv
89
87
  MatDatepickerModule,
90
88
  MatNativeDateModule,
91
89
  EditableLabelDirective,
90
+ TextAreaComponent,
91
+ ButtonComponent,
92
92
  ],
93
93
  exports: [
94
94
  DropdownSelectorComponent,
@@ -4,3 +4,5 @@ export * from './lib/carousel/carousel.component'
4
4
  export * from './lib/expandable-panel/expandable-panel.component'
5
5
  export * from './lib/sticky-header/sticky-header.component'
6
6
  export * from './lib/expandable-panel-button/expandable-panel-button.component'
7
+ export * from './lib/interactive-table/interactive-table.component'
8
+ export * from './lib/interactive-table/interactive-table-column/interactive-table-column.component'
@@ -4,6 +4,7 @@
4
4
  </div>
5
5
  </div>
6
6
  <div
7
+ *ngIf="steps.length > 1"
7
8
  class="absolute right-0 top-0 flex flex-row justify-center gap-[10px] p-1"
8
9
  [ngClass]="stepsContainerClass"
9
10
  >
@@ -0,0 +1,33 @@
1
+ import {
2
+ ChangeDetectionStrategy,
3
+ Component,
4
+ ContentChild,
5
+ EventEmitter,
6
+ Input,
7
+ Output,
8
+ TemplateRef,
9
+ } from '@angular/core'
10
+ import { CommonModule } from '@angular/common'
11
+
12
+ @Component({
13
+ selector: 'gn-ui-interactive-table-column',
14
+ standalone: true,
15
+ imports: [CommonModule],
16
+ templateUrl: './interactive-table-column.component.html',
17
+ styleUrls: ['./interactive-table-column.component.css'],
18
+ changeDetection: ChangeDetectionStrategy.OnPush,
19
+ })
20
+ export class InteractiveTableColumnComponent {
21
+ @ContentChild('header') header: TemplateRef<unknown>
22
+ @ContentChild('cell') cell: TemplateRef<unknown>
23
+
24
+ @Input() grow = false
25
+ @Input() sortable = false
26
+ @Input() activeSort: 'asc' | 'desc' | null = null
27
+ @Output() sortChange = new EventEmitter<'asc' | 'desc'>()
28
+
29
+ handleSortChange() {
30
+ this.activeSort = this.activeSort === 'asc' ? 'desc' : 'asc'
31
+ this.sortChange.emit(this.activeSort)
32
+ }
33
+ }
@@ -0,0 +1,15 @@
1
+ .sort-button mat-icon {
2
+ padding: 0;
3
+ margin: 0;
4
+ height: 8px;
5
+ line-height: 8px;
6
+ font-size: 18px;
7
+ }
8
+
9
+ .table-header-cell {
10
+ @apply text-gray-700 px-4 py-5 flex items-center truncate bg-white;
11
+ }
12
+
13
+ button.table-header-cell {
14
+ @apply transition-colors duration-75 hover:text-main hover:bg-gray-50 focus:text-main focus:bg-gray-50;
15
+ }
@@ -0,0 +1,54 @@
1
+ <div class="grid w-full" [ngStyle]="gridStyle">
2
+ <div class="contents">
3
+ <ng-container *ngFor="let column of columns">
4
+ <button
5
+ *ngIf="column.sortable"
6
+ type="button"
7
+ class="table-header-cell"
8
+ (click)="column.sortable && column.handleSortChange()"
9
+ >
10
+ <ng-container *ngTemplateOutlet="column.header"></ng-container>
11
+ <div class="sort-button flex flex-col" *ngIf="column.sortable">
12
+ <mat-icon
13
+ class="material-symbols-outlined text-gray-600"
14
+ [ngClass]="{ 'text-main': column.activeSort === 'asc' }"
15
+ >expand_less</mat-icon
16
+ >
17
+ <mat-icon
18
+ class="material-symbols-outlined text-gray-600"
19
+ [ngClass]="{ 'text-main': column.activeSort === 'desc' }"
20
+ >expand_more</mat-icon
21
+ >
22
+ </div>
23
+ </button>
24
+ <div *ngIf="!column.sortable" class="table-header-cell">
25
+ <ng-container *ngTemplateOutlet="column.header"></ng-container>
26
+ </div>
27
+ </ng-container>
28
+ </div>
29
+ <div
30
+ class="contents text-gray-900 cursor-pointer group"
31
+ *ngFor="let item of items"
32
+ (click)="handleRowClick(item)"
33
+ >
34
+ <div
35
+ class="relative h-0"
36
+ [ngStyle]="{ 'grid-column': 'span ' + this.columns.length }"
37
+ >
38
+ <!-- this element is only used in keyboard navigation -->
39
+ <button
40
+ type="button"
41
+ class="absolute inset-x-0 h-[50px] bg-transparent pointer-events-none"
42
+ ></button>
43
+ </div>
44
+ <ng-container *ngFor="let column of columns">
45
+ <div
46
+ class="table-row-cell px-4 py-3 flex items-center bg-white transition-colors duration-75 truncate group-hover:text-main group-hover:bg-gray-50 border-b border-gray-200"
47
+ >
48
+ <ng-container
49
+ *ngTemplateOutlet="column.cell; context: { $implicit: item }"
50
+ ></ng-container>
51
+ </div>
52
+ </ng-container>
53
+ </div>
54
+ </div>
@@ -0,0 +1,42 @@
1
+ import {
2
+ ChangeDetectionStrategy,
3
+ Component,
4
+ ContentChildren,
5
+ EventEmitter,
6
+ Input,
7
+ Output,
8
+ QueryList,
9
+ } from '@angular/core'
10
+ import { InteractiveTableColumnComponent } from './interactive-table-column/interactive-table-column.component'
11
+ import { CommonModule } from '@angular/common'
12
+ import { MatIconModule } from '@angular/material/icon'
13
+
14
+ @Component({
15
+ selector: 'gn-ui-interactive-table',
16
+ templateUrl: './interactive-table.component.html',
17
+ styleUrls: ['./interactive-table.component.css'],
18
+ changeDetection: ChangeDetectionStrategy.OnPush,
19
+ standalone: true,
20
+ imports: [CommonModule, InteractiveTableColumnComponent, MatIconModule],
21
+ })
22
+ export class InteractiveTableComponent {
23
+ @ContentChildren(InteractiveTableColumnComponent)
24
+ columns: QueryList<InteractiveTableColumnComponent>
25
+
26
+ @Input() items: unknown[] = []
27
+ @Output() itemClick = new EventEmitter<unknown>()
28
+
29
+ get gridStyle() {
30
+ return {
31
+ 'grid-template-columns': this.columns
32
+ .map((column) =>
33
+ column.grow ? `minmax(0px,1fr)` : `minmax(0px,max-content)`
34
+ )
35
+ .join(' '),
36
+ }
37
+ }
38
+
39
+ handleRowClick(item: unknown) {
40
+ this.itemClick.emit(item)
41
+ }
42
+ }
@@ -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'
@@ -24,10 +24,10 @@ import { ResultsListItemComponent } from './results-list-item/results-list-item.
24
24
  import { UiWidgetsModule } from '../../../../../libs/ui/widgets/src'
25
25
  import { UiElementsModule } from '../../../../../libs/ui/elements/src'
26
26
  import { RecordPreviewFeedComponent } from './record-preview-feed/record-preview-feed.component'
27
- import { RecordTableComponent } from './record-table/record-table.component'
28
27
  import { CommonModule } from '@angular/common'
29
28
  import { UiInputsModule } from '../../../../../libs/ui/inputs/src'
30
29
  import { MatCheckboxModule } from '@angular/material/checkbox'
30
+ import { InteractiveTableComponent } from '../../../../../libs/ui/layout/src'
31
31
 
32
32
  @NgModule({
33
33
  declarations: [
@@ -42,7 +42,6 @@ import { MatCheckboxModule } from '@angular/material/checkbox'
42
42
  ResultsListItemComponent,
43
43
  RecordPreviewFeedComponent,
44
44
  RecordPreviewRowComponent,
45
- RecordTableComponent,
46
45
  ],
47
46
  imports: [
48
47
  CommonModule,
@@ -59,6 +58,7 @@ import { MatCheckboxModule } from '@angular/material/checkbox'
59
58
  MatIconModule,
60
59
  MatCheckboxModule,
61
60
  RouterLink,
61
+ InteractiveTableComponent,
62
62
  ],
63
63
  exports: [
64
64
  RecordPreviewListComponent,
@@ -72,7 +72,6 @@ import { MatCheckboxModule } from '@angular/material/checkbox'
72
72
  ResultsHitsNumberComponent,
73
73
  RecordPreviewFeedComponent,
74
74
  RecordPreviewRowComponent,
75
- RecordTableComponent,
76
75
  ],
77
76
  providers: [
78
77
  { provide: RESULTS_LAYOUT_CONFIG, useValue: DEFAULT_RESULTS_LAYOUT_CONFIG },
@@ -1,7 +1,9 @@
1
1
  <div
2
2
  class="inline-block bg-black opacity-70 py-1.5 px-3 rounded font-medium text-gray-50 text-sm leading-none"
3
3
  [ngClass]="
4
- clickable ? 'hover:bg-gray-800 cursor-pointer transition-colors' : ''
4
+ clickable
5
+ ? 'hover:bg-primary cursor-pointer transition-colors duration-100'
6
+ : ''
5
7
  "
6
8
  >
7
9
  <ng-content></ng-content>
@@ -3,6 +3,5 @@ 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'
@@ -40,6 +40,24 @@ export const LANG_3_TO_2_MAPPER = {
40
40
  slo: 'sk',
41
41
  }
42
42
 
43
+ export const LANGUAGE_NAMES = {
44
+ en: 'English',
45
+ nl: 'Nederlands',
46
+ fr: 'Français',
47
+ de: 'Deutsch',
48
+ ko: '한국어',
49
+ es: 'Español',
50
+ cs: 'Čeština',
51
+ ca: 'Català',
52
+ fi: 'Suomi',
53
+ is: 'Íslenska',
54
+ it: 'Italiano',
55
+ pt: 'Português',
56
+ ru: 'Русский',
57
+ zh: '中文',
58
+ sk: 'Slovenčina',
59
+ }
60
+
43
61
  // Caution: changing this can break language selection from third parties!
44
62
  export const LANGUAGE_STORAGE_KEY = 'geonetwork-ui-language'
45
63
 
@@ -6,3 +6,4 @@ export * from './sort-by'
6
6
  export * from './url'
7
7
  export * from './event'
8
8
  export * from './fuzzy-filter'
9
+ export * from './temporal-extent-union'
@@ -0,0 +1,32 @@
1
+ export function getTemporalRangeUnion(ranges) {
2
+ let earliestStartDate = Infinity
3
+ let latestEndDate = -Infinity
4
+ if (ranges.length) {
5
+ for (let i = 0; i < ranges.length; i++) {
6
+ const rangeStart = ranges[i].start
7
+ ? new Date(ranges[i].start).getTime()
8
+ : -Infinity
9
+ const rangeEnd = ranges[i].end
10
+ ? new Date(ranges[i].end).getTime()
11
+ : Infinity
12
+ if (rangeStart < earliestStartDate) {
13
+ earliestStartDate = rangeStart
14
+ }
15
+ if (rangeEnd > latestEndDate) {
16
+ latestEndDate = rangeEnd
17
+ }
18
+ }
19
+ return {
20
+ start:
21
+ earliestStartDate !== -Infinity
22
+ ? new Date(earliestStartDate).toLocaleDateString()
23
+ : undefined,
24
+ end:
25
+ latestEndDate !== Infinity
26
+ ? new Date(latestEndDate).toLocaleDateString()
27
+ : undefined,
28
+ }
29
+ } else {
30
+ return undefined
31
+ }
32
+ }
package/tailwind.base.css CHANGED
@@ -2,49 +2,78 @@
2
2
  @tailwind components;
3
3
  @tailwind utilities;
4
4
 
5
+ /* PLEASE NOTE: all Tailwind components should be prefixed by `gn-ui` */
5
6
  @layer components {
7
+ /* TODO: add prefix */
6
8
  .card-shadow {
7
9
  @apply shadow-xl hover:shadow-xl-hover transition-shadow;
8
10
  }
9
11
 
10
- .btn {
11
- @apply flex flex-row items-center text-[1em] leading-none p-[1em] rounded-[0.25em] transition-all duration-100 focus:outline-none disabled:opacity-50;
12
+ /* BUTTON CLASSES */
13
+ /* these are used behind the scenes by the `gn-ui-button` component */
14
+
15
+ /* this is a base class, do not use it directly */
16
+ .gn-ui-btn {
17
+ --rounded: var(--gn-ui-button-rounded, 0.25em);
18
+ --padding: var(--gn-ui-button-padding, 1em);
19
+ --width: var(--gn-ui-button-width, auto);
20
+ --height: var(--gn-ui-button-height, auto);
21
+ --background: var(--gn-ui-button-background, --color-background);
22
+ --font-size: var(--gn-ui-button-font-size, 1em);
23
+ @apply flex flex-row items-center justify-center
24
+ text-[length:--font-size] leading-none
25
+ p-[--padding] rounded-[--rounded] w-[--width] h-[--height] overflow-hidden
26
+ bg-[--background] transition-all duration-100
27
+ focus:outline-none
28
+ disabled:opacity-50 disabled:pointer-events-none;
29
+ }
30
+ /* makes sure icons will not make the buttons grow vertically */
31
+ .gn-ui-btn mat-icon.mat-icon {
32
+ margin-top: -0.325em;
33
+ margin-bottom: -0.325em;
34
+ flex-shrink: 0;
35
+ }
36
+ /* makes spinners appear in the right color */
37
+ .gn-ui-btn mat-spinner circle {
38
+ stroke: currentColor !important;
12
39
  }
13
40
 
14
- .btn-default {
15
- @apply btn text-white
41
+ .gn-ui-btn-default {
42
+ @apply gn-ui-btn text-white
16
43
  bg-gray-700 hover:bg-gray-800 active:bg-gray-900
17
44
  border border-gray-700 focus:ring-4 focus:ring-gray-200;
18
45
  }
19
46
 
20
- .btn-primary {
21
- @apply btn text-white
47
+ .gn-ui-btn-primary {
48
+ @apply gn-ui-btn text-white
22
49
  bg-primary hover:bg-primary-darker focus:bg-primary-darker active:bg-primary-darkest
23
50
  border border-primary focus:ring-4 focus:ring-primary-lightest;
24
51
  }
25
52
 
26
- .btn-secondary {
27
- @apply btn text-white
53
+ .gn-ui-btn-secondary {
54
+ @apply gn-ui-btn text-white
28
55
  bg-secondary hover:bg-secondary-darker focus:bg-secondary-darker active:bg-secondary-darkest
29
56
  border border-secondary focus:ring-4 focus:ring-secondary-lightest;
30
57
  }
31
58
 
32
- .btn-outline {
33
- @apply btn text-main
34
- bg-white hover:text-primary-darker focus:text-primary-darker active:text-primary-black
35
- border border-gray-300 hover:border-primary-lighter focus:border-primary-lighter focus:ring-4 focus:ring-primary-lightest active:border-primary-darker;
59
+ .gn-ui-btn-outline {
60
+ @apply gn-ui-btn text-main
61
+ hover:text-primary-darker focus:text-primary-darker active:text-primary-black
62
+ border border-gray-300 hover:border-primary-lighter focus:border-primary-lighter focus:ring-4 focus:ring-primary-lightest active:border-primary-darker;
36
63
  }
37
64
 
38
- .btn-light {
39
- @apply btn text-main
40
- bg-white hover:bg-gray-50 focus:bg-gray-50 active:bg-gray-100
65
+ .gn-ui-btn-light {
66
+ @apply gn-ui-btn text-main
67
+ hover:bg-gray-50 focus:bg-gray-50 active:bg-gray-100
41
68
  border border-white focus:ring-4 focus:ring-gray-300;
42
69
  }
43
70
 
71
+ /* TODO: add prefix */
44
72
  .badge-btn {
45
73
  @apply flex items-center justify-center px-4 py-1 text-white rounded backdrop-blur;
46
74
  }
47
75
 
76
+ /* TODO: add prefix */
48
77
  .card-icon {
49
78
  @apply text-primary opacity-50 group-hover:text-secondary group-hover:opacity-100 transition-colors transition-opacity;
50
79
  }
@@ -16,20 +16,21 @@
16
16
  "chart.type.line": "Liniendiagramm",
17
17
  "chart.type.lineSmooth": "Geglättes Liniendiagramm",
18
18
  "chart.type.pie": "Kreisdiagramm",
19
+ "dashboard.createRecord": "Neuer Eintrag",
19
20
  "dashboard.labels.mySpace": "Mein Bereich",
20
21
  "dashboard.records.all": "Katalog",
21
22
  "dashboard.records.myDraft": "Meine Entwürfe",
22
23
  "dashboard.records.myLibrary": "Meine Bibliothek",
23
24
  "dashboard.records.myOrg": "Meine Organisation",
24
25
  "dashboard.records.myRecords": "Meine Datensätze",
25
- "dashboard.records.noRecord": "Kein Datensatz für diese Organisation",
26
- "dashboard.records.noUser": "Keine Benutzer für diese Organisation",
27
26
  "dashboard.records.publishedRecords": "{count, plural, =1{veröffentlichter Datensatz} other{veröffentlichte Datensätze}}",
28
27
  "dashboard.records.search": "Suche nach \"{searchText}\"",
29
28
  "dashboard.records.userDetail": "Name",
30
29
  "dashboard.records.userEmail": "E-Mail",
31
30
  "dashboard.records.username": "Benutzername",
32
31
  "dashboard.records.users": "{count, plural, =1{Benutzer} other{Benutzer}}",
32
+ "dashboard.results.listMetadata": "Metadaten anzeigen",
33
+ "dashboard.results.listResources": "Ressourcen anzeigen",
33
34
  "datafeeder.analysisProgressBar.illustration.fileFormatDetection": "Dateiformat-Erkennung",
34
35
  "datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Sammeln von Datensatzinformationen",
35
36
  "datafeeder.analysisProgressBar.illustration.samplingData": "Datenauswahl",
@@ -143,6 +144,8 @@
143
144
  "downloads.format.unknown": "unbekannt",
144
145
  "downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
145
146
  "dropFile": "Datei ablegen",
147
+ "editor.record.publish": "",
148
+ "editor.record.upToDate": "",
146
149
  "externalviewer.dataset.unnamed": "Datensatz aus dem Datahub",
147
150
  "facets.block.title.OrgForResource": "Organisation",
148
151
  "facets.block.title.availableInServices": "Verfügbar für",
@@ -156,28 +159,28 @@
156
159
  "facets.block.title.tag.default": "Stichwort",
157
160
  "facets.block.title.th_regions_tree.default": "Regionen",
158
161
  "favorite.not.authenticated.tooltip": "<div><a href=' {link} '>Anmelden</a>, um auf diese Funktion zuzugreifen</div>",
159
- "language.ca": "Català",
160
- "language.cs": "Čeština",
162
+ "language.ca": "Katalanisch",
163
+ "language.cs": "Tschechisch",
161
164
  "language.de": "Deutsch",
162
- "language.en": "English",
163
- "language.es": "Español",
164
- "language.fi": "Suomi",
165
- "language.fr": "Français",
166
- "language.is": "Íslenska",
167
- "language.it": "Italiano",
168
- "language.ko": "한국어",
169
- "language.nl": "Nederlands",
170
- "language.pt": "Português",
171
- "language.ru": "Русский",
172
- "language.sk": "Slovenčina",
173
- "language.zh": "中文",
165
+ "language.en": "Englisch",
166
+ "language.es": "Spanisch",
167
+ "language.fi": "Finnisch",
168
+ "language.fr": "Französisch",
169
+ "language.is": "Isländisch",
170
+ "language.it": "Italienisch",
171
+ "language.ko": "Koreanisch",
172
+ "language.nl": "Niederländisch",
173
+ "language.pt": "Portugiesisch",
174
+ "language.ru": "Russisch",
175
+ "language.sk": "Slowakisch",
176
+ "language.zh": "Chinesisch",
174
177
  "map.add.layer": "Eine Ebene hinzufügen",
175
178
  "map.add.layer.catalog": "Aus dem Katalog",
176
179
  "map.add.layer.file": "Aus einer Datei",
177
180
  "map.add.layer.wfs": "Aus WFS",
178
181
  "map.add.layer.wms": "Aus WMS",
179
182
  "map.addFromFile.placeholder": "Klicke hier oder ziehe eine Datei herein",
180
- "map.geocoding.placeholder": "",
183
+ "map.geocoding.placeholder": "Nach einem Ort suchen",
181
184
  "map.help.addFromFile": "Klicke oder ziehe eine Datei herein um eine Karte hinzuzufügen (momentan wird nur das GeoJSON-Format unterstützt).",
182
185
  "map.layer.add": "Hinzufügen",
183
186
  "map.layers.available": "Verfügbare Layer",
@@ -221,18 +224,20 @@
221
224
  "record.metadata.author": "Autor",
222
225
  "record.metadata.catalog": "Katalog",
223
226
  "record.metadata.contact": "Kontakt",
224
- "record.metadata.createdOn": "Erstellt am",
225
- "record.metadata.details": "Technische Informationen",
227
+ "record.metadata.creation": "Erstellungsdatum",
228
+ "record.metadata.details": "Über die Daten",
226
229
  "record.metadata.download": "Downloads",
227
230
  "record.metadata.formats": "Formate",
228
- "record.metadata.isOpenData": "Open Data",
229
231
  "record.metadata.keywords": "Stichworte",
230
- "record.metadata.lastUpdate": "Zuletzt aktualisiert am",
232
+ "record.metadata.languages": "Sprachen",
233
+ "record.metadata.lastUpdate": "Zuletzt aktualisiert am {date}",
231
234
  "record.metadata.links": "Links",
232
235
  "record.metadata.noUsage": "Für diesen Datensatz sind keine Nutzungsbedingungen angegeben.",
233
- "record.metadata.origin": "Über die Daten",
234
- "record.metadata.owner": "",
236
+ "record.metadata.otherConstraints": "Zusätzliche Bedingungen",
237
+ "record.metadata.owner": "Herkunftskatalog",
235
238
  "record.metadata.preview": "Vorschau",
239
+ "record.metadata.producer": "Datenproduzent",
240
+ "record.metadata.publication": "Veröffentlichungsdatum",
236
241
  "record.metadata.publications": "Veröffentlichungen",
237
242
  "record.metadata.quality": "Metadatenqualität",
238
243
  "record.metadata.quality.contact.failed": "Kontakt nicht angegeben",
@@ -254,12 +259,17 @@
254
259
  "record.metadata.quality.updateFrequency.success": "Aktualisierungsfrequenz angegeben",
255
260
  "record.metadata.related": "Ähnliche Datensätze",
256
261
  "record.metadata.sheet": "Weitere Informationen verfügbar unter:",
257
- "record.metadata.themes": "Kategorien",
262
+ "record.metadata.status": "Status",
263
+ "record.metadata.technical": "Technische Informationen",
264
+ "record.metadata.temporalExtent": "Zeitlicher Umfang",
265
+ "record.metadata.temporalExtent.fromDateToDate": "Von {start} bis {end}",
266
+ "record.metadata.temporalExtent.sinceDate": "Seit {start}",
267
+ "record.metadata.temporalExtent.untilDate": "Bis {end}",
258
268
  "record.metadata.title": "Titel",
269
+ "record.metadata.topics": "Kategorien",
259
270
  "record.metadata.type": "Geographischer Datensatz",
260
271
  "record.metadata.uniqueId": "Eindeutige Kennung",
261
272
  "record.metadata.updateFrequency": "Aktualisierungsfrequenz der Daten",
262
- "record.metadata.updateStatus": "Aktualisierungsstatus der Daten",
263
273
  "record.metadata.updatedOn": "Letzte Aktualisierung der Dateninformationen",
264
274
  "record.metadata.usage": "Nutzung und Einschränkungen",
265
275
  "record.more.details": "Weitere Details",
@@ -291,6 +301,7 @@
291
301
  "search.filters.isSpatial": "Ist räumliche Daten",
292
302
  "search.filters.isSpatial.no": "nicht räumlich",
293
303
  "search.filters.isSpatial.yes": "räumlich",
304
+ "search.filters.keyword": "Schlüsselwort",
294
305
  "search.filters.license": "Lizenz",
295
306
  "search.filters.license.cc-by": "Creative Commons CC-BY",
296
307
  "search.filters.license.cc-by-sa": "Creative Commons CC-BY-SA",
@@ -321,7 +332,7 @@
321
332
  "table.object.count": "Objekte in diesem Datensatz",
322
333
  "table.select.data": "Datenquelle",
323
334
  "tooltip.html.copy": "HTML kopieren",
324
- "tooltip.id.copy": "",
335
+ "tooltip.id.copy": "Eindeutige Kennung kopieren",
325
336
  "tooltip.url.copy": "URL kopieren",
326
337
  "tooltip.url.open": "URL öffnen",
327
338
  "ui.readLess": "Weniger lesen",