geonetwork-ui 2.8.1-dev.8a76e5fef → 2.8.1-dev.8dfab7a52

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.
@@ -13,7 +13,7 @@ import * as i4 from '@ngx-translate/core';
13
13
  import { TranslateLoader, TranslateCompiler, TranslateDefaultParser, TranslateParser, TranslateService, provideTranslateService, TranslateDirective, TranslatePipe, TranslateModule } from '@ngx-translate/core';
14
14
  import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';
15
15
  import { TranslateHttpLoader } from '@ngx-translate/http-loader';
16
- import { map as map$1, shareReplay as shareReplay$1, catchError, tap as tap$1, filter as filter$1, startWith as startWith$1, withLatestFrom, switchMap as switchMap$1, take, mergeMap, delay, distinctUntilChanged, debounceTime, finalize, throttleTime, first as first$1, pairwise as pairwise$1, share, defaultIfEmpty, toArray } from 'rxjs/operators';
16
+ import { map as map$1, shareReplay as shareReplay$1, catchError, tap as tap$1, filter as filter$1, startWith as startWith$1, withLatestFrom, switchMap as switchMap$1, take, mergeMap, delay, debounceTime, distinctUntilChanged, finalize, throttleTime, first as first$1, pairwise as pairwise$1, share, defaultIfEmpty, toArray } from 'rxjs/operators';
17
17
  import { of, map as map$2, lastValueFrom, fromEvent, startWith, shareReplay, filter, pairwise, switchMap, Subject, combineLatest, from, exhaustMap, throwError, forkJoin, takeLast, firstValueFrom, merge, BehaviorSubject, timer, ReplaySubject, Subscription, first, distinctUntilChanged as distinctUntilChanged$1, animationFrameScheduler, debounceTime as debounceTime$1, Observable, buffer, tap as tap$2, combineLatestWith, take as take$1, catchError as catchError$1, takeUntil, EMPTY, mergeMap as mergeMap$1, withLatestFrom as withLatestFrom$1 } from 'rxjs';
18
18
  import { lt, valid, coerce, satisfies, ltr } from 'semver';
19
19
  import chroma from 'chroma-js';
@@ -18975,6 +18975,7 @@ var de = {
18975
18975
  "multiselect.filter.placeholder": "Suche",
18976
18976
  "nav.back": "Zurück",
18977
18977
  "navbar.mobile.menuTitle": "Schnellzugriff",
18978
+ "ogc.geojson.notsupported": "Dieser OGC API-Dienst unterstützt das GeoJSON-Format nicht.",
18978
18979
  "ogc.unreachable.unknown": "Der Dienst konnte nicht erreicht werden",
18979
18980
  "organisation.filter.placeholder": "Ergebnisse filtern",
18980
18981
  "organisation.sort.sortBy": "Sortieren nach:",
@@ -19645,6 +19646,7 @@ var en = {
19645
19646
  "multiselect.filter.placeholder": "Search",
19646
19647
  "nav.back": "Back",
19647
19648
  "navbar.mobile.menuTitle": "Quick access",
19649
+ "ogc.geojson.notsupported": "This OGC API does not support the GeoJSON format",
19648
19650
  "ogc.unreachable.unknown": "The service could not be reached",
19649
19651
  "organisation.filter.placeholder": "Filter results",
19650
19652
  "organisation.sort.sortBy": "Sort by:",
@@ -20316,6 +20318,7 @@ var es = {
20316
20318
  "multiselect.filter.placeholder": "",
20317
20319
  "nav.back": "",
20318
20320
  "navbar.mobile.menuTitle": "Acceso rápido",
20321
+ "ogc.geojson.notsupported": "",
20319
20322
  "ogc.unreachable.unknown": "",
20320
20323
  "organisation.filter.placeholder": "",
20321
20324
  "organisation.sort.sortBy": "",
@@ -20987,6 +20990,7 @@ var fr = {
20987
20990
  "multiselect.filter.placeholder": "Rechercher",
20988
20991
  "nav.back": "Retour",
20989
20992
  "navbar.mobile.menuTitle": "Navigation rapide",
20993
+ "ogc.geojson.notsupported": "Le service OGC API ne supporte pas le format GeoJSON",
20990
20994
  "ogc.unreachable.unknown": "Le service n'est pas accessible",
20991
20995
  "organisation.filter.placeholder": "Filtrer les résultats",
20992
20996
  "organisation.sort.sortBy": "Trier par :",
@@ -21658,6 +21662,7 @@ var it = {
21658
21662
  "multiselect.filter.placeholder": "Cerca",
21659
21663
  "nav.back": "Indietro",
21660
21664
  "navbar.mobile.menuTitle": "Accesso rapido",
21665
+ "ogc.geojson.notsupported": "Il servizio OGC API non supporta il formato GeoJSON.",
21661
21666
  "ogc.unreachable.unknown": "Il servizio non è accessibile",
21662
21667
  "organisation.filter.placeholder": "Filtra i risultati",
21663
21668
  "organisation.sort.sortBy": "Ordina per:",
@@ -22329,6 +22334,7 @@ var nl = {
22329
22334
  "multiselect.filter.placeholder": "",
22330
22335
  "nav.back": "",
22331
22336
  "navbar.mobile.menuTitle": "",
22337
+ "ogc.geojson.notsupported": "",
22332
22338
  "ogc.unreachable.unknown": "",
22333
22339
  "organisation.filter.placeholder": "",
22334
22340
  "organisation.sort.sortBy": "",
@@ -23000,6 +23006,7 @@ var pt = {
23000
23006
  "multiselect.filter.placeholder": "",
23001
23007
  "nav.back": "",
23002
23008
  "navbar.mobile.menuTitle": "",
23009
+ "ogc.geojson.notsupported": "",
23003
23010
  "ogc.unreachable.unknown": "",
23004
23011
  "organisation.filter.placeholder": "",
23005
23012
  "organisation.sort.sortBy": "",
@@ -23671,6 +23678,7 @@ var sk = {
23671
23678
  "multiselect.filter.placeholder": "Hľadať",
23672
23679
  "nav.back": "Späť",
23673
23680
  "navbar.mobile.menuTitle": "",
23681
+ "ogc.geojson.notsupported": "",
23674
23682
  "ogc.unreachable.unknown": "So službou sa nedalo spojiť",
23675
23683
  "organisation.filter.placeholder": "Filtrovať výsledky",
23676
23684
  "organisation.sort.sortBy": "Zoradiť podľa:",
@@ -25511,7 +25519,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
25511
25519
  }] } });
25512
25520
 
25513
25521
  var name = "geonetwork-ui";
25514
- var version = "2.8.1-dev.8a76e5fef";
25522
+ var version = "2.8.1-dev.8dfab7a52";
25515
25523
  var engines = {
25516
25524
  node: ">=20"
25517
25525
  };
@@ -29196,9 +29204,8 @@ class AutocompleteComponent {
29196
29204
  ngOnChanges(changes) {
29197
29205
  const { value } = changes;
29198
29206
  if (value) {
29199
- const previousTextValue = this.displayWithFnInternal(value.previousValue);
29200
29207
  const currentTextValue = this.displayWithFnInternal(value.currentValue);
29201
- if (previousTextValue !== currentTextValue) {
29208
+ if (currentTextValue !== this.control.value) {
29202
29209
  if (currentTextValue) {
29203
29210
  this.searchActive = true;
29204
29211
  this.isSearchActive.emit(true);
@@ -29212,13 +29219,15 @@ class AutocompleteComponent {
29212
29219
  }
29213
29220
  }
29214
29221
  ngOnInit() {
29215
- const newValue$ = merge(of(''), this.inputCleared.pipe(map$1(() => '')), this.control.valueChanges.pipe(filter$1((value) => typeof value === 'string'), distinctUntilChanged(), debounceTime(400)));
29222
+ const newValue$ = merge(of(''), this.inputCleared.pipe(map$1(() => '')), this.control.valueChanges.pipe(filter$1((value) => typeof value === 'string'), debounceTime(400), distinctUntilChanged()));
29216
29223
  const externalValueChange$ = this.control.valueChanges.pipe(filter$1((value) => typeof value === 'object' && value.title), map$1((item) => item.title));
29217
29224
  // this observable emits arrays of suggestions loaded using the given action
29218
29225
  const suggestionsFromAction = merge(newValue$.pipe(filter$1((value) => value.length >= this.minCharacterCount)), externalValueChange$).pipe(tap$1(() => {
29219
29226
  this.searching = true;
29220
29227
  this.error = null;
29221
- }), switchMap$1((value) => this.action(value)), tap$1((suggestions) => {
29228
+ }), switchMap$1((value) => this.action(value)), // this can trigger http requests
29229
+ shareReplay$1(1), // share the loaded suggestions to avoid multiple requests
29230
+ tap$1((suggestions) => {
29222
29231
  // forcing the panel to open if there are suggestions
29223
29232
  if (suggestions.length > 0 && !this.searchActive) {
29224
29233
  this.triggerRef?.openPanel();
@@ -29279,6 +29288,7 @@ class AutocompleteComponent {
29279
29288
  }
29280
29289
  clear() {
29281
29290
  this.inputRef.nativeElement.value = '';
29291
+ this.control.setValue('');
29282
29292
  this.searchActive = false;
29283
29293
  this.isSearchActive.emit(false);
29284
29294
  this.inputCleared.emit();
@@ -38234,6 +38244,7 @@ marker('dataset.error.forbidden');
38234
38244
  marker('wfs.unreachable.unknown');
38235
38245
  marker('wfs.featuretype.notfound');
38236
38246
  marker('wfs.geojsongml.notsupported');
38247
+ marker('ogc.geojson.notsupported');
38237
38248
  marker('ogc.unreachable.unknown');
38238
38249
  marker('dataset.error.network');
38239
38250
  marker('dataset.error.http');
@@ -38461,12 +38472,14 @@ class DataService {
38461
38472
  else if (link.type === 'service' &&
38462
38473
  link.accessServiceProtocol === 'ogcFeatures') {
38463
38474
  return from(this.getDownloadUrlsFromOgcApi(link.url.href)).pipe(switchMap$1((collectionInfo) => {
38464
- const geojsonUrl = collectionInfo.jsonDownloadLink;
38465
- return openDataset(geojsonUrl, 'geojson', undefined, cacheActive);
38466
- }), tap$1((url) => {
38467
- if (url === null) {
38468
- throw new Error('wfs.geojsongml.notsupported');
38475
+ const isMimeTypeJson = (mimeType) => {
38476
+ return mimeType.toLowerCase().indexOf('json') > -1;
38477
+ };
38478
+ const geojsonUrl = collectionInfo.bulkDownloadLinks[Object.keys(collectionInfo.bulkDownloadLinks).find((mimeType) => isMimeTypeJson(mimeType))];
38479
+ if (!geojsonUrl) {
38480
+ return throwError(() => 'ogc.geojson.notsupported');
38469
38481
  }
38482
+ return openDataset(geojsonUrl, 'geojson', undefined, cacheActive);
38470
38483
  }));
38471
38484
  }
38472
38485
  return throwError(() => 'protocol not supported');