geonetwork-ui 2.11.0-dev.e7b8ec331 → 2.11.0-dev.f5ee66b24

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 (91) hide show
  1. package/fesm2022/geonetwork-ui.mjs +1482 -928
  2. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  3. package/index.d.ts +280 -124
  4. package/index.d.ts.map +1 -1
  5. package/package.json +12 -11
  6. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +43 -13
  7. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +108 -34
  8. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +40 -16
  9. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +12 -0
  10. package/src/libs/common/domain/src/lib/model/search/filter.model.ts +20 -1
  11. package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +2 -2
  12. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +3 -2
  13. package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.ts +2 -1
  14. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +22 -22
  15. package/src/libs/feature/map/src/index.ts +0 -1
  16. package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.html +1 -0
  17. package/src/libs/feature/map/src/lib/feature-map.module.ts +1 -8
  18. package/src/libs/feature/notifications/src/lib/notifications.service.ts +6 -4
  19. package/src/libs/feature/record/src/lib/state/mdview.actions.ts +4 -8
  20. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +7 -16
  21. package/src/libs/feature/record/src/lib/state/mdview.facade.ts +1 -3
  22. package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +4 -9
  23. package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +2 -7
  24. package/src/libs/feature/router/src/lib/default/state/query-params.utils.ts +1 -1
  25. package/src/libs/feature/search/src/index.ts +2 -0
  26. package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.html +12 -4
  27. package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +58 -19
  28. package/src/libs/feature/{map/src/lib → search/src/lib/geocoding}/geocoding.service.ts +5 -1
  29. package/src/libs/feature/search/src/lib/location-search/location-search.component.html +8 -0
  30. package/src/libs/feature/search/src/lib/location-search/location-search.component.ts +40 -0
  31. package/src/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.ts +18 -8
  32. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +9 -1
  33. package/src/libs/feature/search/src/lib/utils/service/fields.ts +61 -2
  34. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.html +6 -7
  35. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +31 -19
  36. package/src/libs/ui/dataviz/src/lib/data-table/data-table.fixtures.ts +2 -2
  37. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +2 -1
  38. package/src/libs/ui/inputs/src/index.ts +2 -0
  39. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +10 -1
  40. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +8 -0
  41. package/src/libs/ui/inputs/src/lib/date-adapter.providers.ts +30 -0
  42. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.ts +3 -24
  43. package/src/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.css +37 -3
  44. package/src/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.html +135 -16
  45. package/src/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.ts +166 -29
  46. package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.ts +3 -7
  47. package/src/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.css +1 -0
  48. package/src/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.html +20 -7
  49. package/src/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.ts +46 -5
  50. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +7 -4
  51. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.ts +12 -9
  52. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.model.ts +2 -2
  53. package/src/libs/ui/inputs/src/lib/spatial-extent-dropdown/spatial-extent-dropdown.component.html +111 -0
  54. package/src/libs/ui/inputs/src/lib/spatial-extent-dropdown/spatial-extent-dropdown.component.ts +215 -0
  55. package/src/libs/ui/map/src/lib/components/map-container/map-container.component.ts +6 -5
  56. package/src/libs/util/app-config/src/lib/app-config.ts +3 -0
  57. package/src/libs/util/app-config/src/lib/model.ts +1 -0
  58. package/src/libs/util/data-fetcher/src/lib/data-fetcher.ts +19 -22
  59. package/src/libs/util/data-fetcher/src/lib/engine/duckdb.ts +185 -0
  60. package/src/libs/util/data-fetcher/src/lib/engine/results.ts +63 -0
  61. package/src/libs/util/data-fetcher/src/lib/{sql-utils.ts → engine/sql-utils.ts} +28 -13
  62. package/src/libs/util/data-fetcher/src/lib/model.ts +2 -1
  63. package/src/libs/util/data-fetcher/src/lib/readers/base-file.ts +53 -38
  64. package/src/libs/util/data-fetcher/src/lib/readers/base.ts +11 -0
  65. package/src/libs/util/data-fetcher/src/lib/readers/csv.ts +9 -47
  66. package/src/libs/util/data-fetcher/src/lib/readers/excel.ts +27 -27
  67. package/src/libs/util/data-fetcher/src/lib/readers/geojson.ts +5 -24
  68. package/src/libs/util/data-fetcher/src/lib/readers/gml.ts +5 -49
  69. package/src/libs/util/data-fetcher/src/lib/readers/json.ts +5 -23
  70. package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +184 -128
  71. package/src/libs/util/data-fetcher/src/lib/utils.ts +0 -143
  72. package/src/libs/util/shared/src/index.ts +1 -0
  73. package/src/libs/util/shared/src/lib/autofocus.directive.ts +26 -0
  74. package/src/libs/util/shared/src/lib/links/link-utils.ts +19 -10
  75. package/src/libs/util/shared/src/lib/services/date.service.ts +3 -3
  76. package/src/libs/util/shared/src/lib/utils/file.ts +15 -0
  77. package/src/libs/util/shared/src/lib/utils/geojson.ts +8 -0
  78. package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
  79. package/tailwind.base.css +5 -0
  80. package/translations/de.json +17 -3
  81. package/translations/en.json +16 -2
  82. package/translations/es.json +15 -1
  83. package/translations/fr.json +17 -3
  84. package/translations/it.json +15 -1
  85. package/translations/nl.json +15 -1
  86. package/translations/pt.json +15 -1
  87. package/translations/sk.json +15 -1
  88. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.html +0 -41
  89. package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +0 -112
  90. package/src/libs/util/data-fetcher/src/lib/readers/base-cache.ts +0 -14
  91. /package/src/libs/{feature/map/src/lib/geocoding/geocoding.component.css → ui/inputs/src/lib/spatial-extent-dropdown/spatial-extent-dropdown.component.css} +0 -0
@@ -1,112 +0,0 @@
1
- import { Component, OnDestroy, inject } from '@angular/core'
2
- import { catchError, firstValueFrom, from, Subject, takeUntil } from 'rxjs'
3
- import { debounceTime, switchMap } from 'rxjs/operators'
4
- import { GeocodingService } from '../geocoding.service'
5
- import { MapFacade } from '../+state/map.facade'
6
-
7
- import { SearchInputComponent } from '../../../../../../libs/ui/inputs/src'
8
- import { TranslatePipe } from '@ngx-translate/core'
9
- import { MapContextView } from '@geospatial-sdk/core'
10
-
11
- @Component({
12
- selector: 'gn-ui-geocoding',
13
- templateUrl: './geocoding.component.html',
14
- styleUrls: ['./geocoding.component.css'],
15
- standalone: true,
16
- imports: [SearchInputComponent, TranslatePipe],
17
- })
18
- export class GeocodingComponent implements OnDestroy {
19
- private mapFacade = inject(MapFacade)
20
- private geocodingService = inject(GeocodingService)
21
-
22
- searchText = ''
23
- results: any[] = []
24
- searchTextChanged = new Subject<string>()
25
- destroy$ = new Subject<void>()
26
- errorMessage: string | null = null
27
-
28
- constructor() {
29
- this.searchTextChanged
30
- .pipe(
31
- debounceTime(300),
32
- switchMap((searchText) => {
33
- return from(this.geocodingService.query(searchText)).pipe(
34
- catchError((error) => {
35
- this.errorMessage =
36
- 'An error occurred while searching. Please try again.'
37
- console.error(error)
38
- return []
39
- })
40
- )
41
- }),
42
- takeUntil(this.destroy$)
43
- )
44
- .subscribe((results) => {
45
- this.results = results
46
- })
47
- }
48
-
49
- ngOnDestroy() {
50
- this.destroy$.next()
51
- this.destroy$.complete()
52
- }
53
-
54
- onSearchChange(searchText: string) {
55
- if (!searchText) {
56
- this.clearSearch()
57
- return
58
- } else {
59
- this.searchTextChanged.next(searchText)
60
- }
61
- }
62
-
63
- clearSearch() {
64
- this.searchText = ''
65
- this.results = []
66
- this.errorMessage = null
67
- }
68
-
69
- async zoomToLocation(result: any) {
70
- const geometry = result.geom
71
-
72
- if (geometry.type === 'Point') {
73
- await this.zoomToPoint(geometry.coordinates)
74
- } else if (geometry.type === 'Polygon') {
75
- await this.zoomToPolygon(geometry.coordinates)
76
- } else {
77
- console.error(`Unsupported geometry type: ${geometry.type}`)
78
- }
79
- }
80
-
81
- async zoomToPoint(pointCoords: [number, number]) {
82
- const context = await firstValueFrom(this.mapFacade.context$)
83
- const view: MapContextView = {
84
- center: pointCoords,
85
- zoom: 10,
86
- }
87
- this.mapFacade.applyContext({
88
- ...context,
89
- view,
90
- })
91
- }
92
-
93
- async zoomToPolygon(polygonCoords: [[number, number][]]) {
94
- const context = await firstValueFrom(this.mapFacade.context$)
95
- const view: MapContextView = {
96
- geometry: {
97
- type: 'Polygon',
98
- coordinates: polygonCoords,
99
- },
100
- }
101
- this.mapFacade.applyContext({
102
- ...context,
103
- view,
104
- })
105
- }
106
-
107
- onEnterPress() {
108
- if (this.results && this.results.length > 0) {
109
- this.zoomToLocation(this.results[0])
110
- }
111
- }
112
- }
@@ -1,14 +0,0 @@
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
- }