geonetwork-ui 2.3.0-dev.e07c5606 → 2.3.0-dev.e43863db

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 (227) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.mjs +2 -2
  2. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +9 -7
  3. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +23 -8
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +15 -4
  5. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +9 -7
  6. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  7. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +1 -1
  8. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +47 -2
  9. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +1 -1
  10. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.mjs +15 -0
  11. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +104 -0
  12. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +14 -4
  13. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +1 -1
  14. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +15 -1
  15. package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +73 -20
  16. package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +1 -1
  17. package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +1 -1
  18. package/esm2022/libs/feature/map/src/lib/map-context/map-context.model.mjs +1 -1
  19. package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +58 -17
  20. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +7 -3
  21. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +1 -1
  22. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +17 -9
  23. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +34 -5
  24. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +1 -3
  25. package/esm2022/libs/feature/search/src/index.mjs +2 -1
  26. package/esm2022/libs/feature/search/src/lib/results-layout/results-layout.component.mjs +1 -1
  27. package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +4 -4
  28. package/esm2022/libs/feature/search/src/lib/sort-by/sort-by.component.mjs +1 -1
  29. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +1 -1
  30. package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +1 -1
  31. package/esm2022/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.mjs +1 -1
  32. package/esm2022/libs/ui/elements/src/index.mjs +2 -2
  33. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -2
  34. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +2 -2
  35. package/esm2022/libs/ui/elements/src/lib/error/error.component.mjs +30 -0
  36. package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +16 -3
  37. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +98 -36
  38. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +6 -11
  39. package/esm2022/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.mjs +3 -5
  40. package/esm2022/libs/ui/inputs/src/index.mjs +16 -15
  41. package/esm2022/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.mjs +4 -3
  42. package/esm2022/libs/ui/inputs/src/lib/date-picker/date-picker.component.mjs +22 -0
  43. package/esm2022/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.mjs +7 -5
  44. package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +5 -3
  45. package/esm2022/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.mjs +29 -0
  46. package/esm2022/libs/ui/inputs/src/lib/text-input/text-input.component.mjs +5 -3
  47. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +10 -8
  48. package/esm2022/libs/ui/layout/src/index.mjs +2 -1
  49. package/esm2022/libs/ui/layout/src/lib/block-list/block-list.component.mjs +76 -0
  50. package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +42 -18
  51. package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +3 -8
  52. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +3 -1
  53. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -1
  54. package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
  55. package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +2 -2
  56. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +22 -1
  57. package/esm2022/translations/de.json +13 -14
  58. package/esm2022/translations/en.json +13 -14
  59. package/esm2022/translations/es.json +13 -14
  60. package/esm2022/translations/fr.json +13 -14
  61. package/esm2022/translations/it.json +13 -14
  62. package/esm2022/translations/nl.json +13 -14
  63. package/esm2022/translations/pt.json +13 -14
  64. package/fesm2022/geonetwork-ui.mjs +1742 -1190
  65. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  66. package/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.d.ts +2 -2
  67. package/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.d.ts.map +1 -1
  68. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts +1 -1
  69. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
  70. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +4 -1
  71. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  72. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +2 -1
  73. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  74. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  75. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +3 -3
  76. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  77. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +4 -1
  78. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  79. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts +8 -0
  80. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts.map +1 -0
  81. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts +21 -0
  82. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts.map +1 -0
  83. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +2 -0
  84. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  85. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  86. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +10 -5
  87. package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -1
  88. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts +7 -0
  89. package/libs/feature/map/src/lib/map-context/map-context.model.d.ts.map +1 -1
  90. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts +1 -1
  91. package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +1 -1
  92. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  93. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +2 -2
  94. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  95. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +5 -2
  96. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  97. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
  98. package/libs/feature/search/src/index.d.ts +1 -0
  99. package/libs/feature/search/src/index.d.ts.map +1 -1
  100. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts +3 -3
  101. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  102. package/libs/ui/elements/src/index.d.ts +1 -1
  103. package/libs/ui/elements/src/index.d.ts.map +1 -1
  104. package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
  105. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
  106. package/libs/ui/elements/src/lib/error/error.component.d.ts +16 -0
  107. package/libs/ui/elements/src/lib/error/error.component.d.ts.map +1 -0
  108. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts +3 -1
  109. package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +1 -1
  110. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +24 -4
  111. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  112. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +29 -30
  113. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  114. package/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.d.ts +1 -2
  115. package/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.d.ts.map +1 -1
  116. package/libs/ui/inputs/src/index.d.ts +15 -14
  117. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  118. package/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.d.ts +1 -1
  119. package/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.d.ts.map +1 -1
  120. package/libs/ui/inputs/src/lib/date-picker/date-picker.component.d.ts +9 -0
  121. package/libs/ui/inputs/src/lib/date-picker/date-picker.component.d.ts.map +1 -0
  122. package/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.d.ts +1 -1
  123. package/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.d.ts.map +1 -1
  124. package/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.d.ts +2 -1
  125. package/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.d.ts.map +1 -1
  126. package/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.d.ts +12 -0
  127. package/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.d.ts.map +1 -0
  128. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts +2 -1
  129. package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts.map +1 -1
  130. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +27 -27
  131. package/libs/ui/layout/src/index.d.ts +1 -0
  132. package/libs/ui/layout/src/index.d.ts.map +1 -1
  133. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts +25 -0
  134. package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts.map +1 -0
  135. package/libs/ui/layout/src/lib/carousel/carousel.component.d.ts +13 -6
  136. package/libs/ui/layout/src/lib/carousel/carousel.component.d.ts.map +1 -1
  137. package/libs/ui/layout/src/lib/ui-layout.module.d.ts +4 -5
  138. package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +1 -1
  139. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  140. package/libs/util/app-config/src/lib/fixtures.d.ts.map +1 -1
  141. package/libs/util/app-config/src/lib/model.d.ts +1 -0
  142. package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
  143. package/libs/util/shared/src/lib/links/link-utils.d.ts +18 -0
  144. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  145. package/package.json +2 -2
  146. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +9 -1
  147. package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +3 -3
  148. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +35 -31
  149. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +68 -16
  150. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +72 -17
  151. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +16 -10
  152. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +3 -3
  153. package/src/libs/common/fixtures/src/lib/link.fixtures.ts +8 -0
  154. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +10 -2
  155. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +65 -1
  156. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.css +0 -0
  157. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.html +4 -0
  158. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.ts +15 -0
  159. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.css +0 -0
  160. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.html +14 -0
  161. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +143 -0
  162. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +10 -0
  163. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +11 -1
  164. package/src/libs/feature/editor/src/lib/fields.config.ts +14 -0
  165. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.css +7 -0
  166. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.html +32 -18
  167. package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +72 -17
  168. package/src/libs/feature/map/src/lib/map-context/map-context.model.ts +7 -0
  169. package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +57 -17
  170. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +6 -2
  171. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +17 -9
  172. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +40 -4
  173. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +0 -2
  174. package/src/libs/feature/search/src/index.ts +1 -0
  175. package/src/libs/feature/search/src/lib/results-list/results-list.container.component.html +4 -4
  176. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +2 -2
  177. package/src/libs/ui/elements/src/index.ts +1 -1
  178. package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +2 -1
  179. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +1 -1
  180. package/src/libs/ui/elements/src/lib/{search-results-error/search-results-error.component.html → error/error.component.html} +18 -3
  181. package/src/libs/ui/elements/src/lib/{search-results-error/search-results-error.component.ts → error/error.component.ts} +5 -4
  182. package/src/libs/ui/elements/src/lib/link-card/link-card.component.html +38 -20
  183. package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +12 -0
  184. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +26 -10
  185. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +125 -30
  186. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +3 -6
  187. package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.html +1 -1
  188. package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.ts +0 -1
  189. package/src/libs/ui/inputs/src/index.ts +15 -14
  190. package/src/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.ts +3 -0
  191. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.css +3 -0
  192. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.html +11 -0
  193. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.ts +16 -0
  194. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.ts +8 -1
  195. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.html +1 -0
  196. package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.ts +1 -0
  197. package/src/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.css +6 -0
  198. package/src/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.html +26 -0
  199. package/src/libs/ui/inputs/src/lib/previous-next-buttons/previous-next-buttons.component.ts +32 -0
  200. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.html +1 -0
  201. package/src/libs/ui/inputs/src/lib/text-input/text-input.component.ts +1 -0
  202. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +2 -2
  203. package/src/libs/ui/layout/src/index.ts +1 -0
  204. package/src/libs/ui/layout/src/lib/block-list/block-list.component.css +23 -0
  205. package/src/libs/ui/layout/src/lib/block-list/block-list.component.html +20 -0
  206. package/src/libs/ui/layout/src/lib/block-list/block-list.component.ts +84 -0
  207. package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +8 -4
  208. package/src/libs/ui/layout/src/lib/carousel/carousel.component.html +4 -4
  209. package/src/libs/ui/layout/src/lib/carousel/carousel.component.ts +45 -15
  210. package/src/libs/ui/layout/src/lib/ui-layout.module.ts +0 -2
  211. package/src/libs/util/app-config/src/lib/app-config.ts +2 -0
  212. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -0
  213. package/src/libs/util/app-config/src/lib/model.ts +1 -0
  214. package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +1 -1
  215. package/src/libs/util/shared/src/lib/links/link-utils.ts +21 -0
  216. package/translations/de.json +13 -14
  217. package/translations/en.json +13 -14
  218. package/translations/es.json +13 -14
  219. package/translations/fr.json +13 -14
  220. package/translations/it.json +13 -14
  221. package/translations/nl.json +13 -14
  222. package/translations/pt.json +13 -14
  223. package/translations/sk.json +13 -14
  224. package/esm2022/libs/ui/elements/src/lib/search-results-error/search-results-error.component.mjs +0 -29
  225. package/libs/ui/elements/src/lib/search-results-error/search-results-error.component.d.ts +0 -15
  226. package/libs/ui/elements/src/lib/search-results-error/search-results-error.component.d.ts.map +0 -1
  227. /package/src/libs/ui/elements/src/lib/{search-results-error/search-results-error.component.css → error/error.component.css} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"link-utils.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/util/shared/src/lib/links/link-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAA;AAI/F,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2FV,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,OAAO,CAAA;AAE7C,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAUhE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAEjE;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,MAAM,GACpB,UAAU,GAAG,IAAI,CAgBnB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,mBAAmB,GAAG,UAAU,CAcnE;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,mBAAmB,EACzB,KAAK,EAAE,MAAM,GACZ,OAAO,CAQT;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAO7D;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,mBAAmB,EACzB,MAAM,EAAE,UAAU,GACjB,OAAO,CAMT;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAQ5D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CA0B9D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAEtE"}
1
+ {"version":3,"file":"link-utils.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/util/shared/src/lib/links/link-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAA;AAI/F,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgHV,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,OAAO,CAAA;AAE7C,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAUhE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAEjE;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,MAAM,GACpB,UAAU,GAAG,IAAI,CAgBnB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,mBAAmB,GAAG,UAAU,CAcnE;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,mBAAmB,EACzB,KAAK,EAAE,MAAM,GACZ,OAAO,CAQT;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAO7D;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,mBAAmB,EACzB,MAAM,EAAE,UAAU,GACjB,OAAO,CAMT;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAQ5D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CA0B9D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAEtE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "geonetwork-ui",
3
- "version": "2.3.0-dev.e07c5606",
3
+ "version": "2.3.0-dev.e43863db",
4
4
  "engines": {
5
5
  "node": ">=14.17.0"
6
6
  },
@@ -47,7 +47,7 @@
47
47
  },
48
48
  "dependencies": {
49
49
  "@biesbjerg/ngx-translate-extract-marker": "^1.0.0",
50
- "@camptocamp/ogc-client": "^1.1.0-RC.3",
50
+ "@camptocamp/ogc-client": "1.1.1-dev.ad6d9ab",
51
51
  "@geospatial-sdk/geocoding": "^0.0.5-alpha.2",
52
52
  "@ltd/j-toml": "~1.35.2",
53
53
  "@messageformat/core": "^3.0.1",
@@ -195,7 +195,15 @@ As such, **it is not very interesting at all.**`,
195
195
  },
196
196
  ],
197
197
  spatialExtents: [],
198
- temporalExtents: [],
198
+ temporalExtents: [
199
+ {
200
+ start: new Date('2024-05-24'),
201
+ end: null,
202
+ },
203
+ {
204
+ start: new Date('2024-05-30'),
205
+ },
206
+ ],
199
207
  updateFrequency: {
200
208
  updatedTimes: 3,
201
209
  per: 'month',
@@ -1,4 +1,7 @@
1
+ import { CatalogRecord } from '../../../../../../libs/common/domain/src/lib/model/record'
2
+ import { XmlElement } from '@rgrove/parse-xml'
1
3
  import { Iso19139Converter } from '../iso19139'
4
+ import { renameElements } from '../xml-utils'
2
5
  import {
3
6
  readContacts,
4
7
  readDistributions,
@@ -30,9 +33,6 @@ import {
30
33
  writeStatus,
31
34
  writeUniqueIdentifier,
32
35
  } from './write-parts'
33
- import { XmlElement } from '@rgrove/parse-xml'
34
- import { renameElements } from '../xml-utils'
35
- import { CatalogRecord } from '../../../../../../libs/common/domain/src/lib/model/record'
36
36
 
37
37
  export class Iso191153Converter extends Iso19139Converter {
38
38
  constructor() {
@@ -4,6 +4,9 @@ import {
4
4
  DatasetRecord,
5
5
  ServiceRecord,
6
6
  } from '../../../../../../libs/common/domain/src/lib/model/record'
7
+ import { XmlElement } from '@rgrove/parse-xml'
8
+ import { BaseConverter } from '../base.converter'
9
+ import { isEqual } from '../convert-utils'
7
10
  import {
8
11
  createDocument,
9
12
  createElement,
@@ -11,32 +14,6 @@ import {
11
14
  parseXmlString,
12
15
  xmlToString,
13
16
  } from '../xml-utils'
14
- import {
15
- writeAbstract,
16
- writeContacts,
17
- writeContactsForResource,
18
- writeDistributions,
19
- writeGraphicOverviews,
20
- writeKeywords,
21
- writeKind,
22
- writeLegalConstraints,
23
- writeLicenses,
24
- writeLineage,
25
- writeOnlineResources,
26
- writeOtherConstraints,
27
- writeOwnerOrganization,
28
- writeRecordUpdated,
29
- writeResourceCreated,
30
- writeResourcePublished,
31
- writeResourceUpdated,
32
- writeSecurityConstraints,
33
- writeSpatialRepresentation,
34
- writeStatus,
35
- writeTitle,
36
- writeTopics,
37
- writeUniqueIdentifier,
38
- writeUpdateFrequency,
39
- } from './write-parts'
40
17
  import {
41
18
  readAbstract,
42
19
  readContacts,
@@ -59,13 +36,38 @@ import {
59
36
  readSecurityConstraints,
60
37
  readSpatialRepresentation,
61
38
  readStatus,
39
+ readTemporalExtents,
62
40
  readTitle,
63
41
  readUniqueIdentifier,
64
42
  readUpdateFrequency,
65
43
  } from './read-parts'
66
- import { isEqual } from '../convert-utils'
67
- import { BaseConverter } from '../base.converter'
68
- import { XmlElement } from '@rgrove/parse-xml'
44
+ import {
45
+ writeAbstract,
46
+ writeContacts,
47
+ writeContactsForResource,
48
+ writeDistributions,
49
+ writeGraphicOverviews,
50
+ writeKeywords,
51
+ writeKind,
52
+ writeLegalConstraints,
53
+ writeLicenses,
54
+ writeLineage,
55
+ writeOnlineResources,
56
+ writeOtherConstraints,
57
+ writeOwnerOrganization,
58
+ writeRecordUpdated,
59
+ writeResourceCreated,
60
+ writeResourcePublished,
61
+ writeResourceUpdated,
62
+ writeSecurityConstraints,
63
+ writeSpatialRepresentation,
64
+ writeStatus,
65
+ writeTemporalExtents,
66
+ writeTitle,
67
+ writeTopics,
68
+ writeUniqueIdentifier,
69
+ writeUpdateFrequency,
70
+ } from './write-parts'
69
71
 
70
72
  export class Iso19139Converter extends BaseConverter<string> {
71
73
  protected readers: Record<
@@ -98,9 +100,9 @@ export class Iso19139Converter extends BaseConverter<string> {
98
100
  lineage: readLineage,
99
101
  distributions: readDistributions,
100
102
  onlineResources: readOnlineResources,
103
+ temporalExtents: readTemporalExtents,
101
104
  // TODO
102
105
  spatialExtents: () => [],
103
- temporalExtents: () => [],
104
106
  extras: () => undefined,
105
107
  landingPage: () => undefined,
106
108
  languages: () => [],
@@ -136,9 +138,9 @@ export class Iso19139Converter extends BaseConverter<string> {
136
138
  lineage: writeLineage,
137
139
  distributions: writeDistributions,
138
140
  onlineResources: writeOnlineResources,
141
+ temporalExtents: writeTemporalExtents,
139
142
  // TODO
140
143
  spatialExtents: () => undefined,
141
- temporalExtents: () => undefined,
142
144
  extras: () => undefined,
143
145
  landingPage: () => undefined,
144
146
  languages: () => undefined,
@@ -311,6 +313,8 @@ export class Iso19139Converter extends BaseConverter<string> {
311
313
  fieldChanged('spatialRepresentation') &&
312
314
  this.writers['spatialRepresentation'](record, rootEl)
313
315
  fieldChanged('overviews') && this.writers['overviews'](record, rootEl)
316
+ fieldChanged('temporalExtents') &&
317
+ this.writers['temporalExtents'](record, rootEl)
314
318
  fieldChanged('distributions') &&
315
319
  this.writers['distributions'](record, rootEl)
316
320
  fieldChanged('lineage') && this.writers['lineage'](record, rootEl)
@@ -14,18 +14,7 @@ import {
14
14
  UpdateFrequency,
15
15
  UpdateFrequencyCustom,
16
16
  } from '../../../../../../libs/common/domain/src/lib/model/record'
17
- import { getStatusFromStatusCode } from './utils/status.mapper'
18
- import { getUpdateFrequencyFromFrequencyCode } from './utils/update-frequency.mapper'
19
- import {
20
- findChildElement,
21
- findChildrenElement,
22
- findNestedElement,
23
- findNestedElements,
24
- findParent,
25
- readAttribute,
26
- readText,
27
- XmlElement,
28
- } from '../xml-utils'
17
+ import { matchMimeType, matchProtocol } from '../common/distribution.mapper'
29
18
  import {
30
19
  ChainableFunction,
31
20
  combine,
@@ -37,10 +26,21 @@ import {
37
26
  mapArray,
38
27
  pipe,
39
28
  } from '../function-utils'
40
- import { getRoleFromRoleCode } from './utils/role.mapper'
41
- import { matchMimeType, matchProtocol } from '../common/distribution.mapper'
42
- import { getKeywordTypeFromKeywordTypeCode } from './utils/keyword.mapper'
29
+ import {
30
+ XmlElement,
31
+ findChildElement,
32
+ findChildrenElement,
33
+ findNestedElement,
34
+ findNestedElements,
35
+ findParent,
36
+ readAttribute,
37
+ readText,
38
+ } from '../xml-utils'
43
39
  import { fullNameToParts } from './utils/individual-name'
40
+ import { getKeywordTypeFromKeywordTypeCode } from './utils/keyword.mapper'
41
+ import { getRoleFromRoleCode } from './utils/role.mapper'
42
+ import { getStatusFromStatusCode } from './utils/status.mapper'
43
+ import { getUpdateFrequencyFromFrequencyCode } from './utils/update-frequency.mapper'
44
44
 
45
45
  export function extractCharacterString(): ChainableFunction<
46
46
  XmlElement,
@@ -434,7 +434,7 @@ export function getUpdateFrequencyFromCustomPeriod(
434
434
  } else if (days <= 7) {
435
435
  return {
436
436
  per: 'week',
437
- updatedTimes: Math.round(7 / days),
437
+ updatedTimes: Math.round(7 / days - 0.0001), // this is to make sure that 'every 2 days' = '3 times per week'
438
438
  }
439
439
  } else if (days) {
440
440
  return {
@@ -843,3 +843,55 @@ export function readOnlineResources(
843
843
  flattenArray()
844
844
  )(rootEl)
845
845
  }
846
+
847
+ export function readTemporalExtents(rootEl: XmlElement) {
848
+ return pipe(
849
+ findIdentification(),
850
+ findNestedElements('gmd:extent', 'gmd:EX_Extent', 'gmd:temporalElement'),
851
+ mapArray(
852
+ combine(
853
+ findNestedElement(
854
+ 'gmd:EX_TemporalExtent',
855
+ 'gmd:extent',
856
+ 'gml:TimePeriod'
857
+ ),
858
+ findNestedElement(
859
+ 'gmd:EX_TemporalExtent',
860
+ 'gmd:extent',
861
+ 'gml:TimeInstant'
862
+ )
863
+ )
864
+ ),
865
+ mapArray(([periodEl, instantEl]) => {
866
+ if (periodEl) {
867
+ return pipe(
868
+ combine(
869
+ pipe(
870
+ findChildElement('gml:beginPosition', false),
871
+ readText(),
872
+ map((dateStr) => (dateStr ? new Date(dateStr) : null))
873
+ ),
874
+ pipe(
875
+ findChildElement('gml:endPosition', false),
876
+ readText(),
877
+ map((dateStr) => (dateStr ? new Date(dateStr) : null))
878
+ )
879
+ ),
880
+ map(([start, end]) => ({
881
+ start,
882
+ end,
883
+ }))
884
+ )(periodEl)
885
+ } else {
886
+ return pipe(
887
+ findChildElement('gml:timePosition', false),
888
+ readText(),
889
+ map((dateStr) => (dateStr ? new Date(dateStr) : null)),
890
+ map((date) => ({
891
+ start: date,
892
+ }))
893
+ )(instantEl)
894
+ }
895
+ })
896
+ )(rootEl)
897
+ }
@@ -15,7 +15,20 @@ import {
15
15
  UpdateFrequencyCode,
16
16
  UpdateFrequencyCustom,
17
17
  } from '../../../../../../libs/common/domain/src/lib/model/record'
18
+ import format from 'date-fns/format'
19
+ import {
20
+ ChainableFunction,
21
+ fallback,
22
+ filterArray,
23
+ getAtIndex,
24
+ map,
25
+ mapArray,
26
+ noop,
27
+ pipe,
28
+ tap,
29
+ } from '../function-utils'
18
30
  import {
31
+ XmlElement,
19
32
  addAttribute,
20
33
  appendChildren,
21
34
  createChild,
@@ -24,29 +37,13 @@ import {
24
37
  findChildOrCreate,
25
38
  findChildrenElement,
26
39
  findNestedChildOrCreate,
27
- findNestedElement,
28
40
  findNestedElements,
29
41
  readAttribute,
30
- readText,
31
42
  removeAllChildren,
32
43
  removeChildren,
33
44
  removeChildrenByName,
34
45
  setTextContent,
35
- XmlElement,
36
46
  } from '../xml-utils'
37
- import {
38
- ChainableFunction,
39
- combine,
40
- fallback,
41
- filterArray,
42
- getAtIndex,
43
- map,
44
- mapArray,
45
- noop,
46
- pipe,
47
- tap,
48
- } from '../function-utils'
49
- import format from 'date-fns/format'
50
47
  import { readKind } from './read-parts'
51
48
  import { namePartsToFull } from './utils/individual-name'
52
49
 
@@ -220,7 +217,7 @@ export function getISODuration(updateFrequency: UpdateFrequencyCustom): string {
220
217
  else duration.hours = Math.round(24 / updateFrequency.updatedTimes)
221
218
  break
222
219
  case 'week':
223
- duration.days = Math.round(7 / updateFrequency.updatedTimes)
220
+ duration.days = Math.round(7 / updateFrequency.updatedTimes - 0.0001) // this is to make sure that '2 times per week' = 'every 3 days'
224
221
  break
225
222
  case 'month':
226
223
  if (updateFrequency.updatedTimes <= 1) duration.months = 1
@@ -1129,3 +1126,61 @@ export function writeOnlineResources(
1129
1126
  appendChildren(...record.onlineResources.map(createOnlineResource))
1130
1127
  )(rootEl)
1131
1128
  }
1129
+
1130
+ export function writeTemporalExtents(
1131
+ record: DatasetRecord,
1132
+ rootEl: XmlElement
1133
+ ) {
1134
+ pipe(
1135
+ findOrCreateIdentification(),
1136
+ findNestedChildOrCreate('gmd:extent', 'gmd:EX_Extent'),
1137
+ removeChildrenByName('gmd:temporalElement'),
1138
+ appendChildren(
1139
+ ...record.temporalExtents.map((extent) =>
1140
+ pipe(
1141
+ createElement('gmd:temporalElement'),
1142
+ createChild('gmd:EX_TemporalExtent'),
1143
+ appendChildren(
1144
+ 'start' in extent && 'end' in extent
1145
+ ? pipe(
1146
+ createElement('gmd:extent'),
1147
+ createChild('gml:TimePeriod'),
1148
+ appendChildren(
1149
+ pipe(
1150
+ createElement('gml:beginPosition'),
1151
+ pipe(
1152
+ extent.start
1153
+ ? setTextContent(format(extent.start, 'yyyy-MM-dd'))
1154
+ : addAttribute('indeterminatePosition', 'unknown')
1155
+ )
1156
+ ),
1157
+ pipe(
1158
+ createElement('gml:endPosition'),
1159
+ pipe(
1160
+ extent.end
1161
+ ? setTextContent(format(extent.end, 'yyyy-MM-dd'))
1162
+ : addAttribute('indeterminatePosition', 'unknown')
1163
+ )
1164
+ )
1165
+ )
1166
+ )
1167
+ : pipe(
1168
+ createElement('gmd:extent'),
1169
+ createChild('gml:TimeInstant'),
1170
+ appendChildren(
1171
+ pipe(
1172
+ createElement('gml:timePosition'),
1173
+ pipe(
1174
+ extent.start
1175
+ ? setTextContent(format(extent.start, 'yyyy-MM-dd'))
1176
+ : addAttribute('indeterminatePosition', 'unknown')
1177
+ )
1178
+ )
1179
+ )
1180
+ )
1181
+ )
1182
+ )
1183
+ )
1184
+ )
1185
+ )(rootEl)
1186
+ }
@@ -162,19 +162,25 @@ export class Gn4PlatformService implements PlatformServiceInterface {
162
162
  }
163
163
 
164
164
  getUserFeedbacks(uuid: string): Observable<UserFeedback[]> {
165
- return this.userfeedbackApiService
166
- .getUserComments(uuid)
167
- .pipe(
168
- map((userFeedbacks) =>
169
- userFeedbacks.map(this.mapper.userFeedbacksFromApi)
170
- )
171
- )
165
+ return this.userfeedbackApiService.getUserComments(uuid).pipe(
166
+ map((userFeedbacks) =>
167
+ userFeedbacks.map(this.mapper.userFeedbacksFromApi)
168
+ ),
169
+ catchError((error) => {
170
+ console.error('Error fetching user feedbacks:', error)
171
+ return of(undefined)
172
+ })
173
+ )
172
174
  }
173
175
 
174
176
  postUserFeedbacks(userFeedback: UserFeedback): Observable<void> {
175
177
  const mappedUserFeedBack = this.mapper.userFeedbacksToApi(userFeedback)
176
- return this.userfeedbackApiService
177
- .newUserFeedback(mappedUserFeedBack)
178
- .pipe(map(() => undefined))
178
+ return this.userfeedbackApiService.newUserFeedback(mappedUserFeedBack).pipe(
179
+ map(() => undefined),
180
+ catchError((error) => {
181
+ console.error('Error posting user feedback:', error)
182
+ return of(undefined)
183
+ })
184
+ )
179
185
  }
180
186
  }
@@ -169,12 +169,12 @@ export interface DatasetSpatialExtent {
169
169
  }
170
170
 
171
171
  /**
172
- * At least a start or an end date should be provided
172
+ * Period if both start and end are provided
173
+ * Instant if only start is provided
173
174
  */
174
175
  export interface DatasetTemporalExtent {
175
- start?: Date
176
+ start: Date
176
177
  end?: Date
177
- description?: string
178
178
  }
179
179
 
180
180
  export interface DatasetRecord extends BaseRecord {
@@ -110,6 +110,14 @@ export const LINK_FIXTURES: Record<string, DatasetDistribution> = deepFreeze({
110
110
  url: new URL('https://my.ogc.server/wfs'),
111
111
  accessServiceProtocol: 'wfs',
112
112
  },
113
+ geodataWfsDownload: {
114
+ name: 'mylayer',
115
+ type: 'download',
116
+ url: new URL(
117
+ 'https://my.ogc.server/wfs?GetFeature&FeatureType=surval_parametre_ligne&format=csv'
118
+ ),
119
+ accessServiceProtocol: 'wfs',
120
+ },
113
121
  geodataWms2: {
114
122
  name: 'myotherlayer',
115
123
  type: 'service',
@@ -49,8 +49,8 @@ export const DATASET_RECORDS: DatasetRecord[] = deepFreeze([
49
49
  status: 'ongoing',
50
50
  recordCreated: new Date('2022-02-01T15:12:00'),
51
51
  recordUpdated: new Date('2022-02-01T15:12:00'),
52
- datasetCreated: new Date('2022-09-01T14:18:19'),
53
- datasetUpdated: new Date('2022-12-04T15:12:00'),
52
+ resourceCreated: new Date('2022-09-01T14:18:19'),
53
+ resourceUpdated: new Date('2022-12-04T15:12:00'),
54
54
  title: 'A very interesting dataset (un jeu de données très intéressant)',
55
55
  abstract: `# Introduction
56
56
  This dataset has been established for testing purposes.
@@ -117,6 +117,14 @@ Cette section contient des *caractères internationaux* (ainsi que des "caractè
117
117
  description: 'This WFS service offers direct download capability',
118
118
  identifierInService: 'my:featuretype',
119
119
  },
120
+ {
121
+ type: 'service',
122
+ url: new URL('https://my-org.net/ogc'),
123
+ accessServiceProtocol: 'ogcFeatures',
124
+ name: 'my:featuretype',
125
+ description: 'This OGC service offers direct download capability',
126
+ identifierInService: 'my:featuretype',
127
+ },
120
128
  ],
121
129
  lineage: `This record was edited manually to test the conversion processes
122
130
 
@@ -1,6 +1,12 @@
1
1
  import { Injectable } from '@angular/core'
2
2
  import { marker } from '@biesbjerg/ngx-translate-extract-marker'
3
- import { WfsEndpoint, WfsVersion } from '@camptocamp/ogc-client'
3
+ import {
4
+ OgcApiCollectionInfo,
5
+ OgcApiEndpoint,
6
+ OgcApiRecord,
7
+ WfsEndpoint,
8
+ WfsVersion,
9
+ } from '@camptocamp/ogc-client'
4
10
  import {
5
11
  BaseReader,
6
12
  FetchError,
@@ -27,6 +33,7 @@ marker('wfs.unreachable.http')
27
33
  marker('wfs.unreachable.unknown')
28
34
  marker('wfs.featuretype.notfound')
29
35
  marker('wfs.geojsongml.notsupported')
36
+ marker('ogc.unreachable.unknown')
30
37
  marker('dataset.error.network')
31
38
  marker('dataset.error.http')
32
39
  marker('dataset.error.parse')
@@ -148,6 +155,48 @@ export class DataService {
148
155
  )
149
156
  }
150
157
 
158
+ async getDownloadLinksFromOgcApiFeatures(
159
+ ogcApiLink: DatasetServiceDistribution
160
+ ): Promise<DatasetDistribution[]> {
161
+ const collectionInfo = await this.getDownloadUrlsFromOgcApi(
162
+ ogcApiLink.url.href
163
+ )
164
+ return Object.keys(collectionInfo.bulkDownloadLinks).map((downloadLink) => {
165
+ return {
166
+ ...ogcApiLink,
167
+ type: 'download',
168
+ url: new URL(collectionInfo.bulkDownloadLinks[downloadLink]),
169
+ mimeType: getMimeTypeForFormat(
170
+ getFileFormatFromServiceOutput(downloadLink)
171
+ ),
172
+ }
173
+ })
174
+ }
175
+
176
+ async getDownloadUrlsFromOgcApi(url: string): Promise<OgcApiCollectionInfo> {
177
+ const endpoint = new OgcApiEndpoint(this.proxy.getProxiedUrl(url))
178
+ return await endpoint.allCollections
179
+ .then((collections) => {
180
+ return endpoint.getCollectionInfo(collections[0].name)
181
+ })
182
+ .catch((error) => {
183
+ throw new Error(`ogc.unreachable.unknown`)
184
+ })
185
+ }
186
+
187
+ async getItemsFromOgcApi(url: string): Promise<OgcApiRecord> {
188
+ const endpoint = new OgcApiEndpoint(this.proxy.getProxiedUrl(url))
189
+ return await endpoint.featureCollections
190
+ .then((collections) => {
191
+ return collections.length
192
+ ? endpoint.getCollectionItem(collections[0], '1')
193
+ : null
194
+ })
195
+ .catch((error) => {
196
+ throw new Error(`ogc.unreachable.unknown`)
197
+ })
198
+ }
199
+
151
200
  getDownloadLinksFromEsriRest(
152
201
  esriRestLink: DatasetServiceDistribution
153
202
  ): DatasetDistribution[] {
@@ -205,6 +254,21 @@ export class DataService {
205
254
  'geojson'
206
255
  )
207
256
  return from(openDataset(url, 'geojson')).pipe()
257
+ } else if (
258
+ link.type === 'service' &&
259
+ link.accessServiceProtocol === 'ogcFeatures'
260
+ ) {
261
+ return from(this.getDownloadUrlsFromOgcApi(link.url.href)).pipe(
262
+ switchMap((collectionInfo) => {
263
+ const geojsonUrl = collectionInfo.jsonDownloadLink
264
+ return openDataset(geojsonUrl, 'geojson')
265
+ }),
266
+ tap((url) => {
267
+ if (url === null) {
268
+ throw new Error('wfs.geojsongml.notsupported')
269
+ }
270
+ })
271
+ )
208
272
  }
209
273
  return throwError(() => 'protocol not supported')
210
274
  }
@@ -0,0 +1,4 @@
1
+ <gn-ui-date-picker
2
+ [date]="control.value"
3
+ (dateChange)="control.setValue($event)"
4
+ ></gn-ui-date-picker>
@@ -0,0 +1,15 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
2
+ import { FormControl } from '@angular/forms'
3
+ import { DatePickerComponent } from '../../../../../../../../../libs/ui/inputs/src'
4
+
5
+ @Component({
6
+ selector: 'gn-ui-form-field-resource-updated',
7
+ templateUrl: './form-field-resource-updated.component.html',
8
+ styleUrls: ['./form-field-resource-updated.component.css'],
9
+ changeDetection: ChangeDetectionStrategy.OnPush,
10
+ standalone: true,
11
+ imports: [DatePickerComponent],
12
+ })
13
+ export class FormFieldResourceUpdatedComponent {
14
+ @Input() control!: FormControl
15
+ }
@@ -0,0 +1,14 @@
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>