geonetwork-ui 2.4.2 → 2.5.0-dev.0a41b52e9

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 (326) 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 +50 -32
  4. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +26 -10
  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/geo-table-view/geo-table-view.component.mjs +18 -16
  9. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +24 -14
  10. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +16 -18
  11. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  12. package/esm2022/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.mjs +3 -3
  13. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +2 -2
  14. package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +4 -4
  15. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +2 -2
  16. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +2 -2
  17. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +3 -2
  18. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +2 -2
  19. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -1
  20. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +7 -23
  21. package/esm2022/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.mjs +11 -11
  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/feature-record.module.mjs +6 -7
  27. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +10 -7
  28. package/esm2022/libs/feature/record/src/lib/state/mdview.actions.mjs +4 -1
  29. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +7 -2
  30. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +9 -1
  31. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +19 -1
  32. package/esm2022/libs/feature/record/src/lib/state/mdview.selectors.mjs +6 -1
  33. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +6 -3
  34. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +1 -1
  35. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +46 -1
  36. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +3 -2
  37. package/esm2022/libs/ui/dataviz/src/index.mjs +3 -3
  38. package/esm2022/libs/ui/dataviz/src/lib/data-table/custom.mat.paginator.intl.mjs +51 -0
  39. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +133 -0
  40. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.data.source.mjs +24 -0
  41. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.mjs +82 -0
  42. package/esm2022/libs/ui/elements/src/index.mjs +2 -1
  43. package/esm2022/libs/ui/elements/src/lib/application-banner/application-banner.component.mjs +78 -0
  44. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +3 -3
  45. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +18 -10
  46. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +2 -1
  47. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +10 -4
  48. package/esm2022/libs/ui/inputs/src/index.mjs +1 -2
  49. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +43 -3
  50. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +1 -6
  51. package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +2 -7
  52. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +14 -4
  53. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +22 -13
  54. package/esm2022/libs/ui/widgets/src/index.mjs +1 -2
  55. package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +5 -6
  56. package/esm2022/libs/util/data-fetcher/src/index.mjs +3 -1
  57. package/esm2022/libs/util/data-fetcher/src/lib/data-fetcher.mjs +5 -4
  58. package/esm2022/libs/util/data-fetcher/src/lib/model.mjs +7 -3
  59. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-cache.mjs +12 -0
  60. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-file.mjs +3 -3
  61. package/esm2022/libs/util/data-fetcher/src/lib/readers/base.mjs +1 -1
  62. package/esm2022/libs/util/data-fetcher/src/lib/readers/csv.mjs +2 -2
  63. package/esm2022/libs/util/data-fetcher/src/lib/readers/excel.mjs +2 -2
  64. package/esm2022/libs/util/data-fetcher/src/lib/readers/geojson.mjs +2 -2
  65. package/esm2022/libs/util/data-fetcher/src/lib/readers/gml.mjs +5 -3
  66. package/esm2022/libs/util/data-fetcher/src/lib/readers/json.mjs +2 -2
  67. package/esm2022/libs/util/data-fetcher/src/lib/readers/wfs.mjs +35 -9
  68. package/esm2022/libs/util/data-fetcher/src/lib/utils.mjs +14 -10
  69. package/esm2022/libs/util/shared/src/lib/services/date.service.mjs +41 -0
  70. package/esm2022/libs/util/shared/src/lib/services/index.mjs +2 -1
  71. package/esm2022/libs/util/shared/src/lib/utils/temporal-extent-union.mjs +4 -4
  72. package/esm2022/translations/de.json +10 -75
  73. package/esm2022/translations/en.json +10 -75
  74. package/esm2022/translations/es.json +9 -74
  75. package/esm2022/translations/fr.json +22 -87
  76. package/esm2022/translations/it.json +27 -91
  77. package/esm2022/translations/nl.json +9 -74
  78. package/esm2022/translations/pt.json +9 -74
  79. package/fesm2022/geonetwork-ui.mjs +1194 -1223
  80. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  81. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  82. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +3 -0
  83. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  84. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +3 -1
  85. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  86. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +2 -1
  87. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  88. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +6 -0
  89. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  90. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +2 -1
  91. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  92. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +2 -1
  93. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  94. package/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.d.ts +7 -9
  95. package/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.d.ts.map +1 -1
  96. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +2 -2
  97. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  98. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +5 -7
  99. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  100. package/libs/feature/editor/src/index.d.ts +1 -0
  101. package/libs/feature/editor/src/index.d.ts.map +1 -1
  102. 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
  103. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -1
  104. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
  105. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  106. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts +1 -3
  107. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts.map +1 -1
  108. package/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.d.ts +3 -3
  109. package/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.d.ts.map +1 -1
  110. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts +2 -3
  111. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts.map +1 -1
  112. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +5 -1
  113. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  114. package/libs/feature/record/src/lib/feature-record.module.d.ts +2 -2
  115. package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
  116. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +3 -2
  117. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  118. package/libs/feature/record/src/lib/state/mdview.actions.d.ts +16 -1
  119. package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
  120. package/libs/feature/record/src/lib/state/mdview.effects.d.ts +5 -0
  121. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  122. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +2 -0
  123. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  124. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +4 -1
  125. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
  126. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +2 -0
  127. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
  128. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +2 -1
  129. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  130. package/libs/feature/search/src/lib/utils/service/fields.d.ts +10 -0
  131. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  132. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  133. package/libs/ui/dataviz/src/index.d.ts +2 -2
  134. package/libs/ui/dataviz/src/index.d.ts.map +1 -1
  135. package/libs/ui/dataviz/src/lib/data-table/custom.mat.paginator.intl.d.ts +14 -0
  136. package/libs/ui/dataviz/src/lib/data-table/custom.mat.paginator.intl.d.ts.map +1 -0
  137. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts +45 -0
  138. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -0
  139. package/libs/ui/dataviz/src/lib/data-table/data-table.data.source.d.ts +12 -0
  140. package/libs/ui/dataviz/src/lib/data-table/data-table.data.source.d.ts.map +1 -0
  141. package/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.d.ts +10 -0
  142. package/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.d.ts.map +1 -0
  143. package/libs/ui/elements/src/index.d.ts +1 -0
  144. package/libs/ui/elements/src/index.d.ts.map +1 -1
  145. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts +16 -0
  146. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts.map +1 -0
  147. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +5 -0
  148. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  149. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  150. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
  151. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  152. package/libs/ui/inputs/src/index.d.ts +0 -1
  153. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  154. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +16 -1
  155. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  156. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +27 -28
  157. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  158. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +2 -3
  159. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -1
  160. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +4 -2
  161. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
  162. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +6 -3
  163. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  164. package/libs/ui/widgets/src/index.d.ts +0 -1
  165. package/libs/ui/widgets/src/index.d.ts.map +1 -1
  166. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +8 -9
  167. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +1 -1
  168. package/libs/util/data-fetcher/src/index.d.ts +3 -1
  169. package/libs/util/data-fetcher/src/index.d.ts.map +1 -1
  170. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts +2 -2
  171. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts.map +1 -1
  172. package/libs/util/data-fetcher/src/lib/model.d.ts +1 -1
  173. package/libs/util/data-fetcher/src/lib/model.d.ts.map +1 -1
  174. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts +8 -0
  175. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts.map +1 -0
  176. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts +2 -2
  177. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts.map +1 -1
  178. package/libs/util/data-fetcher/src/lib/readers/base.d.ts +2 -2
  179. package/libs/util/data-fetcher/src/lib/readers/base.d.ts.map +1 -1
  180. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts +5 -3
  181. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts.map +1 -1
  182. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts +7 -4
  183. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts.map +1 -1
  184. package/libs/util/data-fetcher/src/lib/utils.d.ts +2 -2
  185. package/libs/util/data-fetcher/src/lib/utils.d.ts.map +1 -1
  186. package/libs/util/shared/src/lib/services/date.service.d.ts +13 -0
  187. package/libs/util/shared/src/lib/services/date.service.d.ts.map +1 -0
  188. package/libs/util/shared/src/lib/services/index.d.ts +1 -0
  189. package/libs/util/shared/src/lib/services/index.d.ts.map +1 -1
  190. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts +2 -1
  191. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts.map +1 -1
  192. package/package.json +1 -1
  193. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +25 -0
  194. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +4 -0
  195. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +55 -32
  196. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +45 -18
  197. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +3 -1
  198. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +4 -1
  199. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +165 -0
  200. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +4 -1
  201. package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.html +3 -3
  202. package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.ts +17 -15
  203. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +43 -20
  204. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.html +4 -3
  205. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +10 -18
  206. package/src/libs/feature/editor/src/index.ts +1 -0
  207. package/src/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.html +1 -1
  208. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +3 -3
  209. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +1 -0
  210. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +1 -1
  211. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
  212. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +0 -13
  213. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.ts +0 -20
  214. package/src/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.ts +3 -4
  215. package/src/libs/feature/editor/src/lib/fields.config.ts +1 -1
  216. package/src/libs/feature/editor/src/lib/models/wizard-field.type.ts +0 -1
  217. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +24 -11
  218. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +26 -4
  219. package/src/libs/feature/record/src/lib/feature-record.module.ts +6 -4
  220. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +71 -60
  221. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +6 -3
  222. package/src/libs/feature/record/src/lib/state/mdview.actions.ts +16 -0
  223. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +21 -2
  224. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +15 -0
  225. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +30 -1
  226. package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +12 -0
  227. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +1 -0
  228. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +1 -0
  229. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +2 -0
  230. package/src/libs/feature/search/src/lib/utils/service/fields.ts +55 -0
  231. package/src/libs/ui/dataviz/src/index.ts +2 -2
  232. package/src/libs/ui/dataviz/src/lib/data-table/custom.mat.paginator.intl.ts +52 -0
  233. package/src/libs/ui/dataviz/src/lib/{table/table.component.css → data-table/data-table.component.css} +4 -0
  234. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.html +67 -0
  235. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +173 -0
  236. package/src/libs/ui/dataviz/src/lib/data-table/data-table.data.source.ts +33 -0
  237. package/src/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.ts +84 -0
  238. package/src/libs/ui/elements/src/index.ts +1 -0
  239. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.css +0 -0
  240. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.html +25 -0
  241. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.ts +70 -0
  242. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +2 -2
  243. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +3 -3
  244. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +12 -2
  245. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +2 -0
  246. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +3 -0
  247. package/src/libs/ui/inputs/src/index.ts +0 -1
  248. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +48 -0
  249. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -3
  250. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +1 -7
  251. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +37 -1
  252. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +8 -2
  253. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +2 -0
  254. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +10 -2
  255. package/src/libs/ui/widgets/src/index.ts +0 -1
  256. package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +2 -3
  257. package/src/libs/util/data-fetcher/src/index.ts +3 -0
  258. package/src/libs/util/data-fetcher/src/lib/data-fetcher.ts +13 -4
  259. package/src/libs/util/data-fetcher/src/lib/model.ts +6 -2
  260. package/src/libs/util/data-fetcher/src/lib/readers/base-cache.ts +14 -0
  261. package/src/libs/util/data-fetcher/src/lib/readers/base-file.ts +2 -1
  262. package/src/libs/util/data-fetcher/src/lib/readers/base.ts +2 -2
  263. package/src/libs/util/data-fetcher/src/lib/readers/csv.ts +1 -1
  264. package/src/libs/util/data-fetcher/src/lib/readers/excel.ts +1 -1
  265. package/src/libs/util/data-fetcher/src/lib/readers/geojson.ts +1 -1
  266. package/src/libs/util/data-fetcher/src/lib/readers/gml.ts +7 -7
  267. package/src/libs/util/data-fetcher/src/lib/readers/json.ts +1 -1
  268. package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +53 -8
  269. package/src/libs/util/data-fetcher/src/lib/utils.ts +38 -32
  270. package/src/libs/util/shared/src/lib/services/date.service.ts +45 -0
  271. package/src/libs/util/shared/src/lib/services/index.ts +1 -0
  272. package/src/libs/util/shared/src/lib/utils/temporal-extent-union.ts +6 -3
  273. package/translations/de.json +10 -75
  274. package/translations/en.json +10 -75
  275. package/translations/es.json +9 -74
  276. package/translations/fr.json +22 -87
  277. package/translations/it.json +27 -91
  278. package/translations/nl.json +9 -74
  279. package/translations/pt.json +9 -74
  280. package/translations/sk.json +9 -74
  281. package/esm2022/libs/ui/dataviz/src/lib/table/table.component.mjs +0 -61
  282. package/esm2022/libs/ui/dataviz/src/lib/table/table.fixtures.mjs +0 -40
  283. package/esm2022/libs/ui/inputs/src/lib/chips-input/chips-input.component.mjs +0 -78
  284. package/esm2022/libs/ui/widgets/src/lib/step-bar/step-bar.component.mjs +0 -55
  285. package/libs/ui/dataviz/src/lib/table/table.component.d.ts +0 -29
  286. package/libs/ui/dataviz/src/lib/table/table.component.d.ts.map +0 -1
  287. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts +0 -11
  288. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts.map +0 -1
  289. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts +0 -33
  290. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts.map +0 -1
  291. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts +0 -21
  292. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts.map +0 -1
  293. package/src/libs/data-access/datafeeder/src/index.ts +0 -1
  294. package/src/libs/data-access/datafeeder/src/openapi/api/api.ts +0 -11
  295. package/src/libs/data-access/datafeeder/src/openapi/api/config.api.service.ts +0 -168
  296. package/src/libs/data-access/datafeeder/src/openapi/api/dataPublishing.api.service.ts +0 -270
  297. package/src/libs/data-access/datafeeder/src/openapi/api/fileUpload.api.service.ts +0 -734
  298. package/src/libs/data-access/datafeeder/src/openapi/api.module.ts +0 -46
  299. package/src/libs/data-access/datafeeder/src/openapi/configuration.ts +0 -125
  300. package/src/libs/data-access/datafeeder/src/openapi/encoder.ts +0 -20
  301. package/src/libs/data-access/datafeeder/src/openapi/index.ts +0 -5
  302. package/src/libs/data-access/datafeeder/src/openapi/model/analysisStatusEnum.api.model.ts +0 -24
  303. package/src/libs/data-access/datafeeder/src/openapi/model/boundingBox.api.model.ts +0 -20
  304. package/src/libs/data-access/datafeeder/src/openapi/model/cRS.api.model.ts +0 -25
  305. package/src/libs/data-access/datafeeder/src/openapi/model/datasetMetadata.api.model.ts +0 -45
  306. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishRequest.api.model.ts +0 -39
  307. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishingStatus.api.model.ts +0 -50
  308. package/src/libs/data-access/datafeeder/src/openapi/model/datasetUploadStatus.api.model.ts +0 -39
  309. package/src/libs/data-access/datafeeder/src/openapi/model/models.ts +0 -13
  310. package/src/libs/data-access/datafeeder/src/openapi/model/property.api.model.ts +0 -17
  311. package/src/libs/data-access/datafeeder/src/openapi/model/publishJobStatus.api.model.ts +0 -33
  312. package/src/libs/data-access/datafeeder/src/openapi/model/publishRequest.api.model.ts +0 -16
  313. package/src/libs/data-access/datafeeder/src/openapi/model/publishStatusEnum.api.model.ts +0 -20
  314. package/src/libs/data-access/datafeeder/src/openapi/model/publishStepEnum.api.model.ts +0 -42
  315. package/src/libs/data-access/datafeeder/src/openapi/model/uploadJobStatus.api.model.ts +0 -33
  316. package/src/libs/data-access/datafeeder/src/openapi/variables.ts +0 -9
  317. package/src/libs/data-access/datafeeder/src/spec.yaml +0 -537
  318. package/src/libs/ui/dataviz/src/lib/table/table.component.html +0 -40
  319. package/src/libs/ui/dataviz/src/lib/table/table.component.ts +0 -80
  320. package/src/libs/ui/dataviz/src/lib/table/table.fixtures.ts +0 -40
  321. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.css +0 -36
  322. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.html +0 -23
  323. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.ts +0 -81
  324. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.css +0 -3
  325. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.html +0 -13
  326. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.ts +0 -55
@@ -106,8 +106,8 @@ export class ImportRecordComponent {
106
106
  this.isRecordImportInProgress = true
107
107
 
108
108
  this.recordsRepository.duplicateExternalRecord(url).subscribe({
109
- next: (recordTempId) => {
110
- if (recordTempId) {
109
+ next: (uuid) => {
110
+ if (uuid) {
111
111
  this.notificationsService.showNotification(
112
112
  {
113
113
  type: 'success',
@@ -122,7 +122,7 @@ export class ImportRecordComponent {
122
122
  )
123
123
 
124
124
  this.router
125
- .navigate(['/edit', recordTempId])
125
+ .navigate(['/edit', uuid])
126
126
  .catch((err) => console.error(err))
127
127
  }
128
128
  this.closeImportMenu.next()
@@ -79,6 +79,7 @@ export class FormFieldContactsForResourceComponent
79
79
  'owner',
80
80
  'point_of_contact',
81
81
  'author',
82
+ 'publisher',
82
83
  ]
83
84
 
84
85
  roleSectionsToDisplay: Role[] = []
@@ -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) => {
@@ -1,6 +1,6 @@
1
1
  import { Component } from '@angular/core'
2
2
  import { WizardService } from '../../services/wizard.service'
3
- import { TranslateService } from '@ngx-translate/core'
3
+ import { DateService } from '../../../../../../../libs/util/shared/src'
4
4
 
5
5
  @Component({
6
6
  selector: 'gn-ui-wizard-summarize',
@@ -28,9 +28,8 @@ export class WizardSummarizeComponent {
28
28
 
29
29
  get createdDate() {
30
30
  const time = this.wizardService.getWizardFieldData('datepicker')
31
- const locale = this.translateService.currentLang
32
31
 
33
- return new Date(Number(time)).toLocaleDateString(locale, {
32
+ return this.dateService.formatDate(new Date(Number(time)), {
34
33
  year: 'numeric',
35
34
  month: 'long',
36
35
  day: 'numeric',
@@ -54,6 +53,6 @@ export class WizardSummarizeComponent {
54
53
 
55
54
  constructor(
56
55
  private wizardService: WizardService,
57
- private translateService: TranslateService
56
+ private dateService: DateService
58
57
  ) {}
59
58
  }
@@ -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-[420px]">
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
  }
@@ -4,7 +4,10 @@ import { StoreModule } from '@ngrx/store'
4
4
  import { EffectsModule } from '@ngrx/effects'
5
5
  import { UiLayoutModule } from '../../../../../libs/ui/layout/src'
6
6
  import { FeatureMapModule } from '../../../../../libs/feature/map/src'
7
- import { UiInputsModule } from '../../../../../libs/ui/inputs/src'
7
+ import {
8
+ DropdownSelectorComponent,
9
+ UiInputsModule,
10
+ } from '../../../../../libs/ui/inputs/src'
8
11
  import { UiElementsModule } from '../../../../../libs/ui/elements/src'
9
12
  import { MdViewFacade } from './state'
10
13
  import { MdViewEffects } from './state/mdview.effects'
@@ -16,9 +19,8 @@ import { MatTabsModule } from '@angular/material/tabs'
16
19
  import { UiWidgetsModule } from '../../../../../libs/ui/widgets/src'
17
20
  import { TranslateModule } from '@ngx-translate/core'
18
21
  import { FeatureCatalogModule } from '../../../../../libs/feature/catalog/src'
19
- import { TableComponent } from '../../../../../libs/ui/dataviz/src'
22
+ import { DataTableComponent } from '../../../../../libs/ui/dataviz/src'
20
23
  import { NgIconsModule, provideNgIconsConfig } from '@ng-icons/core'
21
- import { DropdownSelectorComponent } from '../../../../../libs/ui/inputs/src'
22
24
 
23
25
  @NgModule({
24
26
  imports: [
@@ -33,7 +35,7 @@ import { DropdownSelectorComponent } from '../../../../../libs/ui/inputs/src'
33
35
  MatTabsModule,
34
36
  UiWidgetsModule,
35
37
  TranslateModule,
36
- TableComponent,
38
+ DataTableComponent,
37
39
  NgIconsModule,
38
40
  DropdownSelectorComponent,
39
41
  ],
@@ -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(