geonetwork-ui 2.4.2 → 2.5.0-dev.1103960a3

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 (302) 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 +23 -3
  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/lib/components/constraint-card/constraint-card.component.mjs +3 -3
  12. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +2 -1
  13. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +2 -2
  14. package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +7 -23
  15. package/esm2022/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.mjs +11 -11
  16. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +2 -2
  17. package/esm2022/libs/feature/editor/src/lib/models/wizard-field.type.mjs +3 -4
  18. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +25 -5
  19. package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +6 -7
  20. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +10 -7
  21. package/esm2022/libs/feature/record/src/lib/state/mdview.actions.mjs +4 -1
  22. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +7 -2
  23. package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +9 -1
  24. package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +19 -1
  25. package/esm2022/libs/feature/record/src/lib/state/mdview.selectors.mjs +6 -1
  26. package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +1 -1
  27. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +46 -1
  28. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +3 -2
  29. package/esm2022/libs/ui/dataviz/src/index.mjs +3 -3
  30. package/esm2022/libs/ui/dataviz/src/lib/data-table/custom.mat.paginator.intl.mjs +51 -0
  31. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +133 -0
  32. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.data.source.mjs +24 -0
  33. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.mjs +82 -0
  34. package/esm2022/libs/ui/elements/src/index.mjs +2 -1
  35. package/esm2022/libs/ui/elements/src/lib/application-banner/application-banner.component.mjs +78 -0
  36. package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +3 -3
  37. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +18 -10
  38. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +2 -1
  39. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +10 -4
  40. package/esm2022/libs/ui/inputs/src/index.mjs +1 -2
  41. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +7 -2
  42. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +1 -6
  43. package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +14 -4
  44. package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +22 -13
  45. package/esm2022/libs/ui/widgets/src/index.mjs +1 -2
  46. package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +5 -6
  47. package/esm2022/libs/util/data-fetcher/src/index.mjs +3 -1
  48. package/esm2022/libs/util/data-fetcher/src/lib/data-fetcher.mjs +5 -4
  49. package/esm2022/libs/util/data-fetcher/src/lib/model.mjs +7 -3
  50. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-cache.mjs +12 -0
  51. package/esm2022/libs/util/data-fetcher/src/lib/readers/base-file.mjs +3 -3
  52. package/esm2022/libs/util/data-fetcher/src/lib/readers/base.mjs +1 -1
  53. package/esm2022/libs/util/data-fetcher/src/lib/readers/csv.mjs +2 -2
  54. package/esm2022/libs/util/data-fetcher/src/lib/readers/excel.mjs +2 -2
  55. package/esm2022/libs/util/data-fetcher/src/lib/readers/geojson.mjs +2 -2
  56. package/esm2022/libs/util/data-fetcher/src/lib/readers/gml.mjs +5 -3
  57. package/esm2022/libs/util/data-fetcher/src/lib/readers/json.mjs +2 -2
  58. package/esm2022/libs/util/data-fetcher/src/lib/readers/wfs.mjs +35 -9
  59. package/esm2022/libs/util/data-fetcher/src/lib/utils.mjs +11 -9
  60. package/esm2022/libs/util/shared/src/lib/services/date.service.mjs +41 -0
  61. package/esm2022/libs/util/shared/src/lib/services/index.mjs +2 -1
  62. package/esm2022/libs/util/shared/src/lib/utils/temporal-extent-union.mjs +4 -4
  63. package/esm2022/translations/de.json +10 -75
  64. package/esm2022/translations/en.json +10 -75
  65. package/esm2022/translations/es.json +9 -74
  66. package/esm2022/translations/fr.json +22 -87
  67. package/esm2022/translations/it.json +27 -91
  68. package/esm2022/translations/nl.json +9 -74
  69. package/esm2022/translations/pt.json +9 -74
  70. package/fesm2022/geonetwork-ui.mjs +1144 -1204
  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 +3 -1
  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/geo-table-view/geo-table-view.component.d.ts +7 -9
  86. package/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.d.ts.map +1 -1
  87. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +2 -2
  88. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  89. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +5 -7
  90. package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
  91. 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
  92. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -1
  93. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts +1 -3
  94. package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts.map +1 -1
  95. package/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.d.ts +3 -3
  96. package/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.d.ts.map +1 -1
  97. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts +2 -3
  98. package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts.map +1 -1
  99. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +5 -1
  100. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  101. package/libs/feature/record/src/lib/feature-record.module.d.ts +2 -2
  102. package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
  103. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +3 -2
  104. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  105. package/libs/feature/record/src/lib/state/mdview.actions.d.ts +16 -1
  106. package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
  107. package/libs/feature/record/src/lib/state/mdview.effects.d.ts +5 -0
  108. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  109. package/libs/feature/record/src/lib/state/mdview.facade.d.ts +2 -0
  110. package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
  111. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +4 -1
  112. package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
  113. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +2 -0
  114. package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
  115. package/libs/feature/search/src/lib/utils/service/fields.d.ts +10 -0
  116. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  117. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  118. package/libs/ui/dataviz/src/index.d.ts +2 -2
  119. package/libs/ui/dataviz/src/index.d.ts.map +1 -1
  120. package/libs/ui/dataviz/src/lib/data-table/custom.mat.paginator.intl.d.ts +14 -0
  121. package/libs/ui/dataviz/src/lib/data-table/custom.mat.paginator.intl.d.ts.map +1 -0
  122. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts +45 -0
  123. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -0
  124. package/libs/ui/dataviz/src/lib/data-table/data-table.data.source.d.ts +12 -0
  125. package/libs/ui/dataviz/src/lib/data-table/data-table.data.source.d.ts.map +1 -0
  126. package/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.d.ts +10 -0
  127. package/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.d.ts.map +1 -0
  128. package/libs/ui/elements/src/index.d.ts +1 -0
  129. package/libs/ui/elements/src/index.d.ts.map +1 -1
  130. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts +16 -0
  131. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts.map +1 -0
  132. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +5 -0
  133. package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
  134. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  135. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
  136. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  137. package/libs/ui/inputs/src/index.d.ts +0 -1
  138. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  139. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  140. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +27 -28
  141. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  142. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +4 -2
  143. package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
  144. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +6 -3
  145. package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
  146. package/libs/ui/widgets/src/index.d.ts +0 -1
  147. package/libs/ui/widgets/src/index.d.ts.map +1 -1
  148. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +8 -9
  149. package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +1 -1
  150. package/libs/util/data-fetcher/src/index.d.ts +3 -1
  151. package/libs/util/data-fetcher/src/index.d.ts.map +1 -1
  152. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts +2 -2
  153. package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts.map +1 -1
  154. package/libs/util/data-fetcher/src/lib/model.d.ts +1 -1
  155. package/libs/util/data-fetcher/src/lib/model.d.ts.map +1 -1
  156. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts +8 -0
  157. package/libs/util/data-fetcher/src/lib/readers/base-cache.d.ts.map +1 -0
  158. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts +2 -2
  159. package/libs/util/data-fetcher/src/lib/readers/base-file.d.ts.map +1 -1
  160. package/libs/util/data-fetcher/src/lib/readers/base.d.ts +2 -2
  161. package/libs/util/data-fetcher/src/lib/readers/base.d.ts.map +1 -1
  162. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts +5 -3
  163. package/libs/util/data-fetcher/src/lib/readers/gml.d.ts.map +1 -1
  164. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts +7 -4
  165. package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts.map +1 -1
  166. package/libs/util/data-fetcher/src/lib/utils.d.ts +2 -2
  167. package/libs/util/data-fetcher/src/lib/utils.d.ts.map +1 -1
  168. package/libs/util/shared/src/lib/services/date.service.d.ts +13 -0
  169. package/libs/util/shared/src/lib/services/date.service.d.ts.map +1 -0
  170. package/libs/util/shared/src/lib/services/index.d.ts +1 -0
  171. package/libs/util/shared/src/lib/services/index.d.ts.map +1 -1
  172. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts +2 -1
  173. package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts.map +1 -1
  174. package/package.json +1 -1
  175. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +25 -0
  176. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +4 -0
  177. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +55 -32
  178. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +42 -7
  179. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +3 -1
  180. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +4 -1
  181. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +75 -0
  182. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +4 -1
  183. package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.html +3 -3
  184. package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.ts +17 -15
  185. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +43 -20
  186. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.html +4 -3
  187. package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +10 -18
  188. package/src/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.html +1 -1
  189. 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
  190. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +1 -1
  191. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +0 -13
  192. package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.ts +0 -20
  193. package/src/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.ts +3 -4
  194. package/src/libs/feature/editor/src/lib/fields.config.ts +1 -1
  195. package/src/libs/feature/editor/src/lib/models/wizard-field.type.ts +0 -1
  196. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +24 -11
  197. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +26 -4
  198. package/src/libs/feature/record/src/lib/feature-record.module.ts +6 -4
  199. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +71 -60
  200. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +6 -3
  201. package/src/libs/feature/record/src/lib/state/mdview.actions.ts +16 -0
  202. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +21 -2
  203. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +15 -0
  204. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +30 -1
  205. package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +12 -0
  206. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +2 -0
  207. package/src/libs/feature/search/src/lib/utils/service/fields.ts +55 -0
  208. package/src/libs/ui/dataviz/src/index.ts +2 -2
  209. package/src/libs/ui/dataviz/src/lib/data-table/custom.mat.paginator.intl.ts +52 -0
  210. package/src/libs/ui/dataviz/src/lib/{table/table.component.css → data-table/data-table.component.css} +4 -0
  211. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.html +67 -0
  212. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +173 -0
  213. package/src/libs/ui/dataviz/src/lib/data-table/data-table.data.source.ts +33 -0
  214. package/src/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.ts +84 -0
  215. package/src/libs/ui/elements/src/index.ts +1 -0
  216. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.css +0 -0
  217. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.html +25 -0
  218. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.ts +70 -0
  219. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +2 -2
  220. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +3 -3
  221. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +12 -2
  222. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +2 -0
  223. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +3 -0
  224. package/src/libs/ui/inputs/src/index.ts +0 -1
  225. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +6 -0
  226. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -3
  227. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +37 -1
  228. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +8 -2
  229. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +2 -0
  230. package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +10 -2
  231. package/src/libs/ui/widgets/src/index.ts +0 -1
  232. package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +2 -3
  233. package/src/libs/util/data-fetcher/src/index.ts +3 -0
  234. package/src/libs/util/data-fetcher/src/lib/data-fetcher.ts +13 -4
  235. package/src/libs/util/data-fetcher/src/lib/model.ts +6 -2
  236. package/src/libs/util/data-fetcher/src/lib/readers/base-cache.ts +14 -0
  237. package/src/libs/util/data-fetcher/src/lib/readers/base-file.ts +2 -1
  238. package/src/libs/util/data-fetcher/src/lib/readers/base.ts +2 -2
  239. package/src/libs/util/data-fetcher/src/lib/readers/csv.ts +1 -1
  240. package/src/libs/util/data-fetcher/src/lib/readers/excel.ts +1 -1
  241. package/src/libs/util/data-fetcher/src/lib/readers/geojson.ts +1 -1
  242. package/src/libs/util/data-fetcher/src/lib/readers/gml.ts +7 -7
  243. package/src/libs/util/data-fetcher/src/lib/readers/json.ts +1 -1
  244. package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +53 -8
  245. package/src/libs/util/data-fetcher/src/lib/utils.ts +36 -32
  246. package/src/libs/util/shared/src/lib/services/date.service.ts +45 -0
  247. package/src/libs/util/shared/src/lib/services/index.ts +1 -0
  248. package/src/libs/util/shared/src/lib/utils/temporal-extent-union.ts +6 -3
  249. package/translations/de.json +10 -75
  250. package/translations/en.json +10 -75
  251. package/translations/es.json +9 -74
  252. package/translations/fr.json +22 -87
  253. package/translations/it.json +27 -91
  254. package/translations/nl.json +9 -74
  255. package/translations/pt.json +9 -74
  256. package/translations/sk.json +9 -74
  257. package/esm2022/libs/ui/dataviz/src/lib/table/table.component.mjs +0 -61
  258. package/esm2022/libs/ui/dataviz/src/lib/table/table.fixtures.mjs +0 -40
  259. package/esm2022/libs/ui/inputs/src/lib/chips-input/chips-input.component.mjs +0 -78
  260. package/esm2022/libs/ui/widgets/src/lib/step-bar/step-bar.component.mjs +0 -55
  261. package/libs/ui/dataviz/src/lib/table/table.component.d.ts +0 -29
  262. package/libs/ui/dataviz/src/lib/table/table.component.d.ts.map +0 -1
  263. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts +0 -11
  264. package/libs/ui/dataviz/src/lib/table/table.fixtures.d.ts.map +0 -1
  265. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts +0 -33
  266. package/libs/ui/inputs/src/lib/chips-input/chips-input.component.d.ts.map +0 -1
  267. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts +0 -21
  268. package/libs/ui/widgets/src/lib/step-bar/step-bar.component.d.ts.map +0 -1
  269. package/src/libs/data-access/datafeeder/src/index.ts +0 -1
  270. package/src/libs/data-access/datafeeder/src/openapi/api/api.ts +0 -11
  271. package/src/libs/data-access/datafeeder/src/openapi/api/config.api.service.ts +0 -168
  272. package/src/libs/data-access/datafeeder/src/openapi/api/dataPublishing.api.service.ts +0 -270
  273. package/src/libs/data-access/datafeeder/src/openapi/api/fileUpload.api.service.ts +0 -734
  274. package/src/libs/data-access/datafeeder/src/openapi/api.module.ts +0 -46
  275. package/src/libs/data-access/datafeeder/src/openapi/configuration.ts +0 -125
  276. package/src/libs/data-access/datafeeder/src/openapi/encoder.ts +0 -20
  277. package/src/libs/data-access/datafeeder/src/openapi/index.ts +0 -5
  278. package/src/libs/data-access/datafeeder/src/openapi/model/analysisStatusEnum.api.model.ts +0 -24
  279. package/src/libs/data-access/datafeeder/src/openapi/model/boundingBox.api.model.ts +0 -20
  280. package/src/libs/data-access/datafeeder/src/openapi/model/cRS.api.model.ts +0 -25
  281. package/src/libs/data-access/datafeeder/src/openapi/model/datasetMetadata.api.model.ts +0 -45
  282. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishRequest.api.model.ts +0 -39
  283. package/src/libs/data-access/datafeeder/src/openapi/model/datasetPublishingStatus.api.model.ts +0 -50
  284. package/src/libs/data-access/datafeeder/src/openapi/model/datasetUploadStatus.api.model.ts +0 -39
  285. package/src/libs/data-access/datafeeder/src/openapi/model/models.ts +0 -13
  286. package/src/libs/data-access/datafeeder/src/openapi/model/property.api.model.ts +0 -17
  287. package/src/libs/data-access/datafeeder/src/openapi/model/publishJobStatus.api.model.ts +0 -33
  288. package/src/libs/data-access/datafeeder/src/openapi/model/publishRequest.api.model.ts +0 -16
  289. package/src/libs/data-access/datafeeder/src/openapi/model/publishStatusEnum.api.model.ts +0 -20
  290. package/src/libs/data-access/datafeeder/src/openapi/model/publishStepEnum.api.model.ts +0 -42
  291. package/src/libs/data-access/datafeeder/src/openapi/model/uploadJobStatus.api.model.ts +0 -33
  292. package/src/libs/data-access/datafeeder/src/openapi/variables.ts +0 -9
  293. package/src/libs/data-access/datafeeder/src/spec.yaml +0 -537
  294. package/src/libs/ui/dataviz/src/lib/table/table.component.html +0 -40
  295. package/src/libs/ui/dataviz/src/lib/table/table.component.ts +0 -80
  296. package/src/libs/ui/dataviz/src/lib/table/table.fixtures.ts +0 -40
  297. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.css +0 -36
  298. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.html +0 -23
  299. package/src/libs/ui/inputs/src/lib/chips-input/chips-input.component.ts +0 -81
  300. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.css +0 -3
  301. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.html +0 -13
  302. package/src/libs/ui/widgets/src/lib/step-bar/step-bar.component.ts +0 -55
@@ -0,0 +1,67 @@
1
+ <div class="flex flex-col border border-gray-300 rounded-lg bg-white h-full">
2
+ <div class="flex-1 overflow-y-hidden overflow-x-auto rounded-lg relative">
3
+ <table
4
+ mat-table
5
+ [dataSource]="dataSource"
6
+ matSort
7
+ (matSortChange)="setSort($event)"
8
+ [matSortDisableClear]="true"
9
+ *ngrxLet="properties$ as properties"
10
+ >
11
+ <ng-container *ngFor="let prop of properties" [matColumnDef]="prop">
12
+ <th
13
+ mat-header-cell
14
+ *matHeaderCellDef
15
+ mat-sort-header
16
+ class="text-sm text-black bg-white"
17
+ >
18
+ {{ prop }}
19
+ </th>
20
+ <td
21
+ mat-cell
22
+ *matCellDef="let element"
23
+ class="whitespace-nowrap pr-1 truncate"
24
+ >
25
+ {{ element[prop] }}
26
+ </td>
27
+ </ng-container>
28
+
29
+ <tr mat-header-row *matHeaderRowDef="properties; sticky: true"></tr>
30
+ <tr
31
+ [id]="getRowEltId(row.id)"
32
+ mat-row
33
+ *matRowDef="let row; columns: properties"
34
+ (click)="selected.emit(row)"
35
+ [class.active]="row.id === activeId"
36
+ ></tr>
37
+ </table>
38
+ <gn-ui-loading-mask
39
+ *ngIf="loading$ | async"
40
+ class="sticky inset-0"
41
+ [message]="'table.loading.data' | translate"
42
+ ></gn-ui-loading-mask>
43
+ <gn-ui-popup-alert
44
+ *ngIf="error"
45
+ type="warning"
46
+ icon="matErrorOutlineOutline"
47
+ class="absolute m-2 inset-0 z-[100]"
48
+ >
49
+ <span translate>{{ error }}</span>
50
+ </gn-ui-popup-alert>
51
+ </div>
52
+ <div class="flex justify-between items-center overflow-hidden">
53
+ <div class="text-gray-900 px-4 py-2 text-sm">
54
+ <span class="count font-extrabold text-primary">{{ count }}</span
55
+ >&nbsp;<span translate>table.object.count</span>.
56
+ </div>
57
+
58
+ <mat-paginator
59
+ class="my-[-16px]"
60
+ (page)="setPagination()"
61
+ [length]="count"
62
+ [pageSize]="10"
63
+ [showFirstLastButtons]="true"
64
+ [hidePageSize]="true"
65
+ ></mat-paginator>
66
+ </div>
67
+ </div>
@@ -0,0 +1,173 @@
1
+ import { ScrollingModule } from '@angular/cdk/scrolling'
2
+ import {
3
+ AfterViewInit,
4
+ ChangeDetectionStrategy,
5
+ ChangeDetectorRef,
6
+ Component,
7
+ ElementRef,
8
+ EventEmitter,
9
+ Input,
10
+ OnChanges,
11
+ OnInit,
12
+ Output,
13
+ ViewChild,
14
+ } from '@angular/core'
15
+ import { MatSort, MatSortModule } from '@angular/material/sort'
16
+ import { MatTableModule } from '@angular/material/table'
17
+ import { TranslateModule, TranslateService } from '@ngx-translate/core'
18
+ import { DataTableDataSource } from './data-table.data.source'
19
+ import { BaseReader, FetchError } from '../../../../../../libs/util/data-fetcher/src'
20
+ import {
21
+ MatPaginator,
22
+ MatPaginatorIntl,
23
+ MatPaginatorModule,
24
+ } from '@angular/material/paginator'
25
+ import { CustomMatPaginatorIntl } from './custom.mat.paginator.intl'
26
+ import { CommonModule } from '@angular/common'
27
+ import { BehaviorSubject, filter, firstValueFrom } from 'rxjs'
28
+ import {
29
+ LoadingMaskComponent,
30
+ PopupAlertComponent,
31
+ } from '../../../../../../libs/ui/widgets/src'
32
+ import { LetDirective } from '@ngrx/component'
33
+
34
+ const rowIdPrefix = 'table-item-'
35
+
36
+ export type TableItemId = string | number
37
+ type TableItemType = string | number | Date
38
+
39
+ export interface TableItemModel {
40
+ id: TableItemId
41
+ [key: string]: TableItemType
42
+ }
43
+
44
+ @Component({
45
+ standalone: true,
46
+ imports: [
47
+ MatTableModule,
48
+ MatSortModule,
49
+ MatPaginatorModule,
50
+ ScrollingModule,
51
+ TranslateModule,
52
+ CommonModule,
53
+ LoadingMaskComponent,
54
+ PopupAlertComponent,
55
+ LetDirective,
56
+ ],
57
+ providers: [{ provide: MatPaginatorIntl, useClass: CustomMatPaginatorIntl }],
58
+ selector: 'gn-ui-data-table',
59
+ templateUrl: './data-table.component.html',
60
+ styleUrls: ['./data-table.component.css'],
61
+ changeDetection: ChangeDetectionStrategy.OnPush,
62
+ })
63
+ export class DataTableComponent implements OnInit, AfterViewInit, OnChanges {
64
+ @Input() set dataset(value: BaseReader) {
65
+ this.properties$.next(null)
66
+ this.dataset_ = value
67
+ this.dataset_.load()
68
+ this.dataset_.properties.then((properties) =>
69
+ this.properties$.next(properties.map((p) => p.name))
70
+ )
71
+ this.dataset_.info.then((info) => (this.count = info.itemsCount))
72
+ }
73
+ @Input() activeId: TableItemId
74
+ @Output() selected = new EventEmitter<any>()
75
+
76
+ @ViewChild(MatSort) sort: MatSort
77
+ @ViewChild(MatPaginator) paginator: MatPaginator
78
+
79
+ dataset_: BaseReader
80
+ properties$ = new BehaviorSubject<string[]>(null)
81
+ dataSource: DataTableDataSource
82
+ headerHeight: number
83
+ count: number
84
+ loading$ = new BehaviorSubject<boolean>(false)
85
+ error = null
86
+
87
+ constructor(
88
+ private eltRef: ElementRef,
89
+ private cdr: ChangeDetectorRef,
90
+ private translateService: TranslateService
91
+ ) {}
92
+
93
+ ngOnInit() {
94
+ this.dataSource = new DataTableDataSource()
95
+ }
96
+
97
+ ngAfterViewInit() {
98
+ this.headerHeight =
99
+ this.eltRef.nativeElement.querySelector('thead').offsetHeight
100
+ this.setPagination()
101
+ this.cdr.detectChanges()
102
+ }
103
+
104
+ ngOnChanges() {
105
+ this.setPagination()
106
+ }
107
+
108
+ setSort(sort: MatSort) {
109
+ if (!this.dataset_) return
110
+ if (!sort.active) {
111
+ this.dataset_.orderBy()
112
+ } else {
113
+ this.dataset_.orderBy([sort.direction || 'asc', sort.active])
114
+ }
115
+ this.readData()
116
+ }
117
+
118
+ setPagination() {
119
+ if (!this.paginator) return
120
+ if (!this.dataset_) return
121
+ this.dataset_.limit(
122
+ this.paginator.pageIndex * this.paginator.pageSize,
123
+ this.paginator.pageSize
124
+ )
125
+ this.readData()
126
+ }
127
+
128
+ async readData() {
129
+ this.loading$.next(true)
130
+ // wait for properties to be read
131
+ const properties = await firstValueFrom(
132
+ this.properties$.pipe(filter((p) => !!p))
133
+ )
134
+ const propsWithoutGeom = properties.filter(
135
+ (p) => !p.toLowerCase().startsWith('geom')
136
+ )
137
+ this.dataset_.select(...propsWithoutGeom)
138
+ try {
139
+ await this.dataSource.showData(this.dataset_.read())
140
+ this.error = null
141
+ } catch (error) {
142
+ this.handleError(error as FetchError | Error)
143
+ }
144
+ this.loading$.next(false)
145
+ }
146
+
147
+ scrollToItem(itemId: TableItemId): void {
148
+ const row = this.eltRef.nativeElement.querySelector(
149
+ `#${this.getRowEltId(itemId)}`
150
+ )
151
+ this.eltRef.nativeElement.scrollTop = row.offsetTop - this.headerHeight
152
+ }
153
+
154
+ public getRowEltId(id: TableItemId): string {
155
+ return rowIdPrefix + id
156
+ }
157
+
158
+ handleError(error: FetchError | Error) {
159
+ this.dataSource.clearData()
160
+ if (error instanceof FetchError) {
161
+ this.error = this.translateService.instant(
162
+ `dataset.error.${error.type}`,
163
+ {
164
+ info: error.info,
165
+ }
166
+ )
167
+ console.warn(error.message)
168
+ } else {
169
+ this.error = this.translateService.instant(error.message)
170
+ console.warn(error.stack || error)
171
+ }
172
+ }
173
+ }
@@ -0,0 +1,33 @@
1
+ import { DataSource } from '@angular/cdk/collections'
2
+ import { BehaviorSubject, Observable } from 'rxjs'
3
+ import { DataItem } from '../../../../../../libs/util/data-fetcher/src'
4
+ import { map } from 'rxjs/operators'
5
+ import { TableItemModel } from './data-table.component'
6
+
7
+ export class DataTableDataSource implements DataSource<TableItemModel> {
8
+ private dataItems$ = new BehaviorSubject<DataItem[]>([])
9
+
10
+ connect(): Observable<TableItemModel[]> {
11
+ return this.dataItems$.asObservable().pipe(
12
+ map((items) =>
13
+ items.map((item) => ({
14
+ id: item.id,
15
+ ...item.properties,
16
+ }))
17
+ )
18
+ )
19
+ }
20
+
21
+ disconnect(): void {
22
+ this.dataItems$.complete()
23
+ }
24
+
25
+ async showData(itemsPromise: Promise<DataItem[]>) {
26
+ const items = await itemsPromise
27
+ this.dataItems$.next(items)
28
+ }
29
+
30
+ clearData() {
31
+ this.dataItems$.next([])
32
+ }
33
+ }
@@ -0,0 +1,84 @@
1
+ import { DataItem, PropertyInfo } from '../../../../../../libs/util/data-fetcher/src'
2
+
3
+ export const tableItemsFixture = {
4
+ items: [
5
+ {
6
+ type: 'Feature',
7
+ geometry: null,
8
+ properties: {
9
+ id: '0001',
10
+ firstName: 'John',
11
+ lastName: 'Lennon',
12
+ },
13
+ },
14
+ {
15
+ type: 'Feature',
16
+ geometry: null,
17
+ properties: {
18
+ id: '0002',
19
+ firstName: 'Ozzy',
20
+ lastName: 'Osbourne',
21
+ },
22
+ },
23
+ {
24
+ type: 'Feature',
25
+ geometry: null,
26
+ properties: {
27
+ id: '0003',
28
+ firstName: 'Claude',
29
+ lastName: 'François',
30
+ },
31
+ },
32
+ ] as DataItem[],
33
+ properties: [
34
+ { name: 'id', label: 'id', type: 'string' },
35
+ { name: 'firstName', label: 'Firstname', type: 'string' },
36
+ { name: 'lastName', label: 'Lastname', type: 'string' },
37
+ ] as PropertyInfo[],
38
+ }
39
+
40
+ export const someHabTableItemFixture = {
41
+ items: [
42
+ {
43
+ type: 'Feature',
44
+ geometry: null,
45
+ properties: {
46
+ id: '1',
47
+ name: 'France',
48
+ pop: 50500000,
49
+ },
50
+ },
51
+ {
52
+ type: 'Feature',
53
+ geometry: null,
54
+ properties: {
55
+ id: '2',
56
+ name: 'Italy',
57
+ pop: 155878789655,
58
+ },
59
+ },
60
+ {
61
+ type: 'Feature',
62
+ geometry: null,
63
+ properties: {
64
+ id: '3',
65
+ name: 'UK',
66
+ pop: 31522456,
67
+ },
68
+ },
69
+ {
70
+ type: 'Feature',
71
+ geometry: null,
72
+ properties: {
73
+ id: '4',
74
+ name: 'US',
75
+ pop: 3215448888,
76
+ },
77
+ },
78
+ ] as DataItem[],
79
+ properties: [
80
+ { name: 'id', label: 'ID', type: 'string' },
81
+ { name: 'name', label: 'Name', type: 'string' },
82
+ { name: 'pop', label: 'Population', type: 'number' },
83
+ ] as PropertyInfo[],
84
+ }
@@ -22,3 +22,4 @@ export * from './lib/thumbnail/thumbnail.component'
22
22
  export * from './lib/ui-elements.module'
23
23
  export * from './lib/user-feedback-item/user-feedback-item.component'
24
24
  export * from './lib/user-preview/user-preview.component'
25
+ export * from './lib/application-banner/application-banner.component'
@@ -0,0 +1,25 @@
1
+ <div
2
+ *ngIf="message && bannerOpen"
3
+ class="absolute left-0 right-0 text-wrap bg-white mt-4 max-h-24"
4
+ >
5
+ <div
6
+ class="flex flex-row py-2.5 px-5 gap-5 justify-start border max-h-20"
7
+ [ngClass]="classList"
8
+ >
9
+ <div [ngClass]="message.length > 200 ? 'pt-5' : 'pt-1'">
10
+ <ng-icon [name]="icon"></ng-icon>
11
+ </div>
12
+ <div class="flex flex-col justify-start gap-2.5">
13
+ <span *ngIf="title" class="font-bold">{{ title }}</span>
14
+ <span class="font-medium max-w-2xl" [innerHTML]="message"></span>
15
+ </div>
16
+ <button
17
+ *ngIf="closeEnabled"
18
+ class="self-start"
19
+ type="button"
20
+ (click)="closeMessage()"
21
+ >
22
+ <ng-icon name="matCloseOutline"> </ng-icon>
23
+ </button>
24
+ </div>
25
+ </div>
@@ -0,0 +1,70 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
2
+ import { CommonModule } from '@angular/common'
3
+ import {
4
+ NgIconComponent,
5
+ provideIcons,
6
+ provideNgIconsConfig,
7
+ } from '@ng-icons/core'
8
+ import {
9
+ matCloseOutline,
10
+ matInfoOutline,
11
+ matWarningAmberOutline,
12
+ } from '@ng-icons/material-icons/outline'
13
+ import { matWarning } from '@ng-icons/material-icons/baseline'
14
+
15
+ @Component({
16
+ selector: 'gn-ui-application-banner',
17
+ standalone: true,
18
+ imports: [CommonModule, NgIconComponent],
19
+ changeDetection: ChangeDetectionStrategy.OnPush,
20
+ templateUrl: './application-banner.component.html',
21
+ styleUrl: './application-banner.component.css',
22
+ providers: [
23
+ provideIcons({
24
+ matWarningAmberOutline,
25
+ matInfoOutline,
26
+ matCloseOutline,
27
+ matWarning,
28
+ }),
29
+ provideNgIconsConfig({ size: '1.5em' }),
30
+ ],
31
+ })
32
+ export class ApplicationBannerComponent {
33
+ @Input() message: string
34
+ @Input() title: string
35
+ @Input() closeEnabled = false
36
+ @Input() extraClass = ''
37
+ @Input() icon = ''
38
+ msgClass = ''
39
+ bannerOpen = true
40
+
41
+ @Input() set type(value: 'primary' | 'secondary' | 'light') {
42
+ switch (value) {
43
+ case 'primary':
44
+ this.msgClass = 'bg-primary-darkest border-primary text-white'
45
+ this.icon = 'matWarning'
46
+ break
47
+ case 'light':
48
+ this.msgClass =
49
+ 'bg-primary-opacity-10 border-primary-lightest text-black'
50
+ this.icon = 'matInfoOutline'
51
+ break
52
+ case 'secondary':
53
+ default:
54
+ this.msgClass = 'bg-primary-opacity-50 border-primary-darker text-black'
55
+ this.icon = 'matWarningAmberOutline'
56
+ break
57
+ }
58
+ }
59
+
60
+ get classList() {
61
+ if (this.message.length > 200) {
62
+ return `${this.msgClass} ${this.extraClass} overflow-y-scroll items-start`
63
+ }
64
+ return `${this.msgClass} ${this.extraClass} items-center`
65
+ }
66
+
67
+ closeMessage() {
68
+ this.bannerOpen = false
69
+ }
70
+ }
@@ -1,4 +1,4 @@
1
- import { Component, Input, ChangeDetectionStrategy } from '@angular/core'
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
2
2
  import { marked } from 'marked'
3
3
 
4
4
  @Component({
@@ -13,6 +13,6 @@ export class MarkdownParserComponent {
13
13
  @Input() whitoutStyles?: boolean
14
14
 
15
15
  get parsedMarkdown() {
16
- return marked.parse(this.textContent)
16
+ return marked.parse(this.textContent ?? '')
17
17
  }
18
18
  }
@@ -163,13 +163,13 @@
163
163
  <div *ngIf="metadata.resourceCreated">
164
164
  <p class="text-sm" translate>record.metadata.creation</p>
165
165
  <p class="text-primary font-medium mt-1">
166
- {{ metadata.resourceCreated.toLocaleDateString() }}
166
+ {{ formatDate(metadata.resourceCreated) }}
167
167
  </p>
168
168
  </div>
169
169
  <div *ngIf="metadata.resourcePublished">
170
170
  <p class="text-sm" translate>record.metadata.publication</p>
171
171
  <p class="text-primary font-medium mt-1">
172
- {{ metadata.resourcePublished.toLocaleDateString() }}
172
+ {{ formatDate(metadata.resourcePublished) }}
173
173
  </p>
174
174
  </div>
175
175
  <div *ngIf="updateFrequency">
@@ -233,7 +233,7 @@
233
233
  <div *ngIf="metadata.recordUpdated">
234
234
  <p class="text-sm" translate>record.metadata.updatedOn</p>
235
235
  <p class="text-primary font-medium">
236
- {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}
236
+ {{ metadata.recordUpdated && formatDateTime(metadata.recordUpdated) }}
237
237
  </p>
238
238
  </div>
239
239
  <div *ngIf="metadata.landingPage">
@@ -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'
@@ -147,6 +147,12 @@ export class AutocompleteComponent
147
147
  this.error = null
148
148
  }),
149
149
  switchMap((value) => this.action(value)),
150
+ tap((suggestions) => {
151
+ // forcing the panel to open if there are suggestions
152
+ if (suggestions.length > 0) {
153
+ this.triggerRef?.openPanel()
154
+ }
155
+ }),
150
156
  catchError((error: Error) => {
151
157
  this.error = error.message
152
158
  return of([])
@@ -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,
@@ -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>