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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +11 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
  3. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +20 -17
  4. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +25 -9
  5. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  6. package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
  7. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +7 -4
  8. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +8 -8
  9. package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +7 -4
  10. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  11. package/esm2022/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.mjs +3 -3
  12. package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +2 -2
  13. package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +5 -5
  14. package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +5 -3
  15. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +2 -2
  16. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +9 -11
  17. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +2 -2
  18. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +2 -2
  19. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +2 -2
  20. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -1
  21. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +7 -23
  22. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +2 -2
  23. package/esm2022/libs/feature/editor/src/lib/models/wizard-field.type.mjs +3 -4
  24. package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +1 -1
  25. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +25 -5
  26. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +10 -7
  27. package/esm2022/libs/feature/record/src/lib/state/mdview.actions.mjs +4 -1
  28. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +7 -2
  29. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +9 -1
  30. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +19 -1
  31. package/esm2022/libs/feature/record/src/lib/state/mdview.selectors.mjs +6 -1
  32. package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +15 -3
  33. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +1 -1
  34. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +3 -3
  35. package/esm2022/libs/ui/elements/src/index.mjs +2 -1
  36. package/esm2022/libs/ui/elements/src/lib/application-banner/application-banner.component.mjs +78 -0
  37. package/esm2022/libs/ui/elements/src/lib/image-input/image-input.component.mjs +32 -31
  38. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +3 -3
  39. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +23 -3
  40. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +10 -4
  41. package/esm2022/libs/ui/inputs/src/index.mjs +1 -2
  42. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +94 -8
  43. package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +2 -2
  44. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +1 -6
  45. package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +6 -4
  46. package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +3 -3
  47. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +14 -4
  48. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +10 -3
  49. package/esm2022/libs/ui/widgets/src/index.mjs +1 -2
  50. package/esm2022/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.mjs +10 -3
  51. package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +5 -6
  52. package/esm2022/libs/util/data-fetcher/src/lib/data-fetcher.mjs +5 -4
  53. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-cache.mjs +12 -0
  54. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-file.mjs +3 -3
  55. package/esm2022/libs/util/data-fetcher/src/lib/readers/base.mjs +1 -1
  56. package/esm2022/libs/util/data-fetcher/src/lib/readers/csv.mjs +2 -2
  57. package/esm2022/libs/util/data-fetcher/src/lib/readers/excel.mjs +2 -2
  58. package/esm2022/libs/util/data-fetcher/src/lib/readers/geojson.mjs +2 -2
  59. package/esm2022/libs/util/data-fetcher/src/lib/readers/gml.mjs +5 -3
  60. package/esm2022/libs/util/data-fetcher/src/lib/readers/json.mjs +2 -2
  61. package/esm2022/libs/util/data-fetcher/src/lib/readers/wfs.mjs +19 -11
  62. package/esm2022/libs/util/data-fetcher/src/lib/utils.mjs +13 -9
  63. package/esm2022/translations/de.json +5 -77
  64. package/esm2022/translations/en.json +5 -77
  65. package/esm2022/translations/es.json +3 -75
  66. package/esm2022/translations/fr.json +17 -89
  67. package/esm2022/translations/it.json +22 -93
  68. package/esm2022/translations/nl.json +3 -75
  69. package/esm2022/translations/pt.json +3 -75
  70. package/fesm2022/geonetwork-ui.mjs +631 -933
  71. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  72. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  73. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +3 -0
  74. package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
  75. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -0
  76. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  77. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +2 -1
  78. package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
  79. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +6 -0
  80. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  81. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +2 -1
  82. package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
  83. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +2 -1
  84. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  85. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +2 -2
  86. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  87. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +2 -1
  88. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  89. package/libs/feature/editor/src/index.d.ts +1 -0
  90. package/libs/feature/editor/src/index.d.ts.map +1 -1
  91. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +1 -0
  92. package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
  93. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts +1 -0
  94. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts.map +1 -1
  95. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -1
  96. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
  97. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  98. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts +1 -3
  99. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts.map +1 -1
  100. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts +2 -3
  101. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts.map +1 -1
  102. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +5 -1
  103. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  104. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +3 -2
  105. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  106. package/libs/feature/record/src/lib/state/mdview.actions.d.ts +16 -1
  107. package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
  108. package/libs/feature/record/src/lib/state/mdview.effects.d.ts +5 -0
  109. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  110. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +2 -0
  111. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  112. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +4 -1
  113. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
  114. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +2 -0
  115. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
  116. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +5 -1
  117. package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
  118. package/libs/ui/elements/src/index.d.ts +1 -0
  119. package/libs/ui/elements/src/index.d.ts.map +1 -1
  120. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts +16 -0
  121. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts.map +1 -0
  122. package/libs/ui/elements/src/lib/image-input/image-input.component.d.ts +5 -6
  123. package/libs/ui/elements/src/lib/image-input/image-input.component.d.ts.map +1 -1
  124. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  125. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
  126. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  127. package/libs/ui/inputs/src/index.d.ts +0 -1
  128. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  129. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +23 -1
  130. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  131. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +27 -28
  132. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  133. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +2 -1
  134. package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -1
  135. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +4 -2
  136. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
  137. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +3 -1
  138. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  139. package/libs/ui/widgets/src/index.d.ts +0 -1
  140. package/libs/ui/widgets/src/index.d.ts.map +1 -1
  141. package/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.d.ts +1 -1
  142. package/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.d.ts.map +1 -1
  143. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +8 -9
  144. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +1 -1
  145. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts +2 -2
  146. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts.map +1 -1
  147. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts +8 -0
  148. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts.map +1 -0
  149. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts +2 -2
  150. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts.map +1 -1
  151. package/libs/util/data-fetcher/src/lib/readers/base.d.ts +2 -2
  152. package/libs/util/data-fetcher/src/lib/readers/base.d.ts.map +1 -1
  153. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts +5 -3
  154. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts.map +1 -1
  155. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts +7 -4
  156. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts.map +1 -1
  157. package/libs/util/data-fetcher/src/lib/utils.d.ts +2 -2
  158. package/libs/util/data-fetcher/src/lib/utils.d.ts.map +1 -1
  159. package/package.json +1 -1
  160. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +25 -0
  161. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +4 -0
  162. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +22 -16
  163. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +44 -13
  164. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +3 -1
  165. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +4 -1
  166. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +165 -0
  167. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +4 -1
  168. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +22 -9
  169. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +2 -1
  170. package/src/libs/feature/editor/src/index.ts +1 -0
  171. package/src/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.html +1 -1
  172. package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +3 -3
  173. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html +1 -0
  174. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +2 -0
  175. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +1 -0
  176. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +10 -10
  177. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +1 -1
  178. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
  179. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +0 -13
  180. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.ts +0 -20
  181. package/src/libs/feature/editor/src/lib/fields.config.ts +1 -1
  182. package/src/libs/feature/editor/src/lib/models/wizard-field.type.ts +0 -1
  183. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +24 -11
  184. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +26 -4
  185. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +71 -60
  186. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +6 -3
  187. package/src/libs/feature/record/src/lib/state/mdview.actions.ts +16 -0
  188. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +21 -2
  189. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +15 -0
  190. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +30 -1
  191. package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +12 -0
  192. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +3 -0
  193. package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +7 -0
  194. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.html +3 -1
  195. package/src/libs/ui/elements/src/index.ts +1 -0
  196. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.css +0 -0
  197. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.html +25 -0
  198. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.ts +70 -0
  199. package/src/libs/ui/elements/src/lib/image-input/image-input.component.html +20 -14
  200. package/src/libs/ui/elements/src/lib/image-input/image-input.component.ts +29 -32
  201. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +2 -2
  202. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +21 -9
  203. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +13 -0
  204. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +3 -0
  205. package/src/libs/ui/inputs/src/index.ts +0 -1
  206. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +36 -19
  207. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +91 -2
  208. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -3
  209. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +3 -2
  210. package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.html +1 -1
  211. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +37 -1
  212. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +8 -2
  213. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +2 -0
  214. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +6 -0
  215. package/src/libs/ui/widgets/src/index.ts +0 -1
  216. package/src/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.html +36 -11
  217. package/src/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.ts +9 -1
  218. package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +2 -3
  219. package/src/libs/util/data-fetcher/src/lib/data-fetcher.ts +13 -4
  220. package/src/libs/util/data-fetcher/src/lib/readers/base-cache.ts +14 -0
  221. package/src/libs/util/data-fetcher/src/lib/readers/base-file.ts +2 -1
  222. package/src/libs/util/data-fetcher/src/lib/readers/base.ts +2 -2
  223. package/src/libs/util/data-fetcher/src/lib/readers/csv.ts +1 -1
  224. package/src/libs/util/data-fetcher/src/lib/readers/excel.ts +1 -1
  225. package/src/libs/util/data-fetcher/src/lib/readers/geojson.ts +1 -1
  226. package/src/libs/util/data-fetcher/src/lib/readers/gml.ts +7 -7
  227. package/src/libs/util/data-fetcher/src/lib/readers/json.ts +1 -1
  228. package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +34 -11
  229. package/src/libs/util/data-fetcher/src/lib/utils.ts +38 -32
  230. package/translations/de.json +5 -77
  231. package/translations/en.json +5 -77
  232. package/translations/es.json +3 -75
  233. package/translations/fr.json +17 -89
  234. package/translations/it.json +22 -93
  235. package/translations/nl.json +3 -75
  236. package/translations/pt.json +3 -75
  237. package/translations/sk.json +3 -75
  238. package/esm2022/libs/ui/inputs/src/lib/chips-input/chips-input.component.mjs +0 -78
  239. package/esm2022/libs/ui/widgets/src/lib/step-bar/step-bar.component.mjs +0 -55
  240. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts +0 -33
  241. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts.map +0 -1
  242. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts +0 -21
  243. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts.map +0 -1
  244. package/src/libs/data-access/datafeeder/src/index.ts +0 -1
  245. package/src/libs/data-access/datafeeder/src/openapi/api/api.ts +0 -11
  246. package/src/libs/data-access/datafeeder/src/openapi/api/config.api.service.ts +0 -168
  247. package/src/libs/data-access/datafeeder/src/openapi/api/dataPublishing.api.service.ts +0 -270
  248. package/src/libs/data-access/datafeeder/src/openapi/api/fileUpload.api.service.ts +0 -734
  249. package/src/libs/data-access/datafeeder/src/openapi/api.module.ts +0 -46
  250. package/src/libs/data-access/datafeeder/src/openapi/configuration.ts +0 -125
  251. package/src/libs/data-access/datafeeder/src/openapi/encoder.ts +0 -20
  252. package/src/libs/data-access/datafeeder/src/openapi/index.ts +0 -5
  253. package/src/libs/data-access/datafeeder/src/openapi/model/analysisStatusEnum.api.model.ts +0 -24
  254. package/src/libs/data-access/datafeeder/src/openapi/model/boundingBox.api.model.ts +0 -20
  255. package/src/libs/data-access/datafeeder/src/openapi/model/cRS.api.model.ts +0 -25
  256. package/src/libs/data-access/datafeeder/src/openapi/model/datasetMetadata.api.model.ts +0 -45
  257. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishRequest.api.model.ts +0 -39
  258. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishingStatus.api.model.ts +0 -50
  259. package/src/libs/data-access/datafeeder/src/openapi/model/datasetUploadStatus.api.model.ts +0 -39
  260. package/src/libs/data-access/datafeeder/src/openapi/model/models.ts +0 -13
  261. package/src/libs/data-access/datafeeder/src/openapi/model/property.api.model.ts +0 -17
  262. package/src/libs/data-access/datafeeder/src/openapi/model/publishJobStatus.api.model.ts +0 -33
  263. package/src/libs/data-access/datafeeder/src/openapi/model/publishRequest.api.model.ts +0 -16
  264. package/src/libs/data-access/datafeeder/src/openapi/model/publishStatusEnum.api.model.ts +0 -20
  265. package/src/libs/data-access/datafeeder/src/openapi/model/publishStepEnum.api.model.ts +0 -42
  266. package/src/libs/data-access/datafeeder/src/openapi/model/uploadJobStatus.api.model.ts +0 -33
  267. package/src/libs/data-access/datafeeder/src/openapi/variables.ts +0 -9
  268. package/src/libs/data-access/datafeeder/src/spec.yaml +0 -537
  269. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.css +0 -36
  270. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.html +0 -23
  271. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.ts +0 -81
  272. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.css +0 -3
  273. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.html +0 -13
  274. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.ts +0 -55
@@ -41,7 +41,7 @@ import {
41
41
  provideIcons,
42
42
  provideNgIconsConfig,
43
43
  } from '@ng-icons/core'
44
- import { iconoirSearch } from '@ng-icons/iconoir'
44
+ import { iconoirLongArrowDownLeft, iconoirSearch } from '@ng-icons/iconoir'
45
45
  import { matClose } from '@ng-icons/material-icons/baseline'
46
46
 
47
47
  export type AutocompleteItem = unknown
@@ -65,9 +65,10 @@ export type AutocompleteItem = unknown
65
65
  provideIcons({
66
66
  iconoirSearch,
67
67
  matClose,
68
+ iconoirLongArrowDownLeft,
68
69
  }),
69
70
  provideNgIconsConfig({
70
- size: '1.5rem',
71
+ size: '1.75rem',
71
72
  }),
72
73
  ],
73
74
  })
@@ -75,6 +76,7 @@ export class AutocompleteComponent
75
76
  implements OnInit, AfterViewInit, OnDestroy, OnChanges
76
77
  {
77
78
  @Input() placeholder: string
79
+ @Input() enterButton = false
78
80
  @Input() action: (value: string) => Observable<AutocompleteItem[]>
79
81
  @Input() value?: AutocompleteItem
80
82
  @Input() clearOnSelection = false
@@ -83,9 +85,11 @@ export class AutocompleteComponent
83
85
  @Input() minCharacterCount? = 3
84
86
  // this will show a submit button next to the input; if false, a search icon will appear on the left
85
87
  @Input() allowSubmit = false
88
+ @Input() forceTrackPosition = false
86
89
  @Output() itemSelected = new EventEmitter<AutocompleteItem>()
87
90
  @Output() inputSubmitted = new EventEmitter<string>()
88
91
  @Output() inputCleared = new EventEmitter<void>()
92
+ @Output() isSearchActive = new EventEmitter<boolean>()
89
93
  @ViewChild(MatAutocompleteTrigger) triggerRef: MatAutocompleteTrigger
90
94
  @ViewChild(MatAutocomplete) autocomplete: MatAutocomplete
91
95
  @ViewChild('searchInput') inputRef: ElementRef<HTMLInputElement>
@@ -98,15 +102,38 @@ export class AutocompleteComponent
98
102
  error: string | null = null
99
103
  suggestions$: Observable<AutocompleteItem[]>
100
104
  subscription = new Subscription()
105
+ private lastPosition: DOMRect | null = null
106
+ private intervalIdPosition: number | undefined
107
+ enterBtnPosition = 0
108
+ searchActive = false
101
109
 
102
110
  @Input() displayWithFn: (item: AutocompleteItem) => string = (item) =>
103
111
  item.toString()
104
112
 
113
+ get displayEnterBtn() {
114
+ return this.enterButton && this.allowSubmit && !this.searchActive
115
+ }
116
+
105
117
  displayWithFnInternal = (item?: AutocompleteItem) => {
106
118
  if (item === null || item === undefined) return null
107
119
  return this.displayWithFn(item)
108
120
  }
109
121
 
122
+ getExtraClass(): string {
123
+ if (this.allowSubmit) {
124
+ if (this.enterButton) {
125
+ return 'border rounded-lg absolute w-8 h-8 right-[calc(var(--icon-width)+var(--icon-padding))] inset-y-[--icon-padding]'
126
+ } else {
127
+ return 'border rounded-lg absolute w-8 h-8 right-[calc(var(--icon-width)+0.25*var(--icon-width))] inset-y-[calc(0.25*var(--icon-width))]'
128
+ }
129
+ } else {
130
+ if (!this.enterButton) {
131
+ return 'border rounded-lg absolute w-8 h-8 right-2 inset-y-2'
132
+ }
133
+ }
134
+ return 'border rounded-lg absolute w-8 h-8'
135
+ }
136
+
110
137
  constructor(private cdRef: ChangeDetectorRef) {}
111
138
  ngOnChanges(changes: SimpleChanges): void {
112
139
  const { value } = changes
@@ -114,6 +141,13 @@ export class AutocompleteComponent
114
141
  const previousTextValue = this.displayWithFnInternal(value.previousValue)
115
142
  const currentTextValue = this.displayWithFnInternal(value.currentValue)
116
143
  if (previousTextValue !== currentTextValue) {
144
+ if (currentTextValue) {
145
+ this.searchActive = true
146
+ this.isSearchActive.emit(true)
147
+ } else {
148
+ this.searchActive = false
149
+ this.isSearchActive.emit(false)
150
+ }
117
151
  this.updateInputValue(value.currentValue)
118
152
  }
119
153
  }
@@ -147,6 +181,12 @@ export class AutocompleteComponent
147
181
  this.error = null
148
182
  }),
149
183
  switchMap((value) => this.action(value)),
184
+ tap((suggestions) => {
185
+ // forcing the panel to open if there are suggestions
186
+ if (suggestions.length > 0) {
187
+ this.triggerRef?.openPanel()
188
+ }
189
+ }),
150
190
  catchError((error: Error) => {
151
191
  this.error = error.message
152
192
  return of([])
@@ -191,10 +231,49 @@ export class AutocompleteComponent
191
231
  this.inputRef.nativeElement.focus()
192
232
  this.cdRef.detectChanges()
193
233
  }
234
+
235
+ this.startTrackingPosition()
236
+ }
237
+
238
+ /**
239
+ * !!! This function is used only for web component mode,
240
+ * the autocomplete dropdown may not update its position
241
+ * if the page or container is disabling wind scroll.
242
+ */
243
+ private trackPosition = () => {
244
+ const dropdownOpened = this.triggerRef && this.triggerRef.panelOpen
245
+ const rect = this.inputRef.nativeElement.getBoundingClientRect()
246
+
247
+ if (
248
+ dropdownOpened &&
249
+ (!this.lastPosition ||
250
+ rect.top !== this.lastPosition.top ||
251
+ rect.left !== this.lastPosition.left)
252
+ ) {
253
+ this.triggerRef.updatePosition()
254
+ }
255
+
256
+ this.lastPosition = rect
257
+ requestAnimationFrame(this.trackPosition)
258
+ }
259
+
260
+ /**
261
+ * !!! This function is used only for web component mode,
262
+ * the autocomplete dropdown may not update its position
263
+ * if the page or container is disabling wind scroll.
264
+ */
265
+ startTrackingPosition() {
266
+ if (this.forceTrackPosition) {
267
+ requestAnimationFrame(this.trackPosition)
268
+ }
194
269
  }
195
270
 
196
271
  ngOnDestroy(): void {
197
272
  this.subscription?.unsubscribe()
273
+
274
+ if (this.intervalIdPosition) {
275
+ clearInterval(this.intervalIdPosition)
276
+ }
198
277
  }
199
278
 
200
279
  updateInputValue(value: AutocompleteItem) {
@@ -208,6 +287,8 @@ export class AutocompleteComponent
208
287
 
209
288
  clear(): void {
210
289
  this.inputRef.nativeElement.value = ''
290
+ this.searchActive = false
291
+ this.isSearchActive.emit(false)
211
292
  this.inputCleared.emit()
212
293
  this.selectionSubject
213
294
  .pipe(take(1))
@@ -217,6 +298,8 @@ export class AutocompleteComponent
217
298
 
218
299
  handleEnter(any: string) {
219
300
  if (!this.cancelEnter && this.allowSubmit) {
301
+ this.isSearchActive.emit(true)
302
+ this.searchActive = true
220
303
  this.inputSubmitted.emit(any)
221
304
  }
222
305
  }
@@ -246,4 +329,10 @@ export class AutocompleteComponent
246
329
  this.control.setValue('')
247
330
  }
248
331
  }
332
+
333
+ handleInput(event: InputEvent) {
334
+ this.searchActive = false
335
+ this.isSearchActive.emit(false)
336
+ this.enterBtnPosition = event.target['value'].length * 8 + 80
337
+ }
249
338
  }
@@ -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,
@@ -48,6 +48,7 @@ export class UrlInputComponent implements OnChanges {
48
48
  @Input() placeholder = 'https://'
49
49
  @Input() disabled: boolean
50
50
  @Input() showValidateButton = true
51
+ @Input() resetUrlOnChange: number
51
52
 
52
53
  /**
53
54
  * This will emit null if the field is emptied
@@ -60,8 +61,8 @@ export class UrlInputComponent implements OnChanges {
60
61
  constructor(private cd: ChangeDetectorRef) {}
61
62
 
62
63
  ngOnChanges(changes: SimpleChanges) {
63
- if (changes['value']) {
64
- this.inputValue = changes['value'].currentValue
64
+ if (changes['resetUrlOnChange']) {
65
+ this.inputValue = ''
65
66
  }
66
67
  }
67
68
 
@@ -64,7 +64,7 @@
64
64
  class="col-start-2 row-start-4 sm:row-start-3 absolute right-[4em] sm:right-[5em]"
65
65
  >
66
66
  <gn-ui-metadata-quality
67
- smaller="true"
67
+ [smaller]="true"
68
68
  [metadata]="record"
69
69
  [metadataQualityDisplay]="metadataQualityDisplay"
70
70
  ></gn-ui-metadata-quality>
@@ -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>
@@ -74,6 +74,7 @@ export class ResultsTableComponent {
74
74
  @Output() recordClick = new EventEmitter<CatalogRecord>()
75
75
  @Output() duplicateRecord = new EventEmitter<CatalogRecord>()
76
76
  @Output() deleteRecord = new EventEmitter<CatalogRecord>()
77
+ @Output() rollbackDraft = new EventEmitter<CatalogRecord>()
77
78
  @Output() recordsSelectedChange = new EventEmitter<
78
79
  [CatalogRecord[], boolean]
79
80
  >()
@@ -186,6 +187,11 @@ export class ResultsTableComponent {
186
187
  this.closeActionMenu()
187
188
  }
188
189
 
190
+ handleRollback(item: unknown) {
191
+ this.rollbackDraft.emit(item as CatalogRecord)
192
+ this.closeActionMenu()
193
+ }
194
+
189
195
  setSortBy(col: string, order: 'asc' | 'desc') {
190
196
  this.sortByChange.emit([col, order])
191
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'
@@ -1,12 +1,37 @@
1
- <div class="flex h-full {{ color.outerBar }} rounded-t-lg rounded-b-lg">
2
- <div
3
- [style.width.%]="progress"
4
- class="flex {{
5
- color.innerBar
6
- }} my-1 mx-1 transition-width duration-500 ease-in-out rounded-t-md rounded-b-md shadow-xl"
7
- >
8
- <div class="flex items-center pl-2 py-1 {{ color.text }} font-bold text-4">
9
- {{ progress }}%
1
+ <ng-container [ngSwitch]="type">
2
+ <!-- Light Theme -->
3
+ <ng-container *ngSwitchCase="'light'">
4
+ <div class="flex items-center relative">
5
+ <div
6
+ class="flex-shrink-0 {{ color.text }} text-xs font-medium mr-2
7
+ text-opacity-100 !text-slate-800"
8
+ >
9
+ {{ progress }}%
10
+ </div>
11
+ <div class="flex-grow h-[6px] w-full {{ color.outerBar }} rounded-full">
12
+ <div
13
+ [style.width.%]="progress"
14
+ class="{{ color.innerBar }} transition-width duration-500
15
+ ease-in-out rounded-full shadow-sm h-full"
16
+ ></div>
17
+ </div>
10
18
  </div>
11
- </div>
12
- </div>
19
+ </ng-container>
20
+
21
+ <!-- Default / Primary / Secondary Themes -->
22
+ <ng-container *ngSwitchDefault>
23
+ <div class="flex h-full {{ color.outerBar }} rounded-t-lg rounded-b-lg">
24
+ <div
25
+ [style.width.%]="progress"
26
+ class="flex {{ color.innerBar }} my-1 mx-1 transition-width
27
+ duration-500 ease-in-out rounded-t-md rounded-b-md shadow-xl"
28
+ >
29
+ <div
30
+ class="flex items-center pl-2 py-1 {{ color.text }} font-bold text-4"
31
+ >
32
+ {{ progress }}%
33
+ </div>
34
+ </div>
35
+ </div>
36
+ </ng-container>
37
+ </ng-container>
@@ -1,4 +1,5 @@
1
1
  import { Component, Input } from '@angular/core'
2
+ import { NgSwitch, NgSwitchCase, NgSwitchDefault } from '@angular/common'
2
3
 
3
4
  interface ColorScheme {
4
5
  outerBar: string
@@ -11,10 +12,11 @@ interface ColorScheme {
11
12
  templateUrl: './progress-bar.component.html',
12
13
  styleUrls: ['./progress-bar.component.css'],
13
14
  standalone: true,
15
+ imports: [NgSwitch, NgSwitchCase, NgSwitchDefault],
14
16
  })
15
17
  export class ProgressBarComponent {
16
18
  @Input() value = 0
17
- @Input() type: 'primary' | 'secondary' | 'default' = 'default'
19
+ @Input() type: 'primary' | 'secondary' | 'default' | 'light' = 'default'
18
20
 
19
21
  get progress() {
20
22
  return this.value > 0 ? (this.value < 100 ? this.value : 100) : 0
@@ -40,6 +42,12 @@ export class ProgressBarComponent {
40
42
  innerBar: 'bg-secondary-lighter',
41
43
  text: 'text-white',
42
44
  }
45
+ case 'light':
46
+ return {
47
+ outerBar: 'bg-primary-white',
48
+ innerBar: 'bg-primary',
49
+ text: 'text-main',
50
+ }
43
51
  }
44
52
  }
45
53
  }
@@ -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 {}
@@ -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) {
@@ -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
  }