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
@@ -2,21 +2,20 @@ import { CommonModule } from '@angular/common'
2
2
  import {
3
3
  ChangeDetectionStrategy,
4
4
  Component,
5
+ EventEmitter,
5
6
  Input,
6
- OnChanges,
7
7
  Output,
8
8
  } from '@angular/core'
9
- import { FormArray, FormControl } from '@angular/forms'
10
9
  import { DatasetTemporalExtent } from '../../../../../../../../../libs/common/domain/src/lib/model/record'
10
+ import { SortableListComponent } from '../../../../../../../../../libs/ui/layout/src'
11
11
  import {
12
- DynamicElement,
13
- SortableListComponent,
14
- } from '../../../../../../../../../libs/ui/elements/src'
15
- import { ButtonComponent } from '../../../../../../../../../libs/ui/inputs/src'
16
- import { TranslateService } from '@ngx-translate/core'
17
- import { Observable, combineLatest, map } from 'rxjs'
18
- import { FormFieldTemporalExtentsDateComponent } from './form-field-temporal-extents-date/form-field-temporal-extents-date.component'
19
- import { FormFieldTemporalExtentsRangeComponent } from './form-field-temporal-extents-range/form-field-temporal-extents-range.component'
12
+ ButtonComponent,
13
+ DatePickerComponent,
14
+ DateRangePickerComponent,
15
+ } from '../../../../../../../../../libs/ui/inputs/src'
16
+ import { TranslateModule, TranslateService } from '@ngx-translate/core'
17
+ import { combineLatest, map } from 'rxjs'
18
+ import { MatIconModule } from '@angular/material/icon'
20
19
 
21
20
  @Component({
22
21
  selector: 'gn-ui-form-field-temporal-extents',
@@ -24,14 +23,22 @@ import { FormFieldTemporalExtentsRangeComponent } from './form-field-temporal-ex
24
23
  styleUrls: ['./form-field-temporal-extents.component.css'],
25
24
  changeDetection: ChangeDetectionStrategy.OnPush,
26
25
  standalone: true,
27
- imports: [CommonModule, ButtonComponent, SortableListComponent],
26
+ imports: [
27
+ CommonModule,
28
+ ButtonComponent,
29
+ SortableListComponent,
30
+ DatePickerComponent,
31
+ DateRangePickerComponent,
32
+ TranslateModule,
33
+ MatIconModule,
34
+ ],
28
35
  })
29
- export class FormFieldTemporalExtentsComponent implements OnChanges {
30
- @Input() value: Array<DatasetTemporalExtent>
31
- @Output() valueChange: Observable<Array<DatasetTemporalExtent>>
32
-
33
- array: FormArray = new FormArray([])
34
- elements: DynamicElement[] = []
36
+ export class FormFieldTemporalExtentsComponent {
37
+ extents: DatasetTemporalExtent[] = []
38
+ @Input() set value(v: Array<DatasetTemporalExtent>) {
39
+ this.extents = v
40
+ }
41
+ @Output() valueChange = new EventEmitter<Array<DatasetTemporalExtent>>()
35
42
 
36
43
  addOptions$ = combineLatest([
37
44
  this.translateService
@@ -42,30 +49,18 @@ export class FormFieldTemporalExtentsComponent implements OnChanges {
42
49
  .pipe(map((buttonLabel) => ({ buttonLabel, eventName: 'range' }))),
43
50
  ])
44
51
 
45
- constructor(private translateService: TranslateService) {
46
- this.valueChange = this.array.valueChanges
47
- }
48
-
49
- ngOnChanges() {
50
- this.resetValueFromInput(this.value)
51
- }
52
-
53
- onElementsChange(elements: DynamicElement[]) {
54
- this.elements = elements
55
- this.array.clear({ emitEvent: false })
52
+ constructor(private translateService: TranslateService) {}
56
53
 
57
- this.elements.forEach((e: DynamicElement, i: number) =>
58
- this.array.push(e.inputs.control, {
59
- emitEvent: i === elements.length - 1,
60
- })
61
- )
54
+ onItemsOrderChange(extents: unknown[]) {
55
+ this.extents = extents as DatasetTemporalExtent[]
56
+ this.emitValue()
62
57
  }
63
58
 
64
59
  onAdd(eventName: string) {
65
60
  switch (eventName) {
66
61
  case 'date': {
67
62
  const instant = { start: new Date() }
68
- this.pushDate(instant, this.elements, true)
63
+ this.extents = [...this.extents, instant]
69
64
  break
70
65
  }
71
66
  case 'range': {
@@ -73,47 +68,20 @@ export class FormFieldTemporalExtentsComponent implements OnChanges {
73
68
  start: new Date(),
74
69
  end: new Date(),
75
70
  }
76
- this.pushRange(range, this.elements, true)
71
+ this.extents = [...this.extents, range]
77
72
  break
78
73
  }
79
74
  }
75
+ this.emitValue()
80
76
  }
81
77
 
82
- private resetValueFromInput(value) {
83
- this.array.clear({ emitEvent: false })
84
- this.elements = []
85
- if (!value) return
86
-
87
- const newElements = []
88
- value.forEach((v: DatasetTemporalExtent) => {
89
- if ('start' in v && 'end' in v) {
90
- this.pushRange(v, newElements, false)
91
- } else {
92
- this.pushDate(v, newElements, false)
93
- }
94
- })
95
- this.elements = newElements
96
- }
97
-
98
- private pushDate(instant, elements, emitEvent) {
99
- const dateControl = new FormControl(instant)
100
- this.array.push(dateControl, { emitEvent })
101
- elements.push({
102
- component: FormFieldTemporalExtentsDateComponent,
103
- inputs: {
104
- control: dateControl,
105
- },
106
- })
78
+ onExtentChange(extent: Partial<DatasetTemporalExtent>, index: number) {
79
+ this.extents = [...this.extents]
80
+ this.extents[index] = { ...this.extents[index], ...extent }
81
+ this.emitValue()
107
82
  }
108
83
 
109
- private pushRange(period, elements, emitEvent) {
110
- const rangeControl = new FormControl(period)
111
- this.array.push(rangeControl, { emitEvent })
112
- elements.push({
113
- component: FormFieldTemporalExtentsRangeComponent,
114
- inputs: {
115
- control: rangeControl,
116
- },
117
- })
84
+ emitValue() {
85
+ this.valueChange.emit(this.extents)
118
86
  }
119
87
  }
@@ -0,0 +1,4 @@
1
+ gn-ui-dropdown-selector {
2
+ /* FIXME: this includes the grid gap from the editor form, but there should be no dependency */
3
+ max-width: calc(50% - 16px);
4
+ }
@@ -1,14 +1,16 @@
1
- <gn-ui-check-toggle
2
- [label]="'editor.record.form.updateFrequency.planned' | translate"
3
- [value]="planned"
4
- (toggled)="onPlannedToggled()"
5
- ></gn-ui-check-toggle>
6
- <gn-ui-dropdown-selector
7
- title="updateFrequency"
8
- [showTitle]="false"
9
- [choices]="choices"
10
- [selected]="selectedFrequency"
11
- (selectValue)="onSelectFrequencyValue($event)"
12
- [disabled]="!planned"
13
- >
14
- </gn-ui-dropdown-selector>
1
+ <div class="flex flex-col gap-2">
2
+ <gn-ui-check-toggle
3
+ [label]="'editor.record.form.updateFrequency.planned' | translate"
4
+ [value]="planned"
5
+ (toggled)="onPlannedToggled()"
6
+ ></gn-ui-check-toggle>
7
+ <gn-ui-dropdown-selector
8
+ title="updateFrequency"
9
+ [showTitle]="false"
10
+ [choices]="choices"
11
+ [selected]="selectedFrequency"
12
+ (selectValue)="onSelectFrequencyValue($event)"
13
+ [disabled]="!planned"
14
+ >
15
+ </gn-ui-dropdown-selector>
16
+ </div>
@@ -22,30 +22,31 @@
22
22
  <ng-template #fieldContent>
23
23
  <ng-container [ngSwitch]="model">
24
24
  <ng-container *ngSwitchCase="'title'">
25
- <div class="flex justify-between items-center gap-3">
25
+ <div class="flex flex-row flex-start items-center gap-3 mb-[12px]">
26
26
  <span
27
27
  #titleInput
28
28
  class="grow font-title text-3xl font-normal"
29
29
  [gnUiEditableLabel]="valueAsString"
30
30
  (editableLabelChanged)="valueChange.emit($event)"
31
31
  ></span>
32
- <span
33
- class="material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer"
34
- (click)="focusTitleInput()"
35
- >edit</span
36
- >
37
- <span
38
- class="material-symbols-outlined gn-ui-icon-small m-2"
39
- [matTooltip]="config.hintKey! | translate"
40
- matTooltipPosition="above"
41
- >
42
- help
43
- </span>
32
+ <div class="flex flex-row justify-between">
33
+ <span
34
+ class="material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer"
35
+ (click)="focusTitleInput()"
36
+ >edit</span
37
+ >
38
+ <span
39
+ class="material-symbols-outlined gn-ui-icon-small m-2"
40
+ [matTooltip]="config.hintKey! | translate"
41
+ matTooltipPosition="above"
42
+ >
43
+ help
44
+ </span>
45
+ </div>
44
46
  </div>
45
47
  </ng-container>
46
48
  <ng-container *ngSwitchCase="'abstract'">
47
49
  <gn-ui-form-field-rich
48
- class="h-[8rem]"
49
50
  [label]="config.labelKey! | translate"
50
51
  [hint]="config.hintKey! | translate"
51
52
  [value]="valueAsString"
@@ -68,18 +69,16 @@
68
69
  ></gn-ui-form-field-simple>
69
70
  </ng-container>
70
71
  <ng-container *ngSwitchCase="'resourceUpdated'">
71
- <gn-ui-form-field-resource-updated
72
+ <gn-ui-form-field-date-updated
72
73
  [value]="valueAsDate"
73
74
  (valueChange)="valueChange.emit($event)"
74
- ></gn-ui-form-field-resource-updated>
75
+ ></gn-ui-form-field-date-updated>
75
76
  </ng-container>
76
77
  <ng-container *ngSwitchCase="'recordUpdated'">
77
- <gn-ui-form-field-simple
78
- type="date"
79
- [readonly]="true"
78
+ <gn-ui-form-field-date-updated
80
79
  [value]="valueAsDate"
81
80
  (valueChange)="valueChange.emit($event)"
82
- ></gn-ui-form-field-simple>
81
+ ></gn-ui-form-field-date-updated>
83
82
  </ng-container>
84
83
  <ng-container *ngSwitchCase="'updateFrequency'">
85
84
  <gn-ui-form-field-update-frequency
@@ -115,5 +114,13 @@
115
114
  (valueChange)="valueChange.emit($event)"
116
115
  ></gn-ui-form-field-contacts-for-resource>
117
116
  </ng-container>
117
+ <ng-container *ngSwitchCase="'onlineResources'">
118
+ <gn-ui-form-field-online-link-resources
119
+ *ngIf="modelSpecifier === 'onlineResourceType:link'"
120
+ [metadataUuid]="uniqueIdentifier"
121
+ [value]="valueAsOnlineResources"
122
+ (valueChange)="valueChange.emit($event)"
123
+ ></gn-ui-form-field-online-link-resources>
124
+ </ng-container>
118
125
  </ng-container>
119
126
  </ng-template>
@@ -17,6 +17,7 @@ import {
17
17
  GraphicOverview,
18
18
  Individual,
19
19
  Keyword,
20
+ OnlineResource,
20
21
  UpdateFrequency,
21
22
  } from '../../../../../../../../libs/common/domain/src/lib/model/record'
22
23
  import { EditableLabelDirective } from '../../../../../../../../libs/ui/inputs/src'
@@ -24,10 +25,10 @@ import { FormFieldWrapperComponent } from '../../../../../../../../libs/ui/layou
24
25
  import { TranslateModule } from '@ngx-translate/core'
25
26
  import {
26
27
  FormFieldLicenseComponent,
27
- FormFieldResourceUpdatedComponent,
28
+ FormFieldDateUpdatedComponent,
28
29
  FormFieldTemporalExtentsComponent,
29
30
  } from '.'
30
- import { FormFieldConfig } from '../../../models'
31
+ import { FieldModelSpecifier, FormFieldConfig } from '../../../models'
31
32
  import { FormFieldArrayComponent } from './form-field-array/form-field-array.component'
32
33
  import { FormFieldContactsForResourceComponent } from './form-field-contacts-for-resource/form-field-contacts-for-resource.component'
33
34
  import { FormFieldFileComponent } from './form-field-file/form-field-file.component'
@@ -39,6 +40,7 @@ import { FormFieldSimpleComponent } from './form-field-simple/form-field-simple.
39
40
  import { FormFieldSpatialExtentComponent } from './form-field-spatial-extent/form-field-spatial-extent.component'
40
41
  import { FormFieldUpdateFrequencyComponent } from './form-field-update-frequency/form-field-update-frequency.component'
41
42
  import { FormFieldOpenDataComponent } from './form-field-open-data/form-field-open-data.component'
43
+ import { FormFieldOnlineLinkResourcesComponent } from './form-field-online-link-resources/form-field-online-link-resources.component'
42
44
 
43
45
  @Component({
44
46
  selector: 'gn-ui-form-field',
@@ -54,7 +56,7 @@ import { FormFieldOpenDataComponent } from './form-field-open-data/form-field-op
54
56
  MatTooltipModule,
55
57
  FormFieldWrapperComponent,
56
58
  FormFieldLicenseComponent,
57
- FormFieldResourceUpdatedComponent,
59
+ FormFieldDateUpdatedComponent,
58
60
  FormFieldUpdateFrequencyComponent,
59
61
  FormFieldTemporalExtentsComponent,
60
62
  FormFieldSimpleComponent,
@@ -67,11 +69,13 @@ import { FormFieldOpenDataComponent } from './form-field-open-data/form-field-op
67
69
  FormFieldOverviewsComponent,
68
70
  FormFieldContactsForResourceComponent,
69
71
  FormFieldOpenDataComponent,
72
+ FormFieldOnlineLinkResourcesComponent,
70
73
  ],
71
74
  })
72
75
  export class FormFieldComponent {
73
76
  @Input() uniqueIdentifier: string
74
77
  @Input() model: CatalogRecordKeys
78
+ @Input() modelSpecifier: FieldModelSpecifier
75
79
  @Input() config: FormFieldConfig
76
80
  @Input() value: unknown
77
81
 
@@ -114,4 +118,7 @@ export class FormFieldComponent {
114
118
  get valueAsIndividuals() {
115
119
  return this.value as Array<Individual>
116
120
  }
121
+ get valueAsOnlineResources() {
122
+ return this.value as Array<OnlineResource>
123
+ }
117
124
  }
@@ -1,6 +1,6 @@
1
1
  export * from './form-field-keywords/form-field-keywords.component'
2
2
  export * from './form-field-license/form-field-license.component'
3
- export * from './form-field-resource-updated/form-field-resource-updated.component'
3
+ export * from './form-field-date-updated/form-field-date-updated.component'
4
4
  export * from './form-field-temporal-extents/form-field-temporal-extents.component'
5
5
  export * from './form-field-simple/form-field-simple.component'
6
6
  export * from './form-field-file/form-field-file.component'
@@ -1,32 +1,28 @@
1
- <ng-container>
2
- <div class="flex flex-col gap-6 p-8">
3
- <ng-container
4
- *ngFor="
5
- let section of facade.currentSections$ | async;
6
- trackBy: sectionTracker
7
- "
8
- >
9
- <ng-container *ngIf="!section.hidden">
10
- <div class="flex flex-col gap-8 border p-8 rounded-[8px] shadow">
1
+ <div class="flex flex-col gap-6">
2
+ <ng-container
3
+ *ngFor="
4
+ let section of facade.currentSections$ | async;
5
+ trackBy: sectionTracker
6
+ "
7
+ >
8
+ <ng-container *ngIf="!section.hidden">
9
+ <div class="flex flex-col gap-8 border p-8 rounded-[8px] shadow">
10
+ <div
11
+ class="flex flex-col gap-2"
12
+ [ngClass]="section.labelKey ? 'mb-4' : 'hidden'"
13
+ >
11
14
  <div
12
- class="flex flex-col gap-2"
13
- [ngClass]="section.labelKey ? 'mb-4' : 'hidden'"
15
+ *ngIf="section.labelKey"
16
+ class="text-2xl font-title text-main"
17
+ translate
14
18
  >
15
- <div
16
- *ngIf="section.labelKey"
17
- class="text-2xl font-title text-secondary"
18
- translate
19
- >
20
- {{ section.labelKey }}
21
- </div>
22
- <div
23
- *ngIf="section.descriptionKey"
24
- class="text-secondary-lightest"
25
- translate
26
- >
27
- {{ section.descriptionKey }}
28
- </div>
19
+ {{ section.labelKey }}
29
20
  </div>
21
+ <div *ngIf="section.descriptionKey" class="text-gray-800" translate>
22
+ {{ section.descriptionKey }}
23
+ </div>
24
+ </div>
25
+ <div class="grid auto-rows-auto grid-cols-2 gap-[32px]">
30
26
  <ng-container
31
27
  *ngFor="
32
28
  let field of section.fieldsWithValues;
@@ -35,8 +31,14 @@
35
31
  >
36
32
  <ng-container *ngIf="!field.config.hidden">
37
33
  <gn-ui-form-field
34
+ [ngClass]="
35
+ field.config.gridColumnSpan === 1
36
+ ? 'col-span-1'
37
+ : 'col-span-2'
38
+ "
38
39
  [uniqueIdentifier]="recordUniqueIdentifier$ | async"
39
40
  [model]="field.config.model!"
41
+ [modelSpecifier]="field.config.modelSpecifier!"
40
42
  [config]="field.config.formFieldConfig"
41
43
  [value]="field.value"
42
44
  (valueChange)="
@@ -46,7 +48,7 @@
46
48
  </ng-container>
47
49
  </ng-container>
48
50
  </div>
49
- </ng-container>
51
+ </div>
50
52
  </ng-container>
51
- </div>
52
- </ng-container>
53
+ </ng-container>
54
+ </div>
@@ -9,6 +9,7 @@ import {
9
9
  EditorSectionWithValues,
10
10
  } from '../../+state/editor.models'
11
11
  import { map } from 'rxjs'
12
+ import { CatalogRecordKeys } from '../../../../../../../libs/common/domain/src/lib/model/record'
12
13
 
13
14
  @Component({
14
15
  selector: 'gn-ui-record-form',
@@ -25,7 +26,7 @@ export class RecordFormComponent {
25
26
 
26
27
  constructor(public facade: EditorFacade) {}
27
28
 
28
- handleFieldValueChange(model: string, newValue: EditorFieldValue) {
29
+ handleFieldValueChange(model: CatalogRecordKeys, newValue: EditorFieldValue) {
29
30
  if (!model) {
30
31
  return
31
32
  }
@@ -4,6 +4,7 @@ import {
4
4
  EditorField,
5
5
  EditorSection,
6
6
  } from './models/editor-config.model'
7
+ import { Keyword } from '../../../../../libs/common/domain/src/lib/model/record'
7
8
 
8
9
  /**
9
10
  * This file contains the configuration of the fields that will be displayed in the editor.
@@ -44,6 +45,7 @@ export const RECORD_RESOURCE_UPDATED_FIELD: EditorField = {
44
45
  formFieldConfig: {
45
46
  labelKey: marker('editor.record.form.field.resourceUpdated'),
46
47
  },
48
+ gridColumnSpan: 1,
47
49
  }
48
50
 
49
51
  export const RECORD_UPDATED_FIELD: EditorField = {
@@ -53,14 +55,15 @@ export const RECORD_UPDATED_FIELD: EditorField = {
53
55
  locked: true,
54
56
  },
55
57
  onSaveProcess: '${dateNow()}',
58
+ gridColumnSpan: 1,
56
59
  }
57
60
 
58
61
  export const RECORD_UPDATE_FREQUENCY_FIELD: EditorField = {
59
62
  model: 'updateFrequency',
60
- formFieldConfig: {
61
- labelKey: marker('editor.record.form.field.updateFrequency'),
62
- },
63
+ formFieldConfig: {},
63
64
  }
65
+ // keeping track of the label to not lose existing translation
66
+ marker('editor.record.form.field.updateFrequency')
64
67
 
65
68
  export const RECORD_TEMPORAL_EXTENTS_FIELD: EditorField = {
66
69
  model: 'temporalExtents',
@@ -104,6 +107,14 @@ export const RECORD_SPATIAL_EXTENTS_FIELD: EditorField = {
104
107
  },
105
108
  }
106
109
 
110
+ export const RECORD_ONLINE_LINK_RESOURCES: EditorField = {
111
+ model: 'onlineResources',
112
+ modelSpecifier: 'onlineResourceType:link',
113
+ formFieldConfig: {
114
+ labelKey: marker('editor.record.form.field.onlineLinkResources'),
115
+ },
116
+ }
117
+
107
118
  /************************************************************
108
119
  *************** SECTIONS *****************
109
120
  ************************************************************
@@ -149,7 +160,7 @@ export const ASSOCIATED_RESOURCES_SECTION: EditorSection = {
149
160
  export const ANNEXES_SECTION: EditorSection = {
150
161
  labelKey: marker('editor.record.form.section.annexes.label'),
151
162
  hidden: false,
152
- fields: [],
163
+ fields: [RECORD_ONLINE_LINK_RESOURCES],
153
164
  }
154
165
 
155
166
  export const CLASSIFICATION_SECTION: EditorSection = {
@@ -210,7 +221,7 @@ export const DEFAULT_CONFIGURATION: EditorConfig = {
210
221
  }
211
222
 
212
223
  /************************************************************
213
- *************** LICENSES *****************
224
+ *************** LICENSES **************
214
225
  ************************************************************
215
226
  */
216
227
  export const OPEN_DATA_LICENSES: string[] = [
@@ -220,3 +231,24 @@ export const OPEN_DATA_LICENSES: string[] = [
220
231
  'odc-by',
221
232
  'pddl',
222
233
  ]
234
+
235
+ export const MAX_UPLOAD_SIZE_MB = 10
236
+ /************************************************************
237
+ *************** SPATIAL SCOPE ************
238
+ ************************************************************
239
+ */
240
+
241
+ export const SPATIAL_SCOPES: Keyword[] = [
242
+ {
243
+ key: 'http://inspire.ec.europa.eu/metadata-codelist/SpatialScope/national',
244
+ label: 'National',
245
+ description: '',
246
+ type: 'theme',
247
+ },
248
+ {
249
+ key: 'http://inspire.ec.europa.eu/metadata-codelist/SpatialScope/regional',
250
+ label: 'Regional',
251
+ description: '',
252
+ type: 'theme',
253
+ },
254
+ ]
@@ -16,12 +16,24 @@ export interface FormFieldConfig {
16
16
  invalidHintKey?: string
17
17
  }
18
18
 
19
+ // Specifiers let us use specific components
20
+ // This is used for instance to target only certain online resources in a field
21
+ type OnlineLinkResourceSpecifier = `onlineResourceType:link`
22
+ type DatasetDistributionsSpecifier = `onlineResourceType:!link`
23
+ export type FieldModelSpecifier =
24
+ | OnlineLinkResourceSpecifier
25
+ | DatasetDistributionsSpecifier
26
+
19
27
  export interface EditorField {
20
28
  // configuration of the form field used as presentation
21
29
  formFieldConfig: FormFieldConfig
22
30
 
23
31
  // name of the target field in the record; will not change the record directly if not defined
24
32
  model?: CatalogRecordKeys
33
+ modelSpecifier?: FieldModelSpecifier
34
+
35
+ // grid column span; if unspecified, full width will be used
36
+ gridColumnSpan?: number
25
37
 
26
38
  // a hidden field won't show but can still be used to modify the record
27
39
  // FIXME: currently this is redundant with an absence of formFieldConfig but necessary for clarity
@@ -13,7 +13,7 @@ import {
13
13
  MapContextLayerTypeEnum,
14
14
  } from '../../map-context/map-context.model'
15
15
  import {
16
- DatasetDistribution,
16
+ DatasetOnlineResource,
17
17
  DatasetRecord,
18
18
  } from '../../../../../../../libs/common/domain/src/lib/model/record'
19
19
  import { ThumbnailComponent } from '../../../../../../../libs/ui/elements/src'
@@ -29,10 +29,10 @@ import { CommonModule } from '@angular/common'
29
29
  imports: [ThumbnailComponent, ButtonComponent, CommonModule],
30
30
  })
31
31
  export class AddLayerRecordPreviewComponent extends RecordPreviewComponent {
32
- get mapLinks(): DatasetDistribution[] {
33
- return (this.record as DatasetRecord).distributions.filter((link) =>
32
+ get mapLinks(): DatasetOnlineResource[] {
33
+ return (this.record as DatasetRecord).onlineResources.filter((link) =>
34
34
  this.linkClassifier.hasUsage(link, LinkUsage.MAP_API)
35
- ) as DatasetDistribution[]
35
+ ) as DatasetOnlineResource[]
36
36
  }
37
37
 
38
38
  constructor(
@@ -44,13 +44,13 @@ export class AddLayerRecordPreviewComponent extends RecordPreviewComponent {
44
44
  super(elementRef)
45
45
  }
46
46
 
47
- async handleLinkClick(link: DatasetDistribution) {
47
+ async handleLinkClick(link: DatasetOnlineResource) {
48
48
  const layer = await this.getLayerFromLink(link).toPromise()
49
49
  this.mapFacade.addLayer({ ...layer, title: this.record.title })
50
50
  }
51
51
 
52
52
  getLayerFromLink(
53
- link: DatasetDistribution
53
+ link: DatasetOnlineResource
54
54
  ): Observable<MapContextLayerModel> {
55
55
  if (link.type !== 'service')
56
56
  return throwError(
@@ -72,7 +72,7 @@ export class AddLayerRecordPreviewComponent extends RecordPreviewComponent {
72
72
  return throwError(() => 'protocol not supported')
73
73
  }
74
74
 
75
- getLinkLabel(link: DatasetDistribution) {
75
+ getLinkLabel(link: DatasetOnlineResource) {
76
76
  return getLinkLabel(link)
77
77
  }
78
78
  }
@@ -9,7 +9,7 @@ import { BehaviorSubject, combineLatest } from 'rxjs'
9
9
  import { map, tap } from 'rxjs/operators'
10
10
  import { MdViewFacade } from '../state'
11
11
  import { DatavizConfigurationModel } from '../../../../../../libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model'
12
- import { DatasetDistribution } from '../../../../../../libs/common/domain/src/lib/model/record'
12
+ import { DatasetOnlineResource } from '../../../../../../libs/common/domain/src/lib/model/record'
13
13
 
14
14
  @Component({
15
15
  selector: 'gn-ui-data-view',
@@ -43,7 +43,7 @@ export class DataViewComponent {
43
43
  }))
44
44
  )
45
45
  )
46
- selectedLink$ = new BehaviorSubject<DatasetDistribution>(null)
46
+ selectedLink$ = new BehaviorSubject<DatasetOnlineResource>(null)
47
47
 
48
48
  constructor(private mdViewFacade: MdViewFacade) {}
49
49
 
@@ -52,7 +52,7 @@ export class DataViewComponent {
52
52
  }
53
53
 
54
54
  selectLink(linkAsString: string) {
55
- const link: DatasetDistribution = JSON.parse(linkAsString)
55
+ const link: DatasetOnlineResource = JSON.parse(linkAsString)
56
56
  link.url = new URL(link.url)
57
57
  this.selectedLink$.next(link)
58
58
  }
@@ -1,6 +1,6 @@
1
1
  import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
2
2
  import { MapConfig } from '../../../../../../libs/util/app-config/src'
3
- import { DatasetDistribution } from '../../../../../../libs/common/domain/src/lib/model/record'
3
+ import { DatasetOnlineResource } from '../../../../../../libs/common/domain/src/lib/model/record'
4
4
  import { marker } from '@biesbjerg/ngx-translate-extract-marker'
5
5
  import { TranslateService } from '@ngx-translate/core'
6
6
  import { getFileFormat } from '../../../../../../libs/util/shared/src'
@@ -14,7 +14,7 @@ marker('externalviewer.dataset.unnamed')
14
14
  changeDetection: ChangeDetectionStrategy.OnPush,
15
15
  })
16
16
  export class ExternalViewerButtonComponent {
17
- @Input() link: DatasetDistribution
17
+ @Input() link: DatasetOnlineResource
18
18
  @Input() mapConfig: MapConfig
19
19
 
20
20
  get externalViewer() {