geonetwork-ui 2.4.0-dev.503109c9 → 2.4.0-dev.575f30f2

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 (347) hide show
  1. package/esm2022/libs/api/metadata-converter/src/index.mjs +2 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +10 -3
  3. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.mjs +5 -5
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +7 -4
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +10 -7
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +7 -14
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +6 -6
  8. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +28 -18
  9. package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +18 -2
  10. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +78 -39
  11. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +41 -7
  12. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  13. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  14. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  15. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +1 -1
  16. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +1 -1
  17. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +1 -1
  18. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  19. package/esm2022/libs/feature/editor/src/lib/components/contact-card/contact-card.component.mjs +4 -16
  20. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +4 -2
  21. package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +93 -0
  22. package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +71 -0
  23. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +11 -29
  24. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.mjs +19 -0
  25. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +23 -10
  26. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +3 -3
  27. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +148 -0
  28. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +86 -11
  29. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +4 -8
  30. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +36 -7
  31. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.mjs +35 -59
  32. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +3 -3
  33. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +12 -5
  34. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -2
  35. package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +3 -3
  36. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +34 -6
  37. package/esm2022/libs/feature/editor/src/lib/models/editor-config.model.mjs +1 -1
  38. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +2 -2
  39. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +1 -1
  40. package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +1 -1
  41. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +1 -1
  42. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +4 -2
  43. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +3 -3
  44. package/esm2022/libs/ui/elements/src/index.mjs +2 -2
  45. package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +2 -2
  46. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +1 -1
  47. package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +2 -2
  48. package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +6 -6
  49. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +2 -2
  50. package/esm2022/libs/ui/inputs/src/index.mjs +5 -1
  51. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +7 -4
  52. package/esm2022/libs/ui/inputs/src/lib/badge/badge.component.mjs +5 -3
  53. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +8 -1
  54. package/esm2022/libs/ui/inputs/src/lib/date-picker/date-picker.component.mjs +11 -4
  55. package/esm2022/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.mjs +9 -3
  56. package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +87 -0
  57. package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +5 -4
  58. package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +4 -4
  59. package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +4 -3
  60. package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +3 -3
  61. package/esm2022/libs/ui/layout/src/index.mjs +3 -1
  62. package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +5 -3
  63. package/esm2022/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.mjs +29 -0
  64. package/esm2022/libs/ui/layout/src/lib/sortable-list/sortable-list.component.mjs +43 -0
  65. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +3 -3
  66. package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +1 -1
  67. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +1 -1
  68. package/esm2022/libs/util/shared/src/lib/services/theme.service.mjs +2 -1
  69. package/esm2022/libs/util/shared/src/lib/utils/bytes-convert.mjs +4 -1
  70. package/esm2022/translations/de.json +20 -0
  71. package/esm2022/translations/en.json +20 -0
  72. package/esm2022/translations/es.json +20 -0
  73. package/esm2022/translations/fr.json +21 -1
  74. package/esm2022/translations/it.json +20 -0
  75. package/esm2022/translations/nl.json +20 -0
  76. package/esm2022/translations/pt.json +20 -0
  77. package/fesm2022/geonetwork-ui.mjs +3136 -2523
  78. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  79. package/libs/api/metadata-converter/src/index.d.ts +1 -0
  80. package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
  81. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +3 -3
  82. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  83. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +2 -2
  84. package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -1
  85. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts +1 -1
  86. package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -1
  87. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
  88. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +4 -5
  89. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  90. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +7 -6
  91. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  92. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +6 -0
  93. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
  94. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +12 -7
  95. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  96. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +21 -2
  97. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  98. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +6 -6
  99. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  100. package/libs/common/domain/src/lib/platform.service.interface.d.ts +15 -0
  101. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  102. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +7 -0
  103. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  104. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +2 -2
  105. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  106. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +6 -6
  107. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  108. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +3 -3
  109. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  110. package/libs/feature/editor/src/index.d.ts +1 -0
  111. package/libs/feature/editor/src/index.d.ts.map +1 -1
  112. package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts +1 -5
  113. package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts.map +1 -1
  114. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts +2 -1
  115. package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -1
  116. package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts +33 -0
  117. package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts.map +1 -0
  118. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts +15 -0
  119. package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts.map +1 -0
  120. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts +2 -5
  121. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts.map +1 -1
  122. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.d.ts +9 -0
  123. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-date-updated/form-field-date-updated.component.d.ts.map +1 -0
  124. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts +5 -2
  125. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -1
  126. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts +35 -0
  127. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts.map +1 -0
  128. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +20 -2
  129. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -1
  130. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts +1 -3
  131. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -1
  132. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts +7 -2
  133. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts.map +1 -1
  134. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts +9 -15
  135. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts.map +1 -1
  136. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +5 -3
  137. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  138. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -1
  139. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  140. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts +3 -2
  141. package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -1
  142. package/libs/feature/editor/src/lib/fields.config.d.ts +9 -1
  143. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  144. package/libs/feature/editor/src/lib/models/editor-config.model.d.ts +6 -0
  145. package/libs/feature/editor/src/lib/models/editor-config.model.d.ts.map +1 -1
  146. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts +5 -5
  147. package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts.map +1 -1
  148. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +3 -3
  149. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  150. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts +2 -2
  151. package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
  152. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +2 -2
  153. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  154. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +7 -7
  155. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  156. package/libs/ui/elements/src/index.d.ts +1 -1
  157. package/libs/ui/elements/src/index.d.ts.map +1 -1
  158. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts +2 -2
  159. package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
  160. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +7 -7
  161. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  162. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts +2 -2
  163. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +1 -1
  164. package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts +2 -2
  165. package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts.map +1 -1
  166. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
  167. package/libs/ui/inputs/src/index.d.ts +4 -0
  168. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  169. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  170. package/libs/ui/inputs/src/lib/badge/badge.component.d.ts.map +1 -1
  171. package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
  172. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  173. package/libs/ui/inputs/src/lib/date-picker/date-picker.component.d.ts.map +1 -1
  174. package/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.d.ts.map +1 -1
  175. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts +24 -0
  176. package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts.map +1 -0
  177. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +1 -1
  178. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -1
  179. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts +0 -1
  180. package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts.map +1 -1
  181. package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
  182. package/libs/ui/layout/src/index.d.ts +2 -0
  183. package/libs/ui/layout/src/index.d.ts.map +1 -1
  184. package/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.d.ts +2 -2
  185. package/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.d.ts.map +1 -1
  186. package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +1 -1
  187. package/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.d.ts +20 -0
  188. package/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.d.ts.map +1 -0
  189. package/libs/ui/layout/src/lib/sortable-list/sortable-list.component.d.ts +14 -0
  190. package/libs/ui/layout/src/lib/sortable-list/sortable-list.component.d.ts.map +1 -0
  191. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +1 -1
  192. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  193. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts +3 -3
  194. package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
  195. package/libs/util/shared/src/lib/links/link-utils.d.ts +6 -6
  196. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  197. package/libs/util/shared/src/lib/services/theme.service.d.ts.map +1 -1
  198. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts +2 -1
  199. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts.map +1 -1
  200. package/package.json +1 -1
  201. package/src/libs/api/metadata-converter/src/index.ts +1 -0
  202. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +1 -1
  203. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +1 -1
  204. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +1 -1
  205. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +1 -1
  206. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +18 -16
  207. package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +4 -4
  208. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +12 -4
  209. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +14 -8
  210. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +4 -12
  211. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +13 -15
  212. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +48 -36
  213. package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +20 -1
  214. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +132 -68
  215. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +47 -3
  216. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +7 -7
  217. package/src/libs/common/domain/src/lib/platform.service.interface.ts +26 -0
  218. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +10 -0
  219. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +216 -175
  220. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +3 -3
  221. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +3 -3
  222. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +6 -6
  223. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +4 -4
  224. package/src/libs/feature/editor/src/index.ts +1 -0
  225. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.html +12 -24
  226. package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.ts +1 -13
  227. package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +1 -0
  228. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.html +43 -0
  229. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +129 -0
  230. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.html +35 -0
  231. package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +79 -0
  232. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.css +4 -0
  233. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +13 -23
  234. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +7 -44
  235. package/src/libs/feature/editor/src/lib/components/record-form/form-field/{form-field-resource-updated/form-field-resource-updated.component.ts → form-field-date-updated/form-field-date-updated.component.ts} +4 -4
  236. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.html +3 -2
  237. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +35 -3
  238. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.css +8 -0
  239. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.html +34 -0
  240. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.ts +182 -0
  241. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +11 -5
  242. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +93 -4
  243. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.html +13 -6
  244. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +0 -9
  245. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +7 -2
  246. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +62 -6
  247. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.css +4 -0
  248. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.html +23 -3
  249. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.ts +37 -69
  250. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.css +4 -0
  251. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.html +16 -14
  252. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +27 -20
  253. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +10 -3
  254. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -1
  255. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +31 -29
  256. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +2 -1
  257. package/src/libs/feature/editor/src/lib/fields.config.ts +37 -5
  258. package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +12 -0
  259. package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.ts +7 -7
  260. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +3 -3
  261. package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +2 -2
  262. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +2 -2
  263. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +5 -1
  264. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +1 -0
  265. package/src/libs/ui/elements/src/index.ts +1 -1
  266. package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +4 -4
  267. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +7 -7
  268. package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +3 -3
  269. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +13 -20
  270. package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +1 -1
  271. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +5 -0
  272. package/src/libs/ui/inputs/src/index.ts +4 -0
  273. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.css +25 -18
  274. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +38 -24
  275. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +4 -1
  276. package/src/libs/ui/inputs/src/lib/badge/badge.component.html +12 -3
  277. package/src/libs/ui/inputs/src/lib/badge/badge.component.ts +2 -1
  278. package/src/libs/ui/inputs/src/lib/button/button.component.ts +15 -1
  279. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.css +7 -2
  280. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.html +13 -6
  281. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.ts +7 -1
  282. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.css +7 -2
  283. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.html +27 -23
  284. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.ts +7 -1
  285. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.css +4 -0
  286. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.html +7 -3
  287. package/src/libs/ui/inputs/src/lib/file-input/file-input.component.ts +2 -1
  288. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.css +4 -0
  289. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +30 -22
  290. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +2 -1
  291. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.css +4 -3
  292. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.html +0 -1
  293. package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +1 -2
  294. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.html +1 -1
  295. package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +1 -1
  296. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.html +1 -1
  297. package/src/libs/ui/layout/src/index.ts +2 -0
  298. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.html +8 -3
  299. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.ts +4 -3
  300. package/src/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.css +0 -0
  301. package/src/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.html +15 -0
  302. package/src/libs/ui/layout/src/lib/modal-dialog/modal-dialog.component.ts +44 -0
  303. package/src/libs/ui/layout/src/lib/sortable-list/sortable-list.component.html +37 -0
  304. package/src/libs/ui/{elements → layout}/src/lib/sortable-list/sortable-list.component.ts +13 -16
  305. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +4 -2
  306. package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +4 -3
  307. package/src/libs/util/shared/src/lib/links/link-utils.ts +6 -6
  308. package/src/libs/util/shared/src/lib/services/theme.service.ts +1 -0
  309. package/src/libs/util/shared/src/lib/utils/bytes-convert.ts +4 -1
  310. package/tailwind.base.config.js +1 -0
  311. package/tailwind.base.css +35 -4
  312. package/translations/de.json +20 -0
  313. package/translations/en.json +20 -0
  314. package/translations/es.json +20 -0
  315. package/translations/fr.json +21 -1
  316. package/translations/it.json +20 -0
  317. package/translations/nl.json +20 -0
  318. package/translations/pt.json +20 -0
  319. package/translations/sk.json +20 -0
  320. package/esm2022/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.mjs +0 -96
  321. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.mjs +0 -19
  322. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.mjs +0 -17
  323. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.mjs +0 -17
  324. package/esm2022/libs/ui/elements/src/lib/sortable-list/sortable-list.component.mjs +0 -39
  325. package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts +0 -27
  326. package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts.map +0 -1
  327. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts +0 -9
  328. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts.map +0 -1
  329. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.d.ts +0 -8
  330. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.d.ts.map +0 -1
  331. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.d.ts +0 -8
  332. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.d.ts.map +0 -1
  333. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts +0 -17
  334. package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts.map +0 -1
  335. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +0 -9
  336. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +0 -113
  337. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.html +0 -7
  338. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.ts +0 -16
  339. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.html +0 -13
  340. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.ts +0 -16
  341. package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.html +0 -29
  342. /package/src/libs/feature/editor/src/lib/components/{overview-upload/overview-upload.component.css → import-record/import-record.component.css} +0 -0
  343. /package/src/libs/feature/editor/src/lib/components/{record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.css → online-resource-card/online-resource-card.component.css} +0 -0
  344. /package/src/libs/feature/editor/src/lib/components/record-form/form-field/{form-field-temporal-extents/form-field-temporal-extents-date/form-field-temporal-extents-date.component.css → form-field-date-updated/form-field-date-updated.component.css} +0 -0
  345. /package/src/libs/feature/editor/src/lib/components/record-form/form-field/{form-field-resource-updated/form-field-resource-updated.component.html → form-field-date-updated/form-field-date-updated.component.html} +0 -0
  346. /package/src/libs/feature/editor/src/lib/components/record-form/form-field/{form-field-temporal-extents/form-field-temporal-extents-range/form-field-temporal-extents-range.component.css → form-field-online-link-resources/form-field-online-link-resources.component.css} +0 -0
  347. /package/src/libs/ui/{elements → layout}/src/lib/sortable-list/sortable-list.component.css +0 -0
@@ -79,9 +79,10 @@ export class FileInputComponent {
79
79
  this.urlChange.emit(url)
80
80
  }
81
81
 
82
- handleSecondaryTextClick() {
82
+ handleSecondaryTextClick(event: Event) {
83
83
  if (this.uploadProgress) {
84
84
  this.handleCancel()
85
+ event.preventDefault()
85
86
  }
86
87
  }
87
88
 
@@ -0,0 +1,4 @@
1
+ :host {
2
+ --gn-ui-button-padding: 8px 8px;
3
+ --gn-ui-button-rounded: 8px;
4
+ }
@@ -5,15 +5,15 @@
5
5
  <div class="w-full h-full flex flex-col gap-2">
6
6
  <div class="flex-1 group relative">
7
7
  <img
8
- class="w-full h-full object-cover border-2 border-gray-300 rounded-lg"
8
+ class="w-full object-cover border-2 border-gray-300 rounded-lg h-[172px]"
9
9
  [alt]="altText"
10
10
  loading="lazy"
11
11
  [src]="previewUrl"
12
12
  />
13
13
  <gn-ui-button
14
- [extraClass]="
15
- 'bg-gray-200 absolute right-2 bottom-2 invisible group-hover:visible'
16
- "
14
+ type="outline"
15
+ style="--gn-ui-button-height: 40px; --gn-ui-button-width: 40px"
16
+ extraClass="absolute right-2 bottom-2 invisible group-hover:visible bg-background"
17
17
  (buttonClick)="handleDelete()"
18
18
  >
19
19
  <mat-icon class="material-symbols-outlined">delete</mat-icon>
@@ -24,21 +24,23 @@
24
24
  [placeholder]="'input.image.altTextPlaceholder' | translate"
25
25
  [value]="altText ?? ''"
26
26
  (valueChange)="handleAltTextChange($event)"
27
+ extraClass="gn-ui-editor-textarea"
27
28
  ></gn-ui-text-input>
28
- <div class="flex flex-row gap-2">
29
- <gn-ui-button
30
- [extraClass]="'bg-gray-200 font-bold'"
31
- (buttonClick)="handleDelete()"
32
- >
33
- <mat-icon class="material-symbols-outlined me-1">delete</mat-icon>
29
+ <div class="flex flex-row gap-2 mt-2">
30
+ <gn-ui-button type="gray" (buttonClick)="handleDelete()">
31
+ <mat-icon class="material-symbols-outlined me-1 text-primary"
32
+ >delete</mat-icon
33
+ >
34
34
  {{ 'input.image.delete' | translate }}
35
35
  </gn-ui-button>
36
36
  <gn-ui-button
37
37
  *ngIf="!showAltTextInput"
38
- [extraClass]="'bg-gray-200 font-bold'"
38
+ type="gray"
39
39
  (buttonClick)="toggleAltTextInput()"
40
40
  >
41
- <mat-icon class="material-symbols-outlined me-1">add</mat-icon>
41
+ <mat-icon class="material-symbols-outlined me-1 text-primary"
42
+ >add</mat-icon
43
+ >
42
44
  {{ 'input.image.displayAltTextInput' | translate }}
43
45
  </gn-ui-button>
44
46
  </div>
@@ -49,11 +51,17 @@
49
51
  <div class="w-full h-full flex flex-col gap-2">
50
52
  <label
51
53
  gnUiFilesDrop
52
- class="flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4"
54
+ class="flex-1 border-2 border-dashed rounded-lg p-6 flex flex-col items-center justify-center gap-4 transition-colors duration-100"
53
55
  [ngClass]="{
54
56
  'border-primary-lighter bg-primary-white': dragFilesOver,
55
- 'border-gray-300': !dragFilesOver
57
+ 'border-gray-300': !dragFilesOver,
58
+ 'cursor-pointer hover:border-gray-500':
59
+ !isUploadInProgress && !uploadError && !showUrlInput
56
60
  }"
61
+ [attr.tabindex]="
62
+ isUploadInProgress || uploadError || showUrlInput ? null : 0
63
+ "
64
+ (keydown.enter)="fileInput.click()"
57
65
  (dragFilesOver)="handleDragFilesOver($event)"
58
66
  (dropFiles)="handleDropFiles($event)"
59
67
  >
@@ -75,7 +83,7 @@
75
83
 
76
84
  <div
77
85
  *ngIf="isUploadInProgress && !uploadError"
78
- class="w-14 h-14 grid items-center justify-center"
86
+ class="w-14 h-14 grid items-center justify-center relative"
79
87
  >
80
88
  <div class="text-gray-100 absolute">
81
89
  <mat-progress-spinner
@@ -112,12 +120,13 @@
112
120
  ? 'font-bold text-blue-500 cursor-pointer'
113
121
  : 'font-medium text-gray-500'
114
122
  "
115
- (click)="handleSecondaryTextClick()"
123
+ (click)="handleSecondaryTextClick($event)"
116
124
  >
117
125
  {{ getSecondaryText() | translate }}
118
126
  </p>
119
127
  </div>
120
128
  <input
129
+ #fileInput
121
130
  type="file"
122
131
  class="hidden"
123
132
  (change)="handleFileInput($event)"
@@ -125,12 +134,11 @@
125
134
  />
126
135
  </label>
127
136
 
128
- <div *ngIf="!showUrlInput" class="flex-none">
129
- <gn-ui-button
130
- [extraClass]="'bg-gray-200 font-bold'"
131
- (buttonClick)="displayUrlInput()"
132
- >
133
- <mat-icon class="material-symbols-outlined me-1">link</mat-icon>
137
+ <div *ngIf="!showUrlInput" class="flex-none mt-2">
138
+ <gn-ui-button (buttonClick)="displayUrlInput()" type="gray">
139
+ <mat-icon class="material-symbols-outlined me-1 text-primary"
140
+ >link</mat-icon
141
+ >
134
142
  {{ 'input.image.displayUrlInput' | translate }}
135
143
  </gn-ui-button>
136
144
  </div>
@@ -144,11 +144,12 @@ export class ImageInputComponent {
144
144
  }
145
145
  }
146
146
 
147
- handleSecondaryTextClick() {
147
+ handleSecondaryTextClick(event: Event) {
148
148
  if (this.uploadError) {
149
149
  this.handleRetry()
150
150
  } else if (this.uploadProgress) {
151
151
  this.handleCancel()
152
+ event.preventDefault()
152
153
  }
153
154
  }
154
155
 
@@ -11,15 +11,16 @@
11
11
  }
12
12
 
13
13
  .mat-button-toggle-appearance-standard {
14
- color: var(--color-main);
14
+ color: black;
15
15
  background-color: var(--color-gray-200);
16
16
  border-radius: 4px;
17
17
  border-left: none;
18
+ font-family: var(--font-family-main);
18
19
  }
19
20
 
20
21
  .mat-button-toggle-appearance-standard.mat-button-toggle-checked {
21
- background-color: var(--color-main);
22
- color: var(--color-primary-white);
22
+ background-color: black;
23
+ color: var(--color-background);
23
24
  }
24
25
 
25
26
  button.mat-button-toggle-button.mat-focus-indicator.mat-button-toggle-label-content {
@@ -6,7 +6,6 @@
6
6
  <mat-button-toggle
7
7
  *ngFor="let option of options"
8
8
  [aria-label]="option.label"
9
- [value]="option.value"
10
9
  [checked]="option.checked"
11
10
  (change)="onChange(option)"
12
11
  [class]="extraClasses"
@@ -10,7 +10,6 @@ import { MatButtonToggleModule } from '@angular/material/button-toggle'
10
10
 
11
11
  export type SwitchToggleOption = {
12
12
  label: string
13
- value: string
14
13
  checked: boolean
15
14
  }
16
15
 
@@ -30,7 +29,7 @@ export class SwitchToggleComponent {
30
29
 
31
30
  onChange(selectedOption: SwitchToggleOption) {
32
31
  this.options.find(
33
- (option) => option.value === selectedOption.value
32
+ (option) => option.label === selectedOption.label
34
33
  ).checked = true
35
34
 
36
35
  this.selectedValue.emit(selectedOption)
@@ -6,7 +6,7 @@
6
6
  [ngClass]="extraClass"
7
7
  [disabled]="disabled"
8
8
  [placeholder]="placeholder"
9
- [value]="value"
9
+ [value]="value ?? ''"
10
10
  (change)="handleChange($event)"
11
11
  (input)="handleChange($event)"
12
12
  [attr.required]="required || null"
@@ -20,7 +20,7 @@ export class TextAreaComponent implements AfterViewInit {
20
20
  @Input() value = ''
21
21
  @Input() disabled = false
22
22
  @Input() extraClass = ''
23
- @Input() placeholder: string
23
+ @Input() placeholder = ''
24
24
  @Input() required = false
25
25
 
26
26
  rawChange = new Subject<string>()
@@ -30,7 +30,7 @@
30
30
  [disabled]="disabled || input.value === ''"
31
31
  (buttonClick)="handleChange(input)"
32
32
  >
33
- <mat-icon class="material-symbols-outlined text-[20px] leading-[26px]">
33
+ <mat-icon class="material-symbols-outlined text-[20px] leading-[24px]">
34
34
  arrow_upward
35
35
  </mat-icon>
36
36
  </gn-ui-button>
@@ -8,4 +8,6 @@ export * from './lib/interactive-table/interactive-table-column/interactive-tabl
8
8
  export * from './lib/interactive-table/interactive-table.component'
9
9
  export * from './lib/sticky-header/sticky-header.component'
10
10
  export * from './lib/block-list/block-list.component'
11
+ export * from './lib/sortable-list/sortable-list.component'
12
+ export * from './lib/modal-dialog/modal-dialog.component'
11
13
  export * from './lib/ui-layout.module'
@@ -1,9 +1,10 @@
1
- <div class="h-full flex flex-col">
1
+ <div class="h-full flex flex-col" *ngIf="label; else onlyContent">
2
2
  <div class="flex-none w-full flex flex-row items-center">
3
3
  <span class="flex-none font-bold">{{ label }}</span>
4
4
  <div class="flex-1 flex justify-end items-center">
5
5
  <ng-content select="[form-field-interaction]"></ng-content>
6
6
  <span
7
+ *ngIf="hint"
7
8
  class="material-symbols-outlined m-2 gn-ui-icon-small"
8
9
  [matTooltip]="hint"
9
10
  matTooltipPosition="above"
@@ -12,7 +13,11 @@
12
13
  </span>
13
14
  </div>
14
15
  </div>
15
- <div class="flex-1 overflow-y-auto">
16
- <ng-content></ng-content>
16
+ <div class="flex-1 mt-2">
17
+ <ng-container *ngTemplateOutlet="onlyContent"> </ng-container>
17
18
  </div>
18
19
  </div>
20
+
21
+ <ng-template #onlyContent>
22
+ <ng-content></ng-content>
23
+ </ng-template>
@@ -1,6 +1,7 @@
1
1
  import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
2
2
  import { MatIconModule } from '@angular/material/icon'
3
3
  import { MatTooltipModule } from '@angular/material/tooltip'
4
+ import { CommonModule } from '@angular/common'
4
5
 
5
6
  @Component({
6
7
  selector: 'gn-ui-form-field-wrapper',
@@ -8,9 +9,9 @@ import { MatTooltipModule } from '@angular/material/tooltip'
8
9
  styleUrls: ['./form-field-wrapper.component.css'],
9
10
  changeDetection: ChangeDetectionStrategy.OnPush,
10
11
  standalone: true,
11
- imports: [MatIconModule, MatTooltipModule],
12
+ imports: [MatIconModule, MatTooltipModule, CommonModule],
12
13
  })
13
14
  export class FormFieldWrapperComponent {
14
- @Input() label: string
15
- @Input() hint: string
15
+ @Input() label?: string
16
+ @Input() hint?: string
16
17
  }
@@ -0,0 +1,15 @@
1
+ <h1 mat-dialog-title>{{ data.title }}</h1>
2
+ <div mat-dialog-content>
3
+ <ng-container
4
+ *ngTemplateOutlet="data.body; context: { $implicit: data.bodyContext }"
5
+ ></ng-container>
6
+ </div>
7
+ <div mat-dialog-actions>
8
+ <gn-ui-button (buttonClick)="onCancel()">{{ data.cancelText }}</gn-ui-button>
9
+ <gn-ui-button
10
+ (buttonClick)="onConfirm()"
11
+ class="ml-2"
12
+ data-cy="confirm-button"
13
+ >{{ data.confirmText }}</gn-ui-button
14
+ >
15
+ </div>
@@ -0,0 +1,44 @@
1
+ import {
2
+ ChangeDetectionStrategy,
3
+ Component,
4
+ Inject,
5
+ TemplateRef,
6
+ } from '@angular/core'
7
+ import { CommonModule } from '@angular/common'
8
+ import {
9
+ MAT_DIALOG_DATA,
10
+ MatDialogModule,
11
+ MatDialogRef,
12
+ } from '@angular/material/dialog'
13
+ import { ButtonComponent } from '../../../../../../libs/ui/inputs/src'
14
+
15
+ export interface ModalDialogData {
16
+ title: string
17
+ body: TemplateRef<unknown>
18
+ bodyContext: unknown
19
+ confirmText: string
20
+ cancelText: string
21
+ }
22
+
23
+ @Component({
24
+ selector: 'gn-ui-modal-dialog',
25
+ standalone: true,
26
+ imports: [CommonModule, MatDialogModule, ButtonComponent],
27
+ templateUrl: './modal-dialog.component.html',
28
+ styleUrls: ['./modal-dialog.component.css'],
29
+ changeDetection: ChangeDetectionStrategy.OnPush,
30
+ })
31
+ export class ModalDialogComponent {
32
+ constructor(
33
+ public dialogRef: MatDialogRef<ModalDialogComponent>,
34
+ @Inject(MAT_DIALOG_DATA) public data: ModalDialogData
35
+ ) {}
36
+
37
+ onConfirm() {
38
+ this.dialogRef.close(true)
39
+ }
40
+
41
+ onCancel() {
42
+ this.dialogRef.close(false)
43
+ }
44
+ }
@@ -0,0 +1,37 @@
1
+ <div
2
+ cdkDropList
3
+ class="sortable-list flex flex-col gap-3 p-2"
4
+ (cdkDropListDropped)="drop($event)"
5
+ >
6
+ <ng-container *ngFor="let item of items; index as index; trackBy: trackByFn">
7
+ <div class="sortable-box bg-white flex items-center" cdkDrag>
8
+ <span
9
+ cdkDragHandle
10
+ class="material-symbols-outlined mx-[10px] cursor-grab gn-ui-icon-medium flex-none"
11
+ >
12
+ drag_handle
13
+ </span>
14
+ <div class="flex-1">
15
+ <ng-container
16
+ *ngTemplateOutlet="
17
+ elementTemplate;
18
+ context: { $implicit: item, index }
19
+ "
20
+ ></ng-container>
21
+ </div>
22
+
23
+ <gn-ui-button
24
+ type="light"
25
+ style="
26
+ --gn-ui-button-padding: 0px;
27
+ --gn-ui-button-width: 24px;
28
+ --gn-ui-button-height: 24px;
29
+ "
30
+ class="ml-[8px] mr-[10px]"
31
+ (buttonClick)="removeItem(index)"
32
+ data-cy="remove-item"
33
+ ><span class="material-symbols-outlined gn-ui-icon-medium">close</span>
34
+ </gn-ui-button>
35
+ </div>
36
+ </ng-container>
37
+ </div>
@@ -5,21 +5,17 @@ import {
5
5
  CdkDropList,
6
6
  moveItemInArray,
7
7
  } from '@angular/cdk/drag-drop'
8
- import { NgComponentOutlet, NgFor } from '@angular/common'
8
+ import { CommonModule } from '@angular/common'
9
9
  import {
10
10
  ChangeDetectionStrategy,
11
11
  Component,
12
12
  EventEmitter,
13
13
  Input,
14
14
  Output,
15
- Type,
15
+ TemplateRef,
16
16
  } from '@angular/core'
17
17
  import { MatIconModule } from '@angular/material/icon'
18
-
19
- export type DynamicElement = {
20
- component: Type<unknown>
21
- inputs: Record<string, unknown>
22
- }
18
+ import { ButtonComponent } from '../../../../../../libs/ui/inputs/src'
23
19
 
24
20
  @Component({
25
21
  selector: 'gn-ui-sortable-list',
@@ -28,26 +24,27 @@ export type DynamicElement = {
28
24
  changeDetection: ChangeDetectionStrategy.OnPush,
29
25
  standalone: true,
30
26
  imports: [
31
- NgFor,
32
- NgComponentOutlet,
27
+ CommonModule,
33
28
  CdkDropList,
34
29
  CdkDrag,
35
30
  CdkDragHandle,
36
31
  MatIconModule,
32
+ ButtonComponent,
37
33
  ],
38
34
  })
39
35
  export class SortableListComponent {
40
- @Input() elements: Array<DynamicElement>
41
- @Output() elementsChange = new EventEmitter<Array<DynamicElement>>()
36
+ @Input() elementTemplate: TemplateRef<unknown>
37
+ @Input() items: unknown[]
38
+ @Output() itemsOrderChange = new EventEmitter<unknown[]>()
42
39
 
43
40
  drop(event: CdkDragDrop<string[]>) {
44
- moveItemInArray(this.elements, event.previousIndex, event.currentIndex)
45
- this.elementsChange.emit(this.elements)
41
+ moveItemInArray(this.items, event.previousIndex, event.currentIndex)
42
+ this.itemsOrderChange.emit([...this.items])
46
43
  }
47
44
 
48
- removeElement(index: number) {
49
- this.elements = this.elements.filter((_, i) => i !== index)
50
- this.elementsChange.emit(this.elements)
45
+ removeItem(index: number) {
46
+ this.items = this.items.filter((_, i) => i !== index)
47
+ this.itemsOrderChange.emit(this.items)
51
48
  }
52
49
 
53
50
  trackByFn(index: number) {
@@ -64,12 +64,14 @@ export class ResultsTableComponent {
64
64
  }
65
65
 
66
66
  getRecordFormats(record: CatalogRecord): FileFormat[] {
67
- if (record.kind === 'service' || !('distributions' in record)) {
67
+ if (record.kind === 'service' || !('onlineResources' in record)) {
68
68
  return []
69
69
  }
70
70
  const formats = Array.from(
71
71
  new Set(
72
- record.distributions.map((distribution) => getFileFormat(distribution))
72
+ record.onlineResources.map((onlineResource) =>
73
+ getFileFormat(onlineResource)
74
+ )
73
75
  )
74
76
  ).filter((format) => !!format)
75
77
  formats.sort((a, b) => getFormatPriority(b) - getFormatPriority(a))
@@ -1,6 +1,7 @@
1
1
  import { Injectable } from '@angular/core'
2
- import { DatasetDistribution } from '../../../../../../libs/common/domain/src/lib/model/record'
2
+ import { DatasetOnlineResource } from '../../../../../../libs/common/domain/src/lib/model/record'
3
3
  import { getFileFormat } from './link-utils'
4
+
4
5
  export enum LinkUsage {
5
6
  API = 'api',
6
7
  MAP_API = 'mapapi',
@@ -15,7 +16,7 @@ export enum LinkUsage {
15
16
  providedIn: 'root',
16
17
  })
17
18
  export class LinkClassifierService {
18
- getUsagesForLink(link: DatasetDistribution): LinkUsage[] {
19
+ getUsagesForLink(link: DatasetOnlineResource): LinkUsage[] {
19
20
  switch (link.type) {
20
21
  case 'service': {
21
22
  switch (link.accessServiceProtocol) {
@@ -51,7 +52,7 @@ export class LinkClassifierService {
51
52
  }
52
53
  }
53
54
 
54
- hasUsage(link: DatasetDistribution, usage: LinkUsage) {
55
+ hasUsage(link: DatasetOnlineResource, usage: LinkUsage) {
55
56
  return this.getUsagesForLink(link).indexOf(usage) > -1
56
57
  }
57
58
  }
@@ -1,5 +1,5 @@
1
1
  import { marker } from '@biesbjerg/ngx-translate-extract-marker'
2
- import { DatasetDistribution } from '../../../../../../libs/common/domain/src/lib/model/record'
2
+ import { DatasetOnlineResource } from '../../../../../../libs/common/domain/src/lib/model/record'
3
3
 
4
4
  marker('downloads.wfs.featuretype.not.found')
5
5
 
@@ -131,7 +131,7 @@ export function getFormatPriority(linkFormat: FileFormat): number {
131
131
  return 0
132
132
  }
133
133
 
134
- export function getLinkPriority(link: DatasetDistribution): number {
134
+ export function getLinkPriority(link: DatasetOnlineResource): number {
135
135
  return getFormatPriority(getFileFormat(link))
136
136
  }
137
137
 
@@ -155,7 +155,7 @@ export function getFileFormatFromServiceOutput(
155
155
  return null
156
156
  }
157
157
 
158
- export function getFileFormat(link: DatasetDistribution): FileFormat {
158
+ export function getFileFormat(link: DatasetOnlineResource): FileFormat {
159
159
  if ('mimeType' in link) {
160
160
  const mimeTypeFormat = mimeTypeToFormat(link.mimeType)
161
161
  if (mimeTypeFormat !== null) {
@@ -172,7 +172,7 @@ export function getFileFormat(link: DatasetDistribution): FileFormat {
172
172
  }
173
173
 
174
174
  export function isFormatInQueryParam(
175
- link: DatasetDistribution,
175
+ link: DatasetOnlineResource,
176
176
  alias: string
177
177
  ): boolean {
178
178
  const queryParams = link.url.searchParams
@@ -194,7 +194,7 @@ export function mimeTypeToFormat(mimeType: string): FileFormat {
194
194
  }
195
195
 
196
196
  export function checkFileFormat(
197
- link: DatasetDistribution,
197
+ link: DatasetOnlineResource,
198
198
  format: FileFormat
199
199
  ): boolean {
200
200
  return (
@@ -214,7 +214,7 @@ export function getBadgeColor(linkFormat: FileFormat): string {
214
214
  return 'var(--color-gray-700)' // Default color ?
215
215
  }
216
216
 
217
- export function getLinkLabel(link: DatasetDistribution): string {
217
+ export function getLinkLabel(link: DatasetOnlineResource): string {
218
218
  let format = ''
219
219
  switch (link.type) {
220
220
  case 'service':
@@ -109,6 +109,7 @@ export class ThemeService {
109
109
  applyColor('gray-700', scale(0.7))
110
110
  applyColor('gray-800', scale(0.8))
111
111
  applyColor('gray-900', scale(0.9))
112
+ applyColor('gray-950', scale(0.95))
112
113
 
113
114
  if (mainFont) {
114
115
  document.documentElement.style.setProperty(`--font-family-main`, mainFont)
@@ -1,3 +1,6 @@
1
- export function megabytesToBytes(megabytes) {
1
+ export function megabytesToBytes(megabytes: number) {
2
2
  return megabytes * 1048576
3
3
  }
4
+ export function bytesToMegabytes(bytes: number) {
5
+ return bytes / 1048576
6
+ }
@@ -30,6 +30,7 @@ module.exports = {
30
30
  700: 'var(--color-gray-700)',
31
31
  800: 'var(--color-gray-800)',
32
32
  900: 'var(--color-gray-900)',
33
+ 950: 'var(--color-gray-950)',
33
34
  },
34
35
  orange: {
35
36
  50: '#fff8f1',
package/tailwind.base.css CHANGED
@@ -4,6 +4,16 @@
4
4
 
5
5
  /* PLEASE NOTE: all Tailwind components should be prefixed by `gn-ui` */
6
6
  @layer components {
7
+ .container-sm {
8
+ max-width: 640px;
9
+ }
10
+ .container-md {
11
+ max-width: 768px;
12
+ }
13
+ .container-lg {
14
+ max-width: 1024px;
15
+ }
16
+
7
17
  /* TODO: add prefix */
8
18
  .card-shadow {
9
19
  @apply shadow-xl hover:shadow-xl-hover transition-shadow;
@@ -65,8 +75,10 @@
65
75
  text-[length:--font-size] leading-none
66
76
  p-[--padding] rounded-[--rounded] w-[--width] h-[--height] overflow-hidden
67
77
  bg-[--background] transition-all duration-100
68
- focus:outline-none
69
- disabled:opacity-50 disabled:pointer-events-none;
78
+ outline-none
79
+ relative
80
+ disabled:opacity-50 disabled:pointer-events-none
81
+ focus:z-10 active:z-10 hover:z-10;
70
82
  }
71
83
  /* makes sure icons will not make the buttons grow vertically */
72
84
  .gn-ui-btn mat-icon.mat-icon {
@@ -93,6 +105,18 @@
93
105
  border border-secondary focus:ring-4 focus:ring-secondary-lightest;
94
106
  }
95
107
 
108
+ .gn-ui-btn-gray {
109
+ @apply gn-ui-btn text-black
110
+ bg-gray-100 hover:bg-gray-200 focus:bg-gray-200 active:bg-gray-300
111
+ border border-gray-100 focus:ring-4 focus:ring-gray-50;
112
+ }
113
+
114
+ .gn-ui-btn-black {
115
+ @apply gn-ui-btn text-white
116
+ bg-black hover:bg-gray-950 focus:bg-gray-950 active:bg-gray-900
117
+ border border-black focus:ring-4 focus:ring-gray-300;
118
+ }
119
+
96
120
  .gn-ui-btn-outline {
97
121
  @apply gn-ui-btn text-main
98
122
  hover:text-primary-darker focus:text-primary-darker active:text-primary-black
@@ -135,12 +159,19 @@
135
159
  .gn-ui-text-input {
136
160
  --rounded: var(--gn-ui-text-input-rounded, 0.25em);
137
161
  --padding: var(--gn-ui-text-input-padding, 0.6em);
138
- @apply appearance-none border-2 p-[--padding] rounded-[--rounded] w-full transition-colors duration-75
139
- text-[14px] leading-none border-gray-300 text-main placeholder-gray-800
162
+ --font-size: var(--gn-ui-text-input-font-size, 1em);
163
+ --border-size: var(--gn-ui-text-input-border-size, 2px);
164
+ @apply appearance-none border-[length:--border-size] p-[--padding] rounded-[--rounded] w-full transition-colors duration-75
165
+ text-[length:--font-size] leading-none border-gray-300 text-main placeholder-gray-800
140
166
  focus:outline-none focus:border-main hover:border-main
141
167
  disabled:cursor-not-allowed disabled:border-gray-100 disabled:placeholder-gray-300 disabled:text-gray-700 disabled:bg-white;
142
168
  }
143
169
 
170
+ /* GENERIC CARD */
171
+ .gn-ui-card {
172
+ @apply flex flex-row border border-gray-200 rounded-xl p-4 gap-2 w-full;
173
+ }
174
+
144
175
  /* TODO: add prefix */
145
176
  .card-icon {
146
177
  @apply text-primary opacity-50 group-hover:text-secondary group-hover:opacity-100 transition-colors transition-opacity;