geonetwork-ui 2.5.0-dev.a538998f8 → 2.5.0-dev.aed8e2abc

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 (274) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +11 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  3. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +20 -17
  4. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +25 -9
  5. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  6. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  7. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +7 -4
  8. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +8 -8
  9. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +7 -4
  10. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  11. package/esm2022/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.mjs +3 -3
  12. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +2 -2
  13. package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +5 -5
  14. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +5 -3
  15. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +2 -2
  16. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +9 -11
  17. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +2 -2
  18. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +2 -2
  19. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +2 -2
  20. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -1
  21. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +7 -23
  22. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +2 -2
  23. package/esm2022/libs/feature/editor/src/lib/models/wizard-field.type.mjs +3 -4
  24. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +1 -1
  25. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +25 -5
  26. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +10 -7
  27. package/esm2022/libs/feature/record/src/lib/state/mdview.actions.mjs +4 -1
  28. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +7 -2
  29. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +9 -1
  30. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +19 -1
  31. package/esm2022/libs/feature/record/src/lib/state/mdview.selectors.mjs +6 -1
  32. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +15 -3
  33. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +1 -1
  34. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +3 -3
  35. package/esm2022/libs/ui/elements/src/index.mjs +2 -1
  36. package/esm2022/libs/ui/elements/src/lib/application-banner/application-banner.component.mjs +78 -0
  37. package/esm2022/libs/ui/elements/src/lib/image-input/image-input.component.mjs +32 -31
  38. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +3 -3
  39. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +23 -3
  40. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +10 -4
  41. package/esm2022/libs/ui/inputs/src/index.mjs +1 -2
  42. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +94 -8
  43. package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +2 -2
  44. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +1 -6
  45. package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +6 -4
  46. package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +3 -3
  47. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +14 -4
  48. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +10 -3
  49. package/esm2022/libs/ui/widgets/src/index.mjs +1 -2
  50. package/esm2022/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.mjs +10 -3
  51. package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +5 -6
  52. package/esm2022/libs/util/data-fetcher/src/lib/data-fetcher.mjs +5 -4
  53. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-cache.mjs +12 -0
  54. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-file.mjs +3 -3
  55. package/esm2022/libs/util/data-fetcher/src/lib/readers/base.mjs +1 -1
  56. package/esm2022/libs/util/data-fetcher/src/lib/readers/csv.mjs +2 -2
  57. package/esm2022/libs/util/data-fetcher/src/lib/readers/excel.mjs +2 -2
  58. package/esm2022/libs/util/data-fetcher/src/lib/readers/geojson.mjs +2 -2
  59. package/esm2022/libs/util/data-fetcher/src/lib/readers/gml.mjs +5 -3
  60. package/esm2022/libs/util/data-fetcher/src/lib/readers/json.mjs +2 -2
  61. package/esm2022/libs/util/data-fetcher/src/lib/readers/wfs.mjs +19 -11
  62. package/esm2022/libs/util/data-fetcher/src/lib/utils.mjs +13 -9
  63. package/esm2022/translations/de.json +5 -77
  64. package/esm2022/translations/en.json +5 -77
  65. package/esm2022/translations/es.json +3 -75
  66. package/esm2022/translations/fr.json +17 -89
  67. package/esm2022/translations/it.json +22 -93
  68. package/esm2022/translations/nl.json +3 -75
  69. package/esm2022/translations/pt.json +3 -75
  70. package/fesm2022/geonetwork-ui.mjs +631 -933
  71. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  72. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  73. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +3 -0
  74. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  75. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -0
  76. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  77. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +2 -1
  78. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  79. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +6 -0
  80. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  81. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +2 -1
  82. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  83. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +2 -1
  84. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  85. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +2 -2
  86. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  87. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +2 -1
  88. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  89. package/libs/feature/editor/src/index.d.ts +1 -0
  90. package/libs/feature/editor/src/index.d.ts.map +1 -1
  91. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +1 -0
  92. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
  93. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts +1 -0
  94. 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
  95. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -1
  96. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
  97. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  98. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts +1 -3
  99. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts.map +1 -1
  100. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts +2 -3
  101. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts.map +1 -1
  102. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +5 -1
  103. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  104. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +3 -2
  105. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  106. package/libs/feature/record/src/lib/state/mdview.actions.d.ts +16 -1
  107. package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
  108. package/libs/feature/record/src/lib/state/mdview.effects.d.ts +5 -0
  109. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  110. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +2 -0
  111. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  112. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +4 -1
  113. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
  114. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +2 -0
  115. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
  116. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +5 -1
  117. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  118. package/libs/ui/elements/src/index.d.ts +1 -0
  119. package/libs/ui/elements/src/index.d.ts.map +1 -1
  120. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts +16 -0
  121. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts.map +1 -0
  122. package/libs/ui/elements/src/lib/image-input/image-input.component.d.ts +5 -6
  123. package/libs/ui/elements/src/lib/image-input/image-input.component.d.ts.map +1 -1
  124. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  125. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
  126. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  127. package/libs/ui/inputs/src/index.d.ts +0 -1
  128. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  129. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +23 -1
  130. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  131. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +27 -28
  132. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  133. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +2 -1
  134. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -1
  135. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +4 -2
  136. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
  137. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +3 -1
  138. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  139. package/libs/ui/widgets/src/index.d.ts +0 -1
  140. package/libs/ui/widgets/src/index.d.ts.map +1 -1
  141. package/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.d.ts +1 -1
  142. package/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.d.ts.map +1 -1
  143. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +8 -9
  144. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +1 -1
  145. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts +2 -2
  146. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts.map +1 -1
  147. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts +8 -0
  148. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts.map +1 -0
  149. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts +2 -2
  150. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts.map +1 -1
  151. package/libs/util/data-fetcher/src/lib/readers/base.d.ts +2 -2
  152. package/libs/util/data-fetcher/src/lib/readers/base.d.ts.map +1 -1
  153. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts +5 -3
  154. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts.map +1 -1
  155. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts +7 -4
  156. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts.map +1 -1
  157. package/libs/util/data-fetcher/src/lib/utils.d.ts +2 -2
  158. package/libs/util/data-fetcher/src/lib/utils.d.ts.map +1 -1
  159. package/package.json +1 -1
  160. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +25 -0
  161. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +4 -0
  162. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +22 -16
  163. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +44 -13
  164. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +3 -1
  165. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +4 -1
  166. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +165 -0
  167. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +4 -1
  168. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +22 -9
  169. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +2 -1
  170. package/src/libs/feature/editor/src/index.ts +1 -0
  171. package/src/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.html +1 -1
  172. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +3 -3
  173. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html +1 -0
  174. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +2 -0
  175. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +1 -0
  176. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +10 -10
  177. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +1 -1
  178. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
  179. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +0 -13
  180. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.ts +0 -20
  181. package/src/libs/feature/editor/src/lib/fields.config.ts +1 -1
  182. package/src/libs/feature/editor/src/lib/models/wizard-field.type.ts +0 -1
  183. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +24 -11
  184. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +26 -4
  185. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +71 -60
  186. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +6 -3
  187. package/src/libs/feature/record/src/lib/state/mdview.actions.ts +16 -0
  188. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +21 -2
  189. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +15 -0
  190. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +30 -1
  191. package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +12 -0
  192. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +3 -0
  193. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +7 -0
  194. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.html +3 -1
  195. package/src/libs/ui/elements/src/index.ts +1 -0
  196. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.css +0 -0
  197. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.html +25 -0
  198. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.ts +70 -0
  199. package/src/libs/ui/elements/src/lib/image-input/image-input.component.html +20 -14
  200. package/src/libs/ui/elements/src/lib/image-input/image-input.component.ts +29 -32
  201. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +2 -2
  202. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +21 -9
  203. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +13 -0
  204. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +3 -0
  205. package/src/libs/ui/inputs/src/index.ts +0 -1
  206. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +36 -19
  207. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +91 -2
  208. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -3
  209. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +3 -2
  210. package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.html +1 -1
  211. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +37 -1
  212. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +8 -2
  213. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +2 -0
  214. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +6 -0
  215. package/src/libs/ui/widgets/src/index.ts +0 -1
  216. package/src/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.html +36 -11
  217. package/src/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.ts +9 -1
  218. package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +2 -3
  219. package/src/libs/util/data-fetcher/src/lib/data-fetcher.ts +13 -4
  220. package/src/libs/util/data-fetcher/src/lib/readers/base-cache.ts +14 -0
  221. package/src/libs/util/data-fetcher/src/lib/readers/base-file.ts +2 -1
  222. package/src/libs/util/data-fetcher/src/lib/readers/base.ts +2 -2
  223. package/src/libs/util/data-fetcher/src/lib/readers/csv.ts +1 -1
  224. package/src/libs/util/data-fetcher/src/lib/readers/excel.ts +1 -1
  225. package/src/libs/util/data-fetcher/src/lib/readers/geojson.ts +1 -1
  226. package/src/libs/util/data-fetcher/src/lib/readers/gml.ts +7 -7
  227. package/src/libs/util/data-fetcher/src/lib/readers/json.ts +1 -1
  228. package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +34 -11
  229. package/src/libs/util/data-fetcher/src/lib/utils.ts +38 -32
  230. package/translations/de.json +5 -77
  231. package/translations/en.json +5 -77
  232. package/translations/es.json +3 -75
  233. package/translations/fr.json +17 -89
  234. package/translations/it.json +22 -93
  235. package/translations/nl.json +3 -75
  236. package/translations/pt.json +3 -75
  237. package/translations/sk.json +3 -75
  238. package/esm2022/libs/ui/inputs/src/lib/chips-input/chips-input.component.mjs +0 -78
  239. package/esm2022/libs/ui/widgets/src/lib/step-bar/step-bar.component.mjs +0 -55
  240. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts +0 -33
  241. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts.map +0 -1
  242. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts +0 -21
  243. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts.map +0 -1
  244. package/src/libs/data-access/datafeeder/src/index.ts +0 -1
  245. package/src/libs/data-access/datafeeder/src/openapi/api/api.ts +0 -11
  246. package/src/libs/data-access/datafeeder/src/openapi/api/config.api.service.ts +0 -168
  247. package/src/libs/data-access/datafeeder/src/openapi/api/dataPublishing.api.service.ts +0 -270
  248. package/src/libs/data-access/datafeeder/src/openapi/api/fileUpload.api.service.ts +0 -734
  249. package/src/libs/data-access/datafeeder/src/openapi/api.module.ts +0 -46
  250. package/src/libs/data-access/datafeeder/src/openapi/configuration.ts +0 -125
  251. package/src/libs/data-access/datafeeder/src/openapi/encoder.ts +0 -20
  252. package/src/libs/data-access/datafeeder/src/openapi/index.ts +0 -5
  253. package/src/libs/data-access/datafeeder/src/openapi/model/analysisStatusEnum.api.model.ts +0 -24
  254. package/src/libs/data-access/datafeeder/src/openapi/model/boundingBox.api.model.ts +0 -20
  255. package/src/libs/data-access/datafeeder/src/openapi/model/cRS.api.model.ts +0 -25
  256. package/src/libs/data-access/datafeeder/src/openapi/model/datasetMetadata.api.model.ts +0 -45
  257. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishRequest.api.model.ts +0 -39
  258. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishingStatus.api.model.ts +0 -50
  259. package/src/libs/data-access/datafeeder/src/openapi/model/datasetUploadStatus.api.model.ts +0 -39
  260. package/src/libs/data-access/datafeeder/src/openapi/model/models.ts +0 -13
  261. package/src/libs/data-access/datafeeder/src/openapi/model/property.api.model.ts +0 -17
  262. package/src/libs/data-access/datafeeder/src/openapi/model/publishJobStatus.api.model.ts +0 -33
  263. package/src/libs/data-access/datafeeder/src/openapi/model/publishRequest.api.model.ts +0 -16
  264. package/src/libs/data-access/datafeeder/src/openapi/model/publishStatusEnum.api.model.ts +0 -20
  265. package/src/libs/data-access/datafeeder/src/openapi/model/publishStepEnum.api.model.ts +0 -42
  266. package/src/libs/data-access/datafeeder/src/openapi/model/uploadJobStatus.api.model.ts +0 -33
  267. package/src/libs/data-access/datafeeder/src/openapi/variables.ts +0 -9
  268. package/src/libs/data-access/datafeeder/src/spec.yaml +0 -537
  269. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.css +0 -36
  270. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.html +0 -23
  271. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.ts +0 -81
  272. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.css +0 -3
  273. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.html +0 -13
  274. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.ts +0 -55
@@ -40,6 +40,7 @@ import {
40
40
  provideNgIconsConfig,
41
41
  } from '@ng-icons/core'
42
42
  import { iconoirPlus } from '@ng-icons/iconoir'
43
+ import { RoleValues } from '../../../../../../../../../libs/common/domain/src/lib/model/record'
43
44
 
44
45
  @Component({
45
46
  selector: 'gn-ui-form-field-contacts-for-resource',
@@ -72,14 +73,11 @@ export class FormFieldContactsForResourceComponent
72
73
  @Output() valueChange: EventEmitter<Individual[]> = new EventEmitter()
73
74
 
74
75
  contactsForRessourceByRole: Map<Role, Individual[]> = new Map()
76
+ roleValues = RoleValues
75
77
 
76
- rolesToPick: Role[] = [
77
- 'resource_provider',
78
- 'custodian',
79
- 'owner',
80
- 'point_of_contact',
81
- 'author',
82
- ]
78
+ rolesToPick: Role[] = this.roleValues.filter(
79
+ (role) => role !== 'other' && role !== 'unspecified'
80
+ )
83
81
 
84
82
  roleSectionsToDisplay: Role[] = []
85
83
 
@@ -177,9 +175,11 @@ export class FormFieldContactsForResourceComponent
177
175
  * gn-ui-autocomplete
178
176
  */
179
177
  displayWithFn: (user: UserModel) => string = (user) =>
180
- `${user.name} ${user.surname} ${
181
- user.organisation ? `(${user.organisation})` : ''
182
- }`
178
+ user.name
179
+ ? `${user.name} ${user.surname} ${
180
+ user.organisation ? `(${user.organisation})` : ''
181
+ }`
182
+ : ``
183
183
 
184
184
  /**
185
185
  * gn-ui-autocomplete
@@ -28,7 +28,7 @@ import { FormFieldWrapperComponent } from '../../../../../../../../../libs/ui/la
28
28
  export class FormFieldRichComponent {
29
29
  @Input() label: string
30
30
  @Input() hint: string
31
- @Input() placeholder = 'Votre texte ici' //TODO: translate
31
+ @Input() placeholder = ''
32
32
  @Input() value: string
33
33
 
34
34
  @Output() valueChange: EventEmitter<string> = new EventEmitter()
@@ -9,3 +9,4 @@ export * from './form-field-object/form-field-object.component'
9
9
  export * from './form-field-array/form-field-array.component'
10
10
  export * from './form-field-spatial-extent/form-field-spatial-extent.component'
11
11
  export * from './form-field.component'
12
+ export * from './form-field-constraints-shortcuts/constraints.utils'
@@ -16,19 +16,6 @@
16
16
  placeholder=""
17
17
  ></gn-ui-text-input>
18
18
  </div>
19
- <div
20
- class="flex-1 w-11/12"
21
- *ngIf="wizardFieldType.CHIPS === wizardFieldConfig.type"
22
- >
23
- <gn-ui-chips-input
24
- #chips
25
- [selectedItems]="wizardFieldData"
26
- placeholder=""
27
- [id]="wizardFieldConfig.id"
28
- [url]="wizardFieldConfig.options.url"
29
- [loadOnce]="wizardFieldConfig.options.loadOnce"
30
- ></gn-ui-chips-input>
31
- </div>
32
19
  <div
33
20
  class="h-32 w-11/12"
34
21
  *ngIf="wizardFieldType.TEXT_AREA === wizardFieldConfig.type"
@@ -23,7 +23,6 @@ import { WizardFieldModel } from '../../models/wizard-field.model'
23
23
  import { WizardFieldType } from '../../models/wizard-field.type'
24
24
  import { WizardService } from '../../services/wizard.service'
25
25
  import {
26
- ChipsInputComponent,
27
26
  DropdownSelectorComponent,
28
27
  TextAreaComponent,
29
28
  TextInputComponent,
@@ -74,7 +73,6 @@ export class WizardFieldComponent implements AfterViewInit, OnDestroy {
74
73
  @Input() wizardFieldConfig: WizardFieldModel
75
74
 
76
75
  @ViewChild('searchText') searchText: TextInputComponent
77
- @ViewChild('chips') chips: ChipsInputComponent
78
76
  @ViewChild('textArea') textArea: TextAreaComponent
79
77
  @ViewChild('dropdown') dropdown: DropdownSelectorComponent
80
78
 
@@ -96,9 +94,6 @@ export class WizardFieldComponent implements AfterViewInit, OnDestroy {
96
94
  case WizardFieldType.TEXT: {
97
95
  return data || ''
98
96
  }
99
- case WizardFieldType.CHIPS: {
100
- return data ? JSON.parse(data) : []
101
- }
102
97
  case WizardFieldType.TEXT_AREA: {
103
98
  return data || ''
104
99
  }
@@ -131,10 +126,6 @@ export class WizardFieldComponent implements AfterViewInit, OnDestroy {
131
126
  this.initializeTextInputListener()
132
127
  break
133
128
  }
134
- case WizardFieldType.CHIPS: {
135
- this.initializeChipsListener()
136
- break
137
- }
138
129
  case WizardFieldType.TEXT_AREA: {
139
130
  this.initializeTextAreaListener()
140
131
  return
@@ -161,17 +152,6 @@ export class WizardFieldComponent implements AfterViewInit, OnDestroy {
161
152
  )
162
153
  }
163
154
 
164
- private initializeChipsListener() {
165
- this.subs.add(
166
- this.chips.itemsChange.subscribe((items) => {
167
- this.wizardService.onWizardWizardFieldDataChanged(
168
- this.wizardFieldConfig.id,
169
- JSON.stringify(items)
170
- )
171
- })
172
- )
173
- }
174
-
175
155
  private initializeTextAreaListener() {
176
156
  this.subs.add(
177
157
  this.textArea.valueChange.subscribe((value) => {
@@ -275,8 +275,8 @@ export const DEFAULT_CONFIGURATION: EditorConfig = {
275
275
  labelKey: marker('editor.record.form.page.description'),
276
276
  sections: [
277
277
  TITLE_SECTION,
278
- ABOUT_SECTION,
279
278
  CLASSIFICATION_SECTION,
279
+ ABOUT_SECTION,
280
280
  GEOGRAPHICAL_COVERAGE_SECTION,
281
281
  ],
282
282
  },
@@ -1,7 +1,6 @@
1
1
  export enum WizardFieldType {
2
2
  TEXT,
3
3
  TEXT_AREA,
4
- CHIPS,
5
4
  DATA_PICKER,
6
5
  DROPDOWN,
7
6
  }
@@ -8,15 +8,28 @@
8
8
  [choices]="choices"
9
9
  (selectValue)="selectLink($event)"
10
10
  ></gn-ui-dropdown-selector>
11
- <div class="relative h-[460px]">
12
- <gn-ui-table-view
13
- *ngIf="mode === 'table'"
14
- [link]="selectedLink$ | async"
15
- ></gn-ui-table-view>
16
- <gn-ui-chart-view
17
- *ngIf="mode === 'chart'"
18
- (chartConfig$)="setChartConfig($event)"
19
- [link]="selectedLink$ | async"
20
- ></gn-ui-chart-view>
21
- </div>
11
+ <ng-container *ngIf="hidePreview; else dataView">
12
+ <gn-ui-popup-alert
13
+ type="warning"
14
+ icon="matErrorOutlineOutline"
15
+ class="block h-12 p-1"
16
+ >
17
+ <span translate>record.feature.limit</span>
18
+ </gn-ui-popup-alert>
19
+ </ng-container>
20
+ <ng-template #dataView>
21
+ <div class="relative h-[460px]">
22
+ <gn-ui-table-view
23
+ *ngIf="mode === 'table'"
24
+ [cacheActive]="cacheActive$ | async"
25
+ [link]="selectedLink$ | async"
26
+ ></gn-ui-table-view>
27
+ <gn-ui-chart-view
28
+ *ngIf="mode === 'chart'"
29
+ (chartConfig$)="setChartConfig($event)"
30
+ [cacheActive]="cacheActive$ | async"
31
+ [link]="selectedLink$ | async"
32
+ ></gn-ui-chart-view>
33
+ </div>
34
+ </ng-template>
22
35
  </div>
@@ -5,8 +5,8 @@ import {
5
5
  Output,
6
6
  } from '@angular/core'
7
7
  import { getLinkLabel, getLinkPriority } from '../../../../../../libs/util/shared/src'
8
- import { BehaviorSubject, combineLatest } from 'rxjs'
9
- import { map, tap } from 'rxjs/operators'
8
+ import { BehaviorSubject, combineLatest, of } from 'rxjs'
9
+ import { catchError, finalize, map, switchMap, 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
12
  import { DatasetOnlineResource } from '../../../../../../libs/common/domain/src/lib/model/record'
@@ -17,6 +17,7 @@ import {
17
17
  } from '../../../../../../libs/feature/dataviz/src'
18
18
  import { CommonModule } from '@angular/common'
19
19
  import { TranslateModule } from '@ngx-translate/core'
20
+ import { PopupAlertComponent } from '../../../../../../libs/ui/widgets/src'
20
21
 
21
22
  @Component({
22
23
  selector: 'gn-ui-data-view',
@@ -30,12 +31,21 @@ import { TranslateModule } from '@ngx-translate/core'
30
31
  TableViewComponent,
31
32
  TranslateModule,
32
33
  ChartViewComponent,
34
+ PopupAlertComponent,
33
35
  ],
34
36
  })
35
37
  export class DataViewComponent {
36
38
  @Input() mode: 'table' | 'chart'
37
39
  @Input() displaySource = true
40
+ @Input() set exceedsLimit(value: boolean) {
41
+ this.excludeWfs$.next(value)
42
+ }
38
43
  @Output() chartConfig$ = new BehaviorSubject<DatavizConfigurationModel>(null)
44
+ cacheActive$ = this.mdViewFacade.isHighUpdateFrequency$.pipe(
45
+ map((highF) => !highF)
46
+ )
47
+ hidePreview = false
48
+ excludeWfs$ = new BehaviorSubject(false)
39
49
  compatibleDataLinks$ = combineLatest([
40
50
  this.mdViewFacade.dataLinks$,
41
51
  this.mdViewFacade.geoDataLinks$,
@@ -49,7 +59,7 @@ export class DataViewComponent {
49
59
  dropdownChoices$ = this.compatibleDataLinks$.pipe(
50
60
  tap((links) => {
51
61
  if (links.indexOf(this.selectedLink$.value) === -1) {
52
- this.selectedLink$.next(links[0])
62
+ this.selectLink(JSON.stringify(links[0]))
53
63
  }
54
64
  }),
55
65
  map((links) =>
@@ -70,6 +80,18 @@ export class DataViewComponent {
70
80
  selectLink(linkAsString: string) {
71
81
  const link: DatasetOnlineResource = JSON.parse(linkAsString)
72
82
  link.url = new URL(link.url)
73
- this.selectedLink$.next(link)
83
+ this.excludeWfs$
84
+ .pipe(
85
+ tap((excludeWfs) => {
86
+ this.hidePreview =
87
+ link['accessServiceProtocol'] === 'wfs' &&
88
+ excludeWfs &&
89
+ this.mode === 'chart'
90
+ ? true
91
+ : false
92
+ this.selectedLink$.next(link)
93
+ })
94
+ )
95
+ .subscribe()
74
96
  }
75
97
  }
@@ -14,80 +14,91 @@
14
14
  >
15
15
  </gn-ui-external-viewer-button>
16
16
  </div>
17
- <div
18
- class="relative w-full h-full bg-white border border-gray-300 rounded-lg overflow-hidden"
19
- >
20
- <gn-ui-map-container
21
- #mapContainer
22
- [context]="mapContext$ | async"
23
- (featuresClick)="onMapFeatureSelect($event)"
24
- ></gn-ui-map-container>
25
- <div
26
- class="top-[1em] right-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56"
27
- [class.hidden]="!selection"
17
+ <ng-container *ngIf="hidePreview; else mapView">
18
+ <gn-ui-popup-alert
19
+ type="warning"
20
+ icon="matErrorOutlineOutline"
21
+ class="block h-12 p-1"
28
22
  >
29
- <gn-ui-button
30
- type="light"
31
- (buttonClick)="resetSelection()"
32
- style="
33
- --gn-ui-button-padding: 0px;
34
- --gn-ui-button-width: 24px;
35
- --gn-ui-button-height: 24px;
36
- "
37
- extraClass="absolute right-[0.5em] ml-[8px] mr-[10px]"
38
- >
39
- <ng-icon name="matClose" class="align-middle text-sm"></ng-icon>
40
- </gn-ui-button>
41
- <gn-ui-feature-detail [feature]="selection"></gn-ui-feature-detail>
42
- </div>
43
-
23
+ <span translate>record.feature.limit</span>
24
+ </gn-ui-popup-alert>
25
+ </ng-container>
26
+ <ng-template #mapView>
44
27
  <div
45
- class="top-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56"
46
- [ngClass]="{ 'right-[1em]': !selection, 'right-[16em]': selection }"
47
- [hidden]="!showLegend || !legendExists"
28
+ class="relative w-full h-full bg-white border border-gray-300 rounded-lg overflow-hidden"
48
29
  >
49
- <div class="flex justify-between items-center mb-2">
50
- <div class="text-primary font-bold">Legend</div>
30
+ <gn-ui-map-container
31
+ #mapContainer
32
+ [context]="mapContext$ | async"
33
+ (featuresClick)="onMapFeatureSelect($event)"
34
+ ></gn-ui-map-container>
35
+ <div
36
+ class="top-[1em] right-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56"
37
+ [class.hidden]="!selection"
38
+ >
51
39
  <gn-ui-button
52
40
  type="light"
53
- (buttonClick)="toggleLegend()"
41
+ (buttonClick)="resetSelection()"
54
42
  style="
55
43
  --gn-ui-button-padding: 0px;
56
44
  --gn-ui-button-width: 24px;
57
45
  --gn-ui-button-height: 24px;
58
46
  "
59
- extraClass="ml-[8px] mr-[10px]"
47
+ extraClass="absolute right-[0.5em] ml-[8px] mr-[10px]"
60
48
  >
61
49
  <ng-icon name="matClose" class="align-middle text-sm"></ng-icon>
62
50
  </gn-ui-button>
51
+ <gn-ui-feature-detail [feature]="selection"></gn-ui-feature-detail>
63
52
  </div>
64
- <gn-ui-map-legend
65
- [context]="mapContext$ | async"
66
- (legendStatusChange)="onLegendStatusChange($event)"
67
- ></gn-ui-map-legend>
68
- </div>
69
53
 
70
- <gn-ui-button
71
- *ngIf="!showLegend && legendExists && !selection"
72
- type="outline"
73
- (buttonClick)="toggleLegend()"
74
- extraClass="absolute top-[1em] right-[1em] rounded p-1 text-xs bg-white"
75
- >
76
- Legend
77
- </gn-ui-button>
54
+ <div
55
+ class="top-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56"
56
+ [ngClass]="{ 'right-[1em]': !selection, 'right-[16em]': selection }"
57
+ [hidden]="!showLegend || !legendExists"
58
+ >
59
+ <div class="flex justify-between items-center mb-2">
60
+ <div class="text-primary font-bold">Legend</div>
61
+ <gn-ui-button
62
+ type="light"
63
+ (buttonClick)="toggleLegend()"
64
+ style="
65
+ --gn-ui-button-padding: 0px;
66
+ --gn-ui-button-width: 24px;
67
+ --gn-ui-button-height: 24px;
68
+ "
69
+ extraClass="ml-[8px] mr-[10px]"
70
+ >
71
+ <ng-icon name="matClose" class="align-middle text-sm"></ng-icon>
72
+ </gn-ui-button>
73
+ </div>
74
+ <gn-ui-map-legend
75
+ [context]="mapContext$ | async"
76
+ (legendStatusChange)="onLegendStatusChange($event)"
77
+ ></gn-ui-map-legend>
78
+ </div>
78
79
 
79
- <gn-ui-loading-mask
80
- *ngIf="loading"
81
- class="absolute inset-0"
82
- [message]="'map.loading.data' | translate"
83
- ></gn-ui-loading-mask>
84
- <gn-ui-popup-alert
85
- *ngIf="error"
86
- type="warning"
87
- icon="matErrorOutlineOutline"
88
- class="absolute m-2 inset-0"
89
- >
90
- <span translate>{{ error }}</span>
91
- </gn-ui-popup-alert>
92
- </div>
80
+ <gn-ui-button
81
+ *ngIf="!showLegend && legendExists && !selection"
82
+ type="outline"
83
+ (buttonClick)="toggleLegend()"
84
+ extraClass="absolute top-[1em] right-[1em] rounded p-1 text-xs bg-white"
85
+ >
86
+ Legend
87
+ </gn-ui-button>
88
+
89
+ <gn-ui-loading-mask
90
+ *ngIf="loading"
91
+ class="absolute inset-0"
92
+ [message]="'map.loading.data' | translate"
93
+ ></gn-ui-loading-mask>
94
+ <gn-ui-popup-alert
95
+ *ngIf="error"
96
+ type="warning"
97
+ icon="matErrorOutlineOutline"
98
+ class="absolute m-2 inset-0"
99
+ >
100
+ <span translate>{{ error }}</span>
101
+ </gn-ui-popup-alert>
102
+ </div>
103
+ </ng-template>
93
104
  </div>
@@ -82,13 +82,14 @@ marker('wfs.feature.limit')
82
82
  viewProviders: [provideIcons({ matClose })],
83
83
  })
84
84
  export class MapViewComponent implements AfterViewInit {
85
- @Input() set excludeWfs(value: boolean) {
85
+ @Input() set exceedsLimit(value: boolean) {
86
86
  this.excludeWfs$.next(value)
87
87
  }
88
88
  @Input() displaySource = true
89
89
  @ViewChild('mapContainer') mapContainer: MapContainerComponent
90
90
 
91
91
  excludeWfs$ = new BehaviorSubject(false)
92
+ hidePreview = false
92
93
  selection: Feature
93
94
  showLegend = true
94
95
  legendExists = false
@@ -139,9 +140,10 @@ export class MapViewComponent implements AfterViewInit {
139
140
  return of([])
140
141
  }
141
142
  if (excludeWfs && link.accessServiceProtocol === 'wfs') {
142
- this.error = 'wfs.feature.limit'
143
+ this.hidePreview = true
143
144
  return of([])
144
145
  }
146
+ this.hidePreview = false
145
147
  this.loading = true
146
148
  this.error = null
147
149
  return this.getLayerFromLink(link).pipe(
@@ -239,7 +241,8 @@ export class MapViewComponent implements AfterViewInit {
239
241
  link.accessServiceProtocol === 'ogcFeatures')) ||
240
242
  link.type === 'download'
241
243
  ) {
242
- return this.dataService.readAsGeoJson(link).pipe(
244
+ const cacheActive = true // TODO implement whether should be true or false
245
+ return this.dataService.readAsGeoJson(link, cacheActive).pipe(
243
246
  map((data) => ({
244
247
  type: 'geojson',
245
248
  data,
@@ -2,6 +2,7 @@ import { DatavizConfigurationModel } from '../../../../../../libs/common/domain/
2
2
  import { createAction, props } from '@ngrx/store'
3
3
  import {
4
4
  CatalogRecord,
5
+ DatasetFeatureCatalog,
5
6
  UserFeedback,
6
7
  } from '../../../../../../libs/common/domain/src/lib/model/record'
7
8
 
@@ -28,6 +29,21 @@ export const loadFullMetadataFailure = createAction(
28
29
  props<{ otherError?: string; notFound?: boolean }>()
29
30
  )
30
31
 
32
+ export const loadFeatureCatalog = createAction(
33
+ "[Metadata view] Load metadata's feature catalog",
34
+ props<{ metadata: CatalogRecord }>()
35
+ )
36
+
37
+ export const loadFeatureCatalogSuccess = createAction(
38
+ '[Metadata view] Load metadata feature catalog success',
39
+ props<{ datasetCatalog: DatasetFeatureCatalog | null }>()
40
+ )
41
+
42
+ export const loadFeatureCatalogFailure = createAction(
43
+ '[Metadata view] Load metadata feature catalog failure',
44
+ props<{ error?: string }>()
45
+ )
46
+
31
47
  export const closeMetadata = createAction('[Metadata view] close')
32
48
 
33
49
  /*
@@ -1,11 +1,10 @@
1
1
  import { Injectable } from '@angular/core'
2
2
  import { Actions, createEffect, ofType } from '@ngrx/effects'
3
3
  import { exhaustMap, mergeMap, of } from 'rxjs'
4
- import { catchError, map, switchMap } from 'rxjs/operators'
4
+ import { catchError, filter, map, switchMap, take } from 'rxjs/operators'
5
5
  import * as MdViewActions from './mdview.actions'
6
6
  import { RecordsRepositoryInterface } from '../../../../../../libs/common/domain/src/lib/repository/records-repository.interface'
7
7
  import { PlatformServiceInterface } from '../../../../../../libs/common/domain/src/lib/platform.service.interface'
8
-
9
8
  @Injectable()
10
9
  export class MdViewEffects {
11
10
  constructor(
@@ -33,6 +32,26 @@ export class MdViewEffects {
33
32
  )
34
33
  )
35
34
 
35
+ loadFeatureCatalog$ = createEffect(() =>
36
+ this.actions$.pipe(
37
+ ofType(MdViewActions.loadFullMetadataSuccess),
38
+ filter(({ full }) => full !== undefined),
39
+ switchMap(({ full }) => this.recordsRepository.getFeatureCatalog(full)),
40
+ map((featureCatalog) =>
41
+ MdViewActions.loadFeatureCatalogSuccess({
42
+ datasetCatalog: featureCatalog,
43
+ })
44
+ ),
45
+ catchError((error) =>
46
+ of(
47
+ MdViewActions.loadFeatureCatalogFailure({
48
+ error: error.message,
49
+ })
50
+ )
51
+ )
52
+ )
53
+ )
54
+
36
55
  /*
37
56
  Related effects
38
57
  */
@@ -52,11 +52,26 @@ export class MdViewFacade {
52
52
  filter((md) => !!md)
53
53
  )
54
54
 
55
+ featureCatalog$ = this.store.pipe(select(MdViewSelectors.getFeatureCatalog))
56
+
55
57
  isIncomplete$ = this.store.pipe(
56
58
  select(MdViewSelectors.getMetadataIsIncomplete),
57
59
  filter((incomplete) => incomplete !== null)
58
60
  )
59
61
 
62
+ isHighUpdateFrequency$ = this.metadata$.pipe(
63
+ map((record) => {
64
+ if (record.updateFrequency instanceof Object) {
65
+ return (
66
+ record.updateFrequency.per === 'day' &&
67
+ record.updateFrequency.updatedTimes > 1
68
+ )
69
+ }
70
+
71
+ return record.updateFrequency === 'continual'
72
+ })
73
+ )
74
+
60
75
  error$ = this.store.pipe(select(MdViewSelectors.getMetadataError))
61
76
 
62
77
  related$ = this.store.pipe(select(MdViewSelectors.getRelated))
@@ -3,6 +3,7 @@ import * as MetadataViewActions from './mdview.actions'
3
3
  import { DatavizConfigurationModel } from '../../../../../../libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model'
4
4
  import {
5
5
  CatalogRecord,
6
+ DatasetFeatureCatalog,
6
7
  UserFeedback,
7
8
  } from '../../../../../../libs/common/domain/src/lib/model/record'
8
9
 
@@ -17,6 +18,9 @@ export interface MetadataViewState {
17
18
  allUserFeedbacksLoading: boolean
18
19
  addUserFeedbackLoading: boolean
19
20
  chartConfig?: DatavizConfigurationModel
21
+ featureCatalog?: DatasetFeatureCatalog
22
+ featureCatalogLoading: boolean
23
+ featureCatalogError: string | null
20
24
  }
21
25
 
22
26
  export const initialMetadataViewState: MetadataViewState = {
@@ -24,6 +28,8 @@ export const initialMetadataViewState: MetadataViewState = {
24
28
  loadingFull: false,
25
29
  allUserFeedbacksLoading: false,
26
30
  addUserFeedbackLoading: false,
31
+ featureCatalogLoading: false,
32
+ featureCatalogError: null,
27
33
  }
28
34
 
29
35
  const metadataViewReducer = createReducer(
@@ -105,7 +111,30 @@ const metadataViewReducer = createReducer(
105
111
  addUserFeedbackLoading: false,
106
112
  allUserFeedbacksLoading: false,
107
113
  })
108
- )
114
+ ),
115
+
116
+ /**
117
+ * FeatureCatalog reducers
118
+ */
119
+
120
+ on(MetadataViewActions.loadFeatureCatalog, (state) => ({
121
+ ...state,
122
+ featureCatalogError: null,
123
+ featureCatalogLoading: true,
124
+ })),
125
+ on(
126
+ MetadataViewActions.loadFeatureCatalogSuccess,
127
+ (state, { datasetCatalog }) => ({
128
+ ...state,
129
+ featureCatalog: datasetCatalog,
130
+ featureCatalogLoading: false,
131
+ })
132
+ ),
133
+ on(MetadataViewActions.loadFeatureCatalogFailure, (state, { error }) => ({
134
+ ...state,
135
+ featureCatalogError: error,
136
+ featureCatalogLoading: false,
137
+ }))
109
138
  )
110
139
 
111
140
  export function reducer(
@@ -64,3 +64,15 @@ export const getAddUserFeedbacksLoading = createSelector(
64
64
  getMdViewState,
65
65
  (state: MetadataViewState) => state.addUserFeedbackLoading
66
66
  )
67
+
68
+ /*
69
+ Feature Catalog Selectors
70
+ */
71
+ export const getFeatureCatalog = createSelector(
72
+ getMdViewState,
73
+ (state: MetadataViewState) => state.featureCatalog
74
+ )
75
+ export const getFeatureCatalogIsLoading = createSelector(
76
+ getMdViewState,
77
+ (state: MetadataViewState) => state.featureCatalogLoading
78
+ )
@@ -5,8 +5,11 @@
5
5
  (itemSelected)="handleItemSelection($event)"
6
6
  (inputSubmitted)="handleInputSubmission($event)"
7
7
  (inputCleared)="handleInputCleared()"
8
+ (isSearchActive)="handleSearchActive($event)"
8
9
  [value]="searchInputValue$ | async"
9
10
  [preventCompleteOnSelection]="true"
10
11
  [autoFocus]="autoFocus"
11
12
  [allowSubmit]="true"
13
+ [forceTrackPosition]="forceTrackPosition"
14
+ [enterButton]="enterButton"
12
15
  ></gn-ui-autocomplete>
@@ -28,8 +28,11 @@ import { SearchFilters } from '../../../../../../libs/api/metadata-converter/src
28
28
  export class FuzzySearchComponent implements OnInit {
29
29
  @ViewChild(AutocompleteComponent) autocomplete: AutocompleteComponent
30
30
  @Input() autoFocus = false
31
+ @Input() forceTrackPosition = false
32
+ @Input() enterButton = false
31
33
  @Output() itemSelected = new EventEmitter<CatalogRecord>()
32
34
  @Output() inputSubmitted = new EventEmitter<string>()
35
+ @Output() isSearchActive = new EventEmitter<boolean>()
33
36
  searchInputValue$: Observable<{ title: string }>
34
37
 
35
38
  displayWithFn: (record: CatalogRecord) => string = (record) => record.title
@@ -84,4 +87,8 @@ export class FuzzySearchComponent implements OnInit {
84
87
  this.searchService.updateFilters({ any: '' })
85
88
  }
86
89
  }
90
+
91
+ handleSearchActive(event: boolean) {
92
+ this.isSearchActive.emit(event)
93
+ }
87
94
  }