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
@@ -9,7 +9,7 @@ import {
9
9
  DatasetRecord,
10
10
  Keyword,
11
11
  } from '../../../../../../libs/common/domain/src/lib/model/record'
12
- import { getTemporalRangeUnion } from '../../../../../../libs/util/shared/src'
12
+ import { DateService, getTemporalRangeUnion } from '../../../../../../libs/util/shared/src'
13
13
  import { MarkdownParserComponent } from '../markdown-parser/markdown-parser.component'
14
14
  import {
15
15
  ExpandablePanelComponent,
@@ -60,6 +60,8 @@ export class MetadataInfoComponent {
60
60
  @Output() keyword = new EventEmitter<Keyword>()
61
61
  updatedTimes: number
62
62
 
63
+ constructor(private dateService: DateService) {}
64
+
63
65
  get hasUsage() {
64
66
  return (
65
67
  this.metadata.extras?.isOpenData === true ||
@@ -121,7 +123,7 @@ export class MetadataInfoComponent {
121
123
 
122
124
  get temporalExtent(): { start: string; end: string } {
123
125
  const temporalExtents = this.metadata.temporalExtents
124
- return getTemporalRangeUnion(temporalExtents)
126
+ return getTemporalRangeUnion(temporalExtents, this.dateService)
125
127
  }
126
128
 
127
129
  get shownOrganization() {
@@ -139,4 +141,12 @@ export class MetadataInfoComponent {
139
141
  onKeywordClick(keyword: Keyword) {
140
142
  this.keyword.emit(keyword)
141
143
  }
144
+
145
+ formatDate(date: Date): string {
146
+ return this.dateService.formatDate(date)
147
+ }
148
+
149
+ formatDateTime(date: Date): string {
150
+ return this.dateService.formatDateTime(date)
151
+ }
142
152
  }
@@ -161,6 +161,8 @@ export class RecordApiFormComponent {
161
161
  maxFeatures: limit !== '-1' ? Number(limit) : undefined,
162
162
  limit: limit !== '-1' ? Number(limit) : -1,
163
163
  offset: offset !== '' ? Number(offset) : undefined,
164
+ outputCrs:
165
+ format === ('application/json' || 'geojson') ? 'EPSG:4326' : undefined,
164
166
  }
165
167
 
166
168
  if (this.endpoint instanceof WfsEndpoint) {
@@ -19,6 +19,7 @@ import { MarkdownParserComponent } from './markdown-parser/markdown-parser.compo
19
19
  import { ThumbnailComponent } from './thumbnail/thumbnail.component'
20
20
  import { TimeSincePipe } from './user-feedback-item/time-since.pipe'
21
21
  import { UserPreviewComponent } from './user-preview/user-preview.component'
22
+ import { ApplicationBannerComponent } from './application-banner/application-banner.component'
22
23
 
23
24
  @NgModule({
24
25
  imports: [
@@ -40,6 +41,7 @@ import { UserPreviewComponent } from './user-preview/user-preview.component'
40
41
  MaxLinesComponent,
41
42
  TextInputComponent,
42
43
  ImageInputComponent,
44
+ ApplicationBannerComponent,
43
45
  ],
44
46
  providers: [
45
47
  provideNgIconsConfig({
@@ -53,6 +55,7 @@ import { UserPreviewComponent } from './user-preview/user-preview.component'
53
55
  UserPreviewComponent,
54
56
  MarkdownParserComponent,
55
57
  ImageInputComponent,
58
+ ApplicationBannerComponent,
56
59
  ],
57
60
  })
58
61
  export class UiElementsModule {}
@@ -3,7 +3,6 @@ export * from './lib/badge/badge.component'
3
3
  export * from './lib/button/button.component'
4
4
  export * from './lib/check-toggle/check-toggle.component'
5
5
  export * from './lib/checkbox/checkbox.component'
6
- export * from './lib/chips-input/chips-input.component'
7
6
  export * from './lib/copy-text-button/copy-text-button.component'
8
7
  export * from './lib/date-picker/date-picker.component'
9
8
  export * from './lib/date-range-dropdown/date-range-dropdown.component'
@@ -83,6 +83,7 @@ export class AutocompleteComponent
83
83
  @Input() minCharacterCount? = 3
84
84
  // this will show a submit button next to the input; if false, a search icon will appear on the left
85
85
  @Input() allowSubmit = false
86
+ @Input() forceTrackPosition = false
86
87
  @Output() itemSelected = new EventEmitter<AutocompleteItem>()
87
88
  @Output() inputSubmitted = new EventEmitter<string>()
88
89
  @Output() inputCleared = new EventEmitter<void>()
@@ -98,6 +99,8 @@ export class AutocompleteComponent
98
99
  error: string | null = null
99
100
  suggestions$: Observable<AutocompleteItem[]>
100
101
  subscription = new Subscription()
102
+ private lastPosition: DOMRect | null = null
103
+ private intervalIdPosition: number | undefined
101
104
 
102
105
  @Input() displayWithFn: (item: AutocompleteItem) => string = (item) =>
103
106
  item.toString()
@@ -147,6 +150,12 @@ export class AutocompleteComponent
147
150
  this.error = null
148
151
  }),
149
152
  switchMap((value) => this.action(value)),
153
+ tap((suggestions) => {
154
+ // forcing the panel to open if there are suggestions
155
+ if (suggestions.length > 0) {
156
+ this.triggerRef?.openPanel()
157
+ }
158
+ }),
150
159
  catchError((error: Error) => {
151
160
  this.error = error.message
152
161
  return of([])
@@ -191,10 +200,49 @@ export class AutocompleteComponent
191
200
  this.inputRef.nativeElement.focus()
192
201
  this.cdRef.detectChanges()
193
202
  }
203
+
204
+ this.startTrackingPosition()
205
+ }
206
+
207
+ /**
208
+ * !!! This function is used only for web component mode,
209
+ * the autocomplete dropdown may not update its position
210
+ * if the page or container is disabling wind scroll.
211
+ */
212
+ private trackPosition = () => {
213
+ const dropdownOpened = this.triggerRef && this.triggerRef.panelOpen
214
+ const rect = this.inputRef.nativeElement.getBoundingClientRect()
215
+
216
+ if (
217
+ dropdownOpened &&
218
+ (!this.lastPosition ||
219
+ rect.top !== this.lastPosition.top ||
220
+ rect.left !== this.lastPosition.left)
221
+ ) {
222
+ this.triggerRef.updatePosition()
223
+ }
224
+
225
+ this.lastPosition = rect
226
+ requestAnimationFrame(this.trackPosition)
227
+ }
228
+
229
+ /**
230
+ * !!! This function is used only for web component mode,
231
+ * the autocomplete dropdown may not update its position
232
+ * if the page or container is disabling wind scroll.
233
+ */
234
+ startTrackingPosition() {
235
+ if (this.forceTrackPosition) {
236
+ requestAnimationFrame(this.trackPosition)
237
+ }
194
238
  }
195
239
 
196
240
  ngOnDestroy(): void {
197
241
  this.subscription?.unsubscribe()
242
+
243
+ if (this.intervalIdPosition) {
244
+ clearInterval(this.intervalIdPosition)
245
+ }
198
246
  }
199
247
 
200
248
  updateInputValue(value: AutocompleteItem) {
@@ -28,7 +28,6 @@ import { BadgeComponent } from './badge/badge.component'
28
28
  import { ButtonComponent } from './button/button.component'
29
29
  import { CheckToggleComponent } from './check-toggle/check-toggle.component'
30
30
  import { CheckboxComponent } from './checkbox/checkbox.component'
31
- import { ChipsInputComponent } from './chips-input/chips-input.component'
32
31
  import { DateRangePickerComponent } from './date-range-picker/date-range-picker.component'
33
32
  import { DragAndDropFileInputComponent } from './drag-and-drop-file-input/drag-and-drop-file-input.component'
34
33
  import { DropdownMultiselectComponent } from './dropdown-multiselect/dropdown-multiselect.component'
@@ -40,7 +39,6 @@ import { ViewportIntersectorComponent } from './viewport-intersector/viewport-in
40
39
  @NgModule({
41
40
  declarations: [
42
41
  DragAndDropFileInputComponent,
43
- ChipsInputComponent,
44
42
  DropdownMultiselectComponent,
45
43
  ViewportIntersectorComponent,
46
44
  CheckboxComponent,
@@ -86,7 +84,6 @@ import { ViewportIntersectorComponent } from './viewport-intersector/viewport-in
86
84
  ButtonComponent,
87
85
  DragAndDropFileInputComponent,
88
86
  TextAreaComponent,
89
- ChipsInputComponent,
90
87
  DropdownMultiselectComponent,
91
88
  ViewportIntersectorComponent,
92
89
  CheckToggleComponent,
@@ -31,7 +31,7 @@ import { iconoirArrowUp, iconoirLink } from '@ng-icons/iconoir'
31
31
  ],
32
32
  changeDetection: ChangeDetectionStrategy.OnPush,
33
33
  })
34
- export class UrlInputComponent implements OnChanges {
34
+ export class UrlInputComponent {
35
35
  @Input() set value(v: string) {
36
36
  // we're making sure to only update the input if the URL representation of it has changed; otherwise we keep it identical
37
37
  // to avoid glitches when starting to write a URL and having some characters added/replaced automatically
@@ -59,12 +59,6 @@ export class UrlInputComponent implements OnChanges {
59
59
 
60
60
  constructor(private cd: ChangeDetectorRef) {}
61
61
 
62
- ngOnChanges(changes: SimpleChanges) {
63
- if (changes['value']) {
64
- this.inputValue = changes['value'].currentValue
65
- }
66
- }
67
-
68
62
  handleInput(event: Event) {
69
63
  const value = (event.target as HTMLInputElement).value
70
64
  this.inputValue = value
@@ -6,6 +6,7 @@
6
6
  >
7
7
  <ul class="flex flex-col gap-2 w-full">
8
8
  <gn-ui-button
9
+ *ngIf="!isDraftPage"
9
10
  type="light"
10
11
  extraClass="flex flex-row items-center gap-2 w-full justify-start"
11
12
  (buttonClick)="duplicate.emit()"
@@ -23,7 +24,10 @@
23
24
  (buttonClick)="displayDeleteMenu()"
24
25
  [disabled]="!canDelete"
25
26
  data-test="record-menu-delete-button"
26
- ><span translate>record.action.delete</span></gn-ui-button
27
+ ><span *ngIf="!isDraftPage" translate>record.action.delete</span>
28
+ <span *ngIf="isDraftPage" translate
29
+ >record.action.rollback</span
30
+ ></gn-ui-button
27
31
  >
28
32
  </ul>
29
33
  </div>
@@ -60,4 +64,36 @@
60
64
  </div>
61
65
  </div>
62
66
  </ng-container>
67
+ <ng-container *ngSwitchCase="'rollbackMenu'">
68
+ <div
69
+ data-test="rollbackMenuSection"
70
+ class="w-80 p-6 flex flex-col gap-3 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl"
71
+ >
72
+ <span class="text-lg font-bold text-center">{{
73
+ 'editor.record.undo.confirmation.title' | translate
74
+ }}</span>
75
+ <span class="text-center">{{
76
+ 'editor.record.undo.confirmation.message' | translate
77
+ }}</span>
78
+ <div class="flex flex-row gap-8 justify-center">
79
+ <gn-ui-button
80
+ (buttonClick)="rollback.emit()"
81
+ cdkFocusInitial
82
+ type="primary"
83
+ data-cy="confirm-button"
84
+ [style.--gn-ui-button-width]="'120px'"
85
+ >{{
86
+ 'editor.record.undo.confirmation.confirmText' | translate
87
+ }}</gn-ui-button
88
+ >
89
+ <gn-ui-button
90
+ [style.--gn-ui-button-width]="'120px'"
91
+ (buttonClick)="closeActionMenu.emit()"
92
+ >{{
93
+ 'editor.record.undo.confirmation.cancelText' | translate
94
+ }}</gn-ui-button
95
+ >
96
+ </div>
97
+ </div>
98
+ </ng-container>
63
99
  </ng-container>
@@ -13,7 +13,7 @@ import { ConfirmationDialogComponent } from '../../../../../../../libs/ui/elemen
13
13
  import { ButtonComponent } from '../../../../../../../libs/ui/inputs/src'
14
14
  import { TranslateModule } from '@ngx-translate/core'
15
15
 
16
- type ActionMenuPage = 'mainMenu' | 'deleteMenu'
16
+ type ActionMenuPage = 'mainMenu' | 'deleteMenu' | 'rollbackMenu'
17
17
 
18
18
  @Component({
19
19
  selector: 'gn-ui-action-menu',
@@ -32,9 +32,11 @@ type ActionMenuPage = 'mainMenu' | 'deleteMenu'
32
32
  export class ActionMenuComponent {
33
33
  @Input() canDuplicate: boolean
34
34
  @Input() canDelete: boolean
35
+ @Input() isDraftPage: boolean
35
36
  @Output() duplicate = new EventEmitter<void>()
36
37
  @Output() delete = new EventEmitter<void>()
37
38
  @Output() closeActionMenu = new EventEmitter<void>()
39
+ @Output() rollback = new EventEmitter<void>()
38
40
 
39
41
  @ViewChild(MatMenuTrigger) trigger: MatMenuTrigger
40
42
 
@@ -55,7 +57,11 @@ export class ActionMenuComponent {
55
57
  }
56
58
 
57
59
  displayDeleteMenu() {
58
- this.sectionDisplayed = 'deleteMenu'
60
+ if (this.isDraftPage) {
61
+ this.sectionDisplayed = 'rollbackMenu'
62
+ } else {
63
+ this.sectionDisplayed = 'deleteMenu'
64
+ }
59
65
  this.cdr.markForCheck()
60
66
  }
61
67
  }
@@ -162,9 +162,11 @@
162
162
  <gn-ui-action-menu
163
163
  [canDuplicate]="canDuplicate(item) && !isDuplicating"
164
164
  [canDelete]="canDelete(item)"
165
+ [isDraftPage]="isDraftPage"
165
166
  (duplicate)="handleDuplicate(item)"
166
167
  (delete)="handleDelete(item)"
167
168
  (closeActionMenu)="closeActionMenu()"
169
+ (rollback)="handleRollback(item)"
168
170
  >
169
171
  </gn-ui-action-menu>
170
172
  </ng-template>
@@ -21,6 +21,7 @@ import {
21
21
  InteractiveTableComponent,
22
22
  } from '../../../../../../libs/ui/layout/src'
23
23
  import {
24
+ DateService,
24
25
  FileFormat,
25
26
  formatUserInfo,
26
27
  getBadgeColor,
@@ -73,6 +74,7 @@ export class ResultsTableComponent {
73
74
  @Output() recordClick = new EventEmitter<CatalogRecord>()
74
75
  @Output() duplicateRecord = new EventEmitter<CatalogRecord>()
75
76
  @Output() deleteRecord = new EventEmitter<CatalogRecord>()
77
+ @Output() rollbackDraft = new EventEmitter<CatalogRecord>()
76
78
  @Output() recordsSelectedChange = new EventEmitter<
77
79
  [CatalogRecord[], boolean]
78
80
  >()
@@ -86,7 +88,8 @@ export class ResultsTableComponent {
86
88
  constructor(
87
89
  private overlay: Overlay,
88
90
  private viewContainerRef: ViewContainerRef,
89
- private cdr: ChangeDetectorRef
91
+ private cdr: ChangeDetectorRef,
92
+ private dateService: DateService
90
93
  ) {}
91
94
 
92
95
  openActionMenu(item, template) {
@@ -139,7 +142,7 @@ export class ResultsTableComponent {
139
142
  }
140
143
 
141
144
  dateToString(date: Date): string {
142
- return date?.toLocaleDateString(undefined, {
145
+ return this.dateService.formatDate(date, {
143
146
  year: 'numeric',
144
147
  month: 'long',
145
148
  day: 'numeric',
@@ -184,6 +187,11 @@ export class ResultsTableComponent {
184
187
  this.closeActionMenu()
185
188
  }
186
189
 
190
+ handleRollback(item: unknown) {
191
+ this.rollbackDraft.emit(item as CatalogRecord)
192
+ this.closeActionMenu()
193
+ }
194
+
187
195
  setSortBy(col: string, order: 'asc' | 'desc') {
188
196
  this.sortByChange.emit([col, order])
189
197
  }
@@ -5,4 +5,3 @@ export * from './lib/loading-mask/loading-mask.component'
5
5
  export * from './lib/color-scale/color-scale.component'
6
6
  export * from './lib/popup-alert/popup-alert.component'
7
7
  export * from './lib/spinning-loader/spinning-loader.component'
8
- export * from './lib/step-bar/step-bar.component'
@@ -3,14 +3,13 @@ import { UtilSharedModule } from '../../../../../libs/util/shared/src'
3
3
  import { TranslateModule } from '@ngx-translate/core'
4
4
  import { NgxDropzoneModule } from 'ngx-dropzone'
5
5
  import { ColorScaleComponent } from './color-scale/color-scale.component'
6
- import { StepBarComponent } from './step-bar/step-bar.component'
7
6
  import { TagInputModule } from 'ngx-chips'
8
7
  import { FormsModule, ReactiveFormsModule } from '@angular/forms'
9
8
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'
10
9
  import { CommonModule } from '@angular/common'
11
10
 
12
11
  @NgModule({
13
- declarations: [ColorScaleComponent, StepBarComponent],
12
+ declarations: [ColorScaleComponent],
14
13
  imports: [
15
14
  CommonModule,
16
15
  TranslateModule.forChild(),
@@ -21,6 +20,6 @@ import { CommonModule } from '@angular/common'
21
20
  UtilSharedModule,
22
21
  MatProgressSpinnerModule,
23
22
  ],
24
- exports: [StepBarComponent],
23
+ exports: [],
25
24
  })
26
25
  export class UiWidgetsModule {}
@@ -5,6 +5,9 @@ export {
5
5
  DataItem,
6
6
  FetchError,
7
7
  FieldAggregation,
8
+ PropertyInfo,
8
9
  } from './lib/model'
9
10
  export { getJsonDataItemsProxy } from './lib/utils'
10
11
  export { BaseReader } from './lib/readers/base'
12
+ export { BaseFileReader } from './lib/readers/base-file'
13
+ export { GeojsonReader } from './lib/readers/geojson'
@@ -17,10 +17,17 @@ export async function openDataset(
17
17
  namespace?: string
18
18
  wfsVersion?: WfsVersion
19
19
  wfsFeatureType?: string
20
- }
20
+ },
21
+ cacheActive?: boolean
21
22
  ): Promise<BaseReader> {
22
23
  const fileType = await inferDatasetType(url, typeHint)
23
- let reader: BaseReader
24
+ let reader:
25
+ | CsvReader
26
+ | JsonReader
27
+ | GeojsonReader
28
+ | ExcelReader
29
+ | GmlReader
30
+ | WfsReader
24
31
  try {
25
32
  switch (fileType) {
26
33
  case 'csv':
@@ -42,6 +49,7 @@ export async function openDataset(
42
49
  reader = await WfsReader.createReader(url, options.wfsFeatureType)
43
50
  break
44
51
  }
52
+ reader.setCacheActive(cacheActive)
45
53
  reader.load()
46
54
  return reader
47
55
  } catch (e: any) {
@@ -61,9 +69,10 @@ export async function openDataset(
61
69
  export async function readDataset(
62
70
  url: string,
63
71
  typeHint?: SupportedType,
64
- options?: any
72
+ options?: any,
73
+ cacheActive = true
65
74
  ): Promise<DataItem[]> {
66
- const reader = await openDataset(url, typeHint, options)
75
+ const reader = await openDataset(url, typeHint, options, cacheActive)
67
76
  try {
68
77
  return await reader.read()
69
78
  } catch (e: any) {
@@ -13,8 +13,12 @@ export class FetchError {
13
13
  ) {
14
14
  this.message = `An error happened in the data fetcher, type: ${type}, info: ${info}`
15
15
  }
16
- static http(code: number) {
17
- return new FetchError('http', '', code)
16
+ static http(code: number, body?: string) {
17
+ const info = body
18
+ ? `Error ${code}
19
+ ${body}`
20
+ : `${code}`
21
+ return new FetchError('http', info, code)
18
22
  }
19
23
  static corsOrNetwork(message: string) {
20
24
  return new FetchError('network', message, 0)
@@ -0,0 +1,14 @@
1
+ import { BaseReader } from './base'
2
+
3
+ export abstract class BaseCacheReader extends BaseReader {
4
+ constructor(
5
+ protected url: string,
6
+ protected cacheActive = true
7
+ ) {
8
+ super(url)
9
+ }
10
+
11
+ setCacheActive(value: boolean) {
12
+ this.cacheActive = value
13
+ }
14
+ }
@@ -2,13 +2,14 @@ import { BaseReader } from './base'
2
2
  import { DataItem, DatasetInfo, PropertyInfo } from '../model'
3
3
  import { getJsonDataItemsProxy, jsonToGeojsonFeature } from '../utils'
4
4
  import { generateSqlQuery } from '../sql-utils'
5
+ import { BaseCacheReader } from './base-cache'
5
6
 
6
7
  type ParseResult = {
7
8
  items: DataItem[]
8
9
  properties: PropertyInfo[]
9
10
  }
10
11
 
11
- export class BaseFileReader extends BaseReader {
12
+ export class BaseFileReader extends BaseCacheReader {
12
13
  private parseResult_: Promise<ParseResult>
13
14
 
14
15
  protected getData(): Promise<ParseResult> {
@@ -11,8 +11,8 @@ import {
11
11
 
12
12
  export class BaseReader {
13
13
  protected selected: FieldName[] = null
14
- protected groupedBy: FieldGroupBy[] = null
15
- protected aggregations: FieldAggregation[] = null
14
+ public groupedBy: FieldGroupBy[] = null
15
+ public aggregations: FieldAggregation[] = null
16
16
  protected filter: FieldFilter = null
17
17
  protected sort: FieldSort[] = null
18
18
  protected startIndex: number = null
@@ -47,6 +47,6 @@ export function parseCsv(text: string): {
47
47
 
48
48
  export class CsvReader extends BaseFileReader {
49
49
  getData() {
50
- return fetchDataAsText(this.url).then(parseCsv)
50
+ return fetchDataAsText(this.url, this.cacheActive).then(parseCsv)
51
51
  }
52
52
  }
@@ -28,6 +28,6 @@ export function parseExcel(buffer: ArrayBuffer): Promise<{
28
28
 
29
29
  export class ExcelReader extends BaseFileReader {
30
30
  getData() {
31
- return fetchDataAsArrayBuffer(this.url).then(parseExcel)
31
+ return fetchDataAsArrayBuffer(this.url, this.cacheActive).then(parseExcel)
32
32
  }
33
33
  }
@@ -24,6 +24,6 @@ export function parseGeojson(text: string): {
24
24
 
25
25
  export class GeojsonReader extends BaseFileReader {
26
26
  getData() {
27
- return fetchDataAsText(this.url).then(parseGeojson)
27
+ return fetchDataAsText(this.url, this.cacheActive).then(parseGeojson)
28
28
  }
29
29
  }
@@ -37,17 +37,17 @@ export function parseGml(
37
37
  }
38
38
 
39
39
  export class GmlReader extends BaseFileReader {
40
- namespace: string
41
- version: WfsVersion
42
-
43
- constructor(url, namespace, version) {
40
+ constructor(
41
+ protected url: string,
42
+ protected namespace: string,
43
+ protected version: WfsVersion,
44
+ protected cacheActive = true
45
+ ) {
44
46
  super(url)
45
- this.namespace = namespace
46
- this.version = version
47
47
  }
48
48
 
49
49
  protected getData() {
50
- return fetchDataAsText(this.url).then((text) =>
50
+ return fetchDataAsText(this.url, this.cacheActive).then((text) =>
51
51
  parseGml(text, this.namespace, this.version)
52
52
  )
53
53
  }
@@ -23,6 +23,6 @@ export function parseJson(text: string): {
23
23
 
24
24
  export class JsonReader extends BaseFileReader {
25
25
  getData() {
26
- return fetchDataAsText(this.url).then(parseJson)
26
+ return fetchDataAsText(this.url, this.cacheActive).then(parseJson)
27
27
  }
28
28
  }